Compare commits
310 Commits
matthiasc/
...
3.20.2
Author | SHA1 | Date | |
---|---|---|---|
3cf2e1ad8b | |||
d756e2eefb | |||
ea27ed8c55 | |||
1883df2927 | |||
3274f270e3 | |||
c97626e516 | |||
9c483dd9a6 | |||
8fd6e93fbe | |||
8416ba25de | |||
63f6ff9151 | |||
59c2ace98c | |||
cf4465027a | |||
a23b293fe2 | |||
c039a3ddda | |||
ebe071bd50 | |||
2edfd458b7 | |||
3b750aa815 | |||
d96f97e55a | |||
55ac2f46ba | |||
262c04ab91 | |||
c80e7784fb | |||
763567377f | |||
ea9dcbf8b7 | |||
2b383bf73e | |||
b8dcbfebb2 | |||
a257aa35d5 | |||
941513b280 | |||
a9bb0558bc | |||
58834b80d7 | |||
b125a0e371 | |||
980ac0da8a | |||
f15fb0bd73 | |||
7d25592165 | |||
9ee36f2b71 | |||
f3e226103f | |||
a03e5662e2 | |||
16bb3efeb9 | |||
e01d867e69 | |||
1d4dfd7d5f | |||
da05d1d864 | |||
6499424eba | |||
824a602963 | |||
0092d8fff3 | |||
5fbe454836 | |||
23a59d387b | |||
6b2a68e553 | |||
82950ecea0 | |||
2da4df219c | |||
8b5597fd8d | |||
82ae06ad55 | |||
c594b66a2a | |||
13e3318e4d | |||
4aa4bb4a6a | |||
4a74df86e2 | |||
30ebc9c241 | |||
e0f6cf538d | |||
ba71382c72 | |||
87eb0d7e2f | |||
da199242b2 | |||
5e3d378667 | |||
a6d2735373 | |||
2ea435a928 | |||
75ba75900c | |||
7bacf4e344 | |||
258993d8ad | |||
ff19e411a2 | |||
e86c2826ef | |||
64741e41df | |||
fceac27412 | |||
0a394799da | |||
b83f2c0e33 | |||
225f825faf | |||
ed054f4f40 | |||
a1244a9b26 | |||
3a3714f4ff | |||
be483c4137 | |||
3492121c3f | |||
364f1453c1 | |||
9392e50cf1 | |||
f60a6ab465 | |||
f3a92d558d | |||
d387d4a60d | |||
4503ca4ca0 | |||
eeb10c0ce3 | |||
c69fcc2ef8 | |||
7d67d88ae8 | |||
310622b14e | |||
00065b84e1 | |||
4f7a8902f8 | |||
d20a6e0988 | |||
96fa7b7e77 | |||
61e4d40852 | |||
cc826f77fb | |||
1de288c5bb | |||
fe986faa2d | |||
f11b404622 | |||
508668107b | |||
674454621f | |||
2c907bd422 | |||
4eb6c0c4ee | |||
dd2eff2b6f | |||
d8960b396b | |||
4c29604e1e | |||
ede0bf2d88 | |||
893bfdf85f | |||
ac7a4c27fd | |||
4fe0233139 | |||
f9f9c7fe5b | |||
f1b90f174a | |||
3dd74c86c1 | |||
0edbdc529e | |||
b08523b170 | |||
cd2f8d8177 | |||
a1e8c79d38 | |||
34fc454764 | |||
e98a434ede | |||
02cdc065e7 | |||
77eb8f98c0 | |||
68679e1e7e | |||
05f2dbf205 | |||
45779bc7be | |||
1bf27b1f18 | |||
3ecdfaffd2 | |||
ee8fd1e613 | |||
ccfd5e35d6 | |||
b2eab65a81 | |||
00814dd159 | |||
57f9ffcaa7 | |||
ce83f378a5 | |||
30c7545ff3 | |||
a13357c2a8 | |||
75dc5c16c8 | |||
acd5d70209 | |||
669d20bcf0 | |||
793a8005a5 | |||
23b81fb241 | |||
73ba9d33eb | |||
75e2a7228c | |||
91d70f2487 | |||
779b1ae8e5 | |||
346ffd14d7 | |||
558b51f555 | |||
ef18b7ea25 | |||
0044e225aa | |||
c25c143b24 | |||
b87da87252 | |||
f9258bb5e3 | |||
3d747b00e6 | |||
450345b4d0 | |||
7563e1ebcd | |||
f96cc4dd69 | |||
c65a9c4d2e | |||
c01bd37edc | |||
021cecbce2 | |||
2a0cb7ff05 | |||
0085a94706 | |||
5db38194dc | |||
2a26143149 | |||
62f22557aa | |||
516ea5a02e | |||
9154471aba | |||
fbf6746acf | |||
a36686a6aa | |||
fd837d74d1 | |||
fd57334395 | |||
85100cb65f | |||
c70f6278d6 | |||
e573441bac | |||
5ed9571b37 | |||
9d203ddc0f | |||
508a13ae72 | |||
c0b50cbdf2 | |||
06f78549bd | |||
67afd7a6d8 | |||
ffa8c2f2b1 | |||
3803a880e8 | |||
965aedb0bb | |||
80911535a7 | |||
ca401d5036 | |||
a1c091d98d | |||
e1e08f0a68 | |||
1a4f629554 | |||
4113be770b | |||
cf3f4850b8 | |||
14f374096a | |||
6fef5c37f7 | |||
6e7455aa1e | |||
03bf6fa399 | |||
f777e761c0 | |||
31201d9618 | |||
d95d78ac15 | |||
bef4f17c49 | |||
f4b7ab0cb6 | |||
a180dde01c | |||
385c918e2e | |||
d7401c8646 | |||
a456d5eb19 | |||
6c08799c7b | |||
8d7bb6496c | |||
f0496a2d3c | |||
6664553b7e | |||
2a950ca3b3 | |||
463cd6382c | |||
78db025b10 | |||
f3265c28a9 | |||
a6e5e459d3 | |||
9ba399bf18 | |||
a52c91e9e5 | |||
9a7b47c23f | |||
18f7d20006 | |||
3f0ee88657 | |||
c634718dfa | |||
df6b31de05 | |||
b8e29ae8c7 | |||
cdba8e5cea | |||
4fccdaafb7 | |||
df0b465e76 | |||
aacdd4fd5e | |||
5f68c3a324 | |||
8ceae3b054 | |||
3fc5afaff1 | |||
8b7464c648 | |||
3e602b1765 | |||
5858028411 | |||
2c682ace81 | |||
45f3106814 | |||
aa947f9948 | |||
0c72d1fcbd | |||
6d22670307 | |||
0b9e68e305 | |||
da8155cbe5 | |||
5b7a052e18 | |||
6f26e39082 | |||
489b96a310 | |||
e65d90d624 | |||
9c74e22313 | |||
48a1fce151 | |||
83e7f6f496 | |||
3c5c3a6597 | |||
1c3ea1649f | |||
48a54e8ac4 | |||
113a854048 | |||
882f5fa79e | |||
9acdb8012c | |||
731d64e0e4 | |||
ccf1bd9f27 | |||
c164a8fe03 | |||
1a39666f7c | |||
f2731d4d6a | |||
3e63fb7abe | |||
8b4249ef26 | |||
bf0be6ef12 | |||
294702d3f1 | |||
58f3b7c748 | |||
e25502aeb2 | |||
ffe4eaf00d | |||
2f88a7a1e1 | |||
cd7d564125 | |||
ede81017ec | |||
a539e6236a | |||
90b7710834 | |||
f8cc8f1dc1 | |||
f8e5e3e435 | |||
508e751ffd | |||
207c847762 | |||
3c980566d3 | |||
50b59e0ca6 | |||
14c52bb00a | |||
9720b32987 | |||
674ae262c8 | |||
db297e7fdb | |||
d57c146514 | |||
ec5a4328e3 | |||
e4ee72c481 | |||
31f1e9ff0a | |||
d6c049a8c9 | |||
44047ac881 | |||
464d5d8a13 | |||
29811a85dc | |||
36ee4e6c3b | |||
2036e4c85c | |||
f24034de84 | |||
522ff86081 | |||
669e3c8ed9 | |||
ce850f464c | |||
03eaa61cef | |||
e10e953d24 | |||
2b47bb3d82 | |||
73d819116c | |||
c8dd984663 | |||
6087eb6d0e | |||
97b43d1d36 | |||
57ebadbaf8 | |||
cad7bb1151 | |||
9a376d47c5 | |||
b79adc05f4 | |||
f765c5e319 | |||
edc445c0c9 | |||
ab6b0f3f7f | |||
5e7902e733 | |||
f9f821aa55 | |||
9ed4b2a5ae | |||
0130ced790 | |||
8dab07af82 | |||
f6cd3fa5ed | |||
faae1a028e | |||
f5e32184fe | |||
18c7138237 | |||
3f0fbae7e2 | |||
7f1a258ff9 |
6
.gitignore
vendored
6
.gitignore
vendored
@ -17,10 +17,8 @@ config.status
|
||||
config
|
||||
configure
|
||||
data/50-gnome-shell-*.xml
|
||||
data/gnome-shell.desktop
|
||||
data/gnome-shell.desktop.in
|
||||
data/gnome-shell-wayland.desktop
|
||||
data/gnome-shell-wayland.desktop.in
|
||||
data/org.gnome.Shell.desktop
|
||||
data/org.gnome.Shell.desktop.in
|
||||
data/gnome-shell-extension-prefs.desktop
|
||||
data/gnome-shell-extension-prefs.desktop.in
|
||||
data/gnome-shell-theme.gresource
|
||||
|
179
NEWS
179
NEWS
@ -1,3 +1,182 @@
|
||||
3.20.2
|
||||
======
|
||||
* Save screencasts in HOME if XDG_VIDEO_DIR doesn't exist [Florian; #765015]
|
||||
* Don't show orientation lock when g-s-d won't rotate [Florian; #765267]
|
||||
* Misc. bug fixes [Heiher, Florian, Marek; #722752, #765061, #763068, #765607,
|
||||
#757676]
|
||||
|
||||
Contributors:
|
||||
Heiher, Marek Chalupa, Florian Müllner
|
||||
|
||||
Translations:
|
||||
Arash Mousavi [fa], Kristjan SCHMIDT [eo], Tiago Santos [pt],
|
||||
Kjartan Maraas [nb]
|
||||
|
||||
3.20.1
|
||||
======
|
||||
* Plug a memory leak [Aaron; #735705]
|
||||
|
||||
Contributors:
|
||||
Aaron Plattner
|
||||
|
||||
Translations:
|
||||
Daniel Korostil [uk], Matej Urbančič [sl], Inaki Larranaga Murgoitio [eu],
|
||||
Cheng-Chia Tseng [zh_TW], Fabio Tomat [fur], Trần Ngọc Quân [vi],
|
||||
YunQiang Su [zh_CN], Marek Černocký [cs], Arash Mousavi [fa],
|
||||
Alexander Shopov [bg], Khaled Hosny [ar]
|
||||
|
||||
3.20.0
|
||||
======
|
||||
|
||||
Translations:
|
||||
Changwoo Ryu [ko], Baurzhan Muftakhidinov [kk], Milo Casagrande [it],
|
||||
Anders Jonsson [sv], Muhammet Kara [tr], Alexandre Franke [fr],
|
||||
Rūdolfs Mazurs [lv], Ask Hjorth Larsen [da], Jiro Matsuzawa [ja]
|
||||
|
||||
3.19.92
|
||||
=======
|
||||
* Update location dialog according to latest mockups [Zeeshan; #762480]
|
||||
* Fix deleting chat notifications in calendar [Florian; #747991]
|
||||
|
||||
Contributors:
|
||||
Zeeshan Ali (Khattak), Florian Müllner
|
||||
|
||||
Translations:
|
||||
Rūdolfs Mazurs [lv], Changwoo Ryu [ko], Matej Urbančič [sl],
|
||||
Justin van Steijn [nl], Fabio Tomat [fur], Kris Thomsen [da],
|
||||
Marek Černocký [cs], Piotr Drąg [pl], Dušan Kazik [sk],
|
||||
Мирослав Николић [sr, sr@latin], Balázs Úr [hu], Yosef Or Boczko [he],
|
||||
Daniel Mustieles [es], Fran Dieguez [gl], Bernd Homuth [de],
|
||||
Tom Tryfonidis [el], Jiri Grönroos [fi], Gil Forcada [ca],
|
||||
Artur Morais [pt_BR], Aurimas Černius [lt], Stas Solovey [ru]
|
||||
|
||||
3.19.91
|
||||
=======
|
||||
* location: Ask user only once [Zeeshan; #762559]
|
||||
* Fix jiggling when auto-hiding legacy tray [Florian; #747957]
|
||||
* Misc. bug fixes [Florian, Michael, Ting-Wei; #762475, #762507, #755659]
|
||||
|
||||
Contributors:
|
||||
Zeeshan Ali (Khattak), Michael Catanzaro, Ting-Wei Lan, Florian Müllner
|
||||
|
||||
Translations:
|
||||
Мирослав Николић [sr, sr@latin], Piotr Drąg [pl], A S Alam [pa],
|
||||
Artur de Aquino Morais [pt_BR], Daniel Mustieles [es],
|
||||
Chao-Hsiung Liao [zh_TW], Daniel Korostil [uk], Fran Dieguez [gl],
|
||||
Tom Tryfonidis [el], Bernd Homuth [de], Sebastian Rasmussen [sv],
|
||||
Jordi Mas [ca], Piotr Drąg [ga], Cédric Valmary [oc], Gábor Kelemen [hu],
|
||||
Baurzhan Muftakhidinov [kk], Friedel Wolff [af], Marek Černocký [cs],
|
||||
Mingye Wang (Arthur2e5) [zh_CN], Aron Xu [zh_CN], Khaled Hosny [ar],
|
||||
Aurimas Černius [lt], Stas Solovey [ru], Yosef Or Boczko [he]
|
||||
|
||||
3.19.90
|
||||
=======
|
||||
* Correctly identify VPN secret requests [Lubomir; #760999]
|
||||
* Improve week number presentation [Jakub; #683245]
|
||||
* Add audio device selection dialog [Florian; #760284]
|
||||
* Add media controls to the time and date drop down [Florian; #756491]
|
||||
* Fix IBus candidate popup position under wayland [Rui; #753476]
|
||||
* Ask user to grant applications access to location [Zeeshan; #762119]
|
||||
* Misc. bug fixes [Mario, Jakub, Florian; #761208, #761772, #762270]
|
||||
|
||||
Contributors:
|
||||
Zeeshan Ali (Khattak), Michael Catanzaro, Rui Matos, Florian Müllner,
|
||||
Lubomir Rintel, Mario Sanchez Prada, Jakub Steiner
|
||||
|
||||
Translations:
|
||||
Alexander Shopov [bg], Balázs Meskó [hu], Fabio Tomat [fur],
|
||||
Dušan Kazik [sk], Piotr Drąg [pl], Alexandre Franke [fr],
|
||||
Mario Blättermann [de], Milo Casagrande [it], Jordi Mas [ca]
|
||||
|
||||
3.19.4
|
||||
======
|
||||
* gdm: Do not allow bypassing disabled Sign In button [Michael; #746180]
|
||||
* Style week numbers in calendar [Jakub; #683245]
|
||||
* Misc. bug fixes [Christophe, Jakub, Rui; #759708, #760577, #760945]
|
||||
|
||||
Contributors:
|
||||
Michael Catanzaro, Marek Černocký, Christophe Fergeau, Rui Matos,
|
||||
Jakub Steiner
|
||||
|
||||
Translations:
|
||||
Aurimas Černius [lt], Enrico Nicoletto [pt_BR], Andika Triwidada [id],
|
||||
Mario Blättermann [de], Marek Černocký [cs], Kjartan Maraas [nb],
|
||||
Muhammet Kara [tr], Stas Solovey [ru]
|
||||
|
||||
3.19.3
|
||||
======
|
||||
* Fix thumbnail scaling in window switcher on HiDPI [Florian; #758676]
|
||||
* Update animated backgrounds on timezone changes [Florian; #758939]
|
||||
* loginDialog: Update user list on user changes [Michael; #758568]
|
||||
* Fix touch interaction on wayland [Carlos; #756748]
|
||||
|
||||
Contributors:
|
||||
Michael Catanzaro, Carlos Garnacho, Kalev Lember, Florian Müllner
|
||||
|
||||
Translations:
|
||||
Daniel Korostil [uk], Muhammet Kara [tr], Dušan Kazik [sk],
|
||||
Baurzhan Muftakhidinov [kk], Marek Černocký [cs]
|
||||
|
||||
3.19.2
|
||||
======
|
||||
* Make gnome-shell DBus activatable [Ray; #741666]
|
||||
* Fix browser plugin crash in Firefox [Carlos; #737932, #757940]
|
||||
* Optionally show battery percentage in system status area [Bastien; #735771]
|
||||
* Misc. bug fixes [Kalev, Florian, Bastien; #757418, #757668, #757779, #757816,
|
||||
#745626, #758220]
|
||||
|
||||
Contributors:
|
||||
Michael Biebl, Michael Catanzaro, Piotr Drąg, Carlos Garcia Campos,
|
||||
Kalev Lember, Florian Müllner, Bastien Nocera, Ray Strode
|
||||
|
||||
Translations:
|
||||
Pedro Albuquerque [pt], liushuyu [zh_CN], Yosef Or Boczko [he],
|
||||
Jiri Grönroos [fi], Kjartan Maraas [nb], GNOME Translation Robot [gd],
|
||||
Daniel Mustieles [es], Marek Černocký [cs], Kristjan SCHMIDT [eo],
|
||||
Stas Solovey [ru]
|
||||
|
||||
3.19.1
|
||||
======
|
||||
* Respect text-scaling factor under wayland [Owen; #756447]
|
||||
* Show the Bluetooth submenu when there were setup devices [Bastien; #723848]
|
||||
* Misc. bug fixes [Florian, Cosimo, Rui, Ray, Owen, Jakub, Bastien;
|
||||
#756697, #756714, #756605, #754814, #738942, #756983, #756925,
|
||||
#757011, #673235, #757150]
|
||||
|
||||
Contributors:
|
||||
Cosimo Cecchi, Rui Matos, Florian Müllner, Bastien Nocera, Jakub Steiner,
|
||||
Ray Strode, Owen W. Taylor
|
||||
|
||||
Translations:
|
||||
Kjartan Maraas [nb], Khaled Hosny [ar], Balázs Meskó [hu],
|
||||
Daniel Șerbănescu [ro], Marek Černocký [cs]
|
||||
|
||||
3.18.1
|
||||
======
|
||||
* Fix screen freezes when a notification is pushed [Carlos; #755425]
|
||||
* Fix overzealous ellipsization in system status menu [Adel, Florian; #708472]
|
||||
* Hide app menu when disabled by setting [Florian; #745919]
|
||||
* Fix lightbox effect when animations are disabled [Rui; #755827]
|
||||
* Do not mark hotplug notifications as critical [Florian; #657923]
|
||||
* Fix icons getting cut off in dash [Florian; #745649]
|
||||
* Animate fullscreen/unfullscreen operations [Cosimo; #707248]
|
||||
* Misc. bug fixes [Florian, Owen; #748919, #674799, #754581]
|
||||
|
||||
Contributors:
|
||||
Emmanuele Bassi, Michael Catanzaro, Cosimo Cecchi, Matthias Clasen,
|
||||
Adel Gadllah, Carlos Garnacho, Ekaterina Gerasimova, Rui Matos,
|
||||
Florian Müllner, Owen W. Taylor
|
||||
|
||||
Translations:
|
||||
Марко Костић [sr], Милош Поповић [sr@latin], Khaled Hosny [ar],
|
||||
Trần Ngọc Quân [vi], Petr Kovar [cs], Alexandre Franke [fr],
|
||||
Fran Dieguez [gl], Anders Jonsson [sv], Piotr Drąg [pl], Dušan Kazik [sk],
|
||||
Milo Casagrande [it], Changwoo Ryu [ko], Stas Solovey [ru],
|
||||
Rafael Fontenelle [pt_BR], Tom Tryfonidis [el], Aurimas Černius [lt],
|
||||
Seán de Búrca [ga], Christian Kirbach [de], Jiri Grönroos [fi],
|
||||
Pedro Albuquerque [pt], Baurzhan Muftakhidinov [kk], Daniel Mustieles [es],
|
||||
Marek Černocký [cs], Ask Hjorth Larsen [da], Inaki Larranaga Murgoitio [eu]
|
||||
|
||||
3.18.0
|
||||
======
|
||||
|
||||
|
@ -3,7 +3,10 @@ mozillalibdir = $(BROWSER_PLUGIN_DIR)
|
||||
|
||||
mozillalib_LTLIBRARIES = libgnome-shell-browser-plugin.la
|
||||
|
||||
libgnome_shell_browser_plugin_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||
# Browsers can unload and reload the module while browsing, which is not supported by GObject.
|
||||
# We pass -Wl,-z,nodelete to the linker to ensure the module is never unloaded.
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=737932
|
||||
libgnome_shell_browser_plugin_la_LDFLAGS = -module -avoid-version -no-undefined -Wl,-z,nodelete
|
||||
|
||||
libgnome_shell_browser_plugin_la_LIBADD = \
|
||||
$(BROWSER_PLUGIN_LIBS)
|
||||
|
@ -33,20 +33,16 @@
|
||||
#include <json-glib/json-glib.h>
|
||||
|
||||
#define ORIGIN "extensions.gnome.org"
|
||||
#define PLUGIN_NAME "Gnome Shell Integration"
|
||||
#define PLUGIN_DESCRIPTION "This plugin provides integration with Gnome Shell " \
|
||||
#define PLUGIN_NAME "GNOME Shell Integration"
|
||||
#define PLUGIN_DESCRIPTION "This plugin provides integration with GNOME Shell " \
|
||||
"for live extension enabling and disabling. " \
|
||||
"It can be used only by extensions.gnome.org"
|
||||
#define PLUGIN_MIME_STRING "application/x-gnome-shell-integration::Gnome Shell Integration Dummy Content-Type";
|
||||
#define PLUGIN_MIME_STRING "application/x-gnome-shell-integration::GNOME Shell Integration Dummy Content-Type";
|
||||
|
||||
#define PLUGIN_API_VERSION 5
|
||||
|
||||
#define EXTENSION_DISABLE_VERSION_CHECK_KEY "disable-extension-version-validation"
|
||||
|
||||
typedef struct {
|
||||
GDBusProxy *proxy;
|
||||
} PluginData;
|
||||
|
||||
static NPNetscapeFuncs funcs;
|
||||
|
||||
static inline gchar *
|
||||
@ -145,121 +141,6 @@ check_origin_and_protocol (NPP instance)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* =============== public entry points =================== */
|
||||
|
||||
NPError
|
||||
NP_Initialize(NPNetscapeFuncs *pfuncs, NPPluginFuncs *plugin)
|
||||
{
|
||||
/* global initialization routine, called once when plugin
|
||||
is loaded */
|
||||
|
||||
g_debug ("plugin loaded");
|
||||
|
||||
memcpy (&funcs, pfuncs, sizeof (funcs));
|
||||
|
||||
plugin->size = sizeof(NPPluginFuncs);
|
||||
plugin->newp = NPP_New;
|
||||
plugin->destroy = NPP_Destroy;
|
||||
plugin->getvalue = NPP_GetValue;
|
||||
plugin->setwindow = NPP_SetWindow;
|
||||
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
NPError
|
||||
NP_Shutdown(void)
|
||||
{
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
const char*
|
||||
NP_GetMIMEDescription(void)
|
||||
{
|
||||
return PLUGIN_MIME_STRING;
|
||||
}
|
||||
|
||||
NPError
|
||||
NP_GetValue(void *instance,
|
||||
NPPVariable variable,
|
||||
void *value)
|
||||
{
|
||||
switch (variable) {
|
||||
case NPPVpluginNameString:
|
||||
*(char**)value = PLUGIN_NAME;
|
||||
break;
|
||||
case NPPVpluginDescriptionString:
|
||||
*(char**)value = PLUGIN_DESCRIPTION;
|
||||
break;
|
||||
default:
|
||||
;
|
||||
}
|
||||
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
NPError
|
||||
NPP_New(NPMIMEType mimetype,
|
||||
NPP instance,
|
||||
uint16_t mode,
|
||||
int16_t argc,
|
||||
char **argn,
|
||||
char **argv,
|
||||
NPSavedData *saved)
|
||||
{
|
||||
/* instance initialization function */
|
||||
PluginData *data;
|
||||
GError *error = NULL;
|
||||
|
||||
g_debug ("plugin created");
|
||||
|
||||
if (!check_origin_and_protocol (instance))
|
||||
return NPERR_GENERIC_ERROR;
|
||||
|
||||
data = g_slice_new (PluginData);
|
||||
instance->pdata = data;
|
||||
|
||||
data->proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
|
||||
G_DBUS_PROXY_FLAGS_NONE,
|
||||
NULL, /* interface info */
|
||||
"org.gnome.Shell",
|
||||
"/org/gnome/Shell",
|
||||
"org.gnome.Shell.Extensions",
|
||||
NULL, /* GCancellable */
|
||||
&error);
|
||||
if (!data->proxy)
|
||||
{
|
||||
/* ignore error if the shell is not running, otherwise warn */
|
||||
if (error->domain != G_DBUS_ERROR ||
|
||||
error->code != G_DBUS_ERROR_NAME_HAS_NO_OWNER)
|
||||
{
|
||||
g_warning ("Failed to set up Shell proxy: %s", error->message);
|
||||
}
|
||||
g_clear_error (&error);
|
||||
return NPERR_GENERIC_ERROR;
|
||||
}
|
||||
|
||||
g_debug ("plugin created successfully");
|
||||
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
NPError
|
||||
NPP_Destroy(NPP instance,
|
||||
NPSavedData **saved)
|
||||
{
|
||||
/* instance finalization function */
|
||||
|
||||
PluginData *data = instance->pdata;
|
||||
|
||||
g_debug ("plugin destroyed");
|
||||
|
||||
g_object_unref (data->proxy);
|
||||
|
||||
g_slice_free (PluginData, data);
|
||||
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
/* =================== scripting interface =================== */
|
||||
|
||||
typedef struct {
|
||||
@ -330,45 +211,18 @@ static NPObject *
|
||||
plugin_object_allocate (NPP instance,
|
||||
NPClass *klass)
|
||||
{
|
||||
PluginData *data = instance->pdata;
|
||||
PluginObject *obj = g_slice_new0 (PluginObject);
|
||||
PluginObject *obj = (PluginObject *) funcs.memalloc (sizeof (PluginObject));
|
||||
|
||||
memset (obj, 0, sizeof (PluginObject));
|
||||
obj->instance = instance;
|
||||
obj->proxy = g_object_ref (data->proxy);
|
||||
obj->settings = g_settings_new (SHELL_SCHEMA);
|
||||
obj->signal_id = g_signal_connect (obj->proxy, "g-signal",
|
||||
G_CALLBACK (on_shell_signal), obj);
|
||||
|
||||
obj->watch_name_id = g_bus_watch_name (G_BUS_TYPE_SESSION,
|
||||
"org.gnome.Shell",
|
||||
G_BUS_NAME_WATCHER_FLAGS_NONE,
|
||||
on_shell_appeared,
|
||||
NULL,
|
||||
obj,
|
||||
NULL);
|
||||
|
||||
g_debug ("plugin object created");
|
||||
|
||||
return (NPObject*)obj;
|
||||
return (NPObject*) obj;
|
||||
}
|
||||
|
||||
static void
|
||||
plugin_object_deallocate (NPObject *npobj)
|
||||
{
|
||||
PluginObject *obj = (PluginObject*)npobj;
|
||||
|
||||
g_signal_handler_disconnect (obj->proxy, obj->signal_id);
|
||||
g_object_unref (obj->proxy);
|
||||
|
||||
if (obj->listener)
|
||||
funcs.releaseobject (obj->listener);
|
||||
|
||||
if (obj->watch_name_id)
|
||||
g_bus_unwatch_name (obj->watch_name_id);
|
||||
|
||||
g_debug ("plugin object destroyed");
|
||||
|
||||
g_slice_free (PluginObject, obj);
|
||||
funcs.memfree (npobj);
|
||||
}
|
||||
|
||||
static inline gboolean
|
||||
@ -1019,6 +873,149 @@ init_methods_and_properties (void)
|
||||
onextension_changed_id = funcs.getstringidentifier ("onchange");
|
||||
}
|
||||
|
||||
/* =============== public entry points =================== */
|
||||
|
||||
NPError
|
||||
NP_Initialize(NPNetscapeFuncs *pfuncs, NPPluginFuncs *plugin)
|
||||
{
|
||||
/* global initialization routine, called once when plugin
|
||||
is loaded */
|
||||
|
||||
g_debug ("plugin loaded");
|
||||
|
||||
memcpy (&funcs, pfuncs, sizeof (funcs));
|
||||
|
||||
plugin->size = sizeof(NPPluginFuncs);
|
||||
plugin->newp = NPP_New;
|
||||
plugin->destroy = NPP_Destroy;
|
||||
plugin->getvalue = NPP_GetValue;
|
||||
plugin->setwindow = NPP_SetWindow;
|
||||
plugin->event = NPP_HandleEvent;
|
||||
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
NPError
|
||||
NP_Shutdown(void)
|
||||
{
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
const char*
|
||||
NP_GetMIMEDescription(void)
|
||||
{
|
||||
return PLUGIN_MIME_STRING;
|
||||
}
|
||||
|
||||
NPError
|
||||
NP_GetValue(void *instance,
|
||||
NPPVariable variable,
|
||||
void *value)
|
||||
{
|
||||
switch (variable) {
|
||||
case NPPVpluginNameString:
|
||||
*(char**)value = PLUGIN_NAME;
|
||||
break;
|
||||
case NPPVpluginDescriptionString:
|
||||
*(char**)value = PLUGIN_DESCRIPTION;
|
||||
break;
|
||||
default:
|
||||
;
|
||||
}
|
||||
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
NPError
|
||||
NPP_New(NPMIMEType mimetype,
|
||||
NPP instance,
|
||||
uint16_t mode,
|
||||
int16_t argc,
|
||||
char **argn,
|
||||
char **argv,
|
||||
NPSavedData *saved)
|
||||
{
|
||||
/* instance initialization function */
|
||||
PluginObject *obj;
|
||||
GError *error = NULL;
|
||||
|
||||
g_debug ("plugin created");
|
||||
|
||||
if (!check_origin_and_protocol (instance))
|
||||
return NPERR_GENERIC_ERROR;
|
||||
|
||||
/* set windowless mode */
|
||||
funcs.setvalue(instance, NPPVpluginWindowBool, NULL);
|
||||
|
||||
g_debug ("creating scriptable object");
|
||||
init_methods_and_properties ();
|
||||
obj = (PluginObject *) funcs.createobject (instance, &plugin_class);
|
||||
instance->pdata = obj;
|
||||
|
||||
obj->proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
|
||||
G_DBUS_PROXY_FLAGS_NONE,
|
||||
NULL, /* interface info */
|
||||
"org.gnome.Shell",
|
||||
"/org/gnome/Shell",
|
||||
"org.gnome.Shell.Extensions",
|
||||
NULL, /* GCancellable */
|
||||
&error);
|
||||
if (!obj->proxy)
|
||||
{
|
||||
/* ignore error if the shell is not running, otherwise warn */
|
||||
if (!g_error_matches (error, G_DBUS_ERROR, G_DBUS_ERROR_NAME_HAS_NO_OWNER))
|
||||
{
|
||||
g_warning ("Failed to set up Shell proxy: %s", error->message);
|
||||
}
|
||||
g_clear_error (&error);
|
||||
return NPERR_GENERIC_ERROR;
|
||||
}
|
||||
|
||||
obj->settings = g_settings_new (SHELL_SCHEMA);
|
||||
obj->signal_id = g_signal_connect (obj->proxy, "g-signal",
|
||||
G_CALLBACK (on_shell_signal), obj);
|
||||
obj->watch_name_id = g_bus_watch_name (G_BUS_TYPE_SESSION,
|
||||
"org.gnome.Shell",
|
||||
G_BUS_NAME_WATCHER_FLAGS_NONE,
|
||||
on_shell_appeared,
|
||||
NULL,
|
||||
obj,
|
||||
NULL);
|
||||
|
||||
g_debug ("plugin created successfully");
|
||||
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
NPError
|
||||
NPP_Destroy(NPP instance,
|
||||
NPSavedData **saved)
|
||||
{
|
||||
/* instance finalization function */
|
||||
PluginObject *obj = (PluginObject *) instance->pdata;
|
||||
|
||||
if (!obj)
|
||||
return NPERR_INVALID_INSTANCE_ERROR;
|
||||
|
||||
g_debug ("plugin destroyed");
|
||||
|
||||
g_signal_handler_disconnect (obj->proxy, obj->signal_id);
|
||||
g_object_unref (obj->proxy);
|
||||
|
||||
if (obj->listener)
|
||||
funcs.releaseobject (obj->listener);
|
||||
|
||||
if (obj->restart_listener)
|
||||
funcs.releaseobject (obj->restart_listener);
|
||||
|
||||
if (obj->watch_name_id)
|
||||
g_bus_unwatch_name (obj->watch_name_id);
|
||||
|
||||
funcs.releaseobject((NPObject *)obj);
|
||||
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
NPError
|
||||
NPP_GetValue(NPP instance,
|
||||
NPPVariable variable,
|
||||
@ -1029,13 +1026,10 @@ NPP_GetValue(NPP instance,
|
||||
switch (variable) {
|
||||
case NPPVpluginScriptableNPObject:
|
||||
g_debug ("creating scriptable object");
|
||||
init_methods_and_properties ();
|
||||
if (!instance->pdata)
|
||||
return NPERR_INVALID_INSTANCE_ERROR;
|
||||
|
||||
*(NPObject**)value = funcs.createobject (instance, &plugin_class);
|
||||
break;
|
||||
|
||||
case NPPVpluginNeedsXEmbed:
|
||||
*(bool *)value = TRUE;
|
||||
*(NPObject**)value = instance->pdata;
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -1053,3 +1047,11 @@ NPP_SetWindow(NPP instance,
|
||||
{
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
int16_t
|
||||
NPP_HandleEvent(NPP instance,
|
||||
void *event)
|
||||
{
|
||||
/* Ignore the event */
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
AC_PREREQ(2.63)
|
||||
AC_INIT([gnome-shell],[3.18.0],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
|
||||
AC_INIT([gnome-shell],[3.20.2],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
|
||||
AX_IS_RELEASE([git-directory])
|
||||
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
@ -77,7 +77,7 @@ AC_MSG_RESULT($enable_systemd)
|
||||
CLUTTER_MIN_VERSION=1.21.5
|
||||
GOBJECT_INTROSPECTION_MIN_VERSION=1.45.4
|
||||
GJS_MIN_VERSION=1.39.0
|
||||
MUTTER_MIN_VERSION=3.18.0
|
||||
MUTTER_MIN_VERSION=3.20.2
|
||||
GTK_MIN_VERSION=3.15.0
|
||||
GIO_MIN_VERSION=2.45.3
|
||||
LIBECAL_MIN_VERSION=3.5.3
|
||||
@ -117,9 +117,9 @@ PKG_CHECK_MODULES(GNOME_SHELL_JS, gio-2.0 gjs-internals-1.0 >= $GJS_MIN_VERSION)
|
||||
PKG_CHECK_MODULES(ST, clutter-1.0 gtk+-3.0 libcroco-0.6 >= 0.6.8 x11)
|
||||
PKG_CHECK_MODULES(SHELL_PERF_HELPER, gtk+-3.0 gio-2.0)
|
||||
PKG_CHECK_MODULES(SHELL_HOTPLUG_SNIFFER, gio-2.0 gdk-pixbuf-2.0)
|
||||
PKG_CHECK_MODULES(TRAY, gtk+-3.0)
|
||||
PKG_CHECK_MODULES(TRAY, clutter-1.0 gtk+-3.0)
|
||||
PKG_CHECK_MODULES(GVC, libpulse >= $PULSE_MIN_VERS libpulse-mainloop-glib gobject-2.0)
|
||||
PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.13.1)
|
||||
PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.19.2)
|
||||
|
||||
AC_ARG_ENABLE(browser-plugin,
|
||||
[AS_HELP_STRING([--enable-browser-plugin],
|
||||
|
@ -2,7 +2,7 @@ CLEANFILES =
|
||||
NULL =
|
||||
|
||||
desktopdir=$(datadir)/applications
|
||||
desktop_DATA = gnome-shell.desktop gnome-shell-wayland.desktop gnome-shell-extension-prefs.desktop
|
||||
desktop_DATA = org.gnome.Shell.desktop gnome-shell-extension-prefs.desktop
|
||||
|
||||
if HAVE_NETWORKMANAGER
|
||||
desktop_DATA += org.gnome.Shell.PortalHelper.desktop
|
||||
@ -104,8 +104,7 @@ convertdir = $(datadir)/GConf/gsettings
|
||||
convert_DATA = gnome-shell-overrides.convert
|
||||
|
||||
EXTRA_DIST = \
|
||||
gnome-shell.desktop.in.in \
|
||||
gnome-shell-wayland.desktop.in.in \
|
||||
org.gnome.Shell.desktop.in.in \
|
||||
gnome-shell-extension-prefs.desktop.in.in \
|
||||
$(introspection_DATA) \
|
||||
$(menu_DATA) \
|
||||
@ -121,8 +120,7 @@ EXTRA_DIST = \
|
||||
$(NULL)
|
||||
|
||||
CLEANFILES += \
|
||||
gnome-shell.desktop.in \
|
||||
gnome-shell-wayland.desktop.in \
|
||||
org.gnome.Shell.desktop.in \
|
||||
gnome-shell-extension-prefs.in \
|
||||
$(desktop_DATA) \
|
||||
$(keys_DATA) \
|
||||
|
@ -1,15 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
_Name=GNOME Shell (wayland compositor)
|
||||
_Comment=Window management and application launching
|
||||
Exec=@bindir@/gnome-shell --wayland --display-server
|
||||
X-GNOME-Bugzilla-Bugzilla=GNOME
|
||||
X-GNOME-Bugzilla-Product=gnome-shell
|
||||
X-GNOME-Bugzilla-Component=general
|
||||
X-GNOME-Bugzilla-Version=@VERSION@
|
||||
Categories=GNOME;GTK;Core;
|
||||
OnlyShowIn=GNOME;
|
||||
NoDisplay=true
|
||||
X-GNOME-Autostart-Phase=DisplayServer
|
||||
X-GNOME-Autostart-Notify=true
|
||||
X-GNOME-AutoRestart=false
|
@ -10,7 +10,7 @@ X-GNOME-Bugzilla-Version=@VERSION@
|
||||
Categories=GNOME;GTK;Core;
|
||||
OnlyShowIn=GNOME;
|
||||
NoDisplay=true
|
||||
X-GNOME-Autostart-Phase=WindowManager
|
||||
X-GNOME-Autostart-Phase=DisplayServer
|
||||
X-GNOME-Provides=panel;windowmanager;
|
||||
X-GNOME-Autostart-Notify=true
|
||||
X-GNOME-AutoRestart=false
|
@ -72,6 +72,16 @@
|
||||
This key sets the default state of the checkbox.
|
||||
</_description>
|
||||
</key>
|
||||
<key name="had-bluetooth-devices-setup" type="b">
|
||||
<default>false</default>
|
||||
<_summary>Whether the default Bluetooth adapter had set up devices associated to it</_summary>
|
||||
<_description>
|
||||
The shell will only show a Bluetooth menu item if a Bluetooth
|
||||
adapter is powered, or if there were devices set up associated
|
||||
with the default adapter. This will be reset if the default
|
||||
adapter is ever seen not to have devices associated to it.
|
||||
</_description>
|
||||
</key>
|
||||
<child name="calendar" schema="org.gnome.shell.calendar"/>
|
||||
<child name="keybindings" schema="org.gnome.shell.keybindings"/>
|
||||
<child name="keyboard" schema="org.gnome.shell.keyboard"/>
|
||||
|
@ -199,7 +199,7 @@ StScrollBar {
|
||||
border-radius: 9px;
|
||||
color: #eeeeec;
|
||||
background-color: rgba(23, 25, 26, 0.95);
|
||||
border: 3px solid rgba(238, 238, 236, 0.5); }
|
||||
border: 1px solid rgba(238, 238, 236, 0.2); }
|
||||
.modal-dialog .modal-dialog-content-box {
|
||||
padding: 24px; }
|
||||
.modal-dialog .run-dialog-entry {
|
||||
@ -224,7 +224,7 @@ StScrollBar {
|
||||
/* End Session Dialog */
|
||||
.end-session-dialog {
|
||||
spacing: 42px;
|
||||
border: 3px solid rgba(238, 238, 236, 0.2); }
|
||||
border: 1px solid rgba(238, 238, 236, 0.2); }
|
||||
|
||||
.end-session-dialog-list {
|
||||
padding-top: 20px; }
|
||||
@ -399,6 +399,54 @@ StScrollBar {
|
||||
width: 48px;
|
||||
height: 48px; }
|
||||
|
||||
/* Audio selection dialog */
|
||||
.audio-device-selection-dialog {
|
||||
spacing: 30px; }
|
||||
|
||||
.audio-selection-content {
|
||||
spacing: 20px;
|
||||
padding: 24px; }
|
||||
|
||||
.audio-selection-title {
|
||||
font-weight: bold;
|
||||
text-align: center; }
|
||||
|
||||
.audio-selection-box {
|
||||
spacing: 20px; }
|
||||
|
||||
.audio-selection-device {
|
||||
border: 1px solid rgba(238, 238, 236, 0.2);
|
||||
border-radius: 12px; }
|
||||
.audio-selection-device:active, .audio-selection-device:hover, .audio-selection-device:focus {
|
||||
background-color: #215d9c; }
|
||||
|
||||
.audio-selection-device-box {
|
||||
padding: 20px;
|
||||
spacing: 20px; }
|
||||
|
||||
.audio-selection-device-icon {
|
||||
icon-size: 64px; }
|
||||
|
||||
/* Geolocation Dialog */
|
||||
.geolocation-dialog {
|
||||
spacing: 30px; }
|
||||
|
||||
.geolocation-dialog-main-layout {
|
||||
spacing: 12px; }
|
||||
|
||||
.geolocation-dialog-content {
|
||||
spacing: 20px; }
|
||||
|
||||
.geolocation-dialog-icon {
|
||||
icon-size: 48px; }
|
||||
|
||||
.geolocation-dialog-title {
|
||||
font-weight: bold; }
|
||||
|
||||
.geolocation-dialog-reason {
|
||||
color: #999999;
|
||||
font-weight: bold; }
|
||||
|
||||
/* Network Agent Dialog */
|
||||
.network-dialog-secret-table {
|
||||
spacing-rows: 15px;
|
||||
@ -408,9 +456,9 @@ StScrollBar {
|
||||
spacing-rows: 15px;
|
||||
spacing-columns: 1em; }
|
||||
|
||||
/* Popvers/Menus */
|
||||
/* Popovers/Menus */
|
||||
.popup-menu {
|
||||
min-width: 200px; }
|
||||
min-width: 15em; }
|
||||
.popup-menu .popup-sub-menu {
|
||||
background-color: black;
|
||||
box-shadow: inset 0 -1px 0px #0d0d0d; }
|
||||
@ -625,6 +673,8 @@ StScrollBar {
|
||||
#panel .panel-status-indicators-box,
|
||||
#panel .panel-status-menu-box {
|
||||
spacing: 2px; }
|
||||
#panel .power-status.panel-status-indicators-box {
|
||||
spacing: 0; }
|
||||
#panel .screencast-indicator {
|
||||
color: #f57900; }
|
||||
|
||||
@ -750,9 +800,20 @@ StScrollBar {
|
||||
color: rgba(255, 255, 255, 0.15);
|
||||
opacity: 0.5; }
|
||||
|
||||
.calendar-week-number {
|
||||
font-size: 70%;
|
||||
font-weight: bold;
|
||||
width: 2.3em;
|
||||
height: 1.8em;
|
||||
border-radius: 2px;
|
||||
padding: 0.5em 0 0;
|
||||
margin: 6px;
|
||||
background-color: rgba(255, 255, 255, 0.3);
|
||||
color: #000; }
|
||||
|
||||
/* Message list */
|
||||
.message-list {
|
||||
width: 420px; }
|
||||
width: 31.5em; }
|
||||
|
||||
.message-list-sections {
|
||||
spacing: 1.5em; }
|
||||
@ -808,6 +869,23 @@ StScrollBar {
|
||||
padding: 8px;
|
||||
font-size: .9em; }
|
||||
|
||||
.message-media-control {
|
||||
padding: 6px; }
|
||||
.message-media-control:last-child:ltr {
|
||||
padding-right: 18px; }
|
||||
.message-media-control:last-child:rtl {
|
||||
padding-left: 18px; }
|
||||
|
||||
.media-message-cover-icon {
|
||||
icon-size: 32px; }
|
||||
.media-message-cover-icon.fallback {
|
||||
color: #1a1a1a;
|
||||
background-color: #000;
|
||||
border: 2px solid #000;
|
||||
border-radius: 2px;
|
||||
icon-size: 16px;
|
||||
padding: 8px; }
|
||||
|
||||
.system-switch-user-submenu-icon.user-icon {
|
||||
icon-size: 20px;
|
||||
padding: 0 2px; }
|
||||
@ -823,7 +901,7 @@ StScrollBar {
|
||||
color: transparent; }
|
||||
|
||||
.aggregate-menu {
|
||||
width: 360px; }
|
||||
min-width: 21em; }
|
||||
.aggregate-menu .popup-menu-icon {
|
||||
padding: 0 4px; }
|
||||
|
||||
@ -960,10 +1038,14 @@ StScrollBar {
|
||||
.search-entry {
|
||||
width: 320px;
|
||||
padding: 7px 9px;
|
||||
border-radius: 6px; }
|
||||
border-radius: 6px;
|
||||
border-color: #747467;
|
||||
color: #eeeeec;
|
||||
background-color: #2e3436; }
|
||||
.search-entry:focus {
|
||||
padding: 6px 8px;
|
||||
border-width: 2px; }
|
||||
border-width: 2px;
|
||||
border-color: #215d9c; }
|
||||
.search-entry .search-entry-icon {
|
||||
icon-size: 1em;
|
||||
padding: 0 4px;
|
||||
|
Submodule data/theme/gnome-shell-sass updated: 034d0b775b...6ccc180811
@ -199,7 +199,7 @@ StScrollBar {
|
||||
border-radius: 9px;
|
||||
color: #eeeeec;
|
||||
background-color: rgba(23, 25, 26, 0.95);
|
||||
border: 3px solid rgba(238, 238, 236, 0.5); }
|
||||
border: 1px solid rgba(238, 238, 236, 0.2); }
|
||||
.modal-dialog .modal-dialog-content-box {
|
||||
padding: 24px; }
|
||||
.modal-dialog .run-dialog-entry {
|
||||
@ -224,7 +224,7 @@ StScrollBar {
|
||||
/* End Session Dialog */
|
||||
.end-session-dialog {
|
||||
spacing: 42px;
|
||||
border: 3px solid rgba(238, 238, 236, 0.2); }
|
||||
border: 1px solid rgba(238, 238, 236, 0.2); }
|
||||
|
||||
.end-session-dialog-list {
|
||||
padding-top: 20px; }
|
||||
@ -399,6 +399,54 @@ StScrollBar {
|
||||
width: 48px;
|
||||
height: 48px; }
|
||||
|
||||
/* Audio selection dialog */
|
||||
.audio-device-selection-dialog {
|
||||
spacing: 30px; }
|
||||
|
||||
.audio-selection-content {
|
||||
spacing: 20px;
|
||||
padding: 24px; }
|
||||
|
||||
.audio-selection-title {
|
||||
font-weight: bold;
|
||||
text-align: center; }
|
||||
|
||||
.audio-selection-box {
|
||||
spacing: 20px; }
|
||||
|
||||
.audio-selection-device {
|
||||
border: 1px solid rgba(238, 238, 236, 0.2);
|
||||
border-radius: 12px; }
|
||||
.audio-selection-device:active, .audio-selection-device:hover, .audio-selection-device:focus {
|
||||
background-color: #215d9c; }
|
||||
|
||||
.audio-selection-device-box {
|
||||
padding: 20px;
|
||||
spacing: 20px; }
|
||||
|
||||
.audio-selection-device-icon {
|
||||
icon-size: 64px; }
|
||||
|
||||
/* Geolocation Dialog */
|
||||
.geolocation-dialog {
|
||||
spacing: 30px; }
|
||||
|
||||
.geolocation-dialog-main-layout {
|
||||
spacing: 12px; }
|
||||
|
||||
.geolocation-dialog-content {
|
||||
spacing: 20px; }
|
||||
|
||||
.geolocation-dialog-icon {
|
||||
icon-size: 48px; }
|
||||
|
||||
.geolocation-dialog-title {
|
||||
font-weight: bold; }
|
||||
|
||||
.geolocation-dialog-reason {
|
||||
color: #8e8e80;
|
||||
font-weight: bold; }
|
||||
|
||||
/* Network Agent Dialog */
|
||||
.network-dialog-secret-table {
|
||||
spacing-rows: 15px;
|
||||
@ -408,9 +456,9 @@ StScrollBar {
|
||||
spacing-rows: 15px;
|
||||
spacing-columns: 1em; }
|
||||
|
||||
/* Popvers/Menus */
|
||||
/* Popovers/Menus */
|
||||
.popup-menu {
|
||||
min-width: 200px; }
|
||||
min-width: 15em; }
|
||||
.popup-menu .popup-sub-menu {
|
||||
background-color: #343a3a;
|
||||
box-shadow: inset 0 -1px 0px #282c2c; }
|
||||
@ -625,6 +673,8 @@ StScrollBar {
|
||||
#panel .panel-status-indicators-box,
|
||||
#panel .panel-status-menu-box {
|
||||
spacing: 2px; }
|
||||
#panel .power-status.panel-status-indicators-box {
|
||||
spacing: 0; }
|
||||
#panel .screencast-indicator {
|
||||
color: #f57900; }
|
||||
|
||||
@ -750,9 +800,20 @@ StScrollBar {
|
||||
color: rgba(238, 238, 236, 0.15);
|
||||
opacity: 0.5; }
|
||||
|
||||
.calendar-week-number {
|
||||
font-size: 70%;
|
||||
font-weight: bold;
|
||||
width: 2.3em;
|
||||
height: 1.8em;
|
||||
border-radius: 2px;
|
||||
padding: 0.5em 0 0;
|
||||
margin: 6px;
|
||||
background-color: rgba(238, 238, 236, 0.3);
|
||||
color: #393f3f; }
|
||||
|
||||
/* Message list */
|
||||
.message-list {
|
||||
width: 420px; }
|
||||
width: 31.5em; }
|
||||
|
||||
.message-list-sections {
|
||||
spacing: 1.5em; }
|
||||
@ -808,6 +869,23 @@ StScrollBar {
|
||||
padding: 8px;
|
||||
font-size: .9em; }
|
||||
|
||||
.message-media-control {
|
||||
padding: 6px; }
|
||||
.message-media-control:last-child:ltr {
|
||||
padding-right: 18px; }
|
||||
.message-media-control:last-child:rtl {
|
||||
padding-left: 18px; }
|
||||
|
||||
.media-message-cover-icon {
|
||||
icon-size: 32px; }
|
||||
.media-message-cover-icon.fallback {
|
||||
color: #515a5a;
|
||||
background-color: #393f3f;
|
||||
border: 2px solid #393f3f;
|
||||
border-radius: 2px;
|
||||
icon-size: 16px;
|
||||
padding: 8px; }
|
||||
|
||||
.system-switch-user-submenu-icon.user-icon {
|
||||
icon-size: 20px;
|
||||
padding: 0 2px; }
|
||||
@ -823,7 +901,7 @@ StScrollBar {
|
||||
color: transparent; }
|
||||
|
||||
.aggregate-menu {
|
||||
width: 280px; }
|
||||
min-width: 21em; }
|
||||
.aggregate-menu .popup-menu-icon {
|
||||
padding: 0 4px; }
|
||||
|
||||
@ -960,10 +1038,14 @@ StScrollBar {
|
||||
.search-entry {
|
||||
width: 320px;
|
||||
padding: 7px 9px;
|
||||
border-radius: 6px; }
|
||||
border-radius: 6px;
|
||||
border-color: #747467;
|
||||
color: #eeeeec;
|
||||
background-color: #2e3436; }
|
||||
.search-entry:focus {
|
||||
padding: 6px 8px;
|
||||
border-width: 2px; }
|
||||
border-width: 2px;
|
||||
border-color: #215d9c; }
|
||||
.search-entry .search-entry-icon {
|
||||
icon-size: 1em;
|
||||
padding: 0 4px;
|
||||
|
@ -23,11 +23,6 @@ const GnomeShellIface = '<node> \
|
||||
</interface> \
|
||||
</node>';
|
||||
|
||||
const customCss = '.prefs-button { \
|
||||
padding: 8px; \
|
||||
border-radius: 20px; \
|
||||
}';
|
||||
|
||||
const GnomeShellProxy = Gio.DBusProxy.makeProxyWrapper(GnomeShellIface);
|
||||
|
||||
function stripPrefix(string, prefix) {
|
||||
@ -176,21 +171,6 @@ const Application = new Lang.Class({
|
||||
this._window.show_all();
|
||||
},
|
||||
|
||||
_addCustomStyle: function() {
|
||||
let provider = new Gtk.CssProvider();
|
||||
|
||||
try {
|
||||
provider.load_from_data(customCss, -1);
|
||||
} catch(e) {
|
||||
log('Failed to add application style');
|
||||
return;
|
||||
}
|
||||
|
||||
let screen = this._window.window.get_screen();
|
||||
let priority = Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION;
|
||||
Gtk.StyleContext.add_provider_for_screen(screen, provider, priority);
|
||||
},
|
||||
|
||||
_sortList: function(row1, row2) {
|
||||
let name1 = ExtensionUtils.extensions[row1.uuid].metadata.name;
|
||||
let name2 = ExtensionUtils.extensions[row2.uuid].metadata.name;
|
||||
@ -239,7 +219,6 @@ const Application = new Lang.Class({
|
||||
|
||||
_onStartup: function(app) {
|
||||
this._buildUI(app);
|
||||
this._addCustomStyle();
|
||||
this._scanExtensions();
|
||||
},
|
||||
|
||||
@ -316,7 +295,7 @@ const ExtensionRow = new Lang.Class({
|
||||
button.add(new Gtk.Image({ icon_name: 'emblem-system-symbolic',
|
||||
icon_size: Gtk.IconSize.BUTTON,
|
||||
visible: true }));
|
||||
button.get_style_context().add_class('prefs-button');
|
||||
button.get_style_context().add_class('circular');
|
||||
hbox.add(button);
|
||||
|
||||
this.prefsButton = button;
|
||||
|
@ -189,7 +189,8 @@ const AuthPrompt = new Lang.Class({
|
||||
this._updateNextButtonSensitivity(this._entry.text.length > 0);
|
||||
}));
|
||||
this._entry.clutter_text.connect('activate', Lang.bind(this, function() {
|
||||
this.emit('next');
|
||||
if (this.nextButton.reactive)
|
||||
this.emit('next');
|
||||
}));
|
||||
},
|
||||
|
||||
|
@ -16,6 +16,34 @@
|
||||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/*
|
||||
* In order for transformation animations to look good, they need to be
|
||||
* incremental and have some order to them (e.g., fade out hidden items,
|
||||
* then shrink to close the void left over). Chaining animations in this way can
|
||||
* be error-prone and wordy using just Tweener callbacks.
|
||||
*
|
||||
* The classes in this file help with this:
|
||||
*
|
||||
* - Task. encapsulates schedulable work to be run in a specific scope.
|
||||
*
|
||||
* - ConsecutiveBatch. runs a series of tasks in order and completes
|
||||
* when the last in the series finishes.
|
||||
*
|
||||
* - ConcurrentBatch. runs a set of tasks at the same time and completes
|
||||
* when the last to finish completes.
|
||||
*
|
||||
* - Hold. prevents a batch from completing the pending task until
|
||||
* the hold is released.
|
||||
*
|
||||
* The tasks associated with a batch are specified in a list at batch
|
||||
* construction time as either task objects or plain functions.
|
||||
* Batches are task objects, themselves, so they can be nested.
|
||||
*
|
||||
* These classes aren't specific to GDM, but were found to be unintuitive and so
|
||||
* are not used elsewhere. These APIs may ultimately get dropped entirely and
|
||||
* replaced by something else.
|
||||
*/
|
||||
|
||||
const Lang = imports.lang;
|
||||
const Signals = imports.signals;
|
||||
|
||||
|
@ -96,7 +96,7 @@ const UserListItem = new Lang.Class({
|
||||
},
|
||||
|
||||
_onDestroy: function() {
|
||||
this._user.disconnect(this._userChangedId);
|
||||
this.user.disconnect(this._userChangedId);
|
||||
},
|
||||
|
||||
_onClicked: function() {
|
||||
@ -212,6 +212,10 @@ const UserList = new Lang.Class({
|
||||
return item;
|
||||
},
|
||||
|
||||
containsUser: function(user) {
|
||||
return this._items[user.get_user_name()] != null;
|
||||
},
|
||||
|
||||
addUser: function(user) {
|
||||
if (!user.is_loaded)
|
||||
return;
|
||||
@ -924,11 +928,7 @@ const LoginDialog = new Lang.Class({
|
||||
},
|
||||
onUpdateScope: this,
|
||||
onComplete: function() {
|
||||
let id = Mainloop.idle_add(Lang.bind(this, function() {
|
||||
this._greeter.call_start_session_when_ready_sync(serviceName, true, null);
|
||||
return GLib.SOURCE_REMOVE;
|
||||
}));
|
||||
GLib.Source.set_name_by_id(id, '[gnome-shell] this._greeter.call_start_session_when_ready_sync');
|
||||
this._greeter.call_start_session_when_ready_sync(serviceName, true, null);
|
||||
},
|
||||
onCompleteScope: this });
|
||||
},
|
||||
@ -1130,6 +1130,10 @@ const LoginDialog = new Lang.Class({
|
||||
this._userManager.disconnect(this._userRemovedId);
|
||||
this._userRemovedId = 0;
|
||||
}
|
||||
if (this._userChangedId) {
|
||||
this._userManager.disconnect(this._userChangedId);
|
||||
this._userChangedId = 0;
|
||||
}
|
||||
this._textureCache.disconnect(this._updateLogoTextureId);
|
||||
Main.layoutManager.disconnect(this._startupCompleteId);
|
||||
if (this._settings) {
|
||||
@ -1176,6 +1180,14 @@ const LoginDialog = new Lang.Class({
|
||||
this._userList.removeUser(user);
|
||||
}));
|
||||
|
||||
this._userChangedId = this._userManager.connect('user-changed',
|
||||
Lang.bind(this, function(userManager, user) {
|
||||
if (this._userList.containsUser(user) && user.locked)
|
||||
this._userList.removeUser(user);
|
||||
else if (!this._userList.containsUser(user) && !user.locked)
|
||||
this._userList.addUser(user);
|
||||
}));
|
||||
|
||||
return GLib.SOURCE_REMOVE;
|
||||
},
|
||||
|
||||
|
@ -35,6 +35,7 @@
|
||||
<file>ui/animation.js</file>
|
||||
<file>ui/appDisplay.js</file>
|
||||
<file>ui/appFavorites.js</file>
|
||||
<file>ui/audioDeviceSelection.js</file>
|
||||
<file>ui/backgroundMenu.js</file>
|
||||
<file>ui/background.js</file>
|
||||
<file>ui/boxpointer.js</file>
|
||||
@ -62,7 +63,9 @@
|
||||
<file>ui/magnifierDBus.js</file>
|
||||
<file>ui/main.js</file>
|
||||
<file>ui/messageTray.js</file>
|
||||
<file>ui/messageList.js</file>
|
||||
<file>ui/modalDialog.js</file>
|
||||
<file>ui/mpris.js</file>
|
||||
<file>ui/notificationDaemon.js</file>
|
||||
<file>ui/osdWindow.js</file>
|
||||
<file>ui/osdMonitorLabeler.js</file>
|
||||
|
@ -448,8 +448,6 @@ const AppSwitcher = new Lang.Class({
|
||||
});
|
||||
if (appIcon.cachedWindows.length > 0)
|
||||
this._addIcon(appIcon);
|
||||
else if (workspace == null)
|
||||
throw new Error('%s appears to be running, but doesn\'t have any windows'.format(appIcon.app.get_name()));
|
||||
}
|
||||
|
||||
this._curApp = -1;
|
||||
@ -687,15 +685,17 @@ const WindowIcon = new Lang.Class({
|
||||
|
||||
this._icon.destroy_all_children();
|
||||
|
||||
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
|
||||
|
||||
switch (mode) {
|
||||
case AppIconMode.THUMBNAIL_ONLY:
|
||||
size = WINDOW_PREVIEW_SIZE;
|
||||
this._icon.add_actor(_createWindowClone(mutterWindow, WINDOW_PREVIEW_SIZE));
|
||||
this._icon.add_actor(_createWindowClone(mutterWindow, size * scaleFactor));
|
||||
break;
|
||||
|
||||
case AppIconMode.BOTH:
|
||||
size = WINDOW_PREVIEW_SIZE;
|
||||
this._icon.add_actor(_createWindowClone(mutterWindow, WINDOW_PREVIEW_SIZE));
|
||||
this._icon.add_actor(_createWindowClone(mutterWindow, size * scaleFactor));
|
||||
|
||||
if (this.app)
|
||||
this._icon.add_actor(this._createAppIcon(this.app,
|
||||
@ -707,7 +707,7 @@ const WindowIcon = new Lang.Class({
|
||||
this._icon.add_actor(this._createAppIcon(this.app, size));
|
||||
}
|
||||
|
||||
this._icon.set_size(size, size);
|
||||
this._icon.set_size(size * scaleFactor, size * scaleFactor);
|
||||
},
|
||||
|
||||
_createAppIcon: function(app, size) {
|
||||
|
@ -7,7 +7,7 @@ const St = imports.gi.St;
|
||||
const Signals = imports.signals;
|
||||
const Atk = imports.gi.Atk;
|
||||
|
||||
const ANIMATED_ICON_UPDATE_TIMEOUT = 14;
|
||||
const ANIMATED_ICON_UPDATE_TIMEOUT = 16;
|
||||
|
||||
const Animation = new Lang.Class({
|
||||
Name: 'Animation',
|
||||
@ -33,7 +33,7 @@ const Animation = new Lang.Class({
|
||||
if (this._frame == 0)
|
||||
this._showFrame(0);
|
||||
|
||||
this._timeoutId = Mainloop.timeout_add(this._speed, Lang.bind(this, this._update));
|
||||
this._timeoutId = GLib.timeout_add(GLib.PRIORITY_LOW, this._speed, Lang.bind(this, this._update));
|
||||
GLib.Source.set_name_by_id(this._timeoutId, '[gnome-shell] this._update');
|
||||
}
|
||||
|
||||
|
@ -16,16 +16,18 @@ const RENAMED_DESKTOP_IDS = {
|
||||
'glchess.desktop': 'gnome-chess.desktop',
|
||||
'glines.desktop': 'five-or-more.desktop',
|
||||
'gnect.desktop': 'four-in-a-row.desktop',
|
||||
'gnibbles.desktop': 'gnome-nibbles.desktop',
|
||||
'gnibbles.desktop': 'org.gnome.Nibbles.desktop',
|
||||
'gnobots2.desktop': 'gnome-robots.desktop',
|
||||
'gnome-boxes.desktop': 'org.gnome.Boxes.desktop',
|
||||
'gnome-clocks.desktop': 'org.gnome.clocks.desktop',
|
||||
'gnome-contacts.desktop': 'org.gnome.Contacts.desktop',
|
||||
'gnome-documents.desktop': 'org.gnome.Documents.desktop',
|
||||
'gnome-font-viewer.desktop': 'org.gnome.font-viewer.desktop',
|
||||
'gnome-nibbles.desktop': 'org.gnome.Nibbles.desktop',
|
||||
'gnome-photos.desktop': 'org.gnome.Photos.desktop',
|
||||
'gnome-screenshot.desktop': 'org.gnome.Screenshot.desktop',
|
||||
'gnome-software.desktop': 'org.gnome.Software.desktop',
|
||||
'gnome-terminal.desktop': 'org.gnome.Terminal.desktop',
|
||||
'gnome-weather.desktop': 'org.gnome.Weather.Application.desktop',
|
||||
'gnomine.desktop': 'gnome-mines.desktop',
|
||||
'gnotravex.desktop': 'gnome-tetravex.desktop',
|
||||
|
216
js/ui/audioDeviceSelection.js
Normal file
216
js/ui/audioDeviceSelection.js
Normal file
@ -0,0 +1,216 @@
|
||||
const Clutter = imports.gi.Clutter;
|
||||
const Gio = imports.gi.Gio;
|
||||
const GLib = imports.gi.GLib;
|
||||
const Lang = imports.lang;
|
||||
const Meta = imports.gi.Meta;
|
||||
const Shell = imports.gi.Shell;
|
||||
const St = imports.gi.St;
|
||||
|
||||
const Main = imports.ui.main;
|
||||
const ModalDialog = imports.ui.modalDialog;
|
||||
|
||||
const AudioDevice = {
|
||||
HEADPHONES: 1 << 0,
|
||||
HEADSET: 1 << 1,
|
||||
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 AudioDeviceSelectionDialog = new Lang.Class({
|
||||
Name: 'AudioDeviceSelectionDialog',
|
||||
Extends: ModalDialog.ModalDialog,
|
||||
|
||||
_init: function(devices) {
|
||||
this.parent({ styleClass: 'audio-device-selection-dialog' });
|
||||
|
||||
this._deviceItems = {};
|
||||
|
||||
this._buildLayout();
|
||||
|
||||
if (devices & AudioDevice.HEADPHONES)
|
||||
this._addDevice(AudioDevice.HEADPHONES);
|
||||
if (devices & AudioDevice.HEADSET)
|
||||
this._addDevice(AudioDevice.HEADSET);
|
||||
if (devices & AudioDevice.MICROPHONE)
|
||||
this._addDevice(AudioDevice.MICROPHONE);
|
||||
|
||||
if (this._selectionBox.get_n_children() < 2)
|
||||
throw new Error('Too few devices for a selection');
|
||||
},
|
||||
|
||||
destroy: function() {
|
||||
this.parent();
|
||||
},
|
||||
|
||||
_buildLayout: function(devices) {
|
||||
let title = new St.Label({ style_class: 'audio-selection-title',
|
||||
text: _("Select Audio Device"),
|
||||
x_align: Clutter.ActorAlign.CENTER });
|
||||
|
||||
this.contentLayout.style_class = 'audio-selection-content';
|
||||
this.contentLayout.add(title);
|
||||
|
||||
this._selectionBox = new St.BoxLayout({ style_class: 'audio-selection-box' });
|
||||
this.contentLayout.add(this._selectionBox, { expand: true });
|
||||
|
||||
this.addButton({ action: Lang.bind(this, this._openSettings),
|
||||
label: _("Sound Settings") });
|
||||
this.addButton({ action: Lang.bind(this, this.close),
|
||||
label: _("Cancel"),
|
||||
key: Clutter.Escape });
|
||||
},
|
||||
|
||||
_getDeviceLabel: function(device) {
|
||||
switch(device) {
|
||||
case AudioDevice.HEADPHONES:
|
||||
return _("Headphones");
|
||||
case AudioDevice.HEADSET:
|
||||
return _("Headset");
|
||||
case AudioDevice.MICROPHONE:
|
||||
return _("Microphone");
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
},
|
||||
|
||||
_getDeviceIcon: function(device) {
|
||||
switch(device) {
|
||||
case AudioDevice.HEADPHONES:
|
||||
return 'audio-headphones-symbolic';
|
||||
case AudioDevice.HEADSET:
|
||||
return 'audio-headset-symbolic';
|
||||
case AudioDevice.MICROPHONE:
|
||||
return 'audio-input-microphone-symbolic';
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
},
|
||||
|
||||
_addDevice: function(device) {
|
||||
let box = new St.BoxLayout({ style_class: 'audio-selection-device-box',
|
||||
vertical: true });
|
||||
box.connect('notify::height',
|
||||
function() {
|
||||
Meta.later_add(Meta.LaterType.BEFORE_REDRAW,
|
||||
function() {
|
||||
box.width = box.height;
|
||||
});
|
||||
});
|
||||
|
||||
let icon = new St.Icon({ style_class: 'audio-selection-device-icon',
|
||||
icon_name: this._getDeviceIcon(device) });
|
||||
box.add(icon);
|
||||
|
||||
let label = new St.Label({ style_class: 'audio-selection-device-label',
|
||||
text: this._getDeviceLabel(device),
|
||||
x_align: Clutter.ActorAlign.CENTER });
|
||||
box.add(label);
|
||||
|
||||
let button = new St.Button({ style_class: 'audio-selection-device',
|
||||
can_focus: true,
|
||||
child: box });
|
||||
this._selectionBox.add(button);
|
||||
|
||||
button.connect('clicked', Lang.bind(this,
|
||||
function() {
|
||||
this.emit('device-selected', device);
|
||||
this.close();
|
||||
Main.overview.hide();
|
||||
}));
|
||||
},
|
||||
|
||||
_openSettings: function() {
|
||||
let desktopFile = 'gnome-sound-panel.desktop'
|
||||
let app = Shell.AppSystem.get_default().lookup_app(desktopFile);
|
||||
|
||||
if (!app) {
|
||||
log('Settings panel for desktop file ' + desktopFile + ' could not be loaded!');
|
||||
return;
|
||||
}
|
||||
|
||||
this.close();
|
||||
Main.overview.hide();
|
||||
app.activate();
|
||||
}
|
||||
});
|
||||
|
||||
const AudioDeviceSelectionDBus = new Lang.Class({
|
||||
Name: 'AudioDeviceSelectionDBus',
|
||||
|
||||
_init: function() {
|
||||
this._audioSelectionDialog = null;
|
||||
|
||||
this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(AudioDeviceSelectionIface, this);
|
||||
this._dbusImpl.export(Gio.DBus.session, '/org/gnome/Shell/AudioDeviceSelection');
|
||||
|
||||
Gio.DBus.session.own_name('org.gnome.Shell.AudioDeviceSelection', Gio.BusNameOwnerFlags.REPLACE, null, null);
|
||||
},
|
||||
|
||||
_onDialogClosed: function() {
|
||||
this._audioSelectionDialog = null;
|
||||
},
|
||||
|
||||
_onDeviceSelected: function(dialog, device) {
|
||||
let connection = this._dbusImpl.get_connection();
|
||||
let info = this._dbusImpl.get_info();
|
||||
let deviceName = Object.keys(AudioDevice).filter(
|
||||
function(dev) {
|
||||
return AudioDevice[dev] == device;
|
||||
})[0].toLowerCase();
|
||||
connection.emit_signal(this._audioSelectionDialog._sender,
|
||||
this._dbusImpl.get_object_path(),
|
||||
info ? info.name : null,
|
||||
'DeviceSelected',
|
||||
GLib.Variant.new('(s)', [deviceName]));
|
||||
},
|
||||
|
||||
OpenAsync: function(params, invocation) {
|
||||
if (this._audioSelectionDialog) {
|
||||
invocation.return_value(null);
|
||||
return;
|
||||
}
|
||||
|
||||
let [deviceNames] = params;
|
||||
let devices = 0;
|
||||
deviceNames.forEach(function(n) {
|
||||
devices |= AudioDevice[n.toUpperCase()];
|
||||
});
|
||||
|
||||
let dialog;
|
||||
try {
|
||||
dialog = new AudioDeviceSelectionDialog(devices);
|
||||
} catch(e) {
|
||||
invocation.return_value(null);
|
||||
return;
|
||||
}
|
||||
dialog._sender = invocation.get_sender();
|
||||
|
||||
dialog.connect('closed', Lang.bind(this, this._onDialogClosed));
|
||||
dialog.connect('device-selected',
|
||||
Lang.bind(this, this._onDeviceSelected));
|
||||
dialog.open();
|
||||
|
||||
this._audioSelectionDialog = dialog;
|
||||
invocation.return_value(null);
|
||||
},
|
||||
|
||||
CloseAsync: function(params, invocation) {
|
||||
if (this._audioSelectionDialog &&
|
||||
this._audioSelectionDialog._sender == invocation.get_sender())
|
||||
this._audioSelectionDialog.close();
|
||||
|
||||
invocation.return_value(null);
|
||||
}
|
||||
});
|
@ -247,6 +247,13 @@ const Background = new Lang.Class({
|
||||
this._cancellable = new Gio.Cancellable();
|
||||
this.isLoaded = false;
|
||||
|
||||
this._clock = new GnomeDesktop.WallClock();
|
||||
this._timezoneChangedId = this._clock.connect('notify::timezone',
|
||||
Lang.bind(this, function() {
|
||||
if (this._animation)
|
||||
this._loadAnimation(this._animation.file);
|
||||
}));
|
||||
|
||||
this._settingsChangedSignalId = this._settings.connect('changed', Lang.bind(this, function() {
|
||||
this.emit('changed');
|
||||
}));
|
||||
@ -265,6 +272,10 @@ const Background = new Lang.Class({
|
||||
}
|
||||
this._fileWatches = null;
|
||||
|
||||
if (this._timezoneChangedId != 0)
|
||||
this._clock.disconnect(this._timezoneChangedId);
|
||||
this._timezoneChangedId = 0;
|
||||
|
||||
if (this._settingsChangedSignalId != 0)
|
||||
this._settings.disconnect(this._settingsChangedSignalId);
|
||||
this._settingsChangedSignalId = 0;
|
||||
|
@ -1,23 +1,19 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const Atk = imports.gi.Atk;
|
||||
const Clutter = imports.gi.Clutter;
|
||||
const Gio = imports.gi.Gio;
|
||||
const GLib = imports.gi.GLib;
|
||||
const GObject = imports.gi.GObject;
|
||||
const Gtk = imports.gi.Gtk;
|
||||
const Lang = imports.lang;
|
||||
const St = imports.gi.St;
|
||||
const Signals = imports.signals;
|
||||
const Pango = imports.gi.Pango;
|
||||
const Gettext_gtk30 = imports.gettext.domain('gtk30');
|
||||
const Mainloop = imports.mainloop;
|
||||
const Meta = imports.gi.Meta;
|
||||
const Shell = imports.gi.Shell;
|
||||
|
||||
const Main = imports.ui.main;
|
||||
const MessageList = imports.ui.messageList;
|
||||
const MessageTray = imports.ui.messageTray;
|
||||
const Tweener = imports.ui.tweener;
|
||||
const Mpris = imports.ui.mpris;
|
||||
const Util = imports.misc.util;
|
||||
|
||||
const MSECS_IN_DAY = 24 * 60 * 60 * 1000;
|
||||
@ -26,28 +22,24 @@ const ELLIPSIS_CHAR = '\u2026';
|
||||
|
||||
const MESSAGE_ICON_SIZE = 32;
|
||||
|
||||
const MESSAGE_ANIMATION_TIME = 0.1;
|
||||
|
||||
const DEFAULT_EXPAND_LINES = 6;
|
||||
|
||||
// alias to prevent xgettext from picking up strings translated in GTK+
|
||||
const gtk30_ = Gettext_gtk30.gettext;
|
||||
const NC_ = function(context, str) { return context + '\u0004' + str; };
|
||||
|
||||
function _sameYear(dateA, dateB) {
|
||||
function sameYear(dateA, dateB) {
|
||||
return (dateA.getYear() == dateB.getYear());
|
||||
}
|
||||
|
||||
function _sameMonth(dateA, dateB) {
|
||||
return _sameYear(dateA, dateB) && (dateA.getMonth() == dateB.getMonth());
|
||||
function sameMonth(dateA, dateB) {
|
||||
return sameYear(dateA, dateB) && (dateA.getMonth() == dateB.getMonth());
|
||||
}
|
||||
|
||||
function _sameDay(dateA, dateB) {
|
||||
return _sameMonth(dateA, dateB) && (dateA.getDate() == dateB.getDate());
|
||||
function sameDay(dateA, dateB) {
|
||||
return sameMonth(dateA, dateB) && (dateA.getDate() == dateB.getDate());
|
||||
}
|
||||
|
||||
function _isToday(date) {
|
||||
return _sameDay(new Date(), date);
|
||||
function isToday(date) {
|
||||
return sameDay(new Date(), date);
|
||||
}
|
||||
|
||||
function _isWorkDay(date) {
|
||||
@ -98,148 +90,6 @@ function _getCalendarDayAbbreviation(dayNumber) {
|
||||
return Shell.util_translate_time_string(abbreviations[dayNumber]);
|
||||
}
|
||||
|
||||
function _fixMarkup(text, allowMarkup) {
|
||||
if (allowMarkup) {
|
||||
// Support &, ", ', < and >, escape all other
|
||||
// occurrences of '&'.
|
||||
let _text = text.replace(/&(?!amp;|quot;|apos;|lt;|gt;)/g, '&');
|
||||
|
||||
// Support <b>, <i>, and <u>, escape anything else
|
||||
// so it displays as raw markup.
|
||||
_text = _text.replace(/<(?!\/?[biu]>)/g, '<');
|
||||
|
||||
try {
|
||||
Pango.parse_markup(_text, -1, '');
|
||||
return _text;
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
// !allowMarkup, or invalid markup
|
||||
return GLib.markup_escape_text(text, -1);
|
||||
}
|
||||
|
||||
const URLHighlighter = new Lang.Class({
|
||||
Name: 'URLHighlighter',
|
||||
|
||||
_init: function(text, lineWrap, allowMarkup) {
|
||||
if (!text)
|
||||
text = '';
|
||||
this.actor = new St.Label({ reactive: true, style_class: 'url-highlighter',
|
||||
x_expand: true, x_align: Clutter.ActorAlign.START });
|
||||
this._linkColor = '#ccccff';
|
||||
this.actor.connect('style-changed', Lang.bind(this, function() {
|
||||
let [hasColor, color] = this.actor.get_theme_node().lookup_color('link-color', false);
|
||||
if (hasColor) {
|
||||
let linkColor = color.to_string().substr(0, 7);
|
||||
if (linkColor != this._linkColor) {
|
||||
this._linkColor = linkColor;
|
||||
this._highlightUrls();
|
||||
}
|
||||
}
|
||||
}));
|
||||
this.actor.clutter_text.line_wrap = lineWrap;
|
||||
this.actor.clutter_text.line_wrap_mode = Pango.WrapMode.WORD_CHAR;
|
||||
|
||||
this.setMarkup(text, allowMarkup);
|
||||
this.actor.connect('button-press-event', Lang.bind(this, function(actor, event) {
|
||||
// Don't try to URL highlight when invisible.
|
||||
// The MessageTray doesn't actually hide us, so
|
||||
// we need to check for paint opacities as well.
|
||||
if (!actor.visible || actor.get_paint_opacity() == 0)
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
|
||||
// Keep Notification.actor from seeing this and taking
|
||||
// a pointer grab, which would block our button-release-event
|
||||
// handler, if an URL is clicked
|
||||
return this._findUrlAtPos(event) != -1;
|
||||
}));
|
||||
this.actor.connect('button-release-event', Lang.bind(this, function (actor, event) {
|
||||
if (!actor.visible || actor.get_paint_opacity() == 0)
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
|
||||
let urlId = this._findUrlAtPos(event);
|
||||
if (urlId != -1) {
|
||||
let url = this._urls[urlId].url;
|
||||
if (url.indexOf(':') == -1)
|
||||
url = 'http://' + url;
|
||||
|
||||
Gio.app_info_launch_default_for_uri(url, global.create_app_launch_context(0, -1));
|
||||
return Clutter.EVENT_STOP;
|
||||
}
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
}));
|
||||
this.actor.connect('motion-event', Lang.bind(this, function(actor, event) {
|
||||
if (!actor.visible || actor.get_paint_opacity() == 0)
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
|
||||
let urlId = this._findUrlAtPos(event);
|
||||
if (urlId != -1 && !this._cursorChanged) {
|
||||
global.screen.set_cursor(Meta.Cursor.POINTING_HAND);
|
||||
this._cursorChanged = true;
|
||||
} else if (urlId == -1) {
|
||||
global.screen.set_cursor(Meta.Cursor.DEFAULT);
|
||||
this._cursorChanged = false;
|
||||
}
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
}));
|
||||
this.actor.connect('leave-event', Lang.bind(this, function() {
|
||||
if (!this.actor.visible || this.actor.get_paint_opacity() == 0)
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
|
||||
if (this._cursorChanged) {
|
||||
this._cursorChanged = false;
|
||||
global.screen.set_cursor(Meta.Cursor.DEFAULT);
|
||||
}
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
}));
|
||||
},
|
||||
|
||||
setMarkup: function(text, allowMarkup) {
|
||||
text = text ? _fixMarkup(text, allowMarkup) : '';
|
||||
this._text = text;
|
||||
|
||||
this.actor.clutter_text.set_markup(text);
|
||||
/* clutter_text.text contain text without markup */
|
||||
this._urls = Util.findUrls(this.actor.clutter_text.text);
|
||||
this._highlightUrls();
|
||||
},
|
||||
|
||||
_highlightUrls: function() {
|
||||
// text here contain markup
|
||||
let urls = Util.findUrls(this._text);
|
||||
let markup = '';
|
||||
let pos = 0;
|
||||
for (let i = 0; i < urls.length; i++) {
|
||||
let url = urls[i];
|
||||
let str = this._text.substr(pos, url.pos - pos);
|
||||
markup += str + '<span foreground="' + this._linkColor + '"><u>' + url.url + '</u></span>';
|
||||
pos = url.pos + url.url.length;
|
||||
}
|
||||
markup += this._text.substr(pos);
|
||||
this.actor.clutter_text.set_markup(markup);
|
||||
},
|
||||
|
||||
_findUrlAtPos: function(event) {
|
||||
let success;
|
||||
let [x, y] = event.get_coords();
|
||||
[success, x, y] = this.actor.transform_stage_point(x, y);
|
||||
let find_pos = -1;
|
||||
for (let i = 0; i < this.actor.clutter_text.text.length; i++) {
|
||||
let [success, px, py, line_height] = this.actor.clutter_text.position_to_coords(i);
|
||||
if (py > y || py + line_height < y || x < px)
|
||||
continue;
|
||||
find_pos = i;
|
||||
}
|
||||
if (find_pos != -1) {
|
||||
for (let i = 0; i < this._urls.length; i++)
|
||||
if (find_pos >= this._urls[i].pos &&
|
||||
this._urls[i].pos + this._urls[i].url.length > find_pos)
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
});
|
||||
|
||||
// Abstraction for an appointment/event in a calendar
|
||||
|
||||
const CalendarEvent = new Lang.Class({
|
||||
@ -544,7 +394,7 @@ const Calendar = new Lang.Class({
|
||||
|
||||
// Sets the calendar to show a specific date
|
||||
setDate: function(date) {
|
||||
if (_sameDay(date, this._selectedDate))
|
||||
if (sameDay(date, this._selectedDate))
|
||||
return;
|
||||
|
||||
this._selectedDate = date;
|
||||
@ -725,7 +575,8 @@ const Calendar = new Lang.Class({
|
||||
// nRows here means 6 weeks + one header + one navbar
|
||||
let nRows = 8;
|
||||
while (row < 8) {
|
||||
let button = new St.Button({ label: iter.getDate().toString(),
|
||||
// xgettext:no-javascript-format
|
||||
let button = new St.Button({ label: iter.toLocaleFormat(C_("date day number format", "%d")),
|
||||
can_focus: true });
|
||||
let rtl = button.get_text_direction() == Clutter.TextDirection.RTL;
|
||||
|
||||
@ -756,7 +607,7 @@ const Calendar = new Lang.Class({
|
||||
if (leftMost)
|
||||
styleClass = 'calendar-day-left ' + styleClass;
|
||||
|
||||
if (_sameDay(now, iter))
|
||||
if (sameDay(now, iter))
|
||||
styleClass += ' calendar-today';
|
||||
else if (iter.getMonth() != this._selectedDate.getMonth())
|
||||
styleClass += ' calendar-other-month-day';
|
||||
@ -799,16 +650,16 @@ const Calendar = new Lang.Class({
|
||||
_update: function() {
|
||||
let now = new Date();
|
||||
|
||||
if (_sameYear(this._selectedDate, now))
|
||||
if (sameYear(this._selectedDate, now))
|
||||
this._monthLabel.text = this._selectedDate.toLocaleFormat(this._headerFormatWithoutYear);
|
||||
else
|
||||
this._monthLabel.text = this._selectedDate.toLocaleFormat(this._headerFormat);
|
||||
|
||||
if (!this._calendarBegin || !_sameMonth(this._selectedDate, this._calendarBegin) || !_sameDay(now, this._markedAsToday))
|
||||
if (!this._calendarBegin || !sameMonth(this._selectedDate, this._calendarBegin) || !sameDay(now, this._markedAsToday))
|
||||
this._rebuildCalendar();
|
||||
|
||||
this._buttons.forEach(Lang.bind(this, function(button) {
|
||||
if (_sameDay(button._date, this._selectedDate)) {
|
||||
if (sameDay(button._date, this._selectedDate)) {
|
||||
button.add_style_pseudo_class('active');
|
||||
if (this._shouldDateGrabFocus)
|
||||
button.grab_key_focus();
|
||||
@ -820,353 +671,9 @@ const Calendar = new Lang.Class({
|
||||
});
|
||||
Signals.addSignalMethods(Calendar.prototype);
|
||||
|
||||
const ScaleLayout = new Lang.Class({
|
||||
Name: 'ScaleLayout',
|
||||
Extends: Clutter.BinLayout,
|
||||
|
||||
_connectContainer: function(container) {
|
||||
if (this._container == container)
|
||||
return;
|
||||
|
||||
if (this._container)
|
||||
for (let id of this._signals)
|
||||
this._container.disconnect(id);
|
||||
|
||||
this._container = container;
|
||||
this._signals = [];
|
||||
|
||||
if (this._container)
|
||||
for (let signal of ['notify::scale-x', 'notify::scale-y']) {
|
||||
let id = this._container.connect(signal, Lang.bind(this,
|
||||
function() {
|
||||
this.layout_changed();
|
||||
}));
|
||||
this._signals.push(id);
|
||||
}
|
||||
},
|
||||
|
||||
vfunc_get_preferred_width: function(container, forHeight) {
|
||||
this._connectContainer(container);
|
||||
|
||||
let [min, nat] = this.parent(container, forHeight);
|
||||
return [Math.floor(min * container.scale_x),
|
||||
Math.floor(nat * container.scale_x)];
|
||||
},
|
||||
|
||||
vfunc_get_preferred_height: function(container, forWidth) {
|
||||
this._connectContainer(container);
|
||||
|
||||
let [min, nat] = this.parent(container, forWidth);
|
||||
return [Math.floor(min * container.scale_y),
|
||||
Math.floor(nat * container.scale_y)];
|
||||
}
|
||||
});
|
||||
|
||||
const LabelExpanderLayout = new Lang.Class({
|
||||
Name: 'LabelExpanderLayout',
|
||||
Extends: Clutter.LayoutManager,
|
||||
Properties: { 'expansion': GObject.ParamSpec.double('expansion',
|
||||
'Expansion',
|
||||
'Expansion of the layout, between 0 (collapsed) ' +
|
||||
'and 1 (fully expanded',
|
||||
GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE,
|
||||
0, 1, 0)},
|
||||
|
||||
_init: function(params) {
|
||||
this._expansion = 0;
|
||||
this._expandLines = DEFAULT_EXPAND_LINES;
|
||||
|
||||
this.parent(params);
|
||||
},
|
||||
|
||||
get expansion() {
|
||||
return this._expansion;
|
||||
},
|
||||
|
||||
set expansion(v) {
|
||||
if (v == this._expansion)
|
||||
return;
|
||||
this._expansion = v;
|
||||
this.notify('expansion');
|
||||
|
||||
let visibleIndex = this._expansion > 0 ? 1 : 0;
|
||||
for (let i = 0; this._container && i < this._container.get_n_children(); i++)
|
||||
this._container.get_child_at_index(i).visible = (i == visibleIndex);
|
||||
|
||||
this.layout_changed();
|
||||
},
|
||||
|
||||
set expandLines(v) {
|
||||
if (v == this._expandLines)
|
||||
return;
|
||||
this._expandLines = v;
|
||||
if (this._expansion > 0)
|
||||
this.layout_changed();
|
||||
},
|
||||
|
||||
vfunc_set_container: function(container) {
|
||||
this._container = container;
|
||||
},
|
||||
|
||||
vfunc_get_preferred_width: function(container, forHeight) {
|
||||
let [min, nat] = [0, 0];
|
||||
|
||||
for (let i = 0; i < container.get_n_children(); i++) {
|
||||
if (i > 1)
|
||||
break; // we support one unexpanded + one expanded child
|
||||
|
||||
let child = container.get_child_at_index(i);
|
||||
let [childMin, childNat] = child.get_preferred_width(forHeight);
|
||||
[min, nat] = [Math.max(min, childMin), Math.max(nat, childNat)];
|
||||
}
|
||||
|
||||
return [min, nat];
|
||||
},
|
||||
|
||||
vfunc_get_preferred_height: function(container, forWidth) {
|
||||
let [min, nat] = [0, 0];
|
||||
|
||||
let children = container.get_children();
|
||||
if (children[0])
|
||||
[min, nat] = children[0].get_preferred_height(forWidth);
|
||||
|
||||
if (children[1]) {
|
||||
let [min2, nat2] = children[1].get_preferred_height(forWidth);
|
||||
let [expMin, expNat] = [Math.min(min2, min * this._expandLines),
|
||||
Math.min(nat2, nat * this._expandLines)];
|
||||
[min, nat] = [min + this._expansion * (expMin - min),
|
||||
nat + this._expansion * (expNat - nat)];
|
||||
}
|
||||
|
||||
return [min, nat];
|
||||
},
|
||||
|
||||
vfunc_allocate: function(container, box, flags) {
|
||||
for (let i = 0; i < container.get_n_children(); i++) {
|
||||
let child = container.get_child_at_index(i);
|
||||
|
||||
if (child.visible)
|
||||
child.allocate(box, flags);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
const Message = new Lang.Class({
|
||||
Name: 'Message',
|
||||
|
||||
_init: function(title, body) {
|
||||
this.expanded = false;
|
||||
|
||||
this.actor = new St.Button({ style_class: 'message',
|
||||
accessible_role: Atk.Role.NOTIFICATION,
|
||||
can_focus: true,
|
||||
x_expand: true, x_fill: true });
|
||||
this.actor.connect('key-press-event',
|
||||
Lang.bind(this, this._onKeyPressed));
|
||||
|
||||
let vbox = new St.BoxLayout({ vertical: true });
|
||||
this.actor.set_child(vbox);
|
||||
|
||||
let hbox = new St.BoxLayout();
|
||||
vbox.add_actor(hbox);
|
||||
|
||||
this._actionBin = new St.Widget({ layout_manager: new ScaleLayout(),
|
||||
visible: false });
|
||||
vbox.add_actor(this._actionBin);
|
||||
|
||||
this._iconBin = new St.Bin({ style_class: 'message-icon-bin',
|
||||
y_expand: true,
|
||||
visible: false });
|
||||
hbox.add_actor(this._iconBin);
|
||||
|
||||
let contentBox = new St.BoxLayout({ style_class: 'message-content',
|
||||
vertical: true, x_expand: true });
|
||||
hbox.add_actor(contentBox);
|
||||
|
||||
let titleBox = new St.BoxLayout();
|
||||
contentBox.add_actor(titleBox);
|
||||
|
||||
this.titleLabel = new St.Label({ style_class: 'message-title',
|
||||
x_expand: true,
|
||||
x_align: Clutter.ActorAlign.START });
|
||||
this.setTitle(title);
|
||||
titleBox.add_actor(this.titleLabel);
|
||||
|
||||
this._secondaryBin = new St.Bin({ style_class: 'message-secondary-bin' });
|
||||
titleBox.add_actor(this._secondaryBin);
|
||||
|
||||
let closeIcon = new St.Icon({ icon_name: 'window-close-symbolic',
|
||||
icon_size: 16 });
|
||||
this._closeButton = new St.Button({ child: closeIcon, visible: false });
|
||||
titleBox.add_actor(this._closeButton);
|
||||
|
||||
this._bodyStack = new St.Widget({ x_expand: true });
|
||||
this._bodyStack.layout_manager = new LabelExpanderLayout();
|
||||
contentBox.add_actor(this._bodyStack);
|
||||
|
||||
this.bodyLabel = new URLHighlighter('', false, this._useBodyMarkup);
|
||||
this.bodyLabel.actor.add_style_class_name('message-body');
|
||||
this._bodyStack.add_actor(this.bodyLabel.actor);
|
||||
this.setBody(body);
|
||||
|
||||
this._closeButton.connect('clicked', Lang.bind(this, this.close));
|
||||
this.actor.connect('notify::hover', Lang.bind(this, this._sync));
|
||||
this.actor.connect('clicked', Lang.bind(this, this._onClicked));
|
||||
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
|
||||
this._sync();
|
||||
},
|
||||
|
||||
close: function() {
|
||||
this.emit('close');
|
||||
},
|
||||
|
||||
setIcon: function(actor) {
|
||||
this._iconBin.child = actor;
|
||||
this._iconBin.visible = (actor != null);
|
||||
},
|
||||
|
||||
setSecondaryActor: function(actor) {
|
||||
this._secondaryBin.child = actor;
|
||||
},
|
||||
|
||||
setTitle: function(text) {
|
||||
let title = text ? _fixMarkup(text.replace(/\n/g, ' '), false) : '';
|
||||
this.titleLabel.clutter_text.set_markup(title);
|
||||
},
|
||||
|
||||
setBody: function(text) {
|
||||
this._bodyText = text;
|
||||
this.bodyLabel.setMarkup(text ? text.replace(/\n/g, ' ') : '',
|
||||
this._useBodyMarkup);
|
||||
if (this._expandedLabel)
|
||||
this._expandedLabel.setMarkup(text, this._useBodyMarkup);
|
||||
},
|
||||
|
||||
setUseBodyMarkup: function(enable) {
|
||||
if (this._useBodyMarkup === enable)
|
||||
return;
|
||||
this._useBodyMarkup = enable;
|
||||
if (this.bodyLabel)
|
||||
this.setBody(this._bodyText);
|
||||
},
|
||||
|
||||
setActionArea: function(actor) {
|
||||
if (actor == null) {
|
||||
if (this._actionBin.get_n_children() > 0)
|
||||
this._actionBin.get_child_at_index(0).destroy();
|
||||
return;
|
||||
}
|
||||
|
||||
if (this._actionBin.get_n_children() > 0)
|
||||
throw new Error('Message already has an action area');
|
||||
|
||||
this._actionBin.add_actor(actor);
|
||||
this._actionBin.visible = this.expanded;
|
||||
},
|
||||
|
||||
setExpandedBody: function(actor) {
|
||||
if (actor == null) {
|
||||
if (this._bodyStack.get_n_children() > 1)
|
||||
this._bodyStack.get_child_at_index(1).destroy();
|
||||
return;
|
||||
}
|
||||
|
||||
if (this._bodyStack.get_n_children() > 1)
|
||||
throw new Error('Message already has an expanded body actor');
|
||||
|
||||
this._bodyStack.insert_child_at_index(actor, 1);
|
||||
},
|
||||
|
||||
setExpandedLines: function(nLines) {
|
||||
this._bodyStack.layout_manager.expandLines = nLines;
|
||||
},
|
||||
|
||||
expand: function(animate) {
|
||||
this.expanded = true;
|
||||
|
||||
this._actionBin.visible = (this._actionBin.get_n_children() > 0);
|
||||
|
||||
if (this._bodyStack.get_n_children() < 2) {
|
||||
this._expandedLabel = new URLHighlighter(this._bodyText,
|
||||
true, this._useBodyMarkup);
|
||||
this.setExpandedBody(this._expandedLabel.actor);
|
||||
}
|
||||
|
||||
if (animate) {
|
||||
Tweener.addTween(this._bodyStack.layout_manager,
|
||||
{ expansion: 1,
|
||||
time: MessageTray.ANIMATION_TIME,
|
||||
transition: 'easeOutQuad' });
|
||||
this._actionBin.scale_y = 0;
|
||||
Tweener.addTween(this._actionBin,
|
||||
{ scale_y: 1,
|
||||
time: MessageTray.ANIMATION_TIME,
|
||||
transition: 'easeOutQuad' });
|
||||
} else {
|
||||
this._bodyStack.layout_manager.expansion = 1;
|
||||
this._actionBin.scale_y = 1;
|
||||
}
|
||||
|
||||
this.emit('expanded');
|
||||
},
|
||||
|
||||
unexpand: function(animate) {
|
||||
if (animate) {
|
||||
Tweener.addTween(this._bodyStack.layout_manager,
|
||||
{ expansion: 0,
|
||||
time: MessageTray.ANIMATION_TIME,
|
||||
transition: 'easeOutQuad' });
|
||||
Tweener.addTween(this._actionBin,
|
||||
{ scale_y: 0,
|
||||
time: MessageTray.ANIMATION_TIME,
|
||||
transition: 'easeOutQuad',
|
||||
onCompleteScope: this,
|
||||
onComplete: function() {
|
||||
this._actionBin.hide();
|
||||
this.expanded = false;
|
||||
}});
|
||||
} else {
|
||||
this._bodyStack.layout_manager.expansion = 0;
|
||||
this._actionBin.scale_y = 0;
|
||||
this.expanded = false;
|
||||
}
|
||||
|
||||
this.emit('unexpanded');
|
||||
},
|
||||
|
||||
canClose: function() {
|
||||
return true;
|
||||
},
|
||||
|
||||
_sync: function() {
|
||||
let hovered = this.actor.hover;
|
||||
this._closeButton.visible = hovered && this.canClose();
|
||||
this._secondaryBin.visible = !hovered;
|
||||
},
|
||||
|
||||
_onClicked: function() {
|
||||
},
|
||||
|
||||
_onDestroy: function() {
|
||||
},
|
||||
|
||||
_onKeyPressed: function(a, event) {
|
||||
let keysym = event.get_key_symbol();
|
||||
|
||||
if (keysym == Clutter.KEY_Delete ||
|
||||
keysym == Clutter.KEY_KP_Delete) {
|
||||
this.close();
|
||||
return Clutter.EVENT_STOP;
|
||||
}
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
}
|
||||
});
|
||||
Signals.addSignalMethods(Message.prototype);
|
||||
|
||||
const EventMessage = new Lang.Class({
|
||||
Name: 'EventMessage',
|
||||
Extends: Message,
|
||||
Extends: MessageList.Message,
|
||||
|
||||
_init: function(event, date) {
|
||||
this._event = event;
|
||||
@ -1209,13 +716,13 @@ const EventMessage = new Lang.Class({
|
||||
},
|
||||
|
||||
canClose: function() {
|
||||
return _isToday(this._date);
|
||||
return isToday(this._date);
|
||||
}
|
||||
});
|
||||
|
||||
const NotificationMessage = new Lang.Class({
|
||||
Name: 'NotificationMessage',
|
||||
Extends: Message,
|
||||
Extends: MessageList.Message,
|
||||
|
||||
_init: function(notification) {
|
||||
this.notification = notification;
|
||||
@ -1269,217 +776,9 @@ const NotificationMessage = new Lang.Class({
|
||||
}
|
||||
});
|
||||
|
||||
const MessageListSection = new Lang.Class({
|
||||
Name: 'MessageListSection',
|
||||
|
||||
_init: function(title) {
|
||||
this.actor = new St.BoxLayout({ style_class: 'message-list-section',
|
||||
clip_to_allocation: true,
|
||||
x_expand: true, vertical: true });
|
||||
let titleBox = new St.BoxLayout({ style_class: 'message-list-section-title-box' });
|
||||
this.actor.add_actor(titleBox);
|
||||
|
||||
this._title = new St.Button({ style_class: 'message-list-section-title',
|
||||
label: title,
|
||||
can_focus: true,
|
||||
x_expand: true,
|
||||
x_align: St.Align.START });
|
||||
titleBox.add_actor(this._title);
|
||||
|
||||
this._title.connect('clicked', Lang.bind(this, this._onTitleClicked));
|
||||
this._title.connect('key-focus-in', Lang.bind(this, this._onKeyFocusIn));
|
||||
|
||||
let closeIcon = new St.Icon({ icon_name: 'window-close-symbolic' });
|
||||
this._closeButton = new St.Button({ style_class: 'message-list-section-close',
|
||||
child: closeIcon,
|
||||
accessible_name: _("Clear section"),
|
||||
can_focus: true });
|
||||
this._closeButton.set_x_align(Clutter.ActorAlign.END);
|
||||
titleBox.add_actor(this._closeButton);
|
||||
|
||||
this._closeButton.connect('clicked', Lang.bind(this, this.clear));
|
||||
|
||||
this._list = new St.BoxLayout({ style_class: 'message-list-section-list',
|
||||
vertical: true });
|
||||
this.actor.add_actor(this._list);
|
||||
|
||||
this._list.connect('actor-added', Lang.bind(this, this._sync));
|
||||
this._list.connect('actor-removed', Lang.bind(this, this._sync));
|
||||
|
||||
let id = Main.sessionMode.connect('updated',
|
||||
Lang.bind(this, this._sync));
|
||||
this.actor.connect('destroy', function() {
|
||||
Main.sessionMode.disconnect(id);
|
||||
});
|
||||
|
||||
this._messages = new Map();
|
||||
this._date = new Date();
|
||||
this.empty = true;
|
||||
this._sync();
|
||||
},
|
||||
|
||||
_onTitleClicked: function() {
|
||||
Main.overview.hide();
|
||||
Main.panel.closeCalendar();
|
||||
},
|
||||
|
||||
_onKeyFocusIn: function(actor) {
|
||||
this.emit('key-focus-in', actor);
|
||||
},
|
||||
|
||||
get allowed() {
|
||||
return true;
|
||||
},
|
||||
|
||||
setDate: function(date) {
|
||||
if (_sameDay(date, this._date))
|
||||
return;
|
||||
this._date = date;
|
||||
this._sync();
|
||||
},
|
||||
|
||||
addMessage: function(message, animate) {
|
||||
this.addMessageAtIndex(message, -1, animate);
|
||||
},
|
||||
|
||||
addMessageAtIndex: function(message, index, animate) {
|
||||
let obj = {
|
||||
container: null,
|
||||
destroyId: 0,
|
||||
keyFocusId: 0,
|
||||
closeId: 0
|
||||
};
|
||||
let pivot = new Clutter.Point({ x: .5, y: .5 });
|
||||
let scale = animate ? 0 : 1;
|
||||
obj.container = new St.Widget({ layout_manager: new ScaleLayout(),
|
||||
pivot_point: pivot,
|
||||
scale_x: scale, scale_y: scale });
|
||||
obj.keyFocusId = message.actor.connect('key-focus-in',
|
||||
Lang.bind(this, this._onKeyFocusIn));
|
||||
obj.destroyId = message.actor.connect('destroy',
|
||||
Lang.bind(this, function() {
|
||||
this.removeMessage(message, false);
|
||||
}));
|
||||
obj.closeId = message.connect('close',
|
||||
Lang.bind(this, function() {
|
||||
this.removeMessage(message, true);
|
||||
}));
|
||||
|
||||
this._messages.set(message, obj);
|
||||
obj.container.add_actor(message.actor);
|
||||
|
||||
this._list.insert_child_at_index(obj.container, index);
|
||||
|
||||
if (animate)
|
||||
Tweener.addTween(obj.container, { scale_x: 1,
|
||||
scale_y: 1,
|
||||
time: MESSAGE_ANIMATION_TIME,
|
||||
transition: 'easeOutQuad' });
|
||||
},
|
||||
|
||||
moveMessage: function(message, index, animate) {
|
||||
let obj = this._messages.get(message);
|
||||
|
||||
if (!animate) {
|
||||
this._list.set_child_at_index(obj.container, index);
|
||||
return;
|
||||
}
|
||||
|
||||
let onComplete = Lang.bind(this, function() {
|
||||
this._list.set_child_at_index(obj.container, index);
|
||||
Tweener.addTween(obj.container, { scale_x: 1,
|
||||
scale_y: 1,
|
||||
time: MESSAGE_ANIMATION_TIME,
|
||||
transition: 'easeOutQuad' });
|
||||
});
|
||||
Tweener.addTween(obj.container, { scale_x: 0,
|
||||
scale_y: 0,
|
||||
time: MESSAGE_ANIMATION_TIME,
|
||||
transition: 'easeOutQuad',
|
||||
onComplete: onComplete });
|
||||
},
|
||||
|
||||
removeMessage: function(message, animate) {
|
||||
let obj = this._messages.get(message);
|
||||
|
||||
message.actor.disconnect(obj.destroyId);
|
||||
message.actor.disconnect(obj.keyFocusId);
|
||||
message.disconnect(obj.closeId);
|
||||
|
||||
this._messages.delete(message);
|
||||
|
||||
if (animate) {
|
||||
Tweener.addTween(obj.container, { scale_x: 0, scale_y: 0,
|
||||
time: MESSAGE_ANIMATION_TIME,
|
||||
transition: 'easeOutQuad',
|
||||
onComplete: function() {
|
||||
obj.container.destroy();
|
||||
global.sync_pointer();
|
||||
}});
|
||||
} else {
|
||||
obj.container.destroy();
|
||||
global.sync_pointer();
|
||||
}
|
||||
},
|
||||
|
||||
clear: function() {
|
||||
let messages = [...this._messages.keys()].filter(function(message) {
|
||||
return message.canClose();
|
||||
});
|
||||
|
||||
// If there are few messages, letting them all zoom out looks OK
|
||||
if (messages.length < 2) {
|
||||
messages.forEach(function(message) {
|
||||
message.close();
|
||||
});
|
||||
} else {
|
||||
// Otherwise we slide them out one by one, and then zoom them
|
||||
// out "off-screen" in the end to smoothly shrink the parent
|
||||
let delay = MESSAGE_ANIMATION_TIME / Math.max(messages.length, 5);
|
||||
for (let i = 0; i < messages.length; i++) {
|
||||
let message = messages[i];
|
||||
let obj = this._messages.get(message);
|
||||
Tweener.addTween(obj.container,
|
||||
{ anchor_x: this._list.width,
|
||||
opacity: 0,
|
||||
time: MESSAGE_ANIMATION_TIME,
|
||||
delay: i * delay,
|
||||
transition: 'easeOutQuad',
|
||||
onComplete: function() {
|
||||
message.close();
|
||||
}});
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_canClear: function() {
|
||||
for (let message of this._messages.keys())
|
||||
if (message.canClose())
|
||||
return true;
|
||||
return false;
|
||||
},
|
||||
|
||||
_shouldShow: function() {
|
||||
return !this.empty;
|
||||
},
|
||||
|
||||
_sync: function() {
|
||||
let empty = this._list.get_n_children() == 0;
|
||||
let changed = this.empty !== empty;
|
||||
this.empty = empty;
|
||||
|
||||
if (changed)
|
||||
this.emit('empty-changed');
|
||||
|
||||
this._closeButton.visible = this._canClear();
|
||||
this.actor.visible = this.allowed && this._shouldShow();
|
||||
}
|
||||
});
|
||||
Signals.addSignalMethods(MessageListSection.prototype);
|
||||
|
||||
const EventsSection = new Lang.Class({
|
||||
Name: 'EventsSection',
|
||||
Extends: MessageListSection,
|
||||
Extends: MessageList.MessageListSection,
|
||||
|
||||
_init: function() {
|
||||
this._desktopSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.interface' });
|
||||
@ -1518,14 +817,14 @@ const EventsSection = new Lang.Class({
|
||||
},
|
||||
|
||||
_updateTitle: function() {
|
||||
if (_isToday(this._date)) {
|
||||
if (isToday(this._date)) {
|
||||
this._title.label = _("Events");
|
||||
return;
|
||||
}
|
||||
|
||||
let dayFormat;
|
||||
let now = new Date();
|
||||
if (_sameYear(this._date, now))
|
||||
if (sameYear(this._date, now))
|
||||
/* Translators: Shown on calendar heading when selected day occurs on current year */
|
||||
dayFormat = Shell.util_translate_time_string(NC_("calendar heading",
|
||||
"%A, %B %d"));
|
||||
@ -1601,7 +900,7 @@ const EventsSection = new Lang.Class({
|
||||
},
|
||||
|
||||
_shouldShow: function() {
|
||||
return !this.empty || !_isToday(this._date);
|
||||
return !this.empty || !isToday(this._date);
|
||||
},
|
||||
|
||||
_sync: function() {
|
||||
@ -1614,7 +913,7 @@ const EventsSection = new Lang.Class({
|
||||
|
||||
const NotificationSection = new Lang.Class({
|
||||
Name: 'NotificationSection',
|
||||
Extends: MessageListSection,
|
||||
Extends: MessageList.MessageListSection,
|
||||
|
||||
_init: function() {
|
||||
this.parent(_("Notifications"));
|
||||
@ -1720,7 +1019,7 @@ const NotificationSection = new Lang.Class({
|
||||
},
|
||||
|
||||
_shouldShow: function() {
|
||||
return !this.empty && _isToday(this._date);
|
||||
return !this.empty && isToday(this._date);
|
||||
},
|
||||
|
||||
_sync: function() {
|
||||
@ -1753,20 +1052,20 @@ const Placeholder = new Lang.Class({
|
||||
},
|
||||
|
||||
setDate: function(date) {
|
||||
if (_sameDay(this._date, date))
|
||||
if (sameDay(this._date, date))
|
||||
return;
|
||||
this._date = date;
|
||||
this._sync();
|
||||
},
|
||||
|
||||
_sync: function() {
|
||||
let isToday = _isToday(this._date);
|
||||
if (isToday && this._icon.gicon == this._todayIcon)
|
||||
let today = isToday(this._date);
|
||||
if (today && this._icon.gicon == this._todayIcon)
|
||||
return;
|
||||
if (!isToday && this._icon.gicon == this._otherIcon)
|
||||
if (!today && this._icon.gicon == this._otherIcon)
|
||||
return;
|
||||
|
||||
if (isToday) {
|
||||
if (today) {
|
||||
this._icon.gicon = this._todayIcon;
|
||||
this._label.text = _("No Notifications");
|
||||
} else {
|
||||
@ -1776,8 +1075,8 @@ const Placeholder = new Lang.Class({
|
||||
}
|
||||
});
|
||||
|
||||
const MessageList = new Lang.Class({
|
||||
Name: 'MessageList',
|
||||
const CalendarMessageList = new Lang.Class({
|
||||
Name: 'CalendarMessageList',
|
||||
|
||||
_init: function() {
|
||||
this.actor = new St.Widget({ style_class: 'message-list',
|
||||
@ -1801,6 +1100,9 @@ const MessageList = new Lang.Class({
|
||||
this._scrollView.add_actor(this._sectionList);
|
||||
this._sections = new Map();
|
||||
|
||||
this._mediaSection = new Mpris.MediaSection();
|
||||
this._addSection(this._mediaSection);
|
||||
|
||||
this._notificationSection = new NotificationSection();
|
||||
this._addSection(this._notificationSection);
|
||||
|
||||
|
@ -313,6 +313,10 @@ const AutorunSource = new Lang.Class({
|
||||
|
||||
getIcon: function() {
|
||||
return this.mount.get_icon();
|
||||
},
|
||||
|
||||
_createPolicy: function() {
|
||||
return new MessageTray.NotificationApplicationPolicy('org.gnome.Nautilus');
|
||||
}
|
||||
});
|
||||
|
||||
@ -325,9 +329,6 @@ const AutorunNotification = new Lang.Class({
|
||||
|
||||
this._manager = manager;
|
||||
this._mount = source.mount;
|
||||
|
||||
// set the notification to urgent, so that it expands out
|
||||
this.setUrgency(MessageTray.Urgency.CRITICAL);
|
||||
},
|
||||
|
||||
createBanner: function() {
|
||||
|
@ -12,9 +12,9 @@ const St = imports.gi.St;
|
||||
const Tpl = imports.gi.TelepathyLogger;
|
||||
const Tp = imports.gi.TelepathyGLib;
|
||||
|
||||
const Calendar = imports.ui.calendar;
|
||||
const History = imports.misc.history;
|
||||
const Main = imports.ui.main;
|
||||
const MessageList = imports.ui.messageList;
|
||||
const MessageTray = imports.ui.messageTray;
|
||||
const Params = imports.misc.params;
|
||||
const PopupMenu = imports.ui.popupMenu;
|
||||
@ -469,6 +469,7 @@ const ChatSource = new Lang.Class({
|
||||
|
||||
destroy: function(reason) {
|
||||
if (this._client.is_handling_channel(this._channel)) {
|
||||
this._ackMessages();
|
||||
// The chat box has been destroyed so it can't
|
||||
// handle the channel any more.
|
||||
this._channel.close_async(function(channel, result) {
|
||||
@ -866,7 +867,7 @@ const ChatNotificationBanner = new Lang.Class({
|
||||
},
|
||||
|
||||
_addMessage: function(message) {
|
||||
let highlighter = new Calendar.URLHighlighter(message.body, true, true);
|
||||
let highlighter = new MessageList.URLHighlighter(message.body, true, true);
|
||||
let body = highlighter.actor;
|
||||
|
||||
let styles = message.styles;
|
||||
|
@ -259,7 +259,7 @@ const ShowAppsIcon = new Lang.Class({
|
||||
},
|
||||
|
||||
_createIcon: function(size) {
|
||||
this._iconActor = new St.Icon({ icon_name: 'view-grid-symbolic',
|
||||
this._iconActor = new St.Icon({ icon_name: 'view-app-grid-symbolic',
|
||||
icon_size: size,
|
||||
style_class: 'show-apps-icon',
|
||||
track_hover: true });
|
||||
@ -644,15 +644,14 @@ const Dash = new Lang.Class({
|
||||
let firstIcon = firstButton._delegate.icon;
|
||||
|
||||
let minHeight, natHeight;
|
||||
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
|
||||
|
||||
// Enforce the current icon size during the size request
|
||||
firstIcon.setIconSize(this.iconSize);
|
||||
firstIcon.icon.ensure_style();
|
||||
let [currentWidth, currentHeight] = firstIcon.icon.get_size();
|
||||
firstIcon.icon.set_size(this.iconSize * scaleFactor, this.iconSize * scaleFactor);
|
||||
[minHeight, natHeight] = firstButton.get_preferred_height(-1);
|
||||
|
||||
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
|
||||
let iconSizes = baseIconSizes.map(function(s) {
|
||||
return s * scaleFactor;
|
||||
});
|
||||
firstIcon.icon.set_size(currentWidth, currentHeight);
|
||||
|
||||
// Subtract icon padding and box spacing from the available height
|
||||
availHeight -= iconChildren.length * (natHeight - this.iconSize * scaleFactor) +
|
||||
@ -660,6 +659,10 @@ const Dash = new Lang.Class({
|
||||
|
||||
let availSize = availHeight / iconChildren.length;
|
||||
|
||||
let iconSizes = baseIconSizes.map(function(s) {
|
||||
return s * scaleFactor;
|
||||
});
|
||||
|
||||
let newIconSize = baseIconSizes[0];
|
||||
for (let i = 0; i < iconSizes.length; i++) {
|
||||
if (iconSizes[i] < availSize)
|
||||
|
@ -360,7 +360,7 @@ const DateMenuButton = new Lang.Class({
|
||||
}));
|
||||
|
||||
// Fill up the first column
|
||||
this._messageList = new Calendar.MessageList();
|
||||
this._messageList = new Calendar.CalendarMessageList();
|
||||
hbox.add(this._messageList.actor, { expand: true, y_fill: false, y_align: St.Align.START });
|
||||
|
||||
// Fill up the second column
|
||||
|
141
js/ui/dnd.js
141
js/ui/dnd.js
@ -79,9 +79,12 @@ const _Draggable = new Lang.Class({
|
||||
dragActorOpacity: undefined });
|
||||
|
||||
this.actor = actor;
|
||||
if (!params.manualMode)
|
||||
if (!params.manualMode) {
|
||||
this.actor.connect('button-press-event',
|
||||
Lang.bind(this, this._onButtonPress));
|
||||
this.actor.connect('touch-event',
|
||||
Lang.bind(this, this._onTouchEvent));
|
||||
}
|
||||
|
||||
this.actor.connect('destroy', Lang.bind(this, function() {
|
||||
this._actorDestroyed = true;
|
||||
@ -121,8 +124,50 @@ const _Draggable = new Lang.Class({
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
},
|
||||
|
||||
_onTouchEvent: function (actor, event) {
|
||||
if (event.type() != Clutter.EventType.TOUCH_BEGIN ||
|
||||
!global.display.is_pointer_emulating_sequence(event.get_event_sequence()))
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
|
||||
if (Tweener.getTweenCount(actor))
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
|
||||
this._touchSequence = event.get_event_sequence();
|
||||
|
||||
this._buttonDown = true;
|
||||
this._grabActor();
|
||||
|
||||
let [stageX, stageY] = event.get_coords();
|
||||
this._dragStartX = stageX;
|
||||
this._dragStartY = stageY;
|
||||
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
},
|
||||
|
||||
_grabDevice: function(actor) {
|
||||
let manager = Clutter.DeviceManager.get_default();
|
||||
let pointer = manager.get_core_device(Clutter.InputDeviceType.POINTER_DEVICE);
|
||||
|
||||
if (pointer && this._touchSequence)
|
||||
pointer.sequence_grab(this._touchSequence, actor);
|
||||
else if (pointer)
|
||||
pointer.grab (actor);
|
||||
|
||||
this._grabbedDevice = pointer;
|
||||
},
|
||||
|
||||
_ungrabDevice: function() {
|
||||
if (this._touchSequence)
|
||||
this._grabbedDevice.sequence_ungrab (this._touchSequence);
|
||||
else
|
||||
this._grabbedDevice.ungrab();
|
||||
|
||||
this._touchSequence = null;
|
||||
this._grabbedDevice = null;
|
||||
},
|
||||
|
||||
_grabActor: function() {
|
||||
Clutter.grab_pointer(this.actor);
|
||||
this._grabDevice(this.actor);
|
||||
this._onEventId = this.actor.connect('event',
|
||||
Lang.bind(this, this._onEvent));
|
||||
},
|
||||
@ -131,7 +176,7 @@ const _Draggable = new Lang.Class({
|
||||
if (!this._onEventId)
|
||||
return;
|
||||
|
||||
Clutter.ungrab_pointer();
|
||||
this._ungrabDevice();
|
||||
this.actor.disconnect(this._onEventId);
|
||||
this._onEventId = null;
|
||||
},
|
||||
@ -140,13 +185,13 @@ const _Draggable = new Lang.Class({
|
||||
if (!this._eventsGrabbed) {
|
||||
this._eventsGrabbed = Main.pushModal(_getEventHandlerActor());
|
||||
if (this._eventsGrabbed)
|
||||
Clutter.grab_pointer(_getEventHandlerActor());
|
||||
this._grabDevice(_getEventHandlerActor());
|
||||
}
|
||||
},
|
||||
|
||||
_ungrabEvents: function() {
|
||||
if (this._eventsGrabbed) {
|
||||
Clutter.ungrab_pointer();
|
||||
this._ungrabDevice();
|
||||
Main.popModal(_getEventHandlerActor());
|
||||
this._eventsGrabbed = false;
|
||||
}
|
||||
@ -157,7 +202,9 @@ const _Draggable = new Lang.Class({
|
||||
// didn't start the drag, to drop the draggable in case the drag was in progress, and
|
||||
// to complete the drag and ensure that whatever happens to be under the pointer does
|
||||
// not get triggered if the drag was cancelled with Esc.
|
||||
if (event.type() == Clutter.EventType.BUTTON_RELEASE) {
|
||||
if (event.type() == Clutter.EventType.BUTTON_RELEASE ||
|
||||
(event.type() == Clutter.EventType.TOUCH_END &&
|
||||
global.display.is_pointer_emulating_sequence(event.get_event_sequence()))) {
|
||||
this._buttonDown = false;
|
||||
if (this._dragInProgress) {
|
||||
return this._dragActorDropped(event);
|
||||
@ -172,7 +219,9 @@ const _Draggable = new Lang.Class({
|
||||
}
|
||||
// We intercept MOTION event to figure out if the drag has started and to draw
|
||||
// this._dragActor under the pointer when dragging is in progress
|
||||
} else if (event.type() == Clutter.EventType.MOTION) {
|
||||
} else if (event.type() == Clutter.EventType.MOTION ||
|
||||
(event.type() == Clutter.EventType.TOUCH_UPDATE &&
|
||||
global.display.is_pointer_emulating_sequence(event.get_event_sequence()))) {
|
||||
if (this._dragInProgress) {
|
||||
return this._updateDragPosition(event);
|
||||
} else if (this._dragActor == null) {
|
||||
@ -214,7 +263,7 @@ const _Draggable = new Lang.Class({
|
||||
* This function is useful to call if you've specified manualMode
|
||||
* for the draggable.
|
||||
*/
|
||||
startDrag: function (stageX, stageY, time) {
|
||||
startDrag: function (stageX, stageY, time, sequence) {
|
||||
currentDraggable = this;
|
||||
this._dragInProgress = true;
|
||||
|
||||
@ -228,6 +277,8 @@ const _Draggable = new Lang.Class({
|
||||
this.emit('drag-begin', time);
|
||||
if (this._onEventId)
|
||||
this._ungrabActor();
|
||||
|
||||
this._touchSequence = sequence;
|
||||
this._grabEvents();
|
||||
global.screen.set_cursor(Meta.Cursor.DND_IN_DRAG);
|
||||
|
||||
@ -338,8 +389,8 @@ const _Draggable = new Lang.Class({
|
||||
let threshold = Gtk.Settings.get_default().gtk_dnd_drag_threshold;
|
||||
if ((Math.abs(stageX - this._dragStartX) > threshold ||
|
||||
Math.abs(stageY - this._dragStartY) > threshold)) {
|
||||
this.startDrag(stageX, stageY, event.get_time());
|
||||
this._updateDragPosition(event);
|
||||
this.startDrag(stageX, stageY, event.get_time(), this._touchSequence);
|
||||
this._updateDragPosition(event);
|
||||
}
|
||||
|
||||
return true;
|
||||
@ -520,20 +571,13 @@ const _Draggable = new Lang.Class({
|
||||
return;
|
||||
}
|
||||
|
||||
this._animationInProgress = true;
|
||||
// No target, so snap back
|
||||
Tweener.addTween(this._dragActor,
|
||||
{ x: snapBackX,
|
||||
y: snapBackY,
|
||||
scale_x: snapBackScale,
|
||||
scale_y: snapBackScale,
|
||||
opacity: this._dragOrigOpacity,
|
||||
time: SNAP_BACK_ANIMATION_TIME,
|
||||
transition: 'easeOutQuad',
|
||||
onComplete: this._onAnimationComplete,
|
||||
onCompleteScope: this,
|
||||
onCompleteParams: [this._dragActor, eventTime]
|
||||
});
|
||||
this._animateDragEnd(eventTime,
|
||||
{ x: snapBackX,
|
||||
y: snapBackY,
|
||||
scale_x: snapBackScale,
|
||||
scale_y: snapBackScale,
|
||||
time: SNAP_BACK_ANIMATION_TIME,
|
||||
});
|
||||
},
|
||||
|
||||
_restoreDragActor: function(eventTime) {
|
||||
@ -545,18 +589,44 @@ const _Draggable = new Lang.Class({
|
||||
this._dragActor.set_scale(restoreScale, restoreScale);
|
||||
this._dragActor.opacity = 0;
|
||||
|
||||
this._animateDragEnd(eventTime,
|
||||
{ time: REVERT_ANIMATION_TIME });
|
||||
},
|
||||
|
||||
_animateDragEnd: function (eventTime, params) {
|
||||
this._animationInProgress = true;
|
||||
Tweener.addTween(this._dragActor,
|
||||
{ opacity: this._dragOrigOpacity,
|
||||
time: REVERT_ANIMATION_TIME,
|
||||
transition: 'easeOutQuad',
|
||||
onComplete: this._onAnimationComplete,
|
||||
onCompleteScope: this,
|
||||
onCompleteParams: [this._dragActor, eventTime]
|
||||
});
|
||||
|
||||
// finish animation if the actor gets destroyed
|
||||
// during it
|
||||
this._dragActorDestroyId =
|
||||
this._dragActor.connect('destroy',
|
||||
Lang.bind(this, this._finishAnimation));
|
||||
|
||||
params['opacity'] = this._dragOrigOpacity;
|
||||
params['transition'] = 'easeOutQuad';
|
||||
params['onComplete'] = this._onAnimationComplete;
|
||||
params['onCompleteScope'] = this;
|
||||
params['onCompleteParams'] = [this._dragActor, eventTime];
|
||||
|
||||
// start the animation
|
||||
Tweener.addTween(this._dragActor, params)
|
||||
},
|
||||
|
||||
_finishAnimation : function () {
|
||||
if (!this._animationInProgress)
|
||||
return
|
||||
|
||||
this._animationInProgress = false;
|
||||
if (!this._buttonDown)
|
||||
this._dragComplete();
|
||||
|
||||
global.screen.set_cursor(Meta.Cursor.DEFAULT);
|
||||
},
|
||||
|
||||
_onAnimationComplete : function (dragActor, eventTime) {
|
||||
dragActor.disconnect(this._dragActorDestroyId);
|
||||
this._dragActorDestroyId = 0;
|
||||
|
||||
if (this._dragOrigParent) {
|
||||
Main.uiGroup.remove_child(this._dragActor);
|
||||
this._dragOrigParent.add_actor(this._dragActor);
|
||||
@ -565,12 +635,9 @@ const _Draggable = new Lang.Class({
|
||||
} else {
|
||||
dragActor.destroy();
|
||||
}
|
||||
global.screen.set_cursor(Meta.Cursor.DEFAULT);
|
||||
this.emit('drag-end', eventTime, false);
|
||||
|
||||
this._animationInProgress = false;
|
||||
if (!this._buttonDown)
|
||||
this._dragComplete();
|
||||
this.emit('drag-end', eventTime, false);
|
||||
this._finishAnimation();
|
||||
},
|
||||
|
||||
_dragComplete: function() {
|
||||
|
@ -334,7 +334,7 @@ function _sessionUpdated() {
|
||||
// from allowExtensions in the future
|
||||
if (Main.sessionMode.allowExtensions) {
|
||||
if (initted)
|
||||
onEnabledExtensionsChanged();
|
||||
enabledExtensions = getEnabledExtensions();
|
||||
enableAllExtensions();
|
||||
} else {
|
||||
disableAllExtensions();
|
||||
|
@ -158,10 +158,22 @@ const CandidatePopup = new Lang.Class({
|
||||
|
||||
panelService.connect('set-cursor-location',
|
||||
Lang.bind(this, function(ps, x, y, w, h) {
|
||||
Main.layoutManager.setDummyCursorGeometry(x, y, w, h);
|
||||
if (this._boxPointer.actor.visible)
|
||||
this._boxPointer.setPosition(Main.layoutManager.dummyCursor, 0);
|
||||
this._setDummyCursorGeometry(x, y, w, h);
|
||||
}));
|
||||
try {
|
||||
panelService.connect('set-cursor-location-relative',
|
||||
Lang.bind(this, function(ps, x, y, w, h) {
|
||||
if (!global.display.focus_window)
|
||||
return;
|
||||
let window = global.display.focus_window.get_compositor_private();
|
||||
this._setDummyCursorGeometry(window.x + x, window.y + y, w, h);
|
||||
}));
|
||||
} catch(e) {
|
||||
// Only recent IBus versions have support for this signal
|
||||
// which is used for wayland clients. In order to work
|
||||
// with older IBus versions we can silently ignore the
|
||||
// signal's absence.
|
||||
}
|
||||
panelService.connect('update-preedit-text',
|
||||
Lang.bind(this, function(ps, text, cursorPosition, visible) {
|
||||
this._preeditText.visible = visible;
|
||||
@ -246,6 +258,12 @@ const CandidatePopup = new Lang.Class({
|
||||
}));
|
||||
},
|
||||
|
||||
_setDummyCursorGeometry: function(x, y, w, h) {
|
||||
Main.layoutManager.setDummyCursorGeometry(x, y, w, h);
|
||||
if (this._boxPointer.actor.visible)
|
||||
this._boxPointer.setPosition(Main.layoutManager.dummyCursor, 0);
|
||||
},
|
||||
|
||||
_updateVisibility: function() {
|
||||
let isVisible = (this._preeditText.visible ||
|
||||
this._auxText.visible ||
|
||||
|
@ -50,15 +50,14 @@ const LegacyTray = new Lang.Class({
|
||||
this._slideLayout.translationX = 0;
|
||||
this._slideLayout.slideDirection = OverviewControls.SlideDirection.LEFT;
|
||||
|
||||
this._slider = new St.Widget({ style_class: 'legacy-tray',
|
||||
x_expand: true, y_expand: true,
|
||||
this._slider = new St.Widget({ x_expand: true, y_expand: true,
|
||||
x_align: Clutter.ActorAlign.START,
|
||||
y_align: Clutter.ActorAlign.END,
|
||||
layout_manager: this._slideLayout });
|
||||
this.actor.add_actor(this._slider);
|
||||
this._slider.connect('notify::allocation', Lang.bind(this, this._syncBarrier));
|
||||
|
||||
this._box = new St.BoxLayout();
|
||||
this._box = new St.BoxLayout({ style_class: 'legacy-tray' });
|
||||
this._slider.add_actor(this._box);
|
||||
|
||||
this._concealHandle = new St.Button({ style_class: 'legacy-tray-handle',
|
||||
|
@ -11,6 +11,7 @@ const Meta = imports.gi.Meta;
|
||||
const Shell = imports.gi.Shell;
|
||||
const St = imports.gi.St;
|
||||
|
||||
const AudioDeviceSelection = imports.ui.audioDeviceSelection;
|
||||
const Components = imports.ui.components;
|
||||
const CtrlAltTab = imports.ui.ctrlAltTab;
|
||||
const EndSessionDialog = imports.ui.endSessionDialog;
|
||||
@ -62,6 +63,7 @@ let ctrlAltTabManager = null;
|
||||
let osdWindowManager = null;
|
||||
let osdMonitorLabeler = null;
|
||||
let sessionMode = null;
|
||||
let shellAudioSelectionDBusService = null;
|
||||
let shellDBusService = null;
|
||||
let shellMountOpDBusService = null;
|
||||
let screenSaverDBus = null;
|
||||
@ -78,6 +80,7 @@ let _startDate;
|
||||
let _defaultCssStylesheet = null;
|
||||
let _cssStylesheet = null;
|
||||
let _a11ySettings = null;
|
||||
let _themeResource = null;
|
||||
|
||||
function _sessionUpdated() {
|
||||
if (sessionMode.isPrimary)
|
||||
@ -119,6 +122,7 @@ function start() {
|
||||
_loadDefaultStylesheet);
|
||||
_initializeUI();
|
||||
|
||||
shellAudioSelectionDBusService = new AudioDeviceSelection.AudioDeviceSelectionDBus();
|
||||
shellDBusService = new ShellDBus.GnomeShell();
|
||||
shellMountOpDBusService = new ShellMountOperation.GnomeShellMountOpHandler();
|
||||
|
||||
@ -137,9 +141,7 @@ function _initializeUI() {
|
||||
Shell.WindowTracker.get_default();
|
||||
Shell.AppUsage.get_default();
|
||||
|
||||
let resource = Gio.Resource.load(global.datadir + '/gnome-shell-theme.gresource');
|
||||
resource._register();
|
||||
|
||||
reloadThemeResource();
|
||||
_loadDefaultStylesheet();
|
||||
|
||||
// Setup the stage hierarchy early
|
||||
@ -290,6 +292,14 @@ function setThemeStylesheet(cssStylesheet) {
|
||||
_cssStylesheet = cssStylesheet ? Gio.File.new_for_path(cssStylesheet) : null;
|
||||
}
|
||||
|
||||
function reloadThemeResource() {
|
||||
if (_themeResource)
|
||||
_themeResource._unregister();
|
||||
|
||||
_themeResource = Gio.Resource.load(global.datadir + '/gnome-shell-theme.gresource');
|
||||
_themeResource._register();
|
||||
}
|
||||
|
||||
/**
|
||||
* loadTheme:
|
||||
*
|
||||
|
726
js/ui/messageList.js
Normal file
726
js/ui/messageList.js
Normal file
@ -0,0 +1,726 @@
|
||||
const Atk = imports.gi.Atk;
|
||||
const Clutter = imports.gi.Clutter;
|
||||
const Gio = imports.gi.Gio;
|
||||
const GLib = imports.gi.GLib;
|
||||
const GObject = imports.gi.GObject;
|
||||
const Lang = imports.lang;
|
||||
const Main = imports.ui.main;
|
||||
const MessageTray = imports.ui.messageTray;
|
||||
const Meta = imports.gi.Meta;
|
||||
const Pango = imports.gi.Pango;
|
||||
const Signals = imports.signals;
|
||||
const St = imports.gi.St;
|
||||
|
||||
const Calendar = imports.ui.calendar;
|
||||
const Tweener = imports.ui.tweener;
|
||||
const Util = imports.misc.util;
|
||||
|
||||
const MESSAGE_ANIMATION_TIME = 0.1;
|
||||
|
||||
const DEFAULT_EXPAND_LINES = 6;
|
||||
|
||||
function _fixMarkup(text, allowMarkup) {
|
||||
if (allowMarkup) {
|
||||
// Support &, ", ', < and >, escape all other
|
||||
// occurrences of '&'.
|
||||
let _text = text.replace(/&(?!amp;|quot;|apos;|lt;|gt;)/g, '&');
|
||||
|
||||
// Support <b>, <i>, and <u>, escape anything else
|
||||
// so it displays as raw markup.
|
||||
_text = _text.replace(/<(?!\/?[biu]>)/g, '<');
|
||||
|
||||
try {
|
||||
Pango.parse_markup(_text, -1, '');
|
||||
return _text;
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
// !allowMarkup, or invalid markup
|
||||
return GLib.markup_escape_text(text, -1);
|
||||
}
|
||||
|
||||
const URLHighlighter = new Lang.Class({
|
||||
Name: 'URLHighlighter',
|
||||
|
||||
_init: function(text, lineWrap, allowMarkup) {
|
||||
if (!text)
|
||||
text = '';
|
||||
this.actor = new St.Label({ reactive: true, style_class: 'url-highlighter',
|
||||
x_expand: true, x_align: Clutter.ActorAlign.START });
|
||||
this._linkColor = '#ccccff';
|
||||
this.actor.connect('style-changed', Lang.bind(this, function() {
|
||||
let [hasColor, color] = this.actor.get_theme_node().lookup_color('link-color', false);
|
||||
if (hasColor) {
|
||||
let linkColor = color.to_string().substr(0, 7);
|
||||
if (linkColor != this._linkColor) {
|
||||
this._linkColor = linkColor;
|
||||
this._highlightUrls();
|
||||
}
|
||||
}
|
||||
}));
|
||||
this.actor.clutter_text.line_wrap = lineWrap;
|
||||
this.actor.clutter_text.line_wrap_mode = Pango.WrapMode.WORD_CHAR;
|
||||
|
||||
this.setMarkup(text, allowMarkup);
|
||||
this.actor.connect('button-press-event', Lang.bind(this, function(actor, event) {
|
||||
// Don't try to URL highlight when invisible.
|
||||
// The MessageTray doesn't actually hide us, so
|
||||
// we need to check for paint opacities as well.
|
||||
if (!actor.visible || actor.get_paint_opacity() == 0)
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
|
||||
// Keep Notification.actor from seeing this and taking
|
||||
// a pointer grab, which would block our button-release-event
|
||||
// handler, if an URL is clicked
|
||||
return this._findUrlAtPos(event) != -1;
|
||||
}));
|
||||
this.actor.connect('button-release-event', Lang.bind(this, function (actor, event) {
|
||||
if (!actor.visible || actor.get_paint_opacity() == 0)
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
|
||||
let urlId = this._findUrlAtPos(event);
|
||||
if (urlId != -1) {
|
||||
let url = this._urls[urlId].url;
|
||||
if (url.indexOf(':') == -1)
|
||||
url = 'http://' + url;
|
||||
|
||||
Gio.app_info_launch_default_for_uri(url, global.create_app_launch_context(0, -1));
|
||||
return Clutter.EVENT_STOP;
|
||||
}
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
}));
|
||||
this.actor.connect('motion-event', Lang.bind(this, function(actor, event) {
|
||||
if (!actor.visible || actor.get_paint_opacity() == 0)
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
|
||||
let urlId = this._findUrlAtPos(event);
|
||||
if (urlId != -1 && !this._cursorChanged) {
|
||||
global.screen.set_cursor(Meta.Cursor.POINTING_HAND);
|
||||
this._cursorChanged = true;
|
||||
} else if (urlId == -1) {
|
||||
global.screen.set_cursor(Meta.Cursor.DEFAULT);
|
||||
this._cursorChanged = false;
|
||||
}
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
}));
|
||||
this.actor.connect('leave-event', Lang.bind(this, function() {
|
||||
if (!this.actor.visible || this.actor.get_paint_opacity() == 0)
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
|
||||
if (this._cursorChanged) {
|
||||
this._cursorChanged = false;
|
||||
global.screen.set_cursor(Meta.Cursor.DEFAULT);
|
||||
}
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
}));
|
||||
},
|
||||
|
||||
setMarkup: function(text, allowMarkup) {
|
||||
text = text ? _fixMarkup(text, allowMarkup) : '';
|
||||
this._text = text;
|
||||
|
||||
this.actor.clutter_text.set_markup(text);
|
||||
/* clutter_text.text contain text without markup */
|
||||
this._urls = Util.findUrls(this.actor.clutter_text.text);
|
||||
this._highlightUrls();
|
||||
},
|
||||
|
||||
_highlightUrls: function() {
|
||||
// text here contain markup
|
||||
let urls = Util.findUrls(this._text);
|
||||
let markup = '';
|
||||
let pos = 0;
|
||||
for (let i = 0; i < urls.length; i++) {
|
||||
let url = urls[i];
|
||||
let str = this._text.substr(pos, url.pos - pos);
|
||||
markup += str + '<span foreground="' + this._linkColor + '"><u>' + url.url + '</u></span>';
|
||||
pos = url.pos + url.url.length;
|
||||
}
|
||||
markup += this._text.substr(pos);
|
||||
this.actor.clutter_text.set_markup(markup);
|
||||
},
|
||||
|
||||
_findUrlAtPos: function(event) {
|
||||
let success;
|
||||
let [x, y] = event.get_coords();
|
||||
[success, x, y] = this.actor.transform_stage_point(x, y);
|
||||
let find_pos = -1;
|
||||
for (let i = 0; i < this.actor.clutter_text.text.length; i++) {
|
||||
let [success, px, py, line_height] = this.actor.clutter_text.position_to_coords(i);
|
||||
if (py > y || py + line_height < y || x < px)
|
||||
continue;
|
||||
find_pos = i;
|
||||
}
|
||||
if (find_pos != -1) {
|
||||
for (let i = 0; i < this._urls.length; i++)
|
||||
if (find_pos >= this._urls[i].pos &&
|
||||
this._urls[i].pos + this._urls[i].url.length > find_pos)
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
});
|
||||
|
||||
const ScaleLayout = new Lang.Class({
|
||||
Name: 'ScaleLayout',
|
||||
Extends: Clutter.BinLayout,
|
||||
|
||||
_connectContainer: function(container) {
|
||||
if (this._container == container)
|
||||
return;
|
||||
|
||||
if (this._container)
|
||||
for (let id of this._signals)
|
||||
this._container.disconnect(id);
|
||||
|
||||
this._container = container;
|
||||
this._signals = [];
|
||||
|
||||
if (this._container)
|
||||
for (let signal of ['notify::scale-x', 'notify::scale-y']) {
|
||||
let id = this._container.connect(signal, Lang.bind(this,
|
||||
function() {
|
||||
this.layout_changed();
|
||||
}));
|
||||
this._signals.push(id);
|
||||
}
|
||||
},
|
||||
|
||||
vfunc_get_preferred_width: function(container, forHeight) {
|
||||
this._connectContainer(container);
|
||||
|
||||
let [min, nat] = this.parent(container, forHeight);
|
||||
return [Math.floor(min * container.scale_x),
|
||||
Math.floor(nat * container.scale_x)];
|
||||
},
|
||||
|
||||
vfunc_get_preferred_height: function(container, forWidth) {
|
||||
this._connectContainer(container);
|
||||
|
||||
let [min, nat] = this.parent(container, forWidth);
|
||||
return [Math.floor(min * container.scale_y),
|
||||
Math.floor(nat * container.scale_y)];
|
||||
}
|
||||
});
|
||||
|
||||
const LabelExpanderLayout = new Lang.Class({
|
||||
Name: 'LabelExpanderLayout',
|
||||
Extends: Clutter.LayoutManager,
|
||||
Properties: { 'expansion': GObject.ParamSpec.double('expansion',
|
||||
'Expansion',
|
||||
'Expansion of the layout, between 0 (collapsed) ' +
|
||||
'and 1 (fully expanded',
|
||||
GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE,
|
||||
0, 1, 0)},
|
||||
|
||||
_init: function(params) {
|
||||
this._expansion = 0;
|
||||
this._expandLines = DEFAULT_EXPAND_LINES;
|
||||
|
||||
this.parent(params);
|
||||
},
|
||||
|
||||
get expansion() {
|
||||
return this._expansion;
|
||||
},
|
||||
|
||||
set expansion(v) {
|
||||
if (v == this._expansion)
|
||||
return;
|
||||
this._expansion = v;
|
||||
this.notify('expansion');
|
||||
|
||||
let visibleIndex = this._expansion > 0 ? 1 : 0;
|
||||
for (let i = 0; this._container && i < this._container.get_n_children(); i++)
|
||||
this._container.get_child_at_index(i).visible = (i == visibleIndex);
|
||||
|
||||
this.layout_changed();
|
||||
},
|
||||
|
||||
set expandLines(v) {
|
||||
if (v == this._expandLines)
|
||||
return;
|
||||
this._expandLines = v;
|
||||
if (this._expansion > 0)
|
||||
this.layout_changed();
|
||||
},
|
||||
|
||||
vfunc_set_container: function(container) {
|
||||
this._container = container;
|
||||
},
|
||||
|
||||
vfunc_get_preferred_width: function(container, forHeight) {
|
||||
let [min, nat] = [0, 0];
|
||||
|
||||
for (let i = 0; i < container.get_n_children(); i++) {
|
||||
if (i > 1)
|
||||
break; // we support one unexpanded + one expanded child
|
||||
|
||||
let child = container.get_child_at_index(i);
|
||||
let [childMin, childNat] = child.get_preferred_width(forHeight);
|
||||
[min, nat] = [Math.max(min, childMin), Math.max(nat, childNat)];
|
||||
}
|
||||
|
||||
return [min, nat];
|
||||
},
|
||||
|
||||
vfunc_get_preferred_height: function(container, forWidth) {
|
||||
let [min, nat] = [0, 0];
|
||||
|
||||
let children = container.get_children();
|
||||
if (children[0])
|
||||
[min, nat] = children[0].get_preferred_height(forWidth);
|
||||
|
||||
if (children[1]) {
|
||||
let [min2, nat2] = children[1].get_preferred_height(forWidth);
|
||||
let [expMin, expNat] = [Math.min(min2, min * this._expandLines),
|
||||
Math.min(nat2, nat * this._expandLines)];
|
||||
[min, nat] = [min + this._expansion * (expMin - min),
|
||||
nat + this._expansion * (expNat - nat)];
|
||||
}
|
||||
|
||||
return [min, nat];
|
||||
},
|
||||
|
||||
vfunc_allocate: function(container, box, flags) {
|
||||
for (let i = 0; i < container.get_n_children(); i++) {
|
||||
let child = container.get_child_at_index(i);
|
||||
|
||||
if (child.visible)
|
||||
child.allocate(box, flags);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
const Message = new Lang.Class({
|
||||
Name: 'Message',
|
||||
|
||||
_init: function(title, body) {
|
||||
this.expanded = false;
|
||||
|
||||
this.actor = new St.Button({ style_class: 'message',
|
||||
accessible_role: Atk.Role.NOTIFICATION,
|
||||
can_focus: true,
|
||||
x_expand: true, x_fill: true });
|
||||
this.actor.connect('key-press-event',
|
||||
Lang.bind(this, this._onKeyPressed));
|
||||
|
||||
let vbox = new St.BoxLayout({ vertical: true });
|
||||
this.actor.set_child(vbox);
|
||||
|
||||
let hbox = new St.BoxLayout();
|
||||
vbox.add_actor(hbox);
|
||||
|
||||
this._actionBin = new St.Widget({ layout_manager: new ScaleLayout(),
|
||||
visible: false });
|
||||
vbox.add_actor(this._actionBin);
|
||||
|
||||
this._iconBin = new St.Bin({ style_class: 'message-icon-bin',
|
||||
y_expand: true,
|
||||
visible: false });
|
||||
hbox.add_actor(this._iconBin);
|
||||
|
||||
let contentBox = new St.BoxLayout({ style_class: 'message-content',
|
||||
vertical: true, x_expand: true });
|
||||
hbox.add_actor(contentBox);
|
||||
|
||||
this._mediaControls = new St.BoxLayout();
|
||||
hbox.add_actor(this._mediaControls);
|
||||
|
||||
let titleBox = new St.BoxLayout();
|
||||
contentBox.add_actor(titleBox);
|
||||
|
||||
this.titleLabel = new St.Label({ style_class: 'message-title',
|
||||
x_expand: true,
|
||||
x_align: Clutter.ActorAlign.START });
|
||||
this.setTitle(title);
|
||||
titleBox.add_actor(this.titleLabel);
|
||||
|
||||
this._secondaryBin = new St.Bin({ style_class: 'message-secondary-bin' });
|
||||
titleBox.add_actor(this._secondaryBin);
|
||||
|
||||
let closeIcon = new St.Icon({ icon_name: 'window-close-symbolic',
|
||||
icon_size: 16 });
|
||||
this._closeButton = new St.Button({ child: closeIcon, visible: false });
|
||||
titleBox.add_actor(this._closeButton);
|
||||
|
||||
this._bodyStack = new St.Widget({ x_expand: true });
|
||||
this._bodyStack.layout_manager = new LabelExpanderLayout();
|
||||
contentBox.add_actor(this._bodyStack);
|
||||
|
||||
this.bodyLabel = new URLHighlighter('', false, this._useBodyMarkup);
|
||||
this.bodyLabel.actor.add_style_class_name('message-body');
|
||||
this._bodyStack.add_actor(this.bodyLabel.actor);
|
||||
this.setBody(body);
|
||||
|
||||
this._closeButton.connect('clicked', Lang.bind(this, this.close));
|
||||
this.actor.connect('notify::hover', Lang.bind(this, this._sync));
|
||||
this.actor.connect('clicked', Lang.bind(this, this._onClicked));
|
||||
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
|
||||
this._sync();
|
||||
},
|
||||
|
||||
close: function() {
|
||||
this.emit('close');
|
||||
},
|
||||
|
||||
setIcon: function(actor) {
|
||||
this._iconBin.child = actor;
|
||||
this._iconBin.visible = (actor != null);
|
||||
},
|
||||
|
||||
setSecondaryActor: function(actor) {
|
||||
this._secondaryBin.child = actor;
|
||||
},
|
||||
|
||||
setTitle: function(text) {
|
||||
let title = text ? _fixMarkup(text.replace(/\n/g, ' '), false) : '';
|
||||
this.titleLabel.clutter_text.set_markup(title);
|
||||
},
|
||||
|
||||
setBody: function(text) {
|
||||
this._bodyText = text;
|
||||
this.bodyLabel.setMarkup(text ? text.replace(/\n/g, ' ') : '',
|
||||
this._useBodyMarkup);
|
||||
if (this._expandedLabel)
|
||||
this._expandedLabel.setMarkup(text, this._useBodyMarkup);
|
||||
},
|
||||
|
||||
setUseBodyMarkup: function(enable) {
|
||||
if (this._useBodyMarkup === enable)
|
||||
return;
|
||||
this._useBodyMarkup = enable;
|
||||
if (this.bodyLabel)
|
||||
this.setBody(this._bodyText);
|
||||
},
|
||||
|
||||
setActionArea: function(actor) {
|
||||
if (actor == null) {
|
||||
if (this._actionBin.get_n_children() > 0)
|
||||
this._actionBin.get_child_at_index(0).destroy();
|
||||
return;
|
||||
}
|
||||
|
||||
if (this._actionBin.get_n_children() > 0)
|
||||
throw new Error('Message already has an action area');
|
||||
|
||||
this._actionBin.add_actor(actor);
|
||||
this._actionBin.visible = this.expanded;
|
||||
},
|
||||
|
||||
addMediaControl: function(iconName, callback) {
|
||||
let icon = new St.Icon({ icon_name: iconName, icon_size: 16 });
|
||||
let button = new St.Button({ style_class: 'message-media-control',
|
||||
child: icon });
|
||||
button.connect('clicked', callback);
|
||||
this._mediaControls.add_actor(button);
|
||||
return button;
|
||||
},
|
||||
|
||||
setExpandedBody: function(actor) {
|
||||
if (actor == null) {
|
||||
if (this._bodyStack.get_n_children() > 1)
|
||||
this._bodyStack.get_child_at_index(1).destroy();
|
||||
return;
|
||||
}
|
||||
|
||||
if (this._bodyStack.get_n_children() > 1)
|
||||
throw new Error('Message already has an expanded body actor');
|
||||
|
||||
this._bodyStack.insert_child_at_index(actor, 1);
|
||||
},
|
||||
|
||||
setExpandedLines: function(nLines) {
|
||||
this._bodyStack.layout_manager.expandLines = nLines;
|
||||
},
|
||||
|
||||
expand: function(animate) {
|
||||
this.expanded = true;
|
||||
|
||||
this._actionBin.visible = (this._actionBin.get_n_children() > 0);
|
||||
|
||||
if (this._bodyStack.get_n_children() < 2) {
|
||||
this._expandedLabel = new URLHighlighter(this._bodyText,
|
||||
true, this._useBodyMarkup);
|
||||
this.setExpandedBody(this._expandedLabel.actor);
|
||||
}
|
||||
|
||||
if (animate) {
|
||||
Tweener.addTween(this._bodyStack.layout_manager,
|
||||
{ expansion: 1,
|
||||
time: MessageTray.ANIMATION_TIME,
|
||||
transition: 'easeOutQuad' });
|
||||
this._actionBin.scale_y = 0;
|
||||
Tweener.addTween(this._actionBin,
|
||||
{ scale_y: 1,
|
||||
time: MessageTray.ANIMATION_TIME,
|
||||
transition: 'easeOutQuad' });
|
||||
} else {
|
||||
this._bodyStack.layout_manager.expansion = 1;
|
||||
this._actionBin.scale_y = 1;
|
||||
}
|
||||
|
||||
this.emit('expanded');
|
||||
},
|
||||
|
||||
unexpand: function(animate) {
|
||||
if (animate) {
|
||||
Tweener.addTween(this._bodyStack.layout_manager,
|
||||
{ expansion: 0,
|
||||
time: MessageTray.ANIMATION_TIME,
|
||||
transition: 'easeOutQuad' });
|
||||
Tweener.addTween(this._actionBin,
|
||||
{ scale_y: 0,
|
||||
time: MessageTray.ANIMATION_TIME,
|
||||
transition: 'easeOutQuad',
|
||||
onCompleteScope: this,
|
||||
onComplete: function() {
|
||||
this._actionBin.hide();
|
||||
this.expanded = false;
|
||||
}});
|
||||
} else {
|
||||
this._bodyStack.layout_manager.expansion = 0;
|
||||
this._actionBin.scale_y = 0;
|
||||
this.expanded = false;
|
||||
}
|
||||
|
||||
this.emit('unexpanded');
|
||||
},
|
||||
|
||||
canClose: function() {
|
||||
return this._mediaControls.get_n_children() == 0;
|
||||
},
|
||||
|
||||
_sync: function() {
|
||||
let hovered = this.actor.hover;
|
||||
this._closeButton.visible = hovered && this.canClose();
|
||||
this._secondaryBin.visible = !hovered;
|
||||
},
|
||||
|
||||
_onClicked: function() {
|
||||
},
|
||||
|
||||
_onDestroy: function() {
|
||||
},
|
||||
|
||||
_onKeyPressed: function(a, event) {
|
||||
let keysym = event.get_key_symbol();
|
||||
|
||||
if (keysym == Clutter.KEY_Delete ||
|
||||
keysym == Clutter.KEY_KP_Delete) {
|
||||
this.close();
|
||||
return Clutter.EVENT_STOP;
|
||||
}
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
}
|
||||
});
|
||||
Signals.addSignalMethods(Message.prototype);
|
||||
|
||||
const MessageListSection = new Lang.Class({
|
||||
Name: 'MessageListSection',
|
||||
|
||||
_init: function(title) {
|
||||
this.actor = new St.BoxLayout({ style_class: 'message-list-section',
|
||||
clip_to_allocation: true,
|
||||
x_expand: true, vertical: true });
|
||||
let titleBox = new St.BoxLayout({ style_class: 'message-list-section-title-box' });
|
||||
this.actor.add_actor(titleBox);
|
||||
|
||||
this._title = new St.Button({ style_class: 'message-list-section-title',
|
||||
label: title,
|
||||
can_focus: true,
|
||||
x_expand: true,
|
||||
x_align: St.Align.START });
|
||||
titleBox.add_actor(this._title);
|
||||
|
||||
this._title.connect('clicked', Lang.bind(this, this._onTitleClicked));
|
||||
this._title.connect('key-focus-in', Lang.bind(this, this._onKeyFocusIn));
|
||||
|
||||
let closeIcon = new St.Icon({ icon_name: 'window-close-symbolic' });
|
||||
this._closeButton = new St.Button({ style_class: 'message-list-section-close',
|
||||
child: closeIcon,
|
||||
accessible_name: _("Clear section"),
|
||||
can_focus: true });
|
||||
this._closeButton.set_x_align(Clutter.ActorAlign.END);
|
||||
titleBox.add_actor(this._closeButton);
|
||||
|
||||
this._closeButton.connect('clicked', Lang.bind(this, this.clear));
|
||||
|
||||
this._list = new St.BoxLayout({ style_class: 'message-list-section-list',
|
||||
vertical: true });
|
||||
this.actor.add_actor(this._list);
|
||||
|
||||
this._list.connect('actor-added', Lang.bind(this, this._sync));
|
||||
this._list.connect('actor-removed', Lang.bind(this, this._sync));
|
||||
|
||||
let id = Main.sessionMode.connect('updated',
|
||||
Lang.bind(this, this._sync));
|
||||
this.actor.connect('destroy', function() {
|
||||
Main.sessionMode.disconnect(id);
|
||||
});
|
||||
|
||||
this._messages = new Map();
|
||||
this._date = new Date();
|
||||
this.empty = true;
|
||||
this._sync();
|
||||
},
|
||||
|
||||
_onTitleClicked: function() {
|
||||
Main.overview.hide();
|
||||
Main.panel.closeCalendar();
|
||||
},
|
||||
|
||||
_onKeyFocusIn: function(actor) {
|
||||
this.emit('key-focus-in', actor);
|
||||
},
|
||||
|
||||
get allowed() {
|
||||
return true;
|
||||
},
|
||||
|
||||
setDate: function(date) {
|
||||
if (Calendar.sameDay(date, this._date))
|
||||
return;
|
||||
this._date = date;
|
||||
this._sync();
|
||||
},
|
||||
|
||||
addMessage: function(message, animate) {
|
||||
this.addMessageAtIndex(message, -1, animate);
|
||||
},
|
||||
|
||||
addMessageAtIndex: function(message, index, animate) {
|
||||
let obj = {
|
||||
container: null,
|
||||
destroyId: 0,
|
||||
keyFocusId: 0,
|
||||
closeId: 0
|
||||
};
|
||||
let pivot = new Clutter.Point({ x: .5, y: .5 });
|
||||
let scale = animate ? 0 : 1;
|
||||
obj.container = new St.Widget({ layout_manager: new ScaleLayout(),
|
||||
pivot_point: pivot,
|
||||
scale_x: scale, scale_y: scale });
|
||||
obj.keyFocusId = message.actor.connect('key-focus-in',
|
||||
Lang.bind(this, this._onKeyFocusIn));
|
||||
obj.destroyId = message.actor.connect('destroy',
|
||||
Lang.bind(this, function() {
|
||||
this.removeMessage(message, false);
|
||||
}));
|
||||
obj.closeId = message.connect('close',
|
||||
Lang.bind(this, function() {
|
||||
this.removeMessage(message, true);
|
||||
}));
|
||||
|
||||
this._messages.set(message, obj);
|
||||
obj.container.add_actor(message.actor);
|
||||
|
||||
this._list.insert_child_at_index(obj.container, index);
|
||||
|
||||
if (animate)
|
||||
Tweener.addTween(obj.container, { scale_x: 1,
|
||||
scale_y: 1,
|
||||
time: MESSAGE_ANIMATION_TIME,
|
||||
transition: 'easeOutQuad' });
|
||||
},
|
||||
|
||||
moveMessage: function(message, index, animate) {
|
||||
let obj = this._messages.get(message);
|
||||
|
||||
if (!animate) {
|
||||
this._list.set_child_at_index(obj.container, index);
|
||||
return;
|
||||
}
|
||||
|
||||
let onComplete = Lang.bind(this, function() {
|
||||
this._list.set_child_at_index(obj.container, index);
|
||||
Tweener.addTween(obj.container, { scale_x: 1,
|
||||
scale_y: 1,
|
||||
time: MESSAGE_ANIMATION_TIME,
|
||||
transition: 'easeOutQuad' });
|
||||
});
|
||||
Tweener.addTween(obj.container, { scale_x: 0,
|
||||
scale_y: 0,
|
||||
time: MESSAGE_ANIMATION_TIME,
|
||||
transition: 'easeOutQuad',
|
||||
onComplete: onComplete });
|
||||
},
|
||||
|
||||
removeMessage: function(message, animate) {
|
||||
let obj = this._messages.get(message);
|
||||
|
||||
message.actor.disconnect(obj.destroyId);
|
||||
message.actor.disconnect(obj.keyFocusId);
|
||||
message.disconnect(obj.closeId);
|
||||
|
||||
this._messages.delete(message);
|
||||
|
||||
if (animate) {
|
||||
Tweener.addTween(obj.container, { scale_x: 0, scale_y: 0,
|
||||
time: MESSAGE_ANIMATION_TIME,
|
||||
transition: 'easeOutQuad',
|
||||
onComplete: function() {
|
||||
obj.container.destroy();
|
||||
global.sync_pointer();
|
||||
}});
|
||||
} else {
|
||||
obj.container.destroy();
|
||||
global.sync_pointer();
|
||||
}
|
||||
},
|
||||
|
||||
clear: function() {
|
||||
let messages = [...this._messages.keys()].filter(function(message) {
|
||||
return message.canClose();
|
||||
});
|
||||
|
||||
// If there are few messages, letting them all zoom out looks OK
|
||||
if (messages.length < 2) {
|
||||
messages.forEach(function(message) {
|
||||
message.close();
|
||||
});
|
||||
} else {
|
||||
// Otherwise we slide them out one by one, and then zoom them
|
||||
// out "off-screen" in the end to smoothly shrink the parent
|
||||
let delay = MESSAGE_ANIMATION_TIME / Math.max(messages.length, 5);
|
||||
for (let i = 0; i < messages.length; i++) {
|
||||
let message = messages[i];
|
||||
let obj = this._messages.get(message);
|
||||
Tweener.addTween(obj.container,
|
||||
{ anchor_x: this._list.width,
|
||||
opacity: 0,
|
||||
time: MESSAGE_ANIMATION_TIME,
|
||||
delay: i * delay,
|
||||
transition: 'easeOutQuad',
|
||||
onComplete: function() {
|
||||
message.close();
|
||||
}});
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_canClear: function() {
|
||||
for (let message of this._messages.keys())
|
||||
if (message.canClose())
|
||||
return true;
|
||||
return false;
|
||||
},
|
||||
|
||||
_shouldShow: function() {
|
||||
return !this.empty;
|
||||
},
|
||||
|
||||
_sync: function() {
|
||||
let empty = this._list.get_n_children() == 0;
|
||||
let changed = this.empty !== empty;
|
||||
this.empty = empty;
|
||||
|
||||
if (changed)
|
||||
this.emit('empty-changed');
|
||||
|
||||
this._closeButton.visible = this._canClear();
|
||||
this.actor.visible = this.allowed && this._shouldShow();
|
||||
}
|
||||
});
|
||||
Signals.addSignalMethods(MessageListSection.prototype);
|
@ -259,7 +259,7 @@ const ModalDialog = new Lang.Class({
|
||||
if (this.state == State.OPENED || this.state == State.OPENING)
|
||||
return true;
|
||||
|
||||
if (!this.pushModal({ timestamp: timestamp }))
|
||||
if (!this.pushModal(timestamp))
|
||||
return false;
|
||||
|
||||
this._fadeOpen(onPrimary);
|
||||
@ -318,8 +318,11 @@ const ModalDialog = new Lang.Class({
|
||||
pushModal: function (timestamp) {
|
||||
if (this._hasModal)
|
||||
return true;
|
||||
if (!Main.pushModal(this._group, { timestamp: timestamp,
|
||||
actionMode: this._actionMode }))
|
||||
|
||||
let params = { actionMode: this._actionMode };
|
||||
if (timestamp)
|
||||
params['timestamp'] = timestamp;
|
||||
if (!Main.pushModal(this._group, params))
|
||||
return false;
|
||||
|
||||
this._hasModal = true;
|
||||
|
270
js/ui/mpris.js
Normal file
270
js/ui/mpris.js
Normal file
@ -0,0 +1,270 @@
|
||||
const Gio = imports.gi.Gio;
|
||||
const Lang = imports.lang;
|
||||
const Signals = imports.signals;
|
||||
const Shell = imports.gi.Shell;
|
||||
const St = imports.gi.St;
|
||||
|
||||
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 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 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="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.';
|
||||
|
||||
const MediaMessage = new Lang.Class({
|
||||
Name: 'MediaMessage',
|
||||
Extends: MessageList.Message,
|
||||
|
||||
_init: function(player) {
|
||||
this._player = player;
|
||||
|
||||
this.parent('', '');
|
||||
|
||||
this._icon = new St.Icon({ style_class: 'media-message-cover-icon' });
|
||||
this.setIcon(this._icon);
|
||||
|
||||
this.addMediaControl('media-skip-backward-symbolic',
|
||||
Lang.bind(this, function() {
|
||||
this._player.previous();
|
||||
}));
|
||||
|
||||
this._playPauseButton = this.addMediaControl(null,
|
||||
Lang.bind(this, function() {
|
||||
this._player.playPause();
|
||||
}));
|
||||
|
||||
this.addMediaControl('media-skip-forward-symbolic',
|
||||
Lang.bind(this, function() {
|
||||
this._player.next();
|
||||
}));
|
||||
|
||||
this._player.connect('changed', Lang.bind(this, this._update));
|
||||
this._player.connect('closed', Lang.bind(this, this.close));
|
||||
this._update();
|
||||
},
|
||||
|
||||
_onClicked: function() {
|
||||
this._player.raise();
|
||||
Main.panel.closeCalendar();
|
||||
},
|
||||
|
||||
_update: function() {
|
||||
this.setTitle(this._player.trackArtists.join(', '));
|
||||
this.setBody(this._player.trackTitle);
|
||||
|
||||
if (this._player.trackCoverUrl) {
|
||||
let file = Gio.File.new_for_uri(this._player.trackCoverUrl);
|
||||
this._icon.gicon = new Gio.FileIcon({ file: file });
|
||||
this._icon.remove_style_class_name('fallback');
|
||||
} else {
|
||||
this._icon.icon_name = 'audio-x-generic-symbolic';
|
||||
this._icon.add_style_class_name('fallback');
|
||||
}
|
||||
|
||||
let isPlaying = this._player.status == 'Playing';
|
||||
let iconName = isPlaying ? 'media-playback-pause-symbolic'
|
||||
: 'media-playback-start-symbolic';
|
||||
this._playPauseButton.child.icon_name = iconName;
|
||||
}
|
||||
});
|
||||
|
||||
const MprisPlayer = new Lang.Class({
|
||||
Name: 'MprisPlayer',
|
||||
|
||||
_init: function(busName) {
|
||||
this._mprisProxy = new MprisProxy(Gio.DBus.session, busName,
|
||||
'/org/mpris/MediaPlayer2',
|
||||
Lang.bind(this, this._onMprisProxyReady));
|
||||
this._playerProxy = new MprisPlayerProxy(Gio.DBus.session, busName,
|
||||
'/org/mpris/MediaPlayer2',
|
||||
Lang.bind(this, this._onPlayerProxyReady));
|
||||
|
||||
this._visible = false;
|
||||
this._trackArtists = [];
|
||||
this._trackTitle = '';
|
||||
this._trackCoverUrl = '';
|
||||
},
|
||||
|
||||
get status() {
|
||||
return this._playerProxy.PlaybackStatus;
|
||||
},
|
||||
|
||||
get trackArtists() {
|
||||
return this._trackArtists;
|
||||
},
|
||||
|
||||
get trackTitle() {
|
||||
return this._trackTitle;
|
||||
},
|
||||
|
||||
get trackCoverUrl() {
|
||||
return this._trackCoverUrl;
|
||||
},
|
||||
|
||||
playPause: function() {
|
||||
this._playerProxy.PlayPauseRemote();
|
||||
},
|
||||
|
||||
next: function() {
|
||||
this._playerProxy.NextRemote();
|
||||
},
|
||||
|
||||
previous: function() {
|
||||
this._playerProxy.PreviousRemote();
|
||||
},
|
||||
|
||||
raise: function() {
|
||||
// The remote Raise() method may run into focus stealing prevention,
|
||||
// so prefer activating the app via .desktop file if possible
|
||||
let app = null;
|
||||
if (this._mprisProxy.DesktopEntry) {
|
||||
let desktopId = this._mprisProxy.DesktopEntry + '.desktop';
|
||||
app = Shell.AppSystem.get_default().lookup_app(desktopId);
|
||||
}
|
||||
|
||||
if (app)
|
||||
app.activate();
|
||||
else if (this._mprisProxy.CanRaise)
|
||||
this._mprisProxy.RaiseRemote();
|
||||
},
|
||||
|
||||
_close: function() {
|
||||
this._mprisProxy.disconnect(this._ownerNotifyId);
|
||||
this._mprisProxy = null;
|
||||
|
||||
this._playerProxy.disconnect(this._propsChangedId);
|
||||
this._playerProxy = null;
|
||||
|
||||
this.emit('closed');
|
||||
},
|
||||
|
||||
_onMprisProxyReady: function() {
|
||||
this._ownerNotifyId = this._mprisProxy.connect('notify::g-name-owner',
|
||||
Lang.bind(this, function() {
|
||||
if (!this._mprisProxy.g_name_owner)
|
||||
this._close();
|
||||
}));
|
||||
},
|
||||
|
||||
_onPlayerProxyReady: function() {
|
||||
this._propsChangedId = this._playerProxy.connect('g-properties-changed',
|
||||
Lang.bind(this, this._updateState));
|
||||
this._updateState();
|
||||
},
|
||||
|
||||
_updateState: function() {
|
||||
let metadata = {};
|
||||
for (let prop in this._playerProxy.Metadata)
|
||||
metadata[prop] = this._playerProxy.Metadata[prop].deep_unpack();
|
||||
|
||||
this._trackArtists = metadata['xesam:artist'] || [_("Unknown artist")];
|
||||
this._trackTitle = metadata['xesam:title'] || _("Unknown title");
|
||||
this._trackCoverUrl = metadata['mpris:artUrl'] || '';
|
||||
this.emit('changed');
|
||||
|
||||
let visible = this._playerProxy.CanPlay;
|
||||
|
||||
if (this._visible != visible) {
|
||||
this._visible = visible;
|
||||
if (visible)
|
||||
this.emit('show');
|
||||
else
|
||||
this._close();
|
||||
}
|
||||
}
|
||||
});
|
||||
Signals.addSignalMethods(MprisPlayer.prototype);
|
||||
|
||||
const MediaSection = new Lang.Class({
|
||||
Name: 'MediaSection',
|
||||
Extends: MessageList.MessageListSection,
|
||||
|
||||
_init: function() {
|
||||
this.parent(_("Media"));
|
||||
|
||||
this._players = new Map();
|
||||
|
||||
this._proxy = new DBusProxy(Gio.DBus.session,
|
||||
'org.freedesktop.DBus',
|
||||
'/org/freedesktop/DBus',
|
||||
Lang.bind(this, this._onProxyReady));
|
||||
},
|
||||
|
||||
_shouldShow: function() {
|
||||
return !this.empty && Calendar.isToday(this._date);
|
||||
},
|
||||
|
||||
_addPlayer: function(busName) {
|
||||
if (this._players.get(busName))
|
||||
return;
|
||||
|
||||
let player = new MprisPlayer(busName);
|
||||
player.connect('closed', Lang.bind(this,
|
||||
function() {
|
||||
this._players.delete(busName);
|
||||
}));
|
||||
player.connect('show', Lang.bind(this,
|
||||
function() {
|
||||
let message = new MediaMessage(player);
|
||||
this.addMessage(message, true);
|
||||
}));
|
||||
this._players.set(busName, player);
|
||||
},
|
||||
|
||||
_onProxyReady: function() {
|
||||
this._proxy.ListNamesRemote(Lang.bind(this,
|
||||
function([names]) {
|
||||
names.forEach(Lang.bind(this,
|
||||
function(name) {
|
||||
if (!name.startsWith(MPRIS_PLAYER_PREFIX))
|
||||
return;
|
||||
|
||||
this._addPlayer(name);
|
||||
}));
|
||||
}));
|
||||
this._proxy.connectSignal('NameOwnerChanged',
|
||||
Lang.bind(this, this._onNameOwnerChanged));
|
||||
},
|
||||
|
||||
_onNameOwnerChanged: function(proxy, sender, [name, oldOwner, newOwner]) {
|
||||
if (!name.startsWith(MPRIS_PLAYER_PREFIX))
|
||||
return;
|
||||
|
||||
if (newOwner && !oldOwner)
|
||||
this._addPlayer(name);
|
||||
}
|
||||
});
|
@ -95,6 +95,7 @@ const AppMenuButton = new Lang.Class({
|
||||
this._startingApps = [];
|
||||
|
||||
this._menuManager = panel.menuManager;
|
||||
this._gtkSettings = Gtk.Settings.get_default();
|
||||
this._targetApp = null;
|
||||
this._appMenuNotifyId = 0;
|
||||
this._actionGroupNotifyId = 0;
|
||||
@ -123,11 +124,14 @@ const AppMenuButton = new Lang.Class({
|
||||
this._arrow = PopupMenu.arrowIcon(St.Side.BOTTOM);
|
||||
this._container.add_actor(this._arrow);
|
||||
|
||||
this._visible = !Main.overview.visible;
|
||||
this._visible = this._gtkSettings.gtk_shell_shows_app_menu &&
|
||||
!Main.overview.visible;
|
||||
if (!this._visible)
|
||||
this.actor.hide();
|
||||
this._overviewHidingId = Main.overview.connect('hiding', Lang.bind(this, this._sync));
|
||||
this._overviewShowingId = Main.overview.connect('showing', Lang.bind(this, this._sync));
|
||||
this._showsAppMenuId = this._gtkSettings.connect('notify::gtk-shell-shows-app-menu',
|
||||
Lang.bind(this, this._sync));
|
||||
|
||||
this._stop = true;
|
||||
|
||||
@ -305,7 +309,9 @@ const AppMenuButton = new Lang.Class({
|
||||
}
|
||||
}
|
||||
|
||||
let visible = (this._targetApp != null && !Main.overview.visibleTarget);
|
||||
let visible = (this._targetApp != null &&
|
||||
this._gtkSettings.gtk_shell_shows_app_menu &&
|
||||
!Main.overview.visibleTarget);
|
||||
if (visible)
|
||||
this.show();
|
||||
else
|
||||
@ -378,6 +384,10 @@ const AppMenuButton = new Lang.Class({
|
||||
Main.overview.disconnect(this._overviewShowingId);
|
||||
this._overviewShowingId = 0;
|
||||
}
|
||||
if (this._showsAppMenuId > 0) {
|
||||
this._gtkSettings.disconnect(this._showsAppMenuId);
|
||||
this._showsAppMenuId = 0;
|
||||
}
|
||||
if (this._switchWorkspaceNotifyId > 0) {
|
||||
global.window_manager.disconnect(this._switchWorkspaceNotifyId);
|
||||
this._switchWorkspaceNotifyId = 0;
|
||||
@ -449,7 +459,8 @@ const ActivitiesButton = new Lang.Class({
|
||||
|
||||
if (event.type() == Clutter.EventType.TOUCH_END ||
|
||||
event.type() == Clutter.EventType.BUTTON_RELEASE)
|
||||
Main.overview.toggle();
|
||||
if (Main.overview.shouldToggleByCornerOrButton())
|
||||
Main.overview.toggle();
|
||||
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
},
|
||||
@ -457,7 +468,8 @@ const ActivitiesButton = new Lang.Class({
|
||||
_onKeyRelease: function(actor, event) {
|
||||
let symbol = event.get_key_symbol();
|
||||
if (symbol == Clutter.KEY_Return || symbol == Clutter.KEY_space) {
|
||||
Main.overview.toggle();
|
||||
if (Main.overview.shouldToggleByCornerOrButton())
|
||||
Main.overview.toggle();
|
||||
}
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
},
|
||||
@ -642,14 +654,50 @@ const PanelCorner = new Lang.Class({
|
||||
}
|
||||
});
|
||||
|
||||
const AggregateLayout = new Lang.Class({
|
||||
Name: 'AggregateLayout',
|
||||
Extends: Clutter.BoxLayout,
|
||||
|
||||
_init: function(params) {
|
||||
if (!params)
|
||||
params = {};
|
||||
params['orientation'] = Clutter.Orientation.VERTICAL;
|
||||
this.parent(params);
|
||||
|
||||
this._sizeChildren = [];
|
||||
},
|
||||
|
||||
addSizeChild: function(actor) {
|
||||
this._sizeChildren.push(actor);
|
||||
this.layout_changed();
|
||||
},
|
||||
|
||||
vfunc_get_preferred_width: function(container, forHeight) {
|
||||
let themeNode = container.get_theme_node();
|
||||
let minWidth = themeNode.get_min_width();
|
||||
let natWidth = minWidth;
|
||||
|
||||
for (let i = 0; i < this._sizeChildren.length; i++) {
|
||||
let child = this._sizeChildren[i];
|
||||
let [childMin, childNat] = child.get_preferred_width(forHeight);
|
||||
minWidth = Math.max(minWidth, childMin);
|
||||
natWidth = Math.max(minWidth, childNat);
|
||||
}
|
||||
return [minWidth, natWidth];
|
||||
}
|
||||
});
|
||||
|
||||
const AggregateMenu = new Lang.Class({
|
||||
Name: 'AggregateMenu',
|
||||
Extends: PanelMenu.Button,
|
||||
|
||||
_init: function() {
|
||||
this.parent(0.0, _("Settings"), false);
|
||||
this.parent(0.0, C_("System menu in the top bar", "System"), false);
|
||||
this.menu.actor.add_style_class_name('aggregate-menu');
|
||||
|
||||
let menuLayout = new AggregateLayout();
|
||||
this.menu.box.set_layout_manager(menuLayout);
|
||||
|
||||
this._indicators = new St.BoxLayout({ style_class: 'panel-status-indicators-box' });
|
||||
this.actor.add_child(this._indicators);
|
||||
|
||||
@ -698,6 +746,11 @@ const AggregateMenu = new Lang.Class({
|
||||
this.menu.addMenuItem(this._rfkill.menu);
|
||||
this.menu.addMenuItem(this._power.menu);
|
||||
this.menu.addMenuItem(this._system.menu);
|
||||
|
||||
menuLayout.addSizeChild(this._location.menu.actor);
|
||||
menuLayout.addSizeChild(this._rfkill.menu.actor);
|
||||
menuLayout.addSizeChild(this._power.menu.actor);
|
||||
menuLayout.addSizeChild(this._system.menu.actor);
|
||||
},
|
||||
});
|
||||
|
||||
|
@ -1146,6 +1146,16 @@ const PopupSubMenuMenuItem = new Lang.Class({
|
||||
this.actor.remove_style_pseudo_class ('active');
|
||||
this._setOpenState(!this._getOpenState());
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
},
|
||||
|
||||
_onTouchEvent: function(actor, event) {
|
||||
if (event.type() == Clutter.EventType.TOUCH_END) {
|
||||
// Since we override the parent, we need to manage what the parent does
|
||||
// with the active style class
|
||||
this.actor.remove_style_pseudo_class ('active');
|
||||
this._setOpenState(!this._getOpenState());
|
||||
}
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -61,6 +61,7 @@ const RunDialog = new Lang.Class({
|
||||
|
||||
// rt is short for "reload theme"
|
||||
'rt': Lang.bind(this, function() {
|
||||
Main.reloadThemeResource();
|
||||
Main.loadTheme();
|
||||
})
|
||||
};
|
||||
|
@ -137,6 +137,10 @@ const Slider = new Lang.Class({
|
||||
this._motionId = this.actor.connect('motion-event', Lang.bind(this, this._motionEvent));
|
||||
}
|
||||
|
||||
// We need to emit 'drag-begin' before moving the handle to make
|
||||
// sure that no 'value-changed' signal is emitted before this one.
|
||||
this.emit('drag-begin');
|
||||
|
||||
let absX, absY;
|
||||
[absX, absY] = event.get_coords();
|
||||
this._moveHandle(absX, absY);
|
||||
@ -224,6 +228,7 @@ const Slider = new Lang.Class({
|
||||
let delta = key == Clutter.KEY_Right ? 0.1 : -0.1;
|
||||
this._value = Math.max(0, Math.min(this._value + delta, 1));
|
||||
this.actor.queue_repaint();
|
||||
this.emit('drag-begin');
|
||||
this.emit('value-changed', this._value);
|
||||
this.emit('drag-end');
|
||||
return Clutter.EVENT_STOP;
|
||||
|
@ -1,11 +1,8 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const Clutter = imports.gi.Clutter;
|
||||
const GLib = imports.gi.GLib;
|
||||
const Gio = imports.gi.Gio;
|
||||
const GnomeBluetooth = imports.gi.GnomeBluetooth;
|
||||
const Lang = imports.lang;
|
||||
const St = imports.gi.St;
|
||||
|
||||
const Main = imports.ui.main;
|
||||
const PanelMenu = imports.ui.panelMenu;
|
||||
@ -23,6 +20,8 @@ const RfkillManagerInterface = '<node> \
|
||||
|
||||
const RfkillManagerProxy = Gio.DBusProxy.makeProxyWrapper(RfkillManagerInterface);
|
||||
|
||||
const HAD_BLUETOOTH_DEVICES_SETUP = 'had-bluetooth-devices-setup';
|
||||
|
||||
const Indicator = new Lang.Class({
|
||||
Name: 'BTIndicator',
|
||||
Extends: PanelMenu.SystemIndicator,
|
||||
@ -32,6 +31,7 @@ const Indicator = new Lang.Class({
|
||||
|
||||
this._indicator = this._addIndicator();
|
||||
this._indicator.icon_name = 'bluetooth-active-symbolic';
|
||||
this._hadSetupDevices = global.settings.get_boolean(HAD_BLUETOOTH_DEVICES_SETUP);
|
||||
|
||||
this._proxy = new RfkillManagerProxy(Gio.DBus.session, BUS_NAME, OBJECT_PATH,
|
||||
Lang.bind(this, function(proxy, error) {
|
||||
@ -44,13 +44,15 @@ const Indicator = new Lang.Class({
|
||||
}));
|
||||
this._proxy.connect('g-properties-changed', Lang.bind(this, this._sync));
|
||||
|
||||
// The Bluetooth menu only appears when Bluetooth is in use,
|
||||
// so just statically build it with a "Turn Off" menu item.
|
||||
this._item = new PopupMenu.PopupSubMenuMenuItem('', true);
|
||||
this._item = new PopupMenu.PopupSubMenuMenuItem(_("Bluetooth"), true);
|
||||
this._item.icon.icon_name = 'bluetooth-active-symbolic';
|
||||
this._item.menu.addAction(_("Turn Off"), Lang.bind(this, function() {
|
||||
this._proxy.BluetoothAirplaneMode = true;
|
||||
|
||||
this._toggleItem = new PopupMenu.PopupMenuItem('');
|
||||
this._toggleItem.connect('activate', Lang.bind(this, function() {
|
||||
this._proxy.BluetoothAirplaneMode = !this._proxy.BluetoothAirplaneMode;
|
||||
}));
|
||||
this._item.menu.addMenuItem(this._toggleItem);
|
||||
|
||||
this._item.menu.addSettingsAction(_("Bluetooth Settings"), 'gnome-bluetooth-panel.desktop');
|
||||
this.menu.addMenuItem(this._item);
|
||||
|
||||
@ -68,42 +70,75 @@ const Indicator = new Lang.Class({
|
||||
while (ret) {
|
||||
let isDefault = this._model.get_value(iter,
|
||||
GnomeBluetooth.Column.DEFAULT);
|
||||
if (isDefault)
|
||||
let isPowered = this._model.get_value(iter,
|
||||
GnomeBluetooth.Column.POWERED);
|
||||
if (isDefault && isPowered)
|
||||
return iter;
|
||||
ret = this._model.iter_next(iter);
|
||||
}
|
||||
return null;
|
||||
},
|
||||
|
||||
_getNConnectedDevices: function() {
|
||||
// nDevices is the number of devices setup for the current default
|
||||
// adapter if one exists and is powered. If unpowered or unavailable,
|
||||
// nDevice is "1" if it had setup devices associated to it the last
|
||||
// time it was seen, and "-1" if not.
|
||||
//
|
||||
// nConnectedDevices is the number of devices connected to the default
|
||||
// adapter if one exists and is powered, or -1 if it's not available.
|
||||
_getNDevices: function() {
|
||||
let adapter = this._getDefaultAdapter();
|
||||
if (!adapter)
|
||||
return 0;
|
||||
return [ this._hadSetupDevices ? 1 : -1, -1 ];
|
||||
|
||||
let nConnectedDevices = 0;
|
||||
let nDevices = 0;
|
||||
let [ret, iter] = this._model.iter_children(adapter);
|
||||
while (ret) {
|
||||
let isConnected = this._model.get_value(iter,
|
||||
GnomeBluetooth.Column.CONNECTED);
|
||||
if (isConnected)
|
||||
nConnectedDevices++;
|
||||
|
||||
let isPaired = this._model.get_value(iter,
|
||||
GnomeBluetooth.Column.PAIRED);
|
||||
let isTrusted = this._model.get_value(iter,
|
||||
GnomeBluetooth.Column.TRUSTED);
|
||||
if (isPaired || isTrusted)
|
||||
nDevices++;
|
||||
ret = this._model.iter_next(iter);
|
||||
}
|
||||
return nDevices;
|
||||
|
||||
if (this._hadSetupDevices != (nDevices > 0)) {
|
||||
this._hadSetupDevices = !this._hadSetupDevices;
|
||||
global.settings.set_boolean(HAD_BLUETOOTH_DEVICES_SETUP, this._hadSetupDevices);
|
||||
}
|
||||
|
||||
return [ nDevices, nConnectedDevices];
|
||||
},
|
||||
|
||||
_sync: function() {
|
||||
let nDevices = this._getNConnectedDevices();
|
||||
let [ nDevices, nConnectedDevices ] = this._getNDevices();
|
||||
let sensitive = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter;
|
||||
|
||||
this.menu.setSensitive(sensitive);
|
||||
this._indicator.visible = nDevices > 0;
|
||||
this._item.actor.visible = this._proxy.BluetoothHasAirplaneMode && !this._proxy.BluetoothAirplaneMode;
|
||||
this._indicator.visible = nConnectedDevices > 0;
|
||||
|
||||
// Remember if there were setup devices and show the menu
|
||||
// if we've seen setup devices and we're not hard blocked
|
||||
if (nDevices > 0)
|
||||
this._item.actor.visible = !this._proxy.BluetoothHardwareAirplaneMode;
|
||||
else
|
||||
this._item.actor.visible = this._proxy.BluetoothHasAirplaneMode && !this._proxy.BluetoothAirplaneMode;
|
||||
|
||||
if (nConnectedDevices > 0)
|
||||
/* Translators: this is the number of connected bluetooth devices */
|
||||
this._item.label.text = ngettext("%d Connected", "%d Connected", nDevices).format(nDevices);
|
||||
this._item.label.text = ngettext("%d Connected", "%d Connected", nConnectedDevices).format(nConnectedDevices);
|
||||
else if (nConnectedDevices == -1)
|
||||
this._item.label.text = _("Off");
|
||||
else
|
||||
this._item.label.text = _("Not In Use");
|
||||
|
||||
this._toggleItem.label.text = this._proxy.BluetoothAirplaneMode ? _("Turn On") : _("Turn Off");
|
||||
},
|
||||
});
|
||||
|
@ -1,5 +1,6 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const Clutter = imports.gi.Clutter;
|
||||
const GLib = imports.gi.GLib;
|
||||
const Gio = imports.gi.Gio;
|
||||
const Lang = imports.lang;
|
||||
@ -7,12 +8,18 @@ const Lang = imports.lang;
|
||||
const Main = imports.ui.main;
|
||||
const PanelMenu = imports.ui.panelMenu;
|
||||
const PopupMenu = imports.ui.popupMenu;
|
||||
const ModalDialog = imports.ui.modalDialog;
|
||||
const Shell = imports.gi.Shell;
|
||||
const Signals = imports.signals;
|
||||
const St = imports.gi.St;
|
||||
|
||||
const LOCATION_SCHEMA = 'org.gnome.system.location';
|
||||
const MAX_ACCURACY_LEVEL = 'max-accuracy-level';
|
||||
const ENABLED = 'enabled';
|
||||
|
||||
const APP_PERMISSIONS_TABLE = 'gnome';
|
||||
const APP_PERMISSIONS_ID = 'geolocation';
|
||||
|
||||
const GeoclueAccuracyLevel = {
|
||||
NONE: 0,
|
||||
COUNTRY: 1,
|
||||
@ -22,6 +29,15 @@ const GeoclueAccuracyLevel = {
|
||||
EXACT: 8
|
||||
};
|
||||
|
||||
function accuracyLevelToString(accuracyLevel) {
|
||||
for (let key in GeoclueAccuracyLevel) {
|
||||
if (GeoclueAccuracyLevel[key] == accuracyLevel)
|
||||
return key;
|
||||
}
|
||||
|
||||
return 'NONE';
|
||||
}
|
||||
|
||||
var GeoclueIface = '<node> \
|
||||
<interface name="org.freedesktop.GeoClue2.Manager"> \
|
||||
<property name="InUse" type="b" access="read"/> \
|
||||
@ -46,6 +62,26 @@ var AgentIface = '<node> \
|
||||
</interface> \
|
||||
</node>';
|
||||
|
||||
var XdgAppIface = '<node> \
|
||||
<interface name="org.freedesktop.XdgApp.PermissionStore"> \
|
||||
<method name="Lookup"> \
|
||||
<arg name="table" type="s" direction="in"/> \
|
||||
<arg name="id" type="s" direction="in"/> \
|
||||
<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> \
|
||||
</interface> \
|
||||
</node>';
|
||||
|
||||
const PermissionStore = Gio.DBusProxy.makeProxyWrapper(XdgAppIface);
|
||||
|
||||
const Indicator = new Lang.Class({
|
||||
Name: 'LocationIndicator',
|
||||
Extends: PanelMenu.SystemIndicator,
|
||||
@ -83,64 +119,66 @@ const Indicator = new Lang.Class({
|
||||
this._onSessionUpdated();
|
||||
this._onMaxAccuracyLevelChanged();
|
||||
this._connectToGeoclue();
|
||||
this._connectToPermissionStore();
|
||||
},
|
||||
|
||||
get MaxAccuracyLevel() {
|
||||
return this._getMaxAccuracyLevel();
|
||||
},
|
||||
|
||||
// We (and geoclue) have currently no way to reliably identifying apps so
|
||||
// for now, lets just authorize all apps as long as they provide a valid
|
||||
// desktop ID. We also ensure they don't get more accuracy than global max.
|
||||
AuthorizeApp: function(desktop_id, reqAccuracyLevel) {
|
||||
var appSystem = Shell.AppSystem.get_default();
|
||||
var app = appSystem.lookup_app(desktop_id + ".desktop");
|
||||
if (app == null) {
|
||||
return [false, 0];
|
||||
}
|
||||
AuthorizeAppAsync: function(params, invocation) {
|
||||
let [desktopId, reqAccuracyLevel] = params;
|
||||
|
||||
let allowedAccuracyLevel = clamp(reqAccuracyLevel, 0, this._getMaxAccuracyLevel());
|
||||
return [true, allowedAccuracyLevel];
|
||||
let authorizer = new AppAuthorizer(desktopId,
|
||||
reqAccuracyLevel,
|
||||
this._permStoreProxy,
|
||||
this._getMaxAccuracyLevel());
|
||||
|
||||
authorizer.authorize(Lang.bind(this, function(accuracyLevel) {
|
||||
let ret = (accuracyLevel != GeoclueAccuracyLevel.NONE);
|
||||
invocation.return_value(GLib.Variant.new('(bu)',
|
||||
[ret, accuracyLevel]));
|
||||
}));
|
||||
},
|
||||
|
||||
_syncIndicator: function() {
|
||||
if (this._proxy == null) {
|
||||
if (this._managerProxy == null) {
|
||||
this._indicator.visible = false;
|
||||
this._item.actor.visible = false;
|
||||
return;
|
||||
}
|
||||
|
||||
this._indicator.visible = this._proxy.InUse;
|
||||
this._indicator.visible = this._managerProxy.InUse;
|
||||
this._item.actor.visible = this._indicator.visible;
|
||||
this._updateMenuLabels();
|
||||
},
|
||||
|
||||
_connectToGeoclue: function() {
|
||||
if (this._proxy != null || this._connecting)
|
||||
if (this._managerProxy != null || this._connecting)
|
||||
return false;
|
||||
|
||||
this._connecting = true;
|
||||
new GeoclueManager(Gio.DBus.system,
|
||||
'org.freedesktop.GeoClue2',
|
||||
'/org/freedesktop/GeoClue2/Manager',
|
||||
Lang.bind(this, this._onProxyReady));
|
||||
Lang.bind(this, this._onManagerProxyReady));
|
||||
return true;
|
||||
},
|
||||
|
||||
_onProxyReady: function(proxy, error) {
|
||||
_onManagerProxyReady: function(proxy, error) {
|
||||
if (error != null) {
|
||||
log(error.message);
|
||||
this._connecting = false;
|
||||
return;
|
||||
}
|
||||
|
||||
this._proxy = proxy;
|
||||
this._propertiesChangedId = this._proxy.connect('g-properties-changed',
|
||||
this._managerProxy = proxy;
|
||||
this._propertiesChangedId = this._managerProxy.connect('g-properties-changed',
|
||||
Lang.bind(this, this._onGeocluePropsChanged));
|
||||
|
||||
this._syncIndicator();
|
||||
|
||||
this._proxy.AddAgentRemote('gnome-shell', Lang.bind(this, this._onAgentRegistered));
|
||||
this._managerProxy.AddAgentRemote('gnome-shell', Lang.bind(this, this._onAgentRegistered));
|
||||
},
|
||||
|
||||
_onAgentRegistered: function(result, error) {
|
||||
@ -153,10 +191,10 @@ const Indicator = new Lang.Class({
|
||||
|
||||
_onGeoclueVanished: function() {
|
||||
if (this._propertiesChangedId) {
|
||||
this._proxy.disconnect(this._propertiesChangedId);
|
||||
this._managerProxy.disconnect(this._propertiesChangedId);
|
||||
this._propertiesChangedId = 0;
|
||||
}
|
||||
this._proxy = null;
|
||||
this._managerProxy = null;
|
||||
|
||||
this._syncIndicator();
|
||||
},
|
||||
@ -211,9 +249,206 @@ const Indicator = new Lang.Class({
|
||||
let unpacked = properties.deep_unpack();
|
||||
if ("InUse" in unpacked)
|
||||
this._syncIndicator();
|
||||
}
|
||||
},
|
||||
|
||||
_connectToPermissionStore: function() {
|
||||
this._permStoreProxy = null;
|
||||
new PermissionStore(Gio.DBus.session,
|
||||
'org.freedesktop.XdgApp',
|
||||
'/org/freedesktop/XdgApp/PermissionStore',
|
||||
Lang.bind(this, this._onPermStoreProxyReady));
|
||||
},
|
||||
|
||||
_onPermStoreProxyReady: function(proxy, error) {
|
||||
if (error != null) {
|
||||
log(error.message);
|
||||
return;
|
||||
}
|
||||
|
||||
this._permStoreProxy = proxy;
|
||||
},
|
||||
});
|
||||
|
||||
function clamp(value, min, max) {
|
||||
return Math.max(min, Math.min(max, value));
|
||||
}
|
||||
|
||||
const AppAuthorizer = new Lang.Class({
|
||||
Name: 'LocationAppAuthorizer',
|
||||
|
||||
_init: function(desktopId,
|
||||
reqAccuracyLevel,
|
||||
permStoreProxy,
|
||||
maxAccuracyLevel) {
|
||||
this.desktopId = desktopId;
|
||||
this.reqAccuracyLevel = reqAccuracyLevel;
|
||||
this._permStoreProxy = permStoreProxy;
|
||||
this._maxAccuracyLevel = maxAccuracyLevel;
|
||||
|
||||
this._accuracyLevel = GeoclueAccuracyLevel.NONE;
|
||||
},
|
||||
|
||||
authorize: function(onAuthDone) {
|
||||
this._onAuthDone = onAuthDone;
|
||||
|
||||
let appSystem = Shell.AppSystem.get_default();
|
||||
this._app = appSystem.lookup_app(this.desktopId + ".desktop");
|
||||
if (this._app == null || this._permStoreProxy == null) {
|
||||
this._completeAuth();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
this._permStoreProxy.LookupRemote(APP_PERMISSIONS_TABLE,
|
||||
APP_PERMISSIONS_ID,
|
||||
Lang.bind(this,
|
||||
this._onPermLookupDone));
|
||||
},
|
||||
|
||||
_onPermLookupDone: function(result, error) {
|
||||
if (error != null) {
|
||||
if (error.domain == Gio.DBusError) {
|
||||
// Likely no xdg-app installed, just authorize the app
|
||||
this._accuracyLevel = this.reqAccuracyLevel;
|
||||
this._permStoreProxy = null;
|
||||
this._completeAuth();
|
||||
} else {
|
||||
// Currently xdg-app throws an error if we lookup for
|
||||
// unknown ID (which would be the case first time this code
|
||||
// runs) so we continue with user authorization as normal
|
||||
// and ID is added to the store if user says "yes".
|
||||
log(error.message);
|
||||
this._permissions = {};
|
||||
this._userAuthorizeApp();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
[this._permissions] = result;
|
||||
let permission = this._permissions[this.desktopId];
|
||||
|
||||
if (permission == null) {
|
||||
this._userAuthorizeApp();
|
||||
} else {
|
||||
let [levelStr] = permission || ['NONE'];
|
||||
this._accuracyLevel = GeoclueAccuracyLevel[levelStr] ||
|
||||
GeoclueAccuracyLevel.NONE;
|
||||
this._completeAuth();
|
||||
}
|
||||
},
|
||||
|
||||
_userAuthorizeApp: function() {
|
||||
let name = this._app.get_name();
|
||||
let appInfo = this._app.get_app_info();
|
||||
let reason = appInfo.get_string("X-Geoclue-Reason");
|
||||
|
||||
this._showAppAuthDialog(name, reason);
|
||||
},
|
||||
|
||||
_showAppAuthDialog: function(name, reason) {
|
||||
this._dialog = new GeolocationDialog(name,
|
||||
reason,
|
||||
this.reqAccuracyLevel);
|
||||
|
||||
let responseId = this._dialog.connect('response', Lang.bind(this,
|
||||
function(dialog, level) {
|
||||
this._dialog.disconnect(responseId);
|
||||
this._accuracyLevel = level;
|
||||
this._completeAuth();
|
||||
}));
|
||||
|
||||
this._dialog.open();
|
||||
},
|
||||
|
||||
_completeAuth: function() {
|
||||
if (this._accuracyLevel != GeoclueAccuracyLevel.NONE) {
|
||||
this._accuracyLevel = clamp(this._accuracyLevel,
|
||||
0,
|
||||
this._maxAccuracyLevel);
|
||||
}
|
||||
this._saveToPermissionStore();
|
||||
|
||||
this._onAuthDone(this._accuracyLevel);
|
||||
},
|
||||
|
||||
_saveToPermissionStore: function() {
|
||||
if (this._permStoreProxy == null)
|
||||
return;
|
||||
|
||||
let levelStr = accuracyLevelToString(this._accuracyLevel);
|
||||
let dateStr = Math.round(Date.now() / 1000).toString();
|
||||
this._permissions[this.desktopId] = [levelStr, dateStr];
|
||||
|
||||
let data = GLib.Variant.new('av', {});
|
||||
|
||||
this._permStoreProxy.SetRemote(APP_PERMISSIONS_TABLE,
|
||||
true,
|
||||
APP_PERMISSIONS_ID,
|
||||
this._permissions,
|
||||
data,
|
||||
function (result, error) {
|
||||
if (error != null)
|
||||
log(error.message);
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
const GeolocationDialog = new Lang.Class({
|
||||
Name: 'GeolocationDialog',
|
||||
Extends: ModalDialog.ModalDialog,
|
||||
|
||||
_init: function(name, reason, reqAccuracyLevel) {
|
||||
this.parent({ styleClass: 'geolocation-dialog' });
|
||||
this.reqAccuracyLevel = reqAccuracyLevel;
|
||||
|
||||
let mainContentBox = new St.BoxLayout({ style_class: 'geolocation-dialog-main-layout' });
|
||||
this.contentLayout.add_actor(mainContentBox);
|
||||
|
||||
let icon = new St.Icon({ style_class: 'geolocation-dialog-icon',
|
||||
icon_name: 'find-location-symbolic',
|
||||
y_align: Clutter.ActorAlign.START });
|
||||
mainContentBox.add_actor(icon);
|
||||
|
||||
let messageBox = new St.BoxLayout({ style_class: 'geolocation-dialog-content',
|
||||
vertical: true });
|
||||
mainContentBox.add_actor(messageBox);
|
||||
|
||||
this._title = new St.Label({ style_class: 'geolocation-dialog-title headline' });
|
||||
messageBox.add_actor(this._title);
|
||||
|
||||
this._reason = new St.Label({ style_class: 'geolocation-dialog-reason' });
|
||||
messageBox.add_actor(this._reason);
|
||||
|
||||
this._privacyNote = new St.Label();
|
||||
messageBox.add_actor(this._privacyNote);
|
||||
|
||||
let button = this.addButton({ label: _("Deny Access"),
|
||||
action: Lang.bind(this, this._onDenyClicked),
|
||||
key: Clutter.KEY_Escape });
|
||||
this.addButton({ label: _("Grant Access"),
|
||||
action: Lang.bind(this, this._onGrantClicked) });
|
||||
|
||||
this.setInitialKeyFocus(button);
|
||||
|
||||
/* Translators: %s is an application name */
|
||||
this._title.text = _("Give %s access to your location?").format(name);
|
||||
|
||||
this._privacyNote.text = _("Location access can be changed at any time from the privacy settings.");
|
||||
|
||||
if (reason)
|
||||
this._reason.text = reason;
|
||||
this._reason.visible = (reason != null);
|
||||
},
|
||||
|
||||
_onGrantClicked: function() {
|
||||
this.emit('response', this.reqAccuracyLevel);
|
||||
this.close();
|
||||
},
|
||||
|
||||
_onDenyClicked: function() {
|
||||
this.emit('response', GeoclueAccuracyLevel.NONE);
|
||||
this.close();
|
||||
}
|
||||
});
|
||||
Signals.addSignalMethods(GeolocationDialog.prototype);
|
||||
|
@ -1,6 +1,8 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const Gio = imports.gi.Gio;
|
||||
const Clutter = imports.gi.Clutter;
|
||||
const St = imports.gi.St;
|
||||
const Lang = imports.lang;
|
||||
const UPower = imports.gi.UPowerGlib;
|
||||
|
||||
@ -25,6 +27,8 @@ const DisplayDeviceInterface = '<node> \
|
||||
|
||||
const PowerManagerProxy = Gio.DBusProxy.makeProxyWrapper(DisplayDeviceInterface);
|
||||
|
||||
const SHOW_BATTERY_PERCENTAGE = 'show-battery-percentage';
|
||||
|
||||
const Indicator = new Lang.Class({
|
||||
Name: 'PowerIndicator',
|
||||
Extends: PanelMenu.SystemIndicator,
|
||||
@ -32,7 +36,15 @@ const Indicator = new Lang.Class({
|
||||
_init: function() {
|
||||
this.parent();
|
||||
|
||||
this._desktopSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.interface' });
|
||||
this._desktopSettings.connect('changed::' + SHOW_BATTERY_PERCENTAGE,
|
||||
Lang.bind(this, this._sync));
|
||||
|
||||
this._indicator = this._addIndicator();
|
||||
this._percentageLabel = new St.Label({ y_expand: true,
|
||||
y_align: Clutter.ActorAlign.CENTER });
|
||||
this.indicators.add(this._percentageLabel, { expand: true, y_fill: true });
|
||||
this.indicators.add_style_class_name('power-status');
|
||||
|
||||
this._proxy = new PowerManagerProxy(Gio.DBus.system, BUS_NAME, OBJECT_PATH,
|
||||
Lang.bind(this, function(proxy, error) {
|
||||
@ -83,12 +95,12 @@ const Indicator = new Lang.Class({
|
||||
|
||||
if (this._proxy.State == UPower.DeviceState.DISCHARGING) {
|
||||
// Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
return _("%d\u2236%02d Remaining (%d%%)").format(hours, minutes, this._proxy.Percentage);
|
||||
return _("%d\u2236%02d Remaining (%d\u2009%%)").format(hours, minutes, this._proxy.Percentage);
|
||||
}
|
||||
|
||||
if (this._proxy.State == UPower.DeviceState.CHARGING) {
|
||||
// Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
return _("%d\u2236%02d Until Full (%d%%)").format(hours, minutes, this._proxy.Percentage);
|
||||
return _("%d\u2236%02d Until Full (%d\u2009%%)").format(hours, minutes, this._proxy.Percentage);
|
||||
}
|
||||
|
||||
return null;
|
||||
@ -99,10 +111,12 @@ const Indicator = new Lang.Class({
|
||||
let visible = this._proxy.IsPresent;
|
||||
if (visible) {
|
||||
this._item.actor.show();
|
||||
this._percentageLabel.visible = this._desktopSettings.get_boolean(SHOW_BATTERY_PERCENTAGE);
|
||||
} else {
|
||||
// If there's no battery, then we use the power icon.
|
||||
this._item.actor.hide();
|
||||
this._indicator.icon_name = 'system-shutdown-symbolic';
|
||||
this._percentageLabel.hide();
|
||||
return;
|
||||
}
|
||||
|
||||
@ -111,6 +125,14 @@ const Indicator = new Lang.Class({
|
||||
this._indicator.icon_name = icon;
|
||||
this._item.icon.icon_name = icon;
|
||||
|
||||
// The icon label
|
||||
let label
|
||||
if (this._proxy.State == UPower.DeviceState.FULLY_CHARGED)
|
||||
label = _("%d\u2009%%").format(100);
|
||||
else
|
||||
label = _("%d\u2009%%").format(this._proxy.Percentage);
|
||||
this._percentageLabel.clutter_text.set_markup('<span size="smaller">' + label + '</span>');
|
||||
|
||||
// The status label
|
||||
this._item.label.text = this._getStatus();
|
||||
},
|
||||
|
@ -6,6 +6,7 @@ const Gdm = imports.gi.Gdm;
|
||||
const Gio = imports.gi.Gio;
|
||||
const GLib = imports.gi.GLib;
|
||||
const Lang = imports.lang;
|
||||
const Meta = imports.gi.Meta;
|
||||
const Shell = imports.gi.Shell;
|
||||
const St = imports.gi.St;
|
||||
|
||||
@ -110,6 +111,7 @@ const Indicator = new Lang.Class({
|
||||
|
||||
this._session = new GnomeSession.SessionManager();
|
||||
this._loginManager = LoginManager.getLoginManager();
|
||||
this._monitorManager = Meta.MonitorManager.get();
|
||||
this._haveShutdown = true;
|
||||
this._haveSuspend = true;
|
||||
|
||||
@ -155,6 +157,8 @@ const Indicator = new Lang.Class({
|
||||
|
||||
this._orientationSettings.connect('changed::orientation-lock',
|
||||
Lang.bind(this, this._updateOrientationLock));
|
||||
Main.layoutManager.connect('monitors-changed',
|
||||
Lang.bind(this, this._updateOrientationLock));
|
||||
Gio.DBus.system.watch_name(SENSOR_BUS_NAME,
|
||||
Gio.BusNameWatcherFlags.NONE,
|
||||
Lang.bind(this, this._sensorProxyAppeared),
|
||||
@ -264,7 +268,8 @@ const Indicator = new Lang.Class({
|
||||
|
||||
_updateOrientationLock: function() {
|
||||
if (this._sensorProxy)
|
||||
this._orientationLockAction.visible = this._sensorProxy.HasAccelerometer;
|
||||
this._orientationLockAction.visible = this._sensorProxy.HasAccelerometer &&
|
||||
this._monitorManager.get_is_builtin_display_on();
|
||||
else
|
||||
this._orientationLockAction.visible = false;
|
||||
|
||||
|
@ -156,7 +156,7 @@ const ViewSelector = new Lang.Class({
|
||||
|
||||
this.appDisplay = new AppDisplay.AppDisplay();
|
||||
this._appsPage = this._addPage(this.appDisplay.actor,
|
||||
_("Applications"), 'view-grid-symbolic');
|
||||
_("Applications"), 'view-app-grid-symbolic');
|
||||
|
||||
this._searchResults = new Search.SearchResults();
|
||||
this._searchPage = this._addPage(this._searchResults.actor,
|
||||
|
@ -677,6 +677,7 @@ const WindowManager = new Lang.Class({
|
||||
this._minimizing = [];
|
||||
this._unminimizing = [];
|
||||
this._mapping = [];
|
||||
this._resizing = [];
|
||||
this._destroying = [];
|
||||
this._movingWindow = null;
|
||||
|
||||
@ -692,6 +693,7 @@ const WindowManager = new Lang.Class({
|
||||
this._minimizeWindowDone(shellwm, actor);
|
||||
this._mapWindowDone(shellwm, actor);
|
||||
this._destroyWindowDone(shellwm, actor);
|
||||
this._sizeChangeWindowDone(shellwm, actor);
|
||||
}));
|
||||
|
||||
this._shellwm.connect('switch-workspace', Lang.bind(this, this._switchWorkspace));
|
||||
@ -1218,9 +1220,120 @@ const WindowManager = new Lang.Class({
|
||||
},
|
||||
|
||||
_sizeChangeWindow : function(shellwm, actor, whichChange, oldFrameRect, oldBufferRect) {
|
||||
let types = [Meta.WindowType.NORMAL];
|
||||
if (!this._shouldAnimateActor(actor, types)) {
|
||||
shellwm.completed_size_change(actor);
|
||||
return;
|
||||
}
|
||||
|
||||
if (whichChange == Meta.SizeChange.FULLSCREEN)
|
||||
this._fullscreenWindow(shellwm, actor, oldFrameRect, oldBufferRect);
|
||||
else if (whichChange == Meta.SizeChange.UNFULLSCREEN)
|
||||
this._unfullscreenWindow(shellwm, actor, oldFrameRect, oldBufferRect);
|
||||
else
|
||||
shellwm.completed_size_change(actor);
|
||||
},
|
||||
|
||||
_fullscreenWindow: function(shellwm, actor, oldFrameRect, oldBufferRect) {
|
||||
let monitor = Main.layoutManager.monitors[actor.meta_window.get_monitor()];
|
||||
actor.translation_x = oldFrameRect.x - monitor.x;
|
||||
actor.translation_y = oldFrameRect.y - monitor.y;
|
||||
this._fullscreenAnimation(shellwm, actor, oldFrameRect);
|
||||
},
|
||||
|
||||
_unfullscreenWindow: function(shellwm, actor, oldFrameRect, oldBufferRect) {
|
||||
let targetRect = actor.meta_window.get_frame_rect();
|
||||
let monitor = Main.layoutManager.monitors[actor.meta_window.get_monitor()];
|
||||
actor.translation_x = -(targetRect.x - monitor.x);
|
||||
actor.translation_y = -(targetRect.y - monitor.y);
|
||||
this._fullscreenAnimation(shellwm, actor, oldFrameRect);
|
||||
},
|
||||
|
||||
_fullscreenAnimation: function(shellwm, actor, oldFrameRect) {
|
||||
this._resizing.push(actor);
|
||||
|
||||
// Position a clone of the window on top of the old position,
|
||||
// while actor updates are frozen.
|
||||
// Note that the MetaWindow has up to date sizing information for
|
||||
// the new geometry already.
|
||||
let targetRect = actor.meta_window.get_frame_rect();
|
||||
let actorContent = Shell.util_get_content_for_window_actor(actor, oldFrameRect);
|
||||
let actorClone = new St.Widget({ content: actorContent });
|
||||
actorClone.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
|
||||
actorClone.set_position(oldFrameRect.x, oldFrameRect.y);
|
||||
actorClone.set_size(oldFrameRect.width, oldFrameRect.height);
|
||||
Main.uiGroup.add_actor(actorClone);
|
||||
|
||||
actor.__fullscreenClone = actorClone;
|
||||
|
||||
let scaleX = targetRect.width / oldFrameRect.width;
|
||||
let scaleY = targetRect.height / oldFrameRect.height;
|
||||
|
||||
// Now scale and fade out the clone
|
||||
Tweener.addTween(actorClone,
|
||||
{ x: targetRect.x,
|
||||
y: targetRect.y,
|
||||
scale_x: scaleX,
|
||||
scale_y: scaleY,
|
||||
opacity: 0,
|
||||
time: WINDOW_ANIMATION_TIME,
|
||||
transition: 'easeOutQuad'
|
||||
});
|
||||
|
||||
// Now set scale the actor to size it as the clone.
|
||||
// Note that the caller of this function already set a translation
|
||||
// on the actor.
|
||||
actor.scale_x = 1 / scaleX;
|
||||
actor.scale_y = 1 / scaleY;
|
||||
|
||||
// Scale it to its actual new size
|
||||
Tweener.addTween(actor,
|
||||
{ scale_x: 1.0,
|
||||
scale_y: 1.0,
|
||||
translation_x: 0,
|
||||
translation_y: 0,
|
||||
time: WINDOW_ANIMATION_TIME,
|
||||
transition: 'easeOutQuad',
|
||||
onComplete: this._sizeChangeWindowDone,
|
||||
onCompleteScope: this,
|
||||
onCompleteParams: [shellwm, actor],
|
||||
onOverwrite: this._sizeChangeWindowOverwritten,
|
||||
onOverwriteScope: this,
|
||||
onOverwriteParams: [shellwm, actor]
|
||||
});
|
||||
|
||||
// Now unfreeze actor updates, to get it to the new size.
|
||||
// It's important that we don't wait until the animation is completed to
|
||||
// do this, otherwise our scale will be applied to the old texture size.
|
||||
shellwm.completed_size_change(actor);
|
||||
},
|
||||
|
||||
_sizeChangeWindowDone: function(shellwm, actor) {
|
||||
if (this._removeEffect(this._resizing, actor)) {
|
||||
Tweener.removeTweens(actor);
|
||||
actor.scale_x = 1.0;
|
||||
actor.scale_y = 1.0;
|
||||
actor.translation_x = 0;
|
||||
actor.translation_y = 0;
|
||||
|
||||
let actorClone = actor.__fullscreenClone;
|
||||
if (actorClone) {
|
||||
actorClone.destroy();
|
||||
delete actor.__fullscreenClone;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_sizeChangeWindowOverwritten: function(shellwm, actor) {
|
||||
if (this._removeEffect(this._resizing, actor)) {
|
||||
let actorClone = actor.__fullscreenClone;
|
||||
if (actorClone) {
|
||||
actorClone.destroy();
|
||||
delete actor.__fullscreenClone;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_hasAttachedDialogs: function(window, ignoreWindow) {
|
||||
var count = 0;
|
||||
window.foreach_transient(function(win) {
|
||||
@ -1254,11 +1367,14 @@ const WindowManager = new Lang.Class({
|
||||
let dimmer = getWindowDimmer(actor);
|
||||
if (!dimmer)
|
||||
return;
|
||||
Tweener.addTween(dimmer,
|
||||
{ dimFactor: 1.0,
|
||||
time: DIM_TIME,
|
||||
transition: 'linear'
|
||||
});
|
||||
if (this._shouldAnimate())
|
||||
Tweener.addTween(dimmer,
|
||||
{ dimFactor: 1.0,
|
||||
time: DIM_TIME,
|
||||
transition: 'linear'
|
||||
});
|
||||
else
|
||||
dimmer.dimFactor = 1.0;
|
||||
},
|
||||
|
||||
_undimWindow: function(window) {
|
||||
@ -1268,10 +1384,13 @@ const WindowManager = new Lang.Class({
|
||||
let dimmer = getWindowDimmer(actor);
|
||||
if (!dimmer)
|
||||
return;
|
||||
Tweener.addTween(dimmer,
|
||||
{ dimFactor: 0.0,
|
||||
time: UNDIM_TIME,
|
||||
transition: 'linear' });
|
||||
if (this._shouldAnimate())
|
||||
Tweener.addTween(dimmer,
|
||||
{ dimFactor: 0.0,
|
||||
time: UNDIM_TIME,
|
||||
transition: 'linear' });
|
||||
else
|
||||
dimmer.dimFactor = 0.0;
|
||||
},
|
||||
|
||||
_mapWindow : function(shellwm, actor) {
|
||||
@ -1290,6 +1409,9 @@ const WindowManager = new Lang.Class({
|
||||
actor._windowType = type;
|
||||
}));
|
||||
|
||||
if (actor.meta_window.is_attached_dialog())
|
||||
this._checkDimming(actor.get_meta_window().get_transient_for());
|
||||
|
||||
let types = [Meta.WindowType.NORMAL,
|
||||
Meta.WindowType.DIALOG,
|
||||
Meta.WindowType.MODAL_DIALOG];
|
||||
@ -1298,9 +1420,6 @@ const WindowManager = new Lang.Class({
|
||||
return;
|
||||
}
|
||||
|
||||
if (actor.meta_window.is_attached_dialog())
|
||||
this._checkDimming(actor.get_meta_window().get_transient_for());
|
||||
|
||||
switch (actor._windowType) {
|
||||
case Meta.WindowType.NORMAL:
|
||||
actor.set_pivot_point(0.5, 1.0);
|
||||
@ -1383,6 +1502,9 @@ const WindowManager = new Lang.Class({
|
||||
});
|
||||
}
|
||||
|
||||
if (window.is_attached_dialog())
|
||||
this._checkDimming(window.get_transient_for(), window);
|
||||
|
||||
let types = [Meta.WindowType.NORMAL,
|
||||
Meta.WindowType.DIALOG,
|
||||
Meta.WindowType.MODAL_DIALOG];
|
||||
@ -1417,7 +1539,6 @@ const WindowManager = new Lang.Class({
|
||||
|
||||
if (window.is_attached_dialog()) {
|
||||
let parent = window.get_transient_for();
|
||||
this._checkDimming(parent, window);
|
||||
actor._parentDestroyId = parent.connect('unmanaged', Lang.bind(this, function () {
|
||||
Tweener.removeTweens(actor);
|
||||
this._destroyWindowDone(shellwm, actor);
|
||||
|
@ -214,7 +214,7 @@ const WindowMenuManager = new Lang.Class({
|
||||
menu.close();
|
||||
});
|
||||
|
||||
this._sourceActor.set_size(rect.width, rect.height);
|
||||
this._sourceActor.set_size(Math.max(1, rect.width), Math.max(1, rect.height));
|
||||
this._sourceActor.set_position(rect.x, rect.y);
|
||||
this._sourceActor.show();
|
||||
|
||||
|
@ -361,6 +361,9 @@ const WindowClone = new Lang.Class({
|
||||
// a long-press canceled when the pointer movement
|
||||
// exceeds dnd-drag-threshold to manually start the drag
|
||||
if (state == Clutter.LongPressState.CANCEL) {
|
||||
let event = Clutter.get_current_event();
|
||||
this._dragTouchSequence = event.get_event_sequence();
|
||||
|
||||
// A click cancels a long-press before any click handler is
|
||||
// run - make sure to not start a drag in that case
|
||||
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this,
|
||||
@ -369,7 +372,7 @@ const WindowClone = new Lang.Class({
|
||||
return;
|
||||
let [x, y] = action.get_coords();
|
||||
action.release();
|
||||
this._draggable.startDrag(x, y, global.get_current_time());
|
||||
this._draggable.startDrag(x, y, global.get_current_time(), this._dragTouchSequence);
|
||||
}));
|
||||
}
|
||||
return true;
|
||||
|
@ -45,11 +45,11 @@ const PrimaryActorLayout = new Lang.Class({
|
||||
this.primaryActor = primaryActor;
|
||||
},
|
||||
|
||||
vfunc_get_preferred_width: function(forHeight) {
|
||||
vfunc_get_preferred_width: function(container, forHeight) {
|
||||
return this.primaryActor.get_preferred_width(forHeight);
|
||||
},
|
||||
|
||||
vfunc_get_preferred_height: function(forWidth) {
|
||||
vfunc_get_preferred_height: function(container, forWidth) {
|
||||
return this.primaryActor.get_preferred_height(forWidth);
|
||||
},
|
||||
});
|
||||
@ -80,6 +80,8 @@ const WindowClone = new Lang.Class({
|
||||
|
||||
this.actor.connect('button-release-event',
|
||||
Lang.bind(this, this._onButtonRelease));
|
||||
this.actor.connect('touch-event',
|
||||
Lang.bind(this, this._onTouchEvent));
|
||||
|
||||
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
|
||||
|
||||
@ -200,6 +202,15 @@ const WindowClone = new Lang.Class({
|
||||
return Clutter.EVENT_STOP;
|
||||
},
|
||||
|
||||
_onTouchEvent : function (actor, event) {
|
||||
if (event.type() != Clutter.EventType.TOUCH_END ||
|
||||
!global.display.is_pointer_emulating_sequence(event.get_event_sequence()))
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
|
||||
this.emit('selected', event.get_time());
|
||||
return Clutter.EVENT_STOP;
|
||||
},
|
||||
|
||||
_onDragBegin : function (draggable, time) {
|
||||
this.inDrag = true;
|
||||
this.emit('drag-begin');
|
||||
@ -642,6 +653,7 @@ const ThumbnailsBox = new Lang.Class({
|
||||
|
||||
this.actor.connect('button-press-event', function() { return Clutter.EVENT_STOP; });
|
||||
this.actor.connect('button-release-event', Lang.bind(this, this._onButtonRelease));
|
||||
this.actor.connect('touch-event', Lang.bind(this, this._onTouchEvent));
|
||||
|
||||
Main.overview.connect('showing',
|
||||
Lang.bind(this, this._createThumbnails));
|
||||
@ -672,18 +684,31 @@ const ThumbnailsBox = new Lang.Class({
|
||||
global.screen.n_workspaces > 1;
|
||||
},
|
||||
|
||||
_onButtonRelease: function(actor, event) {
|
||||
let [stageX, stageY] = event.get_coords();
|
||||
_activateThumbnailAtPoint: function (stageX, stageY, time) {
|
||||
let [r, x, y] = this.actor.transform_stage_point(stageX, stageY);
|
||||
|
||||
for (let i = 0; i < this._thumbnails.length; i++) {
|
||||
let thumbnail = this._thumbnails[i]
|
||||
let [w, h] = thumbnail.actor.get_transformed_size();
|
||||
if (y >= thumbnail.actor.y && y <= thumbnail.actor.y + h) {
|
||||
thumbnail.activate(event.get_time());
|
||||
thumbnail.activate(time);
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_onButtonRelease: function(actor, event) {
|
||||
let [stageX, stageY] = event.get_coords();
|
||||
this._activateThumbnailAtPoint(stageX, stageY, event.get_time());
|
||||
return Clutter.EVENT_STOP;
|
||||
},
|
||||
|
||||
_onTouchEvent: function (actor, event) {
|
||||
if (event.type() == Clutter.EventType.TOUCH_END &&
|
||||
global.display.is_pointer_emulating_sequence(event.get_event_sequence())) {
|
||||
let [stageX, stageY] = event.get_coords();
|
||||
this._activateThumbnailAtPoint(stageX, stageY, event.get_time());
|
||||
}
|
||||
|
||||
return Clutter.EVENT_STOP;
|
||||
},
|
||||
|
@ -421,7 +421,7 @@ const WorkspacesDisplay = new Lang.Class({
|
||||
// Only switch to the workspace when there's no application
|
||||
// windows open. The problem is that it's too easy to miss
|
||||
// an app window and get the wrong one focused.
|
||||
if (action.get_button() == 1 &&
|
||||
if ((action.get_button() == 1 || action.get_button() == 0) &&
|
||||
this._getPrimaryView().getActiveWorkspace().isEmpty())
|
||||
Main.overview.hide();
|
||||
}));
|
||||
|
@ -140,7 +140,7 @@
|
||||
|
||||
<para>
|
||||
<filename>/usr/share/gnome-session/sessions/gnome.session</filename>,
|
||||
<filename>/usr/share/applications/gnome-shell.desktop</filename>.</para>
|
||||
<filename>/usr/share/applications/org.gnome.Shell.desktop</filename>.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
|
@ -24,6 +24,7 @@ fi
|
||||
fr
|
||||
fur
|
||||
ga
|
||||
gd
|
||||
gl
|
||||
gu
|
||||
he
|
||||
|
@ -2,9 +2,8 @@
|
||||
# Please keep this file sorted alphabetically.
|
||||
[encoding: UTF-8]
|
||||
data/50-gnome-shell-system.xml.in
|
||||
data/gnome-shell.desktop.in.in
|
||||
data/gnome-shell-extension-prefs.desktop.in.in
|
||||
data/gnome-shell-wayland.desktop.in.in
|
||||
data/org.gnome.Shell.desktop.in.in
|
||||
data/org.gnome.shell.gschema.xml.in.in
|
||||
data/org.gnome.Shell.PortalHelper.desktop.in
|
||||
js/extensionPrefs/main.js
|
||||
@ -15,6 +14,7 @@ js/misc/util.js
|
||||
js/portalHelper/main.js
|
||||
js/ui/appDisplay.js
|
||||
js/ui/appFavorites.js
|
||||
js/ui/audioDeviceSelection.js
|
||||
js/ui/backgroundMenu.js
|
||||
js/ui/calendar.js
|
||||
js/ui/components/automountManager.js
|
||||
@ -33,7 +33,9 @@ js/ui/keyboard.js
|
||||
js/ui/legacyTray.js
|
||||
js/ui/lookingGlass.js
|
||||
js/ui/main.js
|
||||
js/ui/messageList.js
|
||||
js/ui/messageTray.js
|
||||
js/ui/mpris.js
|
||||
js/ui/notificationDaemon.js
|
||||
js/ui/overviewControls.js
|
||||
js/ui/overview.js
|
||||
|
384
po/ar.po
384
po/ar.po
@ -1,6 +1,6 @@
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# Khaled Hosny <khaledhosny@eglug.org>, 2009, 2010, 2011, 2012, 2013, 2014, 2015.
|
||||
# Khaled Hosny <khaledhosny@eglug.org>, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016.
|
||||
# Muhammed Abd-ulaziz Abd-ullah <thenubianmuha_idrecy@yahoo.co.uk>, 2012.
|
||||
# Abderrahim Kitouni <a.kitouni@gmail.com>, 2012, 2014.
|
||||
# Ibrahim Saed <ibraheem5000@gmail.com>, 2012.
|
||||
@ -8,8 +8,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell master\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-09-23 23:52+0200\n"
|
||||
"PO-Revision-Date: 2015-09-23 23:52+0200\n"
|
||||
"POT-Creation-Date: 2016-04-10 20:24+0200\n"
|
||||
"PO-Revision-Date: 2016-04-10 20:26+0200\n"
|
||||
"Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n"
|
||||
"Language-Team: Arabic <doc@arabeyes.org>\n"
|
||||
"Language: ar\n"
|
||||
@ -18,7 +18,7 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
|
||||
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
|
||||
"X-Generator: Virtaal 0.7.1\n"
|
||||
"X-Generator: Virtaal 1.0.0-beta1\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
|
||||
#: ../data/50-gnome-shell-system.xml.in.h:1
|
||||
@ -45,15 +45,6 @@ msgstr "أظهر كل التطبيقات"
|
||||
msgid "Open the application menu"
|
||||
msgstr "افتح قائمة التطبيقات"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "صدفة جنوم"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:2
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "إدارة النوافذ وإطلاق التطبيقات"
|
||||
|
||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
||||
msgid "GNOME Shell Extension Preferences"
|
||||
msgstr "تفضيلات امتدادات صدفة جنوم"
|
||||
@ -62,9 +53,13 @@ msgstr "تفضيلات امتدادات صدفة جنوم"
|
||||
msgid "Configure GNOME Shell Extensions"
|
||||
msgstr "اضبط امتدادات صدفة جنوم"
|
||||
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
|
||||
msgid "GNOME Shell (wayland compositor)"
|
||||
msgstr "صدفة جنوم (وايلاند)"
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "صدفة جنوم"
|
||||
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "إدارة النوافذ وإطلاق التطبيقات"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
|
||||
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
||||
@ -152,116 +147,129 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "اعرض تاريخ الأسبوع في التقويم"
|
||||
msgid ""
|
||||
"Whether the default Bluetooth adapter had set up devices associated to it"
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgid ""
|
||||
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
|
||||
"powered, or if there were devices set up associated with the default "
|
||||
"adapter. This will be reset if the default adapter is ever seen not to have "
|
||||
"devices associated to it."
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
msgid "Keybinding to open the application menu"
|
||||
msgstr ""
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "اعرض تاريخ الأسبوع في التقويم"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
msgid "Keybinding to open the application menu."
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
msgid "Keybinding to open the \"Show Applications\" view"
|
||||
msgid "Keybinding to open the application menu"
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
msgid "Keybinding to open the application menu."
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
msgid "Keybinding to open the \"Show Applications\" view"
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
msgid ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
msgid "Keybinding to open the overview"
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
msgid "Keybinding to open the Activities Overview."
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
msgid "Keybinding to toggle the visibility of the notification list"
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
msgid "Keybinding to toggle the visibility of the notification list."
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
msgid "Keybinding to focus the active notification"
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
msgid "Keybinding to focus the active notification."
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
msgid ""
|
||||
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
msgid "Which keyboard to use"
|
||||
msgstr "أي لوحة مفاتيح ترغب باستخدامها"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
msgid "The type of keyboard to use."
|
||||
msgstr "نوع لوحة المفاتيح التي ترغب باستخدامها."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
msgid "Limit switcher to current workspace."
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid ""
|
||||
"If true, only applications that have windows on the current workspace are "
|
||||
"shown in the switcher. Otherwise, all applications are included."
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid "The application icon mode."
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
"only' (shows only the application icon) or 'both'."
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
msgid ""
|
||||
"If true, only windows from the current workspace are shown in the switcher. "
|
||||
"Otherwise, all windows are included."
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "مساحات عمل على الشاشة الرئيسية فقط"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
msgstr ""
|
||||
|
||||
@ -269,51 +277,52 @@ msgstr ""
|
||||
msgid "Network Login"
|
||||
msgstr "ولوج الشبكة"
|
||||
|
||||
#: ../js/extensionPrefs/main.js:122
|
||||
#: ../js/extensionPrefs/main.js:117
|
||||
#, javascript-format
|
||||
msgid "There was an error loading the preferences dialog for %s:"
|
||||
msgstr "حدث خطأ أثناء تشغيل حوار تفضيلات %s:"
|
||||
|
||||
#: ../js/extensionPrefs/main.js:154
|
||||
#: ../js/extensionPrefs/main.js:149
|
||||
msgid "GNOME Shell Extensions"
|
||||
msgstr "امتدادات صدفة جنوم"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
|
||||
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
|
||||
#: ../js/ui/components/networkAgent.js:145
|
||||
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
|
||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||
#: ../js/ui/status/network.js:916
|
||||
msgid "Cancel"
|
||||
msgstr "ألغِ"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
|
||||
#: ../js/gdm/authPrompt.js:447
|
||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
|
||||
#: ../js/gdm/authPrompt.js:448
|
||||
msgid "Next"
|
||||
msgstr "التالي"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/ui/unlockDialog.js:59
|
||||
msgid "Unlock"
|
||||
msgstr "فك القفل"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:213
|
||||
#: ../js/gdm/authPrompt.js:214
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "ادخل"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:281
|
||||
#: ../js/gdm/loginDialog.js:285
|
||||
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:431
|
||||
#: ../js/gdm/loginDialog.js:435
|
||||
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:850
|
||||
#: ../js/gdm/loginDialog.js:854
|
||||
#, javascript-format
|
||||
msgid "(e.g., user or %s)"
|
||||
msgstr "(مثلا مستخدم أو %s)"
|
||||
@ -321,12 +330,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:855 ../js/ui/components/networkAgent.js:271
|
||||
#: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
|
||||
#: ../js/ui/components/networkAgent.js:289
|
||||
msgid "Username: "
|
||||
msgstr "اسم المستخدم: "
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1184
|
||||
#: ../js/gdm/loginDialog.js:1196
|
||||
msgid "Login Window"
|
||||
msgstr "نافذة الولوج"
|
||||
|
||||
@ -462,16 +471,36 @@ msgstr "أضِف إلى المفضّلة"
|
||||
msgid "Show Details"
|
||||
msgstr "أظهر التفاصيل"
|
||||
|
||||
#: ../js/ui/appFavorites.js:132
|
||||
#: ../js/ui/appFavorites.js:134
|
||||
#, javascript-format
|
||||
msgid "%s has been added to your favorites."
|
||||
msgstr "أُضيف %s إلى مفضلتك."
|
||||
|
||||
#: ../js/ui/appFavorites.js:166
|
||||
#: ../js/ui/appFavorites.js:168
|
||||
#, javascript-format
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "أُزيل %s من مفضّلتك."
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:59
|
||||
msgid "Select Audio Device"
|
||||
msgstr "اختر جهاز صوت"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:69
|
||||
msgid "Sound Settings"
|
||||
msgstr "إعدادات الصوت"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:78
|
||||
msgid "Headphones"
|
||||
msgstr "سماعات أذن"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:80
|
||||
msgid "Headset"
|
||||
msgstr "سماعة رأس"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "ميكروفون"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:19
|
||||
msgid "Change Background…"
|
||||
msgstr "غيّر الخلفية…"
|
||||
@ -480,13 +509,12 @@ msgstr "غيّر الخلفية…"
|
||||
msgid "Display Settings"
|
||||
msgstr "إعدادات العرض"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
|
||||
#: ../js/ui/status/system.js:366
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
|
||||
msgid "Settings"
|
||||
msgstr "الإعدادات"
|
||||
|
||||
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
|
||||
#: ../js/ui/calendar.js:55
|
||||
#: ../js/ui/calendar.js:47
|
||||
msgctxt "calendar-no-work"
|
||||
msgid "06"
|
||||
msgstr "56"
|
||||
@ -496,94 +524,96 @@ msgstr "56"
|
||||
#. * NOTE: These grid abbreviations are always shown together
|
||||
#. * and in order, e.g. "S M T W T F S".
|
||||
#.
|
||||
#: ../js/ui/calendar.js:84
|
||||
#: ../js/ui/calendar.js:76
|
||||
msgctxt "grid sunday"
|
||||
msgid "S"
|
||||
msgstr "ح"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Monday
|
||||
#: ../js/ui/calendar.js:86
|
||||
#: ../js/ui/calendar.js:78
|
||||
msgctxt "grid monday"
|
||||
msgid "M"
|
||||
msgstr "ن"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Tuesday
|
||||
#: ../js/ui/calendar.js:88
|
||||
#: ../js/ui/calendar.js:80
|
||||
msgctxt "grid tuesday"
|
||||
msgid "T"
|
||||
msgstr "ث"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Wednesday
|
||||
#: ../js/ui/calendar.js:90
|
||||
#: ../js/ui/calendar.js:82
|
||||
msgctxt "grid wednesday"
|
||||
msgid "W"
|
||||
msgstr "ر"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Thursday
|
||||
#: ../js/ui/calendar.js:92
|
||||
#: ../js/ui/calendar.js:84
|
||||
msgctxt "grid thursday"
|
||||
msgid "T"
|
||||
msgstr "خ"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Friday
|
||||
#: ../js/ui/calendar.js:94
|
||||
#: ../js/ui/calendar.js:86
|
||||
msgctxt "grid friday"
|
||||
msgid "F"
|
||||
msgstr "ج"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Saturday
|
||||
#: ../js/ui/calendar.js:96
|
||||
#: ../js/ui/calendar.js:88
|
||||
msgctxt "grid saturday"
|
||||
msgid "S"
|
||||
msgstr "س"
|
||||
|
||||
#: ../js/ui/calendar.js:566
|
||||
#: ../js/ui/calendar.js:416
|
||||
msgid "Previous month"
|
||||
msgstr "الشهر السابق"
|
||||
|
||||
#: ../js/ui/calendar.js:576
|
||||
#: ../js/ui/calendar.js:426
|
||||
msgid "Next month"
|
||||
msgstr "الشهر التالي"
|
||||
|
||||
#: ../js/ui/calendar.js:783
|
||||
#: ../js/ui/calendar.js:579
|
||||
#, no-javascript-format
|
||||
msgctxt "date day number format"
|
||||
msgid "%d"
|
||||
msgstr "%d"
|
||||
|
||||
#: ../js/ui/calendar.js:634
|
||||
msgid "Week %V"
|
||||
msgstr "أسبوع %V"
|
||||
|
||||
#. Translators: Shown in calendar event list for all day events
|
||||
#. * Keep it short, best if you can use less then 10 characters
|
||||
#.
|
||||
#: ../js/ui/calendar.js:1188
|
||||
#: ../js/ui/calendar.js:695
|
||||
msgctxt "event list time"
|
||||
msgid "All Day"
|
||||
msgstr "طوال اليوم"
|
||||
|
||||
#: ../js/ui/calendar.js:1295
|
||||
msgid "Clear section"
|
||||
msgstr "امسح القسم"
|
||||
|
||||
#: ../js/ui/calendar.js:1522
|
||||
#: ../js/ui/calendar.js:821
|
||||
msgid "Events"
|
||||
msgstr "الأحداث"
|
||||
|
||||
#: ../js/ui/calendar.js:1531
|
||||
#: ../js/ui/calendar.js:830
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A %d %B"
|
||||
|
||||
#: ../js/ui/calendar.js:1535
|
||||
#: ../js/ui/calendar.js:834
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d, %Y"
|
||||
msgstr "%A %d %B %Y"
|
||||
|
||||
#: ../js/ui/calendar.js:1620
|
||||
#: ../js/ui/calendar.js:919
|
||||
msgid "Notifications"
|
||||
msgstr "التنبيهات"
|
||||
|
||||
#: ../js/ui/calendar.js:1771
|
||||
#: ../js/ui/calendar.js:1070
|
||||
msgid "No Notifications"
|
||||
msgstr "لا تنبيهات"
|
||||
|
||||
#: ../js/ui/calendar.js:1774
|
||||
#: ../js/ui/calendar.js:1073
|
||||
msgid "No Events"
|
||||
msgstr "لا أحداث"
|
||||
|
||||
@ -595,7 +625,7 @@ msgstr "وُصّل قرص خارجي"
|
||||
msgid "External drive disconnected"
|
||||
msgstr "فُصل القرص الخارجي"
|
||||
|
||||
#: ../js/ui/components/autorunManager.js:354
|
||||
#: ../js/ui/components/autorunManager.js:355
|
||||
#, javascript-format
|
||||
msgid "Open with %s"
|
||||
msgstr "افتح باستخدام %s"
|
||||
@ -719,7 +749,7 @@ msgstr "للأسف لم يُفلح هذا. أعِد المحاولة."
|
||||
|
||||
#. Translators: this is the other person changing their old IM name to their new
|
||||
#. IM name.
|
||||
#: ../js/ui/components/telepathyClient.js:759
|
||||
#: ../js/ui/components/telepathyClient.js:760
|
||||
#, javascript-format
|
||||
msgid "%s is now known as %s"
|
||||
msgstr "غيّر %s اسمه إلى %s"
|
||||
@ -921,11 +951,11 @@ msgid "Keyboard"
|
||||
msgstr "لوحة المفاتيح"
|
||||
|
||||
#. translators: 'Hide' is a verb
|
||||
#: ../js/ui/legacyTray.js:66
|
||||
#: ../js/ui/legacyTray.js:65
|
||||
msgid "Hide tray"
|
||||
msgstr "أخفِ الصينية"
|
||||
|
||||
#: ../js/ui/legacyTray.js:107
|
||||
#: ../js/ui/legacyTray.js:106
|
||||
msgid "Status Icons"
|
||||
msgstr "أيقونات الحالة"
|
||||
|
||||
@ -977,10 +1007,26 @@ msgstr "اعرض المصدر"
|
||||
msgid "Web Page"
|
||||
msgstr "صفحة الوب"
|
||||
|
||||
#: ../js/ui/messageList.js:543
|
||||
msgid "Clear section"
|
||||
msgstr "امسح القسم"
|
||||
|
||||
#: ../js/ui/messageTray.js:1486
|
||||
msgid "System Information"
|
||||
msgstr "معلومات النظام"
|
||||
|
||||
#: ../js/ui/mpris.js:194
|
||||
msgid "Unknown artist"
|
||||
msgstr "فنان غير معروف"
|
||||
|
||||
#: ../js/ui/mpris.js:195
|
||||
msgid "Unknown title"
|
||||
msgstr "عنوان غير معروف"
|
||||
|
||||
#: ../js/ui/mpris.js:217
|
||||
msgid "Media"
|
||||
msgstr "وسائط"
|
||||
|
||||
#: ../js/ui/overview.js:84
|
||||
msgid "Undo"
|
||||
msgstr "تراجع"
|
||||
@ -997,17 +1043,22 @@ msgstr "نظرة عامة"
|
||||
msgid "Type to search…"
|
||||
msgstr "اكتب نصا للبحث عنه…"
|
||||
|
||||
#: ../js/ui/panel.js:352
|
||||
#: ../js/ui/panel.js:358
|
||||
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:404
|
||||
#: ../js/ui/panel.js:414
|
||||
msgid "Activities"
|
||||
msgstr "الأنشطة"
|
||||
|
||||
#: ../js/ui/panel.js:754
|
||||
#: ../js/ui/panel.js:695
|
||||
msgctxt "System menu in the top bar"
|
||||
msgid "System"
|
||||
msgstr "النظام"
|
||||
|
||||
#: ../js/ui/panel.js:807
|
||||
msgid "Top Bar"
|
||||
msgstr "الشريط العلوي"
|
||||
|
||||
@ -1020,15 +1071,15 @@ msgstr "الشريط العلوي"
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
#: ../js/ui/runDialog.js:70
|
||||
#: ../js/ui/runDialog.js:71
|
||||
msgid "Enter a Command"
|
||||
msgstr "اكتب أمرًا"
|
||||
|
||||
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
|
||||
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
|
||||
msgid "Close"
|
||||
msgstr "أغلِق"
|
||||
|
||||
#: ../js/ui/runDialog.js:281
|
||||
#: ../js/ui/runDialog.js:282
|
||||
msgid "Restarting…"
|
||||
msgstr "يُعيد التشغيل…"
|
||||
|
||||
@ -1159,19 +1210,16 @@ msgstr "تباين عال"
|
||||
msgid "Large Text"
|
||||
msgstr "نص كبير"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "أوقف"
|
||||
#: ../js/ui/status/bluetooth.js:47
|
||||
msgid "Bluetooth"
|
||||
msgstr "بلوتوث"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:54
|
||||
#: ../js/ui/status/bluetooth.js:56
|
||||
msgid "Bluetooth Settings"
|
||||
msgstr "إعدادات بلوتوث"
|
||||
|
||||
#. Translators: this is the number of connected bluetooth devices
|
||||
#: ../js/ui/status/bluetooth.js:105
|
||||
#: ../js/ui/status/bluetooth.js:136
|
||||
#, javascript-format
|
||||
msgid "%d Connected"
|
||||
msgid_plural "%d Connected"
|
||||
@ -1182,10 +1230,25 @@ msgstr[3] "%d مُتصل"
|
||||
msgstr[4] "%d مُتصل"
|
||||
msgstr[5] "%d مُتصل"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:107
|
||||
#: ../js/ui/status/bluetooth.js:138
|
||||
msgid "Off"
|
||||
msgstr "مغلق"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:140
|
||||
msgid "Not In Use"
|
||||
msgstr "غير مستخدم"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "شغّل"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "أوقف"
|
||||
|
||||
#: ../js/ui/status/brightness.js:44
|
||||
msgid "Brightness"
|
||||
msgstr "السطوع"
|
||||
@ -1194,30 +1257,48 @@ msgstr "السطوع"
|
||||
msgid "Show Keyboard Layout"
|
||||
msgstr "أظهر تخطيط لوحة المفاتيح"
|
||||
|
||||
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
|
||||
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
|
||||
msgid "Location Enabled"
|
||||
msgstr "التموضع مفعّل"
|
||||
|
||||
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
|
||||
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
|
||||
msgid "Disable"
|
||||
msgstr "عطّل"
|
||||
|
||||
#: ../js/ui/status/location.js:73
|
||||
#: ../js/ui/status/location.js:109
|
||||
msgid "Privacy Settings"
|
||||
msgstr "إعدادات الخصوصية"
|
||||
|
||||
#: ../js/ui/status/location.js:176
|
||||
#: ../js/ui/status/location.js:214
|
||||
msgid "Location In Use"
|
||||
msgstr "التموضع مستخدم"
|
||||
|
||||
#: ../js/ui/status/location.js:180
|
||||
#: ../js/ui/status/location.js:218
|
||||
msgid "Location Disabled"
|
||||
msgstr "التموضع غير مفعّل"
|
||||
|
||||
#: ../js/ui/status/location.js:181
|
||||
#: ../js/ui/status/location.js:219
|
||||
msgid "Enable"
|
||||
msgstr "فعّل"
|
||||
|
||||
#: ../js/ui/status/location.js:426
|
||||
msgid "Deny Access"
|
||||
msgstr "ارفض منح الصلاحية"
|
||||
|
||||
#: ../js/ui/status/location.js:429
|
||||
msgid "Grant Access"
|
||||
msgstr "امنح الصلاحية"
|
||||
|
||||
#. Translators: %s is an application name
|
||||
#: ../js/ui/status/location.js:435
|
||||
#, javascript-format
|
||||
msgid "Give %s access to your location?"
|
||||
msgstr "أتريد إعطاء %s صلاحية معرفة مكانك؟"
|
||||
|
||||
#: ../js/ui/status/location.js:437
|
||||
msgid "Location access can be changed at any time from the privacy settings."
|
||||
msgstr "يمكن تغيير صلاحيات الوصول لمكانك في أي وقت من إعدادات الخصوصية."
|
||||
|
||||
#: ../js/ui/status/network.js:101
|
||||
msgid "<unknown>"
|
||||
msgstr "<غير معروفة>"
|
||||
@ -1226,13 +1307,13 @@ msgstr "<غير معروفة>"
|
||||
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
|
||||
#, javascript-format
|
||||
msgid "%s Off"
|
||||
msgstr "%s مغلق"
|
||||
msgstr "%s مغلق"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:454
|
||||
#, javascript-format
|
||||
msgid "%s Connected"
|
||||
msgstr "%s مُتصل"
|
||||
msgstr "%s مُتصل"
|
||||
|
||||
#. Translators: this is for network devices that are physically present but are not
|
||||
#. under NetworkManager's control (and thus cannot be used in the menu);
|
||||
@ -1240,19 +1321,19 @@ msgstr "%s مُتصل"
|
||||
#: ../js/ui/status/network.js:459
|
||||
#, javascript-format
|
||||
msgid "%s Unmanaged"
|
||||
msgstr "%s غير مُدار"
|
||||
msgstr "%s غير مُدار"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:462
|
||||
#, javascript-format
|
||||
msgid "%s Disconnecting"
|
||||
msgstr "%s يقطع الاتّصال"
|
||||
msgstr "%s يقطع الاتّصال"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
|
||||
#, javascript-format
|
||||
msgid "%s Connecting"
|
||||
msgstr "%s يتّصل"
|
||||
msgstr "%s يتّصل"
|
||||
|
||||
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
|
||||
#: ../js/ui/status/network.js:472
|
||||
@ -1272,7 +1353,7 @@ msgstr "برمجيات %s المغروسة (Firmware) غير متاحة"
|
||||
#: ../js/ui/status/network.js:484
|
||||
#, javascript-format
|
||||
msgid "%s Unavailable"
|
||||
msgstr "%s غير متاح"
|
||||
msgstr "%s غير متاح"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:487
|
||||
@ -1299,7 +1380,7 @@ msgstr "عتاد %s مُعَطَّل"
|
||||
#: ../js/ui/status/network.js:592
|
||||
#, javascript-format
|
||||
msgid "%s Disabled"
|
||||
msgstr "%s معطّل"
|
||||
msgstr "%s معطّل"
|
||||
|
||||
#: ../js/ui/status/network.js:632
|
||||
msgid "Use as Internet connection"
|
||||
@ -1353,10 +1434,6 @@ msgstr "اختر شبكة"
|
||||
msgid "Wi-Fi Settings"
|
||||
msgstr "إعدادات الاتصال اللاسلكي"
|
||||
|
||||
#: ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "شغّل"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:1296
|
||||
#, javascript-format
|
||||
@ -1367,7 +1444,7 @@ msgstr "نقطة اتصال %s نشطة"
|
||||
#: ../js/ui/status/network.js:1311
|
||||
#, javascript-format
|
||||
msgid "%s Not Connected"
|
||||
msgstr "%s غير متّصل"
|
||||
msgstr "%s غير متّصل"
|
||||
|
||||
#: ../js/ui/status/network.js:1411
|
||||
msgid "connecting..."
|
||||
@ -1395,9 +1472,8 @@ msgid "VPN"
|
||||
msgstr "شخف (VPN)"
|
||||
|
||||
#: ../js/ui/status/network.js:1513
|
||||
#, fuzzy
|
||||
msgid "VPN Off"
|
||||
msgstr "أطفئ الحاسوب"
|
||||
msgstr "أطفِئ شخف (VPN) "
|
||||
|
||||
#: ../js/ui/status/network.js:1697
|
||||
msgid "Connection failed"
|
||||
@ -1407,31 +1483,36 @@ msgstr "فشل الاتصال"
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "فشل تفعيل اتصال الشبكة"
|
||||
|
||||
#: ../js/ui/status/power.js:49
|
||||
#: ../js/ui/status/power.js:61
|
||||
msgid "Power Settings"
|
||||
msgstr "إعدادات الطاقة"
|
||||
|
||||
#: ../js/ui/status/power.js:65
|
||||
#: ../js/ui/status/power.js:77
|
||||
msgid "Fully Charged"
|
||||
msgstr "مشحونة بالكامل"
|
||||
|
||||
#. 0 is reported when UPower does not have enough data
|
||||
#. to estimate battery life
|
||||
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
|
||||
#: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
|
||||
msgid "Estimating…"
|
||||
msgstr "يَحسِب…"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
#: ../js/ui/status/power.js:86
|
||||
#: ../js/ui/status/power.js:98
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Remaining (%d%%)"
|
||||
msgstr "بقي %d∶%02d (%d%%)"
|
||||
msgid "%d∶%02d Remaining (%d %%)"
|
||||
msgstr "بقي %d∶%02d (%d٪)"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
#: ../js/ui/status/power.js:91
|
||||
#: ../js/ui/status/power.js:103
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Until Full (%d%%)"
|
||||
msgstr "بقي على الاكتمال %d∶%02d (%d%%)"
|
||||
msgid "%d∶%02d Until Full (%d %%)"
|
||||
msgstr "بقي على الاكتمال %d∶%02d (%d٪)"
|
||||
|
||||
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
|
||||
#, javascript-format
|
||||
msgid "%d %%"
|
||||
msgstr "%d ٪"
|
||||
|
||||
#. The menu only appears when airplane mode is on, so just
|
||||
#. statically build it as if it was on, rather than dynamically
|
||||
@ -1472,10 +1553,6 @@ msgstr "تغيّرت شدة الصوت"
|
||||
msgid "Volume"
|
||||
msgstr "شدة الصوت"
|
||||
|
||||
#: ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "ميكروفون"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:67
|
||||
msgid "Log in as another user"
|
||||
msgstr "لِج كمستخدم آخر"
|
||||
@ -1628,46 +1705,49 @@ msgstr[5] "%u مدخل"
|
||||
msgid "System Sounds"
|
||||
msgstr "أصوات النظام"
|
||||
|
||||
#: ../src/main.c:373
|
||||
#: ../src/main.c:381
|
||||
msgid "Print version"
|
||||
msgstr "اطبع الإصدارة"
|
||||
|
||||
#: ../src/main.c:379
|
||||
#: ../src/main.c:387
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "الوضع الذي يستخدمه مدير ولوج جنوم لشاشة الولوج"
|
||||
|
||||
#: ../src/main.c:385
|
||||
#: ../src/main.c:393
|
||||
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
|
||||
msgstr "استخدم طورا معينا، مثلا: \"gdm\" لشاشة الولوج"
|
||||
|
||||
#: ../src/main.c:391
|
||||
#: ../src/main.c:399
|
||||
msgid "List possible modes"
|
||||
msgstr "اسرد كل الأطوار الممكنة"
|
||||
|
||||
#: ../src/shell-app.c:239
|
||||
#: ../src/shell-app.c:246
|
||||
msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "غير معروف"
|
||||
|
||||
#: ../src/shell-app.c:480
|
||||
#: ../src/shell-app.c:487
|
||||
#, c-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "فشل تشغيل ”%s“"
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:742
|
||||
#: ../src/shell-keyring-prompt.c:730
|
||||
msgid "Passwords do not match."
|
||||
msgstr "لا تتطابق كلمتا السر."
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:750
|
||||
#: ../src/shell-keyring-prompt.c:738
|
||||
msgid "Password cannot be blank"
|
||||
msgstr "لا يمكن أن تكون كلمة السرّ فارغة"
|
||||
|
||||
#: ../src/shell-polkit-authentication-agent.c:346
|
||||
#: ../src/shell-polkit-authentication-agent.c:353
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "أغلق المستخدم مربع الاستيثاق الحِواري"
|
||||
|
||||
#~ msgid "Bluetooth"
|
||||
#~ msgstr "بلوتوث"
|
||||
#~ msgid "%s is requesting access to your location."
|
||||
#~ msgstr "يطلب %s صلاحية معرفة مكانك."
|
||||
|
||||
#~ msgid "GNOME Shell (wayland compositor)"
|
||||
#~ msgstr "صدفة جنوم (وايلاند)"
|
||||
|
||||
#~ msgid "%d Connected Device"
|
||||
#~ msgid_plural "%d Connected Devices"
|
||||
@ -1678,9 +1758,6 @@ msgstr "أغلق المستخدم مربع الاستيثاق الحِواري"
|
||||
#~ msgstr[4] "%d جهازًا موصّلا"
|
||||
#~ msgstr[5] "%d جهاز موصّل"
|
||||
|
||||
#~ msgid "Off"
|
||||
#~ msgstr "مغلق"
|
||||
|
||||
#~ msgid "Authentication required"
|
||||
#~ msgstr "الاستيثاق مطلوب"
|
||||
|
||||
@ -1882,9 +1959,6 @@ msgstr "أغلق المستخدم مربع الاستيثاق الحِواري"
|
||||
#~ msgid "View account"
|
||||
#~ msgstr "أظهر الحساب"
|
||||
|
||||
#~ msgid "Unknown reason"
|
||||
#~ msgstr "السبب غير معروف"
|
||||
|
||||
#~ msgid "Open Calendar"
|
||||
#~ msgstr "افتح التقويم"
|
||||
|
||||
@ -1977,9 +2051,6 @@ msgstr "أغلق المستخدم مربع الاستيثاق الحِواري"
|
||||
#~ msgid "Device %s wants access to the service '%s'"
|
||||
#~ msgstr "يريد الجهاز %s صلاحية الوصول للخدمة '%s'"
|
||||
|
||||
#~ msgid "Always grant access"
|
||||
#~ msgstr "امنح الصلاحية دائما"
|
||||
|
||||
#~ msgid "Grant this time only"
|
||||
#~ msgstr "امنح هذه المرة فقط"
|
||||
|
||||
@ -2069,9 +2140,6 @@ msgstr "أغلق المستخدم مربع الاستيثاق الحِواري"
|
||||
#~ msgid "Visibility"
|
||||
#~ msgstr "الرؤية"
|
||||
|
||||
#~ msgid "Send Files to Device…"
|
||||
#~ msgstr "أرسِل ملفات للجهاز…"
|
||||
|
||||
#~ msgid "Set Up a New Device…"
|
||||
#~ msgstr "اضبط جهازًا جديدًا…"
|
||||
|
||||
@ -2162,10 +2230,6 @@ msgstr "أغلق المستخدم مربع الاستيثاق الحِواري"
|
||||
#~ msgstr[4] "بقيت %d دقيقة"
|
||||
#~ msgstr[5] "بقيت %d دقيقة"
|
||||
|
||||
#~ msgctxt "percent of battery remaining"
|
||||
#~ msgid "%d%%"
|
||||
#~ msgstr "%d%%"
|
||||
|
||||
#~ msgid "AC Adapter"
|
||||
#~ msgstr "مقبس طاقة"
|
||||
|
||||
|
372
po/ca.po
372
po/ca.po
@ -3,22 +3,23 @@
|
||||
# This file is distributed under the same license as the gnome-shell package.
|
||||
# Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com>, 2009.
|
||||
# Jordi Serratosa <jordis@softcatala.cat>, 2012.
|
||||
# Gil Forcada <gilforcada@guifi.net>, 2010, 2011, 2013, 2014.
|
||||
# Gil Forcada <gilforcada@guifi.net>, 2010, 2011, 2013, 2014, 2016.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: HEAD\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-20 19:24+0200\n"
|
||||
"PO-Revision-Date: 2015-05-28 19:32+0100\n"
|
||||
"Last-Translator: David Medina <opensusecatala@gmail.com>\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||
"shell&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2016-03-13 10:20+0000\n"
|
||||
"PO-Revision-Date: 2016-03-13 14:47+0100\n"
|
||||
"Last-Translator: Gil Forcada <gilforcada@guifi.net>\n"
|
||||
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
|
||||
"Language: ca\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Content-Transfer-Encoding: 8bits\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Poedit 1.6.9\n"
|
||||
"X-Generator: Gtranslator 2.91.6\n"
|
||||
|
||||
#: ../data/50-gnome-shell-system.xml.in.h:1
|
||||
msgid "System"
|
||||
@ -44,15 +45,6 @@ msgstr "Mostra totes les aplicacions"
|
||||
msgid "Open the application menu"
|
||||
msgstr "Obre el menú d'aplicació"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "GNOME Shell"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:2
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Gestor de finestres i llançador d'aplicacions"
|
||||
|
||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
||||
msgid "GNOME Shell Extension Preferences"
|
||||
msgstr "Preferències de les extensions del GNOME Shell"
|
||||
@ -61,9 +53,13 @@ msgstr "Preferències de les extensions del GNOME Shell"
|
||||
msgid "Configure GNOME Shell Extensions"
|
||||
msgstr "Configureu les extensions del GNOME Shell"
|
||||
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
|
||||
msgid "GNOME Shell (wayland compositor)"
|
||||
msgstr "GNOME Shell (composició mitjançant Wayland)"
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "GNOME Shell"
|
||||
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Gestor de finestres i llançador d'aplicacions"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
|
||||
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
||||
@ -176,78 +172,97 @@ msgstr ""
|
||||
"de verificació."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
msgid ""
|
||||
"Whether the default Bluetooth adapter had set up devices associated to it"
|
||||
msgstr ""
|
||||
"Si l'adaptador de Bluetooth predeterminat té dispositius configurats "
|
||||
"associats"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
msgid ""
|
||||
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
|
||||
"powered, or if there were devices set up associated with the default "
|
||||
"adapter. This will be reset if the default adapter is ever seen not to have "
|
||||
"devices associated to it."
|
||||
msgstr ""
|
||||
"El Shell només mostrà una entrada de menú Bluetooth si un adaptador Bluetooh "
|
||||
"està engegat, o si hi ha dispositius configurats associats a l'adaptador "
|
||||
"predeterminat. Això es reiniciarà si l'adaptador predeterminat té "
|
||||
"dispositius associats."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "Mostra el número de la setmana al calendari"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgstr "Si és «true» (cert) es mostra el número de la setmana al calendari."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
msgid "Keybinding to open the application menu"
|
||||
msgstr "Vinculació per obrir el menú d'aplicació"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
msgid "Keybinding to open the application menu."
|
||||
msgstr "La vinculació per obrir el menú d'aplicació."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
msgid "Keybinding to open the \"Show Applications\" view"
|
||||
msgstr "Vinculació per obrir la vista «Mostra les aplicacions»"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
msgid ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
msgstr ""
|
||||
"Vinculació per obrir la vista «Mostra les aplicacions» de les activitats de "
|
||||
"la vista general."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
msgid "Keybinding to open the overview"
|
||||
msgstr "Vinculació per obrir la vista general"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
msgid "Keybinding to open the Activities Overview."
|
||||
msgstr "Vinculació per obrir la vista general d'activitats."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
msgid "Keybinding to toggle the visibility of the notification list"
|
||||
msgstr ""
|
||||
"La vinculació per commutar la visibilitat de la llista de notificacions"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
msgid "Keybinding to toggle the visibility of the notification list."
|
||||
msgstr ""
|
||||
"La vinculació per commutar la visibilitat de la llista de notificacions."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
msgid "Keybinding to focus the active notification"
|
||||
msgstr "Vinculació per posar el focus a la notificació activa"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
msgid "Keybinding to focus the active notification."
|
||||
msgstr "Vinculació per posar el focus a la notificació activa."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
msgid ""
|
||||
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
|
||||
msgstr ""
|
||||
"Vinculació que fa una pausa i continua tots els «tweens» en execució, per "
|
||||
"motius de depuració"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
msgid "Which keyboard to use"
|
||||
msgstr "Quin tipus de teclat s'ha d'utilitzar"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
msgid "The type of keyboard to use."
|
||||
msgstr "El tipus de teclat que s'utilitzarà."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
msgid "Limit switcher to current workspace."
|
||||
msgstr "Limita el canviador a l'espai de treball actual."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid ""
|
||||
"If true, only applications that have windows on the current workspace are "
|
||||
"shown in the switcher. Otherwise, all applications are included."
|
||||
@ -256,11 +271,11 @@ msgstr ""
|
||||
"de treball actual es mostren en el canviador. En cas contrari es mostren "
|
||||
"totes les aplicacions."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid "The application icon mode."
|
||||
msgstr "El mode d'icona de les aplicacions."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
@ -271,7 +286,7 @@ msgstr ""
|
||||
"icon-only» (mostra la icona de l'aplicació) o «both» (ambdues coses: mostra "
|
||||
"la miniatura de la finestra i la icona de l'aplicació)."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
msgid ""
|
||||
"If true, only windows from the current workspace are shown in the switcher. "
|
||||
"Otherwise, all windows are included."
|
||||
@ -279,32 +294,32 @@ msgstr ""
|
||||
"Si és «true» (cert), només les finestres de l'espai de treball actual es "
|
||||
"mostren en el canviador. En cas contrari, es mostren totes les finestres."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "Adjunta el diàleg modal a la finestra pare"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr ""
|
||||
"Si s'executa el GNOME Shell, aquesta clau sobreescriu la clau «org.gnome."
|
||||
"mutter»."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr ""
|
||||
"Habilita la tesselització a les vores en deixar anar les finestres a les "
|
||||
"vores de la pantalla"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Els espais de treball es gestionen dinàmicament"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "Només en el monitor principal hi ha espais de treball"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
msgstr ""
|
||||
"Retarda el canvi del focus, quan s'està en mode ratolí, fins que el punter "
|
||||
@ -314,51 +329,52 @@ msgstr ""
|
||||
msgid "Network Login"
|
||||
msgstr "Inici de sessió de la xarxa"
|
||||
|
||||
#: ../js/extensionPrefs/main.js:122
|
||||
#: ../js/extensionPrefs/main.js:117
|
||||
#, javascript-format
|
||||
msgid "There was an error loading the preferences dialog for %s:"
|
||||
msgstr "S'ha produït un error en carregar el diàleg de preferències de %s:"
|
||||
|
||||
#: ../js/extensionPrefs/main.js:154
|
||||
#: ../js/extensionPrefs/main.js:149
|
||||
msgid "GNOME Shell Extensions"
|
||||
msgstr "Extensions del GNOME Shell"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
|
||||
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
|
||||
#: ../js/ui/components/networkAgent.js:145
|
||||
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
|
||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||
#: ../js/ui/status/network.js:916
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel·la"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
|
||||
#: ../js/gdm/authPrompt.js:435
|
||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
|
||||
#: ../js/gdm/authPrompt.js:448
|
||||
msgid "Next"
|
||||
msgstr "Següent"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/ui/unlockDialog.js:59
|
||||
msgid "Unlock"
|
||||
msgstr "Desbloqueja"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:213
|
||||
#: ../js/gdm/authPrompt.js:214
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Entra"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:281
|
||||
#: ../js/gdm/loginDialog.js:285
|
||||
msgid "Choose Session"
|
||||
msgstr "Trieu la sessió"
|
||||
|
||||
#. 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:431
|
||||
#: ../js/gdm/loginDialog.js:435
|
||||
msgid "Not listed?"
|
||||
msgstr "No esteu llistat?"
|
||||
|
||||
#. Translators: this message is shown below the username entry field
|
||||
#. to clue the user in on how to login to the local network realm
|
||||
#: ../js/gdm/loginDialog.js:847
|
||||
#: ../js/gdm/loginDialog.js:854
|
||||
#, javascript-format
|
||||
msgid "(e.g., user or %s)"
|
||||
msgstr "(p. ex. l'usuari o %s)"
|
||||
@ -366,12 +382,12 @@ msgstr "(p. ex. l'usuari o %s)"
|
||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||
#. is not visible here since we only care about phase2 authentication
|
||||
#. (and don't even care of which one)
|
||||
#: ../js/gdm/loginDialog.js:852 ../js/ui/components/networkAgent.js:271
|
||||
#: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
|
||||
#: ../js/ui/components/networkAgent.js:289
|
||||
msgid "Username: "
|
||||
msgstr "Nom d'usuari:"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1181
|
||||
#: ../js/gdm/loginDialog.js:1196
|
||||
msgid "Login Window"
|
||||
msgstr "Finestra d'entrada"
|
||||
|
||||
@ -507,16 +523,36 @@ msgstr "Afegeix als preferits"
|
||||
msgid "Show Details"
|
||||
msgstr "Mostra els detalls"
|
||||
|
||||
#: ../js/ui/appFavorites.js:132
|
||||
#: ../js/ui/appFavorites.js:134
|
||||
#, javascript-format
|
||||
msgid "%s has been added to your favorites."
|
||||
msgstr "S'ha afegit %s als preferits."
|
||||
|
||||
#: ../js/ui/appFavorites.js:166
|
||||
#: ../js/ui/appFavorites.js:168
|
||||
#, javascript-format
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "S'ha suprimit %s dels preferits."
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:59
|
||||
msgid "Select Audio Device"
|
||||
msgstr "Seleccioneu dispositiu d'àudio"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:69
|
||||
msgid "Sound Settings"
|
||||
msgstr "Paràmetres del so"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:78
|
||||
msgid "Headphones"
|
||||
msgstr "Auriculars"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:80
|
||||
msgid "Headset"
|
||||
msgstr "Auriculars amb micròfon"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "Micròfon"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:19
|
||||
msgid "Change Background…"
|
||||
msgstr "Canvia el fons de l'escriptori…"
|
||||
@ -525,13 +561,12 @@ msgstr "Canvia el fons de l'escriptori…"
|
||||
msgid "Display Settings"
|
||||
msgstr "Paràmetres de la pantalla"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
|
||||
#: ../js/ui/status/system.js:366
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
|
||||
msgid "Settings"
|
||||
msgstr "Paràmetres"
|
||||
|
||||
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
|
||||
#: ../js/ui/calendar.js:55
|
||||
#: ../js/ui/calendar.js:47
|
||||
msgctxt "calendar-no-work"
|
||||
msgid "06"
|
||||
msgstr "06"
|
||||
@ -541,94 +576,96 @@ msgstr "06"
|
||||
#. * NOTE: These grid abbreviations are always shown together
|
||||
#. * and in order, e.g. "S M T W T F S".
|
||||
#.
|
||||
#: ../js/ui/calendar.js:84
|
||||
#: ../js/ui/calendar.js:76
|
||||
msgctxt "grid sunday"
|
||||
msgid "S"
|
||||
msgstr "Dg"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Monday
|
||||
#: ../js/ui/calendar.js:86
|
||||
#: ../js/ui/calendar.js:78
|
||||
msgctxt "grid monday"
|
||||
msgid "M"
|
||||
msgstr "Dl"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Tuesday
|
||||
#: ../js/ui/calendar.js:88
|
||||
#: ../js/ui/calendar.js:80
|
||||
msgctxt "grid tuesday"
|
||||
msgid "T"
|
||||
msgstr "Dt"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Wednesday
|
||||
#: ../js/ui/calendar.js:90
|
||||
#: ../js/ui/calendar.js:82
|
||||
msgctxt "grid wednesday"
|
||||
msgid "W"
|
||||
msgstr "Dc"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Thursday
|
||||
#: ../js/ui/calendar.js:92
|
||||
#: ../js/ui/calendar.js:84
|
||||
msgctxt "grid thursday"
|
||||
msgid "T"
|
||||
msgstr "Dj"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Friday
|
||||
#: ../js/ui/calendar.js:94
|
||||
#: ../js/ui/calendar.js:86
|
||||
msgctxt "grid friday"
|
||||
msgid "F"
|
||||
msgstr "Dv"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Saturday
|
||||
#: ../js/ui/calendar.js:96
|
||||
#: ../js/ui/calendar.js:88
|
||||
msgctxt "grid saturday"
|
||||
msgid "S"
|
||||
msgstr "Ds"
|
||||
|
||||
#: ../js/ui/calendar.js:566
|
||||
#: ../js/ui/calendar.js:416
|
||||
msgid "Previous month"
|
||||
msgstr "Mes anterior"
|
||||
|
||||
#: ../js/ui/calendar.js:576
|
||||
#: ../js/ui/calendar.js:426
|
||||
msgid "Next month"
|
||||
msgstr "Mes següent"
|
||||
|
||||
#: ../js/ui/calendar.js:783
|
||||
#: ../js/ui/calendar.js:579
|
||||
#, no-javascript-format
|
||||
msgctxt "date day number format"
|
||||
msgid "%d"
|
||||
msgstr "%d"
|
||||
|
||||
#: ../js/ui/calendar.js:634
|
||||
msgid "Week %V"
|
||||
msgstr "Setmana %V"
|
||||
|
||||
#. Translators: Shown in calendar event list for all day events
|
||||
#. * Keep it short, best if you can use less then 10 characters
|
||||
#.
|
||||
#: ../js/ui/calendar.js:1188
|
||||
#: ../js/ui/calendar.js:695
|
||||
msgctxt "event list time"
|
||||
msgid "All Day"
|
||||
msgstr "Tot el dia"
|
||||
|
||||
#: ../js/ui/calendar.js:1291
|
||||
msgid "Clear section"
|
||||
msgstr "Neteja la secció"
|
||||
|
||||
#: ../js/ui/calendar.js:1518
|
||||
#: ../js/ui/calendar.js:821
|
||||
msgid "Events"
|
||||
msgstr "Cites"
|
||||
|
||||
#: ../js/ui/calendar.js:1527
|
||||
#: ../js/ui/calendar.js:830
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A %d de %B"
|
||||
|
||||
#: ../js/ui/calendar.js:1531
|
||||
#: ../js/ui/calendar.js:834
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d, %Y"
|
||||
msgstr "%A %d de %B de %Y"
|
||||
|
||||
#: ../js/ui/calendar.js:1616
|
||||
#: ../js/ui/calendar.js:919
|
||||
msgid "Notifications"
|
||||
msgstr "Notificacions"
|
||||
|
||||
#: ../js/ui/calendar.js:1767
|
||||
#: ../js/ui/calendar.js:1070
|
||||
msgid "No Notifications"
|
||||
msgstr "Cap notificació"
|
||||
|
||||
#: ../js/ui/calendar.js:1770
|
||||
#: ../js/ui/calendar.js:1073
|
||||
msgid "No Events"
|
||||
msgstr "Cap cita"
|
||||
|
||||
@ -640,7 +677,7 @@ msgstr "S'ha connectat un dispositiu extern"
|
||||
msgid "External drive disconnected"
|
||||
msgstr "S'ha desconnectat un dispositiu extern"
|
||||
|
||||
#: ../js/ui/components/autorunManager.js:354
|
||||
#: ../js/ui/components/autorunManager.js:355
|
||||
#, javascript-format
|
||||
msgid "Open with %s"
|
||||
msgstr "Obre amb %s"
|
||||
@ -956,11 +993,11 @@ msgid "Keyboard"
|
||||
msgstr "Teclat"
|
||||
|
||||
#. translators: 'Hide' is a verb
|
||||
#: ../js/ui/legacyTray.js:66
|
||||
#: ../js/ui/legacyTray.js:65
|
||||
msgid "Hide tray"
|
||||
msgstr "Oculta la Safata"
|
||||
|
||||
#: ../js/ui/legacyTray.js:107
|
||||
#: ../js/ui/legacyTray.js:106
|
||||
msgid "Status Icons"
|
||||
msgstr "Icones d'estat"
|
||||
|
||||
@ -988,7 +1025,7 @@ msgstr "Habilitat"
|
||||
|
||||
#. translators:
|
||||
#. * The device has been disabled
|
||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
|
||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
|
||||
msgid "Disabled"
|
||||
msgstr "Inhabilitat"
|
||||
|
||||
@ -1012,10 +1049,26 @@ msgstr "Mostra el codi font"
|
||||
msgid "Web Page"
|
||||
msgstr "Pàgina web"
|
||||
|
||||
#: ../js/ui/messageList.js:543
|
||||
msgid "Clear section"
|
||||
msgstr "Neteja la secció"
|
||||
|
||||
#: ../js/ui/messageTray.js:1486
|
||||
msgid "System Information"
|
||||
msgstr "Informació de l'ordinador"
|
||||
|
||||
#: ../js/ui/mpris.js:194
|
||||
msgid "Unknown artist"
|
||||
msgstr "Artista desconegut"
|
||||
|
||||
#: ../js/ui/mpris.js:195
|
||||
msgid "Unknown title"
|
||||
msgstr "Títol desconegut"
|
||||
|
||||
#: ../js/ui/mpris.js:217
|
||||
msgid "Media"
|
||||
msgstr "Multimèdia"
|
||||
|
||||
#: ../js/ui/overview.js:84
|
||||
msgid "Undo"
|
||||
msgstr "Desfés"
|
||||
@ -1032,17 +1085,22 @@ msgstr "Vista general"
|
||||
msgid "Type to search…"
|
||||
msgstr "Teclegeu per cercar…"
|
||||
|
||||
#: ../js/ui/panel.js:352
|
||||
#: ../js/ui/panel.js:358
|
||||
msgid "Quit"
|
||||
msgstr "Surt"
|
||||
|
||||
#. Translators: If there is no suitable word for "Activities"
|
||||
#. in your language, you can use the word for "Overview".
|
||||
#: ../js/ui/panel.js:404
|
||||
#: ../js/ui/panel.js:414
|
||||
msgid "Activities"
|
||||
msgstr "Activitats"
|
||||
|
||||
#: ../js/ui/panel.js:754
|
||||
#: ../js/ui/panel.js:695
|
||||
msgctxt "System menu in the top bar"
|
||||
msgid "System"
|
||||
msgstr "Sistema"
|
||||
|
||||
#: ../js/ui/panel.js:807
|
||||
msgid "Top Bar"
|
||||
msgstr "Barra superior"
|
||||
|
||||
@ -1055,15 +1113,15 @@ msgstr "Barra superior"
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
#: ../js/ui/runDialog.js:70
|
||||
#: ../js/ui/runDialog.js:71
|
||||
msgid "Enter a Command"
|
||||
msgstr "Introduïu una ordre"
|
||||
|
||||
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
|
||||
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
|
||||
msgid "Close"
|
||||
msgstr "Tanca"
|
||||
|
||||
#: ../js/ui/runDialog.js:281
|
||||
#: ../js/ui/runDialog.js:282
|
||||
msgid "Restarting…"
|
||||
msgstr "S'està reiniciant…"
|
||||
|
||||
@ -1186,29 +1244,41 @@ msgstr "Alt contrast"
|
||||
msgid "Large Text"
|
||||
msgstr "Text gran"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Desactiva"
|
||||
#: ../js/ui/status/bluetooth.js:47
|
||||
msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:54
|
||||
#: ../js/ui/status/bluetooth.js:56
|
||||
msgid "Bluetooth Settings"
|
||||
msgstr "Paràmetres del Bluetooth"
|
||||
|
||||
#. Translators: this is the number of connected bluetooth devices
|
||||
#: ../js/ui/status/bluetooth.js:105
|
||||
#: ../js/ui/status/bluetooth.js:136
|
||||
#, javascript-format
|
||||
msgid "%d Connected"
|
||||
msgid_plural "%d Connected"
|
||||
msgstr[0] "%d connectat"
|
||||
msgstr[1] "%d connectats"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:107
|
||||
#: ../js/ui/status/bluetooth.js:138
|
||||
msgid "Off"
|
||||
msgstr "Desactivat"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:140
|
||||
msgid "Not In Use"
|
||||
msgstr "No s'usa"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Activa"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Desactiva"
|
||||
|
||||
#: ../js/ui/status/brightness.js:44
|
||||
msgid "Brightness"
|
||||
msgstr "Brillantor"
|
||||
@ -1217,30 +1287,50 @@ msgstr "Brillantor"
|
||||
msgid "Show Keyboard Layout"
|
||||
msgstr "Mostra la disposició del teclat"
|
||||
|
||||
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
|
||||
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
|
||||
msgid "Location Enabled"
|
||||
msgstr "Ubicació habilitada"
|
||||
|
||||
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
|
||||
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
|
||||
msgid "Disable"
|
||||
msgstr "Inhabilita"
|
||||
|
||||
#: ../js/ui/status/location.js:73
|
||||
#: ../js/ui/status/location.js:109
|
||||
msgid "Privacy Settings"
|
||||
msgstr "Paràmetres de privacitat"
|
||||
|
||||
#: ../js/ui/status/location.js:176
|
||||
#: ../js/ui/status/location.js:214
|
||||
msgid "Location In Use"
|
||||
msgstr "Ubicació en ús"
|
||||
|
||||
#: ../js/ui/status/location.js:180
|
||||
#: ../js/ui/status/location.js:218
|
||||
msgid "Location Disabled"
|
||||
msgstr "Ubicació inhabilitada"
|
||||
|
||||
#: ../js/ui/status/location.js:181
|
||||
#: ../js/ui/status/location.js:219
|
||||
msgid "Enable"
|
||||
msgstr "Habilita"
|
||||
|
||||
#: ../js/ui/status/location.js:426
|
||||
msgid "Deny Access"
|
||||
msgstr "Denega l'accés"
|
||||
|
||||
#: ../js/ui/status/location.js:429
|
||||
msgid "Grant Access"
|
||||
msgstr "Permetre l'accés"
|
||||
|
||||
#. Translators: %s is an application name
|
||||
#: ../js/ui/status/location.js:435
|
||||
#, javascript-format
|
||||
msgid "Give %s access to your location?"
|
||||
msgstr "Voleu donar a %s accés a la vostra ubicació?"
|
||||
|
||||
#: ../js/ui/status/location.js:437
|
||||
msgid "Location access can be changed at any time from the privacy settings."
|
||||
msgstr ""
|
||||
"Podeu canviar la configuració de l'accés a la ubicació sempre que vulgueu "
|
||||
"des del la configuració de la privacitat."
|
||||
|
||||
#: ../js/ui/status/network.js:101
|
||||
msgid "<unknown>"
|
||||
msgstr "<desconegut>"
|
||||
@ -1376,10 +1466,6 @@ msgstr "Trieu una xarxa"
|
||||
msgid "Wi-Fi Settings"
|
||||
msgstr "Paràmetres del sense fil"
|
||||
|
||||
#: ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Activa"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:1296
|
||||
#, javascript-format
|
||||
@ -1429,31 +1515,36 @@ msgstr "Ha fallat la connexió"
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Ha fallat l'activació de la connexió de xarxa"
|
||||
|
||||
#: ../js/ui/status/power.js:49
|
||||
#: ../js/ui/status/power.js:61
|
||||
msgid "Power Settings"
|
||||
msgstr "Paràmetres d'energia"
|
||||
|
||||
#: ../js/ui/status/power.js:65
|
||||
#: ../js/ui/status/power.js:77
|
||||
msgid "Fully Charged"
|
||||
msgstr "Totalment carregada"
|
||||
|
||||
#. 0 is reported when UPower does not have enough data
|
||||
#. to estimate battery life
|
||||
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
|
||||
#: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
|
||||
msgid "Estimating…"
|
||||
msgstr "S'està estimant la durada…"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
#: ../js/ui/status/power.js:86
|
||||
#: ../js/ui/status/power.js:98
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Remaining (%d%%)"
|
||||
msgstr "%d∶%02d Queda (%d%%)"
|
||||
msgid "%d∶%02d Remaining (%d %%)"
|
||||
msgstr "%d∶%02d Queda (%d %%)"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
#: ../js/ui/status/power.js:91
|
||||
#: ../js/ui/status/power.js:103
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Until Full (%d%%)"
|
||||
msgstr "%d∶%02d Fins que estigui del tot carregada (%d%%)"
|
||||
msgid "%d∶%02d Until Full (%d %%)"
|
||||
msgstr "%d∶%02d Fins que estigui del tot carregada (%d %%)"
|
||||
|
||||
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
|
||||
#, javascript-format
|
||||
msgid "%d %%"
|
||||
msgstr "%d %%"
|
||||
|
||||
#. The menu only appears when airplane mode is on, so just
|
||||
#. statically build it as if it was on, rather than dynamically
|
||||
@ -1494,10 +1585,6 @@ msgstr "S'ha canviat el volum"
|
||||
msgid "Volume"
|
||||
msgstr "Volum"
|
||||
|
||||
#: ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "Micròfon"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:67
|
||||
msgid "Log in as another user"
|
||||
msgstr "Entra amb un altre usuari"
|
||||
@ -1618,7 +1705,7 @@ msgstr "Calendari de l'Evolution"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound outputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1837
|
||||
#: ../src/gvc/gvc-mixer-control.c:1835
|
||||
#, c-format
|
||||
msgid "%u Output"
|
||||
msgid_plural "%u Outputs"
|
||||
@ -1627,66 +1714,66 @@ msgstr[1] "%u sortides"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound inputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1847
|
||||
#: ../src/gvc/gvc-mixer-control.c:1845
|
||||
#, c-format
|
||||
msgid "%u Input"
|
||||
msgid_plural "%u Inputs"
|
||||
msgstr[0] "%u entrada"
|
||||
msgstr[1] "%u entrades"
|
||||
|
||||
#: ../src/gvc/gvc-mixer-control.c:2373
|
||||
#: ../src/gvc/gvc-mixer-control.c:2371
|
||||
msgid "System Sounds"
|
||||
msgstr "Sons del sistema"
|
||||
|
||||
#: ../src/main.c:373
|
||||
#: ../src/main.c:381
|
||||
msgid "Print version"
|
||||
msgstr "Mostra la versió"
|
||||
|
||||
#: ../src/main.c:379
|
||||
#: ../src/main.c:387
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "El mode que utilitzarà el GDM per a la pantalla d'entrada"
|
||||
|
||||
#: ../src/main.c:385
|
||||
#: ../src/main.c:393
|
||||
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
|
||||
msgstr "Utilitza un mode específic, p. ex. «gdm» per la pantalla d'entrada"
|
||||
|
||||
#: ../src/main.c:391
|
||||
#: ../src/main.c:399
|
||||
msgid "List possible modes"
|
||||
msgstr "Llista els modes possibles"
|
||||
|
||||
#: ../src/shell-app.c:239
|
||||
#: ../src/shell-app.c:246
|
||||
msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "Desconegut"
|
||||
|
||||
#: ../src/shell-app.c:480
|
||||
#: ../src/shell-app.c:487
|
||||
#, c-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "No s'ha pogut iniciar «%s»"
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:742
|
||||
#: ../src/shell-keyring-prompt.c:730
|
||||
msgid "Passwords do not match."
|
||||
msgstr "Les contrasenyes no coincideixen."
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:750
|
||||
#: ../src/shell-keyring-prompt.c:738
|
||||
msgid "Password cannot be blank"
|
||||
msgstr "La contrasenya no pot ser buida"
|
||||
|
||||
#: ../src/shell-polkit-authentication-agent.c:346
|
||||
#: ../src/shell-polkit-authentication-agent.c:353
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "L'usuari ha descartat el diàleg d'autenticació"
|
||||
|
||||
#~ msgid "Bluetooth"
|
||||
#~ msgstr "Bluetooth"
|
||||
#~ msgid "%s is requesting access to your location."
|
||||
#~ msgstr "%s està demanant accés a la vostra ubicació."
|
||||
|
||||
#~ msgid "GNOME Shell (wayland compositor)"
|
||||
#~ msgstr "GNOME Shell (composició mitjançant Wayland)"
|
||||
|
||||
#~ msgid "%d Connected Device"
|
||||
#~ msgid_plural "%d Connected Devices"
|
||||
#~ msgstr[0] "%d dispositiu connectat"
|
||||
#~ msgstr[1] "%d dispositius connectats"
|
||||
|
||||
#~ msgid "Off"
|
||||
#~ msgstr "Desactivat"
|
||||
|
||||
#~ msgid "Authentication required"
|
||||
#~ msgstr "Cal autenticació"
|
||||
|
||||
@ -1895,9 +1982,6 @@ msgstr "L'usuari ha descartat el diàleg d'autenticació"
|
||||
#~ msgid "View account"
|
||||
#~ msgstr "Mostra el compte"
|
||||
|
||||
#~ msgid "Unknown reason"
|
||||
#~ msgstr "Motiu desconegut"
|
||||
|
||||
#~ msgid "Open Calendar"
|
||||
#~ msgstr "Obre el calendari"
|
||||
|
||||
|
381
po/da.po
381
po/da.po
@ -1,9 +1,9 @@
|
||||
# Danish translation of gnome-shell
|
||||
# Copyright (C) 2010-2011, 2014-2015 gnome-shell
|
||||
# Copyright (C) 2010-2011, 2014-2016 gnome-shell
|
||||
# This file is distributed under the same license as the gnome-shell package.
|
||||
#
|
||||
# Kenneth Nielsen <k.nielsen81@gmail.com>, 2012.
|
||||
# Kris Thomsen <mail@kristhomsen.dk>, 2009-2014.
|
||||
# Kris Thomsen <mail@kristhomsen.dk>, 2009-2014, 2016.
|
||||
# Ask Hjorth Larsen <asklarsen@gmail.com>, 2014, 2015.
|
||||
#
|
||||
# Konventioner:
|
||||
@ -20,15 +20,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-09-18 17:05+0200\n"
|
||||
"PO-Revision-Date: 2015-09-04 21:21+0100\n"
|
||||
"Last-Translator: Kris Thomsen <mail@kristhomsen.dk>\n"
|
||||
"POT-Creation-Date: 2016-03-20 23:45+0100\n"
|
||||
"PO-Revision-Date: 2016-03-20 03:13+0100\n"
|
||||
"Last-Translator: Kris Thomsen\n"
|
||||
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
|
||||
"Language: da\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: ../data/50-gnome-shell-system.xml.in.h:1
|
||||
msgid "System"
|
||||
@ -54,15 +54,6 @@ msgstr "Vis alle programmer"
|
||||
msgid "Open the application menu"
|
||||
msgstr "Åbn program-menuen"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "GNOME Shell"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:2
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Vindueshåndtering og åbning af programmer"
|
||||
|
||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
||||
msgid "GNOME Shell Extension Preferences"
|
||||
msgstr "Udvidelsesmodulindstillinger for GNOME Shell"
|
||||
@ -71,9 +62,13 @@ msgstr "Udvidelsesmodulindstillinger for GNOME Shell"
|
||||
msgid "Configure GNOME Shell Extensions"
|
||||
msgstr "Konfigurér udvidelsesmoduler til GNOME Shell"
|
||||
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
|
||||
msgid "GNOME Shell (wayland compositor)"
|
||||
msgstr "GNOME Shell (wayland-sammensætter)"
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "GNOME Shell"
|
||||
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Vindueshåndtering og åbning af programmer"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
|
||||
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
||||
@ -180,76 +175,94 @@ msgstr ""
|
||||
"standard-værdien af denne tjekboks."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
msgid ""
|
||||
"Whether the default Bluetooth adapter had set up devices associated to it"
|
||||
msgstr ""
|
||||
"Om standard Bluetooth-adapteren er indstillet til at have enheder tilknyttet"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
msgid ""
|
||||
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
|
||||
"powered, or if there were devices set up associated with the default "
|
||||
"adapter. This will be reset if the default adapter is ever seen not to have "
|
||||
"devices associated to it."
|
||||
msgstr ""
|
||||
"Shell'en vil kun vise menupunktet Bluetooth, hvis en Bluetooth-adapter er "
|
||||
"tændt, eller hvis der er enheder tilknyttet standard adapteren. Dette vil "
|
||||
"kun blive nulstillet hvis standard adapteren på et tidspunkt, ikke længere "
|
||||
"har enheder tilknyttet."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "Vis ugenummer i kalenderen"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgstr "Hvis sand vises ISO-ugenummeret i kalenderen."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
msgid "Keybinding to open the application menu"
|
||||
msgstr "Genvejstast til at åbne program-menuen"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
msgid "Keybinding to open the application menu."
|
||||
msgstr "Genvejstast til at åbne program-menuen."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
msgid "Keybinding to open the \"Show Applications\" view"
|
||||
msgstr "Genvejstast til at åbne \"Vis programmer\"-visningen"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
msgid ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
msgstr ""
|
||||
"Genvejstast til at åbne \"Vis programmer\"-visningen i Aktivitets-"
|
||||
"overblikket."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
msgid "Keybinding to open the overview"
|
||||
msgstr "Genvejstast til at åbne overblikket"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
msgid "Keybinding to open the Activities Overview."
|
||||
msgstr "Genvejstast til at åbne Aktivitetsoverblikket."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
msgid "Keybinding to toggle the visibility of the notification list"
|
||||
msgstr "Genvejstast til at slå synligheden af påmindelseslisten til eller fra"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
msgid "Keybinding to toggle the visibility of the notification list."
|
||||
msgstr "Genvejstast til at slå synligheden af påmindelseslisten til eller fra."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
msgid "Keybinding to focus the active notification"
|
||||
msgstr "Genvejstast til at fokusere på den aktive påmindelse"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
msgid "Keybinding to focus the active notification."
|
||||
msgstr "Genvejstast til at fokusere på den aktive påmindelse."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
msgid ""
|
||||
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
|
||||
msgstr ""
|
||||
"Genvejstast, som pauser og genstarter alle kørende animationer, til "
|
||||
"fejlsøgningsformål"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
msgid "Which keyboard to use"
|
||||
msgstr "Hvilket tastatur bruges"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
msgid "The type of keyboard to use."
|
||||
msgstr "Tastaturtypen som bruges."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
msgid "Limit switcher to current workspace."
|
||||
msgstr "Begræns skifteren til det nuværende arbejdsområde."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid ""
|
||||
"If true, only applications that have windows on the current workspace are "
|
||||
"shown in the switcher. Otherwise, all applications are included."
|
||||
@ -257,11 +270,11 @@ msgstr ""
|
||||
"Hvis sand, vises kun programmer, som har vinduer på det nuværende "
|
||||
"arbejdsområde, i skifteren. Ellers er alle programmer inkluderet."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid "The application icon mode."
|
||||
msgstr "Ikon-tilstanden for programmet."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
@ -271,7 +284,7 @@ msgstr ""
|
||||
"er \"thumbnail-only\" (viser forhåndsvisning af vinduet), \"app-icon-only"
|
||||
"\" (viser kun programikonet) eller \"both\" (begge)."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
msgid ""
|
||||
"If true, only windows from the current workspace are shown in the switcher. "
|
||||
"Otherwise, all windows are included."
|
||||
@ -279,29 +292,29 @@ msgstr ""
|
||||
"Hvis sand, vises kun vinduer fra det nuværende arbejdsområde i skifteren. "
|
||||
"Ellers er alle programmer inkluderet."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "Hæft modal dialog til overliggende vindue"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr ""
|
||||
"Denne nøgle overstyrer nøglen i org.gnome.mutter, når du kører GNOME Shell."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr "Aktivér kant-fliselægning, når vinduer placeres ved skærmkanter"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Arbejdsområder er håndteret dynamisk"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "Arbejdsområder kun på den primære skærm"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
msgstr ""
|
||||
"Forsink fokusændringer i musetilstand indtil pegeren holder op med at bevæge "
|
||||
@ -311,51 +324,52 @@ msgstr ""
|
||||
msgid "Network Login"
|
||||
msgstr "Netværksindlogning"
|
||||
|
||||
#: ../js/extensionPrefs/main.js:122
|
||||
#: ../js/extensionPrefs/main.js:117
|
||||
#, javascript-format
|
||||
msgid "There was an error loading the preferences dialog for %s:"
|
||||
msgstr "Der opstod in fejl ved indlæsning af indstillingsdialogen for %s:"
|
||||
|
||||
#: ../js/extensionPrefs/main.js:154
|
||||
#: ../js/extensionPrefs/main.js:149
|
||||
msgid "GNOME Shell Extensions"
|
||||
msgstr "Udvidelsesmoduler til GNOME Shell"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
|
||||
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
|
||||
#: ../js/ui/components/networkAgent.js:145
|
||||
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
|
||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||
#: ../js/ui/status/network.js:916
|
||||
msgid "Cancel"
|
||||
msgstr "Annullér"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
|
||||
#: ../js/gdm/authPrompt.js:447
|
||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
|
||||
#: ../js/gdm/authPrompt.js:448
|
||||
msgid "Next"
|
||||
msgstr "Næste"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/ui/unlockDialog.js:59
|
||||
msgid "Unlock"
|
||||
msgstr "Lås op"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:213
|
||||
#: ../js/gdm/authPrompt.js:214
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Log ind"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:281
|
||||
#: ../js/gdm/loginDialog.js:285
|
||||
msgid "Choose Session"
|
||||
msgstr "Vælg 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:431
|
||||
#: ../js/gdm/loginDialog.js:435
|
||||
msgid "Not listed?"
|
||||
msgstr "Ikke listet?"
|
||||
|
||||
#. 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:850
|
||||
#: ../js/gdm/loginDialog.js:854
|
||||
#, javascript-format
|
||||
msgid "(e.g., user or %s)"
|
||||
msgstr "(f.eks. bruger eller %s)"
|
||||
@ -363,12 +377,12 @@ msgstr "(f.eks. bruger 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:855 ../js/ui/components/networkAgent.js:271
|
||||
#: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
|
||||
#: ../js/ui/components/networkAgent.js:289
|
||||
msgid "Username: "
|
||||
msgstr "Brugernavn: "
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1184
|
||||
#: ../js/gdm/loginDialog.js:1196
|
||||
msgid "Login Window"
|
||||
msgstr "Indlogningsvindue"
|
||||
|
||||
@ -504,16 +518,36 @@ msgstr "Føj til favoritter"
|
||||
msgid "Show Details"
|
||||
msgstr "Vis detaljer"
|
||||
|
||||
#: ../js/ui/appFavorites.js:132
|
||||
#: ../js/ui/appFavorites.js:134
|
||||
#, javascript-format
|
||||
msgid "%s has been added to your favorites."
|
||||
msgstr "%s er blevet føjet til dine favoritter."
|
||||
|
||||
#: ../js/ui/appFavorites.js:166
|
||||
#: ../js/ui/appFavorites.js:168
|
||||
#, javascript-format
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "%s er blevet fjernet fra dine favoritter."
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:59
|
||||
msgid "Select Audio Device"
|
||||
msgstr "Vælg lydenhed"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:69
|
||||
msgid "Sound Settings"
|
||||
msgstr "Indstillinger for lyd"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:78
|
||||
msgid "Headphones"
|
||||
msgstr "Hovedtelefoner"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:80
|
||||
msgid "Headset"
|
||||
msgstr "Headset"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "Mikrofon"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:19
|
||||
msgid "Change Background…"
|
||||
msgstr "Skift baggrund…"
|
||||
@ -522,13 +556,12 @@ msgstr "Skift baggrund…"
|
||||
msgid "Display Settings"
|
||||
msgstr "Skærmindstillinger"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
|
||||
#: ../js/ui/status/system.js:366
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
|
||||
msgid "Settings"
|
||||
msgstr "Indstillinger"
|
||||
|
||||
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
|
||||
#: ../js/ui/calendar.js:55
|
||||
#: ../js/ui/calendar.js:47
|
||||
msgctxt "calendar-no-work"
|
||||
msgid "06"
|
||||
msgstr "06"
|
||||
@ -538,94 +571,96 @@ msgstr "06"
|
||||
#. * NOTE: These grid abbreviations are always shown together
|
||||
#. * and in order, e.g. "S M T W T F S".
|
||||
#.
|
||||
#: ../js/ui/calendar.js:84
|
||||
#: ../js/ui/calendar.js:76
|
||||
msgctxt "grid sunday"
|
||||
msgid "S"
|
||||
msgstr "S"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Monday
|
||||
#: ../js/ui/calendar.js:86
|
||||
#: ../js/ui/calendar.js:78
|
||||
msgctxt "grid monday"
|
||||
msgid "M"
|
||||
msgstr "M"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Tuesday
|
||||
#: ../js/ui/calendar.js:88
|
||||
#: ../js/ui/calendar.js:80
|
||||
msgctxt "grid tuesday"
|
||||
msgid "T"
|
||||
msgstr "T"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Wednesday
|
||||
#: ../js/ui/calendar.js:90
|
||||
#: ../js/ui/calendar.js:82
|
||||
msgctxt "grid wednesday"
|
||||
msgid "W"
|
||||
msgstr "O"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Thursday
|
||||
#: ../js/ui/calendar.js:92
|
||||
#: ../js/ui/calendar.js:84
|
||||
msgctxt "grid thursday"
|
||||
msgid "T"
|
||||
msgstr "T"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Friday
|
||||
#: ../js/ui/calendar.js:94
|
||||
#: ../js/ui/calendar.js:86
|
||||
msgctxt "grid friday"
|
||||
msgid "F"
|
||||
msgstr "F"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Saturday
|
||||
#: ../js/ui/calendar.js:96
|
||||
#: ../js/ui/calendar.js:88
|
||||
msgctxt "grid saturday"
|
||||
msgid "S"
|
||||
msgstr "L"
|
||||
|
||||
#: ../js/ui/calendar.js:566
|
||||
#: ../js/ui/calendar.js:416
|
||||
msgid "Previous month"
|
||||
msgstr "Forrige måned"
|
||||
|
||||
#: ../js/ui/calendar.js:576
|
||||
#: ../js/ui/calendar.js:426
|
||||
msgid "Next month"
|
||||
msgstr "Næste måned"
|
||||
|
||||
#: ../js/ui/calendar.js:783
|
||||
#: ../js/ui/calendar.js:579
|
||||
#, no-javascript-format
|
||||
msgctxt "date day number format"
|
||||
msgid "%d"
|
||||
msgstr "%d"
|
||||
|
||||
#: ../js/ui/calendar.js:634
|
||||
msgid "Week %V"
|
||||
msgstr "Uge %V"
|
||||
|
||||
#. Translators: Shown in calendar event list for all day events
|
||||
#. * Keep it short, best if you can use less then 10 characters
|
||||
#.
|
||||
#: ../js/ui/calendar.js:1188
|
||||
#: ../js/ui/calendar.js:695
|
||||
msgctxt "event list time"
|
||||
msgid "All Day"
|
||||
msgstr "Hele dagen"
|
||||
|
||||
#: ../js/ui/calendar.js:1291
|
||||
msgid "Clear section"
|
||||
msgstr "Ryd afsnit"
|
||||
|
||||
#: ../js/ui/calendar.js:1518
|
||||
#: ../js/ui/calendar.js:821
|
||||
msgid "Events"
|
||||
msgstr "Begivenheder"
|
||||
|
||||
#: ../js/ui/calendar.js:1527
|
||||
#: ../js/ui/calendar.js:830
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, %d. %B"
|
||||
|
||||
#: ../js/ui/calendar.js:1531
|
||||
#: ../js/ui/calendar.js:834
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d, %Y"
|
||||
msgstr "%A, %d. %B %Y"
|
||||
|
||||
#: ../js/ui/calendar.js:1616
|
||||
#: ../js/ui/calendar.js:919
|
||||
msgid "Notifications"
|
||||
msgstr "Beskeder"
|
||||
|
||||
#: ../js/ui/calendar.js:1767
|
||||
#: ../js/ui/calendar.js:1070
|
||||
msgid "No Notifications"
|
||||
msgstr "Ingen påmindelser"
|
||||
|
||||
#: ../js/ui/calendar.js:1770
|
||||
#: ../js/ui/calendar.js:1073
|
||||
msgid "No Events"
|
||||
msgstr "Ingen begivenheder"
|
||||
|
||||
@ -637,7 +672,7 @@ msgstr "Eksternt drev tilkoblet"
|
||||
msgid "External drive disconnected"
|
||||
msgstr "Eksternt drev frakoblet"
|
||||
|
||||
#: ../js/ui/components/autorunManager.js:354
|
||||
#: ../js/ui/components/autorunManager.js:355
|
||||
#, javascript-format
|
||||
msgid "Open with %s"
|
||||
msgstr "Åbn med %s"
|
||||
@ -763,7 +798,7 @@ msgstr "Beklager, godkendelse mislykkedes. Prøv igen."
|
||||
|
||||
#. Translators: this is the other person changing their old IM name to their new
|
||||
#. IM name.
|
||||
#: ../js/ui/components/telepathyClient.js:759
|
||||
#: ../js/ui/components/telepathyClient.js:760
|
||||
#, javascript-format
|
||||
msgid "%s is now known as %s"
|
||||
msgstr "%s kalder sig nu %s"
|
||||
@ -948,11 +983,11 @@ msgid "Keyboard"
|
||||
msgstr "Tastatur"
|
||||
|
||||
#. translators: 'Hide' is a verb
|
||||
#: ../js/ui/legacyTray.js:66
|
||||
#: ../js/ui/legacyTray.js:65
|
||||
msgid "Hide tray"
|
||||
msgstr "Skjul statusfelt"
|
||||
|
||||
#: ../js/ui/legacyTray.js:107
|
||||
#: ../js/ui/legacyTray.js:106
|
||||
msgid "Status Icons"
|
||||
msgstr "Statusikoner"
|
||||
|
||||
@ -980,7 +1015,7 @@ msgstr "Aktiveret"
|
||||
|
||||
#. translators:
|
||||
#. * The device has been disabled
|
||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
|
||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
|
||||
msgid "Disabled"
|
||||
msgstr "Deaktiveret"
|
||||
|
||||
@ -1004,10 +1039,26 @@ msgstr "Vis kilde"
|
||||
msgid "Web Page"
|
||||
msgstr "Webside"
|
||||
|
||||
#: ../js/ui/messageList.js:543
|
||||
msgid "Clear section"
|
||||
msgstr "Ryd afsnit"
|
||||
|
||||
#: ../js/ui/messageTray.js:1486
|
||||
msgid "System Information"
|
||||
msgstr "Systeminformation"
|
||||
|
||||
#: ../js/ui/mpris.js:194
|
||||
msgid "Unknown artist"
|
||||
msgstr "Ukendt kunstner"
|
||||
|
||||
#: ../js/ui/mpris.js:195
|
||||
msgid "Unknown title"
|
||||
msgstr "Ukendt titel"
|
||||
|
||||
#: ../js/ui/mpris.js:217
|
||||
msgid "Media"
|
||||
msgstr "Medier"
|
||||
|
||||
#: ../js/ui/overview.js:84
|
||||
msgid "Undo"
|
||||
msgstr "Fortryd"
|
||||
@ -1024,17 +1075,22 @@ msgstr "Oversigt"
|
||||
msgid "Type to search…"
|
||||
msgstr "Skriv for at søge…"
|
||||
|
||||
#: ../js/ui/panel.js:352
|
||||
#: ../js/ui/panel.js:358
|
||||
msgid "Quit"
|
||||
msgstr "Afslut"
|
||||
|
||||
#. Translators: If there is no suitable word for "Activities"
|
||||
#. in your language, you can use the word for "Overview".
|
||||
#: ../js/ui/panel.js:404
|
||||
#: ../js/ui/panel.js:414
|
||||
msgid "Activities"
|
||||
msgstr "Aktiviteter"
|
||||
|
||||
#: ../js/ui/panel.js:754
|
||||
#: ../js/ui/panel.js:695
|
||||
msgctxt "System menu in the top bar"
|
||||
msgid "System"
|
||||
msgstr "System"
|
||||
|
||||
#: ../js/ui/panel.js:807
|
||||
msgid "Top Bar"
|
||||
msgstr "Toppanel"
|
||||
|
||||
@ -1047,15 +1103,15 @@ msgstr "Toppanel"
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
#: ../js/ui/runDialog.js:70
|
||||
#: ../js/ui/runDialog.js:71
|
||||
msgid "Enter a Command"
|
||||
msgstr "Indtast en kommando"
|
||||
|
||||
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
|
||||
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
|
||||
msgid "Close"
|
||||
msgstr "Luk"
|
||||
|
||||
#: ../js/ui/runDialog.js:281
|
||||
#: ../js/ui/runDialog.js:282
|
||||
msgid "Restarting…"
|
||||
msgstr "Genstarter…"
|
||||
|
||||
@ -1178,29 +1234,41 @@ msgstr "Høj kontrast"
|
||||
msgid "Large Text"
|
||||
msgstr "Stor tekst"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Sluk"
|
||||
#: ../js/ui/status/bluetooth.js:47
|
||||
msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:54
|
||||
#: ../js/ui/status/bluetooth.js:56
|
||||
msgid "Bluetooth Settings"
|
||||
msgstr "Indstillinger for Bluetooth"
|
||||
|
||||
#. Translators: this is the number of connected bluetooth devices
|
||||
#: ../js/ui/status/bluetooth.js:105
|
||||
#: ../js/ui/status/bluetooth.js:136
|
||||
#, javascript-format
|
||||
msgid "%d Connected"
|
||||
msgid_plural "%d Connected"
|
||||
msgstr[0] "%d forbundet"
|
||||
msgstr[1] "%d forbundet"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:107
|
||||
#: ../js/ui/status/bluetooth.js:138
|
||||
msgid "Off"
|
||||
msgstr "Slukket"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:140
|
||||
msgid "Not In Use"
|
||||
msgstr "Ikke i brug"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Tænd"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Sluk"
|
||||
|
||||
#: ../js/ui/status/brightness.js:44
|
||||
msgid "Brightness"
|
||||
msgstr "Lysstyrke"
|
||||
@ -1209,30 +1277,49 @@ msgstr "Lysstyrke"
|
||||
msgid "Show Keyboard Layout"
|
||||
msgstr "Vis tastaturlayout"
|
||||
|
||||
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
|
||||
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
|
||||
msgid "Location Enabled"
|
||||
msgstr "Placering aktiveret"
|
||||
|
||||
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
|
||||
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
|
||||
msgid "Disable"
|
||||
msgstr "Slå fra"
|
||||
|
||||
#: ../js/ui/status/location.js:73
|
||||
#: ../js/ui/status/location.js:109
|
||||
msgid "Privacy Settings"
|
||||
msgstr "Indstillinger for privatliv"
|
||||
|
||||
#: ../js/ui/status/location.js:176
|
||||
#: ../js/ui/status/location.js:214
|
||||
msgid "Location In Use"
|
||||
msgstr "Placering i brug"
|
||||
|
||||
#: ../js/ui/status/location.js:180
|
||||
#: ../js/ui/status/location.js:218
|
||||
msgid "Location Disabled"
|
||||
msgstr "Placering deaktiveret"
|
||||
|
||||
#: ../js/ui/status/location.js:181
|
||||
#: ../js/ui/status/location.js:219
|
||||
msgid "Enable"
|
||||
msgstr "Slå til"
|
||||
|
||||
#: ../js/ui/status/location.js:426
|
||||
msgid "Deny Access"
|
||||
msgstr "Forbyd adgang"
|
||||
|
||||
#: ../js/ui/status/location.js:429
|
||||
msgid "Grant Access"
|
||||
msgstr "Giv adgang"
|
||||
|
||||
#. Translators: %s is an application name
|
||||
#: ../js/ui/status/location.js:435
|
||||
#, javascript-format
|
||||
msgid "Give %s access to your location?"
|
||||
msgstr "Giv %s adgang til din placering?"
|
||||
|
||||
#: ../js/ui/status/location.js:437
|
||||
msgid "Location access can be changed at any time from the privacy settings."
|
||||
msgstr ""
|
||||
"Placeringsadgang kan ændres når som helst via privatlivsindstillingerne."
|
||||
|
||||
#: ../js/ui/status/network.js:101
|
||||
msgid "<unknown>"
|
||||
msgstr "<ukendt>"
|
||||
@ -1368,10 +1455,6 @@ msgstr "Vælg netværk"
|
||||
msgid "Wi-Fi Settings"
|
||||
msgstr "Indstillinger for trådløs"
|
||||
|
||||
#: ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Tænd"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:1296
|
||||
#, javascript-format
|
||||
@ -1399,7 +1482,7 @@ msgstr "forbindelse mislykkedes"
|
||||
|
||||
#: ../js/ui/status/network.js:1482 ../js/ui/status/rfkill.js:93
|
||||
msgid "Network Settings"
|
||||
msgstr "Indstillinger for netværk"
|
||||
msgstr "Netværksindstillinger"
|
||||
|
||||
#: ../js/ui/status/network.js:1484
|
||||
msgid "VPN Settings"
|
||||
@ -1421,31 +1504,36 @@ msgstr "Forbindelse mislykkedes"
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Aktivering af netværksforbindelse mislykkedes"
|
||||
|
||||
#: ../js/ui/status/power.js:49
|
||||
#: ../js/ui/status/power.js:61
|
||||
msgid "Power Settings"
|
||||
msgstr "Indstillinger for strømstyring"
|
||||
|
||||
#: ../js/ui/status/power.js:65
|
||||
#: ../js/ui/status/power.js:77
|
||||
msgid "Fully Charged"
|
||||
msgstr "Fuldt opladet"
|
||||
|
||||
#. 0 is reported when UPower does not have enough data
|
||||
#. to estimate battery life
|
||||
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
|
||||
#: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
|
||||
msgid "Estimating…"
|
||||
msgstr "Udregner…"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
#: ../js/ui/status/power.js:86
|
||||
#: ../js/ui/status/power.js:98
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Remaining (%d%%)"
|
||||
msgstr "%d∶%02d tilbage (%d%%)"
|
||||
msgid "%d∶%02d Remaining (%d %%)"
|
||||
msgstr "%d∶%02d tilbage (%d %%)"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
#: ../js/ui/status/power.js:91
|
||||
#: ../js/ui/status/power.js:103
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Until Full (%d%%)"
|
||||
msgstr "%d∶%02d indtil fuld (%d%%)"
|
||||
msgid "%d∶%02d Until Full (%d %%)"
|
||||
msgstr "%d∶%02d indtil fuld (%d %%)"
|
||||
|
||||
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
|
||||
#, javascript-format
|
||||
msgid "%d %%"
|
||||
msgstr "%d %%"
|
||||
|
||||
#. The menu only appears when airplane mode is on, so just
|
||||
#. statically build it as if it was on, rather than dynamically
|
||||
@ -1486,10 +1574,6 @@ msgstr "Lydstyrke ændret"
|
||||
msgid "Volume"
|
||||
msgstr "Lydstyrke"
|
||||
|
||||
#: ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "Mikrofon"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:67
|
||||
msgid "Log in as another user"
|
||||
msgstr "Log ind som en anden bruger"
|
||||
@ -1610,7 +1694,7 @@ msgstr "Evolution kalender"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound outputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1837
|
||||
#: ../src/gvc/gvc-mixer-control.c:1835
|
||||
#, c-format
|
||||
msgid "%u Output"
|
||||
msgid_plural "%u Outputs"
|
||||
@ -1619,66 +1703,66 @@ msgstr[1] "%u outputs"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound inputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1847
|
||||
#: ../src/gvc/gvc-mixer-control.c:1845
|
||||
#, c-format
|
||||
msgid "%u Input"
|
||||
msgid_plural "%u Inputs"
|
||||
msgstr[0] "%u input"
|
||||
msgstr[1] "%u inputs"
|
||||
|
||||
#: ../src/gvc/gvc-mixer-control.c:2373
|
||||
#: ../src/gvc/gvc-mixer-control.c:2371
|
||||
msgid "System Sounds"
|
||||
msgstr "Systemlyde"
|
||||
|
||||
#: ../src/main.c:373
|
||||
#: ../src/main.c:381
|
||||
msgid "Print version"
|
||||
msgstr "Udskriv version"
|
||||
|
||||
#: ../src/main.c:379
|
||||
#: ../src/main.c:387
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "Tilstand brugt af GDM til indlogningskærm"
|
||||
|
||||
#: ../src/main.c:385
|
||||
#: ../src/main.c:393
|
||||
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
|
||||
msgstr "Brug en specifik tilstand, f.eks. \"gdm\" til logind-skærm"
|
||||
|
||||
#: ../src/main.c:391
|
||||
#: ../src/main.c:399
|
||||
msgid "List possible modes"
|
||||
msgstr "Vis mulige tilstande"
|
||||
|
||||
#: ../src/shell-app.c:239
|
||||
#: ../src/shell-app.c:246
|
||||
msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "Ukendt"
|
||||
|
||||
#: ../src/shell-app.c:480
|
||||
#: ../src/shell-app.c:487
|
||||
#, c-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Kunne ikke køre “%s”"
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:742
|
||||
#: ../src/shell-keyring-prompt.c:730
|
||||
msgid "Passwords do not match."
|
||||
msgstr "Adgangskoder er ikke ens."
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:750
|
||||
#: ../src/shell-keyring-prompt.c:738
|
||||
msgid "Password cannot be blank"
|
||||
msgstr "Adgangskode må ikke være tom"
|
||||
|
||||
#: ../src/shell-polkit-authentication-agent.c:346
|
||||
#: ../src/shell-polkit-authentication-agent.c:353
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "Godkendelsesdialogen blev afvist af brugeren"
|
||||
|
||||
#~ msgid "Bluetooth"
|
||||
#~ msgstr "Bluetooth"
|
||||
#~ msgid "%s is requesting access to your location."
|
||||
#~ msgstr "%s spørger efter adgang til din placering."
|
||||
|
||||
#~ msgid "GNOME Shell (wayland compositor)"
|
||||
#~ msgstr "GNOME Shell (wayland-sammensætter)"
|
||||
|
||||
#~ msgid "%d Connected Device"
|
||||
#~ msgid_plural "%d Connected Devices"
|
||||
#~ msgstr[0] "%d forbundet enhed"
|
||||
#~ msgstr[1] "%d forbundne enheder"
|
||||
|
||||
#~ msgid "Off"
|
||||
#~ msgstr "Slukket"
|
||||
|
||||
#~ msgid "Authentication required"
|
||||
#~ msgstr "Godkendelse påkrævet"
|
||||
|
||||
@ -1886,9 +1970,6 @@ msgstr "Godkendelsesdialogen blev afvist af brugeren"
|
||||
#~ msgid "View account"
|
||||
#~ msgstr "Vis konto"
|
||||
|
||||
#~ msgid "Unknown reason"
|
||||
#~ msgstr "Ukendt årsag"
|
||||
|
||||
#~ msgid "Open Calendar"
|
||||
#~ msgstr "Åbn kalender"
|
||||
|
||||
@ -2011,9 +2092,6 @@ msgstr "Godkendelsesdialogen blev afvist af brugeren"
|
||||
#~ msgid "Device %s wants access to the service '%s'"
|
||||
#~ msgstr "Enheden %s ønsker adgang til tjenesten \"%s\""
|
||||
|
||||
#~ msgid "Always grant access"
|
||||
#~ msgstr "Giv altid adgang"
|
||||
|
||||
#~ msgid "Grant this time only"
|
||||
#~ msgstr "Giv kun lov denne gang"
|
||||
|
||||
@ -2186,9 +2264,6 @@ msgstr "Godkendelsesdialogen blev afvist af brugeren"
|
||||
#~ msgid "Visibility"
|
||||
#~ msgstr "Synlighed"
|
||||
|
||||
#~ msgid "Send Files to Device…"
|
||||
#~ msgstr "Send filer til enhed…"
|
||||
|
||||
#~ msgid "Set Up a New Device…"
|
||||
#~ msgstr "Indstil en ny enhed…"
|
||||
|
||||
@ -2266,10 +2341,6 @@ msgstr "Godkendelsesdialogen blev afvist af brugeren"
|
||||
#~ msgstr[0] "%d minut tilbage"
|
||||
#~ msgstr[1] "%d minutter tilbage"
|
||||
|
||||
#~ msgctxt "percent of battery remaining"
|
||||
#~ msgid "%d%%"
|
||||
#~ msgstr "%d%%"
|
||||
|
||||
#~ msgid "AC Adapter"
|
||||
#~ msgstr "AC-adapter"
|
||||
|
||||
|
162
po/ga.po
162
po/ga.po
@ -1,5 +1,5 @@
|
||||
# Irish translations for gnome-shell package.
|
||||
# Copyright (C) 2009-2013 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2009-2015 Free Software Foundation, Inc.
|
||||
# This file is distributed under the same license as the gnome-shell package.
|
||||
# Seán de Búrca <leftmostcat@gmail.com>, 2009-2015.
|
||||
#
|
||||
@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell.master\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-09-18 10:05-0600\n"
|
||||
"PO-Revision-Date: 2015-09-18 10:33-0600\n"
|
||||
"POT-Creation-Date: 2015-09-30 22:09-0600\n"
|
||||
"PO-Revision-Date: 2015-09-30 22:29-0600\n"
|
||||
"Last-Translator: Seán de Búrca <leftmostcat@gmail.com>\n"
|
||||
"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
|
||||
"Language: ga\n"
|
||||
@ -262,14 +262,13 @@ msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.Shell.PortalHelper.desktop.in.h:1
|
||||
#, fuzzy
|
||||
msgid "Network Login"
|
||||
msgstr "Earráid líonra"
|
||||
msgstr "Logáil Isteach Líonra"
|
||||
|
||||
#: ../js/extensionPrefs/main.js:122
|
||||
#, javascript-format
|
||||
msgid "There was an error loading the preferences dialog for %s:"
|
||||
msgstr ""
|
||||
msgstr "Tharla earráid agus luchtú na dialóige sainroghanna do %s:"
|
||||
|
||||
#: ../js/extensionPrefs/main.js:154
|
||||
msgid "GNOME Shell Extensions"
|
||||
@ -351,9 +350,9 @@ msgid "Could not parse command:"
|
||||
msgstr "Níorbh fhéidir ordú a pharsáil:"
|
||||
|
||||
#: ../js/misc/util.js:160
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "Execution of “%s” failed:"
|
||||
msgstr "Theip rith '%s':"
|
||||
msgstr "Theip ar rith “%s”:"
|
||||
|
||||
#. Translators: Time in 24h format
|
||||
#: ../js/misc/util.js:191
|
||||
@ -428,9 +427,8 @@ msgstr "%d %B %Y, %l∶%M %p"
|
||||
#. TRANSLATORS: this is the title of the wifi captive portal login
|
||||
#. * window, until we know the title of the actual login page
|
||||
#: ../js/portalHelper/main.js:85
|
||||
#, fuzzy
|
||||
msgid "Web Authentication Redirect"
|
||||
msgstr "Fíordheimhniú de Dhíth"
|
||||
msgstr ""
|
||||
|
||||
#: ../js/ui/appDisplay.js:794
|
||||
msgid "Frequently used applications will appear here"
|
||||
@ -478,8 +476,7 @@ msgstr "Athraigh Cúlra…"
|
||||
msgid "Display Settings"
|
||||
msgstr "Socruithe Taispeána"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
|
||||
#: ../js/ui/status/system.js:366
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
|
||||
msgid "Settings"
|
||||
msgstr "Socruithe"
|
||||
|
||||
@ -537,15 +534,15 @@ msgstr "S"
|
||||
|
||||
#: ../js/ui/calendar.js:566
|
||||
msgid "Previous month"
|
||||
msgstr ""
|
||||
msgstr "An mhí roimhe seo"
|
||||
|
||||
#: ../js/ui/calendar.js:576
|
||||
msgid "Next month"
|
||||
msgstr ""
|
||||
msgstr "An chéad mhí eile"
|
||||
|
||||
#: ../js/ui/calendar.js:783
|
||||
msgid "Week %V"
|
||||
msgstr ""
|
||||
msgstr "Seachtain %V"
|
||||
|
||||
#. Translators: Shown in calendar event list for all day events
|
||||
#. * Keep it short, best if you can use less then 10 characters
|
||||
@ -555,33 +552,33 @@ msgctxt "event list time"
|
||||
msgid "All Day"
|
||||
msgstr "An Lá ar Fad"
|
||||
|
||||
#: ../js/ui/calendar.js:1291
|
||||
#: ../js/ui/calendar.js:1295
|
||||
msgid "Clear section"
|
||||
msgstr ""
|
||||
|
||||
#: ../js/ui/calendar.js:1518
|
||||
#: ../js/ui/calendar.js:1522
|
||||
msgid "Events"
|
||||
msgstr "Imeachtaí"
|
||||
|
||||
#: ../js/ui/calendar.js:1527
|
||||
#: ../js/ui/calendar.js:1531
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, %d %B"
|
||||
|
||||
#: ../js/ui/calendar.js:1531
|
||||
#: ../js/ui/calendar.js:1535
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d, %Y"
|
||||
msgstr "%A, %d %B, %Y"
|
||||
|
||||
#: ../js/ui/calendar.js:1616
|
||||
#: ../js/ui/calendar.js:1620
|
||||
msgid "Notifications"
|
||||
msgstr "Fógraí"
|
||||
|
||||
#: ../js/ui/calendar.js:1767
|
||||
#: ../js/ui/calendar.js:1771
|
||||
msgid "No Notifications"
|
||||
msgstr "Gan Fhógra"
|
||||
|
||||
#: ../js/ui/calendar.js:1770
|
||||
#: ../js/ui/calendar.js:1774
|
||||
msgid "No Events"
|
||||
msgstr "Gan Imeacht"
|
||||
|
||||
@ -687,9 +684,9 @@ msgstr ""
|
||||
#: ../js/ui/components/networkAgent.js:663
|
||||
#: ../js/ui/components/networkAgent.js:667
|
||||
#: ../js/ui/components/networkAgent.js:680
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "A password is required to connect to “%s”."
|
||||
msgstr "Tá focal faire de dhíth chun ceangal le '%s'."
|
||||
msgstr "Tá focal faire de dhíth chun ceangal le “%s”."
|
||||
|
||||
#: ../js/ui/components/networkAgent.js:647 ../js/ui/status/network.js:1658
|
||||
msgid "Network Manager"
|
||||
@ -718,9 +715,9 @@ msgstr "Tá brón orm, theip sé sin. Bain triail eile as, le do thoil."
|
||||
#. Translators: this is the other person changing their old IM name to their new
|
||||
#. IM name.
|
||||
#: ../js/ui/components/telepathyClient.js:759
|
||||
#, javascript-format
|
||||
#, fuzzy, javascript-format
|
||||
msgid "%s is now known as %s"
|
||||
msgstr ""
|
||||
msgstr "Tugtar %2$s ar %1$s anois"
|
||||
|
||||
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:155
|
||||
msgid "Windows"
|
||||
@ -818,7 +815,7 @@ msgstr[4] "Múchfar an córas go huathoibríoch i gceann %d soicind."
|
||||
#: ../js/ui/endSessionDialog.js:91
|
||||
msgctxt "checkbox"
|
||||
msgid "Install pending software updates"
|
||||
msgstr ""
|
||||
msgstr "Suiteáil nuashonruithe bogearraí ar feitheamh"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:94 ../js/ui/endSessionDialog.js:111
|
||||
msgctxt "button"
|
||||
@ -884,7 +881,7 @@ msgstr "Suiteáil & Múch"
|
||||
#: ../js/ui/endSessionDialog.js:129
|
||||
msgctxt "checkbox"
|
||||
msgid "Power off after updates are installed"
|
||||
msgstr ""
|
||||
msgstr "Múch tar éis suiteáil nuashonruithe"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:338
|
||||
msgid "Running on battery power: please plug in before installing updates."
|
||||
@ -915,9 +912,9 @@ msgid "Install"
|
||||
msgstr "Suiteáil"
|
||||
|
||||
#: ../js/ui/extensionDownloader.js:204
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "Download and install “%s” from extensions.gnome.org?"
|
||||
msgstr "Íosluchtaigh agus suiteáil '%s' ó extensions.gnome.org?"
|
||||
msgstr "Íosluchtaigh agus suiteáil “%s” ó extensions.gnome.org?"
|
||||
|
||||
#: ../js/ui/keyboard.js:741 ../js/ui/status/keyboard.js:713
|
||||
msgid "Keyboard"
|
||||
@ -925,13 +922,12 @@ msgstr "Méarchlár"
|
||||
|
||||
#. translators: 'Hide' is a verb
|
||||
#: ../js/ui/legacyTray.js:66
|
||||
#, fuzzy
|
||||
msgid "Hide tray"
|
||||
msgstr "Folaigh Téacs"
|
||||
msgstr "Folaigh tráidire"
|
||||
|
||||
#: ../js/ui/legacyTray.js:107
|
||||
msgid "Status Icons"
|
||||
msgstr ""
|
||||
msgstr "Deilbhíní Stádais"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:643
|
||||
msgid "No extensions installed"
|
||||
@ -957,7 +953,7 @@ msgstr "Cumasaithe"
|
||||
|
||||
#. translators:
|
||||
#. * The device has been disabled
|
||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
|
||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
|
||||
msgid "Disabled"
|
||||
msgstr "Díchumasaithe"
|
||||
|
||||
@ -1011,6 +1007,11 @@ msgstr "Scoir"
|
||||
msgid "Activities"
|
||||
msgstr "Gníomhartha"
|
||||
|
||||
#: ../js/ui/panel.js:650
|
||||
msgctxt "System menu in the top bar"
|
||||
msgid "System"
|
||||
msgstr "Córas"
|
||||
|
||||
#: ../js/ui/panel.js:754
|
||||
msgid "Top Bar"
|
||||
msgstr "Barra ag an mBarr"
|
||||
@ -1174,18 +1175,18 @@ msgstr "Socruithe Bluetooth"
|
||||
|
||||
#. Translators: this is the number of connected bluetooth devices
|
||||
#: ../js/ui/status/bluetooth.js:105
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "%d Connected"
|
||||
msgid_plural "%d Connected"
|
||||
msgstr[0] "%d Ghléas Ceangailte"
|
||||
msgstr[1] "%d Ghléas Ceangailte"
|
||||
msgstr[2] "%d Ghléas Ceangailte"
|
||||
msgstr[3] "%d nGléas Ceangailte"
|
||||
msgstr[4] "%d Gléas Ceangailte"
|
||||
msgstr[0] "%d Ceangailte"
|
||||
msgstr[1] "%d Ceangailte"
|
||||
msgstr[2] "%d Ceangailte"
|
||||
msgstr[3] "%d Ceangailte"
|
||||
msgstr[4] "%d Ceangailte"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:107
|
||||
msgid "Not In Use"
|
||||
msgstr ""
|
||||
msgstr "Níl in Úsáid"
|
||||
|
||||
#: ../js/ui/status/brightness.js:44
|
||||
msgid "Brightness"
|
||||
@ -1196,27 +1197,24 @@ msgid "Show Keyboard Layout"
|
||||
msgstr "Taispeáin Leagan Amach an Mhéarchláir"
|
||||
|
||||
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
|
||||
#, fuzzy
|
||||
msgid "Location Enabled"
|
||||
msgstr "theip an ceangal"
|
||||
msgstr "Suíomh Cumasaithe"
|
||||
|
||||
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
|
||||
msgid "Disable"
|
||||
msgstr "Díchumasaigh"
|
||||
|
||||
#: ../js/ui/status/location.js:73
|
||||
#, fuzzy
|
||||
msgid "Privacy Settings"
|
||||
msgstr "Socruithe Cumhachta"
|
||||
msgstr "Socruithe Príobháideachais"
|
||||
|
||||
#: ../js/ui/status/location.js:176
|
||||
msgid "Location In Use"
|
||||
msgstr ""
|
||||
msgstr "Suíomh in Úsáid"
|
||||
|
||||
#: ../js/ui/status/location.js:180
|
||||
#, fuzzy
|
||||
msgid "Location Disabled"
|
||||
msgstr "theip an ceangal"
|
||||
msgstr "Suíomh Díchumasaithe"
|
||||
|
||||
#: ../js/ui/status/location.js:181
|
||||
msgid "Enable"
|
||||
@ -1230,46 +1228,46 @@ msgstr "<anaithnid>"
|
||||
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
|
||||
#, javascript-format
|
||||
msgid "%s Off"
|
||||
msgstr ""
|
||||
msgstr "%s Múchta"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:454
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "%s Connected"
|
||||
msgstr "Ceangal"
|
||||
msgstr "%s Ceangailte"
|
||||
|
||||
#. Translators: this is for network devices that are physically present but are not
|
||||
#. under NetworkManager's control (and thus cannot be used in the menu);
|
||||
#. %s is a network identifier
|
||||
#: ../js/ui/status/network.js:459
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "%s Unmanaged"
|
||||
msgstr "gan bhainistiú"
|
||||
msgstr "%s Gan Bhainistiú"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:462
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "%s Disconnecting"
|
||||
msgstr "á dhícheangal..."
|
||||
msgstr "%s ag Dícheangal"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "%s Connecting"
|
||||
msgstr "Ceangal"
|
||||
msgstr "%s ag Ceangal"
|
||||
|
||||
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
|
||||
#: ../js/ui/status/network.js:472
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "%s Requires Authentication"
|
||||
msgstr "Fíordheimhniú DSL"
|
||||
msgstr "Fíordheimhniú de Dhíth ar %s"
|
||||
|
||||
#. Translators: this is for devices that require some kind of firmware or kernel
|
||||
#. module, which is missing; %s is a network identifier
|
||||
#: ../js/ui/status/network.js:480
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "Firmware Missing For %s"
|
||||
msgstr "dochtearraí ar iarraidh"
|
||||
msgstr "Dochtearraí do %s ar Iarraidh"
|
||||
|
||||
#. Translators: this is for a network device that cannot be activated (for example it
|
||||
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
|
||||
@ -1280,14 +1278,13 @@ msgstr "Níl %s ar Fáil"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:487
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "%s Connection Failed"
|
||||
msgstr "Theip an ceangal"
|
||||
msgstr "Theip Ceangal %s"
|
||||
|
||||
#: ../js/ui/status/network.js:503
|
||||
#, fuzzy
|
||||
msgid "Wired Settings"
|
||||
msgstr "Socruithe"
|
||||
msgstr "Socruithe Sreangaithe"
|
||||
|
||||
#: ../js/ui/status/network.js:545 ../js/ui/status/network.js:624
|
||||
#, fuzzy
|
||||
@ -1303,9 +1300,9 @@ msgstr ""
|
||||
#. Translators: this is for a network device that cannot be activated
|
||||
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
|
||||
#: ../js/ui/status/network.js:592
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "%s Disabled"
|
||||
msgstr "Díchumasaithe"
|
||||
msgstr "%s Díchumasaithe"
|
||||
|
||||
#: ../js/ui/status/network.js:632
|
||||
msgid "Use as Internet connection"
|
||||
@ -1327,16 +1324,15 @@ msgstr "Mód Eitleáin"
|
||||
|
||||
#: ../js/ui/status/network.js:824
|
||||
msgid "Wi-Fi is Off"
|
||||
msgstr ""
|
||||
msgstr "Tá Wi-Fi Múchta"
|
||||
|
||||
#: ../js/ui/status/network.js:825
|
||||
msgid "Wi-Fi needs to be turned on in order to connect to a network."
|
||||
msgstr ""
|
||||
|
||||
#: ../js/ui/status/network.js:826
|
||||
#, fuzzy
|
||||
msgid "Turn On Wi-Fi"
|
||||
msgstr "Cumasaigh"
|
||||
msgstr "Cuir Wi-Fi ar Siúl"
|
||||
|
||||
#: ../js/ui/status/network.js:851
|
||||
msgid "Wi-Fi Networks"
|
||||
@ -1374,9 +1370,9 @@ msgstr ""
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:1311
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "%s Not Connected"
|
||||
msgstr "%d Ghléas Ceangailte"
|
||||
msgstr "%s Gan Cheangal"
|
||||
|
||||
#: ../js/ui/status/network.js:1411
|
||||
msgid "connecting..."
|
||||
@ -1404,9 +1400,8 @@ msgid "VPN"
|
||||
msgstr "VPN"
|
||||
|
||||
#: ../js/ui/status/network.js:1513
|
||||
#, fuzzy
|
||||
msgid "VPN Off"
|
||||
msgstr "Múch"
|
||||
msgstr "VPN Múchta"
|
||||
|
||||
#: ../js/ui/status/network.js:1697
|
||||
msgid "Connection failed"
|
||||
@ -1446,9 +1441,8 @@ msgstr "%d∶%02d go dTí Lán (%d%%)"
|
||||
#. statically build it as if it was on, rather than dynamically
|
||||
#. changing the menu contents.
|
||||
#: ../js/ui/status/rfkill.js:88
|
||||
#, fuzzy
|
||||
msgid "Airplane Mode On"
|
||||
msgstr "Mód Eitleáin"
|
||||
msgstr "Mód Eitleáin ar Siúl"
|
||||
|
||||
#: ../js/ui/status/system.js:343
|
||||
msgid "Switch User"
|
||||
@ -1565,7 +1559,7 @@ msgstr ""
|
||||
|
||||
#: ../js/ui/windowMenu.js:70
|
||||
msgid "Always on Top"
|
||||
msgstr ""
|
||||
msgstr "Ar Barr i gCónaí"
|
||||
|
||||
#: ../js/ui/windowMenu.js:89
|
||||
msgid "Always on Visible Workspace"
|
||||
@ -1609,7 +1603,7 @@ msgstr "Féilire Evolution"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound outputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1837
|
||||
#: ../src/gvc/gvc-mixer-control.c:1835
|
||||
#, c-format
|
||||
msgid "%u Output"
|
||||
msgid_plural "%u Outputs"
|
||||
@ -1621,7 +1615,7 @@ msgstr[4] "%u Aschur"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound inputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1847
|
||||
#: ../src/gvc/gvc-mixer-control.c:1845
|
||||
#, c-format
|
||||
msgid "%u Input"
|
||||
msgid_plural "%u Inputs"
|
||||
@ -1631,23 +1625,23 @@ msgstr[2] "%u Ionchur"
|
||||
msgstr[3] "%u nIonchur"
|
||||
msgstr[4] "%u Ionchur"
|
||||
|
||||
#: ../src/gvc/gvc-mixer-control.c:2373
|
||||
#: ../src/gvc/gvc-mixer-control.c:2371
|
||||
msgid "System Sounds"
|
||||
msgstr "Fuaimeanna Córais"
|
||||
|
||||
#: ../src/main.c:373
|
||||
#: ../src/main.c:381
|
||||
msgid "Print version"
|
||||
msgstr "Taispeáin leagan"
|
||||
|
||||
#: ../src/main.c:379
|
||||
#: ../src/main.c:387
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/main.c:385
|
||||
#: ../src/main.c:393
|
||||
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/main.c:391
|
||||
#: ../src/main.c:399
|
||||
msgid "List possible modes"
|
||||
msgstr ""
|
||||
|
||||
|
378
po/gl.po
378
po/gl.po
@ -6,21 +6,22 @@
|
||||
# Antón Méixome <meixome@certima.net>, 2009.
|
||||
# Fran Diéguez <frandieguez@gnome.org>, 2009, 2010, 2011, 2012.
|
||||
# Leandro Regueiro <leandro.regueiro@gmail.com>, 2012.
|
||||
# Fran Dieguez <frandieguez@gnome.org>, 2012, 2013, 2014, 2015.
|
||||
# Fran Dieguez <frandieguez@gnome.org>, 2012, 2013, 2014, 2015, 2016.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell master\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-26 00:05+0200\n"
|
||||
"PO-Revision-Date: 2015-08-26 00:10+0200\n"
|
||||
"POT-Creation-Date: 2016-03-12 13:15+0100\n"
|
||||
"PO-Revision-Date: 2016-03-12 13:16+0100\n"
|
||||
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
|
||||
"Language-Team: gnome-l10n-gl@gnome.org\n"
|
||||
"Language-Team: Galician <gnome-l10n-gl@gnome.org>\n"
|
||||
"Language: gl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Virtaal 0.7.1\n"
|
||||
"X-Generator: Gtranslator 2.91.7\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
|
||||
#: ../data/50-gnome-shell-system.xml.in.h:1
|
||||
@ -47,15 +48,6 @@ msgstr "Mostrar todos os aplicativos"
|
||||
msgid "Open the application menu"
|
||||
msgstr "Abrir o menú de aplicativo"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "GNOME Shell"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:2
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Xestor de xanelas e inicio de aplicativos"
|
||||
|
||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
||||
msgid "GNOME Shell Extension Preferences"
|
||||
msgstr "Preferencias das extensións de GNOME Shell"
|
||||
@ -64,9 +56,13 @@ msgstr "Preferencias das extensións de GNOME Shell"
|
||||
msgid "Configure GNOME Shell Extensions"
|
||||
msgstr "Configure as extensións de GNOME Shell"
|
||||
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
|
||||
msgid "GNOME Shell (wayland compositor)"
|
||||
msgstr "GNOME Shell (compositor de wayland)"
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "GNOME Shell"
|
||||
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Xestor de xanelas e inicio de aplicativos"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
|
||||
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
||||
@ -174,76 +170,95 @@ msgstr ""
|
||||
"estado por omisión da opción. "
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
msgid ""
|
||||
"Whether the default Bluetooth adapter had set up devices associated to it"
|
||||
msgstr ""
|
||||
"Indica se o adaptador de Bluetooth por omisión ten configurados dispositivos "
|
||||
"asociados a el"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
msgid ""
|
||||
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
|
||||
"powered, or if there were devices set up associated with the default "
|
||||
"adapter. This will be reset if the default adapter is ever seen not to have "
|
||||
"devices associated to it."
|
||||
msgstr ""
|
||||
"O shell só mostrará o elemento de menú de Bluetooth se hai un adaptador de "
|
||||
"Bluetooth conectado ou se houbera dispositivos asociados co adaptador "
|
||||
"principal. Isto restabelecerase se o adaptador por omisión non se ve ou non "
|
||||
"ten dispositivos asociados a el."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "Mostrar a data da semana no calendario"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgstr "Se é verdadeiro, móstrase a data da semana ISO no calendario."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
msgid "Keybinding to open the application menu"
|
||||
msgstr "Combinación de teclas para abrir o menú de aplicativo"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
msgid "Keybinding to open the application menu."
|
||||
msgstr "Combinación de teclas para abrir o menú de aplicativo."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
msgid "Keybinding to open the \"Show Applications\" view"
|
||||
msgstr "Combinación de teclas para abrir a vista «Mostrar aplicativos»"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
msgid ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
msgstr ""
|
||||
"Combinación de teclas para abrir a vista \"Mostrar aplicativos\" da Vista "
|
||||
"xera de Actividades."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
msgid "Keybinding to open the overview"
|
||||
msgstr "Combinación de teclas para abrir a Vista xeral"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
msgid "Keybinding to open the Activities Overview."
|
||||
msgstr "Combinación de teclas para abrir a Vista de actividades."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
msgid "Keybinding to toggle the visibility of the notification list"
|
||||
msgstr ""
|
||||
"Combinación de teclas para trocar a visibilidade da área de notificacións"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
msgid "Keybinding to toggle the visibility of the notification list."
|
||||
msgstr ""
|
||||
"Combinación de teclas para trocar a visibilidade da área de notificacións."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
msgid "Keybinding to focus the active notification"
|
||||
msgstr "Combinación de teclas para enfocar a notificación activa"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
msgid "Keybinding to focus the active notification."
|
||||
msgstr "Combinación de teclas para enfocar a notificación activa."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
msgid ""
|
||||
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
|
||||
msgstr "Atallo de teclado que pausa e reinicia todo os xemelgos executándose."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
msgid "Which keyboard to use"
|
||||
msgstr "Que teclado usar"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
msgid "The type of keyboard to use."
|
||||
msgstr "O tipo de teclado a usar."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
msgid "Limit switcher to current workspace."
|
||||
msgstr "Restrinxir o trocador ao espazo de traballo actual."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid ""
|
||||
"If true, only applications that have windows on the current workspace are "
|
||||
"shown in the switcher. Otherwise, all applications are included."
|
||||
@ -251,11 +266,11 @@ msgstr ""
|
||||
"Se é verdadeiro, só se mostran no trocador os aplicativos que teñen xanelas "
|
||||
"no espazo de traballo actual. Doutra maneira inclúense todos os aplicativos."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid "The application icon mode."
|
||||
msgstr "O modo da icona do aplicativo."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
@ -265,7 +280,7 @@ msgstr ""
|
||||
"son «thumbnail-only» (mostra unha miniatura da xanela, «app-icon-only» (só "
|
||||
"mostra a icona do aplicativo) ou «both» (móstranse ambas cosas)."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
msgid ""
|
||||
"If true, only windows from the current workspace are shown in the switcher. "
|
||||
"Otherwise, all windows are included."
|
||||
@ -273,29 +288,29 @@ msgstr ""
|
||||
"Se é verdadeiro, só se mostrarán no trocador as xanelas do espazo de "
|
||||
"traballo actual. Doutra maneira inclúense todos os aplicativos."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "Anexar o diálogo modal á xanela pai"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr ""
|
||||
"Esta chave sobrescribe a chave en org.gnome.mutter cando executa GNOME Shell."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr "Activar o mosaico nos bordos ao arrastrar xanelas aos bordos da xanela"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Os espazos de traballo xestiónanse dinamicamente"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "Espazos de traballo só no monitor primario"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
msgstr "Atrasar os cambios de foco no modo rato até que o punteiro se pare"
|
||||
|
||||
@ -303,51 +318,52 @@ msgstr "Atrasar os cambios de foco no modo rato até que o punteiro se pare"
|
||||
msgid "Network Login"
|
||||
msgstr "Inicio de sesión en rede"
|
||||
|
||||
#: ../js/extensionPrefs/main.js:122
|
||||
#: ../js/extensionPrefs/main.js:117
|
||||
#, javascript-format
|
||||
msgid "There was an error loading the preferences dialog for %s:"
|
||||
msgstr "Produciuse un erro ao cargar o diálogo de preferenzas para %s:"
|
||||
|
||||
#: ../js/extensionPrefs/main.js:154
|
||||
#: ../js/extensionPrefs/main.js:149
|
||||
msgid "GNOME Shell Extensions"
|
||||
msgstr "Extensións de GNOME Shell"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
|
||||
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
|
||||
#: ../js/ui/components/networkAgent.js:145
|
||||
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
|
||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||
#: ../js/ui/status/network.js:916
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
|
||||
#: ../js/gdm/authPrompt.js:435
|
||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
|
||||
#: ../js/gdm/authPrompt.js:448
|
||||
msgid "Next"
|
||||
msgstr "Seguinte"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/ui/unlockDialog.js:59
|
||||
msgid "Unlock"
|
||||
msgstr "Desbloquear"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:213
|
||||
#: ../js/gdm/authPrompt.js:214
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Iniciar sesión"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:281
|
||||
#: ../js/gdm/loginDialog.js:285
|
||||
msgid "Choose Session"
|
||||
msgstr "Escolla unha sesión"
|
||||
|
||||
#. translators: this message is shown below the user list on the
|
||||
#. login screen. It can be activated to reveal an entry for
|
||||
#. manually entering the username.
|
||||
#: ../js/gdm/loginDialog.js:431
|
||||
#: ../js/gdm/loginDialog.js:435
|
||||
msgid "Not listed?"
|
||||
msgstr "Non está na lista?"
|
||||
|
||||
#. Translators: this message is shown below the username entry field
|
||||
#. to clue the user in on how to login to the local network realm
|
||||
#: ../js/gdm/loginDialog.js:847
|
||||
#: ../js/gdm/loginDialog.js:854
|
||||
#, javascript-format
|
||||
msgid "(e.g., user or %s)"
|
||||
msgstr "(p.ex., usuario ou %s)"
|
||||
@ -355,12 +371,12 @@ msgstr "(p.ex., usuario ou %s)"
|
||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||
#. is not visible here since we only care about phase2 authentication
|
||||
#. (and don't even care of which one)
|
||||
#: ../js/gdm/loginDialog.js:852 ../js/ui/components/networkAgent.js:271
|
||||
#: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
|
||||
#: ../js/ui/components/networkAgent.js:289
|
||||
msgid "Username: "
|
||||
msgstr "Nome de usuario: "
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1181
|
||||
#: ../js/gdm/loginDialog.js:1196
|
||||
msgid "Login Window"
|
||||
msgstr "Xanela de inicio de sesión"
|
||||
|
||||
@ -496,16 +512,36 @@ msgstr "Engadir aos favoritos"
|
||||
msgid "Show Details"
|
||||
msgstr "Mostrar detalles"
|
||||
|
||||
#: ../js/ui/appFavorites.js:132
|
||||
#: ../js/ui/appFavorites.js:134
|
||||
#, javascript-format
|
||||
msgid "%s has been added to your favorites."
|
||||
msgstr "%s foi engadido aos seus favoritos."
|
||||
|
||||
#: ../js/ui/appFavorites.js:166
|
||||
#: ../js/ui/appFavorites.js:168
|
||||
#, javascript-format
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "%s retirouse dos seus marcadores."
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:59
|
||||
msgid "Select Audio Device"
|
||||
msgstr "Seleccionar dispositivo de son"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:69
|
||||
msgid "Sound Settings"
|
||||
msgstr "Preferencias de son"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:78
|
||||
msgid "Headphones"
|
||||
msgstr "Cascos auriculares"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:80
|
||||
msgid "Headset"
|
||||
msgstr "Auriculares"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "Micrófono"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:19
|
||||
msgid "Change Background…"
|
||||
msgstr "Cambiar fondo de escritorio…"
|
||||
@ -514,13 +550,12 @@ msgstr "Cambiar fondo de escritorio…"
|
||||
msgid "Display Settings"
|
||||
msgstr "Preferencias da pantalla"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
|
||||
#: ../js/ui/status/system.js:366
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
|
||||
msgid "Settings"
|
||||
msgstr "Preferencias"
|
||||
|
||||
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
|
||||
#: ../js/ui/calendar.js:55
|
||||
#: ../js/ui/calendar.js:47
|
||||
msgctxt "calendar-no-work"
|
||||
msgid "06"
|
||||
msgstr "06"
|
||||
@ -530,94 +565,96 @@ msgstr "06"
|
||||
#. * NOTE: These grid abbreviations are always shown together
|
||||
#. * and in order, e.g. "S M T W T F S".
|
||||
#.
|
||||
#: ../js/ui/calendar.js:84
|
||||
#: ../js/ui/calendar.js:76
|
||||
msgctxt "grid sunday"
|
||||
msgid "S"
|
||||
msgstr "D"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Monday
|
||||
#: ../js/ui/calendar.js:86
|
||||
#: ../js/ui/calendar.js:78
|
||||
msgctxt "grid monday"
|
||||
msgid "M"
|
||||
msgstr "L"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Tuesday
|
||||
#: ../js/ui/calendar.js:88
|
||||
#: ../js/ui/calendar.js:80
|
||||
msgctxt "grid tuesday"
|
||||
msgid "T"
|
||||
msgstr "M"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Wednesday
|
||||
#: ../js/ui/calendar.js:90
|
||||
#: ../js/ui/calendar.js:82
|
||||
msgctxt "grid wednesday"
|
||||
msgid "W"
|
||||
msgstr "W"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Thursday
|
||||
#: ../js/ui/calendar.js:92
|
||||
#: ../js/ui/calendar.js:84
|
||||
msgctxt "grid thursday"
|
||||
msgid "T"
|
||||
msgstr "X"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Friday
|
||||
#: ../js/ui/calendar.js:94
|
||||
#: ../js/ui/calendar.js:86
|
||||
msgctxt "grid friday"
|
||||
msgid "F"
|
||||
msgstr "V"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Saturday
|
||||
#: ../js/ui/calendar.js:96
|
||||
#: ../js/ui/calendar.js:88
|
||||
msgctxt "grid saturday"
|
||||
msgid "S"
|
||||
msgstr "S"
|
||||
|
||||
#: ../js/ui/calendar.js:566
|
||||
#: ../js/ui/calendar.js:416
|
||||
msgid "Previous month"
|
||||
msgstr "Anterior mes"
|
||||
|
||||
#: ../js/ui/calendar.js:576
|
||||
#: ../js/ui/calendar.js:426
|
||||
msgid "Next month"
|
||||
msgstr "Seguinte mes"
|
||||
|
||||
#: ../js/ui/calendar.js:783
|
||||
#: ../js/ui/calendar.js:579
|
||||
#, no-javascript-format
|
||||
msgctxt "date day number format"
|
||||
msgid "%d"
|
||||
msgstr "%d"
|
||||
|
||||
#: ../js/ui/calendar.js:634
|
||||
msgid "Week %V"
|
||||
msgstr "Semana %V"
|
||||
|
||||
#. Translators: Shown in calendar event list for all day events
|
||||
#. * Keep it short, best if you can use less then 10 characters
|
||||
#.
|
||||
#: ../js/ui/calendar.js:1188
|
||||
#: ../js/ui/calendar.js:695
|
||||
msgctxt "event list time"
|
||||
msgid "All Day"
|
||||
msgstr "Todo o día"
|
||||
|
||||
#: ../js/ui/calendar.js:1291
|
||||
msgid "Clear section"
|
||||
msgstr "Limpar sección"
|
||||
|
||||
#: ../js/ui/calendar.js:1518
|
||||
#: ../js/ui/calendar.js:821
|
||||
msgid "Events"
|
||||
msgstr "Eventos"
|
||||
|
||||
#: ../js/ui/calendar.js:1527
|
||||
#: ../js/ui/calendar.js:830
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, %d de %B"
|
||||
|
||||
#: ../js/ui/calendar.js:1531
|
||||
#: ../js/ui/calendar.js:834
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d, %Y"
|
||||
msgstr "%A, %d de %B de %Y"
|
||||
|
||||
#: ../js/ui/calendar.js:1616
|
||||
#: ../js/ui/calendar.js:919
|
||||
msgid "Notifications"
|
||||
msgstr "Notificacións"
|
||||
|
||||
#: ../js/ui/calendar.js:1767
|
||||
#: ../js/ui/calendar.js:1070
|
||||
msgid "No Notifications"
|
||||
msgstr "Non hai notificacións"
|
||||
|
||||
#: ../js/ui/calendar.js:1770
|
||||
#: ../js/ui/calendar.js:1073
|
||||
msgid "No Events"
|
||||
msgstr "Non hai eventos"
|
||||
|
||||
@ -629,7 +666,7 @@ msgstr "Unidade externa conectada"
|
||||
msgid "External drive disconnected"
|
||||
msgstr "Unidade externa desconectada"
|
||||
|
||||
#: ../js/ui/components/autorunManager.js:354
|
||||
#: ../js/ui/components/autorunManager.js:355
|
||||
#, javascript-format
|
||||
msgid "Open with %s"
|
||||
msgstr "Abrir con %s"
|
||||
@ -941,11 +978,11 @@ msgid "Keyboard"
|
||||
msgstr "Teclado"
|
||||
|
||||
#. translators: 'Hide' is a verb
|
||||
#: ../js/ui/legacyTray.js:66
|
||||
#: ../js/ui/legacyTray.js:65
|
||||
msgid "Hide tray"
|
||||
msgstr "Ocultar bandexa"
|
||||
|
||||
#: ../js/ui/legacyTray.js:107
|
||||
#: ../js/ui/legacyTray.js:106
|
||||
msgid "Status Icons"
|
||||
msgstr "Iconas de estado"
|
||||
|
||||
@ -973,7 +1010,7 @@ msgstr "Activado"
|
||||
|
||||
#. translators:
|
||||
#. * The device has been disabled
|
||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
|
||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
|
||||
msgid "Disabled"
|
||||
msgstr "Desactivado"
|
||||
|
||||
@ -997,10 +1034,26 @@ msgstr "Ver fonte"
|
||||
msgid "Web Page"
|
||||
msgstr "Páxina web"
|
||||
|
||||
#: ../js/ui/messageList.js:543
|
||||
msgid "Clear section"
|
||||
msgstr "Limpar sección"
|
||||
|
||||
#: ../js/ui/messageTray.js:1486
|
||||
msgid "System Information"
|
||||
msgstr "Información do sistema"
|
||||
|
||||
#: ../js/ui/mpris.js:194
|
||||
msgid "Unknown artist"
|
||||
msgstr "Artista descoñecido"
|
||||
|
||||
#: ../js/ui/mpris.js:195
|
||||
msgid "Unknown title"
|
||||
msgstr "Título descoñecido"
|
||||
|
||||
#: ../js/ui/mpris.js:217
|
||||
msgid "Media"
|
||||
msgstr "Multimedia"
|
||||
|
||||
#: ../js/ui/overview.js:84
|
||||
msgid "Undo"
|
||||
msgstr "Desfacer"
|
||||
@ -1017,17 +1070,22 @@ msgstr "Vista xeral"
|
||||
msgid "Type to search…"
|
||||
msgstr "Escriba para buscar…"
|
||||
|
||||
#: ../js/ui/panel.js:352
|
||||
#: ../js/ui/panel.js:358
|
||||
msgid "Quit"
|
||||
msgstr "Saír"
|
||||
|
||||
#. Translators: If there is no suitable word for "Activities"
|
||||
#. in your language, you can use the word for "Overview".
|
||||
#: ../js/ui/panel.js:404
|
||||
#: ../js/ui/panel.js:414
|
||||
msgid "Activities"
|
||||
msgstr "Actividades"
|
||||
|
||||
#: ../js/ui/panel.js:754
|
||||
#: ../js/ui/panel.js:695
|
||||
msgctxt "System menu in the top bar"
|
||||
msgid "System"
|
||||
msgstr "Sistema"
|
||||
|
||||
#: ../js/ui/panel.js:807
|
||||
msgid "Top Bar"
|
||||
msgstr "Barra superior"
|
||||
|
||||
@ -1040,15 +1098,15 @@ msgstr "Barra superior"
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
#: ../js/ui/runDialog.js:70
|
||||
#: ../js/ui/runDialog.js:71
|
||||
msgid "Enter a Command"
|
||||
msgstr "Escriba unha orde"
|
||||
|
||||
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
|
||||
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
|
||||
msgid "Close"
|
||||
msgstr "Pechar"
|
||||
|
||||
#: ../js/ui/runDialog.js:281
|
||||
#: ../js/ui/runDialog.js:282
|
||||
msgid "Restarting…"
|
||||
msgstr "Restimando…"
|
||||
|
||||
@ -1171,29 +1229,41 @@ msgstr "Contraste alto"
|
||||
msgid "Large Text"
|
||||
msgstr "Texto grande"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Apagar"
|
||||
#: ../js/ui/status/bluetooth.js:47
|
||||
msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:54
|
||||
#: ../js/ui/status/bluetooth.js:56
|
||||
msgid "Bluetooth Settings"
|
||||
msgstr "Preferencias do Bluetooth"
|
||||
|
||||
#. Translators: this is the number of connected bluetooth devices
|
||||
#: ../js/ui/status/bluetooth.js:105
|
||||
#: ../js/ui/status/bluetooth.js:136
|
||||
#, javascript-format
|
||||
msgid "%d Connected"
|
||||
msgid_plural "%d Connected"
|
||||
msgstr[0] "%d conectado"
|
||||
msgstr[1] "%d conectados"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:107
|
||||
#: ../js/ui/status/bluetooth.js:138
|
||||
msgid "Off"
|
||||
msgstr "Desactivar"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:140
|
||||
msgid "Not In Use"
|
||||
msgstr "Non está en uso"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Activar"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Apagar"
|
||||
|
||||
#: ../js/ui/status/brightness.js:44
|
||||
msgid "Brightness"
|
||||
msgstr "Brillo"
|
||||
@ -1202,30 +1272,50 @@ msgstr "Brillo"
|
||||
msgid "Show Keyboard Layout"
|
||||
msgstr "Mostrar a distribución do teclado"
|
||||
|
||||
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
|
||||
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
|
||||
msgid "Location Enabled"
|
||||
msgstr "Localización activada"
|
||||
|
||||
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
|
||||
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
|
||||
msgid "Disable"
|
||||
msgstr "Desactivar"
|
||||
|
||||
#: ../js/ui/status/location.js:73
|
||||
#: ../js/ui/status/location.js:109
|
||||
msgid "Privacy Settings"
|
||||
msgstr "Preferencias da privacidade"
|
||||
|
||||
#: ../js/ui/status/location.js:176
|
||||
#: ../js/ui/status/location.js:214
|
||||
msgid "Location In Use"
|
||||
msgstr "Localización en uso"
|
||||
|
||||
#: ../js/ui/status/location.js:180
|
||||
#: ../js/ui/status/location.js:218
|
||||
msgid "Location Disabled"
|
||||
msgstr "Localización desactivada"
|
||||
|
||||
#: ../js/ui/status/location.js:181
|
||||
#: ../js/ui/status/location.js:219
|
||||
msgid "Enable"
|
||||
msgstr "Activar"
|
||||
|
||||
#: ../js/ui/status/location.js:426
|
||||
msgid "Deny Access"
|
||||
msgstr "Denegar acceso"
|
||||
|
||||
#: ../js/ui/status/location.js:429
|
||||
msgid "Grant Access"
|
||||
msgstr "Conceder acceso"
|
||||
|
||||
#. Translators: %s is an application name
|
||||
#: ../js/ui/status/location.js:435
|
||||
#, javascript-format
|
||||
msgid "Give %s access to your location?"
|
||||
msgstr "Darlle acceso a %s á súa localización?"
|
||||
|
||||
#: ../js/ui/status/location.js:437
|
||||
msgid "Location access can be changed at any time from the privacy settings."
|
||||
msgstr ""
|
||||
"Pode cambiar o acceso á localización en calquera momento desde as "
|
||||
"preferencias de privacidade."
|
||||
|
||||
#: ../js/ui/status/network.js:101
|
||||
msgid "<unknown>"
|
||||
msgstr "<descoñecido>"
|
||||
@ -1361,10 +1451,6 @@ msgstr "Seleccione unha rede"
|
||||
msgid "Wi-Fi Settings"
|
||||
msgstr "Preferencias da WiFi"
|
||||
|
||||
#: ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Activar"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:1296
|
||||
#, javascript-format
|
||||
@ -1414,31 +1500,36 @@ msgstr "Produciuse un fallo na conexión"
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Produciuse un fallo na activación da conexión de rede"
|
||||
|
||||
#: ../js/ui/status/power.js:49
|
||||
#: ../js/ui/status/power.js:61
|
||||
msgid "Power Settings"
|
||||
msgstr "Preferencias de enerxía"
|
||||
|
||||
#: ../js/ui/status/power.js:65
|
||||
#: ../js/ui/status/power.js:77
|
||||
msgid "Fully Charged"
|
||||
msgstr "Carga completa"
|
||||
|
||||
#. 0 is reported when UPower does not have enough data
|
||||
#. to estimate battery life
|
||||
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
|
||||
#: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
|
||||
msgid "Estimating…"
|
||||
msgstr "Estimando…"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
#: ../js/ui/status/power.js:86
|
||||
#: ../js/ui/status/power.js:98
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Remaining (%d%%)"
|
||||
msgstr "Faltan %d:%02d (%d%%)"
|
||||
msgid "%d∶%02d Remaining (%d %%)"
|
||||
msgstr "%d∶%02d Faltan (%d %%)"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
#: ../js/ui/status/power.js:91
|
||||
#: ../js/ui/status/power.js:103
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Until Full (%d%%)"
|
||||
msgstr "%d:%02d ate cargado (%d%%)"
|
||||
msgid "%d∶%02d Until Full (%d %%)"
|
||||
msgstr "%d∶%02d ate cargado (%d %%)"
|
||||
|
||||
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
|
||||
#, javascript-format
|
||||
msgid "%d %%"
|
||||
msgstr "%d %%"
|
||||
|
||||
#. The menu only appears when airplane mode is on, so just
|
||||
#. statically build it as if it was on, rather than dynamically
|
||||
@ -1479,10 +1570,6 @@ msgstr "Volume cambiado"
|
||||
msgid "Volume"
|
||||
msgstr "Volume"
|
||||
|
||||
#: ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "Micrófono"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:67
|
||||
msgid "Log in as another user"
|
||||
msgstr "Iniciar sesión como outro usuario"
|
||||
@ -1603,7 +1690,7 @@ msgstr "Calendario de Evolution"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound outputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1837
|
||||
#: ../src/gvc/gvc-mixer-control.c:1835
|
||||
#, c-format
|
||||
msgid "%u Output"
|
||||
msgid_plural "%u Outputs"
|
||||
@ -1612,68 +1699,68 @@ msgstr[1] "%u saídas"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound inputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1847
|
||||
#: ../src/gvc/gvc-mixer-control.c:1845
|
||||
#, c-format
|
||||
msgid "%u Input"
|
||||
msgid_plural "%u Inputs"
|
||||
msgstr[0] "%u entrada"
|
||||
msgstr[1] "%u entradas"
|
||||
|
||||
#: ../src/gvc/gvc-mixer-control.c:2373
|
||||
#: ../src/gvc/gvc-mixer-control.c:2371
|
||||
msgid "System Sounds"
|
||||
msgstr "Sons do sistema"
|
||||
|
||||
#: ../src/main.c:373
|
||||
#: ../src/main.c:381
|
||||
msgid "Print version"
|
||||
msgstr "Imprimir versión"
|
||||
|
||||
#: ../src/main.c:379
|
||||
#: ../src/main.c:387
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "Modo usado por GDM para a pantalla de inicio"
|
||||
|
||||
#: ../src/main.c:385
|
||||
#: ../src/main.c:393
|
||||
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
|
||||
msgstr ""
|
||||
"Usar un modo específico, por exemplo, «gdm» para a pantalla de inicio de "
|
||||
"sesión"
|
||||
|
||||
#: ../src/main.c:391
|
||||
#: ../src/main.c:399
|
||||
msgid "List possible modes"
|
||||
msgstr "Listar os modos posíbeis"
|
||||
|
||||
#: ../src/shell-app.c:239
|
||||
#: ../src/shell-app.c:246
|
||||
msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "Descoñecido"
|
||||
|
||||
#: ../src/shell-app.c:480
|
||||
#: ../src/shell-app.c:487
|
||||
#, c-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Produciuse un erro ao iniciar «%s»"
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:742
|
||||
#: ../src/shell-keyring-prompt.c:730
|
||||
msgid "Passwords do not match."
|
||||
msgstr "Os contrasinais non coinciden."
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:750
|
||||
#: ../src/shell-keyring-prompt.c:738
|
||||
msgid "Password cannot be blank"
|
||||
msgstr "O contrasinal non pode estar baleiro"
|
||||
|
||||
#: ../src/shell-polkit-authentication-agent.c:346
|
||||
#: ../src/shell-polkit-authentication-agent.c:353
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "O usuario rexeitou o diálogo de autenticación"
|
||||
|
||||
#~ msgid "Bluetooth"
|
||||
#~ msgstr "Bluetooth"
|
||||
#~ msgid "%s is requesting access to your location."
|
||||
#~ msgstr "%s está solicitando acceso á súa localización."
|
||||
|
||||
#~ msgid "GNOME Shell (wayland compositor)"
|
||||
#~ msgstr "GNOME Shell (compositor de wayland)"
|
||||
|
||||
#~ msgid "%d Connected Device"
|
||||
#~ msgid_plural "%d Connected Devices"
|
||||
#~ msgstr[0] "%d dispositivo conectado"
|
||||
#~ msgstr[1] "%d dispositivos conectados"
|
||||
|
||||
#~ msgid "Off"
|
||||
#~ msgstr "Desactivar"
|
||||
|
||||
#~ msgid "Authentication required"
|
||||
#~ msgstr "Requírese autenticación"
|
||||
|
||||
@ -1825,9 +1912,6 @@ msgstr "O usuario rexeitou o diálogo de autenticación"
|
||||
#~ msgid "View account"
|
||||
#~ msgstr "Ver conta"
|
||||
|
||||
#~ msgid "Unknown reason"
|
||||
#~ msgstr "Razón descoñecida"
|
||||
|
||||
#~ msgid "Show the message list"
|
||||
#~ msgstr "Mostrar a lista de mensaxes"
|
||||
|
||||
@ -2002,9 +2086,6 @@ msgstr "O usuario rexeitou o diálogo de autenticación"
|
||||
#~ msgid "Device %s wants access to the service '%s'"
|
||||
#~ msgstr "O dispositivo %s quere acceder ao servizo «%s»"
|
||||
|
||||
#~ msgid "Always grant access"
|
||||
#~ msgstr "Conceder acceso sempre"
|
||||
|
||||
#~ msgid "Grant this time only"
|
||||
#~ msgstr "Conceder só esta vez"
|
||||
|
||||
@ -2172,9 +2253,6 @@ msgstr "O usuario rexeitou o diálogo de autenticación"
|
||||
#~ msgid "Visibility"
|
||||
#~ msgstr "Visibilidade"
|
||||
|
||||
#~ msgid "Send Files to Device…"
|
||||
#~ msgstr "Enviar ficheiros ao dispositivo…"
|
||||
|
||||
#~ msgid "Set Up a New Device…"
|
||||
#~ msgstr "Configurar un dispositivo novo…"
|
||||
|
||||
@ -2228,10 +2306,6 @@ msgstr "O usuario rexeitou o diálogo de autenticación"
|
||||
#~ msgstr[0] "Queda %d minuto"
|
||||
#~ msgstr[1] "Quedan %d minutos"
|
||||
|
||||
#~ msgctxt "percent of battery remaining"
|
||||
#~ msgid "%d%%"
|
||||
#~ msgstr "%d%%"
|
||||
|
||||
#~ msgid "AC Adapter"
|
||||
#~ msgstr "Adaptador de corrente"
|
||||
|
||||
|
396
po/he.po
396
po/he.po
@ -10,8 +10,8 @@ msgid ""
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell master\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-30 21:15+0300\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-11 14:49+0200\n"
|
||||
"PO-Revision-Date: 2016-03-11 14:51+0200\n"
|
||||
"Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n"
|
||||
"Language-Team: עברית <>\n"
|
||||
@ -47,15 +47,6 @@ msgstr "הצגת כל היישומים"
|
||||
#: ../data/50-gnome-shell-system.xml.in.h:6
|
||||
msgid "Open the application menu"
|
||||
msgstr "פתיחת תפריט היישום"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "מעטפת GNOME"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:2
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "ניהול חלונות והרצת יישומים"
|
||||
|
||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
||||
msgid "GNOME Shell Extension Preferences"
|
||||
@ -64,9 +55,13 @@ msgstr "העדפות ההרחבות של GNOME Shell"
|
||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:2
|
||||
msgid "Configure GNOME Shell Extensions"
|
||||
msgstr "הגדרת הרחבות GNOME Shell"
|
||||
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
|
||||
msgid "GNOME Shell (wayland compositor)"
|
||||
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "מעטפת GNOME"
|
||||
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "ניהול חלונות והרצת יישומים"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
|
||||
@ -170,74 +165,92 @@ msgstr ""
|
||||
"'Remember Password' checkbox will be present. This key sets the default "
|
||||
"state of the checkbox."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
msgid ""
|
||||
"Whether the default Bluetooth adapter had set up devices associated to it"
|
||||
msgstr ""
|
||||
"Whether the default Bluetooth adapter had set up devices associated to it"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
msgid ""
|
||||
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
|
||||
"powered, or if there were devices set up associated with the default "
|
||||
"adapter. This will be reset if the default adapter is ever seen not to have "
|
||||
"devices associated to it."
|
||||
msgstr ""
|
||||
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
|
||||
"powered, or if there were devices set up associated with the default "
|
||||
"adapter. This will be reset if the default adapter is ever seen not to have "
|
||||
"devices associated to it."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "Show the week date in the calendar"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgstr "If true, display the ISO week date in the calendar."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
msgid "Keybinding to open the application menu"
|
||||
msgstr "Keybinding to open the application menu"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
msgid "Keybinding to open the application menu."
|
||||
msgstr "Keybinding to open the application menu."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
msgid "Keybinding to open the \"Show Applications\" view"
|
||||
msgstr "Keybinding to open the \"Show Applications\" view"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
msgid ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
msgstr ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
msgid "Keybinding to open the overview"
|
||||
msgstr "Keybinding to open the overview"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
msgid "Keybinding to open the Activities Overview."
|
||||
msgstr "Keybinding to open the Activities Overview."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
msgid "Keybinding to toggle the visibility of the notification list"
|
||||
msgstr "Keybinding to toggle the visibility of the notification list"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
msgid "Keybinding to toggle the visibility of the notification list."
|
||||
msgstr "Keybinding to toggle the visibility of the notification list."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
msgid "Keybinding to focus the active notification"
|
||||
msgstr "Keybinding to focus the active notification"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
msgid "Keybinding to focus the active notification."
|
||||
msgstr "Keybinding to focus the active notification."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
msgid ""
|
||||
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
|
||||
msgstr ""
|
||||
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
msgid "Which keyboard to use"
|
||||
msgstr "Which keyboard to use"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
msgid "The type of keyboard to use."
|
||||
msgstr "The type of keyboard to use."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
msgid "Limit switcher to current workspace."
|
||||
msgstr "Limit switcher to current workspace."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid ""
|
||||
"If true, only applications that have windows on the current workspace are "
|
||||
@ -245,51 +258,51 @@ msgstr ""
|
||||
msgstr ""
|
||||
"If true, only applications that have windows on the current workspace are "
|
||||
"shown in the switcher. Otherwise, all applications are included."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid "The application icon mode."
|
||||
msgstr "The application icon mode."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
"only' (shows only the application icon) or 'both'."
|
||||
msgstr ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
"only' (shows only the application icon) or 'both'."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid ""
|
||||
"If true, only windows from the current workspace are shown in the switcher. "
|
||||
"Otherwise, all windows are included."
|
||||
msgstr ""
|
||||
"If true, only windows from the current workspace are shown in the switcher. "
|
||||
"Otherwise, all windows are included."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
"only' (shows only the application icon) or 'both'."
|
||||
msgstr ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
"only' (shows only the application icon) or 'both'."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
msgid ""
|
||||
"If true, only windows from the current workspace are shown in the switcher. "
|
||||
"Otherwise, all windows are included."
|
||||
msgstr ""
|
||||
"If true, only windows from the current workspace are shown in the switcher. "
|
||||
"Otherwise, all windows are included."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "Attach modal dialog to the parent window"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr "Enable edge tiling when dropping windows on screen edges"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Workspaces are managed dynamically"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "Workspaces only on primary monitor"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
msgstr "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
@ -297,51 +310,52 @@ msgstr "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
#: ../data/org.gnome.Shell.PortalHelper.desktop.in.h:1
|
||||
msgid "Network Login"
|
||||
msgstr "Network Login"
|
||||
|
||||
|
||||
#: ../js/extensionPrefs/main.js:117
|
||||
#, javascript-format
|
||||
msgid "There was an error loading the preferences dialog for %s:"
|
||||
msgstr "אירעה שגיאה בעת טעינת דו־שיח ההעדפות עבור %s:"
|
||||
|
||||
|
||||
#: ../js/extensionPrefs/main.js:149
|
||||
msgid "GNOME Shell Extensions"
|
||||
msgstr "הרחבות GNOME Shell"
|
||||
|
||||
|
||||
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
|
||||
#: ../js/ui/components/networkAgent.js:145
|
||||
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
|
||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||
#: ../js/ui/status/network.js:916
|
||||
msgid "Cancel"
|
||||
msgstr "ביטול"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
|
||||
|
||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
|
||||
#: ../js/gdm/authPrompt.js:448
|
||||
msgid "Next"
|
||||
msgstr "הבא"
|
||||
|
||||
|
||||
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/ui/unlockDialog.js:59
|
||||
msgid "Unlock"
|
||||
msgstr "שחרור"
|
||||
|
||||
|
||||
#: ../js/gdm/authPrompt.js:214
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "כניסה"
|
||||
|
||||
|
||||
#: ../js/gdm/loginDialog.js:285
|
||||
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.
|
||||
#. manually entering the username.
|
||||
#: ../js/gdm/loginDialog.js:435
|
||||
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
|
||||
#. to clue the user in on how to login to the local network realm
|
||||
#: ../js/gdm/loginDialog.js:854
|
||||
#, javascript-format
|
||||
msgid "(e.g., user or %s)"
|
||||
@ -349,12 +363,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)
|
||||
#. (and don't even care of which one)
|
||||
#: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
|
||||
#: ../js/ui/components/networkAgent.js:289
|
||||
msgid "Username: "
|
||||
msgstr "שם משתמש:"
|
||||
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1196
|
||||
msgid "Login Window"
|
||||
msgstr "חלון כניסה"
|
||||
@ -490,16 +504,36 @@ msgstr "הוספה למועדפים"
|
||||
#: ../js/ui/appDisplay.js:1897
|
||||
msgid "Show Details"
|
||||
msgstr "הצגת פרטים"
|
||||
|
||||
|
||||
#: ../js/ui/appFavorites.js:134
|
||||
#, javascript-format
|
||||
msgid "%s has been added to your favorites."
|
||||
msgstr "%s נוסף למועדפים שלך."
|
||||
|
||||
|
||||
#: ../js/ui/appFavorites.js:168
|
||||
#, javascript-format
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "%s הוסר מהמועדפים שלך."
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:59
|
||||
msgid "Select Audio Device"
|
||||
msgstr "בחירת התקן שמע"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:69
|
||||
msgid "Sound Settings"
|
||||
msgstr "הגדרות שמע"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:78
|
||||
msgid "Headphones"
|
||||
msgstr "אזניות"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:80
|
||||
msgid "Headset"
|
||||
msgstr "אזניות עם מיקרופון"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "מיקרופון"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:19
|
||||
msgid "Change Background…"
|
||||
@ -508,13 +542,12 @@ msgstr "החלפת הרקע…"
|
||||
#: ../js/ui/backgroundMenu.js:21
|
||||
msgid "Display Settings"
|
||||
msgstr "הגדרות תצוגה"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
|
||||
msgid "Settings"
|
||||
msgstr "הגדרות"
|
||||
|
||||
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
|
||||
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
|
||||
#: ../js/ui/calendar.js:47
|
||||
msgctxt "calendar-no-work"
|
||||
msgid "06"
|
||||
@ -524,94 +557,96 @@ msgstr "65"
|
||||
#. *
|
||||
#. * NOTE: These grid abbreviations are always shown together
|
||||
#. * and in order, e.g. "S M T W T F S".
|
||||
#.
|
||||
#.
|
||||
#: ../js/ui/calendar.js:76
|
||||
msgctxt "grid sunday"
|
||||
msgid "S"
|
||||
msgstr "א"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Monday
|
||||
#. Translators: Calendar grid abbreviation for Monday
|
||||
#: ../js/ui/calendar.js:78
|
||||
msgctxt "grid monday"
|
||||
msgid "M"
|
||||
msgstr "ב"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Tuesday
|
||||
#. Translators: Calendar grid abbreviation for Tuesday
|
||||
#: ../js/ui/calendar.js:80
|
||||
msgctxt "grid tuesday"
|
||||
msgid "T"
|
||||
msgstr "ג"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Wednesday
|
||||
#. Translators: Calendar grid abbreviation for Wednesday
|
||||
#: ../js/ui/calendar.js:82
|
||||
msgctxt "grid wednesday"
|
||||
msgid "W"
|
||||
msgstr "ד"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Thursday
|
||||
#. Translators: Calendar grid abbreviation for Thursday
|
||||
#: ../js/ui/calendar.js:84
|
||||
msgctxt "grid thursday"
|
||||
msgid "T"
|
||||
msgstr "ה"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Friday
|
||||
#. Translators: Calendar grid abbreviation for Friday
|
||||
#: ../js/ui/calendar.js:86
|
||||
msgctxt "grid friday"
|
||||
msgid "F"
|
||||
msgstr "ו"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Saturday
|
||||
#. Translators: Calendar grid abbreviation for Saturday
|
||||
#: ../js/ui/calendar.js:88
|
||||
msgctxt "grid saturday"
|
||||
msgid "S"
|
||||
msgstr "ש"
|
||||
|
||||
|
||||
#: ../js/ui/calendar.js:416
|
||||
msgid "Previous month"
|
||||
msgstr "חודש קודם"
|
||||
|
||||
|
||||
#: ../js/ui/calendar.js:426
|
||||
msgid "Next month"
|
||||
msgstr "חודש הבא"
|
||||
|
||||
|
||||
#: ../js/ui/calendar.js:579
|
||||
#, no-javascript-format
|
||||
msgctxt "date day number format"
|
||||
msgid "%d"
|
||||
msgstr "%d"
|
||||
|
||||
#: ../js/ui/calendar.js:634
|
||||
msgid "Week %V"
|
||||
msgstr "שבוע %V"
|
||||
|
||||
#. Translators: Shown in calendar event list for all day events
|
||||
#. * Keep it short, best if you can use less then 10 characters
|
||||
#.
|
||||
#.
|
||||
#: ../js/ui/calendar.js:695
|
||||
msgctxt "event list time"
|
||||
msgid "All Day"
|
||||
msgstr "יום שלם"
|
||||
|
||||
#: ../js/ui/calendar.js:1291
|
||||
msgid "Clear section"
|
||||
msgstr "ניקוי מקטע"
|
||||
|
||||
|
||||
#: ../js/ui/calendar.js:821
|
||||
msgid "Events"
|
||||
msgstr "אירועים"
|
||||
|
||||
|
||||
#: ../js/ui/calendar.js:830
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, ה־%e ב%B"
|
||||
|
||||
|
||||
#: ../js/ui/calendar.js:834
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d, %Y"
|
||||
msgstr "%A, ה־%e ב%B, %Y"
|
||||
|
||||
|
||||
#: ../js/ui/calendar.js:919
|
||||
msgid "Notifications"
|
||||
msgstr "התרעות"
|
||||
|
||||
|
||||
#: ../js/ui/calendar.js:1070
|
||||
msgid "No Notifications"
|
||||
msgstr "אין התרעות"
|
||||
|
||||
|
||||
#: ../js/ui/calendar.js:1073
|
||||
msgid "No Events"
|
||||
msgstr "אין אירועים"
|
||||
@ -623,7 +658,7 @@ msgstr "חובר כונן חיצוני"
|
||||
#: ../js/ui/components/automountManager.js:102
|
||||
msgid "External drive disconnected"
|
||||
msgstr "נותק כונן חיצוני"
|
||||
|
||||
|
||||
#: ../js/ui/components/autorunManager.js:355
|
||||
#, javascript-format
|
||||
msgid "Open with %s"
|
||||
@ -929,11 +964,11 @@ msgid "Keyboard"
|
||||
msgid "Keyboard"
|
||||
msgstr "מקלדת"
|
||||
|
||||
#. translators: 'Hide' is a verb
|
||||
#. translators: 'Hide' is a verb
|
||||
#: ../js/ui/legacyTray.js:65
|
||||
msgid "Hide tray"
|
||||
msgstr "הסתרת המגש"
|
||||
|
||||
|
||||
#: ../js/ui/legacyTray.js:106
|
||||
msgid "Status Icons"
|
||||
msgstr "סמלי מצב"
|
||||
@ -961,7 +996,7 @@ msgstr "פעיל"
|
||||
msgstr "פעיל"
|
||||
|
||||
#. translators:
|
||||
#. * The device has been disabled
|
||||
#. * The device has been disabled
|
||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
|
||||
msgid "Disabled"
|
||||
msgstr "מנוטרל"
|
||||
@ -985,10 +1020,26 @@ msgstr "צפייה במקור"
|
||||
#: ../js/ui/lookingGlass.js:758
|
||||
msgid "Web Page"
|
||||
msgstr "דף אינטרנט"
|
||||
|
||||
#: ../js/ui/messageList.js:543
|
||||
msgid "Clear section"
|
||||
msgstr "ניקוי מקטע"
|
||||
|
||||
#: ../js/ui/messageTray.js:1486
|
||||
msgid "System Information"
|
||||
msgstr "פרטי המערכת"
|
||||
|
||||
#: ../js/ui/mpris.js:194
|
||||
msgid "Unknown artist"
|
||||
msgstr "אמן לא ידוע"
|
||||
|
||||
#: ../js/ui/mpris.js:195
|
||||
msgid "Unknown title"
|
||||
msgstr "כותרת לא ידועה"
|
||||
|
||||
#: ../js/ui/mpris.js:217
|
||||
msgid "Media"
|
||||
msgstr "מדיה"
|
||||
|
||||
#: ../js/ui/overview.js:84
|
||||
msgid "Undo"
|
||||
@ -1005,17 +1056,22 @@ msgstr "סקירה"
|
||||
#: ../js/ui/overview.js:244
|
||||
msgid "Type to search…"
|
||||
msgstr "יש להקליד כדי לחפש…"
|
||||
|
||||
|
||||
#: ../js/ui/panel.js:358
|
||||
msgid "Quit"
|
||||
msgstr "יציאה"
|
||||
|
||||
#. Translators: If there is no suitable word for "Activities"
|
||||
#. in your language, you can use the word for "Overview".
|
||||
#. in your language, you can use the word for "Overview".
|
||||
#: ../js/ui/panel.js:414
|
||||
msgid "Activities"
|
||||
msgstr "פעילויות"
|
||||
|
||||
|
||||
#: ../js/ui/panel.js:695
|
||||
msgctxt "System menu in the top bar"
|
||||
msgid "System"
|
||||
msgstr "מערכת"
|
||||
|
||||
#: ../js/ui/panel.js:807
|
||||
msgid "Top Bar"
|
||||
msgstr "הסרגל העליון"
|
||||
@ -1028,15 +1084,15 @@ msgstr "הסרגל העליון"
|
||||
#: ../js/ui/popupMenu.js:289
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
|
||||
#: ../js/ui/runDialog.js:71
|
||||
msgid "Enter a Command"
|
||||
msgstr "נא להזין פקודה"
|
||||
|
||||
|
||||
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
|
||||
msgid "Close"
|
||||
msgstr "סגירה"
|
||||
|
||||
|
||||
#: ../js/ui/runDialog.js:282
|
||||
msgid "Restarting…"
|
||||
msgstr "מופעל מחדש…"
|
||||
@ -1161,29 +1217,41 @@ msgstr "ניגודיות גבוהה"
|
||||
#: ../js/ui/status/accessibility.js:202
|
||||
msgid "Large Text"
|
||||
msgstr "טקסט גדול"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:47
|
||||
msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:56
|
||||
msgid "Bluetooth Settings"
|
||||
msgstr "הגדרות Bluetooth"
|
||||
|
||||
#. Translators: this is the number of connected bluetooth devices
|
||||
#. Translators: this is the number of connected bluetooth devices
|
||||
#: ../js/ui/status/bluetooth.js:136
|
||||
#, c-format
|
||||
msgid "%d Connected"
|
||||
msgid_plural "%d Connected"
|
||||
msgstr[0] "אחד מחובר"
|
||||
msgstr[1] "%d מחוברים"
|
||||
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:138
|
||||
msgid "Off"
|
||||
msgstr "כבוי"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:140
|
||||
msgid "Not In Use"
|
||||
msgstr "לא בשימוש"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "הפעלה"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "כיבוי"
|
||||
|
||||
#: ../js/ui/status/brightness.js:44
|
||||
msgid "Brightness"
|
||||
@ -1192,30 +1260,48 @@ msgstr "בהירות"
|
||||
#: ../js/ui/status/keyboard.js:736
|
||||
msgid "Show Keyboard Layout"
|
||||
msgstr "הצגת פריסת המקלדת"
|
||||
|
||||
|
||||
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
|
||||
msgid "Location Enabled"
|
||||
msgstr "איכון מאופשר"
|
||||
|
||||
|
||||
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
|
||||
msgid "Disable"
|
||||
msgstr "השבתה"
|
||||
|
||||
|
||||
#: ../js/ui/status/location.js:109
|
||||
msgid "Privacy Settings"
|
||||
msgstr "הגדרות פרטיות"
|
||||
|
||||
|
||||
#: ../js/ui/status/location.js:214
|
||||
msgid "Location In Use"
|
||||
msgstr "איכון בשימוש"
|
||||
|
||||
|
||||
#: ../js/ui/status/location.js:218
|
||||
msgid "Location Disabled"
|
||||
msgstr "איכון מושבת"
|
||||
|
||||
|
||||
#: ../js/ui/status/location.js:219
|
||||
msgid "Enable"
|
||||
msgstr "אפשור"
|
||||
|
||||
#: ../js/ui/status/location.js:426
|
||||
msgid "Deny Access"
|
||||
msgstr "מניעת גישה"
|
||||
|
||||
#: ../js/ui/status/location.js:429
|
||||
msgid "Grant Access"
|
||||
msgstr "אפשור גישה"
|
||||
|
||||
#. Translators: %s is an application name
|
||||
#: ../js/ui/status/location.js:435
|
||||
#, javascript-format
|
||||
msgid "Give %s access to your location?"
|
||||
msgstr "לתת ליישום %s גישה למיקום שלך?"
|
||||
|
||||
#: ../js/ui/status/location.js:437
|
||||
msgid "Location access can be changed at any time from the privacy settings."
|
||||
msgstr "ניתן לשנות בכל עת את הרשאות הגישה למיקום שלך מהגדרות הפרטיות."
|
||||
|
||||
#: ../js/ui/status/network.js:101
|
||||
msgid "<unknown>"
|
||||
@ -1351,10 +1437,6 @@ msgstr "בחירת רשת"
|
||||
#: ../js/ui/status/network.js:1177
|
||||
msgid "Wi-Fi Settings"
|
||||
msgstr "הגדרות רשת אלחוטית"
|
||||
|
||||
#: ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "הפעלה"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:1296
|
||||
@ -1404,32 +1486,37 @@ msgstr "ההתחברות נכשלה"
|
||||
#: ../js/ui/status/network.js:1698
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "הפעלת חיבור הרשת נכשלה"
|
||||
|
||||
|
||||
#: ../js/ui/status/power.js:61
|
||||
msgid "Power Settings"
|
||||
msgstr "הגדרות צריכת החשמל"
|
||||
|
||||
|
||||
#: ../js/ui/status/power.js:77
|
||||
msgid "Fully Charged"
|
||||
msgstr "בטעינה מלאה"
|
||||
|
||||
#. 0 is reported when UPower does not have enough data
|
||||
#. to estimate battery life
|
||||
#. to estimate battery life
|
||||
#: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
|
||||
msgid "Estimating…"
|
||||
msgstr "מתבצע שערוך…"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
#: ../js/ui/status/power.js:98
|
||||
#, javascript-format
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Remaining (%d %%)"
|
||||
msgstr "%d∶%02d נותרו (%d%%)"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
#: ../js/ui/status/power.js:103
|
||||
#, javascript-format
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Until Full (%d %%)"
|
||||
msgstr "%d:%02d עד לטעינה מלאה (%d%%)"
|
||||
|
||||
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
|
||||
#, javascript-format
|
||||
msgid "%d %%"
|
||||
msgstr "%d %%"
|
||||
|
||||
#. The menu only appears when airplane mode is on, so just
|
||||
#. statically build it as if it was on, rather than dynamically
|
||||
@ -1469,10 +1556,6 @@ msgstr "עצמת השמע השתנתה"
|
||||
#: ../js/ui/status/volume.js:162
|
||||
msgid "Volume"
|
||||
msgstr "עצמה"
|
||||
|
||||
#: ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "מיקרופון"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:67
|
||||
msgid "Log in as another user"
|
||||
@ -1594,7 +1677,7 @@ msgstr "יומן אבולושן"
|
||||
msgstr "יומן אבולושן"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound outputs on a particular device
|
||||
#. * The number of sound outputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1835
|
||||
#, c-format
|
||||
msgid "%u Output"
|
||||
@ -1603,57 +1686,60 @@ msgstr[1] "%u פלטים"
|
||||
msgstr[1] "%u פלטים"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound inputs on a particular device
|
||||
#. * The number of sound inputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1845
|
||||
#, c-format
|
||||
msgid "%u Input"
|
||||
msgid_plural "%u Inputs"
|
||||
msgstr[0] "קלט אחד"
|
||||
msgstr[1] "%u קלטים"
|
||||
|
||||
|
||||
#: ../src/gvc/gvc-mixer-control.c:2371
|
||||
msgid "System Sounds"
|
||||
msgstr "צלילי מערכת"
|
||||
|
||||
|
||||
#: ../src/main.c:381
|
||||
msgid "Print version"
|
||||
msgstr "Print version"
|
||||
|
||||
|
||||
#: ../src/main.c:387
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "המצב בו GDM יעשה שימוש לצורך מסך הכניסה"
|
||||
|
||||
|
||||
#: ../src/main.c:393
|
||||
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
|
||||
msgstr "שימוש במצב מסוים, לדוגמה: „gdm“ למסך הכניסה"
|
||||
|
||||
|
||||
#: ../src/main.c:399
|
||||
msgid "List possible modes"
|
||||
msgstr "הצגת המצבים האפשריים"
|
||||
|
||||
|
||||
#: ../src/shell-app.c:246
|
||||
msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "לא ידוע"
|
||||
|
||||
|
||||
#: ../src/shell-app.c:487
|
||||
#, c-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "אירע כשל בטעינת „%s”"
|
||||
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:730
|
||||
msgid "Passwords do not match."
|
||||
msgstr "הססמאות אינן תואמות."
|
||||
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:738
|
||||
msgid "Password cannot be blank"
|
||||
msgstr "הססמה אינה יכולה להישאר ריקה"
|
||||
|
||||
|
||||
#: ../src/shell-polkit-authentication-agent.c:353
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
|
||||
|
||||
#~ msgid "Bluetooth"
|
||||
|
||||
#~ msgid "%s is requesting access to your location."
|
||||
#~ msgstr "%s דורש גישה למיקום שלך."
|
||||
|
||||
#~ msgid "GNOME Shell (wayland compositor)"
|
||||
#~ msgstr "GNOME Shell (מסדר wayland)"
|
||||
|
||||
# javascript-format
|
||||
@ -1661,9 +1747,6 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
|
||||
#~ msgid_plural "%d Connected Devices"
|
||||
#~ msgstr[0] "התקן אחד מחובר"
|
||||
#~ msgstr[1] "%d התקנים מחוברים"
|
||||
|
||||
#~ msgid "Off"
|
||||
#~ msgstr "כבוי"
|
||||
|
||||
#~ msgid "Authentication required"
|
||||
#~ msgstr "נדרש אימות"
|
||||
@ -1810,9 +1893,6 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
|
||||
|
||||
#~ msgid "View account"
|
||||
#~ msgstr "צפייה בחשבון"
|
||||
|
||||
#~ msgid "Unknown reason"
|
||||
#~ msgstr "סיבה לא ידועה"
|
||||
|
||||
#~ msgid "Show the message list"
|
||||
#~ msgstr "הצגת רשימת הודעות"
|
||||
@ -2006,9 +2086,6 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
|
||||
|
||||
#~ msgid "Device %s wants access to the service '%s'"
|
||||
#~ msgstr "ההתקן %s מעוניין לגשת אל השירות '%s'"
|
||||
|
||||
#~ msgid "Always grant access"
|
||||
#~ msgstr "תמיד להעניק גישה"
|
||||
|
||||
#~ msgid "Grant this time only"
|
||||
#~ msgstr "הענקת גישה הפעם בלבד"
|
||||
@ -2176,9 +2253,6 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
|
||||
|
||||
#~ msgid "Visibility"
|
||||
#~ msgstr "הצגה"
|
||||
|
||||
#~ msgid "Send Files to Device…"
|
||||
#~ msgstr "שליחת קובץ להתקן…"
|
||||
|
||||
#~ msgid "Set Up a New Device…"
|
||||
#~ msgstr "הגדרת התקן חדש…"
|
||||
@ -2257,10 +2331,6 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
|
||||
#~ msgstr[0] "דקה אחת נותרה"
|
||||
#~ msgstr[1] "%d דקות נותרו"
|
||||
#~ msgstr[2] "שתי דקות נותרו"
|
||||
|
||||
#~ msgctxt "percent of battery remaining"
|
||||
#~ msgid "%d%%"
|
||||
#~ msgstr "%d%%"
|
||||
|
||||
#~ msgid "AC Adapter"
|
||||
#~ msgstr "מתאם חשמל"
|
||||
|
210
po/id.po
210
po/id.po
@ -7,11 +7,11 @@
|
||||
# Wibiharto <wibinem@yahoo.com>, 2011.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell master\n"
|
||||
"Project-Id-Version: gnome-shell gnome-3-18\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||
"shell&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2015-09-19 08:21+0000\n"
|
||||
"PO-Revision-Date: 2015-09-19 19:34+0700\n"
|
||||
"POT-Creation-Date: 2016-01-02 10:15+0000\n"
|
||||
"PO-Revision-Date: 2016-01-02 19:12+0700\n"
|
||||
"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
|
||||
"Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n"
|
||||
"Language: id\n"
|
||||
@ -20,7 +20,7 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Generator: Poedit 1.6.10\n"
|
||||
"X-Generator: Poedit 1.8.4\n"
|
||||
|
||||
#: ../data/50-gnome-shell-system.xml.in.h:1
|
||||
msgid "System"
|
||||
@ -336,25 +336,33 @@ msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Masuk"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:281
|
||||
#: ../js/gdm/loginDialog.js:285
|
||||
msgid "Choose Session"
|
||||
msgstr "Pilih Sesi"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:431
|
||||
#. 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:435
|
||||
msgid "Not listed?"
|
||||
msgstr "Tak masuk daftar?"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:850
|
||||
#. 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:854
|
||||
#, javascript-format
|
||||
msgid "(e.g., user or %s)"
|
||||
msgstr "(cth., pengguna dari %s)"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271
|
||||
#. 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:859 ../js/ui/components/networkAgent.js:271
|
||||
#: ../js/ui/components/networkAgent.js:289
|
||||
msgid "Username: "
|
||||
msgstr "Nama pengguna: "
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1184
|
||||
#: ../js/gdm/loginDialog.js:1196
|
||||
msgid "Login Window"
|
||||
msgstr "Jendela Log Masuk"
|
||||
|
||||
@ -362,6 +370,11 @@ msgstr "Jendela Log Masuk"
|
||||
msgid "Authentication error"
|
||||
msgstr "Galat otentikasi"
|
||||
|
||||
#. We don't show fingerprint messages directly since it's
|
||||
#. not the main auth service. Instead we use the messages
|
||||
#. 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:473
|
||||
msgid "(or swipe finger)"
|
||||
msgstr "(atau gesekkan jari)"
|
||||
@ -370,6 +383,8 @@ msgstr "(atau gesekkan jari)"
|
||||
msgid "Command not found"
|
||||
msgstr "Perintah tidak ditemukan"
|
||||
|
||||
#. Replace "Error invoking GLib.shell_parse_argv: " with
|
||||
#. something nicer
|
||||
#: ../js/misc/util.js:152
|
||||
msgid "Could not parse command:"
|
||||
msgstr "Tak dapat mengurai perintah:"
|
||||
@ -379,70 +394,78 @@ msgstr "Tak dapat mengurai perintah:"
|
||||
msgid "Execution of “%s” failed:"
|
||||
msgstr "Eksekusi \"%s\" gagal:"
|
||||
|
||||
#. Translators: Time in 24h format */
|
||||
#. Translators: Time in 24h format
|
||||
#: ../js/misc/util.js:191
|
||||
msgid "%H∶%M"
|
||||
msgstr "%H∶%M"
|
||||
|
||||
#. Translators: this is the word "Yesterday" followed by a
|
||||
#. time string in 24h format. i.e. "Yesterday, 14:30" */
|
||||
#. time string in 24h format. i.e. "Yesterday, 14:30"
|
||||
#: ../js/misc/util.js:197
|
||||
#, no-c-format
|
||||
msgid "Yesterday, %H∶%M"
|
||||
msgstr "Kemarin, %H:%M"
|
||||
|
||||
#. Translators: this is the week day name followed by a time
|
||||
#. string in 24h format. i.e. "Monday, 14:30" */
|
||||
#. string in 24h format. i.e. "Monday, 14:30"
|
||||
#: ../js/misc/util.js:203
|
||||
#, no-c-format
|
||||
msgid "%A, %H∶%M"
|
||||
msgstr "%A, %H∶%M"
|
||||
|
||||
#. Translators: this is the month name and day number
|
||||
#. followed by a time string in 24h format.
|
||||
#. i.e. "May 25, 14:30" */
|
||||
#. i.e. "May 25, 14:30"
|
||||
#: ../js/misc/util.js:209
|
||||
#, no-c-format
|
||||
msgid "%B %d, %H∶%M"
|
||||
msgstr "%d %B, %H∶%M"
|
||||
|
||||
#. Translators: this is the month name, day number, year
|
||||
#. number followed by a time string in 24h format.
|
||||
#. i.e. "May 25 2012, 14:30" */
|
||||
#. i.e. "May 25 2012, 14:30"
|
||||
#: ../js/misc/util.js:215
|
||||
#, no-c-format
|
||||
msgid "%B %d %Y, %H∶%M"
|
||||
msgstr "%d %B %Y, %H∶%M"
|
||||
|
||||
#. Translators: Time in 12h format */
|
||||
#. Translators: Time in 12h format
|
||||
#: ../js/misc/util.js:220
|
||||
msgid "%l∶%M %p"
|
||||
msgstr "%H∶%M"
|
||||
|
||||
#. Translators: this is the word "Yesterday" followed by a
|
||||
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */
|
||||
#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
|
||||
#: ../js/misc/util.js:226
|
||||
#, no-c-format
|
||||
msgid "Yesterday, %l∶%M %p"
|
||||
msgstr "Kemarin, %l∶%M %p"
|
||||
|
||||
#. Translators: this is the week day name followed by a time
|
||||
#. string in 12h format. i.e. "Monday, 2:30 pm" */
|
||||
#. string in 12h format. i.e. "Monday, 2:30 pm"
|
||||
#: ../js/misc/util.js:232
|
||||
#, no-c-format
|
||||
msgid "%A, %l∶%M %p"
|
||||
msgstr "%A, %l∶%M %p"
|
||||
|
||||
#. Translators: this is the month name and day number
|
||||
#. followed by a time string in 12h format.
|
||||
#. i.e. "May 25, 2:30 pm" */
|
||||
#. i.e. "May 25, 2:30 pm"
|
||||
#: ../js/misc/util.js:238
|
||||
#, no-c-format
|
||||
msgid "%B %d, %l∶%M %p"
|
||||
msgstr "%d %B, %l∶%M %p"
|
||||
|
||||
#. Translators: this is the month name, day number, year
|
||||
#. number followed by a time string in 12h format.
|
||||
#. i.e. "May 25 2012, 2:30 pm"*/
|
||||
#. i.e. "May 25 2012, 2:30 pm"
|
||||
#: ../js/misc/util.js:244
|
||||
#, no-c-format
|
||||
msgid "%B %d %Y, %l∶%M %p"
|
||||
msgstr "%d %B %Y, %l∶%M %p"
|
||||
|
||||
#. TRANSLATORS: this is the title of the wifi captive portal login
|
||||
#. * window, until we know the title of the actual login page */
|
||||
#. * window, until we know the title of the actual login page
|
||||
#: ../js/portalHelper/main.js:85
|
||||
msgid "Web Authentication Redirect"
|
||||
msgstr "Pengalihan Otentikasi Web"
|
||||
@ -493,12 +516,11 @@ msgstr "Ubah Latar…"
|
||||
msgid "Display Settings"
|
||||
msgstr "Pengaturan Tampilan"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
|
||||
#: ../js/ui/status/system.js:366
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
|
||||
msgid "Settings"
|
||||
msgstr "Pengaturan"
|
||||
|
||||
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). */
|
||||
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
|
||||
#: ../js/ui/calendar.js:55
|
||||
msgctxt "calendar-no-work"
|
||||
msgid "06"
|
||||
@ -508,43 +530,43 @@ msgstr "06"
|
||||
#. *
|
||||
#. * NOTE: These grid abbreviations are always shown together
|
||||
#. * and in order, e.g. "S M T W T F S".
|
||||
#. */
|
||||
#.
|
||||
#: ../js/ui/calendar.js:84
|
||||
msgctxt "grid sunday"
|
||||
msgid "S"
|
||||
msgstr "M"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Monday */
|
||||
#. Translators: Calendar grid abbreviation for Monday
|
||||
#: ../js/ui/calendar.js:86
|
||||
msgctxt "grid monday"
|
||||
msgid "M"
|
||||
msgstr "S"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Tuesday */
|
||||
#. Translators: Calendar grid abbreviation for Tuesday
|
||||
#: ../js/ui/calendar.js:88
|
||||
msgctxt "grid tuesday"
|
||||
msgid "T"
|
||||
msgstr "S"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Wednesday */
|
||||
#. Translators: Calendar grid abbreviation for Wednesday
|
||||
#: ../js/ui/calendar.js:90
|
||||
msgctxt "grid wednesday"
|
||||
msgid "W"
|
||||
msgstr "R"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Thursday */
|
||||
#. Translators: Calendar grid abbreviation for Thursday
|
||||
#: ../js/ui/calendar.js:92
|
||||
msgctxt "grid thursday"
|
||||
msgid "T"
|
||||
msgstr "K"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Friday */
|
||||
#. Translators: Calendar grid abbreviation for Friday
|
||||
#: ../js/ui/calendar.js:94
|
||||
msgctxt "grid friday"
|
||||
msgid "F"
|
||||
msgstr "J"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Saturday */
|
||||
#. Translators: Calendar grid abbreviation for Saturday
|
||||
#: ../js/ui/calendar.js:96
|
||||
msgctxt "grid saturday"
|
||||
msgid "S"
|
||||
@ -564,39 +586,39 @@ msgstr "Minggu %V"
|
||||
|
||||
#. Translators: Shown in calendar event list for all day events
|
||||
#. * Keep it short, best if you can use less then 10 characters
|
||||
#. */
|
||||
#.
|
||||
#: ../js/ui/calendar.js:1188
|
||||
msgctxt "event list time"
|
||||
msgid "All Day"
|
||||
msgstr "Sepanjang Hari"
|
||||
|
||||
#: ../js/ui/calendar.js:1291
|
||||
#: ../js/ui/calendar.js:1295
|
||||
msgid "Clear section"
|
||||
msgstr "Bersihkan seksi"
|
||||
|
||||
#: ../js/ui/calendar.js:1518
|
||||
#: ../js/ui/calendar.js:1522
|
||||
msgid "Events"
|
||||
msgstr "Kejadian"
|
||||
|
||||
#: ../js/ui/calendar.js:1527
|
||||
#: ../js/ui/calendar.js:1531
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, %d %B"
|
||||
|
||||
#: ../js/ui/calendar.js:1531
|
||||
#: ../js/ui/calendar.js:1535
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d, %Y"
|
||||
msgstr "%A, %d %B %Y"
|
||||
|
||||
#: ../js/ui/calendar.js:1616
|
||||
#: ../js/ui/calendar.js:1620
|
||||
msgid "Notifications"
|
||||
msgstr "Pemberitahuan"
|
||||
|
||||
#: ../js/ui/calendar.js:1767
|
||||
#: ../js/ui/calendar.js:1771
|
||||
msgid "No Notifications"
|
||||
msgstr "Tak Ada Pemberitahuan"
|
||||
|
||||
#: ../js/ui/calendar.js:1770
|
||||
#: ../js/ui/calendar.js:1774
|
||||
msgid "No Events"
|
||||
msgstr "Tak Ada Kejadian"
|
||||
|
||||
@ -608,7 +630,7 @@ msgstr "Drive eksternal tersambung"
|
||||
msgid "External drive disconnected"
|
||||
msgstr "Drive eksternal terputus"
|
||||
|
||||
#: ../js/ui/components/autorunManager.js:354
|
||||
#: ../js/ui/components/autorunManager.js:351
|
||||
#, javascript-format
|
||||
msgid "Open with %s"
|
||||
msgstr "Buka dengan %s"
|
||||
@ -626,6 +648,7 @@ msgstr "Ketik lagi:"
|
||||
msgid "Connect"
|
||||
msgstr "Sambung"
|
||||
|
||||
#. Cisco LEAP
|
||||
#: ../js/ui/components/networkAgent.js:233
|
||||
#: ../js/ui/components/networkAgent.js:245
|
||||
#: ../js/ui/components/networkAgent.js:273
|
||||
@ -634,6 +657,7 @@ msgstr "Sambung"
|
||||
msgid "Password: "
|
||||
msgstr "Sandi: "
|
||||
|
||||
#. static WEP
|
||||
#: ../js/ui/components/networkAgent.js:238
|
||||
msgid "Key: "
|
||||
msgstr "Tombol: "
|
||||
@ -725,13 +749,13 @@ msgstr "Otentikasi"
|
||||
#. Translators: "that didn't work" refers to the fact that the
|
||||
#. * requested authentication was not gained; this can happen
|
||||
#. * because of an authentication error (like invalid password),
|
||||
#. * for instance. */
|
||||
#. * for instance.
|
||||
#: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383
|
||||
msgid "Sorry, that didn't work. Please try again."
|
||||
msgstr "Maaf, tidak berhasil. Silakan coba lagi."
|
||||
|
||||
#. Translators: this is the other person changing their old IM name to their new
|
||||
#. IM name. */
|
||||
#. IM name.
|
||||
#: ../js/ui/components/telepathyClient.js:759
|
||||
#, javascript-format
|
||||
msgid "%s is now known as %s"
|
||||
@ -745,13 +769,15 @@ msgstr "Jendela"
|
||||
msgid "Show Applications"
|
||||
msgstr "Tampilkan Aplikasi"
|
||||
|
||||
#. Translators: this is the name of the dock/favorites area on
|
||||
#. the left of the overview
|
||||
#: ../js/ui/dash.js:449
|
||||
msgid "Dash"
|
||||
msgstr "Dash"
|
||||
|
||||
#. Translators: This is the date format to use when the calendar popup is
|
||||
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
|
||||
#. */
|
||||
#.
|
||||
#: ../js/ui/dateMenu.js:73
|
||||
msgid "%B %e %Y"
|
||||
msgstr "%e %B %Y"
|
||||
@ -759,7 +785,7 @@ msgstr "%e %B %Y"
|
||||
#. Translators: This is the accessible name of the date button shown
|
||||
#. * below the time in the shell; it should combine the weekday and the
|
||||
#. * date, e.g. "Tuesday February 17 2015".
|
||||
#. */
|
||||
#.
|
||||
#: ../js/ui/dateMenu.js:80
|
||||
msgid "%A %B %e %Y"
|
||||
msgstr "%A %e %B %Y"
|
||||
@ -884,13 +910,13 @@ msgstr "Beberapa aplikasi sedang sibuk atau belum disimpan perubahannya."
|
||||
msgid "Other users are logged in."
|
||||
msgstr "Pengguna lain sedang log masuk."
|
||||
|
||||
#. Translators: Remote here refers to a remote session, like a ssh login */
|
||||
#. Translators: Remote here refers to a remote session, like a ssh login
|
||||
#: ../js/ui/endSessionDialog.js:640
|
||||
#, javascript-format
|
||||
msgid "%s (remote)"
|
||||
msgstr "%s (jarak jauh)"
|
||||
|
||||
#. Translators: Console here refers to a tty like a VT console */
|
||||
#. Translators: Console here refers to a tty like a VT console
|
||||
#: ../js/ui/endSessionDialog.js:643
|
||||
#, javascript-format
|
||||
msgid "%s (console)"
|
||||
@ -909,7 +935,7 @@ msgstr "Unduh dan pasang \"%s\" dari extensions.gnome.org?"
|
||||
msgid "Keyboard"
|
||||
msgstr "Papan Ketik"
|
||||
|
||||
#. translators: 'Hide' is a verb */
|
||||
#. translators: 'Hide' is a verb
|
||||
#: ../js/ui/legacyTray.js:66
|
||||
msgid "Hide tray"
|
||||
msgstr "Sembunyikan baki"
|
||||
@ -922,7 +948,7 @@ msgstr "Ikon Status"
|
||||
msgid "No extensions installed"
|
||||
msgstr "Tak ada ekstensi terpasang"
|
||||
|
||||
#. Translators: argument is an extension UUID. */
|
||||
#. Translators: argument is an extension UUID.
|
||||
#: ../js/ui/lookingGlass.js:697
|
||||
#, javascript-format
|
||||
msgid "%s has not emitted any errors."
|
||||
@ -942,7 +968,7 @@ msgstr "Diaktifkan"
|
||||
|
||||
#. translators:
|
||||
#. * The device has been disabled
|
||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
|
||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
|
||||
msgid "Disabled"
|
||||
msgstr "Dinonaktifkan"
|
||||
|
||||
@ -981,26 +1007,36 @@ msgstr "Gambaran"
|
||||
#. Translators: this is the text displayed
|
||||
#. in the search entry when no search is
|
||||
#. active; it should not exceed ~30
|
||||
#. characters. */
|
||||
#. characters.
|
||||
#: ../js/ui/overview.js:244
|
||||
msgid "Type to search…"
|
||||
msgstr "Ketik untuk mencari…"
|
||||
|
||||
#: ../js/ui/panel.js:352
|
||||
#: ../js/ui/panel.js:358
|
||||
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:404
|
||||
#. in your language, you can use the word for "Overview".
|
||||
#: ../js/ui/panel.js:414
|
||||
msgid "Activities"
|
||||
msgstr "Aktivitas"
|
||||
|
||||
#: ../js/ui/panel.js:754
|
||||
#: ../js/ui/panel.js:695
|
||||
msgctxt "System menu in the top bar"
|
||||
msgid "System"
|
||||
msgstr "Sistem"
|
||||
|
||||
#: ../js/ui/panel.js:807
|
||||
msgid "Top Bar"
|
||||
msgstr "Bar Atas"
|
||||
|
||||
# Dirgita: Hayo, enaknya pake I/O atau ON/OFF?^^
|
||||
#. Translators: this MUST be either "toggle-switch-us"
|
||||
#. (for toggle switches containing the English words
|
||||
#. "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:289
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
@ -1018,7 +1054,7 @@ msgid "Restarting…"
|
||||
msgstr "Memulai ulang..."
|
||||
|
||||
#. Translators: This is a time format for a date in
|
||||
#. long format */
|
||||
#. long format
|
||||
#: ../js/ui/screenShield.js:85
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, %d %B"
|
||||
@ -1043,6 +1079,13 @@ msgstr "Kunci"
|
||||
msgid "GNOME needs to lock the screen"
|
||||
msgstr "GNOME perlu mengunci layar"
|
||||
|
||||
#. We could not become modal, so we can't activate the
|
||||
#. screenshield. The user is probably very upset at this
|
||||
#. point, but any application using global grabs is broken
|
||||
#. Just tell him to stop using this app
|
||||
#.
|
||||
#. XXX: another option is to kick the user into the gdm login
|
||||
#. screen, where we're not affected by grabs
|
||||
#: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271
|
||||
msgid "Unable to lock"
|
||||
msgstr "Tak bisa mengunci"
|
||||
@ -1138,7 +1181,7 @@ msgstr "Matikan"
|
||||
msgid "Bluetooth Settings"
|
||||
msgstr "Pengaturan Bluetooth"
|
||||
|
||||
#. Translators: this is the number of connected bluetooth devices */
|
||||
#. Translators: this is the number of connected bluetooth devices
|
||||
#: ../js/ui/status/bluetooth.js:105
|
||||
#, javascript-format
|
||||
msgid "%d Connected"
|
||||
@ -1185,13 +1228,13 @@ msgstr "Fungsikan"
|
||||
msgid "<unknown>"
|
||||
msgstr "<tak dikenal>"
|
||||
|
||||
#. Translators: %s is a network identifier */
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
|
||||
#, javascript-format
|
||||
msgid "%s Off"
|
||||
msgstr "%s Mati"
|
||||
|
||||
#. Translators: %s is a network identifier */
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:454
|
||||
#, javascript-format
|
||||
msgid "%s Connected"
|
||||
@ -1199,45 +1242,45 @@ msgstr "%s Tersambung"
|
||||
|
||||
#. Translators: this is for network devices that are physically present but are not
|
||||
#. under NetworkManager's control (and thus cannot be used in the menu);
|
||||
#. %s is a network identifier */
|
||||
#. %s is a network identifier
|
||||
#: ../js/ui/status/network.js:459
|
||||
#, javascript-format
|
||||
msgid "%s Unmanaged"
|
||||
msgstr "%s Tak Dikelola"
|
||||
|
||||
#. Translators: %s is a network identifier */
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:462
|
||||
#, javascript-format
|
||||
msgid "%s Disconnecting"
|
||||
msgstr "%s Memutus"
|
||||
|
||||
#. Translators: %s is a network identifier */
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
|
||||
#, javascript-format
|
||||
msgid "%s Connecting"
|
||||
msgstr "%s Menyambung"
|
||||
|
||||
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier */
|
||||
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
|
||||
#: ../js/ui/status/network.js:472
|
||||
#, javascript-format
|
||||
msgid "%s Requires Authentication"
|
||||
msgstr "%s Memerlukan Otentikasi"
|
||||
|
||||
#. Translators: this is for devices that require some kind of firmware or kernel
|
||||
#. module, which is missing; %s is a network identifier */
|
||||
#. module, which is missing; %s is a network identifier
|
||||
#: ../js/ui/status/network.js:480
|
||||
#, javascript-format
|
||||
msgid "Firmware Missing For %s"
|
||||
msgstr "Firmware Hilang Untuk %s"
|
||||
|
||||
#. Translators: this is for a network device that cannot be activated (for example it
|
||||
#. is disabled by rfkill, or it has no coverage; %s is a network identifier */
|
||||
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
|
||||
#: ../js/ui/status/network.js:484
|
||||
#, javascript-format
|
||||
msgid "%s Unavailable"
|
||||
msgstr "%s Tak tersedia"
|
||||
|
||||
#. Translators: %s is a network identifier */
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:487
|
||||
#, javascript-format
|
||||
msgid "%s Connection Failed"
|
||||
@ -1251,14 +1294,14 @@ msgstr "Pengaturan Kabel"
|
||||
msgid "Mobile Broadband Settings"
|
||||
msgstr "Pengaturan Data Seluler"
|
||||
|
||||
#. Translators: %s is a network identifier */
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
|
||||
#, javascript-format
|
||||
msgid "%s Hardware Disabled"
|
||||
msgstr "%s Perangkat Keras Dinonaktifkan"
|
||||
|
||||
#. Translators: this is for a network device that cannot be activated
|
||||
#. because it's disabled by rfkill (airplane mode); %s is a network identifier */
|
||||
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
|
||||
#: ../js/ui/status/network.js:592
|
||||
#, javascript-format
|
||||
msgid "%s Disabled"
|
||||
@ -1320,13 +1363,13 @@ msgstr "Pengaturan Wi-Fi"
|
||||
msgid "Turn On"
|
||||
msgstr "Nyalakan"
|
||||
|
||||
#. Translators: %s is a network identifier */
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:1296
|
||||
#, javascript-format
|
||||
msgid "%s Hotspot Active"
|
||||
msgstr "%s Hotspot Aktif"
|
||||
|
||||
#. Translators: %s is a network identifier */
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:1311
|
||||
#, javascript-format
|
||||
msgid "%s Not Connected"
|
||||
@ -1336,7 +1379,7 @@ msgstr "%s Tak Tersambung"
|
||||
msgid "connecting..."
|
||||
msgstr "menghubungi..."
|
||||
|
||||
#. Translators: this is for network connections that require some kind of key or password */
|
||||
#. Translators: this is for network connections that require some kind of key or password
|
||||
#: ../js/ui/status/network.js:1414
|
||||
msgid "authentication required"
|
||||
msgstr "diperlukan otentikasi"
|
||||
@ -1377,20 +1420,27 @@ msgstr "Pengaturan Daya"
|
||||
msgid "Fully Charged"
|
||||
msgstr "Terisi Penuh"
|
||||
|
||||
#. 0 is reported when UPower does not have enough data
|
||||
#. to estimate battery life
|
||||
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
|
||||
msgid "Estimating…"
|
||||
msgstr "Memperkirakan…"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
#: ../js/ui/status/power.js:86
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Remaining (%d%%)"
|
||||
msgstr "%d:%02d Tersisa (%d%%)"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
#: ../js/ui/status/power.js:91
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Until Full (%d%%)"
|
||||
msgstr "%d:%02d Sampai Penuh (%d%%)"
|
||||
|
||||
#. 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.
|
||||
#: ../js/ui/status/rfkill.js:88
|
||||
msgid "Airplane Mode On"
|
||||
msgstr "Mode Pesawat Terbang Aktif"
|
||||
@ -1458,7 +1508,7 @@ msgstr "Apakah Anda ingin mempertahankan pengaturan tampilan ini?"
|
||||
|
||||
#. Translators: this and the following message should be limited in lenght,
|
||||
#. to avoid ellipsizing the labels.
|
||||
#. */
|
||||
#.
|
||||
#: ../js/ui/windowManager.js:82
|
||||
msgid "Revert Settings"
|
||||
msgstr "Balikkan Tatanan"
|
||||
@ -1474,7 +1524,7 @@ msgid_plural "Settings changes will revert in %d seconds"
|
||||
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. */
|
||||
#. * the width of the window and the second is the height.
|
||||
#: ../js/ui/windowManager.js:658
|
||||
#, javascript-format
|
||||
msgid "%d x %d"
|
||||
@ -1550,7 +1600,7 @@ msgstr "Evolution Kalender"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound outputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1837
|
||||
#: ../src/gvc/gvc-mixer-control.c:1835
|
||||
#, c-format
|
||||
msgid "%u Output"
|
||||
msgid_plural "%u Outputs"
|
||||
@ -1558,38 +1608,38 @@ msgstr[0] "%u Keluaran"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound inputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1847
|
||||
#: ../src/gvc/gvc-mixer-control.c:1845
|
||||
#, c-format
|
||||
msgid "%u Input"
|
||||
msgid_plural "%u Inputs"
|
||||
msgstr[0] "%u Masukan"
|
||||
|
||||
#: ../src/gvc/gvc-mixer-control.c:2373
|
||||
#: ../src/gvc/gvc-mixer-control.c:2371
|
||||
msgid "System Sounds"
|
||||
msgstr "Suara Sistem"
|
||||
|
||||
#: ../src/main.c:373
|
||||
#: ../src/main.c:381
|
||||
msgid "Print version"
|
||||
msgstr "Versi Cetak"
|
||||
|
||||
#: ../src/main.c:379
|
||||
#: ../src/main.c:387
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "Mode yang dipakai oleh layar log masuk GDM"
|
||||
|
||||
#: ../src/main.c:385
|
||||
#: ../src/main.c:393
|
||||
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
|
||||
msgstr "Menggunakan mode tertentu, mis. \"gdm\" untuk layar masuk"
|
||||
|
||||
#: ../src/main.c:391
|
||||
#: ../src/main.c:399
|
||||
msgid "List possible modes"
|
||||
msgstr "Menampilkan mode yang mungkin"
|
||||
|
||||
#: ../src/shell-app.c:239
|
||||
#: ../src/shell-app.c:246
|
||||
msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "Tak dikenal"
|
||||
|
||||
#: ../src/shell-app.c:480
|
||||
#: ../src/shell-app.c:487
|
||||
#, c-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Gagal meluncurkan \"%s\""
|
||||
|
377
po/lv.po
377
po/lv.po
@ -5,14 +5,14 @@
|
||||
# Rudolfs <rudolfs.mazurs@gmail.com>, 2011.
|
||||
# Rūdofls Mazurs <rudolfs.mazurs@gmail.com>, 2011, 2012, 2013, 2014.
|
||||
# Pēteris Krišjānis <pecisk@gmail.com>, 2011.
|
||||
# Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>, 2014, 2015.
|
||||
# Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>, 2014, 2015, 2016.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||
"shell&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2015-09-20 08:21+0000\n"
|
||||
"PO-Revision-Date: 2015-09-20 22:00+0300\n"
|
||||
"POT-Creation-Date: 2016-03-20 10:24+0000\n"
|
||||
"PO-Revision-Date: 2016-03-20 21:26+0200\n"
|
||||
"Last-Translator: Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>\n"
|
||||
"Language-Team: Latvian <lata-l10n@googlegroups.com>\n"
|
||||
"Language: lv\n"
|
||||
@ -21,7 +21,7 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
|
||||
"2);\n"
|
||||
"X-Generator: Lokalize 1.5\n"
|
||||
"X-Generator: Lokalize 2.0\n"
|
||||
|
||||
#: ../data/50-gnome-shell-system.xml.in.h:1
|
||||
msgid "System"
|
||||
@ -47,15 +47,6 @@ msgstr "Rādīt visas lietotnes"
|
||||
msgid "Open the application menu"
|
||||
msgstr "Atvērt lietotnes izvēlni"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "GNOME čaula"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:2
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Logu pārvaldība un lietotņu palaišana"
|
||||
|
||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
||||
msgid "GNOME Shell Extension Preferences"
|
||||
msgstr "GNOME Shell paplašinājumu iestatījumi"
|
||||
@ -64,9 +55,13 @@ msgstr "GNOME Shell paplašinājumu iestatījumi"
|
||||
msgid "Configure GNOME Shell Extensions"
|
||||
msgstr "Konfigurēt GNOME Shell paplašinājumus"
|
||||
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
|
||||
msgid "GNOME Shell (wayland compositor)"
|
||||
msgstr "GNOME čaula (wayland kompozitors)"
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "GNOME čaula"
|
||||
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Logu pārvaldība un lietotņu palaišana"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
|
||||
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
||||
@ -171,75 +166,93 @@ msgstr ""
|
||||
"noklusējuma stāvokli."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
msgid ""
|
||||
"Whether the default Bluetooth adapter had set up devices associated to it"
|
||||
msgstr ""
|
||||
"Vai noklusējuma Bluetooth adapteram ir iestatītas ar to asociētas ierīces"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
msgid ""
|
||||
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
|
||||
"powered, or if there were devices set up associated with the default "
|
||||
"adapter. This will be reset if the default adapter is ever seen not to have "
|
||||
"devices associated to it."
|
||||
msgstr ""
|
||||
"Čaula rādīs Bluetooth izvēlnes vienumu tikai tad, ja Bluetooth adapters ir "
|
||||
"ieslēgts vai ja ir iestatītas ierīces, kas i saistītas ar noklusējuma "
|
||||
"adapteri. Tas tiks atstatīts, ja noklusējuma adapters jebkad tiks redzēts "
|
||||
"bez ar to saistītām ierīcēm."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "Kalendārā rādīt nedēļas datumu"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgstr "Ja patiess, kalendārā rādīt ISO nedēļas datumus."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
msgid "Keybinding to open the application menu"
|
||||
msgstr "Taustiņu sasaiste, kas atver lietotnes izvēlni"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
msgid "Keybinding to open the application menu."
|
||||
msgstr "Taustiņu sasaiste, kas atver lietotnes izvēlni."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
msgid "Keybinding to open the \"Show Applications\" view"
|
||||
msgstr "Taustiņu sasaiste, kas atver “Rādīt lietotnes” skatu"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
msgid ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
msgstr ""
|
||||
"Taustiņu sasaiste, kas atver “Rādīt lietotnes” aktivitāšu pārskata skatu."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
msgid "Keybinding to open the overview"
|
||||
msgstr "Taustiņu sasaiste, kas atver pārskatu"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
msgid "Keybinding to open the Activities Overview."
|
||||
msgstr "Taustiņu sasaiste, kas atver aktivitāšu pārskatu."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
msgid "Keybinding to toggle the visibility of the notification list"
|
||||
msgstr "Taustiņu sasaiste, kas pārslēdz paziņojumu saraksta redzamību"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
msgid "Keybinding to toggle the visibility of the notification list."
|
||||
msgstr "Taustiņu sasaiste, kas pārslēdz paziņojumu saraksta redzamību."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
msgid "Keybinding to focus the active notification"
|
||||
msgstr "Taustiņu sasaiste, kas fokusē aktīvo paziņojumu"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
msgid "Keybinding to focus the active notification."
|
||||
msgstr "Taustiņu sasaiste, kas fokusē aktīvo paziņojumu."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
msgid ""
|
||||
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
|
||||
msgstr ""
|
||||
"Taustiņu sasaiste, kas pauzē un turpina visus tvīnus (tweens) atkļūdošanas "
|
||||
"nolūkiem"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
msgid "Which keyboard to use"
|
||||
msgstr "Kuru tastatūru izmantot"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
msgid "The type of keyboard to use."
|
||||
msgstr "Izmantojamās tastatūras tips."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
msgid "Limit switcher to current workspace."
|
||||
msgstr "Ierobežot pārslēdzēju uz pašreizējo darbvietu."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid ""
|
||||
"If true, only applications that have windows on the current workspace are "
|
||||
"shown in the switcher. Otherwise, all applications are included."
|
||||
@ -247,11 +260,11 @@ msgstr ""
|
||||
"Ja patiess, pārslēdzējā tiek rādītas tikai lietotnes, kas ir pašreizējā "
|
||||
"darbvietā. Citāti tiek iekļautas visas lietotnes."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid "The application icon mode."
|
||||
msgstr "Lietotnes ikonas režīms."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
@ -261,7 +274,7 @@ msgstr ""
|
||||
"only” (rāda loga sīktēlu), “app-icon-only” (rāda tikai lietotnes ikonu) vai "
|
||||
"“both” (abi)."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
msgid ""
|
||||
"If true, only windows from the current workspace are shown in the switcher. "
|
||||
"Otherwise, all windows are included."
|
||||
@ -269,28 +282,28 @@ msgstr ""
|
||||
"Ja patiess, pārslēdzējā tiek rādītas tikai lietotnes no pašreizējās "
|
||||
"darbvietas. Citāti tiek iekļautas visas lietotnes."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "Pievienot modālo dialoglodziņu vecāka logam"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr "Šī atslēga pārraksta org.gnome.mutter atslēgu, darbinot GNOME čaulu."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr "Aktivēt logu sānisko izklāšanu, kad to nomet uz ekrāna malas"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Darbvietas tiek pārvaldītas dinamiski"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "Darbvietas tikai uz galvenā monitora"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
msgstr "Peles režīmā aizkavēt fokusa izmaiņas, līdz rādītājs pārstāj kustēties"
|
||||
|
||||
@ -298,51 +311,52 @@ msgstr "Peles režīmā aizkavēt fokusa izmaiņas, līdz rādītājs pārstāj
|
||||
msgid "Network Login"
|
||||
msgstr "Tīkla ierakstīšanās"
|
||||
|
||||
#: ../js/extensionPrefs/main.js:122
|
||||
#: ../js/extensionPrefs/main.js:117
|
||||
#, javascript-format
|
||||
msgid "There was an error loading the preferences dialog for %s:"
|
||||
msgstr "Ielādējot %s iestatījumu dialogu, gadījās kļūda:"
|
||||
|
||||
#: ../js/extensionPrefs/main.js:154
|
||||
#: ../js/extensionPrefs/main.js:149
|
||||
msgid "GNOME Shell Extensions"
|
||||
msgstr "GNOME čaulas paplašinājumi"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
|
||||
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
|
||||
#: ../js/ui/components/networkAgent.js:145
|
||||
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
|
||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||
#: ../js/ui/status/network.js:916
|
||||
msgid "Cancel"
|
||||
msgstr "Atcelt"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
|
||||
#: ../js/gdm/authPrompt.js:447
|
||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
|
||||
#: ../js/gdm/authPrompt.js:448
|
||||
msgid "Next"
|
||||
msgstr "Nākamais"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/ui/unlockDialog.js:59
|
||||
msgid "Unlock"
|
||||
msgstr "Atbloķēt"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:213
|
||||
#: ../js/gdm/authPrompt.js:214
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Ierakstīties"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:281
|
||||
#: ../js/gdm/loginDialog.js:285
|
||||
msgid "Choose Session"
|
||||
msgstr "Izvēlieties sesiju"
|
||||
|
||||
#. 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:431
|
||||
#: ../js/gdm/loginDialog.js:435
|
||||
msgid "Not listed?"
|
||||
msgstr "Nav sarakstā?"
|
||||
|
||||
#. 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:850
|
||||
#: ../js/gdm/loginDialog.js:854
|
||||
#, javascript-format
|
||||
msgid "(e.g., user or %s)"
|
||||
msgstr "(piemēram, lietotājs vai %s)"
|
||||
@ -350,12 +364,12 @@ msgstr "(piemēram, lietotājs vai %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:855 ../js/ui/components/networkAgent.js:271
|
||||
#: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
|
||||
#: ../js/ui/components/networkAgent.js:289
|
||||
msgid "Username: "
|
||||
msgstr "Lietotājvārds: "
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1184
|
||||
#: ../js/gdm/loginDialog.js:1196
|
||||
msgid "Login Window"
|
||||
msgstr "Ierakstīšanās logs"
|
||||
|
||||
@ -491,32 +505,50 @@ msgstr "Pievienot izlasei"
|
||||
msgid "Show Details"
|
||||
msgstr "Rādīt sīkāku informāciju"
|
||||
|
||||
#: ../js/ui/appFavorites.js:132
|
||||
#: ../js/ui/appFavorites.js:134
|
||||
#, javascript-format
|
||||
msgid "%s has been added to your favorites."
|
||||
msgstr "%s ir pievienots izlasei."
|
||||
|
||||
#: ../js/ui/appFavorites.js:166
|
||||
#: ../js/ui/appFavorites.js:168
|
||||
#, javascript-format
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "%s ir izņemts no izlases."
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:59
|
||||
msgid "Select Audio Device"
|
||||
msgstr "Izvēlieties audio ierīci"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:69
|
||||
msgid "Sound Settings"
|
||||
msgstr "Skaņas Iestatījumi"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:78
|
||||
msgid "Headphones"
|
||||
msgstr "Austiņas"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:80
|
||||
msgid "Headset"
|
||||
msgstr "Austiņas ar mikrofonu"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "Mikrofons"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:19
|
||||
msgid "Change Background…"
|
||||
msgstr "Mainīt fonu…"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:21
|
||||
#| msgid "Privacy Settings"
|
||||
msgid "Display Settings"
|
||||
msgstr "Displeja iestatījumi"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
|
||||
#: ../js/ui/status/system.js:366
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
|
||||
msgid "Settings"
|
||||
msgstr "Iestatījumi"
|
||||
|
||||
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
|
||||
#: ../js/ui/calendar.js:55
|
||||
#: ../js/ui/calendar.js:47
|
||||
msgctxt "calendar-no-work"
|
||||
msgid "06"
|
||||
msgstr "06"
|
||||
@ -526,94 +558,96 @@ msgstr "06"
|
||||
#. * NOTE: These grid abbreviations are always shown together
|
||||
#. * and in order, e.g. "S M T W T F S".
|
||||
#.
|
||||
#: ../js/ui/calendar.js:84
|
||||
#: ../js/ui/calendar.js:76
|
||||
msgctxt "grid sunday"
|
||||
msgid "S"
|
||||
msgstr "Sv"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Monday
|
||||
#: ../js/ui/calendar.js:86
|
||||
#: ../js/ui/calendar.js:78
|
||||
msgctxt "grid monday"
|
||||
msgid "M"
|
||||
msgstr "Pr"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Tuesday
|
||||
#: ../js/ui/calendar.js:88
|
||||
#: ../js/ui/calendar.js:80
|
||||
msgctxt "grid tuesday"
|
||||
msgid "T"
|
||||
msgstr "Ot"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Wednesday
|
||||
#: ../js/ui/calendar.js:90
|
||||
#: ../js/ui/calendar.js:82
|
||||
msgctxt "grid wednesday"
|
||||
msgid "W"
|
||||
msgstr "Tr"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Thursday
|
||||
#: ../js/ui/calendar.js:92
|
||||
#: ../js/ui/calendar.js:84
|
||||
msgctxt "grid thursday"
|
||||
msgid "T"
|
||||
msgstr "Ce"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Friday
|
||||
#: ../js/ui/calendar.js:94
|
||||
#: ../js/ui/calendar.js:86
|
||||
msgctxt "grid friday"
|
||||
msgid "F"
|
||||
msgstr "Pk"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Saturday
|
||||
#: ../js/ui/calendar.js:96
|
||||
#: ../js/ui/calendar.js:88
|
||||
msgctxt "grid saturday"
|
||||
msgid "S"
|
||||
msgstr "Se"
|
||||
|
||||
#: ../js/ui/calendar.js:566
|
||||
#: ../js/ui/calendar.js:416
|
||||
msgid "Previous month"
|
||||
msgstr "Iepriekšējais mēnesis"
|
||||
|
||||
#: ../js/ui/calendar.js:576
|
||||
#: ../js/ui/calendar.js:426
|
||||
msgid "Next month"
|
||||
msgstr "Nākamais mēnesis"
|
||||
|
||||
#: ../js/ui/calendar.js:783
|
||||
#: ../js/ui/calendar.js:579
|
||||
#, no-javascript-format
|
||||
msgctxt "date day number format"
|
||||
msgid "%d"
|
||||
msgstr "%d"
|
||||
|
||||
#: ../js/ui/calendar.js:634
|
||||
msgid "Week %V"
|
||||
msgstr "Nedēļa %V"
|
||||
|
||||
#. Translators: Shown in calendar event list for all day events
|
||||
#. * Keep it short, best if you can use less then 10 characters
|
||||
#.
|
||||
#: ../js/ui/calendar.js:1188
|
||||
#: ../js/ui/calendar.js:695
|
||||
msgctxt "event list time"
|
||||
msgid "All Day"
|
||||
msgstr "Visu dienu"
|
||||
|
||||
#: ../js/ui/calendar.js:1291
|
||||
msgid "Clear section"
|
||||
msgstr "Attīrīt sadaļu"
|
||||
|
||||
#: ../js/ui/calendar.js:1518
|
||||
#: ../js/ui/calendar.js:821
|
||||
msgid "Events"
|
||||
msgstr "Notikumi"
|
||||
|
||||
#: ../js/ui/calendar.js:1527
|
||||
#: ../js/ui/calendar.js:830
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, %d. %B"
|
||||
|
||||
#: ../js/ui/calendar.js:1531
|
||||
#: ../js/ui/calendar.js:834
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d, %Y"
|
||||
msgstr "%A, %d. %B, %Y."
|
||||
|
||||
#: ../js/ui/calendar.js:1616
|
||||
#: ../js/ui/calendar.js:919
|
||||
msgid "Notifications"
|
||||
msgstr "Paziņojumi"
|
||||
|
||||
#: ../js/ui/calendar.js:1767
|
||||
#: ../js/ui/calendar.js:1070
|
||||
msgid "No Notifications"
|
||||
msgstr "Nav paziņojumu"
|
||||
|
||||
#: ../js/ui/calendar.js:1770
|
||||
#: ../js/ui/calendar.js:1073
|
||||
msgid "No Events"
|
||||
msgstr "Nav notikumu"
|
||||
|
||||
@ -625,7 +659,7 @@ msgstr "Pievienots ārējs dzinis"
|
||||
msgid "External drive disconnected"
|
||||
msgstr "Atvienots ārējs dzinis"
|
||||
|
||||
#: ../js/ui/components/autorunManager.js:354
|
||||
#: ../js/ui/components/autorunManager.js:355
|
||||
#, javascript-format
|
||||
msgid "Open with %s"
|
||||
msgstr "Atvērt ar %s"
|
||||
@ -751,7 +785,7 @@ msgstr "Diemžēl tas nenostrādāja. Lūdzu, mēģiniet vēlreiz."
|
||||
|
||||
#. Translators: this is the other person changing their old IM name to their new
|
||||
#. IM name.
|
||||
#: ../js/ui/components/telepathyClient.js:759
|
||||
#: ../js/ui/components/telepathyClient.js:760
|
||||
#, javascript-format
|
||||
msgid "%s is now known as %s"
|
||||
msgstr "%s tagad saucas %s"
|
||||
@ -946,11 +980,11 @@ msgid "Keyboard"
|
||||
msgstr "Tastatūra"
|
||||
|
||||
#. translators: 'Hide' is a verb
|
||||
#: ../js/ui/legacyTray.js:66
|
||||
#: ../js/ui/legacyTray.js:65
|
||||
msgid "Hide tray"
|
||||
msgstr "Slēpt paplāti"
|
||||
|
||||
#: ../js/ui/legacyTray.js:107
|
||||
#: ../js/ui/legacyTray.js:106
|
||||
msgid "Status Icons"
|
||||
msgstr "Statusa ikonas"
|
||||
|
||||
@ -978,7 +1012,7 @@ msgstr "Aktivēta"
|
||||
|
||||
#. translators:
|
||||
#. * The device has been disabled
|
||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
|
||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
|
||||
msgid "Disabled"
|
||||
msgstr "Deaktivēta"
|
||||
|
||||
@ -1002,10 +1036,26 @@ msgstr "Skatīt avotu"
|
||||
msgid "Web Page"
|
||||
msgstr "Tīmekļa lapa"
|
||||
|
||||
#: ../js/ui/messageList.js:543
|
||||
msgid "Clear section"
|
||||
msgstr "Attīrīt sadaļu"
|
||||
|
||||
#: ../js/ui/messageTray.js:1486
|
||||
msgid "System Information"
|
||||
msgstr "Sistēmas informācija"
|
||||
|
||||
#: ../js/ui/mpris.js:194
|
||||
msgid "Unknown artist"
|
||||
msgstr "Nezināms izpildītājs"
|
||||
|
||||
#: ../js/ui/mpris.js:195
|
||||
msgid "Unknown title"
|
||||
msgstr "Nezināms nosaukums"
|
||||
|
||||
#: ../js/ui/mpris.js:217
|
||||
msgid "Media"
|
||||
msgstr "Datu nesējs"
|
||||
|
||||
#: ../js/ui/overview.js:84
|
||||
msgid "Undo"
|
||||
msgstr "Atsaukt"
|
||||
@ -1022,17 +1072,22 @@ msgstr "Pārskats"
|
||||
msgid "Type to search…"
|
||||
msgstr "Rakstiet, lai meklētu…"
|
||||
|
||||
#: ../js/ui/panel.js:352
|
||||
#: ../js/ui/panel.js:358
|
||||
msgid "Quit"
|
||||
msgstr "Iziet"
|
||||
|
||||
#. Translators: If there is no suitable word for "Activities"
|
||||
#. in your language, you can use the word for "Overview".
|
||||
#: ../js/ui/panel.js:404
|
||||
#: ../js/ui/panel.js:414
|
||||
msgid "Activities"
|
||||
msgstr "Aktivitātes"
|
||||
|
||||
#: ../js/ui/panel.js:754
|
||||
#: ../js/ui/panel.js:695
|
||||
msgctxt "System menu in the top bar"
|
||||
msgid "System"
|
||||
msgstr "Sistēma"
|
||||
|
||||
#: ../js/ui/panel.js:807
|
||||
msgid "Top Bar"
|
||||
msgstr "Augšējā josla"
|
||||
|
||||
@ -1045,15 +1100,15 @@ msgstr "Augšējā josla"
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
#: ../js/ui/runDialog.js:70
|
||||
#: ../js/ui/runDialog.js:71
|
||||
msgid "Enter a Command"
|
||||
msgstr "Ievadiet komandu"
|
||||
|
||||
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
|
||||
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
|
||||
msgid "Close"
|
||||
msgstr "Aizvērt"
|
||||
|
||||
#: ../js/ui/runDialog.js:281
|
||||
#: ../js/ui/runDialog.js:282
|
||||
msgid "Restarting…"
|
||||
msgstr "Pārstartē…"
|
||||
|
||||
@ -1178,32 +1233,42 @@ msgstr "Augsts kontrasts"
|
||||
msgid "Large Text"
|
||||
msgstr "Liels teksts"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Izslēgt"
|
||||
#: ../js/ui/status/bluetooth.js:47
|
||||
msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:54
|
||||
#: ../js/ui/status/bluetooth.js:56
|
||||
msgid "Bluetooth Settings"
|
||||
msgstr "Bluetooth iestatījumi"
|
||||
|
||||
#. Translators: this is the number of connected bluetooth devices
|
||||
#: ../js/ui/status/bluetooth.js:105
|
||||
#: ../js/ui/status/bluetooth.js:136
|
||||
#, javascript-format
|
||||
#| msgid "Connected"
|
||||
msgid "%d Connected"
|
||||
msgid_plural "%d Connected"
|
||||
msgstr[0] "%d savienots"
|
||||
msgstr[1] "%d savienoti"
|
||||
msgstr[2] "%d savienotu"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:107
|
||||
#| msgid "In Use"
|
||||
#: ../js/ui/status/bluetooth.js:138
|
||||
msgid "Off"
|
||||
msgstr "Izslēgts"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:140
|
||||
msgid "Not In Use"
|
||||
msgstr "Netiek izmantots"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Ieslēgt"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Izslēgt"
|
||||
|
||||
#: ../js/ui/status/brightness.js:44
|
||||
msgid "Brightness"
|
||||
msgstr "Gaišums"
|
||||
@ -1212,33 +1277,49 @@ msgstr "Gaišums"
|
||||
msgid "Show Keyboard Layout"
|
||||
msgstr "Rādīt tastatūras izkārtojumu"
|
||||
|
||||
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
|
||||
#| msgid "Location"
|
||||
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
|
||||
msgid "Location Enabled"
|
||||
msgstr "Atrašanās vieta ieslēgta"
|
||||
|
||||
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
|
||||
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
|
||||
msgid "Disable"
|
||||
msgstr "Izslēgt"
|
||||
|
||||
#: ../js/ui/status/location.js:73
|
||||
#: ../js/ui/status/location.js:109
|
||||
msgid "Privacy Settings"
|
||||
msgstr "Privātuma iestatījumi"
|
||||
|
||||
#: ../js/ui/status/location.js:176
|
||||
#| msgid "Location"
|
||||
#: ../js/ui/status/location.js:214
|
||||
msgid "Location In Use"
|
||||
msgstr "Atrašanās vieta tiek izmantota"
|
||||
|
||||
#: ../js/ui/status/location.js:180
|
||||
#| msgid "Connection failed"
|
||||
#: ../js/ui/status/location.js:218
|
||||
msgid "Location Disabled"
|
||||
msgstr "Atrašanās vieta ir izslēgta"
|
||||
|
||||
#: ../js/ui/status/location.js:181
|
||||
#: ../js/ui/status/location.js:219
|
||||
msgid "Enable"
|
||||
msgstr "Ieslēgt"
|
||||
|
||||
#: ../js/ui/status/location.js:426
|
||||
msgid "Deny Access"
|
||||
msgstr "Liegt pieeju"
|
||||
|
||||
#: ../js/ui/status/location.js:429
|
||||
msgid "Grant Access"
|
||||
msgstr "Piešķirt pieeju"
|
||||
|
||||
#. Translators: %s is an application name
|
||||
#: ../js/ui/status/location.js:435
|
||||
#, javascript-format
|
||||
msgid "Give %s access to your location?"
|
||||
msgstr "Dot %s pieeju jūsu atrašanās vietai?"
|
||||
|
||||
#: ../js/ui/status/location.js:437
|
||||
msgid "Location access can be changed at any time from the privacy settings."
|
||||
msgstr ""
|
||||
"Pieeju atrašanās vietai var mainīt jebkurā brīdī privātuma iestatījumos."
|
||||
|
||||
#: ../js/ui/status/network.js:101
|
||||
msgid "<unknown>"
|
||||
msgstr "<nezināms>"
|
||||
@ -1252,7 +1333,6 @@ msgstr "%s ir izslēgta"
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:454
|
||||
#, javascript-format
|
||||
#| msgid "Connected"
|
||||
msgid "%s Connected"
|
||||
msgstr "%s ir savienots"
|
||||
|
||||
@ -1261,28 +1341,24 @@ msgstr "%s ir savienots"
|
||||
#. %s is a network identifier
|
||||
#: ../js/ui/status/network.js:459
|
||||
#, javascript-format
|
||||
#| msgid "Unmanaged"
|
||||
msgid "%s Unmanaged"
|
||||
msgstr "%s nav pārvaldīts"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:462
|
||||
#, javascript-format
|
||||
#| msgid "Disconnecting"
|
||||
msgid "%s Disconnecting"
|
||||
msgstr "%s atvienojas"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
|
||||
#, javascript-format
|
||||
#| msgid "Connecting"
|
||||
msgid "%s Connecting"
|
||||
msgstr "%s savienojas"
|
||||
|
||||
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
|
||||
#: ../js/ui/status/network.js:472
|
||||
#, javascript-format
|
||||
#| msgid "Wired 802.1X authentication"
|
||||
msgid "%s Requires Authentication"
|
||||
msgstr "%s pieprasa autentificēšanos"
|
||||
|
||||
@ -1290,7 +1366,6 @@ msgstr "%s pieprasa autentificēšanos"
|
||||
#. module, which is missing; %s is a network identifier
|
||||
#: ../js/ui/status/network.js:480
|
||||
#, javascript-format
|
||||
#| msgid "Firmware missing"
|
||||
msgid "Firmware Missing For %s"
|
||||
msgstr "%s trūkst aparātprogrammatūras"
|
||||
|
||||
@ -1298,14 +1373,12 @@ msgstr "%s trūkst aparātprogrammatūras"
|
||||
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
|
||||
#: ../js/ui/status/network.js:484
|
||||
#, javascript-format
|
||||
#| msgid "Unavailable"
|
||||
msgid "%s Unavailable"
|
||||
msgstr "%s nav pieejams"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:487
|
||||
#, javascript-format
|
||||
#| msgid "Connection failed"
|
||||
msgid "%s Connection Failed"
|
||||
msgstr "%s neizdevās savienoties"
|
||||
|
||||
@ -1320,7 +1393,6 @@ msgstr "Mobilās platjoslas iestatījumi"
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
|
||||
#, javascript-format
|
||||
#| msgid "Hardware Disabled"
|
||||
msgid "%s Hardware Disabled"
|
||||
msgstr "%s ir izslēgts aparatūrā"
|
||||
|
||||
@ -1328,7 +1400,6 @@ msgstr "%s ir izslēgts aparatūrā"
|
||||
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
|
||||
#: ../js/ui/status/network.js:592
|
||||
#, javascript-format
|
||||
#| msgid "Disabled"
|
||||
msgid "%s Disabled"
|
||||
msgstr "%s ir izslēgts"
|
||||
|
||||
@ -1384,21 +1455,15 @@ msgstr "Izvēlieties tīklu"
|
||||
msgid "Wi-Fi Settings"
|
||||
msgstr "Wi-Fi iestatījumi"
|
||||
|
||||
#: ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Ieslēgt"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:1296
|
||||
#, javascript-format
|
||||
#| msgid "Hotspot Active"
|
||||
msgid "%s Hotspot Active"
|
||||
msgstr "%s tīklājs ir aktīvs"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:1311
|
||||
#, javascript-format
|
||||
#| msgid "Not Connected"
|
||||
msgid "%s Not Connected"
|
||||
msgstr "%s nav savienots"
|
||||
|
||||
@ -1428,7 +1493,6 @@ msgid "VPN"
|
||||
msgstr "VPN"
|
||||
|
||||
#: ../js/ui/status/network.js:1513
|
||||
#| msgid "Power Off"
|
||||
msgid "VPN Off"
|
||||
msgstr "VPN ir izslēgts"
|
||||
|
||||
@ -1440,37 +1504,41 @@ msgstr "Neizdevās savienoties"
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Neizdevās tīkla savienojuma aktivēšana"
|
||||
|
||||
#: ../js/ui/status/power.js:49
|
||||
#: ../js/ui/status/power.js:61
|
||||
msgid "Power Settings"
|
||||
msgstr "Barošanas iestatījumi"
|
||||
|
||||
#: ../js/ui/status/power.js:65
|
||||
#: ../js/ui/status/power.js:77
|
||||
msgid "Fully Charged"
|
||||
msgstr "Pilnībā uzlādēta"
|
||||
|
||||
#. 0 is reported when UPower does not have enough data
|
||||
#. to estimate battery life
|
||||
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
|
||||
#: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
|
||||
msgid "Estimating…"
|
||||
msgstr "Novērtē…"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
#: ../js/ui/status/power.js:86
|
||||
#: ../js/ui/status/power.js:98
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Remaining (%d%%)"
|
||||
msgstr "Atlicis %d.%02d (%d%%)"
|
||||
msgid "%d∶%02d Remaining (%d %%)"
|
||||
msgstr "Atlicis %d.%02d (%d %%)"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
#: ../js/ui/status/power.js:91
|
||||
#: ../js/ui/status/power.js:103
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Until Full (%d%%)"
|
||||
msgstr "Līdz pilnai %d.%02d (%d%%)"
|
||||
msgid "%d∶%02d Until Full (%d %%)"
|
||||
msgstr "Līdz pilnai %d.%02d (%d %%)"
|
||||
|
||||
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
|
||||
#, javascript-format
|
||||
msgid "%d %%"
|
||||
msgstr "%d %%"
|
||||
|
||||
#. 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.
|
||||
#: ../js/ui/status/rfkill.js:88
|
||||
#| msgid "Airplane Mode is On"
|
||||
msgid "Airplane Mode On"
|
||||
msgstr "Lidmašīnas režīms ir ieslēgts"
|
||||
|
||||
@ -1483,7 +1551,6 @@ msgid "Log Out"
|
||||
msgstr "Izrakstīties"
|
||||
|
||||
#: ../js/ui/status/system.js:353
|
||||
#| msgid "Power Settings"
|
||||
msgid "Account Settings"
|
||||
msgstr "Konta iestatījumi"
|
||||
|
||||
@ -1507,10 +1574,6 @@ msgstr "Skaļums ir mainīts"
|
||||
msgid "Volume"
|
||||
msgstr "Skaļums"
|
||||
|
||||
#: ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "Mikrofons"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:67
|
||||
msgid "Log in as another user"
|
||||
msgstr "Ierakstīties kā citam lietotājam"
|
||||
@ -1595,12 +1658,10 @@ msgid "Always on Visible Workspace"
|
||||
msgstr "Vienmēr redzamajā darbvietā"
|
||||
|
||||
#: ../js/ui/windowMenu.js:105
|
||||
#| msgid "Move to Workspace Up"
|
||||
msgid "Move to Workspace Left"
|
||||
msgstr "Pārvietot uz darbvietu pa kreisi"
|
||||
|
||||
#: ../js/ui/windowMenu.js:110
|
||||
#| msgid "Move to Workspace Up"
|
||||
msgid "Move to Workspace Right"
|
||||
msgstr "Pārvietot uz darbvietu pa labi"
|
||||
|
||||
@ -1613,12 +1674,10 @@ msgid "Move to Workspace Down"
|
||||
msgstr "Pārvietot uz zemāku darbvietu"
|
||||
|
||||
#: ../js/ui/windowMenu.js:136
|
||||
#| msgid "Move to Workspace Up"
|
||||
msgid "Move to Monitor Up"
|
||||
msgstr "Pārvietot uz augstāku monitoru"
|
||||
|
||||
#: ../js/ui/windowMenu.js:142
|
||||
#| msgid "Move to Workspace Down"
|
||||
msgid "Move to Monitor Down"
|
||||
msgstr "Pārvietot uz zemāku monitoru"
|
||||
|
||||
@ -1636,7 +1695,7 @@ msgstr "Evolution kalendārs"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound outputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1837
|
||||
#: ../src/gvc/gvc-mixer-control.c:1835
|
||||
#, c-format
|
||||
msgid "%u Output"
|
||||
msgid_plural "%u Outputs"
|
||||
@ -1646,7 +1705,7 @@ msgstr[2] "%u izvadkanāli"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound inputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1847
|
||||
#: ../src/gvc/gvc-mixer-control.c:1845
|
||||
#, c-format
|
||||
msgid "%u Input"
|
||||
msgid_plural "%u Inputs"
|
||||
@ -1654,44 +1713,44 @@ msgstr[0] "%u ievadkanāls"
|
||||
msgstr[1] "%u ievadkanāli"
|
||||
msgstr[2] "%u ievadkanāli"
|
||||
|
||||
#: ../src/gvc/gvc-mixer-control.c:2373
|
||||
#: ../src/gvc/gvc-mixer-control.c:2371
|
||||
msgid "System Sounds"
|
||||
msgstr "Sistēmas skaņas"
|
||||
|
||||
#: ../src/main.c:373
|
||||
#: ../src/main.c:381
|
||||
msgid "Print version"
|
||||
msgstr "Drukāt versiju"
|
||||
|
||||
#: ../src/main.c:379
|
||||
#: ../src/main.c:387
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "Režīms, ko izmantot GDM pieteikšanās ekrānam"
|
||||
|
||||
#: ../src/main.c:385
|
||||
#: ../src/main.c:393
|
||||
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
|
||||
msgstr "Izmantot specifisku metodi, piemēram, “gdm” ierakstīšanās ekrānam"
|
||||
|
||||
#: ../src/main.c:391
|
||||
#: ../src/main.c:399
|
||||
msgid "List possible modes"
|
||||
msgstr "Uzskaitīt iespējamās metodes"
|
||||
|
||||
#: ../src/shell-app.c:239
|
||||
#: ../src/shell-app.c:246
|
||||
msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "Nezināma"
|
||||
|
||||
#: ../src/shell-app.c:480
|
||||
#: ../src/shell-app.c:487
|
||||
#, c-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Neizdevās palaist “%s”"
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:742
|
||||
#: ../src/shell-keyring-prompt.c:730
|
||||
msgid "Passwords do not match."
|
||||
msgstr "Paroles nesakrīt."
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:750
|
||||
#: ../src/shell-keyring-prompt.c:738
|
||||
msgid "Password cannot be blank"
|
||||
msgstr "Parole nevar būt tukša"
|
||||
|
||||
#: ../src/shell-polkit-authentication-agent.c:346
|
||||
#: ../src/shell-polkit-authentication-agent.c:353
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "Lietotājs noraidīja autentifikācijas dialoglodziņu"
|
||||
|
368
po/nb.po
368
po/nb.po
@ -3,14 +3,14 @@
|
||||
# This file is distributed under the same license as the gnome-shell package.
|
||||
#
|
||||
# Åka Sikrom <a4@hush.com>, 2014-2015.
|
||||
# Kjartan Maraas <kmaraas@gnome.org>, 2009-2015.
|
||||
# Kjartan Maraas <kmaraas@gnome.org>, 2009-2016.
|
||||
# Torstein Adolf Winterseth <kvikende@fsfe.org>, 2010.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell 3.17.x\n"
|
||||
"Project-Id-Version: gnome-shell 3.20.x\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-09-07 19:22+0200\n"
|
||||
"PO-Revision-Date: 2015-09-07 19:31+0200\n"
|
||||
"POT-Creation-Date: 2016-05-03 23:34+0200\n"
|
||||
"PO-Revision-Date: 2016-05-03 23:35+0200\n"
|
||||
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
|
||||
"Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n"
|
||||
"Language: Norwegian bokmål\n"
|
||||
@ -44,15 +44,6 @@ msgstr "Vis alle programmer"
|
||||
msgid "Open the application menu"
|
||||
msgstr "Åpne programmenyen"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "GNOME Shell"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:2
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Vindushåndtering og oppstart av programmer"
|
||||
|
||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
||||
msgid "GNOME Shell Extension Preferences"
|
||||
msgstr "Brukervalg for GNOME Shell-utvidelser"
|
||||
@ -61,9 +52,13 @@ msgstr "Brukervalg for GNOME Shell-utvidelser"
|
||||
msgid "Configure GNOME Shell Extensions"
|
||||
msgstr "Sett opp utvidelser for GNOME Shell"
|
||||
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
|
||||
msgid "GNOME Shell (wayland compositor)"
|
||||
msgstr "GNOME Shell (Wayland-kompositør)"
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "GNOME Shell"
|
||||
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Vindushåndtering og oppstart av programmer"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
|
||||
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
||||
@ -166,75 +161,88 @@ msgstr ""
|
||||
"standardverdien for avkryssingsboksen."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
msgid ""
|
||||
"Whether the default Bluetooth adapter had set up devices associated to it"
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
msgid ""
|
||||
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
|
||||
"powered, or if there were devices set up associated with the default "
|
||||
"adapter. This will be reset if the default adapter is ever seen not to have "
|
||||
"devices associated to it."
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "Vis ukedato/ukenummer i kalender"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgstr "Viser ISO-ukedato i kalenderen hvis «true»."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
msgid "Keybinding to open the application menu"
|
||||
msgstr "Tastaturbinding som åpner programmenyen"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
msgid "Keybinding to open the application menu."
|
||||
msgstr "Tastaturbinding som åpner programmenyen."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
msgid "Keybinding to open the \"Show Applications\" view"
|
||||
msgstr "Tastaturbinding som åpner visningen «Vis programmer»"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
msgid ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
msgstr ""
|
||||
"Tastaturbinding som åpner visningen «Vis programmer» i aktivitetsoversikten."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
msgid "Keybinding to open the overview"
|
||||
msgstr "Tastaturbinding som åpner oversikten"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
msgid "Keybinding to open the Activities Overview."
|
||||
msgstr "Tastaturbinding som åpner aktivitetsoversikten."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
msgid "Keybinding to toggle the visibility of the notification list"
|
||||
msgstr "Tastaturbinding som slår av/på visning av varslingsliste"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
msgid "Keybinding to toggle the visibility of the notification list."
|
||||
msgstr "Tastaturbinding som slår av/på visning av varslingsliste."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
msgid "Keybinding to focus the active notification"
|
||||
msgstr "Tastaturbinding som fokuserer aktiv varsling"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
msgid "Keybinding to focus the active notification."
|
||||
msgstr "Tastaturbinding som fokuserer aktiv varsling."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
msgid ""
|
||||
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
|
||||
msgstr ""
|
||||
"Hurtigtast som stanser og fortsetter pågående bevegelser til "
|
||||
"feilsøkingsformål"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
msgid "Which keyboard to use"
|
||||
msgstr "Tastatur som skal brukes"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
msgid "The type of keyboard to use."
|
||||
msgstr "Type tastatur som skal brukes."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
msgid "Limit switcher to current workspace."
|
||||
msgstr "Begrens programveksling til gjeldende arbeidsområde."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid ""
|
||||
"If true, only applications that have windows on the current workspace are "
|
||||
"shown in the switcher. Otherwise, all applications are included."
|
||||
@ -243,11 +251,11 @@ msgstr ""
|
||||
"gjeldende arbeidsområder som vises i programveksleren. I motsatt fall kan du "
|
||||
"veksle mellom programmer på tvers av arbeidsområder."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid "The application icon mode."
|
||||
msgstr "Ikonmodus for programmet."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
@ -257,7 +265,7 @@ msgstr ""
|
||||
"valgalternativer er «thumbnail-only» (viser miniatyrbilde av vinduet), «app-"
|
||||
"icon-only» (viser bare programikonet) og «both» (viser begge forannevnte)."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
msgid ""
|
||||
"If true, only windows from the current workspace are shown in the switcher. "
|
||||
"Otherwise, all windows are included."
|
||||
@ -266,30 +274,30 @@ msgstr ""
|
||||
"arbeidsområder som vises i programveksleren. I motsatt fall vises vinduer "
|
||||
"fra alle arbeidsområder."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "Fest modal dialog til opphavsvinduet"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr ""
|
||||
"Denne nøkkelen overstyrer nøkkelen i org.gnome.mutter når GNOME Shell kjøres."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr ""
|
||||
"Del opp skjermkantene i fliser når brukeren drar og slipper vinduer på dem"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Arbeidsområder håndteres dynamisk"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "Arbeidsområder vises kun på hovedskjerm"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
msgstr "Utsett fokusendringer i musmodus til peker slutter å bevege seg"
|
||||
|
||||
@ -297,51 +305,52 @@ msgstr "Utsett fokusendringer i musmodus til peker slutter å bevege seg"
|
||||
msgid "Network Login"
|
||||
msgstr "Nettverkspålogging"
|
||||
|
||||
#: ../js/extensionPrefs/main.js:122
|
||||
#: ../js/extensionPrefs/main.js:117
|
||||
#, javascript-format
|
||||
msgid "There was an error loading the preferences dialog for %s:"
|
||||
msgstr "Det oppsto en feil ved lasting av brukervalgdialog for %s:"
|
||||
|
||||
#: ../js/extensionPrefs/main.js:154
|
||||
#: ../js/extensionPrefs/main.js:149
|
||||
msgid "GNOME Shell Extensions"
|
||||
msgstr "Utvidelser for GNOME Shell"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
|
||||
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
|
||||
#: ../js/ui/components/networkAgent.js:145
|
||||
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
|
||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||
#: ../js/ui/status/network.js:916
|
||||
msgid "Cancel"
|
||||
msgstr "Avbryt"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
|
||||
#: ../js/gdm/authPrompt.js:447
|
||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
|
||||
#: ../js/gdm/authPrompt.js:448
|
||||
msgid "Next"
|
||||
msgstr "Neste"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/ui/unlockDialog.js:59
|
||||
msgid "Unlock"
|
||||
msgstr "Lås opp"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:213
|
||||
#: ../js/gdm/authPrompt.js:214
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Logg inn"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:281
|
||||
#: ../js/gdm/loginDialog.js:285
|
||||
msgid "Choose Session"
|
||||
msgstr "Velg økt"
|
||||
|
||||
#. 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:431
|
||||
#: ../js/gdm/loginDialog.js:435
|
||||
msgid "Not listed?"
|
||||
msgstr "Ikke listet?"
|
||||
|
||||
#. 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:850
|
||||
#: ../js/gdm/loginDialog.js:854
|
||||
#, javascript-format
|
||||
msgid "(e.g., user or %s)"
|
||||
msgstr "(f.eks. bruker eller %s)"
|
||||
@ -349,12 +358,12 @@ msgstr "(f.eks. bruker 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:855 ../js/ui/components/networkAgent.js:271
|
||||
#: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
|
||||
#: ../js/ui/components/networkAgent.js:289
|
||||
msgid "Username: "
|
||||
msgstr "Brukernavn: "
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1184
|
||||
#: ../js/gdm/loginDialog.js:1196
|
||||
msgid "Login Window"
|
||||
msgstr "Innloggingsvindu"
|
||||
|
||||
@ -490,16 +499,36 @@ msgstr "Legg til i favoritter"
|
||||
msgid "Show Details"
|
||||
msgstr "Vis detaljer"
|
||||
|
||||
#: ../js/ui/appFavorites.js:132
|
||||
#: ../js/ui/appFavorites.js:134
|
||||
#, javascript-format
|
||||
msgid "%s has been added to your favorites."
|
||||
msgstr "%s ble lagt til i favoritter."
|
||||
|
||||
#: ../js/ui/appFavorites.js:166
|
||||
#: ../js/ui/appFavorites.js:168
|
||||
#, javascript-format
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "%s ble fjernet fra favoritter."
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:59
|
||||
msgid "Select Audio Device"
|
||||
msgstr "Velg lydenhet"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:69
|
||||
msgid "Sound Settings"
|
||||
msgstr "Innstillinger for lyd"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:78
|
||||
msgid "Headphones"
|
||||
msgstr "Hodetelefoner"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:80
|
||||
msgid "Headset"
|
||||
msgstr "Headset"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "Mikrofon"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:19
|
||||
msgid "Change Background…"
|
||||
msgstr "Bytt bakgrunn …"
|
||||
@ -508,13 +537,12 @@ msgstr "Bytt bakgrunn …"
|
||||
msgid "Display Settings"
|
||||
msgstr "Innstillinger for skjerm"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
|
||||
#: ../js/ui/status/system.js:366
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:371
|
||||
msgid "Settings"
|
||||
msgstr "Innstillinger"
|
||||
|
||||
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
|
||||
#: ../js/ui/calendar.js:55
|
||||
#: ../js/ui/calendar.js:47
|
||||
msgctxt "calendar-no-work"
|
||||
msgid "06"
|
||||
msgstr "06"
|
||||
@ -524,94 +552,96 @@ msgstr "06"
|
||||
#. * NOTE: These grid abbreviations are always shown together
|
||||
#. * and in order, e.g. "S M T W T F S".
|
||||
#.
|
||||
#: ../js/ui/calendar.js:84
|
||||
#: ../js/ui/calendar.js:76
|
||||
msgctxt "grid sunday"
|
||||
msgid "S"
|
||||
msgstr "S"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Monday
|
||||
#: ../js/ui/calendar.js:86
|
||||
#: ../js/ui/calendar.js:78
|
||||
msgctxt "grid monday"
|
||||
msgid "M"
|
||||
msgstr "M"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Tuesday
|
||||
#: ../js/ui/calendar.js:88
|
||||
#: ../js/ui/calendar.js:80
|
||||
msgctxt "grid tuesday"
|
||||
msgid "T"
|
||||
msgstr "T"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Wednesday
|
||||
#: ../js/ui/calendar.js:90
|
||||
#: ../js/ui/calendar.js:82
|
||||
msgctxt "grid wednesday"
|
||||
msgid "W"
|
||||
msgstr "O"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Thursday
|
||||
#: ../js/ui/calendar.js:92
|
||||
#: ../js/ui/calendar.js:84
|
||||
msgctxt "grid thursday"
|
||||
msgid "T"
|
||||
msgstr "T"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Friday
|
||||
#: ../js/ui/calendar.js:94
|
||||
#: ../js/ui/calendar.js:86
|
||||
msgctxt "grid friday"
|
||||
msgid "F"
|
||||
msgstr "F"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Saturday
|
||||
#: ../js/ui/calendar.js:96
|
||||
#: ../js/ui/calendar.js:88
|
||||
msgctxt "grid saturday"
|
||||
msgid "S"
|
||||
msgstr "L"
|
||||
|
||||
#: ../js/ui/calendar.js:566
|
||||
#: ../js/ui/calendar.js:416
|
||||
msgid "Previous month"
|
||||
msgstr "Forrige måned"
|
||||
|
||||
#: ../js/ui/calendar.js:576
|
||||
#: ../js/ui/calendar.js:426
|
||||
msgid "Next month"
|
||||
msgstr "Neste måned"
|
||||
|
||||
#: ../js/ui/calendar.js:783
|
||||
#: ../js/ui/calendar.js:579
|
||||
#, no-javascript-format
|
||||
msgctxt "date day number format"
|
||||
msgid "%d"
|
||||
msgstr "%d"
|
||||
|
||||
#: ../js/ui/calendar.js:634
|
||||
msgid "Week %V"
|
||||
msgstr "Uke %V"
|
||||
|
||||
#. Translators: Shown in calendar event list for all day events
|
||||
#. * Keep it short, best if you can use less then 10 characters
|
||||
#.
|
||||
#: ../js/ui/calendar.js:1188
|
||||
#: ../js/ui/calendar.js:695
|
||||
msgctxt "event list time"
|
||||
msgid "All Day"
|
||||
msgstr "Hele dagen"
|
||||
|
||||
#: ../js/ui/calendar.js:1291
|
||||
msgid "Clear section"
|
||||
msgstr "Tøm seksjon"
|
||||
|
||||
#: ../js/ui/calendar.js:1518
|
||||
#: ../js/ui/calendar.js:821
|
||||
msgid "Events"
|
||||
msgstr "Hendelser"
|
||||
|
||||
#: ../js/ui/calendar.js:1527
|
||||
#: ../js/ui/calendar.js:830
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A %B %d"
|
||||
|
||||
#: ../js/ui/calendar.js:1531
|
||||
#: ../js/ui/calendar.js:834
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d, %Y"
|
||||
msgstr "%A %B %d, %Y"
|
||||
|
||||
#: ../js/ui/calendar.js:1616
|
||||
#: ../js/ui/calendar.js:919
|
||||
msgid "Notifications"
|
||||
msgstr "Varslinger"
|
||||
|
||||
#: ../js/ui/calendar.js:1767
|
||||
#: ../js/ui/calendar.js:1070
|
||||
msgid "No Notifications"
|
||||
msgstr "Ingen varslinger"
|
||||
|
||||
#: ../js/ui/calendar.js:1770
|
||||
#: ../js/ui/calendar.js:1073
|
||||
msgid "No Events"
|
||||
msgstr "Ingen hendelser"
|
||||
|
||||
@ -623,7 +653,7 @@ msgstr "Ekstern stasjon koblet til"
|
||||
msgid "External drive disconnected"
|
||||
msgstr "Ekstern stasjon koblet fra"
|
||||
|
||||
#: ../js/ui/components/autorunManager.js:354
|
||||
#: ../js/ui/components/autorunManager.js:355
|
||||
#, javascript-format
|
||||
msgid "Open with %s"
|
||||
msgstr "Åpne med %s"
|
||||
@ -749,7 +779,7 @@ msgstr "Beklager, det virket ikke. Prøv igjen."
|
||||
|
||||
#. Translators: this is the other person changing their old IM name to their new
|
||||
#. IM name.
|
||||
#: ../js/ui/components/telepathyClient.js:759
|
||||
#: ../js/ui/components/telepathyClient.js:760
|
||||
#, javascript-format
|
||||
msgid "%s is now known as %s"
|
||||
msgstr "%s er nå kjent som %s"
|
||||
@ -936,11 +966,11 @@ msgid "Keyboard"
|
||||
msgstr "Tastatur"
|
||||
|
||||
#. translators: 'Hide' is a verb
|
||||
#: ../js/ui/legacyTray.js:66
|
||||
#: ../js/ui/legacyTray.js:65
|
||||
msgid "Hide tray"
|
||||
msgstr "Skjul statusområde"
|
||||
|
||||
#: ../js/ui/legacyTray.js:107
|
||||
#: ../js/ui/legacyTray.js:106
|
||||
msgid "Status Icons"
|
||||
msgstr "Statusikoner"
|
||||
|
||||
@ -968,7 +998,7 @@ msgstr "Slått på"
|
||||
|
||||
#. translators:
|
||||
#. * The device has been disabled
|
||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
|
||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
|
||||
msgid "Disabled"
|
||||
msgstr "Slått av"
|
||||
|
||||
@ -992,10 +1022,26 @@ msgstr "Vis kildekode"
|
||||
msgid "Web Page"
|
||||
msgstr "Nettside"
|
||||
|
||||
#: ../js/ui/messageList.js:543
|
||||
msgid "Clear section"
|
||||
msgstr "Tøm seksjon"
|
||||
|
||||
#: ../js/ui/messageTray.js:1486
|
||||
msgid "System Information"
|
||||
msgstr "Systeminformasjon"
|
||||
|
||||
#: ../js/ui/mpris.js:194
|
||||
msgid "Unknown artist"
|
||||
msgstr "Ukjent artist"
|
||||
|
||||
#: ../js/ui/mpris.js:195
|
||||
msgid "Unknown title"
|
||||
msgstr "Ukjent tittel"
|
||||
|
||||
#: ../js/ui/mpris.js:217
|
||||
msgid "Media"
|
||||
msgstr "Media"
|
||||
|
||||
#: ../js/ui/overview.js:84
|
||||
msgid "Undo"
|
||||
msgstr "Angre"
|
||||
@ -1012,17 +1058,22 @@ msgstr "Oversikt"
|
||||
msgid "Type to search…"
|
||||
msgstr "Skriv for å søke …"
|
||||
|
||||
#: ../js/ui/panel.js:352
|
||||
#: ../js/ui/panel.js:358
|
||||
msgid "Quit"
|
||||
msgstr "Avslutt"
|
||||
|
||||
#. Translators: If there is no suitable word for "Activities"
|
||||
#. in your language, you can use the word for "Overview".
|
||||
#: ../js/ui/panel.js:404
|
||||
#: ../js/ui/panel.js:414
|
||||
msgid "Activities"
|
||||
msgstr "Aktiviteter"
|
||||
|
||||
#: ../js/ui/panel.js:754
|
||||
#: ../js/ui/panel.js:695
|
||||
msgctxt "System menu in the top bar"
|
||||
msgid "System"
|
||||
msgstr "System"
|
||||
|
||||
#: ../js/ui/panel.js:807
|
||||
msgid "Top Bar"
|
||||
msgstr "Topp-panel"
|
||||
|
||||
@ -1035,15 +1086,15 @@ msgstr "Topp-panel"
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
#: ../js/ui/runDialog.js:70
|
||||
#: ../js/ui/runDialog.js:71
|
||||
msgid "Enter a Command"
|
||||
msgstr "Skriv inn en kommando"
|
||||
|
||||
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
|
||||
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
|
||||
msgid "Close"
|
||||
msgstr "Lukk"
|
||||
|
||||
#: ../js/ui/runDialog.js:281
|
||||
#: ../js/ui/runDialog.js:282
|
||||
msgid "Restarting…"
|
||||
msgstr "Starter på nytt …"
|
||||
|
||||
@ -1067,7 +1118,7 @@ msgid_plural "%d new notifications"
|
||||
msgstr[0] "%d ny varsling"
|
||||
msgstr[1] "%d nye varslinger"
|
||||
|
||||
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:374
|
||||
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:379
|
||||
msgid "Lock"
|
||||
msgstr "Lås"
|
||||
|
||||
@ -1166,29 +1217,41 @@ msgstr "Høy kontrast"
|
||||
msgid "Large Text"
|
||||
msgstr "Stor tekst"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Slå av"
|
||||
#: ../js/ui/status/bluetooth.js:47
|
||||
msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:54
|
||||
#: ../js/ui/status/bluetooth.js:56
|
||||
msgid "Bluetooth Settings"
|
||||
msgstr "Bluetooth-innstillinger"
|
||||
|
||||
#. Translators: this is the number of connected bluetooth devices
|
||||
#: ../js/ui/status/bluetooth.js:105
|
||||
#: ../js/ui/status/bluetooth.js:136
|
||||
#, javascript-format
|
||||
msgid "%d Connected"
|
||||
msgid_plural "%d Connected"
|
||||
msgstr[0] "%d koblet til"
|
||||
msgstr[1] "%d koblet til"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:107
|
||||
#: ../js/ui/status/bluetooth.js:138
|
||||
msgid "Off"
|
||||
msgstr "Av"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:140
|
||||
msgid "Not In Use"
|
||||
msgstr "Ikke i bruk"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Slå på"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Slå av"
|
||||
|
||||
#: ../js/ui/status/brightness.js:44
|
||||
msgid "Brightness"
|
||||
msgstr "Lysstyrke"
|
||||
@ -1197,30 +1260,48 @@ msgstr "Lysstyrke"
|
||||
msgid "Show Keyboard Layout"
|
||||
msgstr "Vis tastaturutforming"
|
||||
|
||||
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
|
||||
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
|
||||
msgid "Location Enabled"
|
||||
msgstr "Plassering slått på"
|
||||
|
||||
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
|
||||
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
|
||||
msgid "Disable"
|
||||
msgstr "Slå av"
|
||||
|
||||
#: ../js/ui/status/location.js:73
|
||||
#: ../js/ui/status/location.js:109
|
||||
msgid "Privacy Settings"
|
||||
msgstr "Innstillinger for personvern"
|
||||
|
||||
#: ../js/ui/status/location.js:176
|
||||
#: ../js/ui/status/location.js:214
|
||||
msgid "Location In Use"
|
||||
msgstr "Plassering i bruk"
|
||||
|
||||
#: ../js/ui/status/location.js:180
|
||||
#: ../js/ui/status/location.js:218
|
||||
msgid "Location Disabled"
|
||||
msgstr "Plassering slått av"
|
||||
|
||||
#: ../js/ui/status/location.js:181
|
||||
#: ../js/ui/status/location.js:219
|
||||
msgid "Enable"
|
||||
msgstr "Slå på"
|
||||
|
||||
#: ../js/ui/status/location.js:426
|
||||
msgid "Deny Access"
|
||||
msgstr "Nekt tilgang"
|
||||
|
||||
#: ../js/ui/status/location.js:429
|
||||
msgid "Grant Access"
|
||||
msgstr "Gi tilgang"
|
||||
|
||||
#. Translators: %s is an application name
|
||||
#: ../js/ui/status/location.js:435
|
||||
#, javascript-format
|
||||
msgid "Give %s access to your location?"
|
||||
msgstr "Gi %s tilgang til din plassering?"
|
||||
|
||||
#: ../js/ui/status/location.js:437
|
||||
msgid "Location access can be changed at any time from the privacy settings."
|
||||
msgstr "Stedstilgang kan endres når som helst under innstillinger for personvern."
|
||||
|
||||
#: ../js/ui/status/network.js:101
|
||||
msgid "<unknown>"
|
||||
msgstr "<ukjent>"
|
||||
@ -1356,10 +1437,6 @@ msgstr "Velg nettverk"
|
||||
msgid "Wi-Fi Settings"
|
||||
msgstr "Innstillinger"
|
||||
|
||||
#: ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Slå på"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:1296
|
||||
#, javascript-format
|
||||
@ -1409,31 +1486,36 @@ msgstr "Tilkobling mislyktes"
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Aktivering av nettverkstilkobling mislyktes"
|
||||
|
||||
#: ../js/ui/status/power.js:49
|
||||
#: ../js/ui/status/power.js:61
|
||||
msgid "Power Settings"
|
||||
msgstr "Innstillinger for strøm"
|
||||
|
||||
#: ../js/ui/status/power.js:65
|
||||
#: ../js/ui/status/power.js:77
|
||||
msgid "Fully Charged"
|
||||
msgstr "Fullt oppladet"
|
||||
|
||||
#. 0 is reported when UPower does not have enough data
|
||||
#. to estimate battery life
|
||||
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
|
||||
#: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
|
||||
msgid "Estimating…"
|
||||
msgstr "Estimerer …"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
#: ../js/ui/status/power.js:86
|
||||
#: ../js/ui/status/power.js:98
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Remaining (%d%%)"
|
||||
msgstr "%d:%02d gjenstår (%d%%)"
|
||||
msgid "%d∶%02d Remaining (%d %%)"
|
||||
msgstr "%d:%02d gjenstår (%d %%)"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
#: ../js/ui/status/power.js:91
|
||||
#: ../js/ui/status/power.js:103
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Until Full (%d%%)"
|
||||
msgstr "%d:%02d til batteriet er fullt (%d%%)"
|
||||
msgid "%d∶%02d Until Full (%d %%)"
|
||||
msgstr "%d:%02d til batteriet er fullt (%d %%)"
|
||||
|
||||
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
|
||||
#, javascript-format
|
||||
msgid "%d %%"
|
||||
msgstr "%d %%"
|
||||
|
||||
#. The menu only appears when airplane mode is on, so just
|
||||
#. statically build it as if it was on, rather than dynamically
|
||||
@ -1442,27 +1524,27 @@ msgstr "%d:%02d til batteriet er fullt (%d%%)"
|
||||
msgid "Airplane Mode On"
|
||||
msgstr "Flymodus er slått på"
|
||||
|
||||
#: ../js/ui/status/system.js:343
|
||||
#: ../js/ui/status/system.js:348
|
||||
msgid "Switch User"
|
||||
msgstr "Bytt bruker"
|
||||
|
||||
#: ../js/ui/status/system.js:348
|
||||
#: ../js/ui/status/system.js:353
|
||||
msgid "Log Out"
|
||||
msgstr "Logg ut"
|
||||
|
||||
#: ../js/ui/status/system.js:353
|
||||
#: ../js/ui/status/system.js:358
|
||||
msgid "Account Settings"
|
||||
msgstr "Innstillinger for konto"
|
||||
|
||||
#: ../js/ui/status/system.js:370
|
||||
#: ../js/ui/status/system.js:375
|
||||
msgid "Orientation Lock"
|
||||
msgstr "Lås for orientering"
|
||||
|
||||
#: ../js/ui/status/system.js:378
|
||||
#: ../js/ui/status/system.js:383
|
||||
msgid "Suspend"
|
||||
msgstr "Hvilemodus"
|
||||
|
||||
#: ../js/ui/status/system.js:381
|
||||
#: ../js/ui/status/system.js:386
|
||||
msgid "Power Off"
|
||||
msgstr "Slå av"
|
||||
|
||||
@ -1474,10 +1556,6 @@ msgstr "Volum endret"
|
||||
msgid "Volume"
|
||||
msgstr "Volum"
|
||||
|
||||
#: ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "Mikrofon"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:67
|
||||
msgid "Log in as another user"
|
||||
msgstr "Logg inn som en annen bruker"
|
||||
@ -1562,19 +1640,19 @@ msgstr "Alltid på synlig arbeidsområde"
|
||||
|
||||
#: ../js/ui/windowMenu.js:105
|
||||
msgid "Move to Workspace Left"
|
||||
msgstr "Gå til arbeidsområdet til venstre"
|
||||
msgstr "Flytt til arbeidsområdet til venstre"
|
||||
|
||||
#: ../js/ui/windowMenu.js:110
|
||||
msgid "Move to Workspace Right"
|
||||
msgstr "Gå til arbeidsområdet til høyre"
|
||||
msgstr "Flytt til arbeidsområdet til høyre"
|
||||
|
||||
#: ../js/ui/windowMenu.js:115
|
||||
msgid "Move to Workspace Up"
|
||||
msgstr "Gå til arbeidsområdet over"
|
||||
msgstr "Flytt til arbeidsområdet over"
|
||||
|
||||
#: ../js/ui/windowMenu.js:120
|
||||
msgid "Move to Workspace Down"
|
||||
msgstr "Gå til arbeidsområdet under"
|
||||
msgstr "Flytt til arbeidsområdet under"
|
||||
|
||||
#: ../js/ui/windowMenu.js:136
|
||||
msgid "Move to Monitor Up"
|
||||
@ -1598,7 +1676,7 @@ msgstr "Evolution kalender"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound outputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1837
|
||||
#: ../src/gvc/gvc-mixer-control.c:1835
|
||||
#, c-format
|
||||
msgid "%u Output"
|
||||
msgid_plural "%u Outputs"
|
||||
@ -1607,51 +1685,51 @@ msgstr[1] "%u utganger"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound inputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1847
|
||||
#: ../src/gvc/gvc-mixer-control.c:1845
|
||||
#, c-format
|
||||
msgid "%u Input"
|
||||
msgid_plural "%u Inputs"
|
||||
msgstr[0] "%u inngang"
|
||||
msgstr[1] "%u innganger"
|
||||
|
||||
#: ../src/gvc/gvc-mixer-control.c:2373
|
||||
#: ../src/gvc/gvc-mixer-control.c:2371
|
||||
msgid "System Sounds"
|
||||
msgstr "Systemlyder"
|
||||
|
||||
#: ../src/main.c:373
|
||||
#: ../src/main.c:381
|
||||
msgid "Print version"
|
||||
msgstr "Vis versjon"
|
||||
|
||||
#: ../src/main.c:379
|
||||
#: ../src/main.c:387
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "Modus som brukes av GDM for innloggingsskjermen"
|
||||
|
||||
#: ../src/main.c:385
|
||||
#: ../src/main.c:393
|
||||
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
|
||||
msgstr "Bruk spesifikt modus, f.eks «gdm» for innloggingsskjerm"
|
||||
|
||||
#: ../src/main.c:391
|
||||
#: ../src/main.c:399
|
||||
msgid "List possible modes"
|
||||
msgstr "Vis mulige modi"
|
||||
|
||||
#: ../src/shell-app.c:239
|
||||
#: ../src/shell-app.c:246
|
||||
msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "Ukjent"
|
||||
|
||||
#: ../src/shell-app.c:480
|
||||
#: ../src/shell-app.c:487
|
||||
#, c-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Klarte ikke å starte «%s»"
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:742
|
||||
#: ../src/shell-keyring-prompt.c:730
|
||||
msgid "Passwords do not match."
|
||||
msgstr "Passordene er ikke like."
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:750
|
||||
#: ../src/shell-keyring-prompt.c:738
|
||||
msgid "Password cannot be blank"
|
||||
msgstr "Passordet kan ikke være tomt"
|
||||
|
||||
#: ../src/shell-polkit-authentication-agent.c:346
|
||||
#: ../src/shell-polkit-authentication-agent.c:353
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "Autentiseringsdialogen ble lukket av brukeren"
|
||||
|
361
po/pl.po
361
po/pl.po
@ -4,16 +4,16 @@
|
||||
# pomóc w jego rozwijaniu i pielęgnowaniu, napisz do nas:
|
||||
# gnomepl@aviary.pl
|
||||
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||
# Piotr Drąg <piotrdrag@gmail.com>, 2009-2015.
|
||||
# Piotr Drąg <piotrdrag@gmail.com>, 2009-2016.
|
||||
# Tomasz Dominikowski <dominikowski@gmail.com>, 2009.
|
||||
# Wojciech Szczęsny <wszczesny@aviary.pl>, 2013.
|
||||
# Aviary.pl <gnomepl@aviary.pl>, 2009-2015.
|
||||
# Aviary.pl <gnomepl@aviary.pl>, 2009-2016.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-24 15:27+0200\n"
|
||||
"PO-Revision-Date: 2015-08-24 15:28+0200\n"
|
||||
"POT-Creation-Date: 2016-03-10 17:25+0100\n"
|
||||
"PO-Revision-Date: 2016-03-10 17:27+0100\n"
|
||||
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
|
||||
"Language-Team: Polish <gnomepl@aviary.pl>\n"
|
||||
"Language: pl\n"
|
||||
@ -49,15 +49,6 @@ msgstr "Wyświetlenie wszystkich programów"
|
||||
msgid "Open the application menu"
|
||||
msgstr "Otwarcie menu programu"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "Powłoka środowiska GNOME"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:2
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Zarządzanie oknami i uruchamianiem programów"
|
||||
|
||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
||||
msgid "GNOME Shell Extension Preferences"
|
||||
msgstr "Preferencje rozszerzenia powłoki GNOME"
|
||||
@ -66,9 +57,13 @@ msgstr "Preferencje rozszerzenia powłoki GNOME"
|
||||
msgid "Configure GNOME Shell Extensions"
|
||||
msgstr "Konfiguracja rozszerzeń powłoki GNOME"
|
||||
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
|
||||
msgid "GNOME Shell (wayland compositor)"
|
||||
msgstr "Powłoka środowiska GNOME (Wayland)"
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "Powłoka środowiska GNOME"
|
||||
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Zarządzanie oknami i uruchamianiem programów"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
|
||||
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
||||
@ -171,82 +166,99 @@ msgid ""
|
||||
"'Remember Password' checkbox will be present. This key sets the default "
|
||||
"state of the checkbox."
|
||||
msgstr ""
|
||||
"Powłoka zażąda hasła po zamontowaniu zaszyfrowanego urządzenia lub zdalnego "
|
||||
"systemu plików. Jeśli hasło może zostać zapisane do późniejszego użycia, to "
|
||||
"obecne będzie pole wyboru „Zapamiętanie hasła”. Ten klucz ustawia domyślną "
|
||||
"wartość tego pola."
|
||||
"Powłoka poprosi o hasło podczas montowania zaszyfrowanego urządzenia lub "
|
||||
"zdalnego systemu plików. Jeśli hasło może zostać zapisane do późniejszego "
|
||||
"użycia, to obecne będzie pole wyboru „Zapamiętanie hasła”. Ten klucz ustawia "
|
||||
"domyślną wartość tego pola."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
msgid ""
|
||||
"Whether the default Bluetooth adapter had set up devices associated to it"
|
||||
msgstr "Czy domyślny adapter Bluetooth ma powiązane ustawione urządzenia"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
msgid ""
|
||||
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
|
||||
"powered, or if there were devices set up associated with the default "
|
||||
"adapter. This will be reset if the default adapter is ever seen not to have "
|
||||
"devices associated to it."
|
||||
msgstr ""
|
||||
"Powłoka będzie wyświetlała menu Bluetooth tylko, jeśli adapter Bluetooth "
|
||||
"jest włączony lub są ustawione urządzenia powiązane z domyślnym adapterem. "
|
||||
"Zostanie to przywrócone, kiedy tylko domyślny adapter nie będzie miał "
|
||||
"żadnych powiązanych urządzeń."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "Wyświetlanie dnia tygodnia w kalendarzu"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgstr ""
|
||||
"Jeśli jest ustawione na „true”, to wyświetla w kalendarzu dzień tygodnia w "
|
||||
"formacie ISO."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
msgid "Keybinding to open the application menu"
|
||||
msgstr "Skrót do otwarcia menu programu"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
msgid "Keybinding to open the application menu."
|
||||
msgstr "Skrót do otwarcia menu programu."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
msgid "Keybinding to open the \"Show Applications\" view"
|
||||
msgstr "Skrót do otwarcia widoku „Wyświetl programy”"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
msgid ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
msgstr "Skrót do otwarcia widoku „Wyświetl programy” ekranu podglądu."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
msgid "Keybinding to open the overview"
|
||||
msgstr "Skrót do otwarcia ekranu podglądu"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
msgid "Keybinding to open the Activities Overview."
|
||||
msgstr "Skrót do otwarcia ekranu podglądu."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
msgid "Keybinding to toggle the visibility of the notification list"
|
||||
msgstr "Skrót do przełączenia widoczności listy powiadomień"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
msgid "Keybinding to toggle the visibility of the notification list."
|
||||
msgstr "Skrót do przełączenia widoczności listy powiadomień."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
msgid "Keybinding to focus the active notification"
|
||||
msgstr "Skrót do aktywacji bieżącego powiadomienia"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
msgid "Keybinding to focus the active notification."
|
||||
msgstr "Skrót do aktywacji bieżącego powiadomienia."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
msgid ""
|
||||
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
|
||||
msgstr ""
|
||||
"Skrót wstrzymujący i wznawiający wszystkie działające klatki pośrednie (do "
|
||||
"celów debugowania)"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
msgid "Which keyboard to use"
|
||||
msgstr "Której klawiatury używać"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
msgid "The type of keyboard to use."
|
||||
msgstr "Typ używanej klawiatury."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
msgid "Limit switcher to current workspace."
|
||||
msgstr "Ograniczenie przełącznika do bieżącego obszaru roboczego."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid ""
|
||||
"If true, only applications that have windows on the current workspace are "
|
||||
"shown in the switcher. Otherwise, all applications are included."
|
||||
@ -255,11 +267,11 @@ msgstr ""
|
||||
"obszarze roboczym są wyświetlane w przełączniku. W przeciwnym przypadku "
|
||||
"wszystkie programy są załączone."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid "The application icon mode."
|
||||
msgstr "Tryb ikon programów."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
@ -269,7 +281,7 @@ msgstr ""
|
||||
"„thumbnail-only” (wyświetla miniaturę okna), „app-icon-only” (wyświetla "
|
||||
"tylko ikonę programu) lub „both” (wyświetla oba)."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
msgid ""
|
||||
"If true, only windows from the current workspace are shown in the switcher. "
|
||||
"Otherwise, all windows are included."
|
||||
@ -278,32 +290,32 @@ msgstr ""
|
||||
"wyświetlane w przełączniku. W przeciwnym przypadku wszystkie okna są "
|
||||
"załączone."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "Dołączanie modalnych okien dialogowych do okien nadrzędnych"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr ""
|
||||
"Ten klucz zastępuje klucz w „org.gnome.mutter”, kiedy uruchomiona jest "
|
||||
"powłoka GNOME."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr ""
|
||||
"Włączenie kafelkowania przy krawędziach podczas przenoszenia okien do "
|
||||
"krawędzi ekranu"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Dynamiczne zarządzanie obszarami roboczymi"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "Obszary robocze tylko na pierwszym monitorze"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
msgstr ""
|
||||
"Opóźnienie zmiany aktywności w trybie myszy do momentu, w którym kursor się "
|
||||
@ -313,52 +325,53 @@ msgstr ""
|
||||
msgid "Network Login"
|
||||
msgstr "Logowanie do sieci"
|
||||
|
||||
#: ../js/extensionPrefs/main.js:122
|
||||
#: ../js/extensionPrefs/main.js:121
|
||||
#, javascript-format
|
||||
msgid "There was an error loading the preferences dialog for %s:"
|
||||
msgstr ""
|
||||
"Wystąpił błąd podczas wczytywania okna preferencji dla rozszerzenia „%s”:"
|
||||
|
||||
#: ../js/extensionPrefs/main.js:154
|
||||
#: ../js/extensionPrefs/main.js:153
|
||||
msgid "GNOME Shell Extensions"
|
||||
msgstr "Rozszerzenia powłoki GNOME"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
|
||||
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
|
||||
#: ../js/ui/components/networkAgent.js:145
|
||||
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
|
||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||
#: ../js/ui/status/network.js:916
|
||||
msgid "Cancel"
|
||||
msgstr "Anuluj"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
|
||||
#: ../js/gdm/authPrompt.js:435
|
||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
|
||||
#: ../js/gdm/authPrompt.js:448
|
||||
msgid "Next"
|
||||
msgstr "Dalej"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/ui/unlockDialog.js:59
|
||||
msgid "Unlock"
|
||||
msgstr "Odblokuj"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:213
|
||||
#: ../js/gdm/authPrompt.js:214
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Zaloguj"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:281
|
||||
#: ../js/gdm/loginDialog.js:285
|
||||
msgid "Choose Session"
|
||||
msgstr "Wybór sesji"
|
||||
|
||||
#. 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:431
|
||||
#: ../js/gdm/loginDialog.js:435
|
||||
msgid "Not listed?"
|
||||
msgstr "Inny użytkownik?"
|
||||
|
||||
#. 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:847
|
||||
#: ../js/gdm/loginDialog.js:854
|
||||
#, javascript-format
|
||||
msgid "(e.g., user or %s)"
|
||||
msgstr "(np. użytkownik lub %s)"
|
||||
@ -366,12 +379,12 @@ msgstr "(np. użytkownik lub %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:852 ../js/ui/components/networkAgent.js:271
|
||||
#: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
|
||||
#: ../js/ui/components/networkAgent.js:289
|
||||
msgid "Username: "
|
||||
msgstr "Nazwa użytkownika: "
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1181
|
||||
#: ../js/gdm/loginDialog.js:1196
|
||||
msgid "Login Window"
|
||||
msgstr "Okno logowania"
|
||||
|
||||
@ -507,16 +520,36 @@ msgstr "Dodaj do ulubionych"
|
||||
msgid "Show Details"
|
||||
msgstr "Wyświetl szczegóły"
|
||||
|
||||
#: ../js/ui/appFavorites.js:132
|
||||
#: ../js/ui/appFavorites.js:134
|
||||
#, javascript-format
|
||||
msgid "%s has been added to your favorites."
|
||||
msgstr "Program „%s” został dodany do ulubionych."
|
||||
|
||||
#: ../js/ui/appFavorites.js:166
|
||||
#: ../js/ui/appFavorites.js:168
|
||||
#, javascript-format
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "Program „%s” został usunięty z ulubionych."
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:59
|
||||
msgid "Select Audio Device"
|
||||
msgstr "Wybór urządzenia dźwiękowego"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:69
|
||||
msgid "Sound Settings"
|
||||
msgstr "Ustawienia dźwięku"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:78
|
||||
msgid "Headphones"
|
||||
msgstr "Słuchawki"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:80
|
||||
msgid "Headset"
|
||||
msgstr "Słuchawki z mikrofonem"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "Mikrofon"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:19
|
||||
msgid "Change Background…"
|
||||
msgstr "Zmień tło…"
|
||||
@ -525,13 +558,12 @@ msgstr "Zmień tło…"
|
||||
msgid "Display Settings"
|
||||
msgstr "Ustawienia ekranu"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
|
||||
#: ../js/ui/status/system.js:366
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
|
||||
msgid "Settings"
|
||||
msgstr "Ustawienia"
|
||||
|
||||
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
|
||||
#: ../js/ui/calendar.js:55
|
||||
#: ../js/ui/calendar.js:47
|
||||
msgctxt "calendar-no-work"
|
||||
msgid "06"
|
||||
msgstr "06"
|
||||
@ -541,94 +573,96 @@ msgstr "06"
|
||||
#. * NOTE: These grid abbreviations are always shown together
|
||||
#. * and in order, e.g. "S M T W T F S".
|
||||
#.
|
||||
#: ../js/ui/calendar.js:84
|
||||
#: ../js/ui/calendar.js:76
|
||||
msgctxt "grid sunday"
|
||||
msgid "S"
|
||||
msgstr "N"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Monday
|
||||
#: ../js/ui/calendar.js:86
|
||||
#: ../js/ui/calendar.js:78
|
||||
msgctxt "grid monday"
|
||||
msgid "M"
|
||||
msgstr "P"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Tuesday
|
||||
#: ../js/ui/calendar.js:88
|
||||
#: ../js/ui/calendar.js:80
|
||||
msgctxt "grid tuesday"
|
||||
msgid "T"
|
||||
msgstr "W"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Wednesday
|
||||
#: ../js/ui/calendar.js:90
|
||||
#: ../js/ui/calendar.js:82
|
||||
msgctxt "grid wednesday"
|
||||
msgid "W"
|
||||
msgstr "Ś"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Thursday
|
||||
#: ../js/ui/calendar.js:92
|
||||
#: ../js/ui/calendar.js:84
|
||||
msgctxt "grid thursday"
|
||||
msgid "T"
|
||||
msgstr "C"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Friday
|
||||
#: ../js/ui/calendar.js:94
|
||||
#: ../js/ui/calendar.js:86
|
||||
msgctxt "grid friday"
|
||||
msgid "F"
|
||||
msgstr "P"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Saturday
|
||||
#: ../js/ui/calendar.js:96
|
||||
#: ../js/ui/calendar.js:88
|
||||
msgctxt "grid saturday"
|
||||
msgid "S"
|
||||
msgstr "S"
|
||||
|
||||
#: ../js/ui/calendar.js:566
|
||||
#: ../js/ui/calendar.js:416
|
||||
msgid "Previous month"
|
||||
msgstr "Poprzedni miesiąc"
|
||||
|
||||
#: ../js/ui/calendar.js:576
|
||||
#: ../js/ui/calendar.js:426
|
||||
msgid "Next month"
|
||||
msgstr "Następny miesiąc"
|
||||
|
||||
#: ../js/ui/calendar.js:783
|
||||
#: ../js/ui/calendar.js:579
|
||||
#, no-javascript-format
|
||||
msgctxt "date day number format"
|
||||
msgid "%d"
|
||||
msgstr "%d"
|
||||
|
||||
#: ../js/ui/calendar.js:634
|
||||
msgid "Week %V"
|
||||
msgstr "%V tydzień"
|
||||
msgstr "%V. tydzień"
|
||||
|
||||
#. Translators: Shown in calendar event list for all day events
|
||||
#. * Keep it short, best if you can use less then 10 characters
|
||||
#.
|
||||
#: ../js/ui/calendar.js:1188
|
||||
#: ../js/ui/calendar.js:695
|
||||
msgctxt "event list time"
|
||||
msgid "All Day"
|
||||
msgstr "Cały dzień"
|
||||
|
||||
#: ../js/ui/calendar.js:1291
|
||||
msgid "Clear section"
|
||||
msgstr "Wyczyść"
|
||||
|
||||
#: ../js/ui/calendar.js:1518
|
||||
#: ../js/ui/calendar.js:821
|
||||
msgid "Events"
|
||||
msgstr "Wydarzenia"
|
||||
|
||||
#: ../js/ui/calendar.js:1527
|
||||
#: ../js/ui/calendar.js:830
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, %e %B"
|
||||
|
||||
#: ../js/ui/calendar.js:1531
|
||||
#: ../js/ui/calendar.js:834
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d, %Y"
|
||||
msgstr "%A, %e %B %Y"
|
||||
|
||||
#: ../js/ui/calendar.js:1616
|
||||
#: ../js/ui/calendar.js:919
|
||||
msgid "Notifications"
|
||||
msgstr "Powiadomienia"
|
||||
|
||||
#: ../js/ui/calendar.js:1767
|
||||
#: ../js/ui/calendar.js:1070
|
||||
msgid "No Notifications"
|
||||
msgstr "Brak powiadomień"
|
||||
|
||||
#: ../js/ui/calendar.js:1770
|
||||
#: ../js/ui/calendar.js:1073
|
||||
msgid "No Events"
|
||||
msgstr "Brak wydarzeń"
|
||||
|
||||
@ -640,7 +674,7 @@ msgstr "Podłączono dysk zewnętrzny"
|
||||
msgid "External drive disconnected"
|
||||
msgstr "Odłączono dysk zewnętrzny"
|
||||
|
||||
#: ../js/ui/components/autorunManager.js:354
|
||||
#: ../js/ui/components/autorunManager.js:355
|
||||
#, javascript-format
|
||||
msgid "Open with %s"
|
||||
msgstr "Otwórz za pomocą „%s”"
|
||||
@ -959,11 +993,11 @@ msgid "Keyboard"
|
||||
msgstr "Klawiatura"
|
||||
|
||||
#. translators: 'Hide' is a verb
|
||||
#: ../js/ui/legacyTray.js:66
|
||||
#: ../js/ui/legacyTray.js:65
|
||||
msgid "Hide tray"
|
||||
msgstr "Ukryj obszar powiadamiania"
|
||||
|
||||
#: ../js/ui/legacyTray.js:107
|
||||
#: ../js/ui/legacyTray.js:106
|
||||
msgid "Status Icons"
|
||||
msgstr "Ikony stanu"
|
||||
|
||||
@ -991,7 +1025,7 @@ msgstr "Włączone"
|
||||
|
||||
#. translators:
|
||||
#. * The device has been disabled
|
||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
|
||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
|
||||
msgid "Disabled"
|
||||
msgstr "Wyłączone"
|
||||
|
||||
@ -1015,10 +1049,26 @@ msgstr "Wyświetl źródło"
|
||||
msgid "Web Page"
|
||||
msgstr "Strona WWW"
|
||||
|
||||
#: ../js/ui/messageList.js:543
|
||||
msgid "Clear section"
|
||||
msgstr "Wyczyść"
|
||||
|
||||
#: ../js/ui/messageTray.js:1486
|
||||
msgid "System Information"
|
||||
msgstr "Informacje systemowe"
|
||||
|
||||
#: ../js/ui/mpris.js:194
|
||||
msgid "Unknown artist"
|
||||
msgstr "Nieznany wykonawca"
|
||||
|
||||
#: ../js/ui/mpris.js:195
|
||||
msgid "Unknown title"
|
||||
msgstr "Nieznany tytuł"
|
||||
|
||||
#: ../js/ui/mpris.js:217
|
||||
msgid "Media"
|
||||
msgstr "Multimedia"
|
||||
|
||||
#: ../js/ui/overview.js:84
|
||||
msgid "Undo"
|
||||
msgstr "Cofnij"
|
||||
@ -1035,17 +1085,22 @@ msgstr "Podgląd"
|
||||
msgid "Type to search…"
|
||||
msgstr "Wyszukiwanie…"
|
||||
|
||||
#: ../js/ui/panel.js:352
|
||||
#: ../js/ui/panel.js:358
|
||||
msgid "Quit"
|
||||
msgstr "Zakończ"
|
||||
|
||||
#. Translators: If there is no suitable word for "Activities"
|
||||
#. in your language, you can use the word for "Overview".
|
||||
#: ../js/ui/panel.js:404
|
||||
#: ../js/ui/panel.js:414
|
||||
msgid "Activities"
|
||||
msgstr "Podgląd"
|
||||
|
||||
#: ../js/ui/panel.js:754
|
||||
#: ../js/ui/panel.js:695
|
||||
msgctxt "System menu in the top bar"
|
||||
msgid "System"
|
||||
msgstr "Menu systemowe"
|
||||
|
||||
#: ../js/ui/panel.js:807
|
||||
msgid "Top Bar"
|
||||
msgstr "Górny pasek"
|
||||
|
||||
@ -1058,15 +1113,15 @@ msgstr "Górny pasek"
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
#: ../js/ui/runDialog.js:70
|
||||
#: ../js/ui/runDialog.js:71
|
||||
msgid "Enter a Command"
|
||||
msgstr "Proszę wprowadzić polecenie"
|
||||
|
||||
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
|
||||
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
|
||||
msgid "Close"
|
||||
msgstr "Zamknij"
|
||||
|
||||
#: ../js/ui/runDialog.js:281
|
||||
#: ../js/ui/runDialog.js:282
|
||||
msgid "Restarting…"
|
||||
msgstr "Ponowne uruchamianie…"
|
||||
|
||||
@ -1191,19 +1246,16 @@ msgstr "Wysoki kontrast"
|
||||
msgid "Large Text"
|
||||
msgstr "Duży tekst"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Wyłącz"
|
||||
#: ../js/ui/status/bluetooth.js:47
|
||||
msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:54
|
||||
#: ../js/ui/status/bluetooth.js:56
|
||||
msgid "Bluetooth Settings"
|
||||
msgstr "Ustawienia Bluetooth"
|
||||
|
||||
#. Translators: this is the number of connected bluetooth devices
|
||||
#: ../js/ui/status/bluetooth.js:105
|
||||
#: ../js/ui/status/bluetooth.js:136
|
||||
#, javascript-format
|
||||
msgid "%d Connected"
|
||||
msgid_plural "%d Connected"
|
||||
@ -1211,10 +1263,25 @@ msgstr[0] "%d połączone urządzenie"
|
||||
msgstr[1] "%d połączone urządzenia"
|
||||
msgstr[2] "%d połączonych urządzeń"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:107
|
||||
#: ../js/ui/status/bluetooth.js:138
|
||||
msgid "Off"
|
||||
msgstr "Wyłączono"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:140
|
||||
msgid "Not In Use"
|
||||
msgstr "Nieużywane"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Włącz"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Wyłącz"
|
||||
|
||||
#: ../js/ui/status/brightness.js:44
|
||||
msgid "Brightness"
|
||||
msgstr "Jasność"
|
||||
@ -1223,30 +1290,49 @@ msgstr "Jasność"
|
||||
msgid "Show Keyboard Layout"
|
||||
msgstr "Wyświetl układ klawiatury"
|
||||
|
||||
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
|
||||
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
|
||||
msgid "Location Enabled"
|
||||
msgstr "Włączono położenie"
|
||||
msgstr "Włączono ustalanie położenia"
|
||||
|
||||
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
|
||||
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
|
||||
msgid "Disable"
|
||||
msgstr "Wyłącz"
|
||||
|
||||
#: ../js/ui/status/location.js:73
|
||||
#: ../js/ui/status/location.js:109
|
||||
msgid "Privacy Settings"
|
||||
msgstr "Ustawienia prywatności"
|
||||
|
||||
#: ../js/ui/status/location.js:176
|
||||
#: ../js/ui/status/location.js:214
|
||||
msgid "Location In Use"
|
||||
msgstr "Położenie jest używane"
|
||||
msgstr "Ustalanie położenia jest używane"
|
||||
|
||||
#: ../js/ui/status/location.js:180
|
||||
#: ../js/ui/status/location.js:218
|
||||
msgid "Location Disabled"
|
||||
msgstr "Wyłączono położenie"
|
||||
msgstr "Wyłączono ustalanie położenia"
|
||||
|
||||
#: ../js/ui/status/location.js:181
|
||||
#: ../js/ui/status/location.js:219
|
||||
msgid "Enable"
|
||||
msgstr "Włącz"
|
||||
|
||||
#: ../js/ui/status/location.js:426
|
||||
msgid "Deny Access"
|
||||
msgstr "Odmów dostępu"
|
||||
|
||||
#: ../js/ui/status/location.js:429
|
||||
msgid "Grant Access"
|
||||
msgstr "Udziel dostępu"
|
||||
|
||||
#. Translators: %s is an application name
|
||||
#: ../js/ui/status/location.js:435
|
||||
#, javascript-format
|
||||
msgid "Give %s access to your location?"
|
||||
msgstr "Udzielić programowi „%s” dostępu do położenia użytkownika?"
|
||||
|
||||
#: ../js/ui/status/location.js:437
|
||||
msgid "Location access can be changed at any time from the privacy settings."
|
||||
msgstr ""
|
||||
"W każdej chwili można zmienić dostęp do położenia w ustawieniach prywatności."
|
||||
|
||||
#: ../js/ui/status/network.js:101
|
||||
msgid "<unknown>"
|
||||
msgstr "<nieznane>"
|
||||
@ -1382,10 +1468,6 @@ msgstr "Wybierz sieć"
|
||||
msgid "Wi-Fi Settings"
|
||||
msgstr "Ustawienia sieci Wi-Fi"
|
||||
|
||||
#: ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Włącz"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:1296
|
||||
#, javascript-format
|
||||
@ -1435,32 +1517,37 @@ msgstr "Połączenie się nie powiodło"
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Aktywacja połączenia sieciowego się nie powiodła"
|
||||
|
||||
#: ../js/ui/status/power.js:49
|
||||
#: ../js/ui/status/power.js:61
|
||||
msgid "Power Settings"
|
||||
msgstr "Ustawienia zasilania"
|
||||
|
||||
#: ../js/ui/status/power.js:65
|
||||
#: ../js/ui/status/power.js:77
|
||||
msgid "Fully Charged"
|
||||
msgstr "Naładowane"
|
||||
|
||||
#. 0 is reported when UPower does not have enough data
|
||||
#. to estimate battery life
|
||||
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
|
||||
#: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
|
||||
msgid "Estimating…"
|
||||
msgstr "Obliczanie…"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
#: ../js/ui/status/power.js:86
|
||||
#: ../js/ui/status/power.js:98
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Remaining (%d%%)"
|
||||
msgid "%d∶%02d Remaining (%d %%)"
|
||||
msgstr "Pozostało: %d∶%02d (%d%%)"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
#: ../js/ui/status/power.js:91
|
||||
#: ../js/ui/status/power.js:103
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Until Full (%d%%)"
|
||||
msgid "%d∶%02d Until Full (%d %%)"
|
||||
msgstr "Do naładowania: %d∶%02d (%d%%)"
|
||||
|
||||
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
|
||||
#, javascript-format
|
||||
msgid "%d %%"
|
||||
msgstr "%d%%"
|
||||
|
||||
#. 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.
|
||||
@ -1500,10 +1587,6 @@ msgstr "Zmieniono głośność"
|
||||
msgid "Volume"
|
||||
msgstr "Głośność"
|
||||
|
||||
#: ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "Mikrofon"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:67
|
||||
msgid "Log in as another user"
|
||||
msgstr "Zaloguj jako inny użytkownik"
|
||||
@ -1625,7 +1708,7 @@ msgstr "Kalendarz programu Evolution"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound outputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1837
|
||||
#: ../src/gvc/gvc-mixer-control.c:1835
|
||||
#, c-format
|
||||
msgid "%u Output"
|
||||
msgid_plural "%u Outputs"
|
||||
@ -1635,7 +1718,7 @@ msgstr[2] "%u wyjść"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound inputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1847
|
||||
#: ../src/gvc/gvc-mixer-control.c:1845
|
||||
#, c-format
|
||||
msgid "%u Input"
|
||||
msgid_plural "%u Inputs"
|
||||
@ -1643,44 +1726,44 @@ msgstr[0] "%u wejście"
|
||||
msgstr[1] "%u wejścia"
|
||||
msgstr[2] "%u wejść"
|
||||
|
||||
#: ../src/gvc/gvc-mixer-control.c:2373
|
||||
#: ../src/gvc/gvc-mixer-control.c:2371
|
||||
msgid "System Sounds"
|
||||
msgstr "Dźwięki systemowe"
|
||||
|
||||
#: ../src/main.c:373
|
||||
#: ../src/main.c:381
|
||||
msgid "Print version"
|
||||
msgstr "Wyświetla wersję"
|
||||
|
||||
#: ../src/main.c:379
|
||||
#: ../src/main.c:387
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "Tryb używany przez GDM dla ekranu logowania"
|
||||
|
||||
#: ../src/main.c:385
|
||||
#: ../src/main.c:393
|
||||
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
|
||||
msgstr "Używa podanego trybu, np. „gdm” dla ekranu logowania"
|
||||
|
||||
#: ../src/main.c:391
|
||||
#: ../src/main.c:399
|
||||
msgid "List possible modes"
|
||||
msgstr "Wyświetla listę możliwych trybów"
|
||||
|
||||
#: ../src/shell-app.c:239
|
||||
#: ../src/shell-app.c:246
|
||||
msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "Nieznany"
|
||||
|
||||
#: ../src/shell-app.c:480
|
||||
#: ../src/shell-app.c:487
|
||||
#, c-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Uruchomienie „%s” się nie powiodło"
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:742
|
||||
#: ../src/shell-keyring-prompt.c:730
|
||||
msgid "Passwords do not match."
|
||||
msgstr "Hasła się nie zgadzają."
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:750
|
||||
#: ../src/shell-keyring-prompt.c:738
|
||||
msgid "Password cannot be blank"
|
||||
msgstr "Hasło nie może być puste"
|
||||
|
||||
#: ../src/shell-polkit-authentication-agent.c:346
|
||||
#: ../src/shell-polkit-authentication-agent.c:353
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "Okno dialogowe uwierzytelnienia zostało odrzucone przez użytkownika"
|
||||
|
746
po/pt_BR.po
746
po/pt_BR.po
File diff suppressed because it is too large
Load Diff
382
po/sr.po
382
po/sr.po
@ -1,28 +1,28 @@
|
||||
# Serbian translation for gnome-shell.
|
||||
# Courtesy of Prevod.org team (http://prevod.org/) -- 2010—2015.
|
||||
# Courtesy of Prevod.org team (http://prevod.org/) -- 2010—2016.
|
||||
# Copyright (C) 2010 gnome-shell's COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the gnome-shell package.
|
||||
#
|
||||
# Translators:
|
||||
# Милош Поповић <gpopac@gmail.com>, 2010—2011.
|
||||
# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011—2015.
|
||||
# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011—2016.
|
||||
# Марко М. Костић <marko.m.kostic@gmail.com>, 2016.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell master\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||
"shell&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2015-09-22 08:38+0000\n"
|
||||
"PO-Revision-Date: 2015-09-22 13:35+0200\n"
|
||||
"Last-Translator: Марко М. Костић (Marko M. Kostić) <marko.m.kostic@gmail."
|
||||
"com>\n"
|
||||
"Language-Team: Serbian <gnom@prevod.org>\n"
|
||||
"POT-Creation-Date: 2016-03-10 22:19+0000\n"
|
||||
"PO-Revision-Date: 2016-03-11 02:53+0200\n"
|
||||
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
|
||||
"Language-Team: Serbian <(gnom@prevod.org)>\n"
|
||||
"Language: sr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n"
|
||||
"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : "
|
||||
"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
"X-Generator: Poedit 1.8.4\n"
|
||||
"X-Poedit-Bookmarks: -1,224,-1,-1,-1,-1,-1,-1,-1,-1\n"
|
||||
|
||||
#: ../data/50-gnome-shell-system.xml.in.h:1
|
||||
msgid "System"
|
||||
@ -48,15 +48,6 @@ msgstr "Прикажи све програме"
|
||||
msgid "Open the application menu"
|
||||
msgstr "Отворите изборник програма"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "Гномова шкољка"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:2
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Управник прозорима и покретач програма"
|
||||
|
||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
||||
msgid "GNOME Shell Extension Preferences"
|
||||
msgstr "Поставке проширења Гномове шкољке"
|
||||
@ -65,9 +56,13 @@ msgstr "Поставке проширења Гномове шкољке"
|
||||
msgid "Configure GNOME Shell Extensions"
|
||||
msgstr "Подесите проширења Гномове шкољке"
|
||||
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
|
||||
msgid "GNOME Shell (wayland compositor)"
|
||||
msgstr "Гномова шкољка (вајланд састављач)"
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "Гномова шкољка"
|
||||
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Управник прозорима и покретач програма"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
|
||||
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
||||
@ -172,74 +167,91 @@ msgstr ""
|
||||
"поља за избор."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
msgid ""
|
||||
"Whether the default Bluetooth adapter had set up devices associated to it"
|
||||
msgstr "Да ли је основни адаптер блутута подесио њему придружене уређаје"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
msgid ""
|
||||
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
|
||||
"powered, or if there were devices set up associated with the default "
|
||||
"adapter. This will be reset if the default adapter is ever seen not to have "
|
||||
"devices associated to it."
|
||||
msgstr ""
|
||||
"Шкољка ће приказати ставку изборника блутута само ако је адаптер блутута "
|
||||
"упаљен, или ако има подешених уређаја придружених основном адаптеру. Ово ће "
|
||||
"се вратити на почетно стање ако се установи да основни адаптер нема њему "
|
||||
"придружених уређаја."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "Приказује дан у недељи у календару"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgstr "Ако је изабрано, приказује ИСО дан у недељи у календару."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
msgid "Keybinding to open the application menu"
|
||||
msgstr "Пречица за отварање изборника програма"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
msgid "Keybinding to open the application menu."
|
||||
msgstr "Пречица за отварање изборника програма."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
msgid "Keybinding to open the \"Show Applications\" view"
|
||||
msgstr "Пречица за отварање прегледа „Прикажи програме“"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
msgid ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
msgstr "Пречица за отварање прегледа „Прикажи програме“ у прегледу активности."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
msgid "Keybinding to open the overview"
|
||||
msgstr "Пречица за отварање прегледа"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
msgid "Keybinding to open the Activities Overview."
|
||||
msgstr "Пречица за отварање прегледа активности."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
msgid "Keybinding to toggle the visibility of the notification list"
|
||||
msgstr "Пречица за окидање видљивости списка обавештења"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
msgid "Keybinding to toggle the visibility of the notification list."
|
||||
msgstr "Пречица за окидање видљивости списка обавештења."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
msgid "Keybinding to focus the active notification"
|
||||
msgstr "Пречица за постављање у жижу радног обавештења"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
msgid "Keybinding to focus the active notification."
|
||||
msgstr "Пречица за постављање у жижу радног обавештења."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
msgid ""
|
||||
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
|
||||
msgstr ""
|
||||
"Свеза тастера која паузира и наставља све покренуте близанце, за сврхе "
|
||||
"прочишћавања"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
msgid "Which keyboard to use"
|
||||
msgstr "Која ће тастатура бити коришћена"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
msgid "The type of keyboard to use."
|
||||
msgstr "Врста тастатуре за употребу."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
msgid "Limit switcher to current workspace."
|
||||
msgstr "Ограничава пребацивача на текући радни простор."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid ""
|
||||
"If true, only applications that have windows on the current workspace are "
|
||||
"shown in the switcher. Otherwise, all applications are included."
|
||||
@ -247,11 +259,11 @@ msgstr ""
|
||||
"Ако је изабрано, само програми који имају прозоре на текућем радном простору "
|
||||
"се приказују у пребацивачу. У супротном, сви програми су укључени."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid "The application icon mode."
|
||||
msgstr "Режим иконице програма."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
@ -261,7 +273,7 @@ msgstr ""
|
||||
"„thumbnail-only“ (приказује сличицу прозора), „app-icon-only“ (приказује "
|
||||
"само иконицу програма) или „both“ (оба)."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
msgid ""
|
||||
"If true, only windows from the current workspace are shown in the switcher. "
|
||||
"Otherwise, all windows are included."
|
||||
@ -269,30 +281,30 @@ msgstr ""
|
||||
"Ако је изабрано, само прозори са текућег радног простора се приказују у "
|
||||
"пребацивачу. У супротном, сви прозори су укључени."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "Прикачиње прозорче родитељском прозору"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr ""
|
||||
"Овај кључ превазилази кључ у „org.gnome.mutter“ када покреће Гномову шкољку."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr ""
|
||||
"Укључује поплочавање ивице приликом отпуштања прозора на ивицама екрана"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Радним просторима се управља динамички"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "Радни простори само на примарном монитору"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
msgstr "Застој првог плана се мења у режиму миша док се показивач не заустави"
|
||||
|
||||
@ -300,51 +312,52 @@ msgstr "Застој првог плана се мења у режиму миш
|
||||
msgid "Network Login"
|
||||
msgstr "Мрежна пријава"
|
||||
|
||||
#: ../js/extensionPrefs/main.js:122
|
||||
#: ../js/extensionPrefs/main.js:117
|
||||
#, javascript-format
|
||||
msgid "There was an error loading the preferences dialog for %s:"
|
||||
msgstr "Дошло је до грешке при учитавању прозорчета поставки за „%s“:"
|
||||
|
||||
#: ../js/extensionPrefs/main.js:154
|
||||
#: ../js/extensionPrefs/main.js:149
|
||||
msgid "GNOME Shell Extensions"
|
||||
msgstr "Проширења Гномове шкољке"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
|
||||
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
|
||||
#: ../js/ui/components/networkAgent.js:145
|
||||
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
|
||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||
#: ../js/ui/status/network.js:916
|
||||
msgid "Cancel"
|
||||
msgstr "Откажи"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
|
||||
#: ../js/gdm/authPrompt.js:447
|
||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
|
||||
#: ../js/gdm/authPrompt.js:448
|
||||
msgid "Next"
|
||||
msgstr "Даље"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/ui/unlockDialog.js:59
|
||||
msgid "Unlock"
|
||||
msgstr "Откључај"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:213
|
||||
#: ../js/gdm/authPrompt.js:214
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Пријави ме"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:281
|
||||
#: ../js/gdm/loginDialog.js:285
|
||||
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:431
|
||||
#: ../js/gdm/loginDialog.js:435
|
||||
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:850
|
||||
#: ../js/gdm/loginDialog.js:854
|
||||
#, javascript-format
|
||||
msgid "(e.g., user or %s)"
|
||||
msgstr "(нпр., корисник или %s)"
|
||||
@ -352,12 +365,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:855 ../js/ui/components/networkAgent.js:271
|
||||
#: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
|
||||
#: ../js/ui/components/networkAgent.js:289
|
||||
msgid "Username: "
|
||||
msgstr "Корисничко име: "
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1184
|
||||
#: ../js/gdm/loginDialog.js:1196
|
||||
msgid "Login Window"
|
||||
msgstr "Прозор за пријављивање"
|
||||
|
||||
@ -493,16 +506,36 @@ msgstr "Додај у омиљене"
|
||||
msgid "Show Details"
|
||||
msgstr "Прикажи детаље"
|
||||
|
||||
#: ../js/ui/appFavorites.js:132
|
||||
#: ../js/ui/appFavorites.js:134
|
||||
#, javascript-format
|
||||
msgid "%s has been added to your favorites."
|
||||
msgstr "„%s“ је додат међу омиљене."
|
||||
|
||||
#: ../js/ui/appFavorites.js:166
|
||||
#: ../js/ui/appFavorites.js:168
|
||||
#, javascript-format
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "„%s“ је уклоњен из омиљених."
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:59
|
||||
msgid "Select Audio Device"
|
||||
msgstr "Изаберите звучни уређај"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:69
|
||||
msgid "Sound Settings"
|
||||
msgstr "Подешавања звука"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:78
|
||||
msgid "Headphones"
|
||||
msgstr "Слушалице"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:80
|
||||
msgid "Headset"
|
||||
msgstr "Слушалице са микрофоном"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "Микрофон"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:19
|
||||
msgid "Change Background…"
|
||||
msgstr "Измени позадину…"
|
||||
@ -511,13 +544,12 @@ msgstr "Измени позадину…"
|
||||
msgid "Display Settings"
|
||||
msgstr "Подешавања приказа"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
|
||||
#: ../js/ui/status/system.js:366
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
|
||||
msgid "Settings"
|
||||
msgstr "Подешавања"
|
||||
|
||||
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
|
||||
#: ../js/ui/calendar.js:55
|
||||
#: ../js/ui/calendar.js:47
|
||||
msgctxt "calendar-no-work"
|
||||
msgid "06"
|
||||
msgstr "06"
|
||||
@ -527,94 +559,96 @@ msgstr "06"
|
||||
#. * NOTE: These grid abbreviations are always shown together
|
||||
#. * and in order, e.g. "S M T W T F S".
|
||||
#.
|
||||
#: ../js/ui/calendar.js:84
|
||||
#: ../js/ui/calendar.js:76
|
||||
msgctxt "grid sunday"
|
||||
msgid "S"
|
||||
msgstr "Н"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Monday
|
||||
#: ../js/ui/calendar.js:86
|
||||
#: ../js/ui/calendar.js:78
|
||||
msgctxt "grid monday"
|
||||
msgid "M"
|
||||
msgstr "П"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Tuesday
|
||||
#: ../js/ui/calendar.js:88
|
||||
#: ../js/ui/calendar.js:80
|
||||
msgctxt "grid tuesday"
|
||||
msgid "T"
|
||||
msgstr "У"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Wednesday
|
||||
#: ../js/ui/calendar.js:90
|
||||
#: ../js/ui/calendar.js:82
|
||||
msgctxt "grid wednesday"
|
||||
msgid "W"
|
||||
msgstr "С"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Thursday
|
||||
#: ../js/ui/calendar.js:92
|
||||
#: ../js/ui/calendar.js:84
|
||||
msgctxt "grid thursday"
|
||||
msgid "T"
|
||||
msgstr "Ч"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Friday
|
||||
#: ../js/ui/calendar.js:94
|
||||
#: ../js/ui/calendar.js:86
|
||||
msgctxt "grid friday"
|
||||
msgid "F"
|
||||
msgstr "П"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Saturday
|
||||
#: ../js/ui/calendar.js:96
|
||||
#: ../js/ui/calendar.js:88
|
||||
msgctxt "grid saturday"
|
||||
msgid "S"
|
||||
msgstr "С"
|
||||
|
||||
#: ../js/ui/calendar.js:566
|
||||
#: ../js/ui/calendar.js:416
|
||||
msgid "Previous month"
|
||||
msgstr "Претходни месец"
|
||||
|
||||
#: ../js/ui/calendar.js:576
|
||||
#: ../js/ui/calendar.js:426
|
||||
msgid "Next month"
|
||||
msgstr "Следећи месец"
|
||||
|
||||
#: ../js/ui/calendar.js:783
|
||||
#: ../js/ui/calendar.js:579
|
||||
#, no-javascript-format
|
||||
msgctxt "date day number format"
|
||||
msgid "%d"
|
||||
msgstr "%d"
|
||||
|
||||
#: ../js/ui/calendar.js:634
|
||||
msgid "Week %V"
|
||||
msgstr "Седмица %V"
|
||||
|
||||
#. Translators: Shown in calendar event list for all day events
|
||||
#. * Keep it short, best if you can use less then 10 characters
|
||||
#.
|
||||
#: ../js/ui/calendar.js:1188
|
||||
#: ../js/ui/calendar.js:695
|
||||
msgctxt "event list time"
|
||||
msgid "All Day"
|
||||
msgstr "Цео дан"
|
||||
|
||||
#: ../js/ui/calendar.js:1291
|
||||
msgid "Clear section"
|
||||
msgstr "Очисти одељак"
|
||||
|
||||
#: ../js/ui/calendar.js:1518
|
||||
#: ../js/ui/calendar.js:821
|
||||
msgid "Events"
|
||||
msgstr "Догађаји"
|
||||
|
||||
#: ../js/ui/calendar.js:1527
|
||||
#: ../js/ui/calendar.js:830
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, %d. %B"
|
||||
|
||||
#: ../js/ui/calendar.js:1531
|
||||
#: ../js/ui/calendar.js:834
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d, %Y"
|
||||
msgstr "%A, %d. %B %Y."
|
||||
|
||||
#: ../js/ui/calendar.js:1616
|
||||
#: ../js/ui/calendar.js:919
|
||||
msgid "Notifications"
|
||||
msgstr "Обавештења"
|
||||
|
||||
#: ../js/ui/calendar.js:1767
|
||||
#: ../js/ui/calendar.js:1070
|
||||
msgid "No Notifications"
|
||||
msgstr "Без обавештења"
|
||||
|
||||
#: ../js/ui/calendar.js:1770
|
||||
#: ../js/ui/calendar.js:1073
|
||||
msgid "No Events"
|
||||
msgstr "Без догађаја"
|
||||
|
||||
@ -626,7 +660,7 @@ msgstr "Спољни уређај је прикључен"
|
||||
msgid "External drive disconnected"
|
||||
msgstr "Спољни уређај је искључен"
|
||||
|
||||
#: ../js/ui/components/autorunManager.js:354
|
||||
#: ../js/ui/components/autorunManager.js:355
|
||||
#, javascript-format
|
||||
msgid "Open with %s"
|
||||
msgstr "Отвори програмом %s"
|
||||
@ -948,11 +982,11 @@ msgid "Keyboard"
|
||||
msgstr "Тастатура"
|
||||
|
||||
#. translators: 'Hide' is a verb
|
||||
#: ../js/ui/legacyTray.js:66
|
||||
#: ../js/ui/legacyTray.js:65
|
||||
msgid "Hide tray"
|
||||
msgstr "Сакриј касету"
|
||||
|
||||
#: ../js/ui/legacyTray.js:107
|
||||
#: ../js/ui/legacyTray.js:106
|
||||
msgid "Status Icons"
|
||||
msgstr "Иконице стања"
|
||||
|
||||
@ -980,7 +1014,7 @@ msgstr "Укључено"
|
||||
|
||||
#. translators:
|
||||
#. * The device has been disabled
|
||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
|
||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
|
||||
msgid "Disabled"
|
||||
msgstr "Искључено"
|
||||
|
||||
@ -1004,10 +1038,26 @@ msgstr "Прикажи код"
|
||||
msgid "Web Page"
|
||||
msgstr "Веб страница"
|
||||
|
||||
#: ../js/ui/messageList.js:543
|
||||
msgid "Clear section"
|
||||
msgstr "Очисти одељак"
|
||||
|
||||
#: ../js/ui/messageTray.js:1486
|
||||
msgid "System Information"
|
||||
msgstr "Подаци о систему"
|
||||
|
||||
#: ../js/ui/mpris.js:194
|
||||
msgid "Unknown artist"
|
||||
msgstr "Непознат извођач"
|
||||
|
||||
#: ../js/ui/mpris.js:195
|
||||
msgid "Unknown title"
|
||||
msgstr "Непознат наслов"
|
||||
|
||||
#: ../js/ui/mpris.js:217
|
||||
msgid "Media"
|
||||
msgstr "Медији"
|
||||
|
||||
#: ../js/ui/overview.js:84
|
||||
msgid "Undo"
|
||||
msgstr "Опозови"
|
||||
@ -1024,17 +1074,22 @@ msgstr "Преглед"
|
||||
msgid "Type to search…"
|
||||
msgstr "Упишите текст за претрагу…"
|
||||
|
||||
#: ../js/ui/panel.js:352
|
||||
#: ../js/ui/panel.js:358
|
||||
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:404
|
||||
#: ../js/ui/panel.js:414
|
||||
msgid "Activities"
|
||||
msgstr "Активности"
|
||||
|
||||
#: ../js/ui/panel.js:754
|
||||
#: ../js/ui/panel.js:695
|
||||
msgctxt "System menu in the top bar"
|
||||
msgid "System"
|
||||
msgstr "Систем"
|
||||
|
||||
#: ../js/ui/panel.js:807
|
||||
msgid "Top Bar"
|
||||
msgstr "Горња трака"
|
||||
|
||||
@ -1047,15 +1102,15 @@ msgstr "Горња трака"
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
#: ../js/ui/runDialog.js:70
|
||||
#: ../js/ui/runDialog.js:71
|
||||
msgid "Enter a Command"
|
||||
msgstr "Унесите наредбу"
|
||||
|
||||
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
|
||||
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
|
||||
msgid "Close"
|
||||
msgstr "Затвори"
|
||||
|
||||
#: ../js/ui/runDialog.js:281
|
||||
#: ../js/ui/runDialog.js:282
|
||||
msgid "Restarting…"
|
||||
msgstr "Поновно покрећем…"
|
||||
|
||||
@ -1182,19 +1237,16 @@ msgstr "Велики контраст"
|
||||
msgid "Large Text"
|
||||
msgstr "Велики текст"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Искључи"
|
||||
#: ../js/ui/status/bluetooth.js:47
|
||||
msgid "Bluetooth"
|
||||
msgstr "Блутут"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:54
|
||||
#: ../js/ui/status/bluetooth.js:56
|
||||
msgid "Bluetooth Settings"
|
||||
msgstr "Подешавања Блутута"
|
||||
|
||||
#. Translators: this is the number of connected bluetooth devices
|
||||
#: ../js/ui/status/bluetooth.js:105
|
||||
#: ../js/ui/status/bluetooth.js:136
|
||||
#, javascript-format
|
||||
msgid "%d Connected"
|
||||
msgid_plural "%d Connected"
|
||||
@ -1203,10 +1255,25 @@ msgstr[1] "%d повезана"
|
||||
msgstr[2] "%d повезано"
|
||||
msgstr[3] "%d повезан"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:107
|
||||
#: ../js/ui/status/bluetooth.js:138
|
||||
msgid "Off"
|
||||
msgstr "Искљ."
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:140
|
||||
msgid "Not In Use"
|
||||
msgstr "Није у употреби"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Укључи"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Искључи"
|
||||
|
||||
#: ../js/ui/status/brightness.js:44
|
||||
msgid "Brightness"
|
||||
msgstr "Осветљеност"
|
||||
@ -1215,30 +1282,50 @@ msgstr "Осветљеност"
|
||||
msgid "Show Keyboard Layout"
|
||||
msgstr "Покажи распоред тастатуре"
|
||||
|
||||
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
|
||||
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
|
||||
msgid "Location Enabled"
|
||||
msgstr "Одређивање места укључено"
|
||||
|
||||
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
|
||||
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
|
||||
msgid "Disable"
|
||||
msgstr "Искључи"
|
||||
|
||||
#: ../js/ui/status/location.js:73
|
||||
#: ../js/ui/status/location.js:109
|
||||
msgid "Privacy Settings"
|
||||
msgstr "Подешавања приватности"
|
||||
|
||||
#: ../js/ui/status/location.js:176
|
||||
#: ../js/ui/status/location.js:214
|
||||
msgid "Location In Use"
|
||||
msgstr "Одређивање места се користи"
|
||||
|
||||
#: ../js/ui/status/location.js:180
|
||||
#: ../js/ui/status/location.js:218
|
||||
msgid "Location Disabled"
|
||||
msgstr "Одређивање места искључено"
|
||||
|
||||
#: ../js/ui/status/location.js:181
|
||||
#: ../js/ui/status/location.js:219
|
||||
msgid "Enable"
|
||||
msgstr "Укључи"
|
||||
|
||||
#: ../js/ui/status/location.js:426
|
||||
msgid "Deny Access"
|
||||
msgstr "Забрани приступ"
|
||||
|
||||
#: ../js/ui/status/location.js:429
|
||||
msgid "Grant Access"
|
||||
msgstr "Дозволи приступ"
|
||||
|
||||
#. Translators: %s is an application name
|
||||
#: ../js/ui/status/location.js:435
|
||||
#, javascript-format
|
||||
msgid "Give %s access to your location?"
|
||||
msgstr "Да ли да „%s“ дам приступ вашем месту?"
|
||||
|
||||
#: ../js/ui/status/location.js:437
|
||||
msgid "Location access can be changed at any time from the privacy settings."
|
||||
msgstr ""
|
||||
"Приступ месту можете да измените у било које време у подешавањима "
|
||||
"приватности."
|
||||
|
||||
#: ../js/ui/status/network.js:101
|
||||
msgid "<unknown>"
|
||||
msgstr "<непознато>"
|
||||
@ -1374,10 +1461,6 @@ msgstr "Изабери мрежу"
|
||||
msgid "Wi-Fi Settings"
|
||||
msgstr "Подешавања бежичне везе"
|
||||
|
||||
#: ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Укључи"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:1296
|
||||
#, javascript-format
|
||||
@ -1427,31 +1510,36 @@ msgstr "Повезивање није успело"
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Активирање мрежне везе није успело"
|
||||
|
||||
#: ../js/ui/status/power.js:49
|
||||
#: ../js/ui/status/power.js:61
|
||||
msgid "Power Settings"
|
||||
msgstr "Подешавања напајања"
|
||||
|
||||
#: ../js/ui/status/power.js:65
|
||||
#: ../js/ui/status/power.js:77
|
||||
msgid "Fully Charged"
|
||||
msgstr "Потпуно пуна"
|
||||
|
||||
#. 0 is reported when UPower does not have enough data
|
||||
#. to estimate battery life
|
||||
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
|
||||
#: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
|
||||
msgid "Estimating…"
|
||||
msgstr "Приближно…"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
#: ../js/ui/status/power.js:86
|
||||
#: ../js/ui/status/power.js:98
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Remaining (%d%%)"
|
||||
msgstr "Преостаје %d:%02d (%d%%)"
|
||||
msgid "%d∶%02d Remaining (%d %%)"
|
||||
msgstr "Преостало време %d:%02d (%d %%)"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
#: ../js/ui/status/power.js:91
|
||||
#: ../js/ui/status/power.js:103
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Until Full (%d%%)"
|
||||
msgstr "%d:%02d до краја пуњења (%d%%)"
|
||||
msgid "%d∶%02d Until Full (%d %%)"
|
||||
msgstr "%d:%02d до краја пуњења (%d %%)"
|
||||
|
||||
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
|
||||
#, javascript-format
|
||||
msgid "%d %%"
|
||||
msgstr "%d %%"
|
||||
|
||||
#. The menu only appears when airplane mode is on, so just
|
||||
#. statically build it as if it was on, rather than dynamically
|
||||
@ -1492,13 +1580,9 @@ msgstr "Промена јачине звука"
|
||||
msgid "Volume"
|
||||
msgstr "Јачина звука"
|
||||
|
||||
#: ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "Микрофон"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:67
|
||||
msgid "Log in as another user"
|
||||
msgstr "Пријавите се као други корсник"
|
||||
msgstr "Пријавите се као други корисник"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:84
|
||||
msgid "Unlock Window"
|
||||
@ -1618,7 +1702,7 @@ msgstr "Календар Еволуције"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound outputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1837
|
||||
#: ../src/gvc/gvc-mixer-control.c:1835
|
||||
#, c-format
|
||||
msgid "%u Output"
|
||||
msgid_plural "%u Outputs"
|
||||
@ -1629,7 +1713,7 @@ msgstr[3] "%u излаз"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound inputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1847
|
||||
#: ../src/gvc/gvc-mixer-control.c:1845
|
||||
#, c-format
|
||||
msgid "%u Input"
|
||||
msgid_plural "%u Inputs"
|
||||
@ -1638,50 +1722,53 @@ msgstr[1] "%u улаза"
|
||||
msgstr[2] "%u улаза"
|
||||
msgstr[3] "%u улаз"
|
||||
|
||||
#: ../src/gvc/gvc-mixer-control.c:2373
|
||||
#: ../src/gvc/gvc-mixer-control.c:2371
|
||||
msgid "System Sounds"
|
||||
msgstr "Системски звуци"
|
||||
|
||||
#: ../src/main.c:373
|
||||
#: ../src/main.c:381
|
||||
msgid "Print version"
|
||||
msgstr "Исписује издање"
|
||||
|
||||
#: ../src/main.c:379
|
||||
#: ../src/main.c:387
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "Који режим користи ГДМ за екран пријављивања"
|
||||
|
||||
#: ../src/main.c:385
|
||||
#: ../src/main.c:393
|
||||
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
|
||||
msgstr "Користи нарочит режим, нпр. „gdm“ за екран пријављивања"
|
||||
|
||||
#: ../src/main.c:391
|
||||
#: ../src/main.c:399
|
||||
msgid "List possible modes"
|
||||
msgstr "Исписује могуће режиме"
|
||||
|
||||
#: ../src/shell-app.c:239
|
||||
#: ../src/shell-app.c:246
|
||||
msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "Непознат"
|
||||
|
||||
#: ../src/shell-app.c:480
|
||||
#: ../src/shell-app.c:487
|
||||
#, c-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Нисам успео да покренем „%s“"
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:742
|
||||
#: ../src/shell-keyring-prompt.c:730
|
||||
msgid "Passwords do not match."
|
||||
msgstr "Лозинке се не подударају."
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:750
|
||||
#: ../src/shell-keyring-prompt.c:738
|
||||
msgid "Password cannot be blank"
|
||||
msgstr "Лозинка не може бити празна"
|
||||
|
||||
#: ../src/shell-polkit-authentication-agent.c:346
|
||||
#: ../src/shell-polkit-authentication-agent.c:353
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "Корисник је одбацио прозорче за потврђивање идентитета"
|
||||
|
||||
#~ msgid "Bluetooth"
|
||||
#~ msgstr "Блутут"
|
||||
#~ msgid "%s is requesting access to your location."
|
||||
#~ msgstr "„%s“ захтева приступ вашем месту."
|
||||
|
||||
#~ msgid "GNOME Shell (wayland compositor)"
|
||||
#~ msgstr "Гномова шкољка (вајланд састављач)"
|
||||
|
||||
#~ msgid "%d Connected Device"
|
||||
#~ msgid_plural "%d Connected Devices"
|
||||
@ -1690,9 +1777,6 @@ msgstr "Корисник је одбацио прозорче за потврђ
|
||||
#~ msgstr[2] "%d прикључених уређаја"
|
||||
#~ msgstr[3] "%d прикључени уређај"
|
||||
|
||||
#~ msgid "Off"
|
||||
#~ msgstr "Искљ."
|
||||
|
||||
#~ msgid "Authentication required"
|
||||
#~ msgstr "Потребно је потврђивање идентитета"
|
||||
|
||||
@ -1898,9 +1982,6 @@ msgstr "Корисник је одбацио прозорче за потврђ
|
||||
#~ msgid "View account"
|
||||
#~ msgstr "Види налог"
|
||||
|
||||
#~ msgid "Unknown reason"
|
||||
#~ msgstr "Непознат разлог"
|
||||
|
||||
#~ msgid "Open Calendar"
|
||||
#~ msgstr "Отвори календар"
|
||||
|
||||
@ -2002,9 +2083,6 @@ msgstr "Корисник је одбацио прозорче за потврђ
|
||||
#~ msgid "Device %s wants access to the service '%s'"
|
||||
#~ msgstr "Уређај „%s“ жели приступ услузи „%s“"
|
||||
|
||||
#~ msgid "Always grant access"
|
||||
#~ msgstr "Увек дозволи приступ"
|
||||
|
||||
#~ msgid "Grant this time only"
|
||||
#~ msgstr "Одобри само овај пут"
|
||||
|
||||
|
382
po/sr@latin.po
382
po/sr@latin.po
@ -1,28 +1,28 @@
|
||||
# Serbian translation for gnome-shell.
|
||||
# Courtesy of Prevod.org team (http://prevod.org/) -- 2010—2015.
|
||||
# Courtesy of Prevod.org team (http://prevod.org/) -- 2010—2016.
|
||||
# Copyright (C) 2010 gnome-shell's COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the gnome-shell package.
|
||||
#
|
||||
# Translators:
|
||||
# Miloš Popović <gpopac@gmail.com>, 2010—2011.
|
||||
# Miroslav Nikolić <miroslavnikolic@rocketmail.com>, 2011—2015.
|
||||
# Miroslav Nikolić <miroslavnikolic@rocketmail.com>, 2011—2016.
|
||||
# Marko M. Kostić <marko.m.kostic@gmail.com>, 2016.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell master\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||
"shell&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2015-09-22 08:38+0000\n"
|
||||
"PO-Revision-Date: 2015-09-22 13:35+0200\n"
|
||||
"Last-Translator: Marko M. Kostić (Marko M. Kostić) <marko.m.kostic@gmail."
|
||||
"com>\n"
|
||||
"Language-Team: Serbian <gnom@prevod.org>\n"
|
||||
"POT-Creation-Date: 2016-03-10 22:19+0000\n"
|
||||
"PO-Revision-Date: 2016-03-11 02:53+0200\n"
|
||||
"Last-Translator: Miroslav Nikolić <miroslavnikolic@rocketmail.com>\n"
|
||||
"Language-Team: Serbian <(gnom@prevod.org)>\n"
|
||||
"Language: sr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n"
|
||||
"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : "
|
||||
"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
"X-Generator: Poedit 1.8.4\n"
|
||||
"X-Poedit-Bookmarks: -1,224,-1,-1,-1,-1,-1,-1,-1,-1\n"
|
||||
|
||||
#: ../data/50-gnome-shell-system.xml.in.h:1
|
||||
msgid "System"
|
||||
@ -48,15 +48,6 @@ msgstr "Prikaži sve programe"
|
||||
msgid "Open the application menu"
|
||||
msgstr "Otvorite izbornik programa"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "Gnomova školjka"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:2
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Upravnik prozorima i pokretač programa"
|
||||
|
||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
||||
msgid "GNOME Shell Extension Preferences"
|
||||
msgstr "Postavke proširenja Gnomove školjke"
|
||||
@ -65,9 +56,13 @@ msgstr "Postavke proširenja Gnomove školjke"
|
||||
msgid "Configure GNOME Shell Extensions"
|
||||
msgstr "Podesite proširenja Gnomove školjke"
|
||||
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
|
||||
msgid "GNOME Shell (wayland compositor)"
|
||||
msgstr "Gnomova školjka (vajland sastavljač)"
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "Gnomova školjka"
|
||||
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Upravnik prozorima i pokretač programa"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
|
||||
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
||||
@ -172,74 +167,91 @@ msgstr ""
|
||||
"polja za izbor."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
msgid ""
|
||||
"Whether the default Bluetooth adapter had set up devices associated to it"
|
||||
msgstr "Da li je osnovni adapter blututa podesio njemu pridružene uređaje"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
msgid ""
|
||||
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
|
||||
"powered, or if there were devices set up associated with the default "
|
||||
"adapter. This will be reset if the default adapter is ever seen not to have "
|
||||
"devices associated to it."
|
||||
msgstr ""
|
||||
"Školjka će prikazati stavku izbornika blututa samo ako je adapter blututa "
|
||||
"upaljen, ili ako ima podešenih uređaja pridruženih osnovnom adapteru. Ovo će "
|
||||
"se vratiti na početno stanje ako se ustanovi da osnovni adapter nema njemu "
|
||||
"pridruženih uređaja."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "Prikazuje dan u nedelji u kalendaru"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgstr "Ako je izabrano, prikazuje ISO dan u nedelji u kalendaru."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
msgid "Keybinding to open the application menu"
|
||||
msgstr "Prečica za otvaranje izbornika programa"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
msgid "Keybinding to open the application menu."
|
||||
msgstr "Prečica za otvaranje izbornika programa."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
msgid "Keybinding to open the \"Show Applications\" view"
|
||||
msgstr "Prečica za otvaranje pregleda „Prikaži programe“"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
msgid ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
msgstr "Prečica za otvaranje pregleda „Prikaži programe“ u pregledu aktivnosti."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
msgid "Keybinding to open the overview"
|
||||
msgstr "Prečica za otvaranje pregleda"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
msgid "Keybinding to open the Activities Overview."
|
||||
msgstr "Prečica za otvaranje pregleda aktivnosti."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
msgid "Keybinding to toggle the visibility of the notification list"
|
||||
msgstr "Prečica za okidanje vidljivosti spiska obaveštenja"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
msgid "Keybinding to toggle the visibility of the notification list."
|
||||
msgstr "Prečica za okidanje vidljivosti spiska obaveštenja."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
msgid "Keybinding to focus the active notification"
|
||||
msgstr "Prečica za postavljanje u žižu radnog obaveštenja"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
msgid "Keybinding to focus the active notification."
|
||||
msgstr "Prečica za postavljanje u žižu radnog obaveštenja."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
msgid ""
|
||||
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
|
||||
msgstr ""
|
||||
"Sveza tastera koja pauzira i nastavlja sve pokrenute blizance, za svrhe "
|
||||
"pročišćavanja"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
msgid "Which keyboard to use"
|
||||
msgstr "Koja će tastatura biti korišćena"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
msgid "The type of keyboard to use."
|
||||
msgstr "Vrsta tastature za upotrebu."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
msgid "Limit switcher to current workspace."
|
||||
msgstr "Ograničava prebacivača na tekući radni prostor."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid ""
|
||||
"If true, only applications that have windows on the current workspace are "
|
||||
"shown in the switcher. Otherwise, all applications are included."
|
||||
@ -247,11 +259,11 @@ msgstr ""
|
||||
"Ako je izabrano, samo programi koji imaju prozore na tekućem radnom prostoru "
|
||||
"se prikazuju u prebacivaču. U suprotnom, svi programi su uključeni."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid "The application icon mode."
|
||||
msgstr "Režim ikonice programa."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
@ -261,7 +273,7 @@ msgstr ""
|
||||
"„thumbnail-only“ (prikazuje sličicu prozora), „app-icon-only“ (prikazuje "
|
||||
"samo ikonicu programa) ili „both“ (oba)."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
msgid ""
|
||||
"If true, only windows from the current workspace are shown in the switcher. "
|
||||
"Otherwise, all windows are included."
|
||||
@ -269,30 +281,30 @@ msgstr ""
|
||||
"Ako je izabrano, samo prozori sa tekućeg radnog prostora se prikazuju u "
|
||||
"prebacivaču. U suprotnom, svi prozori su uključeni."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "Prikačinje prozorče roditeljskom prozoru"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr ""
|
||||
"Ovaj ključ prevazilazi ključ u „org.gnome.mutter“ kada pokreće Gnomovu školjku."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr ""
|
||||
"Uključuje popločavanje ivice prilikom otpuštanja prozora na ivicama ekrana"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Radnim prostorima se upravlja dinamički"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "Radni prostori samo na primarnom monitoru"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
msgstr "Zastoj prvog plana se menja u režimu miša dok se pokazivač ne zaustavi"
|
||||
|
||||
@ -300,51 +312,52 @@ msgstr "Zastoj prvog plana se menja u režimu miša dok se pokazivač ne zaustav
|
||||
msgid "Network Login"
|
||||
msgstr "Mrežna prijava"
|
||||
|
||||
#: ../js/extensionPrefs/main.js:122
|
||||
#: ../js/extensionPrefs/main.js:117
|
||||
#, javascript-format
|
||||
msgid "There was an error loading the preferences dialog for %s:"
|
||||
msgstr "Došlo je do greške pri učitavanju prozorčeta postavki za „%s“:"
|
||||
|
||||
#: ../js/extensionPrefs/main.js:154
|
||||
#: ../js/extensionPrefs/main.js:149
|
||||
msgid "GNOME Shell Extensions"
|
||||
msgstr "Proširenja Gnomove školjke"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
|
||||
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
|
||||
#: ../js/ui/components/networkAgent.js:145
|
||||
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
|
||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||
#: ../js/ui/status/network.js:916
|
||||
msgid "Cancel"
|
||||
msgstr "Otkaži"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
|
||||
#: ../js/gdm/authPrompt.js:447
|
||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
|
||||
#: ../js/gdm/authPrompt.js:448
|
||||
msgid "Next"
|
||||
msgstr "Dalje"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/ui/unlockDialog.js:59
|
||||
msgid "Unlock"
|
||||
msgstr "Otključaj"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:213
|
||||
#: ../js/gdm/authPrompt.js:214
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Prijavi me"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:281
|
||||
#: ../js/gdm/loginDialog.js:285
|
||||
msgid "Choose Session"
|
||||
msgstr "Izaberi sesiju"
|
||||
|
||||
#. 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:431
|
||||
#: ../js/gdm/loginDialog.js:435
|
||||
msgid "Not listed?"
|
||||
msgstr "Nije na spisku?"
|
||||
|
||||
#. 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:850
|
||||
#: ../js/gdm/loginDialog.js:854
|
||||
#, javascript-format
|
||||
msgid "(e.g., user or %s)"
|
||||
msgstr "(npr., korisnik ili %s)"
|
||||
@ -352,12 +365,12 @@ msgstr "(npr., korisnik ili %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:855 ../js/ui/components/networkAgent.js:271
|
||||
#: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
|
||||
#: ../js/ui/components/networkAgent.js:289
|
||||
msgid "Username: "
|
||||
msgstr "Korisničko ime: "
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1184
|
||||
#: ../js/gdm/loginDialog.js:1196
|
||||
msgid "Login Window"
|
||||
msgstr "Prozor za prijavljivanje"
|
||||
|
||||
@ -493,16 +506,36 @@ msgstr "Dodaj u omiljene"
|
||||
msgid "Show Details"
|
||||
msgstr "Prikaži detalje"
|
||||
|
||||
#: ../js/ui/appFavorites.js:132
|
||||
#: ../js/ui/appFavorites.js:134
|
||||
#, javascript-format
|
||||
msgid "%s has been added to your favorites."
|
||||
msgstr "„%s“ je dodat među omiljene."
|
||||
|
||||
#: ../js/ui/appFavorites.js:166
|
||||
#: ../js/ui/appFavorites.js:168
|
||||
#, javascript-format
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "„%s“ je uklonjen iz omiljenih."
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:59
|
||||
msgid "Select Audio Device"
|
||||
msgstr "Izaberite zvučni uređaj"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:69
|
||||
msgid "Sound Settings"
|
||||
msgstr "Podešavanja zvuka"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:78
|
||||
msgid "Headphones"
|
||||
msgstr "Slušalice"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:80
|
||||
msgid "Headset"
|
||||
msgstr "Slušalice sa mikrofonom"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "Mikrofon"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:19
|
||||
msgid "Change Background…"
|
||||
msgstr "Izmeni pozadinu…"
|
||||
@ -511,13 +544,12 @@ msgstr "Izmeni pozadinu…"
|
||||
msgid "Display Settings"
|
||||
msgstr "Podešavanja prikaza"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
|
||||
#: ../js/ui/status/system.js:366
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
|
||||
msgid "Settings"
|
||||
msgstr "Podešavanja"
|
||||
|
||||
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
|
||||
#: ../js/ui/calendar.js:55
|
||||
#: ../js/ui/calendar.js:47
|
||||
msgctxt "calendar-no-work"
|
||||
msgid "06"
|
||||
msgstr "06"
|
||||
@ -527,94 +559,96 @@ msgstr "06"
|
||||
#. * NOTE: These grid abbreviations are always shown together
|
||||
#. * and in order, e.g. "S M T W T F S".
|
||||
#.
|
||||
#: ../js/ui/calendar.js:84
|
||||
#: ../js/ui/calendar.js:76
|
||||
msgctxt "grid sunday"
|
||||
msgid "S"
|
||||
msgstr "N"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Monday
|
||||
#: ../js/ui/calendar.js:86
|
||||
#: ../js/ui/calendar.js:78
|
||||
msgctxt "grid monday"
|
||||
msgid "M"
|
||||
msgstr "P"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Tuesday
|
||||
#: ../js/ui/calendar.js:88
|
||||
#: ../js/ui/calendar.js:80
|
||||
msgctxt "grid tuesday"
|
||||
msgid "T"
|
||||
msgstr "U"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Wednesday
|
||||
#: ../js/ui/calendar.js:90
|
||||
#: ../js/ui/calendar.js:82
|
||||
msgctxt "grid wednesday"
|
||||
msgid "W"
|
||||
msgstr "S"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Thursday
|
||||
#: ../js/ui/calendar.js:92
|
||||
#: ../js/ui/calendar.js:84
|
||||
msgctxt "grid thursday"
|
||||
msgid "T"
|
||||
msgstr "Č"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Friday
|
||||
#: ../js/ui/calendar.js:94
|
||||
#: ../js/ui/calendar.js:86
|
||||
msgctxt "grid friday"
|
||||
msgid "F"
|
||||
msgstr "P"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Saturday
|
||||
#: ../js/ui/calendar.js:96
|
||||
#: ../js/ui/calendar.js:88
|
||||
msgctxt "grid saturday"
|
||||
msgid "S"
|
||||
msgstr "S"
|
||||
|
||||
#: ../js/ui/calendar.js:566
|
||||
#: ../js/ui/calendar.js:416
|
||||
msgid "Previous month"
|
||||
msgstr "Prethodni mesec"
|
||||
|
||||
#: ../js/ui/calendar.js:576
|
||||
#: ../js/ui/calendar.js:426
|
||||
msgid "Next month"
|
||||
msgstr "Sledeći mesec"
|
||||
|
||||
#: ../js/ui/calendar.js:783
|
||||
#: ../js/ui/calendar.js:579
|
||||
#, no-javascript-format
|
||||
msgctxt "date day number format"
|
||||
msgid "%d"
|
||||
msgstr "%d"
|
||||
|
||||
#: ../js/ui/calendar.js:634
|
||||
msgid "Week %V"
|
||||
msgstr "Sedmica %V"
|
||||
|
||||
#. Translators: Shown in calendar event list for all day events
|
||||
#. * Keep it short, best if you can use less then 10 characters
|
||||
#.
|
||||
#: ../js/ui/calendar.js:1188
|
||||
#: ../js/ui/calendar.js:695
|
||||
msgctxt "event list time"
|
||||
msgid "All Day"
|
||||
msgstr "Ceo dan"
|
||||
|
||||
#: ../js/ui/calendar.js:1291
|
||||
msgid "Clear section"
|
||||
msgstr "Očisti odeljak"
|
||||
|
||||
#: ../js/ui/calendar.js:1518
|
||||
#: ../js/ui/calendar.js:821
|
||||
msgid "Events"
|
||||
msgstr "Događaji"
|
||||
|
||||
#: ../js/ui/calendar.js:1527
|
||||
#: ../js/ui/calendar.js:830
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, %d. %B"
|
||||
|
||||
#: ../js/ui/calendar.js:1531
|
||||
#: ../js/ui/calendar.js:834
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d, %Y"
|
||||
msgstr "%A, %d. %B %Y."
|
||||
|
||||
#: ../js/ui/calendar.js:1616
|
||||
#: ../js/ui/calendar.js:919
|
||||
msgid "Notifications"
|
||||
msgstr "Obaveštenja"
|
||||
|
||||
#: ../js/ui/calendar.js:1767
|
||||
#: ../js/ui/calendar.js:1070
|
||||
msgid "No Notifications"
|
||||
msgstr "Bez obaveštenja"
|
||||
|
||||
#: ../js/ui/calendar.js:1770
|
||||
#: ../js/ui/calendar.js:1073
|
||||
msgid "No Events"
|
||||
msgstr "Bez događaja"
|
||||
|
||||
@ -626,7 +660,7 @@ msgstr "Spoljni uređaj je priključen"
|
||||
msgid "External drive disconnected"
|
||||
msgstr "Spoljni uređaj je isključen"
|
||||
|
||||
#: ../js/ui/components/autorunManager.js:354
|
||||
#: ../js/ui/components/autorunManager.js:355
|
||||
#, javascript-format
|
||||
msgid "Open with %s"
|
||||
msgstr "Otvori programom %s"
|
||||
@ -948,11 +982,11 @@ msgid "Keyboard"
|
||||
msgstr "Tastatura"
|
||||
|
||||
#. translators: 'Hide' is a verb
|
||||
#: ../js/ui/legacyTray.js:66
|
||||
#: ../js/ui/legacyTray.js:65
|
||||
msgid "Hide tray"
|
||||
msgstr "Sakrij kasetu"
|
||||
|
||||
#: ../js/ui/legacyTray.js:107
|
||||
#: ../js/ui/legacyTray.js:106
|
||||
msgid "Status Icons"
|
||||
msgstr "Ikonice stanja"
|
||||
|
||||
@ -980,7 +1014,7 @@ msgstr "Uključeno"
|
||||
|
||||
#. translators:
|
||||
#. * The device has been disabled
|
||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
|
||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
|
||||
msgid "Disabled"
|
||||
msgstr "Isključeno"
|
||||
|
||||
@ -1004,10 +1038,26 @@ msgstr "Prikaži kod"
|
||||
msgid "Web Page"
|
||||
msgstr "Veb stranica"
|
||||
|
||||
#: ../js/ui/messageList.js:543
|
||||
msgid "Clear section"
|
||||
msgstr "Očisti odeljak"
|
||||
|
||||
#: ../js/ui/messageTray.js:1486
|
||||
msgid "System Information"
|
||||
msgstr "Podaci o sistemu"
|
||||
|
||||
#: ../js/ui/mpris.js:194
|
||||
msgid "Unknown artist"
|
||||
msgstr "Nepoznat izvođač"
|
||||
|
||||
#: ../js/ui/mpris.js:195
|
||||
msgid "Unknown title"
|
||||
msgstr "Nepoznat naslov"
|
||||
|
||||
#: ../js/ui/mpris.js:217
|
||||
msgid "Media"
|
||||
msgstr "Mediji"
|
||||
|
||||
#: ../js/ui/overview.js:84
|
||||
msgid "Undo"
|
||||
msgstr "Opozovi"
|
||||
@ -1024,17 +1074,22 @@ msgstr "Pregled"
|
||||
msgid "Type to search…"
|
||||
msgstr "Upišite tekst za pretragu…"
|
||||
|
||||
#: ../js/ui/panel.js:352
|
||||
#: ../js/ui/panel.js:358
|
||||
msgid "Quit"
|
||||
msgstr "Izađi"
|
||||
|
||||
#. Translators: If there is no suitable word for "Activities"
|
||||
#. in your language, you can use the word for "Overview".
|
||||
#: ../js/ui/panel.js:404
|
||||
#: ../js/ui/panel.js:414
|
||||
msgid "Activities"
|
||||
msgstr "Aktivnosti"
|
||||
|
||||
#: ../js/ui/panel.js:754
|
||||
#: ../js/ui/panel.js:695
|
||||
msgctxt "System menu in the top bar"
|
||||
msgid "System"
|
||||
msgstr "Sistem"
|
||||
|
||||
#: ../js/ui/panel.js:807
|
||||
msgid "Top Bar"
|
||||
msgstr "Gornja traka"
|
||||
|
||||
@ -1047,15 +1102,15 @@ msgstr "Gornja traka"
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
#: ../js/ui/runDialog.js:70
|
||||
#: ../js/ui/runDialog.js:71
|
||||
msgid "Enter a Command"
|
||||
msgstr "Unesite naredbu"
|
||||
|
||||
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
|
||||
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
|
||||
msgid "Close"
|
||||
msgstr "Zatvori"
|
||||
|
||||
#: ../js/ui/runDialog.js:281
|
||||
#: ../js/ui/runDialog.js:282
|
||||
msgid "Restarting…"
|
||||
msgstr "Ponovno pokrećem…"
|
||||
|
||||
@ -1182,19 +1237,16 @@ msgstr "Veliki kontrast"
|
||||
msgid "Large Text"
|
||||
msgstr "Veliki tekst"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Isključi"
|
||||
#: ../js/ui/status/bluetooth.js:47
|
||||
msgid "Bluetooth"
|
||||
msgstr "Blutut"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:54
|
||||
#: ../js/ui/status/bluetooth.js:56
|
||||
msgid "Bluetooth Settings"
|
||||
msgstr "Podešavanja Blututa"
|
||||
|
||||
#. Translators: this is the number of connected bluetooth devices
|
||||
#: ../js/ui/status/bluetooth.js:105
|
||||
#: ../js/ui/status/bluetooth.js:136
|
||||
#, javascript-format
|
||||
msgid "%d Connected"
|
||||
msgid_plural "%d Connected"
|
||||
@ -1203,10 +1255,25 @@ msgstr[1] "%d povezana"
|
||||
msgstr[2] "%d povezano"
|
||||
msgstr[3] "%d povezan"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:107
|
||||
#: ../js/ui/status/bluetooth.js:138
|
||||
msgid "Off"
|
||||
msgstr "Isklj."
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:140
|
||||
msgid "Not In Use"
|
||||
msgstr "Nije u upotrebi"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Uključi"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Isključi"
|
||||
|
||||
#: ../js/ui/status/brightness.js:44
|
||||
msgid "Brightness"
|
||||
msgstr "Osvetljenost"
|
||||
@ -1215,30 +1282,50 @@ msgstr "Osvetljenost"
|
||||
msgid "Show Keyboard Layout"
|
||||
msgstr "Pokaži raspored tastature"
|
||||
|
||||
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
|
||||
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
|
||||
msgid "Location Enabled"
|
||||
msgstr "Određivanje mesta uključeno"
|
||||
|
||||
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
|
||||
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
|
||||
msgid "Disable"
|
||||
msgstr "Isključi"
|
||||
|
||||
#: ../js/ui/status/location.js:73
|
||||
#: ../js/ui/status/location.js:109
|
||||
msgid "Privacy Settings"
|
||||
msgstr "Podešavanja privatnosti"
|
||||
|
||||
#: ../js/ui/status/location.js:176
|
||||
#: ../js/ui/status/location.js:214
|
||||
msgid "Location In Use"
|
||||
msgstr "Određivanje mesta se koristi"
|
||||
|
||||
#: ../js/ui/status/location.js:180
|
||||
#: ../js/ui/status/location.js:218
|
||||
msgid "Location Disabled"
|
||||
msgstr "Određivanje mesta isključeno"
|
||||
|
||||
#: ../js/ui/status/location.js:181
|
||||
#: ../js/ui/status/location.js:219
|
||||
msgid "Enable"
|
||||
msgstr "Uključi"
|
||||
|
||||
#: ../js/ui/status/location.js:426
|
||||
msgid "Deny Access"
|
||||
msgstr "Zabrani pristup"
|
||||
|
||||
#: ../js/ui/status/location.js:429
|
||||
msgid "Grant Access"
|
||||
msgstr "Dozvoli pristup"
|
||||
|
||||
#. Translators: %s is an application name
|
||||
#: ../js/ui/status/location.js:435
|
||||
#, javascript-format
|
||||
msgid "Give %s access to your location?"
|
||||
msgstr "Da li da „%s“ dam pristup vašem mestu?"
|
||||
|
||||
#: ../js/ui/status/location.js:437
|
||||
msgid "Location access can be changed at any time from the privacy settings."
|
||||
msgstr ""
|
||||
"Pristup mestu možete da izmenite u bilo koje vreme u podešavanjima "
|
||||
"privatnosti."
|
||||
|
||||
#: ../js/ui/status/network.js:101
|
||||
msgid "<unknown>"
|
||||
msgstr "<nepoznato>"
|
||||
@ -1374,10 +1461,6 @@ msgstr "Izaberi mrežu"
|
||||
msgid "Wi-Fi Settings"
|
||||
msgstr "Podešavanja bežične veze"
|
||||
|
||||
#: ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Uključi"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:1296
|
||||
#, javascript-format
|
||||
@ -1427,31 +1510,36 @@ msgstr "Povezivanje nije uspelo"
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Aktiviranje mrežne veze nije uspelo"
|
||||
|
||||
#: ../js/ui/status/power.js:49
|
||||
#: ../js/ui/status/power.js:61
|
||||
msgid "Power Settings"
|
||||
msgstr "Podešavanja napajanja"
|
||||
|
||||
#: ../js/ui/status/power.js:65
|
||||
#: ../js/ui/status/power.js:77
|
||||
msgid "Fully Charged"
|
||||
msgstr "Potpuno puna"
|
||||
|
||||
#. 0 is reported when UPower does not have enough data
|
||||
#. to estimate battery life
|
||||
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
|
||||
#: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
|
||||
msgid "Estimating…"
|
||||
msgstr "Približno…"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
#: ../js/ui/status/power.js:86
|
||||
#: ../js/ui/status/power.js:98
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Remaining (%d%%)"
|
||||
msgstr "Preostaje %d:%02d (%d%%)"
|
||||
msgid "%d∶%02d Remaining (%d %%)"
|
||||
msgstr "Preostalo vreme %d:%02d (%d %%)"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
#: ../js/ui/status/power.js:91
|
||||
#: ../js/ui/status/power.js:103
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Until Full (%d%%)"
|
||||
msgstr "%d:%02d do kraja punjenja (%d%%)"
|
||||
msgid "%d∶%02d Until Full (%d %%)"
|
||||
msgstr "%d:%02d do kraja punjenja (%d %%)"
|
||||
|
||||
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
|
||||
#, javascript-format
|
||||
msgid "%d %%"
|
||||
msgstr "%d %%"
|
||||
|
||||
#. The menu only appears when airplane mode is on, so just
|
||||
#. statically build it as if it was on, rather than dynamically
|
||||
@ -1492,13 +1580,9 @@ msgstr "Promena jačine zvuka"
|
||||
msgid "Volume"
|
||||
msgstr "Jačina zvuka"
|
||||
|
||||
#: ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "Mikrofon"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:67
|
||||
msgid "Log in as another user"
|
||||
msgstr "Prijavite se kao drugi korsnik"
|
||||
msgstr "Prijavite se kao drugi korisnik"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:84
|
||||
msgid "Unlock Window"
|
||||
@ -1618,7 +1702,7 @@ msgstr "Kalendar Evolucije"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound outputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1837
|
||||
#: ../src/gvc/gvc-mixer-control.c:1835
|
||||
#, c-format
|
||||
msgid "%u Output"
|
||||
msgid_plural "%u Outputs"
|
||||
@ -1629,7 +1713,7 @@ msgstr[3] "%u izlaz"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound inputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1847
|
||||
#: ../src/gvc/gvc-mixer-control.c:1845
|
||||
#, c-format
|
||||
msgid "%u Input"
|
||||
msgid_plural "%u Inputs"
|
||||
@ -1638,50 +1722,53 @@ msgstr[1] "%u ulaza"
|
||||
msgstr[2] "%u ulaza"
|
||||
msgstr[3] "%u ulaz"
|
||||
|
||||
#: ../src/gvc/gvc-mixer-control.c:2373
|
||||
#: ../src/gvc/gvc-mixer-control.c:2371
|
||||
msgid "System Sounds"
|
||||
msgstr "Sistemski zvuci"
|
||||
|
||||
#: ../src/main.c:373
|
||||
#: ../src/main.c:381
|
||||
msgid "Print version"
|
||||
msgstr "Ispisuje izdanje"
|
||||
|
||||
#: ../src/main.c:379
|
||||
#: ../src/main.c:387
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "Koji režim koristi GDM za ekran prijavljivanja"
|
||||
|
||||
#: ../src/main.c:385
|
||||
#: ../src/main.c:393
|
||||
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
|
||||
msgstr "Koristi naročit režim, npr. „gdm“ za ekran prijavljivanja"
|
||||
|
||||
#: ../src/main.c:391
|
||||
#: ../src/main.c:399
|
||||
msgid "List possible modes"
|
||||
msgstr "Ispisuje moguće režime"
|
||||
|
||||
#: ../src/shell-app.c:239
|
||||
#: ../src/shell-app.c:246
|
||||
msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "Nepoznat"
|
||||
|
||||
#: ../src/shell-app.c:480
|
||||
#: ../src/shell-app.c:487
|
||||
#, c-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Nisam uspeo da pokrenem „%s“"
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:742
|
||||
#: ../src/shell-keyring-prompt.c:730
|
||||
msgid "Passwords do not match."
|
||||
msgstr "Lozinke se ne podudaraju."
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:750
|
||||
#: ../src/shell-keyring-prompt.c:738
|
||||
msgid "Password cannot be blank"
|
||||
msgstr "Lozinka ne može biti prazna"
|
||||
|
||||
#: ../src/shell-polkit-authentication-agent.c:346
|
||||
#: ../src/shell-polkit-authentication-agent.c:353
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "Korisnik je odbacio prozorče za potvrđivanje identiteta"
|
||||
|
||||
#~ msgid "Bluetooth"
|
||||
#~ msgstr "Blutut"
|
||||
#~ msgid "%s is requesting access to your location."
|
||||
#~ msgstr "„%s“ zahteva pristup vašem mestu."
|
||||
|
||||
#~ msgid "GNOME Shell (wayland compositor)"
|
||||
#~ msgstr "Gnomova školjka (vajland sastavljač)"
|
||||
|
||||
#~ msgid "%d Connected Device"
|
||||
#~ msgid_plural "%d Connected Devices"
|
||||
@ -1690,9 +1777,6 @@ msgstr "Korisnik je odbacio prozorče za potvrđivanje identiteta"
|
||||
#~ msgstr[2] "%d priključenih uređaja"
|
||||
#~ msgstr[3] "%d priključeni uređaj"
|
||||
|
||||
#~ msgid "Off"
|
||||
#~ msgstr "Isklj."
|
||||
|
||||
#~ msgid "Authentication required"
|
||||
#~ msgstr "Potrebno je potvrđivanje identiteta"
|
||||
|
||||
@ -1898,9 +1982,6 @@ msgstr "Korisnik je odbacio prozorče za potvrđivanje identiteta"
|
||||
#~ msgid "View account"
|
||||
#~ msgstr "Vidi nalog"
|
||||
|
||||
#~ msgid "Unknown reason"
|
||||
#~ msgstr "Nepoznat razlog"
|
||||
|
||||
#~ msgid "Open Calendar"
|
||||
#~ msgstr "Otvori kalendar"
|
||||
|
||||
@ -2002,9 +2083,6 @@ msgstr "Korisnik je odbacio prozorče za potvrđivanje identiteta"
|
||||
#~ msgid "Device %s wants access to the service '%s'"
|
||||
#~ msgstr "Uređaj „%s“ želi pristup usluzi „%s“"
|
||||
|
||||
#~ msgid "Always grant access"
|
||||
#~ msgstr "Uvek dozvoli pristup"
|
||||
|
||||
#~ msgid "Grant this time only"
|
||||
#~ msgstr "Odobri samo ovaj put"
|
||||
|
||||
|
387
po/vi.po
387
po/vi.po
@ -1,18 +1,18 @@
|
||||
# Vietnamese translation for gnome-shell.
|
||||
# Bản dịch tiếng Việt dành cho gnome-shell.
|
||||
# Copyright (C) 2015 GNOME i18n Project for Vietnamese.
|
||||
# Copyright (C) 2016 GNOME i18n Project for Vietnamese.
|
||||
# This file is distributed under the same license as the gnome-shell package.
|
||||
# Nguyễn Thái Ngọc Duy <pclouds@gmail.com>, 2010-2013.
|
||||
# Ngô Chin <ndtrung4419@gmail.com>, 2011.
|
||||
# Trần Ngọc Quân <vnwildman@gmail.com>, 2013-2014, 2015.
|
||||
# Trần Ngọc Quân <vnwildman@gmail.com>, 2013-2014, 2015, 2016.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell master\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||
"shell&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2015-09-23 22:01+0000\n"
|
||||
"PO-Revision-Date: 2015-09-24 15:14+0700\n"
|
||||
"POT-Creation-Date: 2016-03-25 22:36+0000\n"
|
||||
"PO-Revision-Date: 2016-03-26 13:42+0700\n"
|
||||
"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
|
||||
"Language-Team: Vietnamese <gnome-vi-list@gnome.org>\n"
|
||||
"Language: vi\n"
|
||||
@ -46,15 +46,6 @@ msgstr "Hiện mọi ứng dụng"
|
||||
msgid "Open the application menu"
|
||||
msgstr "Mở trình đơn ứng dụng"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "Hệ vỏ GNOME"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:2
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Quản lý cửa sổ và chạy ứng dụng"
|
||||
|
||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
||||
msgid "GNOME Shell Extension Preferences"
|
||||
msgstr "Cá nhân hóa phần mở rộng hệ vỏ GNOME"
|
||||
@ -63,9 +54,13 @@ msgstr "Cá nhân hóa phần mở rộng hệ vỏ GNOME"
|
||||
msgid "Configure GNOME Shell Extensions"
|
||||
msgstr "Cấu hình phần mở rộng Hệ vỏ GNOME"
|
||||
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
|
||||
msgid "GNOME Shell (wayland compositor)"
|
||||
msgstr "Hệ vỏ GNOME (wayland compositor)"
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "Hệ vỏ GNOME"
|
||||
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Quản lý cửa sổ và chạy ứng dụng"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
|
||||
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
||||
@ -135,7 +130,7 @@ msgstr "Hộp thoại lịch sử lệnh (Alt-F2)"
|
||||
#. Translators: looking glass is a debugger and inspector tool, see https://live.gnome.org/GnomeShell/LookingGlass
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13
|
||||
msgid "History for the looking glass dialog"
|
||||
msgstr "Lịch sử hộp thoại looking glass"
|
||||
msgstr "Lịch sử hộp thoại kính tìm kiếm"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
|
||||
msgid "Always show the 'Log out' menu item in the user menu."
|
||||
@ -169,72 +164,90 @@ msgstr ""
|
||||
"hộp dấu kiểm."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
msgid ""
|
||||
"Whether the default Bluetooth adapter had set up devices associated to it"
|
||||
msgstr ""
|
||||
"Có nên để bộ điều hợp Bluetooth mặc định phải cài đặt thiết bị liên kết với "
|
||||
"nó hay không"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
msgid ""
|
||||
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
|
||||
"powered, or if there were devices set up associated with the default "
|
||||
"adapter. This will be reset if the default adapter is ever seen not to have "
|
||||
"devices associated to it."
|
||||
msgstr ""
|
||||
"Hệ vỏ sẽ chỉ hiển thị mục tin trình đơn Bluetooth nếu nó được bật, hoặc là "
|
||||
"có các thiết bị được cài đặt liên kết với bộ tiếp hợp mặc định. Cái này sẽ "
|
||||
"được đặt lại nếu bộ tiếp hợp mặc định không còn được liên kết với nó nữa."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "Hiện tuần trên lịch"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgstr "Nếu được đặt, hiện tuần trong lịch theo chuẩn ISO."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
msgid "Keybinding to open the application menu"
|
||||
msgstr "Phím mở trình đơn ứng dụng"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
msgid "Keybinding to open the application menu."
|
||||
msgstr "Phím mở trình đơn ứng dụng."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
msgid "Keybinding to open the \"Show Applications\" view"
|
||||
msgstr "Phím hiện “Ứng dụng”"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
msgid ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
msgstr "Phím hiện “Ứng dụng” trong tổng quan “Hoạt động”."
|
||||
msgstr "Phím hiện “Ứng dụng” trong “Tổng quan hoạt động”."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
msgid "Keybinding to open the overview"
|
||||
msgstr "Phím mở tổng quan"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
msgid "Keybinding to open the Activities Overview."
|
||||
msgstr "Phím mở tổng quan hoạt động."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
msgid "Keybinding to toggle the visibility of the notification list"
|
||||
msgstr "Phím để bật/tắt hiển thị danh sách thông báo"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
msgid "Keybinding to toggle the visibility of the notification list."
|
||||
msgstr "Phím để bật/tắt hiển thị danh sách thông báo."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
msgid "Keybinding to focus the active notification"
|
||||
msgstr "Phím để tập trung vào thông báo hoạt động"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
msgid "Keybinding to focus the active notification."
|
||||
msgstr "Phím để tập trung vào thông báo hoạt động."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
msgid ""
|
||||
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
|
||||
msgstr "Phím ràng buộc cái mà dừng hay tiếp tục chạy, dành cho mục đích gỡ lỗi"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
msgid "Which keyboard to use"
|
||||
msgstr "Bàn phím được dùng"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
msgid "The type of keyboard to use."
|
||||
msgstr "Kiểu bàn phím được dùng."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
msgid "Limit switcher to current workspace."
|
||||
msgstr "Giới hạn bộ chuyển đổi cho không gian làm việc hiện tại."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid ""
|
||||
"If true, only applications that have windows on the current workspace are "
|
||||
"shown in the switcher. Otherwise, all applications are included."
|
||||
@ -243,11 +256,11 @@ msgstr ""
|
||||
"tại là hiện ra trên bộ chuyển. Nếu không, tất cả các ứng dụng sẽ được bao "
|
||||
"gồm."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid "The application icon mode."
|
||||
msgstr "Chế độ biểu tượng ứng dụng."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
@ -257,7 +270,7 @@ msgstr ""
|
||||
"“thumbnail-only” (hiển thị ảnh thu nhỏ của cửa sổ), “app-icon-only” (chỉ "
|
||||
"hiển thị biểu tượng của ứng dụng) hoặc “both” (cả hai)."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
msgid ""
|
||||
"If true, only windows from the current workspace are shown in the switcher. "
|
||||
"Otherwise, all windows are included."
|
||||
@ -265,29 +278,29 @@ msgstr ""
|
||||
"Nếu được đặt, chỉ những cửa sổ từ không gian làm việc hiện hành được hiện "
|
||||
"thị ở bộ chuyển. Nếu không, tất cả các cửa sổ sẽ được gộp vào."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "Gắn hộp thoại dạng modal vào cửa sổ mẹ"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr ""
|
||||
"Khóa này sẽ đè lên khóa có trong org.gnome.mutter khi chạy hệ vỏ GNOME."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr "Bật xếp lớp ở cạnh khi thả cửa sổ vào cạnh màn hình"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Quản lý động vùng làm việc"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "Vùng làm việc chỉ ở trên màn hình chính"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
msgstr "Khoảng trễ chờ cho con chuột ngừng di chuyển"
|
||||
|
||||
@ -295,51 +308,52 @@ msgstr "Khoảng trễ chờ cho con chuột ngừng di chuyển"
|
||||
msgid "Network Login"
|
||||
msgstr "Đăng nhập mạng"
|
||||
|
||||
#: ../js/extensionPrefs/main.js:122
|
||||
#: ../js/extensionPrefs/main.js:117
|
||||
#, javascript-format
|
||||
msgid "There was an error loading the preferences dialog for %s:"
|
||||
msgstr "Có lỗi khi đang nạp hộp thoại tùy thích cho %s:"
|
||||
msgstr "Có lỗi khi đang tải hộp thoại tùy thích cho %s:"
|
||||
|
||||
#: ../js/extensionPrefs/main.js:154
|
||||
#: ../js/extensionPrefs/main.js:149
|
||||
msgid "GNOME Shell Extensions"
|
||||
msgstr "Phần mở rộng Hệ vỏ GNOME"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
|
||||
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
|
||||
#: ../js/ui/components/networkAgent.js:145
|
||||
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
|
||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||
#: ../js/ui/status/network.js:916
|
||||
msgid "Cancel"
|
||||
msgstr "Thôi"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
|
||||
#: ../js/gdm/authPrompt.js:447
|
||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
|
||||
#: ../js/gdm/authPrompt.js:448
|
||||
msgid "Next"
|
||||
msgstr "Kế tiếp"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/ui/unlockDialog.js:59
|
||||
msgid "Unlock"
|
||||
msgstr "Mở khóa"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:213
|
||||
#: ../js/gdm/authPrompt.js:214
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Đăng nhập"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:281
|
||||
#: ../js/gdm/loginDialog.js:285
|
||||
msgid "Choose Session"
|
||||
msgstr "Chọn phiên làm việc"
|
||||
|
||||
#. 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:431
|
||||
#: ../js/gdm/loginDialog.js:435
|
||||
msgid "Not listed?"
|
||||
msgstr "Không có trong danh sách?"
|
||||
|
||||
#. 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:850
|
||||
#: ../js/gdm/loginDialog.js:854
|
||||
#, javascript-format
|
||||
msgid "(e.g., user or %s)"
|
||||
msgstr "(ví dụ: tài khoản hoặc %s)"
|
||||
@ -347,12 +361,12 @@ msgstr "(ví dụ: tài khoản hoặc %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:855 ../js/ui/components/networkAgent.js:271
|
||||
#: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
|
||||
#: ../js/ui/components/networkAgent.js:289
|
||||
msgid "Username: "
|
||||
msgstr "Tài khoản: "
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1184
|
||||
#: ../js/gdm/loginDialog.js:1196
|
||||
msgid "Login Window"
|
||||
msgstr "Cửa sổ đăng nhập"
|
||||
|
||||
@ -488,16 +502,36 @@ msgstr "Đánh dấu ưa thích"
|
||||
msgid "Show Details"
|
||||
msgstr "Hiện chi tiết"
|
||||
|
||||
#: ../js/ui/appFavorites.js:132
|
||||
#: ../js/ui/appFavorites.js:134
|
||||
#, javascript-format
|
||||
msgid "%s has been added to your favorites."
|
||||
msgstr "Đã đánh dấu ưa thích cho %s."
|
||||
|
||||
#: ../js/ui/appFavorites.js:166
|
||||
#: ../js/ui/appFavorites.js:168
|
||||
#, javascript-format
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "%s đã bị xóa khỏi danh sách ưa thích."
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:59
|
||||
msgid "Select Audio Device"
|
||||
msgstr "Chọn thiết bị âm thanh"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:69
|
||||
msgid "Sound Settings"
|
||||
msgstr "Cài đặt âm thanh"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:78
|
||||
msgid "Headphones"
|
||||
msgstr "Tai nghe"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:80
|
||||
msgid "Headset"
|
||||
msgstr "Bộ tai nghe + micrô"
|
||||
|
||||
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "Micrô"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:19
|
||||
msgid "Change Background…"
|
||||
msgstr "Đổi ảnh nền…"
|
||||
@ -506,13 +540,12 @@ msgstr "Đổi ảnh nền…"
|
||||
msgid "Display Settings"
|
||||
msgstr "Cài đặt hiển thị"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
|
||||
#: ../js/ui/status/system.js:366
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
|
||||
msgid "Settings"
|
||||
msgstr "Cài đặt"
|
||||
|
||||
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
|
||||
#: ../js/ui/calendar.js:55
|
||||
#: ../js/ui/calendar.js:47
|
||||
msgctxt "calendar-no-work"
|
||||
msgid "06"
|
||||
msgstr "06"
|
||||
@ -522,94 +555,96 @@ msgstr "06"
|
||||
#. * NOTE: These grid abbreviations are always shown together
|
||||
#. * and in order, e.g. "S M T W T F S".
|
||||
#.
|
||||
#: ../js/ui/calendar.js:84
|
||||
#: ../js/ui/calendar.js:76
|
||||
msgctxt "grid sunday"
|
||||
msgid "S"
|
||||
msgstr "C"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Monday
|
||||
#: ../js/ui/calendar.js:86
|
||||
#: ../js/ui/calendar.js:78
|
||||
msgctxt "grid monday"
|
||||
msgid "M"
|
||||
msgstr "2"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Tuesday
|
||||
#: ../js/ui/calendar.js:88
|
||||
#: ../js/ui/calendar.js:80
|
||||
msgctxt "grid tuesday"
|
||||
msgid "T"
|
||||
msgstr "3"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Wednesday
|
||||
#: ../js/ui/calendar.js:90
|
||||
#: ../js/ui/calendar.js:82
|
||||
msgctxt "grid wednesday"
|
||||
msgid "W"
|
||||
msgstr "4"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Thursday
|
||||
#: ../js/ui/calendar.js:92
|
||||
#: ../js/ui/calendar.js:84
|
||||
msgctxt "grid thursday"
|
||||
msgid "T"
|
||||
msgstr "5"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Friday
|
||||
#: ../js/ui/calendar.js:94
|
||||
#: ../js/ui/calendar.js:86
|
||||
msgctxt "grid friday"
|
||||
msgid "F"
|
||||
msgstr "6"
|
||||
|
||||
#. Translators: Calendar grid abbreviation for Saturday
|
||||
#: ../js/ui/calendar.js:96
|
||||
#: ../js/ui/calendar.js:88
|
||||
msgctxt "grid saturday"
|
||||
msgid "S"
|
||||
msgstr "7"
|
||||
|
||||
#: ../js/ui/calendar.js:566
|
||||
#: ../js/ui/calendar.js:416
|
||||
msgid "Previous month"
|
||||
msgstr "Tháng trước"
|
||||
|
||||
#: ../js/ui/calendar.js:576
|
||||
#: ../js/ui/calendar.js:426
|
||||
msgid "Next month"
|
||||
msgstr "Tháng tới"
|
||||
|
||||
#: ../js/ui/calendar.js:783
|
||||
#: ../js/ui/calendar.js:579
|
||||
#, no-javascript-format
|
||||
msgctxt "date day number format"
|
||||
msgid "%d"
|
||||
msgstr "%d"
|
||||
|
||||
#: ../js/ui/calendar.js:634
|
||||
msgid "Week %V"
|
||||
msgstr "Tuần %V"
|
||||
|
||||
#. Translators: Shown in calendar event list for all day events
|
||||
#. * Keep it short, best if you can use less then 10 characters
|
||||
#.
|
||||
#: ../js/ui/calendar.js:1188
|
||||
#: ../js/ui/calendar.js:695
|
||||
msgctxt "event list time"
|
||||
msgid "All Day"
|
||||
msgstr "Cả ngày"
|
||||
|
||||
#: ../js/ui/calendar.js:1295
|
||||
msgid "Clear section"
|
||||
msgstr "Xóa phần"
|
||||
|
||||
#: ../js/ui/calendar.js:1522
|
||||
#: ../js/ui/calendar.js:821
|
||||
msgid "Events"
|
||||
msgstr "Sự kiện"
|
||||
|
||||
#: ../js/ui/calendar.js:1531
|
||||
#: ../js/ui/calendar.js:830
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, %d %B"
|
||||
|
||||
#: ../js/ui/calendar.js:1535
|
||||
#: ../js/ui/calendar.js:834
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d, %Y"
|
||||
msgstr "%A, %d %B, %Y"
|
||||
|
||||
#: ../js/ui/calendar.js:1620
|
||||
#: ../js/ui/calendar.js:919
|
||||
msgid "Notifications"
|
||||
msgstr "Thông báo"
|
||||
|
||||
#: ../js/ui/calendar.js:1771
|
||||
#: ../js/ui/calendar.js:1070
|
||||
msgid "No Notifications"
|
||||
msgstr "Không có thông báo nào"
|
||||
|
||||
#: ../js/ui/calendar.js:1774
|
||||
#: ../js/ui/calendar.js:1073
|
||||
msgid "No Events"
|
||||
msgstr "Không có sự kiện"
|
||||
|
||||
@ -621,7 +656,7 @@ msgstr "Ổ ngoài đã kết nối"
|
||||
msgid "External drive disconnected"
|
||||
msgstr "Ổ ngoài đã ngắt kết nối"
|
||||
|
||||
#: ../js/ui/components/autorunManager.js:354
|
||||
#: ../js/ui/components/autorunManager.js:355
|
||||
#, javascript-format
|
||||
msgid "Open with %s"
|
||||
msgstr "Mở bằng %s"
|
||||
@ -745,7 +780,7 @@ msgstr "Rất tiếc, không được. Vui lòng thử lại."
|
||||
|
||||
#. Translators: this is the other person changing their old IM name to their new
|
||||
#. IM name.
|
||||
#: ../js/ui/components/telepathyClient.js:759
|
||||
#: ../js/ui/components/telepathyClient.js:760
|
||||
#, javascript-format
|
||||
msgid "%s is now known as %s"
|
||||
msgstr "%s bây giờ đổi thành %s"
|
||||
@ -834,7 +869,7 @@ msgstr[0] "Hệ thống sẽ tự động tắt sau %d giây."
|
||||
#: ../js/ui/endSessionDialog.js:91
|
||||
msgctxt "checkbox"
|
||||
msgid "Install pending software updates"
|
||||
msgstr "Nâng cấp phần mềm còn treo"
|
||||
msgstr "Cài đặt các cập nhật phần mềm còn treo"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:94 ../js/ui/endSessionDialog.js:111
|
||||
msgctxt "button"
|
||||
@ -925,11 +960,11 @@ msgid "Keyboard"
|
||||
msgstr "Bàn phím"
|
||||
|
||||
#. translators: 'Hide' is a verb
|
||||
#: ../js/ui/legacyTray.js:66
|
||||
#: ../js/ui/legacyTray.js:65
|
||||
msgid "Hide tray"
|
||||
msgstr "Ẩn khay"
|
||||
|
||||
#: ../js/ui/legacyTray.js:107
|
||||
#: ../js/ui/legacyTray.js:106
|
||||
msgid "Status Icons"
|
||||
msgstr "Biểu tượng trạng thái"
|
||||
|
||||
@ -979,12 +1014,28 @@ msgstr "Xem mã nguồn"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:758
|
||||
msgid "Web Page"
|
||||
msgstr "Trang Web"
|
||||
msgstr "Trang thông tin điện tử"
|
||||
|
||||
#: ../js/ui/messageList.js:543
|
||||
msgid "Clear section"
|
||||
msgstr "Xóa một phần"
|
||||
|
||||
#: ../js/ui/messageTray.js:1486
|
||||
msgid "System Information"
|
||||
msgstr "Thông tin hệ thống"
|
||||
|
||||
#: ../js/ui/mpris.js:194
|
||||
msgid "Unknown artist"
|
||||
msgstr "Không rõ nghệ sĩ"
|
||||
|
||||
#: ../js/ui/mpris.js:195
|
||||
msgid "Unknown title"
|
||||
msgstr "Chưa biết tiêu đề"
|
||||
|
||||
#: ../js/ui/mpris.js:217
|
||||
msgid "Media"
|
||||
msgstr "Đa phương tiện"
|
||||
|
||||
#: ../js/ui/overview.js:84
|
||||
msgid "Undo"
|
||||
msgstr "Hoàn lại"
|
||||
@ -1001,17 +1052,22 @@ msgstr "Tổng quan"
|
||||
msgid "Type to search…"
|
||||
msgstr "Gõ từ muốn tìm…"
|
||||
|
||||
#: ../js/ui/panel.js:352
|
||||
#: ../js/ui/panel.js:358
|
||||
msgid "Quit"
|
||||
msgstr "Thoát"
|
||||
|
||||
#. Translators: If there is no suitable word for "Activities"
|
||||
#. in your language, you can use the word for "Overview".
|
||||
#: ../js/ui/panel.js:404
|
||||
#: ../js/ui/panel.js:414
|
||||
msgid "Activities"
|
||||
msgstr "Hoạt động"
|
||||
|
||||
#: ../js/ui/panel.js:754
|
||||
#: ../js/ui/panel.js:695
|
||||
msgctxt "System menu in the top bar"
|
||||
msgid "System"
|
||||
msgstr "Hệ thống"
|
||||
|
||||
#: ../js/ui/panel.js:807
|
||||
msgid "Top Bar"
|
||||
msgstr "Thanh đỉnh"
|
||||
|
||||
@ -1024,15 +1080,15 @@ msgstr "Thanh đỉnh"
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
#: ../js/ui/runDialog.js:70
|
||||
#: ../js/ui/runDialog.js:71
|
||||
msgid "Enter a Command"
|
||||
msgstr "Nhập lệnh"
|
||||
|
||||
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
|
||||
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
|
||||
msgid "Close"
|
||||
msgstr "Đóng"
|
||||
|
||||
#: ../js/ui/runDialog.js:281
|
||||
#: ../js/ui/runDialog.js:282
|
||||
msgid "Restarting…"
|
||||
msgstr "Đang khởi động lại…"
|
||||
|
||||
@ -1075,7 +1131,7 @@ msgstr "Không thể khóa"
|
||||
|
||||
#: ../js/ui/screenShield.js:806 ../js/ui/screenShield.js:1272
|
||||
msgid "Lock was blocked by an application"
|
||||
msgstr "Một ứng dụng đã ngăn cản khóa"
|
||||
msgstr "Việc khóa bị ngăn cản bởi một ứng dụng"
|
||||
|
||||
#: ../js/ui/search.js:617
|
||||
msgid "Searching…"
|
||||
@ -1083,7 +1139,7 @@ msgstr "Đang tìm…"
|
||||
|
||||
#: ../js/ui/search.js:619
|
||||
msgid "No results."
|
||||
msgstr "Không có kết quả."
|
||||
msgstr "Không tìm thấy kết quả nào."
|
||||
|
||||
#: ../js/ui/shellEntry.js:25
|
||||
msgid "Copy"
|
||||
@ -1153,28 +1209,40 @@ msgstr "Tương phản cao"
|
||||
msgid "Large Text"
|
||||
msgstr "Chữ lớn"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Tắt"
|
||||
#: ../js/ui/status/bluetooth.js:47
|
||||
msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:54
|
||||
#: ../js/ui/status/bluetooth.js:56
|
||||
msgid "Bluetooth Settings"
|
||||
msgstr "Cài đặt Bluetooth"
|
||||
|
||||
#. Translators: this is the number of connected bluetooth devices
|
||||
#: ../js/ui/status/bluetooth.js:105
|
||||
#: ../js/ui/status/bluetooth.js:136
|
||||
#, javascript-format
|
||||
msgid "%d Connected"
|
||||
msgid_plural "%d Connected"
|
||||
msgstr[0] "%d Đã kết nối"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:107
|
||||
#: ../js/ui/status/bluetooth.js:138
|
||||
msgid "Off"
|
||||
msgstr "Tắt"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:140
|
||||
msgid "Not In Use"
|
||||
msgstr "Không dùng"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Bật"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Tắt"
|
||||
|
||||
#: ../js/ui/status/brightness.js:44
|
||||
msgid "Brightness"
|
||||
msgstr "Độ sáng"
|
||||
@ -1183,30 +1251,50 @@ msgstr "Độ sáng"
|
||||
msgid "Show Keyboard Layout"
|
||||
msgstr "Hiện bố cục của bàn phím"
|
||||
|
||||
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
|
||||
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
|
||||
msgid "Location Enabled"
|
||||
msgstr "Vị trí được bật"
|
||||
|
||||
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
|
||||
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
|
||||
msgid "Disable"
|
||||
msgstr "Tắt"
|
||||
|
||||
#: ../js/ui/status/location.js:73
|
||||
#: ../js/ui/status/location.js:109
|
||||
msgid "Privacy Settings"
|
||||
msgstr "Cài đặt chính sách riêng tư"
|
||||
|
||||
#: ../js/ui/status/location.js:176
|
||||
#: ../js/ui/status/location.js:214
|
||||
msgid "Location In Use"
|
||||
msgstr "Vị trí đang dùng"
|
||||
|
||||
#: ../js/ui/status/location.js:180
|
||||
#: ../js/ui/status/location.js:218
|
||||
msgid "Location Disabled"
|
||||
msgstr "Vị trí bị tắt"
|
||||
|
||||
#: ../js/ui/status/location.js:181
|
||||
#: ../js/ui/status/location.js:219
|
||||
msgid "Enable"
|
||||
msgstr "Bật"
|
||||
|
||||
#: ../js/ui/status/location.js:426
|
||||
msgid "Deny Access"
|
||||
msgstr "Từ chối truy cập"
|
||||
|
||||
#: ../js/ui/status/location.js:429
|
||||
msgid "Grant Access"
|
||||
msgstr "Cấp quyền truy cập"
|
||||
|
||||
#. Translators: %s is an application name
|
||||
#: ../js/ui/status/location.js:435
|
||||
#, javascript-format
|
||||
msgid "Give %s access to your location?"
|
||||
msgstr "Cho %s truy cập vào vị trí của bạn?"
|
||||
|
||||
#: ../js/ui/status/location.js:437
|
||||
msgid "Location access can be changed at any time from the privacy settings."
|
||||
msgstr ""
|
||||
"Truy cập vị trí có thể được thay đổi vào bất kỳ lúc nào từ các cài đặt riêng "
|
||||
"tư."
|
||||
|
||||
#: ../js/ui/status/network.js:101
|
||||
msgid "<unknown>"
|
||||
msgstr "<không rõ>"
|
||||
@ -1342,10 +1430,6 @@ msgstr "Chọn mạng"
|
||||
msgid "Wi-Fi Settings"
|
||||
msgstr "Cài đặt Wi-Fi"
|
||||
|
||||
#: ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Bật"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:1296
|
||||
#, javascript-format
|
||||
@ -1395,31 +1479,36 @@ msgstr "Lỗi kết nối"
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Lỗi kích hoạt kết nối mạng"
|
||||
|
||||
#: ../js/ui/status/power.js:49
|
||||
#: ../js/ui/status/power.js:61
|
||||
msgid "Power Settings"
|
||||
msgstr "Cài đặt nguồn điện"
|
||||
|
||||
#: ../js/ui/status/power.js:65
|
||||
#: ../js/ui/status/power.js:77
|
||||
msgid "Fully Charged"
|
||||
msgstr "Đã sạc đầy"
|
||||
|
||||
#. 0 is reported when UPower does not have enough data
|
||||
#. to estimate battery life
|
||||
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
|
||||
#: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
|
||||
msgid "Estimating…"
|
||||
msgstr "Ước tính…"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
#: ../js/ui/status/power.js:86
|
||||
#: ../js/ui/status/power.js:98
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Remaining (%d%%)"
|
||||
msgstr "Còn %d∶%02d (%d%%)"
|
||||
msgid "%d∶%02d Remaining (%d %%)"
|
||||
msgstr "Còn %d∶%02d (%d %%)"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
#: ../js/ui/status/power.js:91
|
||||
#: ../js/ui/status/power.js:103
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Until Full (%d%%)"
|
||||
msgstr "Cho đến lúc đầy cần %d∶%02d (%d%%)"
|
||||
msgid "%d∶%02d Until Full (%d %%)"
|
||||
msgstr "Cho đến lúc đầy cần %d∶%02d (%d %%)"
|
||||
|
||||
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
|
||||
#, javascript-format
|
||||
msgid "%d %%"
|
||||
msgstr "%d %%"
|
||||
|
||||
#. The menu only appears when airplane mode is on, so just
|
||||
#. statically build it as if it was on, rather than dynamically
|
||||
@ -1460,10 +1549,6 @@ msgstr "Âm lượng đã thay đổi"
|
||||
msgid "Volume"
|
||||
msgstr "Âm lượng"
|
||||
|
||||
#: ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "Micrô"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:67
|
||||
msgid "Log in as another user"
|
||||
msgstr "Đăng nhập người dùng khác"
|
||||
@ -1565,19 +1650,19 @@ msgstr "Chuyển sang không gian làm việc Dưới"
|
||||
|
||||
#: ../js/ui/windowMenu.js:136
|
||||
msgid "Move to Monitor Up"
|
||||
msgstr "Chuyển sang Màn hình Trên"
|
||||
msgstr "Chuyển sang màn hình Trên"
|
||||
|
||||
#: ../js/ui/windowMenu.js:142
|
||||
msgid "Move to Monitor Down"
|
||||
msgstr "Chuyển sang Màn hình Dưới"
|
||||
msgstr "Chuyển sang màn hình Dưới"
|
||||
|
||||
#: ../js/ui/windowMenu.js:148
|
||||
msgid "Move to Monitor Left"
|
||||
msgstr "Chuyển sang Màn hình Trái"
|
||||
msgstr "Chuyển sang màn hình Trái"
|
||||
|
||||
#: ../js/ui/windowMenu.js:154
|
||||
msgid "Move to Monitor Right"
|
||||
msgstr "Chuyển sang Màn hình Phải"
|
||||
msgstr "Chuyển sang màn hình Phải"
|
||||
|
||||
#: ../src/calendar-server/evolution-calendar.desktop.in.in.h:1
|
||||
msgid "Evolution Calendar"
|
||||
@ -1603,54 +1688,51 @@ msgstr[0] "%u đầu vào"
|
||||
msgid "System Sounds"
|
||||
msgstr "Âm thanh hệ thống"
|
||||
|
||||
#: ../src/main.c:373
|
||||
#: ../src/main.c:381
|
||||
msgid "Print version"
|
||||
msgstr "Hiển thị phiên bản"
|
||||
|
||||
#: ../src/main.c:379
|
||||
#: ../src/main.c:387
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "Chế độ được dùng bởi GDM cho màn hình đăng nhập"
|
||||
|
||||
#: ../src/main.c:385
|
||||
#: ../src/main.c:393
|
||||
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
|
||||
msgstr "Dùng chế độ đặc biệt, ví dụ “gdm” cho màn hình đăng nhập"
|
||||
|
||||
#: ../src/main.c:391
|
||||
#: ../src/main.c:399
|
||||
msgid "List possible modes"
|
||||
msgstr "Danh sách chế độ có thể"
|
||||
|
||||
#: ../src/shell-app.c:239
|
||||
#: ../src/shell-app.c:246
|
||||
msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "Chưa biết"
|
||||
|
||||
#: ../src/shell-app.c:480
|
||||
#: ../src/shell-app.c:487
|
||||
#, c-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Gặp lỗi khi khởi chạy “%s”"
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:742
|
||||
#: ../src/shell-keyring-prompt.c:730
|
||||
msgid "Passwords do not match."
|
||||
msgstr "Mật khẩu không đúng."
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:750
|
||||
#: ../src/shell-keyring-prompt.c:738
|
||||
msgid "Password cannot be blank"
|
||||
msgstr "Mật khẩu không thể để trống"
|
||||
|
||||
#: ../src/shell-polkit-authentication-agent.c:346
|
||||
#: ../src/shell-polkit-authentication-agent.c:353
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "Hộp thoại xác thực bị người dùng bỏ qua"
|
||||
|
||||
#~ msgid "Bluetooth"
|
||||
#~ msgstr "Bluetooth"
|
||||
#~ msgid "GNOME Shell (wayland compositor)"
|
||||
#~ msgstr "Hệ vỏ GNOME (wayland compositor)"
|
||||
|
||||
#~ msgid "%d Connected Device"
|
||||
#~ msgid_plural "%d Connected Devices"
|
||||
#~ msgstr[0] "%d thiết bị đã kết nối"
|
||||
|
||||
#~ msgid "Off"
|
||||
#~ msgstr "Tắt"
|
||||
|
||||
#~ msgid "Authentication required"
|
||||
#~ msgstr "Cần xác thực"
|
||||
|
||||
@ -1855,9 +1937,6 @@ msgstr "Hộp thoại xác thực bị người dùng bỏ qua"
|
||||
#~ msgid "View account"
|
||||
#~ msgstr "Xem tài khoản"
|
||||
|
||||
#~ msgid "Unknown reason"
|
||||
#~ msgstr "Không rõ nguyên nhân"
|
||||
|
||||
#~ msgid "Open Calendar"
|
||||
#~ msgstr "Mở lịch"
|
||||
|
||||
@ -2042,9 +2121,6 @@ msgstr "Hộp thoại xác thực bị người dùng bỏ qua"
|
||||
#~ msgid "Visibility"
|
||||
#~ msgstr "Tầm nhìn"
|
||||
|
||||
#~ msgid "Send Files to Device…"
|
||||
#~ msgstr "Gửi tập tin đến thiết bị…"
|
||||
|
||||
#~ msgid "Set Up a New Device…"
|
||||
#~ msgstr "Cài đặt thiết bị mới…"
|
||||
|
||||
@ -2072,9 +2148,6 @@ msgstr "Hộp thoại xác thực bị người dùng bỏ qua"
|
||||
#~ msgid "Device %s wants access to the service '%s'"
|
||||
#~ msgstr "Thiết bị %s muốn truy cập dịch vụ “%s”"
|
||||
|
||||
#~ msgid "Always grant access"
|
||||
#~ msgstr "Luôn cho phép"
|
||||
|
||||
#~ msgid "Grant this time only"
|
||||
#~ msgstr "Chỉ cho phép lần này"
|
||||
|
||||
@ -2147,10 +2220,6 @@ msgstr "Hộp thoại xác thực bị người dùng bỏ qua"
|
||||
#~ msgid_plural "%d minutes remaining"
|
||||
#~ msgstr[0] "%d phút còn lại"
|
||||
|
||||
#~ msgctxt "percent of battery remaining"
|
||||
#~ msgid "%d%%"
|
||||
#~ msgstr "%d%%"
|
||||
|
||||
#~ msgid "AC Adapter"
|
||||
#~ msgstr "Nguồn AC"
|
||||
|
||||
|
792
po/zh_CN.po
792
po/zh_CN.po
File diff suppressed because it is too large
Load Diff
524
po/zh_TW.po
524
po/zh_TW.po
File diff suppressed because it is too large
Load Diff
@ -41,8 +41,6 @@
|
||||
#define N_(x) x
|
||||
#endif
|
||||
|
||||
#define CALENDAR_SOURCES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CALENDAR_TYPE_SOURCES, CalendarSourcesPrivate))
|
||||
|
||||
typedef struct _ClientData ClientData;
|
||||
typedef struct _CalendarSourceData CalendarSourceData;
|
||||
|
||||
@ -66,6 +64,14 @@ struct _CalendarSourceData
|
||||
guint loaded : 1;
|
||||
};
|
||||
|
||||
typedef struct _CalendarSourcesPrivate CalendarSourcesPrivate;
|
||||
|
||||
struct _CalendarSources
|
||||
{
|
||||
GObject parent;
|
||||
CalendarSourcesPrivate *priv;
|
||||
};
|
||||
|
||||
struct _CalendarSourcesPrivate
|
||||
{
|
||||
ESourceRegistry *registry;
|
||||
@ -77,8 +83,8 @@ struct _CalendarSourcesPrivate
|
||||
CalendarSourceData task_sources;
|
||||
};
|
||||
|
||||
static void calendar_sources_class_init (CalendarSourcesClass *klass);
|
||||
static void calendar_sources_init (CalendarSources *sources);
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (CalendarSources, calendar_sources, G_TYPE_OBJECT)
|
||||
|
||||
static void calendar_sources_finalize (GObject *object);
|
||||
|
||||
static void backend_died_cb (EClient *client, CalendarSourceData *source_data);
|
||||
@ -108,34 +114,6 @@ client_data_free (ClientData *data)
|
||||
g_slice_free (ClientData, data);
|
||||
}
|
||||
|
||||
GType
|
||||
calendar_sources_get_type (void)
|
||||
{
|
||||
static GType sources_type = 0;
|
||||
|
||||
if (!sources_type)
|
||||
{
|
||||
static const GTypeInfo sources_info =
|
||||
{
|
||||
sizeof (CalendarSourcesClass),
|
||||
NULL, /* base_init */
|
||||
NULL, /* base_finalize */
|
||||
(GClassInitFunc) calendar_sources_class_init,
|
||||
NULL, /* class_finalize */
|
||||
NULL, /* class_data */
|
||||
sizeof (CalendarSources),
|
||||
0, /* n_preallocs */
|
||||
(GInstanceInitFunc) calendar_sources_init,
|
||||
};
|
||||
|
||||
sources_type = g_type_register_static (G_TYPE_OBJECT,
|
||||
"CalendarSources",
|
||||
&sources_info, 0);
|
||||
}
|
||||
|
||||
return sources_type;
|
||||
}
|
||||
|
||||
static void
|
||||
calendar_sources_class_init (CalendarSourcesClass *klass)
|
||||
{
|
||||
@ -145,14 +123,11 @@ calendar_sources_class_init (CalendarSourcesClass *klass)
|
||||
|
||||
gobject_class->finalize = calendar_sources_finalize;
|
||||
|
||||
g_type_class_add_private (klass, sizeof (CalendarSourcesPrivate));
|
||||
|
||||
signals [APPOINTMENT_SOURCES_CHANGED] =
|
||||
g_signal_new ("appointment-sources-changed",
|
||||
G_TYPE_FROM_CLASS (gobject_class),
|
||||
G_SIGNAL_RUN_LAST,
|
||||
G_STRUCT_OFFSET (CalendarSourcesClass,
|
||||
appointment_sources_changed),
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
@ -163,8 +138,7 @@ calendar_sources_class_init (CalendarSourcesClass *klass)
|
||||
g_signal_new ("task-sources-changed",
|
||||
G_TYPE_FROM_CLASS (gobject_class),
|
||||
G_SIGNAL_RUN_LAST,
|
||||
G_STRUCT_OFFSET (CalendarSourcesClass,
|
||||
task_sources_changed),
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
@ -179,7 +153,7 @@ calendar_sources_init (CalendarSources *sources)
|
||||
GDBusConnection *session_bus;
|
||||
GVariant *result;
|
||||
|
||||
sources->priv = CALENDAR_SOURCES_GET_PRIVATE (sources);
|
||||
sources->priv = calendar_sources_get_instance_private (sources);
|
||||
|
||||
/* WORKAROUND: the hardcoded timeout for e_source_registry_new_sync()
|
||||
(and other library calls that eventually call g_dbus_proxy_new[_sync]())
|
||||
|
@ -28,33 +28,10 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define CALENDAR_TYPE_SOURCES (calendar_sources_get_type ())
|
||||
#define CALENDAR_SOURCES(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CALENDAR_TYPE_SOURCES, CalendarSources))
|
||||
#define CALENDAR_SOURCES_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CALENDAR_TYPE_SOURCES, CalendarSourcesClass))
|
||||
#define CALENDAR_IS_SOURCES(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CALENDAR_TYPE_SOURCES))
|
||||
#define CALENDAR_IS_SOURCES_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CALENDAR_TYPE_SOURCES))
|
||||
#define CALENDAR_SOURCES_GET_CLASS(o)(G_TYPE_INSTANCE_GET_CLASS ((o), CALENDAR_TYPE_SOURCES, CalendarSourcesClass))
|
||||
#define CALENDAR_TYPE_SOURCES (calendar_sources_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (CalendarSources, calendar_sources,
|
||||
CALENDAR, SOURCES, GObject)
|
||||
|
||||
typedef struct _CalendarSources CalendarSources;
|
||||
typedef struct _CalendarSourcesClass CalendarSourcesClass;
|
||||
typedef struct _CalendarSourcesPrivate CalendarSourcesPrivate;
|
||||
|
||||
struct _CalendarSources
|
||||
{
|
||||
GObject parent;
|
||||
CalendarSourcesPrivate *priv;
|
||||
};
|
||||
|
||||
struct _CalendarSourcesClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
|
||||
void (* appointment_sources_changed) (CalendarSources *sources);
|
||||
void (* task_sources_changed) (CalendarSources *sources);
|
||||
};
|
||||
|
||||
|
||||
GType calendar_sources_get_type (void) G_GNUC_CONST;
|
||||
CalendarSources *calendar_sources_get (void);
|
||||
GList *calendar_sources_get_appointment_clients (CalendarSources *sources);
|
||||
GList *calendar_sources_get_task_clients (CalendarSources *sources);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user