Compare commits

..

15 Commits

Author SHA1 Message Date
45797a977b app-system: Add back StartupWMClass matching
While unfortunate that we still have to scan all apps with get_all(),
support for this feature will be short-lived, so hopefully we can drop
it in the future as new apps adapt to the desktop file / app ID
recommendations.

For now, simply scan all desktop IDs.
2013-10-02 18:22:28 -04:00
884b94233e app-system: Put back support for the installed-changed signal
Use the new GAppInfoMonitor that Ryan added to glib to know when the
set of apps has changed.
2013-10-02 18:22:27 -04:00
74d3e3139f app-system: Lazily create ShellApps for apps we care about
Rather than create all ShellApps up-front, create them lazily. We really
had no reason to do this before as we were scanning GMenu to get all the
apps, but doing this can remove a need for get_all, which is slow and
memory-hungry.
2013-10-02 18:22:27 -04:00
77b5385cc3 appDisplay: Use the desktop file index for app searching
Rather than scanning all apps for searching, use Ryan's new desktop
file index and the glib support APIs for app searching instead of our
own system.
2013-10-02 18:22:27 -04:00
d749d646be appDisplay: Use a proper string key for the app search provider
We were always sort of cheating when we used objects as the search ID.
Since the new desktop file index will return us a list of desktop file
IDs, just use those as IDs instead.
2013-10-02 18:22:27 -04:00
fa8224d7b5 app-system: Remove use of gnome-menus internally
We want to transition to a system in the future where we have a desktop
file cache. As we no longer differentiate categories or similar, it no
longer makes sense to have app visibility based on categories. Thus,
we no longer need to use gnome-menus to list all apps. The potential
issue here is reloading all desktop files when new files are created,
but this can be dealt with individually.

The "All Applications" view still uses gnome-menus.

https://bugzilla.gnome.org/show_bug.cgi?id=698486
2013-10-02 18:22:27 -04:00
f687197ccc appDisplay: Ignore the NoDisplay flag for directories
This makes us match the native app search.

https://bugzilla.gnome.org/show_bug.cgi?id=698486
2013-10-02 18:22:15 -04:00
28a6aefb6c app-system: Remove visible_id_to_app
Since appDisplay.js makes its own GMenu tree, it's not necessary
anymore. This does mean that searches will show apps in NoDisplay
categories, but that's an obscure enough edge case not to matter.

https://bugzilla.gnome.org/show_bug.cgi?id=698486
2013-10-02 18:22:15 -04:00
96c2a90e11 app-system: Remove lookup_app_for_path
It's absurdly silly. Just modify the one place that uses it
to be better.

https://bugzilla.gnome.org/show_bug.cgi?id=698486
2013-10-02 18:22:15 -04:00
63cf46e49b app-system: Remove known_vendor_prefixes
This does remove support for legacy prefixed app infos with
subdirs, but since we want to remove support for the menu spec,
let's not even bother.

https://bugzilla.gnome.org/show_bug.cgi?id=698486
2013-10-02 18:22:15 -04:00
200a9ef1af app-system: Remove get_tree
Make clients construct their own gmenu tree if they need it.

https://bugzilla.gnome.org/show_bug.cgi?id=698486
2013-10-02 18:22:08 -04:00
6050ca6e0c app-system: Map wmclass to ID rather than apps
This makes the refcounting and memory management easier to understand.
2013-10-02 18:22:08 -04:00
8bd7db9227 app-system: Don't use gmenu_tree_entry_get_desktop_app_info
It's a broken method when it comes to giving us a useful GDesktopAppInfo,
and it's hard to fix libgmenu properly, so simply recreate the app info
using the desktop file ID that libgmenu has.
2013-10-02 18:22:07 -04:00
982feb85c1 app: Port to be based on GDesktopAppInfo
We weren't using the GMenuTreeEntry for anything special anymore,
so remove it.

https://bugzilla.gnome.org/show_bug.cgi?id=698486
2013-10-02 18:14:18 -04:00
f165cc23c0 app-system: Remove lookup_app_by_tree_entry
We want to move away from gnome-menus eventually, so the simple
utility method isn't really worth keeping around. Reimplement it
in the one place that uses it.

https://bugzilla.gnome.org/show_bug.cgi?id=698486
2013-10-02 17:39:36 -04:00
95 changed files with 13815 additions and 14690 deletions

102
NEWS
View File

@ -1,105 +1,3 @@
3.10.4
======
* Fix keyboard activation of legacy tray icons [Giovanni; #721267]
* Fix regressions from window-tracking changes in 3.10.3 [Florian; #722434,
#722690, #722840, #723308, #722928]
* Scale UI on high-resolution displays [Adel; #705410]
* Misc. bug fixes [Giovanni, Jasper; #722547, #723197, #724256]
Contributors:
Giovanni Campagna, Adel Gadllah, Florian Müllner, Jasper St. Pierre
Translations:
Nilamdyuti Goswami [as], Stas Solovey [ru], A S Alam [pa]
3.10.3
======
* Fix reentrancy issue in message tray [Jasper; #711694]
* Fix resetting prompt on user switch [Ray; #710456]
* Fix screen shield on login screen [Florian; #719378]
* Catch more extension errors on enable/disable [Sebastien; #688331]
* Fix entry focus of chat notifications [Jasper; #709853]
* Fix app switcher order with dialog windows [Florian; #719824]
* Allow remote search providers without icons [Debarshi; #719965]
* Fix ref-counting issue in ShellApp [Giovanni; #721439]
Contributors:
Giovanni Campagna, Sebastien Lafargue, Florian Müllner, Debarshi Ray,
Jasper St. Pierre, Ray Strode
Translations:
Emin Tufan Çetin [tr], Muhammet Kara [tr], A S Alam [pa], Khaled Hosny [ar],
Dušan Kazik [sk], Wylmer Wang [zh_CN], Benjamin Steinwender [de],
Matej Urbančič [sl], Aurimas Černius [lt], Rafael Ferreira [pt_BR],
Andika Triwidada [id], Marek Černocký [cs], Tong Hui [zh_CN],
Adorilson Bezerra [pt_BR], Christian Kirbach [de],
Мирослав Николић [sr, sr@latin]
3.10.2.1
========
* Lower mutter requirement to not end up without wayland support
3.10.2
======
* gdm: Don't allow user-list to fill up the entire screen [Florian; #710555]
* Restore support for 'disable-restart-buttons' [Florian; #711244]
* alidate parameters of exposed DBus methods [Florian; #699752]
* Misc. bug fixes [Florian; #709806]
Contributors:
Florian Müllner
Translations:
Ihar Hrachyshka [be], Stas Solovey [ru], Kjartan Maraas [nb],
Dimitris Spingos [el], Rafael Ferreira [pt_BR], Yuri Myasoedov [ru],
Sphinx Jiang [zh_CN], Shantha kumar [ta]
3.10.1
======
* Make sure lock screen is drawn once before switching user [Giovanni; #708051]
* Fix signal strength indicators in network selector [Jasper; #708442]
* Scroll search results when focusing provider icons [Jasper; #708868]
* Add separate hover/active states to page indicators [Carlos; #708852]
* Tweak appearance of user name and avatar [Yash; #702309]
* Hide "Turn On" in network menu when disabled by hardware [Giovanni; #709635]
* Cancel open keyring prompts when the screen is locked [Florian; #708910]
* Differentiate "Not Connected" and "Off" in network menu [Giovanni; #709043]
* Make network settings items point to the right device [Giovanni; #709246]
* Remove animation of window preview titles [Sebastien; #709392]
* Add 'Notifications' switch to tray menu [Florian; #707073]
* Make dropdown arrows consistent [Carlos; #709564]
* power: Use icon from primary device for status [Jasper; #709925]
* Fix XDND drags to overview [Adel; #708887]
* Fix workspace switcher disappearing with too many workspaces [Jasper; #694881]
* Handle search results with 'special:' prefix specially [Giovanni; #707055]
* gdm: Support pre-authenticated logins from oVirt [Vinzenz; #702162]
* Use ARROW role for labels representing arrows [Alejandro; #710120]
* Make selected view in app picker persistent [Florian; #710042]
* Make network selector navigable by keyboard [Alejandro; #710144]
* Misc bug fixes [Florian, Adel, Jasper, Aleksander, Giovanni, Dan, Michael,
Tim; #709034, #709263, #698486, #709286, #709248, #709543, #696564, #703265,
#709638, #709866, #709998, #710019, #710104, #710115]
Contributors:
Giovanni Campagna, Michael Catanzaro, Vinzenz Feenstra, Adel Gadllah,
Yash Girdhar, Sebastien Lafargue, Tim Lunn, Aleksander Morgado,
Florian Müllner, Alejandro Piñeiro, Carlos Soriano, Jasper St. Pierre,
Dieter Verfaillie, Dan Winship
Translations:
Inaki Larranaga Murgoitio [eu], Christian Kirbach [de], Muhammet Kara [tr],
Aurimas Černius [lt], Ryan Lortie [eo], Rūdolfs Mazurs [lv],
Dušan Kazik [sk], Fran Diéguez [gl], Enrico Nicoletto [pt_BR],
Kjartan Maraas [nb], Victor Ibragimov [tg], Matej Urbančič [sl],
A S Alam [pa], Nilamdyuti Goswami [as], Daniel Mustieles [es],
Cheng-Chia Tseng [zh_HK, zh_TW], Mattias Põldaru [et], Kenneth Nielsen [da],
Milo Casagrande [it], Marek Černocký [cs], Ihar Hrachyshka [be],
Мирослав Николић [sr, sr@latin], Arash Mousavi [fa], Yuri Myasoedov [ru],
Gil Forcada [ca], Carles Ferrando [ca@valencia], Andika Triwidada [id],
Timo Jyrinki [fi], Piotr Drąg [pl], Rafael Ferreira [pt_BR],
Gabor Kelemen [hu], Yosef Or Boczko [he], Daniel Korostil [uk],
Wouter Bolsterlee [nl], António Lima [pt]
3.10.0.1
=========
* Fix login screen [Ray; #708691]

View File

@ -1,5 +1,5 @@
AC_PREREQ(2.63)
AC_INIT([gnome-shell],[3.10.4],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AC_INIT([gnome-shell],[3.10.0.1],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_SRCDIR([src/shell-global.c])
@ -59,8 +59,8 @@ AM_CONDITIONAL(BUILD_RECORDER, $build_recorder)
CLUTTER_MIN_VERSION=1.13.4
GOBJECT_INTROSPECTION_MIN_VERSION=0.10.1
GJS_MIN_VERSION=1.38.1
MUTTER_MIN_VERSION=3.10.4
GJS_MIN_VERSION=1.35.4
MUTTER_MIN_VERSION=3.10.0
GTK_MIN_VERSION=3.7.9
GIO_MIN_VERSION=2.37.0
LIBECAL_MIN_VERSION=3.5.3
@ -70,7 +70,6 @@ POLKIT_MIN_VERSION=0.100
STARTUP_NOTIFICATION_MIN_VERSION=0.11
GCR_MIN_VERSION=3.7.5
GNOME_DESKTOP_REQUIRED_VERSION=3.7.90
GNOME_MENUS_REQUIRED_VERSION=3.5.3
NETWORKMANAGER_MIN_VERSION=0.9.8
PULSE_MIN_VERS=2.0
@ -80,7 +79,6 @@ SHARED_PCS="gio-unix-2.0 >= $GIO_MIN_VERSION
gtk+-3.0 >= $GTK_MIN_VERSION
atk-bridge-2.0
gjs-internals-1.0 >= $GJS_MIN_VERSION
libgnome-menu-3.0 >= $GNOME_MENUS_REQUIRED_VERSION
$recorder_modules
gdk-x11-3.0 libsoup-2.4
xtst

View File

@ -37,13 +37,6 @@
application view, rather than being displayed inline in the main view.
</_description>
</key>
<key name="app-picker-view" type="u">
<default>0</default>
<summary>App Picker View</summary>
<description>
Index of the currently selected view in the application picker.
</description>
</key>
<key name="command-history" type="as">
<default>[]</default>
<_summary>History for command (Alt-F2) dialog</_summary>

View File

@ -157,7 +157,7 @@ StScrollBar StButton#vhandle:active {
min-width: 200px;
}
.unicode-arrow {
.popup-submenu-menu-item-triangle {
font-size: 120%;
}
@ -693,9 +693,7 @@ StScrollBar StButton#vhandle:active {
padding-bottom: 32px;
}
.workspace-thumbnails {
spacing: 11px;
visible-width: 32px; /* Amount visible before hovering */
.workspace-thumbnails-background {
border: 1px solid rgba(128, 128, 128, 0.4);
border-right: 0px;
border-radius: 9px 0px 0px 9px;
@ -703,13 +701,18 @@ StScrollBar StButton#vhandle:active {
padding: 11px 7px 11px 11px;
}
.workspace-thumbnails:rtl {
.workspace-thumbnails-background:rtl {
border-right: 1px;
border-left: 0px;
border-radius: 0px 9px 9px 0px;
padding: 11px 11px 11px 7px;
}
.workspace-thumbnails {
spacing: 11px;
visible-width: 32px; /* Amount visible before hovering */
}
.workspace-thumbnail-indicator {
border: 4px solid rgba(255,255,255,0.7);
border-radius: 4px;
@ -2273,7 +2276,7 @@ StScrollBar StButton#vhandle:active {
.framed-user-icon {
border: 2px solid #8b8b8b;
border-radius: 3px;
border-radius: 5px;
background-size: contain;
}
@ -2317,7 +2320,7 @@ StScrollBar StButton#vhandle:active {
}
.login-dialog-user-list-item {
border-radius: 5px;
border-radius: 10px;
padding: .2em;
}
@ -2330,20 +2333,19 @@ StScrollBar StButton#vhandle:active {
}
.login-dialog-user-list-item .login-dialog-user-list-item-name {
font-size: 20px;
padding-left: 18px;
font-weight: bold;
font-size: 20pt;
padding-left: 9px;
}
.login-dialog-user-list:expanded .login-dialog-user-list-item {
color: #bfbfbf;
color: #666666;
}
.login-dialog-user-list-item,
.login-dialog-user-list-item:hover .login-dialog-user-list-item-name,
.login-dialog-user-list:expanded .login-dialog-user-list-item:focus .login-dialog-user-list-item-name,
.login-dialog-user-list:expanded .login-dialog-user-list-item:logged-in {
color: #bfbfbf;
color: white;
text-shadow: black 0px 2px 2px;
}
@ -2375,7 +2377,7 @@ StScrollBar StButton#vhandle:active {
.login-dialog-user-list-item-icon {
border: 2px solid #8b8b8b;
border-radius: 3px;
border-radius: 8px;
width: 64px;
height: 64px;
}
@ -2387,10 +2389,6 @@ StScrollBar StButton#vhandle:active {
padding-top: 1em;
}
.login-dialog-user-selection-box {
padding: 100px 0;
}
.login-dialog-user-selection-box .login-dialog-not-listed-label {
padding-left: 2px;
}
@ -2496,11 +2494,10 @@ StScrollBar StButton#vhandle:active {
}
.user-widget-label {
font-size: 20px;
font-size: 16pt;
font-weight: bold;
text-align: left;
padding-left: 18px;
color:white;
padding-left: 15px;
text-shadow: black 0px 4px 3px 0px;
}

View File

@ -21,7 +21,6 @@ nobase_dist_js_DATA = \
gdm/batch.js \
gdm/fingerprint.js \
gdm/loginDialog.js \
gdm/oVirt.js \
gdm/realmd.js \
gdm/util.js \
extensionPrefs/main.js \

View File

@ -59,7 +59,6 @@ const AuthPrompt = new Lang.Class({
this._userVerifier.connect('verification-complete', Lang.bind(this, this._onVerificationComplete));
this._userVerifier.connect('reset', Lang.bind(this, this._onReset));
this._userVerifier.connect('smartcard-status-changed', Lang.bind(this, this._onSmartcardStatusChanged));
this._userVerifier.connect('ovirt-user-authenticated', Lang.bind(this, this._onOVirtUserAuthenticated));
this.smartcardDetected = this._userVerifier.smartcardDetected;
this.connect('next', Lang.bind(this, function() {
@ -220,11 +219,6 @@ const AuthPrompt = new Lang.Class({
this.emit('prompted');
},
_onOVirtUserAuthenticated: function() {
if (this.verificationStatus != AuthPromptStatus.VERIFICATION_SUCCEEDED)
this.reset();
},
_onSmartcardStatusChanged: function() {
this.smartcardDetected = this._userVerifier.smartcardDetected;
@ -263,8 +257,10 @@ const AuthPrompt = new Lang.Class({
},
_onReset: function() {
this.verificationStatus = AuthPromptStatus.NOT_VERIFYING;
this.reset();
if (this.verificationStatus != AuthPromptStatus.VERIFICATION_SUCCEEDED) {
this.verificationStatus = AuthPromptStatus.NOT_VERIFYING;
this.reset();
}
},
addActorToDefaultButtonWell: function(actor) {
@ -448,11 +444,10 @@ const AuthPrompt = new Lang.Class({
// The user is constant at the unlock screen, so it will immediately
// respond to the request with the username
beginRequestType = BeginRequestType.PROVIDE_USERNAME;
} else if (this._userVerifier.serviceIsForeground(GdmUtil.OVIRT_SERVICE_NAME) ||
(this.smartcardDetected &&
this._userVerifier.serviceIsForeground(GdmUtil.SMARTCARD_SERVICE_NAME))) {
} else if (this.smartcardDetected &&
this._userVerifier.serviceIsForeground(GdmUtil.SMARTCARD_SERVICE_NAME)) {
// We don't need to know the username if the user preempted the login screen
// with a smartcard or with preauthenticated oVirt credentials
// with a smartcard.
beginRequestType = BeginRequestType.DONT_PROVIDE_USERNAME;
} else {
// In all other cases, we should get the username up front.

View File

@ -907,10 +907,6 @@ const LoginDialog = new Lang.Class({
Main.ctrlAltTabManager.removeGroup(this.dialogLayout);
},
cancel: function() {
this._authPrompt.cancel();
},
addCharacter: function(unichar) {
this._authPrompt.addCharacter(unichar);
},

View File

@ -1,62 +0,0 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Gio = imports.gi.Gio;
const Lang = imports.lang;
const Signals = imports.signals;
const OVirtCredentialsIface = <interface name='org.ovirt.vdsm.Credentials'>
<signal name="UserAuthenticated">
<arg type="s" name="token"/>
</signal>
</interface>;
const OVirtCredentialsInfo = Gio.DBusInterfaceInfo.new_for_xml(OVirtCredentialsIface);
let _oVirtCredentialsManager = null;
function OVirtCredentials() {
var self = new Gio.DBusProxy({ g_connection: Gio.DBus.system,
g_interface_name: OVirtCredentialsInfo.name,
g_interface_info: OVirtCredentialsInfo,
g_name: 'org.ovirt.vdsm.Credentials',
g_object_path: '/org/ovirt/vdsm/Credentials',
g_flags: (Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES) });
self.init(null);
return self;
}
const OVirtCredentialsManager = new Lang.Class({
Name: 'OVirtCredentialsManager',
_init: function() {
this._token = null;
this._credentials = new OVirtCredentials();
this._credentials.connectSignal('UserAuthenticated',
Lang.bind(this, this._onUserAuthenticated));
},
_onUserAuthenticated: function(proxy, sender, [token]) {
this._token = token;
this.emit('user-authenticated', token);
},
hasToken: function() {
return this._token != null;
},
getToken: function() {
return this._token;
},
resetToken: function() {
this._token = null;
}
});
Signals.addSignalMethods(OVirtCredentialsManager.prototype);
function getOVirtCredentialsManager() {
if (!_oVirtCredentialsManager)
_oVirtCredentialsManager = new OVirtCredentialsManager();
return _oVirtCredentialsManager;
}

View File

@ -10,7 +10,6 @@ const St = imports.gi.St;
const Batch = imports.gdm.batch;
const Fprint = imports.gdm.fingerprint;
const OVirt = imports.gdm.oVirt;
const Main = imports.ui.main;
const Params = imports.misc.params;
const ShellEntry = imports.ui.shellEntry;
@ -20,7 +19,6 @@ const Tweener = imports.ui.tweener;
const PASSWORD_SERVICE_NAME = 'gdm-password';
const FINGERPRINT_SERVICE_NAME = 'gdm-fingerprint';
const SMARTCARD_SERVICE_NAME = 'gdm-smartcard';
const OVIRT_SERVICE_NAME = 'gdm-ovirtcred';
const FADE_ANIMATION_TIME = 0.16;
const CLONE_FADE_ANIMATION_TIME = 0.25;
@ -153,14 +151,6 @@ const ShellUserVerifier = new Lang.Class({
this.reauthenticating = false;
this._failCounter = 0;
this._oVirtCredentialsManager = OVirt.getOVirtCredentialsManager();
if (this._oVirtCredentialsManager.hasToken())
this._oVirtUserAuthenticated(this._oVirtCredentialsManager.getToken());
this._oVirtCredentialsManager.connect('user-authenticated',
Lang.bind(this, this._oVirtUserAuthenticated));
},
begin: function(userName, hold) {
@ -287,11 +277,6 @@ const ShellUserVerifier = new Lang.Class({
}));
},
_oVirtUserAuthenticated: function(token) {
this._preemptingService = OVIRT_SERVICE_NAME;
this.emit('ovirt-user-authenticated');
},
_checkForSmartcard: function() {
let smartcardDetected;
@ -470,12 +455,6 @@ const ShellUserVerifier = new Lang.Class({
if (!this.serviceIsForeground(serviceName))
return;
if (serviceName == OVIRT_SERVICE_NAME) {
// The only question asked by this service is "Token?"
this.answerQuery(serviceName, this._oVirtCredentialsManager.getToken());
return;
}
this.emit('ask-question', serviceName, secretQuestion, '\u25cf');
},
@ -536,16 +515,6 @@ const ShellUserVerifier = new Lang.Class({
},
_onConversationStopped: function(client, serviceName) {
// If the login failed with the preauthenticated oVirt credentials
// then discard the credentials and revert to default authentication
// mechanism.
if (this.serviceIsForeground(OVIRT_SERVICE_NAME)) {
this._oVirtCredentialsManager.resetToken();
this._preemptingService = null;
this._verificationFailed(false);
return;
}
// if the password service fails, then cancel everything.
// But if, e.g., fingerprint fails, still give
// password authentication a chance to succeed

View File

@ -1,7 +1,6 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Lang = imports.lang;
const St = imports.gi.St;
@ -80,22 +79,6 @@ function spawnCommandLine(command_line) {
}
}
// spawnApp:
// @argv: an argv array
//
// Runs @argv as if it was an application, handling startup notification
function spawnApp(argv) {
try {
let app = Gio.AppInfo.create_from_commandline(argv.join(' '), null,
Gio.AppInfoCreateFlags.SUPPORTS_STARTUP_NOTIFICATION);
let context = global.create_app_launch_context();
app.launch([], context);
} catch(err) {
_handleSpawnError(argv[0], err);
}
}
// trySpawn:
// @argv: an argv array
//

View File

@ -454,10 +454,9 @@ const AppSwitcher = new Lang.Class({
appIcon.cachedWindows = allWindows.filter(function(w) {
return windowTracker.get_window_app (w) == appIcon.app;
});
if (appIcon.cachedWindows.length > 0)
if (workspace == null || appIcon.cachedWindows.length > 0) {
this._addIcon(appIcon);
else if (workspace == null)
throw new Error('%s appears to be running, but doesn\'t have any windows'.format(appIcon.app.get_name()));
}
}
this._curApp = -1;

View File

@ -55,13 +55,13 @@ function _loadCategory(dir, view) {
while ((nextType = iter.next()) != GMenu.TreeItemType.INVALID) {
if (nextType == GMenu.TreeItemType.ENTRY) {
let entry = iter.get_entry();
let app = appSystem.lookup_app_by_tree_entry(entry);
if (!entry.get_app_info().get_nodisplay())
let appInfo = entry.get_app_info();
let app = appSystem.lookup_app(entry.get_desktop_file_id());
if (appInfo.should_show())
view.addApp(app);
} else if (nextType == GMenu.TreeItemType.DIRECTORY) {
let itemDir = iter.get_directory();
if (!itemDir.get_is_nodisplay())
_loadCategory(itemDir, view);
_loadCategory(itemDir, view);
}
}
};
@ -691,8 +691,7 @@ const AppDisplay = new Lang.Class({
Name: 'AppDisplay',
_init: function() {
this._appSystem = Shell.AppSystem.get_default();
this._appSystem.connect('installed-changed', Lang.bind(this, function() {
Shell.AppSystem.get_default().connect('installed-changed', Lang.bind(this, function() {
Main.queueDeferredWork(this._allAppsWorkId);
}));
Main.overview.connect('showing', Lang.bind(this, function() {
@ -744,15 +743,10 @@ const AppDisplay = new Lang.Class({
this._views[i].control.connect('clicked', Lang.bind(this,
function(actor) {
this._showView(viewIndex);
global.settings.set_uint('app-picker-view', viewIndex);
}));
}
let initialView = Math.min(global.settings.get_uint('app-picker-view'),
this._views.length - 1);
let frequentUseful = this._views[Views.FREQUENT].view.hasUsefulData();
if (initialView == Views.FREQUENT && !frequentUseful)
initialView = Views.ALL;
this._showView(initialView);
this._showView(frequentUseful ? Views.FREQUENT : Views.ALL);
this._updateFrequentVisibility();
// We need a dummy actor to catch the keyboard focus if the
@ -813,7 +807,8 @@ const AppDisplay = new Lang.Class({
view.removeAll();
let tree = this._appSystem.get_tree();
let tree = new GMenu.Tree({ menu_basename: "applications.menu" });
tree.load_sync();
let root = tree.get_root_directory();
let iter = root.iter();
@ -822,8 +817,6 @@ const AppDisplay = new Lang.Class({
while ((nextType = iter.next()) != GMenu.TreeItemType.INVALID) {
if (nextType == GMenu.TreeItemType.DIRECTORY) {
let dir = iter.get_directory();
if (dir.get_is_nodisplay())
continue;
if (folderCategories.indexOf(dir.get_menu_id()) != -1)
view.addFolder(dir);
@ -871,8 +864,8 @@ const AppSearchProvider = new Lang.Class({
getResultMetas: function(apps, callback) {
let metas = [];
for (let i = 0; i < apps.length; i++) {
let app = apps[i];
metas.push({ 'id': app,
let app = this._appSys.lookup_app(apps[i]);
metas.push({ 'id': app.get_id(),
'name': app.get_name(),
'createIcon': function(size) {
return app.create_icon_texture(size);
@ -882,19 +875,23 @@ const AppSearchProvider = new Lang.Class({
callback(metas);
},
filterResults: function(results, maxNumber) {
return results.slice(0, maxNumber);
_compareResults: function(a, b) {
let usage = Shell.AppUsage.get_default();
return usage.compare('', a, b);
},
getInitialResultSet: function(terms) {
this.searchSystem.setResults(this, this._appSys.initial_search(terms));
let query = terms.join(' ');
let results = Gio.DesktopAppInfo.search(query, Lang.bind(this, this._compareResults), MAX_COLUMNS);
this.searchSystem.setResults(this, results);
},
getSubsearchResultSet: function(previousResults, terms) {
this.searchSystem.setResults(this, this._appSys.subsearch(previousResults, terms));
this.getInitialResultSet(terms);
},
activateResult: function(app) {
activateResult: function(result) {
let app = this._appSys.lookup_app(result);
let event = Clutter.get_current_event();
let modifiers = event ? event.get_state() : 0;
let openNewWindow = modifiers & Clutter.ModifierType.CONTROL_MASK;
@ -914,7 +911,7 @@ const AppSearchProvider = new Lang.Class({
},
createResultObject: function (resultMeta, terms) {
let app = resultMeta['id'];
let app = this._appSys.lookup_app(resultMeta['id']);
return new AppIcon(app);
}
});
@ -1498,9 +1495,7 @@ const AppIconMenu = new Lang.Class({
_redisplay: function() {
this.removeAll();
let windows = this._source.app.get_windows().filter(function(w) {
return Shell.WindowTracker.is_window_interesting(w);
});
let windows = this._source.app.get_windows();
// Display the app windows menu items and the separator between windows
// of the current desktop and other windows.

View File

@ -185,9 +185,7 @@ const BoxPointer = new Lang.Class({
},
_getPreferredHeight: function(actor, forWidth, alloc) {
let themeNode = this.actor.get_theme_node();
let borderWidth = themeNode.get_length('-arrow-border-width');
let [minSize, naturalSize] = this.bin.get_preferred_height(forWidth - 2 * borderWidth);
let [minSize, naturalSize] = this.bin.get_preferred_height(forWidth);
alloc.min_size = minSize;
alloc.natural_size = naturalSize;
this._adjustAllocationForArrow(false, alloc);

View File

@ -13,6 +13,8 @@ const ModalDialog = imports.ui.modalDialog;
const ShellEntry = imports.ui.shellEntry;
const CheckBox = imports.ui.checkBox;
let prompter = null;
const KeyringDialog = new Lang.Class({
Name: 'KeyringDialog',
Extends: ModalDialog.ModalDialog,
@ -246,13 +248,11 @@ const KeyringPrompter = new Lang.Class({
function() {
let dialog = this._enabled ? new KeyringDialog()
: new KeyringDummyDialog();
this._currentPrompt = dialog.prompt;
return this._currentPrompt;
return dialog.prompt;
}));
this._dbusId = null;
this._registered = false;
this._enabled = false;
this._currentPrompt = null;
},
enable: function() {
@ -267,10 +267,6 @@ const KeyringPrompter = new Lang.Class({
disable: function() {
this._enabled = false;
if (this._prompter.prompting)
this._currentPrompt.cancel();
this._currentPrompt = null;
}
});

View File

@ -13,6 +13,7 @@ const Tp = imports.gi.TelepathyGLib;
const History = imports.misc.history;
const Main = imports.ui.main;
const MessageTray = imports.ui.messageTray;
const NotificationDaemon = imports.ui.notificationDaemon;
const Params = imports.misc.params;
const PopupMenu = imports.ui.popupMenu;
@ -415,7 +416,7 @@ const TelepathyClient = new Lang.Class({
_ensureAppSource: function() {
if (this._appSource == null) {
this._appSource = new MessageTray.Source(_("Chat"), 'empathy');
this._appSource.policy = new MessageTray.NotificationApplicationPolicy('empathy');
this._appSource.policy = new NotificationDaemon.NotificationApplicationPolicy('empathy');
Main.messageTray.add(this._appSource);
this._appSource.connect('destroy', Lang.bind(this, function () {
@ -487,7 +488,7 @@ const ChatSource = new Lang.Class({
},
_createPolicy: function() {
return new MessageTray.NotificationApplicationPolicy('empathy');
return new NotificationDaemon.NotificationApplicationPolicy('empathy');
},
_updateAlias: function() {
@ -1060,7 +1061,7 @@ const ApproverSource = new Lang.Class({
},
_createPolicy: function() {
return new MessageTray.NotificationApplicationPolicy('empathy');
return new NotificationDaemon.NotificationApplicationPolicy('empathy');
},
destroy: function() {

View File

@ -5,8 +5,6 @@ imports.gi.versions.Gio = '2.0';
imports.gi.versions.Gdk = '3.0';
imports.gi.versions.GdkPixbuf = '2.0';
imports.gi.versions.Gtk = '3.0';
imports.gi.versions.TelepathyGLib = '0.12';
imports.gi.versions.TelepathyLogger = '0.2';
const Clutter = imports.gi.Clutter;;
const Gettext = imports.gettext;

View File

@ -76,11 +76,7 @@ function disableExtension(uuid) {
theme.unload_stylesheet(extension.stylesheet.get_path());
}
try {
extension.stateObj.disable();
} catch(e) {
logExtensionError(uuid, e);
}
extension.stateObj.disable();
for (let i = 0; i < order.length; i++) {
let uuid = order[i];
@ -93,10 +89,8 @@ function disableExtension(uuid) {
extensionOrder.splice(orderIdx, 1);
if ( extension.state != ExtensionState.ERROR ) {
extension.state = ExtensionState.DISABLED;
_signals.emit('extension-state-changed', extension);
}
extension.state = ExtensionState.DISABLED;
_signals.emit('extension-state-changed', extension);
}
function enableExtension(uuid) {
@ -123,15 +117,10 @@ function enableExtension(uuid) {
}
}
try {
extension.stateObj.enable();
extension.state = ExtensionState.ENABLED;
_signals.emit('extension-state-changed', extension);
return;
} catch(e) {
logExtensionError(uuid, e);
return;
}
extension.stateObj.enable();
extension.state = ExtensionState.ENABLED;
_signals.emit('extension-state-changed', extension);
}
function logExtensionError(uuid, error) {
@ -161,8 +150,7 @@ function loadExtension(extension) {
} else {
let enabled = enabledExtensions.indexOf(extension.uuid) != -1;
if (enabled) {
if (!initExtension(extension.uuid))
return;
initExtension(extension.uuid);
if (extension.state == ExtensionState.DISABLED)
enableExtension(extension.uuid);
} else {
@ -217,12 +205,7 @@ function initExtension(uuid) {
extensionModule = extension.imports.extension;
if (extensionModule.init) {
try {
extensionState = extensionModule.init(extension);
} catch(e) {
logExtensionError(uuid, e);
return false;
}
extensionState = extensionModule.init(extension);
}
if (!extensionState)
@ -231,7 +214,6 @@ function initExtension(uuid) {
extension.state = ExtensionState.DISABLED;
_signals.emit('extension-loaded', uuid);
return true;
}
function getEnabledExtensions() {
@ -253,7 +235,11 @@ function onEnabledExtensionsChanged() {
newEnabledExtensions.filter(function(uuid) {
return enabledExtensions.indexOf(uuid) == -1;
}).forEach(function(uuid) {
try {
enableExtension(uuid);
} catch(e) {
logExtensionError(uuid, e);
}
});
// Find and disable all the newly disabled extensions: UUIDs found in the
@ -261,7 +247,11 @@ function onEnabledExtensionsChanged() {
enabledExtensions.filter(function(item) {
return newEnabledExtensions.indexOf(item) == -1;
}).forEach(function(uuid) {
try {
disableExtension(uuid);
} catch(e) {
logExtensionError(uuid, e);
}
});
enabledExtensions = newEnabledExtensions;
@ -273,7 +263,11 @@ function _loadExtensions() {
let finder = new ExtensionUtils.ExtensionFinder();
finder.connect('extension-found', function(signals, extension) {
loadExtension(extension);
try {
loadExtension(extension);
} catch(e) {
logExtensionError(extension.uuid, e);
}
});
finder.scanExtensions();
}

View File

@ -251,7 +251,7 @@ const LayoutManager = new Lang.Class({
this._inOverview = true;
this._updateVisibility();
this._updateRegions();
this._queueUpdateRegions();
},
hideOverview: function() {

View File

@ -310,126 +310,6 @@ const NotificationPolicy = new Lang.Class({
});
Signals.addSignalMethods(NotificationPolicy.prototype);
const NotificationGenericPolicy = new Lang.Class({
Name: 'NotificationGenericPolicy',
Extends: NotificationPolicy,
_init: function() {
// Don't chain to parent, it would try setting
// our properties to the defaults
this.id = 'generic';
this._masterSettings = new Gio.Settings({ schema: 'org.gnome.desktop.notifications' });
this._masterSettings.connect('changed', Lang.bind(this, this._changed));
},
store: function() { },
destroy: function() {
this._masterSettings.run_dispose();
},
_changed: function(settings, key) {
this.emit('policy-changed', key);
},
get enable() {
return true;
},
get enableSound() {
return true;
},
get showBanners() {
return this._masterSettings.get_boolean('show-banners');
},
get forceExpanded() {
return false;
},
get showInLockScreen() {
return this._masterSettings.get_boolean('show-in-lock-screen');
},
get detailsInLockScreen() {
return false;
}
});
const NotificationApplicationPolicy = new Lang.Class({
Name: 'NotificationApplicationPolicy',
Extends: NotificationPolicy,
_init: function(id) {
// Don't chain to parent, it would try setting
// our properties to the defaults
this.id = id;
this._canonicalId = this._canonicalizeId(id);
this._masterSettings = new Gio.Settings({ schema: 'org.gnome.desktop.notifications' });
this._settings = new Gio.Settings({ schema: 'org.gnome.desktop.notifications.application',
path: '/org/gnome/desktop/notifications/application/' + this._canonicalId + '/' });
this._masterSettings.connect('changed', Lang.bind(this, this._changed));
this._settings.connect('changed', Lang.bind(this, this._changed));
},
store: function() {
this._settings.set_string('application-id', this.id + '.desktop');
let apps = this._masterSettings.get_strv('application-children');
if (apps.indexOf(this._canonicalId) < 0) {
apps.push(this._canonicalId);
this._masterSettings.set_strv('application-children', apps);
}
},
destroy: function() {
this._masterSettings.run_dispose();
this._settings.run_dispose();
},
_changed: function(settings, key) {
this.emit('policy-changed', key);
},
_canonicalizeId: function(id) {
// Keys are restricted to lowercase alphanumeric characters and dash,
// and two dashes cannot be in succession
return id.toLowerCase().replace(/[^a-z0-9\-]/g, '-').replace(/--+/g, '-');
},
get enable() {
return this._settings.get_boolean('enable');
},
get enableSound() {
return this._settings.get_boolean('enable-sound-alerts');
},
get showBanners() {
return this._masterSettings.get_boolean('show-banners') &&
this._settings.get_boolean('show-banners');
},
get forceExpanded() {
return this._settings.get_boolean('force-expanded');
},
get showInLockScreen() {
return this._masterSettings.get_boolean('show-in-lock-screen') &&
this._settings.get_boolean('show-in-lock-screen');
},
get detailsInLockScreen() {
return this._settings.get_boolean('details-in-lock-screen');
}
});
// Notification:
// @source: the notification's Source
// @title: the title
@ -558,12 +438,7 @@ const Notification = new Lang.Class({
this._bannerLabel = this._bannerUrlHighlighter.actor;
this._bannerBox.add_actor(this._bannerLabel);
// If called with only one argument we assume the caller
// will call .update() later on. This is the case of
// NotificationDaemon, which wants to use the same code
// for new and updated notifications
if (arguments.length != 1)
this.update(title, banner, params);
this.update(title, banner, params);
},
// update:
@ -848,6 +723,7 @@ const Notification = new Lang.Class({
// %action-invoked signal with @id as a parameter
addButton: function(id, label) {
if (!this._buttonBox) {
let box = new St.BoxLayout({ style_class: 'notification-actions' });
this.setActionArea(box, { x_expand: false,
y_expand: false,
@ -855,7 +731,6 @@ const Notification = new Lang.Class({
y_fill: false,
x_align: St.Align.END });
this._buttonBox = box;
global.focus_manager.add_group(this._buttonBox);
}
let button = new St.Button({ can_focus: true });
@ -870,7 +745,11 @@ const Notification = new Lang.Class({
button.label = label;
}
if (this._buttonBox.get_n_children() > 0)
global.focus_manager.remove_group(this._buttonBox);
this._buttonBox.add(button);
global.focus_manager.add_group(this._buttonBox);
button.connect('clicked', Lang.bind(this, this._onActionInvoked, id));
this.updated();
@ -1026,9 +905,6 @@ const Notification = new Lang.Class({
Meta.later_add(Meta.LaterType.BEFORE_REDRAW,
Lang.bind(this,
function() {
if (this._destroyed)
return false;
if (this._canExpandContent()) {
this._addBannerBody();
this._table.add_style_class_name('multi-line-notification');
@ -1330,10 +1206,6 @@ const Source = new Lang.Class({
return this.count > 1;
},
get isClearable() {
return !this.trayIcon && !this.isChat && !this.resident;
},
countUpdated: function() {
this.emit('count-updated');
},
@ -1405,27 +1277,25 @@ const Source = new Lang.Class({
return this._mainIcon.actor;
},
_onNotificationDestroy: function(notification) {
let index = this.notifications.indexOf(notification);
if (index < 0)
return;
this.notifications.splice(index, 1);
if (this.notifications.length == 0)
this._lastNotificationRemoved();
this.countUpdated();
},
pushNotification: function(notification) {
if (this.notifications.indexOf(notification) >= 0)
return;
if (this.notifications.indexOf(notification) < 0) {
this.notifications.push(notification);
this.emit('notification-added', notification);
}
notification.connect('clicked', Lang.bind(this, this.open));
notification.connect('destroy', Lang.bind(this, this._onNotificationDestroy));
notification.connect('destroy', Lang.bind(this,
function () {
let index = this.notifications.indexOf(notification);
if (index < 0)
return;
this.notifications.push(notification);
this.emit('notification-added', notification);
this.notifications.splice(index, 1);
if (this.notifications.length == 0)
this._lastNotificationRemoved();
this.countUpdated();
}));
this.countUpdated();
},
@ -1637,42 +1507,26 @@ const MessageTrayMenu = new Lang.Class({
this._tray = tray;
this._presence = new GnomeSession.Presence(Lang.bind(this, function(proxy, error) {
if (error) {
logError(error, 'Error while reading gnome-session presence');
return;
}
this._onStatusChanged(proxy.status);
}));
this._presence.connectSignal('StatusChanged', Lang.bind(this, function(proxy, senderName, [status]) {
this._onStatusChanged(status);
}));
this._accountManager = Tp.AccountManager.dup();
this._accountManager.connect('most-available-presence-changed',
Lang.bind(this, this._onIMPresenceChanged));
this._accountManager.prepare_async(null, Lang.bind(this, this._onIMPresenceChanged));
this.actor.hide();
Main.layoutManager.addChrome(this.actor);
this._busyItem = new PopupMenu.PopupSwitchMenuItem(_("Notifications"));
this._busyItem.connect('toggled', Lang.bind(this, this._updatePresence));
this.addMenuItem(this._busyItem);
let separator = new PopupMenu.PopupSeparatorMenuItem();
this.addMenuItem(separator);
this._clearItem = this.addAction(_("Clear Messages"), function() {
let toDestroy = tray.getSources().filter(function(source) {
return source.isClearable;
})
let toDestroy = [];
let sources = tray.getSources();
for (let i = 0; i < sources.length; i++) {
// We exclude trayIcons, chat and resident sources
if (sources[i].trayIcon ||
sources[i].isChat ||
sources[i].resident)
continue;
toDestroy.push(sources[i]);
}
toDestroy.forEach(function(source) {
source.destroy();
});
for (let i = 0; i < toDestroy.length; i++) {
toDestroy[i].destroy();
}
toDestroy = null;
tray.close();
});
@ -1687,43 +1541,9 @@ const MessageTrayMenu = new Lang.Class({
settingsItem.connect('activate', function() { tray.close(); });
},
_onStatusChanged: function(status) {
this._sessionStatus = status;
this._busyItem.setToggleState(status != GnomeSession.PresenceStatus.BUSY);
},
_onIMPresenceChanged: function(am, type) {
if (type == Tp.ConnectionPresenceType.AVAILABLE &&
this._sessionStatus == GnomeSession.PresenceStatus.BUSY)
this._presence.SetStatusRemote(GnomeSession.PresenceStatus.AVAILABLE);
},
_updateClearSensitivity: function() {
this._clearItem.setSensitive(this._tray.clearableCount > 0);
},
_updatePresence: function(item, state) {
let status = state ? GnomeSession.PresenceStatus.AVAILABLE
: GnomeSession.PresenceStatus.BUSY;
this._presence.SetStatusRemote(status);
let [type, s ,msg] = this._accountManager.get_most_available_presence();
let newType = 0;
let newStatus;
if (status == GnomeSession.PresenceStatus.BUSY &&
type == Tp.ConnectionPresenceType.AVAILABLE) {
newType = Tp.ConnectionPresenceType.BUSY;
newStatus = 'busy';
} else if (status == GnomeSession.PresenceStatus.AVAILABLE &&
type == Tp.ConnectionPresenceType.BUSY) {
newType = Tp.ConnectionPresenceType.AVAILABLE;
newStatus = 'available';
}
if (newType > 0)
this._accountManager.set_all_requested_presences(newType,
newStatus, msg);
}
});
const MessageTrayMenuButton = new Lang.Class({
@ -2106,7 +1926,7 @@ const MessageTray = new Lang.Class({
this._summary.insert_child_at_index(summaryItem.actor, this._chatSummaryItemsCount);
}
if (source.isClearable)
if (!source.trayIcon && !source.isChat && !source.resident)
this.clearableCount++;
this._sources.set(source, obj);
@ -2150,7 +1970,7 @@ const MessageTray = new Lang.Class({
if (source.isChat)
this._chatSummaryItemsCount--;
if (source.isClearable)
if (!source.trayIcon && !source.isChat && !source.resident)
this.clearableCount--;
source.disconnect(obj.notifyId);
@ -2395,13 +2215,6 @@ const MessageTray = new Lang.Class({
// _updateState() figures out what (if anything) needs to be done
// at the present time.
_updateState: function() {
// If our state changes caused _updateState to be called,
// just exit now to prevent reentrancy issues.
if (this._updatingState)
return;
this._updatingState = true;
// Filter out acknowledged notifications.
this._notificationQueue = this._notificationQueue.filter(function(n) {
return !n.acknowledged;
@ -2484,8 +2297,6 @@ const MessageTray = new Lang.Class({
} else if (desktopCloneIsVisible && !desktopCloneShouldBeVisible) {
this._hideDesktopClone();
}
this._updatingState = false;
},
_tween: function(actor, statevar, value, params) {
@ -2850,13 +2661,13 @@ const MessageTray = new Lang.Class({
Lang.bind(this, this._onSourceDoneDisplayingContent));
this._summaryBoxPointer.bin.child = child;
this._grabHelper.grab({ actor: this._summaryBoxPointer.bin.child,
onUngrab: Lang.bind(this, this._onSummaryBoxPointerUngrabbed) });
this._summaryBoxPointer.actor.opacity = 0;
this._summaryBoxPointer.actor.show();
this._adjustSummaryBoxPointerPosition();
this._grabHelper.grab({ actor: this._summaryBoxPointer.bin.child,
onUngrab: Lang.bind(this, this._onSummaryBoxPointerUngrabbed) });
this._summaryBoxPointerState = State.SHOWING;
this._summaryBoxPointer.show(BoxPointer.PopupAnimation.FULL, Lang.bind(this, function() {
this._summaryBoxPointerState = State.SHOWN;

View File

@ -103,6 +103,126 @@ const STANDARD_TRAY_ICON_IMPLEMENTATIONS = {
'ibus-ui-gtk': 'keyboard'
};
const NotificationGenericPolicy = new Lang.Class({
Name: 'NotificationGenericPolicy',
Extends: MessageTray.NotificationPolicy,
_init: function() {
// Don't chain to parent, it would try setting
// our properties to the defaults
this.id = 'generic';
this._masterSettings = new Gio.Settings({ schema: 'org.gnome.desktop.notifications' });
this._masterSettings.connect('changed', Lang.bind(this, this._changed));
},
store: function() { },
destroy: function() {
this._masterSettings.run_dispose();
},
_changed: function(settings, key) {
this.emit('policy-changed', key);
},
get enable() {
return true;
},
get enableSound() {
return true;
},
get showBanners() {
return this._masterSettings.get_boolean('show-banners');
},
get forceExpanded() {
return false;
},
get showInLockScreen() {
return this._masterSettings.get_boolean('show-in-lock-screen');
},
get detailsInLockScreen() {
return false;
}
});
const NotificationApplicationPolicy = new Lang.Class({
Name: 'NotificationApplicationPolicy',
Extends: MessageTray.NotificationPolicy,
_init: function(id) {
// Don't chain to parent, it would try setting
// our properties to the defaults
this.id = id;
this._canonicalId = this._canonicalizeId(id)
this._masterSettings = new Gio.Settings({ schema: 'org.gnome.desktop.notifications' });
this._settings = new Gio.Settings({ schema: 'org.gnome.desktop.notifications.application',
path: '/org/gnome/desktop/notifications/application/' + this._canonicalId + '/' });
this._masterSettings.connect('changed', Lang.bind(this, this._changed));
this._settings.connect('changed', Lang.bind(this, this._changed));
},
store: function() {
this._settings.set_string('application-id', this.id + '.desktop');
let apps = this._masterSettings.get_strv('application-children');
if (apps.indexOf(this._canonicalId) < 0) {
apps.push(this._canonicalId);
this._masterSettings.set_strv('application-children', apps);
}
},
destroy: function() {
this._masterSettings.run_dispose();
this._settings.run_dispose();
},
_changed: function(settings, key) {
this.emit('policy-changed', key);
},
_canonicalizeId: function(id) {
// Keys are restricted to lowercase alphanumeric characters and dash,
// and two dashes cannot be in succession
return id.toLowerCase().replace(/[^a-z0-9\-]/g, '-').replace(/--+/g, '-');
},
get enable() {
return this._settings.get_boolean('enable');
},
get enableSound() {
return this._settings.get_boolean('enable-sound-alerts');
},
get showBanners() {
return this._masterSettings.get_boolean('show-banners') &&
this._settings.get_boolean('show-banners');
},
get forceExpanded() {
return this._settings.get_boolean('force-expanded');
},
get showInLockScreen() {
return this._masterSettings.get_boolean('show-in-lock-screen') &&
this._settings.get_boolean('show-in-lock-screen');
},
get detailsInLockScreen() {
return this._settings.get_boolean('details-in-lock-screen');
}
});
const NotificationDaemon = new Lang.Class({
Name: 'NotificationDaemon',
@ -276,13 +396,12 @@ const NotificationDaemon = new Lang.Class({
if (!hints['image-path'] && hints['image_path'])
hints['image-path'] = hints['image_path']; // version 1.1 of the spec
if (!hints['image-data']) {
if (!hints['image-data'])
if (hints['image_data'])
hints['image-data'] = hints['image_data']; // version 1.1 of the spec
else if (hints['icon_data'] && !hints['image-path'])
// early versions of the spec; 'icon_data' should only be used if 'image-path' is not available
hints['image-data'] = hints['icon_data'];
}
let ndata = { appName: appName,
icon: icon,
@ -555,9 +674,9 @@ const Source = new Lang.Class({
_createPolicy: function() {
if (this.app) {
let id = this.app.get_id().replace(/\.desktop$/,'');
return new MessageTray.NotificationApplicationPolicy(id);
return new NotificationApplicationPolicy(id);
} else {
return new MessageTray.NotificationGenericPolicy();
return new NotificationGenericPolicy();
}
},
@ -633,6 +752,22 @@ const Source = new Lang.Class({
return null;
},
_setApp: function(appId) {
if (this.app)
return;
this.app = this._getApp(appId);
if (!this.app)
return;
// Only override the icon if we were previously using
// notification-based icons (ie, not a trayicon) or if it was unset before
if (!this.trayIcon) {
this.useNotificationIcon = false;
this.iconUpdated();
}
},
setTitle: function(title) {
// Do nothing if .app is set, we don't want to override the
// app name with whatever is provided through libnotify (usually
@ -644,8 +779,8 @@ const Source = new Lang.Class({
},
open: function(notification) {
this.openApp();
this.destroyNonResidentNotifications();
this.openApp();
},
_lastNotificationRemoved: function() {
@ -657,8 +792,11 @@ const Source = new Lang.Class({
if (this.app == null)
return;
this.app.activate();
Main.overview.hide();
let windows = this.app.get_windows();
if (windows.length > 0) {
let mostRecentWindow = windows[0];
Main.activateWindow(mostRecentWindow);
}
},
destroy: function() {

View File

@ -313,6 +313,9 @@ const Overview = new Lang.Class({
},
_onDragEnd: function(time) {
if (this.animationInProgress)
return;
this._inXdndDrag = false;
// In case the drag was canceled while in the overview

View File

@ -55,21 +55,18 @@ const SlideLayout = new Lang.Class({
vfunc_allocate: function(container, box, flags) {
let child = container.get_first_child();
let [, , natWidth, natHeight] = child.get_preferred_size();
let availWidth = Math.round(box.x2 - box.x1);
let availHeight = Math.round(box.y2 - box.y1);
let [, natWidth] = child.get_preferred_width(availHeight);
// Align the actor inside the clipped box, as the actor's alignment
// flags only determine what to do if the allocated box is bigger
// than the actor's box.
let realDirection = getRtlSlideDirection(this._direction, child);
let alignX = (realDirection == SlideDirection.LEFT) ? (availWidth - natWidth) : 0;
let translationX = (realDirection == SlideDirection.LEFT) ?
(availWidth - natWidth) : (natWidth - availWidth);
let actorBox = new Clutter.ActorBox();
actorBox.x1 = alignX;
actorBox.x2 = actorBox.x1 + child.x_expand ? availWidth : natWidth;
actorBox.y1 = 0;
actorBox.y2 = actorBox.y1 + availHeight;
let actorBox = new Clutter.ActorBox({ x1: translationX,
y1: 0,
x2: child.x_expand ? availWidth : natWidth,
y2: child.y_expand ? availHeight : natHeight });
child.allocate(actorBox, flags);
},
@ -239,6 +236,11 @@ const ThumbnailsSlider = new Lang.Class({
this._thumbnailsBox = thumbnailsBox;
// SlideLayout reads the actor's expand flags to decide
// whether to allocate the natural size to its child, or the whole
// available allocation
this._thumbnailsBox.actor.y_expand = true;
this.actor.request_mode = Clutter.RequestMode.WIDTH_FOR_HEIGHT;
this.actor.reactive = true;
this.actor.track_hover = true;
@ -322,6 +324,7 @@ const DashSlider = new Lang.Class({
// whether to allocate the natural size to its child, or the whole
// available allocation
this._dash.actor.x_expand = true;
this._dash.actor.y_expand = true;
this.actor.x_align = Clutter.ActorAlign.START;
this.actor.y_expand = true;

View File

@ -213,7 +213,9 @@ const AppMenuButton = new Lang.Class({
this._label = new TextShadower();
this._label.actor.y_align = Clutter.ActorAlign.CENTER;
this._hbox.add_actor(this._label.actor);
this._arrow = PopupMenu.unicodeArrow(St.Side.BOTTOM);
this._arrow = new St.Label({ text: '\u25BE',
y_expand: true,
y_align: Clutter.ActorAlign.CENTER });
this._hbox.add_actor(this._arrow);
this._iconBottomClip = 0;
@ -831,7 +833,9 @@ const AggregateMenu = new Lang.Class({
this._indicators.add_child(this._rfkill.indicators);
this._indicators.add_child(this._volume.indicators);
this._indicators.add_child(this._power.indicators);
this._indicators.add_child(PopupMenu.unicodeArrow(St.Side.BOTTOM));
this._indicators.add_child(new St.Label({ text: '\u25BE',
y_expand: true,
y_align: Clutter.ActorAlign.CENTER }));
this.menu.addMenuItem(this._volume.menu);
this.menu.addMenuItem(this._brightness.menu);

View File

@ -42,33 +42,6 @@ function isPopupMenuItemVisible(child) {
return child.visible;
}
/**
* @side Side to which the arrow points.
*/
function unicodeArrow(side) {
let arrowChar;
switch (side) {
case St.Side.TOP:
arrowChar = '\u25B4';
break;
case St.Side.RIGHT:
arrowChar = '\u25B8';
break;
case St.Side.BOTTOM:
arrowChar = '\u25BE';
break;
case St.Side.LEFT:
arrowChar = '\u25C2';
break;
}
return new St.Label({ text: arrowChar,
style_class: 'unicode-arrow',
accessible_role: Atk.Role.ARROW,
y_expand: true,
y_align: Clutter.ActorAlign.CENTER });
}
const PopupBaseMenuItem = new Lang.Class({
Name: 'PopupBaseMenuItem',
@ -989,7 +962,8 @@ const PopupSubMenuMenuItem = new Lang.Class({
y_align: Clutter.ActorAlign.CENTER });
this.actor.add_child(this.status);
this._triangle = unicodeArrow(St.Side.RIGHT);
this._triangle = new St.Label({ text: '\u25B8',
style_class: 'popup-submenu-menu-item-triangle' });
this._triangle.pivot_point = new Clutter.Point({ x: 0.5, y: 0.6 });
this._triangleBin = new St.Widget({ y_expand: true,
@ -1114,7 +1088,7 @@ const PopupMenuManager = new Lang.Class({
removeMenu: function(menu) {
if (menu == this.activeMenu)
this._closeMenu(false, menu);
this._closeMenu(menu);
let position = this._findMenu(menu);
if (position == -1) // not a menu we manage

View File

@ -191,9 +191,7 @@ const RemoteSearchProvider = new Lang.Class({
},
createIcon: function(size, meta) {
let gicon = null;
let icon = null;
let gicon;
if (meta['icon']) {
gicon = Gio.icon_deserialize(meta['icon']);
} else if (meta['gicon']) {
@ -205,20 +203,8 @@ const RemoteSearchProvider = new Lang.Class({
bitsPerSample, width, height, rowStride);
}
if (gicon)
icon = new St.Icon({ gicon: gicon,
icon_size: size });
return icon;
},
filterResults: function(results, maxNumber) {
if (results.length <= maxNumber)
return results;
let regularResults = results.filter(function(r) { return !r.startsWith('special:'); });
let specialResults = results.filter(function(r) { return r.startsWith('special:'); });
return regularResults.slice(0, maxNumber).concat(specialResults.slice(0, maxNumber));
return new St.Icon({ gicon: gicon,
icon_size: size });
},
_getResultsFinished: function(results, error) {

View File

@ -19,7 +19,6 @@ const Background = imports.ui.background;
const GnomeSession = imports.misc.gnomeSession;
const Hash = imports.misc.hash;
const Layout = imports.ui.layout;
const OVirt = imports.gdm.oVirt;
const LoginManager = imports.misc.loginManager;
const Lightbox = imports.ui.lightbox;
const Main = imports.ui.main;
@ -546,13 +545,6 @@ const ScreenShield = new Lang.Class({
this._liftShield(true, 0);
}));
this._oVirtCredentialsManager = OVirt.getOVirtCredentialsManager();
this._oVirtCredentialsManager.connect('user-authenticated',
Lang.bind(this, function() {
if (this._isLocked)
this._liftShield(true, 0);
}));
this._inhibitor = null;
this._aboutToSuspend = false;
this._loginManager = LoginManager.getLoginManager();
@ -905,11 +897,17 @@ const ScreenShield = new Lang.Class({
},
showDialog: function() {
if (!this._becomeModal()) {
// In the login screen, this is a hard error. Fail-whale
log('Could not acquire modal grab for the login screen. Aborting login process.');
Meta.quit(Meta.ExitCode.ERROR);
}
// Ensure that the stage window is mapped, before taking a grab
// otherwise X errors out
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this, function() {
if (!this._becomeModal()) {
// In the login screen, this is a hard error. Fail-whale
log('Could not acquire modal grab for the login screen. Aborting login process.');
Meta.quit(Meta.ExitCode.ERROR);
}
return false;
}));
this.actor.show();
this._isGreeter = Main.sessionMode.isGreeter;

View File

@ -103,10 +103,8 @@ const ScreencastService = new Lang.Class({
ScreencastAsync: function(params, invocation) {
let returnValue = [false, ''];
if (!Main.sessionMode.allowScreencast) {
if (!Main.sessionMode.allowScreencast)
invocation.return_value(GLib.Variant.new('(bs)', returnValue));
return;
}
let sender = invocation.get_sender();
let recorder = this._ensureRecorderForSender(sender);
@ -124,10 +122,8 @@ const ScreencastService = new Lang.Class({
ScreencastAreaAsync: function(params, invocation) {
let returnValue = [false, ''];
if (!Main.sessionMode.allowScreencast) {
if (!Main.sessionMode.allowScreencast)
invocation.return_value(GLib.Variant.new('(bs)', returnValue));
return;
}
let sender = invocation.get_sender();
let recorder = this._ensureRecorderForSender(sender);
@ -135,16 +131,6 @@ const ScreencastService = new Lang.Class({
if (!recorder.is_recording()) {
let [x, y, width, height, fileTemplate, options] = params;
if (x < 0 || y < 0 ||
width <= 0 || height <= 0 ||
x + width > global.screen_width ||
y + height > global.screen_height) {
invocation.return_error_literal(Gio.IOErrorEnum,
Gio.IOErrorEnum.CANCELLED,
"Invalid params");
return;
}
recorder.set_file_template(fileTemplate);
recorder.set_area(x, y, width, height);
this._applyOptionalParameters(recorder, options);

View File

@ -77,9 +77,7 @@ const ScreenshotService = new Lang.Class({
ScreenshotAreaAsync : function (params, invocation) {
let [x, y, width, height, flash, filename, callback] = params;
if (x < 0 || y < 0 ||
width <= 0 || height <= 0 ||
x + width > global.screen_width || y + height > global.screen_height) {
if (height <= 0 || width <= 0) {
invocation.return_error_literal(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED,
"Invalid params");
return;

View File

@ -230,7 +230,7 @@ const SearchResultsBase = new Lang.Class({
callback();
} else {
let maxResults = this._getMaxDisplayedResults();
let results = this.provider.filterResults(providerResults, maxResults);
let results = providerResults.slice(0, maxResults);
let hasMoreResults = results.length < providerResults.length;
this.provider.getResultMetas(results, Lang.bind(this, function(metas) {

View File

@ -43,7 +43,9 @@ const ATIndicator = new Lang.Class({
this._hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' });
this._hbox.add_child(new St.Icon({ style_class: 'system-status-icon',
icon_name: 'preferences-desktop-accessibility-symbolic' }));
this._hbox.add_child(PopupMenu.unicodeArrow(St.Side.BOTTOM));
this._hbox.add_child(new St.Label({ text: '\u25BE',
y_expand: true,
y_align: Clutter.ActorAlign.CENTER }));
this.actor.add_child(this._hbox);

View File

@ -9,6 +9,7 @@ const St = imports.gi.St;
const Main = imports.ui.main;
const MessageTray = imports.ui.messageTray;
const NotificationDaemon = imports.ui.notificationDaemon;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
@ -54,13 +55,13 @@ const Indicator = new Lang.Class({
this._item.actor.visible = on;
if (on)
this._item.status.text = ngettext("%d Connected Device", "%d Connected Devices", nDevices).format(nDevices);
this._item.status.text = ngettext("%d Connected Device", "%d Connected Devices").format(nDevices);
},
_ensureSource: function() {
if (!this._source) {
this._source = new MessageTray.Source(_("Bluetooth"), 'bluetooth-active');
this._source.policy = new MessageTray.NotificationApplicationPolicy('gnome-bluetooth-panel');
this._source.policy = new NotificationDaemon.NotificationApplicationPolicy('gnome-bluetooth-panel');
Main.messageTray.add(this._source);
}
},

View File

@ -339,7 +339,9 @@ const InputSourceIndicator = new Lang.Class({
this._hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' });
this._hbox.add_child(this._container);
this._hbox.add_child(PopupMenu.unicodeArrow(St.Side.BOTTOM));
this._hbox.add_child(new St.Label({ text: '\u25BE',
y_expand: true,
y_align: Clutter.ActorAlign.CENTER }));
this.actor.add_child(this._hbox);
this.actor.add_style_class_name('panel-status-button');

View File

@ -16,6 +16,7 @@ const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const MessageTray = imports.ui.messageTray;
const NotificationDaemon = imports.ui.notificationDaemon;
const ModalDialog = imports.ui.modalDialog;
const ModemManager = imports.misc.modemManager;
const Util = imports.misc.util;
@ -72,27 +73,6 @@ function ssidToLabel(ssid) {
return label;
}
function ensureActiveConnectionProps(active, settings) {
if (!active._connection) {
active._connection = settings.get_connection_by_path(active.connection);
// This list is guaranteed to have only one device in it.
let device = active.get_devices()[0]._delegate;
active._primaryDevice = device;
}
}
function createSettingsAction(label, device) {
let item = new PopupMenu.PopupMenuItem(label);
item.connect('activate', function() {
Util.spawnApp(['gnome-control-center', 'network', 'show-device',
device.get_path()]);
});
return item;
}
const NMConnectionItem = new Lang.Class({
Name: 'NMConnectionItem',
@ -190,7 +170,8 @@ const NMConnectionSection = new Lang.Class({
},
destroy: function() {
this.item.destroy();
this.statusItem.destroy();
this.section.destroy();
},
_sync: function() {
@ -287,12 +268,12 @@ const NMConnectionDevice = new Lang.Class({
Extends: NMConnectionSection,
Abstract: true,
_init: function(client, device, settings) {
_init: function(client, device) {
this.parent(client);
this._device = device;
this._settings = settings;
this._autoConnectItem = this.item.menu.addAction(_("Connect"), Lang.bind(this, this._autoConnect));
this.item.menu.addSettingsAction(_("Network Settings"), 'gnome-network-panel.desktop');
this._stateChangedId = this._device.connect('state-changed', Lang.bind(this, this._deviceStateChanged));
this._activeConnectionChangedId = this._device.connect('notify::active-connection', Lang.bind(this, this._activeConnectionChanged));
@ -320,7 +301,6 @@ const NMConnectionDevice = new Lang.Class({
this._activeConnection = this._device.active_connection;
if (this._activeConnection) {
ensureActiveConnectionProps(this._activeConnection, this._settings);
let item = this._connectionItems.get(this._activeConnection._connection.get_uuid());
item.setActiveConnection(this._activeConnection);
}
@ -376,9 +356,8 @@ const NMConnectionDevice = new Lang.Class({
switch(this._device.state) {
case NetworkManager.DeviceState.DISCONNECTED:
return _("Off");
case NetworkManager.DeviceState.ACTIVATED:
return this.parent();
return '';
case NetworkManager.DeviceState.UNMANAGED:
/* 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) */
@ -420,11 +399,8 @@ const NMDeviceModem = new Lang.Class({
Extends: NMConnectionDevice,
category: NMConnectionCategory.WWAN,
_init: function(client, device, settings) {
this.parent(client, device, settings);
this.item.menu.addMenuItem(createSettingsAction(_("Mobile Broadband Settings"), device));
_init: function(client, device) {
this.parent(client, device);
this._mobileDevice = null;
let capabilities = device.current_capabilities;
@ -438,7 +414,16 @@ const NMDeviceModem = new Lang.Class({
this._mobileDevice = new ModemManager.ModemGsm(device.udi);
if (this._mobileDevice) {
this._operatorNameId = this._mobileDevice.connect('notify::operator-name', Lang.bind(this, this._sync));
this._operatorNameId = this._mobileDevice.connect('notify::operator-name', Lang.bind(this, function() {
if (this._operatorItem) {
let name = this._mobileDevice.operator_name;
if (name) {
this._operatorItem.label.text = name;
this._operatorItem.actor.show();
} else
this._operatorItem.actor.hide();
}
}));
this._signalQualityId = this._mobileDevice.connect('notify::signal-quality', Lang.bind(this, function() {
this.emit('icon-changed');
}));
@ -463,20 +448,6 @@ const NMDeviceModem = new Lang.Class({
this.parent();
},
_getStatus: function() {
if (!this._client.wwan_hardware_enabled)
return _("Hardware Disabled");
else if (!this._client.wwan_enabled)
/* Translators: this is for a network device that cannot be activated
because it's disabled by rfkill (airplane mode) */
return _("Disabled");
else if (this._device.state == NetworkManager.DeviceState.ACTIVATED &&
this._mobileDevice && this._mobileDevice.operator_name)
return this._mobileDevice.operator_name;
else
return this.parent();
},
_getMenuIcon: function() {
if (this._device.active_connection)
return this.getIndicatorIcon();
@ -506,12 +477,6 @@ const NMDeviceBluetooth = new Lang.Class({
Extends: NMConnectionDevice,
category: NMConnectionCategory.WWAN,
_init: function(client, device, settings) {
this.parent(client, device, settings);
this.item.menu.addMenuItem(createSettingsAction(_("Mobile Broadband Settings"), device));
},
_autoConnect: function() {
// FIXME: DUN devices are configured like modems, so
// We need to spawn the mobile wizard
@ -559,8 +524,6 @@ const NMWirelessDialogItem = new Lang.Class({
this.actor.grab_key_focus();
}));
this.actor.connect('key-press-event', Lang.bind(this, this._onKeyPressEvent));
this._content = new St.BoxLayout({ style_class: 'nm-dialog-item-box' });
this.actor.set_child(this._content);
@ -606,16 +569,6 @@ const NMWirelessDialogItem = new Lang.Class({
return 'network-workgroup-symbolic';
else
return 'network-wireless-signal-' + signalToIcon(this._ap.strength) + '-symbolic';
},
_onKeyPressEvent: function(actor, event) {
let symbol = event.get_key_symbol();
if (symbol == Clutter.KEY_space || symbol == Clutter.KEY_Return
|| symbol == Clutter.KEY_KP_Enter) {
this.emit('connect');
return true;
}
return false;
}
});
Signals.addSignalMethods(NMWirelessDialogItem.prototype);
@ -984,9 +937,6 @@ const NMWirelessDialog = new Lang.Class({
Util.ensureActorVisibleInScrollView(this._scrollView, network.item.actor);
this._selectNetwork(network);
}));
network.item.connect('connect', Lang.bind(this, function() {
this._connect();
}));
},
});
@ -1008,10 +958,9 @@ const NMDeviceWireless = new Lang.Class({
this._toggleItem.connect('activate', Lang.bind(this, this._toggleWifi));
this.item.menu.addMenuItem(this._toggleItem);
this.item.menu.addMenuItem(createSettingsAction(_("Wi-Fi Settings"), device));
this.item.menu.addSettingsAction(_("Network Settings"), 'gnome-network-panel.desktop');
this._wirelessEnabledChangedId = this._client.connect('notify::wireless-enabled', Lang.bind(this, this._sync));
this._wirelessHwEnabledChangedId = this._client.connect('notify::wireless-hardware-enabled', Lang.bind(this, this._sync));
this._wirelessEnabledChangedId = this._device.connect('notify::wireless-enabled', Lang.bind(this, this._sync));
this._activeApChangedId = this._device.connect('notify::active-access-point', Lang.bind(this, this._activeApChanged));
this._stateChangedId = this._device.connect('state-changed', Lang.bind(this, this._deviceStateChanged));
@ -1031,14 +980,6 @@ const NMDeviceWireless = new Lang.Class({
this._activeAccessPoint.disconnect(this._strengthChangedId);
this._strengthChangedId = 0;
}
if (this._wirelessEnabledChangedId) {
this._client.disconnect(this._wirelessEnabledChangedId);
this._wirelessEnabledChangedId = 0;
}
if (this._wirelessHwEnabledChangedId) {
this._client.disconnect(this._wirelessHwEnabledChangedId);
this._wirelessHwEnabledChangedId = 0;
}
this.item.destroy();
},
@ -1097,7 +1038,6 @@ const NMDeviceWireless = new Lang.Class({
_sync: function() {
this._toggleItem.label.text = this._client.wireless_enabled ? _("Turn Off") : _("Turn On");
this._toggleItem.actor.visible = this._client.wireless_hardware_enabled;
this.item.status.text = this._getStatus();
this.item.icon.icon_name = this._getMenuIcon();
@ -1111,17 +1051,10 @@ const NMDeviceWireless = new Lang.Class({
_getStatus: function() {
let ap = this._device.active_access_point;
if (!ap)
return _("Off"); // XXX -- interpret actual status
if (ap)
return ssidToLabel(ap.get_ssid());
else if (!this._client.wireless_hardware_enabled)
return _("Hardware Disabled");
else if (!this._client.wireless_enabled)
return _("Off");
else if (this._device.state == NetworkManager.DeviceState.DISCONNECTED)
return _("Not Connected");
else
return '';
return ssidToLabel(ap.get_ssid());
},
_getMenuIcon: function() {
@ -1132,8 +1065,7 @@ const NMDeviceWireless = new Lang.Class({
},
getIndicatorIcon: function() {
if (this._device.state >= NetworkManager.DeviceState.PREPARE &&
this._device.state < NetworkManager.DeviceState.ACTIVATED)
if (this._device.active_connection.state == NetworkManager.ActiveConnectionState.ACTIVATING)
return 'network-wireless-acquiring-symbolic';
let ap = this._device.active_access_point;
@ -1381,7 +1313,7 @@ const NMApplet = new Lang.Class({
if (!this._source) {
this._source = new MessageTray.Source(_("Network Manager"),
'network-transmit-receive');
this._source.policy = new MessageTray.NotificationApplicationPolicy('gnome-network-panel');
this._source.policy = new NotificationDaemon.NotificationApplicationPolicy('gnome-network-panel');
this._source.connect('destroy', Lang.bind(this, function() {
this._source = null;
@ -1493,18 +1425,28 @@ const NMApplet = new Lang.Class({
devices.splice(pos, 1);
},
_ensureActiveConnectionProps: function(a) {
if (!a._connection) {
a._connection = this._settings.get_connection_by_path(a.connection);
// This list is guaranteed to have only one device in it.
let device = a.get_devices()[0]._delegate;
a._primaryDevice = device;
}
},
_getMainConnection: function() {
let connection;
connection = this._client.get_primary_connection();
if (connection) {
ensureActiveConnectionProps(connection, this._settings);
this._ensureActiveConnectionProps(connection);
return connection;
}
connection = this._client.get_activating_connection();
if (connection) {
ensureActiveConnectionProps(connection, this._settings);
this._ensureActiveConnectionProps(connection);
return connection;
}
@ -1540,7 +1482,7 @@ const NMApplet = new Lang.Class({
return (a instanceof NMClient.VPNConnection);
});
vpnConnections.forEach(Lang.bind(this, function(a) {
ensureActiveConnectionProps(a, this._settings);
this._ensureActiveConnectionProps(a);
}));
this._vpnSection.setActiveConnections(vpnConnections);
@ -1591,7 +1533,7 @@ const NMApplet = new Lang.Class({
_connectionRemoved: function(connection) {
let pos = this._connections.indexOf(connection);
if (pos != -1)
this._connections.splice(pos, 1);
this._connections.splice(connection, 1);
let section = connection._section;
@ -1643,7 +1585,6 @@ const NMApplet = new Lang.Class({
_updateIcon: function() {
if (!this._client.networking_enabled || !this._mainConnection) {
this._primaryIndicator.icon_name = 'network-offline-symbolic';
this._primaryIndicator.visible = true;
} else {
let dev = this._mainConnection._primaryDevice;
this._primaryIndicator.visible = (dev != null);

View File

@ -86,30 +86,38 @@ const Indicator = new Lang.Class({
return _("Estimating…");
},
_sync: function() {
function isBattery(result) {
if (!result)
return false;
_syncStatusLabel: function() {
this._proxy.GetPrimaryDeviceRemote(Lang.bind(this, function(result, error) {
if (error) {
this._item.actor.hide();
return;
}
let [device] = result;
let [, deviceType] = device;
return (deviceType == UPower.DeviceKind.BATTERY);
}
this._proxy.GetPrimaryDeviceRemote(Lang.bind(this, function(result, error) {
if (isBattery(result)) {
let [device] = result;
let [,, icon] = device;
let gicon = Gio.icon_new_for_string(icon);
this._indicator.gicon = gicon;
this._item.icon.gicon = gicon;
let [device_id, device_type] = device;
if (device_type == UPower.DeviceKind.BATTERY) {
this._item.status.text = this._statusForDevice(device);
this._item.actor.show();
} else {
// If there's no battery, then we use the power icon.
this._indicator.icon_name = 'system-shutdown-symbolic';
this._item.actor.hide();
}
}));
},
_syncIcon: function() {
let icon = this._proxy.Icon;
if (icon) {
let gicon = Gio.icon_new_for_string(icon);
this._indicator.gicon = gicon;
this._item.icon.gicon = gicon;
} else {
// If there's no battery, then we use the power icon.
this._indicator.icon_name = 'system-shutdown-symbolic';
}
},
_sync: function() {
this._syncIcon();
this._syncStatusLabel();
}
});

View File

@ -18,12 +18,10 @@ const PopupMenu = imports.ui.popupMenu;
const LOCKDOWN_SCHEMA = 'org.gnome.desktop.lockdown';
const SCREENSAVER_SCHEMA = 'org.gnome.desktop.screensaver';
const LOGIN_SCREEN_SCHEMA = 'org.gnome.login-screen';
const PRIVACY_SCHEMA = 'org.gnome.desktop.privacy'
const DISABLE_USER_SWITCH_KEY = 'disable-user-switching';
const DISABLE_LOCK_SCREEN_KEY = 'disable-lock-screen';
const DISABLE_LOG_OUT_KEY = 'disable-log-out';
const DISABLE_RESTART_KEY = 'disable-restart-buttons';
const ALWAYS_SHOW_LOG_OUT_KEY = 'always-show-log-out';
const AltSwitcher = new Lang.Class({
@ -93,7 +91,6 @@ const Indicator = new Lang.Class({
this.parent();
this._screenSaverSettings = new Gio.Settings({ schema: SCREENSAVER_SCHEMA });
this._loginScreenSettings = new Gio.Settings({ schema: LOGIN_SCREEN_SCHEMA });
this._lockdownSettings = new Gio.Settings({ schema: LOCKDOWN_SCHEMA });
this._privacySettings = new Gio.Settings({ schema: PRIVACY_SCHEMA });
this._orientationSettings = new Gio.Settings({ schema: 'org.gnome.settings-daemon.peripherals.touchscreen' });
@ -148,11 +145,11 @@ const Indicator = new Lang.Class({
Gio.DBus.session.watch_name('org.gnome.SettingsDaemon.Orientation',
Gio.BusNameWatcherFlags.NONE,
Lang.bind(this, function() {
this._orientationExists = true;
this._orentationExists = true;
this._updateOrientationLock();
}),
Lang.bind(this, function() {
this._orientationExists = false;
this._orentationExists = false;
this._updateOrientationLock();
}));
this._updateOrientationLock();
@ -264,10 +261,7 @@ const Indicator = new Lang.Class({
},
_updatePowerOff: function() {
let disabled = Main.sessionMode.isLocked ||
(Main.sessionMode.isGreeter &&
this._loginScreenSettings.get_boolean(DISABLE_RESTART_KEY));
this._powerOffAction.visible = this._haveShutdown && !disabled;
this._powerOffAction.visible = this._haveShutdown && !Main.sessionMode.isLocked;
this._updateActionsVisibility();
},
@ -279,10 +273,7 @@ const Indicator = new Lang.Class({
},
_updateSuspend: function() {
let disabled = Main.sessionMode.isLocked ||
(Main.sessionMode.isGreeter &&
this._loginScreenSettings.get_boolean(DISABLE_RESTART_KEY));
this._suspendAction.visible = this._haveShutdown && !disabled;
this._suspendAction.visible = this._haveSuspend && !Main.sessionMode.isLocked;
this._updateActionsVisibility();
},

View File

@ -509,7 +509,7 @@ const SwitcherList = new Lang.Class({
_getPreferredWidth: function (actor, forHeight, alloc) {
let [maxChildMin, maxChildNat] = this._maxChildWidth(forHeight);
let totalSpacing = Math.max(this._list.spacing * (this._items.length - 1), 0);
let totalSpacing = this._list.spacing * (this._items.length - 1);
alloc.min_size = this._items.length * maxChildMin + totalSpacing;
alloc.natural_size = alloc.min_size;
this._minSize = alloc.min_size;
@ -539,7 +539,7 @@ const SwitcherList = new Lang.Class({
let childHeight = box.y2 - box.y1;
let [maxChildMin, maxChildNat] = this._maxChildWidth(childHeight);
let totalSpacing = Math.max(this._list.spacing * (this._items.length - 1), 0);
let totalSpacing = this._list.spacing * (this._items.length - 1);
let childWidth = Math.floor(Math.max(0, box.x2 - box.x1 - totalSpacing) / this._items.length);

View File

@ -132,10 +132,6 @@ const WandaSearchProvider = new Lang.Class({
}]);
},
filterResults: function(results) {
return results;
},
getInitialResultSet: function(terms) {
if (terms.join(' ') == MAGIC_FISH_KEY) {
this.searchSystem.setResults(this, [ FISH_NAME ]);

View File

@ -254,8 +254,6 @@ const WorkspaceTracker = new Lang.Class({
if (removingCurrentWorkspace) {
// "Merge" the empty workspace we are removing with the one at the end
this._wm.blockAnimations();
global.screen.get_workspace_by_index(global.screen.n_workspaces - 1).activate(global.get_current_time());
this._wm.unblockAnimations();
}
// Delete other empty workspaces; do it from the end to avoid index changes
@ -264,6 +262,11 @@ const WorkspaceTracker = new Lang.Class({
global.screen.remove_workspace(this._workspaces[i], global.get_current_time());
}
if (removingCurrentWorkspace) {
global.screen.get_workspace_by_index(global.screen.n_workspaces - 1).activate(global.get_current_time());
this._wm.unblockAnimations();
}
this._checkWorkspacesId = 0;
return false;
},

View File

@ -343,6 +343,19 @@ const WindowOverlay = new Lang.Class({
this._animateVisible();
},
fadeIn: function() {
if (!this._hidden)
return;
this.show();
this.title.opacity = 0;
this._parentActor.raise_top();
Tweener.addTween(this.title,
{ opacity: 255,
time: CLOSE_BUTTON_FADE_TIME,
transition: 'easeOutQuad' });
},
chromeHeights: function () {
return [Math.max(this.borderSize, this.closeButton.height - this.closeButton._overlap),
this.title.height + this.title._spacing];
@ -359,6 +372,7 @@ const WindowOverlay = new Lang.Class({
let border = this.border;
Tweener.removeTweens(button);
Tweener.removeTweens(title);
Tweener.removeTweens(border);
let [cloneX, cloneY, cloneWidth, cloneHeight] = this._windowClone.slot;
@ -1128,7 +1142,7 @@ const Workspace = new Lang.Class({
clone.actor.set_scale(scale, scale);
clone.actor.set_opacity(255);
clone.overlay.relayout(false);
this._showWindowOverlay(clone, overlay);
this._showWindowOverlay(clone, overlay, isOnCurrentWorkspace);
}
}
},
@ -1158,19 +1172,23 @@ const Workspace = new Lang.Class({
time: Overview.ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: Lang.bind(this, function() {
this._showWindowOverlay(clone, overlay);
this._showWindowOverlay(clone, overlay, true);
})
});
clone.overlay.relayout(true);
},
_showWindowOverlay: function(clone, overlay) {
_showWindowOverlay: function(clone, overlay, fade) {
if (clone.inDrag)
return;
if (overlay && overlay._hidden)
if (overlay) {
if (fade)
overlay.fadeIn();
else
overlay.show();
}
},
_delayedWindowRepositioning: function() {

View File

@ -536,6 +536,20 @@ const ThumbnailsBox = new Lang.Class({
this.actor.connect('allocate', Lang.bind(this, this._allocate));
this.actor._delegate = this;
// When we animate the scale, we don't animate the requested size of the thumbnails, rather
// we ask for our final size and then animate within that size. This slightly simplifies the
// interaction with the main workspace windows (instead of constantly reallocating them
// to a new size, they get a new size once, then use the standard window animation code
// allocate the windows to their new positions), however it causes problems for drawing
// the background and border wrapped around the thumbnail as we animate - we can't just pack
// the container into a box and set style properties on the box since that box would wrap
// around the final size not the animating size. So instead we fake the background with
// an actor underneath the content and adjust the allocation of our children to leave space
// for the border and padding of the background actor.
this._background = new St.Bin({ style_class: 'workspace-thumbnails-background' });
this.actor.add_actor(this._background);
let indicator = new St.Bin({ style_class: 'workspace-thumbnail-indicator' });
// We don't want the indicator to affect drag-and-drop
@ -1028,6 +1042,9 @@ const ThumbnailsBox = new Lang.Class({
},
_getPreferredHeight: function(actor, forWidth, alloc) {
// See comment about this._background in _init()
let themeNode = this._background.get_theme_node();
// Note that for getPreferredWidth/Height we cheat a bit and skip propagating
// the size request to our children because we know how big they are and know
// that the actors aren't depending on the virtual functions being called.
@ -1035,21 +1052,24 @@ const ThumbnailsBox = new Lang.Class({
if (this._thumbnails.length == 0)
return;
let themeNode = this.actor.get_theme_node();
let spacing = themeNode.get_length('spacing');
let spacing = this.actor.get_theme_node().get_length('spacing');
let nWorkspaces = global.screen.n_workspaces;
let totalSpacing = (nWorkspaces - 1) * spacing;
alloc.min_size = totalSpacing;
alloc.natural_size = totalSpacing + nWorkspaces * this._porthole.height * MAX_THUMBNAIL_SCALE;
[alloc.min_size, alloc.natural_size] =
themeNode.adjust_preferred_height(totalSpacing,
totalSpacing + nWorkspaces * this._porthole.height * MAX_THUMBNAIL_SCALE);
},
_getPreferredWidth: function(actor, forHeight, alloc) {
// See comment about this._background in _init()
let themeNode = this._background.get_theme_node();
if (this._thumbnails.length == 0)
return;
let themeNode = this.actor.get_theme_node();
// We don't animate our preferred width, which is always reported according
// to the actual number of current workspaces, we just animate within that
let spacing = this.actor.get_theme_node().get_length('spacing');
let nWorkspaces = global.screen.n_workspaces;
@ -1061,26 +1081,28 @@ const ThumbnailsBox = new Lang.Class({
scale = Math.min(scale, MAX_THUMBNAIL_SCALE);
let width = Math.round(this._porthole.width * scale);
alloc.min_size = width;
alloc.natural_size = width;
[alloc.min_size, alloc.natural_size] =
themeNode.adjust_preferred_width(width, width);
},
_allocate: function(actor, box, flags) {
let rtl = (Clutter.get_default_text_direction () == Clutter.TextDirection.RTL);
// See comment about this._background in _init()
let themeNode = this._background.get_theme_node();
let contentBox = themeNode.get_content_box(box);
if (this._thumbnails.length == 0) // not visible
return;
let themeNode = this.actor.get_theme_node();
let portholeWidth = this._porthole.width;
let portholeHeight = this._porthole.height;
let spacing = themeNode.get_length('spacing');
let spacing = this.actor.get_theme_node().get_length('spacing');
// Compute the scale we'll need once everything is updated
let nWorkspaces = global.screen.n_workspaces;
let totalSpacing = (nWorkspaces - 1) * spacing;
let avail = (box.y2 - box.y1) - totalSpacing;
let avail = (contentBox.y2 - contentBox.y1) - totalSpacing;
let newScale = (avail / nWorkspaces) / portholeHeight;
newScale = Math.min(newScale, MAX_THUMBNAIL_SCALE);
@ -1109,6 +1131,21 @@ const ThumbnailsBox = new Lang.Class({
else
slideOffset = thumbnailWidth + themeNode.get_padding(St.Side.RIGHT);
let childBox = new Clutter.ActorBox();
// The background is horizontally restricted to correspond to the current thumbnail size
// but otherwise covers the entire allocation
if (rtl) {
childBox.x1 = box.x1;
childBox.x2 = box.x2 - ((contentBox.x2 - contentBox.x1) - thumbnailWidth);
} else {
childBox.x1 = box.x1 + ((contentBox.x2 - contentBox.x1) - thumbnailWidth);
childBox.x2 = box.x2;
}
childBox.y1 = box.y1;
childBox.y2 = box.y2;
this._background.allocate(childBox, flags);
let indicatorY1 = this._indicatorY;
let indicatorY2;
// when not animating, the workspace position overrides this._indicatorY
@ -1120,7 +1157,7 @@ const ThumbnailsBox = new Lang.Class({
let indicatorLeftFullBorder = indicatorThemeNode.get_padding(St.Side.LEFT) + indicatorThemeNode.get_border_width(St.Side.LEFT);
let indicatorRightFullBorder = indicatorThemeNode.get_padding(St.Side.RIGHT) + indicatorThemeNode.get_border_width(St.Side.RIGHT);
let y = box.y1;
let y = contentBox.y1;
if (this._dropPlaceholderPos == -1) {
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this, function() {
@ -1128,8 +1165,6 @@ const ThumbnailsBox = new Lang.Class({
}));
}
let childBox = new Clutter.ActorBox();
for (let i = 0; i < this._thumbnails.length; i++) {
let thumbnail = this._thumbnails[i];
@ -1138,10 +1173,10 @@ const ThumbnailsBox = new Lang.Class({
let x1, x2;
if (rtl) {
x1 = box.x1 + slideOffset * thumbnail.slidePosition;
x1 = contentBox.x1 + slideOffset * thumbnail.slidePosition;
x2 = x1 + thumbnailWidth;
} else {
x1 = box.x2 - thumbnailWidth + slideOffset * thumbnail.slidePosition;
x1 = contentBox.x2 - thumbnailWidth + slideOffset * thumbnail.slidePosition;
x2 = x1 + thumbnailWidth;
}
@ -1188,11 +1223,11 @@ const ThumbnailsBox = new Lang.Class({
}
if (rtl) {
childBox.x1 = box.x1;
childBox.x2 = box.x1 + thumbnailWidth;
childBox.x1 = contentBox.x1;
childBox.x2 = contentBox.x1 + thumbnailWidth;
} else {
childBox.x1 = box.x2 - thumbnailWidth;
childBox.x2 = box.x2;
childBox.x1 = contentBox.x2 - thumbnailWidth;
childBox.x2 = contentBox.x2;
}
childBox.x1 -= indicatorLeftFullBorder;
childBox.x2 += indicatorRightFullBorder;

View File

@ -46,7 +46,6 @@ ms
nb
nl
nn
oc
or
pa
pl

653
po/ar.po

File diff suppressed because it is too large Load Diff

350
po/as.po
View File

@ -3,14 +3,14 @@
# This file is distributed under the same license as the gnome-shell package.
#
# ngoswami <ngoswami@redhat.com>, 2011.
# Nilamdyuti Goswami <ngoswami@redhat.com>, 2011, 2012, 2013, 2014.
# Nilamdyuti Goswami <ngoswami@redhat.com>, 2011, 2012, 2013.
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2014-01-19 14:53+0000\n"
"PO-Revision-Date: 2014-01-23 19:08+0630\n"
"POT-Creation-Date: 2013-09-28 19:49+0000\n"
"PO-Revision-Date: 2013-09-30 13:31+0530\n"
"Last-Translator: Nilamdyuti Goswami <ngoswami@redhat.com>\n"
"Language-Team: Assamese <kde-i18n-doc@kde.org>\n"
"Language: as_IN\n"
@ -279,23 +279,23 @@ msgstr ""
msgid "Select an extension to configure using the combobox above."
msgstr "উপৰত দিয়া কম্বোবাকচ ব্যৱহাৰ কৰি সংৰূপণ কৰিবলে এটা সম্প্ৰসাৰন বাছক।"
#: ../js/gdm/authPrompt.js:146 ../js/ui/components/networkAgent.js:136
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:739
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:692
msgid "Cancel"
msgstr "বাতিল কৰক"
#: ../js/gdm/authPrompt.js:168 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:167 ../js/gdm/authPrompt.js:215
msgid "Next"
msgstr "পৰৱৰ্তী"
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59
msgid "Unlock"
msgstr "আনলক কৰক"
#: ../js/gdm/authPrompt.js:214
#: ../js/gdm/authPrompt.js:213
msgctxt "button"
msgid "Sign In"
msgstr "ছাইন ইন কৰক"
@ -322,23 +322,23 @@ msgstr "ব্যৱহাৰকাৰীৰ নাম: "
msgid "Login Window"
msgstr "লগিন উইন্ডো"
#: ../js/gdm/util.js:321
#: ../js/gdm/util.js:306
msgid "Authentication error"
msgstr "প্ৰমাণীকৰণ ত্ৰুটি"
#: ../js/gdm/util.js:451
#: ../js/gdm/util.js:436
msgid "(or swipe finger)"
msgstr "(অথবা আঙুলি স্বাইপ কৰক)"
#: ../js/misc/util.js:115
#: ../js/misc/util.js:98
msgid "Command not found"
msgstr "কমান্ড পোৱা নগল"
#: ../js/misc/util.js:148
#: ../js/misc/util.js:131
msgid "Could not parse command:"
msgstr "কমান্ড বিশ্লেষন কৰিব নোৱাৰি:"
#: ../js/misc/util.js:156
#: ../js/misc/util.js:139
#, javascript-format
msgid "Execution of '%s' failed:"
msgstr "'%s' ৰ প্ৰেৰণ ব্যৰ্থ হল:"
@ -355,15 +355,15 @@ msgstr "সঘন"
msgid "All"
msgstr "সকলো"
#: ../js/ui/appDisplay.js:1525
#: ../js/ui/appDisplay.js:1514
msgid "New Window"
msgstr "নতুন উইন্ডো"
#: ../js/ui/appDisplay.js:1528 ../js/ui/dash.js:284
#: ../js/ui/appDisplay.js:1517 ../js/ui/dash.js:284
msgid "Remove from Favorites"
msgstr "পছন্দৰ পৰা আতৰাওক"
#: ../js/ui/appDisplay.js:1529
#: ../js/ui/appDisplay.js:1518
msgid "Add to Favorites"
msgstr "পছন্দলে যোগ কৰক"
@ -377,8 +377,8 @@ msgstr "%s ক আপোনাৰ পছন্দলে যোগ কৰা হ
msgid "%s has been removed from your favorites."
msgstr "%s ক আপোনাৰ পছন্দৰ পৰা আতৰোৱা হৈছে।"
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:806
#: ../js/ui/status/system.js:334
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:808
#: ../js/ui/status/system.js:325
msgid "Settings"
msgstr "সংহতিসমূহ"
@ -568,16 +568,16 @@ msgstr "%s ৰ সৈতে খোলক"
msgid "Eject"
msgstr "উলিৱাওক"
#: ../js/ui/components/keyring.js:89 ../js/ui/components/polkitAgent.js:280
#: ../js/ui/components/keyring.js:91 ../js/ui/components/polkitAgent.js:280
msgid "Password:"
msgstr "পাছৱাৰ্ড:"
#: ../js/ui/components/keyring.js:108
#: ../js/ui/components/keyring.js:110
msgid "Type again:"
msgstr "আকৌ টাইপ কৰক:"
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:132
#: ../js/ui/status/network.js:295 ../js/ui/status/network.js:742
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:695
msgid "Connect"
msgstr "সংযোগ কৰক"
@ -671,60 +671,60 @@ msgstr "প্ৰমাণীত কৰক"
msgid "Sorry, that didn't work. Please try again."
msgstr "ক্ষমা কৰিব, সেয়া কাম নকৰিলে। অনুগ্ৰহ কৰি পুনৰ চেষ্টা কৰক।"
#: ../js/ui/components/telepathyClient.js:237
#: ../js/ui/components/telepathyClient.js:238
msgid "Invitation"
msgstr "নিমন্ত্ৰণ"
#: ../js/ui/components/telepathyClient.js:297
#: ../js/ui/components/telepathyClient.js:298
msgid "Call"
msgstr "কল"
#: ../js/ui/components/telepathyClient.js:313
#: ../js/ui/components/telepathyClient.js:314
msgid "File Transfer"
msgstr "ফাইল স্থানান্তৰ"
#: ../js/ui/components/telepathyClient.js:417
#: ../js/ui/components/telepathyClient.js:418
msgid "Chat"
msgstr "চেট"
#: ../js/ui/components/telepathyClient.js:479
#: ../js/ui/components/telepathyClient.js:480
msgid "Unmute"
msgstr "অমৌন কৰক"
#: ../js/ui/components/telepathyClient.js:479
#: ../js/ui/components/telepathyClient.js:480
msgid "Mute"
msgstr "মোন কৰক"
#. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30"*/
#: ../js/ui/components/telepathyClient.js:941
#: ../js/ui/components/telepathyClient.js:942
msgid "<b>Yesterday</b>, <b>%H:%M</b>"
msgstr "<b>যোৱাকালী</b>, <b>%H:%M</b>"
#. Translators: this is the week day name followed by a time string. i.e. "Monday, 14:30*/
#: ../js/ui/components/telepathyClient.js:947
#: ../js/ui/components/telepathyClient.js:948
msgid "<b>%A</b>, <b>%H:%M</b>"
msgstr "<b>%A</b>, <b>%H:%M</b>"
#. 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:952
#: ../js/ui/components/telepathyClient.js:953
msgid "<b>%B</b> <b>%d</b>, <b>%H:%M</b>"
msgstr "<b>%B</b> <b>%d</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"*/
#: ../js/ui/components/telepathyClient.js:956
#: ../js/ui/components/telepathyClient.js:957
msgid "<b>%B</b> <b>%d</b> <b>%Y</b>, <b>%H:%M</b> "
msgstr "<b>%B</b> <b>%d</b> <b>%Y</b>, <b>%H:%M</b> "
#. Translators: this is the other person changing their old IM name to their new
#. IM name. */
#: ../js/ui/components/telepathyClient.js:985
#: ../js/ui/components/telepathyClient.js:986
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s এতিয়া %s হিচাপে জনাজাত"
#. translators: argument is a room name like
#. * room@jabber.org for example. */
#: ../js/ui/components/telepathyClient.js:1088
#: ../js/ui/components/telepathyClient.js:1089
#, javascript-format
msgid "Invitation to %s"
msgstr "%s লে নিমন্ত্ৰণ"
@ -732,38 +732,38 @@ msgstr "%s লে নিমন্ত্ৰণ"
#. translators: first argument is the name of a contact and the second
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
#. * for example. */
#: ../js/ui/components/telepathyClient.js:1096
#: ../js/ui/components/telepathyClient.js:1097
#, javascript-format
msgid "%s is inviting you to join %s"
msgstr "%s এ আপোনাক %s ত অংশগ্ৰহণ কৰিবলে আমন্ত্ৰণ জনাইছে"
#: ../js/ui/components/telepathyClient.js:1098
#: ../js/ui/components/telepathyClient.js:1139
#: ../js/ui/components/telepathyClient.js:1179
#: ../js/ui/components/telepathyClient.js:1242
#: ../js/ui/components/telepathyClient.js:1099
#: ../js/ui/components/telepathyClient.js:1140
#: ../js/ui/components/telepathyClient.js:1180
#: ../js/ui/components/telepathyClient.js:1243
msgid "Decline"
msgstr "নাকচ কৰক"
#: ../js/ui/components/telepathyClient.js:1099
#: ../js/ui/components/telepathyClient.js:1180
#: ../js/ui/components/telepathyClient.js:1243
#: ../js/ui/components/telepathyClient.js:1100
#: ../js/ui/components/telepathyClient.js:1181
#: ../js/ui/components/telepathyClient.js:1244
msgid "Accept"
msgstr "গ্ৰহন কৰক"
#. translators: argument is a contact name like Alice for example. */
#: ../js/ui/components/telepathyClient.js:1129
#: ../js/ui/components/telepathyClient.js:1130
#, javascript-format
msgid "Video call from %s"
msgstr "%s ৰ পৰা ভিডিঅ' কল"
#. translators: argument is a contact name like Alice for example. */
#: ../js/ui/components/telepathyClient.js:1132
#: ../js/ui/components/telepathyClient.js:1133
#, javascript-format
msgid "Call from %s"
msgstr "%s ৰ পৰা কল"
#. translators: this is a button label (verb), not a noun */
#: ../js/ui/components/telepathyClient.js:1141
#: ../js/ui/components/telepathyClient.js:1142
msgid "Answer"
msgstr "উত্তৰ দিয়ক"
@ -772,110 +772,110 @@ msgstr "উত্তৰ দিয়ক"
#. * file name. The string will be something
#. * like: "Alice is sending you test.ogg"
#. */
#: ../js/ui/components/telepathyClient.js:1173
#: ../js/ui/components/telepathyClient.js:1174
#, javascript-format
msgid "%s is sending you %s"
msgstr "%s এ আপোনাক %s পঠাই আছে"
#. To translators: The parameter is the contact's alias */
#: ../js/ui/components/telepathyClient.js:1208
#: ../js/ui/components/telepathyClient.js:1209
#, javascript-format
msgid "%s would like permission to see when you are online"
msgstr "আপুনি কেতিয়া অনলাইন আছে চাবলে %s এ অনুমতি বিচাৰিব"
#: ../js/ui/components/telepathyClient.js:1300
#: ../js/ui/components/telepathyClient.js:1301
msgid "Network error"
msgstr "নেটৱাৰ্ক ত্ৰুটি"
#: ../js/ui/components/telepathyClient.js:1302
#: ../js/ui/components/telepathyClient.js:1303
msgid "Authentication failed"
msgstr "প্ৰমাণীকৰণ ব্যৰ্থ"
#: ../js/ui/components/telepathyClient.js:1304
#: ../js/ui/components/telepathyClient.js:1305
msgid "Encryption error"
msgstr "ইনক্ৰিপষণ ত্ৰুটি"
#: ../js/ui/components/telepathyClient.js:1306
#: ../js/ui/components/telepathyClient.js:1307
msgid "Certificate not provided"
msgstr "প্ৰমাণপত্ৰ প্ৰদান কৰা হোৱা নাই"
#: ../js/ui/components/telepathyClient.js:1308
#: ../js/ui/components/telepathyClient.js:1309
msgid "Certificate untrusted"
msgstr "প্ৰমাণপত্ৰক ভৰষা কৰিব নোৱাৰি"
#: ../js/ui/components/telepathyClient.js:1310
#: ../js/ui/components/telepathyClient.js:1311
msgid "Certificate expired"
msgstr "প্ৰমাণপত্ৰৰ অৱসান ঘটিছে"
#: ../js/ui/components/telepathyClient.js:1312
#: ../js/ui/components/telepathyClient.js:1313
msgid "Certificate not activated"
msgstr "প্ৰমাণপত্ৰ সক্ৰিয় কৰা হোৱা নাই"
#: ../js/ui/components/telepathyClient.js:1314
#: ../js/ui/components/telepathyClient.js:1315
msgid "Certificate hostname mismatch"
msgstr "প্ৰমাণপত্ৰ হস্টনাম অমিল"
#: ../js/ui/components/telepathyClient.js:1316
#: ../js/ui/components/telepathyClient.js:1317
msgid "Certificate fingerprint mismatch"
msgstr "প্ৰমাণপত্ৰ ফিংগাৰপ্ৰিন্ট অমিল"
#: ../js/ui/components/telepathyClient.js:1318
#: ../js/ui/components/telepathyClient.js:1319
msgid "Certificate self-signed"
msgstr "প্ৰমাণপত্ৰ স্ব-স্বাক্ষৰীত"
#: ../js/ui/components/telepathyClient.js:1320
#: ../js/ui/components/telepathyClient.js:1321
msgid "Status is set to offline"
msgstr "অৱস্থা অফলাইনলে সংহতি কৰা হৈছে"
#: ../js/ui/components/telepathyClient.js:1322
#: ../js/ui/components/telepathyClient.js:1323
msgid "Encryption is not available"
msgstr "ইনক্ৰিপষণ উপলব্ধ নহয়"
#: ../js/ui/components/telepathyClient.js:1324
#: ../js/ui/components/telepathyClient.js:1325
msgid "Certificate is invalid"
msgstr "প্ৰমাণপত্ৰ অবৈধ"
#: ../js/ui/components/telepathyClient.js:1326
#: ../js/ui/components/telepathyClient.js:1327
msgid "Connection has been refused"
msgstr "সংযোগ নাকচ কৰা হৈছে"
#: ../js/ui/components/telepathyClient.js:1328
#: ../js/ui/components/telepathyClient.js:1329
msgid "Connection can't be established"
msgstr "সংযোগ স্থাপন কৰিব নোৱাৰি"
#: ../js/ui/components/telepathyClient.js:1330
#: ../js/ui/components/telepathyClient.js:1331
msgid "Connection has been lost"
msgstr "সংযোগ হেৰাইছে"
#: ../js/ui/components/telepathyClient.js:1332
#: ../js/ui/components/telepathyClient.js:1333
msgid "This account is already connected to the server"
msgstr "এই একাওন্ট ইতিমধ্যে চাৰ্ভাৰৰ সৈতে সংযোগিত"
#: ../js/ui/components/telepathyClient.js:1334
#: ../js/ui/components/telepathyClient.js:1335
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr "সংযোগক একে সম্পদ ব্যৱহাৰ কৰি এটা নতুন সংযোগৰে প্ৰতিস্থাপন কৰা হৈছে"
#: ../js/ui/components/telepathyClient.js:1336
#: ../js/ui/components/telepathyClient.js:1337
msgid "The account already exists on the server"
msgstr "একাওন্ট ইতিমধ্যে চাৰ্ভাৰত উপস্থিত"
#: ../js/ui/components/telepathyClient.js:1338
#: ../js/ui/components/telepathyClient.js:1339
msgid "Server is currently too busy to handle the connection"
msgstr "চাৰ্ভাৰ সংযোগ ব্যৱস্থাপনা কৰিবলে বৰ্তমানে অতি ব্যস্ত"
#: ../js/ui/components/telepathyClient.js:1340
#: ../js/ui/components/telepathyClient.js:1341
msgid "Certificate has been revoked"
msgstr "প্ৰমাণপত্ৰ প্ৰত্যাহাৰ কৰা হৈছে"
#: ../js/ui/components/telepathyClient.js:1342
#: ../js/ui/components/telepathyClient.js:1343
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"প্ৰমাণপত্ৰয় এটা অসুৰক্ষিত চিফাৰ এলগৰিথম ব্যৱহাৰ কৰে অথবা ক্ৰিপ্টোগ্ৰাফিয়ভাৱে "
"দুৰ্বল"
#: ../js/ui/components/telepathyClient.js:1344
#: ../js/ui/components/telepathyClient.js:1345
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@ -884,22 +884,22 @@ msgstr ""
"ক্ৰিপ্টোগ্ৰাফী "
"লাইব্ৰেৰীয়ে প্ৰণয়ন কৰা সীমাসমূহত অতিক্ৰম কৰে"
#: ../js/ui/components/telepathyClient.js:1346
#: ../js/ui/components/telepathyClient.js:1347
msgid "Internal error"
msgstr "অভ্যন্তৰীক ত্ৰুটি"
#. translators: argument is the account name, like
#. * name@jabber.org for example. */
#: ../js/ui/components/telepathyClient.js:1356
#: ../js/ui/components/telepathyClient.js:1357
#, javascript-format
msgid "Unable to connect to %s"
msgstr "%s ৰ সৈতে সংযোগ কৰিবলে অক্ষম"
#: ../js/ui/components/telepathyClient.js:1361
#: ../js/ui/components/telepathyClient.js:1362
msgid "View account"
msgstr "একাওন্ট দৰ্শন কৰক"
#: ../js/ui/components/telepathyClient.js:1400
#: ../js/ui/components/telepathyClient.js:1401
msgid "Unknown reason"
msgstr "অজ্ঞাত কাৰণ"
@ -1075,12 +1075,9 @@ msgstr "ত্ৰুটিসমূহ দেখুৱাওক"
msgid "Enabled"
msgstr "সামৰ্থবান কৰা আছে"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode) */
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:765 ../js/ui/status/network.js:472
#: ../src/gvc/gvc-mixer-control.c:1830
#: ../js/ui/lookingGlass.js:765 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled"
msgstr "অসামৰ্থবান কৰা আছে"
@ -1104,48 +1101,44 @@ msgstr "উৎস দৰ্শন কৰক"
msgid "Web Page"
msgstr "ৱেব পৃষ্ঠা"
#: ../js/ui/messageTray.js:1347
#: ../js/ui/messageTray.js:1222
msgid "Open"
msgstr "খোলক"
#: ../js/ui/messageTray.js:1354
#: ../js/ui/messageTray.js:1229
msgid "Remove"
msgstr "আতৰাওক"
#: ../js/ui/messageTray.js:1657
msgid "Notifications"
msgstr "অধিসূচনাসমূহ"
#: ../js/ui/messageTray.js:1664
#: ../js/ui/messageTray.js:1513
msgid "Clear Messages"
msgstr "বাৰ্তাসমূহ পৰিষ্কাৰ কৰক"
#: ../js/ui/messageTray.js:1683
#: ../js/ui/messageTray.js:1540
msgid "Notification Settings"
msgstr "অধিসূচনা সংহতিসমূহ"
#: ../js/ui/messageTray.js:1736
#: ../js/ui/messageTray.js:1559
msgid "Tray Menu"
msgstr "ট্ৰে মেনু"
#: ../js/ui/messageTray.js:1952
#: ../js/ui/messageTray.js:1775
msgid "No Messages"
msgstr "কোনো বাৰ্তা নাই"
#: ../js/ui/messageTray.js:1990
#: ../js/ui/messageTray.js:1813
msgid "Message Tray"
msgstr "বাৰ্তা ট্ৰে"
#: ../js/ui/messageTray.js:2974
#: ../js/ui/messageTray.js:2788
msgid "System Information"
msgstr "চিস্টেম তথ্য"
#: ../js/ui/notificationDaemon.js:510 ../src/shell-app.c:396
#: ../js/ui/notificationDaemon.js:629 ../src/shell-app.c:396
msgctxt "program"
msgid "Unknown"
msgstr "অজ্ঞাত"
#: ../js/ui/overviewControls.js:488 ../js/ui/screenShield.js:153
#: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152
#, javascript-format
msgid "%d new message"
msgid_plural "%d new messages"
@ -1168,21 +1161,21 @@ msgstr "অভাৰভিউ"
msgid "Type to search…"
msgstr "সন্ধান কৰিবলে টাইপ কৰক…"
#: ../js/ui/panel.js:516
#: ../js/ui/panel.js:518
msgid "Quit"
msgstr "প্ৰস্থান কৰক"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". */
#: ../js/ui/panel.js:568
#: ../js/ui/panel.js:570
msgid "Activities"
msgstr "কাৰ্য্যসমূহ"
#: ../js/ui/panel.js:900
#: ../js/ui/panel.js:904
msgid "Top Bar"
msgstr "উপৰৰ বাৰ"
#: ../js/ui/popupMenu.js:260
#: ../js/ui/popupMenu.js:233
msgid "toggle-switch-us"
msgstr "toggle-switch-us"
@ -1196,30 +1189,30 @@ msgstr "বন্ধ কৰক"
#. Translators: This is a time format for a date in
#. long format */
#: ../js/ui/screenShield.js:89
#: ../js/ui/screenShield.js:88
msgid "%A, %B %d"
msgstr "%A, %B %d"
#: ../js/ui/screenShield.js:155
#: ../js/ui/screenShield.js:154
#, javascript-format
msgid "%d new notification"
msgid_plural "%d new notifications"
msgstr[0] "%d নতুন অধিসূচনা"
msgstr[1] "%d নতুন অধিসূচনাসমূহ"
#: ../js/ui/screenShield.js:478 ../js/ui/status/system.js:342
#: ../js/ui/screenShield.js:477 ../js/ui/status/system.js:333
msgid "Lock"
msgstr "লক কৰক"
#: ../js/ui/screenShield.js:712
#: ../js/ui/screenShield.js:704
msgid "GNOME needs to lock the screen"
msgstr "GNOME এ পৰ্দা লক কৰিব লাগিব"
#: ../js/ui/screenShield.js:839 ../js/ui/screenShield.js:1305
#: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1297
msgid "Unable to lock"
msgstr "লক কৰিবলে অক্ষম"
#: ../js/ui/screenShield.js:840 ../js/ui/screenShield.js:1306
#: ../js/ui/screenShield.js:832 ../js/ui/screenShield.js:1298
msgid "Lock was blocked by an application"
msgstr "লক কাৰ্য্য এটা এপ্লিকেচন দ্বাৰা প্ৰতিৰোধ কৰা হৈছিল"
@ -1259,135 +1252,135 @@ msgstr "পাছৱাৰ্ড মনত ৰাখক"
msgid "Accessibility"
msgstr "অভিগম্যতা"
#: ../js/ui/status/accessibility.js:56
#: ../js/ui/status/accessibility.js:58
msgid "Zoom"
msgstr "জুম কৰক"
#: ../js/ui/status/accessibility.js:63
#: ../js/ui/status/accessibility.js:65
msgid "Screen Reader"
msgstr "পৰ্দা ৰিডাৰ"
#: ../js/ui/status/accessibility.js:67
#: ../js/ui/status/accessibility.js:69
msgid "Screen Keyboard"
msgstr "পৰ্দা কিবৰ্ড"
#: ../js/ui/status/accessibility.js:71
#: ../js/ui/status/accessibility.js:73
msgid "Visual Alerts"
msgstr "চক্ষ সতৰ্কবাৰ্তাসমূহ"
#: ../js/ui/status/accessibility.js:74
#: ../js/ui/status/accessibility.js:76
msgid "Sticky Keys"
msgstr "স্টিকি কি'সমূহ"
#: ../js/ui/status/accessibility.js:77
#: ../js/ui/status/accessibility.js:79
msgid "Slow Keys"
msgstr "মন্থৰ কি'সমূহ"
#: ../js/ui/status/accessibility.js:80
#: ../js/ui/status/accessibility.js:82
msgid "Bounce Keys"
msgstr "বাউঞ্চ কি'সমূহ"
#: ../js/ui/status/accessibility.js:83
#: ../js/ui/status/accessibility.js:85
msgid "Mouse Keys"
msgstr "মাউছ কি'সমূহ"
#: ../js/ui/status/accessibility.js:142
#: ../js/ui/status/accessibility.js:144
msgid "High Contrast"
msgstr "উচ্চ কন্ট্ৰাস্ট"
#: ../js/ui/status/accessibility.js:191
#: ../js/ui/status/accessibility.js:193
msgid "Large Text"
msgstr "ডাঙৰ লিখনী"
#: ../js/ui/status/bluetooth.js:27 ../js/ui/status/bluetooth.js:62
#: ../js/ui/status/bluetooth.js:99 ../js/ui/status/bluetooth.js:127
#: ../js/ui/status/bluetooth.js:163 ../js/ui/status/bluetooth.js:194
#: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:63
#: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128
#: ../js/ui/status/bluetooth.js:164 ../js/ui/status/bluetooth.js:195
msgid "Bluetooth"
msgstr "ব্লুটুথ"
#: ../js/ui/status/bluetooth.js:29 ../js/ui/status/network.js:132
#: ../js/ui/status/network.js:1099 ../js/ui/status/rfkill.js:46
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:1040 ../js/ui/status/rfkill.js:46
msgid "Turn Off"
msgstr "বন্ধ কৰক"
#: ../js/ui/status/bluetooth.js:32
#: ../js/ui/status/bluetooth.js:33
msgid "Bluetooth Settings"
msgstr "ব্লুটুথ সংহতিসমূহ"
#: ../js/ui/status/bluetooth.js:57
#: ../js/ui/status/bluetooth.js:58
#, javascript-format
msgid "%d Connected Device"
msgid_plural "%d Connected Devices"
msgstr[0] "%d সংযুক্ত ডিভাইচ"
msgstr[1] "%d সংযুক্ত ডিভাইচসমূহ"
#: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128
#: ../js/ui/status/bluetooth.js:101 ../js/ui/status/bluetooth.js:129
#, javascript-format
msgid "Authorization request from %s"
msgstr "%s ৰ পৰা প্ৰমাণীকৰণ অনুৰোধ"
#: ../js/ui/status/bluetooth.js:106 ../js/ui/status/bluetooth.js:171
#: ../js/ui/status/bluetooth.js:202
#: ../js/ui/status/bluetooth.js:107 ../js/ui/status/bluetooth.js:172
#: ../js/ui/status/bluetooth.js:203
#, javascript-format
msgid "Device %s wants to pair with this computer"
msgstr "ডিভাইচ %s এ এই কমপিউটাৰৰ লগত সংযোগ কৰিব বিচাৰে"
#: ../js/ui/status/bluetooth.js:108
#: ../js/ui/status/bluetooth.js:109
msgid "Allow"
msgstr "অনুমতি দিয়ক"
#: ../js/ui/status/bluetooth.js:109
#: ../js/ui/status/bluetooth.js:110
msgid "Deny"
msgstr "নাকচ কৰক"
#: ../js/ui/status/bluetooth.js:134
#: ../js/ui/status/bluetooth.js:135
#, javascript-format
msgid "Device %s wants access to the service '%s'"
msgstr "ডিভাইচ %s এ সেৱা '%s' লে অভিগম বিচাৰে"
#: ../js/ui/status/bluetooth.js:136
#: ../js/ui/status/bluetooth.js:137
msgid "Always grant access"
msgstr "সদায় অভিগম প্ৰদান কৰক"
#: ../js/ui/status/bluetooth.js:137
#: ../js/ui/status/bluetooth.js:138
msgid "Grant this time only"
msgstr "কেৱল এইবাৰৰ কাৰণে প্ৰদান কৰক"
#: ../js/ui/status/bluetooth.js:138
#: ../js/ui/status/bluetooth.js:139
msgid "Reject"
msgstr "নাকচ কৰক"
#. Translators: argument is the device short name */
#: ../js/ui/status/bluetooth.js:165
#: ../js/ui/status/bluetooth.js:166
#, javascript-format
msgid "Pairing confirmation for %s"
msgstr "%s ৰ কাৰণে যোৰ প্ৰতিশ্ৰুতি"
#: ../js/ui/status/bluetooth.js:172
#: ../js/ui/status/bluetooth.js:173
#, javascript-format
msgid ""
"Please confirm whether the Passkey '%06d' matches the one on the device."
msgstr "অনুগ্ৰহ কৰি সুনিশ্চিত কৰক যে পাছকি '%06d' ডিভাইচত থকাটোৰ সৈতে মিল খায়।"
#. Translators: this is the verb, not the noun */
#: ../js/ui/status/bluetooth.js:175
#: ../js/ui/status/bluetooth.js:176
msgid "Matches"
msgstr "মিলসমূহ"
#: ../js/ui/status/bluetooth.js:176
#: ../js/ui/status/bluetooth.js:177
msgid "Does not match"
msgstr "মিল নাখায়"
#: ../js/ui/status/bluetooth.js:195
#: ../js/ui/status/bluetooth.js:196
#, javascript-format
msgid "Pairing request for %s"
msgstr "%s ৰ কাৰণে যোৰ অনুৰোধ"
#: ../js/ui/status/bluetooth.js:203
#: ../js/ui/status/bluetooth.js:204
msgid "Please enter the PIN mentioned on the device."
msgstr "অনুগ্ৰহ কৰি ডিভাইচত উল্লেখ কৰা PIN সুমুৱাওক।"
#: ../js/ui/status/bluetooth.js:220
#: ../js/ui/status/bluetooth.js:221
msgid "OK"
msgstr "ঠিক আছে"
@ -1395,103 +1388,87 @@ msgstr "ঠিক আছে"
msgid "Brightness"
msgstr "উজ্জ্বলতা"
#: ../js/ui/status/network.js:71
#: ../js/ui/status/network.js:72
msgid "<unknown>"
msgstr "<unknown>"
#: ../js/ui/status/network.js:222 ../js/ui/status/network.js:379
#: ../js/ui/status/network.js:1120
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1055
msgid "Off"
msgstr "অফ"
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:961
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "নেটৱাৰ্ক সংহতিসমূহ"
#. 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) */
#: ../js/ui/status/network.js:385
#: ../js/ui/status/network.js:364
msgid "unmanaged"
msgstr "অব্যৱস্থাপিত"
#: ../js/ui/status/network.js:387
#: ../js/ui/status/network.js:366
msgid "disconnecting..."
msgstr "বিচ্ছিনিত কৰা হৈছে..."
#: ../js/ui/status/network.js:393 ../js/ui/status/network.js:1174
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1106
msgid "connecting..."
msgstr "সংযোগ কৰা হৈছে..."
#. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:396 ../js/ui/status/network.js:1177
#: ../js/ui/status/network.js:375 ../js/ui/status/network.js:1109
msgid "authentication required"
msgstr "প্ৰমাণীকৰণৰ প্ৰয়োজন"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing */
#: ../js/ui/status/network.js:404
#: ../js/ui/status/network.js:383
msgid "firmware missing"
msgstr "ফাৰ্মৱেৰ সন্ধানহীন"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage */
#: ../js/ui/status/network.js:408
#: ../js/ui/status/network.js:387
msgid "unavailable"
msgstr "উপলব্ধ নাই"
#: ../js/ui/status/network.js:410 ../js/ui/status/network.js:1179
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1111
msgid "connection failed"
msgstr "সংযোগ ব্যৰ্থ"
#: ../js/ui/status/network.js:426 ../js/ui/status/network.js:512
#| msgid "Mobile broadband"
msgid "Mobile Broadband Settings"
msgstr "মবাইল ব্ৰডবেণ্ড সংহতিসমূহ"
#: ../js/ui/status/network.js:468 ../js/ui/status/network.js:1118
#| msgid "hardware disabled"
msgid "Hardware Disabled"
msgstr "হাৰ্ডৱেৰ অসামৰ্থবান কৰা আছে"
#: ../js/ui/status/network.js:707
#: ../js/ui/status/network.js:660
msgid "Wi-Fi Networks"
msgstr "Wi-Fi নেটৱাৰ্কসমূহ"
#: ../js/ui/status/network.js:709
#: ../js/ui/status/network.js:662
msgid "Select a network"
msgstr "এটা নেটৱাৰ্ক বাছক"
#: ../js/ui/status/network.js:733
#: ../js/ui/status/network.js:686
msgid "No Networks"
msgstr "কোনো নেটৱাৰ্ক নাই"
#: ../js/ui/status/network.js:1005
#: ../js/ui/status/network.js:955
msgid "Select Network"
msgstr "নেটৱাৰ্ক বাছক"
#: ../js/ui/status/network.js:1011
#| msgid "Settings"
msgid "Wi-Fi Settings"
msgstr "Wi-Fi সংহতিসমূহ"
#: ../js/ui/status/network.js:1099
#: ../js/ui/status/network.js:1040
msgid "Turn On"
msgstr "অন কৰক"
#: ../js/ui/status/network.js:1122
#| msgid "Connect"
msgid "Not Connected"
msgstr "সংযুক্ত নহয়"
#: ../js/ui/status/network.js:1242
#: ../js/ui/status/network.js:1173
msgid "VPN"
msgstr "VPN"
#: ../js/ui/status/network.js:1382
#: ../js/ui/status/network.js:1313
msgid "Network Manager"
msgstr "নেটৱাৰ্ক ব্যৱস্থাপক"
#: ../js/ui/status/network.js:1421
#: ../js/ui/status/network.js:1352
msgid "Connection failed"
msgstr "সংযোগ ব্যৰ্থ"
#: ../js/ui/status/network.js:1422
#: ../js/ui/status/network.js:1353
msgid "Activation of network connection failed"
msgstr "নেটৱাৰ্ক সংযোগ সক্ৰিয়কৰণ ব্যৰ্থ হল"
@ -1513,11 +1490,13 @@ msgstr "অনুমান কৰা হৈছে…"
#: ../js/ui/status/power.js:77
#, javascript-format
#| msgid "%d\\u2236%02d Remaining (%d%%)"
msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d অৱশিষ্ট (%d%%)"
#: ../js/ui/status/power.js:82
#, javascript-format
#| msgid "%d\\u2236%02d Until Full (%d%%)"
msgid "%d%02d Until Full (%d%%)"
msgstr "%d%02d সম্পূৰ্ণ হোৱালৈ (%d%%)"
@ -1529,27 +1508,23 @@ msgstr "বিমান অৱস্থা"
msgid "On"
msgstr "অন"
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "নেটৱাৰ্ক সংহতিসমূহ"
#: ../js/ui/status/system.js:314
#: ../js/ui/status/system.js:305
msgid "Switch User"
msgstr "ব্যৱহাৰকাৰী পৰিবৰ্তন কৰক"
#: ../js/ui/status/system.js:319
#: ../js/ui/status/system.js:310
msgid "Log Out"
msgstr "লগ আউট কৰক"
#: ../js/ui/status/system.js:338
#: ../js/ui/status/system.js:329
msgid "Orientation Lock"
msgstr "দিশনিৰ্ণয় লক"
#: ../js/ui/status/system.js:346
#: ../js/ui/status/system.js:337
msgid "Suspend"
msgstr "বাতিল কৰক"
#: ../js/ui/status/system.js:349
#: ../js/ui/status/system.js:340
msgid "Power Off"
msgstr "বন্ধ কৰক"
@ -1835,6 +1810,9 @@ msgstr "প্ৰমাণীকৰণ ডাইলগ ব্যৱহাৰক
#~ msgid "Set Up a New Device…"
#~ msgstr "এটা নতুন ডিভাইচ সংহতি কৰক…"
#~ msgid "hardware disabled"
#~ msgstr "হাৰ্ডৱেৰ অসামৰ্থবান কৰা আছে"
#~ msgid "Connection"
#~ msgstr "সংযোগ"
@ -1873,6 +1851,9 @@ msgstr "প্ৰমাণীকৰণ ডাইলগ ব্যৱহাৰক
#~ msgid "Auto Ethernet"
#~ msgstr "স্বচালিত ইথাৰনেট"
#~ msgid "Mobile broadband"
#~ msgstr "মবাইল ব্ৰডবেণ্ড"
#~ msgid "Auto broadband"
#~ msgstr "স্বচালিত ব্ৰডবেণ্ড"
@ -1974,6 +1955,9 @@ msgstr "প্ৰমাণীকৰণ ডাইলগ ব্যৱহাৰক
#~ msgid "Idle"
#~ msgstr "অলস"
#~ msgid "Notifications"
#~ msgstr "অধিসূচনাসমূহ"
#~ msgid "Your chat status will be set to busy"
#~ msgstr "আপোনাৰ চেট অৱস্থা ব্যস্থলে সংহতি কৰা হব"

587
po/be.po

File diff suppressed because it is too large Load Diff

1920
po/ca.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

366
po/cs.po
View File

@ -12,8 +12,8 @@ msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2013-12-29 22:55+0000\n"
"PO-Revision-Date: 2013-12-30 00:05+0100\n"
"POT-Creation-Date: 2013-10-01 14:26+0000\n"
"PO-Revision-Date: 2013-10-02 09:51+0200\n"
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
"Language-Team: Czech <gnome-cs-list@gnome.org>\n"
"Language: cs\n"
@ -273,23 +273,23 @@ msgid "Select an extension to configure using the combobox above."
msgstr ""
"Pomocí rozbalovacího seznamu výše zvolte rozšíření, které chete nastavit."
#: ../js/gdm/authPrompt.js:146 ../js/ui/components/networkAgent.js:136
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:739
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:692
msgid "Cancel"
msgstr "Zrušit"
#: ../js/gdm/authPrompt.js:168 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:167 ../js/gdm/authPrompt.js:215
msgid "Next"
msgstr "Následující"
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59
msgid "Unlock"
msgstr "Odemknout"
#: ../js/gdm/authPrompt.js:214
#: ../js/gdm/authPrompt.js:213
msgctxt "button"
msgid "Sign In"
msgstr "Přihlásit se"
@ -315,23 +315,23 @@ msgstr "Uživatelské jméno: "
msgid "Login Window"
msgstr "Přihlašovací okno"
#: ../js/gdm/util.js:321
#: ../js/gdm/util.js:306
msgid "Authentication error"
msgstr "Chyba ověření"
#: ../js/gdm/util.js:451
#: ../js/gdm/util.js:436
msgid "(or swipe finger)"
msgstr "(nebo otiskněte prst)"
#: ../js/misc/util.js:115
#: ../js/misc/util.js:98
msgid "Command not found"
msgstr "Příkaz nenalezen"
#: ../js/misc/util.js:148
#: ../js/misc/util.js:131
msgid "Could not parse command:"
msgstr "Nelze analyzovat příkaz:"
#: ../js/misc/util.js:156
#: ../js/misc/util.js:139
msgid "Execution of '%s' failed:"
msgstr "Vykonání „%s“ selhalo:"
@ -347,15 +347,15 @@ msgstr "Časté"
msgid "All"
msgstr "Všechny"
#: ../js/ui/appDisplay.js:1525
#: ../js/ui/appDisplay.js:1514
msgid "New Window"
msgstr "Nové okno"
#: ../js/ui/appDisplay.js:1528 ../js/ui/dash.js:284
#: ../js/ui/appDisplay.js:1517 ../js/ui/dash.js:284
msgid "Remove from Favorites"
msgstr "Odstranit z oblíbených"
#: ../js/ui/appDisplay.js:1529
#: ../js/ui/appDisplay.js:1518
msgid "Add to Favorites"
msgstr "Přidat mezi oblíbené"
@ -367,8 +367,8 @@ msgstr "%s byl přidán mezi oblíbené."
msgid "%s has been removed from your favorites."
msgstr "%s byl odstraněn z oblíbených."
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:806
#: ../js/ui/status/system.js:334
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:808
#: ../js/ui/status/system.js:325
msgid "Settings"
msgstr "Nastavení"
@ -389,7 +389,7 @@ msgstr "Celý den"
#: ../js/ui/calendar.js:68
msgctxt "event list time"
msgid "%H%M"
msgstr "%H%M"
msgstr "%k%M"
#. Translators: Shown in calendar event list, if 12h format,
#. \u2236 is a ratio character, similar to : and \u2009 is
@ -397,7 +397,7 @@ msgstr "%H%M"
#: ../js/ui/calendar.js:77
msgctxt "event list time"
msgid "%l%M%p"
msgstr "%l%M%p"
msgstr "%l%M%p"
#. Translators: Calendar grid abbreviation for Sunday.
#. *
@ -557,16 +557,16 @@ msgstr "Otevřít s %s"
msgid "Eject"
msgstr "Vysunout"
#: ../js/ui/components/keyring.js:89 ../js/ui/components/polkitAgent.js:280
#: ../js/ui/components/keyring.js:91 ../js/ui/components/polkitAgent.js:280
msgid "Password:"
msgstr "Heslo:"
#: ../js/ui/components/keyring.js:108
#: ../js/ui/components/keyring.js:110
msgid "Type again:"
msgstr "Napište znovu:"
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:132
#: ../js/ui/status/network.js:295 ../js/ui/status/network.js:742
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:695
msgid "Connect"
msgstr "Připojit"
@ -658,94 +658,94 @@ msgstr "Ověřit"
msgid "Sorry, that didn't work. Please try again."
msgstr "Ověření bohužel nebylo úspěšné. Zkuste to prosím znovu."
#: ../js/ui/components/telepathyClient.js:237
#: ../js/ui/components/telepathyClient.js:238
msgid "Invitation"
msgstr "Pozvání"
#: ../js/ui/components/telepathyClient.js:297
#: ../js/ui/components/telepathyClient.js:298
msgid "Call"
msgstr "Hovor"
#: ../js/ui/components/telepathyClient.js:313
#: ../js/ui/components/telepathyClient.js:314
msgid "File Transfer"
msgstr "Přenos souborů"
#: ../js/ui/components/telepathyClient.js:417
#: ../js/ui/components/telepathyClient.js:418
msgid "Chat"
msgstr "Diskuse"
#: ../js/ui/components/telepathyClient.js:479
#: ../js/ui/components/telepathyClient.js:480
msgid "Unmute"
msgstr "Zrušit ztlumení"
#: ../js/ui/components/telepathyClient.js:479
#: ../js/ui/components/telepathyClient.js:480
msgid "Mute"
msgstr "Ztlumit"
#. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30"*/
#: ../js/ui/components/telepathyClient.js:941
#: ../js/ui/components/telepathyClient.js:942
msgid "<b>Yesterday</b>, <b>%H:%M</b>"
msgstr "<b>Včera</b>, <b>%H%M</b>"
msgstr "<b>Včera</b>, <b>%H.%M</b>"
#. Translators: this is the week day name followed by a time string. i.e. "Monday, 14:30*/
#: ../js/ui/components/telepathyClient.js:947
#: ../js/ui/components/telepathyClient.js:948
msgid "<b>%A</b>, <b>%H:%M</b>"
msgstr "<b>%A</b>, <b>%H%M</b>"
msgstr "<b>%A</b>, <b>%H:%M</b>"
#. 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:952
#: ../js/ui/components/telepathyClient.js:953
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"*/
#: ../js/ui/components/telepathyClient.js:956
#: ../js/ui/components/telepathyClient.js:957
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
#. IM name. */
#: ../js/ui/components/telepathyClient.js:985
#: ../js/ui/components/telepathyClient.js:986
msgid "%s is now known as %s"
msgstr "%s je teď znám jako %s"
#. translators: argument is a room name like
#. * room@jabber.org for example. */
#: ../js/ui/components/telepathyClient.js:1088
#: ../js/ui/components/telepathyClient.js:1089
msgid "Invitation to %s"
msgstr "Pozvánka na připojení k %s"
#. translators: first argument is the name of a contact and the second
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
#. * for example. */
#: ../js/ui/components/telepathyClient.js:1096
#: ../js/ui/components/telepathyClient.js:1097
msgid "%s is inviting you to join %s"
msgstr "%s vás zve do %s"
#: ../js/ui/components/telepathyClient.js:1098
#: ../js/ui/components/telepathyClient.js:1139
#: ../js/ui/components/telepathyClient.js:1179
#: ../js/ui/components/telepathyClient.js:1242
#: ../js/ui/components/telepathyClient.js:1099
#: ../js/ui/components/telepathyClient.js:1140
#: ../js/ui/components/telepathyClient.js:1180
#: ../js/ui/components/telepathyClient.js:1243
msgid "Decline"
msgstr "Odmítnout"
#: ../js/ui/components/telepathyClient.js:1099
#: ../js/ui/components/telepathyClient.js:1180
#: ../js/ui/components/telepathyClient.js:1243
#: ../js/ui/components/telepathyClient.js:1100
#: ../js/ui/components/telepathyClient.js:1181
#: ../js/ui/components/telepathyClient.js:1244
msgid "Accept"
msgstr "Přijmout"
#. translators: argument is a contact name like Alice for example. */
#: ../js/ui/components/telepathyClient.js:1129
#: ../js/ui/components/telepathyClient.js:1130
msgid "Video call from %s"
msgstr "Videohovor od %s"
#. translators: argument is a contact name like Alice for example. */
#: ../js/ui/components/telepathyClient.js:1132
#: ../js/ui/components/telepathyClient.js:1133
msgid "Call from %s"
msgstr "Hovor od %s"
#. translators: this is a button label (verb), not a noun */
#: ../js/ui/components/telepathyClient.js:1141
#: ../js/ui/components/telepathyClient.js:1142
msgid "Answer"
msgstr "Zvednout"
@ -754,108 +754,108 @@ msgstr "Zvednout"
#. * file name. The string will be something
#. * like: "Alice is sending you test.ogg"
#. */
#: ../js/ui/components/telepathyClient.js:1173
#: ../js/ui/components/telepathyClient.js:1174
msgid "%s is sending you %s"
msgstr "%s vám posílá %s"
#. To translators: The parameter is the contact's alias */
#: ../js/ui/components/telepathyClient.js:1208
#: ../js/ui/components/telepathyClient.js:1209
msgid "%s would like permission to see when you are online"
msgstr "%s vás žádá o oprávnění vidět, že jste dostupní"
#: ../js/ui/components/telepathyClient.js:1300
#: ../js/ui/components/telepathyClient.js:1301
msgid "Network error"
msgstr "Chyba sítě"
#: ../js/ui/components/telepathyClient.js:1302
#: ../js/ui/components/telepathyClient.js:1303
msgid "Authentication failed"
msgstr "Ověření selhalo"
#: ../js/ui/components/telepathyClient.js:1304
#: ../js/ui/components/telepathyClient.js:1305
msgid "Encryption error"
msgstr "Chyba šifrování"
#: ../js/ui/components/telepathyClient.js:1306
#: ../js/ui/components/telepathyClient.js:1307
msgid "Certificate not provided"
msgstr "Certifikát neposkytnut"
#: ../js/ui/components/telepathyClient.js:1308
#: ../js/ui/components/telepathyClient.js:1309
msgid "Certificate untrusted"
msgstr "Nedůvěryhodný certifikát"
#: ../js/ui/components/telepathyClient.js:1310
#: ../js/ui/components/telepathyClient.js:1311
msgid "Certificate expired"
msgstr "Platnost certifikátu vypršela"
#: ../js/ui/components/telepathyClient.js:1312
#: ../js/ui/components/telepathyClient.js:1313
msgid "Certificate not activated"
msgstr "Certifikát není aktivován"
#: ../js/ui/components/telepathyClient.js:1314
#: ../js/ui/components/telepathyClient.js:1315
msgid "Certificate hostname mismatch"
msgstr "Název počítače certifikátu nesouhlasí"
#: ../js/ui/components/telepathyClient.js:1316
#: ../js/ui/components/telepathyClient.js:1317
msgid "Certificate fingerprint mismatch"
msgstr "Otisk prstu certifikátu nesouhlasí"
#: ../js/ui/components/telepathyClient.js:1318
#: ../js/ui/components/telepathyClient.js:1319
msgid "Certificate self-signed"
msgstr "Certifikát je podepsán sám sebou"
#: ../js/ui/components/telepathyClient.js:1320
#: ../js/ui/components/telepathyClient.js:1321
msgid "Status is set to offline"
msgstr "Stav nastaven na „Odhlášen“"
#: ../js/ui/components/telepathyClient.js:1322
#: ../js/ui/components/telepathyClient.js:1323
msgid "Encryption is not available"
msgstr "Šifrování není dostupné"
#: ../js/ui/components/telepathyClient.js:1324
#: ../js/ui/components/telepathyClient.js:1325
msgid "Certificate is invalid"
msgstr "Certifikát je neplatný"
#: ../js/ui/components/telepathyClient.js:1326
#: ../js/ui/components/telepathyClient.js:1327
msgid "Connection has been refused"
msgstr "Spojení bylo odmítnuto"
#: ../js/ui/components/telepathyClient.js:1328
#: ../js/ui/components/telepathyClient.js:1329
msgid "Connection can't be established"
msgstr "Spojení nemohlo bát navázáno"
#: ../js/ui/components/telepathyClient.js:1330
#: ../js/ui/components/telepathyClient.js:1331
msgid "Connection has been lost"
msgstr "Spojení bylo ztraceno"
#: ../js/ui/components/telepathyClient.js:1332
#: ../js/ui/components/telepathyClient.js:1333
msgid "This account is already connected to the server"
msgstr "Tento účet je již připojen k serveru"
#: ../js/ui/components/telepathyClient.js:1334
#: ../js/ui/components/telepathyClient.js:1335
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr "Spojení bylo nahrazeno novým spojením, které používá stejný zdroj"
#: ../js/ui/components/telepathyClient.js:1336
#: ../js/ui/components/telepathyClient.js:1337
msgid "The account already exists on the server"
msgstr "Takový účet již na serveru existuje"
#: ../js/ui/components/telepathyClient.js:1338
#: ../js/ui/components/telepathyClient.js:1339
msgid "Server is currently too busy to handle the connection"
msgstr "Server je právě příliš zaneprázdněn na to, aby obsloužil spojení"
#: ../js/ui/components/telepathyClient.js:1340
#: ../js/ui/components/telepathyClient.js:1341
msgid "Certificate has been revoked"
msgstr "Certifikát byl odvolán"
#: ../js/ui/components/telepathyClient.js:1342
#: ../js/ui/components/telepathyClient.js:1343
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"Certifikát používá nepříliš bezpečný šifrovací algoritmus nebo je z "
"kryptografického hlediska slabý"
#: ../js/ui/components/telepathyClient.js:1344
#: ../js/ui/components/telepathyClient.js:1345
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@ -863,21 +863,21 @@ msgstr ""
"Délka certifikátu serveru nebo délka zřetězených certifikátů serveru "
"přesáhla omezení dané kryptografickou knihovnou"
#: ../js/ui/components/telepathyClient.js:1346
#: ../js/ui/components/telepathyClient.js:1347
msgid "Internal error"
msgstr "Vnitřní chyba"
#. translators: argument is the account name, like
#. * name@jabber.org for example. */
#: ../js/ui/components/telepathyClient.js:1356
#: ../js/ui/components/telepathyClient.js:1357
msgid "Unable to connect to %s"
msgstr "Nelze se připojit k „%s“"
#: ../js/ui/components/telepathyClient.js:1361
#: ../js/ui/components/telepathyClient.js:1362
msgid "View account"
msgstr "Zobrazit účet"
#: ../js/ui/components/telepathyClient.js:1400
#: ../js/ui/components/telepathyClient.js:1401
msgid "Unknown reason"
msgstr "Neznámý důvod"
@ -1051,12 +1051,9 @@ msgstr "Zobrazovat chyby"
msgid "Enabled"
msgstr "Povoleno"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode) */
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:765 ../js/ui/status/network.js:472
#: ../src/gvc/gvc-mixer-control.c:1830
#: ../js/ui/lookingGlass.js:765 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled"
msgstr "Zakázáno"
@ -1080,48 +1077,44 @@ msgstr "Zobrazit zdroj"
msgid "Web Page"
msgstr "Webová stránka"
#: ../js/ui/messageTray.js:1347
#: ../js/ui/messageTray.js:1222
msgid "Open"
msgstr "Otevřít"
#: ../js/ui/messageTray.js:1354
#: ../js/ui/messageTray.js:1229
msgid "Remove"
msgstr "Odstranit"
#: ../js/ui/messageTray.js:1657
msgid "Notifications"
msgstr "Upozornění"
#: ../js/ui/messageTray.js:1664
#: ../js/ui/messageTray.js:1513
msgid "Clear Messages"
msgstr "Vymazat zprávy"
#: ../js/ui/messageTray.js:1683
#: ../js/ui/messageTray.js:1540
msgid "Notification Settings"
msgstr "Nastavení upozornění"
#: ../js/ui/messageTray.js:1736
#: ../js/ui/messageTray.js:1559
msgid "Tray Menu"
msgstr "Nabídka lišty zpráv"
#: ../js/ui/messageTray.js:1952
#: ../js/ui/messageTray.js:1775
msgid "No Messages"
msgstr "Žádné zprávy"
#: ../js/ui/messageTray.js:1990
#: ../js/ui/messageTray.js:1813
msgid "Message Tray"
msgstr "Lišta zpráv"
#: ../js/ui/messageTray.js:2974
#: ../js/ui/messageTray.js:2788
msgid "System Information"
msgstr "Informace o systému"
#: ../js/ui/notificationDaemon.js:510 ../src/shell-app.c:396
#: ../js/ui/notificationDaemon.js:629 ../src/shell-app.c:396
msgctxt "program"
msgid "Unknown"
msgstr "Neznámé"
#: ../js/ui/overviewControls.js:488 ../js/ui/screenShield.js:153
#: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152
msgid "%d new message"
msgid_plural "%d new messages"
msgstr[0] "%d nová zpráva"
@ -1144,21 +1137,21 @@ msgstr "Přehled"
msgid "Type to search…"
msgstr "Vyhledávejte psaním…"
#: ../js/ui/panel.js:516
#: ../js/ui/panel.js:518
msgid "Quit"
msgstr "Ukončit"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". */
#: ../js/ui/panel.js:568
#: ../js/ui/panel.js:570
msgid "Activities"
msgstr "Činnosti"
#: ../js/ui/panel.js:900
#: ../js/ui/panel.js:904
msgid "Top Bar"
msgstr "Horní lišta"
#: ../js/ui/popupMenu.js:260
#: ../js/ui/popupMenu.js:233
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
@ -1172,30 +1165,30 @@ msgstr "Zavřít"
#. Translators: This is a time format for a date in
#. long format */
#: ../js/ui/screenShield.js:89
#: ../js/ui/screenShield.js:88
msgid "%A, %B %d"
msgstr "%A, %e. %B"
#: ../js/ui/screenShield.js:155
#: ../js/ui/screenShield.js:154
msgid "%d new notification"
msgid_plural "%d new notifications"
msgstr[0] "%d nové upozornění"
msgstr[1] "%d nová upozornění"
msgstr[2] "%d nových upozornění"
#: ../js/ui/screenShield.js:478 ../js/ui/status/system.js:342
#: ../js/ui/screenShield.js:477 ../js/ui/status/system.js:333
msgid "Lock"
msgstr "Uzamknout"
#: ../js/ui/screenShield.js:712
#: ../js/ui/screenShield.js:704
msgid "GNOME needs to lock the screen"
msgstr "GNOME potřebuje uzamknout obrazovku"
#: ../js/ui/screenShield.js:839 ../js/ui/screenShield.js:1305
#: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1297
msgid "Unable to lock"
msgstr "Nelze uzamknout obrazovku"
#: ../js/ui/screenShield.js:840 ../js/ui/screenShield.js:1306
#: ../js/ui/screenShield.js:832 ../js/ui/screenShield.js:1298
msgid "Lock was blocked by an application"
msgstr "Zamknutí bylo zablokováno některou z aplikací"
@ -1235,129 +1228,129 @@ msgstr "Pamatovat si heslo"
msgid "Accessibility"
msgstr "Zpřístupnění"
#: ../js/ui/status/accessibility.js:56
#: ../js/ui/status/accessibility.js:58
msgid "Zoom"
msgstr "Zvětšení"
#: ../js/ui/status/accessibility.js:63
#: ../js/ui/status/accessibility.js:65
msgid "Screen Reader"
msgstr "Čtečka obrazovky"
#: ../js/ui/status/accessibility.js:67
#: ../js/ui/status/accessibility.js:69
msgid "Screen Keyboard"
msgstr "Klávesnice na obrazovce"
#: ../js/ui/status/accessibility.js:71
#: ../js/ui/status/accessibility.js:73
msgid "Visual Alerts"
msgstr "Vizuální upozornění"
#: ../js/ui/status/accessibility.js:74
#: ../js/ui/status/accessibility.js:76
msgid "Sticky Keys"
msgstr "Lepící klávesy"
#: ../js/ui/status/accessibility.js:77
#: ../js/ui/status/accessibility.js:79
msgid "Slow Keys"
msgstr "Pomalé klávesy"
#: ../js/ui/status/accessibility.js:80
#: ../js/ui/status/accessibility.js:82
msgid "Bounce Keys"
msgstr "Vícenásobné stisky kláves"
#: ../js/ui/status/accessibility.js:83
#: ../js/ui/status/accessibility.js:85
msgid "Mouse Keys"
msgstr "Myš klávesnicí"
#: ../js/ui/status/accessibility.js:142
#: ../js/ui/status/accessibility.js:144
msgid "High Contrast"
msgstr "Vysoký kontrast"
#: ../js/ui/status/accessibility.js:191
#: ../js/ui/status/accessibility.js:193
msgid "Large Text"
msgstr "Styl velkého textu"
#: ../js/ui/status/bluetooth.js:27 ../js/ui/status/bluetooth.js:62
#: ../js/ui/status/bluetooth.js:99 ../js/ui/status/bluetooth.js:127
#: ../js/ui/status/bluetooth.js:163 ../js/ui/status/bluetooth.js:194
#: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:63
#: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128
#: ../js/ui/status/bluetooth.js:164 ../js/ui/status/bluetooth.js:195
msgid "Bluetooth"
msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:29 ../js/ui/status/network.js:132
#: ../js/ui/status/network.js:1099 ../js/ui/status/rfkill.js:46
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:1040 ../js/ui/status/rfkill.js:46
msgid "Turn Off"
msgstr "Vypnout"
#: ../js/ui/status/bluetooth.js:32
#: ../js/ui/status/bluetooth.js:33
msgid "Bluetooth Settings"
msgstr "Nastavení Bluetooth"
#: ../js/ui/status/bluetooth.js:57
#: ../js/ui/status/bluetooth.js:58
msgid "%d Connected Device"
msgid_plural "%d Connected Devices"
msgstr[0] "%d připojené zařízení"
msgstr[1] "%d připojená zařízení"
msgstr[2] "%d připojených zařízení"
#: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128
#: ../js/ui/status/bluetooth.js:101 ../js/ui/status/bluetooth.js:129
msgid "Authorization request from %s"
msgstr "Požadavek na autorizaci od %s"
#: ../js/ui/status/bluetooth.js:106 ../js/ui/status/bluetooth.js:171
#: ../js/ui/status/bluetooth.js:202
#: ../js/ui/status/bluetooth.js:107 ../js/ui/status/bluetooth.js:172
#: ../js/ui/status/bluetooth.js:203
msgid "Device %s wants to pair with this computer"
msgstr "Zařízení %s se chce spárovat s tímto počítačem"
#: ../js/ui/status/bluetooth.js:108
#: ../js/ui/status/bluetooth.js:109
msgid "Allow"
msgstr "Povolit"
#: ../js/ui/status/bluetooth.js:109
#: ../js/ui/status/bluetooth.js:110
msgid "Deny"
msgstr "Zamítnout"
#: ../js/ui/status/bluetooth.js:134
#: ../js/ui/status/bluetooth.js:135
msgid "Device %s wants access to the service '%s'"
msgstr "Zařízení %s požaduje přístup ke službě „%s“"
#: ../js/ui/status/bluetooth.js:136
#: ../js/ui/status/bluetooth.js:137
msgid "Always grant access"
msgstr "Vždy udělovat přístup"
#: ../js/ui/status/bluetooth.js:137
#: ../js/ui/status/bluetooth.js:138
msgid "Grant this time only"
msgstr "Udělit pouze tentokrát"
#: ../js/ui/status/bluetooth.js:138
#: ../js/ui/status/bluetooth.js:139
msgid "Reject"
msgstr "Odmítnout"
#. Translators: argument is the device short name */
#: ../js/ui/status/bluetooth.js:165
#: ../js/ui/status/bluetooth.js:166
msgid "Pairing confirmation for %s"
msgstr "Potvrzení spárování pro %s"
#: ../js/ui/status/bluetooth.js:172
#: ../js/ui/status/bluetooth.js:173
msgid ""
"Please confirm whether the Passkey '%06d' matches the one on the device."
msgstr "Ověřte prosím, zda klíč „%06d“ odpovídá tomu na zařízení."
#. Translators: this is the verb, not the noun */
#: ../js/ui/status/bluetooth.js:175
#: ../js/ui/status/bluetooth.js:176
msgid "Matches"
msgstr "Souhlasí"
#: ../js/ui/status/bluetooth.js:176
#: ../js/ui/status/bluetooth.js:177
msgid "Does not match"
msgstr "Nesouhlasí"
#: ../js/ui/status/bluetooth.js:195
#: ../js/ui/status/bluetooth.js:196
msgid "Pairing request for %s"
msgstr "Požadavek na spárování pro %s"
#: ../js/ui/status/bluetooth.js:203
#: ../js/ui/status/bluetooth.js:204
msgid "Please enter the PIN mentioned on the device."
msgstr "Zadejte prosím PIN, který je uveden na zařízení."
#: ../js/ui/status/bluetooth.js:220
#: ../js/ui/status/bluetooth.js:221
msgid "OK"
msgstr "Budiž"
@ -1365,99 +1358,87 @@ msgstr "Budiž"
msgid "Brightness"
msgstr "Jas"
#: ../js/ui/status/network.js:71
#: ../js/ui/status/network.js:72
msgid "<unknown>"
msgstr "<neznámé>"
#: ../js/ui/status/network.js:222 ../js/ui/status/network.js:379
#: ../js/ui/status/network.js:1120
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1055
msgid "Off"
msgstr "Vypnuto"
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:961
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Nastavení sítě"
#. 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) */
#: ../js/ui/status/network.js:385
#: ../js/ui/status/network.js:364
msgid "unmanaged"
msgstr "nespravováno"
#: ../js/ui/status/network.js:387
#: ../js/ui/status/network.js:366
msgid "disconnecting..."
msgstr "odpojování…"
#: ../js/ui/status/network.js:393 ../js/ui/status/network.js:1174
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1106
msgid "connecting..."
msgstr "připojování…"
#. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:396 ../js/ui/status/network.js:1177
#: ../js/ui/status/network.js:375 ../js/ui/status/network.js:1109
msgid "authentication required"
msgstr "je vyžadováno ověření"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing */
#: ../js/ui/status/network.js:404
#: ../js/ui/status/network.js:383
msgid "firmware missing"
msgstr "nedostupný firmware"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage */
#: ../js/ui/status/network.js:408
#: ../js/ui/status/network.js:387
msgid "unavailable"
msgstr "nedostupné"
#: ../js/ui/status/network.js:410 ../js/ui/status/network.js:1179
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1111
msgid "connection failed"
msgstr "připojení selhalo"
#: ../js/ui/status/network.js:426 ../js/ui/status/network.js:512
msgid "Mobile Broadband Settings"
msgstr "Nastavení mobilní širokopásmové sítě"
#: ../js/ui/status/network.js:468 ../js/ui/status/network.js:1118
msgid "Hardware Disabled"
msgstr "Hardware zakázán"
#: ../js/ui/status/network.js:707
#: ../js/ui/status/network.js:660
msgid "Wi-Fi Networks"
msgstr "Sítě WiFi"
#: ../js/ui/status/network.js:709
#: ../js/ui/status/network.js:662
msgid "Select a network"
msgstr "Vyberte síť"
#: ../js/ui/status/network.js:733
#: ../js/ui/status/network.js:686
msgid "No Networks"
msgstr "Žádné sítě"
#: ../js/ui/status/network.js:1005
#: ../js/ui/status/network.js:955
msgid "Select Network"
msgstr "Vybrat síť"
#: ../js/ui/status/network.js:1011
msgid "Wi-Fi Settings"
msgstr "Nastavení WiFi"
#: ../js/ui/status/network.js:1099
#: ../js/ui/status/network.js:1040
msgid "Turn On"
msgstr "Zapnout"
#: ../js/ui/status/network.js:1122
msgid "Not Connected"
msgstr "Nepřipojeno"
#: ../js/ui/status/network.js:1242
#: ../js/ui/status/network.js:1174
msgid "VPN"
msgstr "VPN"
#: ../js/ui/status/network.js:1382
#: ../js/ui/status/network.js:1314
msgid "Network Manager"
msgstr "Network Manager"
#: ../js/ui/status/network.js:1421
#: ../js/ui/status/network.js:1353
msgid "Connection failed"
msgstr "Připojení selhalo"
#: ../js/ui/status/network.js:1422
#: ../js/ui/status/network.js:1354
msgid "Activation of network connection failed"
msgstr "Aktivace síťového připojení selhala"
@ -1478,10 +1459,12 @@ msgid "Estimating…"
msgstr "Odhaduje se…"
#: ../js/ui/status/power.js:77
#| msgid "%d\\u2236%02d Remaining (%d%%)"
msgid "%d%02d Remaining (%d%%)"
msgstr "Zbývá %d%02d (%d%%)"
#: ../js/ui/status/power.js:82
#| msgid "%d\\u2236%02d Until Full (%d%%)"
msgid "%d%02d Until Full (%d%%)"
msgstr "%d%02d do nabití (%d%%)"
@ -1493,27 +1476,23 @@ msgstr "Režim „letadlo“"
msgid "On"
msgstr "Zapnuto"
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Nastavení sítě"
#: ../js/ui/status/system.js:314
#: ../js/ui/status/system.js:305
msgid "Switch User"
msgstr "Přepnout uživatele"
#: ../js/ui/status/system.js:319
#: ../js/ui/status/system.js:310
msgid "Log Out"
msgstr "Odhlásit se"
#: ../js/ui/status/system.js:338
#: ../js/ui/status/system.js:329
msgid "Orientation Lock"
msgstr "Zámek otočení"
#: ../js/ui/status/system.js:346
#: ../js/ui/status/system.js:337
msgid "Suspend"
msgstr "Uspat do paměti"
#: ../js/ui/status/system.js:349
#: ../js/ui/status/system.js:340
msgid "Power Off"
msgstr "Vypnout"
@ -1643,3 +1622,22 @@ msgstr "Heslo nemůže být prázdné."
#: ../src/shell-polkit-authentication-agent.c:343
msgid "Authentication dialog was dismissed by the user"
msgstr "Dialogové okno ověření bylo uživatelem zrušeno"
#~ msgid "There was an error loading the preferences dialog for %s:"
#~ msgstr ""
#~ "Při načítání dialogového okna s vlastnostmi rozšíření %s se vyskytla "
#~ "chyba:"
#~ msgid "Extension"
#~ msgstr "Rozšíření"
#~ msgctxt "event list time"
#~ msgid "%H\\u2236%M"
#~ msgstr "%H:%M"
#~ msgctxt "event list time"
#~ msgid "%l\\u2236%M\\u2009%p"
#~ msgstr "%l:%M\\u2009%p"
#~ msgid "Show Keyboard Layout"
#~ msgstr "Zobrazit rozložení klávesnice"

681
po/de.po

File diff suppressed because it is too large Load Diff

648
po/el.po

File diff suppressed because it is too large Load Diff

101
po/es.po
View File

@ -10,8 +10,8 @@ msgstr ""
"Project-Id-Version: gnome-shell.master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2013-10-09 16:40+0000\n"
"PO-Revision-Date: 2013-10-10 10:33+0200\n"
"POT-Creation-Date: 2013-09-28 19:49+0000\n"
"PO-Revision-Date: 2013-09-30 11:42+0200\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Español <gnome-es-list@gnome.org>\n"
"Language: es\n"
@ -283,7 +283,7 @@ msgstr ""
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:728
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:692
msgid "Cancel"
msgstr "Cancelar"
@ -330,15 +330,15 @@ msgstr "Error de autenticación"
msgid "(or swipe finger)"
msgstr "(o pase el dedo)"
#: ../js/misc/util.js:115
#: ../js/misc/util.js:98
msgid "Command not found"
msgstr "Comando no encontrado"
#: ../js/misc/util.js:148
#: ../js/misc/util.js:131
msgid "Could not parse command:"
msgstr "No se pudo analizar el comando:"
#: ../js/misc/util.js:156
#: ../js/misc/util.js:139
msgid "Execution of '%s' failed:"
msgstr "Falló la ejecución de «%s»:"
@ -564,16 +564,16 @@ msgstr "Abrir con %s"
msgid "Eject"
msgstr "Expulsar"
#: ../js/ui/components/keyring.js:89 ../js/ui/components/polkitAgent.js:280
#: ../js/ui/components/keyring.js:91 ../js/ui/components/polkitAgent.js:280
msgid "Password:"
msgstr "Contraseña:"
#: ../js/ui/components/keyring.js:108
#: ../js/ui/components/keyring.js:110
msgid "Type again:"
msgstr "Escriba de nuevo:"
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:133
#: ../js/ui/status/network.js:296 ../js/ui/status/network.js:731
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:695
msgid "Connect"
msgstr "Conectar"
@ -1053,12 +1053,9 @@ msgstr "Mostrar errores"
msgid "Enabled"
msgstr "Activado"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode) */
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:765 ../js/ui/status/network.js:473
#: ../src/gvc/gvc-mixer-control.c:1830
#: ../js/ui/lookingGlass.js:765 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled"
msgstr "Desactivado"
@ -1277,8 +1274,8 @@ msgstr "Texto grande"
msgid "Bluetooth"
msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:133
#: ../js/ui/status/network.js:1085 ../js/ui/status/rfkill.js:46
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:1040 ../js/ui/status/rfkill.js:46
msgid "Turn Off"
msgstr "Apagar"
@ -1365,99 +1362,83 @@ msgstr "Brillo"
msgid "<unknown>"
msgstr "<desconocido>"
#: ../js/ui/status/network.js:223 ../js/ui/status/network.js:380
#: ../js/ui/status/network.js:1106
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1055
msgid "Off"
msgstr "Desconectado"
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:961
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Configuración de la red"
#. 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) */
#: ../js/ui/status/network.js:386
#: ../js/ui/status/network.js:364
msgid "unmanaged"
msgstr "no gestionada"
#: ../js/ui/status/network.js:388
#: ../js/ui/status/network.js:366
msgid "disconnecting..."
msgstr "deconectando…"
#: ../js/ui/status/network.js:394 ../js/ui/status/network.js:1160
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1106
msgid "connecting..."
msgstr "conectando…"
#. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:397 ../js/ui/status/network.js:1163
#: ../js/ui/status/network.js:375 ../js/ui/status/network.js:1109
msgid "authentication required"
msgstr "se necesita autenticación"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing */
#: ../js/ui/status/network.js:405
#: ../js/ui/status/network.js:383
msgid "firmware missing"
msgstr "falta el «firmware»"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage */
#: ../js/ui/status/network.js:409
#: ../js/ui/status/network.js:387
msgid "unavailable"
msgstr "no disponible"
#: ../js/ui/status/network.js:411 ../js/ui/status/network.js:1165
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1111
msgid "connection failed"
msgstr "falló la conexión"
#: ../js/ui/status/network.js:427 ../js/ui/status/network.js:513
#| msgid "Mobile broadband"
msgid "Mobile Broadband Settings"
msgstr "Configuración de banda ancha móvil"
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1104
#| msgid "hardware disabled"
msgid "Hardware Disabled"
msgstr "Hardware desactivado"
#: ../js/ui/status/network.js:696
#: ../js/ui/status/network.js:660
msgid "Wi-Fi Networks"
msgstr "Redes Wi-Fi"
#: ../js/ui/status/network.js:698
#: ../js/ui/status/network.js:662
msgid "Select a network"
msgstr "Seleccionar una red"
#: ../js/ui/status/network.js:722
#: ../js/ui/status/network.js:686
msgid "No Networks"
msgstr "No hay redes"
#: ../js/ui/status/network.js:991
#: ../js/ui/status/network.js:955
msgid "Select Network"
msgstr "Seleccionar red"
#: ../js/ui/status/network.js:997
#| msgid "Settings"
msgid "Wi-Fi Settings"
msgstr "Configuración de Wi-Fi"
#: ../js/ui/status/network.js:1085
#: ../js/ui/status/network.js:1040
msgid "Turn On"
msgstr "Enceder"
#: ../js/ui/status/network.js:1108
#| msgid "Connect"
msgid "Not Connected"
msgstr "No conectado"
#: ../js/ui/status/network.js:1228
#: ../js/ui/status/network.js:1173
msgid "VPN"
msgstr "VPN"
#: ../js/ui/status/network.js:1368
#: ../js/ui/status/network.js:1313
msgid "Network Manager"
msgstr "Gestor de la red"
#: ../js/ui/status/network.js:1407
#: ../js/ui/status/network.js:1352
msgid "Connection failed"
msgstr "Falló la conexión"
#: ../js/ui/status/network.js:1408
#: ../js/ui/status/network.js:1353
msgid "Activation of network connection failed"
msgstr "Falló la activación de la conexión de red"
@ -1478,10 +1459,12 @@ msgid "Estimating…"
msgstr "Estimando…"
#: ../js/ui/status/power.js:77
#| msgid "%d\\u2236%02d Remaining (%d%%)"
msgid "%d%02d Remaining (%d%%)"
msgstr "Quedan %d%02d (%d%%)"
#: ../js/ui/status/power.js:82
#| msgid "%d\\u2236%02d Until Full (%d%%)"
msgid "%d%02d Until Full (%d%%)"
msgstr "%d%02d para la carga completa (%d%%)"
@ -1493,10 +1476,6 @@ msgstr "Modo avión"
msgid "On"
msgstr "Encender"
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Configuración de la red"
#: ../js/ui/status/system.js:305
msgid "Switch User"
msgstr "Cambiar de usuario"
@ -1774,6 +1753,9 @@ msgstr "El usuario rechazó el diálogo de autenticación"
#~ msgid "Set Up a New Device…"
#~ msgstr "Configurar un dispositivo nuevo…"
#~ msgid "hardware disabled"
#~ msgstr "hardware desactivado"
#~ msgid "Connection"
#~ msgstr "Conexión"
@ -1792,6 +1774,9 @@ msgstr "El usuario rechazó el diálogo de autenticación"
#~ msgid "Wired"
#~ msgstr "Cableada"
#~ msgid "Mobile broadband"
#~ msgstr "Banda ancha móvil"
#~ msgid "Networking is disabled"
#~ msgstr "La red está desactivada"

180
po/et.po
View File

@ -6,15 +6,15 @@
# This file is distributed under the same license as the gnome-shell package.
#
# Ivar Smolin <okul linux ee>, 2011.
# Mattias Põldaru <mahfiaz@gmail.com>, 2010, 2011, 2012, 2013, 2014.
# Mattias Põldaru <mahfiaz@gmail.com>, 2010, 2011, 2012, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell MASTER\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2014-04-07 19:59+0000\n"
"PO-Revision-Date: 2014-04-16 00:59+0300\n"
"POT-Creation-Date: 2013-09-30 11:41+0000\n"
"PO-Revision-Date: 2013-10-01 16:40+0300\n"
"Last-Translator: Mattias Põldaru <mahfiaz@gmail.com>\n"
"Language-Team: Estonian <>\n"
"Language: et\n"
@ -240,7 +240,6 @@ msgstr "Seansi valimine"
msgid "Not listed?"
msgstr "Pole loendis?"
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(nt 'user' või %s)"
@ -262,7 +261,6 @@ msgstr "Käsku ei leitud"
msgid "Could not parse command:"
msgstr "Käsku pole võimalik analüüsida:"
#, javascript-format
msgid "Execution of '%s' failed:"
msgstr "'%s' käivitamine nurjus:"
@ -284,11 +282,9 @@ msgstr "Eemalda lemmikutest"
msgid "Add to Favorites"
msgstr "Lisa lemmikutesse"
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s lisati lemmikutesse."
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s eemaldati lemmikutest."
@ -441,7 +437,6 @@ msgstr "Väline ketas eemaldati"
msgid "Removable Devices"
msgstr "Eemaldatavad seadmed"
#, javascript-format
msgid "Open with %s"
msgstr "Ava programmiga %s"
@ -475,7 +470,6 @@ msgstr "Teenus: "
msgid "Authentication required by wireless network"
msgstr "Juhtmeta võrgu jaoks on vajalik autentimine"
#, javascript-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
"'%s'."
@ -503,7 +497,6 @@ msgstr "PIN: "
msgid "Mobile broadband network password"
msgstr "Mobiiliühenduse võrgu parool"
#, javascript-format
msgid "A password is required to connect to '%s'."
msgstr "'%s' ühenduse loomiseks on vaja parooli."
@ -543,7 +536,7 @@ msgstr "Heli maha"
#. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30"*/
msgid "<b>Yesterday</b>, <b>%H:%M</b>"
msgstr "<b>Eile</b>, <b>%H:%M</b>"
msgstr "<b>Eile</b> <b>%H:%M</b>"
#. Translators: this is the week day name followed by a time string. i.e. "Monday, 14:30*/
msgid "<b>%A</b>, <b>%H:%M</b>"
@ -559,20 +552,17 @@ msgstr "<b>%d. %B %Y</b>, <b>%H:%M</b>"
#. Translators: this is the other person changing their old IM name to their new
#. IM name. */
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s nimi on nüüd %s"
#. translators: argument is a room name like
#. * room@jabber.org for example. */
#, javascript-format
msgid "Invitation to %s"
msgstr "Kutse: %s"
#. translators: first argument is the name of a contact and the second
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
#. * for example. */
#, javascript-format
msgid "%s is inviting you to join %s"
msgstr "%s kutsub sind liituma: %s"
@ -583,12 +573,10 @@ msgid "Accept"
msgstr "Nõustu"
#. translators: argument is a contact name like Alice for example. */
#, javascript-format
msgid "Video call from %s"
msgstr "%s tahab alustada videokõnet"
#. translators: argument is a contact name like Alice for example. */
#, javascript-format
msgid "Call from %s"
msgstr "%s helistab"
@ -601,12 +589,10 @@ msgstr "Vasta"
#. * file name. The string will be something
#. * like: "Alice is sending you test.ogg"
#. */
#, javascript-format
msgid "%s is sending you %s"
msgstr "%s saadab sulle %s"
#. To translators: The parameter is the contact's alias */
#, javascript-format
msgid "%s would like permission to see when you are online"
msgstr "%s palub sinu luba, et näha, kui sa oled võrgus"
@ -691,7 +677,6 @@ msgstr "Sisemine viga"
#. translators: argument is the account name, like
#. * name@jabber.org for example. */
#, javascript-format
msgid "Unable to connect to %s"
msgstr "Pole võimalik ühenduda võrguga %s"
@ -725,7 +710,6 @@ msgstr "Kuupäeva ja kella sätted"
msgid "%A %B %e, %Y"
msgstr "%A, %d. %B %Y"
#, javascript-format
msgctxt "title"
msgid "Log Out %s"
msgstr "%s väljalogimine"
@ -734,13 +718,11 @@ msgctxt "title"
msgid "Log Out"
msgstr "Väljalogimine"
#, javascript-format
msgid "%s will be logged out automatically in %d second."
msgid_plural "%s will be logged out automatically in %d seconds."
msgstr[0] "%s logitakse %d sekundi pärast automaatselt välja."
msgstr[1] "%s logitakse %d sekundi pärast automaatselt välja."
#, javascript-format
msgid "You will be logged out automatically in %d second."
msgid_plural "You will be logged out automatically in %d seconds."
msgstr[0] "Sind logitakse %d sekundi pärast automaatselt välja."
@ -754,7 +736,6 @@ msgctxt "title"
msgid "Power Off"
msgstr "Väljalülitamine"
#, javascript-format
msgid "The system will power off automatically in %d second."
msgid_plural "The system will power off automatically in %d seconds."
msgstr[0] "%d sekundi pärast lülitub süsteem automaatselt välja."
@ -772,7 +753,6 @@ msgctxt "title"
msgid "Restart"
msgstr "Taaskäivitamine"
#, javascript-format
msgid "The system will restart automatically in %d second."
msgid_plural "The system will restart automatically in %d seconds."
msgstr[0] "Süsteem taaskäivitub automaatselt %d sekundi pärast."
@ -782,7 +762,6 @@ msgctxt "title"
msgid "Restart & Install Updates"
msgstr "Taaskäivitamine ja uuenduste paigaldamine"
#, javascript-format
msgid "The system will automatically restart and install updates in %d second."
msgid_plural ""
"The system will automatically restart and install updates in %d seconds."
@ -800,19 +779,16 @@ msgid "Other users are logged in."
msgstr "Teised kasutajad on sisse logitud."
#. Translators: Remote here refers to a remote session, like a ssh login */
#, javascript-format
msgid "%s (remote)"
msgstr "%s (kaugühendus)"
#. Translators: Console here refers to a tty like a VT console */
#, javascript-format
msgid "%s (console)"
msgstr "%s (konsool)"
msgid "Install"
msgstr "Paigalda"
#, javascript-format
msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Kas laadida alla ja paigaldada '%s' aadressilt extensions.gnome.org?"
@ -823,7 +799,6 @@ msgid "No extensions installed"
msgstr "Ühtegi laiendust pole paigaldatud"
#. Translators: argument is an extension UUID. */
#, javascript-format
msgid "%s has not emitted any errors."
msgstr "%s ei ole väljastanud ühtegi veateadet."
@ -836,8 +811,6 @@ msgstr "Näita vigu"
msgid "Enabled"
msgstr "Lubatud"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode) */
#. translators:
#. * The device has been disabled
msgid "Disabled"
@ -864,9 +837,6 @@ msgstr "Ava"
msgid "Remove"
msgstr "Eemalda"
msgid "Notifications"
msgstr "Märguanded"
msgid "Clear Messages"
msgstr "Kustuta teated"
@ -889,7 +859,6 @@ msgctxt "program"
msgid "Unknown"
msgstr "Tundmatu"
#, javascript-format
msgid "%d new message"
msgid_plural "%d new messages"
msgstr[0] "%d uus sõnum"
@ -933,7 +902,6 @@ msgstr "Sulge"
msgid "%A, %B %d"
msgstr "%A, %d. %B"
#, javascript-format
msgid "%d new notification"
msgid_plural "%d new notifications"
msgstr[0] "%d uus märguanne"
@ -1017,17 +985,14 @@ msgstr "Lülita välja"
msgid "Bluetooth Settings"
msgstr "Bluetoothi sätted"
#, javascript-format
msgid "%d Connected Device"
msgid_plural "%d Connected Devices"
msgstr[0] "%d ühendatud seade"
msgstr[1] "%d ühendatud seadet"
#, javascript-format
msgid "Authorization request from %s"
msgstr "Autoriseerimise päring seadmelt %s"
#, javascript-format
msgid "Device %s wants to pair with this computer"
msgstr "Seade '%s' tahab selle arvutiga paarduda"
@ -1037,7 +1002,6 @@ msgstr "Luba"
msgid "Deny"
msgstr "Keela"
#, javascript-format
msgid "Device %s wants access to the service '%s'"
msgstr "Seade %s soovib ligipääsu teenusele '%s'"
@ -1051,11 +1015,9 @@ msgid "Reject"
msgstr "Lükka tagasi"
#. Translators: argument is the device short name */
#, javascript-format
msgid "Pairing confirmation for %s"
msgstr "Paardumise kinnitus seadmele %s"
#, javascript-format
msgid ""
"Please confirm whether the Passkey '%06d' matches the one on the device."
msgstr "Palun kontrolli, kas parool '%06d' kattub seadme parooliga."
@ -1067,7 +1029,6 @@ msgstr "Kattub"
msgid "Does not match"
msgstr "Ei kattu"
#, javascript-format
msgid "Pairing request for %s"
msgstr "Seadmega %s paardumise päring"
@ -1086,6 +1047,9 @@ msgstr "<tundmatu>"
msgid "Off"
msgstr "Väljas"
msgid "Network Settings"
msgstr "Võrgusätted"
#. 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) */
msgid "unmanaged"
@ -1114,12 +1078,6 @@ msgstr "pole saadaval"
msgid "connection failed"
msgstr "ühendumine nurjus"
msgid "Mobile Broadband Settings"
msgstr "Mobiiliühenduse sätted"
msgid "Hardware Disabled"
msgstr "Riistvara on keelatud"
msgid "Wi-Fi Networks"
msgstr "Wi-Fi võrgud"
@ -1132,15 +1090,9 @@ msgstr "Võrke pole"
msgid "Select Network"
msgstr "Võrgu valimine"
msgid "Wi-Fi Settings"
msgstr "Wi-Fi sätted"
msgid "Turn On"
msgstr "Lülita sisse"
msgid "Not Connected"
msgstr "Pole ühenduses"
msgid "VPN"
msgstr "VPN"
@ -1165,11 +1117,9 @@ msgstr "Täiesti täis"
msgid "Estimating…"
msgstr "Andmete kogumine…"
#, javascript-format
msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d jäänud (%d%%)"
#, javascript-format
msgid "%d%02d Until Full (%d%%)"
msgstr "%d%02d täitumiseni (%d%%)"
@ -1179,9 +1129,6 @@ msgstr "Lennukirežiim"
msgid "On"
msgstr "Sees"
msgid "Network Settings"
msgstr "Võrgusätted"
msgid "Switch User"
msgstr "Vaheta kasutajat"
@ -1218,7 +1165,6 @@ msgstr "Rakendused"
msgid "Search"
msgstr "Otsing"
#, javascript-format
msgid ""
"Sorry, no wisdom for you today:\n"
"%s"
@ -1226,11 +1172,9 @@ msgstr ""
"Vabandust, tänaseks tarkuseteri pole:\n"
"%s"
#, javascript-format
msgid "%s the Oracle says"
msgstr "Oraakel %s ütleb"
#, javascript-format
msgid "'%s' is ready"
msgstr "'%s' on valmis"
@ -1246,7 +1190,6 @@ msgstr "Taasta sätted"
msgid "Keep Changes"
msgstr "Säilita muudatused"
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
msgstr[0] "Sätete muudatused ennistatakse %d sekundi pärast"
@ -1299,97 +1242,12 @@ msgstr "Parool ei saa olla tühi"
msgid "Authentication dialog was dismissed by the user"
msgstr "Kasutaja katkestas autentimisdialoogi"
#~ msgid "Disables the validation of extension version compatibility"
#~ msgstr "Keelab laienduste versioonisobivuse kontrolli"
#~ msgid "There was an error loading the preferences dialog for %s:"
#~ msgstr "%s jaoks eelistuste dialoogi laadimisel esines viga:"
#~ msgid "Extension"
#~ msgstr "Laiendus"
#, fuzzy
#~ msgid "%H%M"
#~ msgstr "%H%M"
#, fuzzy
#~ msgid "Yesterday, %H%M"
#~ msgstr "<b>Eile</b> <b>%H:%M</b>"
#, fuzzy
#~ msgid "%A, %H%M"
#~ msgstr "%H%M"
#, fuzzy
#~ msgid "%B %d, %H%M"
#~ msgstr "%H%M"
#, fuzzy
#~ msgid "%l%M %p"
#~ msgstr "%l%M%p"
#, fuzzy
#~ msgid "%A, %l%M %p"
#~ msgstr "%a, %l:%M %p"
#, fuzzy
#~ msgid "%B %d, %l%M %p"
#~ msgstr "%a, %e. %b, %l:%M %p"
#, fuzzy
#~ msgid "%B %d %Y, %l%M %p"
#~ msgstr "%a, %e. %b, %l:%M %p"
#~ msgid "Show Keyboard Layout"
#~ msgstr "Klaviatuuripaigutuse kuvamine"
#, fuzzy
#~ msgid "Location"
#~ msgstr "Märguanded"
#, fuzzy
#~ msgid "Disable"
#~ msgstr "Keelatud"
#, fuzzy
#~ msgid "Enable"
#~ msgstr "Lubatud"
#, fuzzy
#~ msgid "Connected"
#~ msgstr "Ühendu"
#, fuzzy
#~ msgid "Wired Settings"
#~ msgstr "Wi-Fi sätted"
#, fuzzy
#~ msgid "Airplane Mode is On"
#~ msgstr "Lennukirežiim"
#, fuzzy
#~ msgid "Turn Off Airplane Mode"
#~ msgstr "Lennukirežiim"
#, fuzzy
#~ msgid "Wi-Fi is Off"
#~ msgstr "Wi-Fi sätted"
#, fuzzy
#~ msgid "Turn On Wi-Fi"
#~ msgstr "Lülita sisse"
#, fuzzy
#~ msgid "Connecting"
#~ msgstr "Ühendus"
#, fuzzy
#~ msgid "VPN Settings"
#~ msgstr "Sätted"
#~ msgid "UPS"
#~ msgstr "UPS"
#~ msgctxt "event list time"
#~ msgid "%H\\u2236%M"
#~ msgstr "%H\\u2236%M"
@ -1398,6 +1256,9 @@ msgstr "Kasutaja katkestas autentimisdialoogi"
#~ msgid "%l\\u2236%M\\u2009%p"
#~ msgstr "%l\\u2236%M\\u2009%p"
#~ msgid "Show Keyboard Layout"
#~ msgstr "Klaviatuuripaigutuse kuvamine"
#~ msgid "Settings Menu"
#~ msgstr "Sätete menüü"
@ -1539,6 +1400,12 @@ msgstr "Kasutaja katkestas autentimisdialoogi"
#~ msgid "Set Up a New Device…"
#~ msgstr "Uue seadme häälestamine…"
#~ msgid "hardware disabled"
#~ msgstr "riistvara on keelatud"
#~ msgid "Connection"
#~ msgstr "Ühendus"
#~ msgid "Send Files…"
#~ msgstr "Failide saatmine…"
@ -1572,6 +1439,9 @@ msgstr "Kasutaja katkestas autentimisdialoogi"
#~ msgid "Auto Ethernet"
#~ msgstr "Automaatne ethernet"
#~ msgid "Mobile broadband"
#~ msgstr "Mobiiliühendus"
#~ msgid "Auto broadband"
#~ msgstr "Automaatne lairibaühendus"
@ -1626,6 +1496,9 @@ msgstr "Kasutaja katkestas autentimisdialoogi"
#~ msgid "Laptop Battery"
#~ msgstr "Sülearvuti aku"
#~ msgid "UPS"
#~ msgstr "UPS"
#~ msgid "Monitor"
#~ msgstr "Monitor"
@ -1666,6 +1539,9 @@ msgstr "Kasutaja katkestas autentimisdialoogi"
#~ msgid "Idle"
#~ msgstr "Jõude"
#~ msgid "Notifications"
#~ msgstr "Märguanded"
#~ msgid "Your chat status will be set to busy"
#~ msgstr "Sinu vestluse olekuks määratakse hõivatud"
@ -1773,9 +1649,15 @@ msgstr "Kasutaja katkestas autentimisdialoogi"
#~ msgid "%a %b %e, %l:%M:%S %p"
#~ msgstr "%a, %e. %b, %l:%M:%S %p"
#~ msgid "%a %b %e, %l:%M %p"
#~ msgstr "%a, %e. %b, %l:%M %p"
#~ msgid "%a %l:%M:%S %p"
#~ msgstr "%A, %l:%M:%S %p"
#~ msgid "%a %l:%M %p"
#~ msgstr "%a, %l:%M %p"
#~ msgid "Failed to unmount '%s'"
#~ msgstr "'%s' lahtihaakimine nurjus"

1852
po/fa.po

File diff suppressed because it is too large Load Diff

615
po/fi.po

File diff suppressed because it is too large Load Diff

View File

@ -12,8 +12,8 @@ msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2013-10-09 21:04+0000\n"
"PO-Revision-Date: 2013-10-09 23:09+0200\n"
"POT-Creation-Date: 2013-09-27 19:38+0000\n"
"PO-Revision-Date: 2013-09-28 16:24+0200\n"
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
"Language-Team: gnome-l10n-gl@gnome.org\n"
"Language: gl\n"
@ -282,7 +282,7 @@ msgstr ""
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:728
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:692
msgid "Cancel"
msgstr "Cancelar"
@ -330,15 +330,15 @@ msgstr "Erro de autenticación"
msgid "(or swipe finger)"
msgstr "(ou pase o dedo)"
#: ../js/misc/util.js:115
#: ../js/misc/util.js:98
msgid "Command not found"
msgstr "Orde non atopada"
#: ../js/misc/util.js:148
#: ../js/misc/util.js:131
msgid "Could not parse command:"
msgstr "Non foi posíbel analizar a orde:"
#: ../js/misc/util.js:156
#: ../js/misc/util.js:139
#, javascript-format
msgid "Execution of '%s' failed:"
msgstr "Produciuse un fallo na execución de «%s»:"
@ -568,16 +568,16 @@ msgstr "Abrir con %s"
msgid "Eject"
msgstr "Expulsar"
#: ../js/ui/components/keyring.js:89 ../js/ui/components/polkitAgent.js:280
#: ../js/ui/components/keyring.js:91 ../js/ui/components/polkitAgent.js:280
msgid "Password:"
msgstr "Contrasinal:"
#: ../js/ui/components/keyring.js:108
#: ../js/ui/components/keyring.js:110
msgid "Type again:"
msgstr "Escriba de novo:"
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:133
#: ../js/ui/status/network.js:296 ../js/ui/status/network.js:731
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:695
msgid "Connect"
msgstr "Conectar"
@ -1077,12 +1077,9 @@ msgstr "Mostrar erros"
msgid "Enabled"
msgstr "Activado"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode) */
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:765 ../js/ui/status/network.js:473
#: ../src/gvc/gvc-mixer-control.c:1830
#: ../js/ui/lookingGlass.js:765 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled"
msgstr "Desactivado"
@ -1303,8 +1300,8 @@ msgstr "Texto grande"
msgid "Bluetooth"
msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:133
#: ../js/ui/status/network.js:1085 ../js/ui/status/rfkill.js:46
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:1040 ../js/ui/status/rfkill.js:46
msgid "Turn Off"
msgstr "Apagar"
@ -1398,95 +1395,83 @@ msgstr "Brillo"
msgid "<unknown>"
msgstr "<descoñecido>"
#: ../js/ui/status/network.js:223 ../js/ui/status/network.js:380
#: ../js/ui/status/network.js:1106
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1055
msgid "Off"
msgstr "Desactivar"
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:961
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Preferencias da rede"
#. 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) */
#: ../js/ui/status/network.js:386
#: ../js/ui/status/network.js:364
msgid "unmanaged"
msgstr "non xestionada"
#: ../js/ui/status/network.js:388
#: ../js/ui/status/network.js:366
msgid "disconnecting..."
msgstr "desconectando…"
#: ../js/ui/status/network.js:394 ../js/ui/status/network.js:1160
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1106
msgid "connecting..."
msgstr "conectando…"
#. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:397 ../js/ui/status/network.js:1163
#: ../js/ui/status/network.js:375 ../js/ui/status/network.js:1109
msgid "authentication required"
msgstr "requírese autenticación"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing */
#: ../js/ui/status/network.js:405
#: ../js/ui/status/network.js:383
msgid "firmware missing"
msgstr "falta o «firmware»"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage */
#: ../js/ui/status/network.js:409
#: ../js/ui/status/network.js:387
msgid "unavailable"
msgstr "non dispoñíbel"
#: ../js/ui/status/network.js:411 ../js/ui/status/network.js:1165
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1111
msgid "connection failed"
msgstr "conexión fallada"
#: ../js/ui/status/network.js:427 ../js/ui/status/network.js:513
msgid "Mobile Broadband Settings"
msgstr "Preferencias da banda larga móbil"
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1104
msgid "Hardware Disabled"
msgstr "Hardware desactivado"
#: ../js/ui/status/network.js:696
#: ../js/ui/status/network.js:660
msgid "Wi-Fi Networks"
msgstr "Redes WiFi"
#: ../js/ui/status/network.js:698
#: ../js/ui/status/network.js:662
msgid "Select a network"
msgstr "Seleccione unha rede"
#: ../js/ui/status/network.js:722
#: ../js/ui/status/network.js:686
msgid "No Networks"
msgstr "Sen redes"
#: ../js/ui/status/network.js:991
#: ../js/ui/status/network.js:955
msgid "Select Network"
msgstr "Seleccione unha rede"
#: ../js/ui/status/network.js:997
msgid "Wi-Fi Settings"
msgstr "Preferencias da WiFi"
#: ../js/ui/status/network.js:1085
#: ../js/ui/status/network.js:1040
msgid "Turn On"
msgstr "Activar"
#: ../js/ui/status/network.js:1108
msgid "Not Connected"
msgstr "Non conectado"
#: ../js/ui/status/network.js:1228
#: ../js/ui/status/network.js:1173
msgid "VPN"
msgstr "VPN"
#: ../js/ui/status/network.js:1368
#: ../js/ui/status/network.js:1313
msgid "Network Manager"
msgstr "Xestor da rede"
#: ../js/ui/status/network.js:1407
#: ../js/ui/status/network.js:1352
msgid "Connection failed"
msgstr "Produciuse un fallo na conexión"
#: ../js/ui/status/network.js:1408
#: ../js/ui/status/network.js:1353
msgid "Activation of network connection failed"
msgstr "Produciuse un fallo na activación da conexión de rede"
@ -1510,13 +1495,13 @@ msgstr "Estimando…"
#, javascript-format
#| msgid "%d\\u2236%02d Remaining (%d%%)"
msgid "%d%02d Remaining (%d%%)"
msgstr "Faltan %d\\u2236%02d (%d%%)"
msgstr "Faltan %d%02d (%d%%)"
#: ../js/ui/status/power.js:82
#, javascript-format
#| msgid "%d\\u2236%02d Until Full (%d%%)"
msgid "%d%02d Until Full (%d%%)"
msgstr "%d\\u2236%02d ate completo (%d%%)"
msgstr "%d%02d ate completo (%d%%)"
#: ../js/ui/status/rfkill.js:43
msgid "Airplane Mode"
@ -1526,10 +1511,6 @@ msgstr "Modo avión"
msgid "On"
msgstr "Activado"
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Preferencias da rede"
#: ../js/ui/status/system.js:305
msgid "Switch User"
msgstr "Cambiar de usuario"
@ -1831,6 +1812,9 @@ msgstr "O usuario rexeitou o diálogo de autenticación"
#~ msgid "Set Up a New Device…"
#~ msgstr "Configurar un dispositivo novo…"
#~ msgid "hardware disabled"
#~ msgstr "hardware desactivado"
#~ msgid "Connection"
#~ msgstr "Conexión"
@ -1861,6 +1845,9 @@ msgstr "O usuario rexeitou o diálogo de autenticación"
#~ msgid "Wired"
#~ msgstr "Con fíos"
#~ msgid "Mobile broadband"
#~ msgstr "Banda larga móbil"
#~ msgid "Networking is disabled"
#~ msgstr "A rede está desactivada"

432
po/he.po

File diff suppressed because it is too large Load Diff

497
po/hu.po

File diff suppressed because it is too large Load Diff

600
po/id.po

File diff suppressed because it is too large Load Diff

109
po/it.po
View File

@ -11,8 +11,8 @@ msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2013-10-10 21:27+0000\n"
"PO-Revision-Date: 2013-10-11 09:41+0200\n"
"POT-Creation-Date: 2013-10-01 14:26+0000\n"
"PO-Revision-Date: 2013-10-01 19:20+0200\n"
"Last-Translator: Milo Casagrande <milo@ubuntu.com>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
"Language: it\n"
@ -290,7 +290,7 @@ msgstr ""
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:728
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:692
msgid "Cancel"
msgstr "Annulla"
@ -337,15 +337,15 @@ msgstr "Errore di autenticazione"
msgid "(or swipe finger)"
msgstr "(o passare il dito)"
#: ../js/misc/util.js:115
#: ../js/misc/util.js:98
msgid "Command not found"
msgstr "Comando non trovato"
#: ../js/misc/util.js:148
#: ../js/misc/util.js:131
msgid "Could not parse command:"
msgstr "Impossibile analizzare il comando:"
#: ../js/misc/util.js:156
#: ../js/misc/util.js:139
msgid "Execution of '%s' failed:"
msgstr "Esecuzione di «%s» non riuscita:"
@ -573,16 +573,16 @@ msgstr "Apri con %s"
msgid "Eject"
msgstr "Espelli"
#: ../js/ui/components/keyring.js:89 ../js/ui/components/polkitAgent.js:280
#: ../js/ui/components/keyring.js:91 ../js/ui/components/polkitAgent.js:280
msgid "Password:"
msgstr "Password:"
#: ../js/ui/components/keyring.js:108
#: ../js/ui/components/keyring.js:110
msgid "Type again:"
msgstr "Inserire di nuovo:"
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:133
#: ../js/ui/status/network.js:296 ../js/ui/status/network.js:731
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:695
msgid "Connect"
msgstr "Connetti"
@ -1069,12 +1069,9 @@ msgid "Enabled"
msgstr "Abilitato"
# (ndt) o disabilitata?
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode) */
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:765 ../js/ui/status/network.js:473
#: ../src/gvc/gvc-mixer-control.c:1830
#: ../js/ui/lookingGlass.js:765 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled"
msgstr "Disabilitato"
@ -1106,32 +1103,27 @@ msgstr "Apri"
msgid "Remove"
msgstr "Rimuovi"
#: ../js/ui/messageTray.js:1530
#| msgid "Notification Settings"
msgid "Notifications"
msgstr "Notifiche"
#: ../js/ui/messageTray.js:1537
#: ../js/ui/messageTray.js:1513
msgid "Clear Messages"
msgstr "Pulisci messaggi"
#: ../js/ui/messageTray.js:1564
#: ../js/ui/messageTray.js:1540
msgid "Notification Settings"
msgstr "Impostazioni notifiche"
#: ../js/ui/messageTray.js:1617
#: ../js/ui/messageTray.js:1559
msgid "Tray Menu"
msgstr "Menu tray"
#: ../js/ui/messageTray.js:1833
#: ../js/ui/messageTray.js:1775
msgid "No Messages"
msgstr "Nessun messaggio"
#: ../js/ui/messageTray.js:1871
#: ../js/ui/messageTray.js:1813
msgid "Message Tray"
msgstr "Cassetto messaggi"
#: ../js/ui/messageTray.js:2846
#: ../js/ui/messageTray.js:2788
msgid "System Information"
msgstr "Informazione di sistema"
@ -1299,8 +1291,8 @@ msgstr "Caratteri grandi"
msgid "Bluetooth"
msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:133
#: ../js/ui/status/network.js:1085 ../js/ui/status/rfkill.js:46
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:1040 ../js/ui/status/rfkill.js:46
msgid "Turn Off"
msgstr "Spegni"
@ -1387,97 +1379,84 @@ msgstr "Luminosità"
msgid "<unknown>"
msgstr "<sconosciuto>"
#: ../js/ui/status/network.js:223 ../js/ui/status/network.js:380
#: ../js/ui/status/network.js:1106
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1055
msgid "Off"
msgstr "Off"
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:961
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Impostazioni rete"
# FIXME o femminile? boh
#. 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) */
#: ../js/ui/status/network.js:386
#: ../js/ui/status/network.js:364
msgid "unmanaged"
msgstr "non gestito"
#: ../js/ui/status/network.js:388
#: ../js/ui/status/network.js:366
msgid "disconnecting..."
msgstr "disconnessione..."
#: ../js/ui/status/network.js:394 ../js/ui/status/network.js:1160
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1106
msgid "connecting..."
msgstr "connessione..."
#. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:397 ../js/ui/status/network.js:1163
#: ../js/ui/status/network.js:375 ../js/ui/status/network.js:1109
msgid "authentication required"
msgstr "richiesta autenticazione"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing */
#: ../js/ui/status/network.js:405
#: ../js/ui/status/network.js:383
msgid "firmware missing"
msgstr "firmware mancante"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage */
#: ../js/ui/status/network.js:409
#: ../js/ui/status/network.js:387
msgid "unavailable"
msgstr "non disponibile"
#: ../js/ui/status/network.js:411 ../js/ui/status/network.js:1165
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1111
msgid "connection failed"
msgstr "connessione non riuscita"
#: ../js/ui/status/network.js:427 ../js/ui/status/network.js:513
msgid "Mobile Broadband Settings"
msgstr "Impostazioni banda larga mobile"
# (ndt) o disabilitata?
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1104
msgid "Hardware Disabled"
msgstr "Hardware disabilitato"
#: ../js/ui/status/network.js:696
#: ../js/ui/status/network.js:660
msgid "Wi-Fi Networks"
msgstr "Reti Wi-Fi"
#: ../js/ui/status/network.js:698
#: ../js/ui/status/network.js:662
msgid "Select a network"
msgstr "Seleziona una rete"
#: ../js/ui/status/network.js:722
#: ../js/ui/status/network.js:686
msgid "No Networks"
msgstr "Nessuna rete"
#: ../js/ui/status/network.js:991
#: ../js/ui/status/network.js:955
msgid "Select Network"
msgstr "Seleziona rete"
#: ../js/ui/status/network.js:997
msgid "Wi-Fi Settings"
msgstr "Impostazioni Wi-Fi"
#: ../js/ui/status/network.js:1085
#: ../js/ui/status/network.js:1040
msgid "Turn On"
msgstr "Accendi"
#: ../js/ui/status/network.js:1108
msgid "Not Connected"
msgstr "Non collegato"
#: ../js/ui/status/network.js:1228
#: ../js/ui/status/network.js:1174
msgid "VPN"
msgstr "VPN"
#: ../js/ui/status/network.js:1368
#: ../js/ui/status/network.js:1314
msgid "Network Manager"
msgstr "Gestore reti"
#: ../js/ui/status/network.js:1407
#: ../js/ui/status/network.js:1353
msgid "Connection failed"
msgstr "Connessione non riuscita"
#: ../js/ui/status/network.js:1408
#: ../js/ui/status/network.js:1354
msgid "Activation of network connection failed"
msgstr "Attivazione della connessione di rete non riuscita"
@ -1498,11 +1477,13 @@ msgid "Estimating…"
msgstr "In stima…"
#: ../js/ui/status/power.js:77
#| msgid "%d\\u2236%02d Remaining (%d%%)"
msgid "%d%02d Remaining (%d%%)"
msgstr "%d.%02d rimanente (%d%%)"
# in stile MacOS sarebbe "al pieno" :P
#: ../js/ui/status/power.js:82
#| msgid "%d\\u2236%02d Until Full (%d%%)"
msgid "%d%02d Until Full (%d%%)"
msgstr "%d.%02d alla carica (%d%%)"
@ -1514,10 +1495,6 @@ msgstr "Modalità aeroplano"
msgid "On"
msgstr "On"
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Impostazioni rete"
#: ../js/ui/status/system.js:305
msgid "Switch User"
msgstr "Cambia utente"

379
po/lt.po

File diff suppressed because it is too large Load Diff

402
po/lv.po

File diff suppressed because it is too large Load Diff

587
po/nb.po

File diff suppressed because it is too large Load Diff

270
po/nl.po
View File

@ -14,10 +14,11 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-10-12 19:57+0200\n"
"PO-Revision-Date: 2013-10-12 19:59+0200\n"
"Last-Translator: Wouter Bolsterlee <wbolster@gnome.org>\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2013-09-14 18:10+0000\n"
"PO-Revision-Date: 2013-09-21 22:46+0100\n"
"Last-Translator: Reinout van Schouwen <reinouts@gnome.org>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
@ -268,10 +269,6 @@ msgstr "Werkbladen dynamisch beheren"
msgid "Workspaces only on primary monitor"
msgstr "Alleen werkbladen op hoofdmonitor"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Focus pas wijzigen nadat de muisaanwijzer is gestopt met bewegen"
#: ../js/extensionPrefs/main.js:125
#, c-format
msgid "There was an error loading the preferences dialog for %s:"
@ -285,10 +282,10 @@ msgstr "Uitbreiding"
msgid "Select an extension to configure using the combobox above."
msgstr "Selecteer de te configureren uitbreiding uit de keuzelijst hierboven."
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:132
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:728
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:686
msgid "Cancel"
msgstr "Annuleren"
@ -327,8 +324,8 @@ msgstr "(bijv. gebruiker of %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:627 ../js/ui/components/networkAgent.js:259
#: ../js/ui/components/networkAgent.js:277
#: ../js/gdm/loginDialog.js:627 ../js/ui/components/networkAgent.js:255
#: ../js/ui/components/networkAgent.js:273
msgid "Username: "
msgstr "Gebruikersnaam: "
@ -349,42 +346,42 @@ msgstr "Authenticatie mislukt"
msgid "(or swipe finger)"
msgstr "(of vinger aanbieden)"
#: ../js/misc/util.js:115
#: ../js/misc/util.js:98
msgid "Command not found"
msgstr "Opdracht niet gevonden"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
#: ../js/misc/util.js:148
#: ../js/misc/util.js:131
msgid "Could not parse command:"
msgstr "Kon opdracht niet parsen:"
#: ../js/misc/util.js:156
#: ../js/misc/util.js:139
#, c-format
msgid "Execution of '%s' failed:"
msgstr "Uitvoeren van %s mislukt:"
#: ../js/ui/appDisplay.js:596
#: ../js/ui/appDisplay.js:598
msgid "Frequently used applications will appear here"
msgstr "Vaak gebruikte toepassingen verschijnen hier"
#: ../js/ui/appDisplay.js:712
#: ../js/ui/appDisplay.js:714
msgid "Frequent"
msgstr "Vaak gebruikt"
#: ../js/ui/appDisplay.js:719
#: ../js/ui/appDisplay.js:721
msgid "All"
msgstr "Alles"
#: ../js/ui/appDisplay.js:1514
#: ../js/ui/appDisplay.js:1516
msgid "New Window"
msgstr "Nieuw venster"
#: ../js/ui/appDisplay.js:1517 ../js/ui/dash.js:284
#: ../js/ui/appDisplay.js:1519 ../js/ui/dash.js:284
msgid "Remove from Favorites"
msgstr "Uit favorieten verwijderen"
#: ../js/ui/appDisplay.js:1518
#: ../js/ui/appDisplay.js:1520
msgid "Add to Favorites"
msgstr "Aan favorieten toevoegen"
@ -398,7 +395,7 @@ msgstr "%s is toegevoegd aan uw favorieten."
msgid "%s has been removed from your favorites."
msgstr "%s is verwijderd uit uw favorieten."
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:806
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:807
#: ../js/ui/status/system.js:325
msgid "Settings"
msgstr "Voorkeuren"
@ -586,50 +583,50 @@ msgstr "Openen met %s"
msgid "Eject"
msgstr "Uitwerpen"
#: ../js/ui/components/keyring.js:89 ../js/ui/components/polkitAgent.js:280
#: ../js/ui/components/keyring.js:88 ../js/ui/components/polkitAgent.js:280
msgid "Password:"
msgstr "Wachtwoord:"
#: ../js/ui/components/keyring.js:108
#: ../js/ui/components/keyring.js:107
msgid "Type again:"
msgstr "Nogmaals:"
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:133
#: ../js/ui/status/network.js:296 ../js/ui/status/network.js:731
#: ../js/ui/components/networkAgent.js:127 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:689
msgid "Connect"
msgstr "Verbinden"
#. Cisco LEAP
#: ../js/ui/components/networkAgent.js:222
#: ../js/ui/components/networkAgent.js:234
#: ../js/ui/components/networkAgent.js:261
#: ../js/ui/components/networkAgent.js:281
#: ../js/ui/components/networkAgent.js:291
#: ../js/ui/components/networkAgent.js:218
#: ../js/ui/components/networkAgent.js:230
#: ../js/ui/components/networkAgent.js:257
#: ../js/ui/components/networkAgent.js:277
#: ../js/ui/components/networkAgent.js:287
msgid "Password: "
msgstr "Wachtwoord:"
#. static WEP
#: ../js/ui/components/networkAgent.js:227
#: ../js/ui/components/networkAgent.js:223
msgid "Key: "
msgstr "Sleutel: "
#: ../js/ui/components/networkAgent.js:265
#: ../js/ui/components/networkAgent.js:261
msgid "Identity: "
msgstr "Identiteit: "
#: ../js/ui/components/networkAgent.js:267
#: ../js/ui/components/networkAgent.js:263
msgid "Private key password: "
msgstr "Wachtwoord van privésleutel: "
#: ../js/ui/components/networkAgent.js:279
#: ../js/ui/components/networkAgent.js:275
msgid "Service: "
msgstr "Service: "
#: ../js/ui/components/networkAgent.js:308
#: ../js/ui/components/networkAgent.js:304
msgid "Authentication required by wireless network"
msgstr "Authenticatie nodig voor draadloos netwerk"
#: ../js/ui/components/networkAgent.js:309
#: ../js/ui/components/networkAgent.js:305
#, c-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@ -638,35 +635,35 @@ msgstr ""
"Er is een wachtwoord of een sleutel voor encryptie nodig voor toegang tot "
"het draadloze netwerk %s."
#: ../js/ui/components/networkAgent.js:313
#: ../js/ui/components/networkAgent.js:309
msgid "Wired 802.1X authentication"
msgstr "802.1X-authenticatie (bedraad)"
#: ../js/ui/components/networkAgent.js:315
#: ../js/ui/components/networkAgent.js:311
msgid "Network name: "
msgstr "Netwerknaam: "
#: ../js/ui/components/networkAgent.js:320
#: ../js/ui/components/networkAgent.js:316
msgid "DSL authentication"
msgstr "DSL-authenticatie"
#: ../js/ui/components/networkAgent.js:327
#: ../js/ui/components/networkAgent.js:323
msgid "PIN code required"
msgstr "PIN-code vereist"
#: ../js/ui/components/networkAgent.js:328
#: ../js/ui/components/networkAgent.js:324
msgid "PIN code is needed for the mobile broadband device"
msgstr "PIN-code vereist voor het apparaat voor mobiel breedband"
#: ../js/ui/components/networkAgent.js:329
#: ../js/ui/components/networkAgent.js:325
msgid "PIN: "
msgstr "PIN: "
#: ../js/ui/components/networkAgent.js:335
#: ../js/ui/components/networkAgent.js:331
msgid "Mobile broadband network password"
msgstr "Netwerkwachtwoord voor mobiel breedband"
#: ../js/ui/components/networkAgent.js:336
#: ../js/ui/components/networkAgent.js:332
#, c-format
msgid "A password is required to connect to '%s'."
msgstr "Er is een wachtwoord nodig om met %s te verbinden."
@ -1037,14 +1034,11 @@ msgid "Restart & Install Updates"
msgstr "Opnieuw opstarten en updates installeren"
#: ../js/ui/endSessionDialog.js:114
#, c-format
msgid "The system will automatically restart and install updates in %d second."
msgid_plural ""
"The system will automatically restart and install updates in %d seconds."
msgstr[0] ""
"De computer zal opnieuw opstarten en updates installeren over %d seconde."
msgstr[1] ""
"De computer zal opnieuw opstarten en updates installeren over %d seconden."
msgstr[0] "De computer zal opnieuw opstarten en updates installeren over %d seconde."
msgstr[1] "De computer zal opnieuw opstarten en updates installeren over %d seconden."
#: ../js/ui/endSessionDialog.js:119
msgctxt "button"
@ -1106,12 +1100,9 @@ msgstr "Fouten tonen"
msgid "Enabled"
msgstr "Ingeschakeld"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode)
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:765 ../js/ui/status/network.js:473
#: ../src/gvc/gvc-mixer-control.c:1830
#: ../js/ui/lookingGlass.js:765 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled"
msgstr "Uitgeschakeld"
@ -1143,35 +1134,31 @@ msgstr "Openen"
msgid "Remove"
msgstr "Verwijderen"
#: ../js/ui/messageTray.js:1530
msgid "Notifications"
msgstr "Notificaties"
#: ../js/ui/messageTray.js:1537
#: ../js/ui/messageTray.js:1513
msgid "Clear Messages"
msgstr "Berichten wissen"
#: ../js/ui/messageTray.js:1564
#: ../js/ui/messageTray.js:1540
msgid "Notification Settings"
msgstr "Notificatie-instellingen"
#: ../js/ui/messageTray.js:1617
#: ../js/ui/messageTray.js:1559
msgid "Tray Menu"
msgstr "Overzichtmenu"
#: ../js/ui/messageTray.js:1833
#: ../js/ui/messageTray.js:1775
msgid "No Messages"
msgstr "Geen berichten"
#: ../js/ui/messageTray.js:1871
#: ../js/ui/messageTray.js:1812
msgid "Message Tray"
msgstr "Berichtenoverzicht"
#: ../js/ui/messageTray.js:2846
#: ../js/ui/messageTray.js:2787
msgid "System Information"
msgstr "Systeeminformatie"
#: ../js/ui/notificationDaemon.js:630 ../src/shell-app.c:396
#: ../js/ui/notificationDaemon.js:629 ../src/shell-app.c:396
msgctxt "program"
msgid "Unknown"
msgstr "Onbekend"
@ -1199,17 +1186,17 @@ msgstr "Overzicht"
msgid "Type to search…"
msgstr "Typ om te zoeken…"
#: ../js/ui/panel.js:516
#: ../js/ui/panel.js:518
msgid "Quit"
msgstr "Afsluiten"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:568
#: ../js/ui/panel.js:570
msgid "Activities"
msgstr "Activiteiten"
#: ../js/ui/panel.js:900
#: ../js/ui/panel.js:903
msgid "Top Bar"
msgstr "Bovenbalk"
@ -1218,7 +1205,7 @@ msgstr "Bovenbalk"
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:259
#: ../js/ui/popupMenu.js:233
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
@ -1266,11 +1253,11 @@ msgstr "Kon niet vergrendelen"
msgid "Lock was blocked by an application"
msgstr "Vergrendelen is door een toepassing voorkomen"
#: ../js/ui/searchDisplay.js:448
#: ../js/ui/searchDisplay.js:447
msgid "Searching…"
msgstr "Zoeken…"
#: ../js/ui/searchDisplay.js:492
#: ../js/ui/searchDisplay.js:491
msgid "No results."
msgstr "Geen resultaten"
@ -1302,56 +1289,56 @@ msgstr "Wachtwoord onthouden"
msgid "Accessibility"
msgstr "Toegankelijkheid"
#: ../js/ui/status/accessibility.js:56
#: ../js/ui/status/accessibility.js:58
msgid "Zoom"
msgstr "Zoomen"
#: ../js/ui/status/accessibility.js:63
#: ../js/ui/status/accessibility.js:65
msgid "Screen Reader"
msgstr "Schermlezer"
#: ../js/ui/status/accessibility.js:67
#: ../js/ui/status/accessibility.js:69
msgid "Screen Keyboard"
msgstr "Schermtoetsenbord"
#: ../js/ui/status/accessibility.js:71
#: ../js/ui/status/accessibility.js:73
msgid "Visual Alerts"
msgstr "Visuele alerteringen"
#: ../js/ui/status/accessibility.js:74
#: ../js/ui/status/accessibility.js:76
msgid "Sticky Keys"
msgstr "Plaktoetsen"
#: ../js/ui/status/accessibility.js:77
#: ../js/ui/status/accessibility.js:79
msgid "Slow Keys"
msgstr "Trage Toetsen"
#: ../js/ui/status/accessibility.js:80
#: ../js/ui/status/accessibility.js:82
msgid "Bounce Keys"
msgstr "Springende toetsen"
#: ../js/ui/status/accessibility.js:83
#: ../js/ui/status/accessibility.js:85
msgid "Mouse Keys"
msgstr "Muistoetsen"
#: ../js/ui/status/accessibility.js:142
#: ../js/ui/status/accessibility.js:144
msgid "High Contrast"
msgstr "Hoog contrast"
#: ../js/ui/status/accessibility.js:191
#: ../js/ui/status/accessibility.js:193
msgid "Large Text"
msgstr "Grote tekst"
#. The Bluetooth menu only appears when Bluetooth is in use,
#. so just statically build it with a "Turn Off" menu item.
#: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:63
#: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128
#: ../js/ui/status/bluetooth.js:164 ../js/ui/status/bluetooth.js:195
#: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:62
#: ../js/ui/status/bluetooth.js:99 ../js/ui/status/bluetooth.js:127
#: ../js/ui/status/bluetooth.js:163 ../js/ui/status/bluetooth.js:194
msgid "Bluetooth"
msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:133
#: ../js/ui/status/network.js:1085 ../js/ui/status/rfkill.js:46
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:1034 ../js/ui/status/rfkill.js:46
msgid "Turn Off"
msgstr "Uitschakelen"
@ -1359,81 +1346,79 @@ msgstr "Uitschakelen"
msgid "Bluetooth Settings"
msgstr "Bluetooth-instellingen"
#: ../js/ui/status/bluetooth.js:58
#, c-format
#: ../js/ui/status/bluetooth.js:57
msgid "%d Connected Device"
msgid_plural "%d Connected Devices"
msgstr[0] "%d Verbonden apparaat"
msgstr[1] "%d Verbonden apparaten"
#: ../js/ui/status/bluetooth.js:101 ../js/ui/status/bluetooth.js:129
#: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128
#, c-format
msgid "Authorization request from %s"
msgstr "Autorisatie-aanvraag van %s"
#: ../js/ui/status/bluetooth.js:107 ../js/ui/status/bluetooth.js:172
#: ../js/ui/status/bluetooth.js:203
#: ../js/ui/status/bluetooth.js:106 ../js/ui/status/bluetooth.js:171
#: ../js/ui/status/bluetooth.js:202
#, c-format
msgid "Device %s wants to pair with this computer"
msgstr "Het apparaat %s wil aankoppelen met deze computer"
#: ../js/ui/status/bluetooth.js:109
#: ../js/ui/status/bluetooth.js:108
msgid "Allow"
msgstr "Toestaan"
#: ../js/ui/status/bluetooth.js:110
#: ../js/ui/status/bluetooth.js:109
msgid "Deny"
msgstr "Weigeren"
#: ../js/ui/status/bluetooth.js:135
#: ../js/ui/status/bluetooth.js:134
#, c-format
msgid "Device %s wants access to the service '%s'"
msgstr "Het apparaat %s wil toegang tot de dienst %s"
#: ../js/ui/status/bluetooth.js:137
#: ../js/ui/status/bluetooth.js:136
msgid "Always grant access"
msgstr "Altijd toestaan"
#: ../js/ui/status/bluetooth.js:138
#: ../js/ui/status/bluetooth.js:137
msgid "Grant this time only"
msgstr "Eenmalig toestaan"
#: ../js/ui/status/bluetooth.js:139
#: ../js/ui/status/bluetooth.js:138
msgid "Reject"
msgstr "Afwijzen"
#. Translators: argument is the device short name
#: ../js/ui/status/bluetooth.js:166
#: ../js/ui/status/bluetooth.js:165
#, c-format
msgid "Pairing confirmation for %s"
msgstr "Koppelbevestiging voor %s"
#: ../js/ui/status/bluetooth.js:173
#, c-format
#: ../js/ui/status/bluetooth.js:172
msgid ""
"Please confirm whether the Passkey '%06d' matches the one on the device."
msgstr ""
msgstr
"Bevestig dat de toegangscode %06d hetzelfde is als die van het apparaat."
#. Translators: this is the verb, not the noun
#: ../js/ui/status/bluetooth.js:176
#: ../js/ui/status/bluetooth.js:175
msgid "Matches"
msgstr "Komt overeen"
#: ../js/ui/status/bluetooth.js:177
#: ../js/ui/status/bluetooth.js:176
msgid "Does not match"
msgstr "Komt niet overeen"
#: ../js/ui/status/bluetooth.js:196
#: ../js/ui/status/bluetooth.js:195
#, c-format
msgid "Pairing request for %s"
msgstr "Verzoek tot koppelen met %s"
#: ../js/ui/status/bluetooth.js:204
#: ../js/ui/status/bluetooth.js:203
msgid "Please enter the PIN mentioned on the device."
msgstr "Geef de op het apparaat aangegeven PIN-code."
#: ../js/ui/status/bluetooth.js:221
#: ../js/ui/status/bluetooth.js:220
msgid "OK"
msgstr "OK"
@ -1441,7 +1426,7 @@ msgstr "OK"
msgid "Brightness"
msgstr "Helderheid"
#: ../js/ui/status/keyboard.js:401
#: ../js/ui/status/keyboard.js:403
msgid "Show Keyboard Layout"
msgstr "Toetsenbordindeling tonen"
@ -1449,95 +1434,83 @@ msgstr "Toetsenbordindeling tonen"
msgid "<unknown>"
msgstr "<onbekend>"
#: ../js/ui/status/network.js:223 ../js/ui/status/network.js:380
#: ../js/ui/status/network.js:1106
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1049
msgid "Off"
msgstr "Uit"
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:955
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Netwerkinstellingen"
#. 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)
#: ../js/ui/status/network.js:386
#: ../js/ui/status/network.js:364
msgid "unmanaged"
msgstr "niet gemanaged"
#: ../js/ui/status/network.js:388
#: ../js/ui/status/network.js:366
msgid "disconnecting..."
msgstr "verbinding verbreken…"
#: ../js/ui/status/network.js:394 ../js/ui/status/network.js:1160
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1100
msgid "connecting..."
msgstr "verbinden…"
#. Translators: this is for network connections that require some kind of key or password
#: ../js/ui/status/network.js:397 ../js/ui/status/network.js:1163
#: ../js/ui/status/network.js:375 ../js/ui/status/network.js:1103
msgid "authentication required"
msgstr "authenticatie nodig"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing
#: ../js/ui/status/network.js:405
#: ../js/ui/status/network.js:383
msgid "firmware missing"
msgstr "firmware ontbreekt"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage
#: ../js/ui/status/network.js:409
#: ../js/ui/status/network.js:387
msgid "unavailable"
msgstr "niet beschikbaar"
#: ../js/ui/status/network.js:411 ../js/ui/status/network.js:1165
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1105
msgid "connection failed"
msgstr "verbinding mislukt"
#: ../js/ui/status/network.js:427 ../js/ui/status/network.js:513
msgid "Mobile Broadband Settings"
msgstr "Instellingen voor mobiel breedband"
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1104
msgid "Hardware Disabled"
msgstr "Uitgeschakeld in hardware"
#: ../js/ui/status/network.js:696
#: ../js/ui/status/network.js:654
msgid "Wi-Fi Networks"
msgstr "Wi-Fi-netwerken"
#: ../js/ui/status/network.js:698
#: ../js/ui/status/network.js:656
msgid "Select a network"
msgstr "Selecteer een netwerk"
#: ../js/ui/status/network.js:722
#: ../js/ui/status/network.js:680
msgid "No Networks"
msgstr "Geen netwerken"
#: ../js/ui/status/network.js:991
#: ../js/ui/status/network.js:949
msgid "Select Network"
msgstr "Selecteer netwerk"
#: ../js/ui/status/network.js:997
msgid "Wi-Fi Settings"
msgstr "Instellingen voor Wi-Fi"
#: ../js/ui/status/network.js:1085
#: ../js/ui/status/network.js:1034
msgid "Turn On"
msgstr "Inschakelen"
#: ../js/ui/status/network.js:1108
msgid "Not Connected"
msgstr "Niet verbonden"
#: ../js/ui/status/network.js:1228
#: ../js/ui/status/network.js:1167
msgid "VPN"
msgstr "VPN"
#: ../js/ui/status/network.js:1368
#: ../js/ui/status/network.js:1306
msgid "Network Manager"
msgstr "Netwerk-manager"
#: ../js/ui/status/network.js:1407
#: ../js/ui/status/network.js:1345
msgid "Connection failed"
msgstr "Verbinding mislukt"
#: ../js/ui/status/network.js:1408
#: ../js/ui/status/network.js:1346
msgid "Activation of network connection failed"
msgstr "Activeren van netwerkverbinding mislukt"
@ -1583,10 +1556,6 @@ msgstr "Vliegtuigstand"
msgid "On"
msgstr "Aan"
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Netwerkinstellingen"
#: ../js/ui/status/system.js:305
msgid "Switch User"
msgstr "Gebruiker wisselen"
@ -1698,7 +1667,7 @@ msgid_plural "%u Inputs"
msgstr[0] "%u invoerkanaal"
msgstr[1] "%u invoerkanalen"
#: ../src/gvc/gvc-mixer-control.c:2371
#: ../src/gvc/gvc-mixer-control.c:2373
msgid "System Sounds"
msgstr "Systeemgeluiden"
@ -1877,6 +1846,9 @@ msgstr "Authenticatievenster is door de gebruiker afgesloten"
#~ msgid "Set Up a New Device…"
#~ msgstr "Nieuw apparaat instellen…"
#~ msgid "hardware disabled"
#~ msgstr "uitgeschakeld in hardware"
#~ msgid "Connection"
#~ msgstr "Verbinding"
@ -1914,6 +1886,9 @@ msgstr "Authenticatievenster is door de gebruiker afgesloten"
#~ msgid "Auto Ethernet"
#~ msgstr "Automatisch ethernetverbinding"
#~ msgid "Mobile broadband"
#~ msgstr "Mobiel breedband"
#~ msgid "Auto broadband"
#~ msgstr "Automatische breedbandverbinding"
@ -2011,6 +1986,9 @@ msgstr "Authenticatievenster is door de gebruiker afgesloten"
#~ msgid "Idle"
#~ msgstr "Inactief"
#~ msgid "Notifications"
#~ msgstr "Notificaties"
#~ msgid "Your chat status will be set to busy"
#~ msgstr "De chatstatus zal op bezig gezet worden"

2487
po/oc.po

File diff suppressed because it is too large Load Diff

350
po/pa.po
View File

@ -1,15 +1,15 @@
# Punjabi translation for gnome-shell.
# Copyright (C) 2009 gnome-shell's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell package.
# A S Alam <aalam@users.sf.net>, 2009, 2010, 2011, 2012, 2013, 2014.
# A S Alam <aalam@users.sf.net>, 2009, 2010, 2011, 2012, 2013.
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2014-02-01 22:56+0000\n"
"PO-Revision-Date: 2014-02-01 17:12-0600\n"
"Last-Translator: Aman Alam <aalam@users.sf.net>\n"
"POT-Creation-Date: 2013-09-28 19:49+0000\n"
"PO-Revision-Date: 2013-09-29 05:26-0500\n"
"Last-Translator: A S Alam <aalam@users.sf.net>\n"
"Language-Team: Punjabi/Panjabi <punjabi-users@lists.sf.net>\n"
"Language: pa\n"
"MIME-Version: 1.0\n"
@ -273,23 +273,23 @@ msgstr "ਪੁਆਇੰਟਰ ਦੇ ਹਿਲਣ ਤੋਂ ਰੁਕਣ ਤੱ
msgid "Select an extension to configure using the combobox above."
msgstr "ਉੱਤੇ ਦਿੱਤੇ ਕੰਬੋਬਾਕਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਕਸਟੈਸ਼ਨ ਦੀ ਸੰਰਚਨਾ ਕਰਨ ਲਈ ਚੋਣ ਕਰੋ।"
#: ../js/gdm/authPrompt.js:146 ../js/ui/components/networkAgent.js:136
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:739
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:692
msgid "Cancel"
msgstr "ਰੱਦ ਕਰੋ"
#: ../js/gdm/authPrompt.js:168 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:167 ../js/gdm/authPrompt.js:215
msgid "Next"
msgstr "ਅੱਗੇ"
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59
msgid "Unlock"
msgstr "ਅਣ-ਲਾਕ"
#: ../js/gdm/authPrompt.js:214
#: ../js/gdm/authPrompt.js:213
msgctxt "button"
msgid "Sign In"
msgstr "ਸਾਇਨ ਇਨ"
@ -316,23 +316,23 @@ msgstr "ਯੂਜ਼ਰ ਨਾਂ: "
msgid "Login Window"
msgstr "ਲਾਗਇਨ ਵਿੰਡੋ"
#: ../js/gdm/util.js:321
#: ../js/gdm/util.js:306
msgid "Authentication error"
msgstr "ਪਰਮਾਣਕਿਤਾ ਗਲਤੀ"
#: ../js/gdm/util.js:451
#: ../js/gdm/util.js:436
msgid "(or swipe finger)"
msgstr "(ਜਾਂ ਉਂਗਲ ਰੱਖੋ)"
#: ../js/misc/util.js:115
#: ../js/misc/util.js:98
msgid "Command not found"
msgstr "ਕਮਾਂਡ ਨਹੀਂ ਲੱਭੀ"
#: ../js/misc/util.js:148
#: ../js/misc/util.js:131
msgid "Could not parse command:"
msgstr "ਕਮਾਂਡ ਪਾਰਸ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ:"
#: ../js/misc/util.js:156
#: ../js/misc/util.js:139
#, javascript-format
msgid "Execution of '%s' failed:"
msgstr "'%s' ਚਲਾਉਣ ਲਈ ਫੇਲ੍ਹ:"
@ -349,15 +349,15 @@ msgstr "ਅਕਸਰ"
msgid "All"
msgstr "ਸਭ"
#: ../js/ui/appDisplay.js:1525
#: ../js/ui/appDisplay.js:1514
msgid "New Window"
msgstr "ਨਵੀਂ ਵਿੰਡੋ"
#: ../js/ui/appDisplay.js:1528 ../js/ui/dash.js:284
#: ../js/ui/appDisplay.js:1517 ../js/ui/dash.js:284
msgid "Remove from Favorites"
msgstr "ਪਸੰਦ ਵਿੱਚੋਂ ਹਟਾਓ"
#: ../js/ui/appDisplay.js:1529
#: ../js/ui/appDisplay.js:1518
msgid "Add to Favorites"
msgstr "ਪਸੰਦ 'ਚ ਸ਼ਾਮਲ ਕਰੋ"
@ -371,8 +371,8 @@ msgstr "%s ਨੂੰ ਤੁਹਾਡੀ ਪਸੰਦ ਵਿੱਚ ਸ਼ਾਮ
msgid "%s has been removed from your favorites."
msgstr "%s ਨੂੰ ਤੁਹਾਡੀ ਪਸੰਦ ਤੋਂ ਹਟਾਇਆ ਜਾ ਚੁੱਕਿਆ ਹੈ।"
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:806
#: ../js/ui/status/system.js:334
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:808
#: ../js/ui/status/system.js:325
msgid "Settings"
msgstr "ਸੈਟਿੰਗ"
@ -562,16 +562,16 @@ msgstr "%s ਨਾਲ ਖੋਲ੍ਹੋ"
msgid "Eject"
msgstr "ਬਾਹਰ ਕੱਢੋ"
#: ../js/ui/components/keyring.js:89 ../js/ui/components/polkitAgent.js:280
#: ../js/ui/components/keyring.js:91 ../js/ui/components/polkitAgent.js:280
msgid "Password:"
msgstr "ਪਾਸਵਰਡ:"
#: ../js/ui/components/keyring.js:108
#: ../js/ui/components/keyring.js:110
msgid "Type again:"
msgstr "ਮੁੜ-ਕੋਸ਼ਿਸ਼:"
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:132
#: ../js/ui/status/network.js:295 ../js/ui/status/network.js:742
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:695
msgid "Connect"
msgstr "ਕੁਨੈਕਟ ਕਰੋ"
@ -663,60 +663,60 @@ msgstr "ਪਰਮਾਣਿਤ"
msgid "Sorry, that didn't work. Please try again."
msgstr "ਅਫਸੋਸ, ਉਹ ਕੰਮ ਨਹੀਂ ਕਰਦਾ। ਫੇਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜੀ।"
#: ../js/ui/components/telepathyClient.js:237
#: ../js/ui/components/telepathyClient.js:238
msgid "Invitation"
msgstr "ਸੱਦਾ"
#: ../js/ui/components/telepathyClient.js:297
#: ../js/ui/components/telepathyClient.js:298
msgid "Call"
msgstr "ਕਾਲ ਕਰੋ"
#: ../js/ui/components/telepathyClient.js:313
#: ../js/ui/components/telepathyClient.js:314
msgid "File Transfer"
msgstr "ਫਾਇਲ ਟਰਾਂਸਫਰ"
#: ../js/ui/components/telepathyClient.js:417
#: ../js/ui/components/telepathyClient.js:418
msgid "Chat"
msgstr "ਗੱਲਬਾਤ"
#: ../js/ui/components/telepathyClient.js:479
#: ../js/ui/components/telepathyClient.js:480
msgid "Unmute"
msgstr "ਸੁਣਾਓ"
#: ../js/ui/components/telepathyClient.js:479
#: ../js/ui/components/telepathyClient.js:480
msgid "Mute"
msgstr "ਚੁੱਪ"
#. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30"*/
#: ../js/ui/components/telepathyClient.js:941
#: ../js/ui/components/telepathyClient.js:942
msgid "<b>Yesterday</b>, <b>%H:%M</b>"
msgstr "<b>ਕੱਲ੍ਹ</b>, <b>%H:%M</b>"
#. Translators: this is the week day name followed by a time string. i.e. "Monday, 14:30*/
#: ../js/ui/components/telepathyClient.js:947
#: ../js/ui/components/telepathyClient.js:948
msgid "<b>%A</b>, <b>%H:%M</b>"
msgstr "<b>%A</b>, <b>%H:%M</b>"
#. 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:952
#: ../js/ui/components/telepathyClient.js:953
msgid "<b>%B</b> <b>%d</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"*/
#: ../js/ui/components/telepathyClient.js:956
#: ../js/ui/components/telepathyClient.js:957
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> "
#. Translators: this is the other person changing their old IM name to their new
#. IM name. */
#: ../js/ui/components/telepathyClient.js:985
#: ../js/ui/components/telepathyClient.js:986
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s ਨੂੰ ਹੁਣ %s ਵਜੋਂ ਜਾਣਿਆ ਜਾਵੇਗਾ"
#. translators: argument is a room name like
#. * room@jabber.org for example. */
#: ../js/ui/components/telepathyClient.js:1088
#: ../js/ui/components/telepathyClient.js:1089
#, javascript-format
msgid "Invitation to %s"
msgstr "%s ਲਈ ਸੱਦਾ"
@ -724,38 +724,38 @@ msgstr "%s ਲਈ ਸੱਦਾ"
#. translators: first argument is the name of a contact and the second
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
#. * for example. */
#: ../js/ui/components/telepathyClient.js:1096
#: ../js/ui/components/telepathyClient.js:1097
#, javascript-format
msgid "%s is inviting you to join %s"
msgstr "%s ਤੁਹਾਨੂੰ %s ਜੁਆਇੰਨ ਕਰਨ ਲਈ ਸੱਦ ਰਿਹਾ ਹੈ"
#: ../js/ui/components/telepathyClient.js:1098
#: ../js/ui/components/telepathyClient.js:1139
#: ../js/ui/components/telepathyClient.js:1179
#: ../js/ui/components/telepathyClient.js:1242
#: ../js/ui/components/telepathyClient.js:1099
#: ../js/ui/components/telepathyClient.js:1140
#: ../js/ui/components/telepathyClient.js:1180
#: ../js/ui/components/telepathyClient.js:1243
msgid "Decline"
msgstr "ਇਨਕਾਰ"
#: ../js/ui/components/telepathyClient.js:1099
#: ../js/ui/components/telepathyClient.js:1180
#: ../js/ui/components/telepathyClient.js:1243
#: ../js/ui/components/telepathyClient.js:1100
#: ../js/ui/components/telepathyClient.js:1181
#: ../js/ui/components/telepathyClient.js:1244
msgid "Accept"
msgstr "ਮਨਜ਼ੂਰ"
#. translators: argument is a contact name like Alice for example. */
#: ../js/ui/components/telepathyClient.js:1129
#: ../js/ui/components/telepathyClient.js:1130
#, javascript-format
msgid "Video call from %s"
msgstr "%s ਵਲੋਂ ਵਿਡੀਓ ਕਾਲ"
#. translators: argument is a contact name like Alice for example. */
#: ../js/ui/components/telepathyClient.js:1132
#: ../js/ui/components/telepathyClient.js:1133
#, javascript-format
msgid "Call from %s"
msgstr "%s ਵਲੋਂ ਕਾਲ"
#. translators: this is a button label (verb), not a noun */
#: ../js/ui/components/telepathyClient.js:1141
#: ../js/ui/components/telepathyClient.js:1142
msgid "Answer"
msgstr "ਜਵਾਬ ਦਿਓ"
@ -764,110 +764,110 @@ msgstr "ਜਵਾਬ ਦਿਓ"
#. * file name. The string will be something
#. * like: "Alice is sending you test.ogg"
#. */
#: ../js/ui/components/telepathyClient.js:1173
#: ../js/ui/components/telepathyClient.js:1174
#, javascript-format
msgid "%s is sending you %s"
msgstr "%s ਤੁਹਾਨੂੰ %s ਭੇਜ ਰਿਹਾ/ਰਹੀ ਹੈ"
#. To translators: The parameter is the contact's alias */
#: ../js/ui/components/telepathyClient.js:1208
#: ../js/ui/components/telepathyClient.js:1209
#, javascript-format
msgid "%s would like permission to see when you are online"
msgstr ""
"%s ਤੁਹਾਨੂੰ ਵੇਖਣ ਦਾ ਅਧਿਕਾਰ ਚਾਹੁੰਦਾ/ਚਾਹੁੰਦੀ ਹੈ, ਜਦੋਂ ਵੀ ਤੁਸੀਂ ਆਨਲਾਈਨ ਹੋਵੋ"
#: ../js/ui/components/telepathyClient.js:1300
#: ../js/ui/components/telepathyClient.js:1301
msgid "Network error"
msgstr "ਨੈੱਟਵਰਕ ਗਲਤੀ"
#: ../js/ui/components/telepathyClient.js:1302
#: ../js/ui/components/telepathyClient.js:1303
msgid "Authentication failed"
msgstr "ਪਰਮਾਣਕਿਤਾ ਫੇਲ੍ਹ ਹੋਈ"
#: ../js/ui/components/telepathyClient.js:1304
#: ../js/ui/components/telepathyClient.js:1305
msgid "Encryption error"
msgstr "ਇੰਕ੍ਰਿਪਸ਼ਨ ਗਲਤੀ"
#: ../js/ui/components/telepathyClient.js:1306
#: ../js/ui/components/telepathyClient.js:1307
msgid "Certificate not provided"
msgstr "ਸਰਟੀਫਿਕੇਟ ਨਹੀਂ ਦਿੱਤਾ"
#: ../js/ui/components/telepathyClient.js:1308
#: ../js/ui/components/telepathyClient.js:1309
msgid "Certificate untrusted"
msgstr "ਸਰਟੀਫਿਕੇਟ ਬੇਭਰੋਸੇਯੋਗ"
#: ../js/ui/components/telepathyClient.js:1310
#: ../js/ui/components/telepathyClient.js:1311
msgid "Certificate expired"
msgstr "ਸਰਟੀਫਿਕੇਟ ਦੀ ਮਿਆਦ ਪੁੱਗੀ"
#: ../js/ui/components/telepathyClient.js:1312
#: ../js/ui/components/telepathyClient.js:1313
msgid "Certificate not activated"
msgstr "ਸਰਟੀਫਿਕੇਟ ਸਰਗਰਮ ਨਹੀਂ ਹੈ"
#: ../js/ui/components/telepathyClient.js:1314
#: ../js/ui/components/telepathyClient.js:1315
msgid "Certificate hostname mismatch"
msgstr "ਸਰਟੀਫਿਕੇਟ ਹੋਸਟ-ਨਾਂ ਨਹੀਂ ਮਿਲਦਾ"
#: ../js/ui/components/telepathyClient.js:1316
#: ../js/ui/components/telepathyClient.js:1317
msgid "Certificate fingerprint mismatch"
msgstr "ਸਰਟੀਫਿਕੇਟ ਫਿੰਗਰ-ਪਰਿੰਟ ਮਿਲਦਾ ਨਹੀਂ"
#: ../js/ui/components/telepathyClient.js:1318
#: ../js/ui/components/telepathyClient.js:1319
msgid "Certificate self-signed"
msgstr "ਸਰਟੀਫਿਕੇਟ ਖੁਦ-ਦਸਤਖਤੀ ਹੈ"
#: ../js/ui/components/telepathyClient.js:1320
#: ../js/ui/components/telepathyClient.js:1321
msgid "Status is set to offline"
msgstr "ਹਾਲਤ ਆਫਲਾਈਨ ਸੈੱਟ ਕੀਤੀ ਗਈ ਹੈ"
#: ../js/ui/components/telepathyClient.js:1322
#: ../js/ui/components/telepathyClient.js:1323
msgid "Encryption is not available"
msgstr "ਇੰਕ੍ਰਿਪਸ਼ਨ ਉਪਲੱਬਧ ਨਹੀਂ ਹੈ"
#: ../js/ui/components/telepathyClient.js:1324
#: ../js/ui/components/telepathyClient.js:1325
msgid "Certificate is invalid"
msgstr "ਸਰਟੀਫਿਕੇਟ ਗਲਤ ਹੈ"
#: ../js/ui/components/telepathyClient.js:1326
#: ../js/ui/components/telepathyClient.js:1327
msgid "Connection has been refused"
msgstr "ਕੁਨੈਕਸ਼ਨ ਤੋਂ ਇਨਕਾਰ ਕੀਤਾ ਗਿਆ"
#: ../js/ui/components/telepathyClient.js:1328
#: ../js/ui/components/telepathyClient.js:1329
msgid "Connection can't be established"
msgstr "ਕੁਨੈਕਸ਼ਨ ਬਣਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ"
#: ../js/ui/components/telepathyClient.js:1330
#: ../js/ui/components/telepathyClient.js:1331
msgid "Connection has been lost"
msgstr "ਕੁਨੈਕਸ਼ਨ ਖਤਮ ਹੋ ਗਿਆ"
#: ../js/ui/components/telepathyClient.js:1332
#: ../js/ui/components/telepathyClient.js:1333
msgid "This account is already connected to the server"
msgstr "ਇਹ ਅਕਾਊਂਟ ਪਹਿਲਾਂ ਹੀ ਸਰਵਰ ਨਾਲ ਕੁਨੈਕਟ ਹੈ"
#: ../js/ui/components/telepathyClient.js:1334
#: ../js/ui/components/telepathyClient.js:1335
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr "ਉਸੇ ਸਰੋਤ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੁਨੈਕਸ਼ਨ ਨੂੰ ਨਵੇਂ ਕੁਨੈਕਸ਼ਨ ਨਾਲ ਬਦਲ ਦਿੱਤਾ ਗਿਆ ਹੈ"
#: ../js/ui/components/telepathyClient.js:1336
#: ../js/ui/components/telepathyClient.js:1337
msgid "The account already exists on the server"
msgstr "ਅਕਾਊਂਟ ਸਰਵਰ ਉੱਤੇ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ"
#: ../js/ui/components/telepathyClient.js:1338
#: ../js/ui/components/telepathyClient.js:1339
msgid "Server is currently too busy to handle the connection"
msgstr "ਸਰਵਰ ਇਸ ਵੇਲੇ ਐਨਾ ਰੁੱਝਿਆ ਹੋਇਆ ਹੈ ਕਿ ਕੁਨੈਕਸ਼ਨ ਸੰਭਾਲ ਨਹੀਂ ਸਕਦਾ"
#: ../js/ui/components/telepathyClient.js:1340
#: ../js/ui/components/telepathyClient.js:1341
msgid "Certificate has been revoked"
msgstr "ਸਰਟੀਫਿਕੇਟ ਮਨਸੂਖ ਕੀਤਾ ਜਾ ਚੁੱਕਾ ਹੈ"
#: ../js/ui/components/telepathyClient.js:1342
#: ../js/ui/components/telepathyClient.js:1343
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"ਸਰਟੀਫਿਕੇਟ ਅਸੁਰੱਖਿਅਤ ਸੀਫ਼ਰ ਐਲਗੋਰਿਥਮ ਵਰਤਦਾ ਹੈ ਜਾਂ ਕਮਜ਼ੋਰ ਕ੍ਰਿਪਟੋਗਰਾਫਿਕਲ ਵਰਤਦਾ ਹੈ"
#: ../js/ui/components/telepathyClient.js:1344
#: ../js/ui/components/telepathyClient.js:1345
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@ -876,22 +876,22 @@ msgstr ""
"ਲਾਇਬਰੇਰੀ ਵਲੋਂ ਰੱਖੀ "
"ਗਈ ਲਿਮਟ ਤੋਂ ਵੱਧ ਗਈ ਹੈ।"
#: ../js/ui/components/telepathyClient.js:1346
#: ../js/ui/components/telepathyClient.js:1347
msgid "Internal error"
msgstr "ਅੰਦਰੂਨੀ ਗਲਤੀ"
#. translators: argument is the account name, like
#. * name@jabber.org for example. */
#: ../js/ui/components/telepathyClient.js:1356
#: ../js/ui/components/telepathyClient.js:1357
#, javascript-format
msgid "Unable to connect to %s"
msgstr "%s ਨਾਲ ਕੁਨੈਕਟ ਹੋਣ ਲਈ ਅਸਮਰੱਥ"
#: ../js/ui/components/telepathyClient.js:1361
#: ../js/ui/components/telepathyClient.js:1362
msgid "View account"
msgstr "ਅਕਾਊਂਟ ਵੇਖੋ"
#: ../js/ui/components/telepathyClient.js:1400
#: ../js/ui/components/telepathyClient.js:1401
msgid "Unknown reason"
msgstr "ਅਣਜਾਣ ਕਾਰਨ"
@ -1065,12 +1065,9 @@ msgstr "ਗਲਤੀਆਂ ਵੇਖਾਓ"
msgid "Enabled"
msgstr "ਚਾਲੂ ਹੈ"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode) */
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:765 ../js/ui/status/network.js:472
#: ../src/gvc/gvc-mixer-control.c:1830
#: ../js/ui/lookingGlass.js:765 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled"
msgstr "ਬੰਦ ਹੈ"
@ -1094,48 +1091,44 @@ msgstr "ਸਰੋਤ ਵੇਖੋ"
msgid "Web Page"
msgstr "ਵੈੱਬ ਪੇਜ਼"
#: ../js/ui/messageTray.js:1350
#: ../js/ui/messageTray.js:1222
msgid "Open"
msgstr "ਖੋਲ੍ਹੋ"
#: ../js/ui/messageTray.js:1357
#: ../js/ui/messageTray.js:1229
msgid "Remove"
msgstr "ਹਟਾਓ"
#: ../js/ui/messageTray.js:1660
msgid "Notifications"
msgstr "ਨੋਟੀਫਿਕੇਸ਼ਨ"
#: ../js/ui/messageTray.js:1667
#: ../js/ui/messageTray.js:1513
msgid "Clear Messages"
msgstr "ਸੁਨੇਹੇ ਸਾਫ਼ ਕਰੋ"
#: ../js/ui/messageTray.js:1686
#: ../js/ui/messageTray.js:1540
msgid "Notification Settings"
msgstr "ਸੂਚਨਾ ਸੈਟਿੰਗ"
#: ../js/ui/messageTray.js:1739
#: ../js/ui/messageTray.js:1559
msgid "Tray Menu"
msgstr "ਟਰੇ ਮੇਨੂ"
#: ../js/ui/messageTray.js:1955
#: ../js/ui/messageTray.js:1775
msgid "No Messages"
msgstr "ਕੋਈ ਸੁਨੇਹਾ ਨਹੀਂ"
#: ../js/ui/messageTray.js:1993
#: ../js/ui/messageTray.js:1813
msgid "Message Tray"
msgstr "ਸੁਨੇਹਾ ਟਰੇ"
#: ../js/ui/messageTray.js:2977
#: ../js/ui/messageTray.js:2788
msgid "System Information"
msgstr "ਸਿਸਟਮ ਜਾਣਕਾਰੀ"
#: ../js/ui/notificationDaemon.js:510 ../src/shell-app.c:398
#: ../js/ui/notificationDaemon.js:629 ../src/shell-app.c:396
msgctxt "program"
msgid "Unknown"
msgstr "ਅਣਜਾਣ"
#: ../js/ui/overviewControls.js:488 ../js/ui/screenShield.js:153
#: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152
#, javascript-format
msgid "%d new message"
msgid_plural "%d new messages"
@ -1158,21 +1151,21 @@ msgstr "ਸੰਖੇਪ"
msgid "Type to search…"
msgstr "…ਲੱਭਣ ਲਈ ਲਿਖੋ"
#: ../js/ui/panel.js:516
#: ../js/ui/panel.js:518
msgid "Quit"
msgstr "ਬਾਹਰ"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". */
#: ../js/ui/panel.js:568
#: ../js/ui/panel.js:570
msgid "Activities"
msgstr "ਸਰਗਰਮੀਆਂ"
#: ../js/ui/panel.js:900
#: ../js/ui/panel.js:904
msgid "Top Bar"
msgstr "ਉੱਤਲੀ ਪੱਟੀ"
#: ../js/ui/popupMenu.js:260
#: ../js/ui/popupMenu.js:233
msgid "toggle-switch-us"
msgstr "toggle-switch-us"
@ -1186,30 +1179,30 @@ msgstr "ਬੰਦ ਕਰੋ"
#. Translators: This is a time format for a date in
#. long format */
#: ../js/ui/screenShield.js:89
#: ../js/ui/screenShield.js:88
msgid "%A, %B %d"
msgstr "%A, %d %B"
#: ../js/ui/screenShield.js:155
#: ../js/ui/screenShield.js:154
#, javascript-format
msgid "%d new notification"
msgid_plural "%d new notifications"
msgstr[0] "%d ਨਵਾਂ ਸੂਚਨਾ"
msgstr[1] "%d ਨਵੀਆਂ ਸੂਚਨਾਵਾਂ"
#: ../js/ui/screenShield.js:478 ../js/ui/status/system.js:342
#: ../js/ui/screenShield.js:477 ../js/ui/status/system.js:333
msgid "Lock"
msgstr "ਲਾਕ"
#: ../js/ui/screenShield.js:712
#: ../js/ui/screenShield.js:704
msgid "GNOME needs to lock the screen"
msgstr "ਗਨੋਮ ਨੂੰ ਸਕਰੀਨ ਲਾਕ ਕਰਨ ਦੀ ਲੋੜ ਹੈ"
#: ../js/ui/screenShield.js:839 ../js/ui/screenShield.js:1305
#: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1297
msgid "Unable to lock"
msgstr "ਅਣਲਾਕ ਕਰਨ ਲਈ ਅਸਮਰੱਥ"
#: ../js/ui/screenShield.js:840 ../js/ui/screenShield.js:1306
#: ../js/ui/screenShield.js:832 ../js/ui/screenShield.js:1298
msgid "Lock was blocked by an application"
msgstr "ਲਾਕ ਨੂੰ ਐਪਲੀਕੇਸ਼ਨ ਵਲੋਂ ਪਾਬੰਦੀ ਲਗਾਈ"
@ -1249,135 +1242,135 @@ msgstr "ਪਾਸਵਰਡ ਯਾਦ ਰੱਖੋ"
msgid "Accessibility"
msgstr "ਅਸੈੱਸਬਿਲਟੀ"
#: ../js/ui/status/accessibility.js:56
#: ../js/ui/status/accessibility.js:58
msgid "Zoom"
msgstr "ਜ਼ੂਮ"
#: ../js/ui/status/accessibility.js:63
#: ../js/ui/status/accessibility.js:65
msgid "Screen Reader"
msgstr "ਸਕਰੀਨ ਰੀਡਰ"
#: ../js/ui/status/accessibility.js:67
#: ../js/ui/status/accessibility.js:69
msgid "Screen Keyboard"
msgstr "ਸਕਰੀਨ ਕੀਬੋਰਡ"
#: ../js/ui/status/accessibility.js:71
#: ../js/ui/status/accessibility.js:73
msgid "Visual Alerts"
msgstr "ਦਿੱਖ ਚੇਤਾਵਨੀ"
#: ../js/ui/status/accessibility.js:74
#: ../js/ui/status/accessibility.js:76
msgid "Sticky Keys"
msgstr "ਸਟਿੱਕੀ ਸਵਿੱਚਾਂ"
#: ../js/ui/status/accessibility.js:77
#: ../js/ui/status/accessibility.js:79
msgid "Slow Keys"
msgstr "ਹੌਲੀ ਸਵਿੱਚਾਂ"
#: ../js/ui/status/accessibility.js:80
#: ../js/ui/status/accessibility.js:82
msgid "Bounce Keys"
msgstr "ਬਾਊਂਸ ਸਵਿੱਚਾਂ"
#: ../js/ui/status/accessibility.js:83
#: ../js/ui/status/accessibility.js:85
msgid "Mouse Keys"
msgstr "ਮਾਊਸ ਸਵਿੱਚਾਂ"
#: ../js/ui/status/accessibility.js:142
#: ../js/ui/status/accessibility.js:144
msgid "High Contrast"
msgstr "ਵੱਧ ਕਨਟਰਾਸਟ"
#: ../js/ui/status/accessibility.js:191
#: ../js/ui/status/accessibility.js:193
msgid "Large Text"
msgstr "ਵੱਡੇ ਅੱਖਰ"
#: ../js/ui/status/bluetooth.js:27 ../js/ui/status/bluetooth.js:62
#: ../js/ui/status/bluetooth.js:99 ../js/ui/status/bluetooth.js:127
#: ../js/ui/status/bluetooth.js:163 ../js/ui/status/bluetooth.js:194
#: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:63
#: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128
#: ../js/ui/status/bluetooth.js:164 ../js/ui/status/bluetooth.js:195
msgid "Bluetooth"
msgstr "ਬਲਿਊਟੁੱਥ"
#: ../js/ui/status/bluetooth.js:29 ../js/ui/status/network.js:132
#: ../js/ui/status/network.js:1099 ../js/ui/status/rfkill.js:46
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:1040 ../js/ui/status/rfkill.js:46
msgid "Turn Off"
msgstr "ਬੰਦ ਕਰੋ"
#: ../js/ui/status/bluetooth.js:32
#: ../js/ui/status/bluetooth.js:33
msgid "Bluetooth Settings"
msgstr "ਬਲਿਊਟੁੱਥ ਸੈਟਿੰਗ"
#: ../js/ui/status/bluetooth.js:57
#: ../js/ui/status/bluetooth.js:58
#, javascript-format
msgid "%d Connected Device"
msgid_plural "%d Connected Devices"
msgstr[0] "%d ਕੁਨੈਕਟ ਹੋਇਆ ਜੰਤਰ"
msgstr[1] "%d ਕੁਨੈਕਟ ਹੋਏ ਜੰਤਰ"
#: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128
#: ../js/ui/status/bluetooth.js:101 ../js/ui/status/bluetooth.js:129
#, javascript-format
msgid "Authorization request from %s"
msgstr "'%s' ਤੋਂ ਪਰਮਾਣਕਿਤਾ ਮੰਗ"
#: ../js/ui/status/bluetooth.js:106 ../js/ui/status/bluetooth.js:171
#: ../js/ui/status/bluetooth.js:202
#: ../js/ui/status/bluetooth.js:107 ../js/ui/status/bluetooth.js:172
#: ../js/ui/status/bluetooth.js:203
#, javascript-format
msgid "Device %s wants to pair with this computer"
msgstr "ਜੰਤਰ %s ਇਸ ਕੰਪਿਊਟਰ ਨਾਲ ਪੇਅਰ ਹੋਣਾ ਚਾਹੁੰਦਾ ਹੈ"
#: ../js/ui/status/bluetooth.js:108
#: ../js/ui/status/bluetooth.js:109
msgid "Allow"
msgstr "ਮਨਜ਼ੂਰ"
#: ../js/ui/status/bluetooth.js:109
#: ../js/ui/status/bluetooth.js:110
msgid "Deny"
msgstr "ਇਨਕਾਰ"
#: ../js/ui/status/bluetooth.js:134
#: ../js/ui/status/bluetooth.js:135
#, javascript-format
msgid "Device %s wants access to the service '%s'"
msgstr "ਜੰਤਰ %s ਸਰਵਿਸ '%s' ਨੂੰ ਵਰਤਣੀ ਚਾਹੁੰਦਾ ਹੈ।"
#: ../js/ui/status/bluetooth.js:136
#: ../js/ui/status/bluetooth.js:137
msgid "Always grant access"
msgstr "ਹਮੇਸ਼ਾ ਪਹੁੰਚ ਮਨਜ਼ੂਰ"
#: ../js/ui/status/bluetooth.js:137
#: ../js/ui/status/bluetooth.js:138
msgid "Grant this time only"
msgstr "ਕੇਵਲ ਇਸ ਸਮੇਂ ਹੀ ਮਨਜ਼ੂਰ"
#: ../js/ui/status/bluetooth.js:138
#: ../js/ui/status/bluetooth.js:139
msgid "Reject"
msgstr "ਨਾ-ਮਨਜ਼ੂਰ"
#. Translators: argument is the device short name */
#: ../js/ui/status/bluetooth.js:165
#: ../js/ui/status/bluetooth.js:166
#, javascript-format
msgid "Pairing confirmation for %s"
msgstr "%s ਲਈ ਪੇਅਰ ਕਰਨ ਦੀ ਪੁਸ਼ਟੀ"
#: ../js/ui/status/bluetooth.js:172
#: ../js/ui/status/bluetooth.js:173
#, javascript-format
msgid ""
"Please confirm whether the Passkey '%06d' matches the one on the device."
msgstr "ਪੁਸ਼ਟੀ ਕਰੋ ਜੀ ਕਿ ਪਾਸ-ਕੀ '%06d' ਜੰਤਰ ਉੱਤੇ ਮੌਜੂਦ ਪਿੰਨ ਨਾਲ ਮਿਲਦਾ ਹੈ।"
#. Translators: this is the verb, not the noun */
#: ../js/ui/status/bluetooth.js:175
#: ../js/ui/status/bluetooth.js:176
msgid "Matches"
msgstr "ਮਿਲਦਾ ਹੈ"
#: ../js/ui/status/bluetooth.js:176
#: ../js/ui/status/bluetooth.js:177
msgid "Does not match"
msgstr "ਮਿਲਦਾ ਨਹੀਂ ਹੈ"
#: ../js/ui/status/bluetooth.js:195
#: ../js/ui/status/bluetooth.js:196
#, javascript-format
msgid "Pairing request for %s"
msgstr "%s ਲਈ ਪੇਅਰ ਕਰਨ ਦੀ ਮੰਗ"
#: ../js/ui/status/bluetooth.js:203
#: ../js/ui/status/bluetooth.js:204
msgid "Please enter the PIN mentioned on the device."
msgstr "ਜੰਤਰ ਉੱਤੇ ਦਿੱਤਾ ਗਿਆ ਪਿੰਨ ਦਿਉ ਜੀ।"
#: ../js/ui/status/bluetooth.js:220
#: ../js/ui/status/bluetooth.js:221
msgid "OK"
msgstr "ਠੀਕ ਹੈ"
@ -1385,99 +1378,87 @@ msgstr "ਠੀਕ ਹੈ"
msgid "Brightness"
msgstr "ਚਮਕ"
#: ../js/ui/status/network.js:71
#: ../js/ui/status/network.js:72
msgid "<unknown>"
msgstr "<ਅਣਜਾਣ>"
#: ../js/ui/status/network.js:222 ../js/ui/status/network.js:379
#: ../js/ui/status/network.js:1120
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1055
msgid "Off"
msgstr "ਬੰਦ"
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:961
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "ਨੈੱਟਵਰਕ ਸੈਟਿੰਗ"
#. 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) */
#: ../js/ui/status/network.js:385
#: ../js/ui/status/network.js:364
msgid "unmanaged"
msgstr "ਬਿਨ-ਪਰਬੰਧ"
#: ../js/ui/status/network.js:387
#: ../js/ui/status/network.js:366
msgid "disconnecting..."
msgstr "ਡਿਸ-ਕੁਨੈਕਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..."
#: ../js/ui/status/network.js:393 ../js/ui/status/network.js:1174
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1106
msgid "connecting..."
msgstr "ਕੁਨੈਕਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..."
#. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:396 ../js/ui/status/network.js:1177
#: ../js/ui/status/network.js:375 ../js/ui/status/network.js:1109
msgid "authentication required"
msgstr "ਪਰਮਾਣਕਿਤਾ ਚਾਹੀਦੀ ਹੈ"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing */
#: ../js/ui/status/network.js:404
#: ../js/ui/status/network.js:383
msgid "firmware missing"
msgstr "ਫਿਰਮਵੇਅਰ ਮੌਜੂਦ ਨਹੀਂ ਹੈ"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage */
#: ../js/ui/status/network.js:408
#: ../js/ui/status/network.js:387
msgid "unavailable"
msgstr "ਨਾ-ਉਪਲੱਬਧ"
#: ../js/ui/status/network.js:410 ../js/ui/status/network.js:1179
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1111
msgid "connection failed"
msgstr "ਕੁਨੈਕਸ਼ਨ ਫੇਲ੍ਹ ਹੈ"
#: ../js/ui/status/network.js:426 ../js/ui/status/network.js:512
msgid "Mobile Broadband Settings"
msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਸੈਟਿੰਗ"
#: ../js/ui/status/network.js:468 ../js/ui/status/network.js:1118
msgid "Hardware Disabled"
msgstr "ਹਾਰਡਵੇਅਰ ਬੰਦ ਹੈ"
#: ../js/ui/status/network.js:707
#: ../js/ui/status/network.js:660
msgid "Wi-Fi Networks"
msgstr "ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ"
#: ../js/ui/status/network.js:709
#: ../js/ui/status/network.js:662
msgid "Select a network"
msgstr "ਨੈੱਟਵਰਕ ਚੁਣੋ"
#: ../js/ui/status/network.js:733
#: ../js/ui/status/network.js:686
msgid "No Networks"
msgstr "ਕੋਈ ਨੈੱਟਵਰਕ ਨਹੀਂ"
#: ../js/ui/status/network.js:1005
#: ../js/ui/status/network.js:955
msgid "Select Network"
msgstr "ਨੈੱਟਵਰਕ ਚੁਣੋ"
#: ../js/ui/status/network.js:1011
msgid "Wi-Fi Settings"
msgstr "ਵਾਈ-ਫਾਈ ਸੈਟਿੰਗ"
#: ../js/ui/status/network.js:1099
#: ../js/ui/status/network.js:1040
msgid "Turn On"
msgstr "ਚਾਲੂ ਕਰੋ"
#: ../js/ui/status/network.js:1122
msgid "Not Connected"
msgstr "ਕੁਨੈਕਟਡ ਨਹੀਂ"
#: ../js/ui/status/network.js:1242
#: ../js/ui/status/network.js:1173
msgid "VPN"
msgstr "VPN"
#: ../js/ui/status/network.js:1382
#: ../js/ui/status/network.js:1313
msgid "Network Manager"
msgstr "ਨੈੱਟਵਰਕ ਮੈਨੇਜਰ"
#: ../js/ui/status/network.js:1421
#: ../js/ui/status/network.js:1352
msgid "Connection failed"
msgstr "ਕੁਨੈਕਸ਼ਨ ਫੇਲ੍ਹ ਹੈ"
#: ../js/ui/status/network.js:1422
#: ../js/ui/status/network.js:1353
msgid "Activation of network connection failed"
msgstr "ਨੈੱਟਵਰਕ ਕੁਨੈਕਸ਼ਨ ਦੀ ਐਕਟੀਵੇਸ਼ਨ ਫੇਲ੍ਹ ਹੋਈ"
@ -1499,11 +1480,13 @@ msgstr "…ਅੰਦਾਜ਼ਾ ਲਾਇਆ ਜਾ ਰਿਹਾ ਹੈ"
#: ../js/ui/status/power.js:77
#, javascript-format
#| msgid "%d\\u2236%02d Remaining (%d%%)"
msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d ਬਾਕੀ (%d%%)"
#: ../js/ui/status/power.js:82
#, javascript-format
#| msgid "%d\\u2236%02d Until Full (%d%%)"
msgid "%d%02d Until Full (%d%%)"
msgstr "%d%02d ਪੂਰੀ ਹੋਣ ਲਈ (%d%%)"
@ -1515,27 +1498,23 @@ msgstr "ਏਅਰਪਲੇਨ ਮੋਡ"
msgid "On"
msgstr "ਚਾਲੂ"
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "ਨੈੱਟਵਰਕ ਸੈਟਿੰਗ"
#: ../js/ui/status/system.js:314
#: ../js/ui/status/system.js:305
msgid "Switch User"
msgstr "ਯੂਜ਼ਰ ਬਦਲੋ"
#: ../js/ui/status/system.js:319
#: ../js/ui/status/system.js:310
msgid "Log Out"
msgstr "ਲਾਗ ਆਉਟ"
#: ../js/ui/status/system.js:338
#: ../js/ui/status/system.js:329
msgid "Orientation Lock"
msgstr "ਸਥਿਤੀ ਲਾਕ"
#: ../js/ui/status/system.js:346
#: ../js/ui/status/system.js:337
msgid "Suspend"
msgstr "ਸਸਪੈਂਡ"
#: ../js/ui/status/system.js:349
#: ../js/ui/status/system.js:340
msgid "Power Off"
msgstr "ਬੰਦ ਕਰੋ"
@ -1650,7 +1629,7 @@ msgstr "ਲਾਗਇਨ ਸਕਰੀਨ ਉੱਤੇ ਖਾਸ ਮੋਡ ਜਿ
msgid "List possible modes"
msgstr "ਸੰਭਵ ਮੋਡ ਵੇਖਾਓ"
#: ../src/shell-app.c:646
#: ../src/shell-app.c:644
#, c-format
msgid "Failed to launch '%s'"
msgstr "'%s' ਚਲਾਉਣ ਲਈ ਫੇਲ੍ਹ"
@ -1824,6 +1803,9 @@ msgstr "ਪਰਮਾਣਕਿਤਾ ਡਾਈਲਾਗ ਯੂਜ਼ਰ ਵਲੋ
#~ msgid "Set Up a New Device…"
#~ msgstr "…ਨਵਾਂ ਜੰਤਰ ਸੈਟਅੱਪ ਕਰੋ"
#~ msgid "hardware disabled"
#~ msgstr "ਹਾਰਡਵੇਅਰ ਬੰਦ ਹੈ"
#~ msgid "Connection"
#~ msgstr "ਕੁਨੈਕਸ਼ਨ"
@ -1861,6 +1843,9 @@ msgstr "ਪਰਮਾਣਕਿਤਾ ਡਾਈਲਾਗ ਯੂਜ਼ਰ ਵਲੋ
#~ msgid "Auto Ethernet"
#~ msgstr "ਆਟੋ ਈਥਰਨੈੱਟ"
#~ msgid "Mobile broadband"
#~ msgstr "ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ"
#~ msgid "Auto broadband"
#~ msgstr "ਆਟੋ ਬਰਾਡਬੈਂਡ"
@ -1958,6 +1943,9 @@ msgstr "ਪਰਮਾਣਕਿਤਾ ਡਾਈਲਾਗ ਯੂਜ਼ਰ ਵਲੋ
#~ msgid "Idle"
#~ msgstr "ਵੇਹਲਾ"
#~ msgid "Notifications"
#~ msgstr "ਨੋਟੀਫਿਕੇਸ਼ਨ"
#~ msgid "Your chat status will be set to busy"
#~ msgstr "ਤੁਹਾਡੀ ਚੈਟ ਹਾਲਤ ਰੁੱਝੇ ਵਜੋਂ ਸੈੱਟ ਕੀਤੀ ਜਾਵੇਗੀ"

113
po/pl.po
View File

@ -12,8 +12,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-10-10 23:41+0200\n"
"PO-Revision-Date: 2013-10-10 23:42+0200\n"
"POT-Creation-Date: 2013-09-23 20:34+0200\n"
"PO-Revision-Date: 2013-09-23 20:37+0200\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <gnomepl@aviary.pl>\n"
"Language: pl\n"
@ -289,7 +289,7 @@ msgstr ""
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:728
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:686
msgid "Cancel"
msgstr "Anuluj"
@ -337,15 +337,15 @@ msgstr "Błąd uwierzytelniania"
msgid "(or swipe finger)"
msgstr "(lub przeciągnięcie palca)"
#: ../js/misc/util.js:115
#: ../js/misc/util.js:98
msgid "Command not found"
msgstr "Nie odnaleziono polecenia"
#: ../js/misc/util.js:148
#: ../js/misc/util.js:131
msgid "Could not parse command:"
msgstr "Nie można przetworzyć polecenia:"
#: ../js/misc/util.js:156
#: ../js/misc/util.js:139
#, javascript-format
msgid "Execution of '%s' failed:"
msgstr "Wykonanie polecenia \"%s\" się nie powiodło:"
@ -384,7 +384,7 @@ msgstr "Program %s został dodany do ulubionych."
msgid "%s has been removed from your favorites."
msgstr "Program %s został usunięty z ulubionych."
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:808
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:807
#: ../js/ui/status/system.js:325
msgid "Settings"
msgstr "Ustawienia"
@ -575,16 +575,16 @@ msgstr "Otwórz za pomocą %s"
msgid "Eject"
msgstr "Wysuń"
#: ../js/ui/components/keyring.js:89 ../js/ui/components/polkitAgent.js:280
#: ../js/ui/components/keyring.js:91 ../js/ui/components/polkitAgent.js:280
msgid "Password:"
msgstr "Hasło:"
#: ../js/ui/components/keyring.js:108
#: ../js/ui/components/keyring.js:110
msgid "Type again:"
msgstr "Proszę wpisać ponownie:"
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:133
#: ../js/ui/status/network.js:296 ../js/ui/status/network.js:731
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:689
msgid "Connect"
msgstr "Połącz"
@ -1087,12 +1087,9 @@ msgstr "Wyświetl błędy"
msgid "Enabled"
msgstr "Włączone"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode) */
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:765 ../js/ui/status/network.js:473
#: ../src/gvc/gvc-mixer-control.c:1830
#: ../js/ui/lookingGlass.js:765 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled"
msgstr "Wyłączone"
@ -1124,31 +1121,27 @@ msgstr "Otwórz"
msgid "Remove"
msgstr "Usuń"
#: ../js/ui/messageTray.js:1530
msgid "Notifications"
msgstr "Powiadomienia"
#: ../js/ui/messageTray.js:1537
#: ../js/ui/messageTray.js:1513
msgid "Clear Messages"
msgstr "Wyczyść wiadomości"
#: ../js/ui/messageTray.js:1564
#: ../js/ui/messageTray.js:1540
msgid "Notification Settings"
msgstr "Ustawienia powiadomień"
#: ../js/ui/messageTray.js:1617
#: ../js/ui/messageTray.js:1559
msgid "Tray Menu"
msgstr "Menu obszaru powiadamiania"
#: ../js/ui/messageTray.js:1833
#: ../js/ui/messageTray.js:1775
msgid "No Messages"
msgstr "Brak wiadomości"
#: ../js/ui/messageTray.js:1871
#: ../js/ui/messageTray.js:1813
msgid "Message Tray"
msgstr "Obszar powiadamiania"
#: ../js/ui/messageTray.js:2846
#: ../js/ui/messageTray.js:2788
msgid "System Information"
msgstr "Informacje systemowe"
@ -1191,7 +1184,7 @@ msgstr "Zakończ"
msgid "Activities"
msgstr "Podgląd"
#: ../js/ui/panel.js:904
#: ../js/ui/panel.js:903
msgid "Top Bar"
msgstr "Górny pasek"
@ -1237,11 +1230,11 @@ msgstr "Nie można zablokować"
msgid "Lock was blocked by an application"
msgstr "Blokowanie zostało zablokowane przez program"
#: ../js/ui/searchDisplay.js:448
#: ../js/ui/searchDisplay.js:447
msgid "Searching…"
msgstr "Wyszukiwanie…"
#: ../js/ui/searchDisplay.js:492
#: ../js/ui/searchDisplay.js:491
msgid "No results."
msgstr "Brak wyników."
@ -1319,8 +1312,8 @@ msgstr "Duży tekst"
msgid "Bluetooth"
msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:133
#: ../js/ui/status/network.js:1085 ../js/ui/status/rfkill.js:46
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:1034 ../js/ui/status/rfkill.js:46
msgid "Turn Off"
msgstr "Wyłącz"
@ -1414,95 +1407,83 @@ msgstr "Jasność"
msgid "<unknown>"
msgstr "<nieznane>"
#: ../js/ui/status/network.js:223 ../js/ui/status/network.js:380
#: ../js/ui/status/network.js:1106
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1049
msgid "Off"
msgstr "Wyłączone"
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:955
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Ustawienia sieci"
#. 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) */
#: ../js/ui/status/network.js:386
#: ../js/ui/status/network.js:364
msgid "unmanaged"
msgstr "niezarządzane"
#: ../js/ui/status/network.js:388
#: ../js/ui/status/network.js:366
msgid "disconnecting..."
msgstr "rozłączanie…"
#: ../js/ui/status/network.js:394 ../js/ui/status/network.js:1160
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1100
msgid "connecting..."
msgstr "łączenie…"
#. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:397 ../js/ui/status/network.js:1163
#: ../js/ui/status/network.js:375 ../js/ui/status/network.js:1103
msgid "authentication required"
msgstr "wymagane jest uwierzytelnienie"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing */
#: ../js/ui/status/network.js:405
#: ../js/ui/status/network.js:383
msgid "firmware missing"
msgstr "brak oprogramowania sprzętowego"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage */
#: ../js/ui/status/network.js:409
#: ../js/ui/status/network.js:387
msgid "unavailable"
msgstr "niedostępne"
#: ../js/ui/status/network.js:411 ../js/ui/status/network.js:1165
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1105
msgid "connection failed"
msgstr "połączenie się nie powiodło"
#: ../js/ui/status/network.js:427 ../js/ui/status/network.js:513
msgid "Mobile Broadband Settings"
msgstr "Ustawienia sieci komórkowej"
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1104
msgid "Hardware Disabled"
msgstr "Sprzęt jest wyłączony"
#: ../js/ui/status/network.js:696
#: ../js/ui/status/network.js:654
msgid "Wi-Fi Networks"
msgstr "Sieci Wi-Fi"
#: ../js/ui/status/network.js:698
#: ../js/ui/status/network.js:656
msgid "Select a network"
msgstr "Wybór sieci"
#: ../js/ui/status/network.js:722
#: ../js/ui/status/network.js:680
msgid "No Networks"
msgstr "Brak sieci"
#: ../js/ui/status/network.js:991
#: ../js/ui/status/network.js:949
msgid "Select Network"
msgstr "Wybierz sieć"
#: ../js/ui/status/network.js:997
msgid "Wi-Fi Settings"
msgstr "Ustawienia sieci Wi-Fi"
#: ../js/ui/status/network.js:1085
#: ../js/ui/status/network.js:1034
msgid "Turn On"
msgstr "Włącz"
#: ../js/ui/status/network.js:1108
msgid "Not Connected"
msgstr "Nie połączono"
#: ../js/ui/status/network.js:1228
#: ../js/ui/status/network.js:1167
msgid "VPN"
msgstr "VPN"
#: ../js/ui/status/network.js:1368
#: ../js/ui/status/network.js:1307
msgid "Network Manager"
msgstr "Menedżer sieci"
#: ../js/ui/status/network.js:1407
#: ../js/ui/status/network.js:1346
msgid "Connection failed"
msgstr "Połączenie się nie powiodło"
#: ../js/ui/status/network.js:1408
#: ../js/ui/status/network.js:1347
msgid "Activation of network connection failed"
msgstr "Aktywacja połączenia sieciowego się nie powiodła"
@ -1540,10 +1521,6 @@ msgstr "Tryb samolotowy"
msgid "On"
msgstr "Włączone"
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Ustawienia sieci"
#: ../js/ui/status/system.js:305
msgid "Switch User"
msgstr "Przełącz użytkownika"

1128
po/pt.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1162
po/ru.po

File diff suppressed because it is too large Load Diff

337
po/sk.po
View File

@ -10,8 +10,8 @@ msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2013-12-07 09:13+0000\n"
"PO-Revision-Date: 2013-10-21 10:59+0100\n"
"POT-Creation-Date: 2013-09-29 10:26+0000\n"
"PO-Revision-Date: 2013-09-29 17:38+0100\n"
"Last-Translator: Dušan Kazik <prescott66@gmail.com>\n"
"Language-Team: Slovak <gnome-sk-list@gnome.org>\n"
"Language: sk\n"
@ -291,23 +291,23 @@ msgstr ""
msgid "Select an extension to configure using the combobox above."
msgstr "Použitím ponuky vyberte rozšírenie na nastavenie"
#: ../js/gdm/authPrompt.js:146 ../js/ui/components/networkAgent.js:136
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:739
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:692
msgid "Cancel"
msgstr "Zrušiť"
#: ../js/gdm/authPrompt.js:168 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:167 ../js/gdm/authPrompt.js:215
msgid "Next"
msgstr "Ďalej"
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59
msgid "Unlock"
msgstr "Odomknúť"
#: ../js/gdm/authPrompt.js:214
#: ../js/gdm/authPrompt.js:213
msgctxt "button"
msgid "Sign In"
msgstr "Prihlásiť sa"
@ -336,23 +336,23 @@ msgstr "Používateľské meno: "
msgid "Login Window"
msgstr "Prihlasovacie okno"
#: ../js/gdm/util.js:321
#: ../js/gdm/util.js:306
msgid "Authentication error"
msgstr "Chyba pri overovaní totožnosti"
#: ../js/gdm/util.js:451
#: ../js/gdm/util.js:436
msgid "(or swipe finger)"
msgstr "(alebo prejdite prstom)"
#: ../js/misc/util.js:115
#: ../js/misc/util.js:98
msgid "Command not found"
msgstr "Príkaz nebol nájdený"
#: ../js/misc/util.js:148
#: ../js/misc/util.js:131
msgid "Could not parse command:"
msgstr "Nepodarilo sa analyzovať príkaz:"
#: ../js/misc/util.js:156
#: ../js/misc/util.js:139
#, javascript-format
msgid "Execution of '%s' failed:"
msgstr "Spustenie „%s“ zlyhalo:"
@ -369,15 +369,15 @@ msgstr "Často používané"
msgid "All"
msgstr "Všetky"
#: ../js/ui/appDisplay.js:1525
#: ../js/ui/appDisplay.js:1514
msgid "New Window"
msgstr "Nové okno"
#: ../js/ui/appDisplay.js:1528 ../js/ui/dash.js:284
#: ../js/ui/appDisplay.js:1517 ../js/ui/dash.js:284
msgid "Remove from Favorites"
msgstr "Odstrániť z obľúbených"
#: ../js/ui/appDisplay.js:1529
#: ../js/ui/appDisplay.js:1518
msgid "Add to Favorites"
msgstr "Pridať do obľúbených"
@ -391,8 +391,8 @@ msgstr "Program %s bol pridaný medzi obľúbené."
msgid "%s has been removed from your favorites."
msgstr "Program %s bol odstránený z obľúbených."
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:806
#: ../js/ui/status/system.js:334
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:808
#: ../js/ui/status/system.js:325
msgid "Settings"
msgstr "Nastavenia"
@ -589,16 +589,16 @@ msgstr "Otvoriť pomocou programu %s"
msgid "Eject"
msgstr "Vysunúť"
#: ../js/ui/components/keyring.js:89 ../js/ui/components/polkitAgent.js:280
#: ../js/ui/components/keyring.js:91 ../js/ui/components/polkitAgent.js:280
msgid "Password:"
msgstr "Heslo:"
#: ../js/ui/components/keyring.js:108
#: ../js/ui/components/keyring.js:110
msgid "Type again:"
msgstr "Zadajte znovu:"
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:132
#: ../js/ui/status/network.js:295 ../js/ui/status/network.js:742
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:695
msgid "Connect"
msgstr "Pripojiť"
@ -657,7 +657,7 @@ msgstr "Požaduje sa kód PIN"
#: ../js/ui/components/networkAgent.js:328
msgid "PIN code is needed for the mobile broadband device"
msgstr "Pre zariadenie mobilnej širokopásmovej siete je potrebný kód PIN"
msgstr "Pre zariadenie mobilnej siete je potrebný kód PIN"
#: ../js/ui/components/networkAgent.js:329
msgid "PIN: "
@ -665,7 +665,7 @@ msgstr "PIN: "
#: ../js/ui/components/networkAgent.js:335
msgid "Mobile broadband network password"
msgstr "Heslo k mobilnej širokopásmovej sieti"
msgstr "Heslo k mobilnej sieti"
#: ../js/ui/components/networkAgent.js:336
#, javascript-format
@ -693,60 +693,60 @@ msgstr "Overiť totožnosť"
msgid "Sorry, that didn't work. Please try again."
msgstr "Prepáčte, ale nezabralo to. Skúste to, prosím, znova."
#: ../js/ui/components/telepathyClient.js:237
#: ../js/ui/components/telepathyClient.js:238
msgid "Invitation"
msgstr "Pozvánka"
#: ../js/ui/components/telepathyClient.js:297
#: ../js/ui/components/telepathyClient.js:298
msgid "Call"
msgstr "Hovor"
#: ../js/ui/components/telepathyClient.js:313
#: ../js/ui/components/telepathyClient.js:314
msgid "File Transfer"
msgstr "Prenos súborov"
#: ../js/ui/components/telepathyClient.js:417
#: ../js/ui/components/telepathyClient.js:418
msgid "Chat"
msgstr "Rozhovor"
#: ../js/ui/components/telepathyClient.js:479
#: ../js/ui/components/telepathyClient.js:480
msgid "Unmute"
msgstr "Obnoviť zvuk"
#: ../js/ui/components/telepathyClient.js:479
#: ../js/ui/components/telepathyClient.js:480
msgid "Mute"
msgstr "Stlmiť"
#. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30"*/
#: ../js/ui/components/telepathyClient.js:941
#: ../js/ui/components/telepathyClient.js:942
msgid "<b>Yesterday</b>, <b>%H:%M</b>"
msgstr "<b>Včera</b> o <b>%H:%M</b>"
#. Translators: this is the week day name followed by a time string. i.e. "Monday, 14:30*/
#: ../js/ui/components/telepathyClient.js:947
#: ../js/ui/components/telepathyClient.js:948
msgid "<b>%A</b>, <b>%H:%M</b>"
msgstr "v <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"*/
#: ../js/ui/components/telepathyClient.js:952
#: ../js/ui/components/telepathyClient.js:953
msgid "<b>%B</b> <b>%d</b>, <b>%H:%M</b>"
msgstr "<b>%e.</b> <b>%B</b> o <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"*/
#: ../js/ui/components/telepathyClient.js:956
#: ../js/ui/components/telepathyClient.js:957
msgid "<b>%B</b> <b>%d</b> <b>%Y</b>, <b>%H:%M</b> "
msgstr "<b>%e.</b> <b>%B</b> <b>%Y</b> o <b>%H:%M</b>"
#. Translators: this is the other person changing their old IM name to their new
#. IM name. */
#: ../js/ui/components/telepathyClient.js:985
#: ../js/ui/components/telepathyClient.js:986
#, javascript-format
msgid "%s is now known as %s"
msgstr "Kontakt %s odteraz vystupuje ako %s"
#. translators: argument is a room name like
#. * room@jabber.org for example. */
#: ../js/ui/components/telepathyClient.js:1088
#: ../js/ui/components/telepathyClient.js:1089
#, javascript-format
msgid "Invitation to %s"
msgstr "Pozvánka do %s"
@ -754,38 +754,38 @@ msgstr "Pozvánka do %s"
#. translators: first argument is the name of a contact and the second
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
#. * for example. */
#: ../js/ui/components/telepathyClient.js:1096
#: ../js/ui/components/telepathyClient.js:1097
#, javascript-format
msgid "%s is inviting you to join %s"
msgstr "Kontakt %s vás pozýva aby ste sa pridali do %s"
#: ../js/ui/components/telepathyClient.js:1098
#: ../js/ui/components/telepathyClient.js:1139
#: ../js/ui/components/telepathyClient.js:1179
#: ../js/ui/components/telepathyClient.js:1242
#: ../js/ui/components/telepathyClient.js:1099
#: ../js/ui/components/telepathyClient.js:1140
#: ../js/ui/components/telepathyClient.js:1180
#: ../js/ui/components/telepathyClient.js:1243
msgid "Decline"
msgstr "Odmietnuť"
#: ../js/ui/components/telepathyClient.js:1099
#: ../js/ui/components/telepathyClient.js:1180
#: ../js/ui/components/telepathyClient.js:1243
#: ../js/ui/components/telepathyClient.js:1100
#: ../js/ui/components/telepathyClient.js:1181
#: ../js/ui/components/telepathyClient.js:1244
msgid "Accept"
msgstr "Prijať"
#. translators: argument is a contact name like Alice for example. */
#: ../js/ui/components/telepathyClient.js:1129
#: ../js/ui/components/telepathyClient.js:1130
#, javascript-format
msgid "Video call from %s"
msgstr "Videohovor od kontaktu %s"
#. translators: argument is a contact name like Alice for example. */
#: ../js/ui/components/telepathyClient.js:1132
#: ../js/ui/components/telepathyClient.js:1133
#, javascript-format
msgid "Call from %s"
msgstr "Hovor od kontaktu %s"
#. translators: this is a button label (verb), not a noun */
#: ../js/ui/components/telepathyClient.js:1141
#: ../js/ui/components/telepathyClient.js:1142
msgid "Answer"
msgstr "Prijať hovor"
@ -794,110 +794,110 @@ msgstr "Prijať hovor"
#. * file name. The string will be something
#. * like: "Alice is sending you test.ogg"
#. */
#: ../js/ui/components/telepathyClient.js:1173
#: ../js/ui/components/telepathyClient.js:1174
#, javascript-format
msgid "%s is sending you %s"
msgstr "Kontakt %s vám posiela %s"
#. To translators: The parameter is the contact's alias */
#: ../js/ui/components/telepathyClient.js:1208
#: ../js/ui/components/telepathyClient.js:1209
#, javascript-format
msgid "%s would like permission to see when you are online"
msgstr "Kontakt %s by chcel získať oprávnenie vidieť, kedy ste pripojený"
#: ../js/ui/components/telepathyClient.js:1300
#: ../js/ui/components/telepathyClient.js:1301
msgid "Network error"
msgstr "Chyba siete"
#: ../js/ui/components/telepathyClient.js:1302
#: ../js/ui/components/telepathyClient.js:1303
msgid "Authentication failed"
msgstr "Overenie totožnosti zlyhalo"
#: ../js/ui/components/telepathyClient.js:1304
#: ../js/ui/components/telepathyClient.js:1305
msgid "Encryption error"
msgstr "Chyba šifrovania"
#: ../js/ui/components/telepathyClient.js:1306
#: ../js/ui/components/telepathyClient.js:1307
msgid "Certificate not provided"
msgstr "Neposkytnutý certifikát"
#: ../js/ui/components/telepathyClient.js:1308
#: ../js/ui/components/telepathyClient.js:1309
msgid "Certificate untrusted"
msgstr "Nedôveryhodný certifikát"
#: ../js/ui/components/telepathyClient.js:1310
#: ../js/ui/components/telepathyClient.js:1311
msgid "Certificate expired"
msgstr "Certifikát s ukončenou platnosťou"
#: ../js/ui/components/telepathyClient.js:1312
#: ../js/ui/components/telepathyClient.js:1313
msgid "Certificate not activated"
msgstr "Neaktivovaný certifikát"
#: ../js/ui/components/telepathyClient.js:1314
#: ../js/ui/components/telepathyClient.js:1315
msgid "Certificate hostname mismatch"
msgstr "Certifikát s nesúhlasným názvom hostiteľa"
#: ../js/ui/components/telepathyClient.js:1316
#: ../js/ui/components/telepathyClient.js:1317
msgid "Certificate fingerprint mismatch"
msgstr "Certifikát s nesúhlasným odtlačkom"
#: ../js/ui/components/telepathyClient.js:1318
#: ../js/ui/components/telepathyClient.js:1319
msgid "Certificate self-signed"
msgstr "Sebou podpísaný certifikát"
#: ../js/ui/components/telepathyClient.js:1320
#: ../js/ui/components/telepathyClient.js:1321
msgid "Status is set to offline"
msgstr "Stav je nastavený na odhlásený"
#: ../js/ui/components/telepathyClient.js:1322
#: ../js/ui/components/telepathyClient.js:1323
msgid "Encryption is not available"
msgstr "Šifrovanie nie je dostupné"
#: ../js/ui/components/telepathyClient.js:1324
#: ../js/ui/components/telepathyClient.js:1325
msgid "Certificate is invalid"
msgstr "Certifikát je neplatný"
#: ../js/ui/components/telepathyClient.js:1326
#: ../js/ui/components/telepathyClient.js:1327
msgid "Connection has been refused"
msgstr "Pripojenie bolo odmietnuté"
#: ../js/ui/components/telepathyClient.js:1328
#: ../js/ui/components/telepathyClient.js:1329
msgid "Connection can't be established"
msgstr "Nedá sa nadviazať spojenie"
#: ../js/ui/components/telepathyClient.js:1330
#: ../js/ui/components/telepathyClient.js:1331
msgid "Connection has been lost"
msgstr "Spojenie sa stratilo"
#: ../js/ui/components/telepathyClient.js:1332
#: ../js/ui/components/telepathyClient.js:1333
msgid "This account is already connected to the server"
msgstr "Tento účet je už pripojený k serveru"
#: ../js/ui/components/telepathyClient.js:1334
#: ../js/ui/components/telepathyClient.js:1335
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr "Pripojenie bolo nahradené novým, ktoré používa rovnaký zdroj"
#: ../js/ui/components/telepathyClient.js:1336
#: ../js/ui/components/telepathyClient.js:1337
msgid "The account already exists on the server"
msgstr "Účet na serveri už existuje"
#: ../js/ui/components/telepathyClient.js:1338
#: ../js/ui/components/telepathyClient.js:1339
msgid "Server is currently too busy to handle the connection"
msgstr "Server je momentálne príliš zaneprázdnený na zvládnutie pripojenia"
#: ../js/ui/components/telepathyClient.js:1340
#: ../js/ui/components/telepathyClient.js:1341
msgid "Certificate has been revoked"
msgstr "Certifikát bol zrušený"
#: ../js/ui/components/telepathyClient.js:1342
#: ../js/ui/components/telepathyClient.js:1343
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"Šifrovací algoritmus používaný certifikátom nie je bezpečný alebo je "
"kryptograficky slabý"
#: ../js/ui/components/telepathyClient.js:1344
#: ../js/ui/components/telepathyClient.js:1345
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@ -905,22 +905,22 @@ msgstr ""
"Dĺžka certifikátu servera, alebo hĺbka reťazca certifikátu servera presahuje "
"limit stanovený kryptografickou knižnicou."
#: ../js/ui/components/telepathyClient.js:1346
#: ../js/ui/components/telepathyClient.js:1347
msgid "Internal error"
msgstr "Vnútorná chyba"
#. translators: argument is the account name, like
#. * name@jabber.org for example. */
#: ../js/ui/components/telepathyClient.js:1356
#: ../js/ui/components/telepathyClient.js:1357
#, javascript-format
msgid "Unable to connect to %s"
msgstr "Nepodarilo sa pripojiť účet %s"
#: ../js/ui/components/telepathyClient.js:1361
#: ../js/ui/components/telepathyClient.js:1362
msgid "View account"
msgstr "Zobraziť účet"
#: ../js/ui/components/telepathyClient.js:1400
#: ../js/ui/components/telepathyClient.js:1401
msgid "Unknown reason"
msgstr "Neznámy dôvod"
@ -1101,12 +1101,9 @@ msgstr "Zobraziť chyby"
msgid "Enabled"
msgstr "Povolené"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode) */
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:765 ../js/ui/status/network.js:472
#: ../src/gvc/gvc-mixer-control.c:1830
#: ../js/ui/lookingGlass.js:765 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled"
msgstr "Zakázané"
@ -1131,51 +1128,47 @@ msgstr "Zobraziť zdroj"
msgid "Web Page"
msgstr "Webová stránka"
#: ../js/ui/messageTray.js:1347
#: ../js/ui/messageTray.js:1222
msgid "Open"
msgstr "Otvoriť"
#: ../js/ui/messageTray.js:1354
#: ../js/ui/messageTray.js:1229
msgid "Remove"
msgstr "Odstrániť"
#: ../js/ui/messageTray.js:1657
msgid "Notifications"
msgstr "Oznámenia"
#: ../js/ui/messageTray.js:1664
#: ../js/ui/messageTray.js:1513
msgid "Clear Messages"
msgstr "Vymazať správy"
#: ../js/ui/messageTray.js:1683
#: ../js/ui/messageTray.js:1540
msgid "Notification Settings"
msgstr "Nastavenia oznámení"
# MČ" zd sa mi to čudné. tuším som videl preklady „oznamovacia oblasť“, čo mi viac sedí. Toto je trošku akoby zavádzajúce, ale možno to s okolím ozrejmuje výsledok. Možno by som tam ponechal len „ponuka“ ak akolie jednoznačne naznačuje, že ide o „lištu správ“
#: ../js/ui/messageTray.js:1736
#: ../js/ui/messageTray.js:1559
msgid "Tray Menu"
msgstr "Ponuka v lište"
#: ../js/ui/messageTray.js:1952
#: ../js/ui/messageTray.js:1775
msgid "No Messages"
msgstr "Žiadne správy"
# DK: zvazoval som pouzit "Panel správ"
# neviem co bude vhodnejsie ako preklad "tray"
#: ../js/ui/messageTray.js:1990
#: ../js/ui/messageTray.js:1813
msgid "Message Tray"
msgstr "Lišta správ"
#: ../js/ui/messageTray.js:2974
#: ../js/ui/messageTray.js:2788
msgid "System Information"
msgstr "Informácie o systéme"
#: ../js/ui/notificationDaemon.js:510 ../src/shell-app.c:396
#: ../js/ui/notificationDaemon.js:629 ../src/shell-app.c:396
msgctxt "program"
msgid "Unknown"
msgstr "Neznámy"
#: ../js/ui/overviewControls.js:488 ../js/ui/screenShield.js:153
#: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152
#, javascript-format
msgid "%d new message"
msgid_plural "%d new messages"
@ -1200,21 +1193,21 @@ msgstr "Prehľad"
msgid "Type to search…"
msgstr "Zadajte text na vyhľadanie…"
#: ../js/ui/panel.js:516
#: ../js/ui/panel.js:518
msgid "Quit"
msgstr "Ukončiť"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". */
#: ../js/ui/panel.js:568
#: ../js/ui/panel.js:570
msgid "Activities"
msgstr "Aktivity"
#: ../js/ui/panel.js:900
#: ../js/ui/panel.js:904
msgid "Top Bar"
msgstr "Horná lišta"
#: ../js/ui/popupMenu.js:260
#: ../js/ui/popupMenu.js:233
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
@ -1231,11 +1224,11 @@ msgstr "Zavrieť"
# v ostatnych retazcoch je pouzite %e, tak to bude asi OK
#. Translators: This is a time format for a date in
#. long format */
#: ../js/ui/screenShield.js:89
#: ../js/ui/screenShield.js:88
msgid "%A, %B %d"
msgstr "%A, %e. %B"
#: ../js/ui/screenShield.js:155
#: ../js/ui/screenShield.js:154
#, javascript-format
msgid "%d new notification"
msgid_plural "%d new notifications"
@ -1243,19 +1236,19 @@ msgstr[0] "%d nových oznámení"
msgstr[1] "%d nové oznámenie"
msgstr[2] "%d nové oznámenia"
#: ../js/ui/screenShield.js:478 ../js/ui/status/system.js:342
#: ../js/ui/screenShield.js:477 ../js/ui/status/system.js:333
msgid "Lock"
msgstr "Uzamknúť"
#: ../js/ui/screenShield.js:712
#: ../js/ui/screenShield.js:704
msgid "GNOME needs to lock the screen"
msgstr "Prostredie GNOME vyžaduje uzamknutie obrazovky"
#: ../js/ui/screenShield.js:839 ../js/ui/screenShield.js:1305
#: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1297
msgid "Unable to lock"
msgstr "Nepodarilo sa uzamknúť obrazovku"
#: ../js/ui/screenShield.js:840 ../js/ui/screenShield.js:1306
#: ../js/ui/screenShield.js:832 ../js/ui/screenShield.js:1298
msgid "Lock was blocked by an application"
msgstr "Uzamknutie bolo zablokované aplikáciou"
@ -1295,65 +1288,65 @@ msgstr "Zapamätať heslo"
msgid "Accessibility"
msgstr "Zjednodušenie ovládania"
#: ../js/ui/status/accessibility.js:56
#: ../js/ui/status/accessibility.js:58
msgid "Zoom"
msgstr "Lupa"
#: ../js/ui/status/accessibility.js:63
#: ../js/ui/status/accessibility.js:65
msgid "Screen Reader"
msgstr "Čítačka obrazovky"
#: ../js/ui/status/accessibility.js:67
#: ../js/ui/status/accessibility.js:69
msgid "Screen Keyboard"
msgstr "Klávesnica na obrazovke"
#: ../js/ui/status/accessibility.js:71
#: ../js/ui/status/accessibility.js:73
msgid "Visual Alerts"
msgstr "Vizuálne varovania"
# z gnome control center
#: ../js/ui/status/accessibility.js:74
#: ../js/ui/status/accessibility.js:76
msgid "Sticky Keys"
msgstr "Lepkavé klávesy"
# z gnome control center
#: ../js/ui/status/accessibility.js:77
#: ../js/ui/status/accessibility.js:79
msgid "Slow Keys"
msgstr "Pomalé klávesy"
# z gnome control center
#: ../js/ui/status/accessibility.js:80
#: ../js/ui/status/accessibility.js:82
msgid "Bounce Keys"
msgstr "Poskakujúce klávesy"
#: ../js/ui/status/accessibility.js:83
#: ../js/ui/status/accessibility.js:85
msgid "Mouse Keys"
msgstr "Myš klávesmi"
#: ../js/ui/status/accessibility.js:142
#: ../js/ui/status/accessibility.js:144
msgid "High Contrast"
msgstr "Vysoký kontrast"
#: ../js/ui/status/accessibility.js:191
#: ../js/ui/status/accessibility.js:193
msgid "Large Text"
msgstr "Veľký text"
#: ../js/ui/status/bluetooth.js:27 ../js/ui/status/bluetooth.js:62
#: ../js/ui/status/bluetooth.js:99 ../js/ui/status/bluetooth.js:127
#: ../js/ui/status/bluetooth.js:163 ../js/ui/status/bluetooth.js:194
#: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:63
#: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128
#: ../js/ui/status/bluetooth.js:164 ../js/ui/status/bluetooth.js:195
msgid "Bluetooth"
msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:29 ../js/ui/status/network.js:132
#: ../js/ui/status/network.js:1099 ../js/ui/status/rfkill.js:46
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:1040 ../js/ui/status/rfkill.js:46
msgid "Turn Off"
msgstr "Vypnúť"
#: ../js/ui/status/bluetooth.js:32
#: ../js/ui/status/bluetooth.js:33
msgid "Bluetooth Settings"
msgstr "Nastavenia Bluetooth"
#: ../js/ui/status/bluetooth.js:57
#: ../js/ui/status/bluetooth.js:58
#, javascript-format
msgid "%d Connected Device"
msgid_plural "%d Connected Devices"
@ -1361,75 +1354,75 @@ msgstr[0] "%d pripojených zariadení"
msgstr[1] "%d pripojené zariadenie"
msgstr[2] "%d pripojené zariadenia"
#: ../js/ui/status/bluetooth.js:100 ../js/ui/status/bluetooth.js:128
#: ../js/ui/status/bluetooth.js:101 ../js/ui/status/bluetooth.js:129
#, javascript-format
msgid "Authorization request from %s"
msgstr "Žiadosť o potvrdenie prístupu od %s"
#: ../js/ui/status/bluetooth.js:106 ../js/ui/status/bluetooth.js:171
#: ../js/ui/status/bluetooth.js:202
#: ../js/ui/status/bluetooth.js:107 ../js/ui/status/bluetooth.js:172
#: ../js/ui/status/bluetooth.js:203
#, javascript-format
msgid "Device %s wants to pair with this computer"
msgstr "Zariadenie %s sa chce spárovať s týmto počítačom"
# button
#: ../js/ui/status/bluetooth.js:108
#: ../js/ui/status/bluetooth.js:109
msgid "Allow"
msgstr "Povoliť"
# button
#: ../js/ui/status/bluetooth.js:109
#: ../js/ui/status/bluetooth.js:110
msgid "Deny"
msgstr "Zakázať"
#: ../js/ui/status/bluetooth.js:134
#: ../js/ui/status/bluetooth.js:135
#, javascript-format
msgid "Device %s wants access to the service '%s'"
msgstr "Zariadenie %s chce pristupovať k službe „%s“"
#: ../js/ui/status/bluetooth.js:136
#: ../js/ui/status/bluetooth.js:137
msgid "Always grant access"
msgstr "Vždy povoliť prístup"
#: ../js/ui/status/bluetooth.js:137
#: ../js/ui/status/bluetooth.js:138
msgid "Grant this time only"
msgstr "Povoliť iba teraz"
#: ../js/ui/status/bluetooth.js:138
#: ../js/ui/status/bluetooth.js:139
msgid "Reject"
msgstr "Odmietnuť"
#. Translators: argument is the device short name */
#: ../js/ui/status/bluetooth.js:165
#: ../js/ui/status/bluetooth.js:166
#, javascript-format
msgid "Pairing confirmation for %s"
msgstr "Potvrdenie spárovania pre %s"
#: ../js/ui/status/bluetooth.js:172
#: ../js/ui/status/bluetooth.js:173
#, javascript-format
msgid ""
"Please confirm whether the Passkey '%06d' matches the one on the device."
msgstr "Prosím, potvrďte, či sa heslo „%06d“ zhoduje s tým na zariadení."
#. Translators: this is the verb, not the noun */
#: ../js/ui/status/bluetooth.js:175
#: ../js/ui/status/bluetooth.js:176
msgid "Matches"
msgstr "Zhoduje sa"
#: ../js/ui/status/bluetooth.js:176
#: ../js/ui/status/bluetooth.js:177
msgid "Does not match"
msgstr "Nezhoduje sa"
#: ../js/ui/status/bluetooth.js:195
#: ../js/ui/status/bluetooth.js:196
#, javascript-format
msgid "Pairing request for %s"
msgstr "Požiadavka na spárovanie pre %s"
#: ../js/ui/status/bluetooth.js:203
#: ../js/ui/status/bluetooth.js:204
msgid "Please enter the PIN mentioned on the device."
msgstr "Zadajte PIN, ktoré je uvedené na zariadení."
#: ../js/ui/status/bluetooth.js:220
#: ../js/ui/status/bluetooth.js:221
msgid "OK"
msgstr "Ok"
@ -1438,101 +1431,89 @@ msgid "Brightness"
msgstr "Jas"
# zariadenie
#: ../js/ui/status/network.js:71
#: ../js/ui/status/network.js:72
msgid "<unknown>"
msgstr "<neznáme>"
# DK: pripojenie, zariadenie
#: ../js/ui/status/network.js:222 ../js/ui/status/network.js:379
#: ../js/ui/status/network.js:1120
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1055
msgid "Off"
msgstr "Vypnuté"
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:961
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Nastavenia siete"
#. 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) */
#: ../js/ui/status/network.js:385
#: ../js/ui/status/network.js:364
msgid "unmanaged"
msgstr "nespravované"
#: ../js/ui/status/network.js:387
#: ../js/ui/status/network.js:366
msgid "disconnecting..."
msgstr "odpája sa…"
#: ../js/ui/status/network.js:393 ../js/ui/status/network.js:1174
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1106
msgid "connecting..."
msgstr "pripája sa…"
#. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:396 ../js/ui/status/network.js:1177
#: ../js/ui/status/network.js:375 ../js/ui/status/network.js:1109
msgid "authentication required"
msgstr "požaduje sa overenie totožnosti"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing */
#: ../js/ui/status/network.js:404
#: ../js/ui/status/network.js:383
msgid "firmware missing"
msgstr "chýba firmvér"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage */
#: ../js/ui/status/network.js:408
#: ../js/ui/status/network.js:387
msgid "unavailable"
msgstr "nedostupné"
#: ../js/ui/status/network.js:410 ../js/ui/status/network.js:1179
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1111
msgid "connection failed"
msgstr "pripojenie zlyhalo"
#: ../js/ui/status/network.js:426 ../js/ui/status/network.js:512
msgid "Mobile Broadband Settings"
msgstr "Nastavenia mobilnej širokopásmovej siete"
#: ../js/ui/status/network.js:468 ../js/ui/status/network.js:1118
msgid "Hardware Disabled"
msgstr "Hardvér zakázaný"
#: ../js/ui/status/network.js:707
#: ../js/ui/status/network.js:660
msgid "Wi-Fi Networks"
msgstr "Siete Wi-Fi"
#: ../js/ui/status/network.js:709
#: ../js/ui/status/network.js:662
msgid "Select a network"
msgstr "Vyberte sieť"
#: ../js/ui/status/network.js:733
#: ../js/ui/status/network.js:686
msgid "No Networks"
msgstr "Žiadne siete"
# item menu
#: ../js/ui/status/network.js:1005
#: ../js/ui/status/network.js:955
msgid "Select Network"
msgstr "Vybrať sieť"
#: ../js/ui/status/network.js:1011
msgid "Wi-Fi Settings"
msgstr "Nastavenia Wi-Fi"
#: ../js/ui/status/network.js:1099
#: ../js/ui/status/network.js:1040
msgid "Turn On"
msgstr "Zapnúť"
#: ../js/ui/status/network.js:1122
msgid "Not Connected"
msgstr "Nepripojené"
#: ../js/ui/status/network.js:1242
#: ../js/ui/status/network.js:1173
msgid "VPN"
msgstr "VPN"
#: ../js/ui/status/network.js:1382
#: ../js/ui/status/network.js:1313
msgid "Network Manager"
msgstr "Správca siete"
#: ../js/ui/status/network.js:1421
#: ../js/ui/status/network.js:1352
msgid "Connection failed"
msgstr "Pripojenie zlyhalo"
#: ../js/ui/status/network.js:1422
#: ../js/ui/status/network.js:1353
msgid "Activation of network connection failed"
msgstr "Aktivácia pripojenia k sieti zlyhala"
@ -1571,28 +1552,24 @@ msgstr "Režim v lietadle"
msgid "On"
msgstr "Zapnutý"
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Nastavenia siete"
#: ../js/ui/status/system.js:314
#: ../js/ui/status/system.js:305
msgid "Switch User"
msgstr "Prepnúť používateľa"
#: ../js/ui/status/system.js:319
#: ../js/ui/status/system.js:310
msgid "Log Out"
msgstr "Odhlásiť sa"
# action button
#: ../js/ui/status/system.js:338
#: ../js/ui/status/system.js:329
msgid "Orientation Lock"
msgstr "Uzamknutie orientácie"
#: ../js/ui/status/system.js:346
#: ../js/ui/status/system.js:337
msgid "Suspend"
msgstr "Uspať"
#: ../js/ui/status/system.js:349
#: ../js/ui/status/system.js:340
msgid "Power Off"
msgstr "Vypnúť"

386
po/sl.po

File diff suppressed because it is too large Load Diff

685
po/sr.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

2010
po/ta.po

File diff suppressed because it is too large Load Diff

120
po/tg.po
View File

@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: Tajik Gnome\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2013-10-09 16:40+0000\n"
"PO-Revision-Date: 2013-10-10 11:47+0500\n"
"POT-Creation-Date: 2013-09-27 14:10+0000\n"
"PO-Revision-Date: 2013-09-28 19:21+0500\n"
"Last-Translator: Victor Ibragimov <victor.ibragimov@gmail.com>\n"
"Language-Team: \n"
"Language: Tajik\n"
@ -164,26 +164,25 @@ msgstr "Намоиш додани ҳафта дар тақвим"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
msgid "If true, display the ISO week date in the calendar."
msgstr "Агар фаъол бошад, санаи ҳафтаи ISO дар тақвим намоиш дода мешавад."
msgstr "Агар дуруст бошад, санаи ҳафтаи ISO дар тақвим намоиш дода мешавад."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
msgid "Keybinding to open the application menu"
msgstr "Тугмабандӣ барои кушодани менюи барнома"
msgstr "Тугма барои кушодани менюи барнома"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid "Keybinding to open the application menu."
msgstr "Тугмабандӣ барои кушодани менюи барнома."
msgstr "Тугма барои кушодани менюи барнома."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Тугмабандӣ барои кушодани намуди \"Намоиш додани барномаҳо\""
msgstr "Тугма барои кушодани намуди \"Намоиш додани барномаҳо\""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr ""
"Тугмабандӣ барои кушодани намуди \"Намоиш додани барномаҳо\"-и Хулосаи "
"фаъолият."
"Тугма барои кушодани намуди \"Намоиш додани барномаҳо\"-и Хулосаи фаъолият."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "Keybinding to open the overview"
@ -195,19 +194,19 @@ msgstr "Тугмабандӣ барои кушодани хулосаи фаъо
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
msgid "Keybinding to toggle the visibility of the message tray"
msgstr "Тугмабандӣ барои иваз кардани намоёнии қуттии паёмҳо"
msgstr "Тугма барои иваз кардани намоёнии қуттии паёмҳо"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to toggle the visibility of the message tray."
msgstr "Тугмабандӣ барои иваз кардани намоёнии қуттии паёмҳо."
msgstr "Тугма барои иваз кардани намоёнии қуттии паёмҳо."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "Keybinding to focus the active notification"
msgstr "Тугмабандӣ барои гузоштани фокус ба огоҳии фаъол"
msgstr "Тугма барои гузоштани фокус ба огоҳии фаъол"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to focus the active notification."
msgstr "Тугмабандӣ барои гузоштани фокус ба огоҳии фаъол."
msgstr "Тугма барои гузоштани фокус ба огоҳии фаъол."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Which keyboard to use"
@ -284,7 +283,7 @@ msgstr ""
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:136
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:728
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:692
msgid "Cancel"
msgstr "Бекор кардан"
@ -331,15 +330,15 @@ msgstr "Хатои санҷиши ҳаққоният"
msgid "(or swipe finger)"
msgstr "(ё бо ангут ламс кунед)"
#: ../js/misc/util.js:115
#: ../js/misc/util.js:98
msgid "Command not found"
msgstr "Фармон ёфт нашудааст"
#: ../js/misc/util.js:148
#: ../js/misc/util.js:131
msgid "Could not parse command:"
msgstr "Фармон иҷро нашудааст:"
#: ../js/misc/util.js:156
#: ../js/misc/util.js:139
msgid "Execution of '%s' failed:"
msgstr "Иҷрокунии '%s' қатъ шудааст:"
@ -565,16 +564,16 @@ msgstr "Кушодан бо %s"
msgid "Eject"
msgstr "Баровардан"
#: ../js/ui/components/keyring.js:89 ../js/ui/components/polkitAgent.js:280
#: ../js/ui/components/keyring.js:91 ../js/ui/components/polkitAgent.js:280
msgid "Password:"
msgstr "Парол:"
#: ../js/ui/components/keyring.js:108
#: ../js/ui/components/keyring.js:110
msgid "Type again:"
msgstr "Аз нав ворид кунед:"
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:133
#: ../js/ui/status/network.js:296 ../js/ui/status/network.js:731
#: ../js/ui/components/networkAgent.js:131 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:695
msgid "Connect"
msgstr "Пайваст шудан"
@ -1051,12 +1050,9 @@ msgstr "Намоиш додани хатоҳо"
msgid "Enabled"
msgstr "Фаъол"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode) */
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:765 ../js/ui/status/network.js:473
#: ../src/gvc/gvc-mixer-control.c:1830
#: ../js/ui/lookingGlass.js:765 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled"
msgstr "Ғайрифаъол"
@ -1275,8 +1271,8 @@ msgstr "Матни бузург"
msgid "Bluetooth"
msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:133
#: ../js/ui/status/network.js:1085 ../js/ui/status/rfkill.js:46
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112
#: ../js/ui/status/network.js:1040 ../js/ui/status/rfkill.js:46
msgid "Turn Off"
msgstr "Хомӯш кардан"
@ -1364,99 +1360,83 @@ msgstr "Дурахшонӣ"
msgid "<unknown>"
msgstr "<номаълум>"
#: ../js/ui/status/network.js:223 ../js/ui/status/network.js:380
#: ../js/ui/status/network.js:1106
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1055
msgid "Off"
msgstr "Хомӯш"
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:961
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Танзимоти шабака"
#. 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) */
#: ../js/ui/status/network.js:386
#: ../js/ui/status/network.js:364
msgid "unmanaged"
msgstr "идоранашуда"
#: ../js/ui/status/network.js:388
#: ../js/ui/status/network.js:366
msgid "disconnecting..."
msgstr "қатъ кардани пайваст..."
#: ../js/ui/status/network.js:394 ../js/ui/status/network.js:1160
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1106
msgid "connecting..."
msgstr "пайвастшавӣ..."
#. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:397 ../js/ui/status/network.js:1163
#: ../js/ui/status/network.js:375 ../js/ui/status/network.js:1109
msgid "authentication required"
msgstr "санҷиши ҳаққоният лозим аст"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing */
#: ../js/ui/status/network.js:405
#: ../js/ui/status/network.js:383
msgid "firmware missing"
msgstr "нармафзори дарунсохт вуҷуд надорад"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage */
#: ../js/ui/status/network.js:409
#: ../js/ui/status/network.js:387
msgid "unavailable"
msgstr "дастнорас"
#: ../js/ui/status/network.js:411 ../js/ui/status/network.js:1165
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1111
msgid "connection failed"
msgstr "пайваст қатъ шудааст"
#: ../js/ui/status/network.js:427 ../js/ui/status/network.js:513
#| msgid "Mobile broadband"
msgid "Mobile Broadband Settings"
msgstr "Танзимоти паҳннавори мобилӣ"
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1104
#| msgid "hardware disabled"
msgid "Hardware Disabled"
msgstr "Сахтафзор ғайрифаъол шудааст"
#: ../js/ui/status/network.js:696
#: ../js/ui/status/network.js:660
msgid "Wi-Fi Networks"
msgstr "Шабакаҳои Wi-Fi"
#: ../js/ui/status/network.js:698
#: ../js/ui/status/network.js:662
msgid "Select a network"
msgstr "Интихоб кардани шабака"
#: ../js/ui/status/network.js:722
#: ../js/ui/status/network.js:686
msgid "No Networks"
msgstr "Ягон шабака нест"
#: ../js/ui/status/network.js:991
#: ../js/ui/status/network.js:955
msgid "Select Network"
msgstr "Интихоби шабака"
#: ../js/ui/status/network.js:997
#| msgid "Settings"
msgid "Wi-Fi Settings"
msgstr "Танзимоти Wi-Fi"
#: ../js/ui/status/network.js:1085
#: ../js/ui/status/network.js:1040
msgid "Turn On"
msgstr "Фаъол кардан"
#: ../js/ui/status/network.js:1108
#| msgid "Connect"
msgid "Not Connected"
msgstr "Пайваст нашудааст"
#: ../js/ui/status/network.js:1228
#: ../js/ui/status/network.js:1173
msgid "VPN"
msgstr "VPN"
#: ../js/ui/status/network.js:1368
#: ../js/ui/status/network.js:1313
msgid "Network Manager"
msgstr "Мудири шабака"
#: ../js/ui/status/network.js:1407
#: ../js/ui/status/network.js:1352
msgid "Connection failed"
msgstr "Пайваст қатъ шудааст"
#: ../js/ui/status/network.js:1408
#: ../js/ui/status/network.js:1353
msgid "Activation of network connection failed"
msgstr "Фаъолсозии пайвасти шабака қатъ шудааст."
@ -1477,10 +1457,12 @@ msgid "Estimating…"
msgstr "Ҳисоб шуда истодааст..."
#: ../js/ui/status/power.js:77
#| msgid "%d\\u2236%02d Remaining (%d%%)"
msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d Боқӣ мондааст (%d%%)"
#: ../js/ui/status/power.js:82
#| msgid "%d\\u2236%02d Until Full (%d%%)"
msgid "%d%02d Until Full (%d%%)"
msgstr "%d%02d То пур шудан (%d%%)"
@ -1492,10 +1474,6 @@ msgstr "Ҳолати ҳавопаймо"
msgid "On"
msgstr "Фаъол"
#: ../js/ui/status/rfkill.js:49
msgid "Network Settings"
msgstr "Танзимоти шабака"
#: ../js/ui/status/system.js:305
msgid "Switch User"
msgstr "Таъвизи корбар"
@ -1794,6 +1772,9 @@ msgstr "Равзанаи гуфтугӯи санҷиши ҳакконият бо
#~ msgid "Wi-Fi"
#~ msgstr "Wi-Fi"
#~ msgid "hardware disabled"
#~ msgstr "сахтафзор ғайрифаъол шудааст"
#~ msgid "disabled"
#~ msgstr "ғайрифаъол"
@ -1806,6 +1787,9 @@ msgstr "Равзанаи гуфтугӯи санҷиши ҳакконият бо
#~ msgid "Wired"
#~ msgstr "Симдор"
#~ msgid "Mobile broadband"
#~ msgstr "Паҳннавори мобилӣ"
#~ msgid "Networking is disabled"
#~ msgstr "Шабака ғайрифаъол аст"

1012
po/tr.po

File diff suppressed because it is too large Load Diff

450
po/uk.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -99,15 +99,6 @@ def run_shell(perf_output=None):
shell.wait()
return shell.returncode == 0
def restore_shell():
pid = os.fork()
if (pid == 0):
if "MUTTER_WM_CLASS_FILTER" in os.environ:
del os.environ["MUTTER_WM_CLASS_FILTER"]
os.execlp("gnome-shell", "gnome-shell", "--replace")
else:
sys.exit(0)
def upload_performance_report(report_text):
try:
config_home = os.environ['XDG_CONFIG_HOME']
@ -329,6 +320,6 @@ if args:
normal_exit = run_performance_test()
if normal_exit:
restore_shell()
sys.exit(0)
else:
sys.exit(1)

View File

@ -277,9 +277,7 @@ default_log_handler (const char *log_domain,
g_get_current_time (&now);
/* Send telepathy debug through DBus */
if (log_domain != NULL && g_str_has_prefix (log_domain, "tp-glib"))
tp_debug_sender_add_message (sender, &now, log_domain, log_level, message);
tp_debug_sender_add_message (sender, &now, log_domain, log_level, message);
/* Filter out telepathy-glib logs, we don't want to flood Shell's output
* with those. */

View File

@ -12,9 +12,9 @@ G_BEGIN_DECLS
ShellApp* _shell_app_new_for_window (MetaWindow *window);
ShellApp* _shell_app_new (GMenuTreeEntry *entry);
ShellApp* _shell_app_new (GDesktopAppInfo *info);
void _shell_app_set_entry (ShellApp *app, GMenuTreeEntry *entry);
void _shell_app_set_app_info (ShellApp *app, GDesktopAppInfo *info);
void _shell_app_handle_startup_sequence (ShellApp *app, SnStartupSequence *sequence);

View File

@ -38,18 +38,12 @@ enum {
static guint signals[LAST_SIGNAL] = { 0 };
struct _ShellAppSystemPrivate {
GMenuTree *apps_tree;
GHashTable *running_apps;
GHashTable *visible_id_to_app;
GHashTable *id_to_app;
GHashTable *startup_wm_class_to_app;
GSList *known_vendor_prefixes;
GHashTable *startup_wm_class_to_id;
};
static void shell_app_system_finalize (GObject *object);
static void on_apps_tree_changed_cb (GMenuTree *tree, gpointer user_data);
G_DEFINE_TYPE(ShellAppSystem, shell_app_system, G_TYPE_OBJECT);
@ -77,10 +71,45 @@ static void shell_app_system_class_init(ShellAppSystemClass *klass)
g_type_class_add_private (gobject_class, sizeof (ShellAppSystemPrivate));
}
static void
scan_startup_wm_class_to_id (ShellAppSystem *self)
{
ShellAppSystemPrivate *priv = self->priv;
GList *apps, *l;
g_hash_table_remove_all (priv->startup_wm_class_to_id);
apps = g_app_info_get_all ();
for (l = apps; l != NULL; l = l->next)
{
GAppInfo *info = l->data;
const char *startup_wm_class, *id;
id = g_app_info_get_id (info);
startup_wm_class = g_desktop_app_info_get_startup_wm_class (G_DESKTOP_APP_INFO (info));
if (startup_wm_class != NULL)
g_hash_table_insert (priv->startup_wm_class_to_id, (char *) startup_wm_class, (char *) id);
}
g_list_free_full (apps, g_object_unref);
}
static void
installed_changed (GAppInfoMonitor *monitor,
gpointer user_data)
{
ShellAppSystem *self = user_data;
scan_startup_wm_class_to_id (self);
g_signal_emit (self, signals[INSTALLED_CHANGED], 0, NULL);
}
static void
shell_app_system_init (ShellAppSystem *self)
{
ShellAppSystemPrivate *priv;
GAppInfoMonitor *monitor;
self->priv = priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
SHELL_TYPE_APP_SYSTEM,
@ -91,19 +120,11 @@ shell_app_system_init (ShellAppSystem *self)
NULL,
(GDestroyNotify)g_object_unref);
/* All the objects in this hash table are owned by id_to_app */
priv->visible_id_to_app = g_hash_table_new (g_str_hash, g_str_equal);
priv->startup_wm_class_to_id = g_hash_table_new (g_str_hash, g_str_equal);
priv->startup_wm_class_to_app = g_hash_table_new_full (g_str_hash, g_str_equal,
NULL,
(GDestroyNotify)g_object_unref);
/* We want to track NoDisplay apps, so we add INCLUDE_NODISPLAY. We'll
* filter NoDisplay apps out when showing them to the user. */
priv->apps_tree = gmenu_tree_new ("applications.menu", GMENU_TREE_FLAGS_INCLUDE_NODISPLAY);
g_signal_connect (priv->apps_tree, "changed", G_CALLBACK (on_apps_tree_changed_cb), self);
on_apps_tree_changed_cb (priv->apps_tree, self);
monitor = g_app_info_monitor_get ();
g_signal_connect (monitor, "changed", G_CALLBACK (installed_changed), self);
installed_changed (monitor, self);
}
static void
@ -112,313 +133,13 @@ shell_app_system_finalize (GObject *object)
ShellAppSystem *self = SHELL_APP_SYSTEM (object);
ShellAppSystemPrivate *priv = self->priv;
g_object_unref (priv->apps_tree);
g_hash_table_destroy (priv->running_apps);
g_hash_table_destroy (priv->id_to_app);
g_hash_table_destroy (priv->visible_id_to_app);
g_hash_table_destroy (priv->startup_wm_class_to_app);
g_slist_free_full (priv->known_vendor_prefixes, g_free);
priv->known_vendor_prefixes = NULL;
g_hash_table_destroy (priv->startup_wm_class_to_id);
G_OBJECT_CLASS (shell_app_system_parent_class)->finalize (object);
}
static char *
get_prefix_for_entry (GMenuTreeEntry *entry)
{
char *prefix = NULL, *file_prefix = NULL;
const char *id;
GFile *file;
char *name;
int i = 0;
id = gmenu_tree_entry_get_desktop_file_id (entry);
file = g_file_new_for_path (gmenu_tree_entry_get_desktop_file_path (entry));
name = g_file_get_basename (file);
if (!name)
{
g_object_unref (file);
return NULL;
}
for (i = 0; vendor_prefixes[i]; i++)
{
if (g_str_has_prefix (name, vendor_prefixes[i]))
{
file_prefix = g_strdup (vendor_prefixes[i]);
break;
}
}
while (strcmp (name, id) != 0)
{
char *t;
char *pname;
GFile *parent = g_file_get_parent (file);
if (!parent)
{
g_warn_if_reached ();
break;
}
pname = g_file_get_basename (parent);
if (!pname)
{
g_object_unref (parent);
break;
}
if (!g_strstr_len (id, -1, pname))
{
/* handle <LegacyDir prefix="..."> */
char *t;
size_t name_len = strlen (name);
size_t id_len = strlen (id);
char *t_id = g_strdup (id);
t_id[id_len - name_len] = '\0';
t = g_strdup(t_id);
g_free (prefix);
g_free (t_id);
g_free (name);
name = g_strdup (id);
prefix = t;
g_object_unref (file);
file = parent;
g_free (pname);
g_free (file_prefix);
file_prefix = NULL;
break;
}
t = g_strconcat (pname, "-", name, NULL);
g_free (name);
name = t;
t = g_strconcat (pname, "-", prefix, NULL);
g_free (prefix);
prefix = t;
g_object_unref (file);
file = parent;
g_free (pname);
}
if (file)
g_object_unref (file);
if (strcmp (name, id) == 0)
{
g_free (name);
if (file_prefix && !prefix)
return file_prefix;
if (file_prefix)
{
char *t = g_strconcat (prefix, "-", file_prefix, NULL);
g_free (prefix);
g_free (file_prefix);
prefix = t;
}
return prefix;
}
g_free (name);
g_free (prefix);
g_free (file_prefix);
g_return_val_if_reached (NULL);
}
static void
get_flattened_entries_recurse (GMenuTreeDirectory *dir,
GHashTable *entry_set)
{
GMenuTreeIter *iter = gmenu_tree_directory_iter (dir);
GMenuTreeItemType next_type;
while ((next_type = gmenu_tree_iter_next (iter)) != GMENU_TREE_ITEM_INVALID)
{
gpointer item = NULL;
switch (next_type)
{
case GMENU_TREE_ITEM_ENTRY:
{
GMenuTreeEntry *entry;
item = entry = gmenu_tree_iter_get_entry (iter);
/* Key is owned by entry */
g_hash_table_replace (entry_set,
(char*)gmenu_tree_entry_get_desktop_file_id (entry),
gmenu_tree_item_ref (entry));
}
break;
case GMENU_TREE_ITEM_DIRECTORY:
{
item = gmenu_tree_iter_get_directory (iter);
get_flattened_entries_recurse ((GMenuTreeDirectory*)item, entry_set);
}
break;
default:
break;
}
if (item != NULL)
gmenu_tree_item_unref (item);
}
gmenu_tree_iter_unref (iter);
}
static GHashTable *
get_flattened_entries_from_tree (GMenuTree *tree)
{
GHashTable *table;
GMenuTreeDirectory *root;
table = g_hash_table_new_full (g_str_hash, g_str_equal,
(GDestroyNotify) NULL,
(GDestroyNotify) gmenu_tree_item_unref);
root = gmenu_tree_get_root_directory (tree);
if (root != NULL)
get_flattened_entries_recurse (root, table);
gmenu_tree_item_unref (root);
return table;
}
static void
on_apps_tree_changed_cb (GMenuTree *tree,
gpointer user_data)
{
ShellAppSystem *self = SHELL_APP_SYSTEM (user_data);
GError *error = NULL;
GHashTable *new_apps;
GHashTableIter iter;
gpointer key, value;
g_assert (tree == self->priv->apps_tree);
g_hash_table_remove_all (self->priv->visible_id_to_app);
g_slist_free_full (self->priv->known_vendor_prefixes, g_free);
self->priv->known_vendor_prefixes = NULL;
if (!gmenu_tree_load_sync (self->priv->apps_tree, &error))
{
if (error)
{
g_warning ("Failed to load apps: %s", error->message);
g_error_free (error);
}
else
{
g_warning ("Failed to load apps");
}
return;
}
new_apps = get_flattened_entries_from_tree (self->priv->apps_tree);
g_hash_table_iter_init (&iter, new_apps);
while (g_hash_table_iter_next (&iter, &key, &value))
{
const char *id = key;
GMenuTreeEntry *entry = value;
GMenuTreeEntry *old_entry;
char *prefix;
ShellApp *app;
GDesktopAppInfo *info;
const char *startup_wm_class;
prefix = get_prefix_for_entry (entry);
if (prefix != NULL
&& !g_slist_find_custom (self->priv->known_vendor_prefixes, prefix,
(GCompareFunc)g_strcmp0))
self->priv->known_vendor_prefixes = g_slist_append (self->priv->known_vendor_prefixes,
prefix);
else
g_free (prefix);
app = g_hash_table_lookup (self->priv->id_to_app, id);
if (app != NULL)
{
/* We hold a reference to the original entry temporarily,
* because otherwise the hash table would be referencing
* potentially free'd memory until we replace it below with
* the new data.
*/
old_entry = shell_app_get_tree_entry (app);
gmenu_tree_item_ref (old_entry);
_shell_app_set_entry (app, entry);
g_object_ref (app); /* Extra ref, removed in _replace below */
}
else
{
old_entry = NULL;
app = _shell_app_new (entry);
}
/* Note that "id" is owned by app->entry. Since we're always
* setting a new entry, even if the app already exists in the
* hash table we need to replace the key so that the new id
* string is pointed to.
*/
g_hash_table_replace (self->priv->id_to_app, (char*)id, app);
if (!gmenu_tree_entry_get_is_nodisplay_recurse (entry))
g_hash_table_replace (self->priv->visible_id_to_app, (char*)id, app);
if (old_entry)
{
GDesktopAppInfo *old_info;
const gchar *old_startup_wm_class;
old_info = gmenu_tree_entry_get_app_info (old_entry);
old_startup_wm_class = g_desktop_app_info_get_startup_wm_class (old_info);
if (old_startup_wm_class)
g_hash_table_remove (self->priv->startup_wm_class_to_app, old_startup_wm_class);
}
info = gmenu_tree_entry_get_app_info (entry);
startup_wm_class = g_desktop_app_info_get_startup_wm_class (info);
if (startup_wm_class)
g_hash_table_replace (self->priv->startup_wm_class_to_app,
(char*)startup_wm_class, g_object_ref (app));
if (old_entry)
gmenu_tree_item_unref (old_entry);
}
/* Now iterate over the apps again; we need to unreference any apps
* which have been removed. The JS code may still be holding a
* reference; that's fine.
*/
g_hash_table_iter_init (&iter, self->priv->id_to_app);
while (g_hash_table_iter_next (&iter, &key, &value))
{
const char *id = key;
if (!g_hash_table_lookup (new_apps, id))
g_hash_table_iter_remove (&iter);
}
g_hash_table_destroy (new_apps);
g_signal_emit (self, signals[INSTALLED_CHANGED], 0);
}
/**
* shell_app_system_get_tree:
*
* Return Value: (transfer none): The #GMenuTree for apps
*/
GMenuTree *
shell_app_system_get_tree (ShellAppSystem *self)
{
return self->priv->apps_tree;
}
/**
* shell_app_system_get_default:
*
@ -446,61 +167,20 @@ ShellApp *
shell_app_system_lookup_app (ShellAppSystem *self,
const char *id)
{
return g_hash_table_lookup (self->priv->id_to_app, id);
}
/**
* shell_app_system_lookup_app_by_tree_entry:
* @system: a #ShellAppSystem
* @entry: a #GMenuTreeEntry
*
* Find a #ShellApp corresponding to a #GMenuTreeEntry.
*
* Return value: (transfer none): The #ShellApp for @entry, or %NULL if none
*/
ShellApp *
shell_app_system_lookup_app_by_tree_entry (ShellAppSystem *self,
GMenuTreeEntry *entry)
{
/* If we looked up directly in ->entry_to_app, we'd lose the
* override of running apps. Thus, indirect through the id.
*/
return shell_app_system_lookup_app (self, gmenu_tree_entry_get_desktop_file_id (entry));
}
/**
* shell_app_system_lookup_app_for_path:
* @system: a #ShellAppSystem
* @desktop_path: (type utf8): UTF-8 encoded absolute file name
*
* Find or create a #ShellApp corresponding to a given absolute file
* name which must be in the standard paths (XDG_DATA_DIRS). For
* files outside the datadirs, this function returns %NULL.
*
* Return value: (transfer none): The #ShellApp for id, or %NULL if none
*/
ShellApp *
shell_app_system_lookup_app_for_path (ShellAppSystem *system,
const char *desktop_path)
{
const char *basename;
const char *app_path;
ShellAppSystemPrivate *priv = self->priv;
ShellApp *app;
GDesktopAppInfo *info;
basename = g_strrstr (desktop_path, "/");
if (basename)
basename += 1;
else
basename = desktop_path;
app = g_hash_table_lookup (priv->id_to_app, id);
if (app)
return app;
app = shell_app_system_lookup_app (system, basename);
if (!app)
return NULL;
app_path = g_desktop_app_info_get_filename (shell_app_get_app_info (app));
if (strcmp (desktop_path, app_path) != 0)
info = g_desktop_app_info_new (id);
if (!info)
return NULL;
app = _shell_app_new (info);
g_hash_table_insert (priv->id_to_app, (char *) id, app);
return app;
}
@ -520,15 +200,15 @@ shell_app_system_lookup_heuristic_basename (ShellAppSystem *system,
const char *name)
{
ShellApp *result;
GSList *prefix;
const char *const *prefix;
result = shell_app_system_lookup_app (system, name);
if (result != NULL)
return result;
for (prefix = system->priv->known_vendor_prefixes; prefix; prefix = g_slist_next (prefix))
for (prefix = vendor_prefixes; *prefix != NULL; prefix++)
{
char *tmpid = g_strconcat ((char*)prefix->data, name, NULL);
char *tmpid = g_strconcat (*prefix, name, NULL);
result = shell_app_system_lookup_app (system, tmpid);
g_free (tmpid);
if (result != NULL)
@ -603,10 +283,16 @@ ShellApp *
shell_app_system_lookup_startup_wmclass (ShellAppSystem *system,
const char *wmclass)
{
const char *id;
if (wmclass == NULL)
return NULL;
return g_hash_table_lookup (system->priv->startup_wm_class_to_app, wmclass);
id = g_hash_table_lookup (system->priv->startup_wm_class_to_id, wmclass);
if (id == NULL)
return NULL;
return shell_app_system_lookup_app (system, id);
}
void
@ -661,135 +347,3 @@ shell_app_system_get_running (ShellAppSystem *self)
return ret;
}
static gint
compare_apps_by_usage (gconstpointer a,
gconstpointer b,
gpointer data)
{
ShellAppUsage *usage = shell_app_usage_get_default ();
ShellApp *app_a = (ShellApp*)a;
ShellApp *app_b = (ShellApp*)b;
return shell_app_usage_compare (usage, "", app_a, app_b);
}
static GSList *
sort_and_concat_results (ShellAppSystem *system,
GSList *prefix_matches,
GSList *substring_matches)
{
prefix_matches = g_slist_sort_with_data (prefix_matches,
compare_apps_by_usage,
system);
substring_matches = g_slist_sort_with_data (substring_matches,
compare_apps_by_usage,
system);
return g_slist_concat (prefix_matches, substring_matches);
}
/**
* normalize_terms:
* @terms: (element-type utf8): Input search terms
*
* Returns: (element-type utf8) (transfer full): Unicode-normalized and lowercased terms
*/
static GSList *
normalize_terms (GSList *terms)
{
GSList *normalized_terms = NULL;
GSList *iter;
for (iter = terms; iter; iter = iter->next)
{
const char *term = iter->data;
normalized_terms = g_slist_prepend (normalized_terms,
shell_util_normalize_casefold_and_unaccent (term));
}
return normalized_terms;
}
static GSList *
search_tree (ShellAppSystem *self,
GSList *terms,
GHashTable *apps)
{
GSList *prefix_results = NULL;
GSList *substring_results = NULL;
GSList *normalized_terms;
GHashTableIter iter;
gpointer key, value;
normalized_terms = normalize_terms (terms);
g_hash_table_iter_init (&iter, apps);
while (g_hash_table_iter_next (&iter, &key, &value))
{
ShellApp *app = value;
_shell_app_do_match (app, normalized_terms,
&prefix_results,
&substring_results);
}
g_slist_free_full (normalized_terms, g_free);
return sort_and_concat_results (self, prefix_results, substring_results);
}
/**
* shell_app_system_initial_search:
* @system: A #ShellAppSystem
* @terms: (element-type utf8): List of terms, logical AND
*
* Search through applications for the given search terms.
*
* Returns: (transfer container) (element-type ShellApp): List of applications
*/
GSList *
shell_app_system_initial_search (ShellAppSystem *self,
GSList *terms)
{
return search_tree (self, terms, self->priv->visible_id_to_app);
}
/**
* shell_app_system_subsearch:
* @system: A #ShellAppSystem
* @previous_results: (element-type ShellApp): List of previous results
* @terms: (element-type utf8): List of terms, logical AND
*
* Search through a previous result set; for more information, see
* js/ui/search.js. Note that returned strings are only valid until
* a return to the main loop.
*
* Returns: (transfer container) (element-type ShellApp): List of application identifiers
*/
GSList *
shell_app_system_subsearch (ShellAppSystem *system,
GSList *previous_results,
GSList *terms)
{
GSList *iter;
GSList *prefix_results = NULL;
GSList *substring_results = NULL;
GSList *normalized_terms = normalize_terms (terms);
previous_results = g_slist_reverse (previous_results);
for (iter = previous_results; iter; iter = iter->next)
{
ShellApp *app = iter->data;
_shell_app_do_match (app, normalized_terms,
&prefix_results,
&substring_results);
}
g_slist_free_full (normalized_terms, g_free);
/* Note that a shorter term might have matched as a prefix, but
when extended only as a substring, so we have to redo the
sort rather than reusing the existing ordering */
return sort_and_concat_results (system, prefix_results, substring_results);
}

View File

@ -5,8 +5,6 @@
#include <gio/gio.h>
#include <clutter/clutter.h>
#include <meta/window.h>
#define GMENU_I_KNOW_THIS_IS_UNSTABLE
#include <gmenu-tree.h>
#include "shell-app.h"
@ -39,14 +37,8 @@ struct _ShellAppSystemClass
GType shell_app_system_get_type (void) G_GNUC_CONST;
ShellAppSystem *shell_app_system_get_default (void);
GMenuTree *shell_app_system_get_tree (ShellAppSystem *system);
ShellApp *shell_app_system_lookup_app (ShellAppSystem *system,
const char *id);
ShellApp *shell_app_system_lookup_app_by_tree_entry (ShellAppSystem *system,
GMenuTreeEntry *entry);
ShellApp *shell_app_system_lookup_app_for_path (ShellAppSystem *system,
const char *desktop_path);
ShellApp *shell_app_system_lookup_heuristic_basename (ShellAppSystem *system,
const char *id);
@ -57,10 +49,4 @@ ShellApp *shell_app_system_lookup_desktop_wmclass (ShellAppSystem *s
GSList *shell_app_system_get_running (ShellAppSystem *self);
GSList *shell_app_system_initial_search (ShellAppSystem *system,
GSList *terms);
GSList *shell_app_system_subsearch (ShellAppSystem *system,
GSList *previous_results,
GSList *terms);
#endif /* __SHELL_APP_SYSTEM_H__ */

View File

@ -527,19 +527,19 @@ shell_app_usage_get_most_used (ShellAppUsage *self,
* shell_app_usage_compare:
* @self: the usage instance to request
* @context: Activity identifier
* @app_a: First app
* @app_b: Second app
* @id_a: ID of first app
* @id_b: ID of second app
*
* Compare @app_a and @app_b based on frequency of use.
* Compare @id_a and @id_b based on frequency of use.
*
* Returns: -1 if @app_a ranks higher than @app_b, 1 if @app_b ranks higher
* than @app_a, and 0 if both rank equally.
* Returns: -1 if @id_a ranks higher than @id_b, 1 if @id_b ranks higher
* than @id_a, and 0 if both rank equally.
*/
int
shell_app_usage_compare (ShellAppUsage *self,
const char *context,
ShellApp *app_a,
ShellApp *app_b)
const char *id_a,
const char *id_b)
{
GHashTable *usages;
UsageData *usage_a, *usage_b;
@ -548,8 +548,8 @@ shell_app_usage_compare (ShellAppUsage *self,
if (usages == NULL)
return 0;
usage_a = g_hash_table_lookup (usages, shell_app_get_id (app_a));
usage_b = g_hash_table_lookup (usages, shell_app_get_id (app_b));
usage_a = g_hash_table_lookup (usages, id_a);
usage_b = g_hash_table_lookup (usages, id_b);
if (usage_a == NULL && usage_b == NULL)
return 0;

View File

@ -31,8 +31,8 @@ GSList *shell_app_usage_get_most_used (ShellAppUsage *usage,
const char *context);
int shell_app_usage_compare (ShellAppUsage *self,
const char *context,
ShellApp *app_a,
ShellApp *app_b);
const char *id_a,
const char *id_b);
G_END_DECLS

View File

@ -36,8 +36,6 @@ typedef struct {
GSList *windows;
guint interesting_windows;
/* Whether or not we need to resort the windows; this is done on demand */
gboolean window_sort_stale : 1;
@ -55,7 +53,7 @@ typedef struct {
* SECTION:shell-app
* @short_description: Object representing an application
*
* This object wraps a #GMenuTreeEntry, providing methods and signals
* This object wraps a #GDesktopAppInfo, providing methods and signals
* primarily useful for running applications.
*/
struct _ShellApp
@ -66,7 +64,7 @@ struct _ShellApp
ShellAppState state;
GMenuTreeEntry *entry; /* If NULL, this app is backed by one or more
GDesktopAppInfo *info; /* If NULL, this app is backed by one or more
* MetaWindow. For purposes of app title
* etc., we use the first window added,
* because it's most likely to be what we
@ -139,15 +137,15 @@ shell_app_get_property (GObject *gobject,
const char *
shell_app_get_id (ShellApp *app)
{
if (app->entry)
return gmenu_tree_entry_get_desktop_file_id (app->entry);
if (app->info)
return g_app_info_get_id (G_APP_INFO (app->info));
return app->window_id_string;
}
static MetaWindow *
window_backed_app_get_window (ShellApp *app)
{
g_assert (app->entry == NULL);
g_assert (app->info == NULL);
g_assert (app->running_state);
g_assert (app->running_state->windows);
return app->running_state->windows->data;
@ -196,10 +194,10 @@ shell_app_create_icon_texture (ShellApp *app,
ret = NULL;
if (app->entry == NULL)
if (app->info == NULL)
return window_backed_app_get_icon (app, size);
icon = g_app_info_get_icon (G_APP_INFO (gmenu_tree_entry_get_app_info (app->entry)));
icon = g_app_info_get_icon (G_APP_INFO (app->info));
if (icon != NULL)
ret = st_texture_cache_load_gicon (st_texture_cache_get_default (), NULL, icon, size);
@ -247,7 +245,7 @@ shell_app_create_faded_icon_cpu (StTextureCache *cache,
info = NULL;
icon = g_app_info_get_icon (G_APP_INFO (gmenu_tree_entry_get_app_info (app->entry)));
icon = g_app_info_get_icon (G_APP_INFO (app->info));
if (icon != NULL)
{
info = gtk_icon_theme_lookup_by_gicon (gtk_icon_theme_get_default (),
@ -349,7 +347,7 @@ shell_app_get_faded_icon (ShellApp *app, int size, ClutterTextDirection directio
* property tracking bits, and this helps us visually distinguish
* app-tracked from not.
*/
if (!app->entry)
if (!app->info)
return window_backed_app_get_icon (app, size);
/* Use icon: prefix so that we get evicted from the cache on
@ -386,8 +384,8 @@ shell_app_get_faded_icon (ShellApp *app, int size, ClutterTextDirection directio
const char *
shell_app_get_name (ShellApp *app)
{
if (app->entry)
return g_app_info_get_name (G_APP_INFO (gmenu_tree_entry_get_app_info (app->entry)));
if (app->info)
return g_app_info_get_name (G_APP_INFO (app->info));
else
{
MetaWindow *window = window_backed_app_get_window (app);
@ -403,8 +401,8 @@ shell_app_get_name (ShellApp *app)
const char *
shell_app_get_description (ShellApp *app)
{
if (app->entry)
return g_app_info_get_description (G_APP_INFO (gmenu_tree_entry_get_app_info (app->entry)));
if (app->info)
return g_app_info_get_description (G_APP_INFO (app->info));
else
return NULL;
}
@ -419,7 +417,7 @@ shell_app_get_description (ShellApp *app)
gboolean
shell_app_is_window_backed (ShellApp *app)
{
return app->entry == NULL;
return app->info == NULL;
}
typedef struct {
@ -672,7 +670,7 @@ void
shell_app_open_new_window (ShellApp *app,
int workspace)
{
g_return_if_fail (app->entry != NULL);
g_return_if_fail (app->info != NULL);
/* Here we just always launch the application again, even if we know
* it was already running. For most applications this
@ -741,10 +739,10 @@ shell_app_compare_windows (gconstpointer a,
* shell_app_get_windows:
* @app:
*
* Get the windows which are associated with this application. The
* returned list will be sorted first by whether they're on the
* active workspace, then by whether they're visible, and finally
* by the time the user last interacted with them.
* Get the toplevel, interesting windows which are associated with this
* application. The returned list will be sorted first by whether
* they're on the active workspace, then by whether they're visible,
* and finally by the time the user last interacted with them.
*
* Returns: (transfer none) (element-type MetaWindow): List of windows
*/
@ -867,25 +865,24 @@ _shell_app_new_for_window (MetaWindow *window)
}
ShellApp *
_shell_app_new (GMenuTreeEntry *info)
_shell_app_new (GDesktopAppInfo *info)
{
ShellApp *app;
app = g_object_new (SHELL_TYPE_APP, NULL);
_shell_app_set_entry (app, info);
_shell_app_set_app_info (app, info);
return app;
}
void
_shell_app_set_entry (ShellApp *app,
GMenuTreeEntry *entry)
_shell_app_set_app_info (ShellApp *app,
GDesktopAppInfo *info)
{
if (app->entry != NULL)
gmenu_tree_item_unref (app->entry);
app->entry = gmenu_tree_item_ref (entry);
g_clear_object (&app->info);
app->info = g_object_ref (info);
if (app->name_collation_key != NULL)
g_free (app->name_collation_key);
app->name_collation_key = g_utf8_collate_key (shell_app_get_name (app), -1);
@ -901,6 +898,12 @@ shell_app_state_transition (ShellApp *app,
state == SHELL_APP_STATE_STARTING));
app->state = state;
if (app->state == SHELL_APP_STATE_STOPPED && app->running_state)
{
unref_running_state (app->running_state);
app->running_state = NULL;
}
_shell_app_system_notify_app_state_changed (shell_app_system_get_default (), app);
g_object_notify (G_OBJECT (app), "state");
@ -930,37 +933,6 @@ shell_app_on_user_time_changed (MetaWindow *window,
}
}
static void
shell_app_sync_running_state (ShellApp *app)
{
g_return_if_fail (app->running_state != NULL);
if (app->running_state->interesting_windows == 0)
shell_app_state_transition (app, SHELL_APP_STATE_STOPPED);
else if (app->state != SHELL_APP_STATE_STARTING)
shell_app_state_transition (app, SHELL_APP_STATE_RUNNING);
}
static void
shell_app_on_skip_taskbar_changed (MetaWindow *window,
GParamSpec *pspec,
ShellApp *app)
{
g_assert (app->running_state != NULL);
/* we rely on MetaWindow:skip-taskbar only being notified
* when it actually changes; when that assumption breaks,
* we'll have to track the "interesting" windows themselves
*/
if (meta_window_is_skip_taskbar (window))
app->running_state->interesting_windows--;
else
app->running_state->interesting_windows++;
shell_app_sync_running_state (app);
}
static void
shell_app_on_ws_switch (MetaScreen *screen,
int from,
@ -1057,14 +1029,12 @@ _shell_app_add_window (ShellApp *app,
app->running_state->windows = g_slist_prepend (app->running_state->windows, g_object_ref (window));
g_signal_connect (window, "unmanaged", G_CALLBACK(shell_app_on_unmanaged), app);
g_signal_connect (window, "notify::user-time", G_CALLBACK(shell_app_on_user_time_changed), app);
g_signal_connect (window, "notify::skip-taskbar", G_CALLBACK(shell_app_on_skip_taskbar_changed), app);
shell_app_update_app_menu (app, window);
shell_app_ensure_busy_watch (app);
if (shell_window_tracker_is_window_interesting (window))
app->running_state->interesting_windows++;
shell_app_sync_running_state (app);
if (app->state != SHELL_APP_STATE_STARTING)
shell_app_state_transition (app, SHELL_APP_STATE_RUNNING);
g_object_thaw_notify (G_OBJECT (app));
@ -1082,16 +1052,11 @@ _shell_app_remove_window (ShellApp *app,
g_signal_handlers_disconnect_by_func (window, G_CALLBACK(shell_app_on_unmanaged), app);
g_signal_handlers_disconnect_by_func (window, G_CALLBACK(shell_app_on_user_time_changed), app);
g_signal_handlers_disconnect_by_func (window, G_CALLBACK(shell_app_on_skip_taskbar_changed), app);
g_object_unref (window);
app->running_state->windows = g_slist_remove (app->running_state->windows, window);
if (shell_window_tracker_is_window_interesting (window))
app->running_state->interesting_windows--;
shell_app_sync_running_state (app);
if (app->running_state && app->running_state->windows == NULL)
g_clear_pointer (&app->running_state, unref_running_state);
if (app->running_state->windows == NULL)
shell_app_state_transition (app, SHELL_APP_STATE_STOPPED);
g_signal_emit (app, shell_app_signals[WINDOWS_CHANGED], 0);
}
@ -1222,7 +1187,6 @@ shell_app_launch (ShellApp *app,
char **startup_id,
GError **error)
{
GDesktopAppInfo *gapp;
GdkAppLaunchContext *context;
gboolean ret;
ShellGlobal *global;
@ -1232,7 +1196,7 @@ shell_app_launch (ShellApp *app,
if (startup_id)
*startup_id = NULL;
if (app->entry == NULL)
if (app->info == NULL)
{
MetaWindow *window = window_backed_app_get_window (app);
/* We can't pass URIs into a window; shouldn't hit this
@ -1258,8 +1222,7 @@ shell_app_launch (ShellApp *app,
gdk_app_launch_context_set_timestamp (context, timestamp);
gdk_app_launch_context_set_desktop (context, workspace);
gapp = gmenu_tree_entry_get_app_info (app->entry);
ret = g_desktop_app_info_launch_uris_as_manager (gapp, uris,
ret = g_desktop_app_info_launch_uris_as_manager (app->info, uris,
G_APP_LAUNCH_CONTEXT (context),
G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD,
NULL, NULL,
@ -1279,21 +1242,7 @@ shell_app_launch (ShellApp *app,
GDesktopAppInfo *
shell_app_get_app_info (ShellApp *app)
{
if (app->entry)
return gmenu_tree_entry_get_app_info (app->entry);
return NULL;
}
/**
* shell_app_get_tree_entry:
* @app: a #ShellApp
*
* Returns: (transfer none): The #GMenuTreeEntry for this app, or %NULL if backed by a window
*/
GMenuTreeEntry *
shell_app_get_tree_entry (ShellApp *app)
{
return app->entry;
return app->info;
}
static void
@ -1408,24 +1357,22 @@ shell_app_init_search_data (ShellApp *app)
const char *exec;
const char * const *keywords;
char *normalized_exec;
GDesktopAppInfo *appinfo;
appinfo = gmenu_tree_entry_get_app_info (app->entry);
name = g_app_info_get_name (G_APP_INFO (appinfo));
name = g_app_info_get_name (G_APP_INFO (app->info));
app->casefolded_name = shell_util_normalize_casefold_and_unaccent (name);
generic_name = g_desktop_app_info_get_generic_name (appinfo);
generic_name = g_desktop_app_info_get_generic_name (app->info);
if (generic_name)
app->casefolded_generic_name = shell_util_normalize_casefold_and_unaccent (generic_name);
else
app->casefolded_generic_name = NULL;
exec = g_app_info_get_executable (G_APP_INFO (appinfo));
exec = g_app_info_get_executable (G_APP_INFO (app->info));
normalized_exec = shell_util_normalize_casefold_and_unaccent (exec);
app->casefolded_exec = trim_exec_line (normalized_exec);
g_free (normalized_exec);
keywords = g_desktop_app_info_get_keywords (appinfo);
keywords = g_desktop_app_info_get_keywords (app->info);
if (keywords)
{
@ -1546,16 +1493,14 @@ _shell_app_do_match (ShellApp *app,
GSList **substring_results)
{
ShellAppSearchMatch match;
GAppInfo *appinfo;
g_assert (app != NULL);
/* Skip window-backed apps */
appinfo = (GAppInfo*)shell_app_get_app_info (app);
if (appinfo == NULL)
if (app->info == NULL)
return;
/* Skip not-visible apps */
if (!g_app_info_should_show (appinfo))
if (!g_app_info_should_show (G_APP_INFO (app->info)))
return;
match = _shell_app_match_search_terms (app, terms);
@ -1584,15 +1529,13 @@ shell_app_dispose (GObject *object)
{
ShellApp *app = SHELL_APP (object);
if (app->entry)
g_clear_object (&app->info);
if (app->running_state)
{
gmenu_tree_item_unref (app->entry);
app->entry = NULL;
while (app->running_state->windows)
_shell_app_remove_window (app, app->running_state->windows->data);
}
while (app->running_state)
_shell_app_remove_window (app, app->running_state->windows->data);
/* We should have been transitioned when we removed all of our windows */
g_assert (app->state == SHELL_APP_STATE_STOPPED);
g_assert (app->running_state == NULL);

View File

@ -4,9 +4,8 @@
#include <clutter/clutter.h>
#include <gio/gio.h>
#include <gio/gdesktopappinfo.h>
#include <meta/window.h>
#define GMENU_I_KNOW_THIS_IS_UNSTABLE
#include <gmenu-tree.h>
G_BEGIN_DECLS
@ -39,7 +38,6 @@ GType shell_app_get_type (void) G_GNUC_CONST;
const char *shell_app_get_id (ShellApp *app);
GMenuTreeEntry *shell_app_get_tree_entry (ShellApp *app);
GDesktopAppInfo *shell_app_get_app_info (ShellApp *app);
ClutterActor *shell_app_create_icon_texture (ShellApp *app, int size);

View File

@ -470,12 +470,12 @@ shell_global_class_init (ShellGlobalClass *klass)
G_PARAM_READABLE));
}
/*
* _shell_global_init: (skip)
/**•
* _shell_global_init: (skip)
* @first_property_name: the name of the first property
* @...: the value of the first property, followed optionally by more
* name/value pairs, followed by %NULL
*
*
* Initializes the shell global singleton with the construction-time
* properties.
*
@ -739,20 +739,6 @@ global_stage_after_paint (gpointer data)
return TRUE;
}
static void
update_scale_factor (GdkScreen *screen, gpointer data)
{
ShellGlobal *global = SHELL_GLOBAL (data);
ClutterStage *stage = CLUTTER_STAGE (global->stage);
StThemeContext *context = st_theme_context_get_for_stage (stage);
GValue value = G_VALUE_INIT;
g_value_init (&value, G_TYPE_INT);
if (gdk_screen_get_setting (global->gdk_screen, "gdk-window-scaling-factor", &value))
g_object_set (context, "scale-factor", g_value_get_int (&value), NULL);
}
/* This is an IBus workaround. The flow of events with IBus is that every time
* it gets gets a key event, it:
*
@ -931,19 +917,9 @@ _shell_global_set_plugin (ShellGlobal *global,
g_signal_connect (global->meta_display, "notify::focus-window",
G_CALLBACK (focus_window_changed), global);
/*
* We connect to GdkScreen's monitors-changed here to avoid
* a race condition. GdkScreen's monitors-changed signal is
* emitted *after* the xsetting has been updated.
*/
g_signal_connect (global->gdk_screen, "monitors-changed",
G_CALLBACK (update_scale_factor), global);
gdk_event_handler_set (gnome_shell_gdk_event_handler, global, NULL);
global->focus_manager = st_focus_manager_get_for_stage (global->stage);
update_scale_factor (global->gdk_screen, global);
}
GjsContext *
@ -1803,8 +1779,6 @@ shell_global_set_runtime_state (ShellGlobal *global,
NULL, FALSE, G_FILE_CREATE_REPLACE_DESTINATION,
NULL, NULL, NULL);
}
g_object_unref (path);
}
/**
@ -1816,7 +1790,7 @@ shell_global_set_runtime_state (ShellGlobal *global,
* The shell maintains "runtime" state which does not persist across
* logout or reboot.
*
* Returns: (transfer floating): The value of a serialized property, or %NULL if none stored
* Returns: The value of a serialized property, or %NULL if none stored
*/
GVariant *
shell_global_get_runtime_state (ShellGlobal *global,
@ -1843,13 +1817,10 @@ shell_global_get_runtime_state (ShellGlobal *global,
else
{
GBytes *bytes = g_mapped_file_get_bytes (mfile);
res = g_variant_new_from_bytes (G_VARIANT_TYPE (property_type), bytes, TRUE);
res = g_variant_new_from_bytes ((GVariantType*)property_type, bytes, TRUE);
g_bytes_unref (bytes);
g_mapped_file_unref (mfile);
}
g_object_unref (path);
g_free (pathstr);
return res;
}

View File

@ -11,6 +11,6 @@ gboolean shell_js_add_extension_importer (const char *target_object_script,
const char *directory,
GError **error);
G_END_DECLS
G_BEGIN_DECLS
#endif /* __SHELL_JS_H__ */

View File

@ -172,9 +172,8 @@ shell_tray_icon_new (ShellEmbeddedWindow *window)
* @event: the #ClutterEvent triggering the fake click
*
* Fakes a press and release on @icon. @event must be a
* %CLUTTER_BUTTON_RELEASE, %CLUTTER_KEY_PRESS or %CLUTTER_KEY_RELEASE event.
* Its relevant details will be passed on to the icon, but its
* coordinates will be ignored; the click is
* %CLUTTER_BUTTON_RELEASE event. Its relevant details will be passed
* on to the icon, but its coordinates will be ignored; the click is
* always made on the center of @icon.
*/
void
@ -192,7 +191,6 @@ shell_tray_icon_click (ShellTrayIcon *icon,
ClutterEventType event_type = clutter_event_type (event);
g_return_if_fail (event_type == CLUTTER_BUTTON_RELEASE ||
event_type == CLUTTER_KEY_PRESS ||
event_type == CLUTTER_KEY_RELEASE);
gdk_error_trap_push ();
@ -251,24 +249,12 @@ shell_tray_icon_click (ShellTrayIcon *icon,
xkevent.y_root = xcevent.y_root;
xkevent.state = clutter_event_get_state (event);
xkevent.same_screen = True;
xkevent.keycode = clutter_event_get_key_code (event);
xkevent.type = KeyPress;
xkevent.keycode = clutter_event_get_key_code (event);
XSendEvent (xdisplay, xwindow, False, 0, (XEvent *)&xkevent);
if (event_type == CLUTTER_KEY_RELEASE)
{
/* If the application takes a grab on KeyPress, we don't
* want to send it a KeyRelease. There's no good way of
* knowing whether a tray icon will take a grab, so just
* assume it does, and don't send the KeyRelease. That might
* make the tracking for key events messed up if it doesn't take
* a grab, but the tray icon won't get key focus in normal cases,
* so let's hope this isn't too damaging...
*/
xkevent.type = KeyRelease;
XSendEvent (xdisplay, xwindow, False, 0, (XEvent *)&xkevent);
}
xkevent.type = KeyRelease;
XSendEvent (xdisplay, xwindow, False, 0, (XEvent *)&xkevent);
}
/* And move the pointer back out */

View File

@ -144,10 +144,40 @@ shell_window_tracker_class_init (ShellWindowTrackerClass *klass)
gboolean
shell_window_tracker_is_window_interesting (MetaWindow *window)
{
return !meta_window_is_skip_taskbar (window);
if (meta_window_is_override_redirect (window)
|| meta_window_is_skip_taskbar (window))
return FALSE;
switch (meta_window_get_window_type (window))
{
/* Definitely ignore these. */
case META_WINDOW_DESKTOP:
case META_WINDOW_DOCK:
case META_WINDOW_SPLASHSCREEN:
/* Should have already been handled by override_redirect above,
* but explicitly list here so we get the "unhandled enum"
* warning if in the future anything is added.*/
case META_WINDOW_DROPDOWN_MENU:
case META_WINDOW_POPUP_MENU:
case META_WINDOW_TOOLTIP:
case META_WINDOW_NOTIFICATION:
case META_WINDOW_COMBO:
case META_WINDOW_DND:
case META_WINDOW_OVERRIDE_OTHER:
return FALSE;
case META_WINDOW_NORMAL:
case META_WINDOW_DIALOG:
case META_WINDOW_MODAL_DIALOG:
case META_WINDOW_MENU:
case META_WINDOW_TOOLBAR:
case META_WINDOW_UTILITY:
break;
}
return TRUE;
}
/*
/**
* get_app_from_window_wmclass:
*
* Looks only at the given window, and attempts to determine
@ -226,17 +256,6 @@ get_app_from_window_wmclass (MetaWindow *window)
return NULL;
}
/*
* get_app_from_gapplication_id:
* @monitor: a #ShellWindowTracker
* @window: a #MetaWindow
*
* Looks only at the given window, and attempts to determine
* an application based on _GTK_APPLICATION_ID. If one can't be determined,
* return %NULL.
*
* Return value: (transfer full): A newly-referenced #ShellApp, or %NULL
*/
static ShellApp *
get_app_from_gapplication_id (MetaWindow *window)
{
@ -249,18 +268,16 @@ get_app_from_gapplication_id (MetaWindow *window)
id = meta_window_get_gtk_application_id (window);
if (!id)
return NULL;
return FALSE;
desktop_file = g_strconcat (id, ".desktop", NULL);
app = shell_app_system_lookup_app (appsys, desktop_file);
if (app)
g_object_ref (app);
g_free (desktop_file);
return app;
}
/*
/**
* get_app_from_window_group:
* @monitor: a #ShellWindowTracker
* @window: a #MetaWindow
@ -308,7 +325,7 @@ get_app_from_window_group (ShellWindowTracker *tracker,
return result;
}
/*
/**
* get_app_from_window_pid:
* @tracker: a #ShellWindowTracker
* @window: a #MetaWindow
@ -354,13 +371,8 @@ get_app_for_window (ShellWindowTracker *tracker,
MetaWindow *window)
{
ShellApp *result = NULL;
MetaWindow *transient_for;
const char *startup_id;
transient_for = meta_window_get_transient_for (window);
if (transient_for != NULL)
return get_app_for_window (tracker, transient_for);
/* First, we check whether we already know about this window,
* if so, just return that.
*/
@ -445,16 +457,6 @@ update_focus_app (ShellWindowTracker *self)
ShellApp *new_focus_app;
new_focus_win = meta_display_get_focus_window (shell_global_get_display (shell_global_get ()));
/* we only consider an app focused if the focus window can be clearly
* associated with a running app; this is the case if the focus window
* or one of its parents is visible in the taskbar, e.g.
* - 'nautilus' should appear focused when its about dialog has focus
* - 'nautilus' should not appear focused when the DESKTOP has focus
*/
while (new_focus_win && meta_window_is_skip_taskbar (new_focus_win))
new_focus_win = meta_window_get_transient_for (new_focus_win);
new_focus_app = new_focus_win ? shell_window_tracker_get_window_app (self, new_focus_win) : NULL;
if (new_focus_app)
@ -487,6 +489,9 @@ track_window (ShellWindowTracker *self,
{
ShellApp *app;
if (!shell_window_tracker_is_window_interesting (window))
return;
app = get_app_for_window (self, window);
if (!app)
return;
@ -525,8 +530,11 @@ disassociate_window (ShellWindowTracker *self,
g_hash_table_remove (self->window_to_app, window);
_shell_app_remove_window (app, window);
g_signal_handlers_disconnect_by_func (window, G_CALLBACK(on_wm_class_changed), self);
if (shell_window_tracker_is_window_interesting (window))
{
_shell_app_remove_window (app, window);
g_signal_handlers_disconnect_by_func (window, G_CALLBACK(on_wm_class_changed), self);
}
g_signal_emit (self, signals[TRACKED_WINDOWS_CHANGED], 0);
@ -666,8 +674,13 @@ ShellApp *
shell_window_tracker_get_window_app (ShellWindowTracker *tracker,
MetaWindow *metawin)
{
MetaWindow *transient_for;
ShellApp *app;
transient_for = meta_window_get_transient_for (metawin);
if (transient_for != NULL)
metawin = transient_for;
app = g_hash_table_lookup (tracker->window_to_app, metawin);
if (app)
g_object_ref (app);
@ -831,6 +844,7 @@ ShellApp *
shell_startup_sequence_get_app (ShellStartupSequence *sequence)
{
const char *appid;
char *basename;
ShellAppSystem *appsys;
ShellApp *app;
@ -838,8 +852,10 @@ shell_startup_sequence_get_app (ShellStartupSequence *sequence)
if (!appid)
return NULL;
basename = g_path_get_basename (appid);
appsys = shell_app_system_get_default ();
app = shell_app_system_lookup_app_for_path (appsys, appid);
app = shell_app_system_lookup_app (appsys, basename);
g_free (basename);
return app;
}

View File

@ -259,7 +259,6 @@ st_adjustment_class_init (StAdjustmentClass *klass)
G_PARAM_CONSTRUCT));
/**
* StAdjustment::changed:
* @self: the #StAdjustment
*
* Emitted when any of the adjustment values have changed
*/

View File

@ -795,8 +795,6 @@ st_entry_class_init (StEntryClass *klass)
/* signals */
/**
* StEntry::primary-icon-clicked:
* @self: the #StEntry
*
*
* Emitted when the primary icon is clicked
*/
@ -809,7 +807,6 @@ st_entry_class_init (StEntryClass *klass)
G_TYPE_NONE, 0);
/**
* StEntry::secondary-icon-clicked:
* @self: the #StEntry
*
* Emitted when the secondary icon is clicked
*/

View File

@ -191,15 +191,6 @@ st_scroll_view_fade_set_actor (ClutterActorMeta *meta,
g_return_if_fail (actor == NULL || ST_IS_SCROLL_VIEW (actor));
if (!clutter_feature_available (CLUTTER_FEATURE_SHADERS_GLSL))
{
/* if we don't have support for GLSL shaders then we
* forcibly disable the ActorMeta
*/
clutter_actor_meta_set_enabled (meta, FALSE);
return;
}
if (self->vadjustment)
{
g_signal_handlers_disconnect_by_func (self->vadjustment,

View File

@ -34,8 +34,6 @@ struct _StThemeContext {
/* set of StThemeNode */
GHashTable *nodes;
int scale_factor;
};
struct _StThemeContextClass {
@ -44,12 +42,6 @@ struct _StThemeContextClass {
#define DEFAULT_FONT "sans-serif 10"
enum
{
PROP_0,
PROP_SCALE_FACTOR
};
enum
{
CHANGED,
@ -65,15 +57,6 @@ static void on_icon_theme_changed (StTextureCache *cache,
StThemeContext *context);
static void st_theme_context_changed (StThemeContext *context);
static void st_theme_context_set_property (GObject *object,
guint prop_id,
const GValue *value,
GParamSpec *pspec);
static void st_theme_context_get_property (GObject *object,
guint prop_id,
GValue *value,
GParamSpec *pspec);
static void
st_theme_context_finalize (GObject *object)
{
@ -103,23 +86,8 @@ st_theme_context_class_init (StThemeContextClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->set_property = st_theme_context_set_property;
object_class->get_property = st_theme_context_get_property;
object_class->finalize = st_theme_context_finalize;
/**
* StThemeContext:scale-factor:
*
* The scaling factor used or high dpi scaling.
*/
g_object_class_install_property (object_class,
PROP_SCALE_FACTOR,
g_param_spec_int ("scale-factor",
"Scale factor",
"Integer scale factor used for high dpi scaling",
0, G_MAXINT, 1,
G_PARAM_READABLE | G_PARAM_WRITABLE));
signals[CHANGED] =
g_signal_new ("changed",
G_TYPE_FROM_CLASS (klass),
@ -146,53 +114,6 @@ st_theme_context_init (StThemeContext *context)
context->nodes = g_hash_table_new_full ((GHashFunc) st_theme_node_hash,
(GEqualFunc) st_theme_node_equal,
g_object_unref, NULL);
context->scale_factor = 1;
}
static void
st_theme_context_set_property (GObject *object,
guint prop_id,
const GValue *value,
GParamSpec *pspec)
{
StThemeContext *context = ST_THEME_CONTEXT (object);
switch (prop_id)
{
case PROP_SCALE_FACTOR:
{
int scale_factor = g_value_get_int (value);
if (scale_factor != context->scale_factor)
{
context->scale_factor = scale_factor;
st_theme_context_changed (context);
}
break;
}
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
static void
st_theme_context_get_property (GObject *object,
guint prop_id,
GValue *value,
GParamSpec *pspec)
{
StThemeContext *context = ST_THEME_CONTEXT (object);
switch (prop_id)
{
case PROP_SCALE_FACTOR:
g_value_set_int (value, context->scale_factor);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
/**

View File

@ -1015,9 +1015,6 @@ get_length_from_term (StThemeNode *node,
} type = ABSOLUTE;
double multiplier = 1.0;
int scale_factor;
g_object_get (node->context, "scale-factor", &scale_factor, NULL);
if (term->type != TERM_NUMBER)
{
@ -1031,7 +1028,7 @@ get_length_from_term (StThemeNode *node,
{
case NUM_LENGTH_PX:
type = ABSOLUTE;
multiplier = 1 * scale_factor;
multiplier = 1;
break;
case NUM_LENGTH_PT:
type = POINTS;