Compare commits
139 Commits
Author | SHA1 | Date | |
---|---|---|---|
18107d567d | |||
608818fa9f | |||
9ae2440ec1 | |||
ef9c50e63a | |||
5d50b08351 | |||
123fc19c4e | |||
a9058e471c | |||
bd1f48d9fe | |||
66ab4d217d | |||
7a8b392607 | |||
bfdf069d2d | |||
b4b00a48d9 | |||
e5f226612e | |||
20619ad3c1 | |||
37dce7d4c3 | |||
a67b82e730 | |||
e0b8ad7911 | |||
dbb39d366e | |||
e1de36398d | |||
871c28aeeb | |||
c84dc6254d | |||
60cb1ad7c5 | |||
4a5ff5dcfb | |||
5c40307745 | |||
39426f03e6 | |||
92e5d2b8f5 | |||
09aa59f98b | |||
c9c1c89a27 | |||
96b76709e9 | |||
ca3107e21b | |||
2e4f223207 | |||
17df668186 | |||
aef70152de | |||
e0252f35be | |||
0f47534766 | |||
54feaa67e8 | |||
64ecfa49eb | |||
fdae613b14 | |||
c57c08b2c6 | |||
d2103995cb | |||
196fb0f16e | |||
c0afe7260a | |||
099c8703ae | |||
b03e480dbf | |||
8430353389 | |||
a123ec94ef | |||
4a2f54f6ff | |||
b5c85eaeca | |||
8b3b91d78d | |||
e1de3973fe | |||
c1993a6ffc | |||
ab26fc438a | |||
c37259b01d | |||
bde8cc3285 | |||
59ba5504d0 | |||
65eb5a3d05 | |||
b925322e9e | |||
f0c2ad00f8 | |||
fc53a25a4c | |||
58872d162b | |||
30f1b8f02a | |||
ee4f199a9f | |||
e3957f3bac | |||
2506673514 | |||
7cb12015fd | |||
caaac9b9ec | |||
1dac4d00c4 | |||
b41902f4df | |||
ada70dd683 | |||
7e5d8a8d54 | |||
e981cae27c | |||
d7c377c229 | |||
8772edcd33 | |||
254740cf68 | |||
c3775c0f56 | |||
5ecf40e967 | |||
45026df4bd | |||
b8830f4a09 | |||
811ee1d989 | |||
8c32102e99 | |||
1b135095c7 | |||
becf4396c9 | |||
929e066506 | |||
355ad9ac2c | |||
2cda0472bd | |||
4710753700 | |||
2b439ef209 | |||
2fc76e6d9e | |||
ff544450a5 | |||
b4590da686 | |||
6c4be0311a | |||
4a2cdc20f0 | |||
6ce79c62eb | |||
96994721ef | |||
f358bb1a96 | |||
1bce210c51 | |||
8a3c8d1b1c | |||
08b224de1f | |||
86c92c37d2 | |||
07053c3df7 | |||
4fb33c9b09 | |||
5e6a25c3c2 | |||
e14ef4a294 | |||
8b659f0f4c | |||
a6395c95d4 | |||
98e74dfd38 | |||
1d728186db | |||
2499f2ed80 | |||
963905adcd | |||
7c21ab0985 | |||
77d3712261 | |||
0376f22d41 | |||
007820b7c1 | |||
dc98711477 | |||
e98c6ff31b | |||
9eae74357a | |||
1ee88a2878 | |||
14189e6827 | |||
3dd6113a0a | |||
ae5cdea5af | |||
3c1f389e25 | |||
284d821233 | |||
78272e5592 | |||
098bc41083 | |||
c837090282 | |||
cdc1678e6f | |||
2a3d76b0cc | |||
29e89491de | |||
d63947aec4 | |||
512f0a67fb | |||
a7cd4657f5 | |||
bf02cde598 | |||
b7dbb35546 | |||
6fd5f0e3de | |||
e6469df065 | |||
d61fe357f6 | |||
965dd2ab67 | |||
78e011d558 | |||
76590d6c69 |
59
NEWS
59
NEWS
@ -1,3 +1,62 @@
|
|||||||
|
3.9.1
|
||||||
|
=====
|
||||||
|
* Add additional toggle-overview keybinding [Matthias; #698251]
|
||||||
|
* Disable <super> shortcut when sticky keys are enabled [Matthias; #685974]
|
||||||
|
* Disable tray context menu while a notification displays [Jasper; #695800]
|
||||||
|
* Watch GApplication busy state [Cosimo; #697207]
|
||||||
|
* Disable style transitions if animations are disabled [Jasper; #698391]
|
||||||
|
* Filter out hidden applications from "Frequent" view [Giovanni; #696949]
|
||||||
|
* Fix window previews swapping place randomly [Jasper; #694469, #698776]
|
||||||
|
* Add support for serialized GIcons in remote search providers [Cosimo; #698761]
|
||||||
|
* Fix hotcorner regression in RTL locales [Jasper; #698884]
|
||||||
|
* Allow some keybindings to work while a top bar menu is open [Florian; #698938]
|
||||||
|
* Make open-app-menu keybinding a toggle action [Florian; #686756]
|
||||||
|
* Only recognize common URL schemes in notification messages [Monica; #661225]
|
||||||
|
* Misc fixes and cleanups [Tim, Jasper, Florian, Giovanni, Owen; #698531,
|
||||||
|
#698622, #698427, #698483, #698513, #697203, #698959, #698918, #699029,
|
||||||
|
#699075, #696720, #649748]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Giovanni Campagna, Cosimo Cecchi, Monica Chelliah, Matthias Clasen, Tim Lunn,
|
||||||
|
Florian Müllner, Jasper St. Pierre, Michael Wood, Owen W. Taylor
|
||||||
|
|
||||||
|
Translations:
|
||||||
|
Fran Diéguez [gl], Muhammet Kara [tr], Daniel Mustieles [es],
|
||||||
|
Gil Forcada [ia], Anish A [ml], Dimitris Spingos [el], Marek Černocký [cs],
|
||||||
|
Žygimantas Beručka [lt]
|
||||||
|
|
||||||
|
3.8.1
|
||||||
|
=====
|
||||||
|
* Clip window group during startup animation [Jasper; #696323]
|
||||||
|
* Check for logind rather than systemd [Martin; #696252]
|
||||||
|
* Don't special-case last remote search provider position [Giovanni; #694974]
|
||||||
|
* Fix memory leaks [Ray, Jasper; ##697119, #697295, #697300, #697395]
|
||||||
|
* AppSwitcherPopup: Activate only the selected window if any [Rui; #697480]
|
||||||
|
* Enable screen recorder keybinding in all modes [Florian; #696200]
|
||||||
|
* Remove box-shadow from screen shield for performance reasons [Adel; #697274]
|
||||||
|
* Add support for -st-natural-width/height CSS properties [Giovanni; #664411]
|
||||||
|
* Remove excessive padding from notification buttons [Allan; #664411]
|
||||||
|
* Fix thumbnail dragging in overview [Jasper; #697504]
|
||||||
|
* theme-node: Add get_url()/lookup_url() methods [Florian; #693688]
|
||||||
|
* Misc bug fixes and cleanups [Jasper, Rui, Colin, David, Ray, Matthias:
|
||||||
|
#695859, #696259, #696585, #696436, #697432, #697435, #697560, #697722,
|
||||||
|
#697709]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Giovanni Campagna, Matthias Clasen, Allan Day, Adel Gadllah, David Gumberg,
|
||||||
|
Rui Matos, Florian Müllner, Martin Pitt, Jasper St. Pierre, Ray Strode,
|
||||||
|
Colin Walters
|
||||||
|
|
||||||
|
Translations:
|
||||||
|
Daniel Martinez [an], Bruce Cowan [en_GB], Khaled Hosny [ar],
|
||||||
|
Ihar Hrachyshka [be], Aron Xu [zh_CN], Wojciech Szczęsny [pl],
|
||||||
|
Inaki Larranaga Murgoitio [eu], Kjartan Maraas [nb],
|
||||||
|
Милош Поповић [sr, sr@latin], Trần Ngọc Quân [vi]
|
||||||
|
|
||||||
|
3.8.0.1
|
||||||
|
=======
|
||||||
|
* Background bug fixes [Ray; #696712]
|
||||||
|
|
||||||
3.8.0
|
3.8.0
|
||||||
=====
|
=====
|
||||||
* Remove blur and desaturation from lock screen [Jasper; #696322]
|
* Remove blur and desaturation from lock screen [Jasper; #696322]
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
AC_PREREQ(2.63)
|
AC_PREREQ(2.63)
|
||||||
AC_INIT([gnome-shell],[3.8.0],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
|
AC_INIT([gnome-shell],[3.9.1],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
|
||||||
|
|
||||||
AC_CONFIG_HEADERS([config.h])
|
AC_CONFIG_HEADERS([config.h])
|
||||||
AC_CONFIG_SRCDIR([src/shell-global.c])
|
AC_CONFIG_SRCDIR([src/shell-global.c])
|
||||||
@ -63,9 +63,9 @@ AM_CONDITIONAL(BUILD_RECORDER, $build_recorder)
|
|||||||
CLUTTER_MIN_VERSION=1.13.4
|
CLUTTER_MIN_VERSION=1.13.4
|
||||||
GOBJECT_INTROSPECTION_MIN_VERSION=0.10.1
|
GOBJECT_INTROSPECTION_MIN_VERSION=0.10.1
|
||||||
GJS_MIN_VERSION=1.35.4
|
GJS_MIN_VERSION=1.35.4
|
||||||
MUTTER_MIN_VERSION=3.8.0
|
MUTTER_MIN_VERSION=3.9.1
|
||||||
GTK_MIN_VERSION=3.7.9
|
GTK_MIN_VERSION=3.7.9
|
||||||
GIO_MIN_VERSION=2.35.0
|
GIO_MIN_VERSION=2.37.0
|
||||||
LIBECAL_MIN_VERSION=3.5.3
|
LIBECAL_MIN_VERSION=3.5.3
|
||||||
LIBEDATASERVER_MIN_VERSION=3.5.3
|
LIBEDATASERVER_MIN_VERSION=3.5.3
|
||||||
TELEPATHY_GLIB_MIN_VERSION=0.17.5
|
TELEPATHY_GLIB_MIN_VERSION=0.17.5
|
||||||
@ -74,7 +74,7 @@ STARTUP_NOTIFICATION_MIN_VERSION=0.11
|
|||||||
GCR_MIN_VERSION=3.3.90
|
GCR_MIN_VERSION=3.3.90
|
||||||
GNOME_DESKTOP_REQUIRED_VERSION=3.7.90
|
GNOME_DESKTOP_REQUIRED_VERSION=3.7.90
|
||||||
GNOME_MENUS_REQUIRED_VERSION=3.5.3
|
GNOME_MENUS_REQUIRED_VERSION=3.5.3
|
||||||
NETWORKMANAGER_MIN_VERSION=0.9.6
|
NETWORKMANAGER_MIN_VERSION=0.9.8
|
||||||
PULSE_MIN_VERS=2.0
|
PULSE_MIN_VERS=2.0
|
||||||
|
|
||||||
# Collect more than 20 libraries for a prize!
|
# Collect more than 20 libraries for a prize!
|
||||||
|
@ -11,6 +11,9 @@
|
|||||||
<KeyListEntry name="focus-active-notification"
|
<KeyListEntry name="focus-active-notification"
|
||||||
_description="Focus the active notification"/>
|
_description="Focus the active notification"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="toggle-overview"
|
||||||
|
_description="Show the overview"/>
|
||||||
|
|
||||||
<KeyListEntry name="toggle-application-view"
|
<KeyListEntry name="toggle-application-view"
|
||||||
_description="Show all applications"/>
|
_description="Show all applications"/>
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@
|
|||||||
<!--
|
<!--
|
||||||
GetResultMetas:
|
GetResultMetas:
|
||||||
@identifiers: An array of result identifiers as returned by GetInitialResultSet() or GetSubsearchResultSet()
|
@identifiers: An array of result identifiers as returned by GetInitialResultSet() or GetSubsearchResultSet()
|
||||||
@metas: A dictionary describing the given search result, containing a human-readable 'name' (string), along with the result identifier this meta is for, 'id' (string). Optionally, either 'gicon' (a serialized GIcon) or 'icon-data' (raw image data as (iiibiiay) - width, height, rowstride, has-alpha, bits per sample, channels, data) can be specified if the result can be better served with a thumbnail of the content (such as with images). A 'description' field (string) may also be specified if more context would help the user find the desired result.
|
@metas: A dictionary describing the given search result, containing a human-readable 'name' (string), along with the result identifier this meta is for, 'id' (string). Optionally, 'icon' (a serialized GIcon as obtained by g_icon_serialize) can be specified if the result can be better served with a thumbnail of the content (such as with images). 'gicon' (a serialized GIcon as obtained by g_icon_to_string) or 'icon-data' (raw image data as (iiibiiay) - width, height, rowstride, has-alpha, bits per sample, channels, data) are deprecated values that can also be used for that purpose. A 'description' field (string) may also be specified if more context would help the user find the desired result.
|
||||||
|
|
||||||
Return an array of meta data used to display each given result
|
Return an array of meta data used to display each given result
|
||||||
-->
|
-->
|
||||||
|
@ -117,6 +117,13 @@ value here is from the GsmPresenceStatus enumeration.</_summary>
|
|||||||
Overview.
|
Overview.
|
||||||
</_description>
|
</_description>
|
||||||
</key>
|
</key>
|
||||||
|
<key name="toggle-overview" type="as">
|
||||||
|
<default>["<Super>s"]</default>
|
||||||
|
<_summary>Keybinding to open the overview</_summary>
|
||||||
|
<_description>
|
||||||
|
Keybinding to open the Activities Overview.
|
||||||
|
</_description>
|
||||||
|
</key>
|
||||||
<key name="toggle-message-tray" type="as">
|
<key name="toggle-message-tray" type="as">
|
||||||
<default>["<Super>m"]</default>
|
<default>["<Super>m"]</default>
|
||||||
<_summary>Keybinding to toggle the visibility of the message tray</_summary>
|
<_summary>Keybinding to toggle the visibility of the message tray</_summary>
|
||||||
|
@ -125,6 +125,10 @@ StScrollBar StButton#vhandle:active {
|
|||||||
|
|
||||||
/* PopupMenu */
|
/* PopupMenu */
|
||||||
|
|
||||||
|
.popup-menu-ornament {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
.popup-menu-boxpointer,
|
.popup-menu-boxpointer,
|
||||||
.candidate-popup-boxpointer {
|
.candidate-popup-boxpointer {
|
||||||
-arrow-border-radius: 8px;
|
-arrow-border-radius: 8px;
|
||||||
@ -512,6 +516,7 @@ StScrollBar StButton#vhandle:active {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#appMenu {
|
#appMenu {
|
||||||
|
spinner-image: url("process-working.svg");
|
||||||
spacing: 4px;
|
spacing: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1453,11 +1458,13 @@ StScrollBar StButton#vhandle:active {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.notification-button {
|
.notification-button {
|
||||||
padding: 4px 42px 5px;
|
-st-natural-width: 140px;
|
||||||
|
padding: 4px 4px 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.notification-button:focus {
|
.notification-button:focus {
|
||||||
padding: 3px 41px 4px;
|
-st-natural-width: 138px;
|
||||||
|
padding: 3px 4px 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.notification-icon-button {
|
.notification-icon-button {
|
||||||
@ -2445,7 +2452,6 @@ StScrollBar StButton#vhandle:active {
|
|||||||
|
|
||||||
.screen-shield-background {
|
.screen-shield-background {
|
||||||
background: black;
|
background: black;
|
||||||
box-shadow: 0px 4px 8px rgba(0,0,0,0.9);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#lockDialogGroup {
|
#lockDialogGroup {
|
||||||
|
@ -774,7 +774,8 @@ const LoginDialog = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_prepareDialog: function(forSecret, hold) {
|
_prepareDialog: function(forSecret, hold) {
|
||||||
this._workSpinner = new Panel.AnimatedIcon('process-working.svg', WORK_SPINNER_ICON_SIZE);
|
let spinnerIcon = global.datadir + '/theme/process-working.svg';
|
||||||
|
this._workSpinner = new Panel.AnimatedIcon(spinnerIcon, WORK_SPINNER_ICON_SIZE);
|
||||||
this._workSpinner.actor.opacity = 0;
|
this._workSpinner.actor.opacity = 0;
|
||||||
this._workSpinner.actor.show();
|
this._workSpinner.actor.show();
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ const ConsoleKitSession = Gio.DBusProxy.makeProxyWrapper(ConsoleKitSessionIface)
|
|||||||
const ConsoleKitManager = Gio.DBusProxy.makeProxyWrapper(ConsoleKitManagerIface);
|
const ConsoleKitManager = Gio.DBusProxy.makeProxyWrapper(ConsoleKitManagerIface);
|
||||||
|
|
||||||
function haveSystemd() {
|
function haveSystemd() {
|
||||||
return GLib.access("/sys/fs/cgroup/systemd", 0) >= 0;
|
return GLib.access("/run/systemd/seats", 0) >= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
function versionCompare(required, reference) {
|
function versionCompare(required, reference) {
|
||||||
|
@ -18,7 +18,7 @@ const _urlRegexp = new RegExp(
|
|||||||
'(^|' + _leadingJunk + ')' +
|
'(^|' + _leadingJunk + ')' +
|
||||||
'(' +
|
'(' +
|
||||||
'(?:' +
|
'(?:' +
|
||||||
'[a-z][\\w-]+://' + // scheme://
|
'(?:http|https|ftp)://' + // scheme://
|
||||||
'|' +
|
'|' +
|
||||||
'www\\d{0,3}[.]' + // www.
|
'www\\d{0,3}[.]' + // www.
|
||||||
'|' +
|
'|' +
|
||||||
|
@ -232,11 +232,13 @@ const AppSwitcherPopup = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_finish : function(timestamp) {
|
_finish : function(timestamp) {
|
||||||
this.parent();
|
|
||||||
|
|
||||||
let appIcon = this._items[this._selectedIndex];
|
let appIcon = this._items[this._selectedIndex];
|
||||||
let window = this._currentWindow > 0 ? this._currentWindow : 0;
|
if (this._currentWindow < 0)
|
||||||
appIcon.app.activate_window(appIcon.cachedWindows[window], timestamp);
|
appIcon.app.activate_full(-1, timestamp);
|
||||||
|
else
|
||||||
|
Main.activateWindow(appIcon.cachedWindows[this._currentWindow], timestamp);
|
||||||
|
|
||||||
|
this.parent();
|
||||||
},
|
},
|
||||||
|
|
||||||
_onDestroy : function() {
|
_onDestroy : function() {
|
||||||
@ -395,9 +397,9 @@ const WindowSwitcherPopup = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_finish: function() {
|
_finish: function() {
|
||||||
this.parent();
|
|
||||||
|
|
||||||
Main.activateWindow(this._items[this._selectedIndex].window);
|
Main.activateWindow(this._items[this._selectedIndex].window);
|
||||||
|
|
||||||
|
this.parent();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -316,6 +316,8 @@ const FrequentView = new Lang.Class({
|
|||||||
loadApps: function() {
|
loadApps: function() {
|
||||||
let mostUsed = this._usage.get_most_used ("");
|
let mostUsed = this._usage.get_most_used ("");
|
||||||
for (let i = 0; i < mostUsed.length; i++) {
|
for (let i = 0; i < mostUsed.length; i++) {
|
||||||
|
if (!mostUsed[i].get_app_info().should_show())
|
||||||
|
continue;
|
||||||
let appIcon = new AppIcon(mostUsed[i]);
|
let appIcon = new AppIcon(mostUsed[i]);
|
||||||
this._grid.addItem(appIcon.actor, -1);
|
this._grid.addItem(appIcon.actor, -1);
|
||||||
}
|
}
|
||||||
|
@ -126,6 +126,11 @@ const BackgroundCache = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
removeImageContent: function(content) {
|
removeImageContent: function(content) {
|
||||||
|
let filename = content.get_filename();
|
||||||
|
|
||||||
|
if (filename && this._fileMonitors[filename])
|
||||||
|
delete this._fileMonitors[filename];
|
||||||
|
|
||||||
this._removeContent(this._images, content);
|
this._removeContent(this._images, content);
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -241,6 +246,8 @@ const BackgroundCache = new Lang.Class({
|
|||||||
} else {
|
} else {
|
||||||
this._loadImageContent({ filename: params.filename,
|
this._loadImageContent({ filename: params.filename,
|
||||||
style: params.style,
|
style: params.style,
|
||||||
|
effects: params.effects,
|
||||||
|
monitorIndex: params.monitorIndex,
|
||||||
cancellable: params.cancellable,
|
cancellable: params.cancellable,
|
||||||
onFinished: params.onFinished });
|
onFinished: params.onFinished });
|
||||||
|
|
||||||
@ -424,7 +431,7 @@ const Background = new Lang.Class({
|
|||||||
content.brightness = this._brightness;
|
content.brightness = this._brightness;
|
||||||
content.vignette_sharpness = this._vignetteSharpness;
|
content.vignette_sharpness = this._vignetteSharpness;
|
||||||
|
|
||||||
this._cache.removeImageContent(content);
|
this._cache.removeImageContent(this._images[index].content);
|
||||||
this._images[index].content = content;
|
this._images[index].content = content;
|
||||||
this._watchCacheFile(filename);
|
this._watchCacheFile(filename);
|
||||||
},
|
},
|
||||||
@ -740,11 +747,15 @@ const BackgroundManager = new Lang.Class({
|
|||||||
time: FADE_ANIMATION_TIME,
|
time: FADE_ANIMATION_TIME,
|
||||||
transition: 'easeOutQuad',
|
transition: 'easeOutQuad',
|
||||||
onComplete: Lang.bind(this, function() {
|
onComplete: Lang.bind(this, function() {
|
||||||
if (this.background == background) {
|
if (this._newBackground == newBackground) {
|
||||||
this.background = newBackground;
|
this.background = newBackground;
|
||||||
this._newBackground = null;
|
this._newBackground = null;
|
||||||
background.actor.destroy();
|
} else {
|
||||||
|
newBackground.actor.destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
background.actor.destroy();
|
||||||
|
|
||||||
this.emit('changed');
|
this.emit('changed');
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
@ -46,8 +46,10 @@ function addBackgroundMenu(actor) {
|
|||||||
clickAction.connect('long-press', function(action, actor, state) {
|
clickAction.connect('long-press', function(action, actor, state) {
|
||||||
if (state == Clutter.LongPressState.QUERY)
|
if (state == Clutter.LongPressState.QUERY)
|
||||||
return action.get_button() == 1 && !actor._backgroundMenu.isOpen;
|
return action.get_button() == 1 && !actor._backgroundMenu.isOpen;
|
||||||
if (state == Clutter.LongPressState.ACTIVATE)
|
if (state == Clutter.LongPressState.ACTIVATE) {
|
||||||
openMenu();
|
openMenu();
|
||||||
|
actor._backgroundManager.ignoreRelease();
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
clickAction.connect('clicked', function(action) {
|
clickAction.connect('clicked', function(action) {
|
||||||
@ -55,4 +57,12 @@ function addBackgroundMenu(actor) {
|
|||||||
openMenu();
|
openMenu();
|
||||||
});
|
});
|
||||||
actor.add_action(clickAction);
|
actor.add_action(clickAction);
|
||||||
|
|
||||||
|
actor.connect('destroy', function() {
|
||||||
|
actor._backgroundMenu.destroy();
|
||||||
|
actor._backgroundMenu = null;
|
||||||
|
actor._backgroundManager = null;
|
||||||
|
|
||||||
|
cursor.destroy();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
@ -71,7 +71,7 @@ function _formatEventTime(event, clockFormat) {
|
|||||||
default:
|
default:
|
||||||
/* explicit fall-through */
|
/* explicit fall-through */
|
||||||
case '12h':
|
case '12h':
|
||||||
/* Transators: Shown in calendar event list, if 12h format,
|
/* Translators: Shown in calendar event list, if 12h format,
|
||||||
\u2236 is a ratio character, similar to : and \u2009 is
|
\u2236 is a ratio character, similar to : and \u2009 is
|
||||||
a thin space */
|
a thin space */
|
||||||
ret = event.date.toLocaleFormat(C_("event list time", "%l\u2236%M\u2009%p"));
|
ret = event.date.toLocaleFormat(C_("event list time", "%l\u2236%M\u2009%p"));
|
||||||
|
@ -20,8 +20,7 @@ const Recorder = new Lang.Class({
|
|||||||
Main.wm.addKeybinding('toggle-recording',
|
Main.wm.addKeybinding('toggle-recording',
|
||||||
this._bindingSettings,
|
this._bindingSettings,
|
||||||
Meta.KeyBindingFlags.NONE,
|
Meta.KeyBindingFlags.NONE,
|
||||||
Shell.KeyBindingMode.NORMAL |
|
Shell.KeyBindingMode.ALL,
|
||||||
Shell.KeyBindingMode.OVERVIEW,
|
|
||||||
Lang.bind(this, this._toggleRecorder));
|
Lang.bind(this, this._toggleRecorder));
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -221,8 +221,8 @@ const DateMenuButton = new Lang.Class({
|
|||||||
this.menu.close();
|
this.menu.close();
|
||||||
|
|
||||||
let app = Gio.AppInfo.get_default_for_type('text/calendar', false);
|
let app = Gio.AppInfo.get_default_for_type('text/calendar', false);
|
||||||
if (app.get_id() == 'evolution')
|
if (app.get_id() == 'evolution.desktop')
|
||||||
app = Gio.DesktopAppInfo.new('evolution-calendar');
|
app = Gio.DesktopAppInfo.new('evolution-calendar.desktop');
|
||||||
app.launch([], global.create_app_launch_context());
|
app.launch([], global.create_app_launch_context());
|
||||||
},
|
},
|
||||||
|
|
||||||
|
16
js/ui/dnd.js
16
js/ui/dnd.js
@ -291,19 +291,19 @@ const _Draggable = new Lang.Class({
|
|||||||
this._dragOrigY = this._dragActor.y;
|
this._dragOrigY = this._dragActor.y;
|
||||||
this._dragOrigScale = this._dragActor.scale_x;
|
this._dragOrigScale = this._dragActor.scale_x;
|
||||||
|
|
||||||
this._dragActor.reparent(Main.uiGroup);
|
// Set the actor's scale such that it will keep the same
|
||||||
this._dragActor.raise_top();
|
// transformed size when it's reparented to the uiGroup
|
||||||
Shell.util_set_hidden_from_pick(this._dragActor, true);
|
let [scaledWidth, scaledHeight] = this.actor.get_transformed_size();
|
||||||
|
this._dragActor.set_scale(scaledWidth / this.actor.width,
|
||||||
|
scaledHeight / this.actor.height);
|
||||||
|
|
||||||
let [actorStageX, actorStageY] = this.actor.get_transformed_position();
|
let [actorStageX, actorStageY] = this.actor.get_transformed_position();
|
||||||
this._dragOffsetX = actorStageX - this._dragStartX;
|
this._dragOffsetX = actorStageX - this._dragStartX;
|
||||||
this._dragOffsetY = actorStageY - this._dragStartY;
|
this._dragOffsetY = actorStageY - this._dragStartY;
|
||||||
|
|
||||||
// Set the actor's scale such that it will keep the same
|
this._dragActor.reparent(Main.uiGroup);
|
||||||
// transformed size when it's reparented to the uiGroup
|
this._dragActor.raise_top();
|
||||||
let [scaledWidth, scaledHeight] = this.actor.get_transformed_size();
|
Shell.util_set_hidden_from_pick(this._dragActor, true);
|
||||||
this.actor.set_scale(scaledWidth / this.actor.width,
|
|
||||||
scaledHeight / this.actor.height);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this._dragOrigOpacity = this._dragActor.opacity;
|
this._dragOrigOpacity = this._dragActor.opacity;
|
||||||
|
@ -225,7 +225,8 @@ const EndSessionDialog = new Lang.Class({
|
|||||||
Extends: ModalDialog.ModalDialog,
|
Extends: ModalDialog.ModalDialog,
|
||||||
|
|
||||||
_init: function() {
|
_init: function() {
|
||||||
this.parent({ styleClass: 'end-session-dialog' });
|
this.parent({ styleClass: 'end-session-dialog',
|
||||||
|
destroyOnClose: false });
|
||||||
|
|
||||||
this._user = AccountsService.UserManager.get_default().get_user(GLib.get_user_name());
|
this._user = AccountsService.UserManager.get_default().get_user(GLib.get_user_name());
|
||||||
|
|
||||||
|
@ -118,6 +118,22 @@ const MonitorConstraint = new Lang.Class({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const Monitor = new Lang.Class({
|
||||||
|
Name: 'Monitor',
|
||||||
|
|
||||||
|
_init: function(index, geometry) {
|
||||||
|
this.index = index;
|
||||||
|
this.x = geometry.x;
|
||||||
|
this.y = geometry.y;
|
||||||
|
this.width = geometry.width;
|
||||||
|
this.height = geometry.height;
|
||||||
|
},
|
||||||
|
|
||||||
|
get inFullscreen() {
|
||||||
|
return global.screen.get_monitor_in_fullscreen(this.index);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
const defaultParams = {
|
const defaultParams = {
|
||||||
trackFullscreen: false,
|
trackFullscreen: false,
|
||||||
affectsStruts: false,
|
affectsStruts: false,
|
||||||
@ -261,7 +277,7 @@ const LayoutManager = new Lang.Class({
|
|||||||
this.monitors = [];
|
this.monitors = [];
|
||||||
let nMonitors = screen.get_n_monitors();
|
let nMonitors = screen.get_n_monitors();
|
||||||
for (let i = 0; i < nMonitors; i++)
|
for (let i = 0; i < nMonitors; i++)
|
||||||
this.monitors.push(screen.get_monitor_geometry(i));
|
this.monitors.push(new Monitor(i, screen.get_monitor_geometry(i)));
|
||||||
|
|
||||||
if (nMonitors == 1) {
|
if (nMonitors == 1) {
|
||||||
this.primaryIndex = this.bottomIndex = 0;
|
this.primaryIndex = this.bottomIndex = 0;
|
||||||
@ -283,8 +299,10 @@ const LayoutManager = new Lang.Class({
|
|||||||
|
|
||||||
_updateHotCorners: function() {
|
_updateHotCorners: function() {
|
||||||
// destroy old hot corners
|
// destroy old hot corners
|
||||||
for (let i = 0; i < this.hotCorners.length; i++)
|
this.hotCorners.forEach(function(corner) {
|
||||||
this.hotCorners[i].destroy();
|
if (corner)
|
||||||
|
corner.destroy();
|
||||||
|
});
|
||||||
this.hotCorners = [];
|
this.hotCorners = [];
|
||||||
|
|
||||||
let size = this.panelBox.height;
|
let size = this.panelBox.height;
|
||||||
@ -295,9 +313,9 @@ const LayoutManager = new Lang.Class({
|
|||||||
let cornerX = this._rtl ? monitor.x + monitor.width : monitor.x;
|
let cornerX = this._rtl ? monitor.x + monitor.width : monitor.x;
|
||||||
let cornerY = monitor.y;
|
let cornerY = monitor.y;
|
||||||
|
|
||||||
if (i != this.primaryIndex) {
|
let haveTopLeftCorner = true;
|
||||||
let haveTopLeftCorner = true;
|
|
||||||
|
|
||||||
|
if (i != this.primaryIndex) {
|
||||||
// Check if we have a top left (right for RTL) corner.
|
// Check if we have a top left (right for RTL) corner.
|
||||||
// I.e. if there is no monitor directly above or to the left(right)
|
// I.e. if there is no monitor directly above or to the left(right)
|
||||||
let besideX = this._rtl ? monitor.x + 1 : cornerX - 1;
|
let besideX = this._rtl ? monitor.x + 1 : cornerX - 1;
|
||||||
@ -324,14 +342,15 @@ const LayoutManager = new Lang.Class({
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!haveTopLeftCorner)
|
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let corner = new HotCorner(this, monitor, cornerX, cornerY);
|
if (haveTopLeftCorner) {
|
||||||
corner.setBarrierSize(size);
|
let corner = new HotCorner(this, monitor, cornerX, cornerY);
|
||||||
this.hotCorners.push(corner);
|
corner.setBarrierSize(size);
|
||||||
|
this.hotCorners.push(corner);
|
||||||
|
} else {
|
||||||
|
this.hotCorners.push(null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.emit('hot-corners-changed');
|
this.emit('hot-corners-changed');
|
||||||
@ -408,7 +427,8 @@ const LayoutManager = new Lang.Class({
|
|||||||
|
|
||||||
let size = this.panelBox.height;
|
let size = this.panelBox.height;
|
||||||
this.hotCorners.forEach(function(corner) {
|
this.hotCorners.forEach(function(corner) {
|
||||||
corner.setBarrierSize(size);
|
if (corner)
|
||||||
|
corner.setBarrierSize(size);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -578,6 +598,7 @@ const LayoutManager = new Lang.Class({
|
|||||||
y / global.screen_height);
|
y / global.screen_height);
|
||||||
this.uiGroup.scale_x = this.uiGroup.scale_y = 0.5;
|
this.uiGroup.scale_x = this.uiGroup.scale_y = 0.5;
|
||||||
this.uiGroup.opacity = 0;
|
this.uiGroup.opacity = 0;
|
||||||
|
global.window_group.set_clip(monitor.x, monitor.y, monitor.width, monitor.height);
|
||||||
}
|
}
|
||||||
|
|
||||||
this._systemBackground = new Background.SystemBackground();
|
this._systemBackground = new Background.SystemBackground();
|
||||||
@ -654,8 +675,10 @@ const LayoutManager = new Lang.Class({
|
|||||||
this.trayBox.show();
|
this.trayBox.show();
|
||||||
this.keyboardBox.show();
|
this.keyboardBox.show();
|
||||||
|
|
||||||
if (!Main.sessionMode.isGreeter)
|
if (!Main.sessionMode.isGreeter) {
|
||||||
this._createSecondaryBackgrounds();
|
this._createSecondaryBackgrounds();
|
||||||
|
global.window_group.remove_clip();
|
||||||
|
}
|
||||||
|
|
||||||
this._queueUpdateRegions();
|
this._queueUpdateRegions();
|
||||||
|
|
||||||
@ -897,13 +920,8 @@ const LayoutManager = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_updateFullscreen: function() {
|
_updateFullscreen: function() {
|
||||||
for (let i = 0; i < this.monitors.length; i++)
|
|
||||||
this.monitors[i].inFullscreen = global.screen.get_monitor_in_fullscreen (i);
|
|
||||||
|
|
||||||
this._updateVisibility();
|
this._updateVisibility();
|
||||||
this._queueUpdateRegions();
|
this._queueUpdateRegions();
|
||||||
|
|
||||||
this.emit('fullscreen-changed');
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_windowsRestacked: function() {
|
_windowsRestacked: function() {
|
||||||
@ -1089,12 +1107,21 @@ const HotCorner = new Lang.Class({
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (size > 0) {
|
if (size > 0) {
|
||||||
this._verticalBarrier = new Meta.Barrier({ display: global.display,
|
if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL) {
|
||||||
x1: this._x, x2: this._x, y1: this._y, y2: this._y + size,
|
this._verticalBarrier = new Meta.Barrier({ display: global.display,
|
||||||
directions: Meta.BarrierDirection.POSITIVE_X });
|
x1: this._x, x2: this._x, y1: this._y, y2: this._y + size,
|
||||||
this._horizontalBarrier = new Meta.Barrier({ display: global.display,
|
directions: Meta.BarrierDirection.NEGATIVE_X });
|
||||||
x1: this._x, x2: this._x + size, y1: this._y, y2: this._y,
|
this._horizontalBarrier = new Meta.Barrier({ display: global.display,
|
||||||
directions: Meta.BarrierDirection.POSITIVE_Y });
|
x1: this._x - size, x2: this._x, y1: this._y, y2: this._y,
|
||||||
|
directions: Meta.BarrierDirection.POSITIVE_Y });
|
||||||
|
} else {
|
||||||
|
this._verticalBarrier = new Meta.Barrier({ display: global.display,
|
||||||
|
x1: this._x, x2: this._x, y1: this._y, y2: this._y + size,
|
||||||
|
directions: Meta.BarrierDirection.POSITIVE_X });
|
||||||
|
this._horizontalBarrier = new Meta.Barrier({ display: global.display,
|
||||||
|
x1: this._x, x2: this._x + size, y1: this._y, y2: this._y,
|
||||||
|
directions: Meta.BarrierDirection.POSITIVE_Y });
|
||||||
|
}
|
||||||
|
|
||||||
this._pressureBarrier.addBarrier(this._verticalBarrier);
|
this._pressureBarrier.addBarrier(this._verticalBarrier);
|
||||||
this._pressureBarrier.addBarrier(this._horizontalBarrier);
|
this._pressureBarrier.addBarrier(this._horizontalBarrier);
|
||||||
|
@ -41,6 +41,9 @@ const Util = imports.misc.util;
|
|||||||
const OVERRIDES_SCHEMA = 'org.gnome.shell.overrides';
|
const OVERRIDES_SCHEMA = 'org.gnome.shell.overrides';
|
||||||
const DEFAULT_BACKGROUND_COLOR = Clutter.Color.from_pixel(0x2e3436ff);
|
const DEFAULT_BACKGROUND_COLOR = Clutter.Color.from_pixel(0x2e3436ff);
|
||||||
|
|
||||||
|
const A11Y_SCHEMA = 'org.gnome.desktop.a11y.keyboard';
|
||||||
|
const STICKY_KEYS_ENABLE = 'stickykeys-enable';
|
||||||
|
|
||||||
let componentManager = null;
|
let componentManager = null;
|
||||||
let panel = null;
|
let panel = null;
|
||||||
let overview = null;
|
let overview = null;
|
||||||
@ -69,6 +72,7 @@ let _startDate;
|
|||||||
let _defaultCssStylesheet = null;
|
let _defaultCssStylesheet = null;
|
||||||
let _cssStylesheet = null;
|
let _cssStylesheet = null;
|
||||||
let _overridesSettings = null;
|
let _overridesSettings = null;
|
||||||
|
let _a11ySettings = null;
|
||||||
|
|
||||||
function _sessionUpdated() {
|
function _sessionUpdated() {
|
||||||
_loadDefaultStylesheet();
|
_loadDefaultStylesheet();
|
||||||
@ -157,9 +161,14 @@ function _initializeUI() {
|
|||||||
layoutManager.init();
|
layoutManager.init();
|
||||||
overview.init();
|
overview.init();
|
||||||
|
|
||||||
|
_a11ySettings = new Gio.Settings({ schema: A11Y_SCHEMA });
|
||||||
|
|
||||||
global.screen.override_workspace_layout(Meta.ScreenCorner.TOPLEFT,
|
global.screen.override_workspace_layout(Meta.ScreenCorner.TOPLEFT,
|
||||||
false, -1, 1);
|
false, -1, 1);
|
||||||
global.display.connect('overlay-key', Lang.bind(overview, overview.toggle));
|
global.display.connect('overlay-key', Lang.bind(overview, function () {
|
||||||
|
if (!_a11ySettings.get_boolean (STICKY_KEYS_ENABLE))
|
||||||
|
overview.toggle();
|
||||||
|
}));
|
||||||
|
|
||||||
// Provide the bus object for gnome-session to
|
// Provide the bus object for gnome-session to
|
||||||
// initiate logouts.
|
// initiate logouts.
|
||||||
|
@ -1557,23 +1557,22 @@ const MessageTray = new Lang.Class({
|
|||||||
|
|
||||||
this.actor = new St.Widget({ name: 'message-tray',
|
this.actor = new St.Widget({ name: 'message-tray',
|
||||||
reactive: true,
|
reactive: true,
|
||||||
track_hover: true,
|
|
||||||
layout_manager: new Clutter.BinLayout(),
|
layout_manager: new Clutter.BinLayout(),
|
||||||
x_expand: true,
|
x_expand: true,
|
||||||
y_expand: true,
|
y_expand: true,
|
||||||
y_align: Clutter.ActorAlign.START,
|
y_align: Clutter.ActorAlign.START,
|
||||||
});
|
});
|
||||||
this.actor.connect('notify::hover', Lang.bind(this, this._onTrayHoverChanged));
|
|
||||||
|
|
||||||
this._notificationWidget = new St.Widget({ name: 'notification-container',
|
this._notificationWidget = new St.Widget({ name: 'notification-container',
|
||||||
|
reactive: true,
|
||||||
|
track_hover: true,
|
||||||
y_align: Clutter.ActorAlign.START,
|
y_align: Clutter.ActorAlign.START,
|
||||||
x_align: Clutter.ActorAlign.CENTER,
|
x_align: Clutter.ActorAlign.CENTER,
|
||||||
y_expand: true,
|
y_expand: true,
|
||||||
x_expand: true,
|
x_expand: true,
|
||||||
layout_manager: new Clutter.BinLayout() });
|
layout_manager: new Clutter.BinLayout() });
|
||||||
this._notificationWidget.connect('key-release-event', Lang.bind(this, this._onNotificationKeyRelease));
|
this._notificationWidget.connect('key-release-event', Lang.bind(this, this._onNotificationKeyRelease));
|
||||||
|
this._notificationWidget.connect('notify::hover', Lang.bind(this, this._onNotificationHoverChanged));
|
||||||
this.actor.add_actor(this._notificationWidget);
|
|
||||||
|
|
||||||
this._notificationBin = new St.Bin({ y_expand: true });
|
this._notificationBin = new St.Bin({ y_expand: true });
|
||||||
this._notificationBin.set_y_align(Clutter.ActorAlign.START);
|
this._notificationBin.set_y_align(Clutter.ActorAlign.START);
|
||||||
@ -1628,24 +1627,25 @@ const MessageTray = new Lang.Class({
|
|||||||
{ keybindingMode: Shell.KeyBindingMode.MESSAGE_TRAY });
|
{ keybindingMode: Shell.KeyBindingMode.MESSAGE_TRAY });
|
||||||
this._grabHelper.addActor(this._summaryBoxPointer.actor);
|
this._grabHelper.addActor(this._summaryBoxPointer.actor);
|
||||||
this._grabHelper.addActor(this.actor);
|
this._grabHelper.addActor(this.actor);
|
||||||
|
this._grabHelper.addActor(this._notificationWidget);
|
||||||
|
|
||||||
Main.layoutManager.connect('keyboard-visible-changed', Lang.bind(this, this._onKeyboardVisibleChanged));
|
Main.layoutManager.connect('keyboard-visible-changed', Lang.bind(this, this._onKeyboardVisibleChanged));
|
||||||
|
|
||||||
this._trayState = State.HIDDEN;
|
this._trayState = State.HIDDEN;
|
||||||
this._traySummoned = false;
|
this._traySummoned = false;
|
||||||
this._useLongerTrayLeftTimeout = false;
|
this._useLongerNotificationLeftTimeout = false;
|
||||||
this._trayLeftTimeoutId = 0;
|
this._trayLeftTimeoutId = 0;
|
||||||
|
|
||||||
// pointerInTray is sort of a misnomer -- it tracks whether
|
// pointerInNotification is sort of a misnomer -- it tracks whether
|
||||||
// a message tray notification should expand. The value is
|
// a message tray notification should expand. The value is
|
||||||
// partially driven by the hover state of the tray, but has
|
// partially driven by the hover state of the notification, but has
|
||||||
// a lot of complex state related to timeouts and the current
|
// a lot of complex state related to timeouts and the current
|
||||||
// state of the pointer when a notification pops up.
|
// state of the pointer when a notification pops up.
|
||||||
this._pointerInTray = false;
|
this._pointerInNotification = false;
|
||||||
|
|
||||||
// This tracks this.actor.hover and is used to fizzle
|
// This tracks this._notificationWidget.hover and is used to fizzle
|
||||||
// out non-changing hover notifications in onTrayHoverChanged.
|
// out non-changing hover notifications in onNotificationHoverChanged.
|
||||||
this._trayHovered = false;
|
this._notificationHovered = false;
|
||||||
|
|
||||||
this._keyboardVisible = false;
|
this._keyboardVisible = false;
|
||||||
this._notificationClosed = false;
|
this._notificationClosed = false;
|
||||||
@ -1657,7 +1657,6 @@ const MessageTray = new Lang.Class({
|
|||||||
this._desktopCloneState = State.HIDDEN;
|
this._desktopCloneState = State.HIDDEN;
|
||||||
this._notificationRemoved = false;
|
this._notificationRemoved = false;
|
||||||
this._reNotifyAfterHideNotification = null;
|
this._reNotifyAfterHideNotification = null;
|
||||||
this._inFullscreen = false;
|
|
||||||
this._desktopClone = null;
|
this._desktopClone = null;
|
||||||
this._inCtrlAltTab = false;
|
this._inCtrlAltTab = false;
|
||||||
|
|
||||||
@ -1669,11 +1668,12 @@ const MessageTray = new Lang.Class({
|
|||||||
});
|
});
|
||||||
|
|
||||||
Main.layoutManager.trayBox.add_actor(this.actor);
|
Main.layoutManager.trayBox.add_actor(this.actor);
|
||||||
|
Main.layoutManager.trayBox.add_actor(this._notificationWidget);
|
||||||
Main.layoutManager.trackChrome(this.actor);
|
Main.layoutManager.trackChrome(this.actor);
|
||||||
Main.layoutManager.trackChrome(this._notificationWidget);
|
Main.layoutManager.trackChrome(this._notificationWidget);
|
||||||
Main.layoutManager.trackChrome(this._closeButton);
|
Main.layoutManager.trackChrome(this._closeButton);
|
||||||
|
|
||||||
Main.layoutManager.connect('fullscreen-changed', Lang.bind(this, this._updateState));
|
global.screen.connect('in-fullscreen-changed', Lang.bind(this, this._updateState));
|
||||||
Main.layoutManager.connect('hot-corners-changed', Lang.bind(this, this._hotCornersChanged));
|
Main.layoutManager.connect('hot-corners-changed', Lang.bind(this, this._hotCornersChanged));
|
||||||
|
|
||||||
// If the overview shows or hides while we're in
|
// If the overview shows or hides while we're in
|
||||||
@ -1747,7 +1747,7 @@ const MessageTray = new Lang.Class({
|
|||||||
let [x, y, mask] = global.get_pointer();
|
let [x, y, mask] = global.get_pointer();
|
||||||
this._contextMenu.setPosition(Math.round(x), Math.round(y));
|
this._contextMenu.setPosition(Math.round(x), Math.round(y));
|
||||||
this._grabHelper.grab({ actor: this._contextMenu.actor,
|
this._grabHelper.grab({ actor: this._contextMenu.actor,
|
||||||
grabFocus: true,
|
modal: true,
|
||||||
onUngrab: Lang.bind(this, function () {
|
onUngrab: Lang.bind(this, function () {
|
||||||
this._contextMenu.close(BoxPointer.PopupAnimation.FULL);
|
this._contextMenu.close(BoxPointer.PopupAnimation.FULL);
|
||||||
})
|
})
|
||||||
@ -1793,12 +1793,12 @@ const MessageTray = new Lang.Class({
|
|||||||
y == monitor.y + monitor.height - 1);
|
y == monitor.y + monitor.height - 1);
|
||||||
if (shouldDwell) {
|
if (shouldDwell) {
|
||||||
// We only set up dwell timeout when the user is not hovering over the tray
|
// We only set up dwell timeout when the user is not hovering over the tray
|
||||||
// (!this.actor.hover). This avoids bringing up the message tray after the
|
// (!this._notificationHovered). This avoids bringing up the message tray after the
|
||||||
// user clicks on a notification with the pointer on the bottom pixel
|
// user clicks on a notification with the pointer on the bottom pixel
|
||||||
// of the monitor. The _trayDwelling variable is used so that we only try to
|
// of the monitor. The _trayDwelling variable is used so that we only try to
|
||||||
// fire off one tray dwell - if it fails (because, say, the user has the mouse down),
|
// fire off one tray dwell - if it fails (because, say, the user has the mouse down),
|
||||||
// we don't try again until the user moves the mouse up and down again.
|
// we don't try again until the user moves the mouse up and down again.
|
||||||
if (!this._trayDwelling && !this.actor.hover && this._trayDwellTimeoutId == 0) {
|
if (!this._trayDwelling && !this._notificationHovered && this._trayDwellTimeoutId == 0) {
|
||||||
// Save the interaction timestamp so we can detect user input
|
// Save the interaction timestamp so we can detect user input
|
||||||
let focusWindow = global.display.focus_window;
|
let focusWindow = global.display.focus_window;
|
||||||
this._trayDwellUserTime = focusWindow ? focusWindow.user_time : 0;
|
this._trayDwellUserTime = focusWindow ? focusWindow.user_time : 0;
|
||||||
@ -2021,7 +2021,6 @@ const MessageTray = new Lang.Class({
|
|||||||
|
|
||||||
hide: function() {
|
hide: function() {
|
||||||
this._traySummoned = false;
|
this._traySummoned = false;
|
||||||
this.actor.set_hover(false);
|
|
||||||
this._updateState();
|
this._updateState();
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2088,25 +2087,21 @@ const MessageTray = new Lang.Class({
|
|||||||
this._grabHelper.addActor(corner.actor);
|
this._grabHelper.addActor(corner.actor);
|
||||||
},
|
},
|
||||||
|
|
||||||
_onTrayHoverChanged: function() {
|
_onNotificationHoverChanged: function() {
|
||||||
if (this.actor.hover == this._trayHovered)
|
if (this._notificationWidget.hover == this._notificationHovered)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
this._trayHovered = this.actor.hover;
|
this._notificationHovered = this._notificationWidget.hover;
|
||||||
if (this._trayHovered) {
|
if (this._notificationHovered) {
|
||||||
// No dwell inside notifications at the bottom of the screen
|
// No dwell inside notifications at the bottom of the screen
|
||||||
this._cancelTrayDwell();
|
this._cancelTrayDwell();
|
||||||
|
|
||||||
// Don't do anything if the one pixel area at the bottom is hovered over while the tray is hidden.
|
this._useLongerNotificationLeftTimeout = false;
|
||||||
if (this._trayState == State.HIDDEN && this._notificationState == State.HIDDEN)
|
if (this._notificationLeftTimeoutId) {
|
||||||
return;
|
Mainloop.source_remove(this._notificationLeftTimeoutId);
|
||||||
|
this._notificationLeftTimeoutId = 0;
|
||||||
this._useLongerTrayLeftTimeout = false;
|
this._notificationLeftMouseX = -1;
|
||||||
if (this._trayLeftTimeoutId) {
|
this._notificationLeftMouseY = -1;
|
||||||
Mainloop.source_remove(this._trayLeftTimeoutId);
|
|
||||||
this._trayLeftTimeoutId = 0;
|
|
||||||
this._trayLeftMouseX = -1;
|
|
||||||
this._trayLeftMouseY = -1;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2115,32 +2110,32 @@ const MessageTray = new Lang.Class({
|
|||||||
global.stage.get_actor_at_pos(Clutter.PickMode.ALL, this._showNotificationMouseX, this._showNotificationMouseY);
|
global.stage.get_actor_at_pos(Clutter.PickMode.ALL, this._showNotificationMouseX, this._showNotificationMouseY);
|
||||||
this._showNotificationMouseX = -1;
|
this._showNotificationMouseX = -1;
|
||||||
this._showNotificationMouseY = -1;
|
this._showNotificationMouseY = -1;
|
||||||
// Don't set this._pointerInTray to true if the pointer was initially in the area where the notification
|
// Don't set this._pointerInNotification to true if the pointer was initially in the area where the notification
|
||||||
// popped up. That way we will not be expanding notifications that happen to pop up over the pointer
|
// popped up. That way we will not be expanding notifications that happen to pop up over the pointer
|
||||||
// automatically. Instead, the user is able to expand the notification by mousing away from it and then
|
// automatically. Instead, the user is able to expand the notification by mousing away from it and then
|
||||||
// mousing back in. Because this is an expected action, we set the boolean flag that indicates that a longer
|
// mousing back in. Because this is an expected action, we set the boolean flag that indicates that a longer
|
||||||
// timeout should be used before popping down the notification.
|
// timeout should be used before popping down the notification.
|
||||||
if (this.actor.contains(actorAtShowNotificationPosition)) {
|
if (this.actor.contains(actorAtShowNotificationPosition)) {
|
||||||
this._useLongerTrayLeftTimeout = true;
|
this._useLongerNotificationLeftTimeout = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this._pointerInTray = true;
|
this._pointerInNotification = true;
|
||||||
this._updateState();
|
this._updateState();
|
||||||
} else {
|
} else {
|
||||||
// We record the position of the mouse the moment it leaves the tray. These coordinates are used in
|
// We record the position of the mouse the moment it leaves the tray. These coordinates are used in
|
||||||
// this._onTrayLeftTimeout() to determine if the mouse has moved far enough during the initial timeout for us
|
// this._onNotificationLeftTimeout() to determine if the mouse has moved far enough during the initial timeout for us
|
||||||
// to consider that the user intended to leave the tray and therefore hide the tray. If the mouse is still
|
// to consider that the user intended to leave the tray and therefore hide the tray. If the mouse is still
|
||||||
// close to its previous position, we extend the timeout once.
|
// close to its previous position, we extend the timeout once.
|
||||||
let [x, y, mods] = global.get_pointer();
|
let [x, y, mods] = global.get_pointer();
|
||||||
this._trayLeftMouseX = x;
|
this._notificationLeftMouseX = x;
|
||||||
this._trayLeftMouseY = y;
|
this._notificationLeftMouseY = y;
|
||||||
|
|
||||||
// We wait just a little before hiding the message tray in case the user quickly moves the mouse back into it.
|
// We wait just a little before hiding the message tray in case the user quickly moves the mouse back into it.
|
||||||
// We wait for a longer period if the notification popped up where the mouse pointer was already positioned.
|
// We wait for a longer period if the notification popped up where the mouse pointer was already positioned.
|
||||||
// That gives the user more time to mouse away from the notification and mouse back in in order to expand it.
|
// That gives the user more time to mouse away from the notification and mouse back in in order to expand it.
|
||||||
let timeout = this._useLongerTrayLeftTimeout ? LONGER_HIDE_TIMEOUT * 1000 : HIDE_TIMEOUT * 1000;
|
let timeout = this._useLongerNotificationLeftTimeout ? LONGER_HIDE_TIMEOUT * 1000 : HIDE_TIMEOUT * 1000;
|
||||||
this._trayLeftTimeoutId = Mainloop.timeout_add(timeout, Lang.bind(this, this._onTrayLeftTimeout));
|
this._notificationLeftTimeoutId = Mainloop.timeout_add(timeout, Lang.bind(this, this._onNotificationLeftTimeout));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2164,22 +2159,22 @@ const MessageTray = new Lang.Class({
|
|||||||
this._updateState();
|
this._updateState();
|
||||||
},
|
},
|
||||||
|
|
||||||
_onTrayLeftTimeout: function() {
|
_onNotificationLeftTimeout: function() {
|
||||||
let [x, y, mods] = global.get_pointer();
|
let [x, y, mods] = global.get_pointer();
|
||||||
// We extend the timeout once if the mouse moved no further than MOUSE_LEFT_ACTOR_THRESHOLD to either side or up.
|
// We extend the timeout once if the mouse moved no further than MOUSE_LEFT_ACTOR_THRESHOLD to either side or up.
|
||||||
// We don't check how far down the mouse moved because any point above the tray, but below the exit coordinate,
|
// We don't check how far down the mouse moved because any point above the tray, but below the exit coordinate,
|
||||||
// is close to the tray.
|
// is close to the tray.
|
||||||
if (this._trayLeftMouseX > -1 &&
|
if (this._notificationLeftMouseX > -1 &&
|
||||||
y > this._trayLeftMouseY - MOUSE_LEFT_ACTOR_THRESHOLD &&
|
y > this._notificationLeftMouseY - MOUSE_LEFT_ACTOR_THRESHOLD &&
|
||||||
x < this._trayLeftMouseX + MOUSE_LEFT_ACTOR_THRESHOLD &&
|
x < this._notificationLeftMouseX + MOUSE_LEFT_ACTOR_THRESHOLD &&
|
||||||
x > this._trayLeftMouseX - MOUSE_LEFT_ACTOR_THRESHOLD) {
|
x > this._notificationLeftMouseX - MOUSE_LEFT_ACTOR_THRESHOLD) {
|
||||||
this._trayLeftMouseX = -1;
|
this._notificationLeftMouseX = -1;
|
||||||
this._trayLeftTimeoutId = Mainloop.timeout_add(LONGER_HIDE_TIMEOUT * 1000,
|
this._notificationLeftTimeoutId = Mainloop.timeout_add(LONGER_HIDE_TIMEOUT * 1000,
|
||||||
Lang.bind(this, this._onTrayLeftTimeout));
|
Lang.bind(this, this._onNotificationLeftTimeout));
|
||||||
} else {
|
} else {
|
||||||
this._trayLeftTimeoutId = 0;
|
this._notificationLeftTimeoutId = 0;
|
||||||
this._useLongerTrayLeftTimeout = false;
|
this._useLongerNotificationLeftTimeout = false;
|
||||||
this._pointerInTray = false;
|
this._pointerInNotification = false;
|
||||||
this._updateNotificationTimeout(0);
|
this._updateNotificationTimeout(0);
|
||||||
this._updateState();
|
this._updateState();
|
||||||
}
|
}
|
||||||
@ -2187,7 +2182,7 @@ const MessageTray = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_escapeTray: function() {
|
_escapeTray: function() {
|
||||||
this._pointerInTray = false;
|
this._pointerInNotification = false;
|
||||||
this._traySummoned = false;
|
this._traySummoned = false;
|
||||||
this._setClickedSummaryItem(null);
|
this._setClickedSummaryItem(null);
|
||||||
this._updateNotificationTimeout(0);
|
this._updateNotificationTimeout(0);
|
||||||
@ -2196,7 +2191,7 @@ const MessageTray = new Lang.Class({
|
|||||||
|
|
||||||
// All of the logic for what happens when occurs here; the various
|
// All of the logic for what happens when occurs here; the various
|
||||||
// event handlers merely update variables such as
|
// event handlers merely update variables such as
|
||||||
// 'this._pointerInTray', 'this._traySummoned', etc, and
|
// 'this._pointerInNotification', 'this._traySummoned', etc, and
|
||||||
// _updateState() figures out what (if anything) needs to be done
|
// _updateState() figures out what (if anything) needs to be done
|
||||||
// at the present time.
|
// at the present time.
|
||||||
_updateState: function() {
|
_updateState: function() {
|
||||||
@ -2207,12 +2202,12 @@ const MessageTray = new Lang.Class({
|
|||||||
let notificationsLimited = this._busy || Main.layoutManager.bottomMonitor.inFullscreen;
|
let notificationsLimited = this._busy || Main.layoutManager.bottomMonitor.inFullscreen;
|
||||||
let notificationsPending = notificationQueue.length > 0 && (!notificationsLimited || notificationUrgent || notificationForFeedback) && Main.sessionMode.hasNotifications;
|
let notificationsPending = notificationQueue.length > 0 && (!notificationsLimited || notificationUrgent || notificationForFeedback) && Main.sessionMode.hasNotifications;
|
||||||
let nextNotification = notificationQueue.length > 0 ? notificationQueue[0] : null;
|
let nextNotification = notificationQueue.length > 0 ? notificationQueue[0] : null;
|
||||||
let notificationPinned = this._pointerInTray && !this._notificationRemoved;
|
let notificationPinned = this._pointerInNotification && !this._notificationRemoved;
|
||||||
let notificationExpanded = this._notification && this._notification.expanded;
|
let notificationExpanded = this._notification && this._notification.expanded;
|
||||||
let notificationExpired = this._notificationTimeoutId == 0 &&
|
let notificationExpired = this._notificationTimeoutId == 0 &&
|
||||||
!(this._notification && this._notification.urgency == Urgency.CRITICAL) &&
|
!(this._notification && this._notification.urgency == Urgency.CRITICAL) &&
|
||||||
!(this._notification && this._notification.focused) &&
|
!(this._notification && this._notification.focused) &&
|
||||||
!this._pointerInTray;
|
!this._pointerInNotification;
|
||||||
let notificationLockedOut = !Main.sessionMode.hasNotifications && this._notification;
|
let notificationLockedOut = !Main.sessionMode.hasNotifications && this._notification;
|
||||||
let notificationMustClose = this._notificationRemoved || notificationLockedOut || (notificationExpired && this._userActiveWhileNotificationShown) || this._notificationClosed;
|
let notificationMustClose = this._notificationRemoved || notificationLockedOut || (notificationExpired && this._userActiveWhileNotificationShown) || this._notificationClosed;
|
||||||
let canShowNotification = notificationsPending && this._trayState == State.HIDDEN;
|
let canShowNotification = notificationsPending && this._trayState == State.HIDDEN;
|
||||||
@ -2425,7 +2420,7 @@ const MessageTray = new Lang.Class({
|
|||||||
let [x, y, mods] = global.get_pointer();
|
let [x, y, mods] = global.get_pointer();
|
||||||
// We save the position of the mouse at the time when we started showing the notification
|
// We save the position of the mouse at the time when we started showing the notification
|
||||||
// in order to determine if the notification popped up under it. We make that check if
|
// in order to determine if the notification popped up under it. We make that check if
|
||||||
// the user starts moving the mouse and _onTrayHoverChanged() gets called. We don't
|
// the user starts moving the mouse and _onNotificationHoverChanged() gets called. We don't
|
||||||
// expand the notification if it just happened to pop up under the mouse unless the user
|
// expand the notification if it just happened to pop up under the mouse unless the user
|
||||||
// explicitly mouses away from it and then mouses back in.
|
// explicitly mouses away from it and then mouses back in.
|
||||||
this._showNotificationMouseX = x;
|
this._showNotificationMouseX = x;
|
||||||
@ -2487,13 +2482,13 @@ const MessageTray = new Lang.Class({
|
|||||||
|
|
||||||
_notificationTimeout: function() {
|
_notificationTimeout: function() {
|
||||||
let [x, y, mods] = global.get_pointer();
|
let [x, y, mods] = global.get_pointer();
|
||||||
if (y > this._lastSeenMouseY + 10 && !this.actor.hover) {
|
if (y > this._lastSeenMouseY + 10 && !this._notificationHovered) {
|
||||||
// The mouse is moving towards the notification, so don't
|
// The mouse is moving towards the notification, so don't
|
||||||
// hide it yet. (We just create a new timeout (and destroy
|
// hide it yet. (We just create a new timeout (and destroy
|
||||||
// the old one) each time because the bookkeeping is
|
// the old one) each time because the bookkeeping is
|
||||||
// simpler.)
|
// simpler.)
|
||||||
this._updateNotificationTimeout(1000);
|
this._updateNotificationTimeout(1000);
|
||||||
} else if (this._useLongerTrayLeftTimeout && !this._trayLeftTimeoutId &&
|
} else if (this._useLongerNotificationLeftTimeout && !this._notificationLeftTimeoutId &&
|
||||||
(x != this._lastSeenMouseX || y != this._lastSeenMouseY)) {
|
(x != this._lastSeenMouseX || y != this._lastSeenMouseY)) {
|
||||||
// Refresh the timeout if the notification originally
|
// Refresh the timeout if the notification originally
|
||||||
// popped up under the pointer, and the pointer is hovering
|
// popped up under the pointer, and the pointer is hovering
|
||||||
@ -2537,12 +2532,12 @@ const MessageTray = new Lang.Class({
|
|||||||
this._notificationUnfocusedId = 0;
|
this._notificationUnfocusedId = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
this._useLongerTrayLeftTimeout = false;
|
this._useLongerNotificationLeftTimeout = false;
|
||||||
if (this._trayLeftTimeoutId) {
|
if (this._notificationLeftTimeoutId) {
|
||||||
Mainloop.source_remove(this._trayLeftTimeoutId);
|
Mainloop.source_remove(this._notificationLeftTimeoutId);
|
||||||
this._trayLeftTimeoutId = 0;
|
this._notificationLeftTimeoutId = 0;
|
||||||
this._trayLeftMouseX = -1;
|
this._notificationLeftMouseX = -1;
|
||||||
this._trayLeftMouseY = -1;
|
this._notificationLeftMouseY = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this._notificationRemoved) {
|
if (this._notificationRemoved) {
|
||||||
@ -2572,14 +2567,9 @@ const MessageTray = new Lang.Class({
|
|||||||
if (notification.isTransient)
|
if (notification.isTransient)
|
||||||
notification.destroy(NotificationDestroyedReason.EXPIRED);
|
notification.destroy(NotificationDestroyedReason.EXPIRED);
|
||||||
|
|
||||||
this._notificationRemoved = false;
|
|
||||||
this._closeButton.hide();
|
this._closeButton.hide();
|
||||||
this._pointerInTray = false;
|
this._pointerInNotification = false;
|
||||||
|
this._notificationRemoved = false;
|
||||||
// Clutter will send a leave-event the next time the mouse
|
|
||||||
// moves, but we need to set this here now to update the
|
|
||||||
// state machine.
|
|
||||||
this.actor.hover = false;
|
|
||||||
this._notificationBin.child = null;
|
this._notificationBin.child = null;
|
||||||
this._notificationWidget.hide();
|
this._notificationWidget.hide();
|
||||||
},
|
},
|
||||||
@ -2670,7 +2660,7 @@ const MessageTray = new Lang.Class({
|
|||||||
}
|
}
|
||||||
|
|
||||||
this._grabHelper.grab({ actor: this._summaryBoxPointer.bin.child,
|
this._grabHelper.grab({ actor: this._summaryBoxPointer.bin.child,
|
||||||
grabFocus: true,
|
modal: true,
|
||||||
onUngrab: Lang.bind(this, this._onSummaryBoxPointerUngrabbed) });
|
onUngrab: Lang.bind(this, this._onSummaryBoxPointerUngrabbed) });
|
||||||
|
|
||||||
this._summaryBoxPointer.actor.opacity = 0;
|
this._summaryBoxPointer.actor.opacity = 0;
|
||||||
|
@ -38,13 +38,15 @@ const ModalDialog = new Lang.Class({
|
|||||||
styleClass: null,
|
styleClass: null,
|
||||||
parentActor: Main.uiGroup,
|
parentActor: Main.uiGroup,
|
||||||
keybindingMode: Shell.KeyBindingMode.SYSTEM_MODAL,
|
keybindingMode: Shell.KeyBindingMode.SYSTEM_MODAL,
|
||||||
shouldFadeIn: true });
|
shouldFadeIn: true,
|
||||||
|
destroyOnClose: true });
|
||||||
|
|
||||||
this.state = State.CLOSED;
|
this.state = State.CLOSED;
|
||||||
this._hasModal = false;
|
this._hasModal = false;
|
||||||
this._keybindingMode = params.keybindingMode;
|
this._keybindingMode = params.keybindingMode;
|
||||||
this._shellReactive = params.shellReactive;
|
this._shellReactive = params.shellReactive;
|
||||||
this._shouldFadeIn = params.shouldFadeIn;
|
this._shouldFadeIn = params.shouldFadeIn;
|
||||||
|
this._destroyOnClose = params.destroyOnClose;
|
||||||
|
|
||||||
this._group = new St.Widget({ visible: false,
|
this._group = new St.Widget({ visible: false,
|
||||||
x: 0,
|
x: 0,
|
||||||
@ -277,6 +279,9 @@ const ModalDialog = new Lang.Class({
|
|||||||
this.state = State.CLOSED;
|
this.state = State.CLOSED;
|
||||||
this._group.hide();
|
this._group.hide();
|
||||||
this.emit('closed');
|
this.emit('closed');
|
||||||
|
|
||||||
|
if (this._destroyOnClose)
|
||||||
|
this.destroy();
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -11,7 +11,6 @@ const Shell = imports.gi.Shell;
|
|||||||
const Gdk = imports.gi.Gdk;
|
const Gdk = imports.gi.Gdk;
|
||||||
|
|
||||||
const Background = imports.ui.background;
|
const Background = imports.ui.background;
|
||||||
const Dash = imports.ui.dash;
|
|
||||||
const DND = imports.ui.dnd;
|
const DND = imports.ui.dnd;
|
||||||
const LayoutManager = imports.ui.layout;
|
const LayoutManager = imports.ui.layout;
|
||||||
const Main = imports.ui.main;
|
const Main = imports.ui.main;
|
||||||
@ -20,7 +19,6 @@ const OverviewControls = imports.ui.overviewControls;
|
|||||||
const Panel = imports.ui.panel;
|
const Panel = imports.ui.panel;
|
||||||
const Params = imports.misc.params;
|
const Params = imports.misc.params;
|
||||||
const Tweener = imports.ui.tweener;
|
const Tweener = imports.ui.tweener;
|
||||||
const ViewSelector = imports.ui.viewSelector;
|
|
||||||
const WorkspaceThumbnail = imports.ui.workspaceThumbnail;
|
const WorkspaceThumbnail = imports.ui.workspaceThumbnail;
|
||||||
|
|
||||||
// Time for initial animation going into Overview mode
|
// Time for initial animation going into Overview mode
|
||||||
@ -133,14 +131,6 @@ const Overview = new Lang.Class({
|
|||||||
y_expand: true });
|
y_expand: true });
|
||||||
this._overview._delegate = this;
|
this._overview._delegate = this;
|
||||||
|
|
||||||
this._groupStack = new St.Widget({ layout_manager: new Clutter.BinLayout(),
|
|
||||||
x_expand: true, y_expand: true,
|
|
||||||
clip_to_allocation: true });
|
|
||||||
this._group = new St.BoxLayout({ name: 'overview-group',
|
|
||||||
reactive: true,
|
|
||||||
x_expand: true, y_expand: true });
|
|
||||||
this._groupStack.add_actor(this._group);
|
|
||||||
|
|
||||||
this._backgroundGroup = new Meta.BackgroundGroup();
|
this._backgroundGroup = new Meta.BackgroundGroup();
|
||||||
global.overlay_group.add_child(this._backgroundGroup);
|
global.overlay_group.add_child(this._backgroundGroup);
|
||||||
this._backgroundGroup.hide();
|
this._backgroundGroup.hide();
|
||||||
@ -177,7 +167,6 @@ const Overview = new Lang.Class({
|
|||||||
Main.xdndHandler.connect('drag-end', Lang.bind(this, this._onDragEnd));
|
Main.xdndHandler.connect('drag-end', Lang.bind(this, this._onDragEnd));
|
||||||
|
|
||||||
global.screen.connect('restacked', Lang.bind(this, this._onRestacked));
|
global.screen.connect('restacked', Lang.bind(this, this._onRestacked));
|
||||||
this._group.connect('scroll-event', Lang.bind(this, this._onScrollEvent));
|
|
||||||
|
|
||||||
this._windowSwitchTimeoutId = 0;
|
this._windowSwitchTimeoutId = 0;
|
||||||
this._windowSwitchTimestamp = 0;
|
this._windowSwitchTimestamp = 0;
|
||||||
@ -276,28 +265,13 @@ const Overview = new Lang.Class({
|
|||||||
this._overview.add_actor(this._searchEntryBin);
|
this._overview.add_actor(this._searchEntryBin);
|
||||||
|
|
||||||
// Create controls
|
// Create controls
|
||||||
this._dash = new Dash.Dash();
|
this._controls = new OverviewControls.ControlsManager(this._searchEntry);
|
||||||
this._viewSelector = new ViewSelector.ViewSelector(this._searchEntry,
|
this._dash = this._controls.dash;
|
||||||
this._dash.showAppsButton);
|
this._viewSelector = this._controls.viewSelector;
|
||||||
this._thumbnailsBox = new WorkspaceThumbnail.ThumbnailsBox();
|
|
||||||
this._controls = new OverviewControls.ControlsManager(this._dash,
|
|
||||||
this._thumbnailsBox,
|
|
||||||
this._viewSelector);
|
|
||||||
|
|
||||||
this._controls.dashActor.x_align = Clutter.ActorAlign.START;
|
|
||||||
this._controls.dashActor.y_expand = true;
|
|
||||||
|
|
||||||
// Put the dash in a separate layer to allow content to be centered
|
|
||||||
this._groupStack.add_actor(this._controls.dashActor);
|
|
||||||
|
|
||||||
// Pack all the actors into the group
|
|
||||||
this._group.add_actor(this._controls.dashSpacer);
|
|
||||||
this._group.add(this._viewSelector.actor, { x_fill: true,
|
|
||||||
expand: true });
|
|
||||||
this._group.add_actor(this._controls.thumbnailsActor);
|
|
||||||
|
|
||||||
// Add our same-line elements after the search entry
|
// Add our same-line elements after the search entry
|
||||||
this._overview.add(this._groupStack, { y_fill: true, expand: true });
|
this._overview.add(this._controls.actor, { y_fill: true, expand: true });
|
||||||
|
this._controls.actor.connect('scroll-event', Lang.bind(this, this._onScrollEvent));
|
||||||
|
|
||||||
this._stack.add_actor(this._controls.indicatorActor);
|
this._stack.add_actor(this._controls.indicatorActor);
|
||||||
|
|
||||||
|
@ -6,10 +6,12 @@ const Meta = imports.gi.Meta;
|
|||||||
const St = imports.gi.St;
|
const St = imports.gi.St;
|
||||||
const Shell = imports.gi.Shell;
|
const Shell = imports.gi.Shell;
|
||||||
|
|
||||||
|
const Dash = imports.ui.dash;
|
||||||
const Main = imports.ui.main;
|
const Main = imports.ui.main;
|
||||||
const Params = imports.misc.params;
|
const Params = imports.misc.params;
|
||||||
const Tweener = imports.ui.tweener;
|
const Tweener = imports.ui.tweener;
|
||||||
const ViewSelector = imports.ui.viewSelector;
|
const ViewSelector = imports.ui.viewSelector;
|
||||||
|
const WorkspaceThumbnail = imports.ui.workspaceThumbnail;
|
||||||
|
|
||||||
const SIDE_CONTROLS_ANIMATION_TIME = 0.16;
|
const SIDE_CONTROLS_ANIMATION_TIME = 0.16;
|
||||||
|
|
||||||
@ -269,6 +271,11 @@ const ThumbnailsSlider = new Lang.Class({
|
|||||||
return alwaysZoomOut;
|
return alwaysZoomOut;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getNonExpandedWidth: function() {
|
||||||
|
let child = this.actor.get_first_child();
|
||||||
|
return child.get_theme_node().get_length('visible-width');
|
||||||
|
},
|
||||||
|
|
||||||
getSlide: function() {
|
getSlide: function() {
|
||||||
if (!this.visible)
|
if (!this.visible)
|
||||||
return 0;
|
return 0;
|
||||||
@ -280,18 +287,16 @@ const ThumbnailsSlider = new Lang.Class({
|
|||||||
let child = this.actor.get_first_child();
|
let child = this.actor.get_first_child();
|
||||||
let preferredHeight = child.get_preferred_height(-1)[1];
|
let preferredHeight = child.get_preferred_height(-1)[1];
|
||||||
let expandedWidth = child.get_preferred_width(preferredHeight)[1];
|
let expandedWidth = child.get_preferred_width(preferredHeight)[1];
|
||||||
let visibleWidth = child.get_theme_node().get_length('visible-width');
|
|
||||||
|
|
||||||
return visibleWidth / expandedWidth;
|
return this.getNonExpandedWidth() / expandedWidth;
|
||||||
},
|
},
|
||||||
|
|
||||||
getVisibleWidth: function() {
|
getVisibleWidth: function() {
|
||||||
let alwaysZoomOut = this._getAlwaysZoomOut();
|
let alwaysZoomOut = this._getAlwaysZoomOut();
|
||||||
if (alwaysZoomOut)
|
if (alwaysZoomOut)
|
||||||
return this.parent();
|
return this.parent();
|
||||||
|
else
|
||||||
let child = this.actor.get_first_child();
|
return this.getNonExpandedWidth();
|
||||||
return child.get_theme_node().get_length('visible-width');
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -309,6 +314,10 @@ const DashSlider = new Lang.Class({
|
|||||||
// available allocation
|
// available allocation
|
||||||
this._dash.actor.x_expand = true;
|
this._dash.actor.x_expand = true;
|
||||||
this._dash.actor.y_expand = true;
|
this._dash.actor.y_expand = true;
|
||||||
|
|
||||||
|
this.actor.x_align = Clutter.ActorAlign.START;
|
||||||
|
this.actor.y_expand = true;
|
||||||
|
|
||||||
this.actor.add_actor(this._dash.actor);
|
this.actor.add_actor(this._dash.actor);
|
||||||
|
|
||||||
this._dash.connect('icon-size-changed', Lang.bind(this, this.updateSlide));
|
this._dash.connect('icon-size-changed', Lang.bind(this, this.updateSlide));
|
||||||
@ -479,39 +488,77 @@ const MessagesIndicator = new Lang.Class({
|
|||||||
const ControlsManager = new Lang.Class({
|
const ControlsManager = new Lang.Class({
|
||||||
Name: 'ControlsManager',
|
Name: 'ControlsManager',
|
||||||
|
|
||||||
_init: function(dash, thumbnails, viewSelector) {
|
_init: function(searchEntry) {
|
||||||
this._dashSlider = new DashSlider(dash);
|
this.dash = new Dash.Dash();
|
||||||
this.dashActor = this._dashSlider.actor;
|
this._dashSlider = new DashSlider(this.dash);
|
||||||
this.dashSpacer = new DashSpacer();
|
this._dashSpacer = new DashSpacer();
|
||||||
this.dashSpacer.setDashActor(this.dashActor);
|
this._dashSpacer.setDashActor(this._dashSlider.actor);
|
||||||
|
|
||||||
this._thumbnailsSlider = new ThumbnailsSlider(thumbnails);
|
this._thumbnailsBox = new WorkspaceThumbnail.ThumbnailsBox();
|
||||||
this.thumbnailsActor = this._thumbnailsSlider.actor;
|
this._thumbnailsSlider = new ThumbnailsSlider(this._thumbnailsBox);
|
||||||
|
|
||||||
this._indicator = new MessagesIndicator(viewSelector);
|
this.viewSelector = new ViewSelector.ViewSelector(searchEntry,
|
||||||
|
this.dash.showAppsButton);
|
||||||
|
this.viewSelector.connect('page-changed', Lang.bind(this, this._setVisibility));
|
||||||
|
this.viewSelector.connect('page-empty', Lang.bind(this, this._onPageEmpty));
|
||||||
|
|
||||||
|
this._indicator = new MessagesIndicator(this.viewSelector);
|
||||||
this.indicatorActor = this._indicator.actor;
|
this.indicatorActor = this._indicator.actor;
|
||||||
|
|
||||||
this._viewSelector = viewSelector;
|
this.actor = new St.Widget({ layout_manager: new Clutter.BinLayout(),
|
||||||
this._viewSelector.connect('page-changed', Lang.bind(this, this._setVisibility));
|
x_expand: true, y_expand: true,
|
||||||
this._viewSelector.connect('page-empty', Lang.bind(this, this._onPageEmpty));
|
clip_to_allocation: true });
|
||||||
|
this._group = new St.BoxLayout({ name: 'overview-group',
|
||||||
|
reactive: true,
|
||||||
|
x_expand: true, y_expand: true });
|
||||||
|
this.actor.add_actor(this._group);
|
||||||
|
|
||||||
|
this.actor.add_actor(this._dashSlider.actor);
|
||||||
|
|
||||||
|
this._group.add_actor(this._dashSpacer);
|
||||||
|
this._group.add(this.viewSelector.actor, { x_fill: true,
|
||||||
|
expand: true });
|
||||||
|
this._group.add_actor(this._thumbnailsSlider.actor);
|
||||||
|
|
||||||
|
this._group.connect('notify::allocation', Lang.bind(this, this._updateWorkspacesGeometry));
|
||||||
|
|
||||||
Main.overview.connect('showing', Lang.bind(this, this._updateSpacerVisibility));
|
Main.overview.connect('showing', Lang.bind(this, this._updateSpacerVisibility));
|
||||||
Main.overview.connect('item-drag-begin', Lang.bind(this,
|
Main.overview.connect('item-drag-begin', Lang.bind(this,
|
||||||
function() {
|
function() {
|
||||||
let activePage = this._viewSelector.getActivePage();
|
let activePage = this.viewSelector.getActivePage();
|
||||||
if (activePage != ViewSelector.ViewPage.WINDOWS)
|
if (activePage != ViewSelector.ViewPage.WINDOWS)
|
||||||
this._viewSelector.fadeHalf();
|
this.viewSelector.fadeHalf();
|
||||||
}));
|
}));
|
||||||
Main.overview.connect('item-drag-end', Lang.bind(this,
|
Main.overview.connect('item-drag-end', Lang.bind(this,
|
||||||
function() {
|
function() {
|
||||||
this._viewSelector.fadeIn();
|
this.viewSelector.fadeIn();
|
||||||
}));
|
}));
|
||||||
Main.overview.connect('item-drag-cancelled', Lang.bind(this,
|
Main.overview.connect('item-drag-cancelled', Lang.bind(this,
|
||||||
function() {
|
function() {
|
||||||
this._viewSelector.fadeIn();
|
this.viewSelector.fadeIn();
|
||||||
}));
|
}));
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_updateWorkspacesGeometry: function() {
|
||||||
|
let [x, y] = this.actor.get_transformed_position();
|
||||||
|
let [width, height] = this.actor.get_transformed_size();
|
||||||
|
let geometry = { x: x, y: y, width: width, height: height };
|
||||||
|
|
||||||
|
let spacing = this.actor.get_theme_node().get_length('spacing');
|
||||||
|
let dashWidth = this._dashSlider.getVisibleWidth() + spacing;
|
||||||
|
let thumbnailsWidth = this._thumbnailsSlider.getNonExpandedWidth() + spacing;
|
||||||
|
|
||||||
|
geometry.width -= dashWidth;
|
||||||
|
geometry.width -= thumbnailsWidth;
|
||||||
|
|
||||||
|
if (this.actor.get_text_direction() == Clutter.TextDirection.LTR)
|
||||||
|
geometry.x += dashWidth;
|
||||||
|
else
|
||||||
|
geometry.x += thumbnailsWidth;
|
||||||
|
|
||||||
|
this.viewSelector.setWorkspacesFullGeometry(geometry);
|
||||||
|
},
|
||||||
|
|
||||||
_setVisibility: function() {
|
_setVisibility: function() {
|
||||||
// Ignore the case when we're leaving the overview, since
|
// Ignore the case when we're leaving the overview, since
|
||||||
// actors will be made visible again when entering the overview
|
// actors will be made visible again when entering the overview
|
||||||
@ -521,7 +568,7 @@ const ControlsManager = new Lang.Class({
|
|||||||
(Main.overview.animationInProgress && !Main.overview.visibleTarget))
|
(Main.overview.animationInProgress && !Main.overview.visibleTarget))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
let activePage = this._viewSelector.getActivePage();
|
let activePage = this.viewSelector.getActivePage();
|
||||||
let dashVisible = (activePage == ViewSelector.ViewPage.WINDOWS ||
|
let dashVisible = (activePage == ViewSelector.ViewPage.WINDOWS ||
|
||||||
activePage == ViewSelector.ViewPage.APPS);
|
activePage == ViewSelector.ViewPage.APPS);
|
||||||
let thumbnailsVisible = (activePage == ViewSelector.ViewPage.WINDOWS);
|
let thumbnailsVisible = (activePage == ViewSelector.ViewPage.WINDOWS);
|
||||||
@ -541,8 +588,8 @@ const ControlsManager = new Lang.Class({
|
|||||||
if (Main.overview.animationInProgress && !Main.overview.visibleTarget)
|
if (Main.overview.animationInProgress && !Main.overview.visibleTarget)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
let activePage = this._viewSelector.getActivePage();
|
let activePage = this.viewSelector.getActivePage();
|
||||||
this.dashSpacer.visible = (activePage == ViewSelector.ViewPage.WINDOWS);
|
this._dashSpacer.visible = (activePage == ViewSelector.ViewPage.WINDOWS);
|
||||||
},
|
},
|
||||||
|
|
||||||
_onPageEmpty: function() {
|
_onPageEmpty: function() {
|
||||||
|
@ -144,8 +144,8 @@ const AnimatedIcon = new Lang.Class({
|
|||||||
Name: 'AnimatedIcon',
|
Name: 'AnimatedIcon',
|
||||||
Extends: Animation,
|
Extends: Animation,
|
||||||
|
|
||||||
_init: function(name, size) {
|
_init: function(filename, size) {
|
||||||
this.parent(global.datadir + '/theme/' + name, size, size, ANIMATED_ICON_UPDATE_TIMEOUT);
|
this.parent(filename, size, size, ANIMATED_ICON_UPDATE_TIMEOUT);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -258,6 +258,7 @@ const AppMenuButton = new Lang.Class({
|
|||||||
this._actionGroupNotifyId = 0;
|
this._actionGroupNotifyId = 0;
|
||||||
|
|
||||||
let bin = new St.Bin({ name: 'appMenu' });
|
let bin = new St.Bin({ name: 'appMenu' });
|
||||||
|
bin.connect('style-changed', Lang.bind(this, this._onStyleChanged));
|
||||||
this.actor.add_actor(bin);
|
this.actor.add_actor(bin);
|
||||||
|
|
||||||
this.actor.bind_property("reactive", this.actor, "can-focus", 0);
|
this.actor.bind_property("reactive", this.actor, "can-focus", 0);
|
||||||
@ -288,27 +289,25 @@ const AppMenuButton = new Lang.Class({
|
|||||||
this._visible = !Main.overview.visible;
|
this._visible = !Main.overview.visible;
|
||||||
if (!this._visible)
|
if (!this._visible)
|
||||||
this.actor.hide();
|
this.actor.hide();
|
||||||
Main.overview.connect('hiding', Lang.bind(this, function () {
|
this._overviewHidingId = Main.overview.connect('hiding', Lang.bind(this, function () {
|
||||||
this.show();
|
this.show();
|
||||||
}));
|
}));
|
||||||
Main.overview.connect('showing', Lang.bind(this, function () {
|
this._overviewShowingId = Main.overview.connect('showing', Lang.bind(this, function () {
|
||||||
this.hide();
|
this.hide();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
this._stop = true;
|
this._stop = true;
|
||||||
|
|
||||||
this._spinner = new AnimatedIcon('process-working.svg',
|
this._spinner = null;
|
||||||
PANEL_ICON_SIZE);
|
|
||||||
this._container.add_actor(this._spinner.actor);
|
|
||||||
this._spinner.actor.hide();
|
|
||||||
this._spinner.actor.lower_bottom();
|
|
||||||
|
|
||||||
let tracker = Shell.WindowTracker.get_default();
|
let tracker = Shell.WindowTracker.get_default();
|
||||||
let appSys = Shell.AppSystem.get_default();
|
let appSys = Shell.AppSystem.get_default();
|
||||||
tracker.connect('notify::focus-app', Lang.bind(this, this._focusAppChanged));
|
this._focusAppNotifyId =
|
||||||
appSys.connect('app-state-changed', Lang.bind(this, this._onAppStateChanged));
|
tracker.connect('notify::focus-app', Lang.bind(this, this._focusAppChanged));
|
||||||
|
this._appStateChangedSignalId =
|
||||||
global.window_manager.connect('switch-workspace', Lang.bind(this, this._sync));
|
appSys.connect('app-state-changed', Lang.bind(this, this._onAppStateChanged));
|
||||||
|
this._switchWorkspaceNotifyId =
|
||||||
|
global.window_manager.connect('switch-workspace', Lang.bind(this, this._sync));
|
||||||
|
|
||||||
this._sync();
|
this._sync();
|
||||||
},
|
},
|
||||||
@ -354,6 +353,18 @@ const AppMenuButton = new Lang.Class({
|
|||||||
onCompleteScope: this });
|
onCompleteScope: this });
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_onStyleChanged: function(actor) {
|
||||||
|
let node = actor.get_theme_node();
|
||||||
|
let [success, icon] = node.lookup_url('spinner-image', false);
|
||||||
|
if (!success || this._spinnerIcon == icon)
|
||||||
|
return;
|
||||||
|
this._spinnerIcon = icon;
|
||||||
|
this._spinner = new AnimatedIcon(this._spinnerIcon, PANEL_ICON_SIZE);
|
||||||
|
this._container.add_actor(this._spinner.actor);
|
||||||
|
this._spinner.actor.hide();
|
||||||
|
this._spinner.actor.lower_bottom();
|
||||||
|
},
|
||||||
|
|
||||||
_onIconBoxStyleChanged: function() {
|
_onIconBoxStyleChanged: function() {
|
||||||
let node = this._iconBox.get_theme_node();
|
let node = this._iconBox.get_theme_node();
|
||||||
this._iconBottomClip = node.get_length('app-icon-bottom-clip');
|
this._iconBottomClip = node.get_length('app-icon-bottom-clip');
|
||||||
@ -385,6 +396,10 @@ const AppMenuButton = new Lang.Class({
|
|||||||
|
|
||||||
this._stop = true;
|
this._stop = true;
|
||||||
this.actor.reactive = true;
|
this.actor.reactive = true;
|
||||||
|
|
||||||
|
if (this._spinner == null)
|
||||||
|
return;
|
||||||
|
|
||||||
Tweener.addTween(this._spinner.actor,
|
Tweener.addTween(this._spinner.actor,
|
||||||
{ opacity: 0,
|
{ opacity: 0,
|
||||||
time: SPINNER_ANIMATION_TIME,
|
time: SPINNER_ANIMATION_TIME,
|
||||||
@ -401,6 +416,10 @@ const AppMenuButton = new Lang.Class({
|
|||||||
startAnimation: function() {
|
startAnimation: function() {
|
||||||
this._stop = false;
|
this._stop = false;
|
||||||
this.actor.reactive = false;
|
this.actor.reactive = false;
|
||||||
|
|
||||||
|
if (this._spinner == null)
|
||||||
|
return;
|
||||||
|
|
||||||
this._spinner.play();
|
this._spinner.play();
|
||||||
this._spinner.actor.show();
|
this._spinner.actor.show();
|
||||||
},
|
},
|
||||||
@ -463,6 +482,9 @@ const AppMenuButton = new Lang.Class({
|
|||||||
}
|
}
|
||||||
this._label.actor.allocate(childBox, flags);
|
this._label.actor.allocate(childBox, flags);
|
||||||
|
|
||||||
|
if (this._spinner == null)
|
||||||
|
return;
|
||||||
|
|
||||||
if (direction == Clutter.TextDirection.LTR) {
|
if (direction == Clutter.TextDirection.LTR) {
|
||||||
childBox.x1 = Math.floor(iconWidth / 2) + this._label.actor.width;
|
childBox.x1 = Math.floor(iconWidth / 2) + this._label.actor.width;
|
||||||
childBox.x2 = childBox.x1 + this._spinner.actor.width;
|
childBox.x2 = childBox.x1 + this._spinner.actor.width;
|
||||||
@ -546,14 +568,20 @@ const AppMenuButton = new Lang.Class({
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (targetApp == this._targetApp) {
|
if (targetApp == this._targetApp) {
|
||||||
if (targetApp && targetApp.get_state() != Shell.AppState.STARTING) {
|
if (targetApp &&
|
||||||
|
targetApp.get_state() != Shell.AppState.STARTING &&
|
||||||
|
targetApp.get_state() != Shell.AppState.BUSY) {
|
||||||
this.stopAnimation();
|
this.stopAnimation();
|
||||||
this._maybeSetMenu();
|
this._maybeSetMenu();
|
||||||
|
} else if (targetApp &&
|
||||||
|
targetApp.get_state() == Shell.AppState.BUSY) {
|
||||||
|
this.startAnimation();
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this._spinner.actor.hide();
|
if (this._spinner)
|
||||||
|
this._spinner.actor.hide();
|
||||||
if (this._iconBox.child != null)
|
if (this._iconBox.child != null)
|
||||||
this._iconBox.child.destroy();
|
this._iconBox.child.destroy();
|
||||||
this._iconBox.hide();
|
this._iconBox.hide();
|
||||||
@ -580,7 +608,8 @@ const AppMenuButton = new Lang.Class({
|
|||||||
this._iconBox.set_child(icon);
|
this._iconBox.set_child(icon);
|
||||||
this._iconBox.show();
|
this._iconBox.show();
|
||||||
|
|
||||||
if (targetApp.get_state() == Shell.AppState.STARTING)
|
if (targetApp.get_state() == Shell.AppState.STARTING ||
|
||||||
|
targetApp.get_state() == Shell.AppState.BUSY)
|
||||||
this.startAnimation();
|
this.startAnimation();
|
||||||
else
|
else
|
||||||
this._maybeSetMenu();
|
this._maybeSetMenu();
|
||||||
@ -616,6 +645,33 @@ const AppMenuButton = new Lang.Class({
|
|||||||
|
|
||||||
this.setMenu(menu);
|
this.setMenu(menu);
|
||||||
this._menuManager.addMenu(menu);
|
this._menuManager.addMenu(menu);
|
||||||
|
},
|
||||||
|
|
||||||
|
destroy: function() {
|
||||||
|
if (this._appStateChangedSignalId > 0) {
|
||||||
|
let appSys = Shell.AppSystem.get_default();
|
||||||
|
appSys.disconnect(this._appStateChangedSignalId);
|
||||||
|
this._appStateChangedSignalId = 0;
|
||||||
|
}
|
||||||
|
if (this._focusAppNotifyId > 0) {
|
||||||
|
let tracker = Shell.WindowTracker.get_default();
|
||||||
|
tracker.disconnect(this._focusAppNotifyId);
|
||||||
|
this._focusAppNotifyId = 0;
|
||||||
|
}
|
||||||
|
if (this._overviewHidingId > 0) {
|
||||||
|
Main.overview.disconnect(this._overviewHidingId);
|
||||||
|
this._overviewHidingId = 0;
|
||||||
|
}
|
||||||
|
if (this._overviewShowingId > 0) {
|
||||||
|
Main.overview.disconnect(this._overviewShowingId);
|
||||||
|
this._overviewShowingId = 0;
|
||||||
|
}
|
||||||
|
if (this._switchWorkspaceNotifyId > 0) {
|
||||||
|
global.window_manager.disconnect(this._switchWorkspaceNotifyId);
|
||||||
|
this._switchWorkspaceNotifyId = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.parent();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -902,7 +958,7 @@ const Panel = new Lang.Class({
|
|||||||
|
|
||||||
this.statusArea = {};
|
this.statusArea = {};
|
||||||
|
|
||||||
this.menuManager = new PopupMenu.PopupMenuManager(this);
|
this.menuManager = new PopupMenu.PopupMenuManager(this, { keybindingMode: Shell.KeyBindingMode.TOPBAR_POPUP });
|
||||||
|
|
||||||
this._leftBox = new St.BoxLayout({ name: 'panelLeft' });
|
this._leftBox = new St.BoxLayout({ name: 'panelLeft' });
|
||||||
this.actor.add_actor(this._leftBox);
|
this.actor.add_actor(this._leftBox);
|
||||||
@ -1056,17 +1112,18 @@ const Panel = new Lang.Class({
|
|||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
|
|
||||||
openAppMenu: function() {
|
toggleAppMenu: function() {
|
||||||
let indicator = this.statusArea.appMenu;
|
let indicator = this.statusArea.appMenu;
|
||||||
if (!indicator) // appMenu not supported by current session mode
|
if (!indicator) // appMenu not supported by current session mode
|
||||||
return;
|
return;
|
||||||
|
|
||||||
let menu = indicator.menu;
|
let menu = indicator.menu;
|
||||||
if (!indicator.actor.reactive || menu.isOpen)
|
if (!indicator.actor.reactive)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
menu.open();
|
menu.toggle();
|
||||||
menu.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
|
if (menu.isOpen)
|
||||||
|
menu.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
|
||||||
},
|
},
|
||||||
|
|
||||||
set boxOpacity(value) {
|
set boxOpacity(value) {
|
||||||
|
@ -19,6 +19,12 @@ const Tweener = imports.ui.tweener;
|
|||||||
|
|
||||||
const SLIDER_SCROLL_STEP = 0.05; /* Slider scrolling step in % */
|
const SLIDER_SCROLL_STEP = 0.05; /* Slider scrolling step in % */
|
||||||
|
|
||||||
|
const Ornament = {
|
||||||
|
NONE: 0,
|
||||||
|
DOT: 1,
|
||||||
|
CHECK: 2,
|
||||||
|
};
|
||||||
|
|
||||||
function _ensureStyle(actor) {
|
function _ensureStyle(actor) {
|
||||||
if (actor.get_children) {
|
if (actor.get_children) {
|
||||||
let children = actor.get_children();
|
let children = actor.get_children();
|
||||||
@ -53,7 +59,9 @@ const PopupBaseMenuItem = new Lang.Class({
|
|||||||
this.actor._delegate = this;
|
this.actor._delegate = this;
|
||||||
|
|
||||||
this._children = [];
|
this._children = [];
|
||||||
this._dot = null;
|
this._ornament = Ornament.NONE;
|
||||||
|
this._ornamentLabel = new St.Label({ style_class: 'popup-menu-ornament' });
|
||||||
|
this.actor.add_actor(this._ornamentLabel);
|
||||||
this._columnWidths = null;
|
this._columnWidths = null;
|
||||||
this._spacing = 0;
|
this._spacing = 0;
|
||||||
this.active = false;
|
this.active = false;
|
||||||
@ -176,40 +184,24 @@ const PopupBaseMenuItem = new Lang.Class({
|
|||||||
this._removeChild(child);
|
this._removeChild(child);
|
||||||
},
|
},
|
||||||
|
|
||||||
setShowDot: function(show) {
|
setOrnament: function(ornament) {
|
||||||
if (show) {
|
if (ornament == this._ornament)
|
||||||
if (this._dot)
|
return;
|
||||||
return;
|
|
||||||
|
|
||||||
this._dot = new St.DrawingArea({ style_class: 'popup-menu-item-dot' });
|
this._ornament = ornament;
|
||||||
this._dot.connect('repaint', Lang.bind(this, this._onRepaintDot));
|
|
||||||
this.actor.add_actor(this._dot);
|
|
||||||
this.actor.add_accessible_state (Atk.StateType.CHECKED);
|
|
||||||
} else {
|
|
||||||
if (!this._dot)
|
|
||||||
return;
|
|
||||||
|
|
||||||
this._dot.destroy();
|
if (ornament == Ornament.DOT) {
|
||||||
this._dot = null;
|
this._ornamentLabel.text = '\u2022';
|
||||||
this.actor.remove_accessible_state (Atk.StateType.CHECKED);
|
this.actor.add_accessible_state(Atk.StateType.CHECKED);
|
||||||
|
} else if (ornament == Ornament.CHECK) {
|
||||||
|
this._ornamentLabel.text = '\u2713';
|
||||||
|
this.actor.add_accessible_state(Atk.StateType.CHECKED);
|
||||||
|
} else if (ornament == Ornament.NONE) {
|
||||||
|
this._ornamentLabel.text = '';
|
||||||
|
this.actor.remove_accessible_state(Atk.StateType.CHECKED);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_onRepaintDot: function(area) {
|
|
||||||
let cr = area.get_context();
|
|
||||||
let [width, height] = area.get_surface_size();
|
|
||||||
let color = area.get_theme_node().get_foreground_color();
|
|
||||||
|
|
||||||
cr.setSourceRGBA (
|
|
||||||
color.red / 255,
|
|
||||||
color.green / 255,
|
|
||||||
color.blue / 255,
|
|
||||||
color.alpha / 255);
|
|
||||||
cr.arc(width / 2, height / 2, width / 3, 0, 2 * Math.PI);
|
|
||||||
cr.fill();
|
|
||||||
cr.$dispose();
|
|
||||||
},
|
|
||||||
|
|
||||||
// This returns column widths in logical order (i.e. from the dot
|
// This returns column widths in logical order (i.e. from the dot
|
||||||
// to the image), not in visual order (left to right)
|
// to the image), not in visual order (left to right)
|
||||||
getColumnWidths: function() {
|
getColumnWidths: function() {
|
||||||
@ -280,26 +272,25 @@ const PopupBaseMenuItem = new Lang.Class({
|
|||||||
let height = box.y2 - box.y1;
|
let height = box.y2 - box.y1;
|
||||||
let direction = this.actor.get_text_direction();
|
let direction = this.actor.get_text_direction();
|
||||||
|
|
||||||
if (this._dot) {
|
// The ornament is placed outside box
|
||||||
// The dot is placed outside box
|
// one quarter of padding from the border of the container
|
||||||
// one quarter of padding from the border of the container
|
// (so 3/4 from the inner border)
|
||||||
// (so 3/4 from the inner border)
|
// (padding is box.x1)
|
||||||
// (padding is box.x1)
|
let ornamentBox = new Clutter.ActorBox();
|
||||||
let dotBox = new Clutter.ActorBox();
|
let ornamentWidth = box.x1;
|
||||||
let dotWidth = Math.round(box.x1 / 2);
|
|
||||||
|
|
||||||
if (direction == Clutter.TextDirection.LTR) {
|
ornamentBox.x1 = 0;
|
||||||
dotBox.x1 = Math.round(box.x1 / 4);
|
ornamentBox.x2 = ornamentWidth;
|
||||||
dotBox.x2 = dotBox.x1 + dotWidth;
|
ornamentBox.y1 = box.y1;
|
||||||
} else {
|
ornamentBox.y2 = box.y2;
|
||||||
dotBox.x2 = box.x2 + 3 * Math.round(box.x1 / 4);
|
|
||||||
dotBox.x1 = dotBox.x2 - dotWidth;
|
if (direction == Clutter.TextDirection.RTL) {
|
||||||
}
|
ornamentBox.x1 += box.x2;
|
||||||
dotBox.y1 = Math.round(box.y1 + (height - dotWidth) / 2);
|
ornamentBox.x2 += box.x2;
|
||||||
dotBox.y2 = dotBox.y1 + dotWidth;
|
|
||||||
this._dot.allocate(dotBox, flags);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this._ornamentLabel.allocate(ornamentBox, flags);
|
||||||
|
|
||||||
let x;
|
let x;
|
||||||
if (direction == Clutter.TextDirection.LTR)
|
if (direction == Clutter.TextDirection.LTR)
|
||||||
x = box.x1;
|
x = box.x1;
|
||||||
@ -1157,6 +1148,7 @@ const PopupMenuBase = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
destroy: function() {
|
destroy: function() {
|
||||||
|
this.close();
|
||||||
this.removeAll();
|
this.removeAll();
|
||||||
this.actor.destroy();
|
this.actor.destroy();
|
||||||
|
|
||||||
@ -1474,23 +1466,12 @@ const PopupMenuSection = new Lang.Class({
|
|||||||
this.actor = this.box;
|
this.actor = this.box;
|
||||||
this.actor._delegate = this;
|
this.actor._delegate = this;
|
||||||
this.isOpen = true;
|
this.isOpen = true;
|
||||||
|
|
||||||
// an array of externally managed separators
|
|
||||||
this.separators = [];
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// deliberately ignore any attempt to open() or close(), but emit the
|
// deliberately ignore any attempt to open() or close(), but emit the
|
||||||
// corresponding signal so children can still pick it up
|
// corresponding signal so children can still pick it up
|
||||||
open: function() { this.emit('open-state-changed', true); },
|
open: function() { this.emit('open-state-changed', true); },
|
||||||
close: function() { this.emit('open-state-changed', false); },
|
close: function() { this.emit('open-state-changed', false); },
|
||||||
|
|
||||||
destroy: function() {
|
|
||||||
for (let i = 0; i < this.separators.length; i++)
|
|
||||||
this.separators[i].destroy();
|
|
||||||
this.separators = [];
|
|
||||||
|
|
||||||
this.parent();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const PopupSubMenuMenuItem = new Lang.Class({
|
const PopupSubMenuMenuItem = new Lang.Class({
|
||||||
@ -1807,8 +1788,8 @@ const RemoteMenu = new Lang.Class({
|
|||||||
this.model = model;
|
this.model = model;
|
||||||
this.actionGroup = actionGroup;
|
this.actionGroup = actionGroup;
|
||||||
|
|
||||||
this._actions = { };
|
this._actions = {};
|
||||||
this._modelChanged(this.model, 0, 0, this.model.get_n_items(), this);
|
this._trackMenu(model, this);
|
||||||
|
|
||||||
this._actionStateChangeId = this.actionGroup.connect('action-state-changed', Lang.bind(this, this._actionStateChanged));
|
this._actionStateChangeId = this.actionGroup.connect('action-state-changed', Lang.bind(this, this._actionStateChanged));
|
||||||
this._actionEnableChangeId = this.actionGroup.connect('action-enabled-changed', Lang.bind(this, this._actionEnabledChanged));
|
this._actionEnableChangeId = this.actionGroup.connect('action-enabled-changed', Lang.bind(this, this._actionEnabledChanged));
|
||||||
@ -1828,39 +1809,8 @@ const RemoteMenu = new Lang.Class({
|
|||||||
this.parent();
|
this.parent();
|
||||||
},
|
},
|
||||||
|
|
||||||
_createMenuItem: function(model, index) {
|
_actionAdded: function(model, item, index) {
|
||||||
let labelValue = model.get_item_attribute_value(index, Gio.MENU_ATTRIBUTE_LABEL, null);
|
let action_id = item.action_id;
|
||||||
let label = labelValue ? labelValue.deep_unpack() : '';
|
|
||||||
// remove all underscores that are not followed by another underscore
|
|
||||||
label = label.replace(/_([^_])/, '$1');
|
|
||||||
|
|
||||||
let section_link = model.get_item_link(index, Gio.MENU_LINK_SECTION);
|
|
||||||
if (section_link) {
|
|
||||||
let item = new PopupMenuSection();
|
|
||||||
if (label) {
|
|
||||||
let title = new PopupMenuItem(label, { reactive: false,
|
|
||||||
style_class: 'popup-subtitle-menu-item' });
|
|
||||||
item._titleMenuItem = title;
|
|
||||||
title._ignored = true;
|
|
||||||
item.addMenuItem(title);
|
|
||||||
}
|
|
||||||
this._modelChanged(section_link, 0, 0, section_link.get_n_items(), item);
|
|
||||||
return [item, true, ''];
|
|
||||||
}
|
|
||||||
|
|
||||||
let submenu_link = model.get_item_link(index, Gio.MENU_LINK_SUBMENU);
|
|
||||||
|
|
||||||
if (submenu_link) {
|
|
||||||
let item = new PopupSubMenuMenuItem(label);
|
|
||||||
this._modelChanged(submenu_link, 0, 0, submenu_link.get_n_items(), item.menu);
|
|
||||||
return [item, false, ''];
|
|
||||||
}
|
|
||||||
|
|
||||||
let action_id = model.get_item_attribute_value(index, Gio.MENU_ATTRIBUTE_ACTION, null).deep_unpack();
|
|
||||||
if (!this.actionGroup.has_action(action_id)) {
|
|
||||||
// the action may not be there yet, wait for action-added
|
|
||||||
return [null, false, 'action-added'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!this._actions[action_id])
|
if (!this._actions[action_id])
|
||||||
this._actions[action_id] = { enabled: this.actionGroup.get_action_enabled(action_id),
|
this._actions[action_id] = { enabled: this.actionGroup.get_action_enabled(action_id),
|
||||||
@ -1868,7 +1818,7 @@ const RemoteMenu = new Lang.Class({
|
|||||||
items: [ ],
|
items: [ ],
|
||||||
};
|
};
|
||||||
let action = this._actions[action_id];
|
let action = this._actions[action_id];
|
||||||
let item, target, destroyId, specificSignalId;
|
let target, destroyId, specificSignalId;
|
||||||
|
|
||||||
if (action.state) {
|
if (action.state) {
|
||||||
// Docs have get_state_hint(), except that the DBus protocol
|
// Docs have get_state_hint(), except that the DBus protocol
|
||||||
@ -1879,28 +1829,28 @@ const RemoteMenu = new Lang.Class({
|
|||||||
|
|
||||||
switch (String.fromCharCode(action.state.classify())) {
|
switch (String.fromCharCode(action.state.classify())) {
|
||||||
case 'b':
|
case 'b':
|
||||||
item = new PopupSwitchMenuItem(label, action.state.get_boolean());
|
|
||||||
action.items.push(item);
|
action.items.push(item);
|
||||||
specificSignalId = item.connect('toggled', Lang.bind(this, function(item) {
|
item.setOrnament(action.state.get_boolean() ?
|
||||||
|
Ornament.CHECK : Ornament.NONE);
|
||||||
|
specificSignalId = item.connect('activate', Lang.bind(this, function(item) {
|
||||||
this.actionGroup.activate_action(action_id, null);
|
this.actionGroup.activate_action(action_id, null);
|
||||||
}));
|
}));
|
||||||
break;
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
item = new PopupMenuItem(label);
|
|
||||||
item._remoteTarget = model.get_item_attribute_value(index, Gio.MENU_ATTRIBUTE_TARGET, null).deep_unpack();
|
|
||||||
action.items.push(item);
|
action.items.push(item);
|
||||||
item.setShowDot(action.state.deep_unpack() == item._remoteTarget);
|
item._remoteTarget = model.get_item_attribute_value(index, Gio.MENU_ATTRIBUTE_TARGET, null).deep_unpack();
|
||||||
|
item.setOrnament(action.state.deep_unpack() == item._remoteTarget ?
|
||||||
|
Ornament.DOT : Ornament.NONE);
|
||||||
specificSignalId = item.connect('activate', Lang.bind(this, function(item) {
|
specificSignalId = item.connect('activate', Lang.bind(this, function(item) {
|
||||||
this.actionGroup.activate_action(action_id, GLib.Variant.new_string(item._remoteTarget));
|
this.actionGroup.activate_action(action_id, GLib.Variant.new_string(item._remoteTarget));
|
||||||
}));
|
}));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
log('Action "%s" has state of type %s, which is not supported'.format(action_id, action.state.get_type_string()));
|
log('Action "%s" has state of type %s, which is not supported'.format(action_id, action.state.get_type_string()));
|
||||||
return [null, false, 'action-state-changed'];
|
return;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
target = model.get_item_attribute_value(index, Gio.MENU_ATTRIBUTE_TARGET, null);
|
target = model.get_item_attribute_value(index, Gio.MENU_ATTRIBUTE_TARGET, null);
|
||||||
item = new PopupMenuItem(label);
|
|
||||||
action.items.push(item);
|
action.items.push(item);
|
||||||
specificSignalId = item.connect('activate', Lang.bind(this, function() {
|
specificSignalId = item.connect('activate', Lang.bind(this, function() {
|
||||||
this.actionGroup.activate_action(action_id, target);
|
this.actionGroup.activate_action(action_id, target);
|
||||||
@ -1917,94 +1867,52 @@ const RemoteMenu = new Lang.Class({
|
|||||||
if (pos != -1)
|
if (pos != -1)
|
||||||
action.items.splice(pos, 1);
|
action.items.splice(pos, 1);
|
||||||
}));
|
}));
|
||||||
|
},
|
||||||
|
|
||||||
return [item, false, ''];
|
_trackMenu: function(model, item) {
|
||||||
},
|
item._tracker = Shell.MenuTracker.new(model,
|
||||||
|
null, /* action namespace */
|
||||||
|
Lang.bind(this, this._insertItem, item),
|
||||||
|
Lang.bind(this, this._removeItem, item));
|
||||||
|
|
||||||
_modelChanged: function(model, position, removed, added, target) {
|
item.connect('destroy', function() {
|
||||||
let j, k;
|
item._tracker.destroy();
|
||||||
let j0, k0;
|
item._tracker = null;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
let currentItems = target._getMenuItems();
|
_createMenuItem: function(model, index) {
|
||||||
|
let labelValue = model.get_item_attribute_value(index, Gio.MENU_ATTRIBUTE_LABEL, null);
|
||||||
|
let label = labelValue ? labelValue.deep_unpack() : '';
|
||||||
|
// remove all underscores that are not followed by another underscore
|
||||||
|
label = label.replace(/_([^_])/, '$1');
|
||||||
|
|
||||||
k0 = 0;
|
let submenuModel = model.get_item_link(index, Gio.MENU_LINK_SUBMENU);
|
||||||
// skip ignored items at the beginning
|
if (submenuModel) {
|
||||||
while (k0 < currentItems.length && currentItems[k0]._ignored)
|
let item = new PopupSubMenuMenuItem(label);
|
||||||
k0++;
|
this._trackMenu(submenuModel, item.menu);
|
||||||
// find the right menu item matching the model item
|
return item;
|
||||||
for (j0 = 0; k0 < currentItems.length && j0 < position; j0++, k0++) {
|
|
||||||
if (currentItems[k0]._ignored)
|
|
||||||
k0++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (removed == -1) {
|
let item = new PopupMenuItem(label);
|
||||||
// special flag to indicate we should destroy everything
|
let action_id = model.get_item_attribute_value(index, Gio.MENU_ATTRIBUTE_ACTION, null).deep_unpack();
|
||||||
for (k = k0; k < currentItems.length; k++)
|
item.actor.can_focus = item.actor.reactive = false;
|
||||||
currentItems[k].destroy();
|
|
||||||
} else {
|
|
||||||
for (j = j0, k = k0; k < currentItems.length && j < j0 + removed; j++, k++) {
|
|
||||||
currentItems[k].destroy();
|
|
||||||
|
|
||||||
if (currentItems[k]._ignored)
|
item.action_id = action_id;
|
||||||
j--;
|
|
||||||
}
|
if (this.actionGroup.has_action(action_id)) {
|
||||||
|
this._actionAdded(model, item, index);
|
||||||
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (j = j0, k = k0; j < j0 + added; j++, k++) {
|
let signalId = this.actionGroup.connect('action-added', Lang.bind(this, function(actionGroup, actionName) {
|
||||||
let [item, addSeparator, changeSignal] = this._createMenuItem(model, j);
|
actionGroup.disconnect(signalId);
|
||||||
|
if (this._actions[actionName]) return;
|
||||||
|
|
||||||
if (item) {
|
this._actionAdded(model, item, index);
|
||||||
// separators must be added in the parent to make autohiding work
|
}));
|
||||||
if (addSeparator) {
|
|
||||||
let separator = new PopupSeparatorMenuItem();
|
|
||||||
item.separators.push(separator);
|
|
||||||
separator._ignored = true;
|
|
||||||
target.addMenuItem(separator, k+1);
|
|
||||||
k++;
|
|
||||||
}
|
|
||||||
|
|
||||||
target.addMenuItem(item, k);
|
return item;
|
||||||
|
|
||||||
if (addSeparator) {
|
|
||||||
let separator = new PopupSeparatorMenuItem();
|
|
||||||
item.separators.push(separator);
|
|
||||||
separator._ignored = true;
|
|
||||||
target.addMenuItem(separator, k+1);
|
|
||||||
k++;
|
|
||||||
}
|
|
||||||
} else if (changeSignal) {
|
|
||||||
let signalId = this.actionGroup.connect(changeSignal, Lang.bind(this, function(actionGroup, actionName) {
|
|
||||||
actionGroup.disconnect(signalId);
|
|
||||||
if (this._actions[actionName]) return;
|
|
||||||
|
|
||||||
// force a full update
|
|
||||||
this._modelChanged(model, 0, -1, model.get_n_items(), target);
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!model._changedId) {
|
|
||||||
model._changedId = model.connect('items-changed', Lang.bind(this, this._modelChanged, target));
|
|
||||||
model._destroyId = target.connect('destroy', function() {
|
|
||||||
if (model._changedId)
|
|
||||||
model.disconnect(model._changedId);
|
|
||||||
if (model._destroyId)
|
|
||||||
target.disconnect(model._destroyId);
|
|
||||||
model._changedId = 0;
|
|
||||||
model._destroyId = 0;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (target instanceof PopupMenuSection) {
|
|
||||||
if (target._titleMenuItem)
|
|
||||||
target.actor.visible = target.numMenuItems != 1;
|
|
||||||
else
|
|
||||||
target.actor.visible = target.numMenuItems != 0;
|
|
||||||
} else {
|
|
||||||
let sourceItem = target.sourceActor._delegate;
|
|
||||||
if (sourceItem instanceof PopupSubMenuMenuItem)
|
|
||||||
sourceItem.actor.visible = target.numMenuItems != 0;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_actionStateChanged: function(actionGroup, action_id) {
|
_actionStateChanged: function(actionGroup, action_id) {
|
||||||
@ -2017,7 +1925,8 @@ const RemoteMenu = new Lang.Class({
|
|||||||
switch (String.fromCharCode(action.state.classify())) {
|
switch (String.fromCharCode(action.state.classify())) {
|
||||||
case 'b':
|
case 'b':
|
||||||
for (let i = 0; i < action.items.length; i++)
|
for (let i = 0; i < action.items.length; i++)
|
||||||
action.items[i].setToggleState(action.state.get_boolean());
|
action.items[i].setOrnament(action.state.get_boolean() ?
|
||||||
|
Ornament.CHECK : Ornament.NONE);
|
||||||
break;
|
break;
|
||||||
case 'd':
|
case 'd':
|
||||||
for (let i = 0; i < action.items.length; i++)
|
for (let i = 0; i < action.items.length; i++)
|
||||||
@ -2025,7 +1934,8 @@ const RemoteMenu = new Lang.Class({
|
|||||||
break;
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
for (let i = 0; i < action.items.length; i++)
|
for (let i = 0; i < action.items.length; i++)
|
||||||
action.items[i].setShowDot(action.items[i]._remoteTarget == action.state.deep_unpack());
|
action.items[i].setOrnament(action.items[i]._remoteTarget == action.state.deep_unpack() ?
|
||||||
|
Ornament.DOT : Ornament.NONE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -2042,7 +1952,23 @@ const RemoteMenu = new Lang.Class({
|
|||||||
item.actor.reactive = item.actor.can_focus = action.enabled;
|
item.actor.reactive = item.actor.can_focus = action.enabled;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
|
||||||
|
_insertItem: function(position, model, item_index, action_namespace, is_separator, target) {
|
||||||
|
let item;
|
||||||
|
|
||||||
|
if (is_separator)
|
||||||
|
item = new PopupSeparatorMenuItem();
|
||||||
|
else
|
||||||
|
item = this._createMenuItem(model, item_index);
|
||||||
|
|
||||||
|
target.addMenuItem(item, position);
|
||||||
|
},
|
||||||
|
|
||||||
|
_removeItem: function(position, target) {
|
||||||
|
let items = target._getMenuItems();
|
||||||
|
items[position].destroy();
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
/* Basic implementation of a menu manager.
|
/* Basic implementation of a menu manager.
|
||||||
@ -2051,9 +1977,9 @@ const RemoteMenu = new Lang.Class({
|
|||||||
const PopupMenuManager = new Lang.Class({
|
const PopupMenuManager = new Lang.Class({
|
||||||
Name: 'PopupMenuManager',
|
Name: 'PopupMenuManager',
|
||||||
|
|
||||||
_init: function(owner) {
|
_init: function(owner, grabParams) {
|
||||||
this._owner = owner;
|
this._owner = owner;
|
||||||
this._grabHelper = new GrabHelper.GrabHelper(owner.actor);
|
this._grabHelper = new GrabHelper.GrabHelper(owner.actor, grabParams);
|
||||||
this._menus = [];
|
this._menus = [];
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2086,7 +2012,7 @@ const PopupMenuManager = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
removeMenu: function(menu) {
|
removeMenu: function(menu) {
|
||||||
if (menu == this._activeMenu)
|
if (menu == this.activeMenu)
|
||||||
this._closeMenu(menu);
|
this._closeMenu(menu);
|
||||||
|
|
||||||
let position = this._findMenu(menu);
|
let position = this._findMenu(menu);
|
||||||
@ -2110,9 +2036,9 @@ const PopupMenuManager = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
get activeMenu() {
|
get activeMenu() {
|
||||||
let actor = this._grabHelper.currentGrab.actor;
|
let firstGrab = this._grabHelper.grabStack[0];
|
||||||
if (actor)
|
if (firstGrab)
|
||||||
return actor._delegate;
|
return firstGrab.actor._delegate;
|
||||||
else
|
else
|
||||||
return null;
|
return null;
|
||||||
},
|
},
|
||||||
@ -2123,6 +2049,8 @@ const PopupMenuManager = new Lang.Class({
|
|||||||
|
|
||||||
_onMenuOpenState: function(menu, open) {
|
_onMenuOpenState: function(menu, open) {
|
||||||
if (open) {
|
if (open) {
|
||||||
|
if (this.activeMenu)
|
||||||
|
this.activeMenu.close(BoxPointer.PopupAnimation.FADE);
|
||||||
this._grabHelper.grab({ actor: menu.actor, modal: true, focus: menu.sourceActor,
|
this._grabHelper.grab({ actor: menu.actor, modal: true, focus: menu.sourceActor,
|
||||||
onUngrab: Lang.bind(this, this._closeMenu, menu) });
|
onUngrab: Lang.bind(this, this._closeMenu, menu) });
|
||||||
} else {
|
} else {
|
||||||
@ -2139,13 +2067,8 @@ const PopupMenuManager = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_changeMenu: function(newMenu) {
|
_changeMenu: function(newMenu) {
|
||||||
let oldMenu = this.activeMenu;
|
newMenu.open(this.activeMenu ? BoxPointer.PopupAnimation.FADE
|
||||||
if (oldMenu) {
|
: BoxPointer.PopupAnimation.FULL);
|
||||||
oldMenu.close(BoxPointer.PopupAnimation.FADE);
|
|
||||||
newMenu.open(BoxPointer.PopupAnimation.FADE);
|
|
||||||
} else {
|
|
||||||
newMenu.open(BoxPointer.PopupAnimation.FULL);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_onMenuSourceEnter: function(menu) {
|
_onMenuSourceEnter: function(menu) {
|
||||||
|
@ -127,8 +127,6 @@ function remoteProvidersLoaded(loadState) {
|
|||||||
// Special case gnome-control-center to be always active and always first
|
// Special case gnome-control-center to be always active and always first
|
||||||
sortOrder.unshift('gnome-control-center.desktop');
|
sortOrder.unshift('gnome-control-center.desktop');
|
||||||
|
|
||||||
let numSorted = sortOrder.length;
|
|
||||||
|
|
||||||
loadState.loadedProviders.sort(
|
loadState.loadedProviders.sort(
|
||||||
function(providerA, providerB) {
|
function(providerA, providerB) {
|
||||||
let idxA, idxB;
|
let idxA, idxB;
|
||||||
@ -148,15 +146,6 @@ function remoteProvidersLoaded(loadState) {
|
|||||||
return GLib.utf8_collate(nameA, nameB);
|
return GLib.utf8_collate(nameA, nameB);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (numSorted > 1) {
|
|
||||||
// if providerA is the last, it goes after everything
|
|
||||||
if ((idxA + 1) == numSorted)
|
|
||||||
return 1;
|
|
||||||
// if providerB is the last, it goes after everything
|
|
||||||
else if ((idxB + 1) == numSorted)
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// if providerA isn't found, it's sorted after providerB
|
// if providerA isn't found, it's sorted after providerB
|
||||||
if (idxA == -1)
|
if (idxA == -1)
|
||||||
return 1;
|
return 1;
|
||||||
@ -198,7 +187,9 @@ const RemoteSearchProvider = new Lang.Class({
|
|||||||
|
|
||||||
createIcon: function(size, meta) {
|
createIcon: function(size, meta) {
|
||||||
let gicon;
|
let gicon;
|
||||||
if (meta['gicon']) {
|
if (meta['icon']) {
|
||||||
|
gicon = Gio.icon_deserialize(meta['icon']);
|
||||||
|
} else if (meta['gicon']) {
|
||||||
gicon = Gio.icon_new_for_string(meta['gicon']);
|
gicon = Gio.icon_new_for_string(meta['gicon']);
|
||||||
} else if (meta['icon-data']) {
|
} else if (meta['icon-data']) {
|
||||||
let [width, height, rowStride, hasAlpha,
|
let [width, height, rowStride, hasAlpha,
|
||||||
@ -251,8 +242,12 @@ const RemoteSearchProvider = new Lang.Class({
|
|||||||
let metas = results[0];
|
let metas = results[0];
|
||||||
let resultMetas = [];
|
let resultMetas = [];
|
||||||
for (let i = 0; i < metas.length; i++) {
|
for (let i = 0; i < metas.length; i++) {
|
||||||
for (let prop in metas[i])
|
for (let prop in metas[i]) {
|
||||||
metas[i][prop] = metas[i][prop].deep_unpack();
|
// we can use the serialized icon variant directly
|
||||||
|
if (prop != 'icon')
|
||||||
|
metas[i][prop] = metas[i][prop].deep_unpack();
|
||||||
|
}
|
||||||
|
|
||||||
resultMetas.push({ id: metas[i]['id'],
|
resultMetas.push({ id: metas[i]['id'],
|
||||||
name: metas[i]['name'],
|
name: metas[i]['name'],
|
||||||
description: metas[i]['description'],
|
description: metas[i]['description'],
|
||||||
|
@ -35,7 +35,8 @@ const RunDialog = new Lang.Class({
|
|||||||
Extends: ModalDialog.ModalDialog,
|
Extends: ModalDialog.ModalDialog,
|
||||||
|
|
||||||
_init : function() {
|
_init : function() {
|
||||||
this.parent({ styleClass: 'run-dialog' });
|
this.parent({ styleClass: 'run-dialog',
|
||||||
|
destroyOnClose: false });
|
||||||
|
|
||||||
this._lockdownSettings = new Gio.Settings({ schema: LOCKDOWN_SCHEMA });
|
this._lockdownSettings = new Gio.Settings({ schema: LOCKDOWN_SCHEMA });
|
||||||
this._terminalSettings = new Gio.Settings({ schema: TERMINAL_SCHEMA });
|
this._terminalSettings = new Gio.Settings({ schema: TERMINAL_SCHEMA });
|
||||||
|
@ -562,6 +562,7 @@ const ScreenShield = new Lang.Class({
|
|||||||
this._bgManagers[i].destroy();
|
this._bgManagers[i].destroy();
|
||||||
|
|
||||||
this._bgManagers = [];
|
this._bgManagers = [];
|
||||||
|
this._backgroundGroup.destroy_all_children();
|
||||||
|
|
||||||
for (let i = 0; i < Main.layoutManager.monitors.length; i++)
|
for (let i = 0; i < Main.layoutManager.monitors.length; i++)
|
||||||
this._createBackground(i);
|
this._createBackground(i);
|
||||||
|
@ -81,10 +81,10 @@ const _modes = {
|
|||||||
'initial-setup': {
|
'initial-setup': {
|
||||||
hasWindows: true,
|
hasWindows: true,
|
||||||
isPrimary: true,
|
isPrimary: true,
|
||||||
components: ['keyring'],
|
components: ['networkAgent', 'keyring'],
|
||||||
panel: {
|
panel: {
|
||||||
left: [],
|
left: [],
|
||||||
center: ['dateMenu'],
|
center: [],
|
||||||
right: ['a11yGreeter', 'keyboard', 'volume', 'battery']
|
right: ['a11yGreeter', 'keyboard', 'volume', 'battery']
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -97,7 +97,7 @@ const GnomeShell = new Lang.Class({
|
|||||||
*/
|
*/
|
||||||
Eval: function(code) {
|
Eval: function(code) {
|
||||||
if (!global.settings.get_boolean('development-tools'))
|
if (!global.settings.get_boolean('development-tools'))
|
||||||
return [false, null];
|
return [false, ''];
|
||||||
|
|
||||||
let returnValue;
|
let returnValue;
|
||||||
let success;
|
let success;
|
||||||
@ -397,7 +397,7 @@ const ScreenSaverDBus = new Lang.Class({
|
|||||||
if (active)
|
if (active)
|
||||||
this._screenShield.activate(true);
|
this._screenShield.activate(true);
|
||||||
else
|
else
|
||||||
this._screenShield.unlock(false);
|
this._screenShield.deactivate(false);
|
||||||
},
|
},
|
||||||
|
|
||||||
GetActive: function() {
|
GetActive: function() {
|
||||||
|
@ -82,11 +82,6 @@ const EntryMenu = new Lang.Class({
|
|||||||
this.actor.grab_key_focus();
|
this.actor.grab_key_focus();
|
||||||
},
|
},
|
||||||
|
|
||||||
close: function(animate) {
|
|
||||||
this._entry.grab_key_focus();
|
|
||||||
this.parent(animate);
|
|
||||||
},
|
|
||||||
|
|
||||||
_updateCopyItem: function() {
|
_updateCopyItem: function() {
|
||||||
let selection = this._entry.clutter_text.get_selection();
|
let selection = this._entry.clutter_text.get_selection();
|
||||||
this._copyItem.setSensitive(!this._entry.clutter_text.password_char &&
|
this._copyItem.setSensitive(!this._entry.clutter_text.password_char &&
|
||||||
@ -171,4 +166,10 @@ function addContextMenu(entry, params) {
|
|||||||
entry.connect('button-press-event', Lang.bind(null, _onButtonPressEvent, entry));
|
entry.connect('button-press-event', Lang.bind(null, _onButtonPressEvent, entry));
|
||||||
|
|
||||||
entry.connect('popup-menu', Lang.bind(null, _onPopup, entry));
|
entry.connect('popup-menu', Lang.bind(null, _onPopup, entry));
|
||||||
|
|
||||||
|
entry.connect('destroy', function() {
|
||||||
|
entry.menu.destroy();
|
||||||
|
entry.menu = null;
|
||||||
|
entry._menuManager = null;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
@ -417,7 +417,7 @@ const InputSourceIndicator = new Lang.Class({
|
|||||||
[oldSource, this._currentSource] = [this._currentSource, newSource];
|
[oldSource, this._currentSource] = [this._currentSource, newSource];
|
||||||
|
|
||||||
if (oldSource) {
|
if (oldSource) {
|
||||||
oldSource.menuItem.setShowDot(false);
|
oldSource.menuItem.setOrnament(PopupMenu.Ornament.NONE);
|
||||||
oldSource.indicatorLabel.hide();
|
oldSource.indicatorLabel.hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -435,7 +435,7 @@ const InputSourceIndicator = new Lang.Class({
|
|||||||
|
|
||||||
this.actor.show();
|
this.actor.show();
|
||||||
|
|
||||||
newSource.menuItem.setShowDot(true);
|
newSource.menuItem.setOrnament(PopupMenu.Ornament.DOT);
|
||||||
newSource.indicatorLabel.show();
|
newSource.indicatorLabel.show();
|
||||||
|
|
||||||
this._buildPropSection(newSource.properties);
|
this._buildPropSection(newSource.properties);
|
||||||
@ -459,6 +459,7 @@ const InputSourceIndicator = new Lang.Class({
|
|||||||
|
|
||||||
this._inputSources = {};
|
this._inputSources = {};
|
||||||
this._ibusSources = {};
|
this._ibusSources = {};
|
||||||
|
this._currentSource = null;
|
||||||
|
|
||||||
let inputSourcesByShortName = {};
|
let inputSourcesByShortName = {};
|
||||||
|
|
||||||
@ -660,7 +661,8 @@ const InputSourceIndicator = new Lang.Class({
|
|||||||
item.prop = prop;
|
item.prop = prop;
|
||||||
radioGroup.push(item);
|
radioGroup.push(item);
|
||||||
item.radioGroup = radioGroup;
|
item.radioGroup = radioGroup;
|
||||||
item.setShowDot(prop.get_state() == IBus.PropState.CHECKED);
|
item.setOrnament(prop.get_state() == IBus.PropState.CHECKED ?
|
||||||
|
PopupMenu.Ornament.DOT : PopupMenu.Ornament.NONE);
|
||||||
item.connect('activate', Lang.bind(this, function() {
|
item.connect('activate', Lang.bind(this, function() {
|
||||||
if (item.prop.get_state() == IBus.PropState.CHECKED)
|
if (item.prop.get_state() == IBus.PropState.CHECKED)
|
||||||
return;
|
return;
|
||||||
@ -668,12 +670,12 @@ const InputSourceIndicator = new Lang.Class({
|
|||||||
let group = item.radioGroup;
|
let group = item.radioGroup;
|
||||||
for (let i = 0; i < group.length; ++i) {
|
for (let i = 0; i < group.length; ++i) {
|
||||||
if (group[i] == item) {
|
if (group[i] == item) {
|
||||||
item.setShowDot(true);
|
item.setOrnament(PopupMenu.Ornament.DOT);
|
||||||
item.prop.set_state(IBus.PropState.CHECKED);
|
item.prop.set_state(IBus.PropState.CHECKED);
|
||||||
this._ibusManager.activateProperty(item.prop.get_key(),
|
this._ibusManager.activateProperty(item.prop.get_key(),
|
||||||
IBus.PropState.CHECKED);
|
IBus.PropState.CHECKED);
|
||||||
} else {
|
} else {
|
||||||
group[i].setShowDot(false);
|
group[i].setOrnament(PopupMenu.Ornament.NONE);
|
||||||
group[i].prop.set_state(IBus.PropState.UNCHECKED);
|
group[i].prop.set_state(IBus.PropState.UNCHECKED);
|
||||||
this._ibusManager.activateProperty(group[i].prop.get_key(),
|
this._ibusManager.activateProperty(group[i].prop.get_key(),
|
||||||
IBus.PropState.UNCHECKED);
|
IBus.PropState.UNCHECKED);
|
||||||
|
@ -5,17 +5,10 @@ const Gio = imports.gi.Gio;
|
|||||||
const Lang = imports.lang;
|
const Lang = imports.lang;
|
||||||
const NetworkManager = imports.gi.NetworkManager;
|
const NetworkManager = imports.gi.NetworkManager;
|
||||||
const NMClient = imports.gi.NMClient;
|
const NMClient = imports.gi.NMClient;
|
||||||
|
const NMGtk = imports.gi.NMGtk;
|
||||||
const Signals = imports.signals;
|
const Signals = imports.signals;
|
||||||
const St = imports.gi.St;
|
const St = imports.gi.St;
|
||||||
|
|
||||||
// Some of the new code depends on as-yet-unreleased NM
|
|
||||||
var NMGtk;
|
|
||||||
try {
|
|
||||||
NMGtk = imports.gi.NMGtk;
|
|
||||||
} catch(e) {
|
|
||||||
NMGtk = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
const Main = imports.ui.main;
|
const Main = imports.ui.main;
|
||||||
const PanelMenu = imports.ui.panelMenu;
|
const PanelMenu = imports.ui.panelMenu;
|
||||||
const PopupMenu = imports.ui.popupMenu;
|
const PopupMenu = imports.ui.popupMenu;
|
||||||
@ -34,7 +27,6 @@ const NMConnectionCategory = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const NMAccessPointSecurity = {
|
const NMAccessPointSecurity = {
|
||||||
UNKNOWN: 0,
|
|
||||||
NONE: 1,
|
NONE: 1,
|
||||||
WEP: 2,
|
WEP: 2,
|
||||||
WPA_PSK: 3,
|
WPA_PSK: 3,
|
||||||
@ -52,20 +44,6 @@ const NM80211ApSecurityFlags = NetworkManager['80211ApSecurityFlags'];
|
|||||||
// (the remaining are placed into More…)
|
// (the remaining are placed into More…)
|
||||||
const NUM_VISIBLE_NETWORKS = 5;
|
const NUM_VISIBLE_NETWORKS = 5;
|
||||||
|
|
||||||
function macToArray(string) {
|
|
||||||
return string.split(':').map(function(el) {
|
|
||||||
return parseInt(el, 16);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function macCompare(one, two) {
|
|
||||||
for (let i = 0; i < 6; i++) {
|
|
||||||
if (one[i] != two[i])
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
function ssidCompare(one, two) {
|
function ssidCompare(one, two) {
|
||||||
if (!one || !two)
|
if (!one || !two)
|
||||||
return false;
|
return false;
|
||||||
@ -130,8 +108,7 @@ const NMNetworkMenuItem = new Lang.Class({
|
|||||||
this._icons.add_actor(this._signalIcon);
|
this._icons.add_actor(this._signalIcon);
|
||||||
|
|
||||||
this._secureIcon = new St.Icon({ style_class: 'popup-menu-icon' });
|
this._secureIcon = new St.Icon({ style_class: 'popup-menu-icon' });
|
||||||
if (this.bestAP._secType != NMAccessPointSecurity.UNKNOWN &&
|
if (this.bestAP._secType != NMAccessPointSecurity.NONE)
|
||||||
this.bestAP._secType != NMAccessPointSecurity.NONE)
|
|
||||||
this._secureIcon.icon_name = 'network-wireless-encrypted-symbolic';
|
this._secureIcon.icon_name = 'network-wireless-encrypted-symbolic';
|
||||||
this._icons.add_actor(this._secureIcon);
|
this._icons.add_actor(this._secureIcon);
|
||||||
},
|
},
|
||||||
@ -153,18 +130,12 @@ const NMWirelessSectionTitleMenuItem = new Lang.Class({
|
|||||||
Name: 'NMWirelessSectionTitleMenuItem',
|
Name: 'NMWirelessSectionTitleMenuItem',
|
||||||
Extends: PopupMenu.PopupSwitchMenuItem,
|
Extends: PopupMenu.PopupSwitchMenuItem,
|
||||||
|
|
||||||
_init: function(client, property, title, params) {
|
_init: function(client) {
|
||||||
params = params || { };
|
this.parent(_("Wi-Fi"), false, { style_class: 'popup-subtitle-menu-item' });
|
||||||
params.style_class = 'popup-subtitle-menu-item';
|
|
||||||
this.parent(title, false, params);
|
|
||||||
|
|
||||||
this._client = client;
|
this._client = client;
|
||||||
this._property = property + '_enabled';
|
this._client.connect('notify::wireless-enabled', Lang.bind(this, this._propertyChanged));
|
||||||
this._propertyHardware = property + '_hardware_enabled';
|
this._client.connect('notify::wireless-hardware-enabled', Lang.bind(this, this._propertyChanged));
|
||||||
this._setEnabledFunc = property + '_set_enabled';
|
|
||||||
|
|
||||||
this._client.connect('notify::' + property + '-enabled', Lang.bind(this, this._propertyChanged));
|
|
||||||
this._client.connect('notify::' + property + '-hardware-enabled', Lang.bind(this, this._propertyChanged));
|
|
||||||
|
|
||||||
this._propertyChanged();
|
this._propertyChanged();
|
||||||
},
|
},
|
||||||
@ -186,12 +157,12 @@ const NMWirelessSectionTitleMenuItem = new Lang.Class({
|
|||||||
activate: function(event) {
|
activate: function(event) {
|
||||||
this.parent(event);
|
this.parent(event);
|
||||||
|
|
||||||
this._client[this._setEnabledFunc](this._switch.state);
|
this._client.wireless_set_enabled(this._switch.state);
|
||||||
},
|
},
|
||||||
|
|
||||||
_propertyChanged: function() {
|
_propertyChanged: function() {
|
||||||
this._softwareEnabled = this._client[this._property];
|
this._softwareEnabled = this._client.wireless_enabled;
|
||||||
this._hardwareEnabled = this._client[this._propertyHardware];
|
this._hardwareEnabled = this._client.wireless_hardware_enabled;
|
||||||
|
|
||||||
let enabled = this._softwareEnabled && this._hardwareEnabled;
|
let enabled = this._softwareEnabled && this._hardwareEnabled;
|
||||||
this.setToggleState(enabled);
|
this.setToggleState(enabled);
|
||||||
@ -315,7 +286,6 @@ const NMDevice = new Lang.Class({
|
|||||||
|
|
||||||
this._activeConnection = null;
|
this._activeConnection = null;
|
||||||
this._activeConnectionItem = null;
|
this._activeConnectionItem = null;
|
||||||
this._autoConnectionItem = null;
|
|
||||||
this._overflowItem = null;
|
this._overflowItem = null;
|
||||||
|
|
||||||
this.statusItem = new PopupMenu.PopupSwitchMenuItem('', this.connected, { style_class: 'popup-subtitle-menu-item' });
|
this.statusItem = new PopupMenu.PopupSwitchMenuItem('', this.connected, { style_class: 'popup-subtitle-menu-item' });
|
||||||
@ -402,13 +372,9 @@ const NMDevice = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_activateAutomaticConnection: function() {
|
_activateAutomaticConnection: function() {
|
||||||
let connection = this._createAutomaticConnection();
|
let connection = new NetworkManager.Connection();
|
||||||
if (connection) {
|
this._client.add_and_activate_connection(connection, this.device, null, null);
|
||||||
this._client.add_and_activate_connection(connection, this.device, null, null);
|
return true;
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
get connected() {
|
get connected() {
|
||||||
@ -502,11 +468,6 @@ const NMDevice = new Lang.Class({
|
|||||||
this.statusItem.label.text = this.device._description;
|
this.statusItem.label.text = this.device._description;
|
||||||
},
|
},
|
||||||
|
|
||||||
// protected
|
|
||||||
_createAutomaticConnection: function() {
|
|
||||||
throw new TypeError('Invoking pure virtual function NMDevice.createAutomaticConnection');
|
|
||||||
},
|
|
||||||
|
|
||||||
_queueCreateSection: function() {
|
_queueCreateSection: function() {
|
||||||
if (this._deferredWorkId) {
|
if (this._deferredWorkId) {
|
||||||
this._clearSection();
|
this._clearSection();
|
||||||
@ -517,7 +478,6 @@ const NMDevice = new Lang.Class({
|
|||||||
_clearSection: function() {
|
_clearSection: function() {
|
||||||
// Clear everything
|
// Clear everything
|
||||||
this.section.removeAll();
|
this.section.removeAll();
|
||||||
this._autoConnectionItem = null;
|
|
||||||
this._activeConnectionItem = null;
|
this._activeConnectionItem = null;
|
||||||
this._overflowItem = null;
|
this._overflowItem = null;
|
||||||
for (let i = 0; i < this._connections.length; i++) {
|
for (let i = 0; i < this._connections.length; i++) {
|
||||||
@ -556,14 +516,6 @@ const NMDevice = new Lang.Class({
|
|||||||
} else
|
} else
|
||||||
this.section.addMenuItem(obj.item);
|
this.section.addMenuItem(obj.item);
|
||||||
}
|
}
|
||||||
} else if (this._autoConnectionName) {
|
|
||||||
this._autoConnectionItem = new PopupMenu.PopupMenuItem(this._autoConnectionName);
|
|
||||||
this._autoConnectionItem.connect('activate', Lang.bind(this, function() {
|
|
||||||
let connection = this._createAutomaticConnection();
|
|
||||||
if (connection)
|
|
||||||
this._client.add_and_activate_connection(connection, this.device, null, null);
|
|
||||||
}));
|
|
||||||
this.section.addMenuItem(this._autoConnectionItem);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -588,7 +540,7 @@ const NMDevice = new Lang.Class({
|
|||||||
title = _("Connected (private)");
|
title = _("Connected (private)");
|
||||||
}
|
}
|
||||||
this._activeConnectionItem = new PopupMenu.PopupMenuItem(title, { reactive: false });
|
this._activeConnectionItem = new PopupMenu.PopupMenuItem(title, { reactive: false });
|
||||||
this._activeConnectionItem.setShowDot(true);
|
this._activeConnectionItem.setOrnament(PopupMenu.Ornament.DOT);
|
||||||
},
|
},
|
||||||
|
|
||||||
_deviceStateChanged: function(device, newstate, oldstate, reason) {
|
_deviceStateChanged: function(device, newstate, oldstate, reason) {
|
||||||
@ -665,24 +617,10 @@ const NMDeviceWired = new Lang.Class({
|
|||||||
|
|
||||||
_init: function(client, device, connections) {
|
_init: function(client, device, connections) {
|
||||||
device._description = _("Wired");
|
device._description = _("Wired");
|
||||||
this._autoConnectionName = _("Auto Ethernet");
|
|
||||||
this.category = NMConnectionCategory.WIRED;
|
this.category = NMConnectionCategory.WIRED;
|
||||||
|
|
||||||
this.parent(client, device, connections);
|
this.parent(client, device, connections);
|
||||||
},
|
},
|
||||||
|
|
||||||
_createAutomaticConnection: function() {
|
|
||||||
let connection = new NetworkManager.Connection();
|
|
||||||
let uuid = NetworkManager.utils_uuid_generate();
|
|
||||||
connection.add_setting(new NetworkManager.SettingWired());
|
|
||||||
connection.add_setting(new NetworkManager.SettingConnection({
|
|
||||||
uuid: uuid,
|
|
||||||
id: this._autoConnectionName,
|
|
||||||
type: NetworkManager.SETTING_WIRED_SETTING_NAME,
|
|
||||||
autoconnect: true
|
|
||||||
}));
|
|
||||||
return connection;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const NMDeviceModem = new Lang.Class({
|
const NMDeviceModem = new Lang.Class({
|
||||||
@ -723,13 +661,10 @@ const NMDeviceModem = new Lang.Class({
|
|||||||
this._connectionType = NetworkManager.SETTING_GSM_SETTING_NAME;
|
this._connectionType = NetworkManager.SETTING_GSM_SETTING_NAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_wwan) {
|
if (is_wwan)
|
||||||
this.category = NMConnectionCategory.WWAN;
|
this.category = NMConnectionCategory.WWAN;
|
||||||
this._autoConnectionName = _("Auto broadband");
|
else
|
||||||
} else {
|
|
||||||
this.category = NMConnectionCategory.WIRED;
|
this.category = NMConnectionCategory.WIRED;
|
||||||
this._autoConnectionName = _("Auto dial-up");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.mobileDevice) {
|
if (this.mobileDevice) {
|
||||||
this._operatorNameId = this.mobileDevice.connect('notify::operator-name', Lang.bind(this, function() {
|
this._operatorNameId = this.mobileDevice.connect('notify::operator-name', Lang.bind(this, function() {
|
||||||
@ -824,50 +759,20 @@ const NMDeviceBluetooth = new Lang.Class({
|
|||||||
|
|
||||||
_init: function(client, device, connections) {
|
_init: function(client, device, connections) {
|
||||||
device._description = _("Bluetooth");
|
device._description = _("Bluetooth");
|
||||||
this._autoConnectionName = this._makeConnectionName(device);
|
|
||||||
device.connect('notify::name', Lang.bind(this, this._updateAutoConnectionName));
|
|
||||||
|
|
||||||
this.category = NMConnectionCategory.WWAN;
|
this.category = NMConnectionCategory.WWAN;
|
||||||
|
|
||||||
this.parent(client, device, connections);
|
this.parent(client, device, connections);
|
||||||
},
|
},
|
||||||
|
|
||||||
_createAutomaticConnection: function() {
|
|
||||||
let connection = new NetworkManager.Connection;
|
|
||||||
let uuid = NetworkManager.utils_uuid_generate();
|
|
||||||
connection.add_setting(new NetworkManager.SettingBluetooth);
|
|
||||||
connection.add_setting(new NetworkManager.SettingConnection({
|
|
||||||
uuid: uuid,
|
|
||||||
id: this._autoConnectionName,
|
|
||||||
type: NetworkManager.SETTING_BLUETOOTH_SETTING_NAME,
|
|
||||||
autoconnect: false
|
|
||||||
}));
|
|
||||||
return connection;
|
|
||||||
},
|
|
||||||
|
|
||||||
_activateAutomaticConnection: function() {
|
_activateAutomaticConnection: function() {
|
||||||
// FIXME: DUN devices are configured like modems, so
|
// FIXME: DUN devices are configured like modems, so
|
||||||
// we need to spawn the mobile wizard
|
// We need to spawn the mobile wizard
|
||||||
// but the network panel doesn't support bluetooth at the moment
|
// but the network panel doesn't support bluetooth at the moment
|
||||||
// so we just create an empty connection and hope
|
// so we just create an empty connection and hope
|
||||||
// that this phone supports PAN
|
// that this phone supports PAN
|
||||||
|
|
||||||
return this.parent();
|
return this.parent();
|
||||||
},
|
|
||||||
|
|
||||||
_makeConnectionName: function(device) {
|
|
||||||
let name = device.name;
|
|
||||||
if (name)
|
|
||||||
return _("Auto %s").format(name);
|
|
||||||
else
|
|
||||||
return _("Auto bluetooth");
|
|
||||||
},
|
|
||||||
|
|
||||||
_updateAutoConnectionName: function() {
|
|
||||||
this._autoConnectionName = this._makeConnectionName(this.device);
|
|
||||||
|
|
||||||
this._queueCreateSection();
|
|
||||||
this._updateStatusItem();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -903,20 +808,20 @@ const NMDeviceWireless = new Lang.Class({
|
|||||||
}
|
}
|
||||||
|
|
||||||
let pos = this._findNetwork(ap);
|
let pos = this._findNetwork(ap);
|
||||||
let obj;
|
let network;
|
||||||
if (pos != -1) {
|
if (pos != -1) {
|
||||||
obj = this._networks[pos];
|
network = this._networks[pos];
|
||||||
obj.accessPoints.push(ap);
|
network.accessPoints.push(ap);
|
||||||
} else {
|
} else {
|
||||||
obj = { ssid: ap.get_ssid(),
|
network = { ssid: ap.get_ssid(),
|
||||||
mode: ap.mode,
|
mode: ap.mode,
|
||||||
security: this._getApSecurityType(ap),
|
security: this._getApSecurityType(ap),
|
||||||
connections: [ ],
|
connections: [ ],
|
||||||
item: null,
|
item: null,
|
||||||
accessPoints: [ ap ]
|
accessPoints: [ ap ]
|
||||||
};
|
};
|
||||||
obj.ssidText = ssidToLabel(obj.ssid);
|
network.ssidText = ssidToLabel(network.ssid);
|
||||||
this._networks.push(obj);
|
this._networks.push(network);
|
||||||
}
|
}
|
||||||
ap._updateId = ap.connect('notify::strength', Lang.bind(this, this._onApStrengthChanged));
|
ap._updateId = ap.connect('notify::strength', Lang.bind(this, this._onApStrengthChanged));
|
||||||
|
|
||||||
@ -924,8 +829,8 @@ const NMDeviceWireless = new Lang.Class({
|
|||||||
for (let j = 0; j < validConnections.length; j++) {
|
for (let j = 0; j < validConnections.length; j++) {
|
||||||
let connection = validConnections[j];
|
let connection = validConnections[j];
|
||||||
if (ap.connection_valid(connection) &&
|
if (ap.connection_valid(connection) &&
|
||||||
obj.connections.indexOf(connection) == -1) {
|
network.connections.indexOf(connection) == -1) {
|
||||||
obj.connections.push(connection);
|
network.connections.push(connection);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -934,16 +839,7 @@ const NMDeviceWireless = new Lang.Class({
|
|||||||
for (let i = 0; i < this._networks.length; i++)
|
for (let i = 0; i < this._networks.length; i++)
|
||||||
sortAccessPoints(this._networks[i].accessPoints);
|
sortAccessPoints(this._networks[i].accessPoints);
|
||||||
|
|
||||||
if (this.device.active_access_point) {
|
this._activeApChanged();
|
||||||
let networkPos = this._findNetwork(this.device.active_access_point);
|
|
||||||
|
|
||||||
if (networkPos == -1) // the connected access point is invisible
|
|
||||||
this._activeNetwork = null;
|
|
||||||
else
|
|
||||||
this._activeNetwork = this._networks[networkPos];
|
|
||||||
} else {
|
|
||||||
this._activeNetwork = null;
|
|
||||||
}
|
|
||||||
this._networks.sort(this._networkSortFunction);
|
this._networks.sort(this._networkSortFunction);
|
||||||
|
|
||||||
this._apChangedId = device.connect('notify::active-access-point', Lang.bind(this, this._activeApChanged));
|
this._apChangedId = device.connect('notify::active-access-point', Lang.bind(this, this._activeApChanged));
|
||||||
@ -1090,9 +986,9 @@ const NMDeviceWireless = new Lang.Class({
|
|||||||
|
|
||||||
_findExistingNetwork: function(accessPoint) {
|
_findExistingNetwork: function(accessPoint) {
|
||||||
for (let i = 0; i < this._networks.length; i++) {
|
for (let i = 0; i < this._networks.length; i++) {
|
||||||
let apObj = this._networks[i];
|
let network = this._networks[i];
|
||||||
for (let j = 0; j < apObj.accessPoints.length; j++) {
|
for (let j = 0; j < network.accessPoints.length; j++) {
|
||||||
if (apObj.accessPoints[j] == accessPoint)
|
if (network.accessPoints[j] == accessPoint)
|
||||||
return { network: i, ap: j };
|
return { network: i, ap: j };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1140,30 +1036,30 @@ const NMDeviceWireless = new Lang.Class({
|
|||||||
}
|
}
|
||||||
|
|
||||||
let pos = this._findNetwork(accessPoint);
|
let pos = this._findNetwork(accessPoint);
|
||||||
let apObj;
|
let network;
|
||||||
let needsupdate = false;
|
let needsupdate = false;
|
||||||
|
|
||||||
if (pos != -1) {
|
if (pos != -1) {
|
||||||
apObj = this._networks[pos];
|
network = this._networks[pos];
|
||||||
if (apObj.accessPoints.indexOf(accessPoint) != -1) {
|
if (network.accessPoints.indexOf(accessPoint) != -1) {
|
||||||
log('Access point was already seen, not adding again');
|
log('Access point was already seen, not adding again');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Util.insertSorted(apObj.accessPoints, accessPoint, function(one, two) {
|
Util.insertSorted(network.accessPoints, accessPoint, function(one, two) {
|
||||||
return two.strength - one.strength;
|
return two.strength - one.strength;
|
||||||
});
|
});
|
||||||
if (apObj.item)
|
if (network.item)
|
||||||
apObj.item.updateBestAP(apObj.accessPoints[0]);
|
network.item.updateBestAP(network.accessPoints[0]);
|
||||||
} else {
|
} else {
|
||||||
apObj = { ssid: accessPoint.get_ssid(),
|
network = { ssid: accessPoint.get_ssid(),
|
||||||
mode: accessPoint.mode,
|
mode: accessPoint.mode,
|
||||||
security: this._getApSecurityType(accessPoint),
|
security: this._getApSecurityType(accessPoint),
|
||||||
connections: [ ],
|
connections: [ ],
|
||||||
item: null,
|
item: null,
|
||||||
accessPoints: [ accessPoint ]
|
accessPoints: [ accessPoint ]
|
||||||
};
|
};
|
||||||
apObj.ssidText = ssidToLabel(apObj.ssid);
|
network.ssidText = ssidToLabel(network.ssid);
|
||||||
}
|
}
|
||||||
accessPoint._updateId = accessPoint.connect('notify::strength', Lang.bind(this, this._onApStrengthChanged));
|
accessPoint._updateId = accessPoint.connect('notify::strength', Lang.bind(this, this._onApStrengthChanged));
|
||||||
|
|
||||||
@ -1171,14 +1067,14 @@ const NMDeviceWireless = new Lang.Class({
|
|||||||
for (let i = 0; i < this._connections.length; i++) {
|
for (let i = 0; i < this._connections.length; i++) {
|
||||||
let connection = this._connections[i].connection;
|
let connection = this._connections[i].connection;
|
||||||
if (accessPoint.connection_valid(connection) &&
|
if (accessPoint.connection_valid(connection) &&
|
||||||
apObj.connections.indexOf(connection) == -1) {
|
network.connections.indexOf(connection) == -1) {
|
||||||
apObj.connections.push(connection);
|
network.connections.push(connection);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pos != -1)
|
if (pos != -1)
|
||||||
this._networks.splice(pos, 1);
|
this._networks.splice(pos, 1);
|
||||||
let newPos = Util.insertSorted(this._networks, apObj, this._networkSortFunction);
|
let newPos = Util.insertSorted(this._networks, network, this._networkSortFunction);
|
||||||
|
|
||||||
// Queue an update of the UI if we changed the order
|
// Queue an update of the UI if we changed the order
|
||||||
if (newPos != pos)
|
if (newPos != pos)
|
||||||
@ -1198,28 +1094,28 @@ const NMDeviceWireless = new Lang.Class({
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let apObj = this._networks[res.network];
|
let network = this._networks[res.network];
|
||||||
apObj.accessPoints.splice(res.ap, 1);
|
network.accessPoints.splice(res.ap, 1);
|
||||||
|
|
||||||
if (apObj.accessPoints.length == 0) {
|
if (network.accessPoints.length == 0) {
|
||||||
if (this._activeNetwork == apObj)
|
if (this._activeNetwork == network)
|
||||||
this._activeNetwork = null;
|
this._activeNetwork = null;
|
||||||
|
|
||||||
if (apObj.item)
|
if (network.item)
|
||||||
apObj.item.destroy();
|
network.item.destroy();
|
||||||
|
|
||||||
if (this._overflowItem) {
|
if (this._overflowItem) {
|
||||||
if (!apObj.isMore) {
|
if (!network.isMore) {
|
||||||
// we removed an item in the main menu, and we have a more submenu
|
// we removed an item in the main menu, and we have a more submenu
|
||||||
// we need to extract the first item in more and move it to the submenu
|
// we need to extract the first item in more and move it to the submenu
|
||||||
|
|
||||||
let item = this._overflowItem.menu.firstMenuItem;
|
let item = this._overflowItem.menu.firstMenuItem;
|
||||||
if (item && item._apObj) {
|
if (item && item._network) {
|
||||||
item.destroy();
|
item.destroy();
|
||||||
// clear the cycle, and allow the construction of the new item
|
// clear the cycle, and allow the construction of the new item
|
||||||
item._apObj.item = null;
|
item._network.item = null;
|
||||||
|
|
||||||
this._createNetworkItem(item._apObj, NUM_VISIBLE_NETWORKS-1);
|
this._createNetworkItem(item._network, NUM_VISIBLE_NETWORKS-1);
|
||||||
} else {
|
} else {
|
||||||
log('The more... menu was existing and empty! This should not happen');
|
log('The more... menu was existing and empty! This should not happen');
|
||||||
}
|
}
|
||||||
@ -1238,14 +1134,14 @@ const NMDeviceWireless = new Lang.Class({
|
|||||||
let okPrev = true, okNext = true;
|
let okPrev = true, okNext = true;
|
||||||
|
|
||||||
if (res.network > 0)
|
if (res.network > 0)
|
||||||
okPrev = this._networkSortFunction(this._networks[res.network - 1], apObj) >= 0;
|
okPrev = this._networkSortFunction(this._networks[res.network - 1], network) >= 0;
|
||||||
if (res.network < this._networks.length-1)
|
if (res.network < this._networks.length-1)
|
||||||
okNext = this._networkSortFunction(this._networks[res.network + 1], apObj) <= 0;
|
okNext = this._networkSortFunction(this._networks[res.network + 1], network) <= 0;
|
||||||
|
|
||||||
if (!okPrev || !okNext)
|
if (!okPrev || !okNext)
|
||||||
this._queueCreateSection();
|
this._queueCreateSection();
|
||||||
else if (apObj.item)
|
else if (network.item)
|
||||||
apObj.item.updateBestAP(apObj.accessPoints[0]);
|
network.item.updateBestAP(network.accessPoints[0]);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -1284,20 +1180,20 @@ const NMDeviceWireless = new Lang.Class({
|
|||||||
|
|
||||||
let forceupdate = false;
|
let forceupdate = false;
|
||||||
for (let i = 0; i < this._networks.length; i++) {
|
for (let i = 0; i < this._networks.length; i++) {
|
||||||
let apObj = this._networks[i];
|
let network = this._networks[i];
|
||||||
let connections = apObj.connections;
|
let connections = network.connections;
|
||||||
for (let k = 0; k < connections.length; k++) {
|
for (let k = 0; k < connections.length; k++) {
|
||||||
if (connections[k].get_uuid() == connection.get_uuid()) {
|
if (connections[k].get_uuid() == connection.get_uuid()) {
|
||||||
// remove the connection from the access point group
|
// remove the connection from the access point group
|
||||||
connections.splice(k);
|
connections.splice(k, 1);
|
||||||
forceupdate = forceupdate || connections.length == 0;
|
forceupdate = forceupdate || connections.length == 0;
|
||||||
|
|
||||||
if (forceupdate)
|
if (forceupdate)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (apObj.item) {
|
if (network.item) {
|
||||||
if (apObj.item instanceof PopupMenu.PopupSubMenuMenuItem) {
|
if (network.item instanceof PopupMenu.PopupSubMenuMenuItem) {
|
||||||
let items = apObj.item.menu._getMenuItems();
|
let items = network.item.menu._getMenuItems();
|
||||||
if (items.length == 2) {
|
if (items.length == 2) {
|
||||||
// we need to update the connection list to convert this to a normal item
|
// we need to update the connection list to convert this to a normal item
|
||||||
forceupdate = true;
|
forceupdate = true;
|
||||||
@ -1310,8 +1206,8 @@ const NMDeviceWireless = new Lang.Class({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
apObj.item.destroy();
|
network.item.destroy();
|
||||||
apObj.item = null;
|
network.item = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -1337,13 +1233,13 @@ const NMDeviceWireless = new Lang.Class({
|
|||||||
// find an appropriate access point
|
// find an appropriate access point
|
||||||
let forceupdate = false;
|
let forceupdate = false;
|
||||||
for (let i = 0; i < this._networks.length; i++) {
|
for (let i = 0; i < this._networks.length; i++) {
|
||||||
let apObj = this._networks[i];
|
let network = this._networks[i];
|
||||||
|
|
||||||
// Check if connection is valid for any of these access points
|
// Check if connection is valid for any of these access points
|
||||||
for (let k = 0; k < apObj.accessPoints.length; k++) {
|
for (let k = 0; k < network.accessPoints.length; k++) {
|
||||||
let ap = apObj.accessPoints[k];
|
let ap = network.accessPoints[k];
|
||||||
if (ap.connection_valid(connection)) {
|
if (ap.connection_valid(connection)) {
|
||||||
apObj.connections.push(connection);
|
network.connections.push(connection);
|
||||||
// this potentially changes the sorting order
|
// this potentially changes the sorting order
|
||||||
forceupdate = true;
|
forceupdate = true;
|
||||||
break;
|
break;
|
||||||
@ -1364,55 +1260,30 @@ const NMDeviceWireless = new Lang.Class({
|
|||||||
else
|
else
|
||||||
title = _("Connected (private)");
|
title = _("Connected (private)");
|
||||||
|
|
||||||
if (this._activeNetwork)
|
this._activeConnectionItem = new NMNetworkMenuItem(this.device.active_access_point, undefined,
|
||||||
this._activeConnectionItem = new NMNetworkMenuItem(this.device.active_access_point, undefined,
|
{ reactive: false });
|
||||||
{ reactive: false });
|
this._activeConnectionItem.setOrnament(PopupMenu.Ornament.DOT);
|
||||||
else
|
|
||||||
this._activeConnectionItem = new PopupMenu.PopupImageMenuItem(title,
|
|
||||||
'network-wireless-connected-symbolic',
|
|
||||||
{ reactive: false });
|
|
||||||
this._activeConnectionItem.setShowDot(true);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_createAutomaticConnection: function(apObj) {
|
_createNetworkItem: function(network, position) {
|
||||||
let name;
|
if(!network.accessPoints || network.accessPoints.length == 0) {
|
||||||
let ssid = NetworkManager.utils_ssid_to_utf8(apObj.ssid);
|
|
||||||
if (ssid) {
|
|
||||||
/* TRANSLATORS: this the automatic wireless connection name (including the network name) */
|
|
||||||
name = _("Auto %s").format(ssid);
|
|
||||||
} else
|
|
||||||
name = _("Auto wireless");
|
|
||||||
|
|
||||||
let connection = new NetworkManager.Connection();
|
|
||||||
connection.add_setting(new NetworkManager.SettingWireless());
|
|
||||||
connection.add_setting(new NetworkManager.SettingConnection({
|
|
||||||
id: name,
|
|
||||||
autoconnect: true, // NetworkManager will know to ignore this if appropriate
|
|
||||||
uuid: NetworkManager.utils_uuid_generate(),
|
|
||||||
type: NetworkManager.SETTING_WIRELESS_SETTING_NAME
|
|
||||||
}));
|
|
||||||
return connection;
|
|
||||||
},
|
|
||||||
|
|
||||||
_createNetworkItem: function(apObj, position) {
|
|
||||||
if(!apObj.accessPoints || apObj.accessPoints.length == 0) {
|
|
||||||
// this should not happen, but I have no idea why it happens
|
// this should not happen, but I have no idea why it happens
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(apObj.connections.length > 0) {
|
if(network.connections.length > 0) {
|
||||||
if (apObj.connections.length == 1) {
|
if (network.connections.length == 1) {
|
||||||
apObj.item = this._createAPItem(apObj.connections[0], apObj, false);
|
network.item = this._createAPItem(network.connections[0], network, false);
|
||||||
} else {
|
} else {
|
||||||
let title = apObj.ssidText;
|
let title = network.ssidText;
|
||||||
apObj.item = new PopupMenu.PopupSubMenuMenuItem(title);
|
network.item = new PopupMenu.PopupSubMenuMenuItem(title);
|
||||||
for (let i = 0; i < apObj.connections.length; i++)
|
for (let i = 0; i < network.connections.length; i++)
|
||||||
apObj.item.menu.addMenuItem(this._createAPItem(apObj.connections[i], apObj, true));
|
network.item.menu.addMenuItem(this._createAPItem(network.connections[i], network, true));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
apObj.item = new NMNetworkMenuItem(apObj.accessPoints[0]);
|
network.item = new NMNetworkMenuItem(network.accessPoints[0]);
|
||||||
apObj.item.connect('activate', Lang.bind(this, function() {
|
network.item.connect('activate', Lang.bind(this, function() {
|
||||||
let accessPoints = apObj.accessPoints;
|
let accessPoints = network.accessPoints;
|
||||||
if ( (accessPoints[0]._secType == NMAccessPointSecurity.WPA2_ENT)
|
if ( (accessPoints[0]._secType == NMAccessPointSecurity.WPA2_ENT)
|
||||||
|| (accessPoints[0]._secType == NMAccessPointSecurity.WPA_ENT)) {
|
|| (accessPoints[0]._secType == NMAccessPointSecurity.WPA_ENT)) {
|
||||||
// 802.1x-enabled APs require further configuration, so they're
|
// 802.1x-enabled APs require further configuration, so they're
|
||||||
@ -1420,23 +1291,23 @@ const NMDeviceWireless = new Lang.Class({
|
|||||||
Util.spawn(['gnome-control-center', 'network', 'connect-8021x-wifi',
|
Util.spawn(['gnome-control-center', 'network', 'connect-8021x-wifi',
|
||||||
this.device.get_path(), accessPoints[0].dbus_path]);
|
this.device.get_path(), accessPoints[0].dbus_path]);
|
||||||
} else {
|
} else {
|
||||||
let connection = this._createAutomaticConnection(apObj);
|
let connection = new NetworkManager.Connection();
|
||||||
this._client.add_and_activate_connection(connection, this.device, accessPoints[0].dbus_path, null)
|
this._client.add_and_activate_connection(connection, this.device, accessPoints[0].dbus_path, null)
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
apObj.item._apObj = apObj;
|
network.item._network = network;
|
||||||
|
|
||||||
if (position < NUM_VISIBLE_NETWORKS) {
|
if (position < NUM_VISIBLE_NETWORKS) {
|
||||||
apObj.isMore = false;
|
network.isMore = false;
|
||||||
this.section.addMenuItem(apObj.item, position);
|
this.section.addMenuItem(network.item, position);
|
||||||
} else {
|
} else {
|
||||||
if (!this._overflowItem) {
|
if (!this._overflowItem) {
|
||||||
this._overflowItem = new PopupMenu.PopupSubMenuMenuItem(_("More…"));
|
this._overflowItem = new PopupMenu.PopupSubMenuMenuItem(_("More…"));
|
||||||
this.section.addMenuItem(this._overflowItem);
|
this.section.addMenuItem(this._overflowItem);
|
||||||
}
|
}
|
||||||
this._overflowItem.menu.addMenuItem(apObj.item, position - NUM_VISIBLE_NETWORKS);
|
this._overflowItem.menu.addMenuItem(network.item, position - NUM_VISIBLE_NETWORKS);
|
||||||
apObj.isMore = true;
|
network.isMore = true;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -1452,13 +1323,13 @@ const NMDeviceWireless = new Lang.Class({
|
|||||||
let activeOffset = this._activeConnectionItem ? 1 : 0;
|
let activeOffset = this._activeConnectionItem ? 1 : 0;
|
||||||
|
|
||||||
for(let j = 0; j < this._networks.length; j++) {
|
for(let j = 0; j < this._networks.length; j++) {
|
||||||
let apObj = this._networks[j];
|
let network = this._networks[j];
|
||||||
if (apObj == this._activeNetwork) {
|
if (network == this._activeNetwork) {
|
||||||
activeOffset--;
|
activeOffset--;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
this._createNetworkItem(apObj, j + activeOffset);
|
this._createNetworkItem(network, j + activeOffset);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@ -1680,11 +1551,9 @@ const NMApplet = new Lang.Class({
|
|||||||
|
|
||||||
// Virtual device types
|
// Virtual device types
|
||||||
this._vtypes = { };
|
this._vtypes = { };
|
||||||
if (NMGtk) {
|
this._vtypes[NetworkManager.SETTING_VLAN_SETTING_NAME] = NMDeviceVirtual;
|
||||||
this._vtypes[NetworkManager.SETTING_VLAN_SETTING_NAME] = NMDeviceVirtual;
|
this._vtypes[NetworkManager.SETTING_BOND_SETTING_NAME] = NMDeviceVirtual;
|
||||||
this._vtypes[NetworkManager.SETTING_BOND_SETTING_NAME] = NMDeviceVirtual;
|
this._vtypes[NetworkManager.SETTING_BRIDGE_SETTING_NAME] = NMDeviceVirtual;
|
||||||
this._vtypes[NetworkManager.SETTING_BRIDGE_SETTING_NAME] = NMDeviceVirtual;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Connection types
|
// Connection types
|
||||||
this._ctypes = { };
|
this._ctypes = { };
|
||||||
@ -1696,11 +1565,9 @@ const NMApplet = new Lang.Class({
|
|||||||
this._ctypes[NetworkManager.SETTING_CDMA_SETTING_NAME] = NMConnectionCategory.WWAN;
|
this._ctypes[NetworkManager.SETTING_CDMA_SETTING_NAME] = NMConnectionCategory.WWAN;
|
||||||
this._ctypes[NetworkManager.SETTING_GSM_SETTING_NAME] = NMConnectionCategory.WWAN;
|
this._ctypes[NetworkManager.SETTING_GSM_SETTING_NAME] = NMConnectionCategory.WWAN;
|
||||||
this._ctypes[NetworkManager.SETTING_INFINIBAND_SETTING_NAME] = NMConnectionCategory.WIRED;
|
this._ctypes[NetworkManager.SETTING_INFINIBAND_SETTING_NAME] = NMConnectionCategory.WIRED;
|
||||||
if (NMGtk) {
|
this._ctypes[NetworkManager.SETTING_VLAN_SETTING_NAME] = NMConnectionCategory.VIRTUAL;
|
||||||
this._ctypes[NetworkManager.SETTING_VLAN_SETTING_NAME] = NMConnectionCategory.VIRTUAL;
|
this._ctypes[NetworkManager.SETTING_BOND_SETTING_NAME] = NMConnectionCategory.VIRTUAL;
|
||||||
this._ctypes[NetworkManager.SETTING_BOND_SETTING_NAME] = NMConnectionCategory.VIRTUAL;
|
this._ctypes[NetworkManager.SETTING_BRIDGE_SETTING_NAME] = NMConnectionCategory.VIRTUAL;
|
||||||
this._ctypes[NetworkManager.SETTING_BRIDGE_SETTING_NAME] = NMConnectionCategory.VIRTUAL;
|
|
||||||
}
|
|
||||||
this._ctypes[NetworkManager.SETTING_VPN_SETTING_NAME] = NMConnectionCategory.VPN;
|
this._ctypes[NetworkManager.SETTING_VPN_SETTING_NAME] = NMConnectionCategory.VPN;
|
||||||
|
|
||||||
NMClient.Client.new_async(null, Lang.bind(this, this._clientGot));
|
NMClient.Client.new_async(null, Lang.bind(this, this._clientGot));
|
||||||
@ -1768,7 +1635,7 @@ const NMApplet = new Lang.Class({
|
|||||||
this._devices.wireless = {
|
this._devices.wireless = {
|
||||||
section: new PopupMenu.PopupMenuSection(),
|
section: new PopupMenu.PopupMenuSection(),
|
||||||
devices: [ ],
|
devices: [ ],
|
||||||
item: this._makeToggleItem('wireless', _("Wi-Fi"))
|
item: this._makeWirelessToggle()
|
||||||
};
|
};
|
||||||
this._devices.wireless.section.addMenuItem(this._devices.wireless.item);
|
this._devices.wireless.section.addMenuItem(this._devices.wireless.item);
|
||||||
this._devices.wireless.section.actor.hide();
|
this._devices.wireless.section.actor.hide();
|
||||||
@ -1815,14 +1682,14 @@ const NMApplet = new Lang.Class({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_makeToggleItem: function(type, title) {
|
_makeWirelessToggle: function() {
|
||||||
let item = new NMWirelessSectionTitleMenuItem(this._client, type, title);
|
let item = new NMWirelessSectionTitleMenuItem(this._client);
|
||||||
item.connect('enabled-changed', Lang.bind(this, function(item, enabled) {
|
item.connect('enabled-changed', Lang.bind(this, function(item, enabled) {
|
||||||
let devices = this._devices[type].devices;
|
let devices = this._devices.wireless.devices;
|
||||||
devices.forEach(function(dev) {
|
devices.forEach(function(dev) {
|
||||||
dev.setEnabled(enabled);
|
dev.setEnabled(enabled);
|
||||||
});
|
});
|
||||||
this._syncSectionTitle(type);
|
this._syncSectionTitle('wireless');
|
||||||
}));
|
}));
|
||||||
return item;
|
return item;
|
||||||
},
|
},
|
||||||
@ -1900,19 +1767,12 @@ const NMApplet = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_syncDeviceNames: function() {
|
_syncDeviceNames: function() {
|
||||||
if (NMGtk) {
|
let names = NMGtk.utils_disambiguate_device_names(this._nmDevices);
|
||||||
let names = NMGtk.utils_disambiguate_device_names(this._nmDevices);
|
for (let i = 0; i < this._nmDevices.length; i++) {
|
||||||
for (let i = 0; i < this._nmDevices.length; i++) {
|
let device = this._nmDevices[i];
|
||||||
let device = this._nmDevices[i];
|
device._description = names[i];
|
||||||
device._description = names[i];
|
if (device._delegate)
|
||||||
if (device._delegate)
|
|
||||||
device._delegate.syncDescription();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
for (let i = 0; i < this._nmDevices.length; i++) {
|
|
||||||
let device = this._nmDevices[i];
|
|
||||||
device._delegate.syncDescription();
|
device._delegate.syncDescription();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -1948,11 +1808,6 @@ const NMApplet = new Lang.Class({
|
|||||||
wrapper._deviceStateChangedId = wrapper.connect('state-changed', Lang.bind(this, function(dev) {
|
wrapper._deviceStateChangedId = wrapper.connect('state-changed', Lang.bind(this, function(dev) {
|
||||||
this._syncSectionTitle(dev.category);
|
this._syncSectionTitle(dev.category);
|
||||||
}));
|
}));
|
||||||
wrapper._destroyId = wrapper.connect('destroy', function(wrapper) {
|
|
||||||
wrapper.disconnect(wrapper._activationFailedId);
|
|
||||||
wrapper.disconnect(wrapper._deviceStateChangedId);
|
|
||||||
wrapper.disconnect(wrapper._destroyId);
|
|
||||||
});
|
|
||||||
|
|
||||||
let section = this._devices[wrapper.category].section;
|
let section = this._devices[wrapper.category].section;
|
||||||
section.addMenuItem(wrapper.statusItem);
|
section.addMenuItem(wrapper.statusItem);
|
||||||
@ -1984,6 +1839,8 @@ const NMApplet = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_removeDeviceWrapper: function(wrapper) {
|
_removeDeviceWrapper: function(wrapper) {
|
||||||
|
wrapper.disconnect(wrapper._activationFailedId);
|
||||||
|
wrapper.disconnect(wrapper._deviceStateChangedId);
|
||||||
wrapper.destroy();
|
wrapper.destroy();
|
||||||
|
|
||||||
let devices = this._devices[wrapper.category].devices;
|
let devices = this._devices[wrapper.category].devices;
|
||||||
@ -2134,25 +1991,7 @@ const NMApplet = new Lang.Class({
|
|||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
|
|
||||||
_readConnections: function() {
|
_addConnection: function(connection) {
|
||||||
let connections = this._settings.list_connections();
|
|
||||||
for (let i = 0; i < connections.length; i++) {
|
|
||||||
let connection = connections[i];
|
|
||||||
if (this._ignoreConnection(connection))
|
|
||||||
continue;
|
|
||||||
if (connection._updatedId) {
|
|
||||||
// connection was already seen (for example because NetworkManager was restarted)
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
connection._removedId = connection.connect('removed', Lang.bind(this, this._connectionRemoved));
|
|
||||||
connection._updatedId = connection.connect('updated', Lang.bind(this, this._updateConnection));
|
|
||||||
|
|
||||||
this._updateConnection(connection);
|
|
||||||
this._connections.push(connection);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
_newConnection: function(settings, connection) {
|
|
||||||
if (this._ignoreConnection(connection))
|
if (this._ignoreConnection(connection))
|
||||||
return;
|
return;
|
||||||
if (connection._updatedId) {
|
if (connection._updatedId) {
|
||||||
@ -2165,14 +2004,22 @@ const NMApplet = new Lang.Class({
|
|||||||
|
|
||||||
this._updateConnection(connection);
|
this._updateConnection(connection);
|
||||||
this._connections.push(connection);
|
this._connections.push(connection);
|
||||||
|
},
|
||||||
|
|
||||||
|
_readConnections: function() {
|
||||||
|
let connections = this._settings.list_connections();
|
||||||
|
connections.forEach(Lang.bind(this, this._addConnection));
|
||||||
|
},
|
||||||
|
|
||||||
|
_newConnection: function(settings, connection) {
|
||||||
|
this._addConnection(connection);
|
||||||
this._updateIcon();
|
this._updateIcon();
|
||||||
},
|
},
|
||||||
|
|
||||||
_connectionRemoved: function(connection) {
|
_connectionRemoved: function(connection) {
|
||||||
let pos = this._connections.indexOf(connection);
|
let pos = this._connections.indexOf(connection);
|
||||||
if (pos != -1)
|
if (pos != -1)
|
||||||
this._connections.splice(connection);
|
this._connections.splice(connection, 1);
|
||||||
|
|
||||||
let section = connection._section;
|
let section = connection._section;
|
||||||
|
|
||||||
|
@ -91,7 +91,8 @@ const UnlockDialog = new Lang.Class({
|
|||||||
this._promptLoginHint.hide();
|
this._promptLoginHint.hide();
|
||||||
this.contentLayout.add_actor(this._promptLoginHint);
|
this.contentLayout.add_actor(this._promptLoginHint);
|
||||||
|
|
||||||
this._workSpinner = new Panel.AnimatedIcon('process-working.svg', LoginDialog.WORK_SPINNER_ICON_SIZE);
|
let spinnerIcon = global.datadir + '/theme/process-working.svg';
|
||||||
|
this._workSpinner = new Panel.AnimatedIcon(spinnerIcon, LoginDialog.WORK_SPINNER_ICON_SIZE);
|
||||||
this._workSpinner.actor.opacity = 0;
|
this._workSpinner.actor.opacity = 0;
|
||||||
|
|
||||||
this.allowCancel = false;
|
this.allowCancel = false;
|
||||||
|
@ -150,6 +150,14 @@ const ViewSelector = new Lang.Class({
|
|||||||
Shell.KeyBindingMode.NORMAL |
|
Shell.KeyBindingMode.NORMAL |
|
||||||
Shell.KeyBindingMode.OVERVIEW,
|
Shell.KeyBindingMode.OVERVIEW,
|
||||||
Lang.bind(this, this._toggleAppsPage));
|
Lang.bind(this, this._toggleAppsPage));
|
||||||
|
|
||||||
|
Main.wm.addKeybinding('toggle-overview',
|
||||||
|
new Gio.Settings({ schema: SHELL_KEYBINDINGS_SCHEMA }),
|
||||||
|
Meta.KeyBindingFlags.NONE,
|
||||||
|
Shell.KeyBindingMode.NORMAL |
|
||||||
|
Shell.KeyBindingMode.OVERVIEW,
|
||||||
|
Lang.bind(Main.overview, Main.overview.toggle));
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_toggleAppsPage: function() {
|
_toggleAppsPage: function() {
|
||||||
@ -178,6 +186,10 @@ const ViewSelector = new Lang.Class({
|
|||||||
Main.overview.fadeInDesktop();
|
Main.overview.fadeInDesktop();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
setWorkspacesFullGeometry: function(geom) {
|
||||||
|
this._workspacesDisplay.setWorkspacesFullGeometry(geom);
|
||||||
|
},
|
||||||
|
|
||||||
hide: function() {
|
hide: function() {
|
||||||
this._workspacesDisplay.hide();
|
this._workspacesDisplay.hide();
|
||||||
},
|
},
|
||||||
|
@ -172,8 +172,9 @@ const WindowManager = new Lang.Class({
|
|||||||
this.addKeybinding('open-application-menu',
|
this.addKeybinding('open-application-menu',
|
||||||
new Gio.Settings({ schema: SHELL_KEYBINDINGS_SCHEMA }),
|
new Gio.Settings({ schema: SHELL_KEYBINDINGS_SCHEMA }),
|
||||||
Meta.KeyBindingFlags.NONE,
|
Meta.KeyBindingFlags.NONE,
|
||||||
Shell.KeyBindingMode.NORMAL,
|
Shell.KeyBindingMode.NORMAL |
|
||||||
Lang.bind(this, this._openAppMenu));
|
Shell.KeyBindingMode.TOPBAR_POPUP,
|
||||||
|
Lang.bind(this, this._toggleAppMenu));
|
||||||
|
|
||||||
Main.overview.connect('showing', Lang.bind(this, function() {
|
Main.overview.connect('showing', Lang.bind(this, function() {
|
||||||
for (let i = 0; i < this._dimmedWindows.length; i++)
|
for (let i = 0; i < this._dimmedWindows.length; i++)
|
||||||
@ -679,8 +680,8 @@ const WindowManager = new Lang.Class({
|
|||||||
Main.ctrlAltTabManager.popup(backwards, binding.get_name(), binding.get_mask());
|
Main.ctrlAltTabManager.popup(backwards, binding.get_name(), binding.get_mask());
|
||||||
},
|
},
|
||||||
|
|
||||||
_openAppMenu : function(display, screen, window, event, binding) {
|
_toggleAppMenu : function(display, screen, window, event, binding) {
|
||||||
Main.panel.openAppMenu();
|
Main.panel.toggleAppMenu();
|
||||||
},
|
},
|
||||||
|
|
||||||
_showWorkspaceSwitcher : function(display, screen, window, binding) {
|
_showWorkspaceSwitcher : function(display, screen, window, binding) {
|
||||||
|
@ -753,13 +753,6 @@ const LayoutStrategy = new Lang.Class({
|
|||||||
layout.space = space;
|
layout.space = space;
|
||||||
},
|
},
|
||||||
|
|
||||||
_getDistance: function (row, actor) {
|
|
||||||
let dist_x = actor.x - row.x;
|
|
||||||
let dist_y = actor.y - row.y;
|
|
||||||
|
|
||||||
return Math.sqrt(Math.pow(dist_x, 2) + Math.pow(dist_y, 2));
|
|
||||||
},
|
|
||||||
|
|
||||||
computeWindowSlots: function(layout, area) {
|
computeWindowSlots: function(layout, area) {
|
||||||
this._computeRowSizes(layout);
|
this._computeRowSizes(layout);
|
||||||
|
|
||||||
@ -767,28 +760,36 @@ const LayoutStrategy = new Lang.Class({
|
|||||||
|
|
||||||
let slots = [];
|
let slots = [];
|
||||||
|
|
||||||
let y = 0;
|
// Do this in three parts.
|
||||||
|
let height = 0;
|
||||||
for (let i = 0; i < rows.length; i++) {
|
for (let i = 0; i < rows.length; i++) {
|
||||||
let row = rows[i];
|
let row = rows[i];
|
||||||
row.x = area.x + (area.width - row.width) / 2;
|
height += row.height + this._rowSpacing;
|
||||||
row.y = area.y + y;
|
|
||||||
y += row.height + this._rowSpacing;
|
|
||||||
row.windows.sort(Lang.bind(this, function(a, b) {
|
|
||||||
return this._getDistance(row, a.realWindow) - this._getDistance(row, b.realWindow);
|
|
||||||
}));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let height = y - this._rowSpacing;
|
height -= this._rowSpacing;
|
||||||
let baseY = (area.height - height) / 2;
|
|
||||||
|
let y = 0;
|
||||||
|
|
||||||
|
for (let i = 0; i < rows.length; i++) {
|
||||||
|
let row = rows[i];
|
||||||
|
|
||||||
|
// If this window layout row doesn't fit in the actual
|
||||||
|
// geometry, then apply an additional scale to it.
|
||||||
|
row.additionalScale = Math.min(1, area.width / row.width, area.height / height);
|
||||||
|
|
||||||
|
row.x = area.x + (Math.max(area.width - row.width, 0) / 2) * row.additionalScale;
|
||||||
|
row.y = area.y + (y + Math.max(area.height - height, 0) / 2) * row.additionalScale;
|
||||||
|
y += row.height + this._rowSpacing;
|
||||||
|
}
|
||||||
|
|
||||||
for (let i = 0; i < rows.length; i++) {
|
for (let i = 0; i < rows.length; i++) {
|
||||||
let row = rows[i];
|
let row = rows[i];
|
||||||
row.y += baseY;
|
|
||||||
let x = row.x;
|
let x = row.x;
|
||||||
for (let j = 0; j < row.windows.length; j++) {
|
for (let j = 0; j < row.windows.length; j++) {
|
||||||
let window = row.windows[j];
|
let window = row.windows[j];
|
||||||
|
|
||||||
let s = scale * this._computeWindowScale(window);
|
let s = scale * this._computeWindowScale(window) * row.additionalScale;
|
||||||
let cellWidth = window.actor.width * s;
|
let cellWidth = window.actor.width * s;
|
||||||
let cellHeight = window.actor.height * s;
|
let cellHeight = window.actor.height * s;
|
||||||
|
|
||||||
@ -832,6 +833,13 @@ const UnalignedLayoutStrategy = new Lang.Class({
|
|||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_sortRow: function(row) {
|
||||||
|
// Sort windows horizontally to minimize travel distance
|
||||||
|
row.windows.sort(function(a, b) {
|
||||||
|
return a.realWindow.x - b.realWindow.x;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
computeLayout: function(windows, layout) {
|
computeLayout: function(windows, layout) {
|
||||||
let numRows = layout.numRows;
|
let numRows = layout.numRows;
|
||||||
|
|
||||||
@ -862,6 +870,7 @@ const UnalignedLayoutStrategy = new Lang.Class({
|
|||||||
row.windows.push(window);
|
row.windows.push(window);
|
||||||
row.fullWidth += width;
|
row.fullWidth += width;
|
||||||
} else {
|
} else {
|
||||||
|
this._sortRow(row);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -883,6 +892,14 @@ const UnalignedLayoutStrategy = new Lang.Class({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function padArea(area, padding) {
|
||||||
|
return {
|
||||||
|
x: area.x + padding.left,
|
||||||
|
y: area.y + padding.top,
|
||||||
|
width: area.width - padding.left - padding.right,
|
||||||
|
height: area.height - padding.top - padding.bottom,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @metaWorkspace: a #Meta.Workspace, or null
|
* @metaWorkspace: a #Meta.Workspace, or null
|
||||||
@ -894,10 +911,19 @@ const Workspace = new Lang.Class({
|
|||||||
// When dragging a window, we use this slot for reserve space.
|
// When dragging a window, we use this slot for reserve space.
|
||||||
this._reservedSlot = null;
|
this._reservedSlot = null;
|
||||||
this.metaWorkspace = metaWorkspace;
|
this.metaWorkspace = metaWorkspace;
|
||||||
this._x = 0;
|
|
||||||
this._y = 0;
|
// The full geometry is the geometry we should try and position
|
||||||
this._width = 0;
|
// windows for. The actual geometry we allocate may be less than
|
||||||
this._height = 0;
|
// this, like if the workspace switcher is slid out.
|
||||||
|
this._fullGeometry = null;
|
||||||
|
|
||||||
|
// The actual geometry is the geometry we need to arrange windows
|
||||||
|
// in. If this is a smaller area than the full geometry, we'll
|
||||||
|
// do some simple aspect ratio like math to fit the layout calculated
|
||||||
|
// for the full geometry into this area.
|
||||||
|
this._actualGeometry = null;
|
||||||
|
|
||||||
|
this._currentLayout = null;
|
||||||
|
|
||||||
this.monitorIndex = monitorIndex;
|
this.monitorIndex = monitorIndex;
|
||||||
this._monitor = Main.layoutManager.monitors[this.monitorIndex];
|
this._monitor = Main.layoutManager.monitors[this.monitorIndex];
|
||||||
@ -947,23 +973,22 @@ const Workspace = new Lang.Class({
|
|||||||
|
|
||||||
this._positionWindowsFlags = 0;
|
this._positionWindowsFlags = 0;
|
||||||
this._positionWindowsId = 0;
|
this._positionWindowsId = 0;
|
||||||
|
|
||||||
this._currentLayout = null;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
setGeometry: function(x, y, width, height) {
|
setFullGeometry: function(geom) {
|
||||||
this._x = x;
|
this._fullGeometry = geom;
|
||||||
this._y = y;
|
this._recalculateWindowPositions(WindowPositionFlags.NONE);
|
||||||
this._width = width;
|
},
|
||||||
this._height = height;
|
|
||||||
|
setActualGeometry: function(geom) {
|
||||||
|
this._actualGeometry = geom;
|
||||||
|
|
||||||
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this, function() {
|
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this, function() {
|
||||||
this._dropRect.set_position(x, y);
|
this._dropRect.set_position(geom.x, geom.y);
|
||||||
this._dropRect.set_size(width, height);
|
this._dropRect.set_size(geom.width, geom.height);
|
||||||
|
this._updateWindowPositions(WindowPositionFlags.NONE);
|
||||||
return false;
|
return false;
|
||||||
}));
|
}));
|
||||||
|
|
||||||
this.positionWindows(WindowPositionFlags.NONE);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_lookupIndex: function (metaWindow) {
|
_lookupIndex: function (metaWindow) {
|
||||||
@ -991,37 +1016,32 @@ const Workspace = new Lang.Class({
|
|||||||
clone = null;
|
clone = null;
|
||||||
|
|
||||||
this._reservedSlot = clone;
|
this._reservedSlot = clone;
|
||||||
this._currentLayout = null;
|
this._recalculateWindowPositions(WindowPositionFlags.ANIMATE);
|
||||||
this.positionWindows(WindowPositionFlags.ANIMATE);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
_recalculateWindowPositions: function(flags) {
|
||||||
* positionWindows:
|
|
||||||
* @flags:
|
|
||||||
* INITIAL - this is the initial positioning of the windows.
|
|
||||||
* ANIMATE - Indicates that we need animate changing position.
|
|
||||||
*/
|
|
||||||
positionWindows: function(flags) {
|
|
||||||
this._positionWindowsFlags |= flags;
|
this._positionWindowsFlags |= flags;
|
||||||
|
|
||||||
if (this._positionWindowsId > 0)
|
if (this._positionWindowsId > 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
this._positionWindowsId = Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this, function() {
|
this._positionWindowsId = Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this, function() {
|
||||||
this._realPositionWindows(this._positionWindowsFlags);
|
this._realRecalculateWindowPositions(this._positionWindowsFlags);
|
||||||
this._positionWindowsFlags = 0;
|
this._positionWindowsFlags = 0;
|
||||||
this._positionWindowsId = 0;
|
this._positionWindowsId = 0;
|
||||||
return false;
|
return false;
|
||||||
}));
|
}));
|
||||||
},
|
},
|
||||||
|
|
||||||
_realPositionWindows : function(flags) {
|
_realRecalculateWindowPositions: function(flags) {
|
||||||
if (this._repositionWindowsId > 0) {
|
if (this._repositionWindowsId > 0) {
|
||||||
Mainloop.source_remove(this._repositionWindowsId);
|
Mainloop.source_remove(this._repositionWindowsId);
|
||||||
this._repositionWindowsId = 0;
|
this._repositionWindowsId = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
let clones = this._windows.slice();
|
let clones = this._windows.slice();
|
||||||
|
if (clones.length == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
clones.sort(function(a, b) {
|
clones.sort(function(a, b) {
|
||||||
return a.metaWindow.get_stable_sequence() - b.metaWindow.get_stable_sequence();
|
return a.metaWindow.get_stable_sequence() - b.metaWindow.get_stable_sequence();
|
||||||
@ -1030,11 +1050,25 @@ const Workspace = new Lang.Class({
|
|||||||
if (this._reservedSlot)
|
if (this._reservedSlot)
|
||||||
clones.push(this._reservedSlot);
|
clones.push(this._reservedSlot);
|
||||||
|
|
||||||
|
this._currentLayout = this._computeLayout(clones);
|
||||||
|
this._updateWindowPositions(flags);
|
||||||
|
},
|
||||||
|
|
||||||
|
_updateWindowPositions: function(flags) {
|
||||||
|
if (this._currentLayout == null) {
|
||||||
|
this._recalculateWindowPositions(flags);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
let initialPositioning = flags & WindowPositionFlags.INITIAL;
|
let initialPositioning = flags & WindowPositionFlags.INITIAL;
|
||||||
let animate = flags & WindowPositionFlags.ANIMATE;
|
let animate = flags & WindowPositionFlags.ANIMATE;
|
||||||
|
|
||||||
// Start the animations
|
let layout = this._currentLayout;
|
||||||
let slots = this._computeAllWindowSlots(clones);
|
let strategy = layout.strategy;
|
||||||
|
|
||||||
|
let [, , padding] = this._getSpacingAndPadding();
|
||||||
|
let area = padArea(this._actualGeometry, padding);
|
||||||
|
let slots = strategy.computeWindowSlots(layout, area);
|
||||||
|
|
||||||
let currentWorkspace = global.screen.get_active_workspace();
|
let currentWorkspace = global.screen.get_active_workspace();
|
||||||
let isOnCurrentWorkspace = this.metaWorkspace == null || this.metaWorkspace == currentWorkspace;
|
let isOnCurrentWorkspace = this.metaWorkspace == null || this.metaWorkspace == currentWorkspace;
|
||||||
@ -1148,8 +1182,8 @@ const Workspace = new Lang.Class({
|
|||||||
let [x, y, mask] = global.get_pointer();
|
let [x, y, mask] = global.get_pointer();
|
||||||
|
|
||||||
let pointerHasMoved = (this._cursorX != x && this._cursorY != y);
|
let pointerHasMoved = (this._cursorX != x && this._cursorY != y);
|
||||||
let inWorkspace = (this._x < x && x < this._x + this._width &&
|
let inWorkspace = (this._fullGeometry.x < x && x < this._fullGeometry.x + this._fullGeometry.width &&
|
||||||
this._y < y && y < this._y + this._height);
|
this._fullGeometry.y < y && y < this._fullGeometry.y + this._fullGeometry.height);
|
||||||
|
|
||||||
if (pointerHasMoved && inWorkspace) {
|
if (pointerHasMoved && inWorkspace) {
|
||||||
// store current cursor position
|
// store current cursor position
|
||||||
@ -1164,7 +1198,7 @@ const Workspace = new Lang.Class({
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.positionWindows(WindowPositionFlags.ANIMATE);
|
this._recalculateWindowPositions(WindowPositionFlags.ANIMATE);
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -1269,7 +1303,7 @@ const Workspace = new Lang.Class({
|
|||||||
}
|
}
|
||||||
|
|
||||||
this._currentLayout = null;
|
this._currentLayout = null;
|
||||||
this.positionWindows(WindowPositionFlags.ANIMATE);
|
this._recalculateWindowPositions(WindowPositionFlags.ANIMATE);
|
||||||
},
|
},
|
||||||
|
|
||||||
_windowAdded : function(metaWorkspace, metaWin) {
|
_windowAdded : function(metaWorkspace, metaWin) {
|
||||||
@ -1306,13 +1340,8 @@ const Workspace = new Lang.Class({
|
|||||||
|
|
||||||
// Animate the full-screen to Overview transition.
|
// Animate the full-screen to Overview transition.
|
||||||
zoomToOverview : function() {
|
zoomToOverview : function() {
|
||||||
this._currentLayout = null;
|
|
||||||
|
|
||||||
// Position and scale the windows.
|
// Position and scale the windows.
|
||||||
if (Main.overview.animationInProgress)
|
this._recalculateWindowPositions(WindowPositionFlags.ANIMATE | WindowPositionFlags.INITIAL);
|
||||||
this.positionWindows(WindowPositionFlags.ANIMATE | WindowPositionFlags.INITIAL);
|
|
||||||
else
|
|
||||||
this.positionWindows(WindowPositionFlags.INITIAL);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// Animates the return from Overview mode
|
// Animates the return from Overview mode
|
||||||
@ -1436,7 +1465,7 @@ const Workspace = new Lang.Class({
|
|||||||
}));
|
}));
|
||||||
clone.connect('size-changed',
|
clone.connect('size-changed',
|
||||||
Lang.bind(this, function() {
|
Lang.bind(this, function() {
|
||||||
this.positionWindows(0);
|
this._recalculateWindowPositions(WindowPositionFlags.NONE);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
this.actor.add_actor(clone.actor);
|
this.actor.add_actor(clone.actor);
|
||||||
@ -1485,12 +1514,14 @@ const Workspace = new Lang.Class({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_computeLayout: function(windows, area, rowSpacing, columnSpacing) {
|
_getBestLayout: function(windows, area, rowSpacing, columnSpacing) {
|
||||||
// We look for the largest scale that allows us to fit the
|
// We look for the largest scale that allows us to fit the
|
||||||
// largest row/tallest column on the workspace.
|
// largest row/tallest column on the workspace.
|
||||||
|
|
||||||
let lastLayout = {};
|
let lastLayout = {};
|
||||||
|
|
||||||
|
let strategy = new UnalignedLayoutStrategy(this._monitor, rowSpacing, columnSpacing);
|
||||||
|
|
||||||
for (let numRows = 1; ; numRows++) {
|
for (let numRows = 1; ; numRows++) {
|
||||||
let numColumns = Math.ceil(windows.length / numRows);
|
let numColumns = Math.ceil(windows.length / numRows);
|
||||||
|
|
||||||
@ -1500,8 +1531,6 @@ const Workspace = new Lang.Class({
|
|||||||
if (numColumns == lastLayout.numColumns)
|
if (numColumns == lastLayout.numColumns)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
let strategy = new UnalignedLayoutStrategy(this._monitor, rowSpacing, columnSpacing);
|
|
||||||
|
|
||||||
let layout = { area: area, strategy: strategy, numRows: numRows, numColumns: numColumns };
|
let layout = { area: area, strategy: strategy, numRows: numRows, numColumns: numColumns };
|
||||||
strategy.computeLayout(windows, layout);
|
strategy.computeLayout(windows, layout);
|
||||||
strategy.computeScaleAndSpace(layout);
|
strategy.computeScaleAndSpace(layout);
|
||||||
@ -1515,18 +1544,7 @@ const Workspace = new Lang.Class({
|
|||||||
return lastLayout;
|
return lastLayout;
|
||||||
},
|
},
|
||||||
|
|
||||||
_rectEqual: function(one, two) {
|
_getSpacingAndPadding: function() {
|
||||||
if (one == two)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
return (one.x == two.x &&
|
|
||||||
one.y == two.y &&
|
|
||||||
one.width == two.width &&
|
|
||||||
one.height == two.height);
|
|
||||||
},
|
|
||||||
|
|
||||||
_computeAllWindowSlots: function(windows) {
|
|
||||||
let totalWindows = windows.length;
|
|
||||||
let node = this.actor.get_theme_node();
|
let node = this.actor.get_theme_node();
|
||||||
|
|
||||||
// Window grid spacing
|
// Window grid spacing
|
||||||
@ -1539,21 +1557,14 @@ const Workspace = new Lang.Class({
|
|||||||
right: node.get_padding(St.Side.RIGHT),
|
right: node.get_padding(St.Side.RIGHT),
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!totalWindows)
|
|
||||||
return [];
|
|
||||||
|
|
||||||
let closeButtonHeight, captionHeight;
|
let closeButtonHeight, captionHeight;
|
||||||
let leftBorder, rightBorder;
|
let leftBorder, rightBorder;
|
||||||
if (this._windowOverlays.length) {
|
|
||||||
// All of the overlays have the same chrome sizes,
|
// All of the overlays have the same chrome sizes,
|
||||||
// so just pick the first one.
|
// so just pick the first one.
|
||||||
let overlay = this._windowOverlays[0];
|
let overlay = this._windowOverlays[0];
|
||||||
[closeButtonHeight, captionHeight] = overlay.chromeHeights();
|
[closeButtonHeight, captionHeight] = overlay.chromeHeights();
|
||||||
[leftBorder, rightBorder] = overlay.chromeWidths();
|
[leftBorder, rightBorder] = overlay.chromeWidths();
|
||||||
} else {
|
|
||||||
[closeButtonHeight, captionHeight] = [0, 0];
|
|
||||||
[leftBorder, rightBorder] = [0, 0];
|
|
||||||
}
|
|
||||||
|
|
||||||
rowSpacing += captionHeight;
|
rowSpacing += captionHeight;
|
||||||
columnSpacing += (rightBorder + leftBorder) / 2;
|
columnSpacing += (rightBorder + leftBorder) / 2;
|
||||||
@ -1562,25 +1573,13 @@ const Workspace = new Lang.Class({
|
|||||||
padding.left += leftBorder;
|
padding.left += leftBorder;
|
||||||
padding.right += rightBorder;
|
padding.right += rightBorder;
|
||||||
|
|
||||||
let area = {
|
return [rowSpacing, columnSpacing, padding];
|
||||||
x: this._x + padding.left,
|
},
|
||||||
y: this._y + padding.top,
|
|
||||||
width: this._width - padding.left - padding.right,
|
|
||||||
height: this._height - padding.top - padding.bottom,
|
|
||||||
};
|
|
||||||
|
|
||||||
if (!this._currentLayout)
|
_computeLayout: function(windows) {
|
||||||
this._currentLayout = this._computeLayout(windows, area, rowSpacing, columnSpacing);
|
let [rowSpacing, columnSpacing, padding] = this._getSpacingAndPadding();
|
||||||
|
let area = padArea(this._fullGeometry, padding);
|
||||||
let layout = this._currentLayout;
|
return this._getBestLayout(windows, area, rowSpacing, columnSpacing);
|
||||||
let strategy = layout.strategy;
|
|
||||||
|
|
||||||
if (!this._rectEqual(area, layout.area)) {
|
|
||||||
layout.area = area;
|
|
||||||
strategy.computeScaleAndSpace(layout);
|
|
||||||
}
|
|
||||||
|
|
||||||
return strategy.computeWindowSlots(layout, area);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_onCloneSelected : function (clone, time) {
|
_onCloneSelected : function (clone, time) {
|
||||||
|
@ -23,6 +23,18 @@ const MAX_WORKSPACES = 16;
|
|||||||
|
|
||||||
const OVERRIDE_SCHEMA = 'org.gnome.shell.overrides';
|
const OVERRIDE_SCHEMA = 'org.gnome.shell.overrides';
|
||||||
|
|
||||||
|
function rectEqual(one, two) {
|
||||||
|
if (one == two)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if (!one || !two)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return (one.x == two.x &&
|
||||||
|
one.y == two.y &&
|
||||||
|
one.width == two.width &&
|
||||||
|
one.height == two.height);
|
||||||
|
}
|
||||||
|
|
||||||
const WorkspacesView = new Lang.Class({
|
const WorkspacesView = new Lang.Class({
|
||||||
Name: 'WorkspacesView',
|
Name: 'WorkspacesView',
|
||||||
@ -43,10 +55,9 @@ const WorkspacesView = new Lang.Class({
|
|||||||
this._updateWorkspaceActors(false);
|
this._updateWorkspaceActors(false);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
this._width = 0;
|
this._fullGeometry = null;
|
||||||
this._height = 0;
|
this._actualGeometry = null;
|
||||||
this._x = 0;
|
|
||||||
this._y = 0;
|
|
||||||
this._spacing = 0;
|
this._spacing = 0;
|
||||||
this._animating = false; // tweening
|
this._animating = false; // tweening
|
||||||
this._scrolling = false; // swipe-scrolling
|
this._scrolling = false; // swipe-scrolling
|
||||||
@ -85,8 +96,8 @@ const WorkspacesView = new Lang.Class({
|
|||||||
this._overviewShownId =
|
this._overviewShownId =
|
||||||
Main.overview.connect('shown',
|
Main.overview.connect('shown',
|
||||||
Lang.bind(this, function() {
|
Lang.bind(this, function() {
|
||||||
this.actor.set_clip(this._x, this._y,
|
this.actor.set_clip(this._fullGeometry.x, this._fullGeometry.y,
|
||||||
this._width, this._height);
|
this._fullGeometry.width, this._fullGeometry.height);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
this.scrollAdjustment = new St.Adjustment({ value: activeWorkspaceIndex,
|
this.scrollAdjustment = new St.Adjustment({ value: activeWorkspaceIndex,
|
||||||
@ -124,10 +135,8 @@ const WorkspacesView = new Lang.Class({
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
let ws = new Workspace.Workspace(null, i);
|
let ws = new Workspace.Workspace(null, i);
|
||||||
ws.setGeometry(monitors[i].x,
|
ws.setFullGeometry(monitors[i]);
|
||||||
monitors[i].y,
|
ws.setActualGeometry(monitors[i]);
|
||||||
monitors[i].width,
|
|
||||||
monitors[i].height);
|
|
||||||
global.overlay_group.add_actor(ws.actor);
|
global.overlay_group.add_actor(ws.actor);
|
||||||
this._extraWorkspaces.push(ws);
|
this._extraWorkspaces.push(ws);
|
||||||
}
|
}
|
||||||
@ -139,18 +148,24 @@ const WorkspacesView = new Lang.Class({
|
|||||||
this._extraWorkspaces = [];
|
this._extraWorkspaces = [];
|
||||||
},
|
},
|
||||||
|
|
||||||
setGeometry: function(x, y, width, height) {
|
setFullGeometry: function(geom) {
|
||||||
if (this._x == x && this._y == y &&
|
if (rectEqual(this._fullGeometry, geom))
|
||||||
this._width == width && this._height == height)
|
return;
|
||||||
return;
|
|
||||||
|
|
||||||
this._width = width;
|
this._fullGeometry = geom;
|
||||||
this._height = height;
|
|
||||||
this._x = x;
|
|
||||||
this._y = y;
|
|
||||||
|
|
||||||
for (let i = 0; i < this._workspaces.length; i++)
|
for (let i = 0; i < this._workspaces.length; i++)
|
||||||
this._workspaces[i].setGeometry(x, y, width, height);
|
this._workspaces[i].setFullGeometry(geom);
|
||||||
|
},
|
||||||
|
|
||||||
|
setActualGeometry: function(geom) {
|
||||||
|
if (rectEqual(this._actualGeometry, geom))
|
||||||
|
return;
|
||||||
|
|
||||||
|
this._actualGeometry = geom;
|
||||||
|
|
||||||
|
for (let i = 0; i < this._workspaces.length; i++)
|
||||||
|
this._workspaces[i].setActualGeometry(geom);
|
||||||
},
|
},
|
||||||
|
|
||||||
_lookupWorkspaceForMetaWindow: function (metaWindow) {
|
_lookupWorkspaceForMetaWindow: function (metaWindow) {
|
||||||
@ -210,7 +225,7 @@ const WorkspacesView = new Lang.Class({
|
|||||||
|
|
||||||
Tweener.removeTweens(workspace.actor);
|
Tweener.removeTweens(workspace.actor);
|
||||||
|
|
||||||
let y = (w - active) * (this._height + this._spacing);
|
let y = (w - active) * (this._fullGeometry.height + this._spacing);
|
||||||
|
|
||||||
if (showAnimation) {
|
if (showAnimation) {
|
||||||
let params = { y: y,
|
let params = { y: y,
|
||||||
@ -281,8 +296,9 @@ const WorkspacesView = new Lang.Class({
|
|||||||
|
|
||||||
if (newNumWorkspaces > oldNumWorkspaces) {
|
if (newNumWorkspaces > oldNumWorkspaces) {
|
||||||
for (let w = oldNumWorkspaces; w < newNumWorkspaces; w++) {
|
for (let w = oldNumWorkspaces; w < newNumWorkspaces; w++) {
|
||||||
this._workspaces[w].setGeometry(this._x, this._y,
|
this._workspaces[w].setFullGeometry(this._fullGeometry);
|
||||||
this._width, this._height);
|
if (this._actualGeometry)
|
||||||
|
this._workspaces[w].setActualGeometry(this._actualGeometry);
|
||||||
this.actor.add_actor(this._workspaces[w].actor);
|
this.actor.add_actor(this._workspaces[w].actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -430,7 +446,7 @@ const WorkspacesDisplay = new Lang.Class({
|
|||||||
|
|
||||||
_init: function() {
|
_init: function() {
|
||||||
this.actor = new St.Widget({ clip_to_allocation: true });
|
this.actor = new St.Widget({ clip_to_allocation: true });
|
||||||
this.actor.connect('notify::allocation', Lang.bind(this, this._updateWorkspacesGeometry));
|
this.actor.connect('notify::allocation', Lang.bind(this, this._updateWorkspacesActualGeometry));
|
||||||
this.actor.connect('parent-set', Lang.bind(this, this._parentSet));
|
this.actor.connect('parent-set', Lang.bind(this, this._parentSet));
|
||||||
|
|
||||||
let clickAction = new Clutter.ClickAction()
|
let clickAction = new Clutter.ClickAction()
|
||||||
@ -484,6 +500,8 @@ const WorkspacesDisplay = new Lang.Class({
|
|||||||
|
|
||||||
this._notifyOpacityId = 0;
|
this._notifyOpacityId = 0;
|
||||||
this._scrollEventId = 0;
|
this._scrollEventId = 0;
|
||||||
|
|
||||||
|
this._fullGeometry = null;
|
||||||
},
|
},
|
||||||
|
|
||||||
_onPan: function(action) {
|
_onPan: function(action) {
|
||||||
@ -572,7 +590,8 @@ const WorkspacesDisplay = new Lang.Class({
|
|||||||
this._workspacesViews.push(view);
|
this._workspacesViews.push(view);
|
||||||
}
|
}
|
||||||
|
|
||||||
this._updateWorkspacesGeometry();
|
this._updateWorkspacesFullGeometry();
|
||||||
|
this._updateWorkspacesActualGeometry();
|
||||||
|
|
||||||
for (let i = 0; i < this._workspacesViews.length; i++)
|
for (let i = 0; i < this._workspacesViews.length; i++)
|
||||||
global.overlay_group.add_actor(this._workspacesViews[i].actor);
|
global.overlay_group.add_actor(this._workspacesViews[i].actor);
|
||||||
@ -632,31 +651,48 @@ const WorkspacesDisplay = new Lang.Class({
|
|||||||
}));
|
}));
|
||||||
},
|
},
|
||||||
|
|
||||||
_updateWorkspacesGeometry: function() {
|
// This geometry should always be the fullest geometry
|
||||||
|
// the workspaces switcher can ever be allocated, as if
|
||||||
|
// the sliding controls were never slid in at all.
|
||||||
|
setWorkspacesFullGeometry: function(geom) {
|
||||||
|
this._fullGeometry = geom;
|
||||||
|
this._updateWorkspacesFullGeometry();
|
||||||
|
},
|
||||||
|
|
||||||
|
_updateWorkspacesFullGeometry: function() {
|
||||||
if (!this._workspacesViews.length)
|
if (!this._workspacesViews.length)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
let fullWidth = this.actor.allocation.x2 - this.actor.allocation.x1;
|
|
||||||
let fullHeight = this.actor.allocation.y2 - this.actor.allocation.y1;
|
|
||||||
|
|
||||||
let width = fullWidth;
|
|
||||||
let height = fullHeight;
|
|
||||||
|
|
||||||
let [x, y] = this.actor.get_transformed_position();
|
|
||||||
|
|
||||||
let rtl = (Clutter.get_default_text_direction () == Clutter.TextDirection.RTL);
|
|
||||||
|
|
||||||
let monitors = Main.layoutManager.monitors;
|
let monitors = Main.layoutManager.monitors;
|
||||||
let m = 0;
|
let m = 0;
|
||||||
for (let i = 0; i < monitors.length; i++) {
|
for (let i = 0; i < monitors.length; i++) {
|
||||||
if (i == this._primaryIndex) {
|
if (i == this._primaryIndex) {
|
||||||
this._workspacesViews[m].setGeometry(x, y, width, height);
|
this._workspacesViews[m].setFullGeometry(this._fullGeometry);
|
||||||
m++;
|
m++;
|
||||||
} else if (!this._workspacesOnlyOnPrimary) {
|
} else if (!this._workspacesOnlyOnPrimary) {
|
||||||
this._workspacesViews[m].setGeometry(monitors[i].x,
|
this._workspacesViews[m].setFullGeometry(monitors[i]);
|
||||||
monitors[i].y,
|
m++;
|
||||||
monitors[i].width,
|
}
|
||||||
monitors[i].height);
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
_updateWorkspacesActualGeometry: function() {
|
||||||
|
if (!this._workspacesViews.length)
|
||||||
|
return;
|
||||||
|
|
||||||
|
let [x, y] = this.actor.get_transformed_position();
|
||||||
|
let width = this.actor.allocation.x2 - this.actor.allocation.x1;
|
||||||
|
let height = this.actor.allocation.y2 - this.actor.allocation.y1;
|
||||||
|
let geometry = { x: x, y: y, width: width, height: height };
|
||||||
|
|
||||||
|
let monitors = Main.layoutManager.monitors;
|
||||||
|
let m = 0;
|
||||||
|
for (let i = 0; i < monitors.length; i++) {
|
||||||
|
if (i == this._primaryIndex) {
|
||||||
|
this._workspacesViews[m].setActualGeometry(geometry);
|
||||||
|
m++;
|
||||||
|
} else if (!this._workspacesOnlyOnPrimary) {
|
||||||
|
this._workspacesViews[m].setActualGeometry(monitors[i]);
|
||||||
m++;
|
m++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,6 +28,7 @@ gu
|
|||||||
he
|
he
|
||||||
hi
|
hi
|
||||||
hu
|
hu
|
||||||
|
ia
|
||||||
id
|
id
|
||||||
it
|
it
|
||||||
ja
|
ja
|
||||||
|
@ -55,6 +55,7 @@ js/ui/viewSelector.js
|
|||||||
js/ui/wanda.js
|
js/ui/wanda.js
|
||||||
js/ui/windowAttentionHandler.js
|
js/ui/windowAttentionHandler.js
|
||||||
src/calendar-server/evolution-calendar.desktop.in.in
|
src/calendar-server/evolution-calendar.desktop.in.in
|
||||||
|
# Please do not remove this file from POTFILES.in. Run "git submodule init && git submodule update" to get it.
|
||||||
src/gvc/gvc-mixer-control.c
|
src/gvc/gvc-mixer-control.c
|
||||||
src/main.c
|
src/main.c
|
||||||
src/shell-app.c
|
src/shell-app.c
|
||||||
|
59
po/be.po
59
po/be.po
@ -5,7 +5,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: gnome-shell.master\n"
|
"Project-Id-Version: gnome-shell.master\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||||
"shell&keywords=I18N+L10N&component=general\n"
|
"shell&keywords=I18N+L10N&component=general\n"
|
||||||
"POT-Creation-Date: 2013-03-23 11:49+0000\n"
|
"POT-Creation-Date: 2013-03-31 01:48+0000\n"
|
||||||
"PO-Revision-Date: 2012-10-16 12:05+0300\n"
|
"PO-Revision-Date: 2012-10-16 12:05+0300\n"
|
||||||
"Last-Translator: Kasia Bondarava <kasia.bondarava@gmail.com>\n"
|
"Last-Translator: Kasia Bondarava <kasia.bondarava@gmail.com>\n"
|
||||||
"Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n"
|
"Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n"
|
||||||
@ -131,8 +131,8 @@ msgid ""
|
|||||||
"Each category name in this list will be represented as folder in the "
|
"Each category name in this list will be represented as folder in the "
|
||||||
"application view, rather than being displayed inline in the main view."
|
"application view, rather than being displayed inline in the main view."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Кожная катэгорыя ў спісе будзе выяўлена як папка ў рэжыме праграм, "
|
"Кожная катэгорыя ў спісе будзе выяўлена як папка ў рэжыме праграм, а не "
|
||||||
"а не ўкарэнена ў галоўны від акна."
|
"ўкарэнена ў галоўны від акна."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:11
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:11
|
||||||
msgid "History for command (Alt-F2) dialog"
|
msgid "History for command (Alt-F2) dialog"
|
||||||
@ -168,8 +168,8 @@ msgid ""
|
|||||||
"This key overrides the automatic hiding of the 'Log out' menuitem in single-"
|
"This key overrides the automatic hiding of the 'Log out' menuitem in single-"
|
||||||
"user, single-session situations."
|
"user, single-session situations."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Гэты ключ падмяняе аўтаматычнае хаванне элемента меню \"Выйсці з сеанса\" "
|
"Гэты ключ падмяняе аўтаматычнае хаванне элемента меню \"Выйсці з сеанса\" ў "
|
||||||
"ў выпадку аднаго карыстальніка з адным сеансам."
|
"выпадку аднаго карыстальніка з адным сеансам."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -314,9 +314,9 @@ msgid ""
|
|||||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||||
"only' (shows only the application icon) or 'both'."
|
"only' (shows only the application icon) or 'both'."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Настройка паказу вокнаў у пераключальніку. Магчымыя значэнні: \"thumbnail-only\" "
|
"Настройка паказу вокнаў у пераключальніку. Магчымыя значэнні: \"thumbnail-"
|
||||||
"(паказваць мініяцюры вокнаў), \"app-icon-only\" (паказваць толькі значкі праграм) "
|
"only\" (паказваць мініяцюры вокнаў), \"app-icon-only\" (паказваць толькі "
|
||||||
"і \"both\" (адразу ўсё)."
|
"значкі праграм) і \"both\" (адразу ўсё)."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||||
msgid "Attach modal dialog to the parent window"
|
msgid "Attach modal dialog to the parent window"
|
||||||
@ -325,8 +325,7 @@ msgstr "Чапляць мадальныя дыялогавыя акенцы да
|
|||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||||
msgid ""
|
msgid ""
|
||||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||||
msgstr ""
|
msgstr "Гэты ключ падмяняе ключ у org.gnome.mutter пры запуску Абалонкі GNOME."
|
||||||
"Гэты ключ падмяняе ключ у org.gnome.mutter пры запуску Абалонкі GNOME."
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
||||||
msgid "Arrangement of buttons on the titlebar"
|
msgid "Arrangement of buttons on the titlebar"
|
||||||
@ -337,7 +336,8 @@ msgid ""
|
|||||||
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
||||||
"GNOME Shell."
|
"GNOME Shell."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Гэты ключ падмяняе ключ у org.gnome.desktop.wm.preferences пры запуску Абалонкі GNOME."
|
"Гэты ключ падмяняе ключ у org.gnome.desktop.wm.preferences пры запуску "
|
||||||
|
"Абалонкі GNOME."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:46
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:46
|
||||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||||
@ -508,7 +508,7 @@ msgctxt "event list time"
|
|||||||
msgid "%H\\u2236%M"
|
msgid "%H\\u2236%M"
|
||||||
msgstr "%H\\u2236%M"
|
msgstr "%H\\u2236%M"
|
||||||
|
|
||||||
#. Transators: Shown in calendar event list, if 12h format,
|
#. Translators: Shown in calendar event list, if 12h format,
|
||||||
#. \u2236 is a ratio character, similar to : and \u2009 is
|
#. \u2236 is a ratio character, similar to : and \u2009 is
|
||||||
#. a thin space
|
#. a thin space
|
||||||
#: ../js/ui/calendar.js:77
|
#: ../js/ui/calendar.js:77
|
||||||
@ -1179,7 +1179,9 @@ msgstr "Паказваць памылкі"
|
|||||||
msgid "Enabled"
|
msgid "Enabled"
|
||||||
msgstr "Уключана"
|
msgstr "Уключана"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:769
|
#. translators:
|
||||||
|
#. * The device has been disabled
|
||||||
|
#: ../js/ui/lookingGlass.js:769 ../src/gvc/gvc-mixer-control.c:1830
|
||||||
msgid "Disabled"
|
msgid "Disabled"
|
||||||
msgstr "Выключана"
|
msgstr "Выключана"
|
||||||
|
|
||||||
@ -1309,7 +1311,7 @@ msgstr[2] "%d новых апавяшчэнняў"
|
|||||||
msgid "Lock"
|
msgid "Lock"
|
||||||
msgstr "Заблакіраваць"
|
msgstr "Заблакіраваць"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:637
|
#: ../js/ui/screenShield.js:640
|
||||||
msgid "GNOME needs to lock the screen"
|
msgid "GNOME needs to lock the screen"
|
||||||
msgstr "GNOME патрабуе блакіравання экрана"
|
msgstr "GNOME патрабуе блакіравання экрана"
|
||||||
|
|
||||||
@ -1320,11 +1322,11 @@ msgstr "GNOME патрабуе блакіравання экрана"
|
|||||||
#.
|
#.
|
||||||
#. XXX: another option is to kick the user into the gdm login
|
#. XXX: another option is to kick the user into the gdm login
|
||||||
#. screen, where we're not affected by grabs
|
#. screen, where we're not affected by grabs
|
||||||
#: ../js/ui/screenShield.js:758 ../js/ui/screenShield.js:1194
|
#: ../js/ui/screenShield.js:761 ../js/ui/screenShield.js:1197
|
||||||
msgid "Unable to lock"
|
msgid "Unable to lock"
|
||||||
msgstr "Не ўдалося заблакіраваць"
|
msgstr "Не ўдалося заблакіраваць"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:759 ../js/ui/screenShield.js:1195
|
#: ../js/ui/screenShield.js:762 ../js/ui/screenShield.js:1198
|
||||||
msgid "Lock was blocked by an application"
|
msgid "Lock was blocked by an application"
|
||||||
msgstr "Блакіраванне стрымана праграмай"
|
msgstr "Блакіраванне стрымана праграмай"
|
||||||
|
|
||||||
@ -1881,6 +1883,30 @@ msgstr "\"%s\" гатова"
|
|||||||
msgid "Evolution Calendar"
|
msgid "Evolution Calendar"
|
||||||
msgstr "Каляндар Evolution"
|
msgstr "Каляндар Evolution"
|
||||||
|
|
||||||
|
#. translators:
|
||||||
|
#. * The number of sound outputs on a particular device
|
||||||
|
#: ../src/gvc/gvc-mixer-control.c:1837
|
||||||
|
#, c-format
|
||||||
|
msgid "%u Output"
|
||||||
|
msgid_plural "%u Outputs"
|
||||||
|
msgstr[0] "%u выхад"
|
||||||
|
msgstr[1] "%u выхады"
|
||||||
|
msgstr[2] "%u выхадаў"
|
||||||
|
|
||||||
|
#. translators:
|
||||||
|
#. * The number of sound inputs on a particular device
|
||||||
|
#: ../src/gvc/gvc-mixer-control.c:1847
|
||||||
|
#, c-format
|
||||||
|
msgid "%u Input"
|
||||||
|
msgid_plural "%u Inputs"
|
||||||
|
msgstr[0] "%u уваход"
|
||||||
|
msgstr[1] "%u уваходы"
|
||||||
|
msgstr[2] "%u уваходаў"
|
||||||
|
|
||||||
|
#: ../src/gvc/gvc-mixer-control.c:2371
|
||||||
|
msgid "System Sounds"
|
||||||
|
msgstr "Сістэмныя гукі"
|
||||||
|
|
||||||
#: ../src/main.c:347
|
#: ../src/main.c:347
|
||||||
msgid "Print version"
|
msgid "Print version"
|
||||||
msgstr "Вывесці нумар версіі праграмы"
|
msgstr "Вывесці нумар версіі праграмы"
|
||||||
@ -1913,4 +1939,3 @@ msgstr "Пароль не можа быць пустым"
|
|||||||
#: ../src/shell-polkit-authentication-agent.c:343
|
#: ../src/shell-polkit-authentication-agent.c:343
|
||||||
msgid "Authentication dialog was dismissed by the user"
|
msgid "Authentication dialog was dismissed by the user"
|
||||||
msgstr "Карыстальнік праігнараваў дыялогавае акенца ідэнтыфікацыі"
|
msgstr "Карыстальнік праігнараваў дыялогавае акенца ідэнтыфікацыі"
|
||||||
|
|
||||||
|
312
po/cs.po
312
po/cs.po
@ -5,23 +5,23 @@
|
|||||||
# Andre Klapper <ak-47@gmx.net>, 2009.
|
# Andre Klapper <ak-47@gmx.net>, 2009.
|
||||||
# Petr Kovar <pknbe@volny.cz>, 2009, 2010, 2011, 2012.
|
# Petr Kovar <pknbe@volny.cz>, 2009, 2010, 2011, 2012.
|
||||||
# Adam Matoušek <adydas95@gmail.com>, 2012, 2013.
|
# Adam Matoušek <adydas95@gmail.com>, 2012, 2013.
|
||||||
# Marek Černocký <marek@manet.cz>, 2012.
|
# Marek Černocký <marek@manet.cz>, 2012, 2013.
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-shell\n"
|
"Project-Id-Version: gnome-shell\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||||
"shell&keywords=I18N+L10N&component=general\n"
|
"shell&keywords=I18N+L10N&component=general\n"
|
||||||
"POT-Creation-Date: 2013-03-04 08:38+0000\n"
|
"POT-Creation-Date: 2013-04-26 16:24+0000\n"
|
||||||
"PO-Revision-Date: 2013-03-08 19:47+0100\n"
|
"PO-Revision-Date: 2013-04-26 19:18+0200\n"
|
||||||
"Last-Translator: Adam Matoušek <adamatousek@gmail.com>\n"
|
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
|
||||||
"Language-Team: Czech <gnome-cs-list@gnome.org>\n"
|
"Language-Team: Czech <gnome-cs-list@gnome.org>\n"
|
||||||
"Language: cs\n"
|
"Language: cs\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||||
"X-Generator: Poedit 1.5.4\n"
|
"X-Generator: Gtranslator 2.91.6\n"
|
||||||
"X-Project-Style: gnome\n"
|
"X-Project-Style: gnome\n"
|
||||||
|
|
||||||
#: ../data/50-gnome-shell-screenshot.xml.in.h:1
|
#: ../data/50-gnome-shell-screenshot.xml.in.h:1
|
||||||
@ -45,10 +45,14 @@ msgid "Focus the active notification"
|
|||||||
msgstr "Zaměřovat aktivní upozornění"
|
msgstr "Zaměřovat aktivní upozornění"
|
||||||
|
|
||||||
#: ../data/50-gnome-shell-system.xml.in.h:4
|
#: ../data/50-gnome-shell-system.xml.in.h:4
|
||||||
|
msgid "Show the overview"
|
||||||
|
msgstr "Zobrazit přehled"
|
||||||
|
|
||||||
|
#: ../data/50-gnome-shell-system.xml.in.h:5
|
||||||
msgid "Show all applications"
|
msgid "Show all applications"
|
||||||
msgstr "Zobrazit všechny aplikace"
|
msgstr "Zobrazit všechny aplikace"
|
||||||
|
|
||||||
#: ../data/50-gnome-shell-system.xml.in.h:5
|
#: ../data/50-gnome-shell-system.xml.in.h:6
|
||||||
msgid "Open the application menu"
|
msgid "Open the application menu"
|
||||||
msgstr "Otevřít nabídku aplikací"
|
msgstr "Otevřít nabídku aplikací"
|
||||||
|
|
||||||
@ -134,8 +138,8 @@ msgid ""
|
|||||||
"Each category name in this list will be represented as folder in the "
|
"Each category name in this list will be represented as folder in the "
|
||||||
"application view, rather than being displayed inline in the main view."
|
"application view, rather than being displayed inline in the main view."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Každá kategorie v tomto seznamu bude zobrazena jako složka, místo toho "
|
"Každá kategorie v tomto seznamu bude zobrazena jako složka, místo toho aby "
|
||||||
"aby byla zobrazena v hlavním pohledu."
|
"byla zobrazena v hlavním pohledu."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:11
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:11
|
||||||
msgid "History for command (Alt-F2) dialog"
|
msgid "History for command (Alt-F2) dialog"
|
||||||
@ -219,42 +223,50 @@ msgid ""
|
|||||||
msgstr "Klávesová zkratka k otevření nabídky aplikací v Přehledu aktivit"
|
msgstr "Klávesová zkratka k otevření nabídky aplikací v Přehledu aktivit"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||||
|
msgid "Keybinding to open the overview"
|
||||||
|
msgstr "Klávesová zkratka k otevření přehledu"
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||||
|
msgid "Keybinding to open the Activities Overview."
|
||||||
|
msgstr "Klávesová zkratka k otevření přehledu činností"
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||||
msgid "Keybinding to toggle the visibility of the message tray"
|
msgid "Keybinding to toggle the visibility of the message tray"
|
||||||
msgstr "Klávesová zkratka k přepnutí viditelnosti lišty zpráv"
|
msgstr "Klávesová zkratka k přepnutí viditelnosti lišty zpráv"
|
||||||
|
|
||||||
#: ../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 message tray."
|
msgid "Keybinding to toggle the visibility of the message tray."
|
||||||
msgstr "Klávesová zkratka k přepnutí viditelnosti lišty zpráv."
|
msgstr "Klávesová zkratka k přepnutí viditelnosti lišty zpráv."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||||
msgid "Keybinding to focus the active notification"
|
msgid "Keybinding to focus the active notification"
|
||||||
msgstr "Klávesová zkratka k zaměření aktivního upozornění"
|
msgstr "Klávesová zkratka k zaměření aktivního upozornění"
|
||||||
|
|
||||||
#: ../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."
|
msgid "Keybinding to focus the active notification."
|
||||||
msgstr "Klávesová zkratka k zaměření aktivního upozornění."
|
msgstr "Klávesová zkratka k zaměření aktivního upozornění."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||||
msgid "Keybinding to toggle the screen recorder"
|
msgid "Keybinding to toggle the screen recorder"
|
||||||
msgstr "Klávesová zkratka k záznamu obrazovky"
|
msgstr "Klávesová zkratka k záznamu obrazovky"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||||
msgid "Keybinding to start/stop the builtin screen recorder."
|
msgid "Keybinding to start/stop the builtin screen recorder."
|
||||||
msgstr "Klávesová zkratka k započnutí nebo ukončení záznamu dění na obrazovce."
|
msgstr "Klávesová zkratka k započnutí nebo ukončení záznamu dění na obrazovce."
|
||||||
|
|
||||||
#: ../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"
|
msgid "Which keyboard to use"
|
||||||
msgstr "Která klávesnice se má používat"
|
msgstr "Která klávesnice se má používat"
|
||||||
|
|
||||||
#: ../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."
|
msgid "The type of keyboard to use."
|
||||||
msgstr "Typ klávesnice, který se má používat."
|
msgstr "Typ klávesnice, který se má používat."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||||
msgid "Framerate used for recording screencasts."
|
msgid "Framerate used for recording screencasts."
|
||||||
msgstr "Frekvence snímků při nahrávání dění na obrazovce."
|
msgstr "Frekvence snímků při nahrávání dění na obrazovce."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||||
msgid ""
|
msgid ""
|
||||||
"The framerate of the resulting screencast recordered by GNOME Shell's "
|
"The framerate of the resulting screencast recordered by GNOME Shell's "
|
||||||
"screencast recorder in frames-per-second."
|
"screencast recorder in frames-per-second."
|
||||||
@ -262,11 +274,11 @@ msgstr ""
|
|||||||
"Frekvence snímků za sekundu výsledné nahrávky dění na obrazovce, která byla "
|
"Frekvence snímků za sekundu výsledné nahrávky dění na obrazovce, která byla "
|
||||||
"nahrána záznamovým programem GNOME Shell."
|
"nahrána záznamovým programem GNOME Shell."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||||
msgid "The gstreamer pipeline used to encode the screencast"
|
msgid "The gstreamer pipeline used to encode the screencast"
|
||||||
msgstr "Roura systému gstreamer určená ke kódování nahrávky dění na obrazovce"
|
msgstr "Roura systému gstreamer určená ke kódování nahrávky dění na obrazovce"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
|
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
|
||||||
@ -291,11 +303,11 @@ msgstr ""
|
|||||||
"nahráváním do WEBM s kodekem VP8. %T je použito jako zástupný symbol odhadu "
|
"nahráváním do WEBM s kodekem VP8. %T je použito jako zástupný symbol odhadu "
|
||||||
"nejvhodnějšího počtu vláken na systému."
|
"nejvhodnějšího počtu vláken na systému."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||||
msgid "File extension used for storing the screencast"
|
msgid "File extension used for storing the screencast"
|
||||||
msgstr "Přípona souboru s nahrávkou dění na obrazovce"
|
msgstr "Přípona souboru s nahrávkou dění na obrazovce"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||||
msgid ""
|
msgid ""
|
||||||
"The filename for recorded screencasts will be a unique filename based on the "
|
"The filename for recorded screencasts will be a unique filename based on the "
|
||||||
"current date, and use this extension. It should be changed when recording to "
|
"current date, and use this extension. It should be changed when recording to "
|
||||||
@ -305,11 +317,11 @@ msgstr ""
|
|||||||
"názvu vycházejícího z aktuálního data a bude používat tuto příponu. Při "
|
"názvu vycházejícího z aktuálního data a bude používat tuto příponu. Při "
|
||||||
"nahrávání do jiného formátu kontejneru by měla být provedena úprava pravidel."
|
"nahrávání do jiného formátu kontejneru by měla být provedena úprava pravidel."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||||
msgid "The application icon mode."
|
msgid "The application icon mode."
|
||||||
msgstr "Režim ikon aplikací"
|
msgstr "Režim ikon aplikací"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||||
msgid ""
|
msgid ""
|
||||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||||
@ -319,20 +331,20 @@ msgstr ""
|
|||||||
"only“ (zobrazí náhled okna), „app-icon-only“ (zobrazí pouze ikonu aplikace) "
|
"only“ (zobrazí náhled okna), „app-icon-only“ (zobrazí pouze ikonu aplikace) "
|
||||||
"a „both“ (zobrazí náhled i ikonu)."
|
"a „both“ (zobrazí náhled i ikonu)."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
||||||
msgid "Attach modal dialog to the parent window"
|
msgid "Attach modal dialog to the parent window"
|
||||||
msgstr "Připojovat modální dialogová okna k rodičovským oknům"
|
msgstr "Připojovat modální dialogová okna k rodičovským oknům"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
||||||
msgid ""
|
msgid ""
|
||||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||||
msgstr "Tento kíč přepisuje klíč v org.gnome.mutter, když běží GNOME Shell."
|
msgstr "Tento kíč přepisuje klíč v org.gnome.mutter, když běží GNOME Shell."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:46
|
||||||
msgid "Arrangement of buttons on the titlebar"
|
msgid "Arrangement of buttons on the titlebar"
|
||||||
msgstr "Uspořádání tlačítek v záhlaví"
|
msgstr "Uspořádání tlačítek v záhlaví"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:47
|
||||||
msgid ""
|
msgid ""
|
||||||
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
||||||
"GNOME Shell."
|
"GNOME Shell."
|
||||||
@ -340,15 +352,15 @@ msgstr ""
|
|||||||
"Tento kíč přepisuje klíč v org.gnome.desktop.wm.preferences, když běží GNOME "
|
"Tento kíč přepisuje klíč v org.gnome.desktop.wm.preferences, když běží GNOME "
|
||||||
"Shell."
|
"Shell."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:46
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:48
|
||||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||||
msgstr "Nechat okna upuštěná při okraji obrazovky vytvářet dlaždice"
|
msgstr "Nechat okna upuštěná při okraji obrazovky vytvářet dlaždice"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:47
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:49
|
||||||
msgid "Workspaces are managed dynamically"
|
msgid "Workspaces are managed dynamically"
|
||||||
msgstr "Pracovní plochy jsou spravovány dynamicky"
|
msgstr "Pracovní plochy jsou spravovány dynamicky"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:48
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:50
|
||||||
msgid "Workspaces only on primary monitor"
|
msgid "Workspaces only on primary monitor"
|
||||||
msgstr "Pracovní plochy pouze na hlavním monitoru"
|
msgstr "Pracovní plochy pouze na hlavním monitoru"
|
||||||
|
|
||||||
@ -374,36 +386,36 @@ msgstr "Sezení…"
|
|||||||
#. translators: this message is shown below the user list on the
|
#. translators: this message is shown below the user list on the
|
||||||
#. login screen. It can be activated to reveal an entry for
|
#. login screen. It can be activated to reveal an entry for
|
||||||
#. manually entering the username.
|
#. manually entering the username.
|
||||||
#: ../js/gdm/loginDialog.js:629
|
#: ../js/gdm/loginDialog.js:630
|
||||||
msgid "Not listed?"
|
msgid "Not listed?"
|
||||||
msgstr "Nejste na seznamu?"
|
msgstr "Nejste na seznamu?"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:783 ../js/ui/components/networkAgent.js:137
|
#: ../js/gdm/loginDialog.js:787 ../js/ui/components/networkAgent.js:137
|
||||||
#: ../js/ui/components/polkitAgent.js:162 ../js/ui/endSessionDialog.js:375
|
#: ../js/ui/components/polkitAgent.js:162 ../js/ui/endSessionDialog.js:376
|
||||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||||
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:126
|
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:100
|
||||||
#: ../js/ui/userMenu.js:934
|
#: ../js/ui/userMenu.js:938
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Zrušit"
|
msgstr "Zrušit"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:799
|
#: ../js/gdm/loginDialog.js:803
|
||||||
msgctxt "button"
|
msgctxt "button"
|
||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr "Přihlásit se"
|
msgstr "Přihlásit se"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:799
|
#: ../js/gdm/loginDialog.js:803
|
||||||
msgid "Next"
|
msgid "Next"
|
||||||
msgstr "Následující"
|
msgstr "Následující"
|
||||||
|
|
||||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||||
#. is not visible here since we only care about phase2 authentication
|
#. 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:904 ../js/ui/components/networkAgent.js:260
|
#: ../js/gdm/loginDialog.js:918 ../js/ui/components/networkAgent.js:260
|
||||||
#: ../js/ui/components/networkAgent.js:278
|
#: ../js/ui/components/networkAgent.js:278
|
||||||
msgid "Username: "
|
msgid "Username: "
|
||||||
msgstr "Uživatelské jméno: "
|
msgstr "Uživatelské jméno: "
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:1157
|
#: ../js/gdm/loginDialog.js:1174
|
||||||
msgid "Login Window"
|
msgid "Login Window"
|
||||||
msgstr "Přihlašovací okno"
|
msgstr "Přihlašovací okno"
|
||||||
|
|
||||||
@ -412,8 +424,8 @@ msgstr "Přihlašovací okno"
|
|||||||
msgid "Power"
|
msgid "Power"
|
||||||
msgstr "Vypnout"
|
msgstr "Vypnout"
|
||||||
|
|
||||||
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:695 ../js/ui/userMenu.js:699
|
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:696 ../js/ui/userMenu.js:700
|
||||||
#: ../js/ui/userMenu.js:815
|
#: ../js/ui/userMenu.js:816
|
||||||
msgid "Suspend"
|
msgid "Suspend"
|
||||||
msgstr "Uspat do paměti"
|
msgstr "Uspat do paměti"
|
||||||
|
|
||||||
@ -421,58 +433,58 @@ msgstr "Uspat do paměti"
|
|||||||
msgid "Restart"
|
msgid "Restart"
|
||||||
msgstr "Restartovat"
|
msgstr "Restartovat"
|
||||||
|
|
||||||
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:697
|
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:698
|
||||||
#: ../js/ui/userMenu.js:699 ../js/ui/userMenu.js:814 ../js/ui/userMenu.js:938
|
#: ../js/ui/userMenu.js:700 ../js/ui/userMenu.js:815 ../js/ui/userMenu.js:942
|
||||||
msgid "Power Off"
|
msgid "Power Off"
|
||||||
msgstr "Vypnout"
|
msgstr "Vypnout"
|
||||||
|
|
||||||
#: ../js/gdm/util.js:182
|
#: ../js/gdm/util.js:249
|
||||||
msgid "Authentication error"
|
msgid "Authentication error"
|
||||||
msgstr "Chyba ověření"
|
msgstr "Chyba ověření"
|
||||||
|
|
||||||
#. Translators: this message is shown below the password entry field
|
#. Translators: this message is shown below the password entry field
|
||||||
#. to indicate the user can swipe their finger instead
|
#. to indicate the user can swipe their finger instead
|
||||||
#: ../js/gdm/util.js:299
|
#: ../js/gdm/util.js:366
|
||||||
msgid "(or swipe finger)"
|
msgid "(or swipe finger)"
|
||||||
msgstr "(nebo otiskněte prst)"
|
msgstr "(nebo otiskněte prst)"
|
||||||
|
|
||||||
#: ../js/gdm/util.js:324
|
#: ../js/gdm/util.js:391
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "(e.g., user or %s)"
|
msgid "(e.g., user or %s)"
|
||||||
msgstr "(např. uživatel nebo %s)"
|
msgstr "(např. uživatel nebo %s)"
|
||||||
|
|
||||||
#: ../js/misc/util.js:94
|
#: ../js/misc/util.js:97
|
||||||
msgid "Command not found"
|
msgid "Command not found"
|
||||||
msgstr "Příkaz nenalezen"
|
msgstr "Příkaz nenalezen"
|
||||||
|
|
||||||
#. Replace "Error invoking GLib.shell_parse_argv: " with
|
#. Replace "Error invoking GLib.shell_parse_argv: " with
|
||||||
#. something nicer
|
#. something nicer
|
||||||
#: ../js/misc/util.js:127
|
#: ../js/misc/util.js:130
|
||||||
msgid "Could not parse command:"
|
msgid "Could not parse command:"
|
||||||
msgstr "Nelze analyzovat příkaz:"
|
msgstr "Nelze analyzovat příkaz:"
|
||||||
|
|
||||||
#: ../js/misc/util.js:135
|
#: ../js/misc/util.js:138
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Execution of '%s' failed:"
|
msgid "Execution of '%s' failed:"
|
||||||
msgstr "Vykonání „%s“ selhalo:"
|
msgstr "Vykonání „%s“ selhalo:"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:348
|
#: ../js/ui/appDisplay.js:351
|
||||||
msgid "Frequent"
|
msgid "Frequent"
|
||||||
msgstr "Časté"
|
msgstr "Časté"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:355
|
#: ../js/ui/appDisplay.js:358
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Všechny"
|
msgstr "Všechny"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:913
|
#: ../js/ui/appDisplay.js:916
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "Nové okno"
|
msgstr "Nové okno"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:916 ../js/ui/dash.js:284
|
#: ../js/ui/appDisplay.js:919 ../js/ui/dash.js:284
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Odstranit z oblíbených"
|
msgstr "Odstranit z oblíbených"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:917
|
#: ../js/ui/appDisplay.js:920
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Přidat mezi oblíbené"
|
msgstr "Přidat mezi oblíbené"
|
||||||
|
|
||||||
@ -486,7 +498,7 @@ msgstr "%s byl přidán mezi oblíbené."
|
|||||||
msgid "%s has been removed from your favorites."
|
msgid "%s has been removed from your favorites."
|
||||||
msgstr "%s byl odstraněn z oblíbených."
|
msgstr "%s byl odstraněn z oblíbených."
|
||||||
|
|
||||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:788
|
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:789
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Nastavení"
|
msgstr "Nastavení"
|
||||||
|
|
||||||
@ -507,15 +519,15 @@ msgstr "Celý den"
|
|||||||
#: ../js/ui/calendar.js:68
|
#: ../js/ui/calendar.js:68
|
||||||
msgctxt "event list time"
|
msgctxt "event list time"
|
||||||
msgid "%H\\u2236%M"
|
msgid "%H\\u2236%M"
|
||||||
msgstr "%H.%M"
|
msgstr "%H:%M"
|
||||||
|
|
||||||
#. Transators: Shown in calendar event list, if 12h format,
|
#. Translators: Shown in calendar event list, if 12h format,
|
||||||
#. \u2236 is a ratio character, similar to : and \u2009 is
|
#. \u2236 is a ratio character, similar to : and \u2009 is
|
||||||
#. a thin space
|
#. a thin space
|
||||||
#: ../js/ui/calendar.js:77
|
#: ../js/ui/calendar.js:77
|
||||||
msgctxt "event list time"
|
msgctxt "event list time"
|
||||||
msgid "%l\\u2236%M\\u2009%p"
|
msgid "%l\\u2236%M\\u2009%p"
|
||||||
msgstr "%l.%M\\u2009%p"
|
msgstr "%l:%M\\u2009%p"
|
||||||
|
|
||||||
#. Translators: Calendar grid abbreviation for Sunday.
|
#. Translators: Calendar grid abbreviation for Sunday.
|
||||||
#. *
|
#. *
|
||||||
@ -611,35 +623,35 @@ msgid "S"
|
|||||||
msgstr "So"
|
msgstr "So"
|
||||||
|
|
||||||
#. Translators: Text to show if there are no events
|
#. Translators: Text to show if there are no events
|
||||||
#: ../js/ui/calendar.js:692
|
#: ../js/ui/calendar.js:720
|
||||||
msgid "Nothing Scheduled"
|
msgid "Nothing Scheduled"
|
||||||
msgstr "Nic nenaplánováno"
|
msgstr "Nic nenaplánováno"
|
||||||
|
|
||||||
#. Translators: Shown on calendar heading when selected day occurs on current year
|
#. Translators: Shown on calendar heading when selected day occurs on current year
|
||||||
#: ../js/ui/calendar.js:708
|
#: ../js/ui/calendar.js:736
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %e. %B"
|
msgstr "%A, %e. %B"
|
||||||
|
|
||||||
#. Translators: Shown on calendar heading when selected day occurs on different year
|
#. Translators: Shown on calendar heading when selected day occurs on different year
|
||||||
#: ../js/ui/calendar.js:711
|
#: ../js/ui/calendar.js:739
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d, %Y"
|
msgid "%A, %B %d, %Y"
|
||||||
msgstr "%A, %e. %B %Y"
|
msgstr "%A, %e. %B %Y"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:721
|
#: ../js/ui/calendar.js:749
|
||||||
msgid "Today"
|
msgid "Today"
|
||||||
msgstr "Dnes"
|
msgstr "Dnes"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:725
|
#: ../js/ui/calendar.js:753
|
||||||
msgid "Tomorrow"
|
msgid "Tomorrow"
|
||||||
msgstr "Zítra"
|
msgstr "Zítra"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:736
|
#: ../js/ui/calendar.js:764
|
||||||
msgid "This week"
|
msgid "This week"
|
||||||
msgstr "Tento týden"
|
msgstr "Tento týden"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:744
|
#: ../js/ui/calendar.js:772
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr "Následující týden"
|
msgstr "Následující týden"
|
||||||
|
|
||||||
@ -655,12 +667,12 @@ msgstr "Externí svazek odpojen"
|
|||||||
msgid "Removable Devices"
|
msgid "Removable Devices"
|
||||||
msgstr "Výměnná zařízení"
|
msgstr "Výměnná zařízení"
|
||||||
|
|
||||||
#: ../js/ui/components/autorunManager.js:593
|
#: ../js/ui/components/autorunManager.js:594
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Open with %s"
|
msgid "Open with %s"
|
||||||
msgstr "Otevřít s %s"
|
msgstr "Otevřít s %s"
|
||||||
|
|
||||||
#: ../js/ui/components/autorunManager.js:619
|
#: ../js/ui/components/autorunManager.js:620
|
||||||
msgid "Eject"
|
msgid "Eject"
|
||||||
msgstr "Vysunout"
|
msgstr "Vysunout"
|
||||||
|
|
||||||
@ -769,7 +781,7 @@ msgid "Sorry, that didn't work. Please try again."
|
|||||||
msgstr "Ověření bohužel nebylo úspěšné. Zkuste to prosím znovu."
|
msgstr "Ověření bohužel nebylo úspěšné. Zkuste to prosím znovu."
|
||||||
|
|
||||||
#. Translators: this is a filename used for screencast recording
|
#. Translators: this is a filename used for screencast recording
|
||||||
#: ../js/ui/components/recorder.js:48
|
#: ../js/ui/components/recorder.js:47
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Screencast from %d %t"
|
msgid "Screencast from %d %t"
|
||||||
msgstr "Záznam obrazovky z %d %t"
|
msgstr "Záznam obrazovky z %d %t"
|
||||||
@ -1043,7 +1055,7 @@ msgstr "Nastavení data a času"
|
|||||||
#. Translators: This is the date format to use when the calendar popup is
|
#. 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").
|
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
|
||||||
#.
|
#.
|
||||||
#: ../js/ui/dateMenu.js:205
|
#: ../js/ui/dateMenu.js:215
|
||||||
msgid "%A %B %e, %Y"
|
msgid "%A %B %e, %Y"
|
||||||
msgstr "%A, %e. %B, %Y"
|
msgstr "%A, %e. %B, %Y"
|
||||||
|
|
||||||
@ -1218,24 +1230,24 @@ msgstr "Vymazat zprávy"
|
|||||||
msgid "Notification Settings"
|
msgid "Notification Settings"
|
||||||
msgstr "Nastavení upozornění"
|
msgstr "Nastavení upozornění"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1707
|
#: ../js/ui/messageTray.js:1710
|
||||||
msgid "No Messages"
|
msgid "No Messages"
|
||||||
msgstr "Žádné zprávy"
|
msgstr "Žádné zprávy"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1787
|
#: ../js/ui/messageTray.js:1783
|
||||||
msgid "Message Tray"
|
msgid "Message Tray"
|
||||||
msgstr "Lišta zpráv"
|
msgstr "Lišta zpráv"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:2864
|
#: ../js/ui/messageTray.js:2801
|
||||||
msgid "System Information"
|
msgid "System Information"
|
||||||
msgstr "Informace o systému"
|
msgstr "Informace o systému"
|
||||||
|
|
||||||
#: ../js/ui/notificationDaemon.js:629 ../src/shell-app.c:374
|
#: ../js/ui/notificationDaemon.js:629 ../src/shell-app.c:378
|
||||||
msgctxt "program"
|
msgctxt "program"
|
||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "Neznámé"
|
msgstr "Neznámé"
|
||||||
|
|
||||||
#: ../js/ui/overviewControls.js:460 ../js/ui/screenShield.js:153
|
#: ../js/ui/overviewControls.js:472 ../js/ui/screenShield.js:149
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d new message"
|
msgid "%d new message"
|
||||||
msgid_plural "%d new messages"
|
msgid_plural "%d new messages"
|
||||||
@ -1247,7 +1259,7 @@ msgstr[2] "%d nových zpráv"
|
|||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Zpět"
|
msgstr "Zpět"
|
||||||
|
|
||||||
#: ../js/ui/overview.js:129
|
#: ../js/ui/overview.js:127
|
||||||
msgid "Overview"
|
msgid "Overview"
|
||||||
msgstr "Přehled"
|
msgstr "Přehled"
|
||||||
|
|
||||||
@ -1255,21 +1267,21 @@ msgstr "Přehled"
|
|||||||
#. in the search entry when no search is
|
#. in the search entry when no search is
|
||||||
#. active; it should not exceed ~30
|
#. active; it should not exceed ~30
|
||||||
#. characters.
|
#. characters.
|
||||||
#: ../js/ui/overview.js:284
|
#: ../js/ui/overview.js:260
|
||||||
msgid "Type to search…"
|
msgid "Type to search…"
|
||||||
msgstr "Vyhledávejte psaním…"
|
msgstr "Vyhledávejte psaním…"
|
||||||
|
|
||||||
#: ../js/ui/panel.js:613
|
#: ../js/ui/panel.js:641
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Ukončit"
|
msgstr "Ukončit"
|
||||||
|
|
||||||
#. Translators: If there is no suitable word for "Activities"
|
#. 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:642
|
#: ../js/ui/panel.js:692
|
||||||
msgid "Activities"
|
msgid "Activities"
|
||||||
msgstr "Činnosti"
|
msgstr "Činnosti"
|
||||||
|
|
||||||
#: ../js/ui/panel.js:983
|
#: ../js/ui/panel.js:989
|
||||||
msgid "Top Bar"
|
msgid "Top Bar"
|
||||||
msgstr "Horní lišta"
|
msgstr "Horní lišta"
|
||||||
|
|
||||||
@ -1278,25 +1290,25 @@ msgstr "Horní lišta"
|
|||||||
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
|
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
|
||||||
#. switches containing "◯" and "|"). Other values will
|
#. switches containing "◯" and "|"). Other values will
|
||||||
#. simply result in invisible toggle switches.
|
#. simply result in invisible toggle switches.
|
||||||
#: ../js/ui/popupMenu.js:727
|
#: ../js/ui/popupMenu.js:718
|
||||||
msgid "toggle-switch-us"
|
msgid "toggle-switch-us"
|
||||||
msgstr "toggle-switch-intl"
|
msgstr "toggle-switch-intl"
|
||||||
|
|
||||||
#: ../js/ui/runDialog.js:205
|
#: ../js/ui/runDialog.js:74
|
||||||
msgid "Enter a Command"
|
msgid "Enter a Command"
|
||||||
msgstr "Zadejte příkaz:"
|
msgstr "Zadejte příkaz:"
|
||||||
|
|
||||||
#: ../js/ui/runDialog.js:241
|
#: ../js/ui/runDialog.js:110
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Zavřít"
|
msgstr "Zavřít"
|
||||||
|
|
||||||
#. Translators: This is a time format for a date in
|
#. Translators: This is a time format for a date in
|
||||||
#. long format
|
#. long format
|
||||||
#: ../js/ui/screenShield.js:90
|
#: ../js/ui/screenShield.js:86
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %e. %B"
|
msgstr "%A, %e. %B"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:155
|
#: ../js/ui/screenShield.js:151
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d new notification"
|
msgid "%d new notification"
|
||||||
msgid_plural "%d new notifications"
|
msgid_plural "%d new notifications"
|
||||||
@ -1304,11 +1316,11 @@ msgstr[0] "%d nové upozornění"
|
|||||||
msgstr[1] "%d nová upozornění"
|
msgstr[1] "%d nová upozornění"
|
||||||
msgstr[2] "%d nových upozornění"
|
msgstr[2] "%d nových upozornění"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:442 ../js/ui/userMenu.js:806
|
#: ../js/ui/screenShield.js:438 ../js/ui/userMenu.js:807
|
||||||
msgid "Lock"
|
msgid "Lock"
|
||||||
msgstr "Uzamknout"
|
msgstr "Uzamknout"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:639
|
#: ../js/ui/screenShield.js:641
|
||||||
msgid "GNOME needs to lock the screen"
|
msgid "GNOME needs to lock the screen"
|
||||||
msgstr "GNOME potřebuje uzamknout obrazovku"
|
msgstr "GNOME potřebuje uzamknout obrazovku"
|
||||||
|
|
||||||
@ -1319,19 +1331,19 @@ msgstr "GNOME potřebuje uzamknout obrazovku"
|
|||||||
#.
|
#.
|
||||||
#. XXX: another option is to kick the user into the gdm login
|
#. XXX: another option is to kick the user into the gdm login
|
||||||
#. screen, where we're not affected by grabs
|
#. screen, where we're not affected by grabs
|
||||||
#: ../js/ui/screenShield.js:758 ../js/ui/screenShield.js:1169
|
#: ../js/ui/screenShield.js:762 ../js/ui/screenShield.js:1198
|
||||||
msgid "Unable to lock"
|
msgid "Unable to lock"
|
||||||
msgstr "Nelze uzamknout obrazovku"
|
msgstr "Nelze uzamknout obrazovku"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:759 ../js/ui/screenShield.js:1170
|
#: ../js/ui/screenShield.js:763 ../js/ui/screenShield.js:1199
|
||||||
msgid "Lock was blocked by an application"
|
msgid "Lock was blocked by an application"
|
||||||
msgstr "Zamknutí bylo zablokováno některou z aplikací"
|
msgstr "Zamknutí bylo zablokováno některou z aplikací"
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:431
|
#: ../js/ui/searchDisplay.js:453
|
||||||
msgid "Searching…"
|
msgid "Searching…"
|
||||||
msgstr "Hledá se…"
|
msgstr "Hledá se…"
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:475
|
#: ../js/ui/searchDisplay.js:497
|
||||||
msgid "No results."
|
msgid "No results."
|
||||||
msgstr "Žádné výsledky."
|
msgstr "Žádné výsledky."
|
||||||
|
|
||||||
@ -1343,11 +1355,11 @@ msgstr "Kopírovat"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "Vložit"
|
msgstr "Vložit"
|
||||||
|
|
||||||
#: ../js/ui/shellEntry.js:105
|
#: ../js/ui/shellEntry.js:101
|
||||||
msgid "Show Text"
|
msgid "Show Text"
|
||||||
msgstr "Zobrazit text"
|
msgstr "Zobrazit text"
|
||||||
|
|
||||||
#: ../js/ui/shellEntry.js:107
|
#: ../js/ui/shellEntry.js:103
|
||||||
msgid "Hide Text"
|
msgid "Hide Text"
|
||||||
msgstr "Skrýt text"
|
msgstr "Skrýt text"
|
||||||
|
|
||||||
@ -1359,7 +1371,7 @@ msgstr "Heslo"
|
|||||||
msgid "Remember Password"
|
msgid "Remember Password"
|
||||||
msgstr "Pamatovat si heslo"
|
msgstr "Pamatovat si heslo"
|
||||||
|
|
||||||
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:140
|
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:114
|
||||||
msgid "Unlock"
|
msgid "Unlock"
|
||||||
msgstr "Odemknout"
|
msgstr "Odemknout"
|
||||||
|
|
||||||
@ -1414,7 +1426,7 @@ msgstr "Styl velkého textu"
|
|||||||
#: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:32
|
#: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:32
|
||||||
#: ../js/ui/status/bluetooth.js:289 ../js/ui/status/bluetooth.js:321
|
#: ../js/ui/status/bluetooth.js:289 ../js/ui/status/bluetooth.js:321
|
||||||
#: ../js/ui/status/bluetooth.js:357 ../js/ui/status/bluetooth.js:388
|
#: ../js/ui/status/bluetooth.js:357 ../js/ui/status/bluetooth.js:388
|
||||||
#: ../js/ui/status/network.js:826
|
#: ../js/ui/status/network.js:761
|
||||||
msgid "Bluetooth"
|
msgid "Bluetooth"
|
||||||
msgstr "Bluetooth"
|
msgstr "Bluetooth"
|
||||||
|
|
||||||
@ -1435,7 +1447,7 @@ msgid "Bluetooth Settings"
|
|||||||
msgstr "Nastavit Bluetooth"
|
msgstr "Nastavit Bluetooth"
|
||||||
|
|
||||||
#. TRANSLATORS: this means that bluetooth was disabled by hardware rfkill
|
#. TRANSLATORS: this means that bluetooth was disabled by hardware rfkill
|
||||||
#: ../js/ui/status/bluetooth.js:104 ../js/ui/status/network.js:178
|
#: ../js/ui/status/bluetooth.js:104 ../js/ui/status/network.js:149
|
||||||
msgid "hardware disabled"
|
msgid "hardware disabled"
|
||||||
msgstr "zařízení zakázáno"
|
msgstr "zařízení zakázáno"
|
||||||
|
|
||||||
@ -1443,12 +1455,12 @@ msgstr "zařízení zakázáno"
|
|||||||
msgid "Connection"
|
msgid "Connection"
|
||||||
msgstr "Připojení"
|
msgstr "Připojení"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:208 ../js/ui/status/network.js:460
|
#: ../js/ui/status/bluetooth.js:208 ../js/ui/status/network.js:426
|
||||||
msgid "disconnecting..."
|
msgid "disconnecting..."
|
||||||
msgstr "odpojování…"
|
msgstr "odpojování…"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:466
|
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:432
|
||||||
#: ../js/ui/status/network.js:1546
|
#: ../js/ui/status/network.js:1417
|
||||||
msgid "connecting..."
|
msgid "connecting..."
|
||||||
msgstr "připojování…"
|
msgstr "připojování…"
|
||||||
|
|
||||||
@ -1540,117 +1552,91 @@ msgstr "Místní a jazyková nastavení"
|
|||||||
msgid "Volume, network, battery"
|
msgid "Volume, network, battery"
|
||||||
msgstr "Hlasitost, síť, baterie"
|
msgstr "Hlasitost, síť, baterie"
|
||||||
|
|
||||||
#: ../js/ui/status/network.js:104
|
#: ../js/ui/status/network.js:82
|
||||||
msgid "<unknown>"
|
msgid "<unknown>"
|
||||||
msgstr "<neznámé>"
|
msgstr "<neznámé>"
|
||||||
|
|
||||||
|
#: ../js/ui/status/network.js:134
|
||||||
|
msgid "Wi-Fi"
|
||||||
|
msgstr "Wi-Fi"
|
||||||
|
|
||||||
#. Translators: this indicates that wireless or wwan is disabled by hardware killswitch
|
#. Translators: this indicates that wireless or wwan is disabled by hardware killswitch
|
||||||
#: ../js/ui/status/network.js:200
|
#: ../js/ui/status/network.js:171
|
||||||
msgid "disabled"
|
msgid "disabled"
|
||||||
msgstr "zakázáno"
|
msgstr "zakázáno"
|
||||||
|
|
||||||
#. Translators: this is for network devices that are physically present but are not
|
#. 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)
|
#. under NetworkManager's control (and thus cannot be used in the menu)
|
||||||
#: ../js/ui/status/network.js:458
|
#: ../js/ui/status/network.js:424
|
||||||
msgid "unmanaged"
|
msgid "unmanaged"
|
||||||
msgstr "nespravováno"
|
msgstr "nespravováno"
|
||||||
|
|
||||||
#. 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:469 ../js/ui/status/network.js:1549
|
#: ../js/ui/status/network.js:435 ../js/ui/status/network.js:1420
|
||||||
msgid "authentication required"
|
msgid "authentication required"
|
||||||
msgstr "je vyžadováno ověření"
|
msgstr "je vyžadováno ověření"
|
||||||
|
|
||||||
#. Translators: this is for devices that require some kind of firmware or kernel
|
#. Translators: this is for devices that require some kind of firmware or kernel
|
||||||
#. module, which is missing
|
#. module, which is missing
|
||||||
#: ../js/ui/status/network.js:479
|
#: ../js/ui/status/network.js:445
|
||||||
msgid "firmware missing"
|
msgid "firmware missing"
|
||||||
msgstr "nedostupný firmware"
|
msgstr "nedostupný firmware"
|
||||||
|
|
||||||
#. Translators: this is for wired network devices that are physically disconnected
|
#. Translators: this is for wired network devices that are physically disconnected
|
||||||
#: ../js/ui/status/network.js:486
|
#: ../js/ui/status/network.js:452
|
||||||
msgid "cable unplugged"
|
msgid "cable unplugged"
|
||||||
msgstr "kabel byl odpojen"
|
msgstr "kabel byl odpojen"
|
||||||
|
|
||||||
#. Translators: this is for a network device that cannot be activated (for example it
|
#. Translators: this is for a network device that cannot be activated (for example it
|
||||||
#. is disabled by rfkill, or it has no coverage
|
#. is disabled by rfkill, or it has no coverage
|
||||||
#: ../js/ui/status/network.js:491
|
#: ../js/ui/status/network.js:457
|
||||||
msgid "unavailable"
|
msgid "unavailable"
|
||||||
msgstr "nedostupné"
|
msgstr "nedostupné"
|
||||||
|
|
||||||
#: ../js/ui/status/network.js:493 ../js/ui/status/network.js:1551
|
#: ../js/ui/status/network.js:459 ../js/ui/status/network.js:1422
|
||||||
msgid "connection failed"
|
msgid "connection failed"
|
||||||
msgstr "připojení selhalo"
|
msgstr "připojení selhalo"
|
||||||
|
|
||||||
#: ../js/ui/status/network.js:552 ../js/ui/status/network.js:1435
|
#: ../js/ui/status/network.js:512 ../js/ui/status/network.js:1306
|
||||||
#: ../js/ui/status/network.js:1627
|
#: ../js/ui/status/network.js:1498
|
||||||
msgid "More…"
|
msgid "More…"
|
||||||
msgstr "Další…"
|
msgstr "Další…"
|
||||||
|
|
||||||
#. TRANSLATORS: this is the indication that a connection for another logged in user is active,
|
#. TRANSLATORS: this is the indication that a connection for another logged in user is active,
|
||||||
#. and we cannot access its settings (including the name)
|
#. and we cannot access its settings (including the name)
|
||||||
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1365
|
#: ../js/ui/status/network.js:540 ../js/ui/status/network.js:1261
|
||||||
msgid "Connected (private)"
|
msgid "Connected (private)"
|
||||||
msgstr "Připojení (soukromé)"
|
msgstr "Připojení (soukromé)"
|
||||||
|
|
||||||
#: ../js/ui/status/network.js:667
|
#: ../js/ui/status/network.js:619
|
||||||
msgid "Wired"
|
msgid "Wired"
|
||||||
msgstr "Drátová"
|
msgstr "Drátová"
|
||||||
|
|
||||||
#: ../js/ui/status/network.js:668
|
#: ../js/ui/status/network.js:633
|
||||||
msgid "Auto Ethernet"
|
|
||||||
msgstr "Automatické Ethernet"
|
|
||||||
|
|
||||||
#: ../js/ui/status/network.js:695
|
|
||||||
msgid "Mobile broadband"
|
msgid "Mobile broadband"
|
||||||
msgstr "Mobilní širokopásmová"
|
msgstr "Mobilní širokopásmová"
|
||||||
|
|
||||||
#: ../js/ui/status/network.js:728
|
#: ../js/ui/status/network.js:1596
|
||||||
msgid "Auto broadband"
|
|
||||||
msgstr "Automatické širokopásmové"
|
|
||||||
|
|
||||||
#: ../js/ui/status/network.js:731
|
|
||||||
msgid "Auto dial-up"
|
|
||||||
msgstr "Automatické vytáčené"
|
|
||||||
|
|
||||||
#. TRANSLATORS: this the automatic wireless connection name (including the network name)
|
|
||||||
#: ../js/ui/status/network.js:861 ../js/ui/status/network.js:1382
|
|
||||||
#, c-format
|
|
||||||
msgid "Auto %s"
|
|
||||||
msgstr "Automatické %s"
|
|
||||||
|
|
||||||
#: ../js/ui/status/network.js:863
|
|
||||||
msgid "Auto bluetooth"
|
|
||||||
msgstr "Automatické Bluetooth"
|
|
||||||
|
|
||||||
#: ../js/ui/status/network.js:1384
|
|
||||||
msgid "Auto wireless"
|
|
||||||
msgstr "Automatické bezdrátové"
|
|
||||||
|
|
||||||
#: ../js/ui/status/network.js:1729
|
|
||||||
msgid "Enable networking"
|
msgid "Enable networking"
|
||||||
msgstr "Povolit síť"
|
msgstr "Povolit síť"
|
||||||
|
|
||||||
#: ../js/ui/status/network.js:1771
|
#: ../js/ui/status/network.js:1657
|
||||||
msgid "Wi-Fi"
|
|
||||||
msgstr "Wi-Fi"
|
|
||||||
|
|
||||||
#: ../js/ui/status/network.js:1790
|
|
||||||
msgid "Network Settings"
|
msgid "Network Settings"
|
||||||
msgstr "Nastavení sítě"
|
msgstr "Nastavení sítě"
|
||||||
|
|
||||||
#: ../js/ui/status/network.js:1807
|
#: ../js/ui/status/network.js:1674
|
||||||
msgid "Network Manager"
|
msgid "Network Manager"
|
||||||
msgstr "Network Manager"
|
msgstr "Network Manager"
|
||||||
|
|
||||||
#: ../js/ui/status/network.js:1897
|
#: ../js/ui/status/network.js:1764
|
||||||
msgid "Connection failed"
|
msgid "Connection failed"
|
||||||
msgstr "Připojení selhalo"
|
msgstr "Připojení selhalo"
|
||||||
|
|
||||||
#: ../js/ui/status/network.js:1898
|
#: ../js/ui/status/network.js:1765
|
||||||
msgid "Activation of network connection failed"
|
msgid "Activation of network connection failed"
|
||||||
msgstr "Aktivace síťového připojení selhala"
|
msgstr "Aktivace síťového připojení selhala"
|
||||||
|
|
||||||
#: ../js/ui/status/network.js:2276
|
#: ../js/ui/status/network.js:2123
|
||||||
msgid "Networking is disabled"
|
msgid "Networking is disabled"
|
||||||
msgstr "Síť je zakázána"
|
msgstr "Síť je zakázána"
|
||||||
|
|
||||||
@ -1768,11 +1754,11 @@ msgstr "Hlasitost"
|
|||||||
msgid "Microphone"
|
msgid "Microphone"
|
||||||
msgstr "Mikrofon"
|
msgstr "Mikrofon"
|
||||||
|
|
||||||
#: ../js/ui/unlockDialog.js:151
|
#: ../js/ui/unlockDialog.js:125
|
||||||
msgid "Log in as another user"
|
msgid "Log in as another user"
|
||||||
msgstr "Přihlásit se jako jiný uživatel"
|
msgstr "Přihlásit se jako jiný uživatel"
|
||||||
|
|
||||||
#: ../js/ui/unlockDialog.js:177
|
#: ../js/ui/unlockDialog.js:146
|
||||||
msgid "Unlock Window"
|
msgid "Unlock Window"
|
||||||
msgstr "Odemykací okno"
|
msgstr "Odemykací okno"
|
||||||
|
|
||||||
@ -1800,27 +1786,27 @@ msgstr "Nečinný"
|
|||||||
msgid "Offline"
|
msgid "Offline"
|
||||||
msgstr "Odpojen"
|
msgstr "Odpojen"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:780
|
#: ../js/ui/userMenu.js:781
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Upozornění"
|
msgstr "Upozornění"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:796
|
#: ../js/ui/userMenu.js:797
|
||||||
msgid "Switch User"
|
msgid "Switch User"
|
||||||
msgstr "Přepnout uživatele"
|
msgstr "Přepnout uživatele"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:801
|
#: ../js/ui/userMenu.js:802
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "Odhlásit se"
|
msgstr "Odhlásit se"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:821
|
#: ../js/ui/userMenu.js:822
|
||||||
msgid "Install Updates & Restart"
|
msgid "Install Updates & Restart"
|
||||||
msgstr "Nainstalovat aktualizace a restartovat"
|
msgstr "Nainstalovat aktualizace a restartovat"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:839
|
#: ../js/ui/userMenu.js:840
|
||||||
msgid "Your chat status will be set to busy"
|
msgid "Your chat status will be set to busy"
|
||||||
msgstr "Váš stav v konverzacích byl nastaven na „Zaneprázdněn“"
|
msgstr "Váš stav v konverzacích byl nastaven na „Zaneprázdněn“"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:840
|
#: ../js/ui/userMenu.js:841
|
||||||
msgid ""
|
msgid ""
|
||||||
"Notifications are now disabled, including chat messages. Your online status "
|
"Notifications are now disabled, including chat messages. Your online status "
|
||||||
"has been adjusted to let others know that you might not see their messages."
|
"has been adjusted to let others know that you might not see their messages."
|
||||||
@ -1828,20 +1814,22 @@ msgstr ""
|
|||||||
"Upozornění jsou nyní vypnuta, včetně zpráv v konverzacích. Váš stav on-line "
|
"Upozornění jsou nyní vypnuta, včetně zpráv v konverzacích. Váš stav on-line "
|
||||||
"byl změněn tak, aby ostatní věděli, že si jejich zprávy nemusíte přečíst."
|
"byl změněn tak, aby ostatní věděli, že si jejich zprávy nemusíte přečíst."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:886
|
#: ../js/ui/userMenu.js:888
|
||||||
msgid "Other users are logged in."
|
msgid "Other users are logged in."
|
||||||
msgstr "Jsou přihlášeni jiní uživatelé."
|
msgstr "Jsou přihlášeni jiní uživatelé."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:891
|
#: ../js/ui/userMenu.js:893
|
||||||
msgid "Shutting down might cause them to lose unsaved work."
|
msgid "Shutting down might cause them to lose unsaved work."
|
||||||
msgstr "Vypnutí by mohlo způsobit ztrátu jejich neuložené práce."
|
msgstr "Vypnutí by mohlo způsobit ztrátu jejich neuložené práce."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:918
|
#. Translators: Remote here refers to a remote session, like a ssh login
|
||||||
|
#: ../js/ui/userMenu.js:921
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (remote)"
|
msgid "%s (remote)"
|
||||||
msgstr "%s (vzdálený)"
|
msgstr "%s (vzdálený)"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:920
|
#. Translators: Console here refers to a tty like a VT console
|
||||||
|
#: ../js/ui/userMenu.js:924
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (console)"
|
msgid "%s (console)"
|
||||||
msgstr "%s (konzole)"
|
msgstr "%s (konzole)"
|
||||||
@ -1854,7 +1842,7 @@ msgstr "Aplikace"
|
|||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Hledat"
|
msgstr "Hledat"
|
||||||
|
|
||||||
#: ../js/ui/wanda.js:92
|
#: ../js/ui/wanda.js:77
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sorry, no wisdom for you today:\n"
|
"Sorry, no wisdom for you today:\n"
|
||||||
@ -1863,7 +1851,7 @@ msgstr ""
|
|||||||
"Promiňte, dnes žádné moudro:\n"
|
"Promiňte, dnes žádné moudro:\n"
|
||||||
"%s"
|
"%s"
|
||||||
|
|
||||||
#: ../js/ui/wanda.js:96
|
#: ../js/ui/wanda.js:81
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s the Oracle says"
|
msgid "%s the Oracle says"
|
||||||
msgstr "%s říká Prorok"
|
msgstr "%s říká Prorok"
|
||||||
@ -1917,7 +1905,7 @@ msgstr "Použít pro přihlašovací obrazovku určitý mód, např. „gdm“."
|
|||||||
msgid "List possible modes"
|
msgid "List possible modes"
|
||||||
msgstr "Vypsat možné režimy"
|
msgstr "Vypsat možné režimy"
|
||||||
|
|
||||||
#: ../src/shell-app.c:622
|
#: ../src/shell-app.c:626
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to launch '%s'"
|
msgid "Failed to launch '%s'"
|
||||||
msgstr "Nelze spustit „%s“"
|
msgstr "Nelze spustit „%s“"
|
||||||
|
239
po/el.po
239
po/el.po
@ -5,8 +5,8 @@ msgstr ""
|
|||||||
"Project-Id-Version: gnome-shell.po.master\n"
|
"Project-Id-Version: gnome-shell.po.master\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||||
"shell&keywords=I18N+L10N&component=general\n"
|
"shell&keywords=I18N+L10N&component=general\n"
|
||||||
"POT-Creation-Date: 2013-03-02 23:02+0000\n"
|
"POT-Creation-Date: 2013-04-19 02:48+0000\n"
|
||||||
"PO-Revision-Date: 2013-03-03 13:22+0300\n"
|
"PO-Revision-Date: 2013-04-25 08:11+0300\n"
|
||||||
"Last-Translator: Dimitris Spingos (Δημήτρης Σπίγγος) <dmtrs32@gmail.com>\n"
|
"Last-Translator: Dimitris Spingos (Δημήτρης Σπίγγος) <dmtrs32@gmail.com>\n"
|
||||||
"Language-Team: team@gnome.gr\n"
|
"Language-Team: team@gnome.gr\n"
|
||||||
"Language: el\n"
|
"Language: el\n"
|
||||||
@ -40,10 +40,14 @@ msgid "Focus the active notification"
|
|||||||
msgstr "Εστίαση στην ενεργή ειδοποίηση"
|
msgstr "Εστίαση στην ενεργή ειδοποίηση"
|
||||||
|
|
||||||
#: ../data/50-gnome-shell-system.xml.in.h:4
|
#: ../data/50-gnome-shell-system.xml.in.h:4
|
||||||
|
msgid "Show the overview"
|
||||||
|
msgstr "Εμφάνιση της επισκόπησης"
|
||||||
|
|
||||||
|
#: ../data/50-gnome-shell-system.xml.in.h:5
|
||||||
msgid "Show all applications"
|
msgid "Show all applications"
|
||||||
msgstr "Προβολή όλων των εφαρμογών"
|
msgstr "Προβολή όλων των εφαρμογών"
|
||||||
|
|
||||||
#: ../data/50-gnome-shell-system.xml.in.h:5
|
#: ../data/50-gnome-shell-system.xml.in.h:6
|
||||||
msgid "Open the application menu"
|
msgid "Open the application menu"
|
||||||
msgstr "Άνοιγμα του μενού εφαρμογών"
|
msgstr "Άνοιγμα του μενού εφαρμογών"
|
||||||
|
|
||||||
@ -223,45 +227,55 @@ msgstr ""
|
|||||||
"επισκόπησης ενεργειών."
|
"επισκόπησης ενεργειών."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||||
|
#| msgid "Keybinding to open the \"Show Applications\" view"
|
||||||
|
msgid "Keybinding to open the overview"
|
||||||
|
msgstr "Συνδυασμός πλήκτρων για το άνοιγμα της επισκόπησης"
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||||
|
#| msgid "Keybinding to open the \"Show Applications\" view"
|
||||||
|
msgid "Keybinding to open the Activities Overview."
|
||||||
|
msgstr "Συνδυασμός πλήκτρων για το άνοιγμα της προβολής ενέργειες."
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||||
msgid "Keybinding to toggle the visibility of the message tray"
|
msgid "Keybinding to toggle the visibility of the message tray"
|
||||||
msgstr "Συνδυασμός πλήκτρων για την ορατότητα της περιοχής ειδοποιήσεων"
|
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 message tray."
|
msgid "Keybinding to toggle the visibility of the message tray."
|
||||||
msgstr "Συνδυασμός πλήκτρων για την ορατότητα της περιοχής ειδοποιήσεων."
|
msgstr "Συνδυασμός πλήκτρων για την ορατότητα της περιοχής ειδοποιήσεων."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||||
msgid "Keybinding to focus the active notification"
|
msgid "Keybinding to focus the active notification"
|
||||||
msgstr "Ο συνδυασμός πλήκτρων για εστίαση της ενεργής ειδοποίησης"
|
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."
|
msgid "Keybinding to focus the active notification."
|
||||||
msgstr "Ο συνδυασμός πλήκτρων για εστίαση της ενεργής ειδοποίησης."
|
msgstr "Ο συνδυασμός πλήκτρων για εστίαση της ενεργής ειδοποίησης."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||||
msgid "Keybinding to toggle the screen recorder"
|
msgid "Keybinding to toggle the screen recorder"
|
||||||
msgstr "Συνδυασμός πλήκτρων για την εναλλαγή της μαγνητοσκόπησης οθόνης"
|
msgstr "Συνδυασμός πλήκτρων για την εναλλαγή της μαγνητοσκόπησης οθόνης"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||||
msgid "Keybinding to start/stop the builtin screen recorder."
|
msgid "Keybinding to start/stop the builtin screen recorder."
|
||||||
msgstr ""
|
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"
|
msgid "Which keyboard to use"
|
||||||
msgstr "Ποιο πληκτρολόγιο θα χρησιμοποιηθεί"
|
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."
|
msgid "The type of keyboard to use."
|
||||||
msgstr "Ο τύπος του πληκτρολογίου που θα χρησιμοποιηθεί."
|
msgstr "Ο τύπος του πληκτρολογίου που θα χρησιμοποιηθεί."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||||
msgid "Framerate used for recording screencasts."
|
msgid "Framerate used for recording screencasts."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ο ρυθμός καρέ που θα χρησιμοποιηθεί για την καταγραφή του βίντεο οθόνης."
|
"Ο ρυθμός καρέ που θα χρησιμοποιηθεί για την καταγραφή του βίντεο οθόνης."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||||
msgid ""
|
msgid ""
|
||||||
"The framerate of the resulting screencast recordered by GNOME Shell's "
|
"The framerate of the resulting screencast recordered by GNOME Shell's "
|
||||||
"screencast recorder in frames-per-second."
|
"screencast recorder in frames-per-second."
|
||||||
@ -269,13 +283,13 @@ msgstr ""
|
|||||||
"Ο ρυθμός καρέ του στιγμιότυπου που παράγεται από τον εγγραφέα βίντεο οθόνης "
|
"Ο ρυθμός καρέ του στιγμιότυπου που παράγεται από τον εγγραφέα βίντεο οθόνης "
|
||||||
"του GNOME Shell σε καρέ ανά δευτερόλεπτο."
|
"του GNOME Shell σε καρέ ανά δευτερόλεπτο."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||||
msgid "The gstreamer pipeline used to encode the screencast"
|
msgid "The gstreamer pipeline used to encode the screencast"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ο δίαυλος του gstreamer που χρησιμοποιήθηκε για την κωδικοποίηση του βίντεο "
|
"Ο δίαυλος του gstreamer που χρησιμοποιήθηκε για την κωδικοποίηση του βίντεο "
|
||||||
"οθόνης"
|
"οθόνης"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
|
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
|
||||||
@ -303,12 +317,12 @@ msgstr ""
|
|||||||
"χρησιμοποιείται ως παράδειγμα για το πιθανό βέλτιστο αριθμό πυρήνων του "
|
"χρησιμοποιείται ως παράδειγμα για το πιθανό βέλτιστο αριθμό πυρήνων του "
|
||||||
"συστήματος."
|
"συστήματος."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||||
msgid "File extension used for storing the screencast"
|
msgid "File extension used for storing the screencast"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Επέκταση αρχείου που θα χρησιμοποιηθεί για την αποθήκευση του βίντεο οθόνης"
|
"Επέκταση αρχείου που θα χρησιμοποιηθεί για την αποθήκευση του βίντεο οθόνης"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||||
msgid ""
|
msgid ""
|
||||||
"The filename for recorded screencasts will be a unique filename based on the "
|
"The filename for recorded screencasts will be a unique filename based on the "
|
||||||
"current date, and use this extension. It should be changed when recording to "
|
"current date, and use this extension. It should be changed when recording to "
|
||||||
@ -318,11 +332,11 @@ msgstr ""
|
|||||||
"βασισμένο στην τρέχουσα ημερομηνία και θα χρησιμοποιεί αυτή την επέκταση. Θα "
|
"βασισμένο στην τρέχουσα ημερομηνία και θα χρησιμοποιεί αυτή την επέκταση. Θα "
|
||||||
"πρέπει να αλλάζει όταν γίνεται εγγραφή σε διαφορετικό πρότυπο περιέκτη."
|
"πρέπει να αλλάζει όταν γίνεται εγγραφή σε διαφορετικό πρότυπο περιέκτη."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||||
msgid "The application icon mode."
|
msgid "The application icon mode."
|
||||||
msgstr "Η κατάσταση εικονιδίου εφαρμογής."
|
msgstr "Η κατάσταση εικονιδίου εφαρμογής."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||||
msgid ""
|
msgid ""
|
||||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||||
@ -333,22 +347,22 @@ msgstr ""
|
|||||||
"παραθύρου), 'app-icon-only' (εμφανίζει μόνο το εικονίδιο της εφαρμογής) ή "
|
"παραθύρου), 'app-icon-only' (εμφανίζει μόνο το εικονίδιο της εφαρμογής) ή "
|
||||||
"'both' - και τα δύο."
|
"'both' - και τα δύο."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
||||||
msgid "Attach modal dialog to the parent window"
|
msgid "Attach modal dialog to the parent window"
|
||||||
msgstr "Προσάρτηση αναγκαστικού διαλόγου στο γονικό παράθυρο"
|
msgstr "Προσάρτηση αναγκαστικού διαλόγου στο γονικό παράθυρο"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
||||||
msgid ""
|
msgid ""
|
||||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Αυτό το κλειδί υπερισχύει του κλειδιού στο org.gnome.mutter όταν εκτελείται "
|
"Αυτό το κλειδί υπερισχύει του κλειδιού στο org.gnome.mutter όταν εκτελείται "
|
||||||
"το κέλυφος GNOME."
|
"το κέλυφος GNOME."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:46
|
||||||
msgid "Arrangement of buttons on the titlebar"
|
msgid "Arrangement of buttons on the titlebar"
|
||||||
msgstr "Διάταξη των κουμπιών στη γραμμή τίτλου"
|
msgstr "Διάταξη των κουμπιών στη γραμμή τίτλου"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:47
|
||||||
msgid ""
|
msgid ""
|
||||||
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
||||||
"GNOME Shell."
|
"GNOME Shell."
|
||||||
@ -356,17 +370,17 @@ msgstr ""
|
|||||||
"Αυτό το κλειδί υπερισχύει του κλειδιού στο org.gnome.desktop.wm.preferences "
|
"Αυτό το κλειδί υπερισχύει του κλειδιού στο org.gnome.desktop.wm.preferences "
|
||||||
"όταν εκτελείται το κέλυφος GNOME."
|
"όταν εκτελείται το κέλυφος GNOME."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:46
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:48
|
||||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ενεργοποίηση της παράθεσης άκρων όταν αποθέτετε παράθυρα στις άκρες της "
|
"Ενεργοποίηση της παράθεσης άκρων όταν αποθέτετε παράθυρα στις άκρες της "
|
||||||
"οθόνης"
|
"οθόνης"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:47
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:49
|
||||||
msgid "Workspaces are managed dynamically"
|
msgid "Workspaces are managed dynamically"
|
||||||
msgstr "Οι χώροι εργασίας διαχειρίζονται δυναμικά"
|
msgstr "Οι χώροι εργασίας διαχειρίζονται δυναμικά"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:48
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:50
|
||||||
msgid "Workspaces only on primary monitor"
|
msgid "Workspaces only on primary monitor"
|
||||||
msgstr "Χώροι εργασίας μόνο στην κύρια οθόνη"
|
msgstr "Χώροι εργασίας μόνο στην κύρια οθόνη"
|
||||||
|
|
||||||
@ -388,43 +402,42 @@ msgstr ""
|
|||||||
"πολλαπλών επιλογών."
|
"πολλαπλών επιλογών."
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:405
|
#: ../js/gdm/loginDialog.js:405
|
||||||
#| msgid "Session..."
|
|
||||||
msgid "Session…"
|
msgid "Session…"
|
||||||
msgstr "Συνεδρία…"
|
msgstr "Συνεδρία…"
|
||||||
|
|
||||||
#. translators: this message is shown below the user list on the
|
#. translators: this message is shown below the user list on the
|
||||||
#. login screen. It can be activated to reveal an entry for
|
#. login screen. It can be activated to reveal an entry for
|
||||||
#. manually entering the username.
|
#. manually entering the username.
|
||||||
#: ../js/gdm/loginDialog.js:629
|
#: ../js/gdm/loginDialog.js:630
|
||||||
msgid "Not listed?"
|
msgid "Not listed?"
|
||||||
msgstr "Δεν είστε στη λίστα;"
|
msgstr "Δεν είστε στη λίστα;"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:783 ../js/ui/components/networkAgent.js:137
|
#: ../js/gdm/loginDialog.js:787 ../js/ui/components/networkAgent.js:137
|
||||||
#: ../js/ui/components/polkitAgent.js:162 ../js/ui/endSessionDialog.js:375
|
#: ../js/ui/components/polkitAgent.js:162 ../js/ui/endSessionDialog.js:376
|
||||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||||
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:126
|
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:100
|
||||||
#: ../js/ui/userMenu.js:932
|
#: ../js/ui/userMenu.js:938
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Ακύρωση"
|
msgstr "Ακύρωση"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:799
|
#: ../js/gdm/loginDialog.js:803
|
||||||
msgctxt "button"
|
msgctxt "button"
|
||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr "Σύνδεση"
|
msgstr "Σύνδεση"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:799
|
#: ../js/gdm/loginDialog.js:803
|
||||||
msgid "Next"
|
msgid "Next"
|
||||||
msgstr "Επόμενο"
|
msgstr "Επόμενο"
|
||||||
|
|
||||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||||
#. is not visible here since we only care about phase2 authentication
|
#. 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:904 ../js/ui/components/networkAgent.js:260
|
#: ../js/gdm/loginDialog.js:918 ../js/ui/components/networkAgent.js:260
|
||||||
#: ../js/ui/components/networkAgent.js:278
|
#: ../js/ui/components/networkAgent.js:278
|
||||||
msgid "Username: "
|
msgid "Username: "
|
||||||
msgstr "Όνομα χρήστη: "
|
msgstr "Όνομα χρήστη: "
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:1157
|
#: ../js/gdm/loginDialog.js:1174
|
||||||
msgid "Login Window"
|
msgid "Login Window"
|
||||||
msgstr "Παράθυρο σύνδεσης"
|
msgstr "Παράθυρο σύνδεσης"
|
||||||
|
|
||||||
@ -433,8 +446,8 @@ msgstr "Παράθυρο σύνδεσης"
|
|||||||
msgid "Power"
|
msgid "Power"
|
||||||
msgstr "Ενέργεια"
|
msgstr "Ενέργεια"
|
||||||
|
|
||||||
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:694 ../js/ui/userMenu.js:698
|
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:696 ../js/ui/userMenu.js:700
|
||||||
#: ../js/ui/userMenu.js:814
|
#: ../js/ui/userMenu.js:816
|
||||||
msgid "Suspend"
|
msgid "Suspend"
|
||||||
msgstr "Αναστολή"
|
msgstr "Αναστολή"
|
||||||
|
|
||||||
@ -442,58 +455,58 @@ msgstr "Αναστολή"
|
|||||||
msgid "Restart"
|
msgid "Restart"
|
||||||
msgstr "Επανεκκίνηση"
|
msgstr "Επανεκκίνηση"
|
||||||
|
|
||||||
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:696
|
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:698
|
||||||
#: ../js/ui/userMenu.js:698 ../js/ui/userMenu.js:813 ../js/ui/userMenu.js:936
|
#: ../js/ui/userMenu.js:700 ../js/ui/userMenu.js:815 ../js/ui/userMenu.js:942
|
||||||
msgid "Power Off"
|
msgid "Power Off"
|
||||||
msgstr "Απενεργοποίηση"
|
msgstr "Απενεργοποίηση"
|
||||||
|
|
||||||
#: ../js/gdm/util.js:182
|
#: ../js/gdm/util.js:249
|
||||||
msgid "Authentication error"
|
msgid "Authentication error"
|
||||||
msgstr "Σφάλμα πιστοποίησης"
|
msgstr "Σφάλμα πιστοποίησης"
|
||||||
|
|
||||||
#. Translators: this message is shown below the password entry field
|
#. Translators: this message is shown below the password entry field
|
||||||
#. to indicate the user can swipe their finger instead
|
#. to indicate the user can swipe their finger instead
|
||||||
#: ../js/gdm/util.js:299
|
#: ../js/gdm/util.js:366
|
||||||
msgid "(or swipe finger)"
|
msgid "(or swipe finger)"
|
||||||
msgstr "(ή περάστε το δάκτυλο σας)"
|
msgstr "(ή περάστε το δάκτυλο σας)"
|
||||||
|
|
||||||
#: ../js/gdm/util.js:324
|
#: ../js/gdm/util.js:391
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "(e.g., user or %s)"
|
msgid "(e.g., user or %s)"
|
||||||
msgstr "(π.χ χρήστης ή %s)"
|
msgstr "(π.χ χρήστης ή %s)"
|
||||||
|
|
||||||
#: ../js/misc/util.js:94
|
#: ../js/misc/util.js:97
|
||||||
msgid "Command not found"
|
msgid "Command not found"
|
||||||
msgstr "Δε βρέθηκε η εντολή"
|
msgstr "Δε βρέθηκε η εντολή"
|
||||||
|
|
||||||
#. Replace "Error invoking GLib.shell_parse_argv: " with
|
#. Replace "Error invoking GLib.shell_parse_argv: " with
|
||||||
#. something nicer
|
#. something nicer
|
||||||
#: ../js/misc/util.js:127
|
#: ../js/misc/util.js:130
|
||||||
msgid "Could not parse command:"
|
msgid "Could not parse command:"
|
||||||
msgstr "Δεν ήταν δυνατό να επεξεργαστεί η εντολή:"
|
msgstr "Δεν ήταν δυνατό να επεξεργαστεί η εντολή:"
|
||||||
|
|
||||||
#: ../js/misc/util.js:135
|
#: ../js/misc/util.js:138
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Execution of '%s' failed:"
|
msgid "Execution of '%s' failed:"
|
||||||
msgstr "Η εκτέλεση του '%s' απέτυχε:"
|
msgstr "Η εκτέλεση του '%s' απέτυχε:"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:348
|
#: ../js/ui/appDisplay.js:349
|
||||||
msgid "Frequent"
|
msgid "Frequent"
|
||||||
msgstr "Συχνό"
|
msgstr "Συχνό"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:355
|
#: ../js/ui/appDisplay.js:356
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Όλα"
|
msgstr "Όλα"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:913
|
#: ../js/ui/appDisplay.js:914
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "Νέο παράθυρο"
|
msgstr "Νέο παράθυρο"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:916 ../js/ui/dash.js:284
|
#: ../js/ui/appDisplay.js:917 ../js/ui/dash.js:284
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Αφαίρεση από τα αγαπημένα"
|
msgstr "Αφαίρεση από τα αγαπημένα"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:917
|
#: ../js/ui/appDisplay.js:918
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Προσθήκη στα αγαπημένα"
|
msgstr "Προσθήκη στα αγαπημένα"
|
||||||
|
|
||||||
@ -507,7 +520,7 @@ msgstr "Tο %s προστέθηκε στα αγαπημένα σας."
|
|||||||
msgid "%s has been removed from your favorites."
|
msgid "%s has been removed from your favorites."
|
||||||
msgstr "Tο %s αφαιρέθηκε από τα αγαπημένα σας."
|
msgstr "Tο %s αφαιρέθηκε από τα αγαπημένα σας."
|
||||||
|
|
||||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:787
|
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:789
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Ρυθμίσεις"
|
msgstr "Ρυθμίσεις"
|
||||||
|
|
||||||
@ -530,7 +543,7 @@ msgctxt "event list time"
|
|||||||
msgid "%H\\u2236%M"
|
msgid "%H\\u2236%M"
|
||||||
msgstr "%Ω\\u2236%Λ"
|
msgstr "%Ω\\u2236%Λ"
|
||||||
|
|
||||||
#. Transators: Shown in calendar event list, if 12h format,
|
#. Translators: Shown in calendar event list, if 12h format,
|
||||||
#. \u2236 is a ratio character, similar to : and \u2009 is
|
#. \u2236 is a ratio character, similar to : and \u2009 is
|
||||||
#. a thin space
|
#. a thin space
|
||||||
#: ../js/ui/calendar.js:77
|
#: ../js/ui/calendar.js:77
|
||||||
@ -632,35 +645,35 @@ msgid "S"
|
|||||||
msgstr "Σ"
|
msgstr "Σ"
|
||||||
|
|
||||||
#. Translators: Text to show if there are no events
|
#. Translators: Text to show if there are no events
|
||||||
#: ../js/ui/calendar.js:692
|
#: ../js/ui/calendar.js:720
|
||||||
msgid "Nothing Scheduled"
|
msgid "Nothing Scheduled"
|
||||||
msgstr "Τίποτα προγραμματισμένο"
|
msgstr "Τίποτα προγραμματισμένο"
|
||||||
|
|
||||||
#. Translators: Shown on calendar heading when selected day occurs on current year
|
#. Translators: Shown on calendar heading when selected day occurs on current year
|
||||||
#: ../js/ui/calendar.js:708
|
#: ../js/ui/calendar.js:736
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %B %d"
|
msgstr "%A, %B %d"
|
||||||
|
|
||||||
#. Translators: Shown on calendar heading when selected day occurs on different year
|
#. Translators: Shown on calendar heading when selected day occurs on different year
|
||||||
#: ../js/ui/calendar.js:711
|
#: ../js/ui/calendar.js:739
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d, %Y"
|
msgid "%A, %B %d, %Y"
|
||||||
msgstr "%A, %B %d, %Y"
|
msgstr "%A, %B %d, %Y"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:721
|
#: ../js/ui/calendar.js:749
|
||||||
msgid "Today"
|
msgid "Today"
|
||||||
msgstr "Σήμερα"
|
msgstr "Σήμερα"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:725
|
#: ../js/ui/calendar.js:753
|
||||||
msgid "Tomorrow"
|
msgid "Tomorrow"
|
||||||
msgstr "Αύριο"
|
msgstr "Αύριο"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:736
|
#: ../js/ui/calendar.js:764
|
||||||
msgid "This week"
|
msgid "This week"
|
||||||
msgstr "Αυτή η εβδομάδα"
|
msgstr "Αυτή η εβδομάδα"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:744
|
#: ../js/ui/calendar.js:772
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr "Επόμενη εβδομάδα"
|
msgstr "Επόμενη εβδομάδα"
|
||||||
|
|
||||||
@ -676,12 +689,12 @@ msgstr "Αποσυνδέθηκε εξωτερικός δίσκος"
|
|||||||
msgid "Removable Devices"
|
msgid "Removable Devices"
|
||||||
msgstr "Αφαιρούμενες συσκευές"
|
msgstr "Αφαιρούμενες συσκευές"
|
||||||
|
|
||||||
#: ../js/ui/components/autorunManager.js:593
|
#: ../js/ui/components/autorunManager.js:594
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Open with %s"
|
msgid "Open with %s"
|
||||||
msgstr "Άνοιγμα με %s"
|
msgstr "Άνοιγμα με %s"
|
||||||
|
|
||||||
#: ../js/ui/components/autorunManager.js:619
|
#: ../js/ui/components/autorunManager.js:620
|
||||||
msgid "Eject"
|
msgid "Eject"
|
||||||
msgstr "Εξαγωγή"
|
msgstr "Εξαγωγή"
|
||||||
|
|
||||||
@ -790,7 +803,7 @@ msgid "Sorry, that didn't work. Please try again."
|
|||||||
msgstr "Συγνώμη, αυτό δεν λειτούργησε. Παρακαλώ προσπαθήστε ξανά."
|
msgstr "Συγνώμη, αυτό δεν λειτούργησε. Παρακαλώ προσπαθήστε ξανά."
|
||||||
|
|
||||||
#. Translators: this is a filename used for screencast recording
|
#. Translators: this is a filename used for screencast recording
|
||||||
#: ../js/ui/components/recorder.js:48
|
#: ../js/ui/components/recorder.js:47
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Screencast from %d %t"
|
msgid "Screencast from %d %t"
|
||||||
msgstr "Βίντεο οθόνης από %d %t"
|
msgstr "Βίντεο οθόνης από %d %t"
|
||||||
@ -1037,7 +1050,7 @@ msgstr "Προβολή λογαριασμού"
|
|||||||
msgid "Unknown reason"
|
msgid "Unknown reason"
|
||||||
msgstr "Άγνωστος λόγος"
|
msgstr "Άγνωστος λόγος"
|
||||||
|
|
||||||
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:97
|
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:96
|
||||||
msgid "Windows"
|
msgid "Windows"
|
||||||
msgstr "Παράθυρα"
|
msgstr "Παράθυρα"
|
||||||
|
|
||||||
@ -1066,7 +1079,7 @@ msgstr "Ρυθμίσεις ημερομηνίας & ώρας"
|
|||||||
#. Translators: This is the date format to use when the calendar popup is
|
#. 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").
|
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
|
||||||
#.
|
#.
|
||||||
#: ../js/ui/dateMenu.js:205
|
#: ../js/ui/dateMenu.js:215
|
||||||
msgid "%A %B %e, %Y"
|
msgid "%A %B %e, %Y"
|
||||||
msgstr "%A %B %e, %Y"
|
msgstr "%A %B %e, %Y"
|
||||||
|
|
||||||
@ -1235,7 +1248,6 @@ msgid "Remove"
|
|||||||
msgstr "Αφαίρεση"
|
msgstr "Αφαίρεση"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1501
|
#: ../js/ui/messageTray.js:1501
|
||||||
#| msgid "No Messages"
|
|
||||||
msgid "Clear Messages"
|
msgid "Clear Messages"
|
||||||
msgstr "Καθαρισμός μηνυμάτων"
|
msgstr "Καθαρισμός μηνυμάτων"
|
||||||
|
|
||||||
@ -1243,15 +1255,15 @@ msgstr "Καθαρισμός μηνυμάτων"
|
|||||||
msgid "Notification Settings"
|
msgid "Notification Settings"
|
||||||
msgstr "Ρυθμίσεις ειδοποιήσεων"
|
msgstr "Ρυθμίσεις ειδοποιήσεων"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1707
|
#: ../js/ui/messageTray.js:1709
|
||||||
msgid "No Messages"
|
msgid "No Messages"
|
||||||
msgstr "Κανένα μήνυμα"
|
msgstr "Κανένα μήνυμα"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1787
|
#: ../js/ui/messageTray.js:1785
|
||||||
msgid "Message Tray"
|
msgid "Message Tray"
|
||||||
msgstr "Περιοχή ειδοποιήσεων"
|
msgstr "Περιοχή ειδοποιήσεων"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:2864
|
#: ../js/ui/messageTray.js:2813
|
||||||
msgid "System Information"
|
msgid "System Information"
|
||||||
msgstr "Πληροφορίες συστήματος"
|
msgstr "Πληροφορίες συστήματος"
|
||||||
|
|
||||||
@ -1260,14 +1272,14 @@ msgctxt "program"
|
|||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "Άγνωστο"
|
msgstr "Άγνωστο"
|
||||||
|
|
||||||
#: ../js/ui/overviewControls.js:460 ../js/ui/screenShield.js:153
|
#: ../js/ui/overviewControls.js:463 ../js/ui/screenShield.js:149
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d new message"
|
msgid "%d new message"
|
||||||
msgid_plural "%d new messages"
|
msgid_plural "%d new messages"
|
||||||
msgstr[0] "%d νέο μήνυμα"
|
msgstr[0] "%d νέο μήνυμα"
|
||||||
msgstr[1] "%d νέα μηνύματα"
|
msgstr[1] "%d νέα μηνύματα"
|
||||||
|
|
||||||
#: ../js/ui/overview.js:82
|
#: ../js/ui/overview.js:84
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Αναίρεση"
|
msgstr "Αναίρεση"
|
||||||
|
|
||||||
@ -1279,22 +1291,21 @@ msgstr "Επισκόπηση"
|
|||||||
#. in the search entry when no search is
|
#. in the search entry when no search is
|
||||||
#. active; it should not exceed ~30
|
#. active; it should not exceed ~30
|
||||||
#. characters.
|
#. characters.
|
||||||
#: ../js/ui/overview.js:284
|
#: ../js/ui/overview.js:271
|
||||||
#| msgid "Type to search..."
|
|
||||||
msgid "Type to search…"
|
msgid "Type to search…"
|
||||||
msgstr "Πληκτρολογήστε για αναζήτηση…"
|
msgstr "Πληκτρολογήστε για αναζήτηση…"
|
||||||
|
|
||||||
#: ../js/ui/panel.js:613
|
#: ../js/ui/panel.js:633
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Έξοδος"
|
msgstr "Έξοδος"
|
||||||
|
|
||||||
#. Translators: If there is no suitable word for "Activities"
|
#. 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:642
|
#: ../js/ui/panel.js:657
|
||||||
msgid "Activities"
|
msgid "Activities"
|
||||||
msgstr "Δραστηριότητες"
|
msgstr "Δραστηριότητες"
|
||||||
|
|
||||||
#: ../js/ui/panel.js:983
|
#: ../js/ui/panel.js:954
|
||||||
msgid "Top Bar"
|
msgid "Top Bar"
|
||||||
msgstr "Πάνω μπάρα"
|
msgstr "Πάνω μπάρα"
|
||||||
|
|
||||||
@ -1307,32 +1318,32 @@ msgstr "Πάνω μπάρα"
|
|||||||
msgid "toggle-switch-us"
|
msgid "toggle-switch-us"
|
||||||
msgstr "toggle-switch-intl"
|
msgstr "toggle-switch-intl"
|
||||||
|
|
||||||
#: ../js/ui/runDialog.js:205
|
#: ../js/ui/runDialog.js:74
|
||||||
msgid "Enter a Command"
|
msgid "Enter a Command"
|
||||||
msgstr "Εισαγωγή εντολής"
|
msgstr "Εισαγωγή εντολής"
|
||||||
|
|
||||||
#: ../js/ui/runDialog.js:241
|
#: ../js/ui/runDialog.js:110
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Κλείσιμο"
|
msgstr "Κλείσιμο"
|
||||||
|
|
||||||
#. Translators: This is a time format for a date in
|
#. Translators: This is a time format for a date in
|
||||||
#. long format
|
#. long format
|
||||||
#: ../js/ui/screenShield.js:90
|
#: ../js/ui/screenShield.js:86
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %B %d"
|
msgstr "%A, %B %d"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:155
|
#: ../js/ui/screenShield.js:151
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d new notification"
|
msgid "%d new notification"
|
||||||
msgid_plural "%d new notifications"
|
msgid_plural "%d new notifications"
|
||||||
msgstr[0] "%d νέα ειδοποίηση"
|
msgstr[0] "%d νέα ειδοποίηση"
|
||||||
msgstr[1] "%d νέες ειδοποιήσεις"
|
msgstr[1] "%d νέες ειδοποιήσεις"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:442 ../js/ui/userMenu.js:805
|
#: ../js/ui/screenShield.js:438 ../js/ui/userMenu.js:807
|
||||||
msgid "Lock"
|
msgid "Lock"
|
||||||
msgstr "Κλείδωμα"
|
msgstr "Κλείδωμα"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:639
|
#: ../js/ui/screenShield.js:641
|
||||||
msgid "GNOME needs to lock the screen"
|
msgid "GNOME needs to lock the screen"
|
||||||
msgstr "Το GNOME χρειάζεται να κλειδώσει την οθόνη"
|
msgstr "Το GNOME χρειάζεται να κλειδώσει την οθόνη"
|
||||||
|
|
||||||
@ -1343,21 +1354,19 @@ msgstr "Το GNOME χρειάζεται να κλειδώσει την οθόν
|
|||||||
#.
|
#.
|
||||||
#. XXX: another option is to kick the user into the gdm login
|
#. XXX: another option is to kick the user into the gdm login
|
||||||
#. screen, where we're not affected by grabs
|
#. screen, where we're not affected by grabs
|
||||||
#: ../js/ui/screenShield.js:758 ../js/ui/screenShield.js:1169
|
#: ../js/ui/screenShield.js:762 ../js/ui/screenShield.js:1198
|
||||||
#| msgid "Unable to connect to %s"
|
|
||||||
msgid "Unable to lock"
|
msgid "Unable to lock"
|
||||||
msgstr "Αδυναμία κλειδώματος"
|
msgstr "Αδυναμία κλειδώματος"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:759 ../js/ui/screenShield.js:1170
|
#: ../js/ui/screenShield.js:763 ../js/ui/screenShield.js:1199
|
||||||
msgid "Lock was blocked by an application"
|
msgid "Lock was blocked by an application"
|
||||||
msgstr "Το κλείδωμα εμποδίστηκε από μια εφαρμογή"
|
msgstr "Το κλείδωμα εμποδίστηκε από μια εφαρμογή"
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:431
|
#: ../js/ui/searchDisplay.js:453
|
||||||
#| msgid "Searching..."
|
|
||||||
msgid "Searching…"
|
msgid "Searching…"
|
||||||
msgstr "Αναζήτηση…"
|
msgstr "Αναζήτηση…"
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:475
|
#: ../js/ui/searchDisplay.js:497
|
||||||
msgid "No results."
|
msgid "No results."
|
||||||
msgstr "Δε βρέθηκαν αποτελέσματα."
|
msgstr "Δε βρέθηκαν αποτελέσματα."
|
||||||
|
|
||||||
@ -1369,11 +1378,11 @@ msgstr "Αντιγραφή"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "Επικόλληση"
|
msgstr "Επικόλληση"
|
||||||
|
|
||||||
#: ../js/ui/shellEntry.js:105
|
#: ../js/ui/shellEntry.js:101
|
||||||
msgid "Show Text"
|
msgid "Show Text"
|
||||||
msgstr "Εμφάνιση κειμένου"
|
msgstr "Εμφάνιση κειμένου"
|
||||||
|
|
||||||
#: ../js/ui/shellEntry.js:107
|
#: ../js/ui/shellEntry.js:103
|
||||||
msgid "Hide Text"
|
msgid "Hide Text"
|
||||||
msgstr "Απόκρυψη κειμένου"
|
msgstr "Απόκρυψη κειμένου"
|
||||||
|
|
||||||
@ -1385,7 +1394,7 @@ msgstr "Κωδικός"
|
|||||||
msgid "Remember Password"
|
msgid "Remember Password"
|
||||||
msgstr "Απομνημόνευση κωδικού"
|
msgstr "Απομνημόνευση κωδικού"
|
||||||
|
|
||||||
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:140
|
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:114
|
||||||
msgid "Unlock"
|
msgid "Unlock"
|
||||||
msgstr "Ξεκλείδωμα"
|
msgstr "Ξεκλείδωμα"
|
||||||
|
|
||||||
@ -1449,12 +1458,10 @@ msgid "Visibility"
|
|||||||
msgstr "Ορατότητα"
|
msgstr "Ορατότητα"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:59
|
#: ../js/ui/status/bluetooth.js:59
|
||||||
#| msgid "Send Files to Device..."
|
|
||||||
msgid "Send Files to Device…"
|
msgid "Send Files to Device…"
|
||||||
msgstr "Αποστολή αρχείων σε συσκευή…"
|
msgstr "Αποστολή αρχείων σε συσκευή…"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:60
|
#: ../js/ui/status/bluetooth.js:60
|
||||||
#| msgid "Set Up a New Device..."
|
|
||||||
msgid "Set Up a New Device…"
|
msgid "Set Up a New Device…"
|
||||||
msgstr "Ρύθμιση νέας συσκευής…"
|
msgstr "Ρύθμιση νέας συσκευής…"
|
||||||
|
|
||||||
@ -1481,7 +1488,6 @@ msgid "connecting..."
|
|||||||
msgstr "σύνδεση..."
|
msgstr "σύνδεση..."
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:239
|
#: ../js/ui/status/bluetooth.js:239
|
||||||
#| msgid "Send Files..."
|
|
||||||
msgid "Send Files…"
|
msgid "Send Files…"
|
||||||
msgstr "Αποστολή αρχείων…"
|
msgstr "Αποστολή αρχείων…"
|
||||||
|
|
||||||
@ -1694,7 +1700,6 @@ msgstr "Ρυθμίσεις τροφοδοσίας"
|
|||||||
#. 0 is reported when UPower does not have enough data
|
#. 0 is reported when UPower does not have enough data
|
||||||
#. to estimate battery life
|
#. to estimate battery life
|
||||||
#: ../js/ui/status/power.js:99
|
#: ../js/ui/status/power.js:99
|
||||||
#| msgid "Estimating..."
|
|
||||||
msgid "Estimating…"
|
msgid "Estimating…"
|
||||||
msgstr "Υπολογισμός…"
|
msgstr "Υπολογισμός…"
|
||||||
|
|
||||||
@ -1794,59 +1799,59 @@ msgstr "Ένταση ήχου"
|
|||||||
msgid "Microphone"
|
msgid "Microphone"
|
||||||
msgstr "Μικρόφωνο"
|
msgstr "Μικρόφωνο"
|
||||||
|
|
||||||
#: ../js/ui/unlockDialog.js:151
|
#: ../js/ui/unlockDialog.js:125
|
||||||
msgid "Log in as another user"
|
msgid "Log in as another user"
|
||||||
msgstr "Είσοδος ως άλλος χρήστης"
|
msgstr "Είσοδος ως άλλος χρήστης"
|
||||||
|
|
||||||
#: ../js/ui/unlockDialog.js:177
|
#: ../js/ui/unlockDialog.js:146
|
||||||
msgid "Unlock Window"
|
msgid "Unlock Window"
|
||||||
msgstr "Ξεκλείδωμα παραθύρου"
|
msgstr "Ξεκλείδωμα παραθύρου"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:192
|
#: ../js/ui/userMenu.js:193
|
||||||
msgid "Available"
|
msgid "Available"
|
||||||
msgstr "Διαθέσιμος-η"
|
msgstr "Διαθέσιμος-η"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:195
|
#: ../js/ui/userMenu.js:196
|
||||||
msgid "Busy"
|
msgid "Busy"
|
||||||
msgstr "Απασχολημένος-η"
|
msgstr "Απασχολημένος-η"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:198
|
#: ../js/ui/userMenu.js:199
|
||||||
msgid "Invisible"
|
msgid "Invisible"
|
||||||
msgstr "Αόρατος-η"
|
msgstr "Αόρατος-η"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:201
|
#: ../js/ui/userMenu.js:202
|
||||||
msgid "Away"
|
msgid "Away"
|
||||||
msgstr "Απουσιάζει"
|
msgstr "Απουσιάζει"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:204
|
#: ../js/ui/userMenu.js:205
|
||||||
msgid "Idle"
|
msgid "Idle"
|
||||||
msgstr "Αδρανής"
|
msgstr "Αδρανής"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:207
|
#: ../js/ui/userMenu.js:208
|
||||||
msgid "Offline"
|
msgid "Offline"
|
||||||
msgstr "Εκτός σύνδεσης"
|
msgstr "Εκτός σύνδεσης"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:779
|
#: ../js/ui/userMenu.js:781
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Ειδοποιήσεις"
|
msgstr "Ειδοποιήσεις"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:795
|
#: ../js/ui/userMenu.js:797
|
||||||
msgid "Switch User"
|
msgid "Switch User"
|
||||||
msgstr "Αλλαγή χρήστη"
|
msgstr "Αλλαγή χρήστη"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:800
|
#: ../js/ui/userMenu.js:802
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "Αποσύνδεση"
|
msgstr "Αποσύνδεση"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:820
|
#: ../js/ui/userMenu.js:822
|
||||||
msgid "Install Updates & Restart"
|
msgid "Install Updates & Restart"
|
||||||
msgstr "Εγκατάσταση ενημερώσεων & επανεκκίνηση"
|
msgstr "Εγκατάσταση ενημερώσεων & επανεκκίνηση"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:838
|
#: ../js/ui/userMenu.js:840
|
||||||
msgid "Your chat status will be set to busy"
|
msgid "Your chat status will be set to busy"
|
||||||
msgstr "Η κατάσταση συνομιλίας σας θα ορισθεί σε απασχολημένος"
|
msgstr "Η κατάσταση συνομιλίας σας θα ορισθεί σε απασχολημένος"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:839
|
#: ../js/ui/userMenu.js:841
|
||||||
msgid ""
|
msgid ""
|
||||||
"Notifications are now disabled, including chat messages. Your online status "
|
"Notifications are now disabled, including chat messages. Your online status "
|
||||||
"has been adjusted to let others know that you might not see their messages."
|
"has been adjusted to let others know that you might not see their messages."
|
||||||
@ -1855,34 +1860,36 @@ msgstr ""
|
|||||||
"κατάσταση σας έχει ορισθεί έτσι ώστε να γίνεται γνωστό ότι πιθανόν να μην "
|
"κατάσταση σας έχει ορισθεί έτσι ώστε να γίνεται γνωστό ότι πιθανόν να μην "
|
||||||
"δείτε τα μηνύματα τους."
|
"δείτε τα μηνύματα τους."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:885
|
#: ../js/ui/userMenu.js:888
|
||||||
msgid "Other users are logged in."
|
msgid "Other users are logged in."
|
||||||
msgstr "Και άλλοι χρήστες είναι συνδεμένοι."
|
msgstr "Και άλλοι χρήστες είναι συνδεμένοι."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:890
|
#: ../js/ui/userMenu.js:893
|
||||||
msgid "Shutting down might cause them to lose unsaved work."
|
msgid "Shutting down might cause them to lose unsaved work."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Κλείνοντας μπορεί να τους προκαλέσετε την απώλεια αναποθήκευτης εργασίας."
|
"Κλείνοντας μπορεί να τους προκαλέσετε την απώλεια αναποθήκευτης εργασίας."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:916
|
#. Translators: Remote here refers to a remote session, like a ssh login
|
||||||
|
#: ../js/ui/userMenu.js:921
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (remote)"
|
msgid "%s (remote)"
|
||||||
msgstr "%s (απομακρυσμένο)"
|
msgstr "%s (απομακρυσμένο)"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:918
|
#. Translators: Console here refers to a tty like a VT console
|
||||||
|
#: ../js/ui/userMenu.js:924
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (console)"
|
msgid "%s (console)"
|
||||||
msgstr "%s (κονσόλα)"
|
msgstr "%s (κονσόλα)"
|
||||||
|
|
||||||
#: ../js/ui/viewSelector.js:101
|
#: ../js/ui/viewSelector.js:100
|
||||||
msgid "Applications"
|
msgid "Applications"
|
||||||
msgstr "Εφαρμογές"
|
msgstr "Εφαρμογές"
|
||||||
|
|
||||||
#: ../js/ui/viewSelector.js:105
|
#: ../js/ui/viewSelector.js:104
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Αναζήτηση"
|
msgstr "Αναζήτηση"
|
||||||
|
|
||||||
#: ../js/ui/wanda.js:92
|
#: ../js/ui/wanda.js:77
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sorry, no wisdom for you today:\n"
|
"Sorry, no wisdom for you today:\n"
|
||||||
@ -1891,7 +1898,7 @@ msgstr ""
|
|||||||
"Συγγνώμη, κανένα απόφθεγμα για εσάς σήμερα:\n"
|
"Συγγνώμη, κανένα απόφθεγμα για εσάς σήμερα:\n"
|
||||||
"%s"
|
"%s"
|
||||||
|
|
||||||
#: ../js/ui/wanda.js:96
|
#: ../js/ui/wanda.js:81
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s the Oracle says"
|
msgid "%s the Oracle says"
|
||||||
msgstr "%s ο Προφήτης λέει"
|
msgstr "%s ο Προφήτης λέει"
|
||||||
|
1164
po/en_GB.po
1164
po/en_GB.po
File diff suppressed because it is too large
Load Diff
240
po/es.po
240
po/es.po
@ -10,8 +10,8 @@ msgstr ""
|
|||||||
"Project-Id-Version: gnome-shell.master\n"
|
"Project-Id-Version: gnome-shell.master\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||||
"shell&keywords=I18N+L10N&component=general\n"
|
"shell&keywords=I18N+L10N&component=general\n"
|
||||||
"POT-Creation-Date: 2013-03-02 23:02+0000\n"
|
"POT-Creation-Date: 2013-04-19 02:48+0000\n"
|
||||||
"PO-Revision-Date: 2013-03-04 13:44+0100\n"
|
"PO-Revision-Date: 2013-04-22 17:40+0200\n"
|
||||||
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
|
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
|
||||||
"Language-Team: Español <gnome-es-list@gnome.org>\n"
|
"Language-Team: Español <gnome-es-list@gnome.org>\n"
|
||||||
"Language: \n"
|
"Language: \n"
|
||||||
@ -42,10 +42,14 @@ msgid "Focus the active notification"
|
|||||||
msgstr "Dar el foco a la notificación activa"
|
msgstr "Dar el foco a la notificación activa"
|
||||||
|
|
||||||
#: ../data/50-gnome-shell-system.xml.in.h:4
|
#: ../data/50-gnome-shell-system.xml.in.h:4
|
||||||
|
msgid "Show the overview"
|
||||||
|
msgstr "Mostrar la vista general"
|
||||||
|
|
||||||
|
#: ../data/50-gnome-shell-system.xml.in.h:5
|
||||||
msgid "Show all applications"
|
msgid "Show all applications"
|
||||||
msgstr "Mostrar todas las aplicaciones"
|
msgstr "Mostrar todas las aplicaciones"
|
||||||
|
|
||||||
#: ../data/50-gnome-shell-system.xml.in.h:5
|
#: ../data/50-gnome-shell-system.xml.in.h:6
|
||||||
msgid "Open the application menu"
|
msgid "Open the application menu"
|
||||||
msgstr "Abrir el menú de la aplicación"
|
msgstr "Abrir el menú de la aplicación"
|
||||||
|
|
||||||
@ -223,42 +227,52 @@ msgstr ""
|
|||||||
"de actividades."
|
"de actividades."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||||
|
#| msgid "Keybinding to open the \"Show Applications\" view"
|
||||||
|
msgid "Keybinding to open the overview"
|
||||||
|
msgstr "Asociación de teclas para la vista general"
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||||
|
#| msgid "Keybinding to open the \"Show Applications\" view"
|
||||||
|
msgid "Keybinding to open the Activities Overview."
|
||||||
|
msgstr "Asociación de teclas para abrir la Vista de actividades"
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||||
msgid "Keybinding to toggle the visibility of the message tray"
|
msgid "Keybinding to toggle the visibility of the message tray"
|
||||||
msgstr "Asociación de teclas cambiar la visibilidad de la bandeja de mensajes"
|
msgstr "Asociación de teclas cambiar la visibilidad de la bandeja de mensajes"
|
||||||
|
|
||||||
#: ../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 message tray."
|
msgid "Keybinding to toggle the visibility of the message tray."
|
||||||
msgstr "Asociación de teclas cambiar la visibilidad de la bandeja de mensajes."
|
msgstr "Asociación de teclas cambiar la visibilidad de la bandeja de mensajes."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||||
msgid "Keybinding to focus the active notification"
|
msgid "Keybinding to focus the active notification"
|
||||||
msgstr "Asociación de teclas para dar el foco a la notificación activa"
|
msgstr "Asociación de teclas para dar el foco a la notificación activa"
|
||||||
|
|
||||||
#: ../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."
|
msgid "Keybinding to focus the active notification."
|
||||||
msgstr "Asociación de teclas para dar el foco a la notificación activa."
|
msgstr "Asociación de teclas para dar el foco a la 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 toggle the screen recorder"
|
msgid "Keybinding to toggle the screen recorder"
|
||||||
msgstr "Asociación de teclas cambiar el grabador de pantalla"
|
msgstr "Asociación de teclas cambiar el grabador de pantalla"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||||
msgid "Keybinding to start/stop the builtin screen recorder."
|
msgid "Keybinding to start/stop the builtin screen recorder."
|
||||||
msgstr "Asociación de teclas para iniciar/detener el grabador de pantalla."
|
msgstr "Asociación de teclas para iniciar/detener el grabador de pantalla."
|
||||||
|
|
||||||
#: ../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"
|
msgid "Which keyboard to use"
|
||||||
msgstr "Qué teclado usar"
|
msgstr "Qué 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."
|
msgid "The type of keyboard to use."
|
||||||
msgstr "El tipo de teclado que usar."
|
msgstr "El tipo de teclado que usar."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||||
msgid "Framerate used for recording screencasts."
|
msgid "Framerate used for recording screencasts."
|
||||||
msgstr "Tasa de fotogramas usada para grabar «screencast»."
|
msgstr "Tasa de fotogramas usada para grabar «screencast»."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||||
msgid ""
|
msgid ""
|
||||||
"The framerate of the resulting screencast recordered by GNOME Shell's "
|
"The framerate of the resulting screencast recordered by GNOME Shell's "
|
||||||
"screencast recorder in frames-per-second."
|
"screencast recorder in frames-per-second."
|
||||||
@ -266,11 +280,11 @@ msgstr ""
|
|||||||
"La tasa de fotogramas de la grabación resultante grabada por el grabador de "
|
"La tasa de fotogramas de la grabación resultante grabada por el grabador de "
|
||||||
"«screencast» de GNOME Shell, en fotogramas por segundo."
|
"«screencast» de GNOME Shell, en fotogramas por segundo."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||||
msgid "The gstreamer pipeline used to encode the screencast"
|
msgid "The gstreamer pipeline used to encode the screencast"
|
||||||
msgstr "La tubería de gstreamer usada para codificar el «screencast»"
|
msgstr "La tubería de gstreamer usada para codificar el «screencast»"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
|
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
|
||||||
@ -296,11 +310,11 @@ msgstr ""
|
|||||||
"threads=%T ! queue ! webmmux» y graba en WEBM usando el códec VP8. Se usa %T "
|
"threads=%T ! queue ! webmmux» y graba en WEBM usando el códec VP8. Se usa %T "
|
||||||
"como marcador de posición para el número de hilos óptimos en el sistema."
|
"como marcador de posición para el número de hilos óptimos en el sistema."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||||
msgid "File extension used for storing the screencast"
|
msgid "File extension used for storing the screencast"
|
||||||
msgstr "Extensión de archivo que usar para almacenar los «screencast»"
|
msgstr "Extensión de archivo que usar para almacenar los «screencast»"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||||
msgid ""
|
msgid ""
|
||||||
"The filename for recorded screencasts will be a unique filename based on the "
|
"The filename for recorded screencasts will be a unique filename based on the "
|
||||||
"current date, and use this extension. It should be changed when recording to "
|
"current date, and use this extension. It should be changed when recording to "
|
||||||
@ -310,11 +324,11 @@ msgstr ""
|
|||||||
"basado en la fecha actual y usará esta extensión. Se debería cambiar al "
|
"basado en la fecha actual y usará esta extensión. Se debería cambiar al "
|
||||||
"grabar en otro formato contenedor diferente."
|
"grabar en otro formato contenedor diferente."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||||
msgid "The application icon mode."
|
msgid "The application icon mode."
|
||||||
msgstr "El modo de icono de la aplicación."
|
msgstr "El modo de icono de la aplicación."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||||
msgid ""
|
msgid ""
|
||||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||||
@ -324,21 +338,21 @@ msgstr ""
|
|||||||
"son «thumbnail-only» (muestra una miniatura de la ventana), «app-icon-"
|
"son «thumbnail-only» (muestra una miniatura de la ventana), «app-icon-"
|
||||||
"only» (sólo muestra el icono de la aplicación) «both»."
|
"only» (sólo muestra el icono de la aplicación) «both»."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
||||||
msgid "Attach modal dialog to the parent window"
|
msgid "Attach modal dialog to the parent window"
|
||||||
msgstr "Acoplar un diálogo modal a la ventana padre"
|
msgstr "Acoplar un diálogo modal a la ventana padre"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
||||||
msgid ""
|
msgid ""
|
||||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Esta clave sobreescribe la clave en org.gnome.mutter al ejecutar GNOME Shell."
|
"Esta clave sobreescribe la clave en org.gnome.mutter al ejecutar GNOME Shell."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:46
|
||||||
msgid "Arrangement of buttons on the titlebar"
|
msgid "Arrangement of buttons on the titlebar"
|
||||||
msgstr "Orden de los botones en la barra de título"
|
msgstr "Orden de los botones en la barra de título"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:47
|
||||||
msgid ""
|
msgid ""
|
||||||
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
||||||
"GNOME Shell."
|
"GNOME Shell."
|
||||||
@ -346,17 +360,17 @@ msgstr ""
|
|||||||
"Esta clave sobreescribe la clave en org.gnome.desktop.wm.preferences al "
|
"Esta clave sobreescribe la clave en org.gnome.desktop.wm.preferences al "
|
||||||
"ejecutar GNOME Shell."
|
"ejecutar GNOME Shell."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:46
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:48
|
||||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Activar el mosaico en los bordes al arrastrar ventanas a los bordes de la "
|
"Activar el mosaico en los bordes al arrastrar ventanas a los bordes de la "
|
||||||
"ventana"
|
"ventana"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:47
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:49
|
||||||
msgid "Workspaces are managed dynamically"
|
msgid "Workspaces are managed dynamically"
|
||||||
msgstr "Las áreas de trabajo se gestionan dinámicamente"
|
msgstr "Las áreas de trabajo se gestionan dinámicamente"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:48
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:50
|
||||||
msgid "Workspaces only on primary monitor"
|
msgid "Workspaces only on primary monitor"
|
||||||
msgstr "Áreas de trabajo solo en la pantalla principal"
|
msgstr "Áreas de trabajo solo en la pantalla principal"
|
||||||
|
|
||||||
@ -375,43 +389,42 @@ msgstr ""
|
|||||||
"Seleccione una extensión que configurar usando la caja combinada de arriba."
|
"Seleccione una extensión que configurar usando la caja combinada de arriba."
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:405
|
#: ../js/gdm/loginDialog.js:405
|
||||||
#| msgid "Session..."
|
|
||||||
msgid "Session…"
|
msgid "Session…"
|
||||||
msgstr "Sesión…"
|
msgstr "Sesión…"
|
||||||
|
|
||||||
#. translators: this message is shown below the user list on the
|
#. translators: this message is shown below the user list on the
|
||||||
#. login screen. It can be activated to reveal an entry for
|
#. login screen. It can be activated to reveal an entry for
|
||||||
#. manually entering the username.
|
#. manually entering the username.
|
||||||
#: ../js/gdm/loginDialog.js:629
|
#: ../js/gdm/loginDialog.js:630
|
||||||
msgid "Not listed?"
|
msgid "Not listed?"
|
||||||
msgstr "¿No está en la lista?"
|
msgstr "¿No está en la lista?"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:783 ../js/ui/components/networkAgent.js:137
|
#: ../js/gdm/loginDialog.js:787 ../js/ui/components/networkAgent.js:137
|
||||||
#: ../js/ui/components/polkitAgent.js:162 ../js/ui/endSessionDialog.js:375
|
#: ../js/ui/components/polkitAgent.js:162 ../js/ui/endSessionDialog.js:376
|
||||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||||
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:126
|
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:100
|
||||||
#: ../js/ui/userMenu.js:932
|
#: ../js/ui/userMenu.js:938
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Cancelar"
|
msgstr "Cancelar"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:799
|
#: ../js/gdm/loginDialog.js:803
|
||||||
msgctxt "button"
|
msgctxt "button"
|
||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr "Iniciar sesión"
|
msgstr "Iniciar sesión"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:799
|
#: ../js/gdm/loginDialog.js:803
|
||||||
msgid "Next"
|
msgid "Next"
|
||||||
msgstr "Siguiente"
|
msgstr "Siguiente"
|
||||||
|
|
||||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||||
#. is not visible here since we only care about phase2 authentication
|
#. 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:904 ../js/ui/components/networkAgent.js:260
|
#: ../js/gdm/loginDialog.js:918 ../js/ui/components/networkAgent.js:260
|
||||||
#: ../js/ui/components/networkAgent.js:278
|
#: ../js/ui/components/networkAgent.js:278
|
||||||
msgid "Username: "
|
msgid "Username: "
|
||||||
msgstr "Nombre de usuario:"
|
msgstr "Nombre de usuario:"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:1157
|
#: ../js/gdm/loginDialog.js:1174
|
||||||
msgid "Login Window"
|
msgid "Login Window"
|
||||||
msgstr "Ventana de inicio de sesión"
|
msgstr "Ventana de inicio de sesión"
|
||||||
|
|
||||||
@ -420,8 +433,8 @@ msgstr "Ventana de inicio de sesión"
|
|||||||
msgid "Power"
|
msgid "Power"
|
||||||
msgstr "Energía"
|
msgstr "Energía"
|
||||||
|
|
||||||
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:694 ../js/ui/userMenu.js:698
|
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:696 ../js/ui/userMenu.js:700
|
||||||
#: ../js/ui/userMenu.js:814
|
#: ../js/ui/userMenu.js:816
|
||||||
msgid "Suspend"
|
msgid "Suspend"
|
||||||
msgstr "Suspender"
|
msgstr "Suspender"
|
||||||
|
|
||||||
@ -429,58 +442,58 @@ msgstr "Suspender"
|
|||||||
msgid "Restart"
|
msgid "Restart"
|
||||||
msgstr "Reiniciar"
|
msgstr "Reiniciar"
|
||||||
|
|
||||||
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:696
|
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:698
|
||||||
#: ../js/ui/userMenu.js:698 ../js/ui/userMenu.js:813 ../js/ui/userMenu.js:936
|
#: ../js/ui/userMenu.js:700 ../js/ui/userMenu.js:815 ../js/ui/userMenu.js:942
|
||||||
msgid "Power Off"
|
msgid "Power Off"
|
||||||
msgstr "Apagar"
|
msgstr "Apagar"
|
||||||
|
|
||||||
#: ../js/gdm/util.js:182
|
#: ../js/gdm/util.js:249
|
||||||
msgid "Authentication error"
|
msgid "Authentication error"
|
||||||
msgstr "Error de autenticación"
|
msgstr "Error de autenticación"
|
||||||
|
|
||||||
#. Translators: this message is shown below the password entry field
|
#. Translators: this message is shown below the password entry field
|
||||||
#. to indicate the user can swipe their finger instead
|
#. to indicate the user can swipe their finger instead
|
||||||
#: ../js/gdm/util.js:299
|
#: ../js/gdm/util.js:366
|
||||||
msgid "(or swipe finger)"
|
msgid "(or swipe finger)"
|
||||||
msgstr "(o pase el dedo)"
|
msgstr "(o pase el dedo)"
|
||||||
|
|
||||||
#: ../js/gdm/util.js:324
|
#: ../js/gdm/util.js:391
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "(e.g., user or %s)"
|
msgid "(e.g., user or %s)"
|
||||||
msgstr "(ej., usuario o %s)"
|
msgstr "(ej., usuario o %s)"
|
||||||
|
|
||||||
#: ../js/misc/util.js:94
|
#: ../js/misc/util.js:97
|
||||||
msgid "Command not found"
|
msgid "Command not found"
|
||||||
msgstr "Comando no encontrado"
|
msgstr "Comando no encontrado"
|
||||||
|
|
||||||
#. Replace "Error invoking GLib.shell_parse_argv: " with
|
#. Replace "Error invoking GLib.shell_parse_argv: " with
|
||||||
#. something nicer
|
#. something nicer
|
||||||
#: ../js/misc/util.js:127
|
#: ../js/misc/util.js:130
|
||||||
msgid "Could not parse command:"
|
msgid "Could not parse command:"
|
||||||
msgstr "No se pudo analizar el comando:"
|
msgstr "No se pudo analizar el comando:"
|
||||||
|
|
||||||
#: ../js/misc/util.js:135
|
#: ../js/misc/util.js:138
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Execution of '%s' failed:"
|
msgid "Execution of '%s' failed:"
|
||||||
msgstr "Falló la ejecución de «%s»:"
|
msgstr "Falló la ejecución de «%s»:"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:348
|
#: ../js/ui/appDisplay.js:349
|
||||||
msgid "Frequent"
|
msgid "Frequent"
|
||||||
msgstr "Frecuentes"
|
msgstr "Frecuentes"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:355
|
#: ../js/ui/appDisplay.js:356
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Todas"
|
msgstr "Todas"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:913
|
#: ../js/ui/appDisplay.js:914
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "Ventana nueva"
|
msgstr "Ventana nueva"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:916 ../js/ui/dash.js:284
|
#: ../js/ui/appDisplay.js:917 ../js/ui/dash.js:284
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Quitar de los favoritos"
|
msgstr "Quitar de los favoritos"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:917
|
#: ../js/ui/appDisplay.js:918
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Añadir a los favoritos"
|
msgstr "Añadir a los favoritos"
|
||||||
|
|
||||||
@ -494,7 +507,7 @@ msgstr "Se ha añadido %s a sus favoritos."
|
|||||||
msgid "%s has been removed from your favorites."
|
msgid "%s has been removed from your favorites."
|
||||||
msgstr "Se ha quitado %s de sus favoritos."
|
msgstr "Se ha quitado %s de sus favoritos."
|
||||||
|
|
||||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:787
|
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:789
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Configuración"
|
msgstr "Configuración"
|
||||||
|
|
||||||
@ -517,7 +530,7 @@ msgctxt "event list time"
|
|||||||
msgid "%H\\u2236%M"
|
msgid "%H\\u2236%M"
|
||||||
msgstr "%H\\u2236%M"
|
msgstr "%H\\u2236%M"
|
||||||
|
|
||||||
#. Transators: Shown in calendar event list, if 12h format,
|
#. Translators: Shown in calendar event list, if 12h format,
|
||||||
#. \u2236 is a ratio character, similar to : and \u2009 is
|
#. \u2236 is a ratio character, similar to : and \u2009 is
|
||||||
#. a thin space
|
#. a thin space
|
||||||
#: ../js/ui/calendar.js:77
|
#: ../js/ui/calendar.js:77
|
||||||
@ -619,35 +632,35 @@ msgid "S"
|
|||||||
msgstr "S"
|
msgstr "S"
|
||||||
|
|
||||||
#. Translators: Text to show if there are no events
|
#. Translators: Text to show if there are no events
|
||||||
#: ../js/ui/calendar.js:692
|
#: ../js/ui/calendar.js:720
|
||||||
msgid "Nothing Scheduled"
|
msgid "Nothing Scheduled"
|
||||||
msgstr "Nada programado"
|
msgstr "Nada programado"
|
||||||
|
|
||||||
#. Translators: Shown on calendar heading when selected day occurs on current year
|
#. Translators: Shown on calendar heading when selected day occurs on current year
|
||||||
#: ../js/ui/calendar.js:708
|
#: ../js/ui/calendar.js:736
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %d de %B"
|
msgstr "%A, %d de %B"
|
||||||
|
|
||||||
#. Translators: Shown on calendar heading when selected day occurs on different year
|
#. Translators: Shown on calendar heading when selected day occurs on different year
|
||||||
#: ../js/ui/calendar.js:711
|
#: ../js/ui/calendar.js:739
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d, %Y"
|
msgid "%A, %B %d, %Y"
|
||||||
msgstr "%A, %d de %B de %Y"
|
msgstr "%A, %d de %B de %Y"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:721
|
#: ../js/ui/calendar.js:749
|
||||||
msgid "Today"
|
msgid "Today"
|
||||||
msgstr "Hoy"
|
msgstr "Hoy"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:725
|
#: ../js/ui/calendar.js:753
|
||||||
msgid "Tomorrow"
|
msgid "Tomorrow"
|
||||||
msgstr "Mañana"
|
msgstr "Mañana"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:736
|
#: ../js/ui/calendar.js:764
|
||||||
msgid "This week"
|
msgid "This week"
|
||||||
msgstr "Esta semana"
|
msgstr "Esta semana"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:744
|
#: ../js/ui/calendar.js:772
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr "La semana que viene"
|
msgstr "La semana que viene"
|
||||||
|
|
||||||
@ -663,12 +676,12 @@ msgstr "Dispositivo externo desconectado"
|
|||||||
msgid "Removable Devices"
|
msgid "Removable Devices"
|
||||||
msgstr "Dispositivos extraíbles"
|
msgstr "Dispositivos extraíbles"
|
||||||
|
|
||||||
#: ../js/ui/components/autorunManager.js:593
|
#: ../js/ui/components/autorunManager.js:594
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Open with %s"
|
msgid "Open with %s"
|
||||||
msgstr "Abrir con %s"
|
msgstr "Abrir con %s"
|
||||||
|
|
||||||
#: ../js/ui/components/autorunManager.js:619
|
#: ../js/ui/components/autorunManager.js:620
|
||||||
msgid "Eject"
|
msgid "Eject"
|
||||||
msgstr "Expulsar"
|
msgstr "Expulsar"
|
||||||
|
|
||||||
@ -777,7 +790,7 @@ msgid "Sorry, that didn't work. Please try again."
|
|||||||
msgstr "Inténtelo de nuevo,"
|
msgstr "Inténtelo de nuevo,"
|
||||||
|
|
||||||
#. Translators: this is a filename used for screencast recording
|
#. Translators: this is a filename used for screencast recording
|
||||||
#: ../js/ui/components/recorder.js:48
|
#: ../js/ui/components/recorder.js:47
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Screencast from %d %t"
|
msgid "Screencast from %d %t"
|
||||||
msgstr "Screencast desde %d %t"
|
msgstr "Screencast desde %d %t"
|
||||||
@ -1024,7 +1037,7 @@ msgstr "Ver cuenta"
|
|||||||
msgid "Unknown reason"
|
msgid "Unknown reason"
|
||||||
msgstr "Razón desconocida"
|
msgstr "Razón desconocida"
|
||||||
|
|
||||||
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:97
|
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:96
|
||||||
msgid "Windows"
|
msgid "Windows"
|
||||||
msgstr "Ventanas"
|
msgstr "Ventanas"
|
||||||
|
|
||||||
@ -1053,7 +1066,7 @@ msgstr "Configuración de hora y fecha"
|
|||||||
#. Translators: This is the date format to use when the calendar popup is
|
#. 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").
|
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
|
||||||
#.
|
#.
|
||||||
#: ../js/ui/dateMenu.js:205
|
#: ../js/ui/dateMenu.js:215
|
||||||
msgid "%A %B %e, %Y"
|
msgid "%A %B %e, %Y"
|
||||||
msgstr "%A, %e de %B de %Y"
|
msgstr "%A, %e de %B de %Y"
|
||||||
|
|
||||||
@ -1219,7 +1232,6 @@ msgid "Remove"
|
|||||||
msgstr "Quitar"
|
msgstr "Quitar"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1501
|
#: ../js/ui/messageTray.js:1501
|
||||||
#| msgid "No Messages"
|
|
||||||
msgid "Clear Messages"
|
msgid "Clear Messages"
|
||||||
msgstr "Limpiar mensajes"
|
msgstr "Limpiar mensajes"
|
||||||
|
|
||||||
@ -1227,15 +1239,15 @@ msgstr "Limpiar mensajes"
|
|||||||
msgid "Notification Settings"
|
msgid "Notification Settings"
|
||||||
msgstr "Configuración de las notificaciones"
|
msgstr "Configuración de las notificaciones"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1707
|
#: ../js/ui/messageTray.js:1709
|
||||||
msgid "No Messages"
|
msgid "No Messages"
|
||||||
msgstr "No hay mensajes"
|
msgstr "No hay mensajes"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1787
|
#: ../js/ui/messageTray.js:1785
|
||||||
msgid "Message Tray"
|
msgid "Message Tray"
|
||||||
msgstr "Bandeja de mensajes"
|
msgstr "Bandeja de mensajes"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:2864
|
#: ../js/ui/messageTray.js:2813
|
||||||
msgid "System Information"
|
msgid "System Information"
|
||||||
msgstr "Información del sistema"
|
msgstr "Información del sistema"
|
||||||
|
|
||||||
@ -1244,14 +1256,14 @@ msgctxt "program"
|
|||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "Desconocido"
|
msgstr "Desconocido"
|
||||||
|
|
||||||
#: ../js/ui/overviewControls.js:460 ../js/ui/screenShield.js:153
|
#: ../js/ui/overviewControls.js:463 ../js/ui/screenShield.js:149
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d new message"
|
msgid "%d new message"
|
||||||
msgid_plural "%d new messages"
|
msgid_plural "%d new messages"
|
||||||
msgstr[0] "%d mensaje nuevo"
|
msgstr[0] "%d mensaje nuevo"
|
||||||
msgstr[1] "%d mensajes nuevos"
|
msgstr[1] "%d mensajes nuevos"
|
||||||
|
|
||||||
#: ../js/ui/overview.js:82
|
#: ../js/ui/overview.js:84
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Deshacer"
|
msgstr "Deshacer"
|
||||||
|
|
||||||
@ -1263,22 +1275,21 @@ msgstr "Vista general"
|
|||||||
#. in the search entry when no search is
|
#. in the search entry when no search is
|
||||||
#. active; it should not exceed ~30
|
#. active; it should not exceed ~30
|
||||||
#. characters.
|
#. characters.
|
||||||
#: ../js/ui/overview.js:284
|
#: ../js/ui/overview.js:271
|
||||||
#| msgid "Type to search..."
|
|
||||||
msgid "Type to search…"
|
msgid "Type to search…"
|
||||||
msgstr "Escribir para buscar…"
|
msgstr "Escribir para buscar…"
|
||||||
|
|
||||||
#: ../js/ui/panel.js:613
|
#: ../js/ui/panel.js:633
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Salir"
|
msgstr "Salir"
|
||||||
|
|
||||||
#. Translators: If there is no suitable word for "Activities"
|
#. 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:642
|
#: ../js/ui/panel.js:657
|
||||||
msgid "Activities"
|
msgid "Activities"
|
||||||
msgstr "Actividades"
|
msgstr "Actividades"
|
||||||
|
|
||||||
#: ../js/ui/panel.js:983
|
#: ../js/ui/panel.js:954
|
||||||
msgid "Top Bar"
|
msgid "Top Bar"
|
||||||
msgstr "Barra superior"
|
msgstr "Barra superior"
|
||||||
|
|
||||||
@ -1291,32 +1302,32 @@ msgstr "Barra superior"
|
|||||||
msgid "toggle-switch-us"
|
msgid "toggle-switch-us"
|
||||||
msgstr "toggle-switch-intl"
|
msgstr "toggle-switch-intl"
|
||||||
|
|
||||||
#: ../js/ui/runDialog.js:205
|
#: ../js/ui/runDialog.js:74
|
||||||
msgid "Enter a Command"
|
msgid "Enter a Command"
|
||||||
msgstr "Introducir un comando"
|
msgstr "Introducir un comando"
|
||||||
|
|
||||||
#: ../js/ui/runDialog.js:241
|
#: ../js/ui/runDialog.js:110
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Cerrar"
|
msgstr "Cerrar"
|
||||||
|
|
||||||
#. Translators: This is a time format for a date in
|
#. Translators: This is a time format for a date in
|
||||||
#. long format
|
#. long format
|
||||||
#: ../js/ui/screenShield.js:90
|
#: ../js/ui/screenShield.js:86
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %d de %B"
|
msgstr "%A, %d de %B"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:155
|
#: ../js/ui/screenShield.js:151
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d new notification"
|
msgid "%d new notification"
|
||||||
msgid_plural "%d new notifications"
|
msgid_plural "%d new notifications"
|
||||||
msgstr[0] "%d notificación nueva"
|
msgstr[0] "%d notificación nueva"
|
||||||
msgstr[1] "%d notificaciones nuevas"
|
msgstr[1] "%d notificaciones nuevas"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:442 ../js/ui/userMenu.js:805
|
#: ../js/ui/screenShield.js:438 ../js/ui/userMenu.js:807
|
||||||
msgid "Lock"
|
msgid "Lock"
|
||||||
msgstr "Bloquear"
|
msgstr "Bloquear"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:639
|
#: ../js/ui/screenShield.js:641
|
||||||
msgid "GNOME needs to lock the screen"
|
msgid "GNOME needs to lock the screen"
|
||||||
msgstr "GNOME necesita bloquear la pantalla"
|
msgstr "GNOME necesita bloquear la pantalla"
|
||||||
|
|
||||||
@ -1327,22 +1338,19 @@ msgstr "GNOME necesita bloquear la pantalla"
|
|||||||
#.
|
#.
|
||||||
#. XXX: another option is to kick the user into the gdm login
|
#. XXX: another option is to kick the user into the gdm login
|
||||||
#. screen, where we're not affected by grabs
|
#. screen, where we're not affected by grabs
|
||||||
#: ../js/ui/screenShield.js:758 ../js/ui/screenShield.js:1169
|
#: ../js/ui/screenShield.js:762 ../js/ui/screenShield.js:1198
|
||||||
#| msgid "Unable to connect to %s"
|
|
||||||
msgid "Unable to lock"
|
msgid "Unable to lock"
|
||||||
msgstr "No se pudo bloquear"
|
msgstr "No se pudo bloquear"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:759 ../js/ui/screenShield.js:1170
|
#: ../js/ui/screenShield.js:763 ../js/ui/screenShield.js:1199
|
||||||
#| msgid "No such application"
|
|
||||||
msgid "Lock was blocked by an application"
|
msgid "Lock was blocked by an application"
|
||||||
msgstr "Una aplicación impidió el bloqueo"
|
msgstr "Una aplicación impidió el bloqueo"
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:431
|
#: ../js/ui/searchDisplay.js:453
|
||||||
#| msgid "Searching..."
|
|
||||||
msgid "Searching…"
|
msgid "Searching…"
|
||||||
msgstr "Buscando…"
|
msgstr "Buscando…"
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:475
|
#: ../js/ui/searchDisplay.js:497
|
||||||
msgid "No results."
|
msgid "No results."
|
||||||
msgstr "No se encontraron resultados."
|
msgstr "No se encontraron resultados."
|
||||||
|
|
||||||
@ -1354,11 +1362,11 @@ msgstr "Copiar"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "Pegar"
|
msgstr "Pegar"
|
||||||
|
|
||||||
#: ../js/ui/shellEntry.js:105
|
#: ../js/ui/shellEntry.js:101
|
||||||
msgid "Show Text"
|
msgid "Show Text"
|
||||||
msgstr "Mostrar texto"
|
msgstr "Mostrar texto"
|
||||||
|
|
||||||
#: ../js/ui/shellEntry.js:107
|
#: ../js/ui/shellEntry.js:103
|
||||||
msgid "Hide Text"
|
msgid "Hide Text"
|
||||||
msgstr "Ocultar texto"
|
msgstr "Ocultar texto"
|
||||||
|
|
||||||
@ -1370,7 +1378,7 @@ msgstr "Contraseña"
|
|||||||
msgid "Remember Password"
|
msgid "Remember Password"
|
||||||
msgstr "Recordar contraseña"
|
msgstr "Recordar contraseña"
|
||||||
|
|
||||||
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:140
|
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:114
|
||||||
msgid "Unlock"
|
msgid "Unlock"
|
||||||
msgstr "Desbloquear"
|
msgstr "Desbloquear"
|
||||||
|
|
||||||
@ -1434,12 +1442,10 @@ msgid "Visibility"
|
|||||||
msgstr "Visibilidad"
|
msgstr "Visibilidad"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:59
|
#: ../js/ui/status/bluetooth.js:59
|
||||||
#| msgid "Send Files to Device..."
|
|
||||||
msgid "Send Files to Device…"
|
msgid "Send Files to Device…"
|
||||||
msgstr "Enviar archivos al dispositivo…"
|
msgstr "Enviar archivos al dispositivo…"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:60
|
#: ../js/ui/status/bluetooth.js:60
|
||||||
#| msgid "Set Up a New Device..."
|
|
||||||
msgid "Set Up a New Device…"
|
msgid "Set Up a New Device…"
|
||||||
msgstr "Configurar un dispositivo nuevo…"
|
msgstr "Configurar un dispositivo nuevo…"
|
||||||
|
|
||||||
@ -1466,7 +1472,6 @@ msgid "connecting..."
|
|||||||
msgstr "conectando…"
|
msgstr "conectando…"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:239
|
#: ../js/ui/status/bluetooth.js:239
|
||||||
#| msgid "Send Files..."
|
|
||||||
msgid "Send Files…"
|
msgid "Send Files…"
|
||||||
msgstr "Enviar archivos…"
|
msgstr "Enviar archivos…"
|
||||||
|
|
||||||
@ -1679,7 +1684,6 @@ msgstr "Configuración de energía"
|
|||||||
#. 0 is reported when UPower does not have enough data
|
#. 0 is reported when UPower does not have enough data
|
||||||
#. to estimate battery life
|
#. to estimate battery life
|
||||||
#: ../js/ui/status/power.js:99
|
#: ../js/ui/status/power.js:99
|
||||||
#| msgid "Estimating..."
|
|
||||||
msgid "Estimating…"
|
msgid "Estimating…"
|
||||||
msgstr "Estimando…"
|
msgstr "Estimando…"
|
||||||
|
|
||||||
@ -1779,59 +1783,59 @@ msgstr "Volumen"
|
|||||||
msgid "Microphone"
|
msgid "Microphone"
|
||||||
msgstr "Micrófono"
|
msgstr "Micrófono"
|
||||||
|
|
||||||
#: ../js/ui/unlockDialog.js:151
|
#: ../js/ui/unlockDialog.js:125
|
||||||
msgid "Log in as another user"
|
msgid "Log in as another user"
|
||||||
msgstr "Iniciar sesión como otro usuario"
|
msgstr "Iniciar sesión como otro usuario"
|
||||||
|
|
||||||
#: ../js/ui/unlockDialog.js:177
|
#: ../js/ui/unlockDialog.js:146
|
||||||
msgid "Unlock Window"
|
msgid "Unlock Window"
|
||||||
msgstr "Desbloquear ventana"
|
msgstr "Desbloquear ventana"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:192
|
#: ../js/ui/userMenu.js:193
|
||||||
msgid "Available"
|
msgid "Available"
|
||||||
msgstr "Disponible"
|
msgstr "Disponible"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:195
|
#: ../js/ui/userMenu.js:196
|
||||||
msgid "Busy"
|
msgid "Busy"
|
||||||
msgstr "Ocupado"
|
msgstr "Ocupado"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:198
|
#: ../js/ui/userMenu.js:199
|
||||||
msgid "Invisible"
|
msgid "Invisible"
|
||||||
msgstr "Invisible"
|
msgstr "Invisible"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:201
|
#: ../js/ui/userMenu.js:202
|
||||||
msgid "Away"
|
msgid "Away"
|
||||||
msgstr "Ausente"
|
msgstr "Ausente"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:204
|
#: ../js/ui/userMenu.js:205
|
||||||
msgid "Idle"
|
msgid "Idle"
|
||||||
msgstr "Inactivo"
|
msgstr "Inactivo"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:207
|
#: ../js/ui/userMenu.js:208
|
||||||
msgid "Offline"
|
msgid "Offline"
|
||||||
msgstr "Desconectado"
|
msgstr "Desconectado"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:779
|
#: ../js/ui/userMenu.js:781
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Notificaciones"
|
msgstr "Notificaciones"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:795
|
#: ../js/ui/userMenu.js:797
|
||||||
msgid "Switch User"
|
msgid "Switch User"
|
||||||
msgstr "Cambiar de usuario"
|
msgstr "Cambiar de usuario"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:800
|
#: ../js/ui/userMenu.js:802
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "Cerrar la sesión"
|
msgstr "Cerrar la sesión"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:820
|
#: ../js/ui/userMenu.js:822
|
||||||
msgid "Install Updates & Restart"
|
msgid "Install Updates & Restart"
|
||||||
msgstr "Instalar actualizaciones y reiniciar"
|
msgstr "Instalar actualizaciones y reiniciar"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:838
|
#: ../js/ui/userMenu.js:840
|
||||||
msgid "Your chat status will be set to busy"
|
msgid "Your chat status will be set to busy"
|
||||||
msgstr "Su estado del chat se establecerá a «ocupado»"
|
msgstr "Su estado del chat se establecerá a «ocupado»"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:839
|
#: ../js/ui/userMenu.js:841
|
||||||
msgid ""
|
msgid ""
|
||||||
"Notifications are now disabled, including chat messages. Your online status "
|
"Notifications are now disabled, including chat messages. Your online status "
|
||||||
"has been adjusted to let others know that you might not see their messages."
|
"has been adjusted to let others know that you might not see their messages."
|
||||||
@ -1840,33 +1844,35 @@ msgstr ""
|
|||||||
"chat. Su estado en línea se ha ajustado para que otros sepan que puede no "
|
"chat. Su estado en línea se ha ajustado para que otros sepan que puede no "
|
||||||
"leer sus mensajes."
|
"leer sus mensajes."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:885
|
#: ../js/ui/userMenu.js:888
|
||||||
msgid "Other users are logged in."
|
msgid "Other users are logged in."
|
||||||
msgstr "Hay otros usuarios con la sesión iniciada"
|
msgstr "Hay otros usuarios con la sesión iniciada"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:890
|
#: ../js/ui/userMenu.js:893
|
||||||
msgid "Shutting down might cause them to lose unsaved work."
|
msgid "Shutting down might cause them to lose unsaved work."
|
||||||
msgstr "Apagar puede hacer que pierdan el trabajo que no hayan guardado."
|
msgstr "Apagar puede hacer que pierdan el trabajo que no hayan guardado."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:916
|
#. Translators: Remote here refers to a remote session, like a ssh login
|
||||||
|
#: ../js/ui/userMenu.js:921
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (remote)"
|
msgid "%s (remote)"
|
||||||
msgstr "%s (remoto)"
|
msgstr "%s (remoto)"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:918
|
#. Translators: Console here refers to a tty like a VT console
|
||||||
|
#: ../js/ui/userMenu.js:924
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (console)"
|
msgid "%s (console)"
|
||||||
msgstr "%s (consola)"
|
msgstr "%s (consola)"
|
||||||
|
|
||||||
#: ../js/ui/viewSelector.js:101
|
#: ../js/ui/viewSelector.js:100
|
||||||
msgid "Applications"
|
msgid "Applications"
|
||||||
msgstr "Aplicaciones"
|
msgstr "Aplicaciones"
|
||||||
|
|
||||||
#: ../js/ui/viewSelector.js:105
|
#: ../js/ui/viewSelector.js:104
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Buscar"
|
msgstr "Buscar"
|
||||||
|
|
||||||
#: ../js/ui/wanda.js:92
|
#: ../js/ui/wanda.js:77
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sorry, no wisdom for you today:\n"
|
"Sorry, no wisdom for you today:\n"
|
||||||
@ -1875,7 +1881,7 @@ msgstr ""
|
|||||||
"Hoy no tiene ningún mensaje:\n"
|
"Hoy no tiene ningún mensaje:\n"
|
||||||
"%s"
|
"%s"
|
||||||
|
|
||||||
#: ../js/ui/wanda.js:96
|
#: ../js/ui/wanda.js:81
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s the Oracle says"
|
msgid "%s the Oracle says"
|
||||||
msgstr "%s el oráculo dice"
|
msgstr "%s el oráculo dice"
|
||||||
|
219
po/gl.po
219
po/gl.po
@ -10,10 +10,9 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-shell master\n"
|
"Project-Id-Version: gnome-shell master\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"shell&keywords=I18N+L10N&component=general\n"
|
"POT-Creation-Date: 2013-04-18 01:27+0200\n"
|
||||||
"POT-Creation-Date: 2013-03-02 23:02+0000\n"
|
"PO-Revision-Date: 2013-04-18 01:42+0200\n"
|
||||||
"PO-Revision-Date: 2013-03-04 12:40+0200\n"
|
|
||||||
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
|
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
|
||||||
"Language-Team: gnome-l10n-gl@gnome.org\n"
|
"Language-Team: gnome-l10n-gl@gnome.org\n"
|
||||||
"Language: gl\n"
|
"Language: gl\n"
|
||||||
@ -30,7 +29,7 @@ msgstr "Capturas de pantalla"
|
|||||||
|
|
||||||
#: ../data/50-gnome-shell-screenshot.xml.in.h:2
|
#: ../data/50-gnome-shell-screenshot.xml.in.h:2
|
||||||
msgid "Record a screencast"
|
msgid "Record a screencast"
|
||||||
msgstr "Gravar unha gravación de pantalla"
|
msgstr "Facer unha gravación da pantalla"
|
||||||
|
|
||||||
#: ../data/50-gnome-shell-system.xml.in.h:1
|
#: ../data/50-gnome-shell-system.xml.in.h:1
|
||||||
msgid "System"
|
msgid "System"
|
||||||
@ -63,16 +62,16 @@ msgstr "Xestor de xanelas e inicio de aplicativos"
|
|||||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
||||||
#: ../js/extensionPrefs/main.js:153
|
#: ../js/extensionPrefs/main.js:153
|
||||||
msgid "GNOME Shell Extension Preferences"
|
msgid "GNOME Shell Extension Preferences"
|
||||||
msgstr "Preferencias de extensións de GNOME Shell"
|
msgstr "Preferencias das extensións de GNOME Shell"
|
||||||
|
|
||||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:2
|
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:2
|
||||||
msgid "Configure GNOME Shell Extensions"
|
msgid "Configure GNOME Shell Extensions"
|
||||||
msgstr "Configurar as extensións de GNOME Shell"
|
msgstr "Configure as extensións de GNOME Shell"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
|
||||||
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Activar as ferramentas internas útiles para os desenvolvedores e probadores, "
|
"Activar as ferramentas internas útiles para os desenvolvedores e probadores "
|
||||||
"usando Alt-F2"
|
"usando Alt-F2"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:2
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:2
|
||||||
@ -85,7 +84,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:3
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:3
|
||||||
msgid "Uuids of extensions to enable"
|
msgid "Uuids of extensions to enable"
|
||||||
msgstr "Uuid das extensións que activar"
|
msgstr "UUIDs das extensións a activar"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:4
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:4
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -375,43 +374,42 @@ msgstr ""
|
|||||||
"Seleccione unha extensión que configurar usando a caixa combinada de arriba."
|
"Seleccione unha extensión que configurar usando a caixa combinada de arriba."
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:405
|
#: ../js/gdm/loginDialog.js:405
|
||||||
#| msgid "Session..."
|
|
||||||
msgid "Session…"
|
msgid "Session…"
|
||||||
msgstr "Sesión…"
|
msgstr "Sesión…"
|
||||||
|
|
||||||
#. translators: this message is shown below the user list on the
|
#. translators: this message is shown below the user list on the
|
||||||
#. login screen. It can be activated to reveal an entry for
|
#. login screen. It can be activated to reveal an entry for
|
||||||
#. manually entering the username.
|
#. manually entering the username.
|
||||||
#: ../js/gdm/loginDialog.js:629
|
#: ../js/gdm/loginDialog.js:630
|
||||||
msgid "Not listed?"
|
msgid "Not listed?"
|
||||||
msgstr "Non está na lista?"
|
msgstr "Non está na lista?"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:783 ../js/ui/components/networkAgent.js:137
|
#: ../js/gdm/loginDialog.js:787 ../js/ui/components/networkAgent.js:137
|
||||||
#: ../js/ui/components/polkitAgent.js:162 ../js/ui/endSessionDialog.js:375
|
#: ../js/ui/components/polkitAgent.js:162 ../js/ui/endSessionDialog.js:376
|
||||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||||
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:126
|
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:100
|
||||||
#: ../js/ui/userMenu.js:932
|
#: ../js/ui/userMenu.js:938
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Cancelar"
|
msgstr "Cancelar"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:799
|
#: ../js/gdm/loginDialog.js:803
|
||||||
msgctxt "button"
|
msgctxt "button"
|
||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr "Iniciar sesión"
|
msgstr "Iniciar sesión"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:799
|
#: ../js/gdm/loginDialog.js:803
|
||||||
msgid "Next"
|
msgid "Next"
|
||||||
msgstr "Seguinte"
|
msgstr "Seguinte"
|
||||||
|
|
||||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||||
#. is not visible here since we only care about phase2 authentication
|
#. 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:904 ../js/ui/components/networkAgent.js:260
|
#: ../js/gdm/loginDialog.js:918 ../js/ui/components/networkAgent.js:260
|
||||||
#: ../js/ui/components/networkAgent.js:278
|
#: ../js/ui/components/networkAgent.js:278
|
||||||
msgid "Username: "
|
msgid "Username: "
|
||||||
msgstr "Nome de usuario: "
|
msgstr "Nome de usuario: "
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:1157
|
#: ../js/gdm/loginDialog.js:1174
|
||||||
msgid "Login Window"
|
msgid "Login Window"
|
||||||
msgstr "Xanela de inicio de sesión"
|
msgstr "Xanela de inicio de sesión"
|
||||||
|
|
||||||
@ -420,8 +418,8 @@ msgstr "Xanela de inicio de sesión"
|
|||||||
msgid "Power"
|
msgid "Power"
|
||||||
msgstr "Apagar"
|
msgstr "Apagar"
|
||||||
|
|
||||||
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:694 ../js/ui/userMenu.js:698
|
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:696 ../js/ui/userMenu.js:700
|
||||||
#: ../js/ui/userMenu.js:814
|
#: ../js/ui/userMenu.js:816
|
||||||
msgid "Suspend"
|
msgid "Suspend"
|
||||||
msgstr "Suspender"
|
msgstr "Suspender"
|
||||||
|
|
||||||
@ -429,58 +427,58 @@ msgstr "Suspender"
|
|||||||
msgid "Restart"
|
msgid "Restart"
|
||||||
msgstr "Reiniciar"
|
msgstr "Reiniciar"
|
||||||
|
|
||||||
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:696
|
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:698
|
||||||
#: ../js/ui/userMenu.js:698 ../js/ui/userMenu.js:813 ../js/ui/userMenu.js:936
|
#: ../js/ui/userMenu.js:700 ../js/ui/userMenu.js:815 ../js/ui/userMenu.js:942
|
||||||
msgid "Power Off"
|
msgid "Power Off"
|
||||||
msgstr "Apagar"
|
msgstr "Apagar"
|
||||||
|
|
||||||
#: ../js/gdm/util.js:182
|
#: ../js/gdm/util.js:249
|
||||||
msgid "Authentication error"
|
msgid "Authentication error"
|
||||||
msgstr "Erro de autenticación"
|
msgstr "Erro de autenticación"
|
||||||
|
|
||||||
#. Translators: this message is shown below the password entry field
|
#. Translators: this message is shown below the password entry field
|
||||||
#. to indicate the user can swipe their finger instead
|
#. to indicate the user can swipe their finger instead
|
||||||
#: ../js/gdm/util.js:299
|
#: ../js/gdm/util.js:366
|
||||||
msgid "(or swipe finger)"
|
msgid "(or swipe finger)"
|
||||||
msgstr "(ou pase o dedo)"
|
msgstr "(ou pase o dedo)"
|
||||||
|
|
||||||
#: ../js/gdm/util.js:324
|
#: ../js/gdm/util.js:391
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "(e.g., user or %s)"
|
msgid "(e.g., user or %s)"
|
||||||
msgstr "(p.ex., usuario ou %s)"
|
msgstr "(p.ex., usuario ou %s)"
|
||||||
|
|
||||||
#: ../js/misc/util.js:94
|
#: ../js/misc/util.js:97
|
||||||
msgid "Command not found"
|
msgid "Command not found"
|
||||||
msgstr "Orde non atopada"
|
msgstr "Orde non atopada"
|
||||||
|
|
||||||
#. Replace "Error invoking GLib.shell_parse_argv: " with
|
#. Replace "Error invoking GLib.shell_parse_argv: " with
|
||||||
#. something nicer
|
#. something nicer
|
||||||
#: ../js/misc/util.js:127
|
#: ../js/misc/util.js:130
|
||||||
msgid "Could not parse command:"
|
msgid "Could not parse command:"
|
||||||
msgstr "Non foi posíbel analizar a orde:"
|
msgstr "Non foi posíbel analizar a orde:"
|
||||||
|
|
||||||
#: ../js/misc/util.js:135
|
#: ../js/misc/util.js:138
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Execution of '%s' failed:"
|
msgid "Execution of '%s' failed:"
|
||||||
msgstr "Produciuse un fallo na execución de «%s»:"
|
msgstr "Produciuse un fallo na execución de «%s»:"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:348
|
#: ../js/ui/appDisplay.js:349
|
||||||
msgid "Frequent"
|
msgid "Frequent"
|
||||||
msgstr "Frecuentes"
|
msgstr "Frecuentes"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:355
|
#: ../js/ui/appDisplay.js:356
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Todos"
|
msgstr "Todos"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:913
|
#: ../js/ui/appDisplay.js:914
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "Xanela nova"
|
msgstr "Xanela nova"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:916 ../js/ui/dash.js:284
|
#: ../js/ui/appDisplay.js:917 ../js/ui/dash.js:284
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Retirar dos marcadores"
|
msgstr "Retirar dos marcadores"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:917
|
#: ../js/ui/appDisplay.js:918
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Engadir aos favoritos"
|
msgstr "Engadir aos favoritos"
|
||||||
|
|
||||||
@ -494,7 +492,7 @@ msgstr "%s foi engadido aos seus favoritos."
|
|||||||
msgid "%s has been removed from your favorites."
|
msgid "%s has been removed from your favorites."
|
||||||
msgstr "%s retirouse dos seus marcadores."
|
msgstr "%s retirouse dos seus marcadores."
|
||||||
|
|
||||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:787
|
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:789
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Preferencias"
|
msgstr "Preferencias"
|
||||||
|
|
||||||
@ -517,7 +515,7 @@ msgctxt "event list time"
|
|||||||
msgid "%H\\u2236%M"
|
msgid "%H\\u2236%M"
|
||||||
msgstr "%H\\u2236%M"
|
msgstr "%H\\u2236%M"
|
||||||
|
|
||||||
#. Transators: Shown in calendar event list, if 12h format,
|
#. Translators: Shown in calendar event list, if 12h format,
|
||||||
#. \u2236 is a ratio character, similar to : and \u2009 is
|
#. \u2236 is a ratio character, similar to : and \u2009 is
|
||||||
#. a thin space
|
#. a thin space
|
||||||
#: ../js/ui/calendar.js:77
|
#: ../js/ui/calendar.js:77
|
||||||
@ -619,35 +617,35 @@ msgid "S"
|
|||||||
msgstr "S"
|
msgstr "S"
|
||||||
|
|
||||||
#. Translators: Text to show if there are no events
|
#. Translators: Text to show if there are no events
|
||||||
#: ../js/ui/calendar.js:692
|
#: ../js/ui/calendar.js:720
|
||||||
msgid "Nothing Scheduled"
|
msgid "Nothing Scheduled"
|
||||||
msgstr "Nada programado"
|
msgstr "Nada programado"
|
||||||
|
|
||||||
#. Translators: Shown on calendar heading when selected day occurs on current year
|
#. Translators: Shown on calendar heading when selected day occurs on current year
|
||||||
#: ../js/ui/calendar.js:708
|
#: ../js/ui/calendar.js:736
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %d de %B"
|
msgstr "%A, %d de %B"
|
||||||
|
|
||||||
#. Translators: Shown on calendar heading when selected day occurs on different year
|
#. Translators: Shown on calendar heading when selected day occurs on different year
|
||||||
#: ../js/ui/calendar.js:711
|
#: ../js/ui/calendar.js:739
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d, %Y"
|
msgid "%A, %B %d, %Y"
|
||||||
msgstr "%A, %d de %B de %Y"
|
msgstr "%A, %d de %B de %Y"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:721
|
#: ../js/ui/calendar.js:749
|
||||||
msgid "Today"
|
msgid "Today"
|
||||||
msgstr "Hoxe"
|
msgstr "Hoxe"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:725
|
#: ../js/ui/calendar.js:753
|
||||||
msgid "Tomorrow"
|
msgid "Tomorrow"
|
||||||
msgstr "Mañá"
|
msgstr "Mañá"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:736
|
#: ../js/ui/calendar.js:764
|
||||||
msgid "This week"
|
msgid "This week"
|
||||||
msgstr "Esta semana"
|
msgstr "Esta semana"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:744
|
#: ../js/ui/calendar.js:772
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr "A vindeira semana"
|
msgstr "A vindeira semana"
|
||||||
|
|
||||||
@ -663,12 +661,12 @@ msgstr "Unidade externa desconectada"
|
|||||||
msgid "Removable Devices"
|
msgid "Removable Devices"
|
||||||
msgstr "Dispositivos extraíbeis"
|
msgstr "Dispositivos extraíbeis"
|
||||||
|
|
||||||
#: ../js/ui/components/autorunManager.js:593
|
#: ../js/ui/components/autorunManager.js:594
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Open with %s"
|
msgid "Open with %s"
|
||||||
msgstr "Abrir con %s"
|
msgstr "Abrir con %s"
|
||||||
|
|
||||||
#: ../js/ui/components/autorunManager.js:619
|
#: ../js/ui/components/autorunManager.js:620
|
||||||
msgid "Eject"
|
msgid "Eject"
|
||||||
msgstr "Expulsar"
|
msgstr "Expulsar"
|
||||||
|
|
||||||
@ -777,7 +775,7 @@ msgid "Sorry, that didn't work. Please try again."
|
|||||||
msgstr "Desculpe, iso non funcionou. Ténteo de novo."
|
msgstr "Desculpe, iso non funcionou. Ténteo de novo."
|
||||||
|
|
||||||
#. Translators: this is a filename used for screencast recording
|
#. Translators: this is a filename used for screencast recording
|
||||||
#: ../js/ui/components/recorder.js:48
|
#: ../js/ui/components/recorder.js:47
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Screencast from %d %t"
|
msgid "Screencast from %d %t"
|
||||||
msgstr "Screencast desde %d %t"
|
msgstr "Screencast desde %d %t"
|
||||||
@ -1024,7 +1022,7 @@ msgstr "Ver conta"
|
|||||||
msgid "Unknown reason"
|
msgid "Unknown reason"
|
||||||
msgstr "Razón descoñecida"
|
msgstr "Razón descoñecida"
|
||||||
|
|
||||||
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:97
|
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:96
|
||||||
msgid "Windows"
|
msgid "Windows"
|
||||||
msgstr "Xanelas"
|
msgstr "Xanelas"
|
||||||
|
|
||||||
@ -1040,7 +1038,7 @@ msgstr "Taboleiro"
|
|||||||
|
|
||||||
#: ../js/ui/dateMenu.js:91
|
#: ../js/ui/dateMenu.js:91
|
||||||
msgid "Open Calendar"
|
msgid "Open Calendar"
|
||||||
msgstr "Abrir o calendario"
|
msgstr "Abrir Calendario"
|
||||||
|
|
||||||
#: ../js/ui/dateMenu.js:96
|
#: ../js/ui/dateMenu.js:96
|
||||||
msgid "Open Clocks"
|
msgid "Open Clocks"
|
||||||
@ -1053,7 +1051,7 @@ msgstr "Preferencias de data e hora"
|
|||||||
#. Translators: This is the date format to use when the calendar popup is
|
#. 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").
|
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
|
||||||
#.
|
#.
|
||||||
#: ../js/ui/dateMenu.js:205
|
#: ../js/ui/dateMenu.js:215
|
||||||
msgid "%A %B %e, %Y"
|
msgid "%A %B %e, %Y"
|
||||||
msgstr "%a, %e de %B, %Y"
|
msgstr "%a, %e de %B, %Y"
|
||||||
|
|
||||||
@ -1071,7 +1069,7 @@ msgstr "Saír da sesión"
|
|||||||
#: ../js/ui/endSessionDialog.js:65
|
#: ../js/ui/endSessionDialog.js:65
|
||||||
msgid "Click Log Out to quit these applications and log out of the system."
|
msgid "Click Log Out to quit these applications and log out of the system."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Prema sobre «Saír da sesión» para saír deses aplicativos e saír da sesión do "
|
"Prema en «Saír da sesión» para pechar estes aplicativos e saír da sesión do "
|
||||||
"sistema."
|
"sistema."
|
||||||
|
|
||||||
#: ../js/ui/endSessionDialog.js:67
|
#: ../js/ui/endSessionDialog.js:67
|
||||||
@ -1090,7 +1088,7 @@ msgstr[1] "A súa sesión pecharase automaticamente en %d segundos."
|
|||||||
|
|
||||||
#: ../js/ui/endSessionDialog.js:76
|
#: ../js/ui/endSessionDialog.js:76
|
||||||
msgid "Logging out of the system."
|
msgid "Logging out of the system."
|
||||||
msgstr "Saíndo da sesión."
|
msgstr "Saíndo da sesión do sistema."
|
||||||
|
|
||||||
#: ../js/ui/endSessionDialog.js:78
|
#: ../js/ui/endSessionDialog.js:78
|
||||||
msgctxt "button"
|
msgctxt "button"
|
||||||
@ -1104,7 +1102,7 @@ msgstr "Apagar"
|
|||||||
|
|
||||||
#: ../js/ui/endSessionDialog.js:84
|
#: ../js/ui/endSessionDialog.js:84
|
||||||
msgid "Click Power Off to quit these applications and power off the system."
|
msgid "Click Power Off to quit these applications and power off the system."
|
||||||
msgstr "Prema sobre «Apagar» para saír deses aplicativos e apagar o sistema."
|
msgstr "Prema sobre «Apagar» para pechar estes aplicativos e apagar o sistema."
|
||||||
|
|
||||||
#: ../js/ui/endSessionDialog.js:86
|
#: ../js/ui/endSessionDialog.js:86
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -1134,7 +1132,7 @@ msgstr "Reiniciar"
|
|||||||
|
|
||||||
#: ../js/ui/endSessionDialog.js:101
|
#: ../js/ui/endSessionDialog.js:101
|
||||||
msgid "Click Restart to quit these applications and restart the system."
|
msgid "Click Restart to quit these applications and restart the system."
|
||||||
msgstr "Prema «Reiniciar» para saír deses aplicativos e reiniciar o sistema."
|
msgstr "Prema «Reiniciar» para pechar estes aplicativos e reiniciar o sistema."
|
||||||
|
|
||||||
#: ../js/ui/endSessionDialog.js:103
|
#: ../js/ui/endSessionDialog.js:103
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -1169,7 +1167,7 @@ msgstr "Non hai ningunha extensión instalada"
|
|||||||
#: ../js/ui/lookingGlass.js:747
|
#: ../js/ui/lookingGlass.js:747
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s has not emitted any errors."
|
msgid "%s has not emitted any errors."
|
||||||
msgstr "%s non xerou ningún erro."
|
msgstr "%s non emitiu ningún erro."
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:753
|
#: ../js/ui/lookingGlass.js:753
|
||||||
msgid "Hide Errors"
|
msgid "Hide Errors"
|
||||||
@ -1195,7 +1193,7 @@ msgstr "Erro"
|
|||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:773
|
#: ../js/ui/lookingGlass.js:773
|
||||||
msgid "Out of date"
|
msgid "Out of date"
|
||||||
msgstr "Caducado"
|
msgstr "Obsoleto"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:775
|
#: ../js/ui/lookingGlass.js:775
|
||||||
msgid "Downloading"
|
msgid "Downloading"
|
||||||
@ -1218,7 +1216,6 @@ msgid "Remove"
|
|||||||
msgstr "Retirar"
|
msgstr "Retirar"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1501
|
#: ../js/ui/messageTray.js:1501
|
||||||
#| msgid "No Messages"
|
|
||||||
msgid "Clear Messages"
|
msgid "Clear Messages"
|
||||||
msgstr "Limpar mensaxes"
|
msgstr "Limpar mensaxes"
|
||||||
|
|
||||||
@ -1226,15 +1223,15 @@ msgstr "Limpar mensaxes"
|
|||||||
msgid "Notification Settings"
|
msgid "Notification Settings"
|
||||||
msgstr "Preferencias das notificacións"
|
msgstr "Preferencias das notificacións"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1707
|
#: ../js/ui/messageTray.js:1709
|
||||||
msgid "No Messages"
|
msgid "No Messages"
|
||||||
msgstr "Non hai mensaxes"
|
msgstr "Non hai mensaxes"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1787
|
#: ../js/ui/messageTray.js:1785
|
||||||
msgid "Message Tray"
|
msgid "Message Tray"
|
||||||
msgstr "Bandexa de mensaxes"
|
msgstr "Bandexa de mensaxes"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:2864
|
#: ../js/ui/messageTray.js:2813
|
||||||
msgid "System Information"
|
msgid "System Information"
|
||||||
msgstr "Información do sistema"
|
msgstr "Información do sistema"
|
||||||
|
|
||||||
@ -1243,14 +1240,14 @@ msgctxt "program"
|
|||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "Descoñecido"
|
msgstr "Descoñecido"
|
||||||
|
|
||||||
#: ../js/ui/overviewControls.js:460 ../js/ui/screenShield.js:153
|
#: ../js/ui/overviewControls.js:463 ../js/ui/screenShield.js:149
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d new message"
|
msgid "%d new message"
|
||||||
msgid_plural "%d new messages"
|
msgid_plural "%d new messages"
|
||||||
msgstr[0] "%d mensaxe nova"
|
msgstr[0] "%d mensaxe nova"
|
||||||
msgstr[1] "%d mensaxes novas"
|
msgstr[1] "%d mensaxes novas"
|
||||||
|
|
||||||
#: ../js/ui/overview.js:82
|
#: ../js/ui/overview.js:84
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Desfacer"
|
msgstr "Desfacer"
|
||||||
|
|
||||||
@ -1262,22 +1259,21 @@ msgstr "Vista xeral"
|
|||||||
#. in the search entry when no search is
|
#. in the search entry when no search is
|
||||||
#. active; it should not exceed ~30
|
#. active; it should not exceed ~30
|
||||||
#. characters.
|
#. characters.
|
||||||
#: ../js/ui/overview.js:284
|
#: ../js/ui/overview.js:271
|
||||||
#| msgid "Type to search..."
|
|
||||||
msgid "Type to search…"
|
msgid "Type to search…"
|
||||||
msgstr "Escriba para buscar…"
|
msgstr "Escriba para buscar…"
|
||||||
|
|
||||||
#: ../js/ui/panel.js:613
|
#: ../js/ui/panel.js:633
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Saír"
|
msgstr "Saír"
|
||||||
|
|
||||||
#. Translators: If there is no suitable word for "Activities"
|
#. 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:642
|
#: ../js/ui/panel.js:657
|
||||||
msgid "Activities"
|
msgid "Activities"
|
||||||
msgstr "Actividades"
|
msgstr "Actividades"
|
||||||
|
|
||||||
#: ../js/ui/panel.js:983
|
#: ../js/ui/panel.js:954
|
||||||
msgid "Top Bar"
|
msgid "Top Bar"
|
||||||
msgstr "Barra superior"
|
msgstr "Barra superior"
|
||||||
|
|
||||||
@ -1290,34 +1286,34 @@ msgstr "Barra superior"
|
|||||||
msgid "toggle-switch-us"
|
msgid "toggle-switch-us"
|
||||||
msgstr "toggle-switch-intl"
|
msgstr "toggle-switch-intl"
|
||||||
|
|
||||||
#: ../js/ui/runDialog.js:205
|
#: ../js/ui/runDialog.js:74
|
||||||
msgid "Enter a Command"
|
msgid "Enter a Command"
|
||||||
msgstr "Escriba unha orde"
|
msgstr "Escriba unha orde"
|
||||||
|
|
||||||
#: ../js/ui/runDialog.js:241
|
#: ../js/ui/runDialog.js:110
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Pechar"
|
msgstr "Pechar"
|
||||||
|
|
||||||
#. Translators: This is a time format for a date in
|
#. Translators: This is a time format for a date in
|
||||||
#. long format
|
#. long format
|
||||||
#: ../js/ui/screenShield.js:90
|
#: ../js/ui/screenShield.js:86
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %d de %B"
|
msgstr "%A, %d de %B"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:155
|
#: ../js/ui/screenShield.js:151
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d new notification"
|
msgid "%d new notification"
|
||||||
msgid_plural "%d new notifications"
|
msgid_plural "%d new notifications"
|
||||||
msgstr[0] "%d notificación nova"
|
msgstr[0] "%d notificación nova"
|
||||||
msgstr[1] "%d notificacións novas"
|
msgstr[1] "%d notificacións novas"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:442 ../js/ui/userMenu.js:805
|
#: ../js/ui/screenShield.js:438 ../js/ui/userMenu.js:807
|
||||||
msgid "Lock"
|
msgid "Lock"
|
||||||
msgstr "Bloquear"
|
msgstr "Bloquear"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:639
|
#: ../js/ui/screenShield.js:641
|
||||||
msgid "GNOME needs to lock the screen"
|
msgid "GNOME needs to lock the screen"
|
||||||
msgstr "GNOME debe bloquear a pantalla"
|
msgstr "GNOME precisa bloquear a pantalla"
|
||||||
|
|
||||||
#. We could not become modal, so we can't activate the
|
#. We could not become modal, so we can't activate the
|
||||||
#. screenshield. The user is probably very upset at this
|
#. screenshield. The user is probably very upset at this
|
||||||
@ -1326,22 +1322,19 @@ msgstr "GNOME debe bloquear a pantalla"
|
|||||||
#.
|
#.
|
||||||
#. XXX: another option is to kick the user into the gdm login
|
#. XXX: another option is to kick the user into the gdm login
|
||||||
#. screen, where we're not affected by grabs
|
#. screen, where we're not affected by grabs
|
||||||
#: ../js/ui/screenShield.js:758 ../js/ui/screenShield.js:1169
|
#: ../js/ui/screenShield.js:762 ../js/ui/screenShield.js:1198
|
||||||
#| msgid "Unable to connect to %s"
|
|
||||||
msgid "Unable to lock"
|
msgid "Unable to lock"
|
||||||
msgstr "Non foi posíbel bloquear"
|
msgstr "Non foi posíbel bloquear"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:759 ../js/ui/screenShield.js:1170
|
#: ../js/ui/screenShield.js:763 ../js/ui/screenShield.js:1199
|
||||||
#| msgid "No such application"
|
|
||||||
msgid "Lock was blocked by an application"
|
msgid "Lock was blocked by an application"
|
||||||
msgstr "O bloqueo foi impedido por un aplicativo"
|
msgstr "Un aplicativo impediu o bloqueo"
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:431
|
#: ../js/ui/searchDisplay.js:453
|
||||||
#| msgid "Searching..."
|
|
||||||
msgid "Searching…"
|
msgid "Searching…"
|
||||||
msgstr "Buscando…"
|
msgstr "Buscando…"
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:475
|
#: ../js/ui/searchDisplay.js:497
|
||||||
msgid "No results."
|
msgid "No results."
|
||||||
msgstr "Sen resultados."
|
msgstr "Sen resultados."
|
||||||
|
|
||||||
@ -1353,11 +1346,11 @@ msgstr "Copiar"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "Pegar"
|
msgstr "Pegar"
|
||||||
|
|
||||||
#: ../js/ui/shellEntry.js:105
|
#: ../js/ui/shellEntry.js:101
|
||||||
msgid "Show Text"
|
msgid "Show Text"
|
||||||
msgstr "Mostrar texto"
|
msgstr "Mostrar texto"
|
||||||
|
|
||||||
#: ../js/ui/shellEntry.js:107
|
#: ../js/ui/shellEntry.js:103
|
||||||
msgid "Hide Text"
|
msgid "Hide Text"
|
||||||
msgstr "Ocultar texto"
|
msgstr "Ocultar texto"
|
||||||
|
|
||||||
@ -1367,9 +1360,9 @@ msgstr "Contrasinal"
|
|||||||
|
|
||||||
#: ../js/ui/shellMountOperation.js:391
|
#: ../js/ui/shellMountOperation.js:391
|
||||||
msgid "Remember Password"
|
msgid "Remember Password"
|
||||||
msgstr "Lembrar o contrasinal"
|
msgstr "Lembrar contrasinal"
|
||||||
|
|
||||||
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:140
|
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:114
|
||||||
msgid "Unlock"
|
msgid "Unlock"
|
||||||
msgstr "Desbloquear"
|
msgstr "Desbloquear"
|
||||||
|
|
||||||
@ -1433,12 +1426,10 @@ msgid "Visibility"
|
|||||||
msgstr "Visibilidade"
|
msgstr "Visibilidade"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:59
|
#: ../js/ui/status/bluetooth.js:59
|
||||||
#| msgid "Send Files to Device..."
|
|
||||||
msgid "Send Files to Device…"
|
msgid "Send Files to Device…"
|
||||||
msgstr "Enviar ficheiros ao dispositivo…"
|
msgstr "Enviar ficheiros ao dispositivo…"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:60
|
#: ../js/ui/status/bluetooth.js:60
|
||||||
#| msgid "Set Up a New Device..."
|
|
||||||
msgid "Set Up a New Device…"
|
msgid "Set Up a New Device…"
|
||||||
msgstr "Configurar un dispositivo novo…"
|
msgstr "Configurar un dispositivo novo…"
|
||||||
|
|
||||||
@ -1465,7 +1456,6 @@ msgid "connecting..."
|
|||||||
msgstr "conectando…"
|
msgstr "conectando…"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:239
|
#: ../js/ui/status/bluetooth.js:239
|
||||||
#| msgid "Send Files..."
|
|
||||||
msgid "Send Files…"
|
msgid "Send Files…"
|
||||||
msgstr "Enviar ficheiros…"
|
msgstr "Enviar ficheiros…"
|
||||||
|
|
||||||
@ -1547,7 +1537,7 @@ msgstr "Mostrar a distribución do teclado"
|
|||||||
|
|
||||||
#: ../js/ui/status/keyboard.js:373
|
#: ../js/ui/status/keyboard.js:373
|
||||||
msgid "Region & Language Settings"
|
msgid "Region & Language Settings"
|
||||||
msgstr "Configuración rexional e de idioma"
|
msgstr "Preferencias de rexión e idioma"
|
||||||
|
|
||||||
#: ../js/ui/status/lockScreenMenu.js:43
|
#: ../js/ui/status/lockScreenMenu.js:43
|
||||||
msgid "Volume, network, battery"
|
msgid "Volume, network, battery"
|
||||||
@ -1592,7 +1582,7 @@ msgstr "non dispoñíbel"
|
|||||||
|
|
||||||
#: ../js/ui/status/network.js:493 ../js/ui/status/network.js:1551
|
#: ../js/ui/status/network.js:493 ../js/ui/status/network.js:1551
|
||||||
msgid "connection failed"
|
msgid "connection failed"
|
||||||
msgstr "conexión fallida"
|
msgstr "conexión fallada"
|
||||||
|
|
||||||
#: ../js/ui/status/network.js:552 ../js/ui/status/network.js:1435
|
#: ../js/ui/status/network.js:552 ../js/ui/status/network.js:1435
|
||||||
#: ../js/ui/status/network.js:1627
|
#: ../js/ui/status/network.js:1627
|
||||||
@ -1678,7 +1668,6 @@ msgstr "Preferencias de enerxía"
|
|||||||
#. 0 is reported when UPower does not have enough data
|
#. 0 is reported when UPower does not have enough data
|
||||||
#. to estimate battery life
|
#. to estimate battery life
|
||||||
#: ../js/ui/status/power.js:99
|
#: ../js/ui/status/power.js:99
|
||||||
#| msgid "Estimating..."
|
|
||||||
msgid "Estimating…"
|
msgid "Estimating…"
|
||||||
msgstr "Estimando…"
|
msgstr "Estimando…"
|
||||||
|
|
||||||
@ -1778,59 +1767,59 @@ msgstr "Volume"
|
|||||||
msgid "Microphone"
|
msgid "Microphone"
|
||||||
msgstr "Micrófono"
|
msgstr "Micrófono"
|
||||||
|
|
||||||
#: ../js/ui/unlockDialog.js:151
|
#: ../js/ui/unlockDialog.js:125
|
||||||
msgid "Log in as another user"
|
msgid "Log in as another user"
|
||||||
msgstr "Iniciar sesión como outro usuario"
|
msgstr "Iniciar sesión como outro usuario"
|
||||||
|
|
||||||
#: ../js/ui/unlockDialog.js:177
|
#: ../js/ui/unlockDialog.js:146
|
||||||
msgid "Unlock Window"
|
msgid "Unlock Window"
|
||||||
msgstr "Desbloquear xanela"
|
msgstr "Desbloquear xanela"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:192
|
#: ../js/ui/userMenu.js:193
|
||||||
msgid "Available"
|
msgid "Available"
|
||||||
msgstr "Dispoñíbel"
|
msgstr "Dispoñíbel"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:195
|
#: ../js/ui/userMenu.js:196
|
||||||
msgid "Busy"
|
msgid "Busy"
|
||||||
msgstr "Ocupado"
|
msgstr "Ocupado"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:198
|
#: ../js/ui/userMenu.js:199
|
||||||
msgid "Invisible"
|
msgid "Invisible"
|
||||||
msgstr "Invisíbel"
|
msgstr "Invisíbel"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:201
|
#: ../js/ui/userMenu.js:202
|
||||||
msgid "Away"
|
msgid "Away"
|
||||||
msgstr "Ausente"
|
msgstr "Ausente"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:204
|
#: ../js/ui/userMenu.js:205
|
||||||
msgid "Idle"
|
msgid "Idle"
|
||||||
msgstr "Inactivo"
|
msgstr "Inactivo"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:207
|
#: ../js/ui/userMenu.js:208
|
||||||
msgid "Offline"
|
msgid "Offline"
|
||||||
msgstr "Desconectado"
|
msgstr "Desconectado"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:779
|
#: ../js/ui/userMenu.js:781
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Notificacións"
|
msgstr "Notificacións"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:795
|
#: ../js/ui/userMenu.js:797
|
||||||
msgid "Switch User"
|
msgid "Switch User"
|
||||||
msgstr "Cambiar de usuario"
|
msgstr "Cambiar de usuario"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:800
|
#: ../js/ui/userMenu.js:802
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "Saír da sesión"
|
msgstr "Saír da sesión"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:820
|
#: ../js/ui/userMenu.js:822
|
||||||
msgid "Install Updates & Restart"
|
msgid "Install Updates & Restart"
|
||||||
msgstr "Instalar actualizacións e reiniciar"
|
msgstr "Instalar actualizacións e reiniciar"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:838
|
#: ../js/ui/userMenu.js:840
|
||||||
msgid "Your chat status will be set to busy"
|
msgid "Your chat status will be set to busy"
|
||||||
msgstr "O seu estado de conversa definirase como «ocupado»"
|
msgstr "O seu estado de conversa estabelecerase a «ocupado»"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:839
|
#: ../js/ui/userMenu.js:841
|
||||||
msgid ""
|
msgid ""
|
||||||
"Notifications are now disabled, including chat messages. Your online status "
|
"Notifications are now disabled, including chat messages. Your online status "
|
||||||
"has been adjusted to let others know that you might not see their messages."
|
"has been adjusted to let others know that you might not see their messages."
|
||||||
@ -1839,33 +1828,35 @@ msgstr ""
|
|||||||
"conversa. O seu estado de conexión axustouse para que outros saiban que non "
|
"conversa. O seu estado de conexión axustouse para que outros saiban que non "
|
||||||
"quere ver as súas mensaxes."
|
"quere ver as súas mensaxes."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:885
|
#: ../js/ui/userMenu.js:888
|
||||||
msgid "Other users are logged in."
|
msgid "Other users are logged in."
|
||||||
msgstr "Hai outros usuarios conectados."
|
msgstr "Hai outros usuarios conectados."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:890
|
#: ../js/ui/userMenu.js:893
|
||||||
msgid "Shutting down might cause them to lose unsaved work."
|
msgid "Shutting down might cause them to lose unsaved work."
|
||||||
msgstr "Se apaga o computador pode perder o traballo que non gardou."
|
msgstr "Se apaga o computador pode perder o traballo que non gardou."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:916
|
#. Translators: Remote here refers to a remote session, like a ssh login
|
||||||
|
#: ../js/ui/userMenu.js:921
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (remote)"
|
msgid "%s (remote)"
|
||||||
msgstr "%s (remoto)"
|
msgstr "%s (remoto)"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:918
|
#. Translators: Console here refers to a tty like a VT console
|
||||||
|
#: ../js/ui/userMenu.js:924
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (console)"
|
msgid "%s (console)"
|
||||||
msgstr "%s (consola)"
|
msgstr "%s (consola)"
|
||||||
|
|
||||||
#: ../js/ui/viewSelector.js:101
|
#: ../js/ui/viewSelector.js:100
|
||||||
msgid "Applications"
|
msgid "Applications"
|
||||||
msgstr "Aplicativos"
|
msgstr "Aplicativos"
|
||||||
|
|
||||||
#: ../js/ui/viewSelector.js:105
|
#: ../js/ui/viewSelector.js:104
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Buscar"
|
msgstr "Buscar"
|
||||||
|
|
||||||
#: ../js/ui/wanda.js:92
|
#: ../js/ui/wanda.js:77
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sorry, no wisdom for you today:\n"
|
"Sorry, no wisdom for you today:\n"
|
||||||
@ -1874,7 +1865,7 @@ msgstr ""
|
|||||||
"Hoxe non ten ningunha mensaxe:\n"
|
"Hoxe non ten ningunha mensaxe:\n"
|
||||||
"%s"
|
"%s"
|
||||||
|
|
||||||
#: ../js/ui/wanda.js:96
|
#: ../js/ui/wanda.js:81
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s the Oracle says"
|
msgid "%s the Oracle says"
|
||||||
msgstr "%s o oráculo dí"
|
msgstr "%s o oráculo dí"
|
||||||
|
6
po/lt.po
6
po/lt.po
@ -461,7 +461,7 @@ msgstr "Nepavyko įvykdyti „%s“:"
|
|||||||
|
|
||||||
#: ../js/ui/appDisplay.js:349
|
#: ../js/ui/appDisplay.js:349
|
||||||
msgid "Frequent"
|
msgid "Frequent"
|
||||||
msgstr "Dažniausios"
|
msgstr "Dažnai naudojamos"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:356
|
#: ../js/ui/appDisplay.js:356
|
||||||
msgid "All"
|
msgid "All"
|
||||||
@ -1262,7 +1262,7 @@ msgstr "Apžvalga"
|
|||||||
#. characters.
|
#. characters.
|
||||||
#: ../js/ui/overview.js:271
|
#: ../js/ui/overview.js:271
|
||||||
msgid "Type to search…"
|
msgid "Type to search…"
|
||||||
msgstr "Rašykite ko ieškote…"
|
msgstr "Rašykite, ko ieškote…"
|
||||||
|
|
||||||
#: ../js/ui/panel.js:612
|
#: ../js/ui/panel.js:612
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
@ -1299,7 +1299,7 @@ msgstr "Užverti"
|
|||||||
#. long format
|
#. long format
|
||||||
#: ../js/ui/screenShield.js:86
|
#: ../js/ui/screenShield.js:86
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %B %d"
|
msgstr "%A, %B %d d."
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:151
|
#: ../js/ui/screenShield.js:151
|
||||||
#, c-format
|
#, c-format
|
||||||
|
320
po/ml.po
320
po/ml.po
@ -10,9 +10,9 @@ msgstr ""
|
|||||||
"Project-Id-Version: gnome-shell master\n"
|
"Project-Id-Version: gnome-shell master\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||||
"shell&keywords=I18N+L10N&component=general\n"
|
"shell&keywords=I18N+L10N&component=general\n"
|
||||||
"POT-Creation-Date: 2013-03-23 11:49+0000\n"
|
"POT-Creation-Date: 2013-04-24 18:23+0000\n"
|
||||||
"PO-Revision-Date: 2013-03-25 14:57+0530\n"
|
"PO-Revision-Date: 2013-04-25 00:32+0530\n"
|
||||||
"Last-Translator: Ani Peter <peter.ani@gmail.com>\n"
|
"Last-Translator: Balasankar C <c.balasankar@gmail.com>\n"
|
||||||
"Language-Team: American English <kde-i18n-doc@kde.org>\n"
|
"Language-Team: American English <kde-i18n-doc@kde.org>\n"
|
||||||
"Language: ml\n"
|
"Language: ml\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@ -44,10 +44,14 @@ msgid "Focus the active notification"
|
|||||||
msgstr "സജീവമായ അറിയിപ്പിനെ കേന്ദ്രീകരിക്കുക"
|
msgstr "സജീവമായ അറിയിപ്പിനെ കേന്ദ്രീകരിക്കുക"
|
||||||
|
|
||||||
#: ../data/50-gnome-shell-system.xml.in.h:4
|
#: ../data/50-gnome-shell-system.xml.in.h:4
|
||||||
|
msgid "Show the overview"
|
||||||
|
msgstr "പൊതുവായ അവലോകനം കാണിക്കുക"
|
||||||
|
|
||||||
|
#: ../data/50-gnome-shell-system.xml.in.h:5
|
||||||
msgid "Show all applications"
|
msgid "Show all applications"
|
||||||
msgstr "എല്ലാ പ്രയോഗങ്ങളും കാണിയ്ക്കുക"
|
msgstr "എല്ലാ പ്രയോഗങ്ങളും കാണിയ്ക്കുക"
|
||||||
|
|
||||||
#: ../data/50-gnome-shell-system.xml.in.h:5
|
#: ../data/50-gnome-shell-system.xml.in.h:6
|
||||||
msgid "Open the application menu"
|
msgid "Open the application menu"
|
||||||
msgstr "പ്രയോഗത്തിന്റെ മെനു തുറക്കുക"
|
msgstr "പ്രയോഗത്തിന്റെ മെനു തുറക്കുക"
|
||||||
|
|
||||||
@ -71,8 +75,7 @@ msgstr "ഗ്നോം ഷെല് എക്സ്റ്റെന്ഷ
|
|||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
|
||||||
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Alt-F2-ല് ഡവലപ്പര്മാര്ക്കും ടെസ്റ്റേര്സിനും പ്രയോജനകരമായ ആന്തരിക "
|
"Alt-F2-ല് ഡവലപ്പര്മാര്ക്കും ടെസ്റ്റേര്സിനും പ്രയോജനകരമായ ആന്തരിക പ്രയോഗങ്ങള് പ്രവര്ത്തന "
|
||||||
"പ്രയോഗങ്ങള് പ്രവര്ത്തന "
|
|
||||||
"സജ്ജമാക്കുന്നു"
|
"സജ്ജമാക്കുന്നു"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:2
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:2
|
||||||
@ -80,8 +83,7 @@ msgid ""
|
|||||||
"Allows access to internal debugging and monitoring tools using the Alt-F2 "
|
"Allows access to internal debugging and monitoring tools using the Alt-F2 "
|
||||||
"dialog."
|
"dialog."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Alt-F2 ഡയലോഗ് ഉപയോഗിച്ചു് ആന്തരിക ഡീബഗ്ഗിലേക്കും നീരീക്ഷണ പ്രയോഗങ്ങളിലേക്കും "
|
"Alt-F2 ഡയലോഗ് ഉപയോഗിച്ചു് ആന്തരിക ഡീബഗ്ഗിലേക്കും നീരീക്ഷണ പ്രയോഗങ്ങളിലേക്കും പ്രവേശനം "
|
||||||
"പ്രവേശനം "
|
|
||||||
"അനുവദിയ്ക്കുക."
|
"അനുവദിയ്ക്കുക."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:3
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:3
|
||||||
@ -95,19 +97,14 @@ msgid ""
|
|||||||
"list. You can also manipulate this list with the EnableExtension and "
|
"list. You can also manipulate this list with the EnableExtension and "
|
||||||
"DisableExtension DBus methods on org.gnome.Shell."
|
"DisableExtension DBus methods on org.gnome.Shell."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ഗ്നോം ഷെല് എക്സ്റ്റെന്ഷനുകള്ക്കു് ഒരു യുയുഐഡി വിശേഷതയുണ്ടു്; ലഭ്യമാക്കേണ്ട "
|
"ഗ്നോം ഷെല് എക്സ്റ്റെന്ഷനുകള്ക്കു് ഒരു യുയുഐഡി വിശേഷതയുണ്ടു്; ലഭ്യമാക്കേണ്ട എക്സ്റ്റെന്ഷനുകള് ഈ കീ പട്ടിക "
|
||||||
"എക്സ്റ്റെന്ഷനുകള് ഈ കീ പട്ടിക "
|
"ലഭ്യമാക്കുന്നു. ലഭ്യമാക്കേണ്ട ഏതു് എക്സ്റ്റെന്ഷനും ഈ പട്ടികയിലുണ്ടാവണം. org.gnome.Shell-ല് "
|
||||||
"ലഭ്യമാക്കുന്നു. ലഭ്യമാക്കേണ്ട ഏതു് എക്സ്റ്റെന്ഷനും ഈ പട്ടികയിലുണ്ടാവണം. "
|
"നിങ്ങള്ക്കു് EnableExtension, DisableExtension എന്നീ ഡീബസ് രീതികളിലൂടെ ഈ പട്ടിക "
|
||||||
"org.gnome.Shell-ല് "
|
|
||||||
"നിങ്ങള്ക്കു് EnableExtension, DisableExtension എന്നീ ഡീബസ് രീതികളിലൂടെ ഈ "
|
|
||||||
"പട്ടിക "
|
|
||||||
"കൈകാര്യം ചെയ്യുവാനും സാധിയ്ക്കുന്നു."
|
"കൈകാര്യം ചെയ്യുവാനും സാധിയ്ക്കുന്നു."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:5
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:5
|
||||||
msgid "Whether to collect stats about applications usage"
|
msgid "Whether to collect stats about applications usage"
|
||||||
msgstr ""
|
msgstr "പ്രയോഗങ്ങളുടെ ഉപയോഗത്തെപ്പറ്റിയുള്ള സ്ഥിതിവിവരക്കണക്കുകള് ശേഖരിയ്ക്കണമോ എന്നു്"
|
||||||
"പ്രയോഗങ്ങളുടെ ഉപയോഗത്തെപ്പറ്റിയുള്ള സ്ഥിതിവിവരക്കണക്കുകള് ശേഖരിയ്ക്കണമോ "
|
|
||||||
"എന്നു്"
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:6
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:6
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -116,12 +113,9 @@ msgid ""
|
|||||||
"want to disable this for privacy reasons. Please note that doing so won't "
|
"want to disable this for privacy reasons. Please note that doing so won't "
|
||||||
"remove already saved data."
|
"remove already saved data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ഏറ്റവും കൂടുതല് തവണ ഉപയോഗിയ്ക്കുന്ന പ്രയോഗങ്ങള് ലഭ്യമാക്കുന്നതിനായി ഷെല് "
|
"ഏറ്റവും കൂടുതല് തവണ ഉപയോഗിയ്ക്കുന്ന പ്രയോഗങ്ങള് ലഭ്യമാക്കുന്നതിനായി ഷെല് സാധാരണയായി സജീവമായ "
|
||||||
"സാധാരണയായി സജീവമായ "
|
"പ്രയോഗങ്ങളെ നിരീക്ഷിയ്ക്കുന്നു. (ഉദാഹരണത്തിനു്, ലോഞ്ചേര്സ്). ഈ ഡേറ്റാ സ്വകാര്യമായി "
|
||||||
"പ്രയോഗങ്ങളെ നിരീക്ഷിയ്ക്കുന്നു. (ഉദാഹരണത്തിനു്, ലോഞ്ചേര്സ്). ഈ ഡേറ്റാ "
|
"സൂക്ഷിയ്ക്കുന്നെങ്കിലും, ചില കാരണങ്ങളാല് ഇതു് പ്രവര്ത്തന രഹിതമാക്കേണ്ടതുണ്ടു്. ഇങ്ങനെ ചെയ്യുന്നതു് "
|
||||||
"സ്വകാര്യമായി "
|
|
||||||
"സൂക്ഷിയ്ക്കുന്നെങ്കിലും, ചില കാരണങ്ങളാല് ഇതു് പ്രവര്ത്തന "
|
|
||||||
"രഹിതമാക്കേണ്ടതുണ്ടു്. ഇങ്ങനെ ചെയ്യുന്നതു് "
|
|
||||||
"നിങ്ങള് സൂക്ഷിച്ച ഡേറ്റയെ ബാധിയ്ക്കുന്നതല്ല."
|
"നിങ്ങള് സൂക്ഷിച്ച ഡേറ്റയെ ബാധിയ്ക്കുന്നതല്ല."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:7
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:7
|
||||||
@ -132,8 +126,7 @@ msgstr "ഇഷ്ടമുള്ള പ്രയോഗങ്ങള്ക്
|
|||||||
msgid ""
|
msgid ""
|
||||||
"The applications corresponding to these identifiers will be displayed in the "
|
"The applications corresponding to these identifiers will be displayed in the "
|
||||||
"favorites area."
|
"favorites area."
|
||||||
msgstr ""
|
msgstr "ഈ ഐഡന്റിഫയറുകള്ക്കുള്ള പ്രയോഗങ്ങള് ഉചിതമായ സ്ഥലങ്ങളില് കാണിയ്ക്കുന്നു."
|
||||||
"ഈ ഐഡന്റിഫയറുകള്ക്കുള്ള പ്രയോഗങ്ങള് ഉചിതമായ സ്ഥലങ്ങളില് കാണിയ്ക്കുന്നു."
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:9
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:9
|
||||||
msgid "List of categories that should be displayed as folders"
|
msgid "List of categories that should be displayed as folders"
|
||||||
@ -144,8 +137,8 @@ msgid ""
|
|||||||
"Each category name in this list will be represented as folder in the "
|
"Each category name in this list will be represented as folder in the "
|
||||||
"application view, rather than being displayed inline in the main view."
|
"application view, rather than being displayed inline in the main view."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ഈ പട്ടികയിലുള്ള ഓരോ വിഭാഗത്തിന്റെ പേരും, പ്രധാന കാഴ്ചയില് ഓരോ വരിയായി "
|
"ഈ പട്ടികയിലുള്ള ഓരോ വിഭാഗത്തിന്റെ പേരും, പ്രധാന കാഴ്ചയില് ഓരോ വരിയായി കാണിയ്ക്കുന്നതിനു് "
|
||||||
"കാണിയ്ക്കുന്നതിനു് പകരം പ്രയോഗങ്ങളുടെ കാഴ്ചയില് ഫോള്ഡറായി കാണിയ്ക്കുന്നു. "
|
"പകരം പ്രയോഗങ്ങളുടെ കാഴ്ചയില് ഫോള്ഡറായി കാണിയ്ക്കുന്നു. "
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:11
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:11
|
||||||
msgid "History for command (Alt-F2) dialog"
|
msgid "History for command (Alt-F2) dialog"
|
||||||
@ -160,8 +153,7 @@ msgid ""
|
|||||||
"Internally used to store the last IM presence explicitly set by the user. "
|
"Internally used to store the last IM presence explicitly set by the user. "
|
||||||
"The value here is from the TpConnectionPresenceType enumeration."
|
"The value here is from the TpConnectionPresenceType enumeration."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ഉപയോക്താവു് സജ്ജമാക്കിയ അവസാന ഐഎം ആന്തരികമായി സൂക്ഷിയ്ക്കുന്നതിനു് "
|
"ഉപയോക്താവു് സജ്ജമാക്കിയ അവസാന ഐഎം ആന്തരികമായി സൂക്ഷിയ്ക്കുന്നതിനു് ഉപയോഗിയ്ക്കുന്നു. മൂല്യം "
|
||||||
"ഉപയോഗിയ്ക്കുന്നു. മൂല്യം "
|
|
||||||
"TpConnectionPresenceType തരത്തിലുള്ളതാകുന്നു."
|
"TpConnectionPresenceType തരത്തിലുള്ളതാകുന്നു."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
|
||||||
@ -169,8 +161,7 @@ msgid ""
|
|||||||
"Internally used to store the last session presence status for the user. The "
|
"Internally used to store the last session presence status for the user. The "
|
||||||
"value here is from the GsmPresenceStatus enumeration."
|
"value here is from the GsmPresenceStatus enumeration."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ഉപയോക്താവിനുള്ള അവസാന സെഷന് അവസ്ഥ ആന്തരികമായി സൂക്ഷിയ്ക്കുന്നതിനു് "
|
"ഉപയോക്താവിനുള്ള അവസാന സെഷന് അവസ്ഥ ആന്തരികമായി സൂക്ഷിയ്ക്കുന്നതിനു് ഉപയോഗിയ്ക്കുന്നു. മൂല്യം "
|
||||||
"ഉപയോഗിയ്ക്കുന്നു. മൂല്യം "
|
|
||||||
"GsmPresenceStatus തരത്തിലുള്ളതാകുന്നു."
|
"GsmPresenceStatus തരത്തിലുള്ളതാകുന്നു."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
|
||||||
@ -182,15 +173,13 @@ msgid ""
|
|||||||
"This key overrides the automatic hiding of the 'Log out' menuitem in single-"
|
"This key overrides the automatic hiding of the 'Log out' menuitem in single-"
|
||||||
"user, single-session situations."
|
"user, single-session situations."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"സിംഗിള് യൂസര്, സിംഗിള് സെഷനില് 'ലോഗൌട്ട്' മെനുവസ്തു അദൃശ്യമാക്കുന്നതിനായി "
|
"സിംഗിള് യൂസര്, സിംഗിള് സെഷനില് 'ലോഗൌട്ട്' മെനുവസ്തു അദൃശ്യമാക്കുന്നതിനായി ഈ കീ ഉപയോഗിയ്ക്കുന്നു"
|
||||||
"ഈ കീ ഉപയോഗിയ്ക്കുന്നു"
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
|
||||||
msgid ""
|
msgid ""
|
||||||
"Whether to remember password for mounting encrypted or remote filesystems"
|
"Whether to remember password for mounting encrypted or remote filesystems"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"എന്ക്രിപ്റ്റ് ചെയ്തതോ വിദൂരമോ ആയ ഫയല്സിസ്റ്റങ്ങള് മൌണ്ട് ചെയ്യുമ്പോഴുള്ള "
|
"എന്ക്രിപ്റ്റ് ചെയ്തതോ വിദൂരമോ ആയ ഫയല്സിസ്റ്റങ്ങള് മൌണ്ട് ചെയ്യുമ്പോഴുള്ള രഹസ്യവാക്ക് ഓര്മ്മിക്കണോ എന്ന്"
|
||||||
"രഹസ്യവാക്ക് ഓര്മ്മിക്കണോ എന്ന്"
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -199,10 +188,9 @@ msgid ""
|
|||||||
"'Remember Password' checkbox will be present. This key sets the default "
|
"'Remember Password' checkbox will be present. This key sets the default "
|
||||||
"state of the checkbox."
|
"state of the checkbox."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ഒരു എന്ക്രിപ്റ്റ് ചെയ്ത ഡിവൈസ് അല്ലെങ്കില് വിദൂര ഫയല്സിസ്റ്റം മൌണ്ട് "
|
"ഒരു എന്ക്രിപ്റ്റ് ചെയ്ത ഡിവൈസ് അല്ലെങ്കില് വിദൂര ഫയല്സിസ്റ്റം മൌണ്ട് ചെയ്യുമ്പോള് ഷെല് ഒരു രഹസ്യവാക്ക് "
|
||||||
"ചെയ്യുമ്പോള് ഷെല് ഒരു രഹസ്യവാക്ക് ആവശ്യപ്പെടുന്നു. രഹസ്യവാക്ക് "
|
"ആവശ്യപ്പെടുന്നു. രഹസ്യവാക്ക് സൂക്ഷിയ്ക്കുവാന് സാധ്യമെങ്കില്, 'രഹസ്യവാക്ക് ഓര്ത്തു്വയ്ക്കുക' ചെക്ക്ബോക്സ് "
|
||||||
"സൂക്ഷിയ്ക്കുവാന് സാധ്യമെങ്കില്, 'രഹസ്യവാക്ക് ഓര്ത്തു്വയ്ക്കുക' "
|
"കാണാം. ഈ കീ ചെക്ക്ബോക്സിന്റെ സ്വതവേയുള്ള അവസ്ഥ സജ്ജമാക്കുന്നു."
|
||||||
"ചെക്ക്ബോക്സ് കാണാം. ഈ കീ ചെക്ക്ബോക്സിന്റെ സ്വതവേയുള്ള അവസ്ഥ സജ്ജമാക്കുന്നു."
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||||
msgid "Show the week date in the calendar"
|
msgid "Show the week date in the calendar"
|
||||||
@ -228,61 +216,65 @@ msgstr "\"പ്രയോഗങ്ങള് കാണിയ്ക്കുക
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"പ്രവര്ത്തികളുടെ അവലോകനത്തിന്റെ \"പ്രയോഗങ്ങള് കാണിയ്ക്കുക\" എന്ന കാഴ്ച "
|
"പ്രവര്ത്തികളുടെ അവലോകനത്തിന്റെ \"പ്രയോഗങ്ങള് കാണിയ്ക്കുക\" എന്ന കാഴ്ച തുറക്കുന്നതിനുള്ള കീബൈന്ഡിങ്"
|
||||||
"തുറക്കുന്നതിനുള്ള കീബൈന്ഡിങ്"
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||||
|
msgid "Keybinding to open the overview"
|
||||||
|
msgstr "പൊതുവായ അവലോകനം തുറക്കുന്നതിനുള്ള കീബൈന്ഡിങ്"
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||||
|
msgid "Keybinding to open the Activities Overview."
|
||||||
|
msgstr "പ്രയോഗങ്ങളുടെ പൊതുവായ അവലോകനം എന്ന കാഴ്ച തുറക്കുന്നതിനുള്ള കീബൈന്ഡിങ്"
|
||||||
|
|
||||||
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||||
msgid "Keybinding to toggle the visibility of the message tray"
|
msgid "Keybinding to toggle the visibility of the message tray"
|
||||||
msgstr "സന്ദേശ ട്രേയുടെ ദൃശ്യത ടൊഗ്ഗിള് ചെയ്യുന്നതിനുള്ള കീക്കൂട്ടം"
|
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 message tray."
|
msgid "Keybinding to toggle the visibility of the message tray."
|
||||||
msgstr "സന്ദേശ ട്രേയുടെ ദൃശ്യത ടൊഗ്ഗിള് ചെയ്യുന്നതിനുള്ള കീക്കൂട്ടം."
|
msgstr "സന്ദേശ ട്രേയുടെ ദൃശ്യത ടൊഗ്ഗിള് ചെയ്യുന്നതിനുള്ള കീക്കൂട്ടം."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||||
msgid "Keybinding to focus the active notification"
|
msgid "Keybinding to focus the active notification"
|
||||||
msgstr "സജീവമായ അറിയിപ്പിനുള്ള കീബൈന്ഡിങ്"
|
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."
|
msgid "Keybinding to focus the active notification."
|
||||||
msgstr "സജീവമായ അറിയിപ്പിനുള്ള കീബൈന്ഡിങ്."
|
msgstr "സജീവമായ അറിയിപ്പിനുള്ള കീബൈന്ഡിങ്."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||||
msgid "Keybinding to toggle the screen recorder"
|
msgid "Keybinding to toggle the screen recorder"
|
||||||
msgstr "സ്ക്രീന് റിക്കോര്ഡര് ടൊഗ്ഗിള് ചെയ്യുന്നതിനുള്ള കീക്കൂട്ടം"
|
msgstr "സ്ക്രീന് റിക്കോര്ഡര് ടൊഗ്ഗിള് ചെയ്യുന്നതിനുള്ള കീക്കൂട്ടം"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||||
msgid "Keybinding to start/stop the builtin screen recorder."
|
msgid "Keybinding to start/stop the builtin screen recorder."
|
||||||
msgstr ""
|
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"
|
msgid "Which keyboard to use"
|
||||||
msgstr "ഏതു് കീബോര്ഡ് ഉപയോഗിയ്ക്കണം"
|
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."
|
msgid "The type of keyboard to use."
|
||||||
msgstr "ഏതു് തരം കീബോര്ഡ് ഉപയോഗിയ്ക്കണം."
|
msgstr "ഏതു് തരം കീബോര്ഡ് ഉപയോഗിയ്ക്കണം."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||||
msgid "Framerate used for recording screencasts."
|
msgid "Framerate used for recording screencasts."
|
||||||
msgstr "സ്ക്രീന്കാസ്റ്റുകള് റിക്കോര്ഡ് ചെയ്യുന്നതിനുള്ള ഫ്രെയിം റേറ്റ്."
|
msgstr "സ്ക്രീന്കാസ്റ്റുകള് റിക്കോര്ഡ് ചെയ്യുന്നതിനുള്ള ഫ്രെയിം റേറ്റ്."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||||
msgid ""
|
msgid ""
|
||||||
"The framerate of the resulting screencast recordered by GNOME Shell's "
|
"The framerate of the resulting screencast recordered by GNOME Shell's "
|
||||||
"screencast recorder in frames-per-second."
|
"screencast recorder in frames-per-second."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ഗ്നോം ഷെല്ലിന്റെ സ്ക്രീന്കാസ്റ്റ് റിക്കോര്ഡര് റീക്കോര്ഡ് ചെയ്തിട്ടുള്ള "
|
"ഗ്നോം ഷെല്ലിന്റെ സ്ക്രീന്കാസ്റ്റ് റിക്കോര്ഡര് റീക്കോര്ഡ് ചെയ്തിട്ടുള്ള സ്ക്രീന്കാസ്റ്റിന്റെ "
|
||||||
"സ്ക്രീന്കാസ്റ്റിന്റെ "
|
|
||||||
"ഫ്രെയിംറേറ്റ്, ഒരു സെക്കന്ഡില് ഒരു ഫ്രെയിം."
|
"ഫ്രെയിംറേറ്റ്, ഒരു സെക്കന്ഡില് ഒരു ഫ്രെയിം."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||||
msgid "The gstreamer pipeline used to encode the screencast"
|
msgid "The gstreamer pipeline used to encode the screencast"
|
||||||
msgstr "സ്ക്രീന്കാസ്റ്റ് എന്കോഡ് ചെയ്യുന്നതിനുള്ള gstreamer പൈപ്പ്ലൈന്"
|
msgstr "സ്ക്രീന്കാസ്റ്റ് എന്കോഡ് ചെയ്യുന്നതിനുള്ള gstreamer പൈപ്പ്ലൈന്"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
|
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
|
||||||
@ -296,78 +288,68 @@ msgid ""
|
|||||||
"threads=%T ! queue ! webmmux' and records to WEBM using the VP8 codec. %T is "
|
"threads=%T ! queue ! webmmux' and records to WEBM using the VP8 codec. %T is "
|
||||||
"used as a placeholder for a guess at the optimal thread count on the system."
|
"used as a placeholder for a guess at the optimal thread count on the system."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"റിക്കോര്ഡിങുകള് എന്കോഡ് ചെയ്യുന്നതിനായി GStreamer പൈപ്പ് ലൈന് "
|
"റിക്കോര്ഡിങുകള് എന്കോഡ് ചെയ്യുന്നതിനായി GStreamer പൈപ്പ് ലൈന് ഉപയോഗിയ്ക്കുന്നു. gst-launch-"
|
||||||
"ഉപയോഗിയ്ക്കുന്നു. gst-launch-"
|
"നുള്ള സിന്റാക്സ് ഉപയോഗിയ്ക്കുന്നു. കാലിയായി സജ്ജമാക്കുമ്പോള് കാലിയാകുന്നു.ഇതു് നിലവില് 'vp8enc "
|
||||||
"നുള്ള സിന്റാക്സ് ഉപയോഗിയ്ക്കുന്നു. കാലിയായി സജ്ജമാക്കുമ്പോള് "
|
|
||||||
"കാലിയാകുന്നു.ഇതു് നിലവില് 'vp8enc "
|
|
||||||
"min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! "
|
"min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! "
|
||||||
"queue ! webmmux' ആകുന്നുസ WEBM VP8 കോഡ് ഉപയോഗിച്ചു് റിക്കോര്ഡ് ചെയ്യുന്നു."
|
"queue ! webmmux' ആകുന്നുസ WEBM VP8 കോഡ് ഉപയോഗിച്ചു് റിക്കോര്ഡ് ചെയ്യുന്നു."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||||
msgid "File extension used for storing the screencast"
|
msgid "File extension used for storing the screencast"
|
||||||
msgstr "സ്ക്രീന്കാസ്റ്റ് സൂക്ഷിയ്ക്കുന്നതിനുള്ള ഫയല് എക്സ്റ്റെന്ഷന്"
|
msgstr "സ്ക്രീന്കാസ്റ്റ് സൂക്ഷിയ്ക്കുന്നതിനുള്ള ഫയല് എക്സ്റ്റെന്ഷന്"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||||
msgid ""
|
msgid ""
|
||||||
"The filename for recorded screencasts will be a unique filename based on the "
|
"The filename for recorded screencasts will be a unique filename based on the "
|
||||||
"current date, and use this extension. It should be changed when recording to "
|
"current date, and use this extension. It should be changed when recording to "
|
||||||
"a different container format."
|
"a different container format."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"റിക്കോര്ഡ് ചെയ്ത സ്ക്രീന്കാസ്റ്റുകള്ക്കുള്ള ഫയല്നാമം നിലവിലുള്ള തീയതി, "
|
"റിക്കോര്ഡ് ചെയ്ത സ്ക്രീന്കാസ്റ്റുകള്ക്കുള്ള ഫയല്നാമം നിലവിലുള്ള തീയതി, എക്സ്റ്റെന്ഷന് എന്നിവ "
|
||||||
"എക്സ്റ്റെന്ഷന് എന്നിവ "
|
"അനുസരിച്ചാകുന്നു. മറ്റൊരു ശൈലിയിലേക്കു് റിക്കോര്ഡ് ചെയ്യുമ്പോള് ഇതു് മാറ്റണം."
|
||||||
"അനുസരിച്ചാകുന്നു. മറ്റൊരു ശൈലിയിലേക്കു് റിക്കോര്ഡ് ചെയ്യുമ്പോള് ഇതു് "
|
|
||||||
"മാറ്റണം."
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||||
msgid "The application icon mode."
|
msgid "The application icon mode."
|
||||||
msgstr "പ്രയോഗത്തിന്റെ ഐക്കണ് മോഡ്."
|
msgstr "പ്രയോഗത്തിന്റെ ഐക്കണ് മോഡ്."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||||
msgid ""
|
msgid ""
|
||||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||||
"only' (shows only the application icon) or 'both'."
|
"only' (shows only the application icon) or 'both'."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"സ്വിച്ചറില് ജാലകങ്ങള് എങ്ങനെ കാണിയ്ക്കുന്നു എന്നു് ക്രമീകരിയ്ക്കുന്നു. "
|
"സ്വിച്ചറില് ജാലകങ്ങള് എങ്ങനെ കാണിയ്ക്കുന്നു എന്നു് ക്രമീകരിയ്ക്കുന്നു. ശരിയായ സാധ്യതകള്: "
|
||||||
"ശരിയായ "
|
"'thumbnail-only' (ജാലകത്തിന്റെ പ്രതിരൂപം കാണിയ്ക്കുന്നു), 'app-icon-"
|
||||||
"സാധ്യതകള്: 'thumbnail-only' (ജാലകത്തിന്റെ പ്രതിരൂപം കാണിയ്ക്കുന്നു), "
|
|
||||||
"'app-icon-"
|
|
||||||
"only' (പ്രയോഗത്തിന്റെ പ്രതിരൂപം കാണിയ്ക്കുന്നു) അല്ലെങ്കില് 'both'."
|
"only' (പ്രയോഗത്തിന്റെ പ്രതിരൂപം കാണിയ്ക്കുന്നു) അല്ലെങ്കില് 'both'."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
||||||
msgid "Attach modal dialog to the parent window"
|
msgid "Attach modal dialog to the parent window"
|
||||||
msgstr "പേരന്റ് ജാലകത്തിലേക്കു് ഡയലോഗ് ചേര്ക്കുക"
|
msgstr "പേരന്റ് ജാലകത്തിലേക്കു് ഡയലോഗ് ചേര്ക്കുക"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
||||||
msgid ""
|
msgid ""
|
||||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||||
msgstr ""
|
msgstr "ഗ്നോം ഷെല് പ്രവര്ത്തിയ്ക്കുമ്പോള് org.gnome.mutter-ലുള്ള കീ ഈ കീ തിരുത്തിയെഴുതുന്നു."
|
||||||
"ഗ്നോം ഷെല് പ്രവര്ത്തിയ്ക്കുമ്പോള് org.gnome.mutter-ലുള്ള കീ ഈ കീ "
|
|
||||||
"തിരുത്തിയെഴുതുന്നു."
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:46
|
||||||
msgid "Arrangement of buttons on the titlebar"
|
msgid "Arrangement of buttons on the titlebar"
|
||||||
msgstr "തലക്കെട്ടിനുള്ള ബാറില് ബട്ടണുകളുടെ ക്രമീകരണം"
|
msgstr "തലക്കെട്ടിനുള്ള ബാറില് ബട്ടണുകളുടെ ക്രമീകരണം"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:47
|
||||||
msgid ""
|
msgid ""
|
||||||
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
||||||
"GNOME Shell."
|
"GNOME Shell."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ഗ്നോം ഷെല് പ്രവര്ത്തിയ്ക്കുമ്പോള് org.gnome.desktop.wm.preferences-ലുള്ള "
|
"ഗ്നോം ഷെല് പ്രവര്ത്തിയ്ക്കുമ്പോള് org.gnome.desktop.wm.preferences-ലുള്ള കീ ഈ കീ "
|
||||||
"കീ ഈ കീ തിരുത്തിയെഴുതുന്നു."
|
"തിരുത്തിയെഴുതുന്നു."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:46
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:48
|
||||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||||
msgstr ""
|
msgstr "സ്ക്രീന് കോണുകളില് ജാലകങ്ങള് എത്തിയ്ക്കുമ്പോള് കോണ് ചരിയ്ക്കുന്നതിനായി പ്രവര്ത്തന സജ്ജമാക്കുക"
|
||||||
"സ്ക്രീന് കോണുകളില് ജാലകങ്ങള് എത്തിയ്ക്കുമ്പോള് കോണ് ചരിയ്ക്കുന്നതിനായി "
|
|
||||||
"പ്രവര്ത്തന സജ്ജമാക്കുക"
|
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:47
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:49
|
||||||
msgid "Workspaces are managed dynamically"
|
msgid "Workspaces are managed dynamically"
|
||||||
msgstr "പണിയിടങ്ങള് ഡയനാമിക്കായി കൈകാര്യം ചെയ്തിരിക്കുന്നു"
|
msgstr "പണിയിടങ്ങള് ഡയനാമിക്കായി കൈകാര്യം ചെയ്തിരിക്കുന്നു"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:48
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:50
|
||||||
msgid "Workspaces only on primary monitor"
|
msgid "Workspaces only on primary monitor"
|
||||||
msgstr "പ്രധാന മോണിറ്ററില് മാത്രം പണിയിടങ്ങള്"
|
msgstr "പ്രധാന മോണിറ്ററില് മാത്രം പണിയിടങ്ങള്"
|
||||||
|
|
||||||
@ -382,12 +364,9 @@ msgstr "എക്സ്റ്റെന്ഷന്"
|
|||||||
|
|
||||||
#: ../js/extensionPrefs/main.js:189
|
#: ../js/extensionPrefs/main.js:189
|
||||||
msgid "Select an extension to configure using the combobox above."
|
msgid "Select an extension to configure using the combobox above."
|
||||||
msgstr ""
|
msgstr "മുകളിലുള്ള കോമ്പോ ബോക്സ് ഉപയോഗിച്ചു് ക്രമീകരിയ്ക്കുന്നതിനുള്ളൊരു എക്സ്റ്റെന്ഷന് തെരഞ്ഞെടുക്കുക."
|
||||||
"മുകളിലുള്ള കോമ്പോ ബോക്സ് ഉപയോഗിച്ചു് ക്രമീകരിയ്ക്കുന്നതിനുള്ളൊരു "
|
|
||||||
"എക്സ്റ്റെന്ഷന് തെരഞ്ഞെടുക്കുക."
|
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:405
|
#: ../js/gdm/loginDialog.js:405
|
||||||
#| msgid "Session..."
|
|
||||||
msgid "Session…"
|
msgid "Session…"
|
||||||
msgstr "പ്രവര്ത്തനവേള..."
|
msgstr "പ്രവര്ത്തനവേള..."
|
||||||
|
|
||||||
@ -398,32 +377,32 @@ msgstr "പ്രവര്ത്തനവേള..."
|
|||||||
msgid "Not listed?"
|
msgid "Not listed?"
|
||||||
msgstr "ലഭ്യമല്ലേ?"
|
msgstr "ലഭ്യമല്ലേ?"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:786 ../js/ui/components/networkAgent.js:137
|
#: ../js/gdm/loginDialog.js:787 ../js/ui/components/networkAgent.js:137
|
||||||
#: ../js/ui/components/polkitAgent.js:162 ../js/ui/endSessionDialog.js:375
|
#: ../js/ui/components/polkitAgent.js:162 ../js/ui/endSessionDialog.js:376
|
||||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||||
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:99
|
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:100
|
||||||
#: ../js/ui/userMenu.js:938
|
#: ../js/ui/userMenu.js:938
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "വേണ്ട"
|
msgstr "വേണ്ട"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:802
|
#: ../js/gdm/loginDialog.js:803
|
||||||
msgctxt "button"
|
msgctxt "button"
|
||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr "അകത്തുകയറുക"
|
msgstr "അകത്തുകയറുക"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:802
|
#: ../js/gdm/loginDialog.js:803
|
||||||
msgid "Next"
|
msgid "Next"
|
||||||
msgstr "അടുത്തത്"
|
msgstr "അടുത്തത്"
|
||||||
|
|
||||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||||
#. is not visible here since we only care about phase2 authentication
|
#. 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:917 ../js/ui/components/networkAgent.js:260
|
#: ../js/gdm/loginDialog.js:918 ../js/ui/components/networkAgent.js:260
|
||||||
#: ../js/ui/components/networkAgent.js:278
|
#: ../js/ui/components/networkAgent.js:278
|
||||||
msgid "Username: "
|
msgid "Username: "
|
||||||
msgstr "ഉപയോക്തൃ നാമം: "
|
msgstr "ഉപയോക്തൃ നാമം: "
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:1173
|
#: ../js/gdm/loginDialog.js:1174
|
||||||
msgid "Login Window"
|
msgid "Login Window"
|
||||||
msgstr "പ്രവേശന ജാലകം"
|
msgstr "പ്രവേശന ജാലകം"
|
||||||
|
|
||||||
@ -476,23 +455,23 @@ msgstr "ആജ്ഞ പ്രാവര്ത്തികമാക്കാ
|
|||||||
msgid "Execution of '%s' failed:"
|
msgid "Execution of '%s' failed:"
|
||||||
msgstr "'%s' നടപ്പിലാക്കുന്നതില് പരാജയപ്പെട്ടു:"
|
msgstr "'%s' നടപ്പിലാക്കുന്നതില് പരാജയപ്പെട്ടു:"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:349
|
#: ../js/ui/appDisplay.js:351
|
||||||
msgid "Frequent"
|
msgid "Frequent"
|
||||||
msgstr "ഇടയ്ക്കിടെ"
|
msgstr "ഇടയ്ക്കിടെ"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:356
|
#: ../js/ui/appDisplay.js:358
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "എല്ലാം"
|
msgstr "എല്ലാം"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:914
|
#: ../js/ui/appDisplay.js:916
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "പുതിയ വിന്ഡോ"
|
msgstr "പുതിയ വിന്ഡോ"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:917 ../js/ui/dash.js:284
|
#: ../js/ui/appDisplay.js:919 ../js/ui/dash.js:284
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "ഇഷ്ടപ്പെട്ടവയില് നിന്നും നീക്കം ചെയ്യുക"
|
msgstr "ഇഷ്ടപ്പെട്ടവയില് നിന്നും നീക്കം ചെയ്യുക"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:918
|
#: ../js/ui/appDisplay.js:920
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "ഇഷ്ടപ്പെട്ടവയിലേക്ക് ചേര്ക്കുക"
|
msgstr "ഇഷ്ടപ്പെട്ടവയിലേക്ക് ചേര്ക്കുക"
|
||||||
|
|
||||||
@ -529,7 +508,7 @@ msgctxt "event list time"
|
|||||||
msgid "%H\\u2236%M"
|
msgid "%H\\u2236%M"
|
||||||
msgstr "%H\\u2236%M"
|
msgstr "%H\\u2236%M"
|
||||||
|
|
||||||
#. Transators: Shown in calendar event list, if 12h format,
|
#. Translators: Shown in calendar event list, if 12h format,
|
||||||
#. \u2236 is a ratio character, similar to : and \u2009 is
|
#. \u2236 is a ratio character, similar to : and \u2009 is
|
||||||
#. a thin space
|
#. a thin space
|
||||||
#: ../js/ui/calendar.js:77
|
#: ../js/ui/calendar.js:77
|
||||||
@ -732,8 +711,7 @@ msgid ""
|
|||||||
"Passwords or encryption keys are required to access the wireless network "
|
"Passwords or encryption keys are required to access the wireless network "
|
||||||
"'%s'."
|
"'%s'."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"വയര്ലെസ് നെറ്റ്വര്ക്ക് '%s'-ലേക്ക് പ്രവേശിക്കുന്നതിനായി രഹസ്യവാക്കുകള് "
|
"വയര്ലെസ് നെറ്റ്വര്ക്ക് '%s'-ലേക്ക് പ്രവേശിക്കുന്നതിനായി രഹസ്യവാക്കുകള് അല്ലെങ്കില് എന്ക്രിപ്ഷന് കീകള് "
|
||||||
"അല്ലെങ്കില് എന്ക്രിപ്ഷന് കീകള് "
|
|
||||||
"ആവശ്യമുണ്ടു്."
|
"ആവശ്യമുണ്ടു്."
|
||||||
|
|
||||||
#: ../js/ui/components/networkAgent.js:314
|
#: ../js/ui/components/networkAgent.js:314
|
||||||
@ -790,7 +768,7 @@ msgid "Sorry, that didn't work. Please try again."
|
|||||||
msgstr "ക്ഷമിക്കണം, അതു ശരിയല്ല. ദയവായി വീണ്ടും ശ്രമിക്കുക."
|
msgstr "ക്ഷമിക്കണം, അതു ശരിയല്ല. ദയവായി വീണ്ടും ശ്രമിക്കുക."
|
||||||
|
|
||||||
#. Translators: this is a filename used for screencast recording
|
#. Translators: this is a filename used for screencast recording
|
||||||
#: ../js/ui/components/recorder.js:48
|
#: ../js/ui/components/recorder.js:47
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "Screencast from %d %t"
|
msgid "Screencast from %d %t"
|
||||||
msgstr "%d-ല് നിന്നുള്ള സ്ക്രീന്കാസ്റ്റ്, %t-ല്"
|
msgstr "%d-ല് നിന്നുള്ള സ്ക്രീന്കാസ്റ്റ്, %t-ല്"
|
||||||
@ -913,8 +891,7 @@ msgstr "%s നിങ്ങള്ക്കു് %s അയച്ചിരി
|
|||||||
#: ../js/ui/components/telepathyClient.js:1206
|
#: ../js/ui/components/telepathyClient.js:1206
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s would like permission to see when you are online"
|
msgid "%s would like permission to see when you are online"
|
||||||
msgstr ""
|
msgstr "നിങ്ങള് ഓണ്ലൈന് ആകുമ്പോള് കാണുന്നതിനുള്ള അനുമതി %s-നു് ആവശ്യമുണ്ടു്"
|
||||||
"നിങ്ങള് ഓണ്ലൈന് ആകുമ്പോള് കാണുന്നതിനുള്ള അനുമതി %s-നു് ആവശ്യമുണ്ടു്"
|
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1298
|
#: ../js/ui/components/telepathyClient.js:1298
|
||||||
msgid "Network error"
|
msgid "Network error"
|
||||||
@ -987,9 +964,7 @@ msgstr "ഈ അക്കൌണ്ട് നിലവില് സര്വ
|
|||||||
#: ../js/ui/components/telepathyClient.js:1332
|
#: ../js/ui/components/telepathyClient.js:1332
|
||||||
msgid ""
|
msgid ""
|
||||||
"Connection has been replaced by a new connection using the same resource"
|
"Connection has been replaced by a new connection using the same resource"
|
||||||
msgstr ""
|
msgstr "അതേ ശ്രോതസ്സ് ഉപയോഗിച്ചു് ഒരു പുതിയ കണക്ഷന് ഉപയോഗിച്ചു് ഈ കണക്ഷന് മാറ്റിസ്ഥാപിയ്ക്കുന്നു"
|
||||||
"അതേ ശ്രോതസ്സ് ഉപയോഗിച്ചു് ഒരു പുതിയ കണക്ഷന് ഉപയോഗിച്ചു് ഈ കണക്ഷന് "
|
|
||||||
"മാറ്റിസ്ഥാപിയ്ക്കുന്നു"
|
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1334
|
#: ../js/ui/components/telepathyClient.js:1334
|
||||||
msgid "The account already exists on the server"
|
msgid "The account already exists on the server"
|
||||||
@ -1006,17 +981,14 @@ msgstr "സമ്മതപത്രം വീണ്ടും ആവശ്യപ
|
|||||||
#: ../js/ui/components/telepathyClient.js:1340
|
#: ../js/ui/components/telepathyClient.js:1340
|
||||||
msgid ""
|
msgid ""
|
||||||
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
||||||
msgstr ""
|
msgstr "സമ്മതപത്രം സുരക്ഷിതമല്ലാത്തൊരു സിഫര് ആല്ഗോരിഥം ഉപയോഗിയ്ക്കുന്നു അല്ലെങ്കില് ഉചിതമല്ല"
|
||||||
"സമ്മതപത്രം സുരക്ഷിതമല്ലാത്തൊരു സിഫര് ആല്ഗോരിഥം ഉപയോഗിയ്ക്കുന്നു "
|
|
||||||
"അല്ലെങ്കില് ഉചിതമല്ല"
|
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1342
|
#: ../js/ui/components/telepathyClient.js:1342
|
||||||
msgid ""
|
msgid ""
|
||||||
"The length of the server certificate, or the depth of the server certificate "
|
"The length of the server certificate, or the depth of the server certificate "
|
||||||
"chain, exceed the limits imposed by the cryptography library"
|
"chain, exceed the limits imposed by the cryptography library"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"സര്വറിന്റെ സമ്മതപത്രത്തിന്റെ വ്യാപ്തി, അല്ലെങ്കില് സര്വര് സമ്മതപത്ര "
|
"സര്വറിന്റെ സമ്മതപത്രത്തിന്റെ വ്യാപ്തി, അല്ലെങ്കില് സര്വര് സമ്മതപത്ര ചെയിന്റെ വ്യാപ്തി, എന്നിവ "
|
||||||
"ചെയിന്റെ വ്യാപ്തി, എന്നിവ "
|
|
||||||
"പരിധിയില് കൂടുന്നു"
|
"പരിധിയില് കൂടുന്നു"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1344
|
#: ../js/ui/components/telepathyClient.js:1344
|
||||||
@ -1085,8 +1057,7 @@ msgstr "പുറത്ത് കടക്കുക"
|
|||||||
#: ../js/ui/endSessionDialog.js:65
|
#: ../js/ui/endSessionDialog.js:65
|
||||||
msgid "Click Log Out to quit these applications and log out of the system."
|
msgid "Click Log Out to quit these applications and log out of the system."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ഈ പ്രയോഗങ്ങളില് നിന്നും പുറത്തു് കടക്കുന്നതിനായി പുറത്തു കടക്കുക ക്ലിക്ക് "
|
"ഈ പ്രയോഗങ്ങളില് നിന്നും പുറത്തു് കടക്കുന്നതിനായി പുറത്തു കടക്കുക ക്ലിക്ക് ചെയ്തു് സിസ്റ്റത്തില് നിന്നും "
|
||||||
"ചെയ്തു് സിസ്റ്റത്തില് നിന്നും "
|
|
||||||
"പുറത്തു് കടക്കുക."
|
"പുറത്തു് കടക്കുക."
|
||||||
|
|
||||||
#: ../js/ui/endSessionDialog.js:67
|
#: ../js/ui/endSessionDialog.js:67
|
||||||
@ -1120,8 +1091,7 @@ msgstr "നിര്ത്തുക"
|
|||||||
#: ../js/ui/endSessionDialog.js:84
|
#: ../js/ui/endSessionDialog.js:84
|
||||||
msgid "Click Power Off to quit these applications and power off the system."
|
msgid "Click Power Off to quit these applications and power off the system."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ഈ പ്രയോഗങ്ങളില് നിന്നും പുറത്തു് കടക്കുന്നതിനായി പവര് ഓഫ് ചെയ്യുക ക്ലിക്ക് "
|
"ഈ പ്രയോഗങ്ങളില് നിന്നും പുറത്തു് കടക്കുന്നതിനായി പവര് ഓഫ് ചെയ്യുക ക്ലിക്ക് ചെയ്തു സിസ്റ്റിന്റെ പവര് "
|
||||||
"ചെയ്തു സിസ്റ്റിന്റെ പവര് "
|
|
||||||
"ഓഫ് ചെയ്യുക."
|
"ഓഫ് ചെയ്യുക."
|
||||||
|
|
||||||
#: ../js/ui/endSessionDialog.js:86
|
#: ../js/ui/endSessionDialog.js:86
|
||||||
@ -1152,8 +1122,7 @@ msgstr "പുനരാരംഭിക്കുക"
|
|||||||
|
|
||||||
#: ../js/ui/endSessionDialog.js:101
|
#: ../js/ui/endSessionDialog.js:101
|
||||||
msgid "Click Restart to quit these applications and restart the system."
|
msgid "Click Restart to quit these applications and restart the system."
|
||||||
msgstr ""
|
msgstr "ഈ പ്രയോഗങ്ങള് നിറുത്തി സിസ്റ്റം പുനരാരംഭിക്കുവാന് പുനരാരംഭിക്കൂ അമര്ത്തുക"
|
||||||
"ഈ പ്രയോഗങ്ങള് നിറുത്തി സിസ്റ്റം പുനരാരംഭിക്കുവാന് പുനരാരംഭിക്കൂ അമര്ത്തുക"
|
|
||||||
|
|
||||||
#: ../js/ui/endSessionDialog.js:103
|
#: ../js/ui/endSessionDialog.js:103
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -1173,9 +1142,7 @@ msgstr "ഇന്സ്റ്റോള്"
|
|||||||
#: ../js/ui/extensionDownloader.js:204
|
#: ../js/ui/extensionDownloader.js:204
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Download and install '%s' from extensions.gnome.org?"
|
msgid "Download and install '%s' from extensions.gnome.org?"
|
||||||
msgstr ""
|
msgstr "extensions.gnome.org ഇല് നിന്നും '%s' ഡൗണ്ലോട് ചെയ്ത് ഇന്സ്റ്റോള് ചെയ്യേണമോ?"
|
||||||
"extensions.gnome.org ഇല് നിന്നും '%s' ഡൗണ്ലോട് ചെയ്ത് ഇന്സ്റ്റോള് "
|
|
||||||
"ചെയ്യേണമോ?"
|
|
||||||
|
|
||||||
#: ../js/ui/keyboard.js:619 ../js/ui/status/keyboard.js:314
|
#: ../js/ui/keyboard.js:619 ../js/ui/status/keyboard.js:314
|
||||||
#: ../js/ui/status/power.js:211
|
#: ../js/ui/status/power.js:211
|
||||||
@ -1204,7 +1171,9 @@ msgstr "പിശകുകള് കാണിക്കുക"
|
|||||||
msgid "Enabled"
|
msgid "Enabled"
|
||||||
msgstr "പ്രവര്ത്തനക്ഷമമാക്കി"
|
msgstr "പ്രവര്ത്തനക്ഷമമാക്കി"
|
||||||
|
|
||||||
#: ../js/ui/lookingGlass.js:769
|
#. translators:
|
||||||
|
#. * The device has been disabled
|
||||||
|
#: ../js/ui/lookingGlass.js:769 ../src/gvc/gvc-mixer-control.c:1830
|
||||||
msgid "Disabled"
|
msgid "Disabled"
|
||||||
msgstr "പ്രവര്ത്തനരഹിതമാക്കി"
|
msgstr "പ്രവര്ത്തനരഹിതമാക്കി"
|
||||||
|
|
||||||
@ -1237,7 +1206,6 @@ msgid "Remove"
|
|||||||
msgstr "നീക്കം ചെയ്യുക"
|
msgstr "നീക്കം ചെയ്യുക"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1501
|
#: ../js/ui/messageTray.js:1501
|
||||||
#| msgid "No Messages"
|
|
||||||
msgid "Clear Messages"
|
msgid "Clear Messages"
|
||||||
msgstr "സന്ദേശങ്ങള് വെടിപ്പാക്കുക"
|
msgstr "സന്ദേശങ്ങള് വെടിപ്പാക്കുക"
|
||||||
|
|
||||||
@ -1245,35 +1213,35 @@ msgstr "സന്ദേശങ്ങള് വെടിപ്പാക്ക
|
|||||||
msgid "Notification Settings"
|
msgid "Notification Settings"
|
||||||
msgstr "അറിയിപ്പു് ക്രമീകരണങ്ങള്"
|
msgstr "അറിയിപ്പു് ക്രമീകരണങ്ങള്"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1709
|
#: ../js/ui/messageTray.js:1710
|
||||||
msgid "No Messages"
|
msgid "No Messages"
|
||||||
msgstr "സന്ദേശങ്ങളില്ല"
|
msgstr "സന്ദേശങ്ങളില്ല"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1782
|
#: ../js/ui/messageTray.js:1783
|
||||||
msgid "Message Tray"
|
msgid "Message Tray"
|
||||||
msgstr "സന്ദേശത്തിന്റെ ട്രേ"
|
msgstr "സന്ദേശത്തിന്റെ ട്രേ"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:2810
|
#: ../js/ui/messageTray.js:2801
|
||||||
msgid "System Information"
|
msgid "System Information"
|
||||||
msgstr "സിസ്റ്റത്തെക്കുറിച്ചുള്ള വിവരം"
|
msgstr "സിസ്റ്റത്തെക്കുറിച്ചുള്ള വിവരം"
|
||||||
|
|
||||||
#: ../js/ui/notificationDaemon.js:629 ../src/shell-app.c:374
|
#: ../js/ui/notificationDaemon.js:629 ../src/shell-app.c:378
|
||||||
msgctxt "program"
|
msgctxt "program"
|
||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "അജ്ഞാതം"
|
msgstr "അജ്ഞാതം"
|
||||||
|
|
||||||
#: ../js/ui/overviewControls.js:463 ../js/ui/screenShield.js:149
|
#: ../js/ui/overviewControls.js:472 ../js/ui/screenShield.js:149
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d new message"
|
msgid "%d new message"
|
||||||
msgid_plural "%d new messages"
|
msgid_plural "%d new messages"
|
||||||
msgstr[0] "%d പുതിയ സന്ദേശം"
|
msgstr[0] "%d പുതിയ സന്ദേശം"
|
||||||
msgstr[1] "%d പുതിയ സന്ദേശങ്ങള്"
|
msgstr[1] "%d പുതിയ സന്ദേശങ്ങള്"
|
||||||
|
|
||||||
#: ../js/ui/overview.js:84
|
#: ../js/ui/overview.js:82
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "വേണ്ട"
|
msgstr "വേണ്ട"
|
||||||
|
|
||||||
#: ../js/ui/overview.js:129
|
#: ../js/ui/overview.js:127
|
||||||
msgid "Overview"
|
msgid "Overview"
|
||||||
msgstr "അവലോകനം"
|
msgstr "അവലോകനം"
|
||||||
|
|
||||||
@ -1281,22 +1249,21 @@ msgstr "അവലോകനം"
|
|||||||
#. in the search entry when no search is
|
#. in the search entry when no search is
|
||||||
#. active; it should not exceed ~30
|
#. active; it should not exceed ~30
|
||||||
#. characters.
|
#. characters.
|
||||||
#: ../js/ui/overview.js:271
|
#: ../js/ui/overview.js:260
|
||||||
#| msgid "Type to search..."
|
|
||||||
msgid "Type to search…"
|
msgid "Type to search…"
|
||||||
msgstr "തെരയുന്നതിനായി ടൈപ്പ് ചെയ്യുക..."
|
msgstr "തെരയുന്നതിനായി ടൈപ്പ് ചെയ്യുക..."
|
||||||
|
|
||||||
#: ../js/ui/panel.js:612
|
#: ../js/ui/panel.js:641
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "നിര്ത്തുക"
|
msgstr "നിര്ത്തുക"
|
||||||
|
|
||||||
#. Translators: If there is no suitable word for "Activities"
|
#. 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:636
|
#: ../js/ui/panel.js:692
|
||||||
msgid "Activities"
|
msgid "Activities"
|
||||||
msgstr "പ്രവര്ത്തനങ്ങള്"
|
msgstr "പ്രവര്ത്തനങ്ങള്"
|
||||||
|
|
||||||
#: ../js/ui/panel.js:933
|
#: ../js/ui/panel.js:989
|
||||||
msgid "Top Bar"
|
msgid "Top Bar"
|
||||||
msgstr "മുകളിലുള്ള ബാര്"
|
msgstr "മുകളിലുള്ള ബാര്"
|
||||||
|
|
||||||
@ -1305,15 +1272,15 @@ msgstr "മുകളിലുള്ള ബാര്"
|
|||||||
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
|
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
|
||||||
#. switches containing "◯" and "|"). Other values will
|
#. switches containing "◯" and "|"). Other values will
|
||||||
#. simply result in invisible toggle switches.
|
#. simply result in invisible toggle switches.
|
||||||
#: ../js/ui/popupMenu.js:727
|
#: ../js/ui/popupMenu.js:718
|
||||||
msgid "toggle-switch-us"
|
msgid "toggle-switch-us"
|
||||||
msgstr "toggle-switch-us"
|
msgstr "toggle-switch-us"
|
||||||
|
|
||||||
#: ../js/ui/runDialog.js:73
|
#: ../js/ui/runDialog.js:74
|
||||||
msgid "Enter a Command"
|
msgid "Enter a Command"
|
||||||
msgstr "ഒരു കമാന്ഡ് നല്കുക"
|
msgstr "ഒരു കമാന്ഡ് നല്കുക"
|
||||||
|
|
||||||
#: ../js/ui/runDialog.js:109
|
#: ../js/ui/runDialog.js:110
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "അടക്കുക"
|
msgstr "അടക്കുക"
|
||||||
|
|
||||||
@ -1334,7 +1301,7 @@ msgstr[1] "%d പുതിയ അറിയിപ്പുകള്"
|
|||||||
msgid "Lock"
|
msgid "Lock"
|
||||||
msgstr "പൂട്ടുക"
|
msgstr "പൂട്ടുക"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:637
|
#: ../js/ui/screenShield.js:641
|
||||||
msgid "GNOME needs to lock the screen"
|
msgid "GNOME needs to lock the screen"
|
||||||
msgstr "ഗ്നോമിന് സ്ക്രീന് പൂട്ടണം"
|
msgstr "ഗ്നോമിന് സ്ക്രീന് പൂട്ടണം"
|
||||||
|
|
||||||
@ -1345,17 +1312,15 @@ msgstr "ഗ്നോമിന് സ്ക്രീന് പൂട്ടണ
|
|||||||
#.
|
#.
|
||||||
#. XXX: another option is to kick the user into the gdm login
|
#. XXX: another option is to kick the user into the gdm login
|
||||||
#. screen, where we're not affected by grabs
|
#. screen, where we're not affected by grabs
|
||||||
#: ../js/ui/screenShield.js:758 ../js/ui/screenShield.js:1194
|
#: ../js/ui/screenShield.js:762 ../js/ui/screenShield.js:1198
|
||||||
#| msgid "Unable to connect to %s"
|
|
||||||
msgid "Unable to lock"
|
msgid "Unable to lock"
|
||||||
msgstr "പൂട്ടുവാന് സാധ്യമല്ല"
|
msgstr "പൂട്ടുവാന് സാധ്യമല്ല"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:759 ../js/ui/screenShield.js:1195
|
#: ../js/ui/screenShield.js:763 ../js/ui/screenShield.js:1199
|
||||||
msgid "Lock was blocked by an application"
|
msgid "Lock was blocked by an application"
|
||||||
msgstr "പൂട്ടുന്ന സംവിധാനം ഒരു പ്രയോഗം തടസ്സപ്പെടുത്തിയിരിയ്ക്കുന്നു"
|
msgstr "പൂട്ടുന്ന സംവിധാനം ഒരു പ്രയോഗം തടസ്സപ്പെടുത്തിയിരിയ്ക്കുന്നു"
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:453
|
#: ../js/ui/searchDisplay.js:453
|
||||||
#| msgid "Searching..."
|
|
||||||
msgid "Searching…"
|
msgid "Searching…"
|
||||||
msgstr "തെരയുന്നു..."
|
msgstr "തെരയുന്നു..."
|
||||||
|
|
||||||
@ -1371,11 +1336,11 @@ msgstr "പകര്ത്തുക"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "ഒട്ടിയ്ക്കുക"
|
msgstr "ഒട്ടിയ്ക്കുക"
|
||||||
|
|
||||||
#: ../js/ui/shellEntry.js:106
|
#: ../js/ui/shellEntry.js:101
|
||||||
msgid "Show Text"
|
msgid "Show Text"
|
||||||
msgstr "പദാവലി കാണിക്കുക"
|
msgstr "പദാവലി കാണിക്കുക"
|
||||||
|
|
||||||
#: ../js/ui/shellEntry.js:108
|
#: ../js/ui/shellEntry.js:103
|
||||||
msgid "Hide Text"
|
msgid "Hide Text"
|
||||||
msgstr "പദാവലി മറക്കുക"
|
msgstr "പദാവലി മറക്കുക"
|
||||||
|
|
||||||
@ -1387,7 +1352,7 @@ msgstr "രഹസ്യവാക്ക്"
|
|||||||
msgid "Remember Password"
|
msgid "Remember Password"
|
||||||
msgstr "രഹസ്യവാക്ക് ഓര്ത്തു് വയ്ക്കുക"
|
msgstr "രഹസ്യവാക്ക് ഓര്ത്തു് വയ്ക്കുക"
|
||||||
|
|
||||||
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:113
|
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:114
|
||||||
msgid "Unlock"
|
msgid "Unlock"
|
||||||
msgstr "പൂട്ട് തുറക്കുക"
|
msgstr "പൂട്ട് തുറക്കുക"
|
||||||
|
|
||||||
@ -1451,12 +1416,10 @@ msgid "Visibility"
|
|||||||
msgstr "കാഴ്ച"
|
msgstr "കാഴ്ച"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:59
|
#: ../js/ui/status/bluetooth.js:59
|
||||||
#| msgid "Send Files to Device..."
|
|
||||||
msgid "Send Files to Device…"
|
msgid "Send Files to Device…"
|
||||||
msgstr "ഡിവൈസിലേക്കു് ഫയലുകള് അയയ്ക്കുക..."
|
msgstr "ഡിവൈസിലേക്കു് ഫയലുകള് അയയ്ക്കുക..."
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:60
|
#: ../js/ui/status/bluetooth.js:60
|
||||||
#| msgid "Set Up a New Device..."
|
|
||||||
msgid "Set Up a New Device…"
|
msgid "Set Up a New Device…"
|
||||||
msgstr "പുതിയൊരു ഡിവൈസ് സജ്ജമാക്കുക..."
|
msgstr "പുതിയൊരു ഡിവൈസ് സജ്ജമാക്കുക..."
|
||||||
|
|
||||||
@ -1483,7 +1446,6 @@ msgid "connecting..."
|
|||||||
msgstr "ബന്ധിപ്പിയ്ക്കുന്നു...."
|
msgstr "ബന്ധിപ്പിയ്ക്കുന്നു...."
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:239
|
#: ../js/ui/status/bluetooth.js:239
|
||||||
#| msgid "Send Files..."
|
|
||||||
msgid "Send Files…"
|
msgid "Send Files…"
|
||||||
msgstr "ഫയലുകള് അയയ്ക്കുക..."
|
msgstr "ഫയലുകള് അയയ്ക്കുക..."
|
||||||
|
|
||||||
@ -1696,7 +1658,6 @@ msgstr "ഊര്ജ്ജ ക്രമീകരണങ്ങള്"
|
|||||||
#. 0 is reported when UPower does not have enough data
|
#. 0 is reported when UPower does not have enough data
|
||||||
#. to estimate battery life
|
#. to estimate battery life
|
||||||
#: ../js/ui/status/power.js:99
|
#: ../js/ui/status/power.js:99
|
||||||
#| msgid "Estimating..."
|
|
||||||
msgid "Estimating…"
|
msgid "Estimating…"
|
||||||
msgstr "കണക്കുകൂട്ടുന്നു..."
|
msgstr "കണക്കുകൂട്ടുന്നു..."
|
||||||
|
|
||||||
@ -1796,11 +1757,11 @@ msgstr "ഒച്ച"
|
|||||||
msgid "Microphone"
|
msgid "Microphone"
|
||||||
msgstr "മൈക്രോഫോണ്"
|
msgstr "മൈക്രോഫോണ്"
|
||||||
|
|
||||||
#: ../js/ui/unlockDialog.js:124
|
#: ../js/ui/unlockDialog.js:125
|
||||||
msgid "Log in as another user"
|
msgid "Log in as another user"
|
||||||
msgstr "മറ്റൊരു ഉപയോക്താവായി പ്രവേശിയ്ക്കുക"
|
msgstr "മറ്റൊരു ഉപയോക്താവായി പ്രവേശിയ്ക്കുക"
|
||||||
|
|
||||||
#: ../js/ui/unlockDialog.js:145
|
#: ../js/ui/unlockDialog.js:146
|
||||||
msgid "Unlock Window"
|
msgid "Unlock Window"
|
||||||
msgstr "ജാലകത്തിന്റെ പൂട്ടു തുറക്കുക"
|
msgstr "ജാലകത്തിന്റെ പൂട്ടു തുറക്കുക"
|
||||||
|
|
||||||
@ -1853,10 +1814,8 @@ msgid ""
|
|||||||
"Notifications are now disabled, including chat messages. Your online status "
|
"Notifications are now disabled, including chat messages. Your online status "
|
||||||
"has been adjusted to let others know that you might not see their messages."
|
"has been adjusted to let others know that you might not see their messages."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ചാറ്റ് സന്ദേശങ്ങള് എന്ന പോലെ അറിയിപ്പുകള് പ്രവര്ത്തന രഹിതമാക്കുന്നു. "
|
"ചാറ്റ് സന്ദേശങ്ങള് എന്ന പോലെ അറിയിപ്പുകള് പ്രവര്ത്തന രഹിതമാക്കുന്നു. മറ്റുള്ളവരുടെ ചാറ്റ് സന്ദേശങ്ങള് "
|
||||||
"മറ്റുള്ളവരുടെ ചാറ്റ് സന്ദേശങ്ങള് "
|
"നിങ്ങള്ക്കു് കാണുവാന് സാധ്യമല്ല എന്നു് നിങ്ങളുടെ ഓണ്ലൈന് അവസ്ഥയില് വ്യക്തമാക്കുന്നു."
|
||||||
"നിങ്ങള്ക്കു് കാണുവാന് സാധ്യമല്ല എന്നു് നിങ്ങളുടെ ഓണ്ലൈന് അവസ്ഥയില് "
|
|
||||||
"വ്യക്തമാക്കുന്നു."
|
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:888
|
#: ../js/ui/userMenu.js:888
|
||||||
msgid "Other users are logged in."
|
msgid "Other users are logged in."
|
||||||
@ -1909,6 +1868,28 @@ msgstr "'%s' തയ്യാറാണ്"
|
|||||||
msgid "Evolution Calendar"
|
msgid "Evolution Calendar"
|
||||||
msgstr "ഇവല്യൂഷന് കലണ്ടര്"
|
msgstr "ഇവല്യൂഷന് കലണ്ടര്"
|
||||||
|
|
||||||
|
#. translators:
|
||||||
|
#. * The number of sound outputs on a particular device
|
||||||
|
#: ../src/gvc/gvc-mixer-control.c:1837
|
||||||
|
#, c-format
|
||||||
|
msgid "%u Output"
|
||||||
|
msgid_plural "%u Outputs"
|
||||||
|
msgstr[0] "%u ഔട്ട്പുട്ട്"
|
||||||
|
msgstr[1] "%u ഔട്ട്പുട്ടുകള്"
|
||||||
|
|
||||||
|
#. translators:
|
||||||
|
#. * The number of sound inputs on a particular device
|
||||||
|
#: ../src/gvc/gvc-mixer-control.c:1847
|
||||||
|
#, c-format
|
||||||
|
msgid "%u Input"
|
||||||
|
msgid_plural "%u Inputs"
|
||||||
|
msgstr[0] "%u ഇന്പുട്ട്"
|
||||||
|
msgstr[1] "%u ഇന്പുട്ടുകള്"
|
||||||
|
|
||||||
|
#: ../src/gvc/gvc-mixer-control.c:2371
|
||||||
|
msgid "System Sounds"
|
||||||
|
msgstr "സിസ്റ്റം ശബ്ദങ്ങള്"
|
||||||
|
|
||||||
#: ../src/main.c:347
|
#: ../src/main.c:347
|
||||||
msgid "Print version"
|
msgid "Print version"
|
||||||
msgstr "പ്രിന്റ് ചെയ്യുവാന് സാധിയ്ക്കുന്ന പതിപ്പു്"
|
msgstr "പ്രിന്റ് ചെയ്യുവാന് സാധിയ്ക്കുന്ന പതിപ്പു്"
|
||||||
@ -1925,7 +1906,7 @@ msgstr "ഒരു പ്രത്യേക മോഡ് ഉപയോഗിയ്
|
|||||||
msgid "List possible modes"
|
msgid "List possible modes"
|
||||||
msgstr "സാധ്യമായ മോഡുകള് ലഭ്യമാക്കുക"
|
msgstr "സാധ്യമായ മോഡുകള് ലഭ്യമാക്കുക"
|
||||||
|
|
||||||
#: ../src/shell-app.c:622
|
#: ../src/shell-app.c:626
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to launch '%s'"
|
msgid "Failed to launch '%s'"
|
||||||
msgstr "'%s' ലഭ്യമാക്കുന്നതില് പരാജയം"
|
msgstr "'%s' ലഭ്യമാക്കുന്നതില് പരാജയം"
|
||||||
@ -1955,19 +1936,6 @@ msgstr "ഉപയോക്താവു് ആധികാരികത ഉറപ
|
|||||||
#~ msgid "More..."
|
#~ msgid "More..."
|
||||||
#~ msgstr "കൂടുതല്..."
|
#~ msgstr "കൂടുതല്..."
|
||||||
|
|
||||||
#~ msgid "%u Output"
|
|
||||||
#~ msgid_plural "%u Outputs"
|
|
||||||
#~ msgstr[0] "%u ഔട്ട്പുട്ട്"
|
|
||||||
#~ msgstr[1] "%u ഔട്ട്പുട്ടുകള്"
|
|
||||||
|
|
||||||
#~ msgid "%u Input"
|
|
||||||
#~ msgid_plural "%u Inputs"
|
|
||||||
#~ msgstr[0] "%u ഇന്പുട്ട്"
|
|
||||||
#~ msgstr[1] "%u ഇന്പുട്ടുകള്"
|
|
||||||
|
|
||||||
#~ msgid "System Sounds"
|
|
||||||
#~ msgstr "സിസ്റ്റം ശബ്ദങ്ങള്"
|
|
||||||
|
|
||||||
#~ msgctxt "event list time"
|
#~ msgctxt "event list time"
|
||||||
#~ msgid "%H:%M"
|
#~ msgid "%H:%M"
|
||||||
#~ msgstr "%H:%M"
|
#~ msgstr "%H:%M"
|
||||||
|
157
po/nb.po
157
po/nb.po
@ -6,10 +6,10 @@
|
|||||||
# Torstein Adolf Winterseth <kvikende@fsfe.org>, 2010.
|
# Torstein Adolf Winterseth <kvikende@fsfe.org>, 2010.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-shell 3.7.x\n"
|
"Project-Id-Version: gnome-shell 3.8.x\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-03-04 14:14+0100\n"
|
"POT-Creation-Date: 2013-04-03 13:31+0200\n"
|
||||||
"PO-Revision-Date: 2013-03-04 14:15+0100\n"
|
"PO-Revision-Date: 2013-04-03 13:31+0200\n"
|
||||||
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
|
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
|
||||||
"Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n"
|
"Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n"
|
||||||
"Language: \n"
|
"Language: \n"
|
||||||
@ -295,7 +295,8 @@ msgstr "Fest modal dialog til opphavsvinduet"
|
|||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||||
msgid ""
|
msgid ""
|
||||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
"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."
|
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:44
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
||||||
msgid "Arrangement of buttons on the titlebar"
|
msgid "Arrangement of buttons on the titlebar"
|
||||||
@ -305,7 +306,9 @@ msgstr "Plassering av knappene på tittellinjen"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
||||||
"GNOME Shell."
|
"GNOME Shell."
|
||||||
msgstr "Denne nøkkelen overstyrer nøkkelen i org.gnome.desktop.wm.preferences når GNOME Shell kjøres."
|
msgstr ""
|
||||||
|
"Denne nøkkelen overstyrer nøkkelen i org.gnome.desktop.wm.preferences når "
|
||||||
|
"GNOME Shell kjøres."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:46
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:46
|
||||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||||
@ -339,36 +342,36 @@ msgstr "Økt …"
|
|||||||
#. translators: this message is shown below the user list on the
|
#. translators: this message is shown below the user list on the
|
||||||
#. login screen. It can be activated to reveal an entry for
|
#. login screen. It can be activated to reveal an entry for
|
||||||
#. manually entering the username.
|
#. manually entering the username.
|
||||||
#: ../js/gdm/loginDialog.js:629
|
#: ../js/gdm/loginDialog.js:630
|
||||||
msgid "Not listed?"
|
msgid "Not listed?"
|
||||||
msgstr "Ikke listet?"
|
msgstr "Ikke listet?"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:783 ../js/ui/components/networkAgent.js:137
|
#: ../js/gdm/loginDialog.js:786 ../js/ui/components/networkAgent.js:137
|
||||||
#: ../js/ui/components/polkitAgent.js:162 ../js/ui/endSessionDialog.js:375
|
#: ../js/ui/components/polkitAgent.js:162 ../js/ui/endSessionDialog.js:375
|
||||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||||
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:126
|
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:99
|
||||||
#: ../js/ui/userMenu.js:934
|
#: ../js/ui/userMenu.js:938
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Avbryt"
|
msgstr "Avbryt"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:799
|
#: ../js/gdm/loginDialog.js:802
|
||||||
msgctxt "button"
|
msgctxt "button"
|
||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr "Logg inn"
|
msgstr "Logg inn"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:799
|
#: ../js/gdm/loginDialog.js:802
|
||||||
msgid "Next"
|
msgid "Next"
|
||||||
msgstr "Neste"
|
msgstr "Neste"
|
||||||
|
|
||||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||||
#. is not visible here since we only care about phase2 authentication
|
#. 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:904 ../js/ui/components/networkAgent.js:260
|
#: ../js/gdm/loginDialog.js:917 ../js/ui/components/networkAgent.js:260
|
||||||
#: ../js/ui/components/networkAgent.js:278
|
#: ../js/ui/components/networkAgent.js:278
|
||||||
msgid "Username: "
|
msgid "Username: "
|
||||||
msgstr "Brukernavn: "
|
msgstr "Brukernavn: "
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:1157
|
#: ../js/gdm/loginDialog.js:1173
|
||||||
msgid "Login Window"
|
msgid "Login Window"
|
||||||
msgstr "Innloggingsvindu"
|
msgstr "Innloggingsvindu"
|
||||||
|
|
||||||
@ -377,8 +380,8 @@ msgstr "Innloggingsvindu"
|
|||||||
msgid "Power"
|
msgid "Power"
|
||||||
msgstr "Strøm"
|
msgstr "Strøm"
|
||||||
|
|
||||||
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:695 ../js/ui/userMenu.js:699
|
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:696 ../js/ui/userMenu.js:700
|
||||||
#: ../js/ui/userMenu.js:815
|
#: ../js/ui/userMenu.js:816
|
||||||
msgid "Suspend"
|
msgid "Suspend"
|
||||||
msgstr "Hvilemodus"
|
msgstr "Hvilemodus"
|
||||||
|
|
||||||
@ -386,58 +389,58 @@ msgstr "Hvilemodus"
|
|||||||
msgid "Restart"
|
msgid "Restart"
|
||||||
msgstr "Start på nytt"
|
msgstr "Start på nytt"
|
||||||
|
|
||||||
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:697
|
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:698
|
||||||
#: ../js/ui/userMenu.js:699 ../js/ui/userMenu.js:814 ../js/ui/userMenu.js:938
|
#: ../js/ui/userMenu.js:700 ../js/ui/userMenu.js:815 ../js/ui/userMenu.js:942
|
||||||
msgid "Power Off"
|
msgid "Power Off"
|
||||||
msgstr "Slå av"
|
msgstr "Slå av"
|
||||||
|
|
||||||
#: ../js/gdm/util.js:182
|
#: ../js/gdm/util.js:249
|
||||||
msgid "Authentication error"
|
msgid "Authentication error"
|
||||||
msgstr "Autentiseringsfeil"
|
msgstr "Autentiseringsfeil"
|
||||||
|
|
||||||
#. Translators: this message is shown below the password entry field
|
#. Translators: this message is shown below the password entry field
|
||||||
#. to indicate the user can swipe their finger instead
|
#. to indicate the user can swipe their finger instead
|
||||||
#: ../js/gdm/util.js:299
|
#: ../js/gdm/util.js:366
|
||||||
msgid "(or swipe finger)"
|
msgid "(or swipe finger)"
|
||||||
msgstr "(eller dra finger)"
|
msgstr "(eller dra finger)"
|
||||||
|
|
||||||
#: ../js/gdm/util.js:324
|
#: ../js/gdm/util.js:391
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "(e.g., user or %s)"
|
msgid "(e.g., user or %s)"
|
||||||
msgstr "(f.eks. bruker eller %s)"
|
msgstr "(f.eks. bruker eller %s)"
|
||||||
|
|
||||||
#: ../js/misc/util.js:94
|
#: ../js/misc/util.js:97
|
||||||
msgid "Command not found"
|
msgid "Command not found"
|
||||||
msgstr "Kommando ikke funnet"
|
msgstr "Kommando ikke funnet"
|
||||||
|
|
||||||
#. Replace "Error invoking GLib.shell_parse_argv: " with
|
#. Replace "Error invoking GLib.shell_parse_argv: " with
|
||||||
#. something nicer
|
#. something nicer
|
||||||
#: ../js/misc/util.js:127
|
#: ../js/misc/util.js:130
|
||||||
msgid "Could not parse command:"
|
msgid "Could not parse command:"
|
||||||
msgstr "Klarte ikke å lese kommando:"
|
msgstr "Klarte ikke å lese kommando:"
|
||||||
|
|
||||||
#: ../js/misc/util.js:135
|
#: ../js/misc/util.js:138
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Execution of '%s' failed:"
|
msgid "Execution of '%s' failed:"
|
||||||
msgstr "Kjøring av «%s» feilet:"
|
msgstr "Kjøring av «%s» feilet:"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:348
|
#: ../js/ui/appDisplay.js:349
|
||||||
msgid "Frequent"
|
msgid "Frequent"
|
||||||
msgstr "Ofte"
|
msgstr "Ofte"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:355
|
#: ../js/ui/appDisplay.js:356
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Alle"
|
msgstr "Alle"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:913
|
#: ../js/ui/appDisplay.js:914
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "Nytt vindu"
|
msgstr "Nytt vindu"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:916 ../js/ui/dash.js:284
|
#: ../js/ui/appDisplay.js:917 ../js/ui/dash.js:284
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Fjern fra favoritter"
|
msgstr "Fjern fra favoritter"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:917
|
#: ../js/ui/appDisplay.js:918
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Legg til i favoritter"
|
msgstr "Legg til i favoritter"
|
||||||
|
|
||||||
@ -451,7 +454,7 @@ msgstr "%s ble lagt til i dine favoritter."
|
|||||||
msgid "%s has been removed from your favorites."
|
msgid "%s has been removed from your favorites."
|
||||||
msgstr "%s ble fjernet fra dine favoritter."
|
msgstr "%s ble fjernet fra dine favoritter."
|
||||||
|
|
||||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:788
|
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:789
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Innstillinger"
|
msgstr "Innstillinger"
|
||||||
|
|
||||||
@ -474,7 +477,7 @@ msgctxt "event list time"
|
|||||||
msgid "%H\\u2236%M"
|
msgid "%H\\u2236%M"
|
||||||
msgstr "%H\\u2336%M"
|
msgstr "%H\\u2336%M"
|
||||||
|
|
||||||
#. Transators: Shown in calendar event list, if 12h format,
|
#. Translators: Shown in calendar event list, if 12h format,
|
||||||
#. \u2236 is a ratio character, similar to : and \u2009 is
|
#. \u2236 is a ratio character, similar to : and \u2009 is
|
||||||
#. a thin space
|
#. a thin space
|
||||||
#: ../js/ui/calendar.js:77
|
#: ../js/ui/calendar.js:77
|
||||||
@ -576,35 +579,35 @@ msgid "S"
|
|||||||
msgstr "Lø"
|
msgstr "Lø"
|
||||||
|
|
||||||
#. Translators: Text to show if there are no events
|
#. Translators: Text to show if there are no events
|
||||||
#: ../js/ui/calendar.js:692
|
#: ../js/ui/calendar.js:720
|
||||||
msgid "Nothing Scheduled"
|
msgid "Nothing Scheduled"
|
||||||
msgstr "Ingenting planlagt"
|
msgstr "Ingenting planlagt"
|
||||||
|
|
||||||
#. Translators: Shown on calendar heading when selected day occurs on current year
|
#. Translators: Shown on calendar heading when selected day occurs on current year
|
||||||
#: ../js/ui/calendar.js:708
|
#: ../js/ui/calendar.js:736
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A %B %d"
|
msgstr "%A %B %d"
|
||||||
|
|
||||||
#. Translators: Shown on calendar heading when selected day occurs on different year
|
#. Translators: Shown on calendar heading when selected day occurs on different year
|
||||||
#: ../js/ui/calendar.js:711
|
#: ../js/ui/calendar.js:739
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d, %Y"
|
msgid "%A, %B %d, %Y"
|
||||||
msgstr "%A %B %d, %Y"
|
msgstr "%A %B %d, %Y"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:721
|
#: ../js/ui/calendar.js:749
|
||||||
msgid "Today"
|
msgid "Today"
|
||||||
msgstr "I dag"
|
msgstr "I dag"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:725
|
#: ../js/ui/calendar.js:753
|
||||||
msgid "Tomorrow"
|
msgid "Tomorrow"
|
||||||
msgstr "I morgen"
|
msgstr "I morgen"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:736
|
#: ../js/ui/calendar.js:764
|
||||||
msgid "This week"
|
msgid "This week"
|
||||||
msgstr "Denne uken"
|
msgstr "Denne uken"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:744
|
#: ../js/ui/calendar.js:772
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr "Neste uke"
|
msgstr "Neste uke"
|
||||||
|
|
||||||
@ -620,12 +623,12 @@ msgstr "Ekstern stasjon koblet fra"
|
|||||||
msgid "Removable Devices"
|
msgid "Removable Devices"
|
||||||
msgstr "Avtagbare enheter"
|
msgstr "Avtagbare enheter"
|
||||||
|
|
||||||
#: ../js/ui/components/autorunManager.js:593
|
#: ../js/ui/components/autorunManager.js:594
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Open with %s"
|
msgid "Open with %s"
|
||||||
msgstr "Åpne med %s"
|
msgstr "Åpne med %s"
|
||||||
|
|
||||||
#: ../js/ui/components/autorunManager.js:619
|
#: ../js/ui/components/autorunManager.js:620
|
||||||
msgid "Eject"
|
msgid "Eject"
|
||||||
msgstr "Løs ut"
|
msgstr "Løs ut"
|
||||||
|
|
||||||
@ -1007,7 +1010,7 @@ msgstr "Innstillinger for dato og klokkeslett"
|
|||||||
#. Translators: This is the date format to use when the calendar popup is
|
#. 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").
|
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
|
||||||
#.
|
#.
|
||||||
#: ../js/ui/dateMenu.js:205
|
#: ../js/ui/dateMenu.js:215
|
||||||
msgid "%A %B %e, %Y"
|
msgid "%A %B %e, %Y"
|
||||||
msgstr "%a %e %B, %Y"
|
msgstr "%a %e %B, %Y"
|
||||||
|
|
||||||
@ -1181,15 +1184,15 @@ msgstr "Tøm meldinger"
|
|||||||
msgid "Notification Settings"
|
msgid "Notification Settings"
|
||||||
msgstr "Innstillinger for varsling"
|
msgstr "Innstillinger for varsling"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1707
|
#: ../js/ui/messageTray.js:1709
|
||||||
msgid "No Messages"
|
msgid "No Messages"
|
||||||
msgstr "Ingen meldinger"
|
msgstr "Ingen meldinger"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1787
|
#: ../js/ui/messageTray.js:1782
|
||||||
msgid "Message Tray"
|
msgid "Message Tray"
|
||||||
msgstr "Meldingstrau"
|
msgstr "Meldingstrau"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:2864
|
#: ../js/ui/messageTray.js:2810
|
||||||
msgid "System Information"
|
msgid "System Information"
|
||||||
msgstr "Systeminformasjon"
|
msgstr "Systeminformasjon"
|
||||||
|
|
||||||
@ -1198,14 +1201,14 @@ msgctxt "program"
|
|||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "Ukjent"
|
msgstr "Ukjent"
|
||||||
|
|
||||||
#: ../js/ui/overviewControls.js:460 ../js/ui/screenShield.js:153
|
#: ../js/ui/overviewControls.js:463 ../js/ui/screenShield.js:149
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d new message"
|
msgid "%d new message"
|
||||||
msgid_plural "%d new messages"
|
msgid_plural "%d new messages"
|
||||||
msgstr[0] "%d ny melding"
|
msgstr[0] "%d ny melding"
|
||||||
msgstr[1] "%d nye meldinger"
|
msgstr[1] "%d nye meldinger"
|
||||||
|
|
||||||
#: ../js/ui/overview.js:82
|
#: ../js/ui/overview.js:84
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Angre"
|
msgstr "Angre"
|
||||||
|
|
||||||
@ -1217,21 +1220,21 @@ msgstr "Oversikt"
|
|||||||
#. in the search entry when no search is
|
#. in the search entry when no search is
|
||||||
#. active; it should not exceed ~30
|
#. active; it should not exceed ~30
|
||||||
#. characters.
|
#. characters.
|
||||||
#: ../js/ui/overview.js:284
|
#: ../js/ui/overview.js:271
|
||||||
msgid "Type to search…"
|
msgid "Type to search…"
|
||||||
msgstr "Skriv for å søke …"
|
msgstr "Skriv for å søke …"
|
||||||
|
|
||||||
#: ../js/ui/panel.js:613
|
#: ../js/ui/panel.js:612
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Avslutt"
|
msgstr "Avslutt"
|
||||||
|
|
||||||
#. Translators: If there is no suitable word for "Activities"
|
#. 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:642
|
#: ../js/ui/panel.js:636
|
||||||
msgid "Activities"
|
msgid "Activities"
|
||||||
msgstr "Aktiviteter"
|
msgstr "Aktiviteter"
|
||||||
|
|
||||||
#: ../js/ui/panel.js:983
|
#: ../js/ui/panel.js:933
|
||||||
msgid "Top Bar"
|
msgid "Top Bar"
|
||||||
msgstr "Topp-panel"
|
msgstr "Topp-panel"
|
||||||
|
|
||||||
@ -1244,32 +1247,32 @@ msgstr "Topp-panel"
|
|||||||
msgid "toggle-switch-us"
|
msgid "toggle-switch-us"
|
||||||
msgstr "toggle-switch-intl"
|
msgstr "toggle-switch-intl"
|
||||||
|
|
||||||
#: ../js/ui/runDialog.js:205
|
#: ../js/ui/runDialog.js:73
|
||||||
msgid "Enter a Command"
|
msgid "Enter a Command"
|
||||||
msgstr "Oppgi en kommando"
|
msgstr "Oppgi en kommando"
|
||||||
|
|
||||||
#: ../js/ui/runDialog.js:241
|
#: ../js/ui/runDialog.js:109
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Lukk"
|
msgstr "Lukk"
|
||||||
|
|
||||||
#. Translators: This is a time format for a date in
|
#. Translators: This is a time format for a date in
|
||||||
#. long format
|
#. long format
|
||||||
#: ../js/ui/screenShield.js:90
|
#: ../js/ui/screenShield.js:86
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %B %d"
|
msgstr "%A, %B %d"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:155
|
#: ../js/ui/screenShield.js:151
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d new notification"
|
msgid "%d new notification"
|
||||||
msgid_plural "%d new notifications"
|
msgid_plural "%d new notifications"
|
||||||
msgstr[0] "%d ny varsling"
|
msgstr[0] "%d ny varsling"
|
||||||
msgstr[1] "%d nye varslinger"
|
msgstr[1] "%d nye varslinger"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:442 ../js/ui/userMenu.js:806
|
#: ../js/ui/screenShield.js:438 ../js/ui/userMenu.js:807
|
||||||
msgid "Lock"
|
msgid "Lock"
|
||||||
msgstr "Lås"
|
msgstr "Lås"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:639
|
#: ../js/ui/screenShield.js:640
|
||||||
msgid "GNOME needs to lock the screen"
|
msgid "GNOME needs to lock the screen"
|
||||||
msgstr "GNOME må låse skjermen"
|
msgstr "GNOME må låse skjermen"
|
||||||
|
|
||||||
@ -1280,19 +1283,19 @@ msgstr "GNOME må låse skjermen"
|
|||||||
#.
|
#.
|
||||||
#. XXX: another option is to kick the user into the gdm login
|
#. XXX: another option is to kick the user into the gdm login
|
||||||
#. screen, where we're not affected by grabs
|
#. screen, where we're not affected by grabs
|
||||||
#: ../js/ui/screenShield.js:758 ../js/ui/screenShield.js:1169
|
#: ../js/ui/screenShield.js:761 ../js/ui/screenShield.js:1197
|
||||||
msgid "Unable to lock"
|
msgid "Unable to lock"
|
||||||
msgstr "Kan ikke låse"
|
msgstr "Kan ikke låse"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:759 ../js/ui/screenShield.js:1170
|
#: ../js/ui/screenShield.js:762 ../js/ui/screenShield.js:1198
|
||||||
msgid "Lock was blocked by an application"
|
msgid "Lock was blocked by an application"
|
||||||
msgstr "Låsing ble stoppet av et program"
|
msgstr "Låsing ble stoppet av et program"
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:431
|
#: ../js/ui/searchDisplay.js:453
|
||||||
msgid "Searching…"
|
msgid "Searching…"
|
||||||
msgstr "Søker …"
|
msgstr "Søker …"
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:475
|
#: ../js/ui/searchDisplay.js:497
|
||||||
msgid "No results."
|
msgid "No results."
|
||||||
msgstr "Ingen resultater."
|
msgstr "Ingen resultater."
|
||||||
|
|
||||||
@ -1304,11 +1307,11 @@ msgstr "Kopier"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "Lim inn"
|
msgstr "Lim inn"
|
||||||
|
|
||||||
#: ../js/ui/shellEntry.js:105
|
#: ../js/ui/shellEntry.js:106
|
||||||
msgid "Show Text"
|
msgid "Show Text"
|
||||||
msgstr "Vis tekst"
|
msgstr "Vis tekst"
|
||||||
|
|
||||||
#: ../js/ui/shellEntry.js:107
|
#: ../js/ui/shellEntry.js:108
|
||||||
msgid "Hide Text"
|
msgid "Hide Text"
|
||||||
msgstr "Skjul tekst"
|
msgstr "Skjul tekst"
|
||||||
|
|
||||||
@ -1320,7 +1323,7 @@ msgstr "Passord"
|
|||||||
msgid "Remember Password"
|
msgid "Remember Password"
|
||||||
msgstr "Husk passord"
|
msgstr "Husk passord"
|
||||||
|
|
||||||
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:140
|
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:113
|
||||||
msgid "Unlock"
|
msgid "Unlock"
|
||||||
msgstr "Lås opp"
|
msgstr "Lås opp"
|
||||||
|
|
||||||
@ -1725,11 +1728,11 @@ msgstr "Volum"
|
|||||||
msgid "Microphone"
|
msgid "Microphone"
|
||||||
msgstr "Mikrofon"
|
msgstr "Mikrofon"
|
||||||
|
|
||||||
#: ../js/ui/unlockDialog.js:151
|
#: ../js/ui/unlockDialog.js:124
|
||||||
msgid "Log in as another user"
|
msgid "Log in as another user"
|
||||||
msgstr "Logg inn som en annen bruker"
|
msgstr "Logg inn som en annen bruker"
|
||||||
|
|
||||||
#: ../js/ui/unlockDialog.js:177
|
#: ../js/ui/unlockDialog.js:145
|
||||||
msgid "Unlock Window"
|
msgid "Unlock Window"
|
||||||
msgstr "Lås opp vindu"
|
msgstr "Lås opp vindu"
|
||||||
|
|
||||||
@ -1757,27 +1760,27 @@ msgstr "Ledig"
|
|||||||
msgid "Offline"
|
msgid "Offline"
|
||||||
msgstr "Frakoblet"
|
msgstr "Frakoblet"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:780
|
#: ../js/ui/userMenu.js:781
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Varslinger"
|
msgstr "Varslinger"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:796
|
#: ../js/ui/userMenu.js:797
|
||||||
msgid "Switch User"
|
msgid "Switch User"
|
||||||
msgstr "Bytt bruker"
|
msgstr "Bytt bruker"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:801
|
#: ../js/ui/userMenu.js:802
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "Logg ut"
|
msgstr "Logg ut"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:821
|
#: ../js/ui/userMenu.js:822
|
||||||
msgid "Install Updates & Restart"
|
msgid "Install Updates & Restart"
|
||||||
msgstr "Installer oppdateringer og start på nytt"
|
msgstr "Installer oppdateringer og start på nytt"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:839
|
#: ../js/ui/userMenu.js:840
|
||||||
msgid "Your chat status will be set to busy"
|
msgid "Your chat status will be set to busy"
|
||||||
msgstr "Din pratestatus vil bli satt til opptatt"
|
msgstr "Din pratestatus vil bli satt til opptatt"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:840
|
#: ../js/ui/userMenu.js:841
|
||||||
msgid ""
|
msgid ""
|
||||||
"Notifications are now disabled, including chat messages. Your online status "
|
"Notifications are now disabled, including chat messages. Your online status "
|
||||||
"has been adjusted to let others know that you might not see their messages."
|
"has been adjusted to let others know that you might not see their messages."
|
||||||
@ -1786,22 +1789,24 @@ msgstr ""
|
|||||||
"tilkoblingsstatus er justert for å la andre vite at du kanskje ikke ser "
|
"tilkoblingsstatus er justert for å la andre vite at du kanskje ikke ser "
|
||||||
"deres meldinger."
|
"deres meldinger."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:886
|
#: ../js/ui/userMenu.js:888
|
||||||
msgid "Other users are logged in."
|
msgid "Other users are logged in."
|
||||||
msgstr "Andre brukere er logget inn."
|
msgstr "Andre brukere er logget inn."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:891
|
#: ../js/ui/userMenu.js:893
|
||||||
msgid "Shutting down might cause them to lose unsaved work."
|
msgid "Shutting down might cause them to lose unsaved work."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Hvis du slår av vil dette kunne medføre at de mister arbeid som ikke er "
|
"Hvis du slår av vil dette kunne medføre at de mister arbeid som ikke er "
|
||||||
"lagret."
|
"lagret."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:918
|
#. Translators: Remote here refers to a remote session, like a ssh login
|
||||||
|
#: ../js/ui/userMenu.js:921
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (remote)"
|
msgid "%s (remote)"
|
||||||
msgstr "%s (ekstern)"
|
msgstr "%s (ekstern)"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:920
|
#. Translators: Console here refers to a tty like a VT console
|
||||||
|
#: ../js/ui/userMenu.js:924
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (console)"
|
msgid "%s (console)"
|
||||||
msgstr "%s (konsoll)"
|
msgstr "%s (konsoll)"
|
||||||
@ -1814,7 +1819,7 @@ msgstr "Programmer"
|
|||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Søk"
|
msgstr "Søk"
|
||||||
|
|
||||||
#: ../js/ui/wanda.js:92
|
#: ../js/ui/wanda.js:77
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sorry, no wisdom for you today:\n"
|
"Sorry, no wisdom for you today:\n"
|
||||||
@ -1823,7 +1828,7 @@ msgstr ""
|
|||||||
"Beklager, ingen visdom til deg i dag:\n"
|
"Beklager, ingen visdom til deg i dag:\n"
|
||||||
"%s"
|
"%s"
|
||||||
|
|
||||||
#: ../js/ui/wanda.js:96
|
#: ../js/ui/wanda.js:81
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s the Oracle says"
|
msgid "%s the Oracle says"
|
||||||
msgstr "Orakelet sier %s"
|
msgstr "Orakelet sier %s"
|
||||||
|
307
po/pl.po
307
po/pl.po
@ -6,14 +6,15 @@
|
|||||||
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||||
# Piotr Drąg <piotrdrag@gmail.com>, 2009-2013.
|
# Piotr Drąg <piotrdrag@gmail.com>, 2009-2013.
|
||||||
# Tomasz Dominikowski <dominikowski@gmail.com>, 2009.
|
# Tomasz Dominikowski <dominikowski@gmail.com>, 2009.
|
||||||
|
# Wojciech Szczęsny <wszczesny@aviary.pl>, 2013.
|
||||||
# Aviary.pl <gnomepl@aviary.pl>, 2009-2013.
|
# Aviary.pl <gnomepl@aviary.pl>, 2009-2013.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-shell\n"
|
"Project-Id-Version: gnome-shell\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-02-24 01:52+0100\n"
|
"POT-Creation-Date: 2013-04-02 15:54+0200\n"
|
||||||
"PO-Revision-Date: 2013-02-24 01:53+0100\n"
|
"PO-Revision-Date: 2013-04-02 15:55+0200\n"
|
||||||
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
|
"Last-Translator: Wojciech Szczęsny <wszczesny@aviary.pl>\n"
|
||||||
"Language-Team: Polish <gnomepl@aviary.pl>\n"
|
"Language-Team: Polish <gnomepl@aviary.pl>\n"
|
||||||
"Language: pl\n"
|
"Language: pl\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@ -61,7 +62,7 @@ msgid "Window management and application launching"
|
|||||||
msgstr "Zarządzanie oknami i uruchamianiem programów"
|
msgstr "Zarządzanie oknami i uruchamianiem programów"
|
||||||
|
|
||||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
||||||
#: ../js/extensionPrefs/main.js:152
|
#: ../js/extensionPrefs/main.js:153
|
||||||
msgid "GNOME Shell Extension Preferences"
|
msgid "GNOME Shell Extension Preferences"
|
||||||
msgstr "Preferencje rozszerzenia powłoki GNOME"
|
msgstr "Preferencje rozszerzenia powłoki GNOME"
|
||||||
|
|
||||||
@ -80,7 +81,7 @@ msgid ""
|
|||||||
"Allows access to internal debugging and monitoring tools using the Alt-F2 "
|
"Allows access to internal debugging and monitoring tools using the Alt-F2 "
|
||||||
"dialog."
|
"dialog."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Umożliwia dostęp do wewnętrznych narzędzi debugowania i monitorowania "
|
"Umożliwia dostęp do wewnętrznych narzędzi debugowania i monitorowania, "
|
||||||
"używając okna dialogowego Alt-F2."
|
"używając okna dialogowego Alt-F2."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:3
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:3
|
||||||
@ -96,9 +97,9 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Rozszerzenia powłoki GNOME posiadają własność UUID; ten klucz zawiera "
|
"Rozszerzenia powłoki GNOME posiadają własność UUID; ten klucz zawiera "
|
||||||
"rozszerzenia, które powinny zostać wczytane. Każde rozszerzenie, które ma "
|
"rozszerzenia, które powinny zostać wczytane. Każde rozszerzenie, które ma "
|
||||||
"zostać wczytane musi znajdować się na tej liście. Można także manipulować tą "
|
"zostać wczytane, musi znajdować się na tej liście. Można także manipulować "
|
||||||
"listą za pomocą metod EnableExtension i DisableExtension usługi D-Bus na org."
|
"tą listą za pomocą metod EnableExtension i DisableExtension usługi D-Bus na "
|
||||||
"gnome.Shell."
|
"org.gnome.Shell."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:5
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:5
|
||||||
msgid "Whether to collect stats about applications usage"
|
msgid "Whether to collect stats about applications usage"
|
||||||
@ -112,7 +113,7 @@ msgid ""
|
|||||||
"remove already saved data."
|
"remove already saved data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Powłoka zwykle monitoruje aktywne programy, aby przedstawiać najczęściej "
|
"Powłoka zwykle monitoruje aktywne programy, aby przedstawiać najczęściej "
|
||||||
"używane (np. aktywatory programów). Mimo, że te dane nie są publiczne, można "
|
"używane (np. aktywatory programów). Mimo że te dane nie są publiczne, można "
|
||||||
"wyłączyć je z powodu prywatności. Proszę zauważyć, że wyłączenie nie "
|
"wyłączyć je z powodu prywatności. Proszę zauważyć, że wyłączenie nie "
|
||||||
"spowoduje usunięcia już zapisanych danych."
|
"spowoduje usunięcia już zapisanych danych."
|
||||||
|
|
||||||
@ -138,7 +139,7 @@ msgid ""
|
|||||||
"application view, rather than being displayed inline in the main view."
|
"application view, rather than being displayed inline in the main view."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Każda nazwa kategorii na tej liście będzie przedstawiana jako katalog w "
|
"Każda nazwa kategorii na tej liście będzie przedstawiana jako katalog w "
|
||||||
"widoku programów, zamiast wyświetlać ją bezpośrednio w głównym widoku."
|
"widoku programów, zamiast wyświetlania jej bezpośrednio w głównym widoku."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:11
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:11
|
||||||
msgid "History for command (Alt-F2) dialog"
|
msgid "History for command (Alt-F2) dialog"
|
||||||
@ -286,7 +287,7 @@ msgstr ""
|
|||||||
"Ustawia potok biblioteki GStreamer używany do zakodowania nagrań. Używa "
|
"Ustawia potok biblioteki GStreamer używany do zakodowania nagrań. Używa "
|
||||||
"składni programu gst-launch. Potok powinien posiadać niepołączony odpływ, "
|
"składni programu gst-launch. Potok powinien posiadać niepołączony odpływ, "
|
||||||
"gdzie jest nagrywane. Zwykle taki posiada, a wyjście będzie zapisywane do "
|
"gdzie jest nagrywane. Zwykle taki posiada, a wyjście będzie zapisywane do "
|
||||||
"pliku wyjściowego. Mimo, że potok może sam zająć się swoim wyjściem, można "
|
"pliku wyjściowego. Mimo że potok może sam zająć się swoim wyjściem, można "
|
||||||
"także wysłać wyjście do serwera icecast przez polecenie shout2send lub "
|
"także wysłać wyjście do serwera icecast przez polecenie shout2send lub "
|
||||||
"podobne. Jeśli nie zostanie ustawione lub ustawione na pustą wartość, to "
|
"podobne. Jeśli nie zostanie ustawione lub ustawione na pustą wartość, to "
|
||||||
"zostanie użyty domyślny potok. Jest nim obecnie \"vp8enc min_quantizer=13 "
|
"zostanie użyty domyślny potok. Jest nim obecnie \"vp8enc min_quantizer=13 "
|
||||||
@ -359,20 +360,20 @@ msgstr "Dynamiczne zarządzanie obszarami roboczymi"
|
|||||||
msgid "Workspaces only on primary monitor"
|
msgid "Workspaces only on primary monitor"
|
||||||
msgstr "Obszary robocze tylko na pierwszym monitorze"
|
msgstr "Obszary robocze tylko na pierwszym monitorze"
|
||||||
|
|
||||||
#: ../js/extensionPrefs/main.js:124
|
#: ../js/extensionPrefs/main.js:125
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "There was an error loading the preferences dialog for %s:"
|
msgid "There was an error loading the preferences dialog for %s:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Wystąpił błąd podczas wczytywania okna preferencji dla rozszerzenia %s:"
|
"Wystąpił błąd podczas wczytywania okna preferencji dla rozszerzenia %s:"
|
||||||
|
|
||||||
#: ../js/extensionPrefs/main.js:164
|
#: ../js/extensionPrefs/main.js:165
|
||||||
msgid "Extension"
|
msgid "Extension"
|
||||||
msgstr "Rozszerzenie"
|
msgstr "Rozszerzenie"
|
||||||
|
|
||||||
#: ../js/extensionPrefs/main.js:188
|
#: ../js/extensionPrefs/main.js:189
|
||||||
msgid "Select an extension to configure using the combobox above."
|
msgid "Select an extension to configure using the combobox above."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Proszę wybrać rozszerzenie do skonfigurowania używając powyższego pola "
|
"Proszę wybrać rozszerzenie do skonfigurowania, używając powyższego pola "
|
||||||
"wyboru."
|
"wyboru."
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:405
|
#: ../js/gdm/loginDialog.js:405
|
||||||
@ -382,36 +383,36 @@ msgstr "Sesja…"
|
|||||||
#. translators: this message is shown below the user list on the
|
#. translators: this message is shown below the user list on the
|
||||||
#. login screen. It can be activated to reveal an entry for
|
#. login screen. It can be activated to reveal an entry for
|
||||||
#. manually entering the username.
|
#. manually entering the username.
|
||||||
#: ../js/gdm/loginDialog.js:629
|
#: ../js/gdm/loginDialog.js:630
|
||||||
msgid "Not listed?"
|
msgid "Not listed?"
|
||||||
msgstr "Inny użytkownik?"
|
msgstr "Inny użytkownik?"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:783 ../js/ui/components/networkAgent.js:137
|
#: ../js/gdm/loginDialog.js:786 ../js/ui/components/networkAgent.js:137
|
||||||
#: ../js/ui/components/polkitAgent.js:162 ../js/ui/endSessionDialog.js:375
|
#: ../js/ui/components/polkitAgent.js:162 ../js/ui/endSessionDialog.js:375
|
||||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||||
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:126
|
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:99
|
||||||
#: ../js/ui/userMenu.js:932
|
#: ../js/ui/userMenu.js:938
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Anuluj"
|
msgstr "Anuluj"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:799
|
#: ../js/gdm/loginDialog.js:802
|
||||||
msgctxt "button"
|
msgctxt "button"
|
||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr "Zaloguj"
|
msgstr "Zaloguj"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:799
|
#: ../js/gdm/loginDialog.js:802
|
||||||
msgid "Next"
|
msgid "Next"
|
||||||
msgstr "Dalej"
|
msgstr "Dalej"
|
||||||
|
|
||||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||||
#. is not visible here since we only care about phase2 authentication
|
#. 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:904 ../js/ui/components/networkAgent.js:260
|
#: ../js/gdm/loginDialog.js:917 ../js/ui/components/networkAgent.js:260
|
||||||
#: ../js/ui/components/networkAgent.js:278
|
#: ../js/ui/components/networkAgent.js:278
|
||||||
msgid "Username: "
|
msgid "Username: "
|
||||||
msgstr "Nazwa użytkownika: "
|
msgstr "Nazwa użytkownika: "
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:1157
|
#: ../js/gdm/loginDialog.js:1173
|
||||||
msgid "Login Window"
|
msgid "Login Window"
|
||||||
msgstr "Okno logowania"
|
msgstr "Okno logowania"
|
||||||
|
|
||||||
@ -420,8 +421,8 @@ msgstr "Okno logowania"
|
|||||||
msgid "Power"
|
msgid "Power"
|
||||||
msgstr "Zasilanie"
|
msgstr "Zasilanie"
|
||||||
|
|
||||||
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:694 ../js/ui/userMenu.js:698
|
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:696 ../js/ui/userMenu.js:700
|
||||||
#: ../js/ui/userMenu.js:814
|
#: ../js/ui/userMenu.js:816
|
||||||
msgid "Suspend"
|
msgid "Suspend"
|
||||||
msgstr "Uśpij"
|
msgstr "Uśpij"
|
||||||
|
|
||||||
@ -429,58 +430,58 @@ msgstr "Uśpij"
|
|||||||
msgid "Restart"
|
msgid "Restart"
|
||||||
msgstr "Uruchom ponownie"
|
msgstr "Uruchom ponownie"
|
||||||
|
|
||||||
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:696
|
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:698
|
||||||
#: ../js/ui/userMenu.js:698 ../js/ui/userMenu.js:813 ../js/ui/userMenu.js:936
|
#: ../js/ui/userMenu.js:700 ../js/ui/userMenu.js:815 ../js/ui/userMenu.js:942
|
||||||
msgid "Power Off"
|
msgid "Power Off"
|
||||||
msgstr "Wyłącz komputer"
|
msgstr "Wyłącz komputer"
|
||||||
|
|
||||||
#: ../js/gdm/util.js:182
|
#: ../js/gdm/util.js:249
|
||||||
msgid "Authentication error"
|
msgid "Authentication error"
|
||||||
msgstr "Błąd uwierzytelniania"
|
msgstr "Błąd uwierzytelniania"
|
||||||
|
|
||||||
#. Translators: this message is shown below the password entry field
|
#. Translators: this message is shown below the password entry field
|
||||||
#. to indicate the user can swipe their finger instead
|
#. to indicate the user can swipe their finger instead
|
||||||
#: ../js/gdm/util.js:299
|
#: ../js/gdm/util.js:366
|
||||||
msgid "(or swipe finger)"
|
msgid "(or swipe finger)"
|
||||||
msgstr "(lub przeciągnięcie palca)"
|
msgstr "(lub przeciągnięcie palca)"
|
||||||
|
|
||||||
#: ../js/gdm/util.js:324
|
#: ../js/gdm/util.js:391
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "(e.g., user or %s)"
|
msgid "(e.g., user or %s)"
|
||||||
msgstr "(np. użytkownik lub %s)"
|
msgstr "(np. użytkownik lub %s)"
|
||||||
|
|
||||||
#: ../js/misc/util.js:94
|
#: ../js/misc/util.js:97
|
||||||
msgid "Command not found"
|
msgid "Command not found"
|
||||||
msgstr "Nie odnaleziono polecenia"
|
msgstr "Nie odnaleziono polecenia"
|
||||||
|
|
||||||
#. Replace "Error invoking GLib.shell_parse_argv: " with
|
#. Replace "Error invoking GLib.shell_parse_argv: " with
|
||||||
#. something nicer
|
#. something nicer
|
||||||
#: ../js/misc/util.js:127
|
#: ../js/misc/util.js:130
|
||||||
msgid "Could not parse command:"
|
msgid "Could not parse command:"
|
||||||
msgstr "Nie można przetworzyć polecenia:"
|
msgstr "Nie można przetworzyć polecenia:"
|
||||||
|
|
||||||
#: ../js/misc/util.js:135
|
#: ../js/misc/util.js:138
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Execution of '%s' failed:"
|
msgid "Execution of '%s' failed:"
|
||||||
msgstr "Wykonanie polecenia \"%s\" się nie powiodło:"
|
msgstr "Wykonanie polecenia \"%s\" się nie powiodło:"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:348
|
#: ../js/ui/appDisplay.js:349
|
||||||
msgid "Frequent"
|
msgid "Frequent"
|
||||||
msgstr "Często używane"
|
msgstr "Często używane"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:355
|
#: ../js/ui/appDisplay.js:356
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Wszystkie"
|
msgstr "Wszystkie"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:913
|
#: ../js/ui/appDisplay.js:914
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "Nowe okno"
|
msgstr "Nowe okno"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:916 ../js/ui/dash.js:284
|
#: ../js/ui/appDisplay.js:917 ../js/ui/dash.js:284
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Usuń z ulubionych"
|
msgstr "Usuń z ulubionych"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:917
|
#: ../js/ui/appDisplay.js:918
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Dodaj do ulubionych"
|
msgstr "Dodaj do ulubionych"
|
||||||
|
|
||||||
@ -494,7 +495,7 @@ msgstr "Program %s został dodany do ulubionych."
|
|||||||
msgid "%s has been removed from your favorites."
|
msgid "%s has been removed from your favorites."
|
||||||
msgstr "Program %s został usunięty z ulubionych."
|
msgstr "Program %s został usunięty z ulubionych."
|
||||||
|
|
||||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:787
|
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:789
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Ustawienia"
|
msgstr "Ustawienia"
|
||||||
|
|
||||||
@ -517,7 +518,7 @@ msgctxt "event list time"
|
|||||||
msgid "%H\\u2236%M"
|
msgid "%H\\u2236%M"
|
||||||
msgstr "%H\\u2236%M"
|
msgstr "%H\\u2236%M"
|
||||||
|
|
||||||
#. Transators: Shown in calendar event list, if 12h format,
|
#. Translators: Shown in calendar event list, if 12h format,
|
||||||
#. \u2236 is a ratio character, similar to : and \u2009 is
|
#. \u2236 is a ratio character, similar to : and \u2009 is
|
||||||
#. a thin space
|
#. a thin space
|
||||||
#: ../js/ui/calendar.js:77
|
#: ../js/ui/calendar.js:77
|
||||||
@ -619,35 +620,35 @@ msgid "S"
|
|||||||
msgstr "S"
|
msgstr "S"
|
||||||
|
|
||||||
#. Translators: Text to show if there are no events
|
#. Translators: Text to show if there are no events
|
||||||
#: ../js/ui/calendar.js:692
|
#: ../js/ui/calendar.js:720
|
||||||
msgid "Nothing Scheduled"
|
msgid "Nothing Scheduled"
|
||||||
msgstr "Nic nie zaplanowano"
|
msgstr "Nic nie zaplanowano"
|
||||||
|
|
||||||
#. Translators: Shown on calendar heading when selected day occurs on current year
|
#. Translators: Shown on calendar heading when selected day occurs on current year
|
||||||
#: ../js/ui/calendar.js:708
|
#: ../js/ui/calendar.js:736
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %e %B"
|
msgstr "%A, %e %B"
|
||||||
|
|
||||||
#. Translators: Shown on calendar heading when selected day occurs on different year
|
#. Translators: Shown on calendar heading when selected day occurs on different year
|
||||||
#: ../js/ui/calendar.js:711
|
#: ../js/ui/calendar.js:739
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d, %Y"
|
msgid "%A, %B %d, %Y"
|
||||||
msgstr "%A, %e %B %Y"
|
msgstr "%A, %e %B %Y"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:721
|
#: ../js/ui/calendar.js:749
|
||||||
msgid "Today"
|
msgid "Today"
|
||||||
msgstr "Dzisiaj"
|
msgstr "Dzisiaj"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:725
|
#: ../js/ui/calendar.js:753
|
||||||
msgid "Tomorrow"
|
msgid "Tomorrow"
|
||||||
msgstr "Jutro"
|
msgstr "Jutro"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:736
|
#: ../js/ui/calendar.js:764
|
||||||
msgid "This week"
|
msgid "This week"
|
||||||
msgstr "Ten tydzień"
|
msgstr "Ten tydzień"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:744
|
#: ../js/ui/calendar.js:772
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr "Następny tydzień"
|
msgstr "Następny tydzień"
|
||||||
|
|
||||||
@ -663,12 +664,12 @@ msgstr "Odłączono dysk zewnętrzny"
|
|||||||
msgid "Removable Devices"
|
msgid "Removable Devices"
|
||||||
msgstr "Urządzenia wymienne"
|
msgstr "Urządzenia wymienne"
|
||||||
|
|
||||||
#: ../js/ui/components/autorunManager.js:593
|
#: ../js/ui/components/autorunManager.js:594
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Open with %s"
|
msgid "Open with %s"
|
||||||
msgstr "Otwórz za pomocą %s"
|
msgstr "Otwórz za pomocą %s"
|
||||||
|
|
||||||
#: ../js/ui/components/autorunManager.js:619
|
#: ../js/ui/components/autorunManager.js:620
|
||||||
msgid "Eject"
|
msgid "Eject"
|
||||||
msgstr "Wysuń"
|
msgstr "Wysuń"
|
||||||
|
|
||||||
@ -811,39 +812,39 @@ msgid "Mute"
|
|||||||
msgstr "Wycisz"
|
msgstr "Wycisz"
|
||||||
|
|
||||||
#. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30"
|
#. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30"
|
||||||
#: ../js/ui/components/telepathyClient.js:938
|
#: ../js/ui/components/telepathyClient.js:942
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "<b>Yesterday</b>, <b>%H:%M</b>"
|
msgid "<b>Yesterday</b>, <b>%H:%M</b>"
|
||||||
msgstr "<b>Wczoraj</b> o <b>%H:%M</b>"
|
msgstr "<b>Wczoraj</b> o <b>%H:%M</b>"
|
||||||
|
|
||||||
#. Translators: this is the week day name followed by a time string. i.e. "Monday, 14:30
|
#. Translators: this is the week day name followed by a time string. i.e. "Monday, 14:30
|
||||||
#: ../js/ui/components/telepathyClient.js:944
|
#: ../js/ui/components/telepathyClient.js:948
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "<b>%A</b>, <b>%H:%M</b>"
|
msgid "<b>%A</b>, <b>%H:%M</b>"
|
||||||
msgstr "<b>%A</b> o <b>%H:%M</b>"
|
msgstr "<b>%A</b> o <b>%H:%M</b>"
|
||||||
|
|
||||||
#. Translators: this is the month name and day number followed by a time string. i.e. "May 25, 14:30"
|
#. Translators: this is the month name and day number followed by a time string. i.e. "May 25, 14:30"
|
||||||
#: ../js/ui/components/telepathyClient.js:949
|
#: ../js/ui/components/telepathyClient.js:953
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "<b>%B</b> <b>%d</b>, <b>%H:%M</b>"
|
msgid "<b>%B</b> <b>%d</b>, <b>%H:%M</b>"
|
||||||
msgstr "<b>%d</b> <b>%B</b>, <b>%H:%M</b>"
|
msgstr "<b>%d</b> <b>%B</b>, <b>%H:%M</b>"
|
||||||
|
|
||||||
#. Translators: this is the month name, day number, year number followed by a time string. i.e. "May 25 2012, 14:30"
|
#. Translators: this is the month name, day number, year number followed by a time string. i.e. "May 25 2012, 14:30"
|
||||||
#: ../js/ui/components/telepathyClient.js:953
|
#: ../js/ui/components/telepathyClient.js:957
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
msgid "<b>%B</b> <b>%d</b> <b>%Y</b>, <b>%H:%M</b> "
|
msgid "<b>%B</b> <b>%d</b> <b>%Y</b>, <b>%H:%M</b> "
|
||||||
msgstr "<b>%d</b> <b>%B</b> <b>%Y</b>, <b>%H:%M</b> "
|
msgstr "<b>%d</b> <b>%B</b> <b>%Y</b>, <b>%H:%M</b> "
|
||||||
|
|
||||||
#. Translators: this is the other person changing their old IM name to their new
|
#. Translators: this is the other person changing their old IM name to their new
|
||||||
#. IM name.
|
#. IM name.
|
||||||
#: ../js/ui/components/telepathyClient.js:981
|
#: ../js/ui/components/telepathyClient.js:985
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is now known as %s"
|
msgid "%s is now known as %s"
|
||||||
msgstr "Użytkownik %s jest teraz znany jako %s"
|
msgstr "Użytkownik %s jest teraz znany jako %s"
|
||||||
|
|
||||||
#. translators: argument is a room name like
|
#. translators: argument is a room name like
|
||||||
#. * room@jabber.org for example.
|
#. * room@jabber.org for example.
|
||||||
#: ../js/ui/components/telepathyClient.js:1084
|
#: ../js/ui/components/telepathyClient.js:1088
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invitation to %s"
|
msgid "Invitation to %s"
|
||||||
msgstr "Zaproszenie do pokoju %s"
|
msgstr "Zaproszenie do pokoju %s"
|
||||||
@ -851,38 +852,38 @@ msgstr "Zaproszenie do pokoju %s"
|
|||||||
#. translators: first argument is the name of a contact and the second
|
#. translators: first argument is the name of a contact and the second
|
||||||
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
|
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
|
||||||
#. * for example.
|
#. * for example.
|
||||||
#: ../js/ui/components/telepathyClient.js:1092
|
#: ../js/ui/components/telepathyClient.js:1096
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is inviting you to join %s"
|
msgid "%s is inviting you to join %s"
|
||||||
msgstr "Użytkownik %s zaprasza do dołączenia do pokoju %s"
|
msgstr "Użytkownik %s zaprasza do dołączenia do pokoju %s"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1094
|
#: ../js/ui/components/telepathyClient.js:1098
|
||||||
#: ../js/ui/components/telepathyClient.js:1133
|
#: ../js/ui/components/telepathyClient.js:1137
|
||||||
#: ../js/ui/components/telepathyClient.js:1173
|
#: ../js/ui/components/telepathyClient.js:1177
|
||||||
#: ../js/ui/components/telepathyClient.js:1236
|
#: ../js/ui/components/telepathyClient.js:1240
|
||||||
msgid "Decline"
|
msgid "Decline"
|
||||||
msgstr "Odmów"
|
msgstr "Odmów"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1095
|
#: ../js/ui/components/telepathyClient.js:1099
|
||||||
#: ../js/ui/components/telepathyClient.js:1174
|
#: ../js/ui/components/telepathyClient.js:1178
|
||||||
#: ../js/ui/components/telepathyClient.js:1237
|
#: ../js/ui/components/telepathyClient.js:1241
|
||||||
msgid "Accept"
|
msgid "Accept"
|
||||||
msgstr "Zaakceptuj"
|
msgstr "Zaakceptuj"
|
||||||
|
|
||||||
#. translators: argument is a contact name like Alice for example.
|
#. translators: argument is a contact name like Alice for example.
|
||||||
#: ../js/ui/components/telepathyClient.js:1125
|
#: ../js/ui/components/telepathyClient.js:1129
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Video call from %s"
|
msgid "Video call from %s"
|
||||||
msgstr "Wideorozmowa z użytkownikiem %s"
|
msgstr "Wideorozmowa z użytkownikiem %s"
|
||||||
|
|
||||||
#. translators: argument is a contact name like Alice for example.
|
#. translators: argument is a contact name like Alice for example.
|
||||||
#: ../js/ui/components/telepathyClient.js:1128
|
#: ../js/ui/components/telepathyClient.js:1132
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Call from %s"
|
msgid "Call from %s"
|
||||||
msgstr "Rozmowa z użytkownikiem %s"
|
msgstr "Rozmowa z użytkownikiem %s"
|
||||||
|
|
||||||
#. translators: this is a button label (verb), not a noun
|
#. translators: this is a button label (verb), not a noun
|
||||||
#: ../js/ui/components/telepathyClient.js:1135
|
#: ../js/ui/components/telepathyClient.js:1139
|
||||||
msgid "Answer"
|
msgid "Answer"
|
||||||
msgstr "Odbierz"
|
msgstr "Odbierz"
|
||||||
|
|
||||||
@ -891,111 +892,111 @@ msgstr "Odbierz"
|
|||||||
#. * file name. The string will be something
|
#. * file name. The string will be something
|
||||||
#. * like: "Alice is sending you test.ogg"
|
#. * like: "Alice is sending you test.ogg"
|
||||||
#.
|
#.
|
||||||
#: ../js/ui/components/telepathyClient.js:1167
|
#: ../js/ui/components/telepathyClient.js:1171
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is sending you %s"
|
msgid "%s is sending you %s"
|
||||||
msgstr "Użytkownik %s przysyła plik %s"
|
msgstr "Użytkownik %s przysyła plik %s"
|
||||||
|
|
||||||
#. To translators: The parameter is the contact's alias
|
#. To translators: The parameter is the contact's alias
|
||||||
#: ../js/ui/components/telepathyClient.js:1202
|
#: ../js/ui/components/telepathyClient.js:1206
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s would like permission to see when you are online"
|
msgid "%s would like permission to see when you are online"
|
||||||
msgstr "Użytkownik %s prosi o uprawnienie do wyświetlania stanu"
|
msgstr "Użytkownik %s prosi o uprawnienie do wyświetlania stanu"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1294
|
#: ../js/ui/components/telepathyClient.js:1298
|
||||||
msgid "Network error"
|
msgid "Network error"
|
||||||
msgstr "Błąd sieci"
|
msgstr "Błąd sieci"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1296
|
#: ../js/ui/components/telepathyClient.js:1300
|
||||||
msgid "Authentication failed"
|
msgid "Authentication failed"
|
||||||
msgstr "Uwierzytelnienie się nie powiodło"
|
msgstr "Uwierzytelnienie się nie powiodło"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1298
|
#: ../js/ui/components/telepathyClient.js:1302
|
||||||
msgid "Encryption error"
|
msgid "Encryption error"
|
||||||
msgstr "Błąd szyfrowania"
|
msgstr "Błąd szyfrowania"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1300
|
#: ../js/ui/components/telepathyClient.js:1304
|
||||||
msgid "Certificate not provided"
|
msgid "Certificate not provided"
|
||||||
msgstr "Nie podano certyfikatu"
|
msgstr "Nie podano certyfikatu"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1302
|
#: ../js/ui/components/telepathyClient.js:1306
|
||||||
msgid "Certificate untrusted"
|
msgid "Certificate untrusted"
|
||||||
msgstr "Certyfikat jest niezaufany"
|
msgstr "Certyfikat jest niezaufany"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1304
|
#: ../js/ui/components/telepathyClient.js:1308
|
||||||
msgid "Certificate expired"
|
msgid "Certificate expired"
|
||||||
msgstr "Certyfikat wygasł"
|
msgstr "Certyfikat wygasł"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1306
|
#: ../js/ui/components/telepathyClient.js:1310
|
||||||
msgid "Certificate not activated"
|
msgid "Certificate not activated"
|
||||||
msgstr "Certyfikat nie został aktywowany"
|
msgstr "Certyfikat nie został aktywowany"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1308
|
#: ../js/ui/components/telepathyClient.js:1312
|
||||||
msgid "Certificate hostname mismatch"
|
msgid "Certificate hostname mismatch"
|
||||||
msgstr "Nazwa komputera certyfikatu się nie zgadza"
|
msgstr "Nazwa komputera certyfikatu się nie zgadza"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1310
|
#: ../js/ui/components/telepathyClient.js:1314
|
||||||
msgid "Certificate fingerprint mismatch"
|
msgid "Certificate fingerprint mismatch"
|
||||||
msgstr "Odcisk palca certyfikatu się nie zgadza"
|
msgstr "Odcisk palca certyfikatu się nie zgadza"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1312
|
#: ../js/ui/components/telepathyClient.js:1316
|
||||||
msgid "Certificate self-signed"
|
msgid "Certificate self-signed"
|
||||||
msgstr "Certyfikat został samodzielnie podpisany"
|
msgstr "Certyfikat został samodzielnie podpisany"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1314
|
#: ../js/ui/components/telepathyClient.js:1318
|
||||||
msgid "Status is set to offline"
|
msgid "Status is set to offline"
|
||||||
msgstr "Stan jest ustawiony na offline"
|
msgstr "Stan jest ustawiony na offline"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1316
|
#: ../js/ui/components/telepathyClient.js:1320
|
||||||
msgid "Encryption is not available"
|
msgid "Encryption is not available"
|
||||||
msgstr "Szyfrowanie jest niedostępne"
|
msgstr "Szyfrowanie jest niedostępne"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1318
|
#: ../js/ui/components/telepathyClient.js:1322
|
||||||
msgid "Certificate is invalid"
|
msgid "Certificate is invalid"
|
||||||
msgstr "Certyfikat jest nieprawidłowy"
|
msgstr "Certyfikat jest nieprawidłowy"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1320
|
#: ../js/ui/components/telepathyClient.js:1324
|
||||||
msgid "Connection has been refused"
|
msgid "Connection has been refused"
|
||||||
msgstr "Odrzucono połączenie"
|
msgstr "Odrzucono połączenie"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1322
|
#: ../js/ui/components/telepathyClient.js:1326
|
||||||
msgid "Connection can't be established"
|
msgid "Connection can't be established"
|
||||||
msgstr "Nie można nawiązać połączenia"
|
msgstr "Nie można nawiązać połączenia"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1324
|
#: ../js/ui/components/telepathyClient.js:1328
|
||||||
msgid "Connection has been lost"
|
msgid "Connection has been lost"
|
||||||
msgstr "Utracono połączenie"
|
msgstr "Utracono połączenie"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1326
|
#: ../js/ui/components/telepathyClient.js:1330
|
||||||
msgid "This account is already connected to the server"
|
msgid "This account is already connected to the server"
|
||||||
msgstr "To konto jest już połączone z serwerem"
|
msgstr "To konto jest już połączone z serwerem"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1328
|
#: ../js/ui/components/telepathyClient.js:1332
|
||||||
msgid ""
|
msgid ""
|
||||||
"Connection has been replaced by a new connection using the same resource"
|
"Connection has been replaced by a new connection using the same resource"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Połączenie zostało zastąpione nowym z wykorzystaniem tego samego zasobu"
|
"Połączenie zostało zastąpione nowym z wykorzystaniem tego samego zasobu"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1330
|
#: ../js/ui/components/telepathyClient.js:1334
|
||||||
msgid "The account already exists on the server"
|
msgid "The account already exists on the server"
|
||||||
msgstr "Konto już istnieje na serwerze"
|
msgstr "Konto już istnieje na serwerze"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1332
|
#: ../js/ui/components/telepathyClient.js:1336
|
||||||
msgid "Server is currently too busy to handle the connection"
|
msgid "Server is currently too busy to handle the connection"
|
||||||
msgstr "Serwer jest obecnie zbyt zajęty, aby obsłużyć połączenie"
|
msgstr "Serwer jest obecnie zbyt zajęty, aby obsłużyć połączenie"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1334
|
#: ../js/ui/components/telepathyClient.js:1338
|
||||||
msgid "Certificate has been revoked"
|
msgid "Certificate has been revoked"
|
||||||
msgstr "Certyfikat został unieważniony"
|
msgstr "Certyfikat został unieważniony"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1336
|
#: ../js/ui/components/telepathyClient.js:1340
|
||||||
msgid ""
|
msgid ""
|
||||||
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Certyfikat używa niezabezpieczonego algorytmu szyfrowania lub jest "
|
"Certyfikat używa niezabezpieczonego algorytmu szyfrowania lub jest "
|
||||||
"kryptograficznie słaby"
|
"kryptograficznie słaby"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1338
|
#: ../js/ui/components/telepathyClient.js:1342
|
||||||
msgid ""
|
msgid ""
|
||||||
"The length of the server certificate, or the depth of the server certificate "
|
"The length of the server certificate, or the depth of the server certificate "
|
||||||
"chain, exceed the limits imposed by the cryptography library"
|
"chain, exceed the limits imposed by the cryptography library"
|
||||||
@ -1003,26 +1004,26 @@ msgstr ""
|
|||||||
"Długość certyfikatu serwera lub głębokość jego łańcucha przekracza "
|
"Długość certyfikatu serwera lub głębokość jego łańcucha przekracza "
|
||||||
"ograniczenia nałożone przez bibliotekę kryptograficzną"
|
"ograniczenia nałożone przez bibliotekę kryptograficzną"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1340
|
#: ../js/ui/components/telepathyClient.js:1344
|
||||||
msgid "Internal error"
|
msgid "Internal error"
|
||||||
msgstr "Błąd wewnętrzny"
|
msgstr "Błąd wewnętrzny"
|
||||||
|
|
||||||
#. translators: argument is the account name, like
|
#. translators: argument is the account name, like
|
||||||
#. * name@jabber.org for example.
|
#. * name@jabber.org for example.
|
||||||
#: ../js/ui/components/telepathyClient.js:1350
|
#: ../js/ui/components/telepathyClient.js:1354
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Unable to connect to %s"
|
msgid "Unable to connect to %s"
|
||||||
msgstr "Nie można połączyć się z kontem %s"
|
msgstr "Nie można połączyć się z kontem %s"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1355
|
#: ../js/ui/components/telepathyClient.js:1359
|
||||||
msgid "View account"
|
msgid "View account"
|
||||||
msgstr "Wyświetl konto"
|
msgstr "Wyświetl konto"
|
||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:1394
|
#: ../js/ui/components/telepathyClient.js:1398
|
||||||
msgid "Unknown reason"
|
msgid "Unknown reason"
|
||||||
msgstr "Nieznana przyczyna"
|
msgstr "Nieznana przyczyna"
|
||||||
|
|
||||||
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:97
|
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:96
|
||||||
msgid "Windows"
|
msgid "Windows"
|
||||||
msgstr "Okna"
|
msgstr "Okna"
|
||||||
|
|
||||||
@ -1051,7 +1052,7 @@ msgstr "Ustawienia daty i czasu"
|
|||||||
#. Translators: This is the date format to use when the calendar popup is
|
#. 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").
|
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
|
||||||
#.
|
#.
|
||||||
#: ../js/ui/dateMenu.js:205
|
#: ../js/ui/dateMenu.js:215
|
||||||
msgid "%A %B %e, %Y"
|
msgid "%A %B %e, %Y"
|
||||||
msgstr "%A, %e %B %Y"
|
msgstr "%A, %e %B %Y"
|
||||||
|
|
||||||
@ -1212,23 +1213,23 @@ msgstr "Wyświetl źródło"
|
|||||||
msgid "Web Page"
|
msgid "Web Page"
|
||||||
msgstr "Strona WWW"
|
msgstr "Strona WWW"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1177
|
#: ../js/ui/messageTray.js:1182
|
||||||
msgid "Open"
|
msgid "Open"
|
||||||
msgstr "Otwórz"
|
msgstr "Otwórz"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1184
|
#: ../js/ui/messageTray.js:1189
|
||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Usuń"
|
msgstr "Usuń"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1496
|
#: ../js/ui/messageTray.js:1501
|
||||||
msgid "Clear Messages"
|
msgid "Clear Messages"
|
||||||
msgstr "Wyczyść wiadomości"
|
msgstr "Wyczyść wiadomości"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1523
|
#: ../js/ui/messageTray.js:1528
|
||||||
msgid "Notification Settings"
|
msgid "Notification Settings"
|
||||||
msgstr "Ustawienia powiadomień"
|
msgstr "Ustawienia powiadomień"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1702
|
#: ../js/ui/messageTray.js:1709
|
||||||
msgid "No Messages"
|
msgid "No Messages"
|
||||||
msgstr "Brak wiadomości"
|
msgstr "Brak wiadomości"
|
||||||
|
|
||||||
@ -1236,7 +1237,7 @@ msgstr "Brak wiadomości"
|
|||||||
msgid "Message Tray"
|
msgid "Message Tray"
|
||||||
msgstr "Obszar powiadamiania"
|
msgstr "Obszar powiadamiania"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:2857
|
#: ../js/ui/messageTray.js:2810
|
||||||
msgid "System Information"
|
msgid "System Information"
|
||||||
msgstr "Informacje systemowe"
|
msgstr "Informacje systemowe"
|
||||||
|
|
||||||
@ -1245,11 +1246,19 @@ msgctxt "program"
|
|||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "Nieznany"
|
msgstr "Nieznany"
|
||||||
|
|
||||||
#: ../js/ui/overview.js:81
|
#: ../js/ui/overviewControls.js:463 ../js/ui/screenShield.js:149
|
||||||
|
#, c-format
|
||||||
|
msgid "%d new message"
|
||||||
|
msgid_plural "%d new messages"
|
||||||
|
msgstr[0] "%d nowa wiadomość"
|
||||||
|
msgstr[1] "%d nowe wiadomości"
|
||||||
|
msgstr[2] "%d nowych wiadomości"
|
||||||
|
|
||||||
|
#: ../js/ui/overview.js:84
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Cofnij"
|
msgstr "Cofnij"
|
||||||
|
|
||||||
#: ../js/ui/overview.js:124
|
#: ../js/ui/overview.js:129
|
||||||
msgid "Overview"
|
msgid "Overview"
|
||||||
msgstr "Podgląd"
|
msgstr "Podgląd"
|
||||||
|
|
||||||
@ -1257,21 +1266,21 @@ msgstr "Podgląd"
|
|||||||
#. in the search entry when no search is
|
#. in the search entry when no search is
|
||||||
#. active; it should not exceed ~30
|
#. active; it should not exceed ~30
|
||||||
#. characters.
|
#. characters.
|
||||||
#: ../js/ui/overview.js:272
|
#: ../js/ui/overview.js:271
|
||||||
msgid "Type to search…"
|
msgid "Type to search…"
|
||||||
msgstr "Wyszukiwanie…"
|
msgstr "Wyszukiwanie…"
|
||||||
|
|
||||||
#: ../js/ui/panel.js:613
|
#: ../js/ui/panel.js:612
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Zakończ"
|
msgstr "Zakończ"
|
||||||
|
|
||||||
#. Translators: If there is no suitable word for "Activities"
|
#. 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:642
|
#: ../js/ui/panel.js:636
|
||||||
msgid "Activities"
|
msgid "Activities"
|
||||||
msgstr "Podgląd"
|
msgstr "Podgląd"
|
||||||
|
|
||||||
#: ../js/ui/panel.js:983
|
#: ../js/ui/panel.js:933
|
||||||
msgid "Top Bar"
|
msgid "Top Bar"
|
||||||
msgstr "Górny pasek"
|
msgstr "Górny pasek"
|
||||||
|
|
||||||
@ -1284,29 +1293,21 @@ msgstr "Górny pasek"
|
|||||||
msgid "toggle-switch-us"
|
msgid "toggle-switch-us"
|
||||||
msgstr "toggle-switch-intl"
|
msgstr "toggle-switch-intl"
|
||||||
|
|
||||||
#: ../js/ui/runDialog.js:205
|
#: ../js/ui/runDialog.js:73
|
||||||
msgid "Enter a Command"
|
msgid "Enter a Command"
|
||||||
msgstr "Proszę wprowadzić polecenie"
|
msgstr "Proszę wprowadzić polecenie"
|
||||||
|
|
||||||
#: ../js/ui/runDialog.js:241
|
#: ../js/ui/runDialog.js:109
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Zamknij"
|
msgstr "Zamknij"
|
||||||
|
|
||||||
#. Translators: This is a time format for a date in
|
#. Translators: This is a time format for a date in
|
||||||
#. long format
|
#. long format
|
||||||
#: ../js/ui/screenShield.js:90
|
#: ../js/ui/screenShield.js:86
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %e %B"
|
msgstr "%A, %e %B"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:153
|
#: ../js/ui/screenShield.js:151
|
||||||
#, c-format
|
|
||||||
msgid "%d new message"
|
|
||||||
msgid_plural "%d new messages"
|
|
||||||
msgstr[0] "%d nowa wiadomość"
|
|
||||||
msgstr[1] "%d nowe wiadomości"
|
|
||||||
msgstr[2] "%d nowych wiadomości"
|
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:155
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d new notification"
|
msgid "%d new notification"
|
||||||
msgid_plural "%d new notifications"
|
msgid_plural "%d new notifications"
|
||||||
@ -1314,11 +1315,11 @@ msgstr[0] "%d nowe powiadomienie"
|
|||||||
msgstr[1] "%d nowe powiadomienia"
|
msgstr[1] "%d nowe powiadomienia"
|
||||||
msgstr[2] "%d nowych powiadomień"
|
msgstr[2] "%d nowych powiadomień"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:442 ../js/ui/userMenu.js:805
|
#: ../js/ui/screenShield.js:438 ../js/ui/userMenu.js:807
|
||||||
msgid "Lock"
|
msgid "Lock"
|
||||||
msgstr "Zablokuj ekran"
|
msgstr "Zablokuj ekran"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:638
|
#: ../js/ui/screenShield.js:640
|
||||||
msgid "GNOME needs to lock the screen"
|
msgid "GNOME needs to lock the screen"
|
||||||
msgstr "Środowisko GNOME musi zablokować ekran"
|
msgstr "Środowisko GNOME musi zablokować ekran"
|
||||||
|
|
||||||
@ -1329,19 +1330,19 @@ msgstr "Środowisko GNOME musi zablokować ekran"
|
|||||||
#.
|
#.
|
||||||
#. XXX: another option is to kick the user into the gdm login
|
#. XXX: another option is to kick the user into the gdm login
|
||||||
#. screen, where we're not affected by grabs
|
#. screen, where we're not affected by grabs
|
||||||
#: ../js/ui/screenShield.js:757 ../js/ui/screenShield.js:1168
|
#: ../js/ui/screenShield.js:761 ../js/ui/screenShield.js:1197
|
||||||
msgid "Unable to lock"
|
msgid "Unable to lock"
|
||||||
msgstr "Nie można zablokować"
|
msgstr "Nie można zablokować"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:758 ../js/ui/screenShield.js:1169
|
#: ../js/ui/screenShield.js:762 ../js/ui/screenShield.js:1198
|
||||||
msgid "Lock was blocked by an application"
|
msgid "Lock was blocked by an application"
|
||||||
msgstr "Blokowanie zostało zablokowane przez program"
|
msgstr "Blokowanie zostało zablokowane przez program"
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:431
|
#: ../js/ui/searchDisplay.js:453
|
||||||
msgid "Searching…"
|
msgid "Searching…"
|
||||||
msgstr "Wyszukiwanie…"
|
msgstr "Wyszukiwanie…"
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:475
|
#: ../js/ui/searchDisplay.js:497
|
||||||
msgid "No results."
|
msgid "No results."
|
||||||
msgstr "Brak wyników."
|
msgstr "Brak wyników."
|
||||||
|
|
||||||
@ -1353,11 +1354,11 @@ msgstr "Skopiuj"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "Wklej"
|
msgstr "Wklej"
|
||||||
|
|
||||||
#: ../js/ui/shellEntry.js:105
|
#: ../js/ui/shellEntry.js:106
|
||||||
msgid "Show Text"
|
msgid "Show Text"
|
||||||
msgstr "Wyświetl tekst"
|
msgstr "Wyświetl tekst"
|
||||||
|
|
||||||
#: ../js/ui/shellEntry.js:107
|
#: ../js/ui/shellEntry.js:108
|
||||||
msgid "Hide Text"
|
msgid "Hide Text"
|
||||||
msgstr "Ukryj tekst"
|
msgstr "Ukryj tekst"
|
||||||
|
|
||||||
@ -1369,7 +1370,7 @@ msgstr "Hasło"
|
|||||||
msgid "Remember Password"
|
msgid "Remember Password"
|
||||||
msgstr "Zapamiętanie hasła"
|
msgstr "Zapamiętanie hasła"
|
||||||
|
|
||||||
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:140
|
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:113
|
||||||
msgid "Unlock"
|
msgid "Unlock"
|
||||||
msgstr "Odblokuj"
|
msgstr "Odblokuj"
|
||||||
|
|
||||||
@ -1778,59 +1779,59 @@ msgstr "Głośność"
|
|||||||
msgid "Microphone"
|
msgid "Microphone"
|
||||||
msgstr "Mikrofon"
|
msgstr "Mikrofon"
|
||||||
|
|
||||||
#: ../js/ui/unlockDialog.js:151
|
#: ../js/ui/unlockDialog.js:124
|
||||||
msgid "Log in as another user"
|
msgid "Log in as another user"
|
||||||
msgstr "Zaloguj jako inny użytkownik"
|
msgstr "Zaloguj jako inny użytkownik"
|
||||||
|
|
||||||
#: ../js/ui/unlockDialog.js:177
|
#: ../js/ui/unlockDialog.js:145
|
||||||
msgid "Unlock Window"
|
msgid "Unlock Window"
|
||||||
msgstr "Okno odblokowania"
|
msgstr "Okno odblokowania"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:192
|
#: ../js/ui/userMenu.js:193
|
||||||
msgid "Available"
|
msgid "Available"
|
||||||
msgstr "Dostępny"
|
msgstr "Dostępny"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:195
|
#: ../js/ui/userMenu.js:196
|
||||||
msgid "Busy"
|
msgid "Busy"
|
||||||
msgstr "Zajęty"
|
msgstr "Zajęty"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:198
|
#: ../js/ui/userMenu.js:199
|
||||||
msgid "Invisible"
|
msgid "Invisible"
|
||||||
msgstr "Niewidoczny"
|
msgstr "Niewidoczny"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:201
|
#: ../js/ui/userMenu.js:202
|
||||||
msgid "Away"
|
msgid "Away"
|
||||||
msgstr "Nieobecny"
|
msgstr "Nieobecny"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:204
|
#: ../js/ui/userMenu.js:205
|
||||||
msgid "Idle"
|
msgid "Idle"
|
||||||
msgstr "Bezczynny"
|
msgstr "Bezczynny"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:207
|
#: ../js/ui/userMenu.js:208
|
||||||
msgid "Offline"
|
msgid "Offline"
|
||||||
msgstr "Offline"
|
msgstr "Offline"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:779
|
#: ../js/ui/userMenu.js:781
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Powiadomienia"
|
msgstr "Powiadomienia"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:795
|
#: ../js/ui/userMenu.js:797
|
||||||
msgid "Switch User"
|
msgid "Switch User"
|
||||||
msgstr "Przełącz użytkownika"
|
msgstr "Przełącz użytkownika"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:800
|
#: ../js/ui/userMenu.js:802
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "Wyloguj się"
|
msgstr "Wyloguj się"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:820
|
#: ../js/ui/userMenu.js:822
|
||||||
msgid "Install Updates & Restart"
|
msgid "Install Updates & Restart"
|
||||||
msgstr "Zaktualizuj i uruchom ponownie"
|
msgstr "Zaktualizuj i uruchom ponownie"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:838
|
#: ../js/ui/userMenu.js:840
|
||||||
msgid "Your chat status will be set to busy"
|
msgid "Your chat status will be set to busy"
|
||||||
msgstr "Stan komunikatora zostanie ustawiony na \"zajęty\""
|
msgstr "Stan komunikatora zostanie ustawiony na \"zajęty\""
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:839
|
#: ../js/ui/userMenu.js:841
|
||||||
msgid ""
|
msgid ""
|
||||||
"Notifications are now disabled, including chat messages. Your online status "
|
"Notifications are now disabled, including chat messages. Your online status "
|
||||||
"has been adjusted to let others know that you might not see their messages."
|
"has been adjusted to let others know that you might not see their messages."
|
||||||
@ -1840,33 +1841,35 @@ msgstr ""
|
|||||||
"użytkownik tego komputera może nie zobaczyć przychodzących od nich "
|
"użytkownik tego komputera może nie zobaczyć przychodzących od nich "
|
||||||
"wiadomości."
|
"wiadomości."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:885
|
#: ../js/ui/userMenu.js:888
|
||||||
msgid "Other users are logged in."
|
msgid "Other users are logged in."
|
||||||
msgstr "Inni użytkownicy są zalogowani."
|
msgstr "Inni użytkownicy są zalogowani."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:890
|
#: ../js/ui/userMenu.js:893
|
||||||
msgid "Shutting down might cause them to lose unsaved work."
|
msgid "Shutting down might cause them to lose unsaved work."
|
||||||
msgstr "Wyłączenie komputera może spowodować utratę danych."
|
msgstr "Wyłączenie komputera może spowodować utratę danych."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:916
|
#. Translators: Remote here refers to a remote session, like a ssh login
|
||||||
|
#: ../js/ui/userMenu.js:921
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (remote)"
|
msgid "%s (remote)"
|
||||||
msgstr "%s (zdalnie)"
|
msgstr "%s (zdalnie)"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:918
|
#. Translators: Console here refers to a tty like a VT console
|
||||||
|
#: ../js/ui/userMenu.js:924
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (console)"
|
msgid "%s (console)"
|
||||||
msgstr "%s (konsola)"
|
msgstr "%s (konsola)"
|
||||||
|
|
||||||
#: ../js/ui/viewSelector.js:101
|
#: ../js/ui/viewSelector.js:100
|
||||||
msgid "Applications"
|
msgid "Applications"
|
||||||
msgstr "Programy"
|
msgstr "Programy"
|
||||||
|
|
||||||
#: ../js/ui/viewSelector.js:105
|
#: ../js/ui/viewSelector.js:104
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Wyszukiwanie"
|
msgstr "Wyszukiwanie"
|
||||||
|
|
||||||
#: ../js/ui/wanda.js:92
|
#: ../js/ui/wanda.js:77
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sorry, no wisdom for you today:\n"
|
"Sorry, no wisdom for you today:\n"
|
||||||
@ -1875,7 +1878,7 @@ msgstr ""
|
|||||||
"Nic mądrego na dzisiaj:\n"
|
"Nic mądrego na dzisiaj:\n"
|
||||||
"%s"
|
"%s"
|
||||||
|
|
||||||
#: ../js/ui/wanda.js:96
|
#: ../js/ui/wanda.js:81
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s the Oracle says"
|
msgid "%s the Oracle says"
|
||||||
msgstr "Wyrocznia %s przemawia"
|
msgstr "Wyrocznia %s przemawia"
|
||||||
|
163
po/sr.po
163
po/sr.po
@ -8,7 +8,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: gnome-shell master\n"
|
"Project-Id-Version: gnome-shell master\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||||
"shell&keywords=I18N+L10N&component=general\n"
|
"shell&keywords=I18N+L10N&component=general\n"
|
||||||
"POT-Creation-Date: 2013-03-04 08:38+0000\n"
|
"POT-Creation-Date: 2013-03-31 01:48+0000\n"
|
||||||
"PO-Revision-Date: 2013-03-08 20:26+0200\n"
|
"PO-Revision-Date: 2013-03-08 20:26+0200\n"
|
||||||
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
|
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
|
||||||
"Language-Team: Serbian <gnom@prevod.org>\n"
|
"Language-Team: Serbian <gnom@prevod.org>\n"
|
||||||
@ -16,8 +16,8 @@ msgstr ""
|
|||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : "
|
"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n"
|
||||||
"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||||
"X-Project-Style: gnome\n"
|
"X-Project-Style: gnome\n"
|
||||||
|
|
||||||
#: ../data/50-gnome-shell-screenshot.xml.in.h:1
|
#: ../data/50-gnome-shell-screenshot.xml.in.h:1
|
||||||
@ -365,53 +365,52 @@ msgid "Select an extension to configure using the combobox above."
|
|||||||
msgstr "Изаберите проширење за подешавање користећи прозорче за избор."
|
msgstr "Изаберите проширење за подешавање користећи прозорче за избор."
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:405
|
#: ../js/gdm/loginDialog.js:405
|
||||||
#| msgid "Session..."
|
|
||||||
msgid "Session…"
|
msgid "Session…"
|
||||||
msgstr "Сесија…"
|
msgstr "Сесија…"
|
||||||
|
|
||||||
#. translators: this message is shown below the user list on the
|
#. translators: this message is shown below the user list on the
|
||||||
#. login screen. It can be activated to reveal an entry for
|
#. login screen. It can be activated to reveal an entry for
|
||||||
#. manually entering the username.
|
#. manually entering the username.
|
||||||
#: ../js/gdm/loginDialog.js:629
|
#: ../js/gdm/loginDialog.js:630
|
||||||
msgid "Not listed?"
|
msgid "Not listed?"
|
||||||
msgstr "Није на списку?"
|
msgstr "Није на списку?"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:783 ../js/ui/components/networkAgent.js:137
|
#: ../js/gdm/loginDialog.js:786 ../js/ui/components/networkAgent.js:137
|
||||||
#: ../js/ui/components/polkitAgent.js:162 ../js/ui/endSessionDialog.js:375
|
#: ../js/ui/components/polkitAgent.js:162 ../js/ui/endSessionDialog.js:375
|
||||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||||
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:126
|
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:99
|
||||||
#: ../js/ui/userMenu.js:934
|
#: ../js/ui/userMenu.js:938
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Откажи"
|
msgstr "Откажи"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:799
|
#: ../js/gdm/loginDialog.js:802
|
||||||
msgctxt "button"
|
msgctxt "button"
|
||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr "Пријави ме"
|
msgstr "Пријави ме"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:799
|
#: ../js/gdm/loginDialog.js:802
|
||||||
msgid "Next"
|
msgid "Next"
|
||||||
msgstr "Даље"
|
msgstr "Даље"
|
||||||
|
|
||||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||||
#. is not visible here since we only care about phase2 authentication
|
#. 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:904 ../js/ui/components/networkAgent.js:260
|
#: ../js/gdm/loginDialog.js:917 ../js/ui/components/networkAgent.js:260
|
||||||
#: ../js/ui/components/networkAgent.js:278
|
#: ../js/ui/components/networkAgent.js:278
|
||||||
msgid "Username: "
|
msgid "Username: "
|
||||||
msgstr "Корисничко име: "
|
msgstr "Корисничко име: "
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:1157
|
#: ../js/gdm/loginDialog.js:1173
|
||||||
msgid "Login Window"
|
msgid "Login Window"
|
||||||
msgstr "Прозор за пријављивање"
|
msgstr "Прозор за пријављивање"
|
||||||
|
|
||||||
#. Translators: accessible name of the power menu in the login screen
|
#. Translators: accessible name of the power menu in the login screen
|
||||||
#: ../js/gdm/powerMenu.js:36
|
#: ../js/gdm/powerMenu.js:36
|
||||||
msgid "Power"
|
msgid "Power"
|
||||||
msgstr "Угаси"
|
msgstr "Напајање"
|
||||||
|
|
||||||
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:695 ../js/ui/userMenu.js:699
|
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:696 ../js/ui/userMenu.js:700
|
||||||
#: ../js/ui/userMenu.js:815
|
#: ../js/ui/userMenu.js:816
|
||||||
msgid "Suspend"
|
msgid "Suspend"
|
||||||
msgstr "Обустави"
|
msgstr "Обустави"
|
||||||
|
|
||||||
@ -419,58 +418,58 @@ msgstr "Обустави"
|
|||||||
msgid "Restart"
|
msgid "Restart"
|
||||||
msgstr "Поново покрени"
|
msgstr "Поново покрени"
|
||||||
|
|
||||||
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:697
|
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:698
|
||||||
#: ../js/ui/userMenu.js:699 ../js/ui/userMenu.js:814 ../js/ui/userMenu.js:938
|
#: ../js/ui/userMenu.js:700 ../js/ui/userMenu.js:815 ../js/ui/userMenu.js:942
|
||||||
msgid "Power Off"
|
msgid "Power Off"
|
||||||
msgstr "Угаси"
|
msgstr "Искључи"
|
||||||
|
|
||||||
#: ../js/gdm/util.js:182
|
#: ../js/gdm/util.js:249
|
||||||
msgid "Authentication error"
|
msgid "Authentication error"
|
||||||
msgstr "Грешка потврђивања идентитета"
|
msgstr "Грешка потврђивања идентитета"
|
||||||
|
|
||||||
#. Translators: this message is shown below the password entry field
|
#. Translators: this message is shown below the password entry field
|
||||||
#. to indicate the user can swipe their finger instead
|
#. to indicate the user can swipe their finger instead
|
||||||
#: ../js/gdm/util.js:299
|
#: ../js/gdm/util.js:366
|
||||||
msgid "(or swipe finger)"
|
msgid "(or swipe finger)"
|
||||||
msgstr "(или лупите прст)"
|
msgstr "(или лупите прст)"
|
||||||
|
|
||||||
#: ../js/gdm/util.js:324
|
#: ../js/gdm/util.js:391
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "(e.g., user or %s)"
|
msgid "(e.g., user or %s)"
|
||||||
msgstr "(нпр., корисник или %s)"
|
msgstr "(нпр., корисник или %s)"
|
||||||
|
|
||||||
#: ../js/misc/util.js:94
|
#: ../js/misc/util.js:97
|
||||||
msgid "Command not found"
|
msgid "Command not found"
|
||||||
msgstr "Наредба није нађена"
|
msgstr "Наредба није нађена"
|
||||||
|
|
||||||
#. Replace "Error invoking GLib.shell_parse_argv: " with
|
#. Replace "Error invoking GLib.shell_parse_argv: " with
|
||||||
#. something nicer
|
#. something nicer
|
||||||
#: ../js/misc/util.js:127
|
#: ../js/misc/util.js:130
|
||||||
msgid "Could not parse command:"
|
msgid "Could not parse command:"
|
||||||
msgstr "Не могу да обрадим наредбу:"
|
msgstr "Не могу да обрадим наредбу:"
|
||||||
|
|
||||||
#: ../js/misc/util.js:135
|
#: ../js/misc/util.js:138
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Execution of '%s' failed:"
|
msgid "Execution of '%s' failed:"
|
||||||
msgstr "Није успело покретање „%s“:"
|
msgstr "Није успело покретање „%s“:"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:348
|
#: ../js/ui/appDisplay.js:349
|
||||||
msgid "Frequent"
|
msgid "Frequent"
|
||||||
msgstr "Често"
|
msgstr "Често"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:355
|
#: ../js/ui/appDisplay.js:356
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Све"
|
msgstr "Све"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:913
|
#: ../js/ui/appDisplay.js:914
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "Нови прозор"
|
msgstr "Нови прозор"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:916 ../js/ui/dash.js:284
|
#: ../js/ui/appDisplay.js:917 ../js/ui/dash.js:284
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Уклони из омиљених"
|
msgstr "Уклони из омиљених"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:917
|
#: ../js/ui/appDisplay.js:918
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Додај у омиљене"
|
msgstr "Додај у омиљене"
|
||||||
|
|
||||||
@ -484,7 +483,7 @@ msgstr "„%s“ је додат међу омиљене."
|
|||||||
msgid "%s has been removed from your favorites."
|
msgid "%s has been removed from your favorites."
|
||||||
msgstr "„%s“ је уклоњен из омиљених."
|
msgstr "„%s“ је уклоњен из омиљених."
|
||||||
|
|
||||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:788
|
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:789
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Подешавања"
|
msgstr "Подешавања"
|
||||||
|
|
||||||
@ -507,7 +506,7 @@ msgctxt "event list time"
|
|||||||
msgid "%H\\u2236%M"
|
msgid "%H\\u2236%M"
|
||||||
msgstr "%H\\u2236%M"
|
msgstr "%H\\u2236%M"
|
||||||
|
|
||||||
#. Transators: Shown in calendar event list, if 12h format,
|
#. Translators: Shown in calendar event list, if 12h format,
|
||||||
#. \u2236 is a ratio character, similar to : and \u2009 is
|
#. \u2236 is a ratio character, similar to : and \u2009 is
|
||||||
#. a thin space
|
#. a thin space
|
||||||
#: ../js/ui/calendar.js:77
|
#: ../js/ui/calendar.js:77
|
||||||
@ -609,35 +608,35 @@ msgid "S"
|
|||||||
msgstr "Суб"
|
msgstr "Суб"
|
||||||
|
|
||||||
#. Translators: Text to show if there are no events
|
#. Translators: Text to show if there are no events
|
||||||
#: ../js/ui/calendar.js:692
|
#: ../js/ui/calendar.js:720
|
||||||
msgid "Nothing Scheduled"
|
msgid "Nothing Scheduled"
|
||||||
msgstr "Ништа планирано"
|
msgstr "Ништа планирано"
|
||||||
|
|
||||||
#. Translators: Shown on calendar heading when selected day occurs on current year
|
#. Translators: Shown on calendar heading when selected day occurs on current year
|
||||||
#: ../js/ui/calendar.js:708
|
#: ../js/ui/calendar.js:736
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %B %d"
|
msgstr "%A, %B %d"
|
||||||
|
|
||||||
#. Translators: Shown on calendar heading when selected day occurs on different year
|
#. Translators: Shown on calendar heading when selected day occurs on different year
|
||||||
#: ../js/ui/calendar.js:711
|
#: ../js/ui/calendar.js:739
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d, %Y"
|
msgid "%A, %B %d, %Y"
|
||||||
msgstr "%A, %B %d, %Y"
|
msgstr "%A, %B %d, %Y"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:721
|
#: ../js/ui/calendar.js:749
|
||||||
msgid "Today"
|
msgid "Today"
|
||||||
msgstr "Данас"
|
msgstr "Данас"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:725
|
#: ../js/ui/calendar.js:753
|
||||||
msgid "Tomorrow"
|
msgid "Tomorrow"
|
||||||
msgstr "Сутра"
|
msgstr "Сутра"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:736
|
#: ../js/ui/calendar.js:764
|
||||||
msgid "This week"
|
msgid "This week"
|
||||||
msgstr "Ове недеље"
|
msgstr "Ове недеље"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:744
|
#: ../js/ui/calendar.js:772
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr "Следеће недеље"
|
msgstr "Следеће недеље"
|
||||||
|
|
||||||
@ -653,12 +652,12 @@ msgstr "Спољни уређај је искључен"
|
|||||||
msgid "Removable Devices"
|
msgid "Removable Devices"
|
||||||
msgstr "Уклоњиви уређаји"
|
msgstr "Уклоњиви уређаји"
|
||||||
|
|
||||||
#: ../js/ui/components/autorunManager.js:593
|
#: ../js/ui/components/autorunManager.js:594
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Open with %s"
|
msgid "Open with %s"
|
||||||
msgstr "Отвори програмом %s"
|
msgstr "Отвори програмом %s"
|
||||||
|
|
||||||
#: ../js/ui/components/autorunManager.js:619
|
#: ../js/ui/components/autorunManager.js:620
|
||||||
msgid "Eject"
|
msgid "Eject"
|
||||||
msgstr "Избаци"
|
msgstr "Избаци"
|
||||||
|
|
||||||
@ -1038,7 +1037,7 @@ msgstr "Подешавања датума и времена"
|
|||||||
#. Translators: This is the date format to use when the calendar popup is
|
#. 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").
|
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
|
||||||
#.
|
#.
|
||||||
#: ../js/ui/dateMenu.js:205
|
#: ../js/ui/dateMenu.js:215
|
||||||
msgid "%A %B %e, %Y"
|
msgid "%A %B %e, %Y"
|
||||||
msgstr "%A, %e. %b., %R"
|
msgstr "%A, %e. %b., %R"
|
||||||
|
|
||||||
@ -1213,7 +1212,6 @@ msgid "Remove"
|
|||||||
msgstr "Уклони"
|
msgstr "Уклони"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1501
|
#: ../js/ui/messageTray.js:1501
|
||||||
#| msgid "No Messages"
|
|
||||||
msgid "Clear Messages"
|
msgid "Clear Messages"
|
||||||
msgstr "Очисти поруке"
|
msgstr "Очисти поруке"
|
||||||
|
|
||||||
@ -1221,15 +1219,15 @@ msgstr "Очисти поруке"
|
|||||||
msgid "Notification Settings"
|
msgid "Notification Settings"
|
||||||
msgstr "Поставке обавештења"
|
msgstr "Поставке обавештења"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1707
|
#: ../js/ui/messageTray.js:1709
|
||||||
msgid "No Messages"
|
msgid "No Messages"
|
||||||
msgstr "Нема порука"
|
msgstr "Нема порука"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1787
|
#: ../js/ui/messageTray.js:1782
|
||||||
msgid "Message Tray"
|
msgid "Message Tray"
|
||||||
msgstr "Фиока порука"
|
msgstr "Фиока порука"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:2864
|
#: ../js/ui/messageTray.js:2810
|
||||||
msgid "System Information"
|
msgid "System Information"
|
||||||
msgstr "Подаци о систему"
|
msgstr "Подаци о систему"
|
||||||
|
|
||||||
@ -1238,7 +1236,7 @@ msgctxt "program"
|
|||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "Непознат"
|
msgstr "Непознат"
|
||||||
|
|
||||||
#: ../js/ui/overviewControls.js:460 ../js/ui/screenShield.js:153
|
#: ../js/ui/overviewControls.js:463 ../js/ui/screenShield.js:149
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d new message"
|
msgid "%d new message"
|
||||||
msgid_plural "%d new messages"
|
msgid_plural "%d new messages"
|
||||||
@ -1247,7 +1245,7 @@ msgstr[1] "%d нове поруке"
|
|||||||
msgstr[2] "%d нових порука"
|
msgstr[2] "%d нових порука"
|
||||||
msgstr[3] "Једна нова порука"
|
msgstr[3] "Једна нова порука"
|
||||||
|
|
||||||
#: ../js/ui/overview.js:82
|
#: ../js/ui/overview.js:84
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Опозови"
|
msgstr "Опозови"
|
||||||
|
|
||||||
@ -1259,22 +1257,21 @@ msgstr "Преглед"
|
|||||||
#. in the search entry when no search is
|
#. in the search entry when no search is
|
||||||
#. active; it should not exceed ~30
|
#. active; it should not exceed ~30
|
||||||
#. characters.
|
#. characters.
|
||||||
#: ../js/ui/overview.js:284
|
#: ../js/ui/overview.js:271
|
||||||
#| msgid "Type to search..."
|
|
||||||
msgid "Type to search…"
|
msgid "Type to search…"
|
||||||
msgstr "Упишите текст за претрагу…"
|
msgstr "Упишите текст за претрагу…"
|
||||||
|
|
||||||
#: ../js/ui/panel.js:613
|
#: ../js/ui/panel.js:612
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Изађи"
|
msgstr "Изађи"
|
||||||
|
|
||||||
#. Translators: If there is no suitable word for "Activities"
|
#. 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:642
|
#: ../js/ui/panel.js:636
|
||||||
msgid "Activities"
|
msgid "Activities"
|
||||||
msgstr "Активности"
|
msgstr "Активности"
|
||||||
|
|
||||||
#: ../js/ui/panel.js:983
|
#: ../js/ui/panel.js:933
|
||||||
msgid "Top Bar"
|
msgid "Top Bar"
|
||||||
msgstr "Горња трака"
|
msgstr "Горња трака"
|
||||||
|
|
||||||
@ -1287,21 +1284,21 @@ msgstr "Горња трака"
|
|||||||
msgid "toggle-switch-us"
|
msgid "toggle-switch-us"
|
||||||
msgstr "toggle-switch-intl"
|
msgstr "toggle-switch-intl"
|
||||||
|
|
||||||
#: ../js/ui/runDialog.js:205
|
#: ../js/ui/runDialog.js:73
|
||||||
msgid "Enter a Command"
|
msgid "Enter a Command"
|
||||||
msgstr "Унесите наредбу"
|
msgstr "Унесите наредбу"
|
||||||
|
|
||||||
#: ../js/ui/runDialog.js:241
|
#: ../js/ui/runDialog.js:109
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Затвори"
|
msgstr "Затвори"
|
||||||
|
|
||||||
#. Translators: This is a time format for a date in
|
#. Translators: This is a time format for a date in
|
||||||
#. long format
|
#. long format
|
||||||
#: ../js/ui/screenShield.js:90
|
#: ../js/ui/screenShield.js:86
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %d. %B"
|
msgstr "%A, %d. %B"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:155
|
#: ../js/ui/screenShield.js:151
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d new notification"
|
msgid "%d new notification"
|
||||||
msgid_plural "%d new notifications"
|
msgid_plural "%d new notifications"
|
||||||
@ -1310,11 +1307,11 @@ msgstr[1] "%d нова обавештења"
|
|||||||
msgstr[2] "%d нових обавештења"
|
msgstr[2] "%d нових обавештења"
|
||||||
msgstr[3] "Једно ново обавештење"
|
msgstr[3] "Једно ново обавештење"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:442 ../js/ui/userMenu.js:806
|
#: ../js/ui/screenShield.js:438 ../js/ui/userMenu.js:807
|
||||||
msgid "Lock"
|
msgid "Lock"
|
||||||
msgstr "Закључај"
|
msgstr "Закључај"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:639
|
#: ../js/ui/screenShield.js:640
|
||||||
msgid "GNOME needs to lock the screen"
|
msgid "GNOME needs to lock the screen"
|
||||||
msgstr "Гном мора да закључа екран"
|
msgstr "Гном мора да закључа екран"
|
||||||
|
|
||||||
@ -1325,21 +1322,19 @@ msgstr "Гном мора да закључа екран"
|
|||||||
#.
|
#.
|
||||||
#. XXX: another option is to kick the user into the gdm login
|
#. XXX: another option is to kick the user into the gdm login
|
||||||
#. screen, where we're not affected by grabs
|
#. screen, where we're not affected by grabs
|
||||||
#: ../js/ui/screenShield.js:758 ../js/ui/screenShield.js:1169
|
#: ../js/ui/screenShield.js:761 ../js/ui/screenShield.js:1197
|
||||||
#| msgid "Unable to connect to %s"
|
|
||||||
msgid "Unable to lock"
|
msgid "Unable to lock"
|
||||||
msgstr "Не могу да закључам"
|
msgstr "Не могу да закључам"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:759 ../js/ui/screenShield.js:1170
|
#: ../js/ui/screenShield.js:762 ../js/ui/screenShield.js:1198
|
||||||
msgid "Lock was blocked by an application"
|
msgid "Lock was blocked by an application"
|
||||||
msgstr "Неки програм је блокирао закључавање"
|
msgstr "Неки програм је блокирао закључавање"
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:431
|
#: ../js/ui/searchDisplay.js:453
|
||||||
#| msgid "Searching..."
|
|
||||||
msgid "Searching…"
|
msgid "Searching…"
|
||||||
msgstr "Тражим…"
|
msgstr "Тражим…"
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:475
|
#: ../js/ui/searchDisplay.js:497
|
||||||
msgid "No results."
|
msgid "No results."
|
||||||
msgstr "Нема одговарајућих резултата."
|
msgstr "Нема одговарајућих резултата."
|
||||||
|
|
||||||
@ -1351,11 +1346,11 @@ msgstr "Умножи"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "Убаци"
|
msgstr "Убаци"
|
||||||
|
|
||||||
#: ../js/ui/shellEntry.js:105
|
#: ../js/ui/shellEntry.js:106
|
||||||
msgid "Show Text"
|
msgid "Show Text"
|
||||||
msgstr "Прикажи текст"
|
msgstr "Прикажи текст"
|
||||||
|
|
||||||
#: ../js/ui/shellEntry.js:107
|
#: ../js/ui/shellEntry.js:108
|
||||||
msgid "Hide Text"
|
msgid "Hide Text"
|
||||||
msgstr "Сакриј текст"
|
msgstr "Сакриј текст"
|
||||||
|
|
||||||
@ -1367,7 +1362,7 @@ msgstr "Лозинка"
|
|||||||
msgid "Remember Password"
|
msgid "Remember Password"
|
||||||
msgstr "Запамти лозинку"
|
msgstr "Запамти лозинку"
|
||||||
|
|
||||||
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:140
|
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:113
|
||||||
msgid "Unlock"
|
msgid "Unlock"
|
||||||
msgstr "Откључај"
|
msgstr "Откључај"
|
||||||
|
|
||||||
@ -1431,12 +1426,10 @@ msgid "Visibility"
|
|||||||
msgstr "Видљивост"
|
msgstr "Видљивост"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:59
|
#: ../js/ui/status/bluetooth.js:59
|
||||||
#| msgid "Send Files to Device..."
|
|
||||||
msgid "Send Files to Device…"
|
msgid "Send Files to Device…"
|
||||||
msgstr "Пошаљи датотеке на уређај…"
|
msgstr "Пошаљи датотеке на уређај…"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:60
|
#: ../js/ui/status/bluetooth.js:60
|
||||||
#| msgid "Set Up a New Device..."
|
|
||||||
msgid "Set Up a New Device…"
|
msgid "Set Up a New Device…"
|
||||||
msgstr "Подеси нови уређај…"
|
msgstr "Подеси нови уређај…"
|
||||||
|
|
||||||
@ -1463,7 +1456,6 @@ msgid "connecting..."
|
|||||||
msgstr "повезујем се..."
|
msgstr "повезујем се..."
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:239
|
#: ../js/ui/status/bluetooth.js:239
|
||||||
#| msgid "Send Files..."
|
|
||||||
msgid "Send Files…"
|
msgid "Send Files…"
|
||||||
msgstr "Пошаљи датотеке…"
|
msgstr "Пошаљи датотеке…"
|
||||||
|
|
||||||
@ -1676,7 +1668,6 @@ msgstr "Подешавања напајања"
|
|||||||
#. 0 is reported when UPower does not have enough data
|
#. 0 is reported when UPower does not have enough data
|
||||||
#. to estimate battery life
|
#. to estimate battery life
|
||||||
#: ../js/ui/status/power.js:99
|
#: ../js/ui/status/power.js:99
|
||||||
#| msgid "Estimating..."
|
|
||||||
msgid "Estimating…"
|
msgid "Estimating…"
|
||||||
msgstr "Приближно…"
|
msgstr "Приближно…"
|
||||||
|
|
||||||
@ -1784,11 +1775,11 @@ msgstr "Јачина звука"
|
|||||||
msgid "Microphone"
|
msgid "Microphone"
|
||||||
msgstr "Микрофон"
|
msgstr "Микрофон"
|
||||||
|
|
||||||
#: ../js/ui/unlockDialog.js:151
|
#: ../js/ui/unlockDialog.js:124
|
||||||
msgid "Log in as another user"
|
msgid "Log in as another user"
|
||||||
msgstr "Пријавите се као други корсник"
|
msgstr "Пријавите се као други корсник"
|
||||||
|
|
||||||
#: ../js/ui/unlockDialog.js:177
|
#: ../js/ui/unlockDialog.js:145
|
||||||
msgid "Unlock Window"
|
msgid "Unlock Window"
|
||||||
msgstr "Откључај прозор"
|
msgstr "Откључај прозор"
|
||||||
|
|
||||||
@ -1816,27 +1807,27 @@ msgstr "Мирује"
|
|||||||
msgid "Offline"
|
msgid "Offline"
|
||||||
msgstr "Ван мреже"
|
msgstr "Ван мреже"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:780
|
#: ../js/ui/userMenu.js:781
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Обавештења"
|
msgstr "Обавештења"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:796
|
#: ../js/ui/userMenu.js:797
|
||||||
msgid "Switch User"
|
msgid "Switch User"
|
||||||
msgstr "Промени корисника"
|
msgstr "Промени корисника"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:801
|
#: ../js/ui/userMenu.js:802
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "Одјави ме"
|
msgstr "Одјави ме"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:821
|
#: ../js/ui/userMenu.js:822
|
||||||
msgid "Install Updates & Restart"
|
msgid "Install Updates & Restart"
|
||||||
msgstr "Инсталирај ажурирања и поново покрени"
|
msgstr "Инсталирај ажурирања и поново покрени"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:839
|
#: ../js/ui/userMenu.js:840
|
||||||
msgid "Your chat status will be set to busy"
|
msgid "Your chat status will be set to busy"
|
||||||
msgstr "Ваше стање ћаскања ће бити постављено на заузето"
|
msgstr "Ваше стање ћаскања ће бити постављено на заузето"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:840
|
#: ../js/ui/userMenu.js:841
|
||||||
msgid ""
|
msgid ""
|
||||||
"Notifications are now disabled, including chat messages. Your online status "
|
"Notifications are now disabled, including chat messages. Your online status "
|
||||||
"has been adjusted to let others know that you might not see their messages."
|
"has been adjusted to let others know that you might not see their messages."
|
||||||
@ -1845,20 +1836,22 @@ msgstr ""
|
|||||||
"мрежи је подешено тако да ће остали знати да ви не можете видети њихове "
|
"мрежи је подешено тако да ће остали знати да ви не можете видети њихове "
|
||||||
"поруке."
|
"поруке."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:886
|
#: ../js/ui/userMenu.js:888
|
||||||
msgid "Other users are logged in."
|
msgid "Other users are logged in."
|
||||||
msgstr "Други корисници су пријављени."
|
msgstr "Други корисници су пријављени."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:891
|
#: ../js/ui/userMenu.js:893
|
||||||
msgid "Shutting down might cause them to lose unsaved work."
|
msgid "Shutting down might cause them to lose unsaved work."
|
||||||
msgstr "Искључивање може да доведе до тога да изгубе несачувани рад."
|
msgstr "Искључивање може да доведе до тога да изгубе несачувани рад."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:918
|
#. Translators: Remote here refers to a remote session, like a ssh login
|
||||||
|
#: ../js/ui/userMenu.js:921
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (remote)"
|
msgid "%s (remote)"
|
||||||
msgstr "%s (удаљено)"
|
msgstr "%s (удаљено)"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:920
|
#. Translators: Console here refers to a tty like a VT console
|
||||||
|
#: ../js/ui/userMenu.js:924
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (console)"
|
msgid "%s (console)"
|
||||||
msgstr "%s (љуска)"
|
msgstr "%s (љуска)"
|
||||||
@ -1871,7 +1864,7 @@ msgstr "Програми"
|
|||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Тражи"
|
msgstr "Тражи"
|
||||||
|
|
||||||
#: ../js/ui/wanda.js:92
|
#: ../js/ui/wanda.js:77
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sorry, no wisdom for you today:\n"
|
"Sorry, no wisdom for you today:\n"
|
||||||
@ -1880,7 +1873,7 @@ msgstr ""
|
|||||||
"Извините, данас за вас нема мудрости:\n"
|
"Извините, данас за вас нема мудрости:\n"
|
||||||
"%s"
|
"%s"
|
||||||
|
|
||||||
#: ../js/ui/wanda.js:96
|
#: ../js/ui/wanda.js:81
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s the Oracle says"
|
msgid "%s the Oracle says"
|
||||||
msgstr "Пророк је рекао %s"
|
msgstr "Пророк је рекао %s"
|
||||||
|
163
po/sr@latin.po
163
po/sr@latin.po
@ -8,7 +8,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: gnome-shell master\n"
|
"Project-Id-Version: gnome-shell master\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||||
"shell&keywords=I18N+L10N&component=general\n"
|
"shell&keywords=I18N+L10N&component=general\n"
|
||||||
"POT-Creation-Date: 2013-03-04 08:38+0000\n"
|
"POT-Creation-Date: 2013-03-31 01:48+0000\n"
|
||||||
"PO-Revision-Date: 2013-03-08 20:26+0200\n"
|
"PO-Revision-Date: 2013-03-08 20:26+0200\n"
|
||||||
"Last-Translator: Miroslav Nikolić <miroslavnikolic@rocketmail.com>\n"
|
"Last-Translator: Miroslav Nikolić <miroslavnikolic@rocketmail.com>\n"
|
||||||
"Language-Team: Serbian <gnom@prevod.org>\n"
|
"Language-Team: Serbian <gnom@prevod.org>\n"
|
||||||
@ -16,8 +16,8 @@ msgstr ""
|
|||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : "
|
"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n"
|
||||||
"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||||
"X-Project-Style: gnome\n"
|
"X-Project-Style: gnome\n"
|
||||||
|
|
||||||
#: ../data/50-gnome-shell-screenshot.xml.in.h:1
|
#: ../data/50-gnome-shell-screenshot.xml.in.h:1
|
||||||
@ -365,53 +365,52 @@ msgid "Select an extension to configure using the combobox above."
|
|||||||
msgstr "Izaberite proširenje za podešavanje koristeći prozorče za izbor."
|
msgstr "Izaberite proširenje za podešavanje koristeći prozorče za izbor."
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:405
|
#: ../js/gdm/loginDialog.js:405
|
||||||
#| msgid "Session..."
|
|
||||||
msgid "Session…"
|
msgid "Session…"
|
||||||
msgstr "Sesija…"
|
msgstr "Sesija…"
|
||||||
|
|
||||||
#. translators: this message is shown below the user list on the
|
#. translators: this message is shown below the user list on the
|
||||||
#. login screen. It can be activated to reveal an entry for
|
#. login screen. It can be activated to reveal an entry for
|
||||||
#. manually entering the username.
|
#. manually entering the username.
|
||||||
#: ../js/gdm/loginDialog.js:629
|
#: ../js/gdm/loginDialog.js:630
|
||||||
msgid "Not listed?"
|
msgid "Not listed?"
|
||||||
msgstr "Nije na spisku?"
|
msgstr "Nije na spisku?"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:783 ../js/ui/components/networkAgent.js:137
|
#: ../js/gdm/loginDialog.js:786 ../js/ui/components/networkAgent.js:137
|
||||||
#: ../js/ui/components/polkitAgent.js:162 ../js/ui/endSessionDialog.js:375
|
#: ../js/ui/components/polkitAgent.js:162 ../js/ui/endSessionDialog.js:375
|
||||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||||
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:126
|
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:99
|
||||||
#: ../js/ui/userMenu.js:934
|
#: ../js/ui/userMenu.js:938
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Otkaži"
|
msgstr "Otkaži"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:799
|
#: ../js/gdm/loginDialog.js:802
|
||||||
msgctxt "button"
|
msgctxt "button"
|
||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr "Prijavi me"
|
msgstr "Prijavi me"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:799
|
#: ../js/gdm/loginDialog.js:802
|
||||||
msgid "Next"
|
msgid "Next"
|
||||||
msgstr "Dalje"
|
msgstr "Dalje"
|
||||||
|
|
||||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||||
#. is not visible here since we only care about phase2 authentication
|
#. 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:904 ../js/ui/components/networkAgent.js:260
|
#: ../js/gdm/loginDialog.js:917 ../js/ui/components/networkAgent.js:260
|
||||||
#: ../js/ui/components/networkAgent.js:278
|
#: ../js/ui/components/networkAgent.js:278
|
||||||
msgid "Username: "
|
msgid "Username: "
|
||||||
msgstr "Korisničko ime: "
|
msgstr "Korisničko ime: "
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:1157
|
#: ../js/gdm/loginDialog.js:1173
|
||||||
msgid "Login Window"
|
msgid "Login Window"
|
||||||
msgstr "Prozor za prijavljivanje"
|
msgstr "Prozor za prijavljivanje"
|
||||||
|
|
||||||
#. Translators: accessible name of the power menu in the login screen
|
#. Translators: accessible name of the power menu in the login screen
|
||||||
#: ../js/gdm/powerMenu.js:36
|
#: ../js/gdm/powerMenu.js:36
|
||||||
msgid "Power"
|
msgid "Power"
|
||||||
msgstr "Ugasi"
|
msgstr "Napajanje"
|
||||||
|
|
||||||
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:695 ../js/ui/userMenu.js:699
|
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:696 ../js/ui/userMenu.js:700
|
||||||
#: ../js/ui/userMenu.js:815
|
#: ../js/ui/userMenu.js:816
|
||||||
msgid "Suspend"
|
msgid "Suspend"
|
||||||
msgstr "Obustavi"
|
msgstr "Obustavi"
|
||||||
|
|
||||||
@ -419,58 +418,58 @@ msgstr "Obustavi"
|
|||||||
msgid "Restart"
|
msgid "Restart"
|
||||||
msgstr "Ponovo pokreni"
|
msgstr "Ponovo pokreni"
|
||||||
|
|
||||||
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:697
|
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:698
|
||||||
#: ../js/ui/userMenu.js:699 ../js/ui/userMenu.js:814 ../js/ui/userMenu.js:938
|
#: ../js/ui/userMenu.js:700 ../js/ui/userMenu.js:815 ../js/ui/userMenu.js:942
|
||||||
msgid "Power Off"
|
msgid "Power Off"
|
||||||
msgstr "Ugasi"
|
msgstr "Isključi"
|
||||||
|
|
||||||
#: ../js/gdm/util.js:182
|
#: ../js/gdm/util.js:249
|
||||||
msgid "Authentication error"
|
msgid "Authentication error"
|
||||||
msgstr "Greška potvrđivanja identiteta"
|
msgstr "Greška potvrđivanja identiteta"
|
||||||
|
|
||||||
#. Translators: this message is shown below the password entry field
|
#. Translators: this message is shown below the password entry field
|
||||||
#. to indicate the user can swipe their finger instead
|
#. to indicate the user can swipe their finger instead
|
||||||
#: ../js/gdm/util.js:299
|
#: ../js/gdm/util.js:366
|
||||||
msgid "(or swipe finger)"
|
msgid "(or swipe finger)"
|
||||||
msgstr "(ili lupite prst)"
|
msgstr "(ili lupite prst)"
|
||||||
|
|
||||||
#: ../js/gdm/util.js:324
|
#: ../js/gdm/util.js:391
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "(e.g., user or %s)"
|
msgid "(e.g., user or %s)"
|
||||||
msgstr "(npr., korisnik ili %s)"
|
msgstr "(npr., korisnik ili %s)"
|
||||||
|
|
||||||
#: ../js/misc/util.js:94
|
#: ../js/misc/util.js:97
|
||||||
msgid "Command not found"
|
msgid "Command not found"
|
||||||
msgstr "Naredba nije nađena"
|
msgstr "Naredba nije nađena"
|
||||||
|
|
||||||
#. Replace "Error invoking GLib.shell_parse_argv: " with
|
#. Replace "Error invoking GLib.shell_parse_argv: " with
|
||||||
#. something nicer
|
#. something nicer
|
||||||
#: ../js/misc/util.js:127
|
#: ../js/misc/util.js:130
|
||||||
msgid "Could not parse command:"
|
msgid "Could not parse command:"
|
||||||
msgstr "Ne mogu da obradim naredbu:"
|
msgstr "Ne mogu da obradim naredbu:"
|
||||||
|
|
||||||
#: ../js/misc/util.js:135
|
#: ../js/misc/util.js:138
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Execution of '%s' failed:"
|
msgid "Execution of '%s' failed:"
|
||||||
msgstr "Nije uspelo pokretanje „%s“:"
|
msgstr "Nije uspelo pokretanje „%s“:"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:348
|
#: ../js/ui/appDisplay.js:349
|
||||||
msgid "Frequent"
|
msgid "Frequent"
|
||||||
msgstr "Često"
|
msgstr "Često"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:355
|
#: ../js/ui/appDisplay.js:356
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Sve"
|
msgstr "Sve"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:913
|
#: ../js/ui/appDisplay.js:914
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "Novi prozor"
|
msgstr "Novi prozor"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:916 ../js/ui/dash.js:284
|
#: ../js/ui/appDisplay.js:917 ../js/ui/dash.js:284
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Ukloni iz omiljenih"
|
msgstr "Ukloni iz omiljenih"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:917
|
#: ../js/ui/appDisplay.js:918
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Dodaj u omiljene"
|
msgstr "Dodaj u omiljene"
|
||||||
|
|
||||||
@ -484,7 +483,7 @@ msgstr "„%s“ je dodat među omiljene."
|
|||||||
msgid "%s has been removed from your favorites."
|
msgid "%s has been removed from your favorites."
|
||||||
msgstr "„%s“ je uklonjen iz omiljenih."
|
msgstr "„%s“ je uklonjen iz omiljenih."
|
||||||
|
|
||||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:788
|
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:789
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Podešavanja"
|
msgstr "Podešavanja"
|
||||||
|
|
||||||
@ -507,7 +506,7 @@ msgctxt "event list time"
|
|||||||
msgid "%H\\u2236%M"
|
msgid "%H\\u2236%M"
|
||||||
msgstr "%H\\u2236%M"
|
msgstr "%H\\u2236%M"
|
||||||
|
|
||||||
#. Transators: Shown in calendar event list, if 12h format,
|
#. Translators: Shown in calendar event list, if 12h format,
|
||||||
#. \u2236 is a ratio character, similar to : and \u2009 is
|
#. \u2236 is a ratio character, similar to : and \u2009 is
|
||||||
#. a thin space
|
#. a thin space
|
||||||
#: ../js/ui/calendar.js:77
|
#: ../js/ui/calendar.js:77
|
||||||
@ -609,35 +608,35 @@ msgid "S"
|
|||||||
msgstr "Sub"
|
msgstr "Sub"
|
||||||
|
|
||||||
#. Translators: Text to show if there are no events
|
#. Translators: Text to show if there are no events
|
||||||
#: ../js/ui/calendar.js:692
|
#: ../js/ui/calendar.js:720
|
||||||
msgid "Nothing Scheduled"
|
msgid "Nothing Scheduled"
|
||||||
msgstr "Ništa planirano"
|
msgstr "Ništa planirano"
|
||||||
|
|
||||||
#. Translators: Shown on calendar heading when selected day occurs on current year
|
#. Translators: Shown on calendar heading when selected day occurs on current year
|
||||||
#: ../js/ui/calendar.js:708
|
#: ../js/ui/calendar.js:736
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %B %d"
|
msgstr "%A, %B %d"
|
||||||
|
|
||||||
#. Translators: Shown on calendar heading when selected day occurs on different year
|
#. Translators: Shown on calendar heading when selected day occurs on different year
|
||||||
#: ../js/ui/calendar.js:711
|
#: ../js/ui/calendar.js:739
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d, %Y"
|
msgid "%A, %B %d, %Y"
|
||||||
msgstr "%A, %B %d, %Y"
|
msgstr "%A, %B %d, %Y"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:721
|
#: ../js/ui/calendar.js:749
|
||||||
msgid "Today"
|
msgid "Today"
|
||||||
msgstr "Danas"
|
msgstr "Danas"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:725
|
#: ../js/ui/calendar.js:753
|
||||||
msgid "Tomorrow"
|
msgid "Tomorrow"
|
||||||
msgstr "Sutra"
|
msgstr "Sutra"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:736
|
#: ../js/ui/calendar.js:764
|
||||||
msgid "This week"
|
msgid "This week"
|
||||||
msgstr "Ove nedelje"
|
msgstr "Ove nedelje"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:744
|
#: ../js/ui/calendar.js:772
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr "Sledeće nedelje"
|
msgstr "Sledeće nedelje"
|
||||||
|
|
||||||
@ -653,12 +652,12 @@ msgstr "Spoljni uređaj je isključen"
|
|||||||
msgid "Removable Devices"
|
msgid "Removable Devices"
|
||||||
msgstr "Uklonjivi uređaji"
|
msgstr "Uklonjivi uređaji"
|
||||||
|
|
||||||
#: ../js/ui/components/autorunManager.js:593
|
#: ../js/ui/components/autorunManager.js:594
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Open with %s"
|
msgid "Open with %s"
|
||||||
msgstr "Otvori programom %s"
|
msgstr "Otvori programom %s"
|
||||||
|
|
||||||
#: ../js/ui/components/autorunManager.js:619
|
#: ../js/ui/components/autorunManager.js:620
|
||||||
msgid "Eject"
|
msgid "Eject"
|
||||||
msgstr "Izbaci"
|
msgstr "Izbaci"
|
||||||
|
|
||||||
@ -1038,7 +1037,7 @@ msgstr "Podešavanja datuma i vremena"
|
|||||||
#. Translators: This is the date format to use when the calendar popup is
|
#. 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").
|
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
|
||||||
#.
|
#.
|
||||||
#: ../js/ui/dateMenu.js:205
|
#: ../js/ui/dateMenu.js:215
|
||||||
msgid "%A %B %e, %Y"
|
msgid "%A %B %e, %Y"
|
||||||
msgstr "%A, %e. %b., %R"
|
msgstr "%A, %e. %b., %R"
|
||||||
|
|
||||||
@ -1213,7 +1212,6 @@ msgid "Remove"
|
|||||||
msgstr "Ukloni"
|
msgstr "Ukloni"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1501
|
#: ../js/ui/messageTray.js:1501
|
||||||
#| msgid "No Messages"
|
|
||||||
msgid "Clear Messages"
|
msgid "Clear Messages"
|
||||||
msgstr "Očisti poruke"
|
msgstr "Očisti poruke"
|
||||||
|
|
||||||
@ -1221,15 +1219,15 @@ msgstr "Očisti poruke"
|
|||||||
msgid "Notification Settings"
|
msgid "Notification Settings"
|
||||||
msgstr "Postavke obaveštenja"
|
msgstr "Postavke obaveštenja"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1707
|
#: ../js/ui/messageTray.js:1709
|
||||||
msgid "No Messages"
|
msgid "No Messages"
|
||||||
msgstr "Nema poruka"
|
msgstr "Nema poruka"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1787
|
#: ../js/ui/messageTray.js:1782
|
||||||
msgid "Message Tray"
|
msgid "Message Tray"
|
||||||
msgstr "Fioka poruka"
|
msgstr "Fioka poruka"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:2864
|
#: ../js/ui/messageTray.js:2810
|
||||||
msgid "System Information"
|
msgid "System Information"
|
||||||
msgstr "Podaci o sistemu"
|
msgstr "Podaci o sistemu"
|
||||||
|
|
||||||
@ -1238,7 +1236,7 @@ msgctxt "program"
|
|||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "Nepoznat"
|
msgstr "Nepoznat"
|
||||||
|
|
||||||
#: ../js/ui/overviewControls.js:460 ../js/ui/screenShield.js:153
|
#: ../js/ui/overviewControls.js:463 ../js/ui/screenShield.js:149
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d new message"
|
msgid "%d new message"
|
||||||
msgid_plural "%d new messages"
|
msgid_plural "%d new messages"
|
||||||
@ -1247,7 +1245,7 @@ msgstr[1] "%d nove poruke"
|
|||||||
msgstr[2] "%d novih poruka"
|
msgstr[2] "%d novih poruka"
|
||||||
msgstr[3] "Jedna nova poruka"
|
msgstr[3] "Jedna nova poruka"
|
||||||
|
|
||||||
#: ../js/ui/overview.js:82
|
#: ../js/ui/overview.js:84
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Opozovi"
|
msgstr "Opozovi"
|
||||||
|
|
||||||
@ -1259,22 +1257,21 @@ msgstr "Pregled"
|
|||||||
#. in the search entry when no search is
|
#. in the search entry when no search is
|
||||||
#. active; it should not exceed ~30
|
#. active; it should not exceed ~30
|
||||||
#. characters.
|
#. characters.
|
||||||
#: ../js/ui/overview.js:284
|
#: ../js/ui/overview.js:271
|
||||||
#| msgid "Type to search..."
|
|
||||||
msgid "Type to search…"
|
msgid "Type to search…"
|
||||||
msgstr "Upišite tekst za pretragu…"
|
msgstr "Upišite tekst za pretragu…"
|
||||||
|
|
||||||
#: ../js/ui/panel.js:613
|
#: ../js/ui/panel.js:612
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Izađi"
|
msgstr "Izađi"
|
||||||
|
|
||||||
#. Translators: If there is no suitable word for "Activities"
|
#. 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:642
|
#: ../js/ui/panel.js:636
|
||||||
msgid "Activities"
|
msgid "Activities"
|
||||||
msgstr "Aktivnosti"
|
msgstr "Aktivnosti"
|
||||||
|
|
||||||
#: ../js/ui/panel.js:983
|
#: ../js/ui/panel.js:933
|
||||||
msgid "Top Bar"
|
msgid "Top Bar"
|
||||||
msgstr "Gornja traka"
|
msgstr "Gornja traka"
|
||||||
|
|
||||||
@ -1287,21 +1284,21 @@ msgstr "Gornja traka"
|
|||||||
msgid "toggle-switch-us"
|
msgid "toggle-switch-us"
|
||||||
msgstr "toggle-switch-intl"
|
msgstr "toggle-switch-intl"
|
||||||
|
|
||||||
#: ../js/ui/runDialog.js:205
|
#: ../js/ui/runDialog.js:73
|
||||||
msgid "Enter a Command"
|
msgid "Enter a Command"
|
||||||
msgstr "Unesite naredbu"
|
msgstr "Unesite naredbu"
|
||||||
|
|
||||||
#: ../js/ui/runDialog.js:241
|
#: ../js/ui/runDialog.js:109
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Zatvori"
|
msgstr "Zatvori"
|
||||||
|
|
||||||
#. Translators: This is a time format for a date in
|
#. Translators: This is a time format for a date in
|
||||||
#. long format
|
#. long format
|
||||||
#: ../js/ui/screenShield.js:90
|
#: ../js/ui/screenShield.js:86
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %d. %B"
|
msgstr "%A, %d. %B"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:155
|
#: ../js/ui/screenShield.js:151
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d new notification"
|
msgid "%d new notification"
|
||||||
msgid_plural "%d new notifications"
|
msgid_plural "%d new notifications"
|
||||||
@ -1310,11 +1307,11 @@ msgstr[1] "%d nova obaveštenja"
|
|||||||
msgstr[2] "%d novih obaveštenja"
|
msgstr[2] "%d novih obaveštenja"
|
||||||
msgstr[3] "Jedno novo obaveštenje"
|
msgstr[3] "Jedno novo obaveštenje"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:442 ../js/ui/userMenu.js:806
|
#: ../js/ui/screenShield.js:438 ../js/ui/userMenu.js:807
|
||||||
msgid "Lock"
|
msgid "Lock"
|
||||||
msgstr "Zaključaj"
|
msgstr "Zaključaj"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:639
|
#: ../js/ui/screenShield.js:640
|
||||||
msgid "GNOME needs to lock the screen"
|
msgid "GNOME needs to lock the screen"
|
||||||
msgstr "Gnom mora da zaključa ekran"
|
msgstr "Gnom mora da zaključa ekran"
|
||||||
|
|
||||||
@ -1325,21 +1322,19 @@ msgstr "Gnom mora da zaključa ekran"
|
|||||||
#.
|
#.
|
||||||
#. XXX: another option is to kick the user into the gdm login
|
#. XXX: another option is to kick the user into the gdm login
|
||||||
#. screen, where we're not affected by grabs
|
#. screen, where we're not affected by grabs
|
||||||
#: ../js/ui/screenShield.js:758 ../js/ui/screenShield.js:1169
|
#: ../js/ui/screenShield.js:761 ../js/ui/screenShield.js:1197
|
||||||
#| msgid "Unable to connect to %s"
|
|
||||||
msgid "Unable to lock"
|
msgid "Unable to lock"
|
||||||
msgstr "Ne mogu da zaključam"
|
msgstr "Ne mogu da zaključam"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:759 ../js/ui/screenShield.js:1170
|
#: ../js/ui/screenShield.js:762 ../js/ui/screenShield.js:1198
|
||||||
msgid "Lock was blocked by an application"
|
msgid "Lock was blocked by an application"
|
||||||
msgstr "Neki program je blokirao zaključavanje"
|
msgstr "Neki program je blokirao zaključavanje"
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:431
|
#: ../js/ui/searchDisplay.js:453
|
||||||
#| msgid "Searching..."
|
|
||||||
msgid "Searching…"
|
msgid "Searching…"
|
||||||
msgstr "Tražim…"
|
msgstr "Tražim…"
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:475
|
#: ../js/ui/searchDisplay.js:497
|
||||||
msgid "No results."
|
msgid "No results."
|
||||||
msgstr "Nema odgovarajućih rezultata."
|
msgstr "Nema odgovarajućih rezultata."
|
||||||
|
|
||||||
@ -1351,11 +1346,11 @@ msgstr "Umnoži"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "Ubaci"
|
msgstr "Ubaci"
|
||||||
|
|
||||||
#: ../js/ui/shellEntry.js:105
|
#: ../js/ui/shellEntry.js:106
|
||||||
msgid "Show Text"
|
msgid "Show Text"
|
||||||
msgstr "Prikaži tekst"
|
msgstr "Prikaži tekst"
|
||||||
|
|
||||||
#: ../js/ui/shellEntry.js:107
|
#: ../js/ui/shellEntry.js:108
|
||||||
msgid "Hide Text"
|
msgid "Hide Text"
|
||||||
msgstr "Sakrij tekst"
|
msgstr "Sakrij tekst"
|
||||||
|
|
||||||
@ -1367,7 +1362,7 @@ msgstr "Lozinka"
|
|||||||
msgid "Remember Password"
|
msgid "Remember Password"
|
||||||
msgstr "Zapamti lozinku"
|
msgstr "Zapamti lozinku"
|
||||||
|
|
||||||
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:140
|
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:113
|
||||||
msgid "Unlock"
|
msgid "Unlock"
|
||||||
msgstr "Otključaj"
|
msgstr "Otključaj"
|
||||||
|
|
||||||
@ -1431,12 +1426,10 @@ msgid "Visibility"
|
|||||||
msgstr "Vidljivost"
|
msgstr "Vidljivost"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:59
|
#: ../js/ui/status/bluetooth.js:59
|
||||||
#| msgid "Send Files to Device..."
|
|
||||||
msgid "Send Files to Device…"
|
msgid "Send Files to Device…"
|
||||||
msgstr "Pošalji datoteke na uređaj…"
|
msgstr "Pošalji datoteke na uređaj…"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:60
|
#: ../js/ui/status/bluetooth.js:60
|
||||||
#| msgid "Set Up a New Device..."
|
|
||||||
msgid "Set Up a New Device…"
|
msgid "Set Up a New Device…"
|
||||||
msgstr "Podesi novi uređaj…"
|
msgstr "Podesi novi uređaj…"
|
||||||
|
|
||||||
@ -1463,7 +1456,6 @@ msgid "connecting..."
|
|||||||
msgstr "povezujem se..."
|
msgstr "povezujem se..."
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:239
|
#: ../js/ui/status/bluetooth.js:239
|
||||||
#| msgid "Send Files..."
|
|
||||||
msgid "Send Files…"
|
msgid "Send Files…"
|
||||||
msgstr "Pošalji datoteke…"
|
msgstr "Pošalji datoteke…"
|
||||||
|
|
||||||
@ -1676,7 +1668,6 @@ msgstr "Podešavanja napajanja"
|
|||||||
#. 0 is reported when UPower does not have enough data
|
#. 0 is reported when UPower does not have enough data
|
||||||
#. to estimate battery life
|
#. to estimate battery life
|
||||||
#: ../js/ui/status/power.js:99
|
#: ../js/ui/status/power.js:99
|
||||||
#| msgid "Estimating..."
|
|
||||||
msgid "Estimating…"
|
msgid "Estimating…"
|
||||||
msgstr "Približno…"
|
msgstr "Približno…"
|
||||||
|
|
||||||
@ -1784,11 +1775,11 @@ msgstr "Jačina zvuka"
|
|||||||
msgid "Microphone"
|
msgid "Microphone"
|
||||||
msgstr "Mikrofon"
|
msgstr "Mikrofon"
|
||||||
|
|
||||||
#: ../js/ui/unlockDialog.js:151
|
#: ../js/ui/unlockDialog.js:124
|
||||||
msgid "Log in as another user"
|
msgid "Log in as another user"
|
||||||
msgstr "Prijavite se kao drugi korsnik"
|
msgstr "Prijavite se kao drugi korsnik"
|
||||||
|
|
||||||
#: ../js/ui/unlockDialog.js:177
|
#: ../js/ui/unlockDialog.js:145
|
||||||
msgid "Unlock Window"
|
msgid "Unlock Window"
|
||||||
msgstr "Otključaj prozor"
|
msgstr "Otključaj prozor"
|
||||||
|
|
||||||
@ -1816,27 +1807,27 @@ msgstr "Miruje"
|
|||||||
msgid "Offline"
|
msgid "Offline"
|
||||||
msgstr "Van mreže"
|
msgstr "Van mreže"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:780
|
#: ../js/ui/userMenu.js:781
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Obaveštenja"
|
msgstr "Obaveštenja"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:796
|
#: ../js/ui/userMenu.js:797
|
||||||
msgid "Switch User"
|
msgid "Switch User"
|
||||||
msgstr "Promeni korisnika"
|
msgstr "Promeni korisnika"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:801
|
#: ../js/ui/userMenu.js:802
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "Odjavi me"
|
msgstr "Odjavi me"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:821
|
#: ../js/ui/userMenu.js:822
|
||||||
msgid "Install Updates & Restart"
|
msgid "Install Updates & Restart"
|
||||||
msgstr "Instaliraj ažuriranja i ponovo pokreni"
|
msgstr "Instaliraj ažuriranja i ponovo pokreni"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:839
|
#: ../js/ui/userMenu.js:840
|
||||||
msgid "Your chat status will be set to busy"
|
msgid "Your chat status will be set to busy"
|
||||||
msgstr "Vaše stanje ćaskanja će biti postavljeno na zauzeto"
|
msgstr "Vaše stanje ćaskanja će biti postavljeno na zauzeto"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:840
|
#: ../js/ui/userMenu.js:841
|
||||||
msgid ""
|
msgid ""
|
||||||
"Notifications are now disabled, including chat messages. Your online status "
|
"Notifications are now disabled, including chat messages. Your online status "
|
||||||
"has been adjusted to let others know that you might not see their messages."
|
"has been adjusted to let others know that you might not see their messages."
|
||||||
@ -1845,20 +1836,22 @@ msgstr ""
|
|||||||
"mreži je podešeno tako da će ostali znati da vi ne možete videti njihove "
|
"mreži je podešeno tako da će ostali znati da vi ne možete videti njihove "
|
||||||
"poruke."
|
"poruke."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:886
|
#: ../js/ui/userMenu.js:888
|
||||||
msgid "Other users are logged in."
|
msgid "Other users are logged in."
|
||||||
msgstr "Drugi korisnici su prijavljeni."
|
msgstr "Drugi korisnici su prijavljeni."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:891
|
#: ../js/ui/userMenu.js:893
|
||||||
msgid "Shutting down might cause them to lose unsaved work."
|
msgid "Shutting down might cause them to lose unsaved work."
|
||||||
msgstr "Isključivanje može da dovede do toga da izgube nesačuvani rad."
|
msgstr "Isključivanje može da dovede do toga da izgube nesačuvani rad."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:918
|
#. Translators: Remote here refers to a remote session, like a ssh login
|
||||||
|
#: ../js/ui/userMenu.js:921
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (remote)"
|
msgid "%s (remote)"
|
||||||
msgstr "%s (udaljeno)"
|
msgstr "%s (udaljeno)"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:920
|
#. Translators: Console here refers to a tty like a VT console
|
||||||
|
#: ../js/ui/userMenu.js:924
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (console)"
|
msgid "%s (console)"
|
||||||
msgstr "%s (ljuska)"
|
msgstr "%s (ljuska)"
|
||||||
@ -1871,7 +1864,7 @@ msgstr "Programi"
|
|||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Traži"
|
msgstr "Traži"
|
||||||
|
|
||||||
#: ../js/ui/wanda.js:92
|
#: ../js/ui/wanda.js:77
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sorry, no wisdom for you today:\n"
|
"Sorry, no wisdom for you today:\n"
|
||||||
@ -1880,7 +1873,7 @@ msgstr ""
|
|||||||
"Izvinite, danas za vas nema mudrosti:\n"
|
"Izvinite, danas za vas nema mudrosti:\n"
|
||||||
"%s"
|
"%s"
|
||||||
|
|
||||||
#: ../js/ui/wanda.js:96
|
#: ../js/ui/wanda.js:81
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s the Oracle says"
|
msgid "%s the Oracle says"
|
||||||
msgstr "Prorok je rekao %s"
|
msgstr "Prorok je rekao %s"
|
||||||
|
442
po/vi.po
442
po/vi.po
@ -1,18 +1,19 @@
|
|||||||
# Vietnamese translation for gnome-shell.
|
# Vietnamese translation for gnome-shell.
|
||||||
# Copyright (C) 2010 GNOME i18n Project for Vietnamese.
|
# Copyright (C) 2013 GNOME i18n Project for Vietnamese.
|
||||||
# This file is distributed under the same license as the gnome-shell package.
|
# 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.
|
# Nguyễn Thái Ngọc Duy <pclouds@gmail.com>, 2010-2013.
|
||||||
# Ngô Chin <ndtrung4419@gmail.com>, 2011.
|
# Ngô Chin <ndtrung4419@gmail.com>, 2011.
|
||||||
|
# Trần Ngọc Quân <vnwildman@gmail.com>, 2013.
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-shell\n"
|
"Project-Id-Version: gnome-shell\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||||
"shell&keywords=I18N+L10N&component=general\n"
|
"shell&keywords=I18N+L10N&component=general\n"
|
||||||
"POT-Creation-Date: 2013-03-02 23:02+0000\n"
|
"POT-Creation-Date: 2013-03-23 11:49+0000\n"
|
||||||
"PO-Revision-Date: 2013-03-03 11:13+0700\n"
|
"PO-Revision-Date: 2013-04-13 17:51+1000\n"
|
||||||
"Last-Translator: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\n"
|
"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
|
||||||
"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
|
"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
|
||||||
"Language: vi\n"
|
"Language: vi\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@ -49,7 +50,7 @@ msgstr "Mở trình đơn ứng dụng"
|
|||||||
|
|
||||||
#: ../data/gnome-shell.desktop.in.in.h:1
|
#: ../data/gnome-shell.desktop.in.in.h:1
|
||||||
msgid "GNOME Shell"
|
msgid "GNOME Shell"
|
||||||
msgstr "GNOME Shell"
|
msgstr "Hệ vỏ GNOME"
|
||||||
|
|
||||||
#: ../data/gnome-shell.desktop.in.in.h:2
|
#: ../data/gnome-shell.desktop.in.in.h:2
|
||||||
msgid "Window management and application launching"
|
msgid "Window management and application launching"
|
||||||
@ -58,11 +59,11 @@ msgstr "Quản lý cửa sổ và chạy ứng dụng"
|
|||||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
||||||
#: ../js/extensionPrefs/main.js:153
|
#: ../js/extensionPrefs/main.js:153
|
||||||
msgid "GNOME Shell Extension Preferences"
|
msgid "GNOME Shell Extension Preferences"
|
||||||
msgstr "Tuỳ thích phần mở rộng GNOME Shell"
|
msgstr "Cá nhân hóa phần mở rộng hệ vỏ GNOME"
|
||||||
|
|
||||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:2
|
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:2
|
||||||
msgid "Configure GNOME Shell Extensions"
|
msgid "Configure GNOME Shell Extensions"
|
||||||
msgstr "Cấu hình phần mở rộng GNOME Shell"
|
msgstr "Cấu hình phần mở rộng Hệ vỏ GNOME"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
|
||||||
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
||||||
@ -87,7 +88,7 @@ msgid ""
|
|||||||
"list. You can also manipulate this list with the EnableExtension and "
|
"list. You can also manipulate this list with the EnableExtension and "
|
||||||
"DisableExtension DBus methods on org.gnome.Shell."
|
"DisableExtension DBus methods on org.gnome.Shell."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Phần mở rộng GNOME Shell có thuộc tính uuid. Khoá này liệt kê danh sách phần "
|
"Phần mở rộng Hệ vỏ GNOME có thuộc tính uuid; khóa này liệt kê danh sách phần "
|
||||||
"mở rộng nên nạp. Bất kỳ phần mở rộng nào muốn nạp phải nằm trong danh sách "
|
"mở rộng nên nạp. Bất kỳ phần mở rộng nào muốn nạp phải nằm trong danh sách "
|
||||||
"này. Bạn có thể thao tác trên danh sách này với phương thức DBus "
|
"này. Bạn có thể thao tác trên danh sách này với phương thức DBus "
|
||||||
"EnableExtension và DisableExtension trên org.gnome.Shell."
|
"EnableExtension và DisableExtension trên org.gnome.Shell."
|
||||||
@ -120,13 +121,15 @@ msgstr ""
|
|||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:9
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:9
|
||||||
msgid "List of categories that should be displayed as folders"
|
msgid "List of categories that should be displayed as folders"
|
||||||
msgstr ""
|
msgstr "Liệt kê các các-ta-lốc mà nó có thể hiển thị như một thư mục"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:10
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:10
|
||||||
msgid ""
|
msgid ""
|
||||||
"Each category name in this list will be represented as folder in the "
|
"Each category name in this list will be represented as folder in the "
|
||||||
"application view, rather than being displayed inline in the main view."
|
"application view, rather than being displayed inline in the main view."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Mỗi tên các-ta-lốc trong danh sách này sẽ được xuất hiện như là một thư mục "
|
||||||
|
"trong trình bày ứng dụng, thay vì hiển thị cùng dòng trong trình bày chính. "
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:11
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:11
|
||||||
msgid "History for command (Alt-F2) dialog"
|
msgid "History for command (Alt-F2) dialog"
|
||||||
@ -154,18 +157,22 @@ msgstr ""
|
|||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
|
||||||
msgid "Always show the 'Log out' menuitem in the user menu."
|
msgid "Always show the 'Log out' menuitem in the user menu."
|
||||||
msgstr "Luôn hiện mục \"Đăng xuất\" trên trình đơn người dùng."
|
msgstr "Luôn hiện mục “Đăng xuất” trên trình đơn người dùng."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
|
||||||
msgid ""
|
msgid ""
|
||||||
"This key overrides the automatic hiding of the 'Log out' menuitem in single-"
|
"This key overrides the automatic hiding of the 'Log out' menuitem in single-"
|
||||||
"user, single-session situations."
|
"user, single-session situations."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Khóa này sẽ đè lên việc tự động ẩn trình đơn 'Đăng xuất' ở chế độ đơn-người-"
|
||||||
|
"dùng, đơn-phiên-làm-việc. "
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
|
||||||
msgid ""
|
msgid ""
|
||||||
"Whether to remember password for mounting encrypted or remote filesystems"
|
"Whether to remember password for mounting encrypted or remote filesystems"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Hoặc là ghi nhớ mật khẩu dành cho việc gắn hệ thống tập tin đã mã hóa hoặc "
|
||||||
|
"hệ thống tập tin trên máy chủ"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -174,6 +181,10 @@ msgid ""
|
|||||||
"'Remember Password' checkbox will be present. This key sets the default "
|
"'Remember Password' checkbox will be present. This key sets the default "
|
||||||
"state of the checkbox."
|
"state of the checkbox."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Hệ vỏ sẽ yêu cầu mật khẩu khi có thư mục được mã hóa hay hệ thống tập tin "
|
||||||
|
"máy mạng được gắn. Nếu mật khẩu có thể ghi lại để dùng trong lần sau, hộp "
|
||||||
|
"dấu kiểm “Nhớ mật khẩu” sẽ xuất hiện. Khóa này đặt trạng thái mặc định cho "
|
||||||
|
"hộp dấu kiểm."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||||
msgid "Show the week date in the calendar"
|
msgid "Show the week date in the calendar"
|
||||||
@ -226,27 +237,27 @@ msgstr "Phím chạy hoặc ngừng trình thu màn hình."
|
|||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||||
msgid "Which keyboard to use"
|
msgid "Which keyboard to use"
|
||||||
msgstr "Loại bàn phím cần dùng"
|
msgstr "Bàn phím cần dùng"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||||
msgid "The type of keyboard to use."
|
msgid "The type of keyboard to use."
|
||||||
msgstr "Loại bàn phím cần dùng."
|
msgstr "Kiểu bàn phím cần dùng."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||||
msgid "Framerate used for recording screencasts."
|
msgid "Framerate used for recording screencasts."
|
||||||
msgstr "Tốc độ khung dùng lưu screencast."
|
msgstr "Tốc độ khung hình sẽ dùng khi ghi screencast."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||||
msgid ""
|
msgid ""
|
||||||
"The framerate of the resulting screencast recordered by GNOME Shell's "
|
"The framerate of the resulting screencast recordered by GNOME Shell's "
|
||||||
"screencast recorder in frames-per-second."
|
"screencast recorder in frames-per-second."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Tốc độ khung của screencast lưu bởi bộ thu GNOME Shell theo số khung mỗi "
|
"Tốc độ khung hình của screencast được ghi bởi bộ thu Hệ vỏ GNOME tính theo "
|
||||||
"giây."
|
"số khung mỗi giây."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||||
msgid "The gstreamer pipeline used to encode the screencast"
|
msgid "The gstreamer pipeline used to encode the screencast"
|
||||||
msgstr "Ống dẫn gstreamer để thu screencast"
|
msgstr "Ống dẫn gstreamer dùng để thu screencast"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||||
#, no-c-format
|
#, no-c-format
|
||||||
@ -267,9 +278,9 @@ msgstr ""
|
|||||||
"source pad không kết nối; đầu ra từ pad sẽ được ghi vào tập tin kết quả. Tuy "
|
"source pad không kết nối; đầu ra từ pad sẽ được ghi vào tập tin kết quả. Tuy "
|
||||||
"nhiên ống dẫn có thể tự lưu đầu ra riêng - có thể hữu dụng để gửi kết quả "
|
"nhiên ống dẫn có thể tự lưu đầu ra riêng - có thể hữu dụng để gửi kết quả "
|
||||||
"đến máy chủ icecast thông qua shout2send hoặc tương tự. Nếu bỏ chọn hoặc đặt "
|
"đến máy chủ icecast thông qua shout2send hoặc tương tự. Nếu bỏ chọn hoặc đặt "
|
||||||
"giá trị rỗng, ống dẫn mặc định sẽ được dùng, hiện thời là 'vp8enc "
|
"giá trị rỗng, ống dẫn mặc định sẽ được dùng, hiện thời là “vp8enc "
|
||||||
"min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! "
|
"min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! "
|
||||||
"queue ! webmmux' và lưu ở dạng WEBM dùng VP8 codec. %T được dùng để thế chỗ "
|
"queue ! webmmux” và lưu ở dạng WEBM dùng VP8 codec. %T được dùng để thế chỗ "
|
||||||
"cho số thread dự đoán tối ưu cho hệ thống."
|
"cho số thread dự đoán tối ưu cho hệ thống."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||||
@ -296,25 +307,31 @@ msgid ""
|
|||||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||||
"only' (shows only the application icon) or 'both'."
|
"only' (shows only the application icon) or 'both'."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Cấu hình về cách hiển thị các cửa sổ ở bảng chuyển đổi. Các kiểu có thể là "
|
||||||
|
"'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:42
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||||
msgid "Attach modal dialog to the parent window"
|
msgid "Attach modal dialog to the parent window"
|
||||||
msgstr ""
|
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:43
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||||
msgid ""
|
msgid ""
|
||||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||||
msgstr ""
|
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:44
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
||||||
msgid "Arrangement of buttons on the titlebar"
|
msgid "Arrangement of buttons on the titlebar"
|
||||||
msgstr ""
|
msgstr "Sắp đặt các nút trên thanh tiêu đề"
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
||||||
msgid ""
|
msgid ""
|
||||||
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
||||||
"GNOME Shell."
|
"GNOME Shell."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Khóa này đè lên khóa có trong org.gnome.desktop.wm.preferences khi chạy hệ "
|
||||||
|
"vỏ GNOME."
|
||||||
|
|
||||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:46
|
#: ../data/org.gnome.shell.gschema.xml.in.in.h:46
|
||||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||||
@ -348,46 +365,46 @@ msgstr "Phiên làm việc…"
|
|||||||
#. translators: this message is shown below the user list on the
|
#. translators: this message is shown below the user list on the
|
||||||
#. login screen. It can be activated to reveal an entry for
|
#. login screen. It can be activated to reveal an entry for
|
||||||
#. manually entering the username.
|
#. manually entering the username.
|
||||||
#: ../js/gdm/loginDialog.js:629
|
#: ../js/gdm/loginDialog.js:630
|
||||||
msgid "Not listed?"
|
msgid "Not listed?"
|
||||||
msgstr "Không có trong danh sách?"
|
msgstr "Không có trong danh sách?"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:783 ../js/ui/components/networkAgent.js:137
|
#: ../js/gdm/loginDialog.js:786 ../js/ui/components/networkAgent.js:137
|
||||||
#: ../js/ui/components/polkitAgent.js:162 ../js/ui/endSessionDialog.js:375
|
#: ../js/ui/components/polkitAgent.js:162 ../js/ui/endSessionDialog.js:375
|
||||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||||
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:126
|
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:99
|
||||||
#: ../js/ui/userMenu.js:932
|
#: ../js/ui/userMenu.js:938
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Thôi"
|
msgstr "Thôi"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:799
|
#: ../js/gdm/loginDialog.js:802
|
||||||
msgctxt "button"
|
msgctxt "button"
|
||||||
msgid "Sign In"
|
msgid "Sign In"
|
||||||
msgstr "Đăng nhập"
|
msgstr "Đăng nhập"
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:799
|
#: ../js/gdm/loginDialog.js:802
|
||||||
msgid "Next"
|
msgid "Next"
|
||||||
msgstr "Tới"
|
msgstr "Kế tiếp"
|
||||||
|
|
||||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||||
#. is not visible here since we only care about phase2 authentication
|
#. 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:904 ../js/ui/components/networkAgent.js:260
|
#: ../js/gdm/loginDialog.js:917 ../js/ui/components/networkAgent.js:260
|
||||||
#: ../js/ui/components/networkAgent.js:278
|
#: ../js/ui/components/networkAgent.js:278
|
||||||
msgid "Username: "
|
msgid "Username: "
|
||||||
msgstr "Tên người dùng: "
|
msgstr "Tài khoản: "
|
||||||
|
|
||||||
#: ../js/gdm/loginDialog.js:1157
|
#: ../js/gdm/loginDialog.js:1173
|
||||||
msgid "Login Window"
|
msgid "Login Window"
|
||||||
msgstr "Cửa sổ đặt nhập"
|
msgstr "Cửa sổ đăng nhập"
|
||||||
|
|
||||||
#. Translators: accessible name of the power menu in the login screen
|
#. Translators: accessible name of the power menu in the login screen
|
||||||
#: ../js/gdm/powerMenu.js:36
|
#: ../js/gdm/powerMenu.js:36
|
||||||
msgid "Power"
|
msgid "Power"
|
||||||
msgstr "Nguồn"
|
msgstr "Nguồn"
|
||||||
|
|
||||||
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:694 ../js/ui/userMenu.js:698
|
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:696 ../js/ui/userMenu.js:700
|
||||||
#: ../js/ui/userMenu.js:814
|
#: ../js/ui/userMenu.js:816
|
||||||
msgid "Suspend"
|
msgid "Suspend"
|
||||||
msgstr "Ngưng"
|
msgstr "Ngưng"
|
||||||
|
|
||||||
@ -395,58 +412,58 @@ msgstr "Ngưng"
|
|||||||
msgid "Restart"
|
msgid "Restart"
|
||||||
msgstr "Khởi động lại"
|
msgstr "Khởi động lại"
|
||||||
|
|
||||||
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:696
|
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:698
|
||||||
#: ../js/ui/userMenu.js:698 ../js/ui/userMenu.js:813 ../js/ui/userMenu.js:936
|
#: ../js/ui/userMenu.js:700 ../js/ui/userMenu.js:815 ../js/ui/userMenu.js:942
|
||||||
msgid "Power Off"
|
msgid "Power Off"
|
||||||
msgstr "Tắt máy"
|
msgstr "Tắt máy"
|
||||||
|
|
||||||
#: ../js/gdm/util.js:182
|
#: ../js/gdm/util.js:249
|
||||||
msgid "Authentication error"
|
msgid "Authentication error"
|
||||||
msgstr "Lỗi xác thực"
|
msgstr "Lỗi xác thực"
|
||||||
|
|
||||||
#. Translators: this message is shown below the password entry field
|
#. Translators: this message is shown below the password entry field
|
||||||
#. to indicate the user can swipe their finger instead
|
#. to indicate the user can swipe their finger instead
|
||||||
#: ../js/gdm/util.js:299
|
#: ../js/gdm/util.js:366
|
||||||
msgid "(or swipe finger)"
|
msgid "(or swipe finger)"
|
||||||
msgstr "(hoặc quẹt ngón tay)"
|
msgstr "(hoặc quẹt ngón tay)"
|
||||||
|
|
||||||
#: ../js/gdm/util.js:324
|
#: ../js/gdm/util.js:391
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "(e.g., user or %s)"
|
msgid "(e.g., user or %s)"
|
||||||
msgstr "(ví dụ người dùng hoặc %s)"
|
msgstr "(ví dụ: tài khoản hoặc %s)"
|
||||||
|
|
||||||
#: ../js/misc/util.js:94
|
#: ../js/misc/util.js:97
|
||||||
msgid "Command not found"
|
msgid "Command not found"
|
||||||
msgstr "Không tìm thấy lệnh"
|
msgstr "Không tìm thấy lệnh"
|
||||||
|
|
||||||
#. Replace "Error invoking GLib.shell_parse_argv: " with
|
#. Replace "Error invoking GLib.shell_parse_argv: " with
|
||||||
#. something nicer
|
#. something nicer
|
||||||
#: ../js/misc/util.js:127
|
#: ../js/misc/util.js:130
|
||||||
msgid "Could not parse command:"
|
msgid "Could not parse command:"
|
||||||
msgstr "Không thể phân tích lệnh:"
|
msgstr "Không thể phân tích lệnh:"
|
||||||
|
|
||||||
#: ../js/misc/util.js:135
|
#: ../js/misc/util.js:138
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Execution of '%s' failed:"
|
msgid "Execution of '%s' failed:"
|
||||||
msgstr "Lỗi thực hiện '%s':"
|
msgstr "Lỗi thực hiện “%s”:"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:348
|
#: ../js/ui/appDisplay.js:349
|
||||||
msgid "Frequent"
|
msgid "Frequent"
|
||||||
msgstr "Thường dùng"
|
msgstr "Thường dùng"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:355
|
#: ../js/ui/appDisplay.js:356
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Tất cả"
|
msgstr "Tất cả"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:913
|
#: ../js/ui/appDisplay.js:914
|
||||||
msgid "New Window"
|
msgid "New Window"
|
||||||
msgstr "Cửa sổ mới"
|
msgstr "Cửa sổ mới"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:916 ../js/ui/dash.js:284
|
#: ../js/ui/appDisplay.js:917 ../js/ui/dash.js:284
|
||||||
msgid "Remove from Favorites"
|
msgid "Remove from Favorites"
|
||||||
msgstr "Bỏ đánh dấu ưa thích"
|
msgstr "Bỏ đánh dấu ưa thích"
|
||||||
|
|
||||||
#: ../js/ui/appDisplay.js:917
|
#: ../js/ui/appDisplay.js:918
|
||||||
msgid "Add to Favorites"
|
msgid "Add to Favorites"
|
||||||
msgstr "Đánh dấu ưa thích"
|
msgstr "Đánh dấu ưa thích"
|
||||||
|
|
||||||
@ -460,13 +477,13 @@ msgstr "Đã được đánh dấu ưa thích cho %s."
|
|||||||
msgid "%s has been removed from your favorites."
|
msgid "%s has been removed from your favorites."
|
||||||
msgstr "Đã bỏ đánh dấu ưa thích cho %s"
|
msgstr "Đã bỏ đánh dấu ưa thích cho %s"
|
||||||
|
|
||||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:787
|
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:789
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Thiết lập"
|
msgstr "Cài đặt"
|
||||||
|
|
||||||
#: ../js/ui/backgroundMenu.js:21
|
#: ../js/ui/backgroundMenu.js:21
|
||||||
msgid "Change Background…"
|
msgid "Change Background…"
|
||||||
msgstr "Thay đổi nền…"
|
msgstr "Đổi ảnh nền…"
|
||||||
|
|
||||||
#. Translators: Shown in calendar event list for all day events
|
#. Translators: Shown in calendar event list for all day events
|
||||||
#. * Keep it short, best if you can use less then 10 characters
|
#. * Keep it short, best if you can use less then 10 characters
|
||||||
@ -585,35 +602,35 @@ msgid "S"
|
|||||||
msgstr "T7"
|
msgstr "T7"
|
||||||
|
|
||||||
#. Translators: Text to show if there are no events
|
#. Translators: Text to show if there are no events
|
||||||
#: ../js/ui/calendar.js:692
|
#: ../js/ui/calendar.js:720
|
||||||
msgid "Nothing Scheduled"
|
msgid "Nothing Scheduled"
|
||||||
msgstr "Không có lịch hẹn"
|
msgstr "Không có lịch hẹn"
|
||||||
|
|
||||||
#. Translators: Shown on calendar heading when selected day occurs on current year
|
#. Translators: Shown on calendar heading when selected day occurs on current year
|
||||||
#: ../js/ui/calendar.js:708
|
#: ../js/ui/calendar.js:736
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %d %B"
|
msgstr "%A, %d %B"
|
||||||
|
|
||||||
#. Translators: Shown on calendar heading when selected day occurs on different year
|
#. Translators: Shown on calendar heading when selected day occurs on different year
|
||||||
#: ../js/ui/calendar.js:711
|
#: ../js/ui/calendar.js:739
|
||||||
msgctxt "calendar heading"
|
msgctxt "calendar heading"
|
||||||
msgid "%A, %B %d, %Y"
|
msgid "%A, %B %d, %Y"
|
||||||
msgstr "%A, %d %B %Y"
|
msgstr "%A, %d %B %Y"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:721
|
#: ../js/ui/calendar.js:749
|
||||||
msgid "Today"
|
msgid "Today"
|
||||||
msgstr "Hôm nay"
|
msgstr "Hôm nay"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:725
|
#: ../js/ui/calendar.js:753
|
||||||
msgid "Tomorrow"
|
msgid "Tomorrow"
|
||||||
msgstr "Ngày mai"
|
msgstr "Ngày mai"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:736
|
#: ../js/ui/calendar.js:764
|
||||||
msgid "This week"
|
msgid "This week"
|
||||||
msgstr "Tuần này"
|
msgstr "Tuần này"
|
||||||
|
|
||||||
#: ../js/ui/calendar.js:744
|
#: ../js/ui/calendar.js:772
|
||||||
msgid "Next week"
|
msgid "Next week"
|
||||||
msgstr "Tuần tới"
|
msgstr "Tuần tới"
|
||||||
|
|
||||||
@ -629,12 +646,12 @@ msgstr "Ổ ngoài đã ngắt kết nối"
|
|||||||
msgid "Removable Devices"
|
msgid "Removable Devices"
|
||||||
msgstr "Thiết bị di động"
|
msgstr "Thiết bị di động"
|
||||||
|
|
||||||
#: ../js/ui/components/autorunManager.js:593
|
#: ../js/ui/components/autorunManager.js:594
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Open with %s"
|
msgid "Open with %s"
|
||||||
msgstr "Mở bằng %s"
|
msgstr "Mở bằng %s"
|
||||||
|
|
||||||
#: ../js/ui/components/autorunManager.js:619
|
#: ../js/ui/components/autorunManager.js:620
|
||||||
msgid "Eject"
|
msgid "Eject"
|
||||||
msgstr "Đẩy ra"
|
msgstr "Đẩy ra"
|
||||||
|
|
||||||
@ -685,7 +702,7 @@ msgstr "Mạng không dây cần xác thực"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Passwords or encryption keys are required to access the wireless network "
|
"Passwords or encryption keys are required to access the wireless network "
|
||||||
"'%s'."
|
"'%s'."
|
||||||
msgstr "Cần mật mã hoặc khoá mã để truy cập mạng không dây '%s'"
|
msgstr "Cần mật mã hoặc khoá mã để truy cập mạng không dây “%s”"
|
||||||
|
|
||||||
#: ../js/ui/components/networkAgent.js:314
|
#: ../js/ui/components/networkAgent.js:314
|
||||||
msgid "Wired 802.1X authentication"
|
msgid "Wired 802.1X authentication"
|
||||||
@ -718,7 +735,7 @@ msgstr "Mật khẩu mạng băng thông rộng"
|
|||||||
#: ../js/ui/components/networkAgent.js:337
|
#: ../js/ui/components/networkAgent.js:337
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "A password is required to connect to '%s'."
|
msgid "A password is required to connect to '%s'."
|
||||||
msgstr "Cần mật khẩu để kết nối đến '%s'."
|
msgstr "Cần mật khẩu để kết nối đến “%s”."
|
||||||
|
|
||||||
#: ../js/ui/components/polkitAgent.js:55
|
#: ../js/ui/components/polkitAgent.js:55
|
||||||
msgid "Authentication Required"
|
msgid "Authentication Required"
|
||||||
@ -772,7 +789,7 @@ msgstr "Ngừng im lặng"
|
|||||||
|
|
||||||
#: ../js/ui/components/telepathyClient.js:480
|
#: ../js/ui/components/telepathyClient.js:480
|
||||||
msgid "Mute"
|
msgid "Mute"
|
||||||
msgstr "Im lặng"
|
msgstr "Câm"
|
||||||
|
|
||||||
#. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30"
|
#. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30"
|
||||||
#: ../js/ui/components/telepathyClient.js:942
|
#: ../js/ui/components/telepathyClient.js:942
|
||||||
@ -983,7 +1000,7 @@ msgstr "Xem tài khoản"
|
|||||||
msgid "Unknown reason"
|
msgid "Unknown reason"
|
||||||
msgstr "Lý do không biết"
|
msgstr "Lý do không biết"
|
||||||
|
|
||||||
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:97
|
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:96
|
||||||
msgid "Windows"
|
msgid "Windows"
|
||||||
msgstr "Cửa sổ"
|
msgstr "Cửa sổ"
|
||||||
|
|
||||||
@ -1012,7 +1029,7 @@ msgstr "Thiết lập ngày giờ"
|
|||||||
#. Translators: This is the date format to use when the calendar popup is
|
#. 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").
|
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
|
||||||
#.
|
#.
|
||||||
#: ../js/ui/dateMenu.js:205
|
#: ../js/ui/dateMenu.js:215
|
||||||
msgid "%A %B %e, %Y"
|
msgid "%A %B %e, %Y"
|
||||||
msgstr "%A %e %B, %Y"
|
msgstr "%A %e %B, %Y"
|
||||||
|
|
||||||
@ -1108,7 +1125,7 @@ msgstr "Cài đặt"
|
|||||||
#: ../js/ui/extensionDownloader.js:204
|
#: ../js/ui/extensionDownloader.js:204
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Download and install '%s' from extensions.gnome.org?"
|
msgid "Download and install '%s' from extensions.gnome.org?"
|
||||||
msgstr "Tải và cài đặt '%s' từ extensions.gnome.org chứ?"
|
msgstr "Tải và cài đặt “%s” từ extensions.gnome.org chứ?"
|
||||||
|
|
||||||
#: ../js/ui/keyboard.js:619 ../js/ui/status/keyboard.js:314
|
#: ../js/ui/keyboard.js:619 ../js/ui/status/keyboard.js:314
|
||||||
#: ../js/ui/status/power.js:211
|
#: ../js/ui/status/power.js:211
|
||||||
@ -1137,9 +1154,7 @@ msgstr "Hiện lỗi"
|
|||||||
msgid "Enabled"
|
msgid "Enabled"
|
||||||
msgstr "Bật"
|
msgstr "Bật"
|
||||||
|
|
||||||
#. translators:
|
#: ../js/ui/lookingGlass.js:769
|
||||||
#. * The device has been disabled
|
|
||||||
#: ../js/ui/lookingGlass.js:769 ../src/gvc/gvc-mixer-control.c:1830
|
|
||||||
msgid "Disabled"
|
msgid "Disabled"
|
||||||
msgstr "Tắt"
|
msgstr "Tắt"
|
||||||
|
|
||||||
@ -1179,15 +1194,15 @@ msgstr "Xoá thông báo"
|
|||||||
msgid "Notification Settings"
|
msgid "Notification Settings"
|
||||||
msgstr "Thiết lập thông báo"
|
msgstr "Thiết lập thông báo"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1707
|
#: ../js/ui/messageTray.js:1709
|
||||||
msgid "No Messages"
|
msgid "No Messages"
|
||||||
msgstr "Không có thông báo"
|
msgstr "Không có thông báo"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:1787
|
#: ../js/ui/messageTray.js:1782
|
||||||
msgid "Message Tray"
|
msgid "Message Tray"
|
||||||
msgstr "Khay thông báo"
|
msgstr "Khay thông báo"
|
||||||
|
|
||||||
#: ../js/ui/messageTray.js:2864
|
#: ../js/ui/messageTray.js:2810
|
||||||
msgid "System Information"
|
msgid "System Information"
|
||||||
msgstr "Thông tin hệ thống"
|
msgstr "Thông tin hệ thống"
|
||||||
|
|
||||||
@ -1196,13 +1211,13 @@ msgctxt "program"
|
|||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "Không biết"
|
msgstr "Không biết"
|
||||||
|
|
||||||
#: ../js/ui/overviewControls.js:460 ../js/ui/screenShield.js:153
|
#: ../js/ui/overviewControls.js:463 ../js/ui/screenShield.js:149
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d new message"
|
msgid "%d new message"
|
||||||
msgid_plural "%d new messages"
|
msgid_plural "%d new messages"
|
||||||
msgstr[0] "%d tin nhắn mới"
|
msgstr[0] "%d tin nhắn mới"
|
||||||
|
|
||||||
#: ../js/ui/overview.js:82
|
#: ../js/ui/overview.js:84
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Hoàn lại"
|
msgstr "Hoàn lại"
|
||||||
|
|
||||||
@ -1214,21 +1229,21 @@ msgstr "Tổng quan"
|
|||||||
#. in the search entry when no search is
|
#. in the search entry when no search is
|
||||||
#. active; it should not exceed ~30
|
#. active; it should not exceed ~30
|
||||||
#. characters.
|
#. characters.
|
||||||
#: ../js/ui/overview.js:284
|
#: ../js/ui/overview.js:271
|
||||||
msgid "Type to search…"
|
msgid "Type to search…"
|
||||||
msgstr "Nhập để tìm…"
|
msgstr "Nhập để tìm…"
|
||||||
|
|
||||||
#: ../js/ui/panel.js:613
|
#: ../js/ui/panel.js:612
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Thoát"
|
msgstr "Thoát"
|
||||||
|
|
||||||
#. Translators: If there is no suitable word for "Activities"
|
#. 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:642
|
#: ../js/ui/panel.js:636
|
||||||
msgid "Activities"
|
msgid "Activities"
|
||||||
msgstr "Hoạt động"
|
msgstr "Hoạt động"
|
||||||
|
|
||||||
#: ../js/ui/panel.js:983
|
#: ../js/ui/panel.js:933
|
||||||
msgid "Top Bar"
|
msgid "Top Bar"
|
||||||
msgstr "Thanh đỉnh"
|
msgstr "Thanh đỉnh"
|
||||||
|
|
||||||
@ -1241,31 +1256,31 @@ msgstr "Thanh đỉnh"
|
|||||||
msgid "toggle-switch-us"
|
msgid "toggle-switch-us"
|
||||||
msgstr "toggle-switch-intl"
|
msgstr "toggle-switch-intl"
|
||||||
|
|
||||||
#: ../js/ui/runDialog.js:205
|
#: ../js/ui/runDialog.js:73
|
||||||
msgid "Enter a Command"
|
msgid "Enter a Command"
|
||||||
msgstr "Nhập lệnh"
|
msgstr "Nhập lệnh"
|
||||||
|
|
||||||
#: ../js/ui/runDialog.js:241
|
#: ../js/ui/runDialog.js:109
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Đóng"
|
msgstr "Đóng"
|
||||||
|
|
||||||
#. Translators: This is a time format for a date in
|
#. Translators: This is a time format for a date in
|
||||||
#. long format
|
#. long format
|
||||||
#: ../js/ui/screenShield.js:90
|
#: ../js/ui/screenShield.js:86
|
||||||
msgid "%A, %B %d"
|
msgid "%A, %B %d"
|
||||||
msgstr "%A, %d %B"
|
msgstr "%A, %d %B"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:155
|
#: ../js/ui/screenShield.js:151
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d new notification"
|
msgid "%d new notification"
|
||||||
msgid_plural "%d new notifications"
|
msgid_plural "%d new notifications"
|
||||||
msgstr[0] "%d thông báo mới"
|
msgstr[0] "%d thông báo mới"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:442 ../js/ui/userMenu.js:805
|
#: ../js/ui/screenShield.js:438 ../js/ui/userMenu.js:807
|
||||||
msgid "Lock"
|
msgid "Lock"
|
||||||
msgstr "Khoá"
|
msgstr "Khoá"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:639
|
#: ../js/ui/screenShield.js:637
|
||||||
msgid "GNOME needs to lock the screen"
|
msgid "GNOME needs to lock the screen"
|
||||||
msgstr "GNOME cần khoá màn hình"
|
msgstr "GNOME cần khoá màn hình"
|
||||||
|
|
||||||
@ -1276,19 +1291,19 @@ msgstr "GNOME cần khoá màn hình"
|
|||||||
#.
|
#.
|
||||||
#. XXX: another option is to kick the user into the gdm login
|
#. XXX: another option is to kick the user into the gdm login
|
||||||
#. screen, where we're not affected by grabs
|
#. screen, where we're not affected by grabs
|
||||||
#: ../js/ui/screenShield.js:758 ../js/ui/screenShield.js:1169
|
#: ../js/ui/screenShield.js:758 ../js/ui/screenShield.js:1194
|
||||||
msgid "Unable to lock"
|
msgid "Unable to lock"
|
||||||
msgstr "Không thể khoá"
|
msgstr "Không thể khoá"
|
||||||
|
|
||||||
#: ../js/ui/screenShield.js:759 ../js/ui/screenShield.js:1170
|
#: ../js/ui/screenShield.js:759 ../js/ui/screenShield.js:1195
|
||||||
msgid "Lock was blocked by an application"
|
msgid "Lock was blocked by an application"
|
||||||
msgstr "Một ứng dụng đã ngăn cản khoá"
|
msgstr "Một ứng dụng đã ngăn cản khoá"
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:431
|
#: ../js/ui/searchDisplay.js:453
|
||||||
msgid "Searching…"
|
msgid "Searching…"
|
||||||
msgstr "Đang tìm…"
|
msgstr "Đang tìm…"
|
||||||
|
|
||||||
#: ../js/ui/searchDisplay.js:475
|
#: ../js/ui/searchDisplay.js:497
|
||||||
msgid "No results."
|
msgid "No results."
|
||||||
msgstr "Không có kết quả."
|
msgstr "Không có kết quả."
|
||||||
|
|
||||||
@ -1300,11 +1315,11 @@ msgstr "Chép"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "Dán"
|
msgstr "Dán"
|
||||||
|
|
||||||
#: ../js/ui/shellEntry.js:105
|
#: ../js/ui/shellEntry.js:106
|
||||||
msgid "Show Text"
|
msgid "Show Text"
|
||||||
msgstr "Hiện chữ"
|
msgstr "Hiện chữ"
|
||||||
|
|
||||||
#: ../js/ui/shellEntry.js:107
|
#: ../js/ui/shellEntry.js:108
|
||||||
msgid "Hide Text"
|
msgid "Hide Text"
|
||||||
msgstr "Ẩn chữ"
|
msgstr "Ẩn chữ"
|
||||||
|
|
||||||
@ -1316,7 +1331,7 @@ msgstr "Mật khẩu"
|
|||||||
msgid "Remember Password"
|
msgid "Remember Password"
|
||||||
msgstr "Nhớ mật khẩu"
|
msgstr "Nhớ mật khẩu"
|
||||||
|
|
||||||
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:140
|
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:113
|
||||||
msgid "Unlock"
|
msgid "Unlock"
|
||||||
msgstr "Bỏ khoá"
|
msgstr "Bỏ khoá"
|
||||||
|
|
||||||
@ -1433,7 +1448,7 @@ msgstr "Yêu cầu cấp quyền từ %s"
|
|||||||
#: ../js/ui/status/bluetooth.js:328
|
#: ../js/ui/status/bluetooth.js:328
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Device %s wants access to the service '%s'"
|
msgid "Device %s wants access to the service '%s'"
|
||||||
msgstr "Thiết bị %s muốn truy cập dịch vụ '%s'"
|
msgstr "Thiết bị %s muốn truy cập dịch vụ “%s”"
|
||||||
|
|
||||||
#: ../js/ui/status/bluetooth.js:330
|
#: ../js/ui/status/bluetooth.js:330
|
||||||
msgid "Always grant access"
|
msgid "Always grant access"
|
||||||
@ -1461,7 +1476,7 @@ msgstr "Thiết bị %s muốn kết nối với máy tính này"
|
|||||||
#: ../js/ui/status/bluetooth.js:366
|
#: ../js/ui/status/bluetooth.js:366
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Please confirm whether the PIN '%06d' matches the one on the device."
|
msgid "Please confirm whether the PIN '%06d' matches the one on the device."
|
||||||
msgstr "Vui lòng xác nhận PIN '%06d' khớp với số trên thiết bị."
|
msgstr "Vui lòng xác nhận PIN “%06d” khớp với số trên thiết bị."
|
||||||
|
|
||||||
#. Translators: this is the verb, not the noun
|
#. Translators: this is the verb, not the noun
|
||||||
#: ../js/ui/status/bluetooth.js:369
|
#: ../js/ui/status/bluetooth.js:369
|
||||||
@ -1717,59 +1732,59 @@ msgstr "Âm lượng"
|
|||||||
msgid "Microphone"
|
msgid "Microphone"
|
||||||
msgstr "Micrô"
|
msgstr "Micrô"
|
||||||
|
|
||||||
#: ../js/ui/unlockDialog.js:151
|
#: ../js/ui/unlockDialog.js:124
|
||||||
msgid "Log in as another user"
|
msgid "Log in as another user"
|
||||||
msgstr "Đăng nhập người dùng khác"
|
msgstr "Đăng nhập người dùng khác"
|
||||||
|
|
||||||
#: ../js/ui/unlockDialog.js:177
|
#: ../js/ui/unlockDialog.js:145
|
||||||
msgid "Unlock Window"
|
msgid "Unlock Window"
|
||||||
msgstr "Bỏ khoá cửa sổ"
|
msgstr "Bỏ khoá cửa sổ"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:192
|
#: ../js/ui/userMenu.js:193
|
||||||
msgid "Available"
|
msgid "Available"
|
||||||
msgstr "Có mặt"
|
msgstr "Có mặt"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:195
|
#: ../js/ui/userMenu.js:196
|
||||||
msgid "Busy"
|
msgid "Busy"
|
||||||
msgstr "Bận"
|
msgstr "Bận"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:198
|
#: ../js/ui/userMenu.js:199
|
||||||
msgid "Invisible"
|
msgid "Invisible"
|
||||||
msgstr "Giấu mặt"
|
msgstr "Giấu mặt"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:201
|
#: ../js/ui/userMenu.js:202
|
||||||
msgid "Away"
|
msgid "Away"
|
||||||
msgstr "Vắng mặt"
|
msgstr "Vắng mặt"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:204
|
#: ../js/ui/userMenu.js:205
|
||||||
msgid "Idle"
|
msgid "Idle"
|
||||||
msgstr "Nhàn rỗi"
|
msgstr "Nhàn rỗi"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:207
|
#: ../js/ui/userMenu.js:208
|
||||||
msgid "Offline"
|
msgid "Offline"
|
||||||
msgstr "Ngoại tuyến"
|
msgstr "Ngoại tuyến"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:779
|
#: ../js/ui/userMenu.js:781
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Thông báo"
|
msgstr "Thông báo"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:795
|
#: ../js/ui/userMenu.js:797
|
||||||
msgid "Switch User"
|
msgid "Switch User"
|
||||||
msgstr "Chuyển người dùng"
|
msgstr "Chuyển người dùng"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:800
|
#: ../js/ui/userMenu.js:802
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "Đăng xuất"
|
msgstr "Đăng xuất"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:820
|
#: ../js/ui/userMenu.js:822
|
||||||
msgid "Install Updates & Restart"
|
msgid "Install Updates & Restart"
|
||||||
msgstr "Cài đặt bản cập nhật và khởi động lại"
|
msgstr "Cài đặt bản cập nhật và khởi động lại"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:838
|
#: ../js/ui/userMenu.js:840
|
||||||
msgid "Your chat status will be set to busy"
|
msgid "Your chat status will be set to busy"
|
||||||
msgstr "Trạng thái nhắn tin của bạn sẽ được đặt là bận"
|
msgstr "Trạng thái nhắn tin của bạn sẽ được đặt là bận"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:839
|
#: ../js/ui/userMenu.js:841
|
||||||
msgid ""
|
msgid ""
|
||||||
"Notifications are now disabled, including chat messages. Your online status "
|
"Notifications are now disabled, including chat messages. Your online status "
|
||||||
"has been adjusted to let others know that you might not see their messages."
|
"has been adjusted to let others know that you might not see their messages."
|
||||||
@ -1777,33 +1792,35 @@ msgstr ""
|
|||||||
"Thông báo đã bị tắt, bao gồm tin nhắn. Trạng thái trực tuyến của bạn đã được "
|
"Thông báo đã bị tắt, bao gồm tin nhắn. Trạng thái trực tuyến của bạn đã được "
|
||||||
"điều chỉnh để mọi người biết bạn sẽ không xem tin nhắn họ gửi đến."
|
"điều chỉnh để mọi người biết bạn sẽ không xem tin nhắn họ gửi đến."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:885
|
#: ../js/ui/userMenu.js:888
|
||||||
msgid "Other users are logged in."
|
msgid "Other users are logged in."
|
||||||
msgstr "Người dùng khác đang đăng nhập."
|
msgstr "Người dùng khác đang đăng nhập."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:890
|
#: ../js/ui/userMenu.js:893
|
||||||
msgid "Shutting down might cause them to lose unsaved work."
|
msgid "Shutting down might cause them to lose unsaved work."
|
||||||
msgstr "Tắt sẽ làm mất những kết quả chưa được lưu."
|
msgstr "Tắt sẽ làm mất những kết quả chưa được lưu."
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:916
|
#. Translators: Remote here refers to a remote session, like a ssh login
|
||||||
|
#: ../js/ui/userMenu.js:921
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (remote)"
|
msgid "%s (remote)"
|
||||||
msgstr "%s (ở xa)"
|
msgstr "%s (ở xa)"
|
||||||
|
|
||||||
#: ../js/ui/userMenu.js:918
|
#. Translators: Console here refers to a tty like a VT console
|
||||||
|
#: ../js/ui/userMenu.js:924
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (console)"
|
msgid "%s (console)"
|
||||||
msgstr "%s (console)"
|
msgstr "%s (console)"
|
||||||
|
|
||||||
#: ../js/ui/viewSelector.js:101
|
#: ../js/ui/viewSelector.js:100
|
||||||
msgid "Applications"
|
msgid "Applications"
|
||||||
msgstr "Ứng dụng"
|
msgstr "Ứng dụng"
|
||||||
|
|
||||||
#: ../js/ui/viewSelector.js:105
|
#: ../js/ui/viewSelector.js:104
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Tìm"
|
msgstr "Tìm"
|
||||||
|
|
||||||
#: ../js/ui/wanda.js:92
|
#: ../js/ui/wanda.js:77
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sorry, no wisdom for you today:\n"
|
"Sorry, no wisdom for you today:\n"
|
||||||
@ -1812,7 +1829,7 @@ msgstr ""
|
|||||||
"Rất tiếc, không có lời thông thái nào hôm nay:\n"
|
"Rất tiếc, không có lời thông thái nào hôm nay:\n"
|
||||||
"%s"
|
"%s"
|
||||||
|
|
||||||
#: ../js/ui/wanda.js:96
|
#: ../js/ui/wanda.js:81
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s the Oracle says"
|
msgid "%s the Oracle says"
|
||||||
msgstr "Nhà tiên tri %s nói"
|
msgstr "Nhà tiên tri %s nói"
|
||||||
@ -1820,32 +1837,12 @@ msgstr "Nhà tiên tri %s nói"
|
|||||||
#: ../js/ui/windowAttentionHandler.js:19
|
#: ../js/ui/windowAttentionHandler.js:19
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "'%s' is ready"
|
msgid "'%s' is ready"
|
||||||
msgstr "'%s' đã sẵn sàng"
|
msgstr "“%s” đã sẵn sàng"
|
||||||
|
|
||||||
#: ../src/calendar-server/evolution-calendar.desktop.in.in.h:1
|
#: ../src/calendar-server/evolution-calendar.desktop.in.in.h:1
|
||||||
msgid "Evolution Calendar"
|
msgid "Evolution Calendar"
|
||||||
msgstr "Lịch Evolution"
|
msgstr "Lịch Evolution"
|
||||||
|
|
||||||
#. translators:
|
|
||||||
#. * The number of sound outputs on a particular device
|
|
||||||
#: ../src/gvc/gvc-mixer-control.c:1837
|
|
||||||
#, c-format
|
|
||||||
msgid "%u Output"
|
|
||||||
msgid_plural "%u Outputs"
|
|
||||||
msgstr[0] "%u đầu ra"
|
|
||||||
|
|
||||||
#. translators:
|
|
||||||
#. * The number of sound inputs on a particular device
|
|
||||||
#: ../src/gvc/gvc-mixer-control.c:1847
|
|
||||||
#, c-format
|
|
||||||
msgid "%u Input"
|
|
||||||
msgid_plural "%u Inputs"
|
|
||||||
msgstr[0] "%u đầu vào"
|
|
||||||
|
|
||||||
#: ../src/gvc/gvc-mixer-control.c:2371
|
|
||||||
msgid "System Sounds"
|
|
||||||
msgstr "Âm thanh hệ thống"
|
|
||||||
|
|
||||||
#: ../src/main.c:347
|
#: ../src/main.c:347
|
||||||
msgid "Print version"
|
msgid "Print version"
|
||||||
msgstr "In phiên bản"
|
msgstr "In phiên bản"
|
||||||
@ -1856,7 +1853,7 @@ msgstr "Chể độ dùng bởi GDM cho màn hình đăng nhập"
|
|||||||
|
|
||||||
#: ../src/main.c:359
|
#: ../src/main.c:359
|
||||||
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
|
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"
|
msgstr "Dùng chế độ đặc biệt, ví dụ “gdm” cho màn hình đăng nhập"
|
||||||
|
|
||||||
#: ../src/main.c:365
|
#: ../src/main.c:365
|
||||||
msgid "List possible modes"
|
msgid "List possible modes"
|
||||||
@ -1865,7 +1862,7 @@ msgstr "Danh sách chế độ"
|
|||||||
#: ../src/shell-app.c:622
|
#: ../src/shell-app.c:622
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to launch '%s'"
|
msgid "Failed to launch '%s'"
|
||||||
msgstr "Lỗi chạy '%s'"
|
msgstr "Lỗi chạy “%s”"
|
||||||
|
|
||||||
#: ../src/shell-keyring-prompt.c:708
|
#: ../src/shell-keyring-prompt.c:708
|
||||||
msgid "Passwords do not match."
|
msgid "Passwords do not match."
|
||||||
@ -1879,6 +1876,17 @@ msgstr "Mật khẩu không thể không có"
|
|||||||
msgid "Authentication dialog was dismissed by the user"
|
msgid "Authentication dialog was dismissed by the user"
|
||||||
msgstr "Hộp thoại xác thực bị người dùng bỏ qua"
|
msgstr "Hộp thoại xác thực bị người dùng bỏ qua"
|
||||||
|
|
||||||
|
#~ msgid "%u Output"
|
||||||
|
#~ msgid_plural "%u Outputs"
|
||||||
|
#~ msgstr[0] "%u đầu ra"
|
||||||
|
|
||||||
|
#~ msgid "%u Input"
|
||||||
|
#~ msgid_plural "%u Inputs"
|
||||||
|
#~ msgstr[0] "%u đầu vào"
|
||||||
|
|
||||||
|
#~ msgid "System Sounds"
|
||||||
|
#~ msgstr "Âm thanh hệ thống"
|
||||||
|
|
||||||
#~ msgctxt "title"
|
#~ msgctxt "title"
|
||||||
#~ msgid "Sign In"
|
#~ msgid "Sign In"
|
||||||
#~ msgstr "Đăng nhập"
|
#~ msgstr "Đăng nhập"
|
||||||
@ -1910,7 +1918,7 @@ msgstr "Hộp thoại xác thực bị người dùng bỏ qua"
|
|||||||
#~ msgstr "%l:%M %p"
|
#~ msgstr "%l:%M %p"
|
||||||
|
|
||||||
#~ msgid "Failed to unmount '%s'"
|
#~ msgid "Failed to unmount '%s'"
|
||||||
#~ msgstr "Lỗi bỏ gắn kết '%s'"
|
#~ msgstr "Lỗi bỏ gắn kết “%s”"
|
||||||
|
|
||||||
#~ msgid "Retry"
|
#~ msgid "Retry"
|
||||||
#~ msgstr "Thử lại"
|
#~ msgstr "Thử lại"
|
||||||
@ -1925,7 +1933,7 @@ msgstr "Hộp thoại xác thực bị người dùng bỏ qua"
|
|||||||
#~ msgstr "Lỗi duyệt tập tin"
|
#~ msgstr "Lỗi duyệt tập tin"
|
||||||
|
|
||||||
#~ msgid "The requested device cannot be browsed, error is '%s'"
|
#~ msgid "The requested device cannot be browsed, error is '%s'"
|
||||||
#~ msgstr "Không thể duyệt thiết bị yêu cầu , lỗi là '%s'"
|
#~ msgstr "Không thể duyệt thiết bị yêu cầu , lỗi là “%s”"
|
||||||
|
|
||||||
#~ msgid "Wireless"
|
#~ msgid "Wireless"
|
||||||
#~ msgstr "Mạng không dây"
|
#~ msgstr "Mạng không dây"
|
||||||
@ -2070,155 +2078,3 @@ msgstr "Hộp thoại xác thực bị người dùng bỏ qua"
|
|||||||
|
|
||||||
#~ msgid "Show password"
|
#~ msgid "Show password"
|
||||||
#~ msgstr "Hiện mật khẩu"
|
#~ msgstr "Hiện mật khẩu"
|
||||||
|
|
||||||
#~| msgid "If true, display seconds in time."
|
|
||||||
#~ msgid "If true, display onscreen keyboard."
|
|
||||||
#~ msgstr "Nếu đúng (true), hiện bàn phím màn hình."
|
|
||||||
|
|
||||||
#~| msgid "Screen Keyboard"
|
|
||||||
#~ msgid "Show the onscreen keyboard"
|
|
||||||
#~ msgstr "Hiện bàn phím màn hình"
|
|
||||||
|
|
||||||
#~ msgid "%s has finished starting"
|
|
||||||
#~ msgstr "%s đã hoàn tất khởi chạy"
|
|
||||||
|
|
||||||
#~ msgid "Uuids of extensions to disable"
|
|
||||||
#~ msgstr "UUID của phần mở rộng cần tắt"
|
|
||||||
|
|
||||||
#~ msgid "You're now connected to mobile broadband connection '%s'"
|
|
||||||
#~ msgstr "Đã nối mạng '%s' (băng thông rộng)"
|
|
||||||
|
|
||||||
#~ msgid "You're now connected to wireless network '%s'"
|
|
||||||
#~ msgstr "Đã nối mạng '%s' (không dây)"
|
|
||||||
|
|
||||||
#~ msgid "You're now connected to wired network '%s'"
|
|
||||||
#~ msgstr "Đã nối mạng '%s' (dây)"
|
|
||||||
|
|
||||||
#~ msgid "You're now connected to VPN network '%s'"
|
|
||||||
#~ msgstr "Đã nối mạng VPN '%s'"
|
|
||||||
|
|
||||||
#~ msgid "Localization Settings"
|
|
||||||
#~ msgstr "Thiết lập bản địa hoá"
|
|
||||||
|
|
||||||
#~ msgid "Less than a minute ago"
|
|
||||||
#~ msgstr "Chưa đến một phút"
|
|
||||||
|
|
||||||
#~ msgid "%d minute ago"
|
|
||||||
#~ msgid_plural "%d minutes ago"
|
|
||||||
#~ msgstr[0] "%d phút trước"
|
|
||||||
|
|
||||||
#~ msgid "%d hour ago"
|
|
||||||
#~ msgid_plural "%d hours ago"
|
|
||||||
#~ msgstr[0] "%d giờ trước"
|
|
||||||
|
|
||||||
#~ msgid "%d day ago"
|
|
||||||
#~ msgid_plural "%d days ago"
|
|
||||||
#~ msgstr[0] "%d ngày trước"
|
|
||||||
|
|
||||||
#~ msgid "%d week ago"
|
|
||||||
#~ msgid_plural "%d weeks ago"
|
|
||||||
#~ msgstr[0] "%d tuần trước"
|
|
||||||
|
|
||||||
#~ msgid "Shut Down"
|
|
||||||
#~ msgstr "Tắt máy"
|
|
||||||
|
|
||||||
#~ msgid "Click Shut Down to quit these applications and shut down the system."
|
|
||||||
#~ msgstr "Nhấn Tắt máy để thoát những ứng dụng này và tắt hệ thống."
|
|
||||||
|
|
||||||
#~ msgid "The system will shut down automatically in %d seconds."
|
|
||||||
#~ msgstr "Hệ thống sẽ tự động tắt sau %d giây."
|
|
||||||
|
|
||||||
#~ msgid "Shutting down the system."
|
|
||||||
#~ msgstr "Tắt hệ thống."
|
|
||||||
|
|
||||||
#~ msgid "Confirm"
|
|
||||||
#~ msgstr "Xác nhận"
|
|
||||||
|
|
||||||
#~ msgid "Clip the crosshairs at the center"
|
|
||||||
#~ msgstr "Cắt lưới chéo ở giữa"
|
|
||||||
|
|
||||||
#~ msgid "Color of the crosshairs"
|
|
||||||
#~ msgstr "Màu lưới chéo"
|
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ "Determines the length of the vertical and horizontal lines that make up "
|
|
||||||
#~ "the crosshairs."
|
|
||||||
#~ msgstr "Xác định độ dài và rộng của những dòng tạo nên lưới chéo."
|
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ "Determines the transparency of the crosshairs, from fully opaque to fully "
|
|
||||||
#~ "transparent."
|
|
||||||
#~ msgstr "Xác định độ trong suốt của lưới chéo, từ đặc đến trong suốt."
|
|
||||||
|
|
||||||
#~ msgid "Enable lens mode"
|
|
||||||
#~ msgstr "Bật chế độ gương"
|
|
||||||
|
|
||||||
#~ msgid "Show or hide crosshairs"
|
|
||||||
#~ msgstr "Hiện hoặc ẩn lưới chéo"
|
|
||||||
|
|
||||||
#~ msgid "Show or hide the magnifier"
|
|
||||||
#~ msgstr "Hiện hoặc ẩn kính lúp"
|
|
||||||
|
|
||||||
#~ msgid "Thickness of the crosshairs"
|
|
||||||
#~ msgstr "Độ dày lưới chéo"
|
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ "Width of the vertical and horizontal lines that make up the crosshairs."
|
|
||||||
#~ msgstr "Độ rộng của đường dọc/ngang hình thành dấu gạch chéo."
|
|
||||||
|
|
||||||
#~ msgid "PREFERENCES"
|
|
||||||
#~ msgstr "TUỲ THÍCH"
|
|
||||||
|
|
||||||
#~ msgid "Shut Down..."
|
|
||||||
#~ msgstr "Tắt máy..."
|
|
||||||
|
|
||||||
#~ msgid "Search your computer"
|
|
||||||
#~ msgstr "Tìm trong máy"
|
|
||||||
|
|
||||||
#~ msgid "Customize the panel clock"
|
|
||||||
#~ msgstr "Tuỳ biến đồng hồ"
|
|
||||||
|
|
||||||
#~ msgid "Clock Format"
|
|
||||||
#~ msgstr "Dạng đồng hồ"
|
|
||||||
|
|
||||||
#~| msgid "System Preferences..."
|
|
||||||
#~ msgid "Clock Preferences"
|
|
||||||
#~ msgstr "Thiết lập đồng hồ"
|
|
||||||
|
|
||||||
#~ msgid "Panel Display"
|
|
||||||
#~ msgstr "Khung hiển thị"
|
|
||||||
|
|
||||||
#~ msgid "Show seco_nds"
|
|
||||||
#~ msgstr "Hiện _giây"
|
|
||||||
|
|
||||||
#~ msgid "_12 hour format"
|
|
||||||
#~ msgstr "Dạng _12 giờ"
|
|
||||||
|
|
||||||
#~ msgid "_24 hour format"
|
|
||||||
#~ msgstr "Dạng _24 giờ"
|
|
||||||
|
|
||||||
#~| msgid "System Preferences..."
|
|
||||||
#~ msgid "Preferences"
|
|
||||||
#~ msgstr "Thiết lập"
|
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ "Can't add a new workspace because maximum workspaces limit has been "
|
|
||||||
#~ "reached."
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "Không thể thêm vùng làm việc mới vì đã đạt giới hạn số vùng làm việc tối "
|
|
||||||
#~ "đa."
|
|
||||||
|
|
||||||
#~ msgid "Can't remove the first workspace."
|
|
||||||
#~ msgstr "Không thể bỏ vùng làm việc đầu tiên."
|
|
||||||
|
|
||||||
#~ msgid "Drag here to add favorites"
|
|
||||||
#~ msgstr "Kéo vào đây để thêm vào danh mục ưa thích"
|
|
||||||
|
|
||||||
#~ msgid "Find..."
|
|
||||||
#~ msgstr "Tìm"
|
|
||||||
|
|
||||||
#~ msgid "Sidebar"
|
|
||||||
#~ msgstr "Thanh bên"
|
|
||||||
|
|
||||||
#~ msgid "Recent Documents"
|
|
||||||
#~ msgstr "Tài liệu gần đây"
|
|
||||||
|
877
po/zh_CN.po
877
po/zh_CN.po
File diff suppressed because it is too large
Load Diff
@ -135,7 +135,10 @@ shell_private_sources = \
|
|||||||
gactionobservable.h \
|
gactionobservable.h \
|
||||||
gactionobservable.c \
|
gactionobservable.c \
|
||||||
gactionobserver.h \
|
gactionobserver.h \
|
||||||
gactionobserver.c
|
gactionobserver.c \
|
||||||
|
gtkmenutracker.c \
|
||||||
|
gtkmenutracker.h \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
libgnome_shell_la_SOURCES = \
|
libgnome_shell_la_SOURCES = \
|
||||||
$(shell_built_sources) \
|
$(shell_built_sources) \
|
||||||
@ -158,6 +161,8 @@ libgnome_shell_la_SOURCES = \
|
|||||||
shell-invert-lightness-effect.c \
|
shell-invert-lightness-effect.c \
|
||||||
shell-keyring-prompt.h \
|
shell-keyring-prompt.h \
|
||||||
shell-keyring-prompt.c \
|
shell-keyring-prompt.c \
|
||||||
|
shell-menu-tracker.c \
|
||||||
|
shell-menu-tracker.h \
|
||||||
shell-mount-operation.c \
|
shell-mount-operation.c \
|
||||||
shell-network-agent.c \
|
shell-network-agent.c \
|
||||||
shell-perf-log.c \
|
shell-perf-log.c \
|
||||||
|
434
src/gtkmenutracker.c
Normal file
434
src/gtkmenutracker.c
Normal file
@ -0,0 +1,434 @@
|
|||||||
|
/*
|
||||||
|
* Copyright © 2013 Canonical Limited
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the licence, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
* Boston, MA 02111-1307, USA.
|
||||||
|
*
|
||||||
|
* Author: Ryan Lortie <desrt@desrt.ca>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
|
#include "gtkmenutracker.h"
|
||||||
|
|
||||||
|
typedef struct _GtkMenuTrackerSection GtkMenuTrackerSection;
|
||||||
|
|
||||||
|
struct _GtkMenuTracker
|
||||||
|
{
|
||||||
|
GtkMenuTrackerInsertFunc insert_func;
|
||||||
|
GtkMenuTrackerRemoveFunc remove_func;
|
||||||
|
gpointer user_data;
|
||||||
|
|
||||||
|
GtkMenuTrackerSection *toplevel;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _GtkMenuTrackerSection
|
||||||
|
{
|
||||||
|
GMenuModel *model;
|
||||||
|
GSList *items;
|
||||||
|
gchar *action_namespace;
|
||||||
|
|
||||||
|
guint with_separators : 1;
|
||||||
|
guint has_separator : 1;
|
||||||
|
|
||||||
|
gulong handler;
|
||||||
|
};
|
||||||
|
|
||||||
|
static GtkMenuTrackerSection * gtk_menu_tracker_section_new (GtkMenuTracker *tracker,
|
||||||
|
GMenuModel *model,
|
||||||
|
gboolean with_separators,
|
||||||
|
gint offset,
|
||||||
|
const gchar *action_namespace);
|
||||||
|
static void gtk_menu_tracker_section_free (GtkMenuTrackerSection *section);
|
||||||
|
|
||||||
|
static GtkMenuTrackerSection *
|
||||||
|
gtk_menu_tracker_section_find_model (GtkMenuTrackerSection *section,
|
||||||
|
GMenuModel *model,
|
||||||
|
gint *offset)
|
||||||
|
{
|
||||||
|
GSList *item;
|
||||||
|
|
||||||
|
if (section->has_separator)
|
||||||
|
(*offset)++;
|
||||||
|
|
||||||
|
if (section->model == model)
|
||||||
|
return section;
|
||||||
|
|
||||||
|
for (item = section->items; item; item = item->next)
|
||||||
|
{
|
||||||
|
GtkMenuTrackerSection *subsection = item->data;
|
||||||
|
|
||||||
|
if (subsection)
|
||||||
|
{
|
||||||
|
GtkMenuTrackerSection *found_section;
|
||||||
|
|
||||||
|
found_section = gtk_menu_tracker_section_find_model (subsection, model, offset);
|
||||||
|
|
||||||
|
if (found_section)
|
||||||
|
return found_section;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
(*offset)++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* this is responsible for syncing the showing of a separator for a
|
||||||
|
* single subsection (and its children).
|
||||||
|
*
|
||||||
|
* we only ever show separators if we have _actual_ children (ie: we do
|
||||||
|
* not show a separator if the section contains only empty child
|
||||||
|
* sections). it's difficult to determine this on-the-fly, so we have
|
||||||
|
* this separate function to come back later and figure it out.
|
||||||
|
*
|
||||||
|
* 'section' is that section.
|
||||||
|
*
|
||||||
|
* 'tracker' is passed in so that we can emit callbacks when we decide
|
||||||
|
* to add/remove separators.
|
||||||
|
*
|
||||||
|
* 'offset' is passed in so we know which position to emit in our
|
||||||
|
* callbacks. ie: if we add a separator right at the top of this
|
||||||
|
* section then we would emit it with this offset. deeper inside, we
|
||||||
|
* adjust accordingly.
|
||||||
|
*
|
||||||
|
* could_have_separator is true in two situations:
|
||||||
|
*
|
||||||
|
* - our parent section had with_separators defined and we are not the
|
||||||
|
* first section (ie: we should add a separator if we have content in
|
||||||
|
* order to divide us from the items above)
|
||||||
|
*
|
||||||
|
* - if we had a 'label' attribute set for this section
|
||||||
|
*
|
||||||
|
* parent_model and parent_index are passed in so that we can give them
|
||||||
|
* to the insertion callback so that it can see the label (and anything
|
||||||
|
* else that happens to be defined on the section).
|
||||||
|
*
|
||||||
|
* we iterate each item in ourselves. for subsections, we recursively
|
||||||
|
* run ourselves to sync separators. after we are done, we notice if we
|
||||||
|
* have any items in us or if we are completely empty and sync if our
|
||||||
|
* separator is shown or not.
|
||||||
|
*/
|
||||||
|
static gint
|
||||||
|
gtk_menu_tracker_section_sync_separators (GtkMenuTrackerSection *section,
|
||||||
|
GtkMenuTracker *tracker,
|
||||||
|
gint offset,
|
||||||
|
gboolean could_have_separator,
|
||||||
|
GMenuModel *parent_model,
|
||||||
|
gint parent_index)
|
||||||
|
{
|
||||||
|
gboolean should_have_separator;
|
||||||
|
gint n_items = 0;
|
||||||
|
GSList *item;
|
||||||
|
gint i = 0;
|
||||||
|
|
||||||
|
for (item = section->items; item; item = item->next)
|
||||||
|
{
|
||||||
|
GtkMenuTrackerSection *subsection = item->data;
|
||||||
|
|
||||||
|
if (subsection)
|
||||||
|
{
|
||||||
|
gboolean could_have_separator;
|
||||||
|
|
||||||
|
could_have_separator = (section->with_separators && i > 0) ||
|
||||||
|
g_menu_model_get_item_attribute (section->model, i, "label", "s", NULL);
|
||||||
|
|
||||||
|
n_items += gtk_menu_tracker_section_sync_separators (subsection, tracker, offset + n_items,
|
||||||
|
could_have_separator, section->model, i);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
n_items++;
|
||||||
|
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
should_have_separator = could_have_separator && n_items != 0;
|
||||||
|
|
||||||
|
if (should_have_separator > section->has_separator)
|
||||||
|
{
|
||||||
|
/* Add a separator */
|
||||||
|
(* tracker->insert_func) (offset, parent_model, parent_index, NULL, TRUE, tracker->user_data);
|
||||||
|
section->has_separator = TRUE;
|
||||||
|
}
|
||||||
|
else if (should_have_separator < section->has_separator)
|
||||||
|
{
|
||||||
|
/* Remove a separator */
|
||||||
|
(* tracker->remove_func) (offset, tracker->user_data);
|
||||||
|
section->has_separator = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
n_items += section->has_separator;
|
||||||
|
|
||||||
|
return n_items;
|
||||||
|
}
|
||||||
|
|
||||||
|
static gint
|
||||||
|
gtk_menu_tracker_section_measure (GtkMenuTrackerSection *section)
|
||||||
|
{
|
||||||
|
GSList *item;
|
||||||
|
gint n_items;
|
||||||
|
|
||||||
|
if (section == NULL)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
n_items = 0;
|
||||||
|
|
||||||
|
if (section->has_separator)
|
||||||
|
n_items++;
|
||||||
|
|
||||||
|
for (item = section->items; item; item = item->next)
|
||||||
|
n_items += gtk_menu_tracker_section_measure (item->data);
|
||||||
|
|
||||||
|
return n_items;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gtk_menu_tracker_remove_items (GtkMenuTracker *tracker,
|
||||||
|
GSList **change_point,
|
||||||
|
gint offset,
|
||||||
|
gint n_items)
|
||||||
|
{
|
||||||
|
gint i;
|
||||||
|
|
||||||
|
for (i = 0; i < n_items; i++)
|
||||||
|
{
|
||||||
|
GtkMenuTrackerSection *subsection;
|
||||||
|
gint n;
|
||||||
|
|
||||||
|
subsection = (*change_point)->data;
|
||||||
|
*change_point = g_slist_delete_link (*change_point, *change_point);
|
||||||
|
|
||||||
|
n = gtk_menu_tracker_section_measure (subsection);
|
||||||
|
gtk_menu_tracker_section_free (subsection);
|
||||||
|
|
||||||
|
while (n--)
|
||||||
|
(* tracker->remove_func) (offset, tracker->user_data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gtk_menu_tracker_add_items (GtkMenuTracker *tracker,
|
||||||
|
GtkMenuTrackerSection *section,
|
||||||
|
GSList **change_point,
|
||||||
|
gint offset,
|
||||||
|
GMenuModel *model,
|
||||||
|
gint position,
|
||||||
|
gint n_items)
|
||||||
|
{
|
||||||
|
while (n_items--)
|
||||||
|
{
|
||||||
|
GMenuModel *submenu;
|
||||||
|
|
||||||
|
submenu = g_menu_model_get_item_link (model, position + n_items, G_MENU_LINK_SECTION);
|
||||||
|
g_assert (submenu != model);
|
||||||
|
if (submenu != NULL)
|
||||||
|
{
|
||||||
|
GtkMenuTrackerSection *subsection;
|
||||||
|
gchar *action_namespace = NULL;
|
||||||
|
|
||||||
|
g_menu_model_get_item_attribute (model, position + n_items,
|
||||||
|
G_MENU_ATTRIBUTE_ACTION_NAMESPACE, "s", &action_namespace);
|
||||||
|
|
||||||
|
if (section->action_namespace)
|
||||||
|
{
|
||||||
|
gchar *namespace;
|
||||||
|
|
||||||
|
namespace = g_strjoin (".", section->action_namespace, action_namespace, NULL);
|
||||||
|
subsection = gtk_menu_tracker_section_new (tracker, submenu, FALSE, offset, namespace);
|
||||||
|
g_free (namespace);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
subsection = gtk_menu_tracker_section_new (tracker, submenu, FALSE, offset, section->action_namespace);
|
||||||
|
|
||||||
|
*change_point = g_slist_prepend (*change_point, subsection);
|
||||||
|
g_free (action_namespace);
|
||||||
|
g_object_unref (submenu);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
(* tracker->insert_func) (offset, model, position + n_items,
|
||||||
|
section->action_namespace, FALSE, tracker->user_data);
|
||||||
|
*change_point = g_slist_prepend (*change_point, NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gtk_menu_tracker_model_changed (GMenuModel *model,
|
||||||
|
gint position,
|
||||||
|
gint removed,
|
||||||
|
gint added,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
GtkMenuTracker *tracker = user_data;
|
||||||
|
GtkMenuTrackerSection *section;
|
||||||
|
GSList **change_point;
|
||||||
|
gint offset = 0;
|
||||||
|
gint i;
|
||||||
|
|
||||||
|
/* First find which section the changed model corresponds to, and the
|
||||||
|
* position of that section within the overall menu.
|
||||||
|
*/
|
||||||
|
section = gtk_menu_tracker_section_find_model (tracker->toplevel, model, &offset);
|
||||||
|
|
||||||
|
/* Next, seek through that section to the change point. This gives us
|
||||||
|
* the correct GSList** to make the change to and also finds the final
|
||||||
|
* offset at which we will make the changes (by measuring the number
|
||||||
|
* of items within each item of the section before the change point).
|
||||||
|
*/
|
||||||
|
change_point = §ion->items;
|
||||||
|
for (i = 0; i < position; i++)
|
||||||
|
{
|
||||||
|
offset += gtk_menu_tracker_section_measure ((*change_point)->data);
|
||||||
|
change_point = &(*change_point)->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* We remove items in order and add items in reverse order. This
|
||||||
|
* means that the offset used for all inserts and removes caused by a
|
||||||
|
* single change will be the same.
|
||||||
|
*
|
||||||
|
* This also has a performance advantage: GtkMenuShell stores the
|
||||||
|
* menu items in a linked list. In the case where we are creating a
|
||||||
|
* menu for the first time, adding the items in reverse order means
|
||||||
|
* that we only ever insert at index zero, prepending the list. This
|
||||||
|
* means that we can populate in O(n) time instead of O(n^2) that we
|
||||||
|
* would do by appending.
|
||||||
|
*/
|
||||||
|
gtk_menu_tracker_remove_items (tracker, change_point, offset, removed);
|
||||||
|
gtk_menu_tracker_add_items (tracker, section, change_point, offset, model, position, added);
|
||||||
|
|
||||||
|
/* The offsets for insertion/removal of separators will be all over
|
||||||
|
* the place, however...
|
||||||
|
*/
|
||||||
|
gtk_menu_tracker_section_sync_separators (tracker->toplevel, tracker, 0, FALSE, NULL, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gtk_menu_tracker_section_free (GtkMenuTrackerSection *section)
|
||||||
|
{
|
||||||
|
if (section == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
g_signal_handler_disconnect (section->model, section->handler);
|
||||||
|
g_slist_free_full (section->items, (GDestroyNotify) gtk_menu_tracker_section_free);
|
||||||
|
g_free (section->action_namespace);
|
||||||
|
g_object_unref (section->model);
|
||||||
|
g_slice_free (GtkMenuTrackerSection, section);
|
||||||
|
}
|
||||||
|
|
||||||
|
static GtkMenuTrackerSection *
|
||||||
|
gtk_menu_tracker_section_new (GtkMenuTracker *tracker,
|
||||||
|
GMenuModel *model,
|
||||||
|
gboolean with_separators,
|
||||||
|
gint offset,
|
||||||
|
const gchar *action_namespace)
|
||||||
|
{
|
||||||
|
GtkMenuTrackerSection *section;
|
||||||
|
|
||||||
|
section = g_slice_new0 (GtkMenuTrackerSection);
|
||||||
|
section->model = g_object_ref (model);
|
||||||
|
section->with_separators = with_separators;
|
||||||
|
section->action_namespace = g_strdup (action_namespace);
|
||||||
|
|
||||||
|
gtk_menu_tracker_add_items (tracker, section, §ion->items, offset, model, 0, g_menu_model_get_n_items (model));
|
||||||
|
section->handler = g_signal_connect (model, "items-changed", G_CALLBACK (gtk_menu_tracker_model_changed), tracker);
|
||||||
|
|
||||||
|
return section;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*< private >
|
||||||
|
* gtk_menu_tracker_new:
|
||||||
|
* @model: the model to flatten
|
||||||
|
* @with_separators: if the toplevel should have separators (ie: TRUE
|
||||||
|
* for menus, FALSE for menubars)
|
||||||
|
* @action_namespace: the passed-in action namespace
|
||||||
|
* @insert_func: insert callback
|
||||||
|
* @remove_func: remove callback
|
||||||
|
* @user_data user data for callbacks
|
||||||
|
*
|
||||||
|
* Creates a GtkMenuTracker for @model, holding a ref on @model for as
|
||||||
|
* long as the tracker is alive.
|
||||||
|
*
|
||||||
|
* This flattens out the model, merging sections and inserting
|
||||||
|
* separators where appropriate. It monitors for changes and performs
|
||||||
|
* updates on the fly. It also handles action_namespace for subsections
|
||||||
|
* (but you will need to handle it yourself for submenus).
|
||||||
|
*
|
||||||
|
* When the tracker is first created, @insert_func will be called many
|
||||||
|
* times to populate the menu with the initial contents of @model
|
||||||
|
* (unless it is empty), before gtk_menu_tracker_new() returns. For
|
||||||
|
* this reason, the menu that is using the tracker ought to be empty
|
||||||
|
* when it creates the tracker.
|
||||||
|
*
|
||||||
|
* Future changes to @model will result in more calls to @insert_func
|
||||||
|
* and @remove_func.
|
||||||
|
*
|
||||||
|
* The position argument to both functions is the linear 0-based
|
||||||
|
* position in the menu at which the item in question should be inserted
|
||||||
|
* or removed.
|
||||||
|
*
|
||||||
|
* For @insert_func, @model and @item_index are used to get the
|
||||||
|
* information about the menu item to insert. @action_namespace is the
|
||||||
|
* action namespace that actions referred to from that item should place
|
||||||
|
* themselves in. Note that if the item is a submenu and the
|
||||||
|
* "action-namespace" attribute is defined on the item, it will _not_ be
|
||||||
|
* applied to the @action_namespace argument as it is meant for the
|
||||||
|
* items inside of the submenu, not the submenu item itself.
|
||||||
|
*
|
||||||
|
* @is_separator is set to %TRUE in case the item being added is a
|
||||||
|
* separator. @model and @item_index will still be meaningfully set in
|
||||||
|
* this case -- to the section menu item corresponding to the separator.
|
||||||
|
* This is useful if the section specifies a label, for example. If
|
||||||
|
* there is an "action-namespace" attribute on this menu item then it
|
||||||
|
* should be ignored by the consumer because #GtkMenuTracker has already
|
||||||
|
* handled it.
|
||||||
|
*
|
||||||
|
* When using #GtkMenuTracker there is no need to hold onto @model or
|
||||||
|
* monitor it for changes. The model will be unreffed when
|
||||||
|
* gtk_menu_tracker_free() is called.
|
||||||
|
*/
|
||||||
|
GtkMenuTracker *
|
||||||
|
gtk_menu_tracker_new (GMenuModel *model,
|
||||||
|
gboolean with_separators,
|
||||||
|
const gchar *action_namespace,
|
||||||
|
GtkMenuTrackerInsertFunc insert_func,
|
||||||
|
GtkMenuTrackerRemoveFunc remove_func,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
GtkMenuTracker *tracker;
|
||||||
|
|
||||||
|
tracker = g_slice_new (GtkMenuTracker);
|
||||||
|
tracker->insert_func = insert_func;
|
||||||
|
tracker->remove_func = remove_func;
|
||||||
|
tracker->user_data = user_data;
|
||||||
|
|
||||||
|
tracker->toplevel = gtk_menu_tracker_section_new (tracker, model, with_separators, 0, action_namespace);
|
||||||
|
gtk_menu_tracker_section_sync_separators (tracker->toplevel, tracker, 0, FALSE, NULL, 0);
|
||||||
|
|
||||||
|
return tracker;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*< private >
|
||||||
|
* gtk_menu_tracker_free:
|
||||||
|
* @tracker: a #GtkMenuTracker
|
||||||
|
*
|
||||||
|
* Frees the tracker, ...
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
gtk_menu_tracker_free (GtkMenuTracker *tracker)
|
||||||
|
{
|
||||||
|
gtk_menu_tracker_section_free (tracker->toplevel);
|
||||||
|
g_slice_free (GtkMenuTracker, tracker);
|
||||||
|
}
|
51
src/gtkmenutracker.h
Normal file
51
src/gtkmenutracker.h
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
/*
|
||||||
|
* Copyright © 2013 Canonical Limited
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the licence, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
* Boston, MA 02111-1307, USA.
|
||||||
|
*
|
||||||
|
* Author: Ryan Lortie <desrt@desrt.ca>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GTK_MENU_TRACKER_H__
|
||||||
|
#define __GTK_MENU_TRACKER_H__
|
||||||
|
|
||||||
|
#include <gio/gio.h>
|
||||||
|
|
||||||
|
typedef struct _GtkMenuTracker GtkMenuTracker;
|
||||||
|
|
||||||
|
typedef void (* GtkMenuTrackerInsertFunc) (gint position,
|
||||||
|
GMenuModel *model,
|
||||||
|
gint item_index,
|
||||||
|
const gchar *action_namespace,
|
||||||
|
gboolean is_separator,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
typedef void (* GtkMenuTrackerRemoveFunc) (gint position,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
|
||||||
|
G_GNUC_INTERNAL
|
||||||
|
GtkMenuTracker * gtk_menu_tracker_new (GMenuModel *model,
|
||||||
|
gboolean with_separators,
|
||||||
|
const gchar *action_namespace,
|
||||||
|
GtkMenuTrackerInsertFunc insert_func,
|
||||||
|
GtkMenuTrackerRemoveFunc remove_func,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
G_GNUC_INTERNAL
|
||||||
|
void gtk_menu_tracker_free (GtkMenuTracker *tracker);
|
||||||
|
|
||||||
|
#endif /* __GTK_MENU_TRACKER_H__ */
|
101
src/shell-app.c
101
src/shell-app.c
@ -39,10 +39,14 @@ typedef struct {
|
|||||||
/* Whether or not we need to resort the windows; this is done on demand */
|
/* Whether or not we need to resort the windows; this is done on demand */
|
||||||
gboolean window_sort_stale : 1;
|
gboolean window_sort_stale : 1;
|
||||||
|
|
||||||
|
/* DBus property notification subscription */
|
||||||
|
guint properties_changed_id : 1;
|
||||||
|
|
||||||
/* See GApplication documentation */
|
/* See GApplication documentation */
|
||||||
GDBusMenuModel *remote_menu;
|
GDBusMenuModel *remote_menu;
|
||||||
GActionMuxer *muxer;
|
GActionMuxer *muxer;
|
||||||
char * unique_bus_name;
|
char *unique_bus_name;
|
||||||
|
GDBusConnection *session;
|
||||||
} ShellAppRunningState;
|
} ShellAppRunningState;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -554,7 +558,7 @@ shell_app_update_window_actions (ShellApp *app, MetaWindow *window)
|
|||||||
actions = g_object_get_data (G_OBJECT (window), "actions");
|
actions = g_object_get_data (G_OBJECT (window), "actions");
|
||||||
if (actions == NULL)
|
if (actions == NULL)
|
||||||
{
|
{
|
||||||
actions = G_ACTION_GROUP (g_dbus_action_group_get (g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL),
|
actions = G_ACTION_GROUP (g_dbus_action_group_get (app->running_state->session,
|
||||||
meta_window_get_gtk_unique_bus_name (window),
|
meta_window_get_gtk_unique_bus_name (window),
|
||||||
object_path));
|
object_path));
|
||||||
g_object_set_data_full (G_OBJECT (window), "actions", actions, g_object_unref);
|
g_object_set_data_full (G_OBJECT (window), "actions", actions, g_object_unref);
|
||||||
@ -958,6 +962,84 @@ shell_app_on_ws_switch (MetaScreen *screen,
|
|||||||
g_signal_emit (app, shell_app_signals[WINDOWS_CHANGED], 0);
|
g_signal_emit (app, shell_app_signals[WINDOWS_CHANGED], 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
application_properties_changed (GDBusConnection *connection,
|
||||||
|
const gchar *sender_name,
|
||||||
|
const gchar *object_path,
|
||||||
|
const gchar *interface_name,
|
||||||
|
const gchar *signal_name,
|
||||||
|
GVariant *parameters,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
ShellApp *app = user_data;
|
||||||
|
GVariant *changed_properties;
|
||||||
|
GVariantIter iter;
|
||||||
|
gboolean busy = FALSE;
|
||||||
|
const gchar *key, *interface_name_for_signal;
|
||||||
|
GVariant *value;
|
||||||
|
|
||||||
|
g_variant_get (parameters,
|
||||||
|
"(&s@a{sv}as)",
|
||||||
|
&interface_name_for_signal,
|
||||||
|
&changed_properties,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
if (g_strcmp0 (interface_name_for_signal, "org.gtk.Application") != 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
g_variant_iter_init (&iter, changed_properties);
|
||||||
|
while (g_variant_iter_next (&iter, "{&sv}", &key, &value))
|
||||||
|
{
|
||||||
|
if (g_strcmp0 (key, "Busy") != 0)
|
||||||
|
{
|
||||||
|
g_variant_unref (value);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
busy = g_variant_get_boolean (value);
|
||||||
|
g_variant_unref (value);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (busy)
|
||||||
|
shell_app_state_transition (app, SHELL_APP_STATE_BUSY);
|
||||||
|
else
|
||||||
|
shell_app_state_transition (app, SHELL_APP_STATE_RUNNING);
|
||||||
|
|
||||||
|
if (changed_properties != NULL)
|
||||||
|
g_variant_unref (changed_properties);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
shell_app_ensure_busy_watch (ShellApp *app)
|
||||||
|
{
|
||||||
|
ShellAppRunningState *running_state = app->running_state;
|
||||||
|
MetaWindow *window;
|
||||||
|
const gchar *object_path;
|
||||||
|
|
||||||
|
if (running_state->properties_changed_id != 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (running_state->unique_bus_name == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
window = g_slist_nth_data (running_state->windows, 0);
|
||||||
|
object_path = meta_window_get_gtk_application_object_path (window);
|
||||||
|
|
||||||
|
if (object_path == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
running_state->properties_changed_id =
|
||||||
|
g_dbus_connection_signal_subscribe (running_state->session,
|
||||||
|
running_state->unique_bus_name,
|
||||||
|
"org.freedesktop.DBus.Properties",
|
||||||
|
"PropertiesChanged",
|
||||||
|
object_path,
|
||||||
|
"org.gtk.Application",
|
||||||
|
G_DBUS_SIGNAL_FLAGS_NONE,
|
||||||
|
application_properties_changed, app, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
_shell_app_add_window (ShellApp *app,
|
_shell_app_add_window (ShellApp *app,
|
||||||
MetaWindow *window)
|
MetaWindow *window)
|
||||||
@ -976,6 +1058,7 @@ _shell_app_add_window (ShellApp *app,
|
|||||||
g_signal_connect (window, "notify::user-time", G_CALLBACK(shell_app_on_user_time_changed), app);
|
g_signal_connect (window, "notify::user-time", G_CALLBACK(shell_app_on_user_time_changed), app);
|
||||||
|
|
||||||
shell_app_update_app_menu (app, window);
|
shell_app_update_app_menu (app, window);
|
||||||
|
shell_app_ensure_busy_watch (app);
|
||||||
|
|
||||||
if (app->state != SHELL_APP_STATE_STARTING)
|
if (app->state != SHELL_APP_STATE_STARTING)
|
||||||
shell_app_state_transition (app, SHELL_APP_STATE_RUNNING);
|
shell_app_state_transition (app, SHELL_APP_STATE_RUNNING);
|
||||||
@ -1218,6 +1301,8 @@ create_running_state (ShellApp *app)
|
|||||||
app->running_state->workspace_switch_id =
|
app->running_state->workspace_switch_id =
|
||||||
g_signal_connect (screen, "workspace-switched", G_CALLBACK(shell_app_on_ws_switch), app);
|
g_signal_connect (screen, "workspace-switched", G_CALLBACK(shell_app_on_ws_switch), app);
|
||||||
|
|
||||||
|
app->running_state->session = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
|
||||||
|
g_assert (app->running_state->session != NULL);
|
||||||
app->running_state->muxer = g_action_muxer_new ();
|
app->running_state->muxer = g_action_muxer_new ();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1244,7 +1329,6 @@ shell_app_update_app_menu (ShellApp *app,
|
|||||||
{
|
{
|
||||||
const gchar *application_object_path;
|
const gchar *application_object_path;
|
||||||
const gchar *app_menu_object_path;
|
const gchar *app_menu_object_path;
|
||||||
GDBusConnection *session;
|
|
||||||
GDBusActionGroup *actions;
|
GDBusActionGroup *actions;
|
||||||
|
|
||||||
application_object_path = meta_window_get_gtk_application_object_path (window);
|
application_object_path = meta_window_get_gtk_application_object_path (window);
|
||||||
@ -1253,16 +1337,13 @@ shell_app_update_app_menu (ShellApp *app,
|
|||||||
if (application_object_path == NULL || app_menu_object_path == NULL || unique_bus_name == NULL)
|
if (application_object_path == NULL || app_menu_object_path == NULL || unique_bus_name == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
session = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
|
|
||||||
g_assert (session != NULL);
|
|
||||||
g_clear_pointer (&app->running_state->unique_bus_name, g_free);
|
g_clear_pointer (&app->running_state->unique_bus_name, g_free);
|
||||||
app->running_state->unique_bus_name = g_strdup (unique_bus_name);
|
app->running_state->unique_bus_name = g_strdup (unique_bus_name);
|
||||||
g_clear_object (&app->running_state->remote_menu);
|
g_clear_object (&app->running_state->remote_menu);
|
||||||
app->running_state->remote_menu = g_dbus_menu_model_get (session, unique_bus_name, app_menu_object_path);
|
app->running_state->remote_menu = g_dbus_menu_model_get (app->running_state->session, unique_bus_name, app_menu_object_path);
|
||||||
actions = g_dbus_action_group_get (session, unique_bus_name, application_object_path);
|
actions = g_dbus_action_group_get (app->running_state->session, unique_bus_name, application_object_path);
|
||||||
g_action_muxer_insert (app->running_state->muxer, "app", G_ACTION_GROUP (actions));
|
g_action_muxer_insert (app->running_state->muxer, "app", G_ACTION_GROUP (actions));
|
||||||
g_object_unref (actions);
|
g_object_unref (actions);
|
||||||
g_object_unref (session);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1280,8 +1361,12 @@ unref_running_state (ShellAppRunningState *state)
|
|||||||
screen = shell_global_get_screen (shell_global_get ());
|
screen = shell_global_get_screen (shell_global_get ());
|
||||||
g_signal_handler_disconnect (screen, state->workspace_switch_id);
|
g_signal_handler_disconnect (screen, state->workspace_switch_id);
|
||||||
|
|
||||||
|
if (state->properties_changed_id != 0)
|
||||||
|
g_dbus_connection_signal_unsubscribe (state->session, state->properties_changed_id);
|
||||||
|
|
||||||
g_clear_object (&state->remote_menu);
|
g_clear_object (&state->remote_menu);
|
||||||
g_clear_object (&state->muxer);
|
g_clear_object (&state->muxer);
|
||||||
|
g_clear_object (&state->session);
|
||||||
g_clear_pointer (&state->unique_bus_name, g_free);
|
g_clear_pointer (&state->unique_bus_name, g_free);
|
||||||
g_clear_pointer (&state->remote_menu, g_free);
|
g_clear_pointer (&state->remote_menu, g_free);
|
||||||
|
|
||||||
|
@ -31,7 +31,8 @@ struct _ShellAppClass
|
|||||||
typedef enum {
|
typedef enum {
|
||||||
SHELL_APP_STATE_STOPPED,
|
SHELL_APP_STATE_STOPPED,
|
||||||
SHELL_APP_STATE_STARTING,
|
SHELL_APP_STATE_STARTING,
|
||||||
SHELL_APP_STATE_RUNNING
|
SHELL_APP_STATE_RUNNING,
|
||||||
|
SHELL_APP_STATE_BUSY
|
||||||
} ShellAppState;
|
} ShellAppState;
|
||||||
|
|
||||||
GType shell_app_get_type (void) G_GNUC_CONST;
|
GType shell_app_get_type (void) G_GNUC_CONST;
|
||||||
|
@ -15,6 +15,8 @@
|
|||||||
* @SHELL_KEYBINDING_MODE_SYSTEM_MODAL: allow keybinding when a system modal
|
* @SHELL_KEYBINDING_MODE_SYSTEM_MODAL: allow keybinding when a system modal
|
||||||
* dialog (e.g. authentification or session dialogs) is open
|
* dialog (e.g. authentification or session dialogs) is open
|
||||||
* @SHELL_KEYBINDING_MODE_LOOKING_GLASS: allow keybinding in looking glass
|
* @SHELL_KEYBINDING_MODE_LOOKING_GLASS: allow keybinding in looking glass
|
||||||
|
* @SHELL_KEYBINDING_MODE_TOPBAR_POPUP: allow keybinding while a top bar menu
|
||||||
|
* is open
|
||||||
* @SHELL_KEYBINDING_MODE_ALL: always allow keybinding
|
* @SHELL_KEYBINDING_MODE_ALL: always allow keybinding
|
||||||
*
|
*
|
||||||
* Controls in which GNOME Shell states a keybinding should be handled.
|
* Controls in which GNOME Shell states a keybinding should be handled.
|
||||||
@ -29,6 +31,7 @@ typedef enum {
|
|||||||
SHELL_KEYBINDING_MODE_MESSAGE_TRAY = 1 << 5,
|
SHELL_KEYBINDING_MODE_MESSAGE_TRAY = 1 << 5,
|
||||||
SHELL_KEYBINDING_MODE_SYSTEM_MODAL = 1 << 6,
|
SHELL_KEYBINDING_MODE_SYSTEM_MODAL = 1 << 6,
|
||||||
SHELL_KEYBINDING_MODE_LOOKING_GLASS = 1 << 7,
|
SHELL_KEYBINDING_MODE_LOOKING_GLASS = 1 << 7,
|
||||||
|
SHELL_KEYBINDING_MODE_TOPBAR_POPUP = 1 << 8,
|
||||||
|
|
||||||
SHELL_KEYBINDING_MODE_ALL = ~0,
|
SHELL_KEYBINDING_MODE_ALL = ~0,
|
||||||
} ShellKeyBindingMode;
|
} ShellKeyBindingMode;
|
||||||
|
137
src/shell-menu-tracker.c
Normal file
137
src/shell-menu-tracker.c
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2013 Red Hat
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as
|
||||||
|
* published by the Free Software Foundation; either version 2 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||||
|
* 02111-1307, USA.
|
||||||
|
*
|
||||||
|
* Written by:
|
||||||
|
* Jasper St. Pierre <jstpierre@mecheye.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
|
#include "shell-menu-tracker.h"
|
||||||
|
#include "gtkmenutracker.h"
|
||||||
|
|
||||||
|
struct _ShellMenuTracker
|
||||||
|
{
|
||||||
|
guint ref_count;
|
||||||
|
|
||||||
|
GtkMenuTracker *tracker;
|
||||||
|
|
||||||
|
ShellMenuTrackerInsertFunc insert_func;
|
||||||
|
gpointer insert_user_data;
|
||||||
|
GDestroyNotify insert_notify;
|
||||||
|
ShellMenuTrackerRemoveFunc remove_func;
|
||||||
|
gpointer remove_user_data;
|
||||||
|
GDestroyNotify remove_notify;
|
||||||
|
};
|
||||||
|
|
||||||
|
static void
|
||||||
|
shell_menu_tracker_insert_func (gint position,
|
||||||
|
GMenuModel *model,
|
||||||
|
gint item_index,
|
||||||
|
const gchar *action_namespace,
|
||||||
|
gboolean is_separator,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
ShellMenuTracker *tracker = (ShellMenuTracker *) user_data;
|
||||||
|
tracker->insert_func (position, model, item_index,
|
||||||
|
action_namespace, is_separator,
|
||||||
|
tracker->insert_user_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
shell_menu_tracker_remove_func (gint position,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
ShellMenuTracker *tracker = (ShellMenuTracker *) user_data;
|
||||||
|
tracker->remove_func (position, tracker->remove_user_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* shell_menu_tracker_new:
|
||||||
|
* @model:
|
||||||
|
* @action_namespace: (allow-none):
|
||||||
|
* @insert_func:
|
||||||
|
* @insert_user_data:
|
||||||
|
* @insert_notify:
|
||||||
|
* @remove_func:
|
||||||
|
* @remove_user_data:
|
||||||
|
* @remove_notify:
|
||||||
|
*/
|
||||||
|
ShellMenuTracker *
|
||||||
|
shell_menu_tracker_new (GMenuModel *model,
|
||||||
|
const gchar *action_namespace,
|
||||||
|
ShellMenuTrackerInsertFunc insert_func,
|
||||||
|
gpointer insert_user_data,
|
||||||
|
GDestroyNotify insert_notify,
|
||||||
|
ShellMenuTrackerRemoveFunc remove_func,
|
||||||
|
gpointer remove_user_data,
|
||||||
|
GDestroyNotify remove_notify)
|
||||||
|
{
|
||||||
|
ShellMenuTracker *tracker = g_slice_new0 (ShellMenuTracker);
|
||||||
|
|
||||||
|
tracker->ref_count = 1;
|
||||||
|
tracker->insert_func = insert_func;
|
||||||
|
tracker->insert_user_data = insert_user_data;
|
||||||
|
tracker->insert_notify = insert_notify;
|
||||||
|
tracker->remove_func = remove_func;
|
||||||
|
tracker->remove_user_data = remove_user_data;
|
||||||
|
tracker->remove_notify = remove_notify;
|
||||||
|
|
||||||
|
tracker->tracker = gtk_menu_tracker_new (model,
|
||||||
|
TRUE, /* with separators */
|
||||||
|
action_namespace,
|
||||||
|
shell_menu_tracker_insert_func,
|
||||||
|
shell_menu_tracker_remove_func,
|
||||||
|
tracker);
|
||||||
|
|
||||||
|
return tracker;
|
||||||
|
}
|
||||||
|
|
||||||
|
ShellMenuTracker *
|
||||||
|
shell_menu_tracker_ref (ShellMenuTracker *tracker)
|
||||||
|
{
|
||||||
|
tracker->ref_count++;
|
||||||
|
return tracker;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
shell_menu_tracker_unref (ShellMenuTracker *tracker)
|
||||||
|
{
|
||||||
|
if (tracker->ref_count-- <= 0)
|
||||||
|
{
|
||||||
|
shell_menu_tracker_destroy (tracker);
|
||||||
|
g_slice_free (ShellMenuTracker, tracker);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
shell_menu_tracker_destroy (ShellMenuTracker *tracker)
|
||||||
|
{
|
||||||
|
if (tracker->tracker != NULL)
|
||||||
|
{
|
||||||
|
gtk_menu_tracker_free (tracker->tracker);
|
||||||
|
tracker->tracker = NULL;
|
||||||
|
tracker->insert_notify (tracker->insert_user_data);
|
||||||
|
tracker->remove_notify (tracker->remove_user_data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
G_DEFINE_BOXED_TYPE(ShellMenuTracker,
|
||||||
|
shell_menu_tracker,
|
||||||
|
shell_menu_tracker_ref,
|
||||||
|
shell_menu_tracker_unref)
|
54
src/shell-menu-tracker.h
Normal file
54
src/shell-menu-tracker.h
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2013 Red Hat
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as
|
||||||
|
* published by the Free Software Foundation; either version 2 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||||
|
* 02111-1307, USA.
|
||||||
|
*
|
||||||
|
* Written by:
|
||||||
|
* Jasper St. Pierre <jstpierre@mecheye.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __SHELL_MENU_TRACKER_H__
|
||||||
|
#define __SHELL_MENU_TRACKER_H__
|
||||||
|
|
||||||
|
#include <gio/gio.h>
|
||||||
|
|
||||||
|
typedef struct _ShellMenuTracker ShellMenuTracker;
|
||||||
|
|
||||||
|
GType shell_menu_tracker_get_type (void) G_GNUC_CONST;
|
||||||
|
|
||||||
|
typedef void (* ShellMenuTrackerInsertFunc) (gint position,
|
||||||
|
GMenuModel *model,
|
||||||
|
gint item_index,
|
||||||
|
const gchar *action_namespace,
|
||||||
|
gboolean is_separator,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
typedef void (* ShellMenuTrackerRemoveFunc) (gint position,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
ShellMenuTracker * shell_menu_tracker_new (GMenuModel *model,
|
||||||
|
const gchar *action_namespace,
|
||||||
|
ShellMenuTrackerInsertFunc insert_func,
|
||||||
|
gpointer insert_user_data,
|
||||||
|
GDestroyNotify insert_notify,
|
||||||
|
ShellMenuTrackerRemoveFunc remove_func,
|
||||||
|
gpointer remove_user_data,
|
||||||
|
GDestroyNotify remove_notify);
|
||||||
|
ShellMenuTracker * shell_menu_tracker_ref (ShellMenuTracker *tracker);
|
||||||
|
void shell_menu_tracker_unref (ShellMenuTracker *tracker);
|
||||||
|
void shell_menu_tracker_destroy (ShellMenuTracker *tracker);
|
||||||
|
|
||||||
|
#endif /* __SHELL_MENU_TRACKER_H__ */
|
@ -410,8 +410,8 @@ st_icon_finish_update (StIcon *icon)
|
|||||||
st_icon_update_shadow_material (icon);
|
st_icon_update_shadow_material (icon);
|
||||||
|
|
||||||
/* "pixbuf-change" is actually a misnomer for "texture-changed" */
|
/* "pixbuf-change" is actually a misnomer for "texture-changed" */
|
||||||
g_signal_connect (priv->icon_texture, "pixbuf-change",
|
g_signal_connect_object (priv->icon_texture, "pixbuf-change",
|
||||||
G_CALLBACK (on_pixbuf_changed), icon);
|
G_CALLBACK (on_pixbuf_changed), icon, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -469,7 +469,7 @@ st_icon_update (StIcon *icon)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Will be shown when fully loaded */
|
/* Will be shown when fully loaded */
|
||||||
priv->opacity_handler_id = g_signal_connect (priv->pending_texture, "notify::opacity", G_CALLBACK (opacity_changed_cb), icon);
|
priv->opacity_handler_id = g_signal_connect_object (priv->pending_texture, "notify::opacity", G_CALLBACK (opacity_changed_cb), icon, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (priv->icon_texture)
|
else if (priv->icon_texture)
|
||||||
|
@ -74,27 +74,24 @@ st_im_text_dispose (GObject *object)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
update_im_cursor_location (StIMText *self)
|
st_im_text_cursor_event (ClutterText *self,
|
||||||
|
const ClutterGeometry *geometry)
|
||||||
{
|
{
|
||||||
StIMTextPrivate *priv = self->priv;
|
StIMTextPrivate *priv = ST_IM_TEXT (self)->priv;
|
||||||
ClutterText *clutter_text = CLUTTER_TEXT (self);
|
|
||||||
gint position;
|
|
||||||
gfloat cursor_x, cursor_y, cursor_height;
|
|
||||||
gfloat actor_x, actor_y;
|
gfloat actor_x, actor_y;
|
||||||
GdkRectangle area;
|
GdkRectangle area;
|
||||||
|
|
||||||
position = clutter_text_get_cursor_position (clutter_text);
|
|
||||||
clutter_text_position_to_coords (clutter_text, position,
|
|
||||||
&cursor_x, &cursor_y, &cursor_height);
|
|
||||||
|
|
||||||
clutter_actor_get_transformed_position (CLUTTER_ACTOR (self), &actor_x, &actor_y);
|
clutter_actor_get_transformed_position (CLUTTER_ACTOR (self), &actor_x, &actor_y);
|
||||||
|
|
||||||
area.x = (int)(0.5 + cursor_x + actor_x);
|
area.x = (int)(0.5 + geometry->x + actor_x);
|
||||||
area.y = (int)(0.5 + cursor_y + actor_y);
|
area.y = (int)(0.5 + geometry->y + actor_y);
|
||||||
area.width = 0;
|
area.width = geometry->width;
|
||||||
area.height = (int)(0.5 + cursor_height);
|
area.height = geometry->height;
|
||||||
|
|
||||||
gtk_im_context_set_cursor_location (priv->im_context, &area);
|
gtk_im_context_set_cursor_location (priv->im_context, &area);
|
||||||
|
|
||||||
|
if (CLUTTER_TEXT_CLASS (st_im_text_parent_class)->cursor_event)
|
||||||
|
CLUTTER_TEXT_CLASS (st_im_text_parent_class)->cursor_event (self, geometry);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -190,20 +187,6 @@ reset_im_context (StIMText *self)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
st_im_text_paint (ClutterActor *actor)
|
|
||||||
{
|
|
||||||
StIMText *self = ST_IM_TEXT (actor);
|
|
||||||
ClutterText *clutter_text = CLUTTER_TEXT (actor);
|
|
||||||
|
|
||||||
/* This updates the cursor position as a side-effect */
|
|
||||||
if (CLUTTER_ACTOR_CLASS (st_im_text_parent_class)->paint)
|
|
||||||
CLUTTER_ACTOR_CLASS (st_im_text_parent_class)->paint (actor);
|
|
||||||
|
|
||||||
if (clutter_text_get_editable (clutter_text))
|
|
||||||
update_im_cursor_location (self);
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
st_im_text_get_paint_volume (ClutterActor *self,
|
st_im_text_get_paint_volume (ClutterActor *self,
|
||||||
ClutterPaintVolume *volume)
|
ClutterPaintVolume *volume)
|
||||||
@ -426,12 +409,12 @@ st_im_text_class_init (StIMTextClass *klass)
|
|||||||
{
|
{
|
||||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||||
ClutterActorClass *actor_class = CLUTTER_ACTOR_CLASS (klass);
|
ClutterActorClass *actor_class = CLUTTER_ACTOR_CLASS (klass);
|
||||||
|
ClutterTextClass *text_class = CLUTTER_TEXT_CLASS (klass);
|
||||||
|
|
||||||
g_type_class_add_private (klass, sizeof (StIMTextPrivate));
|
g_type_class_add_private (klass, sizeof (StIMTextPrivate));
|
||||||
|
|
||||||
object_class->dispose = st_im_text_dispose;
|
object_class->dispose = st_im_text_dispose;
|
||||||
|
|
||||||
actor_class->paint = st_im_text_paint;
|
|
||||||
actor_class->get_paint_volume = st_im_text_get_paint_volume;
|
actor_class->get_paint_volume = st_im_text_get_paint_volume;
|
||||||
actor_class->realize = st_im_text_realize;
|
actor_class->realize = st_im_text_realize;
|
||||||
actor_class->unrealize = st_im_text_unrealize;
|
actor_class->unrealize = st_im_text_unrealize;
|
||||||
@ -440,6 +423,8 @@ st_im_text_class_init (StIMTextClass *klass)
|
|||||||
actor_class->captured_event = st_im_text_captured_event;
|
actor_class->captured_event = st_im_text_captured_event;
|
||||||
actor_class->key_focus_in = st_im_text_key_focus_in;
|
actor_class->key_focus_in = st_im_text_key_focus_in;
|
||||||
actor_class->key_focus_out = st_im_text_key_focus_out;
|
actor_class->key_focus_out = st_im_text_key_focus_out;
|
||||||
|
|
||||||
|
text_class->cursor_event = st_im_text_cursor_event;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -879,6 +879,101 @@ st_theme_node_get_double (StThemeNode *node,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* st_theme_node_lookup_url:
|
||||||
|
* @node: a #StThemeNode
|
||||||
|
* @property_name: The name of the string property
|
||||||
|
* @inherit: if %TRUE, if a value is not found for the property on the
|
||||||
|
* node, then it will be looked up on the parent node, and then on the
|
||||||
|
* parent's parent, and so forth. Note that if the property has a
|
||||||
|
* value of 'inherit' it will be inherited even if %FALSE is passed
|
||||||
|
* in for @inherit; this only affects the default behavior for inheritance.
|
||||||
|
* @value: (out): location to store the newly allocated value that was
|
||||||
|
* determined. If the property is not found, the value in this location
|
||||||
|
* will not be changed.
|
||||||
|
*
|
||||||
|
* Looks up a property containing a single URL value.
|
||||||
|
*
|
||||||
|
* See also st_theme_node_get_url(), which provides a simpler API.
|
||||||
|
*
|
||||||
|
* Return value: %TRUE if the property was found in the properties for this
|
||||||
|
* theme node (or in the properties of parent nodes when inheriting.)
|
||||||
|
*/
|
||||||
|
gboolean
|
||||||
|
st_theme_node_lookup_url (StThemeNode *node,
|
||||||
|
const char *property_name,
|
||||||
|
gboolean inherit,
|
||||||
|
char **value)
|
||||||
|
{
|
||||||
|
gboolean result = FALSE;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
ensure_properties (node);
|
||||||
|
|
||||||
|
for (i = node->n_properties - 1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
CRDeclaration *decl = node->properties[i];
|
||||||
|
|
||||||
|
if (strcmp (decl->property->stryng->str, property_name) == 0)
|
||||||
|
{
|
||||||
|
CRTerm *term = decl->value;
|
||||||
|
CRStyleSheet *base_stylesheet;
|
||||||
|
GFile *file;
|
||||||
|
|
||||||
|
if (term->type != TERM_URI && term->type != TERM_STRING)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (decl->parent_statement != NULL)
|
||||||
|
base_stylesheet = decl->parent_statement->parent_sheet;
|
||||||
|
else
|
||||||
|
base_stylesheet = NULL;
|
||||||
|
|
||||||
|
file = _st_theme_resolve_url (node->theme,
|
||||||
|
base_stylesheet,
|
||||||
|
decl->value->content.str->stryng->str);
|
||||||
|
*value = g_file_get_path (file);
|
||||||
|
g_object_unref (file);
|
||||||
|
result = TRUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!result && inherit && node->parent_node)
|
||||||
|
result = st_theme_node_lookup_url (node->parent_node, property_name, inherit, value);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* st_theme_node_get_url:
|
||||||
|
* @node: a #StThemeNode
|
||||||
|
* @property_name: The name of the string property
|
||||||
|
*
|
||||||
|
* Looks up a property containing a single URL value.
|
||||||
|
*
|
||||||
|
* See also st_theme_node_lookup_url(), which provides more options,
|
||||||
|
* and lets you handle the case where the theme does not specify the
|
||||||
|
* indicated value.
|
||||||
|
*
|
||||||
|
* Return value: the newly allocated value if found.
|
||||||
|
* If @property_name is not found, a warning will be logged and %NULL
|
||||||
|
* will be returned.
|
||||||
|
*/
|
||||||
|
char *
|
||||||
|
st_theme_node_get_url (StThemeNode *node,
|
||||||
|
const char *property_name)
|
||||||
|
{
|
||||||
|
char *value;
|
||||||
|
|
||||||
|
if (st_theme_node_lookup_url (node, property_name, FALSE, &value))
|
||||||
|
return value;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
g_warning ("Did not find string property '%s'", property_name);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static const PangoFontDescription *
|
static const PangoFontDescription *
|
||||||
get_parent_font (StThemeNode *node)
|
get_parent_font (StThemeNode *node)
|
||||||
{
|
{
|
||||||
@ -1554,6 +1649,7 @@ void
|
|||||||
_st_theme_node_ensure_geometry (StThemeNode *node)
|
_st_theme_node_ensure_geometry (StThemeNode *node)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
int width, height;
|
||||||
|
|
||||||
if (node->geometry_computed)
|
if (node->geometry_computed)
|
||||||
return;
|
return;
|
||||||
@ -1571,6 +1667,8 @@ _st_theme_node_ensure_geometry (StThemeNode *node)
|
|||||||
node->outline_width = 0;
|
node->outline_width = 0;
|
||||||
node->outline_color = TRANSPARENT_COLOR;
|
node->outline_color = TRANSPARENT_COLOR;
|
||||||
|
|
||||||
|
width = -1;
|
||||||
|
height = -1;
|
||||||
node->width = -1;
|
node->width = -1;
|
||||||
node->height = -1;
|
node->height = -1;
|
||||||
node->min_width = -1;
|
node->min_width = -1;
|
||||||
@ -1590,8 +1688,12 @@ _st_theme_node_ensure_geometry (StThemeNode *node)
|
|||||||
else if (g_str_has_prefix (property_name, "padding"))
|
else if (g_str_has_prefix (property_name, "padding"))
|
||||||
do_padding_property (node, decl);
|
do_padding_property (node, decl);
|
||||||
else if (strcmp (property_name, "width") == 0)
|
else if (strcmp (property_name, "width") == 0)
|
||||||
do_size_property (node, decl, &node->width);
|
do_size_property (node, decl, &width);
|
||||||
else if (strcmp (property_name, "height") == 0)
|
else if (strcmp (property_name, "height") == 0)
|
||||||
|
do_size_property (node, decl, &height);
|
||||||
|
else if (strcmp (property_name, "-st-natural-width") == 0)
|
||||||
|
do_size_property (node, decl, &node->width);
|
||||||
|
else if (strcmp (property_name, "-st-natural-height") == 0)
|
||||||
do_size_property (node, decl, &node->height);
|
do_size_property (node, decl, &node->height);
|
||||||
else if (strcmp (property_name, "min-width") == 0)
|
else if (strcmp (property_name, "min-width") == 0)
|
||||||
do_size_property (node, decl, &node->min_width);
|
do_size_property (node, decl, &node->min_width);
|
||||||
@ -1603,29 +1705,43 @@ _st_theme_node_ensure_geometry (StThemeNode *node)
|
|||||||
do_size_property (node, decl, &node->max_height);
|
do_size_property (node, decl, &node->max_height);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (node->width != -1)
|
/*
|
||||||
|
* Setting width sets max-width, min-width and -st-natural-width,
|
||||||
|
* unless one of them is set individually.
|
||||||
|
* Setting min-width sets natural width too, so that the minimum
|
||||||
|
* width reported by get_preferred_width() is always not greater
|
||||||
|
* than the natural width.
|
||||||
|
* The natural width in node->width is actually a lower bound, the
|
||||||
|
* actor is allowed to request something greater than that, but
|
||||||
|
* not greater than max-width.
|
||||||
|
* We don't need to clamp node->width to be less than max_width,
|
||||||
|
* that's done by adjust_preferred_width.
|
||||||
|
*/
|
||||||
|
if (width != -1)
|
||||||
{
|
{
|
||||||
|
if (node->width == -1)
|
||||||
|
node->width = width;
|
||||||
if (node->min_width == -1)
|
if (node->min_width == -1)
|
||||||
node->min_width = node->width;
|
node->min_width = width;
|
||||||
else if (node->width < node->min_width)
|
|
||||||
node->width = node->min_width;
|
|
||||||
if (node->max_width == -1)
|
if (node->max_width == -1)
|
||||||
node->max_width = node->width;
|
node->max_width = width;
|
||||||
else if (node->width > node->max_width)
|
|
||||||
node->width = node->max_width;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (node->height != -1)
|
if (node->width < node->min_width)
|
||||||
|
node->width = node->min_width;
|
||||||
|
|
||||||
|
if (height != -1)
|
||||||
{
|
{
|
||||||
|
if (node->height == -1)
|
||||||
|
node->height = height;
|
||||||
if (node->min_height == -1)
|
if (node->min_height == -1)
|
||||||
node->min_height = node->height;
|
node->min_height = height;
|
||||||
else if (node->height < node->min_height)
|
|
||||||
node->height = node->min_height;
|
|
||||||
if (node->max_height == -1)
|
if (node->max_height == -1)
|
||||||
node->max_height = node->height;
|
node->max_height = height;
|
||||||
else if (node->height > node->max_height)
|
|
||||||
node->height = node->max_height;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (node->height < node->min_height)
|
||||||
|
node->height = node->min_height;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
@ -3425,7 +3541,7 @@ st_theme_node_adjust_preferred_width (StThemeNode *node,
|
|||||||
if (natural_width_p)
|
if (natural_width_p)
|
||||||
{
|
{
|
||||||
if (node->width != -1)
|
if (node->width != -1)
|
||||||
*natural_width_p = node->width;
|
*natural_width_p = MAX (*natural_width_p, node->width);
|
||||||
if (node->max_width != -1)
|
if (node->max_width != -1)
|
||||||
*natural_width_p = MIN (*natural_width_p, node->max_width);
|
*natural_width_p = MIN (*natural_width_p, node->max_width);
|
||||||
*natural_width_p += width_inc;
|
*natural_width_p += width_inc;
|
||||||
@ -3491,7 +3607,7 @@ st_theme_node_adjust_preferred_height (StThemeNode *node,
|
|||||||
if (natural_height_p)
|
if (natural_height_p)
|
||||||
{
|
{
|
||||||
if (node->height != -1)
|
if (node->height != -1)
|
||||||
*natural_height_p = node->height;
|
*natural_height_p = MAX (*natural_height_p, node->height);
|
||||||
if (node->max_height != -1)
|
if (node->max_height != -1)
|
||||||
*natural_height_p = MIN (*natural_height_p, node->max_height);
|
*natural_height_p = MIN (*natural_height_p, node->max_height);
|
||||||
*natural_height_p += height_inc;
|
*natural_height_p += height_inc;
|
||||||
|
@ -142,6 +142,10 @@ gboolean st_theme_node_lookup_shadow (StThemeNode *node,
|
|||||||
const char *property_name,
|
const char *property_name,
|
||||||
gboolean inherit,
|
gboolean inherit,
|
||||||
StShadow **shadow);
|
StShadow **shadow);
|
||||||
|
gboolean st_theme_node_lookup_url (StThemeNode *node,
|
||||||
|
const char *property_name,
|
||||||
|
gboolean inherit,
|
||||||
|
char **value);
|
||||||
|
|
||||||
/* Easier-to-use variants of the above, for application-level use */
|
/* Easier-to-use variants of the above, for application-level use */
|
||||||
void st_theme_node_get_color (StThemeNode *node,
|
void st_theme_node_get_color (StThemeNode *node,
|
||||||
@ -153,6 +157,8 @@ gdouble st_theme_node_get_length (StThemeNode *node,
|
|||||||
const char *property_name);
|
const char *property_name);
|
||||||
StShadow *st_theme_node_get_shadow (StThemeNode *node,
|
StShadow *st_theme_node_get_shadow (StThemeNode *node,
|
||||||
const char *property_name);
|
const char *property_name);
|
||||||
|
char *st_theme_node_get_url (StThemeNode *node,
|
||||||
|
const char *property_name);
|
||||||
|
|
||||||
/* Specific getters for particular properties: cached
|
/* Specific getters for particular properties: cached
|
||||||
*/
|
*/
|
||||||
|
@ -1533,6 +1533,7 @@ st_widget_recompute_style (StWidget *widget,
|
|||||||
StThemeNode *new_theme_node = st_widget_get_theme_node (widget);
|
StThemeNode *new_theme_node = st_widget_get_theme_node (widget);
|
||||||
int transition_duration;
|
int transition_duration;
|
||||||
gboolean paint_equal;
|
gboolean paint_equal;
|
||||||
|
gboolean animations_enabled;
|
||||||
|
|
||||||
if (new_theme_node == old_theme_node)
|
if (new_theme_node == old_theme_node)
|
||||||
{
|
{
|
||||||
@ -1551,7 +1552,11 @@ st_widget_recompute_style (StWidget *widget,
|
|||||||
if (paint_equal)
|
if (paint_equal)
|
||||||
st_theme_node_copy_cached_paint_state (new_theme_node, old_theme_node);
|
st_theme_node_copy_cached_paint_state (new_theme_node, old_theme_node);
|
||||||
|
|
||||||
if (transition_duration > 0)
|
g_object_get (gtk_settings_get_default (),
|
||||||
|
"gtk-enable-animations", &animations_enabled,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
if (animations_enabled && transition_duration > 0)
|
||||||
{
|
{
|
||||||
if (widget->priv->transition_animation != NULL)
|
if (widget->priv->transition_animation != NULL)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user