Compare commits

..

2 Commits

Author SHA1 Message Date
Benjamin Berg
869f8f480c runDialog: Use new app based launch helper
Doing this has the advantage of using the GLib GDesktopAppInfo launching
API, resulting in the automatic registration of the application with
systemd.

See: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1596
Closes: #3025

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1384
2020-07-31 17:11:24 +02:00
Benjamin Berg
4e54cbcc60 util: Add new trySpawnAppCommandline function
Add a new helper function to launch a command line as if it was an
application. This has the advantage of using the appropriate code paths
in GLib (and gnome-shell currently) to place the launched program into a
separate systemd scope.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1384
2020-07-31 17:10:15 +02:00
141 changed files with 6948 additions and 10554 deletions

View File

@@ -9,6 +9,7 @@ stages:
variables:
BUNDLE: "extensions-git.flatpak"
JS_LOG: "js-report.txt"
POT_LOG: "pot-update.txt"
.only_default: &only_default
only:
@@ -66,7 +67,6 @@ no_template_check:
build:
image: registry.gitlab.gnome.org/gnome/mutter/master:v4
stage: build
needs: []
before_script:
- .gitlab-ci/checkout-mutter.sh
- meson mutter mutter/build --prefix=/usr -Dtests=false
@@ -85,7 +85,6 @@ build:
test:
image: registry.gitlab.gnome.org/gnome/mutter/master:v4
stage: test
needs: ["build"]
variables:
XDG_RUNTIME_DIR: "$CI_PROJECT_DIR/runtime-dir"
NO_AT_BRIDGE: "1"
@@ -100,9 +99,24 @@ test:
- build/meson-logs/testlog.txt
when: on_failure
test-pot:
image: registry.gitlab.gnome.org/gnome/mutter/master:v4
stage: test
before_script:
- ninja -C mutter/build install
script:
# Check that pot files are generated correctly:
# https://savannah.gnu.org/bugs/?50920#comment5
- ninja -C build gnome-shell-pot 2>&1 | awk '
BEGIN { start=0; }
start==1 { print $0; }
/gnome-shell-pot/ { start=1; }
' | tee $POT_LOG
- (! grep -q . $POT_LOG)
<<: *only_default
flatpak:
stage: build
needs: []
variables:
SUBPROJECT: "subprojects/extensions-app"
# Your manifest path

View File

@@ -131,7 +131,7 @@ whenever possible, that is when not inheriting from GObjects.
};
```
For GObject inheritance, we use the GObject.registerClass() function provided
For GObject inheritence, we use the GObject.registerClass() function provided
by gjs.
```javascript
var MyActor = GObject.registerClass(

73
NEWS
View File

@@ -1,58 +1,3 @@
3.37.91
=======
* Fix potential stack overflow in libcroco [Michael; !1404]
* Fix page removal in app picker [Georges; !1406]
* Fix "old style" VPN authentication [Florian; !1407]
* Fix X11 session login [Benjamin; !1418]
* Fix week number alignment when using font-scaling [Joonas; !1415]
* Fix lock screen on systems without GLSL shader support [Zephaniah; #3071]
* Misc. bug fixes and cleanups [Florian, Jonas, Georges, Andre, Will, Björn;
!1396, !1359, !1408, !1409, !1414, !1413, !1416, #3073]
Contributors:
Jonas Ådahl, Benjamin Berg, Michael Catanzaro, Björn Daase, Joonas Henriksson,
Zephaniah E. Loss-Cutler-Hull, Andre Moreira Magalhaes, Florian Müllner,
Georges Basile Stavracas Neto, Will Thompson
Translators:
Fran Dieguez [gl], Jordi Mas [ca], Daniel Mustieles [es],
Florentina Mușat [ro], Akarshan Biswas [bn_IN], Baurzhan Muftakhidinov [kk],
Piotr Drąg [pl], Rafael Fontenelle [pt_BR], Emin Tufan Çetin [tr],
sicklylife [ja], Danial Behzadi [fa], Jiri Grönroos [fi], Goran Vidović [hr],
Matej Urbančič [sl], Boyuan Yang [zh_CN]
3.37.90
=======
* Fix extension updates when many extensions are installed [Jeremias; !1363]
* Fix missing icons in on-screen keyboard [Emre; #2631, #3007]
* Fix delay when showing calendar events [Sebastian; #2992]
* Allow rearranging items in app picker [Georges; !1284]
* Fix top bar navigation when NumLock is active [Olivier; #550]
* Delay login animation until wallpaper has loaded [Michael; #734996]
* Reset auth prompt on login screen on VT switch before fade in [Ray; #2997]
* Move screencasting into a separate service [Jonas Å.; !1372]
* Replace loaded terms with more descriptive one [Olivier; !1393]
* Add "Boot Options" support to restart dialog [Hans; !199]
* Move "Restart" into a separate menu item/dialog [Florian; #2202]
* Default to not installing updates on low battery [Michael; #2717]
* Misc. bug fixes and cleanups [Florian, Daniel V., Georges, Jonas Å.,
Daniel G., Carlos, Benjamin, Piotr, Andre, Jonas D., Andy; !1357, !1356,
#2969, #2969, !1358, !1371, #3005, !1380, #3022, !1381, !895, !1387, !1386,
!1385, #3037, !1389, !1390, !1391, !1383, !1399, #2983, !1403]
Contributors:
Jonas Ådahl, Benjamin Berg, Michael Catanzaro, Piotr Drąg, Jonas Dreßler,
Olivier Fourdan, Carlos Garnacho, Hans de Goede, Andy Holmes,
Sebastian Keller, Andre Moreira Magalhaes, Daniel García Moreno,
Florian Müllner, Georges Basile Stavracas Neto, Jeremias Ortega, Ray Strode,
Emre Uyguroglu, Daniel van Vugt
Translators:
Tim Sabsch [de], Boyuan Yang [zh_CN], Fabio Tomat [fur],
Efstathios Iosifidis [el], Rafael Fontenelle [pt_BR], Yuri Chornoivan [uk],
Daniel Șerbănescu [ro], Jordi Mas [ca], Daniel Mustieles [es],
Emin Tufan Çetin [tr], Asier Sarasua Garmendia [eu]
3.37.3
======
* Refactor and clean up window picker
@@ -285,7 +230,7 @@ Translators:
* Handle extension updates [Florian; !945]
* Animate showing and hiding caps-lock warning [Jonas; !952]
* Support "auto" lengths in CSS [Florian; !971]
* Turn extension-prefs into the official Extensions app [Florian; #1968]
* Turn extension-prefs into the offical Extensions app [Florian; #1968]
* Sandbox the portal helper [Michael; !983]
* Misc. bug fixes and cleanups [Florian, Björn, Jakub, Alexander, Daniel V.,
Jonas, nana-4, Carlos, Sebastian, Daniel G., Georges, Piotr; !918, !917,
@@ -574,7 +519,7 @@ Translators:
======
* Fix keeping actors visible in scrollviews [Marco; #1061]
* Move some chrome above popup windows [Jonas D.; !358]
* Include 'sandboxed-app-id' in window introspection info [Florian; #1289]
* Include 'sandboxed-app-id' in winodw introspection info [Florian; #1289]
* Port to libecal-2.0 [Milan; !501]
* Support TCRYPT in mount password dialog [segfault; !126]
* Misc. bug fixes and cleanups [Florian, Marco, Veerasamy; !517, #745, !499,
@@ -1123,7 +1068,7 @@ Translations:
* gdm: Fix "Not listed" focus indication [Florian; #784040]
* Fix missing icons in freedesktop notifications [Florian; #784245]
* gdm: Disable user list when empty [Xiaoguang; #731320]
* gdm: Allow empty response to PAM messages [Ray; #784360]
* gdm: Allow empty reponse to PAM messages [Ray; #784360]
* Fix blocked clicks in shutdown dialog [Florian; #781738]
* Show OSD popup when changing volume via scroll wheel [Florian; #781028]
* Refine list search results [Rares; #749957]
@@ -2583,7 +2528,7 @@ Translations:
* Merge the wayland branch [Giovanni, Neil; #707467]
* Make search entry behave better in RTL locales [Matthias, Florian; #705779]
* Allow to change app pages with pageUp/pageDown keys [Carlos; #707979]
* Set appropriate a11y states on expandable menu items [Alejandro; #708038]
* Set approriate a11y states on expandable menu items [Alejandro; #708038]
* Improve page indicator animation [Carlos; #707565]
* Misc bug fixes and cleanups [Florian, Olivier, Jasper, Giovanni, Magdalen,
Adel, Carlos, Rico, Joanmarie; #707308, #707430, #707508, #707557, #707600,
@@ -3867,7 +3812,7 @@ Translations:
* Update the calendar code to use ECalClient [Giovanni; #671177]
* Update jhbuild script to use the main moduleset [Owen, Will; #668440]
* StTextureCache: code cleanup, evict unused icons, merge together
simultaneous requests for the same icon [Jasper; #670771, #671656, #672273]
simulataneous requests for the same icon [Jasper; #670771, #671656, #672273]
* Clean up St for recent Clutter changes and fix bugs. StContainer and
StGroup are removed [Jasper, Florian; #670034, #670640, #670904]
* Code cleanup [Adel, Jasper, Rui; #613194, #671086, #671103]
@@ -4002,7 +3947,7 @@ Translations:
[Stefano; #664201]
- Delay rearranging windows in the overview as long as the pointer
is over a window [Vit; #645325]
* Add a GConf => DConf migration file for overridden Mutter settings
* Add a GConf => DConf migration file for overriden Mutter settings
[Florian; #667636]
* When a VPN connection is active, show that as the network icon
[Giovanni; #665115]
@@ -4249,7 +4194,7 @@ Translations:
- Add fingerprint reader support [Ray; #657823]
- Add a power button offering the choice of Suspend/Restart/Power off
[Ray; #657822]
- Remove the option to view the current keyboard layout [Matthias; #659164]
- Remove the option to view the current keyboad layout [Matthias; #659164]
- Make Control-Alt-Tab work for full keyboard access [Ray; #659177]
* Frequently initiate a full garbage collection; Spidermonkey isn't very good
at tracking the amount of resources we have allocated so this hopefully will
@@ -4466,7 +4411,7 @@ Translations:
* Fix selection highlighting for light-on-dark entries [Jasper; #643768]
* Make control-Return in the overview open a new window [Maxim]
* Delay showing the alt-Tab switcher to reduce visual noise when
flipping between windows [Dan; #652346]
flipping betweeen windows [Dan; #652346]
* When we have vertically stacked monitors, put the message tray
on the bottom one [Dan; #636963]
* Fix various problems with keynav and the Activities button
@@ -4617,7 +4562,7 @@ Translations:
- Fix missing device descriptions with multiple devices of the
same type [Giovanni]
https://bugzilla.gnome.org/show_bug.cgi?id=646074
- Label ad-hoc networks with an appropriate icon [Dan]
- Label ad-hoc neworks with an appropriate icon [Dan]
https://bugzilla.gnome.org/show_bug.cgi?id=646141
- Fix displaying some devices states as "invalid" [Dan]
https://bugzilla.gnome.org/show_bug.cgi?id=646946

View File

@@ -123,7 +123,7 @@ def locale_to_xkb(locale, name):
if xkb:
return xkb
else:
raise KeyError("layout %s explicitly disabled in overrides"
raise KeyError("layout %s explicitely disabled in overrides"
% locale)
xkb_names = sorted(name_to_xkb.keys())
if name in xkb_names:

View File

@@ -20,12 +20,6 @@
<method name="ListSessions">
<arg name="sessions" type="a(susso)" direction="out"/>
</method>
<method name="CanRebootToBootLoaderMenu">
<arg type="s" direction="out"/>
</method>
<method name="SetRebootToBootLoaderMenu">
<arg type="t" direction="in"/>
</method>
<signal name="PrepareForSleep">
<arg type="b" direction="out"/>
</signal>

View File

@@ -1,5 +1,5 @@
[Unit]
Description=GNOME Shell
Description=GNOME Shell on Wayland
DefaultDependencies=no
Requisite=gnome-session-initialized.target

View File

@@ -26,7 +26,7 @@ ExecStart=@bindir@/gnome-shell
SuccessExitStatus=1
# unset some environment variables that were set by the shell and won't work now that the shell is gone
ExecStopPost=-/bin/sh -c 'test "$SERVICE_RESULT" != "exec-condition" && systemctl --user unset-environment GNOME_SETUP_DISPLAY WAYLAND_DISPLAY DISPLAY XAUTHORITY'
ExecStopPost=-systemctl --user unset-environment GNOME_SETUP_DISPLAY WAYLAND_DISPLAY DISPLAY XAUTHORITY
# On wayland we cannot restart
Restart=no

View File

@@ -79,7 +79,7 @@
@function draw_button_hilight_color($c) {
//
// calculate the right top highlight color for buttons
// calculate the right top hilight color for buttons
//
// $c: base color;
//

View File

@@ -170,6 +170,7 @@
height: 1.8em;
width: 2.3em;
border-radius: 2px;
padding: 0.5em 0 0;
margin: 6px;
background-color: darken($bg_color, 2%);
color: lighten($fg_color, 5%);
@@ -231,9 +232,7 @@
color: $fg_color;
font-feature-settings: "tnum";
@include fontsize($base_font_size);
&:ltr { text-align: right; }
&:rtl { text-align: left; }
text-align: right;
}
// timezone offset label

View File

@@ -38,7 +38,7 @@
font-size: 18pt;
font-weight: 800;
&.lightweight {
&.leightweight {
font-size: 13pt;
font-weight: 800;
}

View File

@@ -138,10 +138,11 @@
.user-widget.horizontal .user-widget-label {
@include fontsize($base_font_size + 2);
font-weight: bold;
text-align: left;
padding-left: 15px;
&:ltr { padding-left: 14px; text-align: left; }
&:rtl { padding-right: 14px; text-align: right; }
&:ltr { padding-left: 14px; }
&:rtl { padding-right: 14px; }
}
.user-widget.vertical .user-widget-label {

View File

@@ -71,11 +71,9 @@
> .event-time {
color: transparentize($fg_color, 0.5);
@include fontsize($base_font_size - 2);
text-align: right;
/* HACK: the label should be baseline-aligned with a 1em label, fake this with some bottom padding */
padding-bottom: 0.13em;
&:ltr { text-align: right };
&:rtl { text-align: left };
}
}

View File

@@ -1,4 +1,4 @@
/* Notifications & Message Tray */
/* Notifications & Mesage Tray */
$notification_banner_height: 64px;
$notification_banner_width: 34em;

View File

@@ -76,10 +76,8 @@ $popover_arrow_height: 12px;
// container for radio and check boxes
.popup-menu-ornament {
text-align: right;
width: 1.2em;
&:ltr { text-align: right };
&:rtl { text-align: left };
}
// separator

View File

@@ -16,7 +16,7 @@ $slider_size: 15px;
-barlevel-overdrive-color: $destructive_color;
-barlevel-overdrive-border-color: if($variant == 'light', darken($destructive_color, 4%), lighten($destructive_color, 2%)); //trough border when red;
-barlevel-overdrive-separator-width:1px;
// slider handler
// slider hander
-slider-handle-radius: $slider_size * 0.5; // half the size of the size
-slider-handle-border-width: 1px;
-slider-handle-border-color: if($variant == 'light', $borders_color, $fg_color);

View File

@@ -224,7 +224,7 @@ var Recorder = class {
video/x-raw,max-framerate=${framerate}/1 !
videoconvert !
${this._pipelineString} !
filesink location="${this._filePath}"`;
filesink location=${this._filePath}`;
fullPipeline = this._substituteThreadCount(fullPipeline);
this._pipeline = Gst.parse_launch_full(fullPipeline,

View File

@@ -6,11 +6,10 @@ const { Clutter, GObject, Pango, Shell, St } = imports.gi;
const Animation = imports.ui.animation;
const Batch = imports.gdm.batch;
const GdmUtil = imports.gdm.util;
const OVirt = imports.gdm.oVirt;
const Util = imports.misc.util;
const Params = imports.misc.params;
const ShellEntry = imports.ui.shellEntry;
const UserWidget = imports.ui.userWidget;
const Util = imports.misc.util;
var DEFAULT_BUTTON_WELL_ICON_SIZE = 16;
var DEFAULT_BUTTON_WELL_ANIMATION_DELAY = 1000;
@@ -483,7 +482,7 @@ var AuthPrompt = GObject.registerClass({
// 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(OVirt.SERVICE_NAME) ||
} else if (this._userVerifier.serviceIsForeground(GdmUtil.OVIRT_SERVICE_NAME) ||
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

View File

@@ -32,7 +32,6 @@
<file>misc/util.js</file>
<file>misc/weather.js</file>
<file>perf/basic.js</file>
<file>perf/core.js</file>
<file>perf/hwtest.js</file>

View File

@@ -3,7 +3,7 @@ const { Gio, GLib, Meta, Shell, St } = imports.gi;
const INTROSPECT_SCHEMA = 'org.gnome.shell';
const INTROSPECT_KEY = 'introspect';
const APP_ALLOWLIST = ['org.freedesktop.impl.portal.desktop.gtk'];
const APP_WHITELIST = ['org.freedesktop.impl.portal.desktop.gtk'];
const INTROSPECT_DBUS_API_VERSION = 3;
@@ -46,13 +46,13 @@ var IntrospectService = class {
this._syncRunningApplications();
this._allowlistMap = new Map();
APP_ALLOWLIST.forEach(appName => {
this._whitelistMap = new Map();
APP_WHITELIST.forEach(appName => {
Gio.DBus.watch_name(Gio.BusType.SESSION,
appName,
Gio.BusNameWatcherFlags.NONE,
(conn, name, owner) => this._allowlistMap.set(name, owner),
(conn, name) => this._allowlistMap.delete(name));
(conn, name, owner) => this._whitelistMap.set(name, owner),
(conn, name) => this._whitelistMap.delete(name));
});
this._settings = St.Settings.get();
@@ -74,8 +74,8 @@ var IntrospectService = class {
return this._introspectSettings.get_boolean(INTROSPECT_KEY);
}
_isSenderAllowed(sender) {
return [...this._allowlistMap.values()].includes(sender);
_isSenderWhitelisted(sender) {
return [...this._whitelistMap.values()].includes(sender);
}
_getSandboxedAppId(app) {
@@ -138,7 +138,7 @@ var IntrospectService = class {
if (this._isIntrospectEnabled())
return true;
if (this._isSenderAllowed(invocation.get_sender()))
if (this._isSenderWhitelisted(invocation.get_sender()))
return true;
return false;

View File

@@ -158,23 +158,6 @@ var LoginManagerSystemd = class {
});
}
canRebootToBootLoaderMenu(asyncCallback) {
this._proxy.CanRebootToBootLoaderMenuRemote((result, error) => {
if (error) {
asyncCallback(false, false);
} else {
const needsAuth = result[0] === 'challenge';
const canRebootToBootLoaderMenu = needsAuth || result[0] === 'yes';
asyncCallback(canRebootToBootLoaderMenu, needsAuth);
}
});
}
setRebootToBootLoaderMenu() {
/* Parameter is timeout in usec, show to menu for 60 seconds */
this._proxy.SetRebootToBootLoaderMenuRemote(60000000);
}
listSessions(asyncCallback) {
this._proxy.ListSessionsRemote((result, error) => {
if (error)
@@ -220,13 +203,6 @@ var LoginManagerDummy = class {
asyncCallback(false, false);
}
canRebootToBootLoaderMenu(asyncCallback) {
asyncCallback(false, false);
}
setRebootToBootLoaderMenu() {
}
listSessions(asyncCallback) {
asyncCallback([]);
}

View File

@@ -121,10 +121,10 @@ var ParentalControlsManager = GObject.registerClass({
// Calculate whether the given app (a Gio.DesktopAppInfo) should be shown
// on the desktop, in search results, etc. The app should be shown if:
// - The .desktop file doesnt say it should be hidden.
// - The executable from the .desktop files Exec line isnt denied in
// - The executable from the .desktop files Exec line isnt blacklisted in
// the users parental controls.
// - None of the flatpak app IDs from the X-Flatpak and the
// X-Flatpak-RenamedFrom lines are denied in the users parental
// X-Flatpak-RenamedFrom lines are blacklisted in the users parental
// controls.
shouldShowApp(appInfo) {
// Quick decision?

View File

@@ -21,7 +21,6 @@ const SENSOR_OBJECT_PATH = '/net/hadess/SensorProxy';
const SensorProxyInterface = loadInterfaceXML('net.hadess.SensorProxy');
const POWER_OFF_ACTION_ID = 'power-off';
const RESTART_ACTION_ID = 'restart';
const LOCK_SCREEN_ACTION_ID = 'lock-screen';
const LOGOUT_ACTION_ID = 'logout';
const SUSPEND_ACTION_ID = 'suspend';
@@ -41,38 +40,41 @@ function getDefault() {
const SystemActions = GObject.registerClass({
Properties: {
'can-power-off': GObject.ParamSpec.boolean(
'can-power-off', 'can-power-off', 'can-power-off',
GObject.ParamFlags.READABLE,
false),
'can-restart': GObject.ParamSpec.boolean(
'can-restart', 'can-restart', 'can-restart',
GObject.ParamFlags.READABLE,
false),
'can-suspend': GObject.ParamSpec.boolean(
'can-suspend', 'can-suspend', 'can-suspend',
GObject.ParamFlags.READABLE,
false),
'can-lock-screen': GObject.ParamSpec.boolean(
'can-lock-screen', 'can-lock-screen', 'can-lock-screen',
GObject.ParamFlags.READABLE,
false),
'can-switch-user': GObject.ParamSpec.boolean(
'can-switch-user', 'can-switch-user', 'can-switch-user',
GObject.ParamFlags.READABLE,
false),
'can-logout': GObject.ParamSpec.boolean(
'can-logout', 'can-logout', 'can-logout',
GObject.ParamFlags.READABLE,
false),
'can-lock-orientation': GObject.ParamSpec.boolean(
'can-lock-orientation', 'can-lock-orientation', 'can-lock-orientation',
GObject.ParamFlags.READABLE,
false),
'orientation-lock-icon': GObject.ParamSpec.string(
'orientation-lock-icon', 'orientation-lock-icon', 'orientation-lock-icon',
GObject.ParamFlags.READWRITE,
null),
'can-power-off': GObject.ParamSpec.boolean('can-power-off',
'can-power-off',
'can-power-off',
GObject.ParamFlags.READABLE,
false),
'can-suspend': GObject.ParamSpec.boolean('can-suspend',
'can-suspend',
'can-suspend',
GObject.ParamFlags.READABLE,
false),
'can-lock-screen': GObject.ParamSpec.boolean('can-lock-screen',
'can-lock-screen',
'can-lock-screen',
GObject.ParamFlags.READABLE,
false),
'can-switch-user': GObject.ParamSpec.boolean('can-switch-user',
'can-switch-user',
'can-switch-user',
GObject.ParamFlags.READABLE,
false),
'can-logout': GObject.ParamSpec.boolean('can-logout',
'can-logout',
'can-logout',
GObject.ParamFlags.READABLE,
false),
'can-lock-orientation': GObject.ParamSpec.boolean('can-lock-orientation',
'can-lock-orientation',
'can-lock-orientation',
GObject.ParamFlags.READABLE,
false),
'orientation-lock-icon': GObject.ParamSpec.string('orientation-lock-icon',
'orientation-lock-icon',
'orientation-lock-icon',
GObject.ParamFlags.READWRITE,
null),
},
}, class SystemActions extends GObject.Object {
_init() {
@@ -91,15 +93,7 @@ const SystemActions = GObject.registerClass({
name: C_("search-result", "Power Off"),
iconName: 'system-shutdown-symbolic',
// Translators: A list of keywords that match the power-off action, separated by semicolons
keywords: tokenizeKeywords(_('power off;shutdown;halt;stop')),
available: false,
});
this._actions.set(RESTART_ACTION_ID, {
// Translators: The name of the restart action in search
name: C_('search-result', 'Restart'),
iconName: 'system-reboot-symbolic',
// Translators: A list of keywords that match the restart action, separated by semicolons
keywords: tokenizeKeywords(_('reboot;restart;')),
keywords: tokenizeKeywords(_('power off;shutdown;reboot;restart;halt;stop')),
available: false,
});
this._actions.set(LOCK_SCREEN_ACTION_ID, {
@@ -209,11 +203,6 @@ const SystemActions = GObject.registerClass({
return this._actions.get(POWER_OFF_ACTION_ID).available;
}
// eslint-disable-next-line camelcase
get can_restart() {
return this._actions.get(RESTART_ACTION_ID).available;
}
// eslint-disable-next-line camelcase
get can_suspend() {
return this._actions.get(SUSPEND_ACTION_ID).available;
@@ -317,9 +306,6 @@ const SystemActions = GObject.registerClass({
case POWER_OFF_ACTION_ID:
this.activatePowerOff();
break;
case RESTART_ACTION_ID:
this.activateRestart();
break;
case LOCK_SCREEN_ACTION_ID:
this.activateLockScreen();
break;
@@ -361,9 +347,6 @@ const SystemActions = GObject.registerClass({
this._loginScreenSettings.get_boolean(DISABLE_RESTART_KEY));
this._actions.get(POWER_OFF_ACTION_ID).available = this._canHavePowerOff && !disabled;
this.notify('can-power-off');
this._actions.get(RESTART_ACTION_ID).available = this._canHavePowerOff && !disabled;
this.notify('can-restart');
}
_updateHaveSuspend() {
@@ -462,13 +445,6 @@ const SystemActions = GObject.registerClass({
this._session.ShutdownRemote(0);
}
activateRestart() {
if (!this._actions.get(RESTART_ACTION_ID).available)
throw new Error('The restart action is not available!');
this._session.RebootRemote();
}
activateSuspend() {
if (!this._actions.get(SUSPEND_ACTION_ID).available)
throw new Error('The suspend action is not available!');

View File

@@ -1,7 +1,7 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/* exported findUrls, spawn, spawnCommandLine, spawnApp, trySpawnCommandLine,
formatTime, formatTimeSpan, createTimeLabel, insertSorted,
ensureActorVisibleInScrollView, wiggle */
/* exported findUrls, spawn, spawnCommandLine, spawnApp, trySpawnAppCommandline,
trySpawnCommandLine, formatTime, formatTimeSpan, createTimeLabel,
insertSorted, ensureActorVisibleInScrollView, wiggle */
const { Clutter, Gio, GLib, Shell, St, GnomeDesktop } = imports.gi;
const Gettext = imports.gettext;
@@ -86,18 +86,49 @@ function spawnCommandLine(commandLine) {
}
}
// trySpawnAppCommandline:
// @command: The command to spawn
//
// Runs @command as if it was an application, handling startup notification
// and placing it into a separate systemd scope.
function trySpawnAppCommandline(command) {
const quoted = command.replace(/%/g, '%%');
// This cannot fail currently
const app = Gio.AppInfo.create_from_commandline(quoted, null,
Gio.AppInfoCreateFlags.SUPPORTS_STARTUP_NOTIFICATION);
// Launching applications does not check whether the executable exists,
// it'll just log an error later on. So do an explicit check here.
const exec = app.get_executable();
if (!GLib.find_program_in_path(exec)) {
throw new GLib.SpawnError({
code: GLib.SpawnError.NOENT,
message: _('Command not found'),
});
}
try {
let context = global.create_app_launch_context(0, -1);
app.launch([], context);
} catch (err) {
// Replace "Error invoking global.create_app_launch_context: " with
// something nicer
err.message = err.message.replace(/[^:]*: /, '%s\n'.format(_('Could not parse command:')));
throw err;
}
}
// spawnApp:
// @argv: an argv array
//
// Runs @argv as if it was an application, handling startup notification
// and placing it into a separate systemd scope.
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(0, -1);
app.launch([], context);
} catch (err) {
trySpawnAppCommandline(argv.join(' '));
} catch (err) {
_handleSpawnError(argv[0], err);
}
}

View File

@@ -1,146 +0,0 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/* exported run, finish, script_topBarNavDone, script_notificationShowDone,
script_notificationCloseDone, script_overviewShowDone,
script_applicationsShowStart, script_applicationsShowDone, METRICS,
*/
/* eslint camelcase: ["error", { properties: "never", allow: ["^script_"] }] */
const { St } = imports.gi;
const Main = imports.ui.main;
const MessageTray = imports.ui.messageTray;
const Scripting = imports.ui.scripting;
// This script tests the most important (basic) functionality of the shell.
var METRICS = {};
async function run() {
/* eslint-disable no-await-in-loop */
Scripting.defineScriptEvent('topBarNavStart', 'Starting to navigate the top bar');
Scripting.defineScriptEvent('topBarNavDone', 'Done navigating the top bar');
Scripting.defineScriptEvent('notificationShowStart', 'Showing a notification');
Scripting.defineScriptEvent('notificationShowDone', 'Done showing a notification');
Scripting.defineScriptEvent('notificationCloseStart', 'Closing a notification');
Scripting.defineScriptEvent('notificationCloseDone', 'Done closing a notification');
Scripting.defineScriptEvent('overviewShowStart', 'Starting to show the overview');
Scripting.defineScriptEvent('overviewShowDone', 'Overview finished showing');
Scripting.defineScriptEvent('applicationsShowStart', 'Starting to switch to applications view');
Scripting.defineScriptEvent('applicationsShowDone', 'Done switching to applications view');
Main.overview.connect('shown',
() => Scripting.scriptEvent('overviewShowDone'));
await Scripting.sleep(1000);
// navigate through top bar
Scripting.scriptEvent('topBarNavStart');
Main.panel.statusArea.aggregateMenu.menu.open();
await Scripting.sleep(400);
const { menuManager } = Main.panel;
while (menuManager.activeMenu &&
Main.panel.navigate_focus(menuManager.activeMenu.sourceActor,
St.DirectionType.TAB_BACKWARD, false))
await Scripting.sleep(400);
Scripting.scriptEvent('topBarNavDone');
await Scripting.sleep(1000);
// notification
const source = new MessageTray.SystemNotificationSource();
Main.messageTray.add(source);
Scripting.scriptEvent('notificationShowStart');
source.connect('notification-show',
() => Scripting.scriptEvent('notificationShowDone'));
const notification = new MessageTray.Notification(source,
'A test notification');
source.showNotification(notification);
await Scripting.sleep(400);
Main.panel.statusArea.dateMenu.menu.open();
await Scripting.sleep(400);
Scripting.scriptEvent('notificationCloseStart');
notification.connect('destroy',
() => Scripting.scriptEvent('notificationCloseDone'));
notification.destroy();
await Scripting.sleep(400);
Main.panel.statusArea.dateMenu.menu.close();
await Scripting.waitLeisure();
await Scripting.sleep(1000);
// overview (window picker)
Scripting.scriptEvent('overviewShowStart');
Main.overview.show();
await Scripting.waitLeisure();
Main.overview.hide();
await Scripting.waitLeisure();
await Scripting.sleep(1000);
// overview (app picker)
Main.overview.show();
await Scripting.waitLeisure();
Scripting.scriptEvent('applicationsShowStart');
// eslint-disable-next-line require-atomic-updates
Main.overview.dash.showAppsButton.checked = true;
await Scripting.waitLeisure();
Scripting.scriptEvent('applicationsShowDone');
// eslint-disable-next-line require-atomic-updates
Main.overview.dash.showAppsButton.checked = false;
await Scripting.waitLeisure();
Main.overview.hide();
await Scripting.waitLeisure();
/* eslint-enable no-await-in-loop */
}
let topBarNav = false;
let notificationShown = false;
let notificationClosed = false;
let windowPickerShown = false;
let appPickerShown = false;
function script_topBarNavDone() {
topBarNav = true;
}
function script_notificationShowDone() {
notificationShown = true;
}
function script_notificationCloseDone() {
notificationClosed = true;
}
function script_overviewShowDone() {
windowPickerShown = true;
}
function script_applicationsShowDone() {
appPickerShown = true;
}
function finish() {
if (!topBarNav)
throw new Error('Failed to navigate top bar');
if (!notificationShown)
throw new Error('Failed to show notification');
if (!notificationClosed)
throw new Error('Failed to close notification');
if (!windowPickerShown)
throw new Error('Failed to show window picker');
if (!appPickerShown)
throw new Error('Failed to show app picker');
}

View File

@@ -70,8 +70,7 @@ let WINDOW_CONFIGS = [
{ width: 640, height: 480, alpha: true, maximized: false, count: 10, metric: 'overviewFps10Alpha' },
];
async function run() {
/* eslint-disable no-await-in-loop */
function *run() {
Scripting.defineScriptEvent("overviewShowStart", "Starting to show the overview");
Scripting.defineScriptEvent("overviewShowDone", "Overview finished showing");
Scripting.defineScriptEvent("afterShowHide", "After a show/hide cycle for the overview");
@@ -85,7 +84,7 @@ async function run() {
Scripting.scriptEvent('overviewShowDone');
});
await Scripting.sleep(1000);
yield Scripting.sleep(1000);
for (let i = 0; i < 2 * WINDOW_CONFIGS.length; i++) {
// We go to the overview twice for each configuration; the first time
@@ -93,50 +92,49 @@ async function run() {
// a clean set of numbers.
if ((i % 2) == 0) {
let config = WINDOW_CONFIGS[i / 2];
await Scripting.destroyTestWindows();
yield Scripting.destroyTestWindows();
for (let k = 0; k < config.count; k++) {
await Scripting.createTestWindow({ width: config.width,
yield Scripting.createTestWindow({ width: config.width,
height: config.height,
alpha: config.alpha,
maximized: config.maximized });
}
await Scripting.waitTestWindows();
await Scripting.sleep(1000);
await Scripting.waitLeisure();
yield Scripting.waitTestWindows();
yield Scripting.sleep(1000);
yield Scripting.waitLeisure();
}
Scripting.scriptEvent('overviewShowStart');
Main.overview.show();
await Scripting.waitLeisure();
yield Scripting.waitLeisure();
Main.overview.hide();
await Scripting.waitLeisure();
yield Scripting.waitLeisure();
System.gc();
await Scripting.sleep(1000);
yield Scripting.sleep(1000);
Scripting.collectStatistics();
Scripting.scriptEvent('afterShowHide');
}
await Scripting.destroyTestWindows();
await Scripting.sleep(1000);
yield Scripting.destroyTestWindows();
yield Scripting.sleep(1000);
Main.overview.show();
await Scripting.waitLeisure();
yield Scripting.waitLeisure();
for (let i = 0; i < 2; i++) {
Scripting.scriptEvent('applicationsShowStart');
// eslint-disable-next-line require-atomic-updates
Main.overview.dash.showAppsButton.checked = true;
await Scripting.waitLeisure();
yield Scripting.waitLeisure();
Scripting.scriptEvent('applicationsShowDone');
// eslint-disable-next-line require-atomic-updates
Main.overview.dash.showAppsButton.checked = false;
await Scripting.waitLeisure();
yield Scripting.waitLeisure();
}
/* eslint-enable no-await-in-loop */
}
let showingOverview = false;

View File

@@ -94,8 +94,7 @@ function extractBootTimestamp() {
return result;
}
async function run() {
/* eslint-disable no-await-in-loop */
function *run() {
Scripting.defineScriptEvent("desktopShown", "Finished initial animation");
Scripting.defineScriptEvent("overviewShowStart", "Starting to show the overview");
Scripting.defineScriptEvent("overviewShowDone", "Overview finished showing");
@@ -111,7 +110,7 @@ async function run() {
Scripting.defineScriptEvent("geditLaunch", "gedit application launch");
Scripting.defineScriptEvent("geditFirstFrame", "first frame of gedit window drawn");
await Scripting.waitLeisure();
yield Scripting.waitLeisure();
Scripting.scriptEvent('desktopShown');
let interfaceSettings = new Gio.Settings({
@@ -121,22 +120,22 @@ async function run() {
Scripting.scriptEvent('overviewShowStart');
Main.overview.show();
await Scripting.waitLeisure();
yield Scripting.waitLeisure();
Scripting.scriptEvent('overviewShowDone');
await Scripting.sleep(1000);
yield Scripting.sleep(1000);
Scripting.scriptEvent('applicationsShowStart');
// eslint-disable-next-line require-atomic-updates
Main.overview.dash.showAppsButton.checked = true;
await Scripting.waitLeisure();
yield Scripting.waitLeisure();
Scripting.scriptEvent('applicationsShowDone');
await Scripting.sleep(1000);
yield Scripting.sleep(1000);
Main.overview.hide();
await Scripting.waitLeisure();
yield Scripting.waitLeisure();
// --------------------- //
// Tests of redraw speed //
@@ -146,46 +145,46 @@ async function run() {
global.frame_finish_timestamp = true;
for (let k = 0; k < 5; k++)
await Scripting.createTestWindow({ maximized: true });
await Scripting.waitTestWindows();
yield Scripting.createTestWindow({ maximized: true });
yield Scripting.waitTestWindows();
await Scripting.sleep(1000);
yield Scripting.sleep(1000);
Scripting.scriptEvent('mainViewDrawStart');
await waitAndDraw(1000);
yield waitAndDraw(1000);
Scripting.scriptEvent('mainViewDrawDone');
Main.overview.show();
Scripting.waitLeisure();
await Scripting.sleep(1500);
yield Scripting.sleep(1500);
Scripting.scriptEvent('overviewDrawStart');
await waitAndDraw(1000);
yield waitAndDraw(1000);
Scripting.scriptEvent('overviewDrawDone');
await Scripting.destroyTestWindows();
yield Scripting.destroyTestWindows();
Main.overview.hide();
await Scripting.createTestWindow({ maximized: true,
yield Scripting.createTestWindow({ maximized: true,
redraws: true });
await Scripting.waitTestWindows();
yield Scripting.waitTestWindows();
await Scripting.sleep(1000);
yield Scripting.sleep(1000);
Scripting.scriptEvent('redrawTestStart');
await Scripting.sleep(1000);
yield Scripting.sleep(1000);
Scripting.scriptEvent('redrawTestDone');
await Scripting.sleep(1000);
yield Scripting.sleep(1000);
Scripting.scriptEvent('collectTimings');
await Scripting.destroyTestWindows();
yield Scripting.destroyTestWindows();
global.frame_timestamps = false;
global.frame_finish_timestamp = false;
await Scripting.sleep(1000);
yield Scripting.sleep(1000);
let appSys = Shell.AppSystem.get_default();
let app = appSys.lookup_app('org.gnome.gedit.desktop');
@@ -198,22 +197,21 @@ async function run() {
throw new Error('gedit was already running');
while (windows.length == 0) {
await waitSignal(global.display, 'window-created');
yield waitSignal(global.display, 'window-created');
windows = app.get_windows();
}
let actor = windows[0].get_compositor_private();
await waitSignal(actor, 'first-frame');
yield waitSignal(actor, 'first-frame');
Scripting.scriptEvent('geditFirstFrame');
await Scripting.sleep(1000);
yield Scripting.sleep(1000);
windows[0].delete(global.get_current_time());
await Scripting.sleep(1000);
yield Scripting.sleep(1000);
interfaceSettings.set_boolean('enable-animations', true);
/* eslint-enable no-await-in-loop */
}
let overviewShowStart;

View File

@@ -716,7 +716,7 @@ class AppSwitcher extends SwitcherPopup.SwitcherList {
let iconSpacing = labelNaturalHeight + iconPadding + iconBorder;
let totalSpacing = this._list.spacing * (this._items.length - 1);
// We just assume the whole screen here due to weirdness happening with the passed width
// We just assume the whole screen here due to weirdness happing with the passed width
let primary = Main.layoutManager.primaryMonitor;
let parentPadding = this.get_parent().get_theme_node().get_horizontal_padding();
let availWidth = primary.width - parentPadding - this.get_theme_node().get_horizontal_padding();

View File

@@ -1541,7 +1541,7 @@ class AppViewItem extends St.Button {
return false;
if (this._withinLeeways(x))
return false;
return DND.DragMotionResult.CONTINUE;
return true;
}
@@ -1604,7 +1604,6 @@ class FolderView extends BaseAppView {
action.connect('pan', this._onPan.bind(this));
this._scrollView.add_action(action);
this._appIds = [];
this._redisplay();
}
@@ -1650,7 +1649,8 @@ class FolderView extends BaseAppView {
}
_getItemPosition(item) {
const appIndex = this._appIds.indexOf(item.id);
const appIds = this._getFolderApps();
const appIndex = appIds.indexOf(item.id);
if (appIndex === -1)
return [-1, -1];
@@ -1660,8 +1660,10 @@ class FolderView extends BaseAppView {
}
_compareItems(a, b) {
const aPosition = this._appIds.indexOf(a.id);
const bPosition = this._appIds.indexOf(b.id);
const appIds = this._getFolderApps();
const aPosition = appIds.indexOf(a.id);
const bPosition = appIds.indexOf(b.id);
if (aPosition === -1 && bPosition === -1)
return a.name.localeCompare(b.name);
@@ -1718,8 +1720,9 @@ class FolderView extends BaseAppView {
_loadApps() {
let apps = [];
let appSys = Shell.AppSystem.get_default();
const appIds = this._getFolderApps();
this._appIds.forEach(appId => {
appIds.forEach(appId => {
const app = appSys.lookup_app(appId);
let icon = this._items.get(appId);
@@ -1732,13 +1735,6 @@ class FolderView extends BaseAppView {
return apps;
}
_redisplay() {
// Keep the app ids list cached
this._appIds = this._getFolderApps();
super._redisplay();
}
acceptDrop(source) {
if (!super.acceptDrop(source))
return false;

View File

@@ -680,7 +680,6 @@ var Calendar = GObject.registerClass({
style_class: 'calendar-day-base calendar-week-number',
can_focus: true });
let weekFormat = Shell.util_translate_time_string(N_("Week %V"));
label.clutter_text.y_align = Clutter.ActorAlign.CENTER;
label.accessible_name = iter.toLocaleFormat(weekFormat);
layout.attach(label, rtl ? 7 : 0, row, 1, 1);
}

View File

@@ -2,7 +2,6 @@
/* exported Component */
const { Clutter, Gio, GLib, GObject, NM, Pango, Shell, St } = imports.gi;
const ByteArray = imports.byteArray;
const Signals = imports.signals;
const Dialog = imports.ui.dialog;
@@ -494,7 +493,7 @@ var VPNRequestHandler = class {
return;
}
this._vpnChildProcessLineOldStyle(ByteArray.toString(line));
this._vpnChildProcessLineOldStyle(line);
// try to read more!
this._readStdoutOldStyle();
@@ -523,7 +522,13 @@ var VPNRequestHandler = class {
let contentOverride;
try {
data = ByteArray.toGBytes(this._dataStdout.peek_buffer());
data = this._dataStdout.peek_buffer();
if (data instanceof Uint8Array)
data = imports.byteArray.toGBytes(data);
else
data = data.toGBytes();
keyfile.load_from_bytes(data, GLib.KeyFileFlags.NONE);
if (keyfile.get_integer(VPN_UI_GROUP, 'Version') != 2)

View File

@@ -44,7 +44,7 @@ var AuthenticationDialog = GObject.registerClass({
let bodyContent = new Dialog.MessageDialogContent();
if (userNames.length > 1) {
log('polkitAuthenticationAgent: Received %d '.format(userNames.length) +
log('polkitAuthenticationAgent: Received %d'.format(userNames.length) +
'identities that can be used for authentication. Only ' +
'considering one.');
}

View File

@@ -171,7 +171,7 @@ class TelepathyClient extends Tp.BaseClient {
this.add_approver_filter(filter);
this.add_handler_filter(filter);
// Allow other clients (such as Empathy) to preempt our channels if
// Allow other clients (such as Empathy) to pre-empt our channels if
// needed
this.set_delegated_channels_callback(
this._delegatedChannelsCb.bind(this));

View File

@@ -220,7 +220,7 @@ var MessageDialogContent = GObject.registerClass({
this._updateTitleStyleLater = Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => {
this._updateTitleStyleLater = 0;
this._title.add_style_class_name('lightweight');
this._title.add_style_class_name('leightweight');
return GLib.SOURCE_REMOVE;
});
}
@@ -233,7 +233,7 @@ var MessageDialogContent = GObject.registerClass({
_setLabel(this._title, title);
this._title.remove_style_class_name('lightweight');
this._title.remove_style_class_name('leightweight');
this._updateTitleStyle();
this.notify('title');

View File

@@ -18,7 +18,7 @@
*/
const { AccountsService, Clutter, Gio,
GLib, GObject, Pango, Polkit, Shell, St, UPowerGlib: UPower } = imports.gi;
GLib, GObject, Pango, Polkit, Shell, St } = imports.gi;
const CheckBox = imports.ui.checkBox;
const Dialog = imports.ui.dialog;
@@ -31,30 +31,24 @@ const { loadInterfaceXML } = imports.misc.fileUtils;
const _ITEM_ICON_SIZE = 64;
const LOW_BATTERY_THRESHOLD = 30;
const EndSessionDialogIface = loadInterfaceXML('org.gnome.SessionManager.EndSessionDialog');
const logoutDialogContent = {
subjectWithUser: C_("title", "Log Out %s"),
subject: C_("title", "Log Out"),
descriptionWithUser(user, seconds) {
return ngettext(
'%s will be logged out automatically in %d second.',
'%s will be logged out automatically in %d seconds.',
seconds).format(user, seconds);
return ngettext("%s will be logged out automatically in %d second.",
"%s will be logged out automatically in %d seconds.",
seconds).format(user, seconds);
},
description(seconds) {
return ngettext(
'You will be logged out automatically in %d second.',
'You will be logged out automatically in %d seconds.',
seconds).format(seconds);
return ngettext("You will be logged out automatically in %d second.",
"You will be logged out automatically in %d seconds.",
seconds).format(seconds);
},
showBatteryWarning: false,
confirmButtons: [{
signal: 'ConfirmedLogout',
label: C_('button', 'Log Out'),
}],
confirmButtons: [{ signal: 'ConfirmedLogout',
label: C_("button", "Log Out") }],
showOtherSessions: false,
};
@@ -62,36 +56,30 @@ const shutdownDialogContent = {
subject: C_("title", "Power Off"),
subjectWithUpdates: C_("title", "Install Updates & Power Off"),
description(seconds) {
return ngettext(
'The system will power off automatically in %d second.',
'The system will power off automatically in %d seconds.',
seconds).format(seconds);
return ngettext("The system will power off automatically in %d second.",
"The system will power off automatically in %d seconds.",
seconds).format(seconds);
},
checkBoxText: C_("checkbox", "Install pending software updates"),
showBatteryWarning: true,
confirmButtons: [{
signal: 'ConfirmedShutdown',
label: C_('button', 'Power Off'),
}],
confirmButtons: [{ signal: 'ConfirmedReboot',
label: C_("button", "Restart") },
{ signal: 'ConfirmedShutdown',
label: C_("button", "Power Off") }],
iconName: 'system-shutdown-symbolic',
showOtherSessions: true,
};
const restartDialogContent = {
subject: C_("title", "Restart"),
subjectWithUpdates: C_('title', 'Install Updates & Restart'),
description(seconds) {
return ngettext(
'The system will restart automatically in %d second.',
'The system will restart automatically in %d seconds.',
seconds).format(seconds);
return ngettext("The system will restart automatically in %d second.",
"The system will restart automatically in %d seconds.",
seconds).format(seconds);
},
checkBoxText: C_('checkbox', 'Install pending software updates'),
showBatteryWarning: true,
confirmButtons: [{
signal: 'ConfirmedReboot',
label: C_('button', 'Restart'),
}],
showBatteryWarning: false,
confirmButtons: [{ signal: 'ConfirmedReboot',
label: C_("button", "Restart") }],
iconName: 'view-refresh-symbolic',
showOtherSessions: true,
};
@@ -100,16 +88,13 @@ const restartUpdateDialogContent = {
subject: C_("title", "Restart & Install Updates"),
description(seconds) {
return ngettext(
'The system will automatically restart and install updates in %d second.',
'The system will automatically restart and install updates in %d seconds.',
seconds).format(seconds);
return ngettext("The system will automatically restart and install updates in %d second.",
"The system will automatically restart and install updates in %d seconds.",
seconds).format(seconds);
},
showBatteryWarning: true,
confirmButtons: [{
signal: 'ConfirmedReboot',
label: C_('button', 'Restart &amp; Install'),
}],
confirmButtons: [{ signal: 'ConfirmedReboot',
label: C_("button", "Restart &amp; Install") }],
unusedFutureButtonForTranslation: C_("button", "Install &amp; Power Off"),
unusedFutureCheckBoxForTranslation: C_("checkbox", "Power off after updates are installed"),
iconName: 'view-refresh-symbolic',
@@ -127,10 +112,8 @@ const restartUpgradeDialogContent = {
},
disableTimer: true,
showBatteryWarning: false,
confirmButtons: [{
signal: 'ConfirmedReboot',
label: C_('button', 'Restart &amp; Install'),
}],
confirmButtons: [{ signal: 'ConfirmedReboot',
label: C_("button", "Restart &amp; Install") }],
iconName: 'view-refresh-symbolic',
showOtherSessions: true,
};
@@ -159,7 +142,7 @@ const LogindSession = Gio.DBusProxy.makeProxyWrapper(LogindSessionIface);
const PkOfflineIface = loadInterfaceXML('org.freedesktop.PackageKit.Offline');
const PkOfflineProxy = Gio.DBusProxy.makeProxyWrapper(PkOfflineIface);
const UPowerIface = loadInterfaceXML('org.freedesktop.UPower.Device');
const UPowerIface = loadInterfaceXML('org.freedesktop.UPower');
const UPowerProxy = Gio.DBusProxy.makeProxyWrapper(UPowerIface);
function findAppFromInhibitor(inhibitor) {
@@ -230,11 +213,6 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
destroyOnClose: false });
this._loginManager = LoginManager.getLoginManager();
this._loginManager.canRebootToBootLoaderMenu(
(canRebootToBootLoaderMenu, unusedNeedsAuth) => {
this._canRebootToBootLoaderMenu = canRebootToBootLoaderMenu;
});
this._userManager = AccountsService.UserManager.get_default();
this._user = this._userManager.get_user(GLib.get_user_name());
this._updatesPermission = null;
@@ -246,7 +224,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
this._powerProxy = new UPowerProxy(Gio.DBus.system,
'org.freedesktop.UPower',
'/org/freedesktop/UPower/devices/DisplayDevice',
'/org/freedesktop/UPower',
(proxy, error) => {
if (error) {
log(error.message);
@@ -261,9 +239,6 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
this._totalSecondsToStayOpen = 0;
this._applications = [];
this._sessions = [];
this._capturedEventId = 0;
this._rebootButton = null;
this._rebootButtonAlt = null;
this.connect('destroy',
this._onDestroy.bind(this));
@@ -281,7 +256,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
this._batteryWarning = new St.Label({
style_class: 'end-session-dialog-battery-warning',
text: _('Low battery power: please plug in before installing updates.'),
text: _('Running on battery power: Please plug in before installing updates.'),
});
this._batteryWarning.clutter_text.ellipsize = Pango.EllipsizeMode.NONE;
this._batteryWarning.clutter_text.line_wrap = true;
@@ -331,32 +306,6 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
this._user.disconnect(this._userChangedId);
}
_isDischargingBattery() {
return this._powerProxy.IsPresent &&
this._powerProxy.State !== UPower.DeviceState.CHARGING &&
this._powerProxy.State !== UPower.DeviceState.FULLY_CHARGED;
}
_isBatteryLow() {
return this._isDischargingBattery() && this._powerProxy.Percentage < LOW_BATTERY_THRESHOLD;
}
_shouldShowLowBatteryWarning(dialogContent) {
if (!dialogContent.showBatteryWarning)
return false;
if (!this._isBatteryLow())
return false;
if (this._checkBox.checked)
return true;
// Show the warning if updates have already been triggered, but
// the user doesn't have enough permissions to cancel them.
let updatesAllowed = this._updatesPermission && this._updatesPermission.allowed;
return this._updateInfo.UpdatePrepared && this._updateInfo.UpdateTriggered && !updatesAllowed;
}
_sync() {
let open = this.state == ModalDialog.State.OPENING || this.state == ModalDialog.State.OPENED;
if (!open)
@@ -370,7 +319,10 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
if (dialogContent.subjectWithUpdates && this._checkBox.checked)
subject = dialogContent.subjectWithUpdates;
this._batteryWarning.visible = this._shouldShowLowBatteryWarning(dialogContent);
if (dialogContent.showBatteryWarning) {
this._batteryWarning.visible =
this._powerProxy.OnBattery && this._checkBox.checked;
}
let description;
let displayTime = _roundSecondsToInterval(this._totalSecondsToStayOpen,
@@ -411,38 +363,16 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
this._sessionSection.visible = hasSessions;
}
_onCapturedEvent(actor, event) {
let altEnabled = false;
let type = event.type();
if (type !== Clutter.EventType.KEY_PRESS && type !== Clutter.EventType.KEY_RELEASE)
return Clutter.EVENT_PROPAGATE;
let key = event.get_key_symbol();
if (key !== Clutter.KEY_Alt_L && key !== Clutter.KEY_Alt_R)
return Clutter.EVENT_PROPAGATE;
if (type === Clutter.EventType.KEY_PRESS)
altEnabled = true;
this._rebootButton.visible = !altEnabled;
this._rebootButtonAlt.visible = altEnabled;
return Clutter.EVENT_PROPAGATE;
}
_updateButtons() {
this.clearButtons();
this.addButton({ action: this.cancel.bind(this),
label: _("Cancel"),
key: Clutter.KEY_Escape });
let dialogContent = DialogContent[this._type];
let buttons = [{ action: this.cancel.bind(this),
label: _("Cancel"),
key: Clutter.KEY_Escape }];
for (let i = 0; i < dialogContent.confirmButtons.length; i++) {
let signal = dialogContent.confirmButtons[i].signal;
let label = dialogContent.confirmButtons[i].label;
let button = this.addButton({
buttons.push({
action: () => {
this.close(true);
let signalId = this.connect('closed', () => {
@@ -452,34 +382,9 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
},
label,
});
// Add Alt "Boot Options" option to the Reboot button
if (this._canRebootToBootLoaderMenu && signal === 'ConfirmedReboot') {
this._rebootButton = button;
this._rebootButtonAlt = this.addButton({
action: () => {
this.close(true);
let signalId = this.connect('closed', () => {
this.disconnect(signalId);
this._confirmRebootToBootLoaderMenu();
});
},
label: C_('button', 'Boot Options'),
});
this._rebootButtonAlt.visible = false;
this._capturedEventId = global.stage.connect('captured-event',
this._onCapturedEvent.bind(this));
}
}
}
_stopAltCapture() {
if (this._capturedEventId > 0) {
global.stage.disconnect(this._capturedEventId);
this._capturedEventId = 0;
}
this._rebootButton = null;
this._rebootButtonAlt = null;
this.setButtons(buttons);
}
close(skipSignal) {
@@ -491,21 +396,14 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
cancel() {
this._stopTimer();
this._stopAltCapture();
this._dbusImpl.emit_signal('Canceled', null);
this.close();
}
_confirmRebootToBootLoaderMenu() {
this._loginManager.setRebootToBootLoaderMenu();
this._confirm('ConfirmedReboot');
}
_confirm(signal) {
let callback = () => {
this._fadeOutDialog();
this._stopTimer();
this._stopAltCapture();
this._dbusImpl.emit_signal(signal, null);
};
@@ -773,17 +671,19 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
if (dialogContent.showOtherSessions)
this._loadSessions();
let updateTriggered = this._updateInfo.UpdateTriggered;
let updatePrepared = this._updateInfo.UpdatePrepared;
let updatesAllowed = this._updatesPermission && this._updatesPermission.allowed;
_setCheckBoxLabel(this._checkBox, dialogContent.checkBoxText || '');
this._checkBox.visible = dialogContent.checkBoxText && this._updateInfo.UpdatePrepared && updatesAllowed;
this._checkBox.visible = dialogContent.checkBoxText && updatePrepared && updatesAllowed;
this._checkBox.checked = this._checkBox.visible;
if (this._type === DialogType.UPGRADE_RESTART)
this._checkBox.checked = this._checkBox.visible && this._updateInfo.UpdateTriggered && !this._isDischargingBattery();
else
this._checkBox.checked = this._checkBox.visible && !this._isBatteryLow();
this._batteryWarning.visible = this._shouldShowLowBatteryWarning(dialogContent);
// We show the warning either together with the checkbox, or when
// updates have already been triggered, but the user doesn't have
// enough permissions to cancel them.
this._batteryWarning.visible = dialogContent.showBatteryWarning &&
(this._checkBox.visible || updatePrepared && updateTriggered && !updatesAllowed);
this._updateButtons();

View File

@@ -134,14 +134,7 @@ function _easeActor(actor, params) {
actor.set_easing_mode(params.mode);
delete params.mode;
const prepare = () => {
Meta.disable_unredirect_for_display(global.display);
global.begin_work();
};
const cleanup = () => {
Meta.enable_unredirect_for_display(global.display);
global.end_work();
};
let cleanup = () => Meta.enable_unredirect_for_display(global.display);
let callback = _makeEaseCallback(params, cleanup);
// cancel overwritten transitions
@@ -156,9 +149,9 @@ function _easeActor(actor, params) {
.find(t => t !== null);
if (transition && transition.delay)
transition.connect('started', () => prepare());
transition.connect('started', () => Meta.disable_unredirect_for_display(global.display));
else
prepare();
Meta.disable_unredirect_for_display(global.display);
if (transition) {
transition.set({ repeatCount, autoReverse });
@@ -198,14 +191,7 @@ function _easeActorProperty(actor, propName, target, params) {
if (actor instanceof Clutter.Actor && !actor.mapped)
duration = 0;
const prepare = () => {
Meta.disable_unredirect_for_display(global.display);
global.begin_work();
};
const cleanup = () => {
Meta.enable_unredirect_for_display(global.display);
global.end_work();
};
let cleanup = () => Meta.enable_unredirect_for_display(global.display);
let callback = _makeEaseCallback(params, cleanup);
// cancel overwritten transition
@@ -217,7 +203,7 @@ function _easeActorProperty(actor, propName, target, params) {
if (!isReversed)
obj[prop] = target;
prepare();
Meta.disable_unredirect_for_display(global.display);
callback(true);
return;
@@ -236,9 +222,9 @@ function _easeActorProperty(actor, propName, target, params) {
transition.set_to(target);
if (transition.delay)
transition.connect('started', () => prepare());
transition.connect('started', () => Meta.disable_unredirect_for_display(global.display));
else
prepare();
Meta.disable_unredirect_for_display(global.display);
transition.connect('stopped', (t, finished) => callback(finished));
}

View File

@@ -2,7 +2,6 @@
/* exported init connect disconnect */
const { GLib, Gio, GObject, Shell, St } = imports.gi;
const ByteArray = imports.byteArray;
const Signals = imports.signals;
const ExtensionDownloader = imports.ui.extensionDownloader;
@@ -283,7 +282,8 @@ var ExtensionManager = class {
let metadataContents, success_;
try {
[success_, metadataContents] = metadataFile.load_contents(null);
metadataContents = ByteArray.toString(metadataContents);
if (metadataContents instanceof Uint8Array)
metadataContents = imports.byteArray.toString(metadataContents);
} catch (e) {
throw new Error('Failed to load metadata.json: %s'.format(e.toString()));
}

View File

@@ -468,12 +468,6 @@ var IconGridLayout = GObject.registerClass({
this._unlinkItem(item);
});
// Adjust the page indexes of items after this page
for (const itemData of this._items.values()) {
if (itemData.pageIndex > pageIndex)
itemData.pageIndex--;
}
this._pages.splice(pageIndex, 1);
this.emit('pages-changed');
}

View File

@@ -7,7 +7,7 @@ const PermissionStore = imports.misc.permissionStore;
const WAYLAND_KEYBINDINGS_SCHEMA = 'org.gnome.mutter.wayland.keybindings';
const APP_ALLOWLIST = ['gnome-control-center.desktop'];
const APP_WHITELIST = ['gnome-control-center.desktop'];
const APP_PERMISSIONS_TABLE = 'gnome';
const APP_PERMISSIONS_ID = 'shortcuts-inhibitor';
const GRANTED = 'GRANTED';
@@ -118,7 +118,7 @@ var InhibitShortcutsDialog = GObject.registerClass({
}
vfunc_show() {
if (this._app && APP_ALLOWLIST.includes(this._app.get_id())) {
if (this._app && APP_WHITELIST.includes(this._app.get_id())) {
this._emitResponse(DialogResponse.ALLOW);
return;
}

View File

@@ -2,7 +2,6 @@
/* exported KeyboardManager */
const { Clutter, Gio, GLib, GObject, Meta, St } = imports.gi;
const ByteArray = imports.byteArray;
const Signals = imports.signals;
const InputSourceManager = imports.ui.status.keyboard;
@@ -533,7 +532,8 @@ var KeyboardModel = class {
_loadModel(groupName) {
let file = Gio.File.new_for_uri('resource:///org/gnome/shell/osk-layouts/%s.json'.format(groupName));
let [success_, contents] = file.load_contents(null);
contents = ByteArray.toString(contents);
if (contents instanceof Uint8Array)
contents = imports.byteArray.toString(contents);
return JSON.parse(contents);
}
@@ -1091,8 +1091,8 @@ var Keypad = GObject.registerClass({
{ label: '8', keyval: Clutter.KEY_8, left: 1, top: 2 },
{ label: '9', keyval: Clutter.KEY_9, left: 2, top: 2 },
{ label: '0', keyval: Clutter.KEY_0, left: 1, top: 3 },
{ keyval: Clutter.KEY_BackSpace, icon: 'edit-clear-symbolic', left: 3, top: 0 },
{ keyval: Clutter.KEY_Return, extraClassName: 'enter-key', icon: 'keyboard-enter-symbolic', left: 3, top: 1, height: 2 },
{ label: '⌫', keyval: Clutter.KEY_BackSpace, left: 3, top: 0 },
{ keyval: Clutter.KEY_Return, extraClassName: 'enter-key', left: 3, top: 1, height: 2 },
];
super._init({
@@ -1109,7 +1109,7 @@ var Keypad = GObject.registerClass({
for (let i = 0; i < keys.length; i++) {
let cur = keys[i];
let key = new Key(cur.label || "", [], cur.icon);
let key = new Key(cur.label || "", []);
if (keys[i].extraClassName)
key.keyButton.add_style_class_name(cur.extraClassName);

View File

@@ -233,7 +233,7 @@ class SlidingControl extends St.Widget {
// When pageEmpty is received, there's no visible view in the
// selector; this means we can now safely set the full slide for
// the next page, since slideIn or slideOut might have been called,
// changing the visibility
// changing the visiblity
this.remove_transition('@layout.slide-x');
this.layout.slide_x = this._getSlide();
this._updateTranslation();

View File

@@ -3,7 +3,6 @@
const { Atk, Clutter, GDesktopEnums, Gio,
GLib, GObject, Gtk, Meta, Pango, Rsvg, St } = imports.gi;
const ByteArray = imports.byteArray;
const Signals = imports.signals;
const Main = imports.ui.main;
@@ -298,7 +297,8 @@ var PadDiagram = GObject.registerClass({
_init(params) {
let file = Gio.File.new_for_uri('resource:///org/gnome/shell/theme/pad-osd.css');
let [success_, css] = file.load_contents(null);
css = ByteArray.toString(css);
if (css instanceof Uint8Array)
css = imports.byteArray.toString(css);
this._curEdited = null;
this._prevEdited = null;
this._css = css;

View File

@@ -208,7 +208,7 @@ var PopupBaseMenuItem = GObject.registerClass({
// Remove the CSS active state if the user press the button and
// while holding moves to another menu item, so we don't paint all items.
// The correct behaviour would be to set the new item with the CSS
// active state as well, but button-press-event is not triggered,
// active state as well, but button-press-event is not trigered,
// so we should track it in our own, which would involve some work
// in the container
this.remove_style_pseudo_class('active');

View File

@@ -196,7 +196,7 @@ class RunDialog extends ModalDialog.ModalDialog {
let execArg = this._terminalSettings.get_string(EXEC_ARG_KEY);
command = '%s %s %s'.format(exec, execArg, input);
}
Util.trySpawnCommandLine(command);
Util.trySpawnAppCommandline(command);
} catch (e) {
// Mmmh, that failed - see if @input matches an existing file
let path = null;

View File

@@ -21,13 +21,16 @@ const { loadInterfaceXML } = imports.misc.fileUtils;
// When scripting an automated test we want to make a series of calls
// in a linear fashion, but we also want to be able to let the main
// loop run so actions can finish. For this reason we write the script
// as an async function that uses await when it wants to let the main
// as a generator function that yields when it want to let the main
// loop run.
//
// await Scripting.sleep(1000);
// yield Scripting.sleep(1000);
// main.overview.show();
// await Scripting.waitLeisure();
// yield Scripting.waitLeisure();
//
// While it isn't important to the person writing the script, the actual
// yielded result is a function that the caller uses to provide the
// callback for resuming the script.
/**
* sleep:
@@ -282,11 +285,13 @@ function _collect(scriptModule, outputFile) {
}
async function _runPerfScript(scriptModule, outputFile) {
try {
await scriptModule.run();
} catch (err) {
log(`Script failed: ${err}\n${err.stack}`);
Meta.exit(Meta.ExitCode.ERROR);
for (let step of scriptModule.run()) {
try {
await step; // eslint-disable-line no-await-in-loop
} catch (err) {
log(`Script failed: ${err}\n${err.stack}`);
Meta.exit(Meta.ExitCode.ERROR);
}
}
try {

View File

@@ -1,7 +1,6 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/* exported SessionMode, listModes */
const ByteArray = imports.byteArray;
const GLib = imports.gi.GLib;
const Signals = imports.signals;
@@ -106,17 +105,18 @@ function _loadMode(file, info) {
let fileContent, success_, newMode;
try {
[success_, fileContent] = file.load_contents(null);
fileContent = ByteArray.toString(fileContent);
if (fileContent instanceof Uint8Array)
fileContent = imports.byteArray.toString(fileContent);
newMode = JSON.parse(fileContent);
} catch (e) {
return;
}
_modes[modeName] = {};
const excludedProps = ['unlockDialog'];
let propBlacklist = ['unlockDialog'];
for (let prop in _modes[DEFAULT_MODE]) {
if (newMode[prop] !== undefined &&
!excludedProps.includes(prop))
!propBlacklist.includes(prop))
_modes[modeName][prop] = newMode[prop];
}
_modes[modeName]['isPrimary'] = true;

View File

@@ -145,7 +145,7 @@ class Indicator extends PanelMenu.SystemIndicator {
if (nConnectedDevices > 1)
/* Translators: this is the number of connected bluetooth devices */
this._item.label.text = ngettext('%d Connected', '%d Connected', nConnectedDevices).format(nConnectedDevices);
this._item.label.text = ngettext('%d Connected", "%d Connected', nConnectedDevices).format(nConnectedDevices);
else if (nConnectedDevices === 1)
this._item.label.text = connectedDevices[0].name;
else if (adapter === null)

View File

@@ -15,7 +15,6 @@ const Util = imports.misc.util;
const { loadInterfaceXML } = imports.misc.fileUtils;
Gio._promisify(Gio.DBusConnection.prototype, 'call', 'call_finish');
Gio._promisify(NM.Client, 'new_async', 'new_finish');
Gio._promisify(NM.Client.prototype,
'check_connectivity_async', 'check_connectivity_finish');
@@ -83,30 +82,6 @@ function ensureActiveConnectionProps(active) {
}
}
function launchSettingsPanel(panel, ...args) {
const param = new GLib.Variant('(sav)',
[panel, args.map(s => new GLib.Variant('s', s))]);
const platformData = {
'desktop-startup-id': new GLib.Variant('s',
'_TIME%s'.format(global.get_current_time())),
};
try {
Gio.DBus.session.call(
'org.gnome.ControlCenter',
'/org/gnome/ControlCenter',
'org.freedesktop.Application',
'ActivateAction',
new GLib.Variant('(sava{sv})',
['launch-panel', [param], platformData]),
null,
Gio.DBusCallFlags.NONE,
-1,
null);
} catch (e) {
log('Failed to launch Settings panel: %s'.format(e.message));
}
}
var NMConnectionItem = class {
constructor(section, connection) {
this._section = section;
@@ -564,7 +539,8 @@ var NMDeviceModem = class extends NMConnectionDevice {
}
_autoConnect() {
launchSettingsPanel('network', 'connect-3g', this._device.get_path());
Util.spawn(['gnome-control-center', 'network',
'connect-3g', this._device.get_path()]);
}
destroy() {
@@ -955,8 +931,8 @@ class NMWirelessDialog extends ModalDialog.ModalDialog {
(accessPoints[0]._secType == NMAccessPointSecurity.WPA_ENT)) {
// 802.1x-enabled APs require further configuration, so they're
// handled in gnome-control-center
launchSettingsPanel('wifi', 'connect-8021x-wifi',
this._device.get_path(), accessPoints[0].get_path());
Util.spawn(['gnome-control-center', 'wifi', 'connect-8021x-wifi',
this._device.get_path(), accessPoints[0].get_path()]);
} else {
let connection = new NM.SimpleConnection();
this._client.add_and_activate_connection_async(connection, this._device, accessPoints[0].get_path(), null, null);

View File

@@ -86,8 +86,6 @@ class Indicator extends PanelMenu.SystemIndicator {
Main.sessionMode.connect('updated', this._sessionUpdated.bind(this));
this._sessionUpdated();
this._sync();
}
_sessionUpdated() {

View File

@@ -27,8 +27,6 @@ class Indicator extends PanelMenu.SystemIndicator {
() => this._updateSessionSubMenu());
this._powerOffItem.connect('notify::visible',
() => this._updateSessionSubMenu());
this._restartItem.connect('notify::visible',
() => this._updateSessionSubMenu());
// Whether shutdown is available or not depends on both lockdown
// settings (disable-log-out) and Polkit policy - the latter doesn't
// notify, so we update the menu item each time the menu opens or
@@ -54,7 +52,6 @@ class Indicator extends PanelMenu.SystemIndicator {
this._loginScreenItem.visible ||
this._logoutItem.visible ||
this._suspendItem.visible ||
this._restartItem.visible ||
this._powerOffItem.visible;
}
@@ -73,8 +70,9 @@ class Indicator extends PanelMenu.SystemIndicator {
this.menu.addMenuItem(item);
this._orientationLockItem = item;
this._systemActions.bind_property('can-lock-orientation',
this._orientationLockItem, 'visible',
bindFlags);
this._orientationLockItem,
'visible',
bindFlags);
this._systemActions.connect('notify::orientation-lock-icon', () => {
let iconName = this._systemActions.orientation_lock_icon;
let labelText = this._systemActions.getName("lock-orientation");
@@ -86,8 +84,8 @@ class Indicator extends PanelMenu.SystemIndicator {
let app = this._settingsApp = Shell.AppSystem.get_default().lookup_app(
'gnome-control-center.desktop');
if (app) {
const [icon] = app.app_info.get_icon().names;
const name = app.app_info.get_name();
let [icon, name] = [app.app_info.get_icon().names[0],
app.get_name()];
item = new PopupMenu.PopupImageMenuItem(name, icon);
item.connect('activate', () => {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
@@ -109,49 +107,15 @@ class Indicator extends PanelMenu.SystemIndicator {
this.menu.addMenuItem(item);
this._lockScreenItem = item;
this._systemActions.bind_property('can-lock-screen',
this._lockScreenItem, 'visible',
bindFlags);
this._lockScreenItem,
'visible',
bindFlags);
this._sessionSubMenu = new PopupMenu.PopupSubMenuMenuItem(
_('Power Off / Log Out'), true);
this._sessionSubMenu.icon.icon_name = 'system-shutdown-symbolic';
item = new PopupMenu.PopupMenuItem(_('Suspend'));
item.connect('activate', () => {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
this._systemActions.activateSuspend();
});
this._sessionSubMenu.menu.addMenuItem(item);
this._suspendItem = item;
this._systemActions.bind_property('can-suspend',
this._suspendItem, 'visible',
bindFlags);
item = new PopupMenu.PopupMenuItem(_('Restart…'));
item.connect('activate', () => {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
this._systemActions.activateRestart();
});
this._sessionSubMenu.menu.addMenuItem(item);
this._restartItem = item;
this._systemActions.bind_property('can-restart',
this._restartItem, 'visible',
bindFlags);
item = new PopupMenu.PopupMenuItem(_('Power Off…'));
item.connect('activate', () => {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
this._systemActions.activatePowerOff();
});
this._sessionSubMenu.menu.addMenuItem(item);
this._powerOffItem = item;
this._systemActions.bind_property('can-power-off',
this._powerOffItem, 'visible',
bindFlags);
this._sessionSubMenu.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
item = new PopupMenu.PopupMenuItem(_('Log Out'));
item = new PopupMenu.PopupMenuItem(_("Log Out"));
item.connect('activate', () => {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
this._systemActions.activateLogout();
@@ -159,10 +123,11 @@ class Indicator extends PanelMenu.SystemIndicator {
this._sessionSubMenu.menu.addMenuItem(item);
this._logoutItem = item;
this._systemActions.bind_property('can-logout',
this._logoutItem, 'visible',
bindFlags);
this._logoutItem,
'visible',
bindFlags);
item = new PopupMenu.PopupMenuItem(_('Switch User…'));
item = new PopupMenu.PopupMenuItem(_("Switch User…"));
item.connect('activate', () => {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
this._systemActions.activateSwitchUser();
@@ -170,8 +135,35 @@ class Indicator extends PanelMenu.SystemIndicator {
this._sessionSubMenu.menu.addMenuItem(item);
this._loginScreenItem = item;
this._systemActions.bind_property('can-switch-user',
this._loginScreenItem, 'visible',
bindFlags);
this._loginScreenItem,
'visible',
bindFlags);
this._sessionSubMenu.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
item = new PopupMenu.PopupMenuItem(_("Suspend"));
item.connect('activate', () => {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
this._systemActions.activateSuspend();
});
this._sessionSubMenu.menu.addMenuItem(item);
this._suspendItem = item;
this._systemActions.bind_property('can-suspend',
this._suspendItem,
'visible',
bindFlags);
item = new PopupMenu.PopupMenuItem(_("Power Off…"));
item.connect('activate', () => {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
this._systemActions.activatePowerOff();
});
this._sessionSubMenu.menu.addMenuItem(item);
this._powerOffItem = item;
this._systemActions.bind_property('can-power-off',
this._powerOffItem,
'visible',
bindFlags);
this.menu.addMenuItem(this._sessionSubMenu);
}

View File

@@ -647,14 +647,10 @@ var UnlockDialog = GObject.registerClass({
const themeContext = St.ThemeContext.get_for_stage(global.stage);
for (const widget of this._backgroundGroup) {
const effect = widget.get_effect('blur');
if (effect) {
effect.set({
brightness: BLUR_BRIGHTNESS,
sigma: BLUR_SIGMA * themeContext.scale_factor,
});
}
widget.get_effect('blur').set({
brightness: BLUR_BRIGHTNESS,
sigma: BLUR_SIGMA * themeContext.scale_factor,
});
}
}

View File

@@ -1,5 +1,5 @@
project('gnome-shell', 'c',
version: '3.37.91',
version: '3.37.3',
meson_version: '>= 0.53.0',
license: 'GPLv2+'
)
@@ -25,7 +25,7 @@ gio_req = '>= 2.56.0'
gi_req = '>= 1.49.1'
gjs_req = '>= 1.65.1'
gtk_req = '>= 3.15.0'
mutter_req = '>= 3.37.91'
mutter_req = '>= 3.37.3'
polkit_req = '>= 0.100'
schemas_req = '>= 3.33.1'
startup_req = '>= 0.11'

View File

@@ -1,3 +1 @@
data/org.gnome.Shell@wayland.service.in
data/org.gnome.Shell@x11.service.in
subprojects/extensions-tool/src/templates/indicator/extension.js

File diff suppressed because it is too large Load Diff

296
po/ca.po
View File

@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: HEAD\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-08-10 23:58+0000\n"
"POT-Creation-Date: 2020-07-22 01:49+0000\n"
"PO-Revision-Date: 2020-05-15 20:39+0200\n"
"Last-Translator: Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
@@ -182,8 +182,8 @@ msgstr ""
msgid ""
"Whether to remember password for mounting encrypted or remote filesystems"
msgstr ""
"Si s'han de recordar les contrasenyes dels punts de muntatge xifrat o els "
"sistemes de fitxers remots"
"Si s'han de recordar les contrasenyes dels punts de muntatge xifrat o "
"els sistemes de fitxers remots"
#: data/org.gnome.shell.gschema.xml.in:87
msgid ""
@@ -192,9 +192,9 @@ msgid ""
"“Remember Password” checkbox will be present. This key sets the default "
"state of the checkbox."
msgstr ""
"El GNOME Shell us demanarà la contrasenya quan es munti un dispositiu xifrat"
" o un sistema de fitxers remot. Si es pot desar la contrasenya per a "
"utilitzar-la en el futur, es mostrarà la casella de selecció «Recorda la "
"El GNOME Shell us demanarà la contrasenya quan es munti un dispositiu "
"xifrat o un sistema de fitxers remot. Si es pot desar la contrasenya per "
"a utilitzar-la en el futur, es mostrarà la casella de selecció «Recorda la "
"contrasenya». Aquesta clau estableix el valor per defecte d'aquesta casella "
"de selecció."
@@ -454,9 +454,9 @@ msgstr "Visiteu la pàgina d'inici de l'extensió"
#: js/gdm/authPrompt.js:135 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:183
#: js/ui/endSessionDialog.js:369 js/ui/extensionDownloader.js:183
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:940 subprojects/extensions-app/js/main.js:149
#: js/ui/status/network.js:916 subprojects/extensions-app/js/main.js:149
msgid "Cancel"
msgstr "Cancel·la"
@@ -492,7 +492,7 @@ msgstr "(p. ex. l'usuari o %s)"
msgid "Username"
msgstr "Nom d'usuari"
#: js/gdm/loginDialog.js:1253
#: js/gdm/loginDialog.js:1254
msgid "Login Window"
msgstr "Finestra d'entrada"
@@ -510,89 +510,77 @@ msgid "(or swipe finger)"
msgstr "(o passeu el dit)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:91
#: js/misc/systemActions.js:93
msgctxt "search-result"
msgid "Power Off"
msgstr "Apaga"
#. Translators: A list of keywords that match the power-off action, separated
#. by semicolons
#: js/misc/systemActions.js:94
msgid "power off;shutdown;halt;stop"
#: js/misc/systemActions.js:96
msgid "power off;shutdown;reboot;restart;halt;stop"
msgstr "apaga;atura;reinicia"
#. Translators: The name of the restart action in search
#: js/misc/systemActions.js:99
msgctxt "search-result"
msgid "Restart"
msgstr "Reinicia"
#. Translators: A list of keywords that match the restart action, separated by
#. semicolons
#: js/misc/systemActions.js:102
msgid "reboot;restart;"
msgstr "reinicia;reinici;"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:107
#: js/misc/systemActions.js:101
msgctxt "search-result"
msgid "Lock Screen"
msgstr "Bloqueja la pantalla"
#. Translators: A list of keywords that match the lock screen action,
#. separated by semicolons
#: js/misc/systemActions.js:110
#: js/misc/systemActions.js:104
msgid "lock screen"
msgstr "bloca la pantalla"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:115
#: js/misc/systemActions.js:109
msgctxt "search-result"
msgid "Log Out"
msgstr "Surt"
#. Translators: A list of keywords that match the logout action, separated by
#. semicolons
#: js/misc/systemActions.js:118
#: js/misc/systemActions.js:112
msgid "logout;log out;sign off"
msgstr "desconnecta;sortida;surt"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:123
#: js/misc/systemActions.js:117
msgctxt "search-result"
msgid "Suspend"
msgstr "Atura temporalment"
#. Translators: A list of keywords that match the suspend action, separated by
#. semicolons
#: js/misc/systemActions.js:126
#: js/misc/systemActions.js:120
msgid "suspend;sleep"
msgstr "atura temporalment;dorm"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:131
#: js/misc/systemActions.js:125
msgctxt "search-result"
msgid "Switch User"
msgstr "Canvia d'usuari"
#. Translators: A list of keywords that match the switch user action,
#. separated by semicolons
#: js/misc/systemActions.js:134
#: js/misc/systemActions.js:128
msgid "switch user"
msgstr "canvia d'usuari"
#. Translators: A list of keywords that match the lock orientation action,
#. separated by semicolons
#: js/misc/systemActions.js:141
#: js/misc/systemActions.js:135
msgid "lock orientation;unlock orientation;screen;rotation"
msgstr "bloqueja l'orientació;desbloqueja l'orientació;pantalla;rotació"
#: js/misc/systemActions.js:266
#: js/misc/systemActions.js:255
msgctxt "search-result"
msgid "Unlock Screen Rotation"
msgstr "Desbloqueja la rotació de la pantalla"
#: js/misc/systemActions.js:267
#: js/misc/systemActions.js:256
msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Bloqueja la rotació de la pantalla"
@@ -763,31 +751,31 @@ msgid "Unnamed Folder"
msgstr "Carpeta sense nom"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2762 js/ui/panel.js:75
#: js/ui/appDisplay.js:2767 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Obre finestres"
#: js/ui/appDisplay.js:2781 js/ui/panel.js:82
#: js/ui/appDisplay.js:2786 js/ui/panel.js:82
msgid "New Window"
msgstr "Finestra nova"
#: js/ui/appDisplay.js:2797
#: js/ui/appDisplay.js:2802
msgid "Launch using Integrated Graphics Card"
msgstr "Inicia usant una targeta gràfica integrada"
#: js/ui/appDisplay.js:2798
#: js/ui/appDisplay.js:2803
msgid "Launch using Discrete Graphics Card"
msgstr "Inicia usant una targeta gràfica discreta"
#: js/ui/appDisplay.js:2826 js/ui/dash.js:239
#: js/ui/appDisplay.js:2831 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Suprimeix dels preferits"
#: js/ui/appDisplay.js:2832
#: js/ui/appDisplay.js:2837
msgid "Add to Favorites"
msgstr "Afegeix als preferits"
#: js/ui/appDisplay.js:2842 js/ui/panel.js:93
#: js/ui/appDisplay.js:2847 js/ui/panel.js:93
msgid "Show Details"
msgstr "Mostra els detalls"
@@ -986,8 +974,8 @@ msgid ""
msgstr ""
"També us podeu connectar prement el botó «WPS» del vostre encaminador."
#: js/ui/components/networkAgent.js:104 js/ui/status/network.js:252
#: js/ui/status/network.js:343 js/ui/status/network.js:943
#: js/ui/components/networkAgent.js:104 js/ui/status/network.js:227
#: js/ui/status/network.js:318 js/ui/status/network.js:919
msgid "Connect"
msgstr "Connecta"
@@ -1052,7 +1040,7 @@ msgstr "PIN"
msgid "A password is required to connect to “%s”."
msgstr "Cal introduir una contrasenya per a connectar-vos a «%s»."
#: js/ui/components/networkAgent.js:669 js/ui/status/network.js:1718
#: js/ui/components/networkAgent.js:669 js/ui/status/network.js:1694
msgid "Network Manager"
msgstr "Gestor de connexions de xarxa"
@@ -1178,91 +1166,86 @@ msgstr "El temps"
msgid "Select weather location…"
msgstr "Trieu una ubicació pel temps…"
#: js/ui/endSessionDialog.js:39
#: js/ui/endSessionDialog.js:37
#, javascript-format
msgctxt "title"
msgid "Log Out %s"
msgstr "Sortida %s"
#: js/ui/endSessionDialog.js:40
#: js/ui/endSessionDialog.js:38
msgctxt "title"
msgid "Log Out"
msgstr "Sortida"
#: js/ui/endSessionDialog.js:43
#: js/ui/endSessionDialog.js:40
#, 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 sortirà de la sessió automàticament d'aquí %d segon."
msgstr[1] "%s sortirà de la sessió automàticament d'aquí %d segons."
#: js/ui/endSessionDialog.js:49
#: js/ui/endSessionDialog.js:45
#, 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] "Sortireu automàticament d'aquí %d segon."
msgstr[1] "Sortireu automàticament d'aquí %d segons."
#: js/ui/endSessionDialog.js:56
#: js/ui/endSessionDialog.js:51
msgctxt "button"
msgid "Log Out"
msgstr "Surt"
#: js/ui/endSessionDialog.js:62
#: js/ui/endSessionDialog.js:56
msgctxt "title"
msgid "Power Off"
msgstr "Apagada"
#: js/ui/endSessionDialog.js:63
#: js/ui/endSessionDialog.js:57
msgctxt "title"
msgid "Install Updates & Power Off"
msgstr "Instal·la les actualitzacions i apaga"
#: js/ui/endSessionDialog.js:66
#: js/ui/endSessionDialog.js:59
#, 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] "S'apagarà l'ordinador automàticament d'aquí %d segon."
msgstr[1] "S'apagarà l'ordinador automàticament d'aquí %d segons."
#: js/ui/endSessionDialog.js:70 js/ui/endSessionDialog.js:89
#: js/ui/endSessionDialog.js:63
msgctxt "checkbox"
msgid "Install pending software updates"
msgstr "Instal·la les actualitzacions pendents"
#: js/ui/endSessionDialog.js:74
#: js/ui/endSessionDialog.js:66 js/ui/endSessionDialog.js:82
msgctxt "button"
msgid "Restart"
msgstr "Reinicia"
#: js/ui/endSessionDialog.js:68
msgctxt "button"
msgid "Power Off"
msgstr "Apaga"
#: js/ui/endSessionDialog.js:81
#: js/ui/endSessionDialog.js:74
msgctxt "title"
msgid "Restart"
msgstr "Reinici"
#: js/ui/endSessionDialog.js:82
msgctxt "title"
msgid "Install Updates & Restart"
msgstr "Instal·la les actualitzacions i reinicia"
#: js/ui/endSessionDialog.js:85
#: js/ui/endSessionDialog.js:76
#, javascript-format
msgid "The system will restart automatically in %d second."
msgid_plural "The system will restart automatically in %d seconds."
msgstr[0] "Es reiniciarà l'ordinador automàticament d'aquí %d segon."
msgstr[1] "Es reiniciarà l'ordinador automàticament d'aquí %d segons."
#: js/ui/endSessionDialog.js:93
msgctxt "button"
msgid "Restart"
msgstr "Reinicia"
#: js/ui/endSessionDialog.js:101
#: js/ui/endSessionDialog.js:89
msgctxt "title"
msgid "Restart & Install Updates"
msgstr "Reinicia i instal·la les actualitzacions"
#: js/ui/endSessionDialog.js:104
#: js/ui/endSessionDialog.js:91
#, javascript-format
msgid ""
"The system will automatically restart and install updates in %d second."
@@ -1275,22 +1258,22 @@ msgstr[1] ""
"Es reiniciarà l'ordinador automàticament i s'instal·laran les "
"actualitzacions d'aquí %d segons."
#: js/ui/endSessionDialog.js:111 js/ui/endSessionDialog.js:132
#: js/ui/endSessionDialog.js:97 js/ui/endSessionDialog.js:116
msgctxt "button"
msgid "Restart &amp; Install"
msgstr "Reinicia i instal·la"
#: js/ui/endSessionDialog.js:113
#: js/ui/endSessionDialog.js:98
msgctxt "button"
msgid "Install &amp; Power Off"
msgstr "Instal·la i apaga"
#: js/ui/endSessionDialog.js:114
#: js/ui/endSessionDialog.js:99
msgctxt "checkbox"
msgid "Power off after updates are installed"
msgstr "Apaga després d'instal·lar les actualitzacions"
#: js/ui/endSessionDialog.js:121
#: js/ui/endSessionDialog.js:106
msgctxt "title"
msgid "Restart & Install Upgrade"
msgstr "Reinicia i instal·la l'actualització"
@@ -1298,7 +1281,7 @@ msgstr "Reinicia i instal·la l'actualització"
#. Translators: This is the text displayed for system upgrades in the
#. shut down dialog. First %s gets replaced with the distro name and
#. second %s with the distro version to upgrade to
#: js/ui/endSessionDialog.js:126
#: js/ui/endSessionDialog.js:111
#, javascript-format
msgid ""
"%s %s will be installed after restart. Upgrade installation can take a long "
@@ -1308,35 +1291,30 @@ msgstr ""
"instal·lació pot trigar força temps. Assegureu-vos que heu fet còpia de "
"seguretat i que l'ordinador està connectat al corrent."
#: js/ui/endSessionDialog.js:284
msgid "Low battery power: please plug in before installing updates."
#: js/ui/endSessionDialog.js:259
msgid "Running on battery power: Please plug in before installing updates."
msgstr ""
"Hi ha poca bateria. Connecteu l'ordinador a la xarxa elèctrica abans "
"d'instal·lar les actualitzacions."
"S'està utilitzant la bateria. Connecteu l'ordinador a la xarxa elèctrica "
"abans d'instal·lar les actualitzacions."
#: js/ui/endSessionDialog.js:293
#: js/ui/endSessionDialog.js:268
msgid "Some applications are busy or have unsaved work"
msgstr ""
"Hi ha algunes aplicacions que estan ocupades o que tenen documents sense "
"desar"
#: js/ui/endSessionDialog.js:298
#: js/ui/endSessionDialog.js:273
msgid "Other users are logged in"
msgstr "Altres usuaris tenen la sessió oberta"
#: js/ui/endSessionDialog.js:467
msgctxt "button"
msgid "Boot Options"
msgstr "Opcions d'arrencada"
#. Translators: Remote here refers to a remote session, like a ssh login
#: js/ui/endSessionDialog.js:685
#: js/ui/endSessionDialog.js:583
#, javascript-format
msgid "%s (remote)"
msgstr "%s (remot)"
#. Translators: Console here refers to a tty like a VT console
#: js/ui/endSessionDialog.js:688
#: js/ui/endSessionDialog.js:586
#, javascript-format
msgid "%s (console)"
msgstr "%s (consola)"
@@ -1441,15 +1419,15 @@ msgid "Leave On"
msgstr "Deixa-ho actiu"
#: js/ui/kbdA11yDialog.js:55 js/ui/status/bluetooth.js:156
#: js/ui/status/network.js:1315
#: js/ui/status/network.js:1291
msgid "Turn On"
msgstr "Activa"
#: js/ui/kbdA11yDialog.js:63 js/ui/status/bluetooth.js:156
#: js/ui/status/network.js:160 js/ui/status/network.js:344
#: js/ui/status/network.js:1315 js/ui/status/network.js:1427
#: js/ui/status/network.js:135 js/ui/status/network.js:319
#: js/ui/status/network.js:1291 js/ui/status/network.js:1403
#: js/ui/status/nightLight.js:41 js/ui/status/rfkill.js:81
#: js/ui/status/rfkill.js:110
#: js/ui/status/rfkill.js:108
msgid "Turn Off"
msgstr "Desactiva"
@@ -1510,11 +1488,11 @@ msgstr "Mostra el codi font"
msgid "Web Page"
msgstr "Pàgina web"
#: js/ui/main.js:294
#: js/ui/main.js:297
msgid "Logged in as a privileged user"
msgstr "Sessió iniciada com a usuari privilegiat"
#: js/ui/main.js:295
#: js/ui/main.js:298
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@@ -1522,11 +1500,11 @@ msgstr ""
"Cal evitar iniciar sessions com a usuari privilegiat per raons de seguretat."
" Si és possible, entreu com a un usuari normal."
#: js/ui/main.js:334
#: js/ui/main.js:337
msgid "Screen Lock disabled"
msgstr "La pantalla de bloqueig està inhabilitada"
#: js/ui/main.js:335
#: js/ui/main.js:338
msgid "Screen Locking requires the GNOME display manager."
msgstr "El bloqueig de pantalla requereix el gestor de pantalla del GNOME."
@@ -1619,7 +1597,7 @@ msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistema"
#: js/ui/panel.js:825
#: js/ui/panel.js:827
msgid "Top Bar"
msgstr "Barra superior"
@@ -1794,7 +1772,7 @@ msgstr "Text gran"
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:49 js/ui/status/network.js:619
#: js/ui/status/bluetooth.js:49 js/ui/status/network.js:595
msgid "Bluetooth Settings"
msgstr "Paràmetres del Bluetooth"
@@ -1878,19 +1856,19 @@ msgstr ""
"Podeu canviar la configuració de l'accés a la ubicació sempre que vulgueu "
"des de la configuració de la privacitat."
#: js/ui/status/network.js:71
#: js/ui/status/network.js:70
msgid "<unknown>"
msgstr "<desconegut>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:449 js/ui/status/network.js:1344
#: js/ui/status/network.js:424 js/ui/status/network.js:1320
#, javascript-format
msgid "%s Off"
msgstr "%s apagat"
#. Translators: %s is a network identifier
# N.T.: p. ex. Connectat amb fil
#: js/ui/status/network.js:452
#: js/ui/status/network.js:427
#, javascript-format
msgid "%s Connected"
msgstr "Connectat %s"
@@ -1899,26 +1877,26 @@ msgstr "Connectat %s"
#. are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
#: js/ui/status/network.js:457
#: js/ui/status/network.js:432
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s no gestionat"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:460
#: js/ui/status/network.js:435
#, javascript-format
msgid "%s Disconnecting"
msgstr "%s s'està desconnectant"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:467 js/ui/status/network.js:1336
#: js/ui/status/network.js:442 js/ui/status/network.js:1312
#, javascript-format
msgid "%s Connecting"
msgstr "%s s'està connectant"
#. Translators: this is for network connections that require some kind of key
#. or password; %s is a network identifier
#: js/ui/status/network.js:470
#: js/ui/status/network.js:445
#, javascript-format
msgid "%s Requires Authentication"
msgstr "%s requereix autenticació"
@@ -1926,7 +1904,7 @@ msgstr "%s requereix autenticació"
#. Translators: this is for devices that require some kind of firmware or
#. kernel
#. module, which is missing; %s is a network identifier
#: js/ui/status/network.js:478
#: js/ui/status/network.js:453
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "Manca el microprogramari per %s"
@@ -1934,159 +1912,159 @@ msgstr "Manca el microprogramari per %s"
#. Translators: this is for a network device that cannot be activated (for
#. example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: js/ui/status/network.js:482
#: js/ui/status/network.js:457
#, javascript-format
msgid "%s Unavailable"
msgstr "%s no disponible"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:485
#: js/ui/status/network.js:460
#, javascript-format
msgid "%s Connection Failed"
msgstr "%s ha fallat la connexió"
#: js/ui/status/network.js:497
#: js/ui/status/network.js:472
msgid "Wired Settings"
msgstr "Paràmetres de la xarxa amb fil"
#: js/ui/status/network.js:540
#: js/ui/status/network.js:515
msgid "Mobile Broadband Settings"
msgstr "Configuració de la xarxa de banda ampla mòbil"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:586 js/ui/status/network.js:1341
#: js/ui/status/network.js:562 js/ui/status/network.js:1317
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s maquinari inhabilitat"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: js/ui/status/network.js:590
#: js/ui/status/network.js:566
#, javascript-format
msgid "%s Disabled"
msgstr "%s Inhabilitat"
#: js/ui/status/network.js:631
#: js/ui/status/network.js:607
msgid "Connect to Internet"
msgstr "Connecta a Internet"
#: js/ui/status/network.js:835
#: js/ui/status/network.js:811
msgid "Airplane Mode is On"
msgstr "El mode d'avió és actiu"
#: js/ui/status/network.js:836
#: js/ui/status/network.js:812
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Quan el mode d'avió és actiu es desactiva la xarxa sense fil."
#: js/ui/status/network.js:837
#: js/ui/status/network.js:813
msgid "Turn Off Airplane Mode"
msgstr "Desactiva el mode d'avió"
#: js/ui/status/network.js:846
#: js/ui/status/network.js:822
msgid "Wi-Fi is Off"
msgstr "La xarxa sense fil està desactivada"
#: js/ui/status/network.js:847
#: js/ui/status/network.js:823
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr ""
"S'ha d'activar la xarxa sense fil per a poder-se connectar a una xarxa."
#: js/ui/status/network.js:848
#: js/ui/status/network.js:824
msgid "Turn On Wi-Fi"
msgstr "Activa la xarxa sense fil"
#: js/ui/status/network.js:873
#: js/ui/status/network.js:849
msgid "Wi-Fi Networks"
msgstr "Xarxes sense fil"
#: js/ui/status/network.js:875
#: js/ui/status/network.js:851
msgid "Select a network"
msgstr "Trieu una xarxa"
#: js/ui/status/network.js:907
#: js/ui/status/network.js:883
msgid "No Networks"
msgstr "Cap xarxa"
#: js/ui/status/network.js:928 js/ui/status/rfkill.js:108
#: js/ui/status/network.js:904 js/ui/status/rfkill.js:106
msgid "Use hardware switch to turn off"
msgstr "Utilitza l'interruptor de maquinari per a desactivar-la"
#: js/ui/status/network.js:1205
#: js/ui/status/network.js:1181
msgid "Select Network"
msgstr "Trieu una xarxa"
#: js/ui/status/network.js:1211
#: js/ui/status/network.js:1187
msgid "Wi-Fi Settings"
msgstr "Paràmetres de la xarxa sense fil"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1332
#: js/ui/status/network.js:1308
#, javascript-format
msgid "%s Hotspot Active"
msgstr "Hostpot %s actiu"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1347
#: js/ui/status/network.js:1323
#, javascript-format
msgid "%s Not Connected"
msgstr "%s no està connectat"
#: js/ui/status/network.js:1444
#: js/ui/status/network.js:1420
msgid "connecting…"
msgstr "s'està connectant..."
#. Translators: this is for network connections that require some kind of key
#. or password
#: js/ui/status/network.js:1447
#: js/ui/status/network.js:1423
msgid "authentication required"
msgstr "cal autenticació"
#: js/ui/status/network.js:1449
#: js/ui/status/network.js:1425
msgid "connection failed"
msgstr "ha fallat la connexió"
#: js/ui/status/network.js:1500
#: js/ui/status/network.js:1476
msgid "VPN Settings"
msgstr "Paràmetres de la VPN"
#: js/ui/status/network.js:1517
#: js/ui/status/network.js:1493
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1527
#: js/ui/status/network.js:1503
msgid "VPN Off"
msgstr "VPN apagada"
#: js/ui/status/network.js:1588 js/ui/status/rfkill.js:84
#: js/ui/status/network.js:1564 js/ui/status/rfkill.js:84
msgid "Network Settings"
msgstr "Paràmetres de xarxa"
#: js/ui/status/network.js:1617
#: js/ui/status/network.js:1593
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "%s connexió amb fil"
msgstr[1] "%s connexions amb fil"
#: js/ui/status/network.js:1621
#: js/ui/status/network.js:1597
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
msgstr[0] "%s connexió Wifi"
msgstr[1] "%s connexions Wifi"
#: js/ui/status/network.js:1625
#: js/ui/status/network.js:1601
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] "%s connexió mòdem"
msgstr[1] "%s connexions mòdem"
#: js/ui/status/network.js:1759
#: js/ui/status/network.js:1735
msgid "Connection failed"
msgstr "Ha fallat la connexió"
#: js/ui/status/network.js:1760
#: js/ui/status/network.js:1736
msgid "Activation of network connection failed"
msgstr "Ha fallat l'activació de la connexió de xarxa"
@@ -2141,11 +2119,11 @@ msgstr "%d%02d per a completar la càrrega (%d %%)"
msgid "%d%%"
msgstr "%d%%"
#: js/ui/status/remoteAccess.js:45
#: js/ui/status/remoteAccess.js:43
msgid "Screen is Being Shared"
msgstr "Es comparteix la pantalla"
#: js/ui/status/remoteAccess.js:47
#: js/ui/status/remoteAccess.js:45
msgid "Turn off"
msgstr "Desactiva"
@@ -2156,34 +2134,30 @@ msgstr "Desactiva"
msgid "Airplane Mode On"
msgstr "El mode d'avió és actiu"
#: js/ui/status/system.js:104
#: js/ui/status/system.js:102
msgid "Lock"
msgstr "Bloqueja"
#: js/ui/status/system.js:116
#: js/ui/status/system.js:115
msgid "Power Off / Log Out"
msgstr "Apaga / Surt"
#: js/ui/status/system.js:119
msgid "Suspend"
msgstr "Atura temporalment"
#: js/ui/status/system.js:130
msgid "Restart…"
msgstr "S'està reiniciant…"
#: js/ui/status/system.js:141
msgid "Power Off…"
msgstr "Atura…"
#: js/ui/status/system.js:154
#: js/ui/status/system.js:118
msgid "Log Out"
msgstr "Surt"
#: js/ui/status/system.js:165
#: js/ui/status/system.js:130
msgid "Switch User…"
msgstr "Canvia d'usuari…"
#: js/ui/status/system.js:144
msgid "Suspend"
msgstr "Atura temporalment"
#: js/ui/status/system.js:156
msgid "Power Off…"
msgstr "Atura…"
#: js/ui/status/thunderbolt.js:263
msgid "Thunderbolt"
msgstr "Thunderbolt"
@@ -2288,21 +2262,21 @@ msgid "“%s” is ready"
msgstr "«%s» ja està a punt"
#. Translators: This string should be shorter than 30 characters
#: js/ui/windowManager.js:60
#: js/ui/windowManager.js:55
msgid "Keep these display settings?"
msgstr "Mantenir aquesta configuració de la pantalla?"
#. Translators: this and the following message should be limited in length,
#. to avoid ellipsizing the labels.
#: js/ui/windowManager.js:69
#: js/ui/windowManager.js:64
msgid "Revert Settings"
msgstr "Descarta els canvis"
#: js/ui/windowManager.js:72
#: js/ui/windowManager.js:67
msgid "Keep Changes"
msgstr "Mantén els canvis"
#: js/ui/windowManager.js:91
#: js/ui/windowManager.js:86
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -2311,7 +2285,7 @@ msgstr[1] "Es descartaran els canvis d'aquí %d segons"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:551
#: js/ui/windowManager.js:546
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"

362
po/es.po
View File

@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell.master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-08-21 17:50+0000\n"
"PO-Revision-Date: 2020-08-24 11:52+0200\n"
"POT-Creation-Date: 2020-07-27 06:59+0000\n"
"PO-Revision-Date: 2020-07-29 09:47+0200\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Spanish - Spain <gnome-es-list@gnome.org>\n"
"Language: es_ES\n"
@@ -444,19 +444,19 @@ msgstr "Página web"
msgid "Visit extension homepage"
msgstr "Visitar la página web de la extensión"
#: js/gdm/authPrompt.js:136 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:111 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:183
#: js/gdm/authPrompt.js:135 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:369 js/ui/extensionDownloader.js:183
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:940 subprojects/extensions-app/js/main.js:149
#: js/ui/status/network.js:916 subprojects/extensions-app/js/main.js:149
msgid "Cancel"
msgstr "Cancelar"
#. Cisco LEAP
#: js/gdm/authPrompt.js:238 js/ui/components/networkAgent.js:206
#: js/ui/components/networkAgent.js:222 js/ui/components/networkAgent.js:246
#: js/ui/components/networkAgent.js:267 js/ui/components/networkAgent.js:287
#: js/ui/components/networkAgent.js:297 js/ui/components/polkitAgent.js:277
#: js/gdm/authPrompt.js:237 js/ui/components/networkAgent.js:205
#: js/ui/components/networkAgent.js:221 js/ui/components/networkAgent.js:245
#: js/ui/components/networkAgent.js:266 js/ui/components/networkAgent.js:286
#: js/ui/components/networkAgent.js:296 js/ui/components/polkitAgent.js:277
#: js/ui/shellMountOperation.js:326
msgid "Password"
msgstr "Contraseña"
@@ -479,12 +479,12 @@ msgstr "(ej., usuario o %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: js/gdm/loginDialog.js:918 js/ui/components/networkAgent.js:242
#: js/ui/components/networkAgent.js:265 js/ui/components/networkAgent.js:283
#: js/gdm/loginDialog.js:918 js/ui/components/networkAgent.js:241
#: js/ui/components/networkAgent.js:264 js/ui/components/networkAgent.js:282
msgid "Username"
msgstr "Nombre de usuario"
#: js/gdm/loginDialog.js:1253
#: js/gdm/loginDialog.js:1254
msgid "Login Window"
msgstr "Ventana de inicio de sesión"
@@ -502,82 +502,71 @@ msgid "(or swipe finger)"
msgstr "(o pase el dedo)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:91
#: js/misc/systemActions.js:93
msgctxt "search-result"
msgid "Power Off"
msgstr "Apagar"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:94
msgid "power off;shutdown;halt;stop"
#: js/misc/systemActions.js:96
msgid "power off;shutdown;reboot;restart;halt;stop"
msgstr "apagar;apagado;reinicio;reiniciar;detener;parar"
#. Translators: The name of the restart action in search
#: js/misc/systemActions.js:99
msgctxt "search-result"
msgid "Restart"
msgstr "Reiniciar"
#. Translators: A list of keywords that match the restart action, separated by semicolons
#: js/misc/systemActions.js:102
msgid "reboot;restart;"
msgstr "reiniciar;rebotar;"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:107
#: js/misc/systemActions.js:101
msgctxt "search-result"
msgid "Lock Screen"
msgstr "Bloquear la pantalla"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:110
#: js/misc/systemActions.js:104
msgid "lock screen"
msgstr "bloquear;pantalla"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:115
#: js/misc/systemActions.js:109
msgctxt "search-result"
msgid "Log Out"
msgstr "Cerrar la sesión"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:118
#: js/misc/systemActions.js:112
msgid "logout;log out;sign off"
msgstr "cerrar;sesión;salir"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:123
#: js/misc/systemActions.js:117
msgctxt "search-result"
msgid "Suspend"
msgstr "Suspender"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:126
#: js/misc/systemActions.js:120
msgid "suspend;sleep"
msgstr "suspender;dormir"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:131
#: js/misc/systemActions.js:125
msgctxt "search-result"
msgid "Switch User"
msgstr "Cambiar de usuario"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:134
#: js/misc/systemActions.js:128
msgid "switch user"
msgstr "cambiar;usuario"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:141
#: js/misc/systemActions.js:135
msgid "lock orientation;unlock orientation;screen;rotation"
msgstr "bloquear orientación;desbloquear orientación;pantalla;rotación"
#: js/misc/systemActions.js:266
#: js/misc/systemActions.js:255
msgctxt "search-result"
msgid "Unlock Screen Rotation"
msgstr "Desbloquear la rotación de la pantalla"
#: js/misc/systemActions.js:267
#: js/misc/systemActions.js:256
msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Bloquear la rotación de la pantalla"
@@ -747,31 +736,31 @@ msgid "Unnamed Folder"
msgstr "Carpeta sin nombre"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2766 js/ui/panel.js:75
#: js/ui/appDisplay.js:2767 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Ventanas abiertas"
#: js/ui/appDisplay.js:2785 js/ui/panel.js:82
#: js/ui/appDisplay.js:2786 js/ui/panel.js:82
msgid "New Window"
msgstr "Ventana nueva"
#: js/ui/appDisplay.js:2801
#: js/ui/appDisplay.js:2802
msgid "Launch using Integrated Graphics Card"
msgstr "Lanzar usando la tarjeta gráfica integrada"
#: js/ui/appDisplay.js:2802
#: js/ui/appDisplay.js:2803
msgid "Launch using Discrete Graphics Card"
msgstr "Lanzar usando la tarjeta gráfica discreta"
#: js/ui/appDisplay.js:2830 js/ui/dash.js:239
#: js/ui/appDisplay.js:2831 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Quitar de los favoritos"
#: js/ui/appDisplay.js:2836
#: js/ui/appDisplay.js:2837
msgid "Add to Favorites"
msgstr "Añadir a los favoritos"
#: js/ui/appDisplay.js:2846 js/ui/panel.js:93
#: js/ui/appDisplay.js:2847 js/ui/panel.js:93
msgid "Show Details"
msgstr "Mostrar detalles"
@@ -965,39 +954,39 @@ msgstr "La versión de udisks instalada no soporta la configuración PIM"
msgid "Open with %s"
msgstr "Abrir con %s"
#: js/ui/components/networkAgent.js:93
#: js/ui/components/networkAgent.js:92
msgid ""
"Alternatively you can connect by pushing the “WPS” button on your router."
msgstr ""
"Alternativamente puede conectarse pulsando el botón «WPS» de su router."
#: js/ui/components/networkAgent.js:105 js/ui/status/network.js:252
#: js/ui/status/network.js:343 js/ui/status/network.js:943
#: js/ui/components/networkAgent.js:104 js/ui/status/network.js:227
#: js/ui/status/network.js:318 js/ui/status/network.js:919
msgid "Connect"
msgstr "Conectar"
#: js/ui/components/networkAgent.js:212
#: js/ui/components/networkAgent.js:211
msgid "Key"
msgstr "Clave"
#: js/ui/components/networkAgent.js:250 js/ui/components/networkAgent.js:273
#: js/ui/components/networkAgent.js:249 js/ui/components/networkAgent.js:272
msgid "Private key password"
msgstr "Contraseña de la clave privada"
#: js/ui/components/networkAgent.js:271
#: js/ui/components/networkAgent.js:270
msgid "Identity"
msgstr "Identidad"
#: js/ui/components/networkAgent.js:285
#: js/ui/components/networkAgent.js:284
msgid "Service"
msgstr "Servicio"
#: js/ui/components/networkAgent.js:314 js/ui/components/networkAgent.js:342
#: js/ui/components/networkAgent.js:675 js/ui/components/networkAgent.js:696
#: js/ui/components/networkAgent.js:313 js/ui/components/networkAgent.js:341
#: js/ui/components/networkAgent.js:680 js/ui/components/networkAgent.js:701
msgid "Authentication required"
msgstr "Autenticación requerida"
#: js/ui/components/networkAgent.js:315 js/ui/components/networkAgent.js:676
#: js/ui/components/networkAgent.js:314 js/ui/components/networkAgent.js:681
#, javascript-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@@ -1006,42 +995,42 @@ msgstr ""
"Se necesitan contraseñas o claves de cifrado para acceder a la red "
"inalámbrica «%s»."
#: js/ui/components/networkAgent.js:319 js/ui/components/networkAgent.js:680
#: js/ui/components/networkAgent.js:318 js/ui/components/networkAgent.js:685
msgid "Wired 802.1X authentication"
msgstr "Autenticación 802.1X cableada"
#: js/ui/components/networkAgent.js:321
#: js/ui/components/networkAgent.js:320
msgid "Network name"
msgstr "Nombre de la red"
#: js/ui/components/networkAgent.js:326 js/ui/components/networkAgent.js:684
#: js/ui/components/networkAgent.js:325 js/ui/components/networkAgent.js:689
msgid "DSL authentication"
msgstr "Autenticación DSL"
#: js/ui/components/networkAgent.js:333 js/ui/components/networkAgent.js:689
#: js/ui/components/networkAgent.js:332 js/ui/components/networkAgent.js:694
msgid "PIN code required"
msgstr "Código PIN requerido"
#: js/ui/components/networkAgent.js:334 js/ui/components/networkAgent.js:690
#: js/ui/components/networkAgent.js:333 js/ui/components/networkAgent.js:695
msgid "PIN code is needed for the mobile broadband device"
msgstr "Se necesita un código PIN para el dispositivo de banda ancha móvil"
#: js/ui/components/networkAgent.js:335
#: js/ui/components/networkAgent.js:334
msgid "PIN"
msgstr "PIN"
#: js/ui/components/networkAgent.js:343 js/ui/components/networkAgent.js:681
#: js/ui/components/networkAgent.js:685 js/ui/components/networkAgent.js:697
#: js/ui/components/networkAgent.js:701
#: js/ui/components/networkAgent.js:342 js/ui/components/networkAgent.js:686
#: js/ui/components/networkAgent.js:690 js/ui/components/networkAgent.js:702
#: js/ui/components/networkAgent.js:706
#, javascript-format
msgid "A password is required to connect to “%s”."
msgstr "Se requiere una contraseña para conectarse a «%s»."
#: js/ui/components/networkAgent.js:664 js/ui/status/network.js:1718
#: js/ui/components/networkAgent.js:669 js/ui/status/network.js:1694
msgid "Network Manager"
msgstr "Gestor de la red"
#: js/ui/components/networkAgent.js:700
#: js/ui/components/networkAgent.js:705
msgid "VPN password"
msgstr "Contraseña de la VPN"
@@ -1163,93 +1152,86 @@ msgstr "Meteorología"
msgid "Select weather location…"
msgstr "Seleccionar ubicación meteorológica…"
#: js/ui/endSessionDialog.js:39
#: js/ui/endSessionDialog.js:37
#, javascript-format
msgctxt "title"
msgid "Log Out %s"
msgstr "Cerrar la sesión %s"
#: js/ui/endSessionDialog.js:40
#: js/ui/endSessionDialog.js:38
msgctxt "title"
msgid "Log Out"
msgstr "Cerrar la sesión"
#: js/ui/endSessionDialog.js:43
#: js/ui/endSessionDialog.js:40
#, 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] "se cerrará automáticamente la sesión de %s en %d segundo."
msgstr[1] "se cerrará automáticamente la sesión de %s en %d segundos."
#: js/ui/endSessionDialog.js:49
#: js/ui/endSessionDialog.js:45
#, 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] "Su sesión se cerrará automáticamente en %d segundo."
msgstr[1] "Su sesión se cerrará automáticamente en %d segundos."
#: js/ui/endSessionDialog.js:56
#: js/ui/endSessionDialog.js:51
msgctxt "button"
msgid "Log Out"
msgstr "Cerrar la sesión"
#: js/ui/endSessionDialog.js:62
#: js/ui/endSessionDialog.js:56
msgctxt "title"
msgid "Power Off"
msgstr "Apagar"
#: js/ui/endSessionDialog.js:63
#: js/ui/endSessionDialog.js:57
msgctxt "title"
msgid "Install Updates & Power Off"
msgstr "Instalar actualizaciones y apagar"
#: js/ui/endSessionDialog.js:66
#: js/ui/endSessionDialog.js:59
#, 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] "El sistema se apagará automáticamente en %d segundo."
msgstr[1] "El sistema se apagará automáticamente en %d segundos."
#: js/ui/endSessionDialog.js:70 js/ui/endSessionDialog.js:89
#: js/ui/endSessionDialog.js:63
msgctxt "checkbox"
msgid "Install pending software updates"
msgstr "Instalar las actualizaciones de software pendientes"
#: js/ui/endSessionDialog.js:74
#: js/ui/endSessionDialog.js:66 js/ui/endSessionDialog.js:82
msgctxt "button"
msgid "Restart"
msgstr "Reiniciar"
#: js/ui/endSessionDialog.js:68
msgctxt "button"
msgid "Power Off"
msgstr "Apagar"
#: js/ui/endSessionDialog.js:81
#: js/ui/endSessionDialog.js:74
msgctxt "title"
msgid "Restart"
msgstr "Reiniciar"
#: js/ui/endSessionDialog.js:82
#| msgctxt "title"
#| msgid "Install Updates & Power Off"
msgctxt "title"
msgid "Install Updates & Restart"
msgstr "Instalar actualizaciones y reiniciar"
#: js/ui/endSessionDialog.js:85
#: js/ui/endSessionDialog.js:76
#, javascript-format
msgid "The system will restart automatically in %d second."
msgid_plural "The system will restart automatically in %d seconds."
msgstr[0] "El sistema se reiniciará automáticamente en %d segundo."
msgstr[1] "El sistema se reiniciará automáticamente en %d segundos."
#: js/ui/endSessionDialog.js:93
msgctxt "button"
msgid "Restart"
msgstr "Reiniciar"
#: js/ui/endSessionDialog.js:101
#: js/ui/endSessionDialog.js:89
msgctxt "title"
msgid "Restart & Install Updates"
msgstr "Reiniciar e instalar actualizaciones"
#: js/ui/endSessionDialog.js:104
#: js/ui/endSessionDialog.js:91
#, javascript-format
msgid "The system will automatically restart and install updates in %d second."
msgid_plural ""
@@ -1261,22 +1243,22 @@ msgstr[1] ""
"El sistema se reiniciará automáticamente e instalará las actualizaciones en "
"%d segundos."
#: js/ui/endSessionDialog.js:111 js/ui/endSessionDialog.js:132
#: js/ui/endSessionDialog.js:97 js/ui/endSessionDialog.js:116
msgctxt "button"
msgid "Restart &amp; Install"
msgstr "Reiniciar e instalar"
#: js/ui/endSessionDialog.js:113
#: js/ui/endSessionDialog.js:98
msgctxt "button"
msgid "Install &amp; Power Off"
msgstr "Instalar y apagar"
#: js/ui/endSessionDialog.js:114
#: js/ui/endSessionDialog.js:99
msgctxt "checkbox"
msgid "Power off after updates are installed"
msgstr "Apagar después de instalar las actualizaciones"
#: js/ui/endSessionDialog.js:121
#: js/ui/endSessionDialog.js:106
msgctxt "title"
msgid "Restart & Install Upgrade"
msgstr "Reiniciar e instalar actualizaciones"
@@ -1284,7 +1266,7 @@ msgstr "Reiniciar e instalar actualizaciones"
#. Translators: This is the text displayed for system upgrades in the
#. shut down dialog. First %s gets replaced with the distro name and
#. second %s with the distro version to upgrade to
#: js/ui/endSessionDialog.js:126
#: js/ui/endSessionDialog.js:111
#, javascript-format
msgid ""
"%s %s will be installed after restart. Upgrade installation can take a long "
@@ -1294,33 +1276,27 @@ msgstr ""
"puede tardar mucho tiempo: asegúrese de que tiene una copia de respaldo y de "
"que el equipo está enchufado."
#: js/ui/endSessionDialog.js:284
#| msgid "Running on battery power: Please plug in before installing updates."
msgid "Low battery power: please plug in before installing updates."
#: js/ui/endSessionDialog.js:259
msgid "Running on battery power: Please plug in before installing updates."
msgstr ""
"Queda poca batería: enchúfe el equipo antes de instalar las actualizaciones."
"Funcionando con batería: conéctese antes de instalar las actualizaciones."
#: js/ui/endSessionDialog.js:293
#: js/ui/endSessionDialog.js:268
msgid "Some applications are busy or have unsaved work"
msgstr "Algunas aplicaciones están ocupadas o tienen trabajo sin guardar"
#: js/ui/endSessionDialog.js:298
#: js/ui/endSessionDialog.js:273
msgid "Other users are logged in"
msgstr "Hay otros usuarios con la sesión iniciada"
#: js/ui/endSessionDialog.js:467
msgctxt "button"
msgid "Boot Options"
msgstr "Opciones de arranque"
#. Translators: Remote here refers to a remote session, like a ssh login
#: js/ui/endSessionDialog.js:685
#: js/ui/endSessionDialog.js:583
#, javascript-format
msgid "%s (remote)"
msgstr "%s (remoto)"
#. Translators: Console here refers to a tty like a VT console
#: js/ui/endSessionDialog.js:688
#: js/ui/endSessionDialog.js:586
#, javascript-format
msgid "%s (console)"
msgstr "%s (consola)"
@@ -1338,11 +1314,11 @@ msgstr "Instalar extensión"
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "¿Descargar e instalar «%s» desde extensions.gnome.org?"
#: js/ui/extensionSystem.js:253
#: js/ui/extensionSystem.js:252
msgid "Extension Updates Available"
msgstr "Actualizaciones de extensiones disponibles"
#: js/ui/extensionSystem.js:254
#: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed."
msgstr "Las actualizaciones de las extensiones están listas para instalarse."
@@ -1423,15 +1399,15 @@ msgid "Leave On"
msgstr "Dejar activada"
#: js/ui/kbdA11yDialog.js:55 js/ui/status/bluetooth.js:156
#: js/ui/status/network.js:1315
#: js/ui/status/network.js:1291
msgid "Turn On"
msgstr "Encendido"
#: js/ui/kbdA11yDialog.js:63 js/ui/status/bluetooth.js:156
#: js/ui/status/network.js:160 js/ui/status/network.js:344
#: js/ui/status/network.js:1315 js/ui/status/network.js:1427
#: js/ui/status/network.js:135 js/ui/status/network.js:319
#: js/ui/status/network.js:1291 js/ui/status/network.js:1403
#: js/ui/status/nightLight.js:41 js/ui/status/rfkill.js:81
#: js/ui/status/rfkill.js:110
#: js/ui/status/rfkill.js:108
msgid "Turn Off"
msgstr "Apagar"
@@ -1439,7 +1415,7 @@ msgstr "Apagar"
msgid "Leave Off"
msgstr "Dejar apagado"
#: js/ui/keyboard.js:226
#: js/ui/keyboard.js:225
msgid "Region & Language Settings"
msgstr "Configuración de región e idioma"
@@ -1492,11 +1468,11 @@ msgstr "Ver fuente"
msgid "Web Page"
msgstr "Página web"
#: js/ui/main.js:294
#: js/ui/main.js:297
msgid "Logged in as a privileged user"
msgstr "Sesión iniciada como usuario con privilegios"
#: js/ui/main.js:295
#: js/ui/main.js:298
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@@ -1504,11 +1480,11 @@ msgstr ""
"Se debe evitar ejecutar una sesión como usuario con privilegios por motivos "
"de seguridad. Si es posible, inicie sesión como un usuario normal."
#: js/ui/main.js:334
#: js/ui/main.js:337
msgid "Screen Lock disabled"
msgstr "Pantalla de bloqueo desactivada"
#: js/ui/main.js:335
#: js/ui/main.js:338
msgid "Screen Locking requires the GNOME display manager."
msgstr "La pantalla de bloqueo necesita el gestor de pantallas de GNOME."
@@ -1542,27 +1518,27 @@ msgstr "Vista general"
msgid "Type to search"
msgstr "Escribir para buscar"
#: js/ui/padOsd.js:96
#: js/ui/padOsd.js:95
msgid "New shortcut…"
msgstr "Atajo nuevo…"
#: js/ui/padOsd.js:143
#: js/ui/padOsd.js:142
msgid "Application defined"
msgstr "Aplicación definida"
#: js/ui/padOsd.js:144
#: js/ui/padOsd.js:143
msgid "Show on-screen help"
msgstr "Mostrar la ayuda en pantalla"
#: js/ui/padOsd.js:145
#: js/ui/padOsd.js:144
msgid "Switch monitor"
msgstr "Cambiar monitor"
#: js/ui/padOsd.js:146
#: js/ui/padOsd.js:145
msgid "Assign keystroke"
msgstr "Asignar pulsación"
#: js/ui/padOsd.js:212
#: js/ui/padOsd.js:211
msgid "Done"
msgstr "Hecho"
@@ -1601,7 +1577,7 @@ msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistema"
#: js/ui/panel.js:825
#: js/ui/panel.js:827
msgid "Top Bar"
msgstr "Barra superior"
@@ -1778,7 +1754,7 @@ msgstr "Texto grande"
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:49 js/ui/status/network.js:619
#: js/ui/status/bluetooth.js:49 js/ui/status/network.js:595
msgid "Bluetooth Settings"
msgstr "Configuración de Bluetooth"
@@ -1862,18 +1838,18 @@ msgstr ""
"Los servicios de ubicación se pueden cambiar en cualquier momento desde la "
"configuración de privacidad."
#: js/ui/status/network.js:71
#: js/ui/status/network.js:70
msgid "<unknown>"
msgstr "<desconocido>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:449 js/ui/status/network.js:1344
#: js/ui/status/network.js:424 js/ui/status/network.js:1320
#, javascript-format
msgid "%s Off"
msgstr "%s apagada"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:452
#: js/ui/status/network.js:427
#, javascript-format
msgid "%s Connected"
msgstr "%s conectada"
@@ -1881,189 +1857,189 @@ msgstr "%s conectada"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
#: js/ui/status/network.js:457
#: js/ui/status/network.js:432
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s sin gestionar"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:460
#: js/ui/status/network.js:435
#, javascript-format
msgid "%s Disconnecting"
msgstr "Desconectando %s"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:467 js/ui/status/network.js:1336
#: js/ui/status/network.js:442 js/ui/status/network.js:1312
#, javascript-format
msgid "%s Connecting"
msgstr "Conectando %s"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: js/ui/status/network.js:470
#: js/ui/status/network.js:445
#, javascript-format
msgid "%s Requires Authentication"
msgstr "%s requiere autenticación"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
#: js/ui/status/network.js:478
#: js/ui/status/network.js:453
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "Falta el «firmware» para %s"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: js/ui/status/network.js:482
#: js/ui/status/network.js:457
#, javascript-format
msgid "%s Unavailable"
msgstr "%s no disponible"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:485
#: js/ui/status/network.js:460
#, javascript-format
msgid "%s Connection Failed"
msgstr "Falló la conexión %s"
#: js/ui/status/network.js:497
#: js/ui/status/network.js:472
msgid "Wired Settings"
msgstr "Configuración de red cableada"
#: js/ui/status/network.js:540
#: js/ui/status/network.js:515
msgid "Mobile Broadband Settings"
msgstr "Configuración de banda ancha móvil"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:586 js/ui/status/network.js:1341
#: js/ui/status/network.js:562 js/ui/status/network.js:1317
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "Hardware %s desactivado"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: js/ui/status/network.js:590
#: js/ui/status/network.js:566
#, javascript-format
msgid "%s Disabled"
msgstr "%s desactivado"
#: js/ui/status/network.js:631
#: js/ui/status/network.js:607
msgid "Connect to Internet"
msgstr "Conectar a Internet"
#: js/ui/status/network.js:835
#: js/ui/status/network.js:811
msgid "Airplane Mode is On"
msgstr "El modo avión está activado"
#: js/ui/status/network.js:836
#: js/ui/status/network.js:812
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "La Wi-Fi se desactiva cuando se activa el modo avión."
#: js/ui/status/network.js:837
#: js/ui/status/network.js:813
msgid "Turn Off Airplane Mode"
msgstr "Apagar el modo avión"
#: js/ui/status/network.js:846
#: js/ui/status/network.js:822
msgid "Wi-Fi is Off"
msgstr "La Wi-Fi está desactivada"
#: js/ui/status/network.js:847
#: js/ui/status/network.js:823
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Se debe activar la Wi-Fi para poder conectarse a la red."
#: js/ui/status/network.js:848
#: js/ui/status/network.js:824
msgid "Turn On Wi-Fi"
msgstr "Activar la Wi-Fi"
#: js/ui/status/network.js:873
#: js/ui/status/network.js:849
msgid "Wi-Fi Networks"
msgstr "Redes Wi-Fi"
#: js/ui/status/network.js:875
#: js/ui/status/network.js:851
msgid "Select a network"
msgstr "Seleccionar una red"
#: js/ui/status/network.js:907
#: js/ui/status/network.js:883
msgid "No Networks"
msgstr "No hay redes"
#: js/ui/status/network.js:928 js/ui/status/rfkill.js:108
#: js/ui/status/network.js:904 js/ui/status/rfkill.js:106
msgid "Use hardware switch to turn off"
msgstr "Usar el interruptor hardware para apagar"
#: js/ui/status/network.js:1205
#: js/ui/status/network.js:1181
msgid "Select Network"
msgstr "Seleccionar red"
#: js/ui/status/network.js:1211
#: js/ui/status/network.js:1187
msgid "Wi-Fi Settings"
msgstr "Configuración de Wi-Fi"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1332
#: js/ui/status/network.js:1308
#, javascript-format
msgid "%s Hotspot Active"
msgstr "Punto de acceso %s activo"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1347
#: js/ui/status/network.js:1323
#, javascript-format
msgid "%s Not Connected"
msgstr "%s no conectado"
#: js/ui/status/network.js:1444
#: js/ui/status/network.js:1420
msgid "connecting…"
msgstr "conectando…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1447
#: js/ui/status/network.js:1423
msgid "authentication required"
msgstr "se necesita autenticación"
#: js/ui/status/network.js:1449
#: js/ui/status/network.js:1425
msgid "connection failed"
msgstr "falló la conexión"
#: js/ui/status/network.js:1500
#: js/ui/status/network.js:1476
msgid "VPN Settings"
msgstr "Configuración de VPN"
#: js/ui/status/network.js:1517
#: js/ui/status/network.js:1493
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1527
#: js/ui/status/network.js:1503
msgid "VPN Off"
msgstr "VPN apagada"
#: js/ui/status/network.js:1588 js/ui/status/rfkill.js:84
#: js/ui/status/network.js:1564 js/ui/status/rfkill.js:84
msgid "Network Settings"
msgstr "Configuración de la red"
#: js/ui/status/network.js:1617
#: js/ui/status/network.js:1593
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "%s conexión cableada"
msgstr[1] "%s conexiones cableadas"
#: js/ui/status/network.js:1621
#: js/ui/status/network.js:1597
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
msgstr[0] "%s conexión inalámbrica"
msgstr[1] "%s conexiones inalámbricas"
#: js/ui/status/network.js:1625
#: js/ui/status/network.js:1601
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] "%s conexión por módem"
msgstr[1] "%s conexiones por módem"
#: js/ui/status/network.js:1759
#: js/ui/status/network.js:1735
msgid "Connection failed"
msgstr "Falló la conexión"
#: js/ui/status/network.js:1760
#: js/ui/status/network.js:1736
msgid "Activation of network connection failed"
msgstr "Falló la activación de la conexión de red"
@@ -2118,11 +2094,11 @@ msgstr "%d%02d para la carga completa (%d%%)"
msgid "%d%%"
msgstr "%d%%"
#: js/ui/status/remoteAccess.js:45
#: js/ui/status/remoteAccess.js:43
msgid "Screen is Being Shared"
msgstr "Se está compartiendo la pantalla"
#: js/ui/status/remoteAccess.js:47
#: js/ui/status/remoteAccess.js:45
msgid "Turn off"
msgstr "Apagar"
@@ -2133,35 +2109,30 @@ msgstr "Apagar"
msgid "Airplane Mode On"
msgstr "Modo avión activado"
#: js/ui/status/system.js:104
#: js/ui/status/system.js:102
msgid "Lock"
msgstr "Bloquear"
#: js/ui/status/system.js:116
#: js/ui/status/system.js:115
msgid "Power Off / Log Out"
msgstr "Apagar / cerrar sesión"
#: js/ui/status/system.js:119
msgid "Suspend"
msgstr "Suspender"
#: js/ui/status/system.js:130
#| msgid "Restarting…"
msgid "Restart…"
msgstr "Reiniciar…"
#: js/ui/status/system.js:141
msgid "Power Off…"
msgstr "Apagar…"
#: js/ui/status/system.js:154
#: js/ui/status/system.js:118
msgid "Log Out"
msgstr "Cerrar la sesión"
#: js/ui/status/system.js:165
#: js/ui/status/system.js:130
msgid "Switch User…"
msgstr "Cambiar de usuario…"
#: js/ui/status/system.js:144
msgid "Suspend"
msgstr "Suspender"
#: js/ui/status/system.js:156
msgid "Power Off…"
msgstr "Apagar…"
#: js/ui/status/thunderbolt.js:263
msgid "Thunderbolt"
msgstr "Thunderbolt"
@@ -2269,22 +2240,22 @@ msgid "“%s” is ready"
msgstr "«%s» está preparado"
#. Translators: This string should be shorter than 30 characters
#: js/ui/windowManager.js:60
#: js/ui/windowManager.js:55
msgid "Keep these display settings?"
msgstr "¿Quiere mantener esta configuración de la pantalla?"
#. Translators: this and the following message should be limited in length,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:69
#: js/ui/windowManager.js:64
msgid "Revert Settings"
msgstr "Revertir configuración"
#: js/ui/windowManager.js:72
#: js/ui/windowManager.js:67
msgid "Keep Changes"
msgstr "Mantener cambios"
#: js/ui/windowManager.js:91
#: js/ui/windowManager.js:86
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -2293,7 +2264,7 @@ msgstr[1] "La configuración se revertirá en %d segundos"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:551
#: js/ui/windowManager.js:546
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -3591,6 +3562,9 @@ msgstr "Sonidos del sistema"
#~ msgid "Power"
#~ msgstr "Energía"
#~ msgid "Restart"
#~ msgstr "Reiniciar"
#~ msgid "Volume, network, battery"
#~ msgstr "Volumen, red, batería"

743
po/eu.po

File diff suppressed because it is too large Load Diff

759
po/fa.po

File diff suppressed because it is too large Load Diff

1044
po/fi.po

File diff suppressed because it is too large Load Diff

1299
po/gl.po

File diff suppressed because it is too large Load Diff

1322
po/hr.po

File diff suppressed because it is too large Load Diff

502
po/ja.po

File diff suppressed because it is too large Load Diff

486
po/kk.po

File diff suppressed because it is too large Load Diff

1010
po/pl.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

300
po/ro.po
View File

@@ -10,9 +10,10 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-08-10 23:58+0000\n"
"PO-Revision-Date: 2020-08-14 15:27+0300\n"
"Last-Translator: Florentina Mușat <florentina.musat.28@gmail.com>\n"
"POT-Creation-Date: 2020-07-21 05:44+0000\n"
"PO-Revision-Date: 2020-07-21 09:07+0200\n"
"Last-Translator: Florentina Mușat <florentina [dot] musat [dot] 28 [at] "
"gmail [dot] com>\n"
"Language-Team: Gnome Romanian Translation Team <gnomero-list@lists."
"sourceforge.net>\n"
"Language: ro\n"
@@ -22,7 +23,7 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n==0 || (n!=1 && n%100>=1 && n"
"%100<=19) ? 1 : 2);\n"
"20)) ? 1: 2);\n"
"X-Generator: Poedit 2.4\n"
"X-Generator: Poedit 2.3.1\n"
"X-Project-Style: gnome\n"
"X-Poedit-SourceCharset: UTF-8\n"
@@ -234,11 +235,11 @@ msgid ""
"“application id” → 'data' pair. Currently, the following values are stored "
"as 'data': • “position”: the position of the application icon in the page"
msgstr ""
"Aspectul selectorului de aplicații. Fiecare intrare din vector este o "
"Aspectul selectorului de aplicații. Fiecare intrare din matrice este o "
"pagină. Paginile sunt stocate în ordinea în care apar în GNOME Shell. "
"Fiecare pagină conține o pereche de „id aplicație” → „date”. Momentan, "
"următoarele valori sunt stocate ca „data”: • „poziție”: poziția iconiței "
"aplicației în pagină"
"aplicației în pagină."
#: data/org.gnome.shell.gschema.xml.in:130
msgid "Keybinding to open the application menu"
@@ -449,9 +450,9 @@ msgstr "Vizitează pagina principală a extensiei"
#: js/gdm/authPrompt.js:135 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:183
#: js/ui/endSessionDialog.js:369 js/ui/extensionDownloader.js:183
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:940 subprojects/extensions-app/js/main.js:149
#: js/ui/status/network.js:916 subprojects/extensions-app/js/main.js:149
msgid "Cancel"
msgstr "Anulează"
@@ -487,7 +488,7 @@ msgstr "(de exemplu, utilizator sau %s)"
msgid "Username"
msgstr "Nume de utilizator"
#: js/gdm/loginDialog.js:1253
#: js/gdm/loginDialog.js:1254
msgid "Login Window"
msgstr "Fereastră de autentificare"
@@ -505,84 +506,73 @@ msgid "(or swipe finger)"
msgstr "(sau treceți degetul peste)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:91
#: js/misc/systemActions.js:93
msgctxt "search-result"
msgid "Power Off"
msgstr "Oprire"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:94
msgid "power off;shutdown;halt;stop"
msgstr "power off;shutdown;halt;stop;oprește;închide;blochează"
#. Translators: The name of the restart action in search
#: js/misc/systemActions.js:99
msgctxt "search-result"
msgid "Restart"
msgstr "Repornire"
#. Translators: A list of keywords that match the restart action, separated by semicolons
#: js/misc/systemActions.js:102
msgid "reboot;restart;"
msgstr "repornește;restartează;"
#: js/misc/systemActions.js:96
msgid "power off;shutdown;reboot;restart;halt;stop"
msgstr "power off;shutdown;reboot;restart;oprire;repornire"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:107
#: js/misc/systemActions.js:101
msgctxt "search-result"
msgid "Lock Screen"
msgstr "Blochează ecranul"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:110
#: js/misc/systemActions.js:104
msgid "lock screen"
msgstr "lock screen;blochează ecranul"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:115
#: js/misc/systemActions.js:109
msgctxt "search-result"
msgid "Log Out"
msgstr "Ieșire din sesiune"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:118
#: js/misc/systemActions.js:112
msgid "logout;log out;sign off"
msgstr "logout;sign off;ieșire din sesiune;deautentificare"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:123
#: js/misc/systemActions.js:117
msgctxt "search-result"
msgid "Suspend"
msgstr "Suspendare"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:126
#: js/misc/systemActions.js:120
msgid "suspend;sleep"
msgstr "suspend;sleep;suspendare"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:131
#: js/misc/systemActions.js:125
msgctxt "search-result"
msgid "Switch User"
msgstr "Comută utilizatorul"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:134
#: js/misc/systemActions.js:128
msgid "switch user"
msgstr "switch user;comută utilizatorul"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:141
#: js/misc/systemActions.js:135
msgid "lock orientation;unlock orientation;screen;rotation"
msgstr ""
"lock orientation;screen;rotation;blocare orientare;blocare de orientare;"
"ecran;rotație"
#: js/misc/systemActions.js:266
#: js/misc/systemActions.js:255
msgctxt "search-result"
msgid "Unlock Screen Rotation"
msgstr "Deblochează rotația ecranului"
#: js/misc/systemActions.js:267
#: js/misc/systemActions.js:256
msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Rotație de ecran blocat"
@@ -759,31 +749,31 @@ msgid "Unnamed Folder"
msgstr "Dosar nedenumit"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2762 js/ui/panel.js:75
#: js/ui/appDisplay.js:2767 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Ferestre deschise"
#: js/ui/appDisplay.js:2781 js/ui/panel.js:82
#: js/ui/appDisplay.js:2786 js/ui/panel.js:82
msgid "New Window"
msgstr "Fereastră nouă"
#: js/ui/appDisplay.js:2797
#: js/ui/appDisplay.js:2802
msgid "Launch using Integrated Graphics Card"
msgstr "Lansează folosind placa grafică integrată"
#: js/ui/appDisplay.js:2798
#: js/ui/appDisplay.js:2803
msgid "Launch using Discrete Graphics Card"
msgstr "Lansează folosind placa grafică discretă"
#: js/ui/appDisplay.js:2826 js/ui/dash.js:239
#: js/ui/appDisplay.js:2831 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Elimină din favorite"
#: js/ui/appDisplay.js:2832
#: js/ui/appDisplay.js:2837
msgid "Add to Favorites"
msgstr "Adaugă la Favorite"
#: js/ui/appDisplay.js:2842 js/ui/panel.js:93
#: js/ui/appDisplay.js:2847 js/ui/panel.js:93
msgid "Show Details"
msgstr "Arată detaliile"
@@ -984,8 +974,8 @@ msgstr ""
"În mod alternativ vă puteți conecta apăsând butonul „WPS” pe routerul "
"dumneavoastră."
#: js/ui/components/networkAgent.js:104 js/ui/status/network.js:252
#: js/ui/status/network.js:343 js/ui/status/network.js:943
#: js/ui/components/networkAgent.js:104 js/ui/status/network.js:227
#: js/ui/status/network.js:318 js/ui/status/network.js:919
msgid "Connect"
msgstr "Conectare"
@@ -1050,7 +1040,7 @@ msgstr "PIN"
msgid "A password is required to connect to “%s”."
msgstr "Este necesară o parolă pentru conectarea la „%s”."
#: js/ui/components/networkAgent.js:669 js/ui/status/network.js:1718
#: js/ui/components/networkAgent.js:669 js/ui/status/network.js:1694
msgid "Network Manager"
msgstr "Gestionar de rețea"
@@ -1176,18 +1166,18 @@ msgstr "Vreme"
msgid "Select weather location…"
msgstr "Selectează locația vremii…"
#: js/ui/endSessionDialog.js:39
#: js/ui/endSessionDialog.js:37
#, javascript-format
msgctxt "title"
msgid "Log Out %s"
msgstr "Ieșire din sesiune pentru %s"
#: js/ui/endSessionDialog.js:40
#: js/ui/endSessionDialog.js:38
msgctxt "title"
msgid "Log Out"
msgstr "Ieșire din sesiune"
#: js/ui/endSessionDialog.js:43
#: js/ui/endSessionDialog.js:40
#, javascript-format
msgid "%s will be logged out automatically in %d second."
msgid_plural "%s will be logged out automatically in %d seconds."
@@ -1195,7 +1185,7 @@ msgstr[0] "%s va fi scos din sesiune automat în %d secundă."
msgstr[1] "%s va fi scos din sesiune automat în %d secunde."
msgstr[2] "%s va fi scos din sesiune automat în %d de secunde."
#: js/ui/endSessionDialog.js:49
#: js/ui/endSessionDialog.js:45
#, javascript-format
msgid "You will be logged out automatically in %d second."
msgid_plural "You will be logged out automatically in %d seconds."
@@ -1203,22 +1193,22 @@ msgstr[0] "Veți fi scos din sesiune automat în %d secundă."
msgstr[1] "Veți fi scos din sesiune automat în %d secunde."
msgstr[2] "Veți fi scos din sesiune automat în %d de secunde."
#: js/ui/endSessionDialog.js:56
#: js/ui/endSessionDialog.js:51
msgctxt "button"
msgid "Log Out"
msgstr "Ieșire din sesiune"
#: js/ui/endSessionDialog.js:62
#: js/ui/endSessionDialog.js:56
msgctxt "title"
msgid "Power Off"
msgstr "Oprire"
#: js/ui/endSessionDialog.js:63
#: js/ui/endSessionDialog.js:57
msgctxt "title"
msgid "Install Updates & Power Off"
msgstr "Instalarea actualizărilor și repornirea"
#: js/ui/endSessionDialog.js:66
#: js/ui/endSessionDialog.js:59
#, javascript-format
msgid "The system will power off automatically in %d second."
msgid_plural "The system will power off automatically in %d seconds."
@@ -1226,27 +1216,27 @@ msgstr[0] "Sistemul se va opri automat în %d secundă."
msgstr[1] "Sistemul se va opri automat în %d secunde."
msgstr[2] "Sistemul se va opri automat în %d de secunde."
#: js/ui/endSessionDialog.js:70 js/ui/endSessionDialog.js:89
#: js/ui/endSessionDialog.js:63
msgctxt "checkbox"
msgid "Install pending software updates"
msgstr "Instalează actualizările în așteptare"
#: js/ui/endSessionDialog.js:74
#: js/ui/endSessionDialog.js:66 js/ui/endSessionDialog.js:82
msgctxt "button"
msgid "Restart"
msgstr "Repornire"
#: js/ui/endSessionDialog.js:68
msgctxt "button"
msgid "Power Off"
msgstr "Oprire"
#: js/ui/endSessionDialog.js:81
#: js/ui/endSessionDialog.js:74
msgctxt "title"
msgid "Restart"
msgstr "Repornire"
#: js/ui/endSessionDialog.js:82
msgctxt "title"
msgid "Install Updates & Restart"
msgstr "Instalează actualizările și repornește"
#: js/ui/endSessionDialog.js:85
#: js/ui/endSessionDialog.js:76
#, javascript-format
msgid "The system will restart automatically in %d second."
msgid_plural "The system will restart automatically in %d seconds."
@@ -1254,17 +1244,12 @@ msgstr[0] "Sistemul se va reporni automat în %d secundă."
msgstr[1] "Sistemul se va reporni automat în %d secunde."
msgstr[2] "Sistemul se va reporni automat în %d de secunde."
#: js/ui/endSessionDialog.js:93
msgctxt "button"
msgid "Restart"
msgstr "Repornire"
#: js/ui/endSessionDialog.js:101
#: js/ui/endSessionDialog.js:89
msgctxt "title"
msgid "Restart & Install Updates"
msgstr "Repornire și instalare actualizări"
#: js/ui/endSessionDialog.js:104
#: js/ui/endSessionDialog.js:91
#, javascript-format
msgid "The system will automatically restart and install updates in %d second."
msgid_plural ""
@@ -1273,22 +1258,22 @@ msgstr[0] "Sistemul se va reporni automat în %d secundă."
msgstr[1] "Sistemul se va reporni automat în %d secunde."
msgstr[2] "Sistemul se va reporni automat în %d de secunde."
#: js/ui/endSessionDialog.js:111 js/ui/endSessionDialog.js:132
#: js/ui/endSessionDialog.js:97 js/ui/endSessionDialog.js:116
msgctxt "button"
msgid "Restart &amp; Install"
msgstr "Repornește și instalează"
#: js/ui/endSessionDialog.js:113
#: js/ui/endSessionDialog.js:98
msgctxt "button"
msgid "Install &amp; Power Off"
msgstr "Instalează și oprește"
#: js/ui/endSessionDialog.js:114
#: js/ui/endSessionDialog.js:99
msgctxt "checkbox"
msgid "Power off after updates are installed"
msgstr "Oprește după ce actualizările au fost instalate"
#: js/ui/endSessionDialog.js:121
#: js/ui/endSessionDialog.js:106
msgctxt "title"
msgid "Restart & Install Upgrade"
msgstr "Repornire și instalare înnoiri"
@@ -1296,7 +1281,7 @@ msgstr "Repornire și instalare înnoiri"
#. Translators: This is the text displayed for system upgrades in the
#. shut down dialog. First %s gets replaced with the distro name and
#. second %s with the distro version to upgrade to
#: js/ui/endSessionDialog.js:126
#: js/ui/endSessionDialog.js:111
#, javascript-format
msgid ""
"%s %s will be installed after restart. Upgrade installation can take a long "
@@ -1306,32 +1291,28 @@ msgstr ""
"timp: asigurați-vă că ați făcut o copie de siguranță și că calculatorul este "
"conectat la rețeaua electrică."
#: js/ui/endSessionDialog.js:284
msgid "Low battery power: please plug in before installing updates."
#: js/ui/endSessionDialog.js:259
msgid "Running on battery power: Please plug in before installing updates."
msgstr ""
"Putere de baterie scăzută: conectați înainte de a instala actualizările."
"Se rulează pe puterea bateriei: conectați-vă înainte de a instala "
"actualizările."
#: js/ui/endSessionDialog.js:293
#: js/ui/endSessionDialog.js:268
msgid "Some applications are busy or have unsaved work"
msgstr "Unele aplicații sunt ocupate sau au muncă nesalvată"
#: js/ui/endSessionDialog.js:298
#: js/ui/endSessionDialog.js:273
msgid "Other users are logged in"
msgstr "Alți utilizatori sunt autentificați"
#: js/ui/endSessionDialog.js:467
msgctxt "button"
msgid "Boot Options"
msgstr "Opțiuni de inițializare"
#. Translators: Remote here refers to a remote session, like a ssh login
#: js/ui/endSessionDialog.js:685
#: js/ui/endSessionDialog.js:583
#, javascript-format
msgid "%s (remote)"
msgstr "%s (la distanță)"
#. Translators: Console here refers to a tty like a VT console
#: js/ui/endSessionDialog.js:688
#: js/ui/endSessionDialog.js:586
#, javascript-format
msgid "%s (console)"
msgstr "%s (consolă)"
@@ -1434,15 +1415,15 @@ msgid "Leave On"
msgstr "Lasă pornit"
#: js/ui/kbdA11yDialog.js:55 js/ui/status/bluetooth.js:156
#: js/ui/status/network.js:1315
#: js/ui/status/network.js:1291
msgid "Turn On"
msgstr "Pornește"
#: js/ui/kbdA11yDialog.js:63 js/ui/status/bluetooth.js:156
#: js/ui/status/network.js:160 js/ui/status/network.js:344
#: js/ui/status/network.js:1315 js/ui/status/network.js:1427
#: js/ui/status/network.js:135 js/ui/status/network.js:319
#: js/ui/status/network.js:1291 js/ui/status/network.js:1403
#: js/ui/status/nightLight.js:41 js/ui/status/rfkill.js:81
#: js/ui/status/rfkill.js:110
#: js/ui/status/rfkill.js:108
msgid "Turn Off"
msgstr "Oprește"
@@ -1503,11 +1484,11 @@ msgstr "Vizualizează sursa"
msgid "Web Page"
msgstr "Pagină Web"
#: js/ui/main.js:294
#: js/ui/main.js:297
msgid "Logged in as a privileged user"
msgstr "Autentificat ca utilizator privilegiat"
#: js/ui/main.js:295
#: js/ui/main.js:298
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@@ -1516,11 +1497,11 @@ msgstr ""
"pentru motive de securitate. Dacă este posibil, ar trebui să vă "
"autentificați ca un utilizator normal."
#: js/ui/main.js:334
#: js/ui/main.js:337
msgid "Screen Lock disabled"
msgstr "Blocarea ecranului este dezactivată"
#: js/ui/main.js:335
#: js/ui/main.js:338
msgid "Screen Locking requires the GNOME display manager."
msgstr "Blocarea ecranului necesită administratorul de afișaj GNOME."
@@ -1613,7 +1594,7 @@ msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistem"
#: js/ui/panel.js:825
#: js/ui/panel.js:827
msgid "Top Bar"
msgstr "Bara de sus"
@@ -1791,7 +1772,7 @@ msgstr "Text mare"
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:49 js/ui/status/network.js:619
#: js/ui/status/bluetooth.js:49 js/ui/status/network.js:595
msgid "Bluetooth Settings"
msgstr "Configurări Bluetooth"
@@ -1875,18 +1856,18 @@ msgstr ""
"Accesul la locație poate fi schimbat oricând din configurările de "
"confidențialitate."
#: js/ui/status/network.js:71
#: js/ui/status/network.js:70
msgid "<unknown>"
msgstr "<necunoscut>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:449 js/ui/status/network.js:1344
#: js/ui/status/network.js:424 js/ui/status/network.js:1320
#, javascript-format
msgid "%s Off"
msgstr "%s oprit"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:452
#: js/ui/status/network.js:427
#, javascript-format
msgid "%s Connected"
msgstr "%s conectat"
@@ -1894,164 +1875,164 @@ msgstr "%s conectat"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
#: js/ui/status/network.js:457
#: js/ui/status/network.js:432
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s este negestionat"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:460
#: js/ui/status/network.js:435
#, javascript-format
msgid "%s Disconnecting"
msgstr "Se deconectează %s"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:467 js/ui/status/network.js:1336
#: js/ui/status/network.js:442 js/ui/status/network.js:1312
#, javascript-format
msgid "%s Connecting"
msgstr "Se conectează %s"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: js/ui/status/network.js:470
#: js/ui/status/network.js:445
#, javascript-format
msgid "%s Requires Authentication"
msgstr "%s necesită autentificare"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
#: js/ui/status/network.js:478
#: js/ui/status/network.js:453
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "Firmware lipsă pentru %s"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: js/ui/status/network.js:482
#: js/ui/status/network.js:457
#, javascript-format
msgid "%s Unavailable"
msgstr "%s indisponibil"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:485
#: js/ui/status/network.js:460
#, javascript-format
msgid "%s Connection Failed"
msgstr "Conectarea la %s a eșuat"
#: js/ui/status/network.js:497
#: js/ui/status/network.js:472
msgid "Wired Settings"
msgstr "Configurări pentru conexiune cu fir"
#: js/ui/status/network.js:540
#: js/ui/status/network.js:515
msgid "Mobile Broadband Settings"
msgstr "Configurări de rețea de bandă largă mobilă"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:586 js/ui/status/network.js:1341
#: js/ui/status/network.js:562 js/ui/status/network.js:1317
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "Hardware %s dezactivat"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: js/ui/status/network.js:590
#: js/ui/status/network.js:566
#, javascript-format
msgid "%s Disabled"
msgstr "%s dezactivat"
#: js/ui/status/network.js:631
#: js/ui/status/network.js:607
msgid "Connect to Internet"
msgstr "Conectează la Internet"
#: js/ui/status/network.js:835
#: js/ui/status/network.js:811
msgid "Airplane Mode is On"
msgstr "Modul avion este pornit"
#: js/ui/status/network.js:836
#: js/ui/status/network.js:812
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Wi-Fi este dezactivat când modul avion este pornit."
#: js/ui/status/network.js:837
#: js/ui/status/network.js:813
msgid "Turn Off Airplane Mode"
msgstr "Oprește modul avion"
#: js/ui/status/network.js:846
#: js/ui/status/network.js:822
msgid "Wi-Fi is Off"
msgstr "Wi-Fi este oprit"
#: js/ui/status/network.js:847
#: js/ui/status/network.js:823
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Wi-Fi trebuie pornit pentru a se putea face conexiunea la o rețea."
#: js/ui/status/network.js:848
#: js/ui/status/network.js:824
msgid "Turn On Wi-Fi"
msgstr "Pornește Wi-Fi"
#: js/ui/status/network.js:873
#: js/ui/status/network.js:849
msgid "Wi-Fi Networks"
msgstr "Rețele Wi-Fi"
#: js/ui/status/network.js:875
#: js/ui/status/network.js:851
msgid "Select a network"
msgstr "Selectați o rețea"
#: js/ui/status/network.js:907
#: js/ui/status/network.js:883
msgid "No Networks"
msgstr "Nicio rețea"
#: js/ui/status/network.js:928 js/ui/status/rfkill.js:108
#: js/ui/status/network.js:904 js/ui/status/rfkill.js:106
msgid "Use hardware switch to turn off"
msgstr "Folosește un întrerupător hardware pentru a opri"
#: js/ui/status/network.js:1205
#: js/ui/status/network.js:1181
msgid "Select Network"
msgstr "Selectați rețeaua"
#: js/ui/status/network.js:1211
#: js/ui/status/network.js:1187
msgid "Wi-Fi Settings"
msgstr "Configurări Wi-Fi"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1332
#: js/ui/status/network.js:1308
#, javascript-format
msgid "%s Hotspot Active"
msgstr "Hotspot %s activ"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1347
#: js/ui/status/network.js:1323
#, javascript-format
msgid "%s Not Connected"
msgstr "%s nu este conectat"
#: js/ui/status/network.js:1444
#: js/ui/status/network.js:1420
msgid "connecting…"
msgstr "se conectează…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1447
#: js/ui/status/network.js:1423
msgid "authentication required"
msgstr "necesită autentificare"
#: js/ui/status/network.js:1449
#: js/ui/status/network.js:1425
msgid "connection failed"
msgstr "conexiune eșuată"
#: js/ui/status/network.js:1500
#: js/ui/status/network.js:1476
msgid "VPN Settings"
msgstr "Configurări VPN"
#: js/ui/status/network.js:1517
#: js/ui/status/network.js:1493
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1527
#: js/ui/status/network.js:1503
msgid "VPN Off"
msgstr "VPN oprit"
#: js/ui/status/network.js:1588 js/ui/status/rfkill.js:84
#: js/ui/status/network.js:1564 js/ui/status/rfkill.js:84
msgid "Network Settings"
msgstr "Configurări de rețea"
#: js/ui/status/network.js:1617
#: js/ui/status/network.js:1593
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
@@ -2059,7 +2040,7 @@ msgstr[0] "%s conexiune cu fir"
msgstr[1] "%s conexiuni cu fir"
msgstr[2] "%s de conexiuni cu fir"
#: js/ui/status/network.js:1621
#: js/ui/status/network.js:1597
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
@@ -2067,7 +2048,7 @@ msgstr[0] "%s conexiune fără fir"
msgstr[1] "%s conexiuni fără fir"
msgstr[2] "%s de conexiuni fără fir"
#: js/ui/status/network.js:1625
#: js/ui/status/network.js:1601
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
@@ -2075,11 +2056,11 @@ msgstr[0] "%s conexiune cu modem"
msgstr[1] "%s conexiuni cu modem"
msgstr[2] "%s de conexiuni cu modem"
#: js/ui/status/network.js:1759
#: js/ui/status/network.js:1735
msgid "Connection failed"
msgstr "Conexiune eșuată"
#: js/ui/status/network.js:1760
#: js/ui/status/network.js:1736
msgid "Activation of network connection failed"
msgstr "Activarea conexiunii de rețea a eșuat"
@@ -2134,11 +2115,11 @@ msgstr "%d%02d până este plină (%d%%)"
msgid "%d%%"
msgstr "%d%%"
#: js/ui/status/remoteAccess.js:45
#: js/ui/status/remoteAccess.js:43
msgid "Screen is Being Shared"
msgstr "Ecranul este partajat"
#: js/ui/status/remoteAccess.js:47
#: js/ui/status/remoteAccess.js:45
msgid "Turn off"
msgstr "Oprește"
@@ -2149,34 +2130,30 @@ msgstr "Oprește"
msgid "Airplane Mode On"
msgstr "Modul avion este pornit"
#: js/ui/status/system.js:104
#: js/ui/status/system.js:102
msgid "Lock"
msgstr "Blocare"
#: js/ui/status/system.js:116
#: js/ui/status/system.js:115
msgid "Power Off / Log Out"
msgstr "Oprire / Deautentificare"
#: js/ui/status/system.js:119
msgid "Suspend"
msgstr "Suspendare"
#: js/ui/status/system.js:130
msgid "Restart…"
msgstr "Repornește…"
#: js/ui/status/system.js:141
msgid "Power Off…"
msgstr "Se oprește…"
#: js/ui/status/system.js:154
#: js/ui/status/system.js:118
msgid "Log Out"
msgstr "Ieșire din sesiune"
#: js/ui/status/system.js:165
#: js/ui/status/system.js:130
msgid "Switch User…"
msgstr "Comută utilizatorul…"
#: js/ui/status/system.js:144
msgid "Suspend"
msgstr "Suspendare"
#: js/ui/status/system.js:156
msgid "Power Off…"
msgstr "Se oprește…"
#: js/ui/status/thunderbolt.js:263
msgid "Thunderbolt"
msgstr "Thunderbolt"
@@ -2284,22 +2261,22 @@ msgid "“%s” is ready"
msgstr "„%s” este gata"
#. Translators: This string should be shorter than 30 characters
#: js/ui/windowManager.js:60
#: js/ui/windowManager.js:55
msgid "Keep these display settings?"
msgstr "Doriți să păstrați aceste configurări de afișaj?"
#. Translators: this and the following message should be limited in length,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:69
#: js/ui/windowManager.js:64
msgid "Revert Settings"
msgstr "Restaurează configurările"
#: js/ui/windowManager.js:72
#: js/ui/windowManager.js:67
msgid "Keep Changes"
msgstr "Păstrați modificările"
#: js/ui/windowManager.js:91
#: js/ui/windowManager.js:86
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -2309,7 +2286,7 @@ msgstr[2] "Schimbările vor fi restaurare în %d de secunde"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:551
#: js/ui/windowManager.js:546
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -3457,6 +3434,9 @@ msgstr "Sunete de sistem"
#~ msgid "Power"
#~ msgstr "Oprire"
#~ msgid "Restart"
#~ msgstr "Repornire"
#~ msgid "Click Log Out to quit these applications and log out of the system."
#~ msgstr ""
#~ "Apăsați „Ieșire din sesiune” pentru a închide aceste aplicații și a ieși "

791
po/sl.po

File diff suppressed because it is too large Load Diff

372
po/tr.po
View File

@@ -17,8 +17,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-08-14 15:48+0000\n"
"PO-Revision-Date: 2020-08-17 02:24+0300\n"
"POT-Creation-Date: 2020-07-29 07:55+0000\n"
"PO-Revision-Date: 2020-07-30 00:49+0300\n"
"Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>\n"
"Language-Team: Türkçe <gnome-turk@gnome.org>\n"
"Language: tr\n"
@@ -26,7 +26,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 2.4\n"
"X-Generator: Poedit 2.3\n"
"X-Project-Style: gnome\n"
#: data/50-gnome-shell-system.xml:6
@@ -236,10 +236,10 @@ msgid ""
"“application id” → 'data' pair. Currently, the following values are stored "
"as 'data': • “position”: the position of the application icon in the page"
msgstr ""
"Uygulama seçicinin düzeni. Dizideki her girdi bir sayfadır. Sayfalar GNOME "
"Kabuğunda göründüğü sırayla depolanır. Her sayfa bir “application id” "
"'data' çifti içerir. Şimdilik şu değerler 'data' olarak depolanır: "
"“position”: sayfadaki uygulama simgesinin konumu"
"Uygulama seçicinin düzeni. Dizideki her girdi bir sayfadır. Sayfalar "
"GNOME Kabuğunda göründüğü sırayla depolanır. Her sayfa bir “application id” "
"'data' çifti içerir. Şimdilik şu değerler 'data' olarak depolanır: "
"“position”: sayfadaki uygulama simgesinin konumu"
#: data/org.gnome.shell.gschema.xml.in:130
msgid "Keybinding to open the application menu"
@@ -445,18 +445,18 @@ msgid "Visit extension homepage"
msgstr "Uzantı ana sayfasını ziyaret et"
#: js/gdm/authPrompt.js:135 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:111 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:183
#: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:369 js/ui/extensionDownloader.js:183
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:940 subprojects/extensions-app/js/main.js:149
#: js/ui/status/network.js:916 subprojects/extensions-app/js/main.js:149
msgid "Cancel"
msgstr "İptal"
#. Cisco LEAP
#: js/gdm/authPrompt.js:237 js/ui/components/networkAgent.js:206
#: js/ui/components/networkAgent.js:222 js/ui/components/networkAgent.js:246
#: js/ui/components/networkAgent.js:267 js/ui/components/networkAgent.js:287
#: js/ui/components/networkAgent.js:297 js/ui/components/polkitAgent.js:277
#: js/gdm/authPrompt.js:237 js/ui/components/networkAgent.js:205
#: js/ui/components/networkAgent.js:221 js/ui/components/networkAgent.js:245
#: js/ui/components/networkAgent.js:266 js/ui/components/networkAgent.js:286
#: js/ui/components/networkAgent.js:296 js/ui/components/polkitAgent.js:277
#: js/ui/shellMountOperation.js:326
msgid "Password"
msgstr "Parola"
@@ -479,8 +479,8 @@ msgstr "(örneğin, kullanıcı veya %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:918 js/ui/components/networkAgent.js:242
#: js/ui/components/networkAgent.js:265 js/ui/components/networkAgent.js:283
#: js/gdm/loginDialog.js:918 js/ui/components/networkAgent.js:241
#: js/ui/components/networkAgent.js:264 js/ui/components/networkAgent.js:282
msgid "Username"
msgstr "Kullanıcı Adı"
@@ -502,82 +502,71 @@ msgid "(or swipe finger)"
msgstr "(ya da parmak izi okut)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:91
#: js/misc/systemActions.js:93
msgctxt "search-result"
msgid "Power Off"
msgstr "Bilgisayarı Kapat"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:94
msgid "power off;shutdown;halt;stop"
msgstr "gücü kapat;bilgisayarı kapat;duraklat;durdur"
#. Translators: The name of the restart action in search
#: js/misc/systemActions.js:99
msgctxt "search-result"
msgid "Restart"
msgstr "Yeniden Başlat"
#. Translators: A list of keywords that match the restart action, separated by semicolons
#: js/misc/systemActions.js:102
msgid "reboot;restart;"
msgstr "yeniden önyükle;yeniden başlat;"
#: js/misc/systemActions.js:96
msgid "power off;shutdown;reboot;restart;halt;stop"
msgstr "gücü kapat;bilgisayarı kapat;yeniden başlat;duraklat;durdur"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:107
#: js/misc/systemActions.js:101
msgctxt "search-result"
msgid "Lock Screen"
msgstr "Ekranı Kilitle"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:110
#: js/misc/systemActions.js:104
msgid "lock screen"
msgstr "ekranı kilitle"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:115
#: js/misc/systemActions.js:109
msgctxt "search-result"
msgid "Log Out"
msgstr "Oturumu Kapat"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:118
#: js/misc/systemActions.js:112
msgid "logout;log out;sign off"
msgstr "çıkış;oturumu kapat;çıkış yap"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:123
#: js/misc/systemActions.js:117
msgctxt "search-result"
msgid "Suspend"
msgstr "Bilgisayarı beklet"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:126
#: js/misc/systemActions.js:120
msgid "suspend;sleep"
msgstr "beklet;uyku;duraklat"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:131
#: js/misc/systemActions.js:125
msgctxt "search-result"
msgid "Switch User"
msgstr "Kullanıcı Değiştir"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:134
#: js/misc/systemActions.js:128
msgid "switch user"
msgstr "kullanıcı değiştir"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:141
#: js/misc/systemActions.js:135
msgid "lock orientation;unlock orientation;screen;rotation"
msgstr "yönelimi kilitle;yönelim kilidini kaldır;ekran;döndürme"
#: js/misc/systemActions.js:266
#: js/misc/systemActions.js:255
msgctxt "search-result"
msgid "Unlock Screen Rotation"
msgstr "Ekran Döndürme Kilidini Kaldır"
#: js/misc/systemActions.js:267
#: js/misc/systemActions.js:256
msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Ekran Döndürmeyi Kilitle"
@@ -742,31 +731,31 @@ msgid "Unnamed Folder"
msgstr "Adsız Klasör"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2766 js/ui/panel.js:75
#: js/ui/appDisplay.js:2767 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Açık Pencereler"
#: js/ui/appDisplay.js:2785 js/ui/panel.js:82
#: js/ui/appDisplay.js:2786 js/ui/panel.js:82
msgid "New Window"
msgstr "Yeni Pencere"
#: js/ui/appDisplay.js:2801
#: js/ui/appDisplay.js:2802
msgid "Launch using Integrated Graphics Card"
msgstr "Tümleşik Ekran Kartıyla Başlat"
#: js/ui/appDisplay.js:2802
#: js/ui/appDisplay.js:2803
msgid "Launch using Discrete Graphics Card"
msgstr "Ayrık Ekran Kartıyla Başlat"
#: js/ui/appDisplay.js:2830 js/ui/dash.js:239
#: js/ui/appDisplay.js:2831 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Sık Kullanılanlardan Çıkar"
#: js/ui/appDisplay.js:2836
#: js/ui/appDisplay.js:2837
msgid "Add to Favorites"
msgstr "Sık Kullanılanlara Ekle"
#: js/ui/appDisplay.js:2846 js/ui/panel.js:93
#: js/ui/appDisplay.js:2847 js/ui/panel.js:93
msgid "Show Details"
msgstr "Ayrıntıları Göster"
@@ -960,40 +949,40 @@ msgstr "Kurulu udisks sürümü PIM ayarını desteklemiyor"
msgid "Open with %s"
msgstr "%s ile Aç"
#: js/ui/components/networkAgent.js:93
#: js/ui/components/networkAgent.js:92
msgid ""
"Alternatively you can connect by pushing the “WPS” button on your router."
msgstr ""
"Diğer seçenek olarak, yönlendiricinizde “WPS” düğmesini kullanarak "
"bağlayabilirsiniz."
#: js/ui/components/networkAgent.js:105 js/ui/status/network.js:252
#: js/ui/status/network.js:343 js/ui/status/network.js:943
#: js/ui/components/networkAgent.js:104 js/ui/status/network.js:227
#: js/ui/status/network.js:318 js/ui/status/network.js:919
msgid "Connect"
msgstr "Bağlan"
#: js/ui/components/networkAgent.js:212
#: js/ui/components/networkAgent.js:211
msgid "Key"
msgstr "Anahtar"
#: js/ui/components/networkAgent.js:250 js/ui/components/networkAgent.js:273
#: js/ui/components/networkAgent.js:249 js/ui/components/networkAgent.js:272
msgid "Private key password"
msgstr "Özel anahtar parolası"
#: js/ui/components/networkAgent.js:271
#: js/ui/components/networkAgent.js:270
msgid "Identity"
msgstr "Kimlik"
#: js/ui/components/networkAgent.js:285
#: js/ui/components/networkAgent.js:284
msgid "Service"
msgstr "Hizmet"
#: js/ui/components/networkAgent.js:314 js/ui/components/networkAgent.js:342
#: js/ui/components/networkAgent.js:675 js/ui/components/networkAgent.js:696
#: js/ui/components/networkAgent.js:313 js/ui/components/networkAgent.js:341
#: js/ui/components/networkAgent.js:680 js/ui/components/networkAgent.js:701
msgid "Authentication required"
msgstr "Kimlik doğrulama gerekir"
#: js/ui/components/networkAgent.js:315 js/ui/components/networkAgent.js:676
#: js/ui/components/networkAgent.js:314 js/ui/components/networkAgent.js:681
#, javascript-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@@ -1001,42 +990,42 @@ msgid ""
msgstr ""
"“%s” kablosuz ağına erişmek için parola veya şifreleme anahtarları gerekiyor."
#: js/ui/components/networkAgent.js:319 js/ui/components/networkAgent.js:680
#: js/ui/components/networkAgent.js:318 js/ui/components/networkAgent.js:685
msgid "Wired 802.1X authentication"
msgstr "Kablolu 802.1X kimlik doğrulaması"
#: js/ui/components/networkAgent.js:321
#: js/ui/components/networkAgent.js:320
msgid "Network name"
msgstr "Ağ adı"
#: js/ui/components/networkAgent.js:326 js/ui/components/networkAgent.js:684
#: js/ui/components/networkAgent.js:325 js/ui/components/networkAgent.js:689
msgid "DSL authentication"
msgstr "DSL kimlik doğrulama"
#: js/ui/components/networkAgent.js:333 js/ui/components/networkAgent.js:689
#: js/ui/components/networkAgent.js:332 js/ui/components/networkAgent.js:694
msgid "PIN code required"
msgstr "PIN kodu gerekli"
#: js/ui/components/networkAgent.js:334 js/ui/components/networkAgent.js:690
#: js/ui/components/networkAgent.js:333 js/ui/components/networkAgent.js:695
msgid "PIN code is needed for the mobile broadband device"
msgstr "Mobil geniş bant aygıtı için PIN kodu gerekli"
#: js/ui/components/networkAgent.js:335
#: js/ui/components/networkAgent.js:334
msgid "PIN"
msgstr "PIN"
#: js/ui/components/networkAgent.js:343 js/ui/components/networkAgent.js:681
#: js/ui/components/networkAgent.js:685 js/ui/components/networkAgent.js:697
#: js/ui/components/networkAgent.js:701
#: js/ui/components/networkAgent.js:342 js/ui/components/networkAgent.js:686
#: js/ui/components/networkAgent.js:690 js/ui/components/networkAgent.js:702
#: js/ui/components/networkAgent.js:706
#, javascript-format
msgid "A password is required to connect to “%s”."
msgstr "“%s”e bağlanmak için parola gerekli."
#: js/ui/components/networkAgent.js:664 js/ui/status/network.js:1718
#: js/ui/components/networkAgent.js:669 js/ui/status/network.js:1694
msgid "Network Manager"
msgstr "Ağ Yöneticisi"
#: js/ui/components/networkAgent.js:700
#: js/ui/components/networkAgent.js:705
msgid "VPN password"
msgstr "VPN parolası"
@@ -1158,87 +1147,82 @@ msgstr "Hava Durumu"
msgid "Select weather location…"
msgstr "Hava durumu konumu seç…"
#: js/ui/endSessionDialog.js:39
#: js/ui/endSessionDialog.js:37
#, javascript-format
msgctxt "title"
msgid "Log Out %s"
msgstr "%s Oturumunu Kapat"
#: js/ui/endSessionDialog.js:40
#: js/ui/endSessionDialog.js:38
msgctxt "title"
msgid "Log Out"
msgstr "Oturumu Kapat"
#: js/ui/endSessionDialog.js:43
#: js/ui/endSessionDialog.js:40
#, 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 oturumu %d saniye içinde kendiliğinden kapatılacak."
#: js/ui/endSessionDialog.js:49
#: js/ui/endSessionDialog.js:45
#, 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] "%d saniye içinde oturumunuz kendiliğinden kapatılacak."
#: js/ui/endSessionDialog.js:56
#: js/ui/endSessionDialog.js:51
msgctxt "button"
msgid "Log Out"
msgstr "Çıkış"
#: js/ui/endSessionDialog.js:62
#: js/ui/endSessionDialog.js:56
msgctxt "title"
msgid "Power Off"
msgstr "Bilgisayarı Kapat"
#: js/ui/endSessionDialog.js:63
#: js/ui/endSessionDialog.js:57
msgctxt "title"
msgid "Install Updates & Power Off"
msgstr "Güncelleştirmeleri Kur ve Kapat"
#: js/ui/endSessionDialog.js:66
#: js/ui/endSessionDialog.js:59
#, 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] "Sistem %d saniye içinde kendiliğinden kapanacak."
#: js/ui/endSessionDialog.js:70 js/ui/endSessionDialog.js:89
#: js/ui/endSessionDialog.js:63
msgctxt "checkbox"
msgid "Install pending software updates"
msgstr "Beklemede olan yazılım güncelleştirmelerini kur"
#: js/ui/endSessionDialog.js:74
#: js/ui/endSessionDialog.js:66 js/ui/endSessionDialog.js:82
msgctxt "button"
msgid "Restart"
msgstr "Yeniden Başlat"
#: js/ui/endSessionDialog.js:68
msgctxt "button"
msgid "Power Off"
msgstr "Kapat"
#: js/ui/endSessionDialog.js:81
#: js/ui/endSessionDialog.js:74
msgctxt "title"
msgid "Restart"
msgstr "Bilgisayarı Yeniden Başlat"
#: js/ui/endSessionDialog.js:82
msgctxt "title"
msgid "Install Updates & Restart"
msgstr "Güncelleştirmeleri Kur ve Yeniden Başlat"
#: js/ui/endSessionDialog.js:85
#: js/ui/endSessionDialog.js:76
#, javascript-format
msgid "The system will restart automatically in %d second."
msgid_plural "The system will restart automatically in %d seconds."
msgstr[0] "Sistem %d saniye içinde kendiliğinden yeniden başlayacak."
#: js/ui/endSessionDialog.js:93
msgctxt "button"
msgid "Restart"
msgstr "Yeniden Başlat"
#: js/ui/endSessionDialog.js:101
#: js/ui/endSessionDialog.js:89
msgctxt "title"
msgid "Restart & Install Updates"
msgstr "Yeniden Başlat ve Güncelleştirmeleri Kur"
#: js/ui/endSessionDialog.js:104
#: js/ui/endSessionDialog.js:91
#, javascript-format
msgid "The system will automatically restart and install updates in %d second."
msgid_plural ""
@@ -1247,22 +1231,22 @@ msgstr[0] ""
"Sistem %d saniye içinde kendiliğinden yeniden başlayacak ve "
"güncelleştirmeleri kuracak."
#: js/ui/endSessionDialog.js:111 js/ui/endSessionDialog.js:132
#: js/ui/endSessionDialog.js:97 js/ui/endSessionDialog.js:116
msgctxt "button"
msgid "Restart &amp; Install"
msgstr "Yeniden Başlat ve Kur"
#: js/ui/endSessionDialog.js:113
#: js/ui/endSessionDialog.js:98
msgctxt "button"
msgid "Install &amp; Power Off"
msgstr "Kur ve Kapat"
#: js/ui/endSessionDialog.js:114
#: js/ui/endSessionDialog.js:99
msgctxt "checkbox"
msgid "Power off after updates are installed"
msgstr "Güncelleştirmeler kurulduktan sonra kapat"
#: js/ui/endSessionDialog.js:121
#: js/ui/endSessionDialog.js:106
msgctxt "title"
msgid "Restart & Install Upgrade"
msgstr "Yeniden Başlat ve Yükseltmeyi Kur"
@@ -1270,7 +1254,7 @@ msgstr "Yeniden Başlat ve Yükseltmeyi Kur"
#. Translators: This is the text displayed for system upgrades in the
#. shut down dialog. First %s gets replaced with the distro name and
#. second %s with the distro version to upgrade to
#: js/ui/endSessionDialog.js:126
#: js/ui/endSessionDialog.js:111
#, javascript-format
msgid ""
"%s %s will be installed after restart. Upgrade installation can take a long "
@@ -1280,31 +1264,27 @@ msgstr ""
"uzun sürebilir: verilerinizi yedeklediğinizden ve bilgisayarınızın prize "
"takılı olduğundan emin olun."
#: js/ui/endSessionDialog.js:284
msgid "Low battery power: please plug in before installing updates."
msgstr "Düşük pil gücü: lütfen güncelleştirmeleri kurmadan önce fişi takın."
#: js/ui/endSessionDialog.js:259
msgid "Running on battery power: Please plug in before installing updates."
msgstr ""
"Pil gücünde çalışıyor: lütfen güncelleştirmeleri kurmadan önce fişi takın."
#: js/ui/endSessionDialog.js:293
#: js/ui/endSessionDialog.js:268
msgid "Some applications are busy or have unsaved work"
msgstr "Bazı uygulamalar meşgul ya da kaydedilmemiş verisi var"
#: js/ui/endSessionDialog.js:298
#: js/ui/endSessionDialog.js:273
msgid "Other users are logged in"
msgstr "Diğer kullanıcılar oturum açmış"
#: js/ui/endSessionDialog.js:467
msgctxt "button"
msgid "Boot Options"
msgstr "Önyükleme Seçenekleri"
#. Translators: Remote here refers to a remote session, like a ssh login
#: js/ui/endSessionDialog.js:685
#: js/ui/endSessionDialog.js:583
#, javascript-format
msgid "%s (remote)"
msgstr "%s (uzak)"
#. Translators: Console here refers to a tty like a VT console
#: js/ui/endSessionDialog.js:688
#: js/ui/endSessionDialog.js:586
#, javascript-format
msgid "%s (console)"
msgstr "%s (uçbirim)"
@@ -1315,18 +1295,18 @@ msgstr "Kur"
#: js/ui/extensionDownloader.js:193
msgid "Install Extension"
msgstr "Uzantı Kur"
msgstr "Uzantı Yükle"
#: js/ui/extensionDownloader.js:194
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "“%s” uzantısı extensions.gnome.org üstünden indirilip kurulsun mu?"
msgstr "extensions.gnome.org üstünden “%s” uzantısı indirilip kurulsun mu?"
#: js/ui/extensionSystem.js:253
#: js/ui/extensionSystem.js:252
msgid "Extension Updates Available"
msgstr "Uzantı Güncellemeleri Var"
#: js/ui/extensionSystem.js:254
#: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed."
msgstr "Uzantı güncellemeleri kuruluma hazır."
@@ -1404,15 +1384,15 @@ msgid "Leave On"
msgstr "Açık Bırak"
#: js/ui/kbdA11yDialog.js:55 js/ui/status/bluetooth.js:156
#: js/ui/status/network.js:1315
#: js/ui/status/network.js:1291
msgid "Turn On"
msgstr "Aç"
#: js/ui/kbdA11yDialog.js:63 js/ui/status/bluetooth.js:156
#: js/ui/status/network.js:160 js/ui/status/network.js:344
#: js/ui/status/network.js:1315 js/ui/status/network.js:1427
#: js/ui/status/network.js:135 js/ui/status/network.js:319
#: js/ui/status/network.js:1291 js/ui/status/network.js:1403
#: js/ui/status/nightLight.js:41 js/ui/status/rfkill.js:81
#: js/ui/status/rfkill.js:110
#: js/ui/status/rfkill.js:108
msgid "Turn Off"
msgstr "Kapat"
@@ -1420,7 +1400,7 @@ msgstr "Kapat"
msgid "Leave Off"
msgstr "Kapalı Bırak"
#: js/ui/keyboard.js:226
#: js/ui/keyboard.js:225
msgid "Region & Language Settings"
msgstr "Bölge ve Dil Ayarları"
@@ -1473,11 +1453,11 @@ msgstr "Kaynağı Görüntüle"
msgid "Web Page"
msgstr "Web Sayfası"
#: js/ui/main.js:294
#: js/ui/main.js:297
msgid "Logged in as a privileged user"
msgstr "Yetkili kullanıcı olarak oturum açılmış"
#: js/ui/main.js:295
#: js/ui/main.js:298
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@@ -1485,11 +1465,11 @@ msgstr ""
"Oturumu öncelikli kullanıcı olarak çalıştırmaktan güvenlik nedeniyle "
"kaçınılmalıdır. Eğer olasıysa sıradan kullanıcı olarak giriş yapmalısınız."
#: js/ui/main.js:334
#: js/ui/main.js:337
msgid "Screen Lock disabled"
msgstr "Ekran Kilidi devre dışı"
#: js/ui/main.js:335
#: js/ui/main.js:338
msgid "Screen Locking requires the GNOME display manager."
msgstr "Ekran Kilitleme, GNOME ekran yöneticisi gerektirir."
@@ -1523,27 +1503,27 @@ msgstr "Genel Görünüm"
msgid "Type to search"
msgstr "Aramak için yaz"
#: js/ui/padOsd.js:96
#: js/ui/padOsd.js:95
msgid "New shortcut…"
msgstr "Yeni kısayol…"
#: js/ui/padOsd.js:143
#: js/ui/padOsd.js:142
msgid "Application defined"
msgstr "Uygulama tanımlı"
#: js/ui/padOsd.js:144
#: js/ui/padOsd.js:143
msgid "Show on-screen help"
msgstr "Ekranda yardımı göster"
#: js/ui/padOsd.js:145
#: js/ui/padOsd.js:144
msgid "Switch monitor"
msgstr "Monitör değiştir"
#: js/ui/padOsd.js:146
#: js/ui/padOsd.js:145
msgid "Assign keystroke"
msgstr "Tuş vuruşu ata"
#: js/ui/padOsd.js:212
#: js/ui/padOsd.js:211
msgid "Done"
msgstr "Bitti"
@@ -1582,7 +1562,7 @@ msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistem"
#: js/ui/panel.js:825
#: js/ui/panel.js:827
msgid "Top Bar"
msgstr "Tepe Çubuğu"
@@ -1758,7 +1738,7 @@ msgstr "Büyük Yazı"
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:49 js/ui/status/network.js:619
#: js/ui/status/bluetooth.js:49 js/ui/status/network.js:595
msgid "Bluetooth Settings"
msgstr "Bluetooth Ayarları"
@@ -1840,18 +1820,18 @@ msgstr "%s uygulaması konumunuza erişmek istiyor"
msgid "Location access can be changed at any time from the privacy settings."
msgstr "Konum erişimi, gizlilik ayarlarından her zaman değiştirilebilir."
#: js/ui/status/network.js:71
#: js/ui/status/network.js:70
msgid "<unknown>"
msgstr "<bilinmeyen>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:449 js/ui/status/network.js:1344
#: js/ui/status/network.js:424 js/ui/status/network.js:1320
#, javascript-format
msgid "%s Off"
msgstr "%s Kapalı"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:452
#: js/ui/status/network.js:427
#, javascript-format
msgid "%s Connected"
msgstr "%s Bağlandı"
@@ -1859,186 +1839,186 @@ msgstr "%s Bağlandı"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
#: js/ui/status/network.js:457
#: js/ui/status/network.js:432
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s Yönetilmiyor"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:460
#: js/ui/status/network.js:435
#, javascript-format
msgid "%s Disconnecting"
msgstr "%s Bağlantısı Kesiliyor"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:467 js/ui/status/network.js:1336
#: js/ui/status/network.js:442 js/ui/status/network.js:1312
#, javascript-format
msgid "%s Connecting"
msgstr "%s Bağlanıyor"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: js/ui/status/network.js:470
#: js/ui/status/network.js:445
#, javascript-format
msgid "%s Requires Authentication"
msgstr "%s Kimlik Doğrulaması Gerektiriyor"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
#: js/ui/status/network.js:478
#: js/ui/status/network.js:453
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "%s İçin Ürün Bilgisi Eksik"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: js/ui/status/network.js:482
#: js/ui/status/network.js:457
#, javascript-format
msgid "%s Unavailable"
msgstr "%s Kullanılamaz"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:485
#: js/ui/status/network.js:460
#, javascript-format
msgid "%s Connection Failed"
msgstr "%s Bağlantısı Başarısız Oldu"
#: js/ui/status/network.js:497
#: js/ui/status/network.js:472
msgid "Wired Settings"
msgstr "Kablolu Ağ Ayarları"
#: js/ui/status/network.js:540
#: js/ui/status/network.js:515
msgid "Mobile Broadband Settings"
msgstr "Mobil Geniş Bant Ayarları"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:586 js/ui/status/network.js:1341
#: js/ui/status/network.js:562 js/ui/status/network.js:1317
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s Donanımı Devre Dışı"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: js/ui/status/network.js:590
#: js/ui/status/network.js:566
#, javascript-format
msgid "%s Disabled"
msgstr "%s Devre Dışı"
#: js/ui/status/network.js:631
#: js/ui/status/network.js:607
msgid "Connect to Internet"
msgstr "İnternete Bağlan"
#: js/ui/status/network.js:835
#: js/ui/status/network.js:811
msgid "Airplane Mode is On"
msgstr "Uçak Kipi Açık"
#: js/ui/status/network.js:836
#: js/ui/status/network.js:812
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Uçak kipi açıldığında kablosuz ağ devre dışı kalır."
#: js/ui/status/network.js:837
#: js/ui/status/network.js:813
msgid "Turn Off Airplane Mode"
msgstr "Uçak Kipini Kapat"
#: js/ui/status/network.js:846
#: js/ui/status/network.js:822
msgid "Wi-Fi is Off"
msgstr "Kablosuz Ağ Kapalı"
#: js/ui/status/network.js:847
#: js/ui/status/network.js:823
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Ağa bağlanmak için kablosuz ağın açık olması gerekir."
#: js/ui/status/network.js:848
#: js/ui/status/network.js:824
msgid "Turn On Wi-Fi"
msgstr "Kablosuz Ağı Aç"
#: js/ui/status/network.js:873
#: js/ui/status/network.js:849
msgid "Wi-Fi Networks"
msgstr "Kablosuz Ağlar"
#: js/ui/status/network.js:875
#: js/ui/status/network.js:851
msgid "Select a network"
msgstr "Ağ seç"
#: js/ui/status/network.js:907
#: js/ui/status/network.js:883
msgid "No Networks"
msgstr "Ağ Yok"
#: js/ui/status/network.js:928 js/ui/status/rfkill.js:108
#: js/ui/status/network.js:904 js/ui/status/rfkill.js:106
msgid "Use hardware switch to turn off"
msgstr "Kapatmak için donanım anahtarını kullan"
#: js/ui/status/network.js:1205
#: js/ui/status/network.js:1181
msgid "Select Network"
msgstr "Ağ Seç"
#: js/ui/status/network.js:1211
#: js/ui/status/network.js:1187
msgid "Wi-Fi Settings"
msgstr "Kablosuz Ağ Ayarları"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1332
#: js/ui/status/network.js:1308
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s Erişim Noktası Etkin"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1347
#: js/ui/status/network.js:1323
#, javascript-format
msgid "%s Not Connected"
msgstr "%s Bağlı Değil"
#: js/ui/status/network.js:1444
#: js/ui/status/network.js:1420
msgid "connecting…"
msgstr "bağlanıyor…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1447
#: js/ui/status/network.js:1423
msgid "authentication required"
msgstr "kimlik doğrulaması gerekli"
#: js/ui/status/network.js:1449
#: js/ui/status/network.js:1425
msgid "connection failed"
msgstr "bağlantı başarısız"
#: js/ui/status/network.js:1500
#: js/ui/status/network.js:1476
msgid "VPN Settings"
msgstr "VPN Ayarları"
#: js/ui/status/network.js:1517
#: js/ui/status/network.js:1493
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1527
#: js/ui/status/network.js:1503
msgid "VPN Off"
msgstr "VPN Kapalı"
#: js/ui/status/network.js:1588 js/ui/status/rfkill.js:84
#: js/ui/status/network.js:1564 js/ui/status/rfkill.js:84
msgid "Network Settings"
msgstr "Ağ Ayarları"
#: js/ui/status/network.js:1617
#: js/ui/status/network.js:1593
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "%s Kablolu Bağlantı"
#: js/ui/status/network.js:1621
#: js/ui/status/network.js:1597
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
msgstr[0] "%s Kablosuz Ağ Bağlantısı"
#: js/ui/status/network.js:1625
#: js/ui/status/network.js:1601
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] "%s Modem Bağlantısı"
#: js/ui/status/network.js:1759
#: js/ui/status/network.js:1735
msgid "Connection failed"
msgstr "Bağlantı başarısız oldu"
#: js/ui/status/network.js:1760
#: js/ui/status/network.js:1736
msgid "Activation of network connection failed"
msgstr "Ağ bağlantısının etkinleştirilmesi başarısız oldu"
@@ -2093,11 +2073,11 @@ msgstr "Tümüyle Dolmasına %d.%02d Kaldı (%% %d)"
msgid "%d%%"
msgstr "%d%%"
#: js/ui/status/remoteAccess.js:45
#: js/ui/status/remoteAccess.js:43
msgid "Screen is Being Shared"
msgstr "Ekran Paylaşılıyor"
#: js/ui/status/remoteAccess.js:47
#: js/ui/status/remoteAccess.js:45
msgid "Turn off"
msgstr "Kapat"
@@ -2108,34 +2088,30 @@ msgstr "Kapat"
msgid "Airplane Mode On"
msgstr "Uçak Kipi Açık"
#: js/ui/status/system.js:104
#: js/ui/status/system.js:102
msgid "Lock"
msgstr "Kilitle"
#: js/ui/status/system.js:116
#: js/ui/status/system.js:115
msgid "Power Off / Log Out"
msgstr "Gücü Kapat / Oturumu Kapat"
#: js/ui/status/system.js:119
msgid "Suspend"
msgstr "Beklet"
#: js/ui/status/system.js:130
msgid "Restart…"
msgstr "Yeniden Başlat…"
#: js/ui/status/system.js:141
msgid "Power Off…"
msgstr "Gücü Kapat…"
#: js/ui/status/system.js:154
#: js/ui/status/system.js:118
msgid "Log Out"
msgstr "Oturumu Kapat"
#: js/ui/status/system.js:165
#: js/ui/status/system.js:130
msgid "Switch User…"
msgstr "Kullanıcı Değiştir…"
#: js/ui/status/system.js:144
msgid "Suspend"
msgstr "Beklet"
#: js/ui/status/system.js:156
msgid "Power Off…"
msgstr "Gücü Kapat…"
#: js/ui/status/thunderbolt.js:263
msgid "Thunderbolt"
msgstr "Thunderbolt"
@@ -2243,22 +2219,22 @@ msgid "“%s” is ready"
msgstr "“%s” hazır"
#. Translators: This string should be shorter than 30 characters
#: js/ui/windowManager.js:60
#: js/ui/windowManager.js:55
msgid "Keep these display settings?"
msgstr "Bu görüntü ayarları saklansın mı?"
#. Translators: this and the following message should be limited in length,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:69
#: js/ui/windowManager.js:64
msgid "Revert Settings"
msgstr "Ayarları Eski Haline Getir"
#: js/ui/windowManager.js:72
#: js/ui/windowManager.js:67
msgid "Keep Changes"
msgstr "Değişiklikleri Sakla"
#: js/ui/windowManager.js:91
#: js/ui/windowManager.js:86
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -2266,7 +2242,7 @@ msgstr[0] "Ayarlardaki değişiklikler %d saniye içinde eski haline döndürül
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:551
#: js/ui/windowManager.js:546
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2677,7 +2653,7 @@ msgstr "UZANTI_DEMETİ"
#: subprojects/extensions-tool/src/command-install.c:184
msgid "Install an extension bundle"
msgstr "Uzantı demeti kur"
msgstr "Uzantı demeti yükle"
#: subprojects/extensions-tool/src/command-install.c:202
msgid "No extension bundle specified"
@@ -2891,7 +2867,7 @@ msgstr "Uzantıyı paketle"
#: subprojects/extensions-tool/src/main.c:328
msgid "Install extension bundle"
msgstr "Uzantı demetini kur"
msgstr "Uzantı demetini yükle"
#: subprojects/extensions-tool/src/main.c:330
#, c-format

300
po/uk.po
View File

@@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-08-10 23:58+0000\n"
"PO-Revision-Date: 2020-08-11 09:23+0300\n"
"POT-Creation-Date: 2020-07-20 16:18+0000\n"
"PO-Revision-Date: 2020-07-21 08:42+0300\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <kde-i18n-uk@kde.org>\n"
"Language: uk\n"
@@ -227,11 +227,11 @@ msgid ""
"“application id” → 'data' pair. Currently, the following values are stored "
"as 'data': • “position”: the position of the application icon in the page"
msgstr ""
"Компонування засобу вибору програм. Кожен запис у цьому масиві є сторінкою. "
"Сторінки зберігаються у порядку, у якому їх буде показано у GNOME Shell. "
"Кожна сторінка містить пану записів “ідентифікатор програми” → 'дані'. У "
"поточній версії як 'дані' може бути збережено такі значення: • “позиція”: "
"позиція піктограми програми на сторінці"
"Компонування засобу вибору програм. Кожен запис у цьому масиві є сторінкою."
" Сторінки зберігаються у порядку, у якому їх буде показано у GNOME Shell."
" Кожна сторінка містить пану записів “ідентифікатор програми” → 'дані'. У"
" поточній версії як 'дані' може бути збережено такі значення: • “позиція”:"
" позиція піктограми програми на сторінці"
#: data/org.gnome.shell.gschema.xml.in:130
msgid "Keybinding to open the application menu"
@@ -431,9 +431,9 @@ msgstr "Відвідати сторінку розширення"
#: js/gdm/authPrompt.js:135 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:183
#: js/ui/endSessionDialog.js:369 js/ui/extensionDownloader.js:183
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:940 subprojects/extensions-app/js/main.js:149
#: js/ui/status/network.js:916 subprojects/extensions-app/js/main.js:149
msgid "Cancel"
msgstr "Скасувати"
@@ -469,7 +469,7 @@ msgstr "(наприклад, користувач або %s)"
msgid "Username"
msgstr "Користувач"
#: js/gdm/loginDialog.js:1253
#: js/gdm/loginDialog.js:1254
msgid "Login Window"
msgstr "Вікно входу"
@@ -487,84 +487,73 @@ msgid "(or swipe finger)"
msgstr "(або проведіть пальцем)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:91
#: js/misc/systemActions.js:93
msgctxt "search-result"
msgid "Power Off"
msgstr "Вимкнути"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:94
msgid "power off;shutdown;halt;stop"
msgstr "вимкнути;перезавантажити;зупинити;power off;shutdown;halt;stop"
#. Translators: The name of the restart action in search
#: js/misc/systemActions.js:99
msgctxt "search-result"
msgid "Restart"
msgstr "Перезапустити"
#. Translators: A list of keywords that match the restart action, separated by semicolons
#: js/misc/systemActions.js:102
msgid "reboot;restart;"
msgstr "reboot;restart;перезавантаження;перезапуск;"
#: js/misc/systemActions.js:96
msgid "power off;shutdown;reboot;restart;halt;stop"
msgstr "вимкнути;перезавантажити;power off;shutdown;reboot;restart;halt;stop"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:107
#: js/misc/systemActions.js:101
msgctxt "search-result"
msgid "Lock Screen"
msgstr "Заблокувати екран"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:110
#: js/misc/systemActions.js:104
msgid "lock screen"
msgstr "заблокувати екран;lock screen"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:115
#: js/misc/systemActions.js:109
msgctxt "search-result"
msgid "Log Out"
msgstr "Вийти"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:118
#: js/misc/systemActions.js:112
msgid "logout;log out;sign off"
msgstr "вийти;завершити роботу;logout;log out;sign off"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:123
#: js/misc/systemActions.js:117
msgctxt "search-result"
msgid "Suspend"
msgstr "Призупинити"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:126
#: js/misc/systemActions.js:120
msgid "suspend;sleep"
msgstr "призупинити;сон;suspend;sleep"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:131
#: js/misc/systemActions.js:125
msgctxt "search-result"
msgid "Switch User"
msgstr "Змінити користувача"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:134
#: js/misc/systemActions.js:128
msgid "switch user"
msgstr "змінити користувача;перемкнути;switch user"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:141
#: js/misc/systemActions.js:135
msgid "lock orientation;unlock orientation;screen;rotation"
msgstr ""
"заблокувати орієнтацію;розблокувати орієнтацію;екран;обертання;lock "
"orientation;unlock orientation;screen;rotation"
#: js/misc/systemActions.js:266
#: js/misc/systemActions.js:255
msgctxt "search-result"
msgid "Unlock Screen Rotation"
msgstr "Розблокувати обертання екрана"
#: js/misc/systemActions.js:267
#: js/misc/systemActions.js:256
msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Заблокувати обертання екрана"
@@ -746,31 +735,31 @@ msgid "Unnamed Folder"
msgstr "Неназвана тека"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2762 js/ui/panel.js:75
#: js/ui/appDisplay.js:2767 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Відкрити вікна"
#: js/ui/appDisplay.js:2781 js/ui/panel.js:82
#: js/ui/appDisplay.js:2786 js/ui/panel.js:82
msgid "New Window"
msgstr "Нове вікно"
#: js/ui/appDisplay.js:2797
#: js/ui/appDisplay.js:2802
msgid "Launch using Integrated Graphics Card"
msgstr "Запустити через інтегровану графічну плату"
#: js/ui/appDisplay.js:2798
#: js/ui/appDisplay.js:2803
msgid "Launch using Discrete Graphics Card"
msgstr "Запустити через дискретну графічну плату"
#: js/ui/appDisplay.js:2826 js/ui/dash.js:239
#: js/ui/appDisplay.js:2831 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Вилучити з улюбленого"
#: js/ui/appDisplay.js:2832
#: js/ui/appDisplay.js:2837
msgid "Add to Favorites"
msgstr "Додати до улюбленого"
#: js/ui/appDisplay.js:2842 js/ui/panel.js:93
#: js/ui/appDisplay.js:2847 js/ui/panel.js:93
msgid "Show Details"
msgstr "Показати подробиці"
@@ -969,8 +958,8 @@ msgid ""
msgstr ""
"Також можете під'єднатися, натиснувши кнопку «WPS» на вашому маршрутизаторі."
#: js/ui/components/networkAgent.js:104 js/ui/status/network.js:252
#: js/ui/status/network.js:343 js/ui/status/network.js:943
#: js/ui/components/networkAgent.js:104 js/ui/status/network.js:227
#: js/ui/status/network.js:318 js/ui/status/network.js:919
msgid "Connect"
msgstr "З'єднатись"
@@ -1033,7 +1022,7 @@ msgstr "Пін-код"
msgid "A password is required to connect to “%s”."
msgstr "Пароль потрібен для з'єднання з «%s»."
#: js/ui/components/networkAgent.js:669 js/ui/status/network.js:1718
#: js/ui/components/networkAgent.js:669 js/ui/status/network.js:1694
msgid "Network Manager"
msgstr "Керування мережею"
@@ -1159,18 +1148,18 @@ msgstr "Погода"
msgid "Select weather location…"
msgstr "Виберіть місцевість для погоди…"
#: js/ui/endSessionDialog.js:39
#: js/ui/endSessionDialog.js:37
#, javascript-format
msgctxt "title"
msgid "Log Out %s"
msgstr "Завершити сеанс %s"
#: js/ui/endSessionDialog.js:40
#: js/ui/endSessionDialog.js:38
msgctxt "title"
msgid "Log Out"
msgstr "Завершити сеанс"
#: js/ui/endSessionDialog.js:43
#: js/ui/endSessionDialog.js:40
#, javascript-format
msgid "%s will be logged out automatically in %d second."
msgid_plural "%s will be logged out automatically in %d seconds."
@@ -1179,7 +1168,7 @@ msgstr[1] "%s вийде автоматично через %d секунди."
msgstr[2] "%s вийде автоматично через %d секунд."
msgstr[3] "%s вийде автоматично через %d секунду."
#: js/ui/endSessionDialog.js:49
#: js/ui/endSessionDialog.js:45
#, javascript-format
msgid "You will be logged out automatically in %d second."
msgid_plural "You will be logged out automatically in %d seconds."
@@ -1188,22 +1177,22 @@ msgstr[1] "Вихід автоматично через %d секунди."
msgstr[2] "Вихід автоматично через %d секунд."
msgstr[3] "Вихід автоматично через %d секунду."
#: js/ui/endSessionDialog.js:56
#: js/ui/endSessionDialog.js:51
msgctxt "button"
msgid "Log Out"
msgstr "Вийти"
#: js/ui/endSessionDialog.js:62
#: js/ui/endSessionDialog.js:56
msgctxt "title"
msgid "Power Off"
msgstr "Вимкнути"
#: js/ui/endSessionDialog.js:63
#: js/ui/endSessionDialog.js:57
msgctxt "title"
msgid "Install Updates & Power Off"
msgstr "Установити оновлення і вимкнути"
#: js/ui/endSessionDialog.js:66
#: js/ui/endSessionDialog.js:59
#, javascript-format
msgid "The system will power off automatically in %d second."
msgid_plural "The system will power off automatically in %d seconds."
@@ -1212,27 +1201,27 @@ msgstr[1] "Система автоматично вимкнеться через
msgstr[2] "Система автоматично вимкнеться через %d секунд."
msgstr[3] "Система автоматично вимкнеться через %d секунду."
#: js/ui/endSessionDialog.js:70 js/ui/endSessionDialog.js:89
#: js/ui/endSessionDialog.js:63
msgctxt "checkbox"
msgid "Install pending software updates"
msgstr "Установити оновлення, які в черзі"
#: js/ui/endSessionDialog.js:74
#: js/ui/endSessionDialog.js:66 js/ui/endSessionDialog.js:82
msgctxt "button"
msgid "Restart"
msgstr "Перезапустити"
#: js/ui/endSessionDialog.js:68
msgctxt "button"
msgid "Power Off"
msgstr "Вимкнути"
#: js/ui/endSessionDialog.js:81
#: js/ui/endSessionDialog.js:74
msgctxt "title"
msgid "Restart"
msgstr "Перезапустити"
#: js/ui/endSessionDialog.js:82
msgctxt "title"
msgid "Install Updates & Restart"
msgstr "Установити оновлення і перезапустити"
#: js/ui/endSessionDialog.js:85
#: js/ui/endSessionDialog.js:76
#, javascript-format
msgid "The system will restart automatically in %d second."
msgid_plural "The system will restart automatically in %d seconds."
@@ -1241,17 +1230,12 @@ msgstr[1] "Система автоматично перезапуститься
msgstr[2] "Система автоматично перезапуститься через %d секунд."
msgstr[3] "Система автоматично перезапуститься через %d секунду."
#: js/ui/endSessionDialog.js:93
msgctxt "button"
msgid "Restart"
msgstr "Перезапустити"
#: js/ui/endSessionDialog.js:101
#: js/ui/endSessionDialog.js:89
msgctxt "title"
msgid "Restart & Install Updates"
msgstr "Перезапустити і встановити оновлення"
#: js/ui/endSessionDialog.js:104
#: js/ui/endSessionDialog.js:91
#, javascript-format
msgid "The system will automatically restart and install updates in %d second."
msgid_plural ""
@@ -1265,22 +1249,22 @@ msgstr[2] ""
msgstr[3] ""
"Система автоматично перезапуститься та встановить оновлення через %d секунду."
#: js/ui/endSessionDialog.js:111 js/ui/endSessionDialog.js:132
#: js/ui/endSessionDialog.js:97 js/ui/endSessionDialog.js:116
msgctxt "button"
msgid "Restart &amp; Install"
msgstr "Перезапустити та встановити"
#: js/ui/endSessionDialog.js:113
#: js/ui/endSessionDialog.js:98
msgctxt "button"
msgid "Install &amp; Power Off"
msgstr "Установити та вимкнути"
#: js/ui/endSessionDialog.js:114
#: js/ui/endSessionDialog.js:99
msgctxt "checkbox"
msgid "Power off after updates are installed"
msgstr "Вимкнути після встановлення оновлень"
#: js/ui/endSessionDialog.js:121
#: js/ui/endSessionDialog.js:106
msgctxt "title"
msgid "Restart & Install Upgrade"
msgstr "Перезапустити і встановити оновлення"
@@ -1288,7 +1272,7 @@ msgstr "Перезапустити і встановити оновлення"
#. Translators: This is the text displayed for system upgrades in the
#. shut down dialog. First %s gets replaced with the distro name and
#. second %s with the distro version to upgrade to
#: js/ui/endSessionDialog.js:126
#: js/ui/endSessionDialog.js:111
#, javascript-format
msgid ""
"%s %s will be installed after restart. Upgrade installation can take a long "
@@ -1298,34 +1282,28 @@ msgstr ""
"переконайтесь, що ви зробили резервні копії та комп'ютер під'єднано до "
"живлення."
#: js/ui/endSessionDialog.js:284
#| msgid "Running on battery power: Please plug in before installing updates."
msgid "Low battery power: please plug in before installing updates."
#: js/ui/endSessionDialog.js:259
msgid "Running on battery power: Please plug in before installing updates."
msgstr ""
"Низький рівень заряду батареї: під'єднайте до живлення перед установленням"
" оновлень."
"Працює від заряду батареї: під'єднайте до живлення перед установленням "
"оновлень."
#: js/ui/endSessionDialog.js:293
#: js/ui/endSessionDialog.js:268
msgid "Some applications are busy or have unsaved work"
msgstr "Деякі програми зайняті або мають незбережені дані"
#: js/ui/endSessionDialog.js:298
#: js/ui/endSessionDialog.js:273
msgid "Other users are logged in"
msgstr "Є інші користувачі з активним сеансом"
#: js/ui/endSessionDialog.js:467
msgctxt "button"
msgid "Boot Options"
msgstr "Параметри завантаження"
#. Translators: Remote here refers to a remote session, like a ssh login
#: js/ui/endSessionDialog.js:685
#: js/ui/endSessionDialog.js:583
#, javascript-format
msgid "%s (remote)"
msgstr "%s (віддалено)"
#. Translators: Console here refers to a tty like a VT console
#: js/ui/endSessionDialog.js:688
#: js/ui/endSessionDialog.js:586
#, javascript-format
msgid "%s (console)"
msgstr "%s (консоль)"
@@ -1425,15 +1403,15 @@ msgid "Leave On"
msgstr "Залишити"
#: js/ui/kbdA11yDialog.js:55 js/ui/status/bluetooth.js:156
#: js/ui/status/network.js:1315
#: js/ui/status/network.js:1291
msgid "Turn On"
msgstr "Увімкнути"
#: js/ui/kbdA11yDialog.js:63 js/ui/status/bluetooth.js:156
#: js/ui/status/network.js:160 js/ui/status/network.js:344
#: js/ui/status/network.js:1315 js/ui/status/network.js:1427
#: js/ui/status/network.js:135 js/ui/status/network.js:319
#: js/ui/status/network.js:1291 js/ui/status/network.js:1403
#: js/ui/status/nightLight.js:41 js/ui/status/rfkill.js:81
#: js/ui/status/rfkill.js:110
#: js/ui/status/rfkill.js:108
msgid "Turn Off"
msgstr "Вимкнути"
@@ -1494,11 +1472,11 @@ msgstr "Переглянути джерело"
msgid "Web Page"
msgstr "Веб-сторінка"
#: js/ui/main.js:294
#: js/ui/main.js:297
msgid "Logged in as a privileged user"
msgstr "Увійшов як наділений користувач"
#: js/ui/main.js:295
#: js/ui/main.js:298
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@@ -1506,11 +1484,11 @@ msgstr ""
"З міркувань безпеки слід уникати сеансів з наділеними правами. Користуйтесь "
"звичайним сеансом."
#: js/ui/main.js:334
#: js/ui/main.js:337
msgid "Screen Lock disabled"
msgstr "Блокування екрана вимкнено"
#: js/ui/main.js:335
#: js/ui/main.js:338
msgid "Screen Locking requires the GNOME display manager."
msgstr "Блокування екрана потребує керування входом GNOME."
@@ -1603,7 +1581,7 @@ msgctxt "System menu in the top bar"
msgid "System"
msgstr "Система"
#: js/ui/panel.js:825
#: js/ui/panel.js:827
msgid "Top Bar"
msgstr "Верхня панель"
@@ -1780,7 +1758,7 @@ msgstr "Більший текст"
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:49 js/ui/status/network.js:619
#: js/ui/status/bluetooth.js:49 js/ui/status/network.js:595
msgid "Bluetooth Settings"
msgstr "Параметри Bluetooth"
@@ -1864,18 +1842,18 @@ msgstr ""
"Доступ до місця перебування можна змінити в будь-яку мить у параметрах "
"конфіденційності."
#: js/ui/status/network.js:71
#: js/ui/status/network.js:70
msgid "<unknown>"
msgstr "<невідомо>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:449 js/ui/status/network.js:1344
#: js/ui/status/network.js:424 js/ui/status/network.js:1320
#, javascript-format
msgid "%s Off"
msgstr "%s вимкнено"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:452
#: js/ui/status/network.js:427
#, javascript-format
msgid "%s Connected"
msgstr "%s під'єднано"
@@ -1883,164 +1861,164 @@ msgstr "%s під'єднано"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
#: js/ui/status/network.js:457
#: js/ui/status/network.js:432
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s нескеровано"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:460
#: js/ui/status/network.js:435
#, javascript-format
msgid "%s Disconnecting"
msgstr "%s від'єднується"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:467 js/ui/status/network.js:1336
#: js/ui/status/network.js:442 js/ui/status/network.js:1312
#, javascript-format
msgid "%s Connecting"
msgstr "%s під'єднується"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: js/ui/status/network.js:470
#: js/ui/status/network.js:445
#, javascript-format
msgid "%s Requires Authentication"
msgstr "%s вимагає засвідчення"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
#: js/ui/status/network.js:478
#: js/ui/status/network.js:453
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "Бракує мікропрограми для %s"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: js/ui/status/network.js:482
#: js/ui/status/network.js:457
#, javascript-format
msgid "%s Unavailable"
msgstr "%s недоступний"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:485
#: js/ui/status/network.js:460
#, javascript-format
msgid "%s Connection Failed"
msgstr "%s під'єднано невдало"
#: js/ui/status/network.js:497
#: js/ui/status/network.js:472
msgid "Wired Settings"
msgstr "Параметри мережі"
#: js/ui/status/network.js:540
#: js/ui/status/network.js:515
msgid "Mobile Broadband Settings"
msgstr "параметри мобільної радіомережі"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:586 js/ui/status/network.js:1341
#: js/ui/status/network.js:562 js/ui/status/network.js:1317
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s вимкнено апаратно"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: js/ui/status/network.js:590
#: js/ui/status/network.js:566
#, javascript-format
msgid "%s Disabled"
msgstr "%s вимкнено"
#: js/ui/status/network.js:631
#: js/ui/status/network.js:607
msgid "Connect to Internet"
msgstr "Під'єднатись до інтернету"
#: js/ui/status/network.js:835
#: js/ui/status/network.js:811
msgid "Airplane Mode is On"
msgstr "Режим «у літаку» ввімкнено"
#: js/ui/status/network.js:836
#: js/ui/status/network.js:812
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Wi-Fi вимкнено, коли режим «у літаку» ввімкнено."
#: js/ui/status/network.js:837
#: js/ui/status/network.js:813
msgid "Turn Off Airplane Mode"
msgstr "Вимкнути режим «у літаку»"
#: js/ui/status/network.js:846
#: js/ui/status/network.js:822
msgid "Wi-Fi is Off"
msgstr "Wi-Fi вимкнено"
#: js/ui/status/network.js:847
#: js/ui/status/network.js:823
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Wi-Fi потрібно ввімкнути, щоб з'єднатись з мережею."
#: js/ui/status/network.js:848
#: js/ui/status/network.js:824
msgid "Turn On Wi-Fi"
msgstr "Увімкнути Wi-Fi"
#: js/ui/status/network.js:873
#: js/ui/status/network.js:849
msgid "Wi-Fi Networks"
msgstr "Мережі Wi-Fi"
#: js/ui/status/network.js:875
#: js/ui/status/network.js:851
msgid "Select a network"
msgstr "Вибрати мережу"
#: js/ui/status/network.js:907
#: js/ui/status/network.js:883
msgid "No Networks"
msgstr "Немає мереж"
#: js/ui/status/network.js:928 js/ui/status/rfkill.js:108
#: js/ui/status/network.js:904 js/ui/status/rfkill.js:106
msgid "Use hardware switch to turn off"
msgstr "Натисніть апаратну кнопку, щоб вимкнути"
#: js/ui/status/network.js:1205
#: js/ui/status/network.js:1181
msgid "Select Network"
msgstr "Виберіть мережу"
#: js/ui/status/network.js:1211
#: js/ui/status/network.js:1187
msgid "Wi-Fi Settings"
msgstr "Параметри Wi-Fi"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1332
#: js/ui/status/network.js:1308
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s точка доступу"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1347
#: js/ui/status/network.js:1323
#, javascript-format
msgid "%s Not Connected"
msgstr "%s не під'єднано"
#: js/ui/status/network.js:1444
#: js/ui/status/network.js:1420
msgid "connecting…"
msgstr "З'єднання…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1447
#: js/ui/status/network.js:1423
msgid "authentication required"
msgstr "Потрібна аутентифікація"
#: js/ui/status/network.js:1449
#: js/ui/status/network.js:1425
msgid "connection failed"
msgstr "не вдалось з'єднатись"
#: js/ui/status/network.js:1500
#: js/ui/status/network.js:1476
msgid "VPN Settings"
msgstr "Параметри VPN"
#: js/ui/status/network.js:1517
#: js/ui/status/network.js:1493
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1527
#: js/ui/status/network.js:1503
msgid "VPN Off"
msgstr "VPN вимкнено"
#: js/ui/status/network.js:1588 js/ui/status/rfkill.js:84
#: js/ui/status/network.js:1564 js/ui/status/rfkill.js:84
msgid "Network Settings"
msgstr "Налаштування мережі"
#: js/ui/status/network.js:1617
#: js/ui/status/network.js:1593
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
@@ -2049,7 +2027,7 @@ msgstr[1] "%s з'єднання через дріт"
msgstr[2] "%s з'єднань через дріт"
msgstr[3] "%s з'єднання через дріт"
#: js/ui/status/network.js:1621
#: js/ui/status/network.js:1597
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
@@ -2058,7 +2036,7 @@ msgstr[1] "%s з'єднання через Wi-Fi"
msgstr[2] "%s з'єднань через Wi-Fi"
msgstr[3] "%s з'єднання через Wi-Fi"
#: js/ui/status/network.js:1625
#: js/ui/status/network.js:1601
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
@@ -2067,11 +2045,11 @@ msgstr[1] "%s з'єднання через модем"
msgstr[2] "%s з'єднань через модем"
msgstr[3] "%s з'єднання через модем"
#: js/ui/status/network.js:1759
#: js/ui/status/network.js:1735
msgid "Connection failed"
msgstr "Не вдалось з'єднатись"
#: js/ui/status/network.js:1760
#: js/ui/status/network.js:1736
msgid "Activation of network connection failed"
msgstr "Не вдалось увімкнути мережеве з'єднання"
@@ -2126,11 +2104,11 @@ msgstr "Зарядиться через %d%02d (%d%%)"
msgid "%d%%"
msgstr "%d%%"
#: js/ui/status/remoteAccess.js:45
#: js/ui/status/remoteAccess.js:43
msgid "Screen is Being Shared"
msgstr "Екран у спільному доступі"
#: js/ui/status/remoteAccess.js:47
#: js/ui/status/remoteAccess.js:45
msgid "Turn off"
msgstr "Вимкнути"
@@ -2141,34 +2119,30 @@ msgstr "Вимкнути"
msgid "Airplane Mode On"
msgstr "Режим «у літаку» ввімкнено"
#: js/ui/status/system.js:104
#: js/ui/status/system.js:102
msgid "Lock"
msgstr "Заблокувати"
#: js/ui/status/system.js:116
#: js/ui/status/system.js:115
msgid "Power Off / Log Out"
msgstr "Вимкнути / Вийти"
#: js/ui/status/system.js:119
msgid "Suspend"
msgstr "Призупинити"
#: js/ui/status/system.js:130
msgid "Restart…"
msgstr "Перезапуск…"
#: js/ui/status/system.js:141
msgid "Power Off…"
msgstr "Вимкнути…"
#: js/ui/status/system.js:154
#: js/ui/status/system.js:118
msgid "Log Out"
msgstr "Вийти"
#: js/ui/status/system.js:165
#: js/ui/status/system.js:130
msgid "Switch User…"
msgstr "Змінити користувача…"
#: js/ui/status/system.js:144
msgid "Suspend"
msgstr "Призупинити"
#: js/ui/status/system.js:156
msgid "Power Off…"
msgstr "Вимкнути…"
#: js/ui/status/thunderbolt.js:263
msgid "Thunderbolt"
msgstr "Thunderbolt"
@@ -2275,22 +2249,22 @@ msgid "“%s” is ready"
msgstr "«%s» готовий"
#. Translators: This string should be shorter than 30 characters
#: js/ui/windowManager.js:60
#: js/ui/windowManager.js:55
msgid "Keep these display settings?"
msgstr "Зберегти ці параметри екрана?"
#. Translators: this and the following message should be limited in length,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:69
#: js/ui/windowManager.js:64
msgid "Revert Settings"
msgstr "Повернути параметри"
#: js/ui/windowManager.js:72
#: js/ui/windowManager.js:67
msgid "Keep Changes"
msgstr "Зберегти зміни"
#: js/ui/windowManager.js:91
#: js/ui/windowManager.js:86
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -2301,7 +2275,7 @@ msgstr[3] "Зміни параметрів буде повернуто чере
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:551
#: js/ui/windowManager.js:546
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"

File diff suppressed because it is too large Load Diff

View File

@@ -51,8 +51,6 @@ def start_shell(perf_output=None):
args.append('--nested')
else:
args.append('--display-server')
elif options.x11:
args.append('--x11')
return subprocess.Popen(args, env=env)
@@ -60,7 +58,7 @@ def run_shell(perf_output=None):
# we do no additional supervision of gnome-shell,
# beyond that of wait
# in particular, we don't kill the shell upon
# receiving a KeyboardInterrupt, as we expect to be
# receving a KeyboardInterrupt, as we expect to be
# in the same process group
shell = start_shell(perf_output=perf_output)
shell.wait()
@@ -297,8 +295,6 @@ parser.add_option("-w", "--wayland", action="store_true",
help="Run as a Wayland compositor")
parser.add_option("-n", "--nested", action="store_true",
help="Run as a Wayland nested compositor")
parser.add_option("-x", "--x11", action="store_true",
help="Run as an X11 compositor")
options, args = parser.parse_args()

View File

@@ -27,7 +27,7 @@
* meta_plugin_manager_set_plugin_type(), Mutter will call the vfuncs of the
* plugin at the appropriate time.
*
* The functions in in GnomeShellPlugin are all just stubs, which just call the
* The funcions in in GnomeShellPlugin are all just stubs, which just call the
* similar methods in GnomeShellWm.
*/

View File

@@ -11,7 +11,7 @@
* dialog
* @SHELL_ACTION_MODE_LOGIN_SCREEN: allow action in the login screen
* @SHELL_ACTION_MODE_SYSTEM_MODAL: allow action when a system modal
* dialog (e.g. authentication or session dialogs) is open
* dialog (e.g. authentification or session dialogs) is open
* @SHELL_ACTION_MODE_LOOKING_GLASS: allow action in looking glass
* @SHELL_ACTION_MODE_POPUP: allow action while a shell menu is open
* @SHELL_ACTION_MODE_ALL: always allow action

View File

@@ -283,7 +283,7 @@ shell_app_get_description (ShellApp *app)
* shell_app_is_window_backed:
*
* A window backed application is one which represents just an open
* window, i.e. there's no .desktop file association, so we don't know
* window, i.e. there's no .desktop file assocation, so we don't know
* how to launch it again.
*/
gboolean

View File

@@ -27,7 +27,7 @@
* @short_description: Blur effect for actors
*
* #ShellBlurEffect is a moderately fast gaussian blur implementation. It also has
* an optional brightness property.
* an optional brighness property.
*
* # Modes
*

View File

@@ -126,7 +126,7 @@ shell_embedded_window_constructor (GType gtype,
object = parent_class->constructor (gtype, n_properties, properties);
/* Setting the resize mode to immediate means that calling queue_resize()
* on a widget within the window will immediately call check_resize()
* on a widget within the window will immmediately call check_resize()
* to be called, instead of having it queued to an idle. From our perspective,
* this is ideal since we just are going to queue a resize to Clutter's
* idle resize anyways.

View File

@@ -1078,11 +1078,11 @@ _shell_global_get_gjs_context (ShellGlobal *global)
* overview mode or the "looking glass" debug overlay, that block
* application and normal key shortcuts.
*
* Returns: %TRUE if we successfully entered the mode. %FALSE if we couldn't
* Returns: %TRUE if we succesfully entered the mode. %FALSE if we couldn't
* enter the mode. Failure may occur because an application has the pointer
* or keyboard grabbed, because Mutter is in a mode itself like moving a
* window or alt-Tab window selection, or because shell_global_begin_modal()
* was previously called.
* was previouly called.
*/
gboolean
shell_global_begin_modal (ShellGlobal *global,

View File

@@ -101,7 +101,7 @@ shell_glsl_effect_paint_target (ClutterOffscreenEffect *effect,
* @hook: where to insert the code
* @declarations: GLSL declarations
* @code: GLSL code
* @is_replace: whether Cogl code should be replaced by the custom shader
* @is_replace: wheter Cogl code should be replaced by the custom shader
*
* Adds a GLSL snippet to the pipeline used for drawing the effect texture.
* See #CoglSnippet for details.

View File

@@ -24,7 +24,7 @@
/* This is a dummy class; we would like to be able to subclass the
* object from JS but we can't yet; the default GMountOperation impl
* automatically calls g_mount_operation_reply(UNHANDLED) after an idle,
* in interactive methods. We want to handle the reply ourselves
* in interactive methods. We want to handle the reply outselves
* instead, so we just override the default methods with empty ones,
* except for ask-password, as we don't want to handle that.
*

View File

@@ -805,7 +805,7 @@ write_string (GOutputStream *out,
* with each element being a dictionary of the form:
*
* { name: <name of event>,
* description: <description of string,
* description: <descrition of string,
* statistic: true } (only for statistics)
*
* Return value: %TRUE if the dump succeeded. %FALSE if an IO error occurred

View File

@@ -12,12 +12,6 @@
#include "shell-screenshot.h"
#include "shell-util.h"
typedef enum _ShellScreenshotFlag
{
SHELL_SCREENSHOT_FLAG_NONE,
SHELL_SCREENSHOT_FLAG_INCLUDE_CURSOR,
} ShellScreenshotFlag;
typedef struct _ShellScreenshotPrivate ShellScreenshotPrivate;
struct _ShellScreenshot
@@ -38,6 +32,7 @@ struct _ShellScreenshotPrivate
cairo_surface_t *image;
cairo_rectangle_int_t screenshot_area;
gboolean include_cursor;
gboolean include_frame;
};
@@ -50,6 +45,10 @@ typedef enum
G_DEFINE_TYPE_WITH_PRIVATE (ShellScreenshot, shell_screenshot, G_TYPE_OBJECT);
static void
grab_screenshot (ClutterActor *stage,
GTask *result);
static void
shell_screenshot_class_init (ShellScreenshotClass *screenshot_class)
{
@@ -78,6 +77,8 @@ on_screenshot_written (GObject *source,
g_clear_pointer (&priv->image, cairo_surface_destroy);
g_clear_object (&priv->stream);
g_clear_pointer (&priv->datetime, g_date_time_unref);
meta_enable_unredirect_for_display (shell_global_get_display (priv->global));
}
static void
@@ -120,49 +121,63 @@ write_screenshot_thread (GTask *result,
}
static void
do_grab_screenshot (ShellScreenshot *screenshot,
int x,
int y,
int width,
int height,
ShellScreenshotFlag flags)
do_grab_screenshot (ShellScreenshot *screenshot,
ClutterStage *stage,
int x,
int y,
int width,
int height)
{
ShellScreenshotPrivate *priv = screenshot->priv;
ClutterStage *stage = shell_global_get_stage (priv->global);
cairo_rectangle_int_t screenshot_rect = { x, y, width, height };
int image_width;
int image_height;
float scale;
cairo_surface_t *image;
ClutterPaintFlag paint_flags = CLUTTER_PAINT_FLAG_NONE;
g_autoptr (GError) error = NULL;
ClutterCapture *captures;
int n_captures;
int i;
clutter_stage_get_capture_final_size (stage, &screenshot_rect,
&image_width,
&image_height,
&scale);
image = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
image_width, image_height);
if (!clutter_stage_capture (stage, FALSE,
&screenshot_rect,
&captures,
&n_captures))
return;
if (flags & SHELL_SCREENSHOT_FLAG_INCLUDE_CURSOR)
paint_flags |= CLUTTER_PAINT_FLAG_FORCE_CURSORS;
if (n_captures == 1)
priv->image = cairo_surface_reference (captures[0].image);
else
paint_flags |= CLUTTER_PAINT_FLAG_NO_CURSORS;
if (!clutter_stage_paint_to_buffer (stage, &screenshot_rect, scale,
cairo_image_surface_get_data (image),
cairo_image_surface_get_stride (image),
CLUTTER_CAIRO_FORMAT_ARGB32,
paint_flags,
&error))
{
cairo_surface_destroy (image);
g_warning ("Failed to take screenshot: %s", error->message);
return;
float target_scale;
clutter_stage_get_capture_final_size (stage, &screenshot_rect,
&width, &height, &target_scale);
priv->image = shell_util_composite_capture_images (captures,
n_captures,
x, y,
width, height,
target_scale);
}
priv->image = image;
priv->datetime = g_date_time_new_now_local ();
for (i = 0; i < n_captures; i++)
cairo_surface_destroy (captures[i].image);
g_free (captures);
}
static gboolean
should_draw_cursor_image (ShellScreenshotMode mode)
{
if (mode == SHELL_SCREENSHOT_WINDOW || !meta_is_wayland_compositor ())
{
StSettings *settings = st_settings_get ();
gboolean magnifier_active = FALSE;
g_object_get (settings, "magnifier-active", &magnifier_active, NULL);
if (!magnifier_active)
return TRUE;
}
return FALSE;
}
static void
@@ -241,37 +256,116 @@ draw_cursor_image (cairo_surface_t *surface,
}
static void
grab_screenshot (ShellScreenshot *screenshot,
ShellScreenshotFlag flags,
GTask *result)
on_paint (ClutterActor *actor,
ClutterPaintContext *paint_context,
GTask *result)
{
grab_screenshot (actor, result);
}
static void
on_actors_painted (ClutterActor *actor,
GTask *result)
{
grab_screenshot (actor, result);
}
static void
grab_screenshot (ClutterActor *stage,
GTask *result)
{
ShellScreenshotPrivate *priv = screenshot->priv;
MetaDisplay *display;
int width, height;
ShellScreenshot *screenshot = g_task_get_source_object (result);
ShellScreenshotPrivate *priv = screenshot->priv;
GTask *task;
display = shell_global_get_display (priv->global);
meta_display_get_size (display, &width, &height);
do_grab_screenshot (screenshot,
0, 0, width, height,
flags);
do_grab_screenshot (screenshot, CLUTTER_STAGE (stage), 0, 0, width, height);
if (meta_display_get_n_monitors (display) > 1)
{
cairo_region_t *screen_region = cairo_region_create ();
cairo_region_t *stage_region;
MetaRectangle monitor_rect;
cairo_rectangle_int_t stage_rect;
int i;
cairo_t *cr;
for (i = meta_display_get_n_monitors (display) - 1; i >= 0; i--)
{
meta_display_get_monitor_geometry (display, i, &monitor_rect);
cairo_region_union_rectangle (screen_region,
(const cairo_rectangle_int_t *) &monitor_rect);
}
stage_rect.x = 0;
stage_rect.y = 0;
stage_rect.width = width;
stage_rect.height = height;
stage_region = cairo_region_create_rectangle ((const cairo_rectangle_int_t *) &stage_rect);
cairo_region_xor (stage_region, screen_region);
cairo_region_destroy (screen_region);
cr = cairo_create (priv->image);
for (i = 0; i < cairo_region_num_rectangles (stage_region); i++)
{
cairo_rectangle_int_t rect;
cairo_region_get_rectangle (stage_region, i, &rect);
cairo_rectangle (cr, (double) rect.x, (double) rect.y, (double) rect.width, (double) rect.height);
cairo_fill (cr);
}
cairo_destroy (cr);
cairo_region_destroy (stage_region);
}
priv->screenshot_area.x = 0;
priv->screenshot_area.y = 0;
priv->screenshot_area.width = width;
priv->screenshot_area.height = height;
if (priv->include_cursor)
draw_cursor_image (priv->image, priv->screenshot_area);
g_signal_handlers_disconnect_by_func (stage, on_paint, result);
g_signal_handlers_disconnect_by_func (stage, on_actors_painted, result);
task = g_task_new (screenshot, NULL, on_screenshot_written, result);
g_task_run_in_thread (task, write_screenshot_thread);
g_object_unref (task);
}
static void
grab_window_screenshot (ShellScreenshot *screenshot,
ShellScreenshotFlag flags,
GTask *result)
grab_area_screenshot (ClutterActor *stage,
GTask *result)
{
ShellScreenshot *screenshot = g_task_get_source_object (result);
ShellScreenshotPrivate *priv = screenshot->priv;
GTask *task;
do_grab_screenshot (screenshot,
CLUTTER_STAGE (stage),
priv->screenshot_area.x,
priv->screenshot_area.y,
priv->screenshot_area.width,
priv->screenshot_area.height);
g_signal_handlers_disconnect_by_func (stage, grab_area_screenshot, result);
task = g_task_new (screenshot, NULL, on_screenshot_written, result);
g_task_run_in_thread (task, write_screenshot_thread);
g_object_unref (task);
}
static void
grab_window_screenshot (ClutterActor *stage,
GTask *result)
{
ShellScreenshot *screenshot = g_task_get_source_object (result);
ShellScreenshotPrivate *priv = screenshot->priv;
GTask *task;
MetaDisplay *display = shell_global_get_display (priv->global);
@@ -294,7 +388,7 @@ grab_window_screenshot (ShellScreenshot *screenshot,
NULL);
priv->datetime = g_date_time_new_now_local ();
if (flags & SHELL_SCREENSHOT_FLAG_INCLUDE_CURSOR)
if (priv->include_cursor)
{
if (meta_window_get_client_type (window) == META_WINDOW_CLIENT_TYPE_WAYLAND)
{
@@ -307,11 +401,33 @@ grab_window_screenshot (ShellScreenshot *screenshot,
draw_cursor_image (priv->image, priv->screenshot_area);
}
g_signal_handlers_disconnect_by_func (stage, grab_window_screenshot, result);
task = g_task_new (screenshot, NULL, on_screenshot_written, result);
g_task_run_in_thread (task, write_screenshot_thread);
g_object_unref (task);
}
static void
grab_pixel (ClutterActor *stage,
GTask *result)
{
ShellScreenshot *screenshot = g_task_get_source_object (result);
ShellScreenshotPrivate *priv = screenshot->priv;
do_grab_screenshot (screenshot,
CLUTTER_STAGE (stage),
priv->screenshot_area.x,
priv->screenshot_area.y,
1,
1);
meta_enable_unredirect_for_display (shell_global_get_display (priv->global));
g_signal_handlers_disconnect_by_func (stage, grab_pixel, result);
g_task_return_boolean (result, TRUE);
g_object_unref (result);
}
static gboolean
finish_screenshot (ShellScreenshot *screenshot,
GAsyncResult *result,
@@ -349,9 +465,10 @@ shell_screenshot_screenshot (ShellScreenshot *screenshot,
GAsyncReadyCallback callback,
gpointer user_data)
{
ClutterActor *stage;
ShellScreenshotPrivate *priv;
gboolean use_paint_signal = FALSE;
GTask *result;
ShellScreenshotFlag flags;
g_return_if_fail (SHELL_IS_SCREENSHOT (screenshot));
g_return_if_fail (G_IS_OUTPUT_STREAM (stream));
@@ -375,12 +492,34 @@ shell_screenshot_screenshot (ShellScreenshot *screenshot,
g_task_set_source_tag (result, shell_screenshot_screenshot);
priv->stream = g_object_ref (stream);
priv->include_cursor = FALSE;
stage = CLUTTER_ACTOR (shell_global_get_stage (priv->global));
meta_disable_unredirect_for_display (shell_global_get_display (priv->global));
flags = SHELL_SCREENSHOT_FLAG_NONE;
if (include_cursor)
flags |= SHELL_SCREENSHOT_FLAG_INCLUDE_CURSOR;
{
if (should_draw_cursor_image (SHELL_SCREENSHOT_SCREEN))
priv->include_cursor = TRUE;
else
use_paint_signal = TRUE;
}
grab_screenshot (screenshot, flags, result);
if (use_paint_signal)
{
g_signal_connect_after (stage, "paint",
G_CALLBACK (on_paint),
result);
}
else
{
g_signal_connect_after (stage, "actors-painted",
G_CALLBACK (on_actors_painted),
result);
}
clutter_actor_queue_redraw (stage);
}
/**
@@ -436,9 +575,9 @@ shell_screenshot_screenshot_area (ShellScreenshot *screenshot,
GAsyncReadyCallback callback,
gpointer user_data)
{
ClutterActor *stage;
ShellScreenshotPrivate *priv;
GTask *result;
g_autoptr (GTask) task = NULL;
g_return_if_fail (SHELL_IS_SCREENSHOT (screenshot));
g_return_if_fail (G_IS_OUTPUT_STREAM (stream));
@@ -467,15 +606,13 @@ shell_screenshot_screenshot_area (ShellScreenshot *screenshot,
priv->screenshot_area.width = width;
priv->screenshot_area.height = height;
do_grab_screenshot (screenshot,
priv->screenshot_area.x,
priv->screenshot_area.y,
priv->screenshot_area.width,
priv->screenshot_area.height,
SHELL_SCREENSHOT_FLAG_NONE);
stage = CLUTTER_ACTOR (shell_global_get_stage (priv->global));
task = g_task_new (screenshot, NULL, on_screenshot_written, result);
g_task_run_in_thread (task, write_screenshot_thread);
meta_disable_unredirect_for_display (shell_global_get_display (shell_global_get ()));
g_signal_connect_after (stage, "actors-painted", G_CALLBACK (grab_area_screenshot), result);
clutter_actor_queue_redraw (stage);
}
/**
@@ -529,6 +666,7 @@ shell_screenshot_screenshot_window (ShellScreenshot *screenshot,
{
ShellScreenshotPrivate *priv;
MetaDisplay *display;
ClutterActor *stage;
MetaWindow *window;
GTask *result;
@@ -557,8 +695,16 @@ shell_screenshot_screenshot_window (ShellScreenshot *screenshot,
priv->stream = g_object_ref (stream);
priv->include_frame = include_frame;
priv->include_cursor = include_cursor &&
should_draw_cursor_image (SHELL_SCREENSHOT_WINDOW);
grab_window_screenshot (screenshot, include_cursor, result);
stage = CLUTTER_ACTOR (shell_global_get_stage (priv->global));
meta_disable_unredirect_for_display (shell_global_get_display (shell_global_get ()));
g_signal_connect_after (stage, "actors-painted", G_CALLBACK (grab_window_screenshot), result);
clutter_actor_queue_redraw (stage);
}
/**
@@ -607,7 +753,9 @@ shell_screenshot_pick_color (ShellScreenshot *screenshot,
gpointer user_data)
{
ShellScreenshotPrivate *priv;
g_autoptr (GTask) result = NULL;
MetaDisplay *display;
ClutterActor *stage;
GTask *result;
g_return_if_fail (SHELL_IS_SCREENSHOT (screenshot));
@@ -621,14 +769,14 @@ shell_screenshot_pick_color (ShellScreenshot *screenshot,
priv->screenshot_area.width = 1;
priv->screenshot_area.height = 1;
do_grab_screenshot (screenshot,
priv->screenshot_area.x,
priv->screenshot_area.y,
1,
1,
SHELL_SCREENSHOT_FLAG_NONE);
display = shell_global_get_display (priv->global);
stage = CLUTTER_ACTOR (shell_global_get_stage (priv->global));
g_task_return_boolean (result, TRUE);
meta_disable_unredirect_for_display (display);
g_signal_connect_after (stage, "actors-painted", G_CALLBACK (grab_pixel), result);
clutter_actor_queue_redraw (stage);
}
#if G_BYTE_ORDER == G_LITTLE_ENDIAN

View File

@@ -28,7 +28,7 @@
/**
* CRAdditionalSel:
*
* #CRAdditionalSel abstracts an additional selector.
* #CRAdditionalSel abstracts an additionnal selector.
* An additional selector is the selector part
* that comes after the combination of type selectors.
* It can be either "a class selector (the .class part),

View File

@@ -55,7 +55,7 @@ cr_attr_sel_new (void)
*
* Appends an attribute selector to the current list of
* attribute selectors represented by a_this.
* Returns CR_OK upon successful completion, an error code otherwise.
* Returns CR_OK upon successfull completion, an error code otherwise.
*/
enum CRStatus
cr_attr_sel_append_attr_sel (CRAttrSel * a_this, CRAttrSel * a_attr_sel)
@@ -82,7 +82,7 @@ cr_attr_sel_append_attr_sel (CRAttrSel * a_this, CRAttrSel * a_attr_sel)
*
*Prepends an attribute selector to the list of
*attributes selector represented by a_this.
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
enum CRStatus
cr_attr_sel_prepend_attr_sel (CRAttrSel * a_this,

View File

@@ -58,7 +58,7 @@ struct _CRCascadePriv {
*should call their ref/unref method instead if it wants
*
*Returns the newly built instance of CRCascade or NULL if
*an error arose during construction.
*an error arose during constrution.
*/
CRCascade *
cr_cascade_new (CRStyleSheet * a_author_sheet,
@@ -128,7 +128,7 @@ cr_cascade_get_sheet (CRCascade * a_this, enum CRStyleOrigin a_origin)
*
*Sets a stylesheet in the cascade
*
*Returns CR_OK upon successful completion, an error
*Returns CR_OK upon successfull completion, an error
*code otherwise.
*/
enum CRStatus

View File

@@ -313,7 +313,7 @@ cr_declaration_append (CRDeclaration * a_this, CRDeclaration * a_new)
*@a_decls: the declaration to unlink.
*
*Unlinks the declaration from the declaration list.
*case of a successful completion, NULL otherwise.
*case of a successfull completion, NULL otherwise.
*
*Returns a pointer to the unlinked declaration in
*/

View File

@@ -29,7 +29,7 @@
*
*The definition of the CRDocHandler class.
*Contains methods to instantiate, destroy,
*and initialize instances of #CRDocHandler
*and initialyze instances of #CRDocHandler
*to custom values.
*/
@@ -98,7 +98,7 @@ cr_doc_handler_new (void)
*Gets the private parsing context associated to the document handler
*The private parsing context is used by libcroco only.
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
enum CRStatus
cr_doc_handler_get_ctxt (CRDocHandler const * a_this, gpointer * a_ctxt)
@@ -117,7 +117,7 @@ cr_doc_handler_get_ctxt (CRDocHandler const * a_this, gpointer * a_ctxt)
*
*Sets the private parsing context.
*This is used by libcroco only.
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
enum CRStatus
cr_doc_handler_set_ctxt (CRDocHandler * a_this, gpointer a_ctxt)
@@ -135,7 +135,7 @@ cr_doc_handler_set_ctxt (CRDocHandler * a_this, gpointer a_ctxt)
*Gets the private parsing result.
*The private parsing result is used by libcroco only.
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
enum CRStatus
cr_doc_handler_get_result (CRDocHandler const * a_this, gpointer * a_result)
@@ -155,7 +155,7 @@ cr_doc_handler_get_result (CRDocHandler const * a_this, gpointer * a_result)
*Sets the private parsing context.
*This is used by libcroco only.
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
enum CRStatus
cr_doc_handler_set_result (CRDocHandler * a_this, gpointer a_result)
@@ -175,7 +175,7 @@ cr_doc_handler_set_result (CRDocHandler * a_this, gpointer a_result)
*test handlers. This is expected to change in a
*near future, when the libcroco gets a bit debugged.
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
enum CRStatus
cr_doc_handler_set_default_sac_handler (CRDocHandler * a_this)
@@ -216,7 +216,7 @@ cr_doc_handler_ref (CRDocHandler * a_this)
/**
* cr_doc_handler_unref:
*@a_this: the current instance of #CRDocHandler.
*@a_this: the currrent instance of #CRDocHandler.
*
*Decreases the ref count of the current instance of #CRDocHandler.
*If the ref count reaches '0' then, destroys the instance.

View File

@@ -105,7 +105,7 @@ cr_enc_handler_get_instance (enum CREncoding a_enc)
*Given an encoding name (called an alias name)
*the function returns the matching encoding type.
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
enum CRStatus
cr_enc_handler_resolve_enc_alias (const guchar * a_alias_name,
@@ -143,7 +143,7 @@ cr_enc_handler_resolve_enc_alias (const guchar * a_alias_name,
*
*Converts a raw input buffer into an utf8 buffer.
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
enum CRStatus
cr_enc_handler_convert_input (CREncHandler * a_this,

View File

@@ -173,7 +173,7 @@ cr_font_family_new (enum CRFontFamilyType a_type, guchar * a_name)
/**
* cr_font_family_to_string:
* @a_this: the current instance of #CRFontFamily.
* @a_walk_font_family_list: whether the serialize the entire list.
* @a_walk_font_family_list: wether the serialize the entire list.
*
* Returns the seriliazed font family. The caller has to free it using
* g_free().
@@ -215,7 +215,7 @@ cr_font_family_to_string (CRFontFamily const * a_this,
* @a_this: the current instance of #CRFontFamily.
* @a_name: the new name
*
* Returns CR_OK upon successful completion, an error code otherwise.
* Returns CR_OK upon sucessful completion, an error code otherwise.
*/
enum CRStatus
cr_font_family_set_name (CRFontFamily * a_this, guchar * a_name)
@@ -292,7 +292,7 @@ cr_font_family_prepend (CRFontFamily * a_this,
* cr_font_family_destroy:
* @a_this: the current instance of #CRFontFamily.
*
* Returns CR_OK upon successful completion, an error code otherwise.
* Returns CR_OK upon sucessful completion, an error code otherwise.
*/
enum CRStatus
cr_font_family_destroy (CRFontFamily * a_this)
@@ -413,7 +413,7 @@ cr_font_size_copy (CRFontSize * a_dst, CRFontSize const * a_src)
* @a_this: the current instance of #CRFontSize.
* @a_predefined: what to set.
*
* Returns CR_OK upon successful completion, an error code otherwise.
* Returns CR_OK upon sucessful completion, an error code otherwise.
*/
enum CRStatus
cr_font_size_set_predefined_absolute_font_size (CRFontSize *a_this,
@@ -457,7 +457,7 @@ cr_font_size_set_relative_font_size (CRFontSize *a_this,
* @a_num_type: the type of number to set.
* @a_value: the actual value to set.
*
* Returns CR_OK upon successful completion, an error code otherwise.
* Returns CR_OK upon succesful completion, an error code otherwise.
*/
enum CRStatus
cr_font_size_set_absolute_font_size (CRFontSize *a_this,
@@ -479,7 +479,7 @@ cr_font_size_set_absolute_font_size (CRFontSize *a_this,
* cr_font_size_set_to_inherit:
* @a_this: the current instance of #CRFontSize
*
* Returns CR_OK upon successful completion, an error code otherwise.
* Returns CR_OK upon succesful completion, an error code otherwise.
*/
enum CRStatus
cr_font_size_set_to_inherit (CRFontSize *a_this)

View File

@@ -346,7 +346,7 @@ cr_input_unref (CRInput * a_this)
*the current instance has reached the end of its input buffer,
*FALSE otherwise.
*
*Tests whether the current instance of
*Tests wether the current instance of
*#CRInput has reached its input buffer.
*
* Returns CR_OK upon successful completion, an error code otherwise.
@@ -644,12 +644,12 @@ cr_input_consume_char (CRInput * a_this, guint32 a_char)
*@a_this: the this pointer of the current instance of #CRInput.
*@a_char: the character to consume.
*@a_nb_char: in/out parameter. The number of characters to consume.
*If set to a negative value, the function will consume all the occurrences
*If set to a negative value, the function will consume all the occurences
*of a_char found.
*After return, if the return value equals CR_OK, this variable contains
*the number of characters actually consumed.
*
*Consumes up to a_nb_char occurrences of the next contiguous characters
*Consumes up to a_nb_char occurences of the next contiguous characters
*which equal a_char. Note that the next character of the input stream
**MUST* equal a_char to trigger the consumption, or else, the error
*code CR_PARSING_ERROR is returned.

View File

@@ -258,7 +258,7 @@ cr_num_dup (CRNum const * a_this)
*instance of #CRNum
*@a_type: the new type of #CRNum.
*
* Returns CR_OK upon successful completion, an error code otherwise.
* Returns CR_OK upon succesful completion, an error code otherwise.
*/
enum CRStatus
cr_num_set (CRNum * a_this, gdouble a_val, enum CRNumType a_type)

View File

@@ -159,7 +159,7 @@ cr_om_parser_init_default_sac_handler (CROMParser * a_this)
}
/*
*initialize here the sac handler.
*initialyze here the sac handler.
*/
sac_handler->start_document = start_document;
sac_handler->end_document = end_document;
@@ -667,7 +667,7 @@ property (CRDocHandler * a_this,
g_return_if_fail (str);
}
/*instantiates a new declaration */
/*instanciates a new declaration */
decl = cr_declaration_new (ctxt->cur_stmt, str, a_expression);
g_return_if_fail (decl);
str = NULL;
@@ -846,7 +846,7 @@ cr_om_parser_new (CRInput * a_input)
*
*Parses the content of an in memory buffer.
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
enum CRStatus
cr_om_parser_parse_buf (CROMParser * a_this,
@@ -895,7 +895,7 @@ cr_om_parser_parse_buf (CROMParser * a_this,
*
*The simpler way to parse an in memory css2 buffer.
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
enum CRStatus
cr_om_parser_simply_parse_buf (const guchar * a_buf,
@@ -928,7 +928,7 @@ cr_om_parser_simply_parse_buf (const guchar * a_buf,
* cr_om_parser_parse_file:
*@a_this: the current instance of the cssom parser.
*@a_file_uri: the uri of the file.
*(only local file paths are supported so far)
*(only local file paths are suppported so far)
*@a_enc: the encoding of the file.
*@a_result: out parameter. A pointer
*the build css object model.
@@ -936,7 +936,7 @@ cr_om_parser_simply_parse_buf (const guchar * a_buf,
*Parses a css2 stylesheet contained
*in a file.
*
* Returns CR_OK upon successful completion, an error code otherwise.
* Returns CR_OK upon succesful completion, an error code otherwise.
*/
enum CRStatus
cr_om_parser_parse_file (CROMParser * a_this,
@@ -984,7 +984,7 @@ cr_om_parser_parse_file (CROMParser * a_this,
*
*The simpler method to parse a css2 file.
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*Note that this method uses cr_om_parser_parse_file() so both methods
*have the same return values.
*/

View File

@@ -45,7 +45,7 @@
*that css UA must comply with two syntaxes.
*
*1/the specific syntax that defines the css language
*for a given level of specification (e.g css2 syntax
*for a given level of specificatin (e.g css2 syntax
*defined in appendix D.1 of the css2 spec)
*
*2/the core (general) syntax that is there to allow
@@ -136,8 +136,6 @@ struct _CRParserPriv {
#define CHARS_TAB_SIZE 12
#define RECURSIVE_CALLERS_LIMIT 100
/**
* IS_NUM:
*@a_char: the char to test.
@@ -171,7 +169,7 @@ if ((status) != CR_OK) \
*@a_is_exception: in case of error, if is TRUE, the status
*is set to CR_PARSING_ERROR before goto error. If is false, the
*real low level status is kept and will be returned by the
*upper level function that called this macro. Usually,this must
*upper level function that called this macro. Usally,this must
*be set to FALSE.
*
*same as CHECK_PARSING_STATUS() but this one pushes an error
@@ -207,7 +205,7 @@ CHECK_PARSING_STATUS (status, TRUE) \
*Reads the next char from the input stream of the current parser.
*In case of error, jumps to the "error:" label located in the
*function where this macro is called.
*@param a_this the current instance of #CRParser
*@param a_this the curent instance of #CRParser
*@param to_char a pointer to the guint32 char where to store
*the character read.
*/
@@ -345,11 +343,9 @@ static enum CRStatus cr_parser_parse_selector_core (CRParser * a_this);
static enum CRStatus cr_parser_parse_declaration_core (CRParser * a_this);
static enum CRStatus cr_parser_parse_any_core (CRParser * a_this,
guint n_calls);
static enum CRStatus cr_parser_parse_any_core (CRParser * a_this);
static enum CRStatus cr_parser_parse_block_core (CRParser * a_this,
guint n_calls);
static enum CRStatus cr_parser_parse_block_core (CRParser * a_this);
static enum CRStatus cr_parser_parse_value_core (CRParser * a_this);
@@ -514,7 +510,7 @@ cr_parser_error_destroy (CRParserError * a_this)
*@param a_this the current instance of #CRParser.
*@param a_msg the error message.
*@param a_status the error status.
*@return CR_OK upon successful completion, an error code otherwise.
*@return CR_OK upon successfull completion, an error code otherwise.
*/
static enum CRStatus
cr_parser_push_error (CRParser * a_this,
@@ -560,7 +556,7 @@ cr_parser_push_error (CRParser * a_this,
*@param a_this the current instance of #CRParser.
*@param a_clear_errs whether to clear the error stack
*after the dump or not.
*@return CR_OK upon successful completion, an error code
*@return CR_OK upon successfull completion, an error code
*otherwise.
*/
static enum CRStatus
@@ -618,7 +614,7 @@ cr_parser_clear_errors (CRParser * a_this)
*Same as cr_parser_try_to_skip_spaces() but this one skips
*spaces and comments.
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
enum CRStatus
cr_parser_try_to_skip_spaces_and_comments (CRParser * a_this)
@@ -755,7 +751,7 @@ cr_parser_parse_stylesheet_core (CRParser * a_this)
*in chapter 4.1 in the css2 spec.
*at-rule : ATKEYWORD S* any* [ block | ';' S* ];
*@param a_this the current instance of #CRParser.
*@return CR_OK upon successful completion, an error code
*@return CR_OK upon successfull completion, an error code
*otherwise.
*/
static enum CRStatus
@@ -787,7 +783,7 @@ cr_parser_parse_atrule_core (CRParser * a_this)
cr_parser_try_to_skip_spaces_and_comments (a_this);
do {
status = cr_parser_parse_any_core (a_this, 0);
status = cr_parser_parse_any_core (a_this);
} while (status == CR_OK);
status = cr_tknzr_get_next_token (PRIVATE (a_this)->tknzr,
@@ -798,7 +794,7 @@ cr_parser_parse_atrule_core (CRParser * a_this)
cr_tknzr_unget_token (PRIVATE (a_this)->tknzr,
token);
token = NULL;
status = cr_parser_parse_block_core (a_this, 0);
status = cr_parser_parse_block_core (a_this);
CHECK_PARSING_STATUS (status,
FALSE);
goto done;
@@ -831,7 +827,7 @@ cr_parser_parse_atrule_core (CRParser * a_this)
*4.1 of the css2 spec.
*ruleset ::= selector? '{' S* declaration? [ ';' S* declaration? ]* '}' S*;
*@param a_this the current instance of #CRParser.
*@return CR_OK upon successful completion, an error code otherwise.
*@return CR_OK upon successfull completion, an error code otherwise.
*/
static enum CRStatus
cr_parser_parse_ruleset_core (CRParser * a_this)
@@ -919,7 +915,7 @@ cr_parser_parse_ruleset_core (CRParser * a_this)
*grammar.
*selector : any+;
*@param a_this the current instance of #CRParser.
*@return CR_OK upon successful completion, an error code
*@return CR_OK upon successfull completion, an error code
*otherwise.
*/
static enum CRStatus
@@ -933,11 +929,11 @@ cr_parser_parse_selector_core (CRParser * a_this)
RECORD_INITIAL_POS (a_this, &init_pos);
status = cr_parser_parse_any_core (a_this, 0);
status = cr_parser_parse_any_core (a_this);
CHECK_PARSING_STATUS (status, FALSE);
do {
status = cr_parser_parse_any_core (a_this, 0);
status = cr_parser_parse_any_core (a_this);
} while (status == CR_OK);
@@ -959,12 +955,10 @@ cr_parser_parse_selector_core (CRParser * a_this)
*in chapter 4.1 of the css2 spec.
*block ::= '{' S* [ any | block | ATKEYWORD S* | ';' ]* '}' S*;
*@param a_this the current instance of #CRParser.
*@param n_calls used to limit recursion depth
*FIXME: code this function.
*/
static enum CRStatus
cr_parser_parse_block_core (CRParser * a_this,
guint n_calls)
cr_parser_parse_block_core (CRParser * a_this)
{
CRToken *token = NULL;
CRInputPos init_pos;
@@ -972,9 +966,6 @@ cr_parser_parse_block_core (CRParser * a_this,
g_return_val_if_fail (a_this && PRIVATE (a_this), CR_BAD_PARAM_ERROR);
if (n_calls > RECURSIVE_CALLERS_LIMIT)
return CR_ERROR;
RECORD_INITIAL_POS (a_this, &init_pos);
status = cr_tknzr_get_next_token (PRIVATE (a_this)->tknzr, &token);
@@ -1004,13 +995,13 @@ cr_parser_parse_block_core (CRParser * a_this,
} else if (token->type == CBO_TK) {
cr_tknzr_unget_token (PRIVATE (a_this)->tknzr, token);
token = NULL;
status = cr_parser_parse_block_core (a_this, n_calls + 1);
status = cr_parser_parse_block_core (a_this);
CHECK_PARSING_STATUS (status, FALSE);
goto parse_block_content;
} else {
cr_tknzr_unget_token (PRIVATE (a_this)->tknzr, token);
token = NULL;
status = cr_parser_parse_any_core (a_this, n_calls + 1);
status = cr_parser_parse_any_core (a_this);
CHECK_PARSING_STATUS (status, FALSE);
goto parse_block_content;
}
@@ -1089,7 +1080,7 @@ cr_parser_parse_declaration_core (CRParser * a_this)
*in chapter 4.1.
*value ::= [ any | block | ATKEYWORD S* ]+;
*@param a_this the current instance of #CRParser.
*@return CR_OK upon successful completion, an error code otherwise.
*@return CR_OK upon successfull completion, an error code otherwise.
*/
static enum CRStatus
cr_parser_parse_value_core (CRParser * a_this)
@@ -1117,7 +1108,7 @@ cr_parser_parse_value_core (CRParser * a_this)
status = cr_tknzr_unget_token (PRIVATE (a_this)->tknzr,
token);
token = NULL;
status = cr_parser_parse_block_core (a_this, 0);
status = cr_parser_parse_block_core (a_this);
CHECK_PARSING_STATUS (status, FALSE);
ref++;
goto continue_parsing;
@@ -1131,7 +1122,7 @@ cr_parser_parse_value_core (CRParser * a_this)
status = cr_tknzr_unget_token (PRIVATE (a_this)->tknzr,
token);
token = NULL;
status = cr_parser_parse_any_core (a_this, 0);
status = cr_parser_parse_any_core (a_this);
if (status == CR_OK) {
ref++;
goto continue_parsing;
@@ -1170,12 +1161,10 @@ cr_parser_parse_value_core (CRParser * a_this)
* | FUNCTION | DASHMATCH | '(' any* ')' | '[' any* ']' ] S*;
*
*@param a_this the current instance of #CRParser.
*@param n_calls used to limit recursion depth
*@return CR_OK upon successful completion, an error code otherwise.
*@return CR_OK upon successfull completion, an error code otherwise.
*/
static enum CRStatus
cr_parser_parse_any_core (CRParser * a_this,
guint n_calls)
cr_parser_parse_any_core (CRParser * a_this)
{
CRToken *token1 = NULL,
*token2 = NULL;
@@ -1184,9 +1173,6 @@ cr_parser_parse_any_core (CRParser * a_this,
g_return_val_if_fail (a_this, CR_BAD_PARAM_ERROR);
if (n_calls > RECURSIVE_CALLERS_LIMIT)
return CR_ERROR;
RECORD_INITIAL_POS (a_this, &init_pos);
status = cr_tknzr_get_next_token (PRIVATE (a_this)->tknzr, &token1);
@@ -1225,7 +1211,7 @@ cr_parser_parse_any_core (CRParser * a_this,
*We consider parameter as being an "any*" production.
*/
do {
status = cr_parser_parse_any_core (a_this, n_calls + 1);
status = cr_parser_parse_any_core (a_this);
} while (status == CR_OK);
ENSURE_PARSING_COND (status == CR_PARSING_ERROR);
@@ -1250,7 +1236,7 @@ cr_parser_parse_any_core (CRParser * a_this,
}
do {
status = cr_parser_parse_any_core (a_this, n_calls + 1);
status = cr_parser_parse_any_core (a_this);
} while (status == CR_OK);
ENSURE_PARSING_COND (status == CR_PARSING_ERROR);
@@ -1278,7 +1264,7 @@ cr_parser_parse_any_core (CRParser * a_this,
}
do {
status = cr_parser_parse_any_core (a_this, n_calls + 1);
status = cr_parser_parse_any_core (a_this);
} while (status == CR_OK);
ENSURE_PARSING_COND (status == CR_PARSING_ERROR);
@@ -1332,7 +1318,7 @@ cr_parser_parse_any_core (CRParser * a_this,
*@param a_this the "this pointer" of the current instance of
*#CRParser .
*@param a_sel out parameter. The successfully parsed attribute selector.
*@return CR_OK upon successful completion, an error code otherwise.
*@return CR_OK upon successfull completion, an error code otherwise.
*/
static enum CRStatus
cr_parser_parse_attribute_selector (CRParser * a_this,
@@ -1471,7 +1457,7 @@ cr_parser_parse_attribute_selector (CRParser * a_this,
*new instance of GString and set it content to the parsed property.
*If not, the property is just appended to a_property's previous content.
*In both cases, it is up to the caller to free a_property.
*@return CR_OK upon successful completion, CR_PARSING_ERROR if the
*@return CR_OK upon successfull completion, CR_PARSING_ERROR if the
*next construction was not a "property", or an error code.
*/
static enum CRStatus
@@ -1514,7 +1500,7 @@ cr_parser_parse_property (CRParser * a_this,
*
*TODO: handle parsing of 'RGB'
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
enum CRStatus
cr_parser_parse_term (CRParser * a_this, CRTerm ** a_term)
@@ -1669,7 +1655,7 @@ cr_parser_parse_term (CRParser * a_this, CRTerm ** a_term)
*and where pseudo is:
*pseudo ::= ':' [ IDENT | FUNCTION S* IDENT S* ')' ]
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
static enum CRStatus
cr_parser_parse_simple_selector (CRParser * a_this, CRSimpleSel ** a_sel)
@@ -1928,7 +1914,7 @@ cr_parser_parse_simple_selector (CRParser * a_this, CRSimpleSel ** a_sel)
* cr_parser_parse_simple_sels:
*@a_this: the this pointer of the current instance of #CRParser.
*@a_start: a pointer to the
*first character of the successfully parsed
*first chararcter of the successfully parsed
*string.
*@a_end: a pointer to the last character of the successfully parsed
*string.
@@ -1936,7 +1922,7 @@ cr_parser_parse_simple_selector (CRParser * a_this, CRSimpleSel ** a_sel)
*Parses a "selector" as defined by the css2 spec in appendix D.1:
*selector ::= simple_selector [ combinator simple_selector ]*
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
static enum CRStatus
cr_parser_parse_simple_sels (CRParser * a_this,
@@ -2134,7 +2120,7 @@ cr_parser_parse_selector (CRParser * a_this,
*function ::= FUNCTION S* expr ')' S*
*FUNCTION ::= ident'('
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
static enum CRStatus
cr_parser_parse_function (CRParser * a_this,
@@ -2220,7 +2206,7 @@ cr_parser_parse_function (CRParser * a_this,
* URI ::= url\({w}{string}{w}\)
* |url\({w}([!#$%&*-~]|{nonascii}|{escape})*{w}\)
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
static enum CRStatus
cr_parser_parse_uri (CRParser * a_this, CRString ** a_str)
@@ -2239,10 +2225,10 @@ cr_parser_parse_uri (CRParser * a_this, CRString ** a_str)
/**
* cr_parser_parse_string:
*@a_this: the current instance of #CRParser.
*@a_start: out parameter. Upon successful completion,
*@a_start: out parameter. Upon successfull completion,
*points to the beginning of the string, points to an undefined value
*otherwise.
*@a_end: out parameter. Upon successful completion, points to
*@a_end: out parameter. Upon successfull completion, points to
*the beginning of the string, points to an undefined value otherwise.
*
*Parses a string type as defined in css spec [4.1.1]:
@@ -2251,7 +2237,7 @@ cr_parser_parse_uri (CRParser * a_this, CRString ** a_str)
*string1 ::= \"([\t !#$%&(-~]|\\{nl}|\'|{nonascii}|{escape})*\"
*string2 ::= \'([\t !#$%&(-~]|\\{nl}|\"|{nonascii}|{escape})*\'
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
static enum CRStatus
cr_parser_parse_string (CRParser * a_this, CRString ** a_str)
@@ -2278,7 +2264,7 @@ cr_parser_parse_string (CRParser * a_this, CRString ** a_str)
*the function just appends the parsed string to the one passed.
*In both cases it is up to the caller to free *a_str.
*
*@return CR_OK upon successful completion, an error code
*@return CR_OK upon successfull completion, an error code
*otherwise.
*/
static enum CRStatus
@@ -2311,7 +2297,7 @@ cr_parser_parse_ident (CRParser * a_this, CRString ** a_str)
*@param a_end out parameter. A pointer to the first character of
*the successfully parsed string.
*
*@return CR_OK upon successful completion, an error code otherwise.
*@return CR_OK upon successfull completion, an error code otherwise.
*/
static enum CRStatus
cr_parser_parse_stylesheet (CRParser * a_this)
@@ -2789,7 +2775,7 @@ cr_parser_new (CRTknzr * a_tknzr)
*of #CRParser. If set to FALSE, it is up to the caller to
*eventually free it.
*
*Instantiates a new parser from a memory buffer.
*Instanciates a new parser from a memory buffer.
*
*Returns the newly built parser, or NULL if an error arises.
*/
@@ -2870,7 +2856,7 @@ cr_parser_new_from_file (const guchar * a_file_uri, enum CREncoding a_enc)
*
*Sets a SAC document handler to the parser.
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
enum CRStatus
cr_parser_set_sac_handler (CRParser * a_this, CRDocHandler * a_handler)
@@ -2895,7 +2881,7 @@ cr_parser_set_sac_handler (CRParser * a_this, CRDocHandler * a_handler)
*
*Gets the SAC document handler.
*
*Returns CR_OK upon successful completion, an error code
*Returns CR_OK upon successfull completion, an error code
*otherwise.
*/
enum CRStatus
@@ -2915,7 +2901,7 @@ cr_parser_get_sac_handler (CRParser * a_this, CRDocHandler ** a_handler)
*Sets the SAC handler associated to the current instance
*of #CRParser to the default SAC handler.
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
enum CRStatus
cr_parser_set_default_sac_handler (CRParser * a_this)
@@ -2944,7 +2930,7 @@ cr_parser_set_default_sac_handler (CRParser * a_this)
* @a_this: the current instance of #CRParser.
* @a_use_core_grammar: where to parse against the css core grammar.
*
* Returns CR_OK upon successful completion, an error code otherwise.
* Returns CR_OK upon succesful completion, an error code otherwise.
*/
enum CRStatus
cr_parser_set_use_core_grammar (CRParser * a_this,
@@ -2960,9 +2946,9 @@ cr_parser_set_use_core_grammar (CRParser * a_this,
/**
* cr_parser_get_use_core_grammar:
* @a_this: the current instance of #CRParser.
* @a_use_core_grammar: whether to use the core grammar or not.
* @a_use_core_grammar: wether to use the core grammar or not.
*
* Returns CR_OK upon successful completion, an error code otherwise.
* Returns CR_OK upon succesful completion, an error code otherwise.
*/
enum CRStatus
cr_parser_get_use_core_grammar (CRParser const * a_this,
@@ -2984,7 +2970,7 @@ cr_parser_get_use_core_grammar (CRParser const * a_this,
*
*Parses a the given in parameter.
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
enum CRStatus
cr_parser_parse_file (CRParser * a_this,
@@ -3176,7 +3162,7 @@ cr_parser_parse_prio (CRParser * a_this, CRString ** a_prio)
*Parses a "declaration" as defined by the css2 spec in appendix D.1:
*declaration ::= [property ':' S* expr prio?]?
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
enum CRStatus
cr_parser_parse_declaration (CRParser * a_this,
@@ -3270,7 +3256,7 @@ cr_parser_parse_declaration (CRParser * a_this,
*chapter 4.1 of the css2 spec.
*statement : ruleset | at-rule;
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
enum CRStatus
cr_parser_parse_statement_core (CRParser * a_this)
@@ -3334,7 +3320,7 @@ cr_parser_parse_statement_core (CRParser * a_this)
*See the documentation of #CRDocHandler (the SAC handler) to know
*when which SAC handler is called.
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
enum CRStatus
cr_parser_parse_ruleset (CRParser * a_this)
@@ -3550,7 +3536,7 @@ cr_parser_parse_ruleset (CRParser * a_this)
*import ::=
*\@import [STRING|URI] S* [ medium [ ',' S* medium]* ]? ';' S*
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon sucessfull completion, an error code otherwise.
*/
enum CRStatus
cr_parser_parse_import (CRParser * a_this,
@@ -3670,7 +3656,7 @@ cr_parser_parse_import (CRParser * a_this,
*will corrupt the memory and lead to hard to debug
*random crashes.
*This is where C++ and its compile time
*type checking mechanism (through STL containers) would
*type checking mecanism (through STL containers) would
*have prevented us to go through this hassle.
*/
for (cur = *a_media_list; cur; cur = cur->next) {
@@ -3711,7 +3697,7 @@ cr_parser_parse_import (CRParser * a_this,
*to notify media productions. See #CRDocHandler to know the callback called
*during \@media parsing.
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
enum CRStatus
cr_parser_parse_media (CRParser * a_this)
@@ -3881,7 +3867,7 @@ cr_parser_parse_media (CRParser * a_this)
*encounters a construction that must
*be reported to the calling application.
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
enum CRStatus
cr_parser_parse_page (CRParser * a_this)
@@ -4128,11 +4114,11 @@ cr_parser_parse_page (CRParser * a_this)
*set to NULL.
*@a_charset_sym_location: the parsing location of the charset rule
*
*Parses a charset declaration as defined implicitly by the css2 spec in
*Parses a charset declaration as defined implictly by the css2 spec in
*appendix D.1:
*charset ::= CHARSET_SYM S* STRING S* ';'
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
enum CRStatus
cr_parser_parse_charset (CRParser * a_this, CRString ** a_value,
@@ -4223,7 +4209,7 @@ cr_parser_parse_charset (CRParser * a_this, CRString ** a_value,
*
*This function will call SAC handlers whenever it is necessary.
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
enum CRStatus
cr_parser_parse_font_face (CRParser * a_this)
@@ -4380,7 +4366,7 @@ cr_parser_parse_font_face (CRParser * a_this)
*input previously associated to the current instance of
*#CRParser.
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon succesful completion, an error code otherwise.
*/
enum CRStatus
cr_parser_parse (CRParser * a_this)
@@ -4430,7 +4416,7 @@ cr_parser_set_tknzr (CRParser * a_this, CRTknzr * a_tknzr)
*
*Getter of the parser's underlying tokenizer
*
*Returns CR_OK upon successful completion, an error code
*Returns CR_OK upon succesful completion, an error code
*otherwise
*/
enum CRStatus
@@ -4450,7 +4436,7 @@ cr_parser_get_tknzr (CRParser * a_this, CRTknzr ** a_tknzr)
*
*Gets the current parsing location.
*
*Returns CR_OK upon successful completion, an error code
*Returns CR_OK upon succesful completion, an error code
*otherwise.
*/
enum CRStatus

View File

@@ -33,9 +33,9 @@
/**
* cr_parsing_location_new:
*Instantiates a new parsing location.
*Instanciates a new parsing location.
*
*Returns the newly instantiated #CRParsingLocation.
*Returns the newly instanciated #CRParsingLocation.
*Must be freed by cr_parsing_location_destroy()
*/
CRParsingLocation *
@@ -58,7 +58,7 @@ cr_parsing_location_new (void)
*
*Initializes the an instance of #CRparsingLocation.
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon succesful completion, an error code otherwise.
*/
enum CRStatus
cr_parsing_location_init (CRParsingLocation *a_this)
@@ -77,7 +77,7 @@ cr_parsing_location_init (CRParsingLocation *a_this)
*
*Copies an instance of CRParsingLocation into another one.
*
*Returns CR_OK upon successful completion, an error code
*Returns CR_OK upon succesful completion, an error code
*otherwise.
*/
enum CRStatus

View File

@@ -156,7 +156,7 @@ cr_prop_list_prepend (CRPropList * a_this, CRPropList * a_to_prepend)
*@a_prop_name: property name to append
*@a_decl: the property value to append.
*
*Prepends a property to a list of properties
*Prepends a propertie to a list of properties
*
*Returns the new property list.
*/

View File

@@ -55,7 +55,7 @@ cr_simple_sel_new (void)
*@a_this: the this pointer of the current instance of #CRSimpleSel.
*@a_sel: the simple selector to append.
*
*Returns: the new list upon successful completion, an error code otherwise.
*Returns: the new list upon successfull completion, an error code otherwise.
*/
CRSimpleSel *
cr_simple_sel_append_simple_sel (CRSimpleSel * a_this, CRSimpleSel * a_sel)
@@ -83,7 +83,7 @@ cr_simple_sel_append_simple_sel (CRSimpleSel * a_this, CRSimpleSel * a_sel)
*
*Prepends a simple selector to the current list of simple selectors.
*
*Returns the new list upon successful completion, an error code otherwise.
*Returns the new list upon successfull completion, an error code otherwise.
*/
CRSimpleSel *
cr_simple_sel_prepend_simple_sel (CRSimpleSel * a_this, CRSimpleSel * a_sel)
@@ -210,7 +210,7 @@ cr_simple_sel_one_to_string (CRSimpleSel const * a_this)
*Dumps the selector to a file.
*TODO: add the support of unicode in the dump.
*
*Returns CR_OK upon successful completion, an error code
*Returns CR_OK upon successfull completion, an error code
*otherwise.
*/
enum CRStatus
@@ -240,7 +240,7 @@ cr_simple_sel_dump (CRSimpleSel const * a_this, FILE * a_fp)
*Computes the selector (combinator separated list of simple selectors)
*as defined in the css2 spec in chapter 6.4.3
*
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon successfull completion, an error code otherwise.
*/
enum CRStatus
cr_simple_sel_compute_specificity (CRSimpleSel * a_this)

View File

@@ -68,7 +68,7 @@ typedef struct _CRSimpleSel CRSimpleSel ;
*then been called 'universal selector')
*
*2/An additional selector that "specializes" the preceding type or
*universal selector. The additional selector can be either
*universal selector. The additionnal selector can be either
*an id selector, or a class selector, or an attribute selector.
*/
struct _CRSimpleSel

View File

@@ -1037,7 +1037,7 @@ cr_statement_parse_from_buf (const guchar * a_buf, enum CREncoding a_encoding)
*@a_buf: the buffer to parse.
*@a_enc: the character encoding of a_buf.
*
*Parses a buffer that contains a ruleset statement an instantiates
*Parses a buffer that contains a ruleset statement an instanciates
*a #CRStatement of type RULESET_STMT.
*
*Returns the newly built instance of #CRStatement in case of successful parsing,
@@ -1254,7 +1254,7 @@ cr_statement_at_media_rule_parse_from_buf (const guchar * a_buf,
*in the \@media rule.
*@a_media: the media string list. A list of GString pointers.
*
*Instantiates an instance of #CRStatement of type
*Instanciates an instance of #CRStatement of type
*AT_MEDIA_RULE_STMT (\@media ruleset).
*
*/
@@ -1362,7 +1362,7 @@ cr_statement_new_at_import_rule (CRStyleSheet * a_container_sheet,
*@a_encoding: the encoding of a_buf.
*
*Parses a buffer that contains an "\@import" rule and
*instantiate a #CRStatement of type AT_IMPORT_RULE_STMT
*instanciate a #CRStatement of type AT_IMPORT_RULE_STMT
*
*Returns the newly built instance of #CRStatement in case of
*a successful parsing, NULL otherwise.
@@ -2116,7 +2116,7 @@ cr_statement_ruleset_append_decl2 (CRStatement * a_this,
*@a_this: the current statement.
*@a_declaration: the declaration to append.
*
*Returns CR_OK upon successful completion, an error code
*Returns CR_OK upon sucessful completion, an error code
*otherwise.
*/
enum CRStatus
@@ -2170,7 +2170,7 @@ cr_statement_at_import_rule_set_imported_sheet (CRStatement * a_this,
*only if the function returns CR_OK.
*
*Gets the stylesheet contained by the \@import rule statement.
*Returns CR_OK upon successful completion, an error code otherwise.
*Returns CR_OK upon sucessful completion, an error code otherwise.
*/
enum CRStatus
cr_statement_at_import_rule_get_imported_sheet (CRStatement * a_this,

View File

@@ -129,7 +129,7 @@ struct _CRAtCharsetRule
CRString * charset ;
};
/**The abstraction of the \@font-face rule.*/
/**The abstaction of the \@font-face rule.*/
typedef struct _CRAtFontFaceRule CRAtFontFaceRule ;
struct _CRAtFontFaceRule
{

View File

@@ -25,8 +25,8 @@
#include "cr-string.h"
/**
*Instantiates a #CRString
*@return the newly instantiated #CRString
*Instanciates a #CRString
*@return the newly instanciated #CRString
*Must be freed with cr_string_destroy().
*/
CRString *
@@ -45,10 +45,10 @@ cr_string_new (void)
}
/**
*Instantiate a string and initialise it to
*Instanciate a string and initialise it to
*a_string.
*@param a_string the initial string
*@return the newly instantiated string.
*@return the newly instanciated string.
*/
CRString *
cr_string_new_from_string (const gchar * a_string)
@@ -66,10 +66,10 @@ cr_string_new_from_string (const gchar * a_string)
}
/**
*Instantiates a #CRString from an instance of GString.
*Instanciates a #CRString from an instance of GString.
*@param a_string the input string that will be copied into
*the newly instantiated #CRString
*@return the newly instantiated #CRString.
*the newly instanciated #CRString
*@return the newly instanciated #CRString.
*/
CRString *
cr_string_new_from_gstring (GString const *a_string)

View File

@@ -74,7 +74,7 @@ struct _CRStyleSheet
gpointer app_data ;
/**
*the reference count of this instance
*the reference count of this insance
*Please, don't never ever modify it
*directly. Use cr_stylesheet_ref()
*and cr_stylesheet_unref() instead.

View File

@@ -77,7 +77,7 @@ cr_term_clear (CRTerm * a_this)
}
/**
*Instantiate a #CRTerm.
*Instanciate a #CRTerm.
*@return the newly build instance
*of #CRTerm.
*/
@@ -96,7 +96,7 @@ cr_term_new (void)
}
/**
*Parses an expression as defined by the css2 spec
*Parses an expresion as defined by the css2 spec
*and builds the expression as a list of terms.
*@param a_buf the buffer to parse.
*@return a pointer to the first term of the expression or

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