Compare commits

...

163 Commits

Author SHA1 Message Date
Alexander Mikhaylenko
35aa7998bc power: Ceil percentage when looking for icon
Use correct battery icon. For example, use battery-level-10-symbolic, with
a warning, on 1%-10% instead of 10%-19%.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1617

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/726
2019-09-14 12:17:46 +05:00
Марко Костић
314a89a837 Update Serbian translation 2019-09-13 19:43:24 +00:00
Jonas Ådahl
57ed68541a environment: Disable fullscreen unredirect during all transitions
When there is a transition, it's likely that we are animating some part
of the desktop, and in such situations we don't want to unredirect
fullscreen windows.

This fixes unwanted unredirection when e.g. hiding a modal dialog by
re-enabling the unredirection after the animation has finished, instead
of when it starts.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/721
2019-09-13 16:10:17 +00:00
Georges Basile Stavracas Neto
413c677fcf iconGrid: Only animate visible icons
Mutter recently added an optimization to only allocate
visible children [1]. That broke ClutterClones, but it
was subsequently fixed [2].

However, that exposed a third problem, this time with
FrequentView: visible but transparent icons, that are
not allocated by the icon grid, were cloned and animated
during the spring animation.

Only animate visible icons with opacity greater than 0.

[1] https://gitlab.gnome.org/GNOME/mutter/commit/0eab73dc
[2] https://gitlab.gnome.org/GNOME/mutter/commit/08a3cbfc

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/696
2019-09-13 15:33:45 +00:00
Milo Casagrande
3d86e6e791 Update Italian translation 2019-09-13 12:55:53 +00:00
Daniel Mustieles
3fbd61cbf0 Updated Spanish translation 2019-09-13 08:27:06 +02:00
Georges Basile Stavracas Neto
43b4f2c7d5 lookingGlass: Only update window list when visible
Updating the window list in the Looking Glass is a costly
operation: it destroys a whole lot of actors, and recreates
them. This triggers CSS changes, repaints, and allocations.

It is specially bad when paired with Wayland's big number
of window creations and deletions when showing Builder's
and Epiphany's popup window.

Only update the window list in the Looking Glass when it is
visible.

Related: https://gitlab.gnome.org/GNOME/mutter/issues/556

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/719
2019-09-13 00:49:38 +00:00
Anders Jonsson
7eb4088f45 Update Swedish translation 2019-09-12 22:16:22 +00:00
Florian Müllner
f00201fa6c ci: Disable MR handling for now
We aren't quite ready to enforce non-legacy style for now, mostly due
to the xgettext bug that prevents us from using template strings in
some places, and vast amounts of legacy indentation.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/716
2019-09-12 23:18:27 +02:00
Florian Müllner
1aca2ba6bb ci: Disallow legacy style in merge requests
In order to transition from the current legacy style to the modern
gjs one, use the MR line-filtering we used to do on common errors
to ensure new code complies with the new style.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/716
2019-09-12 23:18:27 +02:00
Florian Müllner
e9131465dd ci: Fail on any common lint errors
Now that we fixed all pre-existing errors that are common between
regular and legacy configuration, we can stop filtering the result
by the lines modified by the merge request.

This will allow us to catch errors in merge requests that slipped
through until now, for example when leaving a newly-unused import
behind.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/716
2019-09-12 23:18:27 +02:00
Florian Müllner
0ee7f02f8e cleanup: Don't assume hasOwnProperty() method on objects
Since ES5, it is possible to create objects with no prototype at all:

    let foo = Object.create(null);

Those object won't have any builtin properties like hasOwnProperty(),
which is why eslint added a corresponding rule to its default rule set.

While this isn't an issue that affects our code, there's no harm in fol-
lowing the recommendation and call the method through Object.prototype.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/716
2019-09-12 23:18:27 +02:00
Florian Müllner
451f4e3636 cleanup: "Only" use two indentation styles for object literals
We currently use no less than three different ways of indenting
object literals:

    let obj1 = {
        foo: 42,
        bar: 23,
    };

    let obj2 = { foo: 42,
                 bar: 23 };

    let obj3 = { foo: 42,
                 bar: 23
               };

The first is the one we want to use everywhere eventually, while the
second is the most commonly used "legacy" style.

It is the third one that is most problematic, as it throws off eslint
fairly badly: It violates both the rule to have consistent line breaks
in braces as well as the indentation style of both regular and legacy
configurations.

Fortunately the third style was mostly used for tween parameters, so
is quite rare after the Tweener purge. Get rid of the remaining ones
to cut down on pre-existing eslint errors.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/716
2019-09-12 23:18:24 +02:00
Florian Müllner
2fc4987c73 cleanup: Stop using Mainloop module
It is deprecated in favor of the regular GLib functions.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/718
2019-09-12 19:09:24 +02:00
GB_2
4525ad346d windowMenu: Animate menu
Most menus have an animation, so add one to the window menu for
consistency and better looks (like !712).

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/717
2019-09-12 16:01:46 +00:00
Danial Behzadi
e4b8a4b432 Update Persian translation 2019-09-12 12:27:27 +00:00
Enrico Nicoletto
62e594af6d Update Brazilian Portuguese translation 2019-09-12 11:35:40 +00:00
Florian Müllner
ce92270626 extensionSystem: Add missing return value
_callExtensionInit() should return whether the extension was initialized
successfully or not, but the early return added in commit 2a9e065cfb
doesn't.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/715
2019-09-12 12:45:05 +02:00
Jonas Dreßler
bdcf3037ca extensionSystem: Always disable multiple extensions in reverse order
Since disabling an extension will lead to disabling and re-enabling all
following extensions in the list, always disable multiple extensions by
looping through the list in reverse order.

This lowers the execution time of the event handlers quite a bit if many
extensions are installed.

Thanks to Philippe Troin for identifying the problem and proposing the
initial patch to change the extension order when reloading.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/177

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/96
2019-09-12 10:24:49 +00:00
Jonas Dreßler
9698ff491a extensionSystem: Only add to extensionOrder array if enabling worked
Only push uuids of newly enabled extensions to the `_extensionOrder`
array if enabling them was successful.

Otherwise, since `_callExtensionDisable()` doesn't remove uuids that
weren't successfully enabled from the array, those extensions get added
to the array multiple times when they're disabled and enabled.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/96
2019-09-12 10:24:49 +00:00
Jonas Dreßler
2a9e065cfb extensionSystem: Always enforce disallowing extensions using sessionMode
It's currently possible to circumvent the `sessionMode.allowExtensions`
property: For already enabled extensions one can call reloadExtension
via DBus, for new extensions it's possible by adding the extension to
the enabled-extensions gsettings key and setting the
disable-extension-version-validation key (which triggers a reload of
`this._enabledExtensions`) and then calling reloadExtension via DBus.

So to enforce `allowExtensions` while still allowing to update
extensions and keeping the extensionSystem synced with various gsettings
keys, replace the checks for `this._enabled` with simple checks for
`Main.sessionMode.allowExtensions` inside `_callExtensionInit()` and
`_callExtensionEnable()`.

The remaining checks for `this._enabled` are only small optimizations to
prevent running code on irrelevant sessionMode updates.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/96
2019-09-12 10:24:49 +00:00
Jonas Dreßler
4c93ef39fa extensionSystem: Handle added or removed sessionMode extensions
Right now we're only handling added sessionMode extensions correctly on
sessionMode updates, also handle the other case and disable removed
sessionMode extensions on sessionMode updates.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/96
2019-09-12 10:24:49 +00:00
Jonas Dreßler
22107c183b extensionSystem: Rename initted to initialized
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/96
2019-09-12 10:24:49 +00:00
Jonas Dreßler
c06eb5d0a7 extensionSystem: Log an extension error if loading the stylesheet failed
Instead of only logging a message that loading the extension stylesheet
failed and silently returning we should use `logExtensionError` for that
instead. This also sets the extension state to ERROR and makes sure we
don't try to enable it again.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/96
2019-09-12 10:24:49 +00:00
Jonas Dreßler
e76877c4b8 extensionSystem: Check if extension exists before accessing property
If the extension doesn't exist in the `this._extensions` Map, we'd try
to access `extension.dir` on undefined/null. So set the `dir` variable
after checking if `extension` is defined.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/96
2019-09-12 10:24:49 +00:00
Jonas Dreßler
2a32fb2e72 extensionSystem: Fix a wrong error message
The extension object is added to the `this._extensions` Map inside
`createExtensionObject`, not inside `loadExtension`.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/96
2019-09-12 10:24:49 +00:00
Jonas Dreßler
de86920e0e extensionSystem: Remove unncessary return statements
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/96
2019-09-12 10:24:49 +00:00
Jonas Dreßler
8754736fda extensionUtils: Check version variable for undefined first
Avoid a warning message when trying to access requiredArray[2] by
checking if its undefined first.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/96
2019-09-12 10:24:49 +00:00
Iain Lane
d2ead59d74 data: Lower TimeoutStartSec in systemd units
If there's a stubborn process in our cgroup, we shouldn't hang around
waiting for the default (30 seconds) before the session closes. We've
logged out, SIGTERMed and the thing is refusing to go away, let's not
make people hang around for ages.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/699
2019-09-12 08:16:10 +00:00
Emin Tufan Çetin
2f4fcc59a1 Update Turkish translation 2019-09-12 04:26:07 +00:00
Florian Müllner
ba6dbb228d workspace: Minor clarification
Code and comment were based on the old get_input_rect() and get_outer_rect()
method names that were changed to the more appropriate get_buffer_rect() and
get_frame_rect() a long time ago.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/713
2019-09-11 23:32:16 +00:00
Florian Müllner
60e386048b backgroundMenu: Animate menu opening
The animation was removed in commit 6a00a504d4 for consistency with
other menus. However commit a9b12d5d73 then *added* animations to
those just four minutes later.

So add back the original animations for consistency, both with menu
closing and with other menus.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1595
2019-09-11 23:25:21 +00:00
Christian Kirbach
c2904fa14d Update German translation 2019-09-11 21:14:44 +00:00
Florian Müllner
dfdb139d9c workspaceThumbnails: Replace loops with Array.find()
This is much more idiomatic and concise than iterating over
thumbnails until we find the one we are looking for.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/710
2019-09-11 20:59:31 +00:00
Florian Müllner
ce63d21dcc overview: Minor cleanup
Safe one indentation level by combining conditions.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/710
2019-09-11 20:59:31 +00:00
Florian Müllner
1da9937453 workspace: Use operator shorthand
Shorthands like a += b are well-established, so prefer them over the
less concise a = a + b.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/710
2019-09-11 20:59:31 +00:00
Florian Müllner
9f11fbad16 jsParse: Disambiguate regex
Make it clear that /= is part of a regex and not an operator shorthand.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/710
2019-09-11 20:59:31 +00:00
Florian Müllner
f54e7804c5 workspace: Don't initialize variables to undefined
The declaration itself already does this implicitly.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/710
2019-09-11 20:59:31 +00:00
Florian Müllner
7db5f8b28e calendar: Use template strings over concatenation
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/710
2019-09-11 20:59:31 +00:00
Florian Müllner
743ce23fbc util: Separate statements with linebreak
Our eslint rules will soon forbid more than one statement per line.
We already follow that rule except for one lone offender; fix that.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/710
2019-09-11 20:59:31 +00:00
Florian Müllner
a3267be192 network: Don't omit parens when constructing
While it is legal to omit parentheses when invoking a constructor
with no arguments, we generally avoid that in our coding style.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/710
2019-09-11 20:59:31 +00:00
Florian Müllner
4ad2523877 messageTray: Add missing linebreak
Methods should be separated by an empty lines, even when short.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/710
2019-09-11 20:59:31 +00:00
Florian Müllner
4bfee3a8ca ibusManager: Wrap line before dot
When chaining function calls, our coding style asks for the dot to
start the new line, not end the preceding one.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/710
2019-09-11 20:59:31 +00:00
Florian Müllner
fc964f975a kbdA11yDialog: Avoid unnecessary ternary operators
A condition is already boolean, there's no point in explicitly
turning it into true/false.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/710
2019-09-11 20:59:31 +00:00
Florian Müllner
52f85c9465 system: Properly separate statements
Whoops, that's some typo that sneaked into commit 9c3b3320f8 ...

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/710
2019-09-11 20:59:31 +00:00
Florian Müllner
691610f23c lookingGlass: Fix misleading typeof use
typeof is an operator, not a function. Putting unneeded parentheses
around the expression obfuscates that.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/710
2019-09-11 20:59:31 +00:00
Florian Müllner
b6a2b2b8a5 cleanup: Remove left-over imports
Unfortunately this slipped through our CI tests, as the script
filters errors by lines that are modified by the corresponding
merge request.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/710
2019-09-11 20:59:31 +00:00
Daniel Șerbănescu
1ad8a2fcf6 Update Romanian translation 2019-09-11 20:13:21 +00:00
Balázs Úr
7ce08845f1 Update Hungarian translation 2019-09-11 20:11:51 +00:00
Aurimas Černius
d469250130 Updated Lithuanian translation 2019-09-11 22:37:29 +03:00
Jordi Mas
7fd5c47e06 Update Catalan translation 2019-09-11 21:21:08 +02:00
Kukuh Syafaat
8704b1004e Update Indonesian translation 2019-09-11 18:31:47 +00:00
Piotr Drąg
65a9fb8c01 Update Polish translation 2019-09-11 19:22:04 +02:00
Florian Müllner
25a7a8006a gnome-extensions: Translate help command
The quotes and COMMAND string aren't part of the syntax, so they
should be translated.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1538
2019-09-11 17:09:30 +00:00
Marek Černocký
6fe1d3248a Updated Czech translation 2019-09-11 18:01:13 +02:00
Jonas Dreßler
13f97532bf overviewControls: Remove slide transitions before setting value manually
Remove transitions of the `slide-x` property of the layout manager
before we set the property to a fixed value, otherwise the transitions
might still be running and change the value after we set it.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/707
2019-09-11 11:39:44 +00:00
Anders Jonsson
1acee3d702 Update Swedish translation 2019-09-10 23:53:06 +00:00
Marco Trevisan (Treviño)
1d17404471 selectArea: Ignore motion events once we got a result
When selecting an area for screenshot we monitor the events while we've valid
coordinates in order to redraw the rubber band.
However, we don't stop ignore the motion events after button release and so
while animating. This might cause an unwanted effect if moving the mouse away
during fade out that is way more visible slowing-down the animations.

To fix this ignore any motion event once we've set the results.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/711
2019-09-10 22:08:25 +02:00
Florian Müllner
48b860b69f ci: Turn on -Werror
Now that all compiler warnings are fixed, let's try to keep it that
way by making warnings fatal during CI.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/709
2019-09-10 17:51:02 +00:00
Florian Müllner
a030c54661 shell: Replace another GTimeVal
This slipped through in commit 9b7f228f8e.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/709
2019-09-10 17:51:02 +00:00
Florian Müllner
dcf7bae6c7 calendar-server: Temporarily ignore all deprecations in eds includes
Evolution draws in libsoup, which exposes deprecated types in its
API. While its headers have been fixed to guard the affected symbols,
those fixes aren't in our CI images yet.

Until we get a fixed version, just disable all deprecation warnings
during the include in order to not trip over "foreign" bugs.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/709
2019-09-10 17:51:02 +00:00
Florian Müllner
d0ace108e5 calendar-server: Disable deprecated e-d-s API
We aren't using any deprecated evolution-data-server API, so we can
turn it off; this avoids compiler warnings for glib deprecations
used by those functions, which makes it harder to spot warnings for
our own code base.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/709
2019-09-10 17:51:02 +00:00
Florian Müllner
32d5744014 build: Exclude private headers from GIR
They contain API that is explicitly not meant to be used externally
and - as it uses the "wrong" namespace due to the _ prefix - doesn't
end up in the introspection data anyway.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/709
2019-09-10 17:51:02 +00:00
Florian Müllner
d16094774b build: Remove st-private.h from "public" headers
It is currently listed both as public and private header, which is
clearly bonkers. As the name implies, the latter is correct ...

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/709
2019-09-10 17:51:02 +00:00
Piotr Drąg
ac664ba321 Update Polish translation 2019-09-10 17:58:11 +02:00
Florian Müllner
0888a9bffd environment: Skip property animations while hidden
For implicit animations, Clutter will skip any transitions while
an actor is unmapped, and just set the property directly. Do the
same in our ease_property() convencience method.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/708
2019-09-10 14:41:26 +00:00
Daniel Mustieles
5e82d72424 Updated Spanish translation 2019-09-10 15:56:03 +02:00
Jiri Grönroos
2513835e89 Update Finnish translation 2019-09-10 11:11:21 +00:00
Kukuh Syafaat
98b70ef00f Update Indonesian translation 2019-09-10 07:12:48 +00:00
Daniel Șerbănescu
ae11381b88 Update Romanian translation 2019-09-10 06:48:29 +00:00
Milo Casagrande
e9596f2775 Update Italian translation 2019-09-10 06:47:05 +00:00
Balázs Úr
8adbc8010a Update Hungarian translation 2019-09-10 04:40:55 +00:00
Fran Dieguez
76fb559964 Update Galician translation 2019-09-09 22:45:51 +00:00
Rafael Fontenelle
1bc1b4d9d8 Update Brazilian Portuguese translation 2019-09-09 22:44:55 +00:00
Georges Basile Stavracas Neto
dfc0ef56f6 appDisplay: Allow editing folder names
Add a new popover with a regular entry + button to rename
folders. The layout is similar to other GNOME applications.

The popup is implemented as a PopupMenu subclass, leaving
the grab management to PopupMenuManager.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/675
2019-09-09 22:15:49 +02:00
Jonas Dreßler
1e68e78d8e extensionPrefs: Block notify::active signal handler while updating state
We disable and enable extensions inside the `notify::active` signal
handler, but we shouldn't do that in case the change didn't come from
the user but because something else changed the state of the extension.

This causes an issue when the extensionPrefs window is open and the
session gets locked: The extensions are temporarily disabled by the
shell, extensionPrefs updates its switches on the state change and adds
those extensions to the `disabled-extensions` gsettings key inside the
signal handler. Now when the session is unlocked again, the extensions
won't be enabled again since they're forced-disabled.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/705
2019-09-09 19:50:31 +00:00
Jonas Dreßler
17fa5a2db4 extensionPrefs: Connect to ExtensionStateChanged after building UI
Since we manipulate parts of the UI (like the switch) in this signal
handler, let's only connect it after setting up the UI.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/705
2019-09-09 19:50:31 +00:00
Jonas Dreßler
004a5e1042 iconGrid: Queue a relayout after child opacity changes
We're using a vfunc override for `get_paint_volume` to exclude children
with an opacity of 0 from the paint volume and thus decrease the size of
the area we need to paint.

Now if the paint volume is requested during the spring animation (the
real icons are hidden using an opacity of 0 and clones are used for the
animation), `get_paint_volume` returns a paint volume with a height of
0. After that, the spring animation finishes and the icon-opacities are
set to 255 in `_resetAnimationActors`, and since we cache paint volumes
and there's no reason for Clutter to assume it got invalid, the icons
end up not being painted.

Fix this by queuing a relayout of the grid when the opacity of a child
is changed from or to 0, which manually invalidates the paint volume.

The reason why this is not an issue with the paginated icon grid
(all-apps view) is probably because StScrollView invalidates the paint
volume a lot more often than regular containers.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1502
2019-09-09 19:39:28 +00:00
Jonas Dreßler
4915a9e8e4 iconGrid: Delete private child property when removing child
Delete a private property we set when the child got added to make sure
the reference is deleted after the child got removed from the grid.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/704
2019-09-09 19:39:28 +00:00
Marco Trevisan (Treviño)
8a7e44ccf0 extensionSystem: Use logError to record extension errors with stack trace
Extensions might emit JS errors explicitly or implicitly, however GNOME
Shell doesn't present any stack trace for those making them quite hard
to debug.

Make this easier by logging errors with logError() whichs includes the
stack dump.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/700
2019-09-09 19:28:19 +00:00
Marco Trevisan (Treviño)
a497afe695 system: Track buttonGroup visibility using a group of actors
Cleanup the visibility check on actions by using an array of actors to
track, so that we don't repeat the same variables multiple times.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/700
2019-09-09 19:28:19 +00:00
Marco Trevisan (Treviño)
15c252c11d popupMenu: Remove extra parameter on boolean ParamSpec initialization
PopupBaseMenuItem properties were initialized using wrong param spec
signature, fix this by removing the extra parameter.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/700
2019-09-09 19:28:18 +00:00
Marco Trevisan (Treviño)
27da3ed1fe calendar: Use binding for clearButton visibility
When the calendar PlaceHolder is visible, the ClearButton shouldn't
be. Instead of setting the visibility explicitly, we can use a property
binding.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/700
2019-09-09 19:28:18 +00:00
Marco Trevisan (Treviño)
8656102182 workspacesDisplay: Disconnect MetaLater and parent signals on destroy
When the WorkspacesDisplay actor is destroyed we should remove the
ongoing later and parent widget connections to avoid accessing an
invalid object on callback.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/700
2019-09-09 19:28:18 +00:00
Marco Trevisan (Treviño)
24d3744cb9 workspace: Don't use clones' delegate to check children
The WindowClones are now themselves actors, so we can just check for
their type instead of checking for the delegate.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/700
2019-09-09 19:28:18 +00:00
Marco Trevisan (Treviño)
031913b9df workspace: Use Workspace prefix for WindowClone class
We have both Workspace's WindowClone and workspaceThumbnail's WindowClone,
so better to be clear about them using a class prefix.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/700
2019-09-09 19:28:18 +00:00
Marco Trevisan (Treviño)
e53443daf9 workspace: Remove Long-press later with the actor
Ensure that the long-press later is removed with the actor, otherwise
it will try to use invalidated data.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/700
2019-09-09 19:28:18 +00:00
Marco Trevisan (Treviño)
06317f4f6a status/keyboard: Make Input source types var
These are used by keyboard so they need to be readable outside the
status.keyboard module.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/700
2019-09-09 19:28:18 +00:00
Marco Trevisan (Treviño)
c69e195441 search: Remove updateSearch later on destruction
When the GridSearchBase actor is destroyed we should remove the
ongoing later that might try to access to invalid resources.

To do this, add an _onDestroy() callback function to SearchResultsBase
and override it in GridSearchBase.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/700
2019-09-09 19:28:18 +00:00
Marco Trevisan (Treviño)
a53b48de4c locatePointer: Bind ripples creation to settings
Don't create ripples if locate pointer is not enabled, and bind
creation to the relative desktop interface settings key.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/700
2019-09-09 19:28:18 +00:00
Marco Trevisan (Treviño)
eca98aee42 ripples: Add destroy() method and remove them when unneeded
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/700
2019-09-09 19:28:18 +00:00
Marco Trevisan (Treviño)
ea5aaa8ab2 realmd: Set login format to null on start and update if invalid
We were checking an undefined property but that would lead to a a warning.
Instead we can consider the login format unset until is null, and in case
update it.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/700
2019-09-09 19:28:18 +00:00
Marco Trevisan (Treviño)
72566eda43 messageTray: Remove unused source object parameter
This is has been added in commit b150869b5 but is never used

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/700
2019-09-09 19:28:18 +00:00
Marco Trevisan (Treviño)
7a4f9a5ff3 keyboard: Treat menu items as actors
This is a leftover of GNOME/gnome-shell!499, since menu items are all
actors now, we can just avoid using the actor property when adding an
action item.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/700
2019-09-09 19:28:18 +00:00
Marco Trevisan (Treviño)
ba23fd9989 lookingGlass: Throw a clearer error on referencing invalid result index
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/700
2019-09-09 19:28:18 +00:00
Marco Trevisan (Treviño)
c101196f5b lightbox: Use common ease parameters and avoid similar codepaths
Easing calls on show/hide functions have some parameters in common whether the
radial effect is enabled or not.

So instead of doing repeated calls with similar parameters, initialize common
values in params objects.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/700
2019-09-09 19:28:18 +00:00
Marco Trevisan (Treviño)
1687a5451e altTab: use AltTab prefix on AppIcon class
There's an AppIcon class on appDisplay, so it won't be easy to discern
the one we're going to add in altTab.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/700
2019-09-09 19:28:18 +00:00
Marco Trevisan (Treviño)
ea4d5f89eb animation: Stop the animation before removing all the children
If the resource scale or the scale factor changes while the animation
is playing, we need to stop the animation and start it again once the
texture is loaded, as the idle might try to access an invalidated
animation child otherwise.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/700
2019-09-09 19:28:18 +00:00
Florian Müllner
9e388ebcfd Bump version to 3.34.0
Update NEWS.
2019-09-09 19:21:11 +00:00
Carlos Garnacho
8d9cae45f9 st-clipboard: Add trailing 0 to pasted text
We translate the raw stream content far too directly into a char*,
it notably forgets that the stream does not have nul-ended data,
this means we are potentially adding garbage after the pasted content.

Tentatively fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1570
2019-09-09 19:04:31 +00:00
Claude Paroz
406d0900a7 Update French translation 2019-09-08 15:44:41 +00:00
Balázs Meskó
cf611d2be8 Update Hungarian translation 2019-09-07 18:25:17 +00:00
Dušan Kazik
7875fc831b Update Slovak translation 2019-09-07 14:20:05 +00:00
Sabri Ünal
44bca36385 Update Turkish translation 2019-09-07 07:16:54 +00:00
Carmen Bianca BAKKER
e2c3198627 Update Esperanto translation 2019-09-06 23:22:30 +00:00
Efstathios Iosifidis
8b549f3d5b Update Greek translation 2019-09-06 21:05:07 +00:00
Ryuta Fujii
a0e3c342a6 Update Japanese translation 2019-09-06 13:58:48 +00:00
Ryuta Fujii
a80331dbcf Update Japanese translation 2019-09-06 13:52:41 +00:00
Milo Casagrande
0068dab001 Update Italian translation 2019-09-06 08:41:20 +00:00
Tom Tryfonidis
7d42990462 Update Greek translation 2019-09-05 16:30:45 +00:00
Iain Lane
e6dec7a9dd volume: Ignore slider changes we initiated ourselves
Commit 21e14bd46f fixed this for the
brightness slider, but we have the same problem for volume too. When the
volume is muted - for example in Settings or via a media key, we update
the slider to '0' to indicate this visually. But we also actually invoke
the slider's callback to *set* the volume to zero. That means that the
previous level is overwritten so it can't be restored when unmuting.

The fix is the same - when we update the slider internally ourselves,
don't call the signal handler.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1557
2019-09-05 11:30:33 +01:00
Carlos Garnacho
8adfc5b106 windowManager: Handle starting/stopping of X11 services
We now do 2 things along Xwayland startup/shutdown:
- Start or stop the gnome-session-x11-services target, that will
  pull all X11 related services that the session might depend on.
- As we start ibus-daemon manually, trigger a restart in order to
  toggle the XIM daemon on and off along with Xwayland presence.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/680
2019-09-05 07:42:46 +00:00
Carlos Garnacho
8be95b5785 ibusManager: Add call to restart the ibus daemon
We may need to restart it with different arguments, so make it
possible to do that. Also, avoid to just restart it on _clear(),
this is now most likely through our --replace call than it is
through ibus-daemon eg. dying, avoids some noise in logs as
there is already an ongoing ibus-daemon.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/680
2019-09-05 07:42:46 +00:00
Carlos Garnacho
9194de8460 shell: Add helpers to start/stop systemd units
These just send the respective DBus message to the systemd user service.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/680
2019-09-05 07:42:46 +00:00
Florian Müllner
6dccbc5a90 Bump version to 3.33.92
Update NEWS.
2019-09-04 20:54:34 +02:00
Rafael Fontenelle
efba1e83c7 Update Brazilian Portuguese translation 2019-09-03 19:36:12 +00:00
Goran Vidović
d1442765a6 Update Croatian translation 2019-09-03 15:48:10 +00:00
Kukuh Syafaat
72e5caf6e1 Update Indonesian translation 2019-09-03 12:19:11 +00:00
Florian Müllner
3768b6b701 keyboard: Fix EmojiSelection:delta range
The setter clamps the values to the range (-width, width), so we
must not limit the property to positive values.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/698
2019-09-03 03:20:17 +02:00
Will Thompson
e5cde4700f notificationDaemon: Catch exceptions while loading notifications
An Endless OS system was found in the wild with a malformed
.local/share/gnome-shell/notifications which causes _loadNotifications()
to raise an exception. This exception was not previously handled and
bubbles all the way out to gnome_shell_plugin_start(), whereupon the
shell exit(1)s. The user could no longer log into their computer.

Handle exceptions from _loadNotifications(), log them, and attempt to
continue. Ensure that this._isLoading is set to 'false' even on error,
so that future calls to _saveNotifications() can overwrite the (corrupt)
state file.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1552
2019-09-03 01:00:50 +00:00
Will Thompson
a207f67f73 global: Don't trust persistent/runtime state data
An Endless OS system was found in the wild with a malformed
.local/share/gnome-shell/notifications. When deserialized in Python,
after passing trusted=True to g_variant_new_from_bytes(), the first
element of the first struct in the array looks like this:

    In [41]: _38.get_child_value(0).get_child_value(0)
    Out[41]: GLib.Variant('s', '\Uffffffff\Uffffffff\Uffffffff\Uffffffff\Uffffffff')

When deserialised in GJS, we get:

    gjs> v.get_child_value(0).get_child_value(0)
    [object variant of type "s"]
    gjs> v.get_child_value(0).get_child_value(0).get_string()
    typein:43:1 malformed UTF-8 character sequence at offset 0
      @typein:43:1
      @<stdin>:1:34

While g_variant_new_from_bytes() doesn't have much to say about its
'trusted' parameter, g_variant_new_from_data() does:

> If data is trusted to be serialised data in normal form then trusted
> should be TRUE. This applies to serialised data created within this
> process or read from a trusted location on the disk (such as a file
> installed in /usr/lib alongside your application). You should set
> trusted to FALSE if data is read from the network, a file in the
> user's home directory, etc.

Persistent state is read from the user's home directory, so it should
not be trusted. With trusted=False, the string value above comes out as
"".

I don't have an explanation for how this file ended up being malformed.
I also don't have an explanation for when this started crashing: my
guess is that recent GJS became stricter about validating UTF-8 but I
could be wrong!

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1552
2019-09-03 01:00:50 +00:00
Jonas Ådahl
b73aace476 shell: Get cairo surface via window actor
Instead of going via the MetaShapedTexture to get the cairo surface, get
it from the window actor. The window actor can then handle this in a way
that makes it include potential subsurfaces.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/692
2019-09-02 16:53:55 +00:00
Marek Černocký
346d37ecbb Updated Czech translation 2019-09-02 08:53:00 +02:00
Daniel Rusek
7bb29817f7 Update Czech translation 2019-09-01 21:21:10 +00:00
Aurimas Černius
92b92a2e0a Updated Lithuanian translation 2019-09-01 22:32:34 +03:00
Jordi Mas
8e79f9f2dc Update Catalan translation 2019-09-01 16:37:08 +02:00
Jonas Dreßler
05b345cc92 endSessionDialog: Initialize Polkit permission asynchronously
The updatesPermission is currently initialized synchronously, which
blocks the Mainloop for quite some time and therefore slows down startup
of the shell, let's do it asynchronously instead.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/689
2019-09-01 12:45:49 +02:00
Changwoo Ryu
89f9925208 Update Korean translation 2019-09-01 09:00:28 +00:00
A S Alam
fcc1d7beff Update Punjabi translation 2019-08-31 13:45:30 +00:00
Ryuta Fujii
f226398c7c Update Japanese translation 2019-08-29 11:49:39 +00:00
Ryuta Fujii
890ac9ff38 Update Japanese translation 2019-08-29 11:36:39 +00:00
Pawan Chitrakar
6a027cd566 Update Nepali translation 2019-08-29 08:32:16 +00:00
Fabio Tomat
1dc971d760 Update Friulian translation 2019-08-28 09:19:25 +00:00
Tim Sabsch
dcf0bf0bb1 Update German translation 2019-08-27 21:24:29 +00:00
Benjamin Berg
cf156b469c Notify service startup to systemd
Using the bus name to notify service startup to systemd has some
disadvantages. The main one being that systemd will consider a
gnome-shell restart (Alt+F2 r) a service failure and restart the shell,
cleaning up all its children (i.e. user launched applications). In the
future the shell should launch applications in their own transient unit
so that a service restart does not affect applications.

Another potential issue is that we must never load
gnome-shell-wayland.service and gnome-shell-x11.service at the same
time, as systemd does not like two services providing the same bus
name.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1496

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/690
2019-08-27 17:42:32 +00:00
Florian Müllner
da6c154ceb ci: Set XDG_RUNTIME_DIR for tests
Mutter's backend code depends on it being set.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/691
2019-08-27 15:30:51 +03:00
Florian Müllner
957fa910b3 st: Adjust theme test
Mutter's Clutter fork can no longer be initialized separatedly, as
its backend now draws from MetaBackend. Adjust the code to use the
newly added test initialization function instead to get the test
back up.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/691
2019-08-27 15:30:51 +03:00
Florian Müllner
8ac5be95d3 tests: Don't initialize Clutter
Clutter's backend code depends on MetaBackend now, which makes it
impossible to initialize without resorting to private mutter API.

Luckily we only need Clutter for interactive tests which are broken
anyway, as Clutter.main() and friends were removed a while ago.

So for now, get at least unit tests working again by simply the
unnecessary Clutter initialization.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/691
2019-08-27 15:30:51 +03:00
Ryuta Fujii
c27bd62106 Update Japanese translation 2019-08-27 11:26:32 +00:00
Ryuta Fujii
480e8b8842 Update Japanese translation 2019-08-27 10:45:55 +00:00
Florian Müllner
c6580421b3 shell-extension-tool: Fix typo
Spotted by Amr Ibrahim.
2019-08-27 12:16:27 +03:00
Jonas Dreßler
c2f5331187 pointerA11yTimeout: Create new PieTimer object for each timeout
Since we now put a short timeout in before the start of the actual pie
timer we don't start the timer as often as we used to. This allows us to
create a new PieTimer object each time a timeout is started and
therefore play a finish animation independently of other (new) timeouts.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/688
2019-08-27 08:03:49 +00:00
Jonas Dreßler
5d0c403f1d pointerA11yTimeout: Add a zoom out+fade animation on success
We currently don't indicate success of the pie timer at all, let's do
this by animating the circle's scale and fading it out at the same time.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/688
2019-08-27 08:03:49 +00:00
Jonas Dreßler
20fc4b4490 pointerA11yTimeout: Draw a clean circle if the pie is finished
If the circle is complete and the pie timeout finished, we don't need
the lines to the center point indicating the ends of the pie anymore.
We just draw a clean circle instead, which allows for a zoom-out and
fade animation of the circle when we're done.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/688
2019-08-27 08:03:49 +00:00
Jonas Dreßler
ea3f906f38 pointerA11yTimeout: Don't stop the pie timer if it finished successfully
If the pie timeout has finished successfully there's no need to cancel
the pie animation, instead we can just wait for that animation to finish
and show some visual feedback like a zoom-out animation to indicate the
click afterwards.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/688
2019-08-27 08:03:49 +00:00
Jonas Dreßler
2c4df6abcf pointerA11yTimeout: Fade the pie timer in
Fade the pie timer in using a duration of 1/4 of the timeout and a
EASE_IN_QUAD animation. This significantly reduces flickering of the pie
timer while moving the cursor and makes the timer less distracting.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/688
2019-08-27 08:03:49 +00:00
Jonas Dreßler
67a0b3b98e pointerA11yTimeout: Remove unused properties
Those properties were overlooked in 5cb02c1c, remove them now.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/688
2019-08-27 08:03:49 +00:00
Zander Brown
c366e9f3ca Update British English translation 2019-08-26 21:21:58 +00:00
Matej Urbančič
812a8552e5 Updated Slovenian translation 2019-08-26 22:20:53 +02:00
Fran Dieguez
069d7d6cac Update Galician translation 2019-08-26 15:22:53 +00:00
Daniel Mustieles
785a8b78b1 Updated Spanish translation 2019-08-26 12:26:03 +02:00
Jordi Mas
2d927639fe Update Catalan translation 2019-08-25 21:54:37 +02:00
Fran Dieguez
d5cad10181 Update Galician translation 2019-08-25 16:47:04 +00:00
Anders Jonsson
441a56b916 Update Swedish translation 2019-08-24 20:05:19 +00:00
Rūdolfs Mazurs
c2a6a6c939 Update Latvian translation 2019-08-24 16:21:58 +00:00
Piotr Drąg
15d1aee21a Update Polish translation 2019-08-23 18:41:05 +02:00
Asier Sarasua Garmendia
f1bc2d56f4 Update Basque translation 2019-08-23 07:18:19 +00:00
Asier Sarasua Garmendia
6f62965305 Update Basque translation 2019-08-22 21:45:29 +00:00
Jiri Grönroos
a6aa0ac74a Update Finnish translation 2019-08-22 16:36:37 +00:00
Daniel Mustieles
32ed4ee12e Updated Spanish translation 2019-08-22 15:06:34 +02:00
Danial Behzadi
33a48aecb7 Update Persian translation 2019-08-22 12:10:52 +00:00
Daniel Șerbănescu
3b63062a30 Update Romanian translation 2019-08-22 08:05:48 +00:00
Piotr Drąg
b680952197 Update POTFILES.in 2019-08-22 01:17:50 +02:00
118 changed files with 23104 additions and 11800 deletions

View File

@@ -54,7 +54,7 @@ build:
- meson mutter mutter/build --prefix=/usr -Dtests=false
- ninja -C mutter/build install
script:
- meson . build -Dbuiltype=debugoptimized -Dman=false
- meson . build -Dbuiltype=debugoptimized -Dman=false --werror
- ninja -C build
- ninja -C build install
<<: *only_default
@@ -67,6 +67,8 @@ build:
test:
image: registry.gitlab.gnome.org/gnome/mutter/master:v2
stage: test
variables:
XDG_RUNTIME_DIR: "$CI_PROJECT_DIR/runtime-dir"
before_script:
- ninja -C mutter/build install
script:

View File

@@ -66,6 +66,10 @@ create_common() {
rm $OUTPUT_FINAL.tmp
}
# Disable MR handling for now. We aren't ready to enforce
# non-legacy style just yet ...
unset CI_MERGE_REQUEST_TARGET_BRANCH_NAME
if [ "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then
git fetch $CI_MERGE_REQUEST_PROJECT_URL.git $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
branch_point=$(git merge-base HEAD FETCH_HEAD)
@@ -86,12 +90,16 @@ run_eslint LEGACY
echo Done.
create_common
if ! is_empty $OUTPUT_FINAL; then
cat $OUTPUT_FINAL
exit 1
fi
# Just show the report and succeed when not testing a MR
if [ -z "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then
cat $OUTPUT_FINAL
exit 0
fi
copy_matched_lines $OUTPUT_FINAL $LINE_CHANGES $OUTPUT_MR
copy_matched_lines $OUTPUT_REGULAR $LINE_CHANGES $OUTPUT_MR
cat $OUTPUT_MR
is_empty $OUTPUT_MR

34
NEWS
View File

@@ -1,3 +1,37 @@
3.34.0
======
* Handle startup/shutdown of misc X11 services [Carlos; !680]
* Fix sound volume mute/unmute [Iain; #1557]
* Correctly terminate pasted text [Carlos; #1570]
Contributors:
Carlos Garnacho, Iain Lane
Translators:
Tom Tryfonidis [el], Milo Casagrande [it], Ryuta Fujii [ja],
Efstathios Iosifidis [el], Carmen Bianca BAKKER [eo], Sabri Ünal [tr],
Dušan Kazik [sk], Balázs Meskó [hu], Claude Paroz [fr]
3.33.92
=======
* Animate pointer a11y pie timer [Jonas D.; !688]
* Fix restarting shell in systemd user session [Benjamin; !690]
* Misc. bug fixes and cleanups [Florian, Jonas D., Jonas Å., Will;
!691, !689, !692, #1552, !698]
Contributors:
Jonas Ådahl, Benjamin Berg, Piotr Drąg, Jonas Dreßler, Florian Müllner,
Will Thompson
Translators:
Daniel Șerbănescu [ro], Danial Behzadi [fa], Daniel Mustieles [es],
Jiri Grönroos [fi], Asier Sarasua Garmendia [eu], Piotr Drąg [pl],
Rūdolfs Mazurs [lv], Anders Jonsson [sv], Fran Dieguez [gl], Jordi Mas [ca],
Matej Urbančič [sl], Zander Brown [en_GB], Ryuta Fujii [ja], Tim Sabsch [de],
Fabio Tomat [fur], Pawan Chitrakar [ne], A S Alam [pa], Changwoo Ryu [ko],
Aurimas Černius [lt], Daniel Rusek [cs], Marek Černocký [cs],
Kukuh Syafaat [id], Goran Vidović [hr], Rafael Fontenelle [pt_BR]
3.33.91
=======
* Fix regression when adjusting brightness [Florian; #1500]

View File

@@ -17,10 +17,11 @@ Before=gnome-session-initialized.target
#Conflicts=gnome-shell-x11.service
[Service]
Type=dbus
Type=notify
ExecStart=@bindir@/gnome-shell
# Exit code 1 means we are probably *not* dealing with an extension failure
SuccessExitStatus=1
# On wayland we cannot restart
Restart=no
BusName=org.gnome.Shell
# Kill any stubborn child processes after this long
TimeoutStopSec=5

View File

@@ -21,7 +21,7 @@ StartLimitIntervalSec=15s
StartLimitBurst=3
[Service]
Type=dbus
Type=notify
ExecStart=@bindir@/gnome-shell
# Exit code 1 means we are probably *not* dealing with an extension failure
SuccessExitStatus=1
@@ -29,4 +29,5 @@ SuccessExitStatus=1
Restart=always
# Do not wait before restarting the shell
RestartSec=0ms
BusName=org.gnome.Shell
# Kill any stubborn child processes after this long
TimeoutStopSec=5

View File

@@ -611,6 +611,14 @@ StScrollBar {
}
// Rename popup
.rename-folder-popup-box {
spacing: 6px;
margin-left: 12px;
margin-right: 12px;
}
// Background menu
.background-menu { -boxpointer-gap: 4px; -arrow-rise: 0px; }

View File

@@ -567,6 +567,10 @@ class ExtensionRow extends Gtk.ListBoxRow {
this._extension = extension;
this._prefsModule = null;
this.connect('destroy', this._onDestroy.bind(this));
this._buildUI();
this._extensionStateChangedId = this._app.shellProxy.connectSignal(
'ExtensionStateChanged', (p, sender, [uuid, newState]) => {
if (this.uuid !== uuid)
@@ -574,13 +578,13 @@ class ExtensionRow extends Gtk.ListBoxRow {
this._extension = ExtensionUtils.deserializeExtension(newState);
let state = (this._extension.state == ExtensionState.ENABLED);
GObject.signal_handler_block(this._switch, this._notifyActiveId);
this._switch.state = state;
GObject.signal_handler_unblock(this._switch, this._notifyActiveId);
this._switch.sensitive = this._canToggle();
});
this.connect('destroy', this._onDestroy.bind(this));
this._buildUI();
}
get uuid() {
@@ -646,7 +650,7 @@ class ExtensionRow extends Gtk.ListBoxRow {
sensitive: this._canToggle(),
state: this._extension.state === ExtensionState.ENABLED
});
this._switch.connect('notify::active', () => {
this._notifyActiveId = this._switch.connect('notify::active', () => {
if (this._switch.active)
this._app.shellProxy.EnableExtensionRemote(this.uuid);
else

View File

@@ -21,6 +21,7 @@ var Manager = class {
'/org/freedesktop/realmd',
this._reloadRealms.bind(this));
this._realms = {};
this._loginFormat = null;
this._signalId = this._aggregateProvider.connect('g-properties-changed',
(proxy, properties) => {
@@ -86,7 +87,7 @@ var Manager = class {
}
get loginFormat() {
if (this._loginFormat !== undefined)
if (this._loginFormat)
return this._loginFormat;
this._updateLoginFormat();

View File

@@ -165,8 +165,8 @@ function versionCheck(required, current) {
let requiredArray = required[i].split('.');
if (requiredArray[0] == major &&
requiredArray[1] == minor &&
(requiredArray[2] == point ||
(requiredArray[2] == undefined && parseInt(minor) % 2 == 0)))
((requiredArray[2] === undefined && parseInt(minor) % 2 == 0) ||
requiredArray[2] == point))
return true;
}
return false;

View File

@@ -2,7 +2,6 @@
/* exported getIBusManager */
const { Gio, GLib, IBus } = imports.gi;
const Mainloop = imports.mainloop;
const Signals = imports.signals;
const IBusCandidatePopup = imports.ui.ibusCandidatePopup;
@@ -19,9 +18,9 @@ function _checkIBusVersion(requiredMajor, requiredMinor, requiredMicro) {
IBus.MICRO_VERSION >= requiredMicro))
return;
throw "Found IBus version %d.%d.%d but required is %d.%d.%d".
format(IBus.MAJOR_VERSION, IBus.MINOR_VERSION, IBus.MINOR_VERSION,
requiredMajor, requiredMinor, requiredMicro);
throw "Found IBus version %d.%d.%d but required is %d.%d.%d"
.format(IBus.MAJOR_VERSION, IBus.MINOR_VERSION, IBus.MINOR_VERSION,
requiredMajor, requiredMinor, requiredMicro);
}
function getIBusManager() {
@@ -59,15 +58,19 @@ var IBusManager = class {
this._spawn();
}
_spawn() {
_spawn(extraArgs = []) {
try {
Gio.Subprocess.new(['ibus-daemon', '--xim', '--panel', 'disable'],
Gio.SubprocessFlags.NONE);
let cmdLine = ['ibus-daemon', '--panel', 'disable', ...extraArgs];
Gio.Subprocess.new(cmdLine, Gio.SubprocessFlags.NONE);
} catch (e) {
log(`Failed to launch ibus-daemon: ${e.message}`);
}
}
restartDaemon(extraArgs = []) {
this._spawn(['-r', ...extraArgs]);
}
_clear() {
if (this._panelService)
this._panelService.destroy();
@@ -80,8 +83,6 @@ var IBusManager = class {
this._currentEngineName = null;
this.emit('ready', false);
this._spawn();
}
_onConnected() {
@@ -214,21 +215,23 @@ var IBusManager = class {
return;
if (this._preloadEnginesId != 0) {
Mainloop.source_remove(this._preloadEnginesId);
GLib.source_remove(this._preloadEnginesId);
this._preloadEnginesId = 0;
}
this._preloadEnginesId =
Mainloop.timeout_add_seconds(this._PRELOAD_ENGINES_DELAY_TIME,
() => {
this._ibus.preload_engines_async(
ids,
-1,
null,
null);
this._preloadEnginesId = 0;
return GLib.SOURCE_REMOVE;
});
GLib.timeout_add_seconds(
GLib.PRIORITY_DEFAULT,
this._PRELOAD_ENGINES_DELAY_TIME,
() => {
this._ibus.preload_engines_async(
ids,
-1,
null,
null);
this._preloadEnginesId = 0;
return GLib.SOURCE_REMOVE;
});
}
};
Signals.addSignalMethods(IBusManager.prototype);

View File

@@ -217,7 +217,7 @@ function isUnsafeExpression(str) {
prunedStr = prunedStr.replace(/[=!]==/g, ''); //replace === and !== with nothing
prunedStr = prunedStr.replace(/[=<>!]=/g, ''); //replace ==, <=, >=, != with nothing
if (prunedStr.match(/=/)) {
if (prunedStr.match(/[=]/)) {
return true;
} else if (prunedStr.match(/;/)) {
// If we contain a semicolon not inside of a quote/regex, assume we're unsafe as well

View File

@@ -5,7 +5,6 @@
const { Clutter, Gio, GLib, GObject, Shell, St } = imports.gi;
const Gettext = imports.gettext;
const Mainloop = imports.mainloop;
const Main = imports.ui.main;
const Params = imports.misc.params;
@@ -314,7 +313,8 @@ function lowerBound(array, val, cmp) {
if (array.length == 0)
return 0;
min = 0; max = array.length;
min = 0;
max = array.length;
while (min < (max - 1)) {
mid = Math.floor((min + max) / 2);
v = cmp(array[mid], val);

View File

@@ -3,7 +3,6 @@
WindowCyclerPopup */
const { Atk, Clutter, Gio, GLib, GObject, Meta, Shell, St } = imports.gi;
const Mainloop = imports.mainloop;
const Main = imports.ui.main;
const SwitcherPopup = imports.ui.switcherPopup;
@@ -292,7 +291,7 @@ class AppSwitcherPopup extends SwitcherPopup.SwitcherPopup {
if (this._thumbnails)
this._destroyThumbnails();
if (this._thumbnailTimeoutId != 0)
Mainloop.source_remove(this._thumbnailTimeoutId);
GLib.source_remove(this._thumbnailTimeoutId);
}
/**
@@ -327,7 +326,7 @@ class AppSwitcherPopup extends SwitcherPopup.SwitcherPopup {
}
if (this._thumbnailTimeoutId != 0) {
Mainloop.source_remove(this._thumbnailTimeoutId);
GLib.source_remove(this._thumbnailTimeoutId);
this._thumbnailTimeoutId = 0;
}
@@ -344,7 +343,8 @@ class AppSwitcherPopup extends SwitcherPopup.SwitcherPopup {
this._thumbnails.highlight(window, forceAppFocus);
} else if (this._items[this._selectedIndex].cachedWindows.length > 1 &&
!forceAppFocus) {
this._thumbnailTimeoutId = Mainloop.timeout_add (
this._thumbnailTimeoutId = GLib.timeout_add(
GLib.PRIORITY_DEFAULT,
THUMBNAIL_POPUP_TIME,
this._timeoutPopupThumbnails.bind(this));
GLib.Source.set_name_by_id(this._thumbnailTimeoutId, '[gnome-shell] this._timeoutPopupThumbnails');
@@ -648,8 +648,9 @@ class WindowCyclerPopup extends CyclerPopup {
}
});
var AppIcon = GObject.registerClass(
class AppIcon extends St.BoxLayout {
var AppIcon = GObject.registerClass({
GTypeName: 'AltTab_AppIcon'
}, class AppIcon extends St.BoxLayout {
_init(app) {
super._init({ style_class: 'alt-tab-app',
vertical: true });
@@ -711,7 +712,7 @@ class AppSwitcher extends SwitcherPopup.SwitcherList {
_onDestroy() {
if (this._mouseTimeOutId != 0)
Mainloop.source_remove(this._mouseTimeOutId);
GLib.source_remove(this._mouseTimeOutId);
this.icons.forEach(icon => {
icon.app.disconnect(icon._stateChangedId);
@@ -790,14 +791,16 @@ class AppSwitcher extends SwitcherPopup.SwitcherList {
// activation when the thumbnail list is open
_onItemEnter(index) {
if (this._mouseTimeOutId != 0)
Mainloop.source_remove(this._mouseTimeOutId);
GLib.source_remove(this._mouseTimeOutId);
if (this._altTabPopup.thumbnailsVisible) {
this._mouseTimeOutId = Mainloop.timeout_add(APP_ICON_HOVER_TIMEOUT,
() => {
this._enterItem(index);
this._mouseTimeOutId = 0;
return GLib.SOURCE_REMOVE;
});
this._mouseTimeOutId = GLib.timeout_add(
GLib.PRIORITY_DEFAULT,
APP_ICON_HOVER_TIMEOUT,
() => {
this._enterItem(index);
this._mouseTimeOutId = 0;
return GLib.SOURCE_REMOVE;
});
GLib.Source.set_name_by_id(this._mouseTimeOutId, '[gnome-shell] this._enterItem');
} else {
this._itemEntered(index);

View File

@@ -2,7 +2,6 @@
/* exported Animation, AnimatedIcon, Spinner */
const { Clutter, GLib, Gio, St } = imports.gi;
const Mainloop = imports.mainloop;
var ANIMATED_ICON_UPDATE_TIMEOUT = 16;
var SPINNER_ANIMATION_TIME = 300;
@@ -45,7 +44,7 @@ var Animation = class {
stop() {
if (this._timeoutId > 0) {
Mainloop.source_remove(this._timeoutId);
GLib.source_remove(this._timeoutId);
this._timeoutId = 0;
}
@@ -54,12 +53,19 @@ var Animation = class {
_loadFile(file, width, height) {
let [validResourceScale, resourceScale] = this.actor.get_resource_scale();
let wasPlaying = this._isPlaying;
if (this._isPlaying)
this.stop();
this._isLoaded = false;
this.actor.destroy_all_children();
if (!validResourceScale)
if (!validResourceScale) {
if (wasPlaying)
this.play();
return;
}
let textureCache = St.TextureCache.get_default();
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
@@ -67,6 +73,9 @@ var Animation = class {
scaleFactor, resourceScale,
this._animationsLoaded.bind(this));
this.actor.set_child(this._animations);
if (wasPlaying)
this.play();
}
_showFrame(frame) {

View File

@@ -3,7 +3,6 @@
const { Clutter, Gio, GLib, GObject, Meta, Shell, St } = imports.gi;
const Signals = imports.signals;
const Mainloop = imports.mainloop;
const AppFavorites = imports.ui.appFavorites;
const BoxPointer = imports.ui.boxpointer;
@@ -1159,11 +1158,10 @@ var AppSearchProvider = class AppSearchProvider {
if (id.endsWith('.desktop')) {
let app = this._appSys.lookup_app(id);
metas.push({ 'id': app.get_id(),
'name': app.get_name(),
'createIcon'(size) {
return app.create_icon_texture(size);
}
metas.push({
id: app.get_id(),
name: app.get_name(),
createIcon: size => app.create_icon_texture(size),
});
} else {
let name = this._systemActions.getName(id);
@@ -1438,6 +1436,13 @@ var FolderIcon = class FolderIcon {
this._itemDragEndId = Main.overview.connect(
'item-drag-end', this._onDragEnd.bind(this));
this._popupTimeoutId = 0;
this.actor.connect('leave-event', this._onLeaveEvent.bind(this));
this.actor.connect('button-press-event', this._onButtonPress.bind(this));
this.actor.connect('touch-event', this._onTouchEvent.bind(this));
this.actor.connect('popup-menu', this._popupRenamePopup.bind(this));
this.actor.connect('clicked', this.open.bind(this));
this.actor.connect('destroy', this.onDestroy.bind(this));
this.actor.connect('notify::mapped', () => {
@@ -1462,9 +1467,12 @@ var FolderIcon = class FolderIcon {
if (this._popup)
this._popup.actor.destroy();
this._removeMenuTimeout();
}
open() {
this._removeMenuTimeout();
this._ensurePopup();
this.view.actor.vscroll.adjustment.value = 0;
this._openSpaceForPopup();
@@ -1627,6 +1635,76 @@ var FolderIcon = class FolderIcon {
this._popupInvalidated = false;
}
_removeMenuTimeout() {
if (this._popupTimeoutId > 0) {
GLib.source_remove(this._popupTimeoutId);
this._popupTimeoutId = 0;
}
}
_setPopupTimeout() {
this._removeMenuTimeout();
this._popupTimeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, MENU_POPUP_TIMEOUT, () => {
this._popupTimeoutId = 0;
this._popupRenamePopup();
return GLib.SOURCE_REMOVE;
});
GLib.Source.set_name_by_id(this._popupTimeoutId,
'[gnome-shell] this._popupRenamePopup');
}
_onLeaveEvent(_actor, _event) {
this.actor.fake_release();
this._removeMenuTimeout();
}
_onButtonPress(_actor, event) {
let button = event.get_button();
if (button == 1) {
this._setPopupTimeout();
} else if (button == 3) {
this._popupRenamePopup();
return Clutter.EVENT_STOP;
}
return Clutter.EVENT_PROPAGATE;
}
_onTouchEvent(actor, event) {
if (event.type() == Clutter.EventType.TOUCH_BEGIN)
this._setPopupTimeout();
return Clutter.EVENT_PROPAGATE;
}
_popupRenamePopup() {
this._removeMenuTimeout();
this.actor.fake_release();
if (!this._menu) {
this._menuManager = new PopupMenu.PopupMenuManager(this.actor);
this._menu = new RenameFolderMenu(this, this._folder);
this._menuManager.addMenu(this._menu);
this._menu.connect('open-state-changed', (menu, isPoppedUp) => {
if (!isPoppedUp)
this.actor.sync_hover();
});
let id = Main.overview.connect('hiding', () => {
this._menu.close();
});
this.actor.connect('destroy', () => {
Main.overview.disconnect(id);
});
this._menuManager.addMenu(this._menu);
}
this.actor.set_hover(true);
this._menu.popup();
this._menuManager.ignoreRelease();
}
adaptToSize(width, height) {
this._parentAvailableWidth = width;
this._parentAvailableHeight = height;
@@ -1637,6 +1715,90 @@ var FolderIcon = class FolderIcon {
};
Signals.addSignalMethods(FolderIcon.prototype);
var RenameFolderMenu = class RenameFolderMenu extends PopupMenu.PopupMenu {
constructor(source, folder) {
super(source.actor, 0.5, St.Side.BOTTOM);
this._source = source;
this._folder = folder;
// We want to keep the item hovered while the menu is up
this.blockSourceEvents = true;
let box = new St.BoxLayout({ style_class: 'rename-folder-popup-box' });
this.box.add_child(box);
// Entry
this._entry = new St.Entry({
x_expand: true,
width: 200,
});
box.add_child(this._entry);
this._entry.clutter_text.connect('notify::text',
this._validate.bind(this));
this._entry.clutter_text.connect('activate',
this._updateFolderName.bind(this));
// Rename button
this._button = new St.Button({
style_class: 'button',
reactive: true,
button_mask: St.ButtonMask.ONE | St.ButtonMask.TWO,
can_focus: true,
label: _("Rename"),
});
box.add_child(this._button);
this._button.connect('clicked', this._updateFolderName.bind(this));
// Chain our visibility and lifecycle to that of the source
this._sourceMappedId = source.actor.connect('notify::mapped', () => {
if (!source.actor.mapped)
this.close();
});
source.actor.connect('destroy', () => {
source.actor.disconnect(this._sourceMappedId);
this.destroy();
});
Main.uiGroup.add_actor(this.actor);
}
popup() {
let folderName = _getFolderName(this._folder);
this._entry.text = folderName;
this._entry.clutter_text.set_selection(0, folderName.length);
this.open();
}
_isValidFolderName() {
let folderName = _getFolderName(this._folder);
let newFolderName = this._entry.text.trim();
return newFolderName.length > 0 && newFolderName != folderName;
}
_validate() {
let isValid = this._isValidFolderName();
this._button.reactive = isValid;
}
_updateFolderName() {
if (!this._isValidFolderName())
return;
let newFolderName = this._entry.text.trim();
this._folder.set_string('name', newFolderName);
this._folder.set_boolean('translate', false);
this.close();
}
};
Signals.addSignalMethods(RenameFolderMenu.prototype);
var AppFolderPopup = class AppFolderPopup {
constructor(source, side) {
this._source = source;
@@ -1912,7 +2074,7 @@ var AppIcon = class AppIcon {
_removeMenuTimeout() {
if (this._menuTimeoutId > 0) {
Mainloop.source_remove(this._menuTimeoutId);
GLib.source_remove(this._menuTimeoutId);
this._menuTimeoutId = 0;
}
}
@@ -1926,7 +2088,7 @@ var AppIcon = class AppIcon {
_setPopupTimeout() {
this._removeMenuTimeout();
this._menuTimeoutId = Mainloop.timeout_add(MENU_POPUP_TIMEOUT, () => {
this._menuTimeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, MENU_POPUP_TIMEOUT, () => {
this._menuTimeoutId = 0;
this.popupMenu();
return GLib.SOURCE_REMOVE;

View File

@@ -147,12 +147,11 @@ class AppFavorites {
let app = Shell.AppSystem.get_default().lookup_app(appId);
Main.overview.setMessage(_("%s has been added to your favorites.").format(app.get_name()),
{ forFeedback: true,
undoCallback: () => {
this._removeFavorite(appId);
}
});
let msg = _("%s has been added to your favorites.").format(app.get_name());
Main.overview.setMessage(msg, {
forFeedback: true,
undoCallback: () => this._removeFavorite(appId),
});
}
addFavorite(appId) {
@@ -181,12 +180,11 @@ class AppFavorites {
if (!this._removeFavorite(appId))
return;
Main.overview.setMessage(_("%s has been removed from your favorites.").format(app.get_name()),
{ forFeedback: true,
undoCallback: () => {
this._addFavorite(appId, pos);
}
});
let msg = _("%s has been removed from your favorites.").format(app.get_name());
Main.overview.setMessage(msg, {
forFeedback: true,
undoCallback: () => this._addFavorite(appId, pos),
});
}
}
Signals.addSignalMethods(AppFavorites.prototype);

View File

@@ -441,20 +441,21 @@ var Background = class Background {
}
_loadAnimation(file) {
this._cache.getAnimation({ file: file,
settingsSchema: this._settings.schema_id,
onLoaded: animation => {
this._animation = animation;
this._cache.getAnimation({
file: file,
settingsSchema: this._settings.schema_id,
onLoaded: animation => {
this._animation = animation;
if (!this._animation || this._cancellable.is_cancelled()) {
this._setLoaded();
return;
}
if (!this._animation || this._cancellable.is_cancelled()) {
this._setLoaded();
return;
}
this._updateAnimation();
this._watchFile(file);
}
});
this._updateAnimation();
this._watchFile(file);
}
});
}
_loadImage(file) {
@@ -748,13 +749,14 @@ var BackgroundManager = class BackgroundManager {
_createBackgroundActor() {
let background = this._backgroundSource.getBackground(this._monitorIndex);
let backgroundActor = new Meta.BackgroundActor({ meta_display: global.display,
monitor: this._monitorIndex,
background: background.background,
vignette: this._vignette,
vignette_sharpness: 0.5,
brightness: 0.5,
});
let backgroundActor = new Meta.BackgroundActor({
meta_display: global.display,
monitor: this._monitorIndex,
background: background.background,
vignette: this._vignette,
vignette_sharpness: 0.5,
brightness: 0.5,
});
this._container.add_child(backgroundActor);

View File

@@ -31,7 +31,7 @@ function addBackgroundMenu(actor, layoutManager) {
function openMenu(x, y) {
Main.layoutManager.setDummyCursorGeometry(x, y, 0, 0);
actor._backgroundMenu.open(BoxPointer.PopupAnimation.NONE);
actor._backgroundMenu.open(BoxPointer.PopupAnimation.FULL);
}
let clickAction = new Clutter.ClickAction();

View File

@@ -1,7 +1,7 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/* exported Calendar, CalendarMessageList */
const { Clutter, Gio, GLib, Shell, St } = imports.gi;
const { Clutter, Gio, GLib, GObject, Shell, St } = imports.gi;
const Signals = imports.signals;
const Main = imports.ui.main;
@@ -688,15 +688,15 @@ var EventMessage = class EventMessage extends MessageList.Message {
let rtl = Clutter.get_default_text_direction() == Clutter.TextDirection.RTL;
if (this._event.date < periodBegin && !this._event.allDay) {
if (rtl)
title = title + ELLIPSIS_CHAR;
title = `${title}${ELLIPSIS_CHAR}`;
else
title = ELLIPSIS_CHAR + title;
title = `${ELLIPSIS_CHAR}${title}`;
}
if (this._event.end > periodEnd && !this._event.allDay) {
if (rtl)
title = ELLIPSIS_CHAR + title;
title = `${ELLIPSIS_CHAR}${title}`;
else
title = title + ELLIPSIS_CHAR;
title = `${title}${ELLIPSIS_CHAR}`;
}
return title;
}
@@ -1075,6 +1075,10 @@ var CalendarMessageList = class CalendarMessageList {
});
box.add_actor(this._clearButton);
this._placeholder.actor.bind_property('visible',
this._clearButton, 'visible',
GObject.BindingFlags.INVERT_BOOLEAN);
this._sectionList = new St.BoxLayout({ style_class: 'message-list-sections',
vertical: true,
y_expand: true,
@@ -1145,7 +1149,6 @@ var CalendarMessageList = class CalendarMessageList {
let empty = sections.every(s => s.empty || !s.actor.visible);
this._placeholder.actor.visible = empty;
this._clearButton.visible = !empty;
let canClear = sections.some(s => s.canClear && s.actor.visible);
this._clearButton.reactive = canClear;

View File

@@ -2,7 +2,6 @@
/* exported Component */
const { Gio, GLib } = imports.gi;
const Mainloop = imports.mainloop;
const Params = imports.misc.params;
const GnomeSession = imports.misc.gnomeSession;
@@ -39,7 +38,7 @@ var AutomountManager = class {
this._driveDisconnectedId = this._volumeMonitor.connect('drive-disconnected', this._onDriveDisconnected.bind(this));
this._driveEjectButtonId = this._volumeMonitor.connect('drive-eject-button', this._onDriveEjectButton.bind(this));
this._mountAllId = Mainloop.idle_add(this._startupMountAll.bind(this));
this._mountAllId = GLib.idle_add(GLib.PRIORITY_DEFAULT, this._startupMountAll.bind(this));
GLib.Source.set_name_by_id(this._mountAllId, '[gnome-shell] this._startupMountAll');
}
@@ -51,7 +50,7 @@ var AutomountManager = class {
this._volumeMonitor.disconnect(this._driveEjectButtonId);
if (this._mountAllId > 0) {
Mainloop.source_remove(this._mountAllId);
GLib.source_remove(this._mountAllId);
this._mountAllId = 0;
}
}
@@ -220,7 +219,7 @@ var AutomountManager = class {
_onVolumeRemoved(monitor, volume) {
if (volume._allowAutorunExpireId && volume._allowAutorunExpireId > 0) {
Mainloop.source_remove(volume._allowAutorunExpireId);
GLib.source_remove(volume._allowAutorunExpireId);
delete volume._allowAutorunExpireId;
}
this._volumeQueue =
@@ -249,7 +248,7 @@ var AutomountManager = class {
}
_allowAutorunExpire(volume) {
let id = Mainloop.timeout_add_seconds(AUTORUN_EXPIRE_TIMEOUT_SECS, () => {
let id = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, AUTORUN_EXPIRE_TIMEOUT_SECS, () => {
volume.allowAutorun = false;
delete volume._allowAutorunExpireId;
return GLib.SOURCE_REMOVE;

View File

@@ -325,10 +325,10 @@ var AutorunNotification = class extends MessageTray.Notification {
style_class: 'hotplug-notification-item-icon' });
box.add(icon);
let label = new St.Bin({ y_align: St.Align.MIDDLE,
child: new St.Label
({ text: _("Open with %s").format(app.get_name()) })
});
let label = new St.Bin({
y_align: St.Align.MIDDLE,
child: new St.Label({ text: _("Open with %s").format(app.get_name()) }),
});
box.add(label);
let button = new St.Button({ child: box,

View File

@@ -112,16 +112,17 @@ class NetworkSecretDialog extends ModalDialog.ModalDialog {
expand: true });
}
this._okButton = { label: _("Connect"),
action: this._onOk.bind(this),
default: true
};
this._okButton = {
label: _("Connect"),
action: this._onOk.bind(this),
default: true,
};
this.setButtons([{ label: _("Cancel"),
action: this.cancel.bind(this),
key: Clutter.KEY_Escape,
},
this._okButton]);
this.setButtons([{
label: _("Cancel"),
action: this.cancel.bind(this),
key: Clutter.KEY_Escape,
}, this._okButton]);
this._updateOkButton();
}
@@ -551,11 +552,12 @@ var VPNRequestHandler = class {
let shouldAsk = keyfile.get_boolean(groups[i], 'ShouldAsk');
if (shouldAsk) {
contentOverride.secrets.push({ label: keyfile.get_string(groups[i], 'Label'),
key: groups[i],
value: value,
password: keyfile.get_boolean(groups[i], 'IsSecret')
});
contentOverride.secrets.push({
label: keyfile.get_string(groups[i], 'Label'),
key: groups[i],
value: value,
password: keyfile.get_boolean(groups[i], 'IsSecret'),
});
} else {
if (!value.length) // Ignore empty secrets
continue;
@@ -609,10 +611,11 @@ Signals.addSignalMethods(VPNRequestHandler.prototype);
var NetworkAgent = class {
constructor() {
this._native = new Shell.NetworkAgent({ identifier: 'org.gnome.Shell.NetworkAgent',
capabilities: NM.SecretAgentCapabilities.VPN_HINTS,
auto_register: false
});
this._native = new Shell.NetworkAgent({
identifier: 'org.gnome.Shell.NetworkAgent',
capabilities: NM.SecretAgentCapabilities.VPN_HINTS,
auto_register: false,
});
this._dialogs = { };
this._vpnRequests = { };

View File

@@ -3,7 +3,6 @@
const { Clutter, Gio, GLib, GObject, St } = imports.gi;
const Lang = imports.lang;
const Mainloop = imports.mainloop;
var Tpl = null;
var Tp = null;
@@ -546,8 +545,8 @@ var ChatSource = class extends MessageTray.Source {
// Wait a bit before notifying for the received message, a handler
// could ack it in the meantime.
if (this._notifyTimeoutId != 0)
Mainloop.source_remove(this._notifyTimeoutId);
this._notifyTimeoutId = Mainloop.timeout_add(500,
GLib.source_remove(this._notifyTimeoutId);
this._notifyTimeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 500,
this._notifyTimeout.bind(this));
GLib.Source.set_name_by_id(this._notifyTimeoutId, '[gnome-shell] this._notifyTimeout');
}
@@ -641,7 +640,7 @@ var ChatNotification = class extends MessageTray.Notification {
destroy(reason) {
if (this._timestampTimeoutId)
Mainloop.source_remove(this._timestampTimeoutId);
GLib.source_remove(this._timestampTimeoutId);
this._timestampTimeoutId = 0;
super.destroy(reason);
}
@@ -729,7 +728,7 @@ var ChatNotification = class extends MessageTray.Notification {
// Reset the old message timeout
if (this._timestampTimeoutId)
Mainloop.source_remove(this._timestampTimeoutId);
GLib.source_remove(this._timestampTimeoutId);
this._timestampTimeoutId = 0;
let message = { realMessage: props.group != 'meta',
@@ -747,7 +746,8 @@ var ChatNotification = class extends MessageTray.Notification {
} else {
// Schedule a new timestamp in SCROLLBACK_IMMEDIATE_TIME
// from the timestamp of the message.
this._timestampTimeoutId = Mainloop.timeout_add_seconds(
this._timestampTimeoutId = GLib.timeout_add_seconds(
GLib.PRIORITY_DEFAULT,
SCROLLBACK_IMMEDIATE_TIME - (currentTime - timestamp),
this.appendTimestamp.bind(this));
GLib.Source.set_name_by_id(this._timestampTimeoutId, '[gnome-shell] this.appendTimestamp');
@@ -952,14 +952,15 @@ var ChatNotificationBanner = class extends MessageTray.NotificationBanner {
// Remove composing timeout.
if (this._composingTimeoutId > 0) {
Mainloop.source_remove(this._composingTimeoutId);
GLib.source_remove(this._composingTimeoutId);
this._composingTimeoutId = 0;
}
if (text != '') {
this.notification.source.setChatState(Tp.ChannelChatState.COMPOSING);
this._composingTimeoutId = Mainloop.timeout_add_seconds(
this._composingTimeoutId = GLib.timeout_add_seconds(
GLib.PRIORITY_DEFAULT,
COMPOSING_STOP_TIMEOUT,
this._composingStopTimeout.bind(this));
GLib.Source.set_name_by_id(this._composingTimeoutId, '[gnome-shell] this._composingStopTimeout');

View File

@@ -2,7 +2,6 @@
/* exported Dash */
const { Clutter, GLib, GObject, Meta, Shell, St } = imports.gi;
const Mainloop = imports.mainloop;
const Signals = imports.signals;
const AppDisplay = imports.ui.appDisplay;
@@ -500,7 +499,7 @@ var Dash = class Dash {
// that the notify::hover handler does everything we need to.
if (opened) {
if (this._showLabelTimeoutId > 0) {
Mainloop.source_remove(this._showLabelTimeoutId);
GLib.source_remove(this._showLabelTimeoutId);
this._showLabelTimeoutId = 0;
}
@@ -514,7 +513,7 @@ var Dash = class Dash {
if (shouldShow) {
if (this._showLabelTimeoutId == 0) {
let timeout = this._labelShowing ? 0 : DASH_ITEM_HOVER_TIMEOUT;
this._showLabelTimeoutId = Mainloop.timeout_add(timeout,
this._showLabelTimeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, timeout,
() => {
this._labelShowing = true;
item.showLabel();
@@ -523,17 +522,17 @@ var Dash = class Dash {
});
GLib.Source.set_name_by_id(this._showLabelTimeoutId, '[gnome-shell] item.showLabel');
if (this._resetHoverTimeoutId > 0) {
Mainloop.source_remove(this._resetHoverTimeoutId);
GLib.source_remove(this._resetHoverTimeoutId);
this._resetHoverTimeoutId = 0;
}
}
} else {
if (this._showLabelTimeoutId > 0)
Mainloop.source_remove(this._showLabelTimeoutId);
GLib.source_remove(this._showLabelTimeoutId);
this._showLabelTimeoutId = 0;
item.hideLabel();
if (this._labelShowing) {
this._resetHoverTimeoutId = Mainloop.timeout_add(DASH_ITEM_HOVER_TIMEOUT,
this._resetHoverTimeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, DASH_ITEM_HOVER_TIMEOUT,
() => {
this._labelShowing = false;
this._resetHoverTimeoutId = 0;

View File

@@ -30,11 +30,13 @@ var TodayButton = class TodayButton {
// Having the ability to go to the current date if the user is already
// on the current date can be confusing. So don't make the button reactive
// until the selected date changes.
this.actor = new St.Button({ style_class: 'datemenu-today-button',
x_expand: true, x_align: St.Align.START,
can_focus: true,
reactive: false
});
this.actor = new St.Button({
style_class: 'datemenu-today-button',
x_align: St.Align.START,
x_expand: true,
can_focus: true,
reactive: false,
});
this.actor.connect('clicked', () => {
this._calendar.setDate(new Date(), false);
});

View File

@@ -17,8 +17,6 @@
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
const Mainloop = imports.mainloop;
const { AccountsService, Clutter, Gio,
GLib, GObject, Pango, Polkit, Shell, St } = imports.gi;
@@ -352,12 +350,15 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
}
// It only makes sense to check for this permission if PackageKit is available.
try {
this._updatesPermission = Polkit.Permission.new_sync(
'org.freedesktop.packagekit.trigger-offline-update', null, null);
} catch (e) {
log('No permission to trigger offline updates: %s'.format(e.toString()));
}
Polkit.Permission.new(
'org.freedesktop.packagekit.trigger-offline-update', null, null,
(source, res) => {
try {
this._updatesPermission = Polkit.Permission.new_finish(res);
} catch (e) {
log(`No permission to trigger offline updates: ${e}`);
}
});
}
_onDestroy() {
@@ -448,14 +449,16 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
for (let i = 0; i < dialogContent.confirmButtons.length; i++) {
let signal = dialogContent.confirmButtons[i].signal;
let label = dialogContent.confirmButtons[i].label;
buttons.push({ action: () => {
this.close(true);
let signalId = this.connect('closed', () => {
this.disconnect(signalId);
this._confirm(signal);
});
},
label: label });
buttons.push({
action: () => {
this.close(true);
let signalId = this.connect('closed', () => {
this.disconnect(signalId);
this._confirm(signal);
});
},
label: label,
});
}
this.setButtons(buttons);
@@ -562,7 +565,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
let startTime = GLib.get_monotonic_time();
this._secondsLeft = this._totalSecondsToStayOpen;
this._timerId = Mainloop.timeout_add_seconds(1, () => {
this._timerId = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 1, () => {
let currentTime = GLib.get_monotonic_time();
let secondsElapsed = ((currentTime - startTime) / 1000000);
@@ -584,7 +587,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
_stopTimer() {
if (this._timerId > 0) {
Mainloop.source_remove(this._timerId);
GLib.source_remove(this._timerId);
this._timerId = 0;
}

View File

@@ -10,7 +10,7 @@ imports.gi.versions.Gtk = '3.0';
imports.gi.versions.TelepathyGLib = '0.12';
imports.gi.versions.TelepathyLogger = '0.2';
const { Clutter, GLib, Shell, St } = imports.gi;
const { Clutter, GLib, Meta, Shell, St } = imports.gi;
const Gettext = imports.gettext;
// We can't import shell JS modules yet, because they may have
@@ -58,17 +58,16 @@ function _patchLayoutClass(layoutClass, styleProps) {
};
}
function _makeEaseCallback(params) {
function _makeEaseCallback(params, cleanup) {
let onComplete = params.onComplete;
delete params.onComplete;
let onStopped = params.onStopped;
delete params.onStopped;
if (!onComplete && !onStopped)
return null;
return isFinished => {
cleanup();
if (onStopped)
onStopped(isFinished);
if (onComplete && isFinished)
@@ -110,7 +109,10 @@ function _easeActor(actor, params) {
actor.set_easing_mode(params.mode);
delete params.mode;
let callback = _makeEaseCallback(params);
Meta.disable_unredirect_for_display(global.display);
let cleanup = () => Meta.enable_unredirect_for_display(global.display);
let callback = _makeEaseCallback(params, cleanup);
// cancel overwritten transitions
let animatedProps = Object.keys(params).map(p => p.replace('_', '-', 'g'));
@@ -119,14 +121,11 @@ function _easeActor(actor, params) {
actor.set(params);
actor.restore_easing_state();
if (callback) {
let transition = actor.get_transition(animatedProps[0]);
if (transition)
transition.connect('stopped', (t, finished) => callback(finished));
else
callback(true);
}
let transition = actor.get_transition(animatedProps[0]);
if (transition)
transition.connect('stopped', (t, finished) => callback(finished));
else
callback(true);
}
function _easeActorProperty(actor, propName, target, params) {
@@ -139,7 +138,15 @@ function _easeActorProperty(actor, propName, target, params) {
params.duration = adjustAnimationTime(params.duration);
let duration = Math.floor(params.duration || 0);
let callback = _makeEaseCallback(params);
// Copy Clutter's behavior for implicit animations, see
// should_skip_implicit_transition()
if (actor instanceof Clutter.Actor && !actor.mapped)
duration = 0;
Meta.disable_unredirect_for_display(global.display);
let cleanup = () => Meta.enable_unredirect_for_display(global.display);
let callback = _makeEaseCallback(params, cleanup);
// cancel overwritten transition
actor.remove_transition(propName);
@@ -148,8 +155,7 @@ function _easeActorProperty(actor, propName, target, params) {
let [obj, prop] = _getPropertyTarget(actor, propName);
obj[prop] = target;
if (callback)
callback(true);
callback(true);
return;
}
@@ -164,8 +170,7 @@ function _easeActorProperty(actor, propName, target, params) {
transition.set_to(target);
if (callback)
transition.connect('stopped', (t, finished) => callback(finished));
transition.connect('stopped', (t, finished) => callback(finished));
}
function _loggingFunc(...args) {

View File

@@ -186,14 +186,15 @@ class InstallExtensionDialog extends ModalDialog.ModalDialog {
this._info = info;
this._invocation = invocation;
this.setButtons([{ label: _("Cancel"),
action: this._onCancelButtonPressed.bind(this),
key: Clutter.Escape
},
{ label: _("Install"),
action: this._onInstallButtonPressed.bind(this),
default: true
}]);
this.setButtons([{
label: _("Cancel"),
action: this._onCancelButtonPressed.bind(this),
key: Clutter.Escape,
}, {
label: _("Install"),
action: this._onInstallButtonPressed.bind(this),
default: true,
}]);
let content = new Dialog.MessageDialogContent({
title: _("Download and install “%s” from extensions.gnome.org?").format(info.name),

View File

@@ -17,7 +17,7 @@ const EXTENSION_DISABLE_VERSION_CHECK_KEY = 'disable-extension-version-validatio
var ExtensionManager = class {
constructor() {
this._initted = false;
this._initialized = false;
this._enabled = false;
this._extensions = new Map();
@@ -98,6 +98,9 @@ var ExtensionManager = class {
}
_callExtensionEnable(uuid) {
if (!Main.sessionMode.allowExtensions)
return;
let extension = this.lookup(uuid);
if (!extension)
return;
@@ -108,8 +111,6 @@ var ExtensionManager = class {
if (extension.state != ExtensionState.DISABLED)
return;
this._extensionOrder.push(uuid);
let stylesheetNames = [`${global.session_mode}.css`, 'stylesheet.css'];
let theme = St.ThemeContext.get_for_stage(global.stage).get_theme();
for (let i = 0; i < stylesheetNames.length; i++) {
@@ -121,7 +122,7 @@ var ExtensionManager = class {
} catch (e) {
if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND))
continue; // not an error
log(`Failed to load stylesheet for extension ${uuid}: ${e.message}`);
this.logExtensionError(uuid, e);
return;
}
}
@@ -129,15 +130,14 @@ var ExtensionManager = class {
try {
extension.stateObj.enable();
extension.state = ExtensionState.ENABLED;
this._extensionOrder.push(uuid);
this.emit('extension-state-changed', extension);
return;
} catch (e) {
if (extension.stylesheet) {
theme.unload_stylesheet(extension.stylesheet);
delete extension.stylesheet;
}
this.logExtensionError(uuid, e);
return;
}
}
@@ -194,7 +194,7 @@ var ExtensionManager = class {
extension.errors = [];
extension.errors.push(message);
log('Extension "%s" had error: %s'.format(uuid, message));
logError(error, `Extension ${uuid}`);
this.emit('extension-state-changed', extension);
}
@@ -304,12 +304,14 @@ var ExtensionManager = class {
}
_callExtensionInit(uuid) {
if (!Main.sessionMode.allowExtensions)
return false;
let extension = this.lookup(uuid);
let dir = extension.dir;
if (!extension)
throw new Error("Extension was not properly created. Call loadExtension first");
throw new Error("Extension was not properly created. Call createExtensionObject first");
let dir = extension.dir;
let extensionJs = dir.get_child('extension.js');
if (!extensionJs.query_exists(null)) {
this.logExtensionError(uuid, new Error('Missing extension.js'));
@@ -388,9 +390,6 @@ var ExtensionManager = class {
_onEnabledExtensionsChanged() {
let newEnabledExtensions = this._getEnabledExtensions();
if (!this._enabled)
return;
// Find and enable all the newly enabled extensions: UUIDs found in the
// new setting, but not in the old one.
newEnabledExtensions.filter(
@@ -401,9 +400,9 @@ var ExtensionManager = class {
// Find and disable all the newly disabled extensions: UUIDs found in the
// old setting, but not in the new one.
this._enabledExtensions.filter(
item => !newEnabledExtensions.includes(item)
).forEach(uuid => {
this._extensionOrder.filter(
uuid => !newEnabledExtensions.includes(uuid)
).reverse().forEach(uuid => {
this._callExtensionDisable(uuid);
});
@@ -418,22 +417,19 @@ var ExtensionManager = class {
}
_onVersionValidationChanged() {
// we want to reload all extensions, but only enable
// extensions when allowed by the sessionMode, so
// temporarily disable them all
this._enabledExtensions = [];
// Disabling extensions modifies the order array, so use a copy
let extensionOrder = this._extensionOrder.slice();
// The loop modifies the extensions map, so iterate over a copy
let extensions = [...this._extensions.values()];
for (let extension of extensions)
this.reloadExtension(extension);
this._enabledExtensions = this._getEnabledExtensions();
// Disable enabled extensions in the reverse order first to avoid
// the "rebasing" done in _callExtensionDisable...
extensionOrder.slice().reverse().forEach(uuid => {
this._callExtensionDisable(uuid);
});
if (Main.sessionMode.allowExtensions) {
this._enabledExtensions.forEach(uuid => {
this._callExtensionEnable(uuid);
});
}
// ...and then reload and enable extensions in the correct order again.
[...this._extensions.values()].sort((a, b) => {
return extensionOrder.indexOf(a.uuid) - extensionOrder.indexOf(b.uuid);
}).forEach(extension => this.reloadExtension(extension));
}
_loadExtensions() {
@@ -482,9 +478,9 @@ var ExtensionManager = class {
if (this._enabled)
return;
if (!this._initted) {
if (!this._initialized) {
this._loadExtensions();
this._initted = true;
this._initialized = true;
} else {
this._enabledExtensions.forEach(uuid => {
this._callExtensionEnable(uuid);
@@ -497,7 +493,7 @@ var ExtensionManager = class {
if (!this._enabled)
return;
if (this._initted) {
if (this._initialized) {
this._extensionOrder.slice().reverse().forEach(uuid => {
this._callExtensionDisable(uuid);
});
@@ -512,8 +508,8 @@ var ExtensionManager = class {
// property; it might make sense to make enabledExtensions independent
// from allowExtensions in the future
if (Main.sessionMode.allowExtensions) {
if (this._initted)
this._enabledExtensions = this._getEnabledExtensions();
// Take care of added or removed sessionMode extensions
this._onEnabledExtensionsChanged();
this._enableAllExtensions();
} else {
this._disableAllExtensions();

View File

@@ -247,10 +247,23 @@ var IconGrid = GObject.registerClass({
_childAdded(grid, child) {
child._iconGridKeyFocusInId = child.connect('key-focus-in', this._keyFocusIn.bind(this));
child._paintVisible = child.opacity > 0;
child._opacityChangedId = child.connect('notify::opacity', () => {
let paintVisible = child._paintVisible;
child._paintVisible = child.opacity > 0;
if (paintVisible !== child._paintVisible)
this.queue_relayout();
});
}
_childRemoved(grid, child) {
child.disconnect(child._iconGridKeyFocusInId);
delete child._iconGridKeyFocusInId;
child.disconnect(child._opacityChangedId);
delete child._opacityChangedId;
delete child._paintVisible;
}
vfunc_get_preferred_width(_forHeight) {
@@ -414,7 +427,7 @@ var IconGrid = GObject.registerClass({
* set of items to be animated.
*/
_getChildrenToAnimate() {
return this._getVisibleChildren();
return this._getVisibleChildren().filter(child => child.opacity > 0);
}
_resetAnimationActors() {
@@ -871,7 +884,7 @@ var PaginatedIconGrid = GObject.registerClass({
// Overridden from IconGrid
_getChildrenToAnimate() {
let children = this._getVisibleChildren();
let children = super._getChildrenToAnimate();
let firstIndex = this._childrenPerPage * this.currentPage;
let lastIndex = firstIndex + this._childrenPerPage;

View File

@@ -27,7 +27,7 @@ class KbdA11yDialog extends GObject.Object {
if (whatChanged & Clutter.KeyboardA11yFlags.SLOW_KEYS_ENABLED) {
key = KEY_SLOW_KEYS_ENABLED;
enabled = (newFlags & Clutter.KeyboardA11yFlags.SLOW_KEYS_ENABLED) ? true : false;
enabled = (newFlags & Clutter.KeyboardA11yFlags.SLOW_KEYS_ENABLED) > 0;
title = enabled ?
_("Slow Keys Turned On") :
_("Slow Keys Turned Off");
@@ -36,7 +36,7 @@ class KbdA11yDialog extends GObject.Object {
} else if (whatChanged & Clutter.KeyboardA11yFlags.STICKY_KEYS_ENABLED) {
key = KEY_STICKY_KEYS_ENABLED;
enabled = (newFlags & Clutter.KeyboardA11yFlags.STICKY_KEYS_ENABLED) ? true : false;
enabled = (newFlags & Clutter.KeyboardA11yFlags.STICKY_KEYS_ENABLED) > 0;
title = enabled ?
_("Sticky Keys Turned On") :
_("Sticky Keys Turned Off");

View File

@@ -193,12 +193,12 @@ var LanguageSelectionPopup = class extends PopupMenu.PopupMenu {
item = this.addAction(is.displayName, () => {
inputSourceManager.activateInputSource(is, true);
});
item.actor.can_focus = false;
item.can_focus = false;
}
this.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
item = this.addSettingsAction(_("Region & Language Settings"), 'gnome-region-panel.desktop');
item.actor.can_focus = false;
item.can_focus = false;
this._capturedEventId = 0;
@@ -574,7 +574,7 @@ var EmojiPager = GObject.registerClass({
'delta': GObject.ParamSpec.int(
'delta', 'delta', 'delta',
GObject.ParamFlags.READWRITE,
0, GLib.MAXINT32, 0)
GLib.MININT32, GLib.MAXINT32, 0)
},
Signals: {
'emoji': { param_types: [GObject.TYPE_STRING] },

View File

@@ -238,11 +238,12 @@ var LayoutManager = GObject.registerClass({
reactive: true });
this.addChrome(this.overviewGroup);
this.screenShieldGroup = new St.Widget({ name: 'screenShieldGroup',
visible: false,
clip_to_allocation: true,
layout_manager: new Clutter.BinLayout(),
});
this.screenShieldGroup = new St.Widget({
name: 'screenShieldGroup',
visible: false,
clip_to_allocation: true,
layout_manager: new Clutter.BinLayout(),
});
this.addChrome(this.screenShieldGroup);
this.panelBox = new St.BoxLayout({ name: 'panelBox',
@@ -860,7 +861,7 @@ var LayoutManager = GObject.registerClass({
// We can't use Params.parse here because we want to drop
// the extra values like ancestorData.actor
for (let prop in defaultParams) {
if (!params.hasOwnProperty(prop))
if (!Object.prototype.hasOwnProperty.call(params, prop))
params[prop] = ancestorData[prop];
}
@@ -1224,6 +1225,8 @@ var HotCorner = class HotCorner {
if (this.actor)
this.actor.destroy();
this._ripples.destroy();
}
_toggleOverview() {

View File

@@ -108,12 +108,13 @@ var RadialShaderEffect = GObject.registerClass({
*/
var Lightbox = class Lightbox {
constructor(container, params) {
params = Params.parse(params, { inhibitEvents: false,
width: null,
height: null,
fadeFactor: DEFAULT_FADE_FACTOR,
radialEffect: false,
});
params = Params.parse(params, {
inhibitEvents: false,
width: null,
height: null,
fadeFactor: DEFAULT_FADE_FACTOR,
radialEffect: false,
});
this._container = container;
this._children = container.get_children();
@@ -172,10 +173,13 @@ var Lightbox = class Lightbox {
}
show(fadeInTime) {
fadeInTime = fadeInTime || 0;
this.actor.remove_all_transitions();
let easeProps = {
duration: fadeInTime || 0,
mode: Clutter.AnimationMode.EASE_OUT_QUAD
};
let onComplete = () => {
this.shown = true;
this.emit('shown');
@@ -183,55 +187,38 @@ var Lightbox = class Lightbox {
if (this._radialEffect) {
this.actor.ease_property(
'@effects.radial.brightness', VIGNETTE_BRIGHTNESS, {
duration: fadeInTime,
mode: Clutter.AnimationMode.EASE_OUT_QUAD
});
'@effects.radial.brightness', VIGNETTE_BRIGHTNESS, easeProps);
this.actor.ease_property(
'@effects.radial.sharpness', VIGNETTE_SHARPNESS, {
duration: fadeInTime,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete
});
'@effects.radial.sharpness', VIGNETTE_SHARPNESS,
Object.assign({ onComplete }, easeProps));
} else {
this.actor.ease({
this.actor.ease(Object.assign(easeProps, {
opacity: 255 * this._fadeFactor,
duration: fadeInTime,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete
});
}));
}
this.actor.show();
}
hide(fadeOutTime) {
fadeOutTime = fadeOutTime || 0;
this.shown = false;
this.actor.remove_all_transitions();
let easeProps = {
duration: fadeOutTime || 0,
mode: Clutter.AnimationMode.EASE_OUT_QUAD
};
let onComplete = () => this.actor.hide();
if (this._radialEffect) {
this.actor.ease_property(
'@effects.radial.brightness', 1.0, {
duration: fadeOutTime,
mode: Clutter.AnimationMode.EASE_OUT_QUAD
});
'@effects.radial.brightness', 1.0, easeProps);
this.actor.ease_property(
'@effects.radial.sharpness', 0.0, {
duration: fadeOutTime,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete
});
'@effects.radial.sharpness', 0.0, Object.assign({ onComplete }, easeProps));
} else {
this.actor.ease({
opacity: 0,
duration: fadeOutTime,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete
});
this.actor.ease(Object.assign(easeProps, { opacity: 0, onComplete }));
}
}

View File

@@ -11,12 +11,26 @@ const LOCATE_POINTER_SCHEMA = "org.gnome.desktop.interface";
var LocatePointer = class {
constructor() {
this._settings = new Gio.Settings({ schema_id: LOCATE_POINTER_SCHEMA });
this._ripples = new Ripples.Ripples(0.5, 0.5, 'ripple-pointer-location');
this._ripples.addTo(Main.uiGroup);
this._settings.connect(`changed::${LOCATE_POINTER_KEY}`, () => this._syncEnabled());
this._syncEnabled();
}
_syncEnabled() {
let enabled = this._settings.get_boolean(LOCATE_POINTER_KEY);
if (enabled == !!this._ripples)
return;
if (enabled) {
this._ripples = new Ripples.Ripples(0.5, 0.5, 'ripple-pointer-location');
this._ripples.addTo(Main.uiGroup);
} else {
this._ripples.destroy();
this._ripples = null;
}
}
show() {
if (!this._settings.get_boolean(LOCATE_POINTER_KEY))
if (!this._ripples)
return;
let [x, y] = global.get_pointer();

View File

@@ -3,7 +3,6 @@
const { Clutter, Cogl, Gio, GLib,
GObject, Meta, Pango, Shell, St } = imports.gi;
const Mainloop = imports.mainloop;
const Signals = imports.signals;
const System = imports.system;
@@ -20,7 +19,6 @@ const CHEVRON = '>>> ';
/* Imports...feel free to add here as needed */
var commandHeader = 'const { Clutter, Gio, GLib, GObject, Meta, Shell, St } = imports.gi; ' +
'const Main = imports.ui.main; ' +
'const Mainloop = imports.mainloop; ' +
/* Utility functions...we should probably be able to use these
* in the shell core code too. */
'const stage = global.stage; ' +
@@ -240,7 +238,7 @@ var Notebook = class Notebook {
Signals.addSignalMethods(Notebook.prototype);
function objectToString(o) {
if (typeof(o) == typeof(objectToString)) {
if (typeof o == typeof objectToString) {
// special case this since the default is way, way too verbose
return '<js function>';
} else {
@@ -306,6 +304,9 @@ var WindowList = class WindowList {
}
_updateWindowList() {
if (!this._lookingGlass.isOpen)
return;
this.actor.destroy_all_children();
let windows = global.get_window_actors();
let tracker = Shell.WindowTracker.get_default();
@@ -337,6 +338,10 @@ var WindowList = class WindowList {
}
}
}
update() {
this._updateWindowList();
}
};
Signals.addSignalMethods(WindowList.prototype);
@@ -369,7 +374,7 @@ var ObjInspector = class ObjInspector {
let hbox = new St.BoxLayout({ style_class: 'lg-obj-inspector-title' });
this._container.add_actor(hbox);
let label = new St.Label({ text: 'Inspecting: %s: %s'.format(typeof(obj),
let label = new St.Label({ text: 'Inspecting: %s: %s'.format(typeof obj,
objectToString(obj)) });
label.single_line_mode = true;
hbox.add(label, { expand: true, y_fill: false });
@@ -387,7 +392,7 @@ var ObjInspector = class ObjInspector {
button.add_actor(new St.Icon({ icon_name: 'window-close-symbolic' }));
button.connect('clicked', this.close.bind(this));
hbox.add(button);
if (typeof(obj) == typeof({})) {
if (typeof obj == typeof {}) {
let properties = [];
for (let propName in obj) {
properties.push(propName);
@@ -821,7 +826,7 @@ var LookingGlass = class LookingGlass {
gcIcon.connect('button-press-event', () => {
gcIcon.icon_name = 'user-trash';
System.gc();
this._timeoutId = Mainloop.timeout_add(500, () => {
this._timeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 500, () => {
gcIcon.icon_name = 'user-trash-full';
this._timeoutId = 0;
return GLib.SOURCE_REMOVE;
@@ -1010,7 +1015,11 @@ var LookingGlass = class LookingGlass {
}
getResult(idx) {
return this._results[idx - this._offset].o;
try {
return this._results[idx - this._offset].o;
} catch (e) {
throw new Error(`Unknown result at index ${idx}`);
}
}
toggle() {
@@ -1097,6 +1106,8 @@ var LookingGlass = class LookingGlass {
duration,
mode: Clutter.AnimationMode.EASE_OUT_QUAD
});
this._windowList.update();
}
close() {
@@ -1122,5 +1133,9 @@ var LookingGlass = class LookingGlass {
onComplete: () => this.actor.hide()
});
}
get isOpen() {
return this._open;
}
};
Signals.addSignalMethods(LookingGlass.prototype);

View File

@@ -2,7 +2,6 @@
const { Atspi, Clutter, GDesktopEnums,
Gio, GLib, GObject, Meta, Shell, St } = imports.gi;
const Mainloop = imports.mainloop;
const Signals = imports.signals;
const Background = imports.ui.background;
@@ -1144,7 +1143,7 @@ var ZoomRegion = class ZoomRegion {
_clearScrollContentsTimer() {
if (this._scrollContentsTimerId != 0) {
Mainloop.source_remove(this._scrollContentsTimerId);
GLib.source_remove(this._scrollContentsTimerId);
this._scrollContentsTimerId = 0;
}
}
@@ -1156,7 +1155,7 @@ var ZoomRegion = class ZoomRegion {
}
this._clearScrollContentsTimer();
this._scrollContentsTimerId = Mainloop.timeout_add(POINTER_REST_TIME, () => {
this._scrollContentsTimerId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, POINTER_REST_TIME, () => {
this._scrollContentsToDelayed(x, y);
return GLib.SOURCE_REMOVE;
});

View File

@@ -9,7 +9,6 @@
initializeDeferredWork, getThemeStylesheet, setThemeStylesheet */
const { Clutter, Gio, GLib, GObject, Meta, Shell, St } = imports.gi;
const Mainloop = imports.mainloop;
const AccessDialog = imports.ui.accessDialog;
const AudioDeviceSelection = imports.ui.audioDeviceSelection;
@@ -620,7 +619,7 @@ function _runDeferredWork(workId) {
_deferredWorkQueue.splice(index, 1);
_deferredWorkData[workId].callback();
if (_deferredWorkQueue.length == 0 && _deferredTimeoutId > 0) {
Mainloop.source_remove(_deferredTimeoutId);
GLib.source_remove(_deferredTimeoutId);
_deferredTimeoutId = 0;
}
}
@@ -708,7 +707,7 @@ function queueDeferredWork(workId) {
_queueBeforeRedraw(workId);
return;
} else if (_deferredTimeoutId == 0) {
_deferredTimeoutId = Mainloop.timeout_add_seconds(DEFERRED_TIMEOUT_SECONDS, () => {
_deferredTimeoutId = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, DEFERRED_TIMEOUT_SECONDS, () => {
_runAllDeferredWork();
_deferredTimeoutId = 0;
return GLib.SOURCE_REMOVE;

View File

@@ -4,7 +4,6 @@
SystemNotificationSource, MessageTray */
const { Clutter, Gio, GLib, GObject, Meta, Shell, St } = imports.gi;
const Mainloop = imports.mainloop;
const Signals = imports.signals;
const Calendar = imports.ui.calendar;
@@ -137,13 +136,14 @@ var FocusGrabber = class FocusGrabber {
// A notification without a policy object will inherit the default one.
var NotificationPolicy = class NotificationPolicy {
constructor(params) {
params = Params.parse(params, { enable: true,
enableSound: true,
showBanners: true,
forceExpanded: false,
showInLockScreen: true,
detailsInLockScreen: false
});
params = Params.parse(params, {
enable: true,
enableSound: true,
showBanners: true,
forceExpanded: false,
showInLockScreen: true,
detailsInLockScreen: false,
});
Object.getOwnPropertyNames(params).forEach(key => {
let desc = Object.getOwnPropertyDescriptor(params, key);
Object.defineProperty(this, `_${key}`, desc);
@@ -153,6 +153,7 @@ var NotificationPolicy = class NotificationPolicy {
// Do nothing for the default policy. These methods are only useful for the
// GSettings policy.
store() { }
destroy() { }
get enable() {
@@ -1004,7 +1005,6 @@ var MessageTray = class MessageTray {
_addSource(source) {
let obj = {
source: source,
notifyId: 0,
destroyId: 0,
};
@@ -1091,7 +1091,7 @@ var MessageTray = class MessageTray {
_resetNotificationLeftTimeout() {
this._useLongerNotificationLeftTimeout = false;
if (this._notificationLeftTimeoutId) {
Mainloop.source_remove(this._notificationLeftTimeoutId);
GLib.source_remove(this._notificationLeftTimeoutId);
this._notificationLeftTimeoutId = 0;
this._notificationLeftMouseX = -1;
this._notificationLeftMouseY = -1;
@@ -1137,7 +1137,7 @@ var MessageTray = class MessageTray {
// We wait for a longer period if the notification popped up where the mouse pointer was already positioned.
// That gives the user more time to mouse away from the notification and mouse back in in order to expand it.
let timeout = this._useLongerNotificationLeftTimeout ? LONGER_HIDE_TIMEOUT : HIDE_TIMEOUT;
this._notificationLeftTimeoutId = Mainloop.timeout_add(timeout, this._onNotificationLeftTimeout.bind(this));
this._notificationLeftTimeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, timeout, this._onNotificationLeftTimeout.bind(this));
GLib.Source.set_name_by_id(this._notificationLeftTimeoutId, '[gnome-shell] this._onNotificationLeftTimeout');
}
}
@@ -1166,8 +1166,10 @@ var MessageTray = class MessageTray {
x < this._notificationLeftMouseX + MOUSE_LEFT_ACTOR_THRESHOLD &&
x > this._notificationLeftMouseX - MOUSE_LEFT_ACTOR_THRESHOLD) {
this._notificationLeftMouseX = -1;
this._notificationLeftTimeoutId = Mainloop.timeout_add(LONGER_HIDE_TIMEOUT,
this._onNotificationLeftTimeout.bind(this));
this._notificationLeftTimeoutId = GLib.timeout_add(
GLib.PRIORITY_DEFAULT,
LONGER_HIDE_TIMEOUT,
this._onNotificationLeftTimeout.bind(this));
GLib.Source.set_name_by_id(this._notificationLeftTimeoutId, '[gnome-shell] this._onNotificationLeftTimeout');
} else {
this._notificationLeftTimeoutId = 0;
@@ -1345,13 +1347,13 @@ var MessageTray = class MessageTray {
_updateNotificationTimeout(timeout) {
if (this._notificationTimeoutId) {
Mainloop.source_remove(this._notificationTimeoutId);
GLib.source_remove(this._notificationTimeoutId);
this._notificationTimeoutId = 0;
}
if (timeout > 0) {
this._notificationTimeoutId =
Mainloop.timeout_add(timeout,
this._notificationTimeout.bind(this));
GLib.timeout_add(GLib.PRIORITY_DEFAULT, timeout,
this._notificationTimeout.bind(this));
GLib.Source.set_name_by_id(this._notificationTimeoutId, '[gnome-shell] this._notificationTimeout');
}
}

View File

@@ -2,7 +2,6 @@
/* exported NotificationDaemon */
const { GdkPixbuf, Gio, GLib, Shell, St } = imports.gi;
const Mainloop = imports.mainloop;
const Config = imports.misc.config;
const Main = imports.ui.main;
@@ -171,7 +170,7 @@ var FdoNotificationDaemon = class FdoNotificationDaemon {
// Ignore replacesId since we already sent back a
// NotificationClosed for that id.
id = this._nextNotificationId++;
let idleId = Mainloop.idle_add(() => {
let idleId = GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
this._emitNotificationClosed(id, NotificationClosedReason.DISMISSED);
return GLib.SOURCE_REMOVE;
});
@@ -750,29 +749,33 @@ var GtkNotificationDaemon = class GtkNotificationDaemon {
_loadNotifications() {
this._isLoading = true;
let value = global.get_persistent_state('a(sa(sv))', 'notifications');
if (value) {
let sources = value.deep_unpack();
sources.forEach(([appId, notifications]) => {
if (notifications.length == 0)
return;
let source;
try {
source = this._ensureAppSource(appId);
} catch (e) {
if (e instanceof InvalidAppError)
try {
let value = global.get_persistent_state('a(sa(sv))', 'notifications');
if (value) {
let sources = value.deep_unpack();
sources.forEach(([appId, notifications]) => {
if (notifications.length == 0)
return;
throw e;
}
notifications.forEach(([notificationId, notification]) => {
source.addNotification(notificationId, notification.deep_unpack(), false);
let source;
try {
source = this._ensureAppSource(appId);
} catch (e) {
if (e instanceof InvalidAppError)
return;
throw e;
}
notifications.forEach(([notificationId, notification]) => {
source.addNotification(notificationId, notification.deep_unpack(), false);
});
});
});
}
} catch (e) {
logError(e, 'Failed to load saved notifications');
} finally {
this._isLoading = false;
}
this._isLoading = false;
}
_saveNotifications() {

View File

@@ -2,7 +2,6 @@
/* exported OsdWindowManager */
const { Clutter, GLib, GObject, Meta, St } = imports.gi;
const Mainloop = imports.mainloop;
const BarLevel = imports.ui.barLevel;
const Layout = imports.ui.layout;
@@ -143,9 +142,9 @@ var OsdWindow = class {
}
if (this._hideTimeoutId)
Mainloop.source_remove(this._hideTimeoutId);
this._hideTimeoutId = Mainloop.timeout_add(HIDE_TIMEOUT,
this._hide.bind(this));
GLib.source_remove(this._hideTimeoutId);
this._hideTimeoutId = GLib.timeout_add(
GLib.PRIORITY_DEFAULT, HIDE_TIMEOUT, this._hide.bind(this));
GLib.Source.set_name_by_id(this._hideTimeoutId, '[gnome-shell] this._hide');
}
@@ -153,7 +152,7 @@ var OsdWindow = class {
if (!this._hideTimeoutId)
return;
Mainloop.source_remove(this._hideTimeoutId);
GLib.source_remove(this._hideTimeoutId);
this._hide();
}

View File

@@ -2,7 +2,6 @@
/* exported Overview */
const { Clutter, GLib, Meta, Shell, St } = imports.gi;
const Mainloop = imports.mainloop;
const Signals = imports.signals;
const Background = imports.ui.background;
@@ -43,9 +42,10 @@ var ShellInfo = class {
}
setMessage(text, options) {
options = Params.parse(options, { undoCallback: null,
forFeedback: false
});
options = Params.parse(options, {
undoCallback: null,
forFeedback: false,
});
let undoCallback = options.undoCallback;
let forFeedback = options.forFeedback;
@@ -300,7 +300,7 @@ var Overview = class {
_resetWindowSwitchTimeout() {
if (this._windowSwitchTimeoutId != 0) {
Mainloop.source_remove(this._windowSwitchTimeoutId);
GLib.source_remove(this._windowSwitchTimeoutId);
this._windowSwitchTimeoutId = 0;
}
}
@@ -323,7 +323,9 @@ var Overview = class {
if (targetIsWindow) {
this._lastHoveredWindow = dragEvent.targetActor._delegate.metaWindow;
this._windowSwitchTimeoutId = Mainloop.timeout_add(DND_WINDOW_SWITCH_TIMEOUT,
this._windowSwitchTimeoutId = GLib.timeout_add(
GLib.PRIORITY_DEFAULT,
DND_WINDOW_SWITCH_TIMEOUT,
() => {
this._windowSwitchTimeoutId = 0;
Main.activateWindow(dragEvent.targetActor._delegate.metaWindow,
@@ -481,15 +483,13 @@ var Overview = class {
if (this._shown) {
let shouldBeModal = !this._inXdndDrag;
if (shouldBeModal) {
if (!this._modal) {
if (Main.pushModal(this._overview,
{ actionMode: Shell.ActionMode.OVERVIEW })) {
this._modal = true;
} else {
this.hide();
return false;
}
if (shouldBeModal && !this._modal) {
let actionMode = Shell.ActionMode.OVERVIEW;
if (Main.pushModal(this._overview, { actionMode })) {
this._modal = true;
} else {
this.hide();
return false;
}
}
} else {

View File

@@ -248,6 +248,7 @@ var SlidingControl = class {
// 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 visiblity
this.actor.remove_transition('@layout.slide-x');
this.layout.slide_x = this._getSlide();
this._updateTranslation();
}

View File

@@ -3,7 +3,6 @@
const { Atk, Clutter, Gio, GLib, GObject, Meta, Shell, St } = imports.gi;
const Cairo = imports.cairo;
const Mainloop = imports.mainloop;
const Animation = imports.ui.animation;
const Config = imports.misc.config;
@@ -451,8 +450,8 @@ class ActivitiesButton extends PanelMenu.Button {
return DND.DragMotionResult.CONTINUE;
if (this._xdndTimeOut != 0)
Mainloop.source_remove(this._xdndTimeOut);
this._xdndTimeOut = Mainloop.timeout_add(BUTTON_DND_ACTIVATION_TIMEOUT, () => {
GLib.source_remove(this._xdndTimeOut);
this._xdndTimeOut = GLib.timeout_add(GLib.PRIORITY_DEFAULT, BUTTON_DND_ACTIVATION_TIMEOUT, () => {
this._xdndToggleOverview();
});
GLib.Source.set_name_by_id(this._xdndTimeOut, '[gnome-shell] this._xdndToggleOverview');
@@ -496,7 +495,7 @@ class ActivitiesButton extends PanelMenu.Button {
if (pickedActor == this && Main.overview.shouldToggleByCornerOrButton())
Main.overview.toggle();
Mainloop.source_remove(this._xdndTimeOut);
GLib.source_remove(this._xdndTimeOut);
this._xdndTimeOut = 0;
return GLib.SOURCE_REMOVE;
}

View File

@@ -1,8 +1,10 @@
/* exported PointerA11yTimeout */
const { Clutter, GLib, GObject, Meta, St } = imports.gi;
const { Clutter, GObject, Meta, St } = imports.gi;
const Main = imports.ui.main;
const Cairo = imports.cairo;
const SUCCESS_ZOOM_OUT_DURATION = 150;
var PieTimer = GObject.registerClass({
Properties: {
'angle': GObject.ParamSpec.double(
@@ -12,15 +14,16 @@ var PieTimer = GObject.registerClass({
}
}, class PieTimer extends St.DrawingArea {
_init() {
this._x = 0;
this._y = 0;
this._angle = 0;
super._init({
style_class: 'pie-timer',
opacity: 0,
visible: false,
can_focus: false,
reactive: false
});
this.set_pivot_point(0.5, 0.5);
}
get angle() {
@@ -52,9 +55,14 @@ var PieTimer = GObject.registerClass({
cr.setLineJoin(Cairo.LineJoin.ROUND);
cr.translate(width / 2, height / 2);
cr.moveTo(0, 0);
if (this._angle < 2 * Math.PI)
cr.moveTo(0, 0);
cr.arc(0, 0, radius - borderWidth, startAngle, endAngle);
cr.lineTo(0, 0);
if (this._angle < 2 * Math.PI)
cr.lineTo(0, 0);
cr.closePath();
cr.setLineWidth(0);
@@ -69,44 +77,56 @@ var PieTimer = GObject.registerClass({
}
start(x, y, duration) {
this.remove_all_transitions();
this.x = x - this.width / 2;
this.y = y - this.height / 2;
this._angle = 0;
this.show();
Main.uiGroup.set_child_above_sibling(this, null);
this.ease({
opacity: 255,
duration: duration / 4,
mode: Clutter.AnimationMode.EASE_IN_QUAD
});
this.ease_property('angle', 2 * Math.PI, {
duration,
mode: Clutter.AnimationMode.LINEAR,
onComplete: () => this.stop()
onComplete: this._onTransitionComplete.bind(this)
});
}
stop() {
this.remove_all_transitions();
this.hide();
_onTransitionComplete() {
this.ease({
scale_x: 2,
scale_y: 2,
opacity: 0,
duration: SUCCESS_ZOOM_OUT_DURATION,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onStopped: () => this.destroy()
});
}
});
var PointerA11yTimeout = class PointerA11yTimeout {
constructor() {
let manager = Clutter.DeviceManager.get_default();
let pieTimer = new PieTimer();
Main.uiGroup.add_actor(pieTimer);
manager.connect('ptr-a11y-timeout-started', (manager, device, type, timeout) => {
let [x, y] = global.get_pointer();
pieTimer.start(x, y, timeout);
this._pieTimer = new PieTimer();
Main.uiGroup.add_actor(this._pieTimer);
Main.uiGroup.set_child_above_sibling(this._pieTimer, null);
this._pieTimer.start(x, y, timeout);
if (type == Clutter.PointerA11yTimeoutType.GESTURE)
global.display.set_cursor(Meta.Cursor.CROSSHAIR);
});
manager.connect('ptr-a11y-timeout-stopped', (manager, device, type) => {
pieTimer.stop();
manager.connect('ptr-a11y-timeout-stopped', (manager, device, type, clicked) => {
if (!clicked)
this._pieTimer.destroy();
if (type == Clutter.PointerA11yTimeoutType.GESTURE)
global.display.set_cursor(Meta.Cursor.DEFAULT);
});

View File

@@ -2,7 +2,6 @@
/* exported getPointerWatcher */
const { GLib, Meta } = imports.gi;
const Mainloop = imports.mainloop;
// We stop polling if the user is idle for more than this amount of time
var IDLE_TIME = 1000;
@@ -87,7 +86,7 @@ var PointerWatcher = class {
_updateTimeout() {
if (this._timeoutId) {
Mainloop.source_remove(this._timeoutId);
GLib.source_remove(this._timeoutId);
this._timeoutId = 0;
}
@@ -98,8 +97,8 @@ var PointerWatcher = class {
for (let i = 1; i < this._watches.length; i++)
minInterval = Math.min(this._watches[i].interval, minInterval);
this._timeoutId = Mainloop.timeout_add(minInterval,
this._onTimeout.bind(this));
this._timeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, minInterval,
this._onTimeout.bind(this));
GLib.Source.set_name_by_id(this._timeoutId, '[gnome-shell] this._onTimeout');
}

View File

@@ -57,11 +57,9 @@ var PopupBaseMenuItem = GObject.registerClass({
Properties: {
'active': GObject.ParamSpec.boolean('active', 'active', 'active',
GObject.ParamFlags.READWRITE,
GObject.TYPE_BOOLEAN,
false),
'sensitive': GObject.ParamSpec.boolean('sensitive', 'sensitive', 'sensitive',
GObject.ParamFlags.READWRITE,
GObject.TYPE_BOOLEAN,
true),
},
Signals: {
@@ -69,12 +67,13 @@ var PopupBaseMenuItem = GObject.registerClass({
}
}, class PopupBaseMenuItem extends St.BoxLayout {
_init(params) {
params = Params.parse (params, { reactive: true,
activate: true,
hover: true,
style_class: null,
can_focus: true
});
params = Params.parse (params, {
reactive: true,
activate: true,
hover: true,
style_class: null,
can_focus: true,
});
super._init({ style_class: 'popup-menu-item',
reactive: params.reactive,
track_hover: params.reactive,
@@ -333,9 +332,10 @@ var PopupSwitchMenuItem = GObject.registerClass({
this._statusBin = new St.Bin({ x_align: St.Align.END });
this.add(this._statusBin, { expand: true, x_align: St.Align.END });
this._statusLabel = new St.Label({ text: '',
style_class: 'popup-status-menu-item'
});
this._statusLabel = new St.Label({
text: '',
style_class: 'popup-status-menu-item',
});
this._statusBin.child = this._switch;
}

View File

@@ -34,6 +34,12 @@ var Ripples = class Ripples {
this._ripple3.set_pivot_point(px, py);
}
destroy() {
this._ripple1.destroy();
this._ripple2.destroy();
this._ripple3.destroy();
}
_animRipple(ripple, delay, duration, startScale, startOpacity, finalScale) {
// We draw a ripple by using a source image and animating it scaling
// outwards and fading away. We want the ripples to move linearly

View File

@@ -94,9 +94,11 @@ class RunDialog extends ModalDialog.ModalDialog {
this._errorBox.hide();
this.setButtons([{ action: this.close.bind(this),
label: _("Close"),
key: Clutter.Escape }]);
this.setButtons([{
action: this.close.bind(this),
label: _("Close"),
key: Clutter.Escape,
}]);
this._pathCompleter = new Gio.FilenameCompleter();

View File

@@ -3,7 +3,6 @@
const { AccountsService, Clutter, Cogl, Gio, GLib,
GnomeDesktop, GObject, Meta, Shell, St } = imports.gi;
const Cairo = imports.cairo;
const Mainloop = imports.mainloop;
const Signals = imports.signals;
const Background = imports.ui.background;
@@ -430,13 +429,14 @@ var ScreenShield = class {
this.actor = Main.layoutManager.screenShieldGroup;
this._lockScreenState = MessageTray.State.HIDDEN;
this._lockScreenGroup = new St.Widget({ x_expand: true,
y_expand: true,
reactive: true,
can_focus: true,
name: 'lockScreenGroup',
visible: false,
});
this._lockScreenGroup = new St.Widget({
x_expand: true,
y_expand: true,
reactive: true,
can_focus: true,
name: 'lockScreenGroup',
visible: false,
});
this._lockScreenGroup.connect('key-press-event',
this._onLockScreenKeyPress.bind(this));
this._lockScreenGroup.connect('scroll-event',
@@ -833,12 +833,14 @@ var ScreenShield = class {
let lockTimeout = Math.max(
STANDARD_FADE_TIME,
this._settings.get_uint(LOCK_DELAY_KEY) * 1000);
this._lockTimeoutId = Mainloop.timeout_add(lockTimeout,
() => {
this._lockTimeoutId = 0;
this.lock(false);
return GLib.SOURCE_REMOVE;
});
this._lockTimeoutId = GLib.timeout_add(
GLib.PRIORITY_DEFAULT,
lockTimeout,
() => {
this._lockTimeoutId = 0;
this.lock(false);
return GLib.SOURCE_REMOVE;
});
GLib.Source.set_name_by_id(this._lockTimeoutId, '[gnome-shell] this.lock');
}
@@ -1028,7 +1030,7 @@ var ScreenShield = class {
this._arrowActiveWatchId = 0;
if (!this._arrowAnimationId) {
this._arrowAnimationId = Mainloop.timeout_add(6000, this._animateArrows.bind(this));
this._arrowAnimationId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 6000, this._animateArrows.bind(this));
GLib.Source.set_name_by_id(this._arrowAnimationId, '[gnome-shell] this._animateArrows');
this._animateArrows();
}
@@ -1040,7 +1042,7 @@ var ScreenShield = class {
_pauseArrowAnimation() {
if (this._arrowAnimationId) {
Mainloop.source_remove(this._arrowAnimationId);
GLib.source_remove(this._arrowAnimationId);
this._arrowAnimationId = 0;
}
@@ -1050,7 +1052,7 @@ var ScreenShield = class {
_stopArrowAnimation() {
if (this._arrowAnimationId) {
Mainloop.source_remove(this._arrowAnimationId);
GLib.source_remove(this._arrowAnimationId);
this._arrowAnimationId = 0;
}
if (this._arrowActiveWatchId) {
@@ -1097,7 +1099,7 @@ var ScreenShield = class {
if (params.fadeToBlack && params.animateFade) {
// Take a beat
let id = Mainloop.timeout_add(MANUAL_FADE_TIME, () => {
let id = GLib.timeout_add(GLib.PRIORITY_DEFAULT, MANUAL_FADE_TIME, () => {
this._activateFade(this._shortLightbox, MANUAL_FADE_TIME);
return GLib.SOURCE_REMOVE;
});
@@ -1240,7 +1242,7 @@ var ScreenShield = class {
}
if (this._lockTimeoutId != 0) {
Mainloop.source_remove(this._lockTimeoutId);
GLib.source_remove(this._lockTimeoutId);
this._lockTimeoutId = 0;
}

View File

@@ -271,7 +271,7 @@ var SelectArea = class {
}
_onMotionEvent(actor, event) {
if (this._startX == -1 || this._startY == -1)
if (this._startX == -1 || this._startY == -1 || this._result)
return Clutter.EVENT_PROPAGATE;
[this._lastX, this._lastY] = event.get_coords();

View File

@@ -4,7 +4,6 @@
collectStatistics, runPerfScript */
const { Gio, GLib, Meta, Shell } = imports.gi;
const Mainloop = imports.mainloop;
const Main = imports.ui.main;
const Params = imports.misc.params;
@@ -41,7 +40,7 @@ const { loadInterfaceXML } = imports.misc.fileUtils;
*/
function sleep(milliseconds) {
return new Promise(resolve => {
let id = Mainloop.timeout_add(milliseconds, () => {
let id = GLib.timeout_add(GLib.PRIORITY_DEFAULT, milliseconds, () => {
resolve();
return GLib.SOURCE_REMOVE;
});

View File

@@ -158,10 +158,15 @@ var SearchResultsBase = class {
this._clipboard = St.Clipboard.get_default();
this._cancellable = new Gio.Cancellable();
this.actor.connect('destroy', this._onDestroy.bind(this));
}
destroy() {
this.actor.destroy();
}
_onDestroy() {
this._terms = [];
}
@@ -341,14 +346,30 @@ var GridSearchResults = class extends SearchResultsBase {
this._resultDisplayBin.set_child(this._bin);
}
_onDestroy() {
if (this._updateSearchLater) {
Meta.later_remove(this._updateSearchLater);
delete this._updateSearchLater;
}
super._onDestroy();
}
updateSearch(...args) {
if (this._notifyAllocationId)
this.actor.disconnect(this._notifyAllocationId);
if (this._updateSearchLater) {
Meta.later_remove(this._updateSearchLater);
delete this._updateSearchLater;
}
// Make sure the maximum number of results calculated by
// _getMaxDisplayedResults() is updated after width changes.
this._notifyAllocationId = this.actor.connect('notify::allocation', () => {
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => {
if (this._updateSearchLater)
return;
this._updateSearchLater = Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => {
delete this._updateSearchLater;
super.updateSearch(...args);
return GLib.SOURCE_REMOVE;
});

View File

@@ -2,7 +2,6 @@
/* exported SessionMode, listModes */
const GLib = imports.gi.GLib;
const Mainloop = imports.mainloop;
const Signals = imports.signals;
const FileUtils = imports.misc.fileUtils;
@@ -112,7 +111,7 @@ function _loadMode(file, info) {
let suffix = name.indexOf('.json');
let modeName = suffix == -1 ? name : name.slice(name, suffix);
if (_modes.hasOwnProperty(modeName))
if (Object.prototype.hasOwnProperty.call(_modes, modeName))
return;
let fileContent, success_, newMode;
@@ -141,15 +140,16 @@ function _loadModes() {
function listModes() {
_loadModes();
let id = Mainloop.idle_add(() => {
let loop = new GLib.MainLoop(null, false);
let id = GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
let names = Object.getOwnPropertyNames(_modes);
for (let i = 0; i < names.length; i++)
if (_modes[names[i]].isPrimary)
print(names[i]);
Mainloop.quit('listModes');
loop.quit();
});
GLib.Source.set_name_by_id(id, '[gnome-shell] listModes');
Mainloop.run('listModes');
loop.run();
}
var SessionMode = class {

View File

@@ -26,9 +26,10 @@ function _setButtonsForChoices(dialog, choices) {
for (let idx = 0; idx < choices.length; idx++) {
let button = idx;
buttons.unshift({ label: choices[idx],
action: () => dialog.emit('response', button)
});
buttons.unshift({
label: choices[idx],
action: () => dialog.emit('response', button),
});
}
dialog.setButtons(buttons);
@@ -387,24 +388,26 @@ var ShellMountPasswordDialog = GObject.registerClass({
this._rememberChoice = null;
}
this._defaultButtons = [{ label: _("Cancel"),
action: this._onCancelButton.bind(this),
key: Clutter.Escape
},
{ label: _("Unlock"),
action: this._onUnlockButton.bind(this),
default: true
}];
this._defaultButtons = [{
label: _("Cancel"),
action: this._onCancelButton.bind(this),
key: Clutter.Escape,
}, {
label: _("Unlock"),
action: this._onUnlockButton.bind(this),
default: true,
}];
this._usesKeyfilesButtons = [{ label: _("Cancel"),
action: this._onCancelButton.bind(this),
key: Clutter.Escape
},
{ /* Translators: %s is the Disks application */
label: _("Open %s").format(disksApp.get_name()),
action: this._onOpenDisksButton.bind(this),
default: true
}];
this._usesKeyfilesButtons = [{
label: _("Cancel"),
action: this._onCancelButton.bind(this),
key: Clutter.Escape,
}, {
/* Translators: %s is the Disks application */
label: _("Open %s").format(disksApp.get_name()),
action: this._onOpenDisksButton.bind(this),
default: true,
}];
this.setButtons(this._defaultButtons);
}

View File

@@ -2,7 +2,6 @@
/* exported ATIndicator */
const { Gio, GLib, GObject, St } = imports.gi;
const Mainloop = imports.mainloop;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
@@ -96,7 +95,7 @@ class ATIndicator extends PanelMenu.Button {
if (this._syncMenuVisibilityIdle)
return;
this._syncMenuVisibilityIdle = Mainloop.idle_add(this._syncMenuVisibility.bind(this));
this._syncMenuVisibilityIdle = GLib.idle_add(GLib.PRIORITY_DEFAULT, this._syncMenuVisibility.bind(this));
GLib.Source.set_name_by_id(this._syncMenuVisibilityIdle, '[gnome-shell] this._syncMenuVisibility');
}

View File

@@ -13,8 +13,8 @@ const PanelMenu = imports.ui.panelMenu;
const SwitcherPopup = imports.ui.switcherPopup;
const Util = imports.misc.util;
const INPUT_SOURCE_TYPE_XKB = 'xkb';
const INPUT_SOURCE_TYPE_IBUS = 'ibus';
var INPUT_SOURCE_TYPE_XKB = 'xkb';
var INPUT_SOURCE_TYPE_IBUS = 'ibus';
var LayoutMenuItem = GObject.registerClass(
class LayoutMenuItem extends PopupMenu.PopupBaseMenuItem {

View File

@@ -1,7 +1,6 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/* exported NMApplet */
const { Clutter, Gio, GLib, GObject, NM, St } = imports.gi;
const Mainloop = imports.mainloop;
const Signals = imports.signals;
const Animation = imports.ui.animation;
@@ -719,7 +718,7 @@ class NMWirelessDialog extends ModalDialog.ModalDialog {
this._updateSensitivity();
this._syncView();
this._scanTimeoutId = Mainloop.timeout_add_seconds(15, this._onScanTimeout.bind(this));
this._scanTimeoutId = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 15, this._onScanTimeout.bind(this));
GLib.Source.set_name_by_id(this._scanTimeoutId, '[gnome-shell] this._onScanTimeout');
this._onScanTimeout();
@@ -757,7 +756,7 @@ class NMWirelessDialog extends ModalDialog.ModalDialog {
}
if (this._scanTimeoutId) {
Mainloop.source_remove(this._scanTimeoutId);
GLib.source_remove(this._scanTimeoutId);
this._scanTimeoutId = 0;
}
}
@@ -874,7 +873,7 @@ class NMWirelessDialog extends ModalDialog.ModalDialog {
this._airplaneHeadline = new St.Label({ style_class: 'nm-dialog-airplane-headline headline' });
this._airplaneText = new St.Label({ style_class: 'nm-dialog-airplane-text' });
let airplaneSubStack = new St.Widget({ layout_manager: new Clutter.BinLayout });
let airplaneSubStack = new St.Widget({ layout_manager: new Clutter.BinLayout() });
this._airplaneButton = new St.Button({ style_class: 'modal-dialog-button button' });
this._airplaneButton.connect('clicked', () => {
if (this._rfkill.airplaneMode)
@@ -1074,13 +1073,14 @@ class NMWirelessDialog extends ModalDialog.ModalDialog {
this._resortItems();
} else {
network = { ssid: accessPoint.get_ssid(),
mode: accessPoint.mode,
security: this._getApSecurityType(accessPoint),
connections: [],
item: null,
accessPoints: [accessPoint]
};
network = {
ssid: accessPoint.get_ssid(),
mode: accessPoint.mode,
security: this._getApSecurityType(accessPoint),
connections: [],
item: null,
accessPoints: [accessPoint],
};
network.ssidText = ssidToLabel(network.ssid);
this._checkConnections(network, accessPoint);

View File

@@ -110,7 +110,7 @@ var Indicator = class extends PanelMenu.SystemIndicator {
// The icons
let chargingState = this._proxy.State == UPower.DeviceState.CHARGING
? '-charging' : '';
let fillLevel = 10 * Math.floor(this._proxy.Percentage / 10);
let fillLevel = 10 * Math.ceil(this._proxy.Percentage / 10);
let icon = this._proxy.State == UPower.DeviceState.FULLY_CHARGED
? 'battery-level-100-charged-symbolic'
: `battery-level-${fillLevel}${chargingState}-symbolic`;

View File

@@ -137,15 +137,6 @@ var Indicator = class extends PanelMenu.SystemIndicator {
this._sessionUpdated();
}
_updateActionsVisibility() {
let visible = (this._settingsAction.visible ||
this._orientationLockAction.visible ||
this._lockScreenAction.visible ||
this._altSwitcher.actor.visible);
this.buttonGroup.visible = visible;
}
_sessionUpdated() {
this._settingsAction.visible = Main.sessionMode.allowSettings;
}
@@ -253,7 +244,7 @@ var Indicator = class extends PanelMenu.SystemIndicator {
this._orientationLockAction = this._createActionButton('', _("Orientation Lock"));
this._orientationLockAction.connect('clicked', () => {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE),
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
this._systemActions.activateLockOrientation();
});
item.add(this._orientationLockAction, { expand: true, x_fill: false });
@@ -302,15 +293,18 @@ var Indicator = class extends PanelMenu.SystemIndicator {
this.menu.addMenuItem(item);
let visibilityGroup = [
this._settingsAction,
this._orientationLockAction,
this._lockScreenAction,
this._altSwitcher.actor,
];
this._settingsAction.connect('notify::visible',
() => this._updateActionsVisibility());
this._orientationLockAction.connect('notify::visible',
() => this._updateActionsVisibility());
this._lockScreenAction.connect('notify::visible',
() => this._updateActionsVisibility());
this._altSwitcher.actor.connect('notify::visible',
() => this._updateActionsVisibility());
for (let actor of visibilityGroup) {
actor.connect('notify::visible', () => {
this.buttonGroup.visible = visibilityGroup.some(a => a.visible);
});
}
}
_onSettingsClicked() {

View File

@@ -1,7 +1,7 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/* exported Indicator */
const { Clutter, Gio, Gvc, St } = imports.gi;
const { Clutter, Gio, GObject, Gvc, St } = imports.gi;
const Signals = imports.signals;
const Main = imports.ui.main;
@@ -36,7 +36,8 @@ var StreamSlider = class {
this._soundSettings.connect(`changed::${ALLOW_AMPLIFIED_VOLUME_KEY}`, this._amplifySettingsChanged.bind(this));
this._amplifySettingsChanged();
this._slider.connect('notify::value', this._sliderChanged.bind(this));
this._sliderChangedId = this._slider.connect('notify::value',
this._sliderChanged.bind(this));
this._slider.connect('drag-end', this._notifyVolumeChange.bind(this));
this._icon = new St.Icon({ style_class: 'popup-menu-icon' });
@@ -129,10 +130,16 @@ var StreamSlider = class {
this._volumeCancellable);
}
_changeSlider(value) {
GObject.signal_handler_block(this._slider, this._sliderChangedId);
this._slider.value = value;
GObject.signal_handler_unblock(this._slider, this._sliderChangedId);
}
_updateVolume() {
let muted = this._stream.is_muted;
this._slider.value = muted
? 0 : (this._stream.volume / this._control.get_vol_max_norm());
this._changeSlider(muted
? 0 : (this._stream.volume / this._control.get_vol_max_norm()));
this.emit('stream-updated');
}

View File

@@ -2,7 +2,6 @@
/* exported SwitcherPopup, SwitcherList */
const { Clutter, GLib, GObject, Meta, St } = imports.gi;
const Mainloop = imports.mainloop;
const Main = imports.ui.main;
@@ -142,13 +141,15 @@ var SwitcherPopup = GObject.registerClass({
// We delay showing the popup so that fast Alt+Tab users aren't
// disturbed by the popup briefly flashing.
this._initialDelayTimeoutId = Mainloop.timeout_add(POPUP_DELAY_TIMEOUT,
() => {
Main.osdWindowManager.hideAll();
this.opacity = 255;
this._initialDelayTimeoutId = 0;
return GLib.SOURCE_REMOVE;
});
this._initialDelayTimeoutId = GLib.timeout_add(
GLib.PRIORITY_DEFAULT,
POPUP_DELAY_TIMEOUT,
() => {
Main.osdWindowManager.hideAll();
this.opacity = 255;
this._initialDelayTimeoutId = 0;
return GLib.SOURCE_REMOVE;
});
GLib.Source.set_name_by_id(this._initialDelayTimeoutId, '[gnome-shell] Main.osdWindow.cancel');
return true;
}
@@ -249,9 +250,9 @@ var SwitcherPopup = GObject.registerClass({
this.mouseActive = false;
if (this._motionTimeoutId != 0)
Mainloop.source_remove(this._motionTimeoutId);
GLib.source_remove(this._motionTimeoutId);
this._motionTimeoutId = Mainloop.timeout_add(DISABLE_HOVER_TIMEOUT, this._mouseTimedOut.bind(this));
this._motionTimeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, DISABLE_HOVER_TIMEOUT, this._mouseTimedOut.bind(this));
GLib.Source.set_name_by_id(this._motionTimeoutId, '[gnome-shell] this._mouseTimedOut');
}
@@ -263,14 +264,16 @@ var SwitcherPopup = GObject.registerClass({
_resetNoModsTimeout() {
if (this._noModsTimeoutId != 0)
Mainloop.source_remove(this._noModsTimeoutId);
GLib.source_remove(this._noModsTimeoutId);
this._noModsTimeoutId = Mainloop.timeout_add(NO_MODS_TIMEOUT,
() => {
this._finish(global.get_current_time());
this._noModsTimeoutId = 0;
return GLib.SOURCE_REMOVE;
});
this._noModsTimeoutId = GLib.timeout_add(
GLib.PRIORITY_DEFAULT,
NO_MODS_TIMEOUT,
() => {
this._finish(global.get_current_time());
this._noModsTimeoutId = 0;
return GLib.SOURCE_REMOVE;
});
}
_popModal() {
@@ -302,11 +305,11 @@ var SwitcherPopup = GObject.registerClass({
this._popModal();
if (this._motionTimeoutId != 0)
Mainloop.source_remove(this._motionTimeoutId);
GLib.source_remove(this._motionTimeoutId);
if (this._initialDelayTimeoutId != 0)
Mainloop.source_remove(this._initialDelayTimeoutId);
GLib.source_remove(this._initialDelayTimeoutId);
if (this._noModsTimeoutId != 0)
Mainloop.source_remove(this._noModsTimeoutId);
GLib.source_remove(this._noModsTimeoutId);
}
_select(num) {

View File

@@ -309,12 +309,10 @@ var ViewSelector = class {
if (params.a11yFocus)
Main.ctrlAltTabManager.addGroup(params.a11yFocus, name, a11yIcon);
else
Main.ctrlAltTabManager.addGroup(actor, name, a11yIcon,
{ proxy: this.actor,
focusCallback: () => {
this._a11yFocusPage(page);
}
});
Main.ctrlAltTabManager.addGroup(actor, name, a11yIcon, {
proxy: this.actor,
focusCallback: () => this._a11yFocusPage(page),
});
page.hide();
this.actor.add_actor(page);
return page;

View File

@@ -2,7 +2,6 @@
/* exported WindowManager */
const { Clutter, Gio, GLib, GObject, Meta, Shell, St } = imports.gi;
const Mainloop = imports.mainloop;
const Signals = imports.signals;
const AltTab = imports.ui.altTab;
@@ -17,6 +16,7 @@ const PadOsd = imports.ui.padOsd;
const EdgeDragAction = imports.ui.edgeDragAction;
const CloseDialog = imports.ui.closeDialog;
const SwitchMonitor = imports.ui.switchMonitor;
const IBusManager = imports.misc.ibusManager;
const { loadInterfaceXML } = imports.misc.fileUtils;
@@ -70,13 +70,13 @@ class DisplayChangeDialog extends ModalDialog.ModalDialog {
action: this._onSuccess.bind(this),
default: true });
this._timeoutId = Mainloop.timeout_add(ONE_SECOND, this._tick.bind(this));
this._timeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, ONE_SECOND, this._tick.bind(this));
GLib.Source.set_name_by_id(this._timeoutId, '[gnome-shell] this._tick');
}
close(timestamp) {
if (this._timeoutId > 0) {
Mainloop.source_remove(this._timeoutId);
GLib.source_remove(this._timeoutId);
this._timeoutId = 0;
}
@@ -280,9 +280,9 @@ var WorkspaceTracker = class {
keepWorkspaceAlive(workspace, duration) {
if (workspace._keepAliveId)
Mainloop.source_remove(workspace._keepAliveId);
GLib.source_remove(workspace._keepAliveId);
workspace._keepAliveId = Mainloop.timeout_add(duration, () => {
workspace._keepAliveId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, duration, () => {
workspace._keepAliveId = 0;
this._queueCheckWorkspaces();
return GLib.SOURCE_REMOVE;
@@ -293,7 +293,7 @@ var WorkspaceTracker = class {
_windowRemoved(workspace, window) {
workspace._lastRemovedWindow = window;
this._queueCheckWorkspaces();
let id = Mainloop.timeout_add(LAST_WINDOW_GRACE_TIME, () => {
let id = GLib.timeout_add(GLib.PRIORITY_DEFAULT, LAST_WINDOW_GRACE_TIME, () => {
if (workspace._lastRemovedWindow == window) {
workspace._lastRemovedWindow = null;
this._queueCheckWorkspaces();
@@ -1041,6 +1041,15 @@ var WindowManager = class {
}
});
global.display.connect('x11-display-opened', () => {
IBusManager.getIBusManager().restartDaemon(['--xim']);
Shell.util_start_systemd_unit('gnome-session-x11-services.target', 'fail');
});
global.display.connect('x11-display-closing', () => {
Shell.util_stop_systemd_unit('gnome-session-x11-services.target', 'fail');
IBusManager.getIBusManager().restartDaemon();
});
Main.overview.connect('showing', () => {
for (let i = 0; i < this._dimmedWindows.length; i++)
this._undimWindow(this._dimmedWindows[i]);

View File

@@ -224,7 +224,7 @@ var WindowMenuManager = class {
this._sourceActor.set_position(rect.x, rect.y);
this._sourceActor.show();
menu.open(BoxPointer.PopupAnimation.NONE);
menu.open(BoxPointer.PopupAnimation.FADE);
menu.actor.navigate_focus(null, St.DirectionType.TAB_FORWARD, false);
menu.connect('open-state-changed', (menu_, isOpen) => {
if (isOpen)

View File

@@ -2,7 +2,6 @@
/* exported Workspace */
const { Atk, Clutter, GLib, GObject, Meta, Pango, Shell, St } = imports.gi;
const Mainloop = imports.mainloop;
const Signals = imports.signals;
const DND = imports.ui.dnd;
@@ -57,17 +56,16 @@ class WindowCloneLayout extends Clutter.LayoutManager {
// has an extra set of "padding" around it that we need to trim
// down.
// The outer rect (from which we compute the bounding box)
// paradoxically is the smaller rectangle, containing the positions
// of the visible frame. The input rect contains everything,
// including the invisible border padding.
let inputRect = window.get_buffer_rect();
// The bounding box is based on the (visible) frame rect, while
// the buffer rect contains everything, including the invisible
// border padding.
let bufferRect = window.get_buffer_rect();
let box = new Clutter.ActorBox();
box.set_origin(inputRect.x - this._boundingBox.x,
inputRect.y - this._boundingBox.y);
box.set_size(inputRect.width, inputRect.height);
box.set_origin(bufferRect.x - this._boundingBox.x,
bufferRect.y - this._boundingBox.y);
box.set_size(bufferRect.width, bufferRect.height);
return box;
}
@@ -83,8 +81,8 @@ class WindowCloneLayout extends Clutter.LayoutManager {
vfunc_allocate(container, box, flags) {
container.get_children().forEach(child => {
let realWindow;
if (child == container._delegate._windowClone)
realWindow = container._delegate.realWindow;
if (child == container._windowClone)
realWindow = container.realWindow;
else
realWindow = child.source;
@@ -104,7 +102,7 @@ var WindowClone = GObject.registerClass({
'show-chrome': {},
'size-changed': {}
},
}, class WindowClone extends St.Widget {
}, class WorkspaceWindowClone extends St.Widget {
_init(realWindow, workspace) {
this.realWindow = realWindow;
this.metaWindow = realWindow.meta_window;
@@ -354,6 +352,11 @@ var WindowClone = GObject.registerClass({
this.metaWindow._delegate = null;
this._delegate = null;
if (this._longPressLater) {
Meta.later_remove(this._longPressLater);
delete this._longPressLater;
}
if (this.inDrag) {
this.emit('drag-end');
this.inDrag = false;
@@ -388,9 +391,13 @@ var WindowClone = GObject.registerClass({
let event = Clutter.get_current_event();
this._dragTouchSequence = event.get_event_sequence();
if (this._longPressLater)
return true;
// A click cancels a long-press before any click handler is
// run - make sure to not start a drag in that case
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => {
this._longPressLater = Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => {
delete this._longPressLater;
if (this._selected)
return;
let [x, y] = action.get_coords();
@@ -628,7 +635,7 @@ var WindowOverlay = class {
_onDestroy() {
if (this._idleHideOverlayId > 0) {
Mainloop.source_remove(this._idleHideOverlayId);
GLib.source_remove(this._idleHideOverlayId);
this._idleHideOverlayId = 0;
}
this._windowClone.metaWindow.disconnect(this._updateCaptionId);
@@ -680,7 +687,7 @@ var WindowOverlay = class {
_onHideChrome() {
if (this._idleHideOverlayId == 0) {
this._idleHideOverlayId = Mainloop.timeout_add(WINDOW_OVERLAY_IDLE_HIDE_TIMEOUT, this._idleHideOverlay.bind(this));
this._idleHideOverlayId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, WINDOW_OVERLAY_IDLE_HIDE_TIMEOUT, this._idleHideOverlay.bind(this));
GLib.Source.set_name_by_id(this._idleHideOverlayId, '[gnome-shell] this._idleHideOverlay');
}
}
@@ -697,7 +704,7 @@ var WindowOverlay = class {
hideOverlay() {
if (this._idleHideOverlayId > 0) {
Mainloop.source_remove(this._idleHideOverlayId);
GLib.source_remove(this._idleHideOverlayId);
this._idleHideOverlayId = 0;
}
this.closeButton.hide();
@@ -939,7 +946,7 @@ var LayoutStrategy = class {
y += row.height * row.additionalScale + this._rowSpacing;
}
compensation = compensation / 2;
compensation /= 2;
for (let i = 0; i < rows.length; i++) {
let row = rows[i];
@@ -1090,10 +1097,8 @@ const WorkspaceActor = GObject.registerClass(
class WorkspaceActor extends St.Widget {
vfunc_get_focus_chain() {
return this.get_children().filter(c => c.visible).sort((a, b) => {
let cloneA = (a._delegate && a._delegate instanceof WindowClone) ? a._delegate : null;
let cloneB = (b._delegate && b._delegate instanceof WindowClone) ? b._delegate : null;
if (cloneA && cloneB)
return cloneA.slotId - cloneB.slotId;
if (a instanceof WindowClone && b instanceof WindowClone)
return a.slotId - b.slotId;
return 0;
});
@@ -1263,7 +1268,7 @@ var Workspace = class {
_realRecalculateWindowPositions(flags) {
if (this._repositionWindowsId > 0) {
Mainloop.source_remove(this._repositionWindowsId);
GLib.source_remove(this._repositionWindowsId);
this._repositionWindowsId = 0;
}
@@ -1473,7 +1478,7 @@ var Workspace = class {
// remove old handler
if (this._repositionWindowsId > 0) {
Mainloop.source_remove(this._repositionWindowsId);
GLib.source_remove(this._repositionWindowsId);
this._repositionWindowsId = 0;
}
@@ -1483,7 +1488,7 @@ var Workspace = class {
this._cursorY = y;
this._currentLayout = null;
this._repositionWindowsId = Mainloop.timeout_add(WINDOW_REPOSITIONING_DELAY,
this._repositionWindowsId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, WINDOW_REPOSITIONING_DELAY,
this._delayedWindowRepositioning.bind(this));
GLib.Source.set_name_by_id(this._repositionWindowsId, '[gnome-shell] this._delayedWindowRepositioning');
}
@@ -1497,7 +1502,7 @@ var Workspace = class {
if (!win) {
// Newly-created windows are added to a workspace before
// the compositor finds out about them...
let id = Mainloop.idle_add(() => {
let id = GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
if (this.actor &&
metaWin.get_compositor_private() &&
metaWin.get_workspace() == this.metaWorkspace)
@@ -1643,7 +1648,7 @@ var Workspace = class {
this._windows[i].remove_all_transitions();
if (this._repositionWindowsId > 0) {
Mainloop.source_remove(this._repositionWindowsId);
GLib.source_remove(this._repositionWindowsId);
this._repositionWindowsId = 0;
}
@@ -1728,7 +1733,7 @@ var Workspace = class {
this._windows[i].remove_all_transitions();
if (this._repositionWindowsId > 0) {
Mainloop.source_remove(this._repositionWindowsId);
GLib.source_remove(this._repositionWindowsId);
this._repositionWindowsId = 0;
}
this._overviewHiddenId = Main.overview.connect('hidden', this._doneLeavingOverview.bind(this));
@@ -1789,7 +1794,7 @@ var Workspace = class {
global.display.disconnect(this._windowLeftMonitorId);
if (this._repositionWindowsId > 0) {
Mainloop.source_remove(this._repositionWindowsId);
GLib.source_remove(this._repositionWindowsId);
this._repositionWindowsId = 0;
}
@@ -1978,7 +1983,7 @@ var Workspace = class {
}
_onCloneSelected(clone, time) {
let wsIndex = undefined;
let wsIndex;
if (this.metaWorkspace)
wsIndex = this.metaWorkspace.index();
Main.activateWindow(clone.metaWindow, time, wsIndex);

View File

@@ -2,7 +2,6 @@
/* exported WorkspaceSwitcherPopup */
const { Clutter, GLib, GObject, Meta, St } = imports.gi;
const Mainloop = imports.mainloop;
const Main = imports.ui.main;
@@ -195,14 +194,14 @@ class WorkspaceSwitcherPopup extends St.Widget {
this._redisplay();
if (this._timeoutId != 0)
Mainloop.source_remove(this._timeoutId);
this._timeoutId = Mainloop.timeout_add(DISPLAY_TIMEOUT, this._onTimeout.bind(this));
GLib.source_remove(this._timeoutId);
this._timeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, DISPLAY_TIMEOUT, this._onTimeout.bind(this));
GLib.Source.set_name_by_id(this._timeoutId, '[gnome-shell] this._onTimeout');
this._show();
}
_onTimeout() {
Mainloop.source_remove(this._timeoutId);
GLib.source_remove(this._timeoutId);
this._timeoutId = 0;
this._container.ease({
opacity: 0.0,
@@ -215,7 +214,7 @@ class WorkspaceSwitcherPopup extends St.Widget {
_onDestroy() {
if (this._timeoutId)
Mainloop.source_remove(this._timeoutId);
GLib.source_remove(this._timeoutId);
this._timeoutId = 0;
let workspaceManager = global.workspace_manager;

View File

@@ -2,7 +2,6 @@
/* exported WorkspaceThumbnail, ThumbnailsBox */
const { Clutter, Gio, GLib, GObject, Meta, Shell, St } = imports.gi;
const Mainloop = imports.mainloop;
const Signals = imports.signals;
const Background = imports.ui.background;
@@ -389,7 +388,7 @@ var WorkspaceThumbnail = GObject.registerClass({
if (!win) {
// Newly-created windows are added to a workspace before
// the compositor finds out about them...
let id = Mainloop.idle_add(() => {
let id = GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
if (!this._removed &&
metaWin.get_compositor_private() &&
metaWin.get_workspace() == this.metaWorkspace)
@@ -711,14 +710,12 @@ var ThumbnailsBox = GObject.registerClass({
_activateThumbnailAtPoint(stageX, stageY, time) {
let [r_, x_, y] = this.transform_stage_point(stageX, stageY);
for (let i = 0; i < this._thumbnails.length; i++) {
let thumbnail = this._thumbnails[i];
let [, h] = thumbnail.get_transformed_size();
if (y >= thumbnail.y && y <= thumbnail.y + h) {
thumbnail.activate(time);
break;
}
}
let thumbnail = this._thumbnails.find(t => {
let [, h] = t.get_transformed_size();
return y >= t.y && y <= t.y + h;
});
if (thumbnail)
thumbnail.activate(time);
}
_onButtonRelease(actor, event) {
@@ -1340,15 +1337,9 @@ var ThumbnailsBox = GObject.registerClass({
}
_activeWorkspaceChanged(_wm, _from, _to, _direction) {
let thumbnail;
let workspaceManager = global.workspace_manager;
let activeWorkspace = workspaceManager.get_active_workspace();
for (let i = 0; i < this._thumbnails.length; i++) {
if (this._thumbnails[i].metaWorkspace == activeWorkspace) {
thumbnail = this._thumbnails[i];
break;
}
}
let thumbnail = this._thumbnails.find(t => t.metaWorkspace == activeWorkspace);
this._animatingIndicator = true;
let indicatorThemeNode = this._indicator.get_theme_node();

View File

@@ -524,6 +524,22 @@ var WorkspacesDisplay = class {
this._keyPressEventId = 0;
this._fullGeometry = null;
this.actor.connect('destroy', this._onDestroy.bind(this));
}
_onDestroy() {
if (this._notifyOpacityId) {
let parent = this.actor.get_parent();
if (parent)
parent.disconnect(this._notifyOpacityId);
this._notifyOpacityId = 0;
}
if (this._parentSetLater) {
Meta.later_remove(this._parentSetLater);
this._parentSetLater = 0;
}
}
_onPan(action) {
@@ -717,7 +733,11 @@ var WorkspacesDisplay = class {
oldParent.disconnect(this._notifyOpacityId);
this._notifyOpacityId = 0;
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => {
if (this._parentSetLater)
return;
this._parentSetLater = Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => {
this._parentSetLater = 0;
let newParent = this.actor.get_parent();
if (!newParent)
return;

View File

@@ -1,5 +1,5 @@
project('gnome-shell', 'c',
version: '3.33.91',
version: '3.34.0',
meson_version: '>= 0.47.0',
license: 'GPLv2+'
)
@@ -26,7 +26,7 @@ gio_req = '>= 2.56.0'
gi_req = '>= 1.49.1'
gjs_req = '>= 1.57.3'
gtk_req = '>= 3.15.0'
mutter_req = '>= 3.33.91'
mutter_req = '>= 3.34.0'
polkit_req = '>= 0.100'
schemas_req = '>= 3.33.1'
startup_req = '>= 0.11'

View File

@@ -72,6 +72,17 @@ js/ui/windowAttentionHandler.js
js/ui/windowManager.js
js/ui/windowMenu.js
src/calendar-server/evolution-calendar.desktop.in
src/extensions-tool/command-create.c
src/extensions-tool/command-disable.c
src/extensions-tool/command-enable.c
src/extensions-tool/command-info.c
src/extensions-tool/command-install.c
src/extensions-tool/command-list.c
src/extensions-tool/command-pack.c
src/extensions-tool/command-prefs.c
src/extensions-tool/command-reset.c
src/extensions-tool/command-uninstall.c
src/extensions-tool/main.c
src/main.c
src/shell-app.c
src/shell-app-system.c

417
po/ca.po
View File

@@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: HEAD\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2019-08-12 19:40+0000\n"
"PO-Revision-Date: 2019-08-15 09:21+0200\n"
"POT-Creation-Date: 2019-09-11 17:13+0000\n"
"PO-Revision-Date: 2019-08-25 21:53+0200\n"
"Last-Translator: Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
"Language: ca\n"
@@ -46,7 +46,7 @@ msgid "Open the application menu"
msgstr "Obre el menú d'aplicació"
#: data/gnome-shell-extension-prefs.desktop.in.in:4
#: js/extensionPrefs/main.js:208
#: js/extensionPrefs/main.js:211
msgid "Shell Extensions"
msgstr "Extensions del Shell"
@@ -200,9 +200,9 @@ msgid ""
msgstr ""
"El GNOME Shell us demanarà la contrasenya quan es munti un dispositiu "
"encriptat o un sistema de fitxers remot. Si es pot desar la contrasenya per "
"utilitzar-lo en el futur, es mostrarà la casella de verificació «Recorda la "
"utilitzar-lo en el futur, es mostrarà la casella de selecció «Recorda la "
"contrasenya». Aquesta clau estableix el valor per defecte d'aquesta casella "
"de verificació."
"de selecció."
#: data/org.gnome.shell.gschema.xml.in:96
msgid ""
@@ -415,11 +415,11 @@ msgstr ""
msgid "Network Login"
msgstr "Inici de sessió de xarxa"
#: js/extensionPrefs/main.js:101 js/extensionPrefs/main.js:531
#: js/extensionPrefs/main.js:104 js/extensionPrefs/main.js:534
msgid "Somethings gone wrong"
msgstr "Alguna cosa ha anat malament"
#: js/extensionPrefs/main.js:108
#: js/extensionPrefs/main.js:111
msgid ""
"Were very sorry, but theres been a problem: the settings for this "
"extension cant be displayed. We recommend that you report the issue to the "
@@ -428,27 +428,27 @@ msgstr ""
"Hi ha un problema: no es poden mostrar els paràmetres per a aquesta "
"extensió. Us recomanem que informeu del problema als autors de l'extensió."
#: js/extensionPrefs/main.js:115
#: js/extensionPrefs/main.js:118
msgid "Technical Details"
msgstr "Detalls tècnics"
#: js/extensionPrefs/main.js:150
#: js/extensionPrefs/main.js:153
msgid "Copy Error"
msgstr "Copia l'error"
#: js/extensionPrefs/main.js:177
#: js/extensionPrefs/main.js:180
msgid "Homepage"
msgstr "Pàgina d'inici"
#: js/extensionPrefs/main.js:178
#: js/extensionPrefs/main.js:181
msgid "Visit extension homepage"
msgstr "Visiteu la pàgina d'inici de l'extensió"
#: js/extensionPrefs/main.js:473
#: js/extensionPrefs/main.js:476
msgid "No Extensions Installed"
msgstr "No hi ha cap extensió instal·lada"
#: js/extensionPrefs/main.js:483
#: js/extensionPrefs/main.js:486
msgid ""
"Extensions can be installed through Software or <a href=\"https://extensions."
"gnome.org\">extensions.gnome.org</a>."
@@ -456,11 +456,11 @@ msgstr ""
"Les extensions es poden instal·lar amb el Programari o a <a href=\"https://"
"extensions.gnome.org\">extensions.gnome.org</a>."
#: js/extensionPrefs/main.js:498
#: js/extensionPrefs/main.js:501
msgid "Browse in Software"
msgstr "Navega al Programari"
#: js/extensionPrefs/main.js:538
#: js/extensionPrefs/main.js:541
msgid ""
"Were very sorry, but it was not possible to get the list of installed "
"extensions. Make sure you are logged into GNOME and try again."
@@ -470,7 +470,7 @@ msgstr ""
#: js/gdm/authPrompt.js:139 js/ui/audioDeviceSelection.js:53
#: js/ui/components/networkAgent.js:120 js/ui/components/polkitAgent.js:138
#: js/ui/endSessionDialog.js:445 js/ui/extensionDownloader.js:189
#: js/ui/endSessionDialog.js:448 js/ui/extensionDownloader.js:189
#: js/ui/shellMountOperation.js:390 js/ui/shellMountOperation.js:399
#: js/ui/status/network.js:899
msgid "Cancel"
@@ -774,28 +774,32 @@ msgstr "Freqüent"
msgid "All"
msgstr "Totes"
#: js/ui/appDisplay.js:1751
msgid "Rename"
msgstr "Canvia el nom"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2233 js/ui/panel.js:77
#: js/ui/appDisplay.js:2397 js/ui/panel.js:77
msgid "Open Windows"
msgstr "Obre finestres"
#: js/ui/appDisplay.js:2252 js/ui/panel.js:84
#: js/ui/appDisplay.js:2416 js/ui/panel.js:84
msgid "New Window"
msgstr "Finestra nova"
#: js/ui/appDisplay.js:2264
#: js/ui/appDisplay.js:2428
msgid "Launch using Dedicated Graphics Card"
msgstr "Inicia usant una targeta gràfica dedicada"
#: js/ui/appDisplay.js:2293 js/ui/dash.js:240
#: js/ui/appDisplay.js:2457 js/ui/dash.js:240
msgid "Remove from Favorites"
msgstr "Suprimeix dels preferits"
#: js/ui/appDisplay.js:2299
#: js/ui/appDisplay.js:2463
msgid "Add to Favorites"
msgstr "Afegeix als preferits"
#: js/ui/appDisplay.js:2309 js/ui/panel.js:95
#: js/ui/appDisplay.js:2473 js/ui/panel.js:95
msgid "Show Details"
msgstr "Mostra els detalls"
@@ -825,7 +829,7 @@ msgstr "Auriculars"
msgid "Headset"
msgstr "Auriculars amb micròfon"
#: js/ui/audioDeviceSelection.js:64 js/ui/status/volume.js:241
#: js/ui/audioDeviceSelection.js:64 js/ui/status/volume.js:248
msgid "Microphone"
msgstr "Micròfon"
@@ -1328,13 +1332,13 @@ msgid "Other users are logged in."
msgstr "Altres usuaris tenen la sessió oberta."
#. Translators: Remote here refers to a remote session, like a ssh login
#: js/ui/endSessionDialog.js:647
#: js/ui/endSessionDialog.js:650
#, javascript-format
msgid "%s (remote)"
msgstr "%s (remot)"
#. Translators: Console here refers to a tty like a VT console
#: js/ui/endSessionDialog.js:650
#: js/ui/endSessionDialog.js:653
#, javascript-format
msgid "%s (console)"
msgstr "%s (consola)"
@@ -1412,9 +1416,9 @@ msgid ""
"row. This turns off the Sticky Keys feature, which affects the way your "
"keyboard works."
msgstr ""
"Heu premut dos tecles juntes, o la tecla de majúscules 5 cops seguides. Això "
"desactiva la funcionalitat de les tecles enganxoses, que afecta la manera en "
"què funciona el teclat."
"Heu premut dues tecles juntes, o la tecla de majúscules 5 cops seguides. "
"Això desactiva la funcionalitat de les tecles enganxoses, que afecta la "
"manera en què funciona el teclat."
#: js/ui/kbdA11yDialog.js:58
msgid "Leave On"
@@ -1489,7 +1493,7 @@ msgstr "Mostra el codi font"
msgid "Web Page"
msgstr "Pàgina web"
#: js/ui/messageTray.js:1462
#: js/ui/messageTray.js:1461
msgid "System Information"
msgstr "Informació de l'ordinador"
@@ -1618,7 +1622,7 @@ msgid_plural "%d new notifications"
msgstr[0] "%d notificació nova"
msgstr[1] "%d notificacions noves"
#: js/ui/screenShield.js:444 js/ui/status/system.js:269
#: js/ui/screenShield.js:444 js/ui/status/system.js:260
msgid "Lock"
msgstr "Bloqueja"
@@ -1641,15 +1645,15 @@ msgstr "No es pot blocar"
msgid "Lock was blocked by an application"
msgstr "Una aplicació està bloquejant el bloqueig"
#: js/ui/search.js:647
#: js/ui/search.js:668
msgid "Searching…"
msgstr "S'està cercant…"
#: js/ui/search.js:649
#: js/ui/search.js:670
msgid "No results."
msgstr "No s'ha trobat cap resultat."
#: js/ui/search.js:773
#: js/ui/search.js:794
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
@@ -1794,7 +1798,7 @@ msgstr "Desactivat"
msgid "On"
msgstr "Activat"
#: js/ui/status/brightness.js:37
#: js/ui/status/brightness.js:38
msgid "Brightness"
msgstr "Brillantor"
@@ -2134,27 +2138,27 @@ msgstr "Desactiva"
msgid "Airplane Mode On"
msgstr "El mode d'avió és actiu"
#: js/ui/status/system.js:201
#: js/ui/status/system.js:192
msgid "Switch User"
msgstr "Canvia d'usuari"
#: js/ui/status/system.js:213
#: js/ui/status/system.js:204
msgid "Log Out"
msgstr "Surt"
#: js/ui/status/system.js:225
#: js/ui/status/system.js:216
msgid "Account Settings"
msgstr "Paràmetres del compte"
#: js/ui/status/system.js:254
#: js/ui/status/system.js:245
msgid "Orientation Lock"
msgstr "Bloqueja l'orientació"
#: js/ui/status/system.js:280
#: js/ui/status/system.js:271
msgid "Suspend"
msgstr "Atura temporalment"
#: js/ui/status/system.js:290
#: js/ui/status/system.js:281
msgid "Power Off"
msgstr "Apaga"
@@ -2194,11 +2198,11 @@ msgstr "S'ha produït un error d'autorització a Thunderbolt"
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "No s'ha pogut autoritzar el dispositiu Thunderbolt: %s"
#: js/ui/status/volume.js:128
#: js/ui/status/volume.js:129
msgid "Volume changed"
msgstr "S'ha canviat el volum"
#: js/ui/status/volume.js:193
#: js/ui/status/volume.js:200
msgid "Volume"
msgstr "Volum"
@@ -2251,22 +2255,22 @@ msgstr "Cerca"
msgid "“%s” is ready"
msgstr "«%s» ja està a punt"
#: js/ui/windowManager.js:54
#: js/ui/windowManager.js:55
msgid "Do you want to keep these display settings?"
msgstr "Voleu 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:66
#: js/ui/windowManager.js:67
msgid "Revert Settings"
msgstr "Descarta els canvis"
#: js/ui/windowManager.js:69
#: js/ui/windowManager.js:70
msgid "Keep Changes"
msgstr "Mantén els canvis"
#: js/ui/windowManager.js:87
#: js/ui/windowManager.js:88
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -2275,7 +2279,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:683
#: js/ui/windowManager.js:684
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2348,19 +2352,327 @@ msgstr "Mou a la pantalla de la dreta"
msgid "Evolution Calendar"
msgstr "Calendari de l'Evolution"
#: src/main.c:460
#: src/extensions-tool/command-create.c:189
#, c-format
msgid ""
"Name should be a very short (ideally descriptive) string.\n"
"Examples are: %s"
msgstr ""
"El nom ha de ser una cadena molt curta (idealment descriptiva).\n"
"Per exemple: %s"
#: src/extensions-tool/command-create.c:192 src/extensions-tool/main.c:169
msgid "Name"
msgstr "Nom"
#: src/extensions-tool/command-create.c:203
#, c-format
msgid ""
"Description is a single-sentence explanation of what your extension does.\n"
"Examples are: %s"
msgstr ""
"La descripció és una explicació d'una frase de què fa l'extensió.\n"
"Per exemple: %s"
#: src/extensions-tool/command-create.c:206 src/extensions-tool/main.c:172
msgid "Description"
msgstr "Descripció"
#: src/extensions-tool/command-create.c:217
msgid ""
"UUID is a globally-unique identifier for your extension.\n"
"This should be in the format of an email address (clicktofocus@janedoe."
"example.com)\n"
msgstr ""
"L'UUID és un identificador únic global per l'extensió\n"
"Ha de tenir el format d'una adreça de correu (exemple@softcatala.org)\n"
#: src/extensions-tool/command-create.c:239
msgid "The unique identifier of the new extension"
msgstr "L'identificador únic de l'extensió nova"
#: src/extensions-tool/command-create.c:242
msgid "NAME"
msgstr "NOM"
#: src/extensions-tool/command-create.c:243
msgid "The user-visible name of the new extension"
msgstr "El nom visible a l'usuari de l'extensió nova"
#: src/extensions-tool/command-create.c:245
msgid "DESCRIPTION"
msgstr "DESCRIPCIÓ"
#: src/extensions-tool/command-create.c:247
msgid "A short description of what the extension does"
msgstr "Una descripció curta del que fa l'extensió"
#: src/extensions-tool/command-create.c:250
msgid "Enter extension information interactively"
msgstr "Introduïu la informació de l'extensió interactivament"
#: src/extensions-tool/command-create.c:258
msgid "Create a new extension"
msgstr "Crea una extensió nova"
#: src/extensions-tool/command-create.c:275
#: src/extensions-tool/command-list.c:158
msgid "Unknown arguments"
msgstr "Arguments desconeguts"
#: src/extensions-tool/command-create.c:284
msgid "UUID, name and description are required"
msgstr "Calen l'UUID, el nom i la descripció"
#: src/extensions-tool/command-disable.c:57
msgid "Disable an extension"
msgstr "Inhabilita una extensió"
#: src/extensions-tool/command-disable.c:74
#: src/extensions-tool/command-enable.c:74
#: src/extensions-tool/command-info.c:96
#: src/extensions-tool/command-prefs.c:107
#: src/extensions-tool/command-reset.c:74
#: src/extensions-tool/command-uninstall.c:89
msgid "No UUID given"
msgstr "No s'ha donat un UUID"
#: src/extensions-tool/command-disable.c:79
#: src/extensions-tool/command-enable.c:79
#: src/extensions-tool/command-info.c:101
#: src/extensions-tool/command-prefs.c:112
#: src/extensions-tool/command-reset.c:79
#: src/extensions-tool/command-uninstall.c:94
msgid "More than one UUID given"
msgstr "S'han donat més d'un UUID"
#: src/extensions-tool/command-enable.c:57
msgid "Enable an extension"
msgstr "Habilita una extensió"
#: src/extensions-tool/command-info.c:79
msgid "Show extensions info"
msgstr "Mostra la informació de les extensions"
#: src/extensions-tool/command-install.c:173
msgid "Overwrite an existing extension"
msgstr "Sobreescriu una extensió existent"
#: src/extensions-tool/command-install.c:175
msgid "EXTENSION_BUNDLE"
msgstr "EXTENSION_BUNDLE"
#: src/extensions-tool/command-install.c:184
msgid "Install an extension bundle"
msgstr "Instal·la un paquet d'extensió"
#: src/extensions-tool/command-install.c:201
msgid "No extension bundle specified"
msgstr "No s'ha especificat cap paquet d'extensió"
#: src/extensions-tool/command-install.c:207
msgid "More than one extension bundle specified"
msgstr "S'ha especificat més un paquet d'extensió"
#: src/extensions-tool/command-list.c:118
msgid "Show user-installed extensions"
msgstr "Mostra les extensions d'usuari instal·lades"
#: src/extensions-tool/command-list.c:121
msgid "Show system-installed extensions"
msgstr "Mostra les extensions del sistema instal·lades"
#: src/extensions-tool/command-list.c:124
msgid "Show enabled extensions"
msgstr "Mostra les extensions habilitades"
#: src/extensions-tool/command-list.c:127
msgid "Show disabled extensions"
msgstr "Mostra les extensions inhabilitades"
#: src/extensions-tool/command-list.c:130
msgid "Show extensions with preferences"
msgstr "Mostra les extensions amb preferències"
#: src/extensions-tool/command-list.c:133
msgid "Print extension details"
msgstr "Mostra els detalls de l'extensió"
#: src/extensions-tool/command-list.c:141
msgid "List installed extensions"
msgstr "Llista les extensions instal·lades"
#: src/extensions-tool/command-pack.c:450
msgid "FILE"
msgstr "FITXER"
#: src/extensions-tool/command-pack.c:451
msgid "Additional source to include in the bundle"
msgstr "Font a addicional a incloure al paquet"
#: src/extensions-tool/command-pack.c:454
msgid "SCHEMA"
msgstr "ESQUEMA"
#: src/extensions-tool/command-pack.c:455
msgid "A GSettings schema that should be included"
msgstr "Un esquema del GSettings a incloure"
#: src/extensions-tool/command-pack.c:457
#: src/extensions-tool/command-pack.c:468
msgid "DIRECTORY"
msgstr "DIRECTORI"
#: src/extensions-tool/command-pack.c:459
msgid "The directory where translations are found"
msgstr "El directori on es troben les traduccions"
#: src/extensions-tool/command-pack.c:461
msgid "DOMAIN"
msgstr "DOMINI"
#: src/extensions-tool/command-pack.c:463
msgid "The gettext domain to use for translations"
msgstr "El domini del gettext per a les traduccions"
#: src/extensions-tool/command-pack.c:466
msgid "Overwrite an existing pack"
msgstr "Sobreescriu el paquet existent"
#: src/extensions-tool/command-pack.c:470
msgid "The directory where the pack should be created"
msgstr "Directori on s'ha de crear el paquet"
#: src/extensions-tool/command-pack.c:472
msgid "SOURCE_DIRECTORY"
msgstr "DIRECTORI_FONT"
#: src/extensions-tool/command-pack.c:481
msgid "Create an extension bundle"
msgstr "Crea un paquet d'extensió"
#: src/extensions-tool/command-pack.c:500
msgid "More than one source directory specified"
msgstr "S'han especificat més d'un directori font"
#: src/extensions-tool/command-prefs.c:90
msgid "Opens extension preferences"
msgstr "Obre les preferències de l'extensió"
#: src/extensions-tool/command-reset.c:57
msgid "Reset an extension"
msgstr "Reinicia una extensió"
#: src/extensions-tool/command-uninstall.c:72
msgid "Uninstall an extension"
msgstr "Desinstal·la una extensió"
#: src/extensions-tool/main.c:175
msgid "Path"
msgstr "Camí"
#: src/extensions-tool/main.c:178
msgid "URL"
msgstr "URL"
#: src/extensions-tool/main.c:181
msgid "Original author"
msgstr "Autor original"
#: src/extensions-tool/main.c:184
msgid "Version"
msgstr "Versió"
#: src/extensions-tool/main.c:187
msgid "State"
msgstr "Comarca"
#: src/extensions-tool/main.c:221
msgid "“version” takes no arguments"
msgstr "«version» no té arguments"
#: src/extensions-tool/main.c:223 src/extensions-tool/main.c:243
msgid "Usage:"
msgstr "Ús:"
#: src/extensions-tool/main.c:226
msgid "Print version information and exit."
msgstr "Mostra la informació de la versió i surt."
#: src/extensions-tool/main.c:241 src/extensions-tool/main.c:244
msgid "COMMAND"
msgstr "ORDRE"
#: src/extensions-tool/main.c:244
msgid "[ARGS…]"
msgstr "[ARGS…]"
#: src/extensions-tool/main.c:246
msgid "Commands:"
msgstr "Ordres:"
#: src/extensions-tool/main.c:247
msgid "Print help"
msgstr "Mostra l'ajuda"
#: src/extensions-tool/main.c:248 src/main.c:468
msgid "Print version"
msgstr "Mostra la versió"
#: src/main.c:466
#: src/extensions-tool/main.c:249
msgid "Enable extension"
msgstr "Habilita l'extensió"
#: src/extensions-tool/main.c:250
msgid "Disable extension"
msgstr "Inhabilita l'extensió"
#: src/extensions-tool/main.c:251
msgid "Reset extension"
msgstr "Reinicia l'extensió"
#: src/extensions-tool/main.c:252
msgid "Uninstall extension"
msgstr "Desinstal·la l'extensió"
#: src/extensions-tool/main.c:253
msgid "List extensions"
msgstr "Llista les extensions"
#: src/extensions-tool/main.c:254 src/extensions-tool/main.c:255
msgid "Show extension info"
msgstr "Mostra la informació de l'extensió"
#: src/extensions-tool/main.c:256
msgid "Open extension preferences"
msgstr "Obre les preferències de l'extensió"
#: src/extensions-tool/main.c:257
msgid "Create extension"
msgstr "Crea extensió"
#: src/extensions-tool/main.c:258
msgid "Package extension"
msgstr "Paquet d'extensió"
#: src/extensions-tool/main.c:259
msgid "Install extension bundle"
msgstr "Instal·la un paquet d'extensió"
#: src/extensions-tool/main.c:261
#, c-format
msgid "Use “%s” to get detailed help.\n"
msgstr "Feu servir «%s» per obtenir ajuda detallada.\n"
#: src/main.c:474
msgid "Mode used by GDM for login screen"
msgstr "El mode que utilitzarà el GDM per a la pantalla d'entrada"
#: src/main.c:472
#: src/main.c:480
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Utilitza un mode específic, p. ex. «gdm» per la pantalla d'entrada"
#: src/main.c:478
#: src/main.c:486
msgid "List possible modes"
msgstr "Llista els modes possibles"
@@ -2484,9 +2796,6 @@ msgstr "Sons del sistema"
#~ msgid "Not In Use"
#~ msgstr "No s'usa"
#~ msgid "GNOME Shell Extension Preferences"
#~ msgstr "Preferències de les extensions del GNOME Shell"
#~ msgid "Show the week date in the calendar"
#~ msgstr "Mostra el número de la setmana al calendari"

1325
po/cs.po

File diff suppressed because it is too large Load Diff

1283
po/de.po

File diff suppressed because it is too large Load Diff

1781
po/el.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1294
po/eo.po

File diff suppressed because it is too large Load Diff

418
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: 2019-08-12 19:40+0000\n"
"PO-Revision-Date: 2019-08-20 12:07+0200\n"
"POT-Creation-Date: 2019-09-11 17:13+0000\n"
"PO-Revision-Date: 2019-09-13 08:26+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"
@@ -45,7 +45,7 @@ msgid "Open the application menu"
msgstr "Abrir el menú de la aplicación"
#: data/gnome-shell-extension-prefs.desktop.in.in:4
#: js/extensionPrefs/main.js:208
#: js/extensionPrefs/main.js:211
msgid "Shell Extensions"
msgstr "Extensiones de la Shell"
@@ -350,12 +350,10 @@ msgstr ""
"trabajo actual. Si no, se incluyen todas las ventanas."
#: data/org.gnome.shell.gschema.xml.in:234
#| msgid "Location"
msgid "Locations"
msgstr "Ubicaciones"
#: data/org.gnome.shell.gschema.xml.in:235
#| msgid "The location for which to show a forecast"
msgid "The locations to show in world clocks"
msgstr "Las ubicaciones que mostrar en los relojes del mundo"
@@ -412,11 +410,11 @@ msgstr ""
msgid "Network Login"
msgstr "Inicio de sesión de la red"
#: js/extensionPrefs/main.js:101 js/extensionPrefs/main.js:531
#: js/extensionPrefs/main.js:104 js/extensionPrefs/main.js:534
msgid "Somethings gone wrong"
msgstr "Algo ha fallado"
#: js/extensionPrefs/main.js:108
#: js/extensionPrefs/main.js:111
msgid ""
"Were very sorry, but theres been a problem: the settings for this "
"extension cant be displayed. We recommend that you report the issue to the "
@@ -425,27 +423,27 @@ msgstr ""
"Ha habido un problema: no se puede mostrar la configuración para esta "
"extensión. Se recomienda que informe del error a los autores de la extensión."
#: js/extensionPrefs/main.js:115
#: js/extensionPrefs/main.js:118
msgid "Technical Details"
msgstr "Detalles técnicos"
#: js/extensionPrefs/main.js:150
#: js/extensionPrefs/main.js:153
msgid "Copy Error"
msgstr "Copiar error"
#: js/extensionPrefs/main.js:177
#: js/extensionPrefs/main.js:180
msgid "Homepage"
msgstr "Página web"
#: js/extensionPrefs/main.js:178
#: js/extensionPrefs/main.js:181
msgid "Visit extension homepage"
msgstr "Visitar la página web de la extensión"
#: js/extensionPrefs/main.js:473
#: js/extensionPrefs/main.js:476
msgid "No Extensions Installed"
msgstr "No hay extensiones instaladas"
#: js/extensionPrefs/main.js:483
#: js/extensionPrefs/main.js:486
msgid ""
"Extensions can be installed through Software or <a href=\"https://extensions."
"gnome.org\">extensions.gnome.org</a>."
@@ -453,11 +451,11 @@ msgstr ""
"Las extensiones se puede instalar mediante software o <a href=\"https://"
"extensions.gnome.org\">extensions.gnome.org</a>."
#: js/extensionPrefs/main.js:498
#: js/extensionPrefs/main.js:501
msgid "Browse in Software"
msgstr "Buscar en Software"
#: js/extensionPrefs/main.js:538
#: js/extensionPrefs/main.js:541
msgid ""
"Were very sorry, but it was not possible to get the list of installed "
"extensions. Make sure you are logged into GNOME and try again."
@@ -467,7 +465,7 @@ msgstr ""
#: js/gdm/authPrompt.js:139 js/ui/audioDeviceSelection.js:53
#: js/ui/components/networkAgent.js:120 js/ui/components/polkitAgent.js:138
#: js/ui/endSessionDialog.js:445 js/ui/extensionDownloader.js:189
#: js/ui/endSessionDialog.js:448 js/ui/extensionDownloader.js:189
#: js/ui/shellMountOperation.js:390 js/ui/shellMountOperation.js:399
#: js/ui/status/network.js:899
msgid "Cancel"
@@ -755,7 +753,6 @@ msgid "Grant Access"
msgstr "Conceder acceso"
#: js/ui/appDisplay.js:854
#| msgid "Home Folder"
msgid "Unnamed Folder"
msgstr "Carpeta sin nombre"
@@ -771,28 +768,32 @@ msgstr "Frecuentes"
msgid "All"
msgstr "Todas"
#: js/ui/appDisplay.js:1751
msgid "Rename"
msgstr "Renombrar"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2233 js/ui/panel.js:77
#: js/ui/appDisplay.js:2397 js/ui/panel.js:77
msgid "Open Windows"
msgstr "Ventanas abiertas"
#: js/ui/appDisplay.js:2252 js/ui/panel.js:84
#: js/ui/appDisplay.js:2416 js/ui/panel.js:84
msgid "New Window"
msgstr "Ventana nueva"
#: js/ui/appDisplay.js:2264
#: js/ui/appDisplay.js:2428
msgid "Launch using Dedicated Graphics Card"
msgstr "Lanzar usando la tarjeta gráfica dedicada"
#: js/ui/appDisplay.js:2293 js/ui/dash.js:240
#: js/ui/appDisplay.js:2457 js/ui/dash.js:240
msgid "Remove from Favorites"
msgstr "Quitar de los favoritos"
#: js/ui/appDisplay.js:2299
#: js/ui/appDisplay.js:2463
msgid "Add to Favorites"
msgstr "Añadir a los favoritos"
#: js/ui/appDisplay.js:2309 js/ui/panel.js:95
#: js/ui/appDisplay.js:2473 js/ui/panel.js:95
msgid "Show Details"
msgstr "Mostrar detalles"
@@ -822,7 +823,7 @@ msgstr "Auriculares"
msgid "Headset"
msgstr "Manos libres"
#: js/ui/audioDeviceSelection.js:64 js/ui/status/volume.js:241
#: js/ui/audioDeviceSelection.js:64 js/ui/status/volume.js:248
msgid "Microphone"
msgstr "Micrófono"
@@ -1322,13 +1323,13 @@ msgid "Other users are logged in."
msgstr "Hay otros usuarios con la sesión iniciada."
#. Translators: Remote here refers to a remote session, like a ssh login
#: js/ui/endSessionDialog.js:647
#: js/ui/endSessionDialog.js:650
#, javascript-format
msgid "%s (remote)"
msgstr "%s (remoto)"
#. Translators: Console here refers to a tty like a VT console
#: js/ui/endSessionDialog.js:650
#: js/ui/endSessionDialog.js:653
#, javascript-format
msgid "%s (console)"
msgstr "%s (consola)"
@@ -1483,7 +1484,7 @@ msgstr "Ver fuente"
msgid "Web Page"
msgstr "Página web"
#: js/ui/messageTray.js:1462
#: js/ui/messageTray.js:1461
msgid "System Information"
msgstr "Información del sistema"
@@ -1612,7 +1613,7 @@ msgid_plural "%d new notifications"
msgstr[0] "%d notificación nueva"
msgstr[1] "%d notificaciones nuevas"
#: js/ui/screenShield.js:444 js/ui/status/system.js:269
#: js/ui/screenShield.js:444 js/ui/status/system.js:260
msgid "Lock"
msgstr "Bloquear"
@@ -1635,15 +1636,15 @@ msgstr "No se pudo bloquear"
msgid "Lock was blocked by an application"
msgstr "Una aplicación impidió el bloqueo"
#: js/ui/search.js:647
#: js/ui/search.js:668
msgid "Searching…"
msgstr "Buscando…"
#: js/ui/search.js:649
#: js/ui/search.js:670
msgid "No results."
msgstr "No se encontraron resultados."
#: js/ui/search.js:773
#: js/ui/search.js:794
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
@@ -1789,7 +1790,7 @@ msgstr "Desconectado"
msgid "On"
msgstr "Encendido"
#: js/ui/status/brightness.js:37
#: js/ui/status/brightness.js:38
msgid "Brightness"
msgstr "Brillo"
@@ -2128,27 +2129,27 @@ msgstr "Apagar"
msgid "Airplane Mode On"
msgstr "Modo avión activado"
#: js/ui/status/system.js:201
#: js/ui/status/system.js:192
msgid "Switch User"
msgstr "Cambiar de usuario"
#: js/ui/status/system.js:213
#: js/ui/status/system.js:204
msgid "Log Out"
msgstr "Cerrar la sesión"
#: js/ui/status/system.js:225
#: js/ui/status/system.js:216
msgid "Account Settings"
msgstr "Configuración de la cuenta"
#: js/ui/status/system.js:254
#: js/ui/status/system.js:245
msgid "Orientation Lock"
msgstr "Bloqueo de orientación"
#: js/ui/status/system.js:280
#: js/ui/status/system.js:271
msgid "Suspend"
msgstr "Suspender"
#: js/ui/status/system.js:290
#: js/ui/status/system.js:281
msgid "Power Off"
msgstr "Apagar"
@@ -2187,11 +2188,11 @@ msgstr "Error de autorización de Thunderbolt"
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "No se pudo autorizar el dispositivo Thunderbolt: %s"
#: js/ui/status/volume.js:128
#: js/ui/status/volume.js:129
msgid "Volume changed"
msgstr "Volumen modificado"
#: js/ui/status/volume.js:193
#: js/ui/status/volume.js:200
msgid "Volume"
msgstr "Volumen"
@@ -2244,22 +2245,22 @@ msgstr "Buscar"
msgid "“%s” is ready"
msgstr "«%s» está preparado"
#: js/ui/windowManager.js:54
#: js/ui/windowManager.js:55
msgid "Do you want to 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:66
#: js/ui/windowManager.js:67
msgid "Revert Settings"
msgstr "Revertir configuración"
#: js/ui/windowManager.js:69
#: js/ui/windowManager.js:70
msgid "Keep Changes"
msgstr "Mantener cambios"
#: js/ui/windowManager.js:87
#: js/ui/windowManager.js:88
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -2268,7 +2269,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:683
#: js/ui/windowManager.js:684
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2341,21 +2342,331 @@ msgstr "Mover a la pantalla de la derecha"
msgid "Evolution Calendar"
msgstr "Calendario de Evolution"
#: src/main.c:460
#: src/extensions-tool/command-create.c:189
#, c-format
msgid ""
"Name should be a very short (ideally descriptive) string.\n"
"Examples are: %s"
msgstr ""
"El nombre debe ser una cadena (descriptiva) muy corta.\n"
"Algunos ejemplos: %s"
#: src/extensions-tool/command-create.c:192 src/extensions-tool/main.c:169
msgid "Name"
msgstr "Nombre"
#: src/extensions-tool/command-create.c:203
#, c-format
msgid ""
"Description is a single-sentence explanation of what your extension does.\n"
"Examples are: %s"
msgstr ""
"La descripción es una única frase para explicar qué hace su extensión.\n"
"Algunos ejemplos: %s"
#: src/extensions-tool/command-create.c:206 src/extensions-tool/main.c:172
msgid "Description"
msgstr "Descripción"
#: src/extensions-tool/command-create.c:217
msgid ""
"UUID is a globally-unique identifier for your extension.\n"
"This should be in the format of an email address (clicktofocus@janedoe."
"example.com)\n"
msgstr ""
"El UUID es un identificador único global para su extensión.\n"
"Normalmente debe estar en formato de dirección de correo electrónico "
"(pulsarparaenfocar@usuario.ejemplo.com)\n"
#: src/extensions-tool/command-create.c:239
msgid "The unique identifier of the new extension"
msgstr "El identificador único de la nueva extensión"
#: src/extensions-tool/command-create.c:242
msgid "NAME"
msgstr "NOMBRE"
#: src/extensions-tool/command-create.c:243
msgid "The user-visible name of the new extension"
msgstr "El nombre visible por el usuario de esta extensión"
#: src/extensions-tool/command-create.c:245
msgid "DESCRIPTION"
msgstr "DESCRIPCIÓN"
#: src/extensions-tool/command-create.c:247
msgid "A short description of what the extension does"
msgstr "Una breve descripción de qué hace la extensión"
#: src/extensions-tool/command-create.c:250
msgid "Enter extension information interactively"
msgstr "Introduzca la información de la extensión interactivamente"
#: src/extensions-tool/command-create.c:258
msgid "Create a new extension"
msgstr "Crear una extensión nueva"
#: src/extensions-tool/command-create.c:275
#: src/extensions-tool/command-list.c:158
msgid "Unknown arguments"
msgstr "Argumentos desconocidos"
#: src/extensions-tool/command-create.c:284
msgid "UUID, name and description are required"
msgstr "Se necesita el UUID, el nombre y la descripción"
#: src/extensions-tool/command-disable.c:57
msgid "Disable an extension"
msgstr "Desactivar una extensión"
#: src/extensions-tool/command-disable.c:74
#: src/extensions-tool/command-enable.c:74
#: src/extensions-tool/command-info.c:96
#: src/extensions-tool/command-prefs.c:107
#: src/extensions-tool/command-reset.c:74
#: src/extensions-tool/command-uninstall.c:89
msgid "No UUID given"
msgstr "No se ha especificado el UUID"
#: src/extensions-tool/command-disable.c:79
#: src/extensions-tool/command-enable.c:79
#: src/extensions-tool/command-info.c:101
#: src/extensions-tool/command-prefs.c:112
#: src/extensions-tool/command-reset.c:79
#: src/extensions-tool/command-uninstall.c:94
msgid "More than one UUID given"
msgstr "Se ha proporcionado más de un UUID"
#: src/extensions-tool/command-enable.c:57
msgid "Enable an extension"
msgstr "Activar una extensión"
#: src/extensions-tool/command-info.c:79
msgid "Show extensions info"
msgstr "Mostrar información de las extensiones"
#: src/extensions-tool/command-install.c:173
msgid "Overwrite an existing extension"
msgstr "Sobrescribir una extensión que ya exista"
#: src/extensions-tool/command-install.c:175
msgid "EXTENSION_BUNDLE"
msgstr "EXTENSION_BUNDLE"
#: src/extensions-tool/command-install.c:184
msgid "Install an extension bundle"
msgstr "Instalar un conjunto de extensiones"
#: src/extensions-tool/command-install.c:201
msgid "No extension bundle specified"
msgstr "No se ha especificado un conjunto de extensiones"
#: src/extensions-tool/command-install.c:207
msgid "More than one extension bundle specified"
msgstr "Se ha especificado más de un conjunto de extensiones"
#: src/extensions-tool/command-list.c:118
msgid "Show user-installed extensions"
msgstr "Mostrar las extensiones de usuario instaladas"
#: src/extensions-tool/command-list.c:121
msgid "Show system-installed extensions"
msgstr "Mostrar las extensiones del sistema instaladas"
#: src/extensions-tool/command-list.c:124
msgid "Show enabled extensions"
msgstr "Mostrar extensiones activadas"
#: src/extensions-tool/command-list.c:127
msgid "Show disabled extensions"
msgstr "Mostrar extensiones desactivadas"
#: src/extensions-tool/command-list.c:130
msgid "Show extensions with preferences"
msgstr "Mostrar extensiones con preferencias"
#: src/extensions-tool/command-list.c:133
msgid "Print extension details"
msgstr "Mostrar detalles de la extensión"
#: src/extensions-tool/command-list.c:141
msgid "List installed extensions"
msgstr "Listar las extensiones instaladas"
#: src/extensions-tool/command-pack.c:450
msgid "FILE"
msgstr "ARCHIVO"
#: src/extensions-tool/command-pack.c:451
msgid "Additional source to include in the bundle"
msgstr "Fuente adicional que incluir en el conjunto"
#: src/extensions-tool/command-pack.c:454
msgid "SCHEMA"
msgstr "ESQUEMA"
#: src/extensions-tool/command-pack.c:455
msgid "A GSettings schema that should be included"
msgstr "Se debe incluir un esquema de GSettings"
#: src/extensions-tool/command-pack.c:457
#: src/extensions-tool/command-pack.c:468
msgid "DIRECTORY"
msgstr "CARPETA"
#: src/extensions-tool/command-pack.c:459
msgid "The directory where translations are found"
msgstr "La carpeta donde están las traducciones"
#: src/extensions-tool/command-pack.c:461
msgid "DOMAIN"
msgstr "DOMINIO"
#: src/extensions-tool/command-pack.c:463
msgid "The gettext domain to use for translations"
msgstr "El dominio de gettext que usar para las traducciones"
#: src/extensions-tool/command-pack.c:466
msgid "Overwrite an existing pack"
msgstr "Sobrescribir un paquete existente"
#: src/extensions-tool/command-pack.c:470
msgid "The directory where the pack should be created"
msgstr "La carpeta donde se debe crear el paquete"
#: src/extensions-tool/command-pack.c:472
msgid "SOURCE_DIRECTORY"
msgstr "CARPETA_FUENTE"
#: src/extensions-tool/command-pack.c:481
msgid "Create an extension bundle"
msgstr "Crear un conjunto de extensiones"
#: src/extensions-tool/command-pack.c:500
msgid "More than one source directory specified"
msgstr "Se ha especificado más de una carpeta fuente"
#: src/extensions-tool/command-prefs.c:90
msgid "Opens extension preferences"
msgstr "abre las preferencias de la extensión"
#: src/extensions-tool/command-reset.c:57
msgid "Reset an extension"
msgstr "Restablecer una extensión"
#: src/extensions-tool/command-uninstall.c:72
msgid "Uninstall an extension"
msgstr "Desinstalar una extensión"
#: src/extensions-tool/main.c:175
msgid "Path"
msgstr "Ruta"
#: src/extensions-tool/main.c:178
msgid "URL"
msgstr "URL"
#: src/extensions-tool/main.c:181
msgid "Original author"
msgstr "Autor original"
#: src/extensions-tool/main.c:184
msgid "Version"
msgstr "Versión"
#: src/extensions-tool/main.c:187
msgid "State"
msgstr "Estado"
#: src/extensions-tool/main.c:221
msgid "“version” takes no arguments"
msgstr "«version» no lleva argumentos"
#: src/extensions-tool/main.c:223 src/extensions-tool/main.c:243
msgid "Usage:"
msgstr "Uso:"
#: src/extensions-tool/main.c:226
msgid "Print version information and exit."
msgstr "Mostrar información de la versión y salir."
#: src/extensions-tool/main.c:241 src/extensions-tool/main.c:244
msgid "COMMAND"
msgstr "COMANDO"
#: src/extensions-tool/main.c:244
msgid "[ARGS…]"
msgstr "[ARGS…]"
#: src/extensions-tool/main.c:246
msgid "Commands:"
msgstr "Comandos:"
#: src/extensions-tool/main.c:247
msgid "Print help"
msgstr "Mostrar ayuda"
#: src/extensions-tool/main.c:248 src/main.c:468
msgid "Print version"
msgstr "Imprimir versión"
#: src/main.c:466
#: src/extensions-tool/main.c:249
msgid "Enable extension"
msgstr "Activar extensión"
#: src/extensions-tool/main.c:250
msgid "Disable extension"
msgstr "Desactivar extensión"
#: src/extensions-tool/main.c:251
msgid "Reset extension"
msgstr "Restablecer extensión"
#: src/extensions-tool/main.c:252
msgid "Uninstall extension"
msgstr "Desinstalar extensión"
#: src/extensions-tool/main.c:253
msgid "List extensions"
msgstr "Listar extensiones"
#: src/extensions-tool/main.c:254 src/extensions-tool/main.c:255
msgid "Show extension info"
msgstr "Mostrar información de la extensión"
#: src/extensions-tool/main.c:256
msgid "Open extension preferences"
msgstr "Abrir las preferencias de la extensión"
#: src/extensions-tool/main.c:257
msgid "Create extension"
msgstr "Crear extensión"
#: src/extensions-tool/main.c:258
msgid "Package extension"
msgstr "Extensión del paquete"
#: src/extensions-tool/main.c:259
msgid "Install extension bundle"
msgstr "Instalar conjunto de extensiones"
#: src/extensions-tool/main.c:261
#, c-format
#| msgid "Use %s to get detailed help.\n"
msgid "Use “%s” to get detailed help.\n"
msgstr "Use «%s» para obtener ayuda detallada.\n"
#: src/main.c:474
msgid "Mode used by GDM for login screen"
msgstr "Modo usado por GDM para la pantalla de inicio"
#: src/main.c:472
#: src/main.c:480
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr ""
"Usar un modo específico, por ejemplo, «gdm» para la pantalla de inicio de "
"sesión"
#: src/main.c:478
#: src/main.c:486
msgid "List possible modes"
msgstr "Listar los modos posibles"
@@ -2473,9 +2784,6 @@ msgstr "Sonidos del sistema"
#~ msgid "Media"
#~ msgstr "Medios"
#~ msgid "GNOME Shell Extension Preferences"
#~ msgstr "Preferencias de las extensiones de GNOME Shell"
#~ msgid "%d x %d"
#~ msgstr "%d x %d"
@@ -2763,9 +3071,6 @@ msgstr "Sonidos del sistema"
#~ "Esta clave sobrescribe la clave en org.gnome.desktop.wm.preferences al "
#~ "ejecutar GNOME Shell."
#~ msgid "Extension"
#~ msgstr "Extensión"
#~ msgid "Select an extension to configure using the combobox above."
#~ msgstr ""
#~ "Seleccione una extensión que configurar usando la caja combinada de "
@@ -2871,9 +3176,6 @@ msgstr "Sonidos del sistema"
#~ "Usado internamente para guardar el último estado de presencia de la "
#~ "sesión del usuario. El valor aquí es de la GsmPresenceStatus."
#~ msgid "Session"
#~ msgstr "Sesión"
#~ msgid "Click Log Out to quit these applications and log out of the system."
#~ msgstr ""
#~ "Pulse «Cerrar la sesión» para salir de esas aplicaciones y cerrar la "

351
po/eu.po
View File

@@ -8,8 +8,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: 2019-08-12 19:40+0000\n"
"PO-Revision-Date: 2019-08-14 10:00+0100\n"
"POT-Creation-Date: 2019-08-21 23:18+0000\n"
"PO-Revision-Date: 2019-08-22 10:00+0100\n"
"Last-Translator: Asier Sarasua Garmendia <asier.sarasua@gmail.com>\n"
"Language-Team: Basque <librezale@librezale.eus>\n"
"Language: eu\n"
@@ -44,7 +44,7 @@ msgid "Open the application menu"
msgstr "Ireki aplikazioen menua"
#: data/gnome-shell-extension-prefs.desktop.in.in:4
#: js/extensionPrefs/main.js:208
#: js/extensionPrefs/main.js:211
msgid "Shell Extensions"
msgstr "Shell-en hedapenak"
@@ -145,13 +145,13 @@ msgstr "Ikuskatzailearen elkarrizketa-koadroaren historia"
#: data/org.gnome.shell.gschema.xml.in:78
msgid "Always show the “Log out” menu item in the user menu."
msgstr "Erakutsi beti erabiltzaile-menuko “Amaitu saioa menu-elementua."
msgstr "Erakutsi beti erabiltzaile-menuko “Amaitu saioa menu-elementua."
#: data/org.gnome.shell.gschema.xml.in:79
msgid ""
"This key overrides the automatic hiding of the “Log out” menu item in single-"
"user, single-session situations."
msgstr "Gako honek “Amaitu saioa menu-elementua automatikoki ezkutatzea gainidazten du, saio bakarreko egoeran."
msgstr "Gako honek “Amaitu saioa menu-elementua automatikoki ezkutatzea gainidazten du, saio bakarreko egoeran."
#: data/org.gnome.shell.gschema.xml.in:86
msgid ""
@@ -164,7 +164,7 @@ msgid ""
"filesystem is mounted. If the password can be saved for future use a "
"“Remember Password” checkbox will be present. This key sets the default "
"state of the checkbox."
msgstr "Shell-ak pasahitza eskatuko du zifratutako gailu bat edo urruneko fitxategi-sistema bat muntatzen denean. Pasahitza geroago erabiltzeko gorde badaiteke, “Gogoratu pasahitza kontrol-laukia agertuko da. Gako honek kontrol-laukiaren egoera lehenetsia ezartzen du."
msgstr "Shell-ak pasahitza eskatuko du zifratutako gailu bat edo urruneko fitxategi-sistema bat muntatzen denean. Pasahitza geroago erabiltzeko gorde badaiteke, “Gogoratu pasahitza kontrol-laukia agertuko da. Gako honek kontrol-laukiaren egoera lehenetsia ezartzen du."
#: data/org.gnome.shell.gschema.xml.in:96
msgid ""
@@ -199,12 +199,12 @@ msgstr "Aplikazioen menua irekitzeko laster-tekla."
#: data/org.gnome.shell.gschema.xml.in:126
msgid "Keybinding to open the “Show Applications” view"
msgstr "“Erakutsi aplikazioak bista irekitzeko laster-tekla"
msgstr "“Erakutsi aplikazioak bista irekitzeko laster-tekla"
#: data/org.gnome.shell.gschema.xml.in:127
msgid ""
"Keybinding to open the “Show Applications” view of the Activities Overview."
msgstr "Jarduerak ikuspegi orokorraren “Erakutsi aplikazioak ikuspegia irekitzeko laster-tekla."
msgstr "Jarduerak ikuspegi orokorraren “Erakutsi aplikazioak ikuspegia irekitzeko laster-tekla."
#: data/org.gnome.shell.gschema.xml.in:134
msgid "Keybinding to open the overview"
@@ -286,7 +286,7 @@ msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are “thumbnail-only” (shows a thumbnail of the window), “app-icon-"
"only” (shows only the application icon) or “both”."
msgstr "Leihoak aldatzaileak nola erakusten diren konfiguratzen du. Aukera posibleak “thumbnail-only (leihoaren miniatura erakustea), “app-icon-only (aplikazio-ikonoa erakustea soilik) edo “both (biak)."
msgstr "Leihoak aldatzaileak nola erakusten diren konfiguratzen du. Aukera posibleak “thumbnail-only (leihoaren miniatura erakustea), “app-icon-only (aplikazio-ikonoa erakustea soilik) edo “both (biak)."
#: data/org.gnome.shell.gschema.xml.in:224
msgid ""
@@ -351,48 +351,48 @@ msgstr "Fokuaren aldaketaren atzerapena saguaren moduan erakusleak mugitzeari ut
msgid "Network Login"
msgstr "Sareko saio-hasiera"
#: js/extensionPrefs/main.js:101 js/extensionPrefs/main.js:531
#: js/extensionPrefs/main.js:104 js/extensionPrefs/main.js:534
msgid "Somethings gone wrong"
msgstr "Zerbait gaizki joan da"
#: js/extensionPrefs/main.js:108
#: js/extensionPrefs/main.js:111
msgid ""
"Were very sorry, but theres been a problem: the settings for this "
"extension cant be displayed. We recommend that you report the issue to the "
"extension authors."
msgstr "Barkatu, arazo bat gertatu da: hedapen honen ezarpenak ezin dira erakutsi. Arazoa hedapenaren egileei jakinarazi diezaiezun gomendatzen dizugu."
#: js/extensionPrefs/main.js:115
#: js/extensionPrefs/main.js:118
msgid "Technical Details"
msgstr "Xehetasun teknikoak"
#: js/extensionPrefs/main.js:150
#: js/extensionPrefs/main.js:153
msgid "Copy Error"
msgstr "Kopiatze-errorea"
#: js/extensionPrefs/main.js:177
#: js/extensionPrefs/main.js:180
msgid "Homepage"
msgstr "Webgune nagusia"
#: js/extensionPrefs/main.js:178
#: js/extensionPrefs/main.js:181
msgid "Visit extension homepage"
msgstr "Bisitatu hedapenaren webgunea"
#: js/extensionPrefs/main.js:473
#: js/extensionPrefs/main.js:476
msgid "No Extensions Installed"
msgstr "Ez dago hedapenik instalatuta"
#: js/extensionPrefs/main.js:483
#: js/extensionPrefs/main.js:486
msgid ""
"Extensions can be installed through Software or <a href=\"https://extensions."
"gnome.org\">extensions.gnome.org</a>."
msgstr "Hedapenak instalatzeko, Software edo <a href=\"https://extensions.gnome.org\">extensions.gnome.org</a> erabili daiteke."
#: js/extensionPrefs/main.js:498
#: js/extensionPrefs/main.js:501
msgid "Browse in Software"
msgstr "Arakatu softwarean"
#: js/extensionPrefs/main.js:538
#: js/extensionPrefs/main.js:541
msgid ""
"Were very sorry, but it was not possible to get the list of installed "
"extensions. Make sure you are logged into GNOME and try again."
@@ -1695,7 +1695,7 @@ msgstr "Desaktibatuta"
msgid "On"
msgstr "Aktibatuta"
#: js/ui/status/brightness.js:37
#: js/ui/status/brightness.js:38
msgid "Brightness"
msgstr "Distira"
@@ -1968,11 +1968,11 @@ msgstr "Sareko konexioa aktibatzeak huts egin du"
#: js/ui/status/nightLight.js:61
msgid "Night Light Disabled"
msgstr "“Gaueko argia desgaituta"
msgstr "“Gaueko argia desgaituta"
#: js/ui/status/nightLight.js:62
msgid "Night Light On"
msgstr "“Gaueko argia aktibatuta"
msgstr "“Gaueko argia aktibatuta"
#: js/ui/status/nightLight.js:63
msgid "Resume"
@@ -2242,10 +2242,315 @@ msgstr "Eraman eskuineko pantailara"
msgid "Evolution Calendar"
msgstr "Evolution egutegia"
#: src/main.c:460
#: src/extensions-tool/command-create.c:189
#, c-format
msgid ""
"Name should be a very short (ideally descriptive) string.\n"
"Examples are: %s"
msgstr "Izenak kate laburra izan behar du (hobe deskribatzailea bada).\n"
"Adibideak: %s"
#: src/extensions-tool/command-create.c:192 src/extensions-tool/main.c:169
msgid "Name"
msgstr "Izena"
#: src/extensions-tool/command-create.c:203
#, c-format
msgid ""
"Description is a single-sentence explanation of what your extension does.\n"
"Examples are: %s"
msgstr "Deskribapena zure hedapenak egiten duena azaltzen duen esaldi bakarra da.\n"
"Adibideak: %s"
#: src/extensions-tool/command-create.c:206 src/extensions-tool/main.c:172
msgid "Description"
msgstr "Azalpena"
#: src/extensions-tool/command-create.c:217
msgid ""
"UUID is a globally-unique identifier for your extension.\n"
"This should be in the format of an email address (clicktofocus@janedoe."
"example.com)\n"
msgstr "UUIDa zure hedapenaren identifikatzaile esklusiboa da.\n"
"Posta elektronikoko helbide baten formatukoa izan behar du (klikirekitzeko@asier.adibidea.com)\n"
#: src/extensions-tool/command-create.c:239
msgid "The unique identifier of the new extension"
msgstr "Hedapen berriaren identifikatzaile bakarra"
#: src/extensions-tool/command-create.c:242
msgid "NAME"
msgstr "IZENA"
#: src/extensions-tool/command-create.c:243
msgid "The user-visible name of the new extension"
msgstr "Hedapen berriaren izena, erabiltzaileak ikusiko duena"
#: src/extensions-tool/command-create.c:245
msgid "DESCRIPTION"
msgstr "DESKRIBAPENA"
#: src/extensions-tool/command-create.c:247
msgid "A short description of what the extension does"
msgstr "Hedapenak egiten duenaren deskribapen laburra"
#: src/extensions-tool/command-create.c:250
msgid "Enter extension information interactively"
msgstr "Sartu hedapenaren informazioa dinamikoki"
#: src/extensions-tool/command-create.c:258
msgid "Create a new extension"
msgstr "Sortu hedapen berria"
#: src/extensions-tool/command-create.c:275
#: src/extensions-tool/command-list.c:158
msgid "Unknown arguments"
msgstr "Argumentu ezezagunak"
#: src/extensions-tool/command-create.c:284
msgid "UUID, name and description are required"
msgstr "UUIDa, izena eta deskribapena derrigorrezkoak dira"
#: src/extensions-tool/command-disable.c:57
msgid "Disable an extension"
msgstr "Desgaitu hedapen bat"
#: src/extensions-tool/command-disable.c:74
#: src/extensions-tool/command-enable.c:74
#: src/extensions-tool/command-info.c:96
#: src/extensions-tool/command-prefs.c:107
#: src/extensions-tool/command-reset.c:74
#: src/extensions-tool/command-uninstall.c:89
msgid "No UUID given"
msgstr "Ez da UUIDrik eman"
#: src/extensions-tool/command-disable.c:79
#: src/extensions-tool/command-enable.c:79
#: src/extensions-tool/command-info.c:101
#: src/extensions-tool/command-prefs.c:112
#: src/extensions-tool/command-reset.c:79
#: src/extensions-tool/command-uninstall.c:94
msgid "More than one UUID given"
msgstr "UUID bat baino gehiago eman da"
#: src/extensions-tool/command-enable.c:57
msgid "Enable an extension"
msgstr "Gaitu hedapen bat"
#: src/extensions-tool/command-info.c:79
msgid "Show extensions info"
msgstr "Hedapenen informazioa erakusten du"
#: src/extensions-tool/command-install.c:173
msgid "Overwrite an existing extension"
msgstr "Gainidatzi lehendik dagoen hedapena"
#: src/extensions-tool/command-install.c:175
msgid "EXTENSION_BUNDLE"
msgstr "HEDAPEN_BILDUMA"
#: src/extensions-tool/command-install.c:184
msgid "Install an extension bundle"
msgstr "Instalatu hedapen-bilduma"
#: src/extensions-tool/command-install.c:201
msgid "No extension bundle specified"
msgstr "Ez da hedapen-bildumarik zehaztu"
#: src/extensions-tool/command-install.c:207
msgid "More than one extension bundle specified"
msgstr "Hedapen-bilduma bat baino gehiago zehaztu da"
#: src/extensions-tool/command-list.c:118
msgid "Show user-installed extensions"
msgstr "Erakutsi erabiltzaileak instalatutako hedapenak"
#: src/extensions-tool/command-list.c:121
msgid "Show system-installed extensions"
msgstr "Erakutsi sistemak instalatutako hedapenak"
#: src/extensions-tool/command-list.c:124
msgid "Show enabled extensions"
msgstr "Erakutsi gaitutako hedapenak"
#: src/extensions-tool/command-list.c:127
msgid "Show disabled extensions"
msgstr "Erakutsi desgaitutako hedapenak"
#: src/extensions-tool/command-list.c:130
msgid "Show extensions with preferences"
msgstr "Erakutsi hobespenak dituzten hedapenak"
#: src/extensions-tool/command-list.c:133
msgid "Print extension details"
msgstr "Inprimatu hedapenaren xehetasunak"
#: src/extensions-tool/command-list.c:141
msgid "List installed extensions"
msgstr "Zerrendatu instalatutako hedapenak"
#: src/extensions-tool/command-pack.c:450
msgid "FILE"
msgstr "FITXATEGIA"
#: src/extensions-tool/command-pack.c:451
msgid "Additional source to include in the bundle"
msgstr "Bilduman sartuko zen iturburu gehigarria"
#: src/extensions-tool/command-pack.c:454
msgid "SCHEMA"
msgstr "ESKEMA\t"
#: src/extensions-tool/command-pack.c:455
msgid "A GSettings schema that should be included"
msgstr "Sartu behar den GSettings eskema"
#: src/extensions-tool/command-pack.c:457
#: src/extensions-tool/command-pack.c:468
msgid "DIRECTORY"
msgstr "DIREKTORIOA"
#: src/extensions-tool/command-pack.c:459
msgid "The directory where translations are found"
msgstr "Itzulpenak dituen direktorioa"
#: src/extensions-tool/command-pack.c:461
msgid "DOMAIN"
msgstr "DOMEINUA"
#: src/extensions-tool/command-pack.c:463
msgid "The gettext domain to use for translations"
msgstr "Itzulpenetarako erabiliko den gettext domeinua"
#: src/extensions-tool/command-pack.c:466
msgid "Overwrite an existing pack"
msgstr "Gainidatzi lehendik dagoen pakete bat"
#: src/extensions-tool/command-pack.c:470
msgid "The directory where the pack should be created"
msgstr "Paketea sortzeko direktorioa"
#: src/extensions-tool/command-pack.c:472
msgid "SOURCE_DIRECTORY"
msgstr "ITURBURU_DIREKTORIOA"
#: src/extensions-tool/command-pack.c:481
msgid "Create an extension bundle"
msgstr "Sortu hedapen-bilduma bat"
#: src/extensions-tool/command-pack.c:500
msgid "More than one source directory specified"
msgstr "Iturburu-direktorio bat baino gehiago zehaztu da"
#: src/extensions-tool/command-prefs.c:90
msgid "Opens extension preferences"
msgstr "Hedapenaren hobespenak irekitzen ditu"
#: src/extensions-tool/command-reset.c:57
msgid "Reset an extension"
msgstr "Berrezarri hedapen bat"
#: src/extensions-tool/command-uninstall.c:72
msgid "Uninstall an extension"
msgstr "Desinstalatu hedapen bat"
#: src/extensions-tool/main.c:175
msgid "Path"
msgstr "Bide-izena"
#: src/extensions-tool/main.c:178
msgid "URL"
msgstr "URLa"
#: src/extensions-tool/main.c:181
msgid "Original author"
msgstr "Jatorrizko egilea"
#: src/extensions-tool/main.c:184
msgid "Version"
msgstr "Bertsioa"
#: src/extensions-tool/main.c:187
msgid "State"
msgstr "Egoera"
#: src/extensions-tool/main.c:221
msgid "“version” takes no arguments"
msgstr "“version” ez du argumenturik hartzen"
#: src/extensions-tool/main.c:223 src/extensions-tool/main.c:239
msgid "Usage:"
msgstr "Erabilera:"
#: src/extensions-tool/main.c:226
msgid "Print version information and exit."
msgstr "Erakutsi bertsioaren informazioa eta irten"
#: src/extensions-tool/main.c:240
msgid "COMMAND"
msgstr "KOMANDOA"
#: src/extensions-tool/main.c:240
msgid "[ARGS…]"
msgstr "[ARGUMENTUAK…]"
#: src/extensions-tool/main.c:242
msgid "Commands:"
msgstr "Komandoak:"
#: src/extensions-tool/main.c:243
msgid "Print help"
msgstr "Erakutsi laguntza"
#: src/extensions-tool/main.c:244 src/main.c:460
msgid "Print version"
msgstr "Bistaratu bertsioa"
#: src/extensions-tool/main.c:245
msgid "Enable extension"
msgstr "Gaitu hedapena"
#: src/extensions-tool/main.c:246
msgid "Disable extension"
msgstr "Desgaitu hedapena"
#: src/extensions-tool/main.c:247
msgid "Reset extension"
msgstr "Berrezarri hedapena"
#: src/extensions-tool/main.c:248
msgid "Uninstall extension"
msgstr "Desinstalatu hedapena"
#: src/extensions-tool/main.c:249
msgid "List extensions"
msgstr "Zerrendatu hedapenak"
#: src/extensions-tool/main.c:250 src/extensions-tool/main.c:251
msgid "Show extension info"
msgstr "Erakutsi hedapenaren informazioa"
#: src/extensions-tool/main.c:252
msgid "Open extension preferences"
msgstr "Ireki hedapenaren hobespenak"
#: src/extensions-tool/main.c:253
msgid "Create extension"
msgstr "Sortu hedapena"
#: src/extensions-tool/main.c:254
msgid "Package extension"
msgstr "Paketatu hedapena"
#: src/extensions-tool/main.c:255
msgid "Install extension bundle"
msgstr "Instalatu hedapen-bilduma"
#: src/extensions-tool/main.c:257
#, c-format
msgid "Use %s to get detailed help.\n"
msgstr "Erabili %s laguntza xehea lortzeko.\n"
#: src/main.c:466
msgid "Mode used by GDM for login screen"
msgstr "GDMk erabiltzen duen modua saio-hasierako pantailarako"

538
po/fa.po
View File

@@ -3,13 +3,14 @@
# This file is distributed under the same license as the gnome-shell package.
# Mahyar Moghimi <mahyar.moqimi@gmail.com>, 2010.
# Arash Mousavi <mousavi.arash@gmail.com>, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017.
# Danial behzadi <dani.behzi@ubuntu.com>, 2018, 2019.
#
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: 2019-08-09 14:45+0000\n"
"PO-Revision-Date: 2019-08-17 15:35+0430\n"
"POT-Creation-Date: 2019-09-11 17:13+0000\n"
"PO-Revision-Date: 2019-09-12 12:26+0000\n"
"Last-Translator: Danial Behzadi <dani.behzi@ubuntu.com>\n"
"Language-Team: Persian <>\n"
"Language: fa\n"
@@ -18,7 +19,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Generator: Poedit 2.2.1\n"
"X-Generator: Poedit 2.2.3\n"
#: data/50-gnome-shell-system.xml:6
msgid "System"
@@ -44,7 +45,7 @@ msgstr "نمایش همهٔ برنامه‌ها"
msgid "Open the application menu"
msgstr "گشودن فهرست برنامه"
#: data/gnome-shell-extension-prefs.desktop.in.in:4 js/extensionPrefs/main.js:208
#: data/gnome-shell-extension-prefs.desktop.in.in:4 js/extensionPrefs/main.js:211
msgid "Shell Extensions"
msgstr "افزونه‌های پوسته"
@@ -78,12 +79,12 @@ msgstr "شناسه‌های UUID افزونه‌ها جهت فعال‌سازی"
#: data/org.gnome.shell.gschema.xml.in:17
msgid ""
"GNOME Shell extensions have a UUID property; this key lists extensions which "
"should be loaded. Any extension that wants to be loaded needs to be in this "
"list. You can also manipulate this list with the EnableExtension and "
"DisableExtension D-Bus methods on org.gnome.Shell."
"should be loaded. Any extension that wants to be loaded needs to be in this list. "
"You can also manipulate this list with the EnableExtension and DisableExtension D-"
"Bus methods on org.gnome.Shell."
msgstr ""
"افزونه‌های گنوم‌شل مشخصهٔ UUID دارند؛ این کلید، افزونه‌هایی که باید بار شوند را "
"فهرست می‌کند. هر افزونه‌ای که می‌خواهد بار شود، باید در این فهرست باشد. شما همچنین "
"افزونه‌های گنوم‌شل مشخصهٔ UUID دارند؛ این کلید، افزونه‌هایی که باید بار شوند را فهرست "
"می‌کند. هر افزونه‌ای که می‌خواهد بار شود، باید در این فهرست باشد. شما همچنین "
"می‌توانید این فهرست را از طریق EnableExtension و DisableExtension (روش‌های D-Bus) "
"در org.gnome.Shell نیز بسازید."
@@ -101,8 +102,8 @@ msgid ""
msgstr ""
"افزونه‌های پوستهٔ گنوم شل شناسه‌ای یکتا دارند؛ این کلید، افزونه‌هایی که باید غیرفعّال "
"شوند را فهرست می‌کند، حتا اگر به عنوان بخشی از حالت فعلی بار شده باشند. می‌توانید "
"این فهرست را از طریق روش‌های دی‌باس EnableExtension و DisableExtension در org."
"gnome.Shell نیز تغییر دهید."
"این فهرست را از طریق روش‌های دی‌باس EnableExtension و DisableExtension در org.gnome."
"Shell نیز تغییر دهید."
#: data/org.gnome.shell.gschema.xml.in:37
msgid "Disable user extensions"
@@ -177,15 +178,13 @@ msgstr ""
#: data/org.gnome.shell.gschema.xml.in:87
msgid ""
"The shell will request a password when an encrypted device or a remote "
"filesystem is mounted. If the password can be saved for future use a “Remember "
"Password” checkbox will be present. This key sets the default state of the "
"checkbox."
"The shell will request a password when an encrypted device or a remote filesystem "
"is mounted. If the password can be saved for future use a “Remember Password” "
"checkbox will be present. This key sets the default state of the checkbox."
msgstr ""
"هنگامی که دستگاهی رمزنگاری شده یا سامانه‌پرونده‌ای دوردست سوار می‌شود، پوسته "
"درخواست گذرواژه می‌کند. اگر گذرواژه را بتوان برای استفادهٔ آینده ذخیره کرد، گزینهٔ "
"«به‌خاطر سپردن گذرواژه» موجود خواهد بود. این کلید، حالت پیش‌گزیدهٔ این گزینه را "
"تنظیم می‌کند."
"هنگامی که دستگاهی رمزنگاری شده یا سامانه‌پرونده‌ای دوردست سوار می‌شود، پوسته درخواست "
"گذرواژه می‌کند. اگر گذرواژه را بتوان برای استفادهٔ آینده ذخیره کرد، گزینهٔ «به‌خاطر "
"سپردن گذرواژه» موجود خواهد بود. این کلید، حالت پیش‌گزیدهٔ این گزینه را تنظیم می‌کند."
#: data/org.gnome.shell.gschema.xml.in:96
msgid "Whether the default Bluetooth adapter had set up devices associated to it"
@@ -193,10 +192,9 @@ msgstr "اینکه آداپتور بلوتوث پیش‌فرض دستگاه‌ه
#: data/org.gnome.shell.gschema.xml.in:97
msgid ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
"powered, or if there were devices set up associated with the default adapter. "
"This will be reset if the default adapter is ever seen not to have devices "
"associated to it."
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is powered, "
"or if there were devices set up associated with the default adapter. This will be "
"reset if the default adapter is ever seen not to have devices associated to it."
msgstr ""
"شل تنها زمانی فهرست بلوتوث را نمایش می‌دهد که آداپتور بلوتوث روشن باشد، یا "
"دستگاه‌هایی به گونه‌ای تنظیم شده باشند که به آداپتور پیش‌فرض متصل شوند."
@@ -377,11 +375,11 @@ msgstr ""
msgid "Network Login"
msgstr "ورود به سامانه شبکه"
#: js/extensionPrefs/main.js:101 js/extensionPrefs/main.js:531
#: js/extensionPrefs/main.js:104 js/extensionPrefs/main.js:534
msgid "Somethings gone wrong"
msgstr "اشتباهی صورت گرفت"
#: js/extensionPrefs/main.js:108
#: js/extensionPrefs/main.js:111
msgid ""
"Were very sorry, but theres been a problem: the settings for this extension "
"cant be displayed. We recommend that you report the issue to the extension "
@@ -390,27 +388,27 @@ msgstr ""
"متأسّفیم، ولی مشکلی وجود داشت: تنظیمات این افزونه نمی‌تواند نشان داده شوند. توصیه "
"می‌کنیم مشکل را به نگارندهٔ افزونه گزارش دهید."
#: js/extensionPrefs/main.js:115
#: js/extensionPrefs/main.js:118
msgid "Technical Details"
msgstr "جزئیات فنّی"
#: js/extensionPrefs/main.js:150
#: js/extensionPrefs/main.js:153
msgid "Copy Error"
msgstr "رونوشت از خطا"
#: js/extensionPrefs/main.js:177
#: js/extensionPrefs/main.js:180
msgid "Homepage"
msgstr "صفحهٔ خانگی"
#: js/extensionPrefs/main.js:178
#: js/extensionPrefs/main.js:181
msgid "Visit extension homepage"
msgstr "مشاهدهٔ صفحهٔ خانگی افزونه"
#: js/extensionPrefs/main.js:473
#: js/extensionPrefs/main.js:476
msgid "No Extensions Installed"
msgstr "هیچ افزونه‌ای نصب نشده است"
#: js/extensionPrefs/main.js:483
#: js/extensionPrefs/main.js:486
msgid ""
"Extensions can be installed through Software or <a href=\"https://extensions."
"gnome.org\">extensions.gnome.org</a>."
@@ -418,11 +416,11 @@ msgstr ""
"افزونه‌ها می‌توانند از نرم‌افزارها یا <a href=\"https://extensions.gnome.org"
"\">پایگاه افزونه‌های گنوم</a> نصب شوند."
#: js/extensionPrefs/main.js:498
#: js/extensionPrefs/main.js:501
msgid "Browse in Software"
msgstr "مرور در نرم‌افزارها"
#: js/extensionPrefs/main.js:538
#: js/extensionPrefs/main.js:541
msgid ""
"Were very sorry, but it was not possible to get the list of installed "
"extensions. Make sure you are logged into GNOME and try again."
@@ -432,7 +430,7 @@ msgstr ""
#: js/gdm/authPrompt.js:139 js/ui/audioDeviceSelection.js:53
#: js/ui/components/networkAgent.js:120 js/ui/components/polkitAgent.js:138
#: js/ui/endSessionDialog.js:445 js/ui/extensionDownloader.js:189
#: js/ui/endSessionDialog.js:448 js/ui/extensionDownloader.js:189
#: js/ui/shellMountOperation.js:390 js/ui/shellMountOperation.js:399
#: js/ui/status/network.js:899
msgid "Cancel"
@@ -649,19 +647,17 @@ msgstr "%A، %OH%OM"
#. followed by a time string in 24h format.
#. i.e. "May 25, 14:30"
#: js/misc/util.js:241
#, fuzzy, no-c-format
#| msgid "%B %d, %H%M"
#, no-c-format
msgid "%B %-d, %H%M"
msgstr "%d %B، %OH%OM"
msgstr "%-Od %OB، %OH%OM"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30"
#: js/misc/util.js:247
#, fuzzy, no-c-format
#| msgid "%B %d %Y, %H%M"
#, no-c-format
msgid "%B %-d %Y, %H%M"
msgstr "%Od %OB %OY، %OH:%OM"
msgstr "%-Od %OB %OY، %OH:%OM"
#. Translators: Time in 12h format
#: js/misc/util.js:252
@@ -686,19 +682,17 @@ msgstr "%A، %OH:%OM"
#. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm"
#: js/misc/util.js:270
#, fuzzy, no-c-format
#| msgid "%B %d, %l%M %p"
#, no-c-format
msgid "%B %-d, %l%M %p"
msgstr "%Od %B، %OH:%OM"
msgstr "%-Od %OB، %Ol:%OM %p"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"
#: js/misc/util.js:276
#, fuzzy, no-c-format
#| msgid "%B %d %Y, %l%M %p"
#, no-c-format
msgid "%B %-d %Y, %l%M %p"
msgstr "%Od %B، %OH:%OM"
msgstr "%-Od %OB %OY، %Ol:%OM %p"
#. TRANSLATORS: this is the title of the wifi captive portal login window
#: js/portalHelper/main.js:40
@@ -739,28 +733,32 @@ msgstr "پُراستفاده"
msgid "All"
msgstr "همه"
#: js/ui/appDisplay.js:1751
msgid "Rename"
msgstr "تغییر نام"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2224 js/ui/panel.js:77
#: js/ui/appDisplay.js:2397 js/ui/panel.js:77
msgid "Open Windows"
msgstr "گشودن پنجره‌‌ها"
#: js/ui/appDisplay.js:2243 js/ui/panel.js:84
#: js/ui/appDisplay.js:2416 js/ui/panel.js:84
msgid "New Window"
msgstr "پنجرهٔ جدید"
#: js/ui/appDisplay.js:2255
#: js/ui/appDisplay.js:2428
msgid "Launch using Dedicated Graphics Card"
msgstr "اجرا با کارت گرافیک اختصاصی"
#: js/ui/appDisplay.js:2284 js/ui/dash.js:240
#: js/ui/appDisplay.js:2457 js/ui/dash.js:240
msgid "Remove from Favorites"
msgstr "حذف از مورد پسندها"
#: js/ui/appDisplay.js:2290
#: js/ui/appDisplay.js:2463
msgid "Add to Favorites"
msgstr "اضافه کردن به مورد پسندها"
#: js/ui/appDisplay.js:2300 js/ui/panel.js:95
#: js/ui/appDisplay.js:2473 js/ui/panel.js:95
msgid "Show Details"
msgstr "نمایش جزئیات"
@@ -790,7 +788,7 @@ msgstr "هدفون‌ها"
msgid "Headset"
msgstr "هدست"
#: js/ui/audioDeviceSelection.js:64 js/ui/status/volume.js:241
#: js/ui/audioDeviceSelection.js:64 js/ui/status/volume.js:248
msgid "Microphone"
msgstr "میکروفون"
@@ -908,18 +906,14 @@ msgid "All Day"
msgstr "تمام روز"
#: js/ui/calendar.js:813
#, fuzzy
msgctxt "calendar heading"
msgid "%A, %B %-d"
msgstr "%A %Od %B"
msgstr "%A %-Od %OB"
#: js/ui/calendar.js:817
#, fuzzy
#| msgctxt "calendar heading"
#| msgid "%A, %B %d, %Y"
msgctxt "calendar heading"
msgid "%A, %B %-d, %Y"
msgstr "%A %Od %B %Oy"
msgstr "%A %-Od %OB %OY"
#: js/ui/calendar.js:1040
msgid "No Notifications"
@@ -1112,10 +1106,8 @@ msgstr "دَش"
#. * "February 17 2015".
#.
#: js/ui/dateMenu.js:68
#, fuzzy
#| msgid "%B %e %Y"
msgid "%B %-d %Y"
msgstr "%Od %B %OY"
msgstr "%-Od %OB %OY"
#. Translators: This is the accessible name of the date button shown
#. * below the time in the shell; it should combine the weekday and the
@@ -1270,8 +1262,8 @@ msgstr "راه‌اندازی دوباره و نصب ارتقا"
#: js/ui/endSessionDialog.js:117
#, javascript-format
msgid ""
"%s %s will be installed after restart. Upgrade installation can take a long "
"time: ensure that you have backed up and that the computer is plugged in."
"%s %s will be installed after restart. Upgrade installation can take a long time: "
"ensure that you have backed up and that the computer is plugged in."
msgstr ""
"پس از راه‌اندازی دوباره %s %s نصب خواهد شد. نصب ارتقا ممکن است زمان زیادی بطول "
"بکشد: مطمئن شوید که پشتیبان دارید و رایانه به برق متصل است."
@@ -1289,13 +1281,13 @@ msgid "Other users are logged in."
msgstr "کاربران دیگر وارد سامانه هستند."
#. Translators: Remote here refers to a remote session, like a ssh login
#: js/ui/endSessionDialog.js:647
#: js/ui/endSessionDialog.js:650
#, javascript-format
msgid "%s (remote)"
msgstr "%s (دوردست)"
#. Translators: Console here refers to a tty like a VT console
#: js/ui/endSessionDialog.js:650
#: js/ui/endSessionDialog.js:653
#, javascript-format
msgid "%s (console)"
msgstr "%s (پایانه)"
@@ -1343,8 +1335,8 @@ msgstr "کلیدهای آهسته خاموش شدند"
#: js/ui/kbdA11yDialog.js:34
msgid ""
"You just held down the Shift key for 8 seconds. This is the shortcut for the "
"Slow Keys feature, which affects the way your keyboard works."
"You just held down the Shift key for 8 seconds. This is the shortcut for the Slow "
"Keys feature, which affects the way your keyboard works."
msgstr ""
"دکمهٔ تبدیل را ۸ ثانیه نگه داشتید. این میان‌بری برای ویژگی دکمه‌های آهسته است که بر "
"نحوهٔ کار صفحه‌کلیدتان اثر می‌گذارد."
@@ -1368,8 +1360,7 @@ msgstr ""
#: js/ui/kbdA11yDialog.js:46
msgid ""
"You just pressed two keys at once, or pressed the Shift key 5 times in a row. "
"This turns off the Sticky Keys feature, which affects the way your keyboard "
"works."
"This turns off the Sticky Keys feature, which affects the way your keyboard works."
msgstr ""
"دو کلید را هم‌زمان فشرده یا کلید تبدیل را ۵ بار پشت سر هم زدید. این میان‌بری برای "
"ویژگی کلید‌های چسبان است که بر نحوهٔ کار صفحه‌کلیدتان اثر می‌گذارد."
@@ -1447,7 +1438,7 @@ msgstr "نمایش منبع"
msgid "Web Page"
msgstr "صفحهٔ وب"
#: js/ui/messageTray.js:1462
#: js/ui/messageTray.js:1461
msgid "System Information"
msgstr "اطلاعات سامانه"
@@ -1576,7 +1567,7 @@ msgid_plural "%d new notifications"
msgstr[0] "%Id آگاهی جدید"
msgstr[1] "%Id آگاهی جدید"
#: js/ui/screenShield.js:444 js/ui/status/system.js:269
#: js/ui/screenShield.js:444 js/ui/status/system.js:260
msgid "Lock"
msgstr "قفل کردن"
@@ -1599,15 +1590,15 @@ msgstr "نمی‌توان قفل کرد"
msgid "Lock was blocked by an application"
msgstr "قفل توسط یک برنامه مسدود شده بود"
#: js/ui/search.js:647
#: js/ui/search.js:668
msgid "Searching…"
msgstr "درحال حستجو…"
#: js/ui/search.js:649
#: js/ui/search.js:670
msgid "No results."
msgstr "بدون نتیجه."
#: js/ui/search.js:773
#: js/ui/search.js:794
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
@@ -1752,7 +1743,7 @@ msgstr "خاموش"
msgid "On"
msgstr "روشن"
#: js/ui/status/brightness.js:37
#: js/ui/status/brightness.js:38
msgid "Brightness"
msgstr "روشنایی"
@@ -2089,27 +2080,27 @@ msgstr "خاموش کردن"
msgid "Airplane Mode On"
msgstr "حالت هواپیمایی روشن است"
#: js/ui/status/system.js:201
#: js/ui/status/system.js:192
msgid "Switch User"
msgstr "تعویض کاربر"
#: js/ui/status/system.js:213
#: js/ui/status/system.js:204
msgid "Log Out"
msgstr "خروج"
#: js/ui/status/system.js:225
#: js/ui/status/system.js:216
msgid "Account Settings"
msgstr "تنظیمات حساب"
#: js/ui/status/system.js:254
#: js/ui/status/system.js:245
msgid "Orientation Lock"
msgstr "قفل جهت"
#: js/ui/status/system.js:280
#: js/ui/status/system.js:271
msgid "Suspend"
msgstr "تعلیق"
#: js/ui/status/system.js:290
#: js/ui/status/system.js:281
msgid "Power Off"
msgstr "خاموش کردن"
@@ -2123,8 +2114,8 @@ msgstr "افزارهٔ تاندربولت ناشناخته"
#: js/ui/status/thunderbolt.js:323
msgid ""
"New device has been detected while you were away. Please disconnect and "
"reconnect the device to start using it."
"New device has been detected while you were away. Please disconnect and reconnect "
"the device to start using it."
msgstr ""
"هنگام نبودنتان، افزارهٔ جدید شناسایی شد. لطفاً برای شروع به استفاده از آن، قطعش "
"کرده و دوباره وصل کنید."
@@ -2134,8 +2125,7 @@ msgid "Unauthorized Thunderbolt device"
msgstr "افزارهٔ تاندربولت تأییدنشده"
#: js/ui/status/thunderbolt.js:327
msgid ""
"New device has been detected and needs to be authorized by an administrator."
msgid "New device has been detected and needs to be authorized by an administrator."
msgstr "افزارهٔ جدیدی شناسایی شده و نیازه به تأیید هویت توسّط یک مدیر دارد."
#: js/ui/status/thunderbolt.js:333
@@ -2147,11 +2137,11 @@ msgstr "خطای تأیید هویت تاندربولت"
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "نمی‌توان افزارهٔ تاندربولت را تأیید هویت کرد: %s"
#: js/ui/status/volume.js:128
#: js/ui/status/volume.js:129
msgid "Volume changed"
msgstr "بلندی صدا تغییر کرد"
#: js/ui/status/volume.js:193
#: js/ui/status/volume.js:200
msgid "Volume"
msgstr "بلندی صدا"
@@ -2204,22 +2194,22 @@ msgstr "جستجو"
msgid "“%s” is ready"
msgstr "«%s» آماده است"
#: js/ui/windowManager.js:54
#: js/ui/windowManager.js:55
msgid "Do you want to 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:66
#: js/ui/windowManager.js:67
msgid "Revert Settings"
msgstr "بازنشانی تنظیمات"
#: js/ui/windowManager.js:69
#: js/ui/windowManager.js:70
msgid "Keep Changes"
msgstr "ذخیره تغییرات"
#: js/ui/windowManager.js:87
#: js/ui/windowManager.js:88
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -2228,7 +2218,7 @@ msgstr[1] "تغییرات تنظیمات در %Id ثانیه بازنشانی م
#. 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:683
#: js/ui/windowManager.js:684
#, javascript-format
msgid "%d × %d"
msgstr "%Id × %Id"
@@ -2301,19 +2291,319 @@ msgstr "انتقال به نمایشگر سمت راست"
msgid "Evolution Calendar"
msgstr "تقویم اوولوشن"
#: src/main.c:464
#: src/extensions-tool/command-create.c:189
#, c-format
msgid ""
"Name should be a very short (ideally descriptive) string.\n"
"Examples are: %s"
msgstr ""
"نام باید رشته‌ای بسیار کوتاه و توصیفی باشد.\n"
"مانند: %s"
#: src/extensions-tool/command-create.c:192 src/extensions-tool/main.c:169
msgid "Name"
msgstr "نام"
#: src/extensions-tool/command-create.c:203
#, c-format
msgid ""
"Description is a single-sentence explanation of what your extension does.\n"
"Examples are: %s"
msgstr ""
"شرح تک‌جمله‌ای است که توضیح می‌دهد افزونه‌تان چه می‌کند.\n"
"مانند: %s"
#: src/extensions-tool/command-create.c:206 src/extensions-tool/main.c:172
msgid "Description"
msgstr "شرح"
#: src/extensions-tool/command-create.c:217
msgid ""
"UUID is a globally-unique identifier for your extension.\n"
"This should be in the format of an email address (clicktofocus@janedoe.example."
"com)\n"
msgstr ""
"شناسهٔ یکتا، شناسهٔ بی‌تکراری برای افزونه‌تان است.\n"
"این شناسه باید در قالب یک نشانی رایانامه باشد (clicktofocus@janedoe.example.com)\n"
#: src/extensions-tool/command-create.c:239
msgid "The unique identifier of the new extension"
msgstr "شناسهٔ یکتای افزونهٔ جدید"
#: src/extensions-tool/command-create.c:242
msgid "NAME"
msgstr "NAME"
#: src/extensions-tool/command-create.c:243
msgid "The user-visible name of the new extension"
msgstr "نام قابل مشاهده توسّط کاربر برای افزونهٔ جدید"
#: src/extensions-tool/command-create.c:245
msgid "DESCRIPTION"
msgstr "DESCRIPTION"
#: src/extensions-tool/command-create.c:247
msgid "A short description of what the extension does"
msgstr "شرح کوتاهی از کارکرد افزونه"
#: src/extensions-tool/command-create.c:250
msgid "Enter extension information interactively"
msgstr "اطّلاعات افزونه را به صورت تعاملی وارد کنید"
#: src/extensions-tool/command-create.c:258
msgid "Create a new extension"
msgstr "ایجاد افزونه‌ای جدید"
#: src/extensions-tool/command-create.c:275 src/extensions-tool/command-list.c:158
msgid "Unknown arguments"
msgstr "آرگومان ناشناخته"
#: src/extensions-tool/command-create.c:284
msgid "UUID, name and description are required"
msgstr "شناسهٔ یکتا، نام و شرح مورد نیازند"
#: src/extensions-tool/command-disable.c:57
msgid "Disable an extension"
msgstr "غیرفعّال کردن یک افزونه"
#: src/extensions-tool/command-disable.c:74 src/extensions-tool/command-enable.c:74
#: src/extensions-tool/command-info.c:96 src/extensions-tool/command-prefs.c:107
#: src/extensions-tool/command-reset.c:74 src/extensions-tool/command-uninstall.c:89
msgid "No UUID given"
msgstr "هیچ شناسهٔ یکتایی داده نشده"
#: src/extensions-tool/command-disable.c:79 src/extensions-tool/command-enable.c:79
#: src/extensions-tool/command-info.c:101 src/extensions-tool/command-prefs.c:112
#: src/extensions-tool/command-reset.c:79 src/extensions-tool/command-uninstall.c:94
msgid "More than one UUID given"
msgstr "بیش از یک شناسهٔ یکتا داده شده"
#: src/extensions-tool/command-enable.c:57
msgid "Enable an extension"
msgstr "فعّال کردن یک افزونه"
#: src/extensions-tool/command-info.c:79
msgid "Show extensions info"
msgstr "نمایش اطّلاعات افزونه"
#: src/extensions-tool/command-install.c:173
msgid "Overwrite an existing extension"
msgstr "بازنویسی روی افزونهٔ موجود"
#: src/extensions-tool/command-install.c:175
msgid "EXTENSION_BUNDLE"
msgstr "EXTENSION_BUNDLE"
#: src/extensions-tool/command-install.c:184
msgid "Install an extension bundle"
msgstr "نصب یک دستهٔ افزونه"
#: src/extensions-tool/command-install.c:201
msgid "No extension bundle specified"
msgstr "هیچ دستهٔ افزونه‌ای مشخّص نشده است"
#: src/extensions-tool/command-install.c:207
msgid "More than one extension bundle specified"
msgstr "بیش از یک دسته افزونه مشخّص شده"
#: src/extensions-tool/command-list.c:118
msgid "Show user-installed extensions"
msgstr "نمایش افزونه‌های نصب شده توسّط کاربر"
#: src/extensions-tool/command-list.c:121
msgid "Show system-installed extensions"
msgstr "نمایش افزونه‌های نصب شده توسّط سامانه"
#: src/extensions-tool/command-list.c:124
msgid "Show enabled extensions"
msgstr "نمایش افزونه‌های فعّال"
#: src/extensions-tool/command-list.c:127
msgid "Show disabled extensions"
msgstr "نمایش افزونه‌های غیرفعّال"
#: src/extensions-tool/command-list.c:130
msgid "Show extensions with preferences"
msgstr "نمایش افزونه‌های با ترجیحات"
#: src/extensions-tool/command-list.c:133
msgid "Print extension details"
msgstr "چاپ جزییات افزونه"
#: src/extensions-tool/command-list.c:141
msgid "List installed extensions"
msgstr "فهرست افزونه‌های نصب‌شده"
#: src/extensions-tool/command-pack.c:450
msgid "FILE"
msgstr "FILE"
#: src/extensions-tool/command-pack.c:451
msgid "Additional source to include in the bundle"
msgstr "منبع اضافی برای قرار گرفتن در دسته"
#: src/extensions-tool/command-pack.c:454
msgid "SCHEMA"
msgstr "SCHEMA"
#: src/extensions-tool/command-pack.c:455
msgid "A GSettings schema that should be included"
msgstr "یک شمای Gsettings که باید شامل شود"
#: src/extensions-tool/command-pack.c:457 src/extensions-tool/command-pack.c:468
msgid "DIRECTORY"
msgstr "DIRECTORY"
#: src/extensions-tool/command-pack.c:459
msgid "The directory where translations are found"
msgstr "شاخه‌ای که ترجمه‌ها پیدا می‌شوند"
#: src/extensions-tool/command-pack.c:461
msgid "DOMAIN"
msgstr "DOMAIN"
#: src/extensions-tool/command-pack.c:463
msgid "The gettext domain to use for translations"
msgstr "دامنهٔ gettext برای استفاده توسّط ترجمه‌ها"
#: src/extensions-tool/command-pack.c:466
msgid "Overwrite an existing pack"
msgstr "بازنویسی روی یک بستهٔ موجود"
#: src/extensions-tool/command-pack.c:470
msgid "The directory where the pack should be created"
msgstr "شاخه‌ای که بسته باید ایجاد شود"
#: src/extensions-tool/command-pack.c:472
msgid "SOURCE_DIRECTORY"
msgstr "SOURCE_DIRECTORY"
#: src/extensions-tool/command-pack.c:481
msgid "Create an extension bundle"
msgstr "ایجاد یک دستهٔ افزونه"
#: src/extensions-tool/command-pack.c:500
msgid "More than one source directory specified"
msgstr "بیش از یک شاخهٔ منبع مشخّص شده"
#: src/extensions-tool/command-prefs.c:90
msgid "Opens extension preferences"
msgstr "ترجیحات افزونه را می‌گشاید"
#: src/extensions-tool/command-reset.c:57
msgid "Reset an extension"
msgstr "بازنشانی یک افزونه"
#: src/extensions-tool/command-uninstall.c:72
msgid "Uninstall an extension"
msgstr "حذف نصب یک افزونه"
#: src/extensions-tool/main.c:175
msgid "Path"
msgstr "مسیر"
#: src/extensions-tool/main.c:178
msgid "URL"
msgstr "نشانی"
#: src/extensions-tool/main.c:181
msgid "Original author"
msgstr "گارندهٔ اصلی"
#: src/extensions-tool/main.c:184
msgid "Version"
msgstr "نگارش"
#: src/extensions-tool/main.c:187
msgid "State"
msgstr "وضعیت"
#: src/extensions-tool/main.c:221
msgid "“version” takes no arguments"
msgstr "«نگارش» آرگومانی نمی‌گیرد"
#: src/extensions-tool/main.c:223 src/extensions-tool/main.c:243
msgid "Usage:"
msgstr "استفاده:"
#: src/extensions-tool/main.c:226
msgid "Print version information and exit."
msgstr "چاپ اطّلاعات نگارش و خروج."
#: src/extensions-tool/main.c:241 src/extensions-tool/main.c:244
msgid "COMMAND"
msgstr "COMMAND"
#: src/extensions-tool/main.c:244
msgid "[ARGS…]"
msgstr "[ARGS…]"
#: src/extensions-tool/main.c:246
msgid "Commands:"
msgstr "دستورات:"
#: src/extensions-tool/main.c:247
msgid "Print help"
msgstr "چاپ راهنما"
#: src/extensions-tool/main.c:248 src/main.c:468
msgid "Print version"
msgstr "چاپ نسخه"
#: src/main.c:470
#: src/extensions-tool/main.c:249
msgid "Enable extension"
msgstr "فعّال کردن افزونه"
#: src/extensions-tool/main.c:250
msgid "Disable extension"
msgstr "غیرفعّال کردن افزونه"
#: src/extensions-tool/main.c:251
msgid "Reset extension"
msgstr "بازنشانی افزونه"
#: src/extensions-tool/main.c:252
msgid "Uninstall extension"
msgstr "حذف نصب افزونه"
#: src/extensions-tool/main.c:253
msgid "List extensions"
msgstr "فهرست افزونه‌ها"
#: src/extensions-tool/main.c:254 src/extensions-tool/main.c:255
msgid "Show extension info"
msgstr "نمایش اطّلاعات افزونه"
#: src/extensions-tool/main.c:256
msgid "Open extension preferences"
msgstr "گشودن ترجیحات افزونه"
#: src/extensions-tool/main.c:257
msgid "Create extension"
msgstr "ایجاد افزونه"
#: src/extensions-tool/main.c:258
msgid "Package extension"
msgstr "بسته‌بندی افزونه"
#: src/extensions-tool/main.c:259
msgid "Install extension bundle"
msgstr "نصب دستهٔ افزونه"
#: src/extensions-tool/main.c:261
#, c-format
msgid "Use “%s” to get detailed help.\n"
msgstr "برای گرفتن راهنمای با جزییات از %s استفاده کنید.\n"
#: src/main.c:474
msgid "Mode used by GDM for login screen"
msgstr "حالت استفاده شده توسط GDM برای صفحه ورود به سامانه"
#: src/main.c:476
#: src/main.c:480
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "استفاده از یک حالت مشخص، مثلاً gdm برای صفحهٔ ورود"
#: src/main.c:482
#: src/main.c:486
msgid "List possible modes"
msgstr "فهرست کردن حالت‌های ممکن"
@@ -2335,7 +2625,7 @@ msgstr "گذرواژه‌های منطبق نیستند."
msgid "Password cannot be blank"
msgstr "گذرواژه نمی‌تواند خالی باشد"
#: src/shell-polkit-authentication-agent.c:348
#: src/shell-polkit-authentication-agent.c:344
msgid "Authentication dialog was dismissed by the user"
msgstr "محاوره تایید هویت از طرف کاربر رد شد"
@@ -2409,9 +2699,6 @@ msgstr "صداهای سامانه"
#~ msgid "evolution"
#~ msgstr "evolution"
#~ msgid "GNOME Shell Extension Preferences"
#~ msgstr "ترجیحات افزونه‌های گنوم‌شل"
#~ msgid "Web Authentication Redirect"
#~ msgstr "تغییر مسیر برای تایید هویت وب"
@@ -2605,8 +2892,7 @@ msgstr "صداهای سامانه"
#~ msgstr "این حساب قبلا به کارگزار متصل شده است"
#~ msgid "Connection has been replaced by a new connection using the same resource"
#~ msgstr ""
#~ "اتصال توسط یک اتصال جدید که از منبع مشابه استفاده می‌کند، جایگزین شده است"
#~ msgstr "اتصال توسط یک اتصال جدید که از منبع مشابه استفاده می‌کند، جایگزین شده است"
#~ msgid "The account already exists on the server"
#~ msgstr "حساب از قبل بر روی کارگزار وجود دارد"
@@ -2627,8 +2913,8 @@ msgstr "صداهای سامانه"
#~ "The length of the server certificate, or the depth of the server certificate "
#~ "chain, exceed the limits imposed by the cryptography library"
#~ msgstr ""
#~ "اندازه گواهینامه کارگزار، یا عمق حلقه‌ی گواهینامه کارگزار، از محدودیت اعمال "
#~ "شده توسط کتابخانه cryptography تجاوز کرد"
#~ "اندازه گواهینامه کارگزار، یا عمق حلقه‌ی گواهینامه کارگزار، از محدودیت اعمال شده "
#~ "توسط کتابخانه cryptography تجاوز کرد"
#~ msgid "Internal error"
#~ msgstr "خطای داخلی"
@@ -2735,8 +3021,8 @@ msgstr "صداهای سامانه"
#~ msgid "Please confirm whether the Passkey '%06d' matches the one on the device."
#~ msgstr ""
#~ "لطفا تایید کنید که آیا کلید عبور مربوط به «%I06d» با همتای آن در دستگاه "
#~ "مطابقت دارد یا خیر."
#~ "لطفا تایید کنید که آیا کلید عبور مربوط به «%I06d» با همتای آن در دستگاه مطابقت "
#~ "دارد یا خیر."
#~ msgid "Matches"
#~ msgstr "منطبق شد"
@@ -2773,8 +3059,7 @@ msgstr "صداهای سامانه"
#~ msgstr "ضبط یک تصویربرداری از صفحه‌نمایش"
#~ msgid "Whether to collect stats about applications usage"
#~ msgstr ""
#~ "اینکه اطلاعات برنامه‌ها درباره‌ی میزان استفاده از منابع جمع‌آوری شود یا خیر"
#~ msgstr "اینکه اطلاعات برنامه‌ها درباره‌ی میزان استفاده از منابع جمع‌آوری شود یا خیر"
#~ msgid ""
#~ "The shell normally monitors active applications in order to present the most "
@@ -2799,8 +3084,8 @@ msgstr "صداهای سامانه"
#~ "Internally used to store the last session presence status for the user. The "
#~ "value here is from the GsmPresenceStatus enumeration."
#~ msgstr ""
#~ "به‌طور داخلی برای ذخیره آخرین نشستی که کاربر در آن وضعیت حاضر داشته است "
#~ "استفاده می‌شود. مقدار اینجا از محاسبه GsmPresenceStatus است."
#~ "به‌طور داخلی برای ذخیره آخرین نشستی که کاربر در آن وضعیت حاضر داشته است استفاده "
#~ "می‌شود. مقدار اینجا از محاسبه GsmPresenceStatus است."
#~ msgid "Keybinding to toggle the screen recorder"
#~ msgstr "کلید مقید برای تغییر وضعیت ضبط کننده‌ی صفحه"
@@ -2826,39 +3111,36 @@ msgstr "صداهای سامانه"
#~ "used for gst-launch. The pipeline should have an unconnected sink pad where "
#~ "the recorded video is recorded. It will normally have a unconnected source "
#~ "pad; output from that pad will be written into the output file. However the "
#~ "pipeline can also take care of its own output - this might be used to send "
#~ "the output to an icecast server via shout2send or similar. When unset or set "
#~ "to an empty value, the default pipeline will be used. This is currently "
#~ "'vp8enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads="
#~ "%T ! queue ! webmmux' and records to WEBM using the VP8 codec. %T is used as "
#~ "a placeholder for a guess at the optimal thread count on the system."
#~ "pipeline can also take care of its own output - this might be used to send the "
#~ "output to an icecast server via shout2send or similar. When unset or set to an "
#~ "empty value, the default pipeline will be used. This is currently 'vp8enc "
#~ "min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! "
#~ "queue ! webmmux' and records to WEBM using the VP8 codec. %T is used as a "
#~ "placeholder for a guess at the optimal thread count on the system."
#~ msgstr ""
#~ "Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
#~ "used for gst-launch. The pipeline should have an unconnected sink pad where "
#~ "the recorded video is recorded. It will normally have a unconnected source "
#~ "pad; output from that pad will be written into the output file. However the "
#~ "pipeline can also take care of its own output - this might be used to send "
#~ "the output to an icecast server via shout2send or similar. When unset or set "
#~ "to an empty value, the default pipeline will be used. This is currently "
#~ "'vp8enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads="
#~ "%T ! queue ! webmmux' and records to WEBM using the VP8 codec. %T is used as "
#~ "a placeholder for a guess at the optimal thread count on the system."
#~ "pipeline can also take care of its own output - this might be used to send the "
#~ "output to an icecast server via shout2send or similar. When unset or set to an "
#~ "empty value, the default pipeline will be used. This is currently 'vp8enc "
#~ "min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! "
#~ "queue ! webmmux' and records to WEBM using the VP8 codec. %T is used as a "
#~ "placeholder for a guess at the optimal thread count on the system."
#~ msgid "File extension used for storing the screencast"
#~ msgstr "پسوند پرونده‌ی قابل استفاده برای ذخیره تصویربرداری از صفحه‌نمایش"
#~ msgid ""
#~ "The filename for recorded screencasts will be a unique filename based on the "
#~ "current date, and use this extension. It should be changed when recording to "
#~ "a different container format."
#~ "current date, and use this extension. It should be changed when recording to a "
#~ "different container format."
#~ msgstr ""
#~ "نام پرونده‌ی ضبط شده برای تصویربرداری از صفحه‌نمایش یکتا و براساس تاریخ جاری "
#~ "خواهد بود و از این افزونه استفاده خواهد کرد. اگر در زمان ضبط از قالب دیگری "
#~ "استفاده کنید باید تغییر کند."
#~ msgid "Extension"
#~ msgstr "افزونه"
#~| msgid "Session..."
#~ msgid "Session…"
#~ msgstr "نشست..."

419
po/fi.po
View File

@@ -25,8 +25,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: 2019-08-09 14:45+0000\n"
"PO-Revision-Date: 2019-08-18 17:37+0300\n"
"POT-Creation-Date: 2019-09-09 20:24+0000\n"
"PO-Revision-Date: 2019-09-10 14:10+0300\n"
"Last-Translator: Jiri Grönroos <jiri.gronroos+l10n@iki.fi>\n"
"Language-Team: suomi <lokalisointi-lista@googlegroups.com>\n"
"Language: fi\n"
@@ -34,7 +34,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.0.6\n"
"X-Generator: Poedit 2.2.3\n"
"X-DamnedLies-Scope: partial\n"
"X-Project-Style: gnome\n"
"X-POT-Import-Date: 2012-03-05 15:06:10+0000\n"
@@ -64,7 +64,7 @@ msgid "Open the application menu"
msgstr "Avaa sovellusvalikko"
#: data/gnome-shell-extension-prefs.desktop.in.in:4
#: js/extensionPrefs/main.js:208
#: js/extensionPrefs/main.js:211
msgid "Shell Extensions"
msgstr "Shell-laajennukset"
@@ -431,11 +431,11 @@ msgstr ""
msgid "Network Login"
msgstr "Verkkokirjautuminen"
#: js/extensionPrefs/main.js:101 js/extensionPrefs/main.js:531
#: js/extensionPrefs/main.js:104 js/extensionPrefs/main.js:534
msgid "Somethings gone wrong"
msgstr "Jokin meni pieleen"
#: js/extensionPrefs/main.js:108
#: js/extensionPrefs/main.js:111
msgid ""
"Were very sorry, but theres been a problem: the settings for this "
"extension cant be displayed. We recommend that you report the issue to the "
@@ -444,27 +444,27 @@ msgstr ""
"Ongelma havaittu: tämän laajennuksen asetuksia ei voi näyttää. Suosittelemme "
"ilmoittamaan ongelmasta laajennuksen tekijälle."
#: js/extensionPrefs/main.js:115
#: js/extensionPrefs/main.js:118
msgid "Technical Details"
msgstr "Tekniset tiedot"
#: js/extensionPrefs/main.js:150
#: js/extensionPrefs/main.js:153
msgid "Copy Error"
msgstr "Kopiointivirhe"
#: js/extensionPrefs/main.js:177
#: js/extensionPrefs/main.js:180
msgid "Homepage"
msgstr "Verkkosivu"
#: js/extensionPrefs/main.js:178
#: js/extensionPrefs/main.js:181
msgid "Visit extension homepage"
msgstr "Käy laajennuksen verkkosivulla"
#: js/extensionPrefs/main.js:473
#: js/extensionPrefs/main.js:476
msgid "No Extensions Installed"
msgstr "Laajennuksia ei ole asennettu"
#: js/extensionPrefs/main.js:483
#: js/extensionPrefs/main.js:486
msgid ""
"Extensions can be installed through Software or <a href=\"https://extensions."
"gnome.org\">extensions.gnome.org</a>."
@@ -472,11 +472,11 @@ msgstr ""
"Laajennuksia voi asentaa ohjelmistokeskuksen kautta tai sivustolta <a href="
"\"https://extensions.gnome.org\">extensions.gnome.org</a>."
#: js/extensionPrefs/main.js:498
#: js/extensionPrefs/main.js:501
msgid "Browse in Software"
msgstr "Selaa ohjelmistokeskuksessa"
#: js/extensionPrefs/main.js:538
#: js/extensionPrefs/main.js:541
msgid ""
"Were very sorry, but it was not possible to get the list of installed "
"extensions. Make sure you are logged into GNOME and try again."
@@ -486,7 +486,7 @@ msgstr ""
#: js/gdm/authPrompt.js:139 js/ui/audioDeviceSelection.js:53
#: js/ui/components/networkAgent.js:120 js/ui/components/polkitAgent.js:138
#: js/ui/endSessionDialog.js:445 js/ui/extensionDownloader.js:189
#: js/ui/endSessionDialog.js:448 js/ui/extensionDownloader.js:189
#: js/ui/shellMountOperation.js:390 js/ui/shellMountOperation.js:399
#: js/ui/status/network.js:899
msgid "Cancel"
@@ -789,28 +789,32 @@ msgstr "Käytetyimmät"
msgid "All"
msgstr "Kaikki"
#: js/ui/appDisplay.js:1751
msgid "Rename"
msgstr "Nimeä uudelleen"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2224 js/ui/panel.js:77
#: js/ui/appDisplay.js:2397 js/ui/panel.js:77
msgid "Open Windows"
msgstr "Avoimet ikkunat"
#: js/ui/appDisplay.js:2243 js/ui/panel.js:84
#: js/ui/appDisplay.js:2416 js/ui/panel.js:84
msgid "New Window"
msgstr "Uusi ikkuna"
#: js/ui/appDisplay.js:2255
#: js/ui/appDisplay.js:2428
msgid "Launch using Dedicated Graphics Card"
msgstr "Käynnistä erillisnäytönohjainta käyttäen"
#: js/ui/appDisplay.js:2284 js/ui/dash.js:240
#: js/ui/appDisplay.js:2457 js/ui/dash.js:240
msgid "Remove from Favorites"
msgstr "Poista suosikeista"
#: js/ui/appDisplay.js:2290
#: js/ui/appDisplay.js:2463
msgid "Add to Favorites"
msgstr "Lisää suosikkeihin"
#: js/ui/appDisplay.js:2300 js/ui/panel.js:95
#: js/ui/appDisplay.js:2473 js/ui/panel.js:95
msgid "Show Details"
msgstr "Näytä tiedot"
@@ -840,7 +844,7 @@ msgstr "Kuulokkeet"
msgid "Headset"
msgstr "Headset-kuulokkeet"
#: js/ui/audioDeviceSelection.js:64 js/ui/status/volume.js:241
#: js/ui/audioDeviceSelection.js:64 js/ui/status/volume.js:248
msgid "Microphone"
msgstr "Mikrofoni"
@@ -1341,13 +1345,13 @@ msgid "Other users are logged in."
msgstr "Muita käyttäjiä on kirjautuneena."
#. Translators: Remote here refers to a remote session, like a ssh login
#: js/ui/endSessionDialog.js:647
#: js/ui/endSessionDialog.js:650
#, javascript-format
msgid "%s (remote)"
msgstr "%s (etä)"
#. Translators: Console here refers to a tty like a VT console
#: js/ui/endSessionDialog.js:650
#: js/ui/endSessionDialog.js:653
#, javascript-format
msgid "%s (console)"
msgstr "%s (konsoli)"
@@ -1502,7 +1506,7 @@ msgstr "Näytä lähde"
msgid "Web Page"
msgstr "Verkkosivusto"
#: js/ui/messageTray.js:1462
#: js/ui/messageTray.js:1461
msgid "System Information"
msgstr "Järjestelmän tiedot"
@@ -1633,7 +1637,7 @@ msgid_plural "%d new notifications"
msgstr[0] "%d uusi ilmoitus"
msgstr[1] "%d uutta ilmoitusta"
#: js/ui/screenShield.js:444 js/ui/status/system.js:269
#: js/ui/screenShield.js:444 js/ui/status/system.js:260
msgid "Lock"
msgstr "Lukitse"
@@ -1656,15 +1660,15 @@ msgstr "Lukitus epäonnistui"
msgid "Lock was blocked by an application"
msgstr "Lukitus estettiin sovelluksen toimesta"
#: js/ui/search.js:647
#: js/ui/search.js:668
msgid "Searching…"
msgstr "Etsitään…"
#: js/ui/search.js:649
#: js/ui/search.js:670
msgid "No results."
msgstr "Ei tuloksia."
#: js/ui/search.js:773
#: js/ui/search.js:794
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
@@ -1725,14 +1729,12 @@ msgstr "Muista salasana"
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:404
#, javascript-format
#| msgid "Open with %s"
msgid "Open %s"
msgstr "Avaa %s"
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:476
#, javascript-format
#| msgid "Unable to connect to %s"
msgid "Unable to start %s"
msgstr "Sovelluksen %s käynnistäminen ei onnistunut"
@@ -1810,7 +1812,7 @@ msgstr "Pois"
msgid "On"
msgstr "Päällä"
#: js/ui/status/brightness.js:37
#: js/ui/status/brightness.js:38
msgid "Brightness"
msgstr "Kirkkaus"
@@ -2149,27 +2151,27 @@ msgstr "Sammuta"
msgid "Airplane Mode On"
msgstr "Lentokonetila on päällä"
#: js/ui/status/system.js:201
#: js/ui/status/system.js:192
msgid "Switch User"
msgstr "Vaihda käyttäjää"
#: js/ui/status/system.js:213
#: js/ui/status/system.js:204
msgid "Log Out"
msgstr "Kirjaudu ulos"
#: js/ui/status/system.js:225
#: js/ui/status/system.js:216
msgid "Account Settings"
msgstr "Tilin asetukset"
#: js/ui/status/system.js:254
#: js/ui/status/system.js:245
msgid "Orientation Lock"
msgstr "Kiertolukitus"
#: js/ui/status/system.js:280
#: js/ui/status/system.js:271
msgid "Suspend"
msgstr "Valmiustila"
#: js/ui/status/system.js:290
#: js/ui/status/system.js:281
msgid "Power Off"
msgstr "Sammuta"
@@ -2207,11 +2209,11 @@ msgstr "Thunderbolt-valtuutusvirhe"
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "Thunderbolt-laitetta ei voitu valtuuttaa: %s"
#: js/ui/status/volume.js:128
#: js/ui/status/volume.js:129
msgid "Volume changed"
msgstr "Äänenvoimakkuutta muutettu"
#: js/ui/status/volume.js:193
#: js/ui/status/volume.js:200
msgid "Volume"
msgstr "Äänenvoimakkuus"
@@ -2264,22 +2266,22 @@ msgstr "Haku"
msgid "“%s” is ready"
msgstr "“%s” on valmis"
#: js/ui/windowManager.js:54
#: js/ui/windowManager.js:55
msgid "Do you want to keep these display settings?"
msgstr "Haluatko säilyttää nämä näyttöasetukset?"
#. Translators: this and the following message should be limited in length,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:66
#: js/ui/windowManager.js:67
msgid "Revert Settings"
msgstr "Palauta asetukset"
#: js/ui/windowManager.js:69
#: js/ui/windowManager.js:70
msgid "Keep Changes"
msgstr "Säilytä muutokset"
#: js/ui/windowManager.js:87
#: js/ui/windowManager.js:88
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -2288,7 +2290,7 @@ msgstr[1] "Asetusmuutokset palautetaan %d sekunnissa"
#. 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:683
#: js/ui/windowManager.js:684
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2361,19 +2363,330 @@ msgstr "Siirrä oikealla olevaan näyttöön"
msgid "Evolution Calendar"
msgstr "Evolution-kalenteri"
#: src/main.c:464
#: src/extensions-tool/command-create.c:189
#, c-format
msgid ""
"Name should be a very short (ideally descriptive) string.\n"
"Examples are: %s"
msgstr ""
"Nimen tulisi olla erittäin lyhyt, mieluiten kuvaava, merkkijono.\n"
"Esimerkkejä: %s"
#: src/extensions-tool/command-create.c:192 src/extensions-tool/main.c:169
msgid "Name"
msgstr "Nimi"
#: src/extensions-tool/command-create.c:203
#, c-format
msgid ""
"Description is a single-sentence explanation of what your extension does.\n"
"Examples are: %s"
msgstr ""
"Kuvaus on yhden lauseen selvitys laajennuksen käyttötarkoituksesta.\n"
"Esimerkkejä: %s"
#: src/extensions-tool/command-create.c:206 src/extensions-tool/main.c:172
msgid "Description"
msgstr "Kuvaus"
#: src/extensions-tool/command-create.c:217
msgid ""
"UUID is a globally-unique identifier for your extension.\n"
"This should be in the format of an email address (clicktofocus@janedoe."
"example.com)\n"
msgstr ""
"UUID on yksilöllinen tunniste laajennukselle.\n"
"Tämän tulee olla sähköpostiosoitteen muodossa (clicktofocus@janedoe.example."
"com)\n"
#: src/extensions-tool/command-create.c:239
msgid "The unique identifier of the new extension"
msgstr "Yksilöllinen tunniste uudelle laajennukselle"
#: src/extensions-tool/command-create.c:242
msgid "NAME"
msgstr "NIMI"
#: src/extensions-tool/command-create.c:243
msgid "The user-visible name of the new extension"
msgstr "Uuden laajennuksen käyttäjälle näkyvä nimi"
#: src/extensions-tool/command-create.c:245
msgid "DESCRIPTION"
msgstr "KUVAUS"
#: src/extensions-tool/command-create.c:247
msgid "A short description of what the extension does"
msgstr "Lyhyt kuvaus siitä, mitä laajennus tekee"
#: src/extensions-tool/command-create.c:250
msgid "Enter extension information interactively"
msgstr "Kirjoita laajennuksen tiedot vuorovaikutteisesti"
#: src/extensions-tool/command-create.c:258
msgid "Create a new extension"
msgstr "Luo uusi laajennus"
#: src/extensions-tool/command-create.c:275
#: src/extensions-tool/command-list.c:158
msgid "Unknown arguments"
msgstr "Tuntemattomat argumentit"
#: src/extensions-tool/command-create.c:284
msgid "UUID, name and description are required"
msgstr "UUID, nimi ja kuvaus ovat pakollisia tietoja"
#: src/extensions-tool/command-disable.c:57
msgid "Disable an extension"
msgstr "Poista laajennus käytöstä"
#: src/extensions-tool/command-disable.c:74
#: src/extensions-tool/command-enable.c:74
#: src/extensions-tool/command-info.c:96
#: src/extensions-tool/command-prefs.c:107
#: src/extensions-tool/command-reset.c:74
#: src/extensions-tool/command-uninstall.c:89
msgid "No UUID given"
msgstr "UUID:tä ei annettu"
#: src/extensions-tool/command-disable.c:79
#: src/extensions-tool/command-enable.c:79
#: src/extensions-tool/command-info.c:101
#: src/extensions-tool/command-prefs.c:112
#: src/extensions-tool/command-reset.c:79
#: src/extensions-tool/command-uninstall.c:94
msgid "More than one UUID given"
msgstr "Enemmän kuin yksi UUID annettu"
#: src/extensions-tool/command-enable.c:57
msgid "Enable an extension"
msgstr "Ota laajennus käyttöön"
#: src/extensions-tool/command-info.c:79
msgid "Show extensions info"
msgstr "Näytä laajennuksen tiedot"
#: src/extensions-tool/command-install.c:173
msgid "Overwrite an existing extension"
msgstr "Korvaa olemassa oleva laajennus"
#: src/extensions-tool/command-install.c:175
msgid "EXTENSION_BUNDLE"
msgstr ""
#: src/extensions-tool/command-install.c:184
msgid "Install an extension bundle"
msgstr "Asenna laajennuspaketti"
#: src/extensions-tool/command-install.c:201
msgid "No extension bundle specified"
msgstr "Laajennuspakettia ei määritetty"
#: src/extensions-tool/command-install.c:207
msgid "More than one extension bundle specified"
msgstr "Enemmän kuin yksi laajennuspaketti määritetty"
#: src/extensions-tool/command-list.c:118
msgid "Show user-installed extensions"
msgstr "Näytä käyttäjän asentamat laajennukset"
#: src/extensions-tool/command-list.c:121
msgid "Show system-installed extensions"
msgstr "Näytä järjestelmän asentamat laajennukset"
#: src/extensions-tool/command-list.c:124
msgid "Show enabled extensions"
msgstr "Näytä käytössä olevat laajennukset"
#: src/extensions-tool/command-list.c:127
msgid "Show disabled extensions"
msgstr "Näytä käytöstä poistetut laajennukset"
#: src/extensions-tool/command-list.c:130
msgid "Show extensions with preferences"
msgstr "Näytä laajennukset, joilla on asetuksia"
#: src/extensions-tool/command-list.c:133
msgid "Print extension details"
msgstr "Tulosta laajennuksen tiedot"
#: src/extensions-tool/command-list.c:141
msgid "List installed extensions"
msgstr "Listaa asennetut laajennukset"
#: src/extensions-tool/command-pack.c:450
msgid "FILE"
msgstr "TIEDOSTO"
#: src/extensions-tool/command-pack.c:451
msgid "Additional source to include in the bundle"
msgstr "Lisälähde pakettiin sisällytettäväksi"
#: src/extensions-tool/command-pack.c:454
msgid "SCHEMA"
msgstr "SKEEMA"
#: src/extensions-tool/command-pack.c:455
msgid "A GSettings schema that should be included"
msgstr "Sisällytettävä GSettings-skeema"
#: src/extensions-tool/command-pack.c:457
#: src/extensions-tool/command-pack.c:468
msgid "DIRECTORY"
msgstr "KANSIO"
#: src/extensions-tool/command-pack.c:459
msgid "The directory where translations are found"
msgstr "Kansio, jossa kielikäännökset ovat"
#: src/extensions-tool/command-pack.c:461
msgid "DOMAIN"
msgstr "DOMAIN"
#: src/extensions-tool/command-pack.c:463
msgid "The gettext domain to use for translations"
msgstr "Kielikäännöksiin käytettävä gettext-domain"
#: src/extensions-tool/command-pack.c:466
msgid "Overwrite an existing pack"
msgstr "Korvaa olemassa oleva paketti"
#: src/extensions-tool/command-pack.c:470
msgid "The directory where the pack should be created"
msgstr "Kansio, johon paketti luodaan"
#: src/extensions-tool/command-pack.c:472
msgid "SOURCE_DIRECTORY"
msgstr ""
#: src/extensions-tool/command-pack.c:481
msgid "Create an extension bundle"
msgstr "Luo laajennuspaketti"
#: src/extensions-tool/command-pack.c:500
msgid "More than one source directory specified"
msgstr "Enemmän kuin yksi lähdekansio määritetty"
#: src/extensions-tool/command-prefs.c:90
msgid "Opens extension preferences"
msgstr "Avaa laajennuksen asetukset"
#: src/extensions-tool/command-reset.c:57
msgid "Reset an extension"
msgstr "Nollaa laajennus"
#: src/extensions-tool/command-uninstall.c:72
msgid "Uninstall an extension"
msgstr "Poista laajennus"
#: src/extensions-tool/main.c:175
msgid "Path"
msgstr "Polku"
#: src/extensions-tool/main.c:178
msgid "URL"
msgstr "URL-osoite"
#: src/extensions-tool/main.c:181
msgid "Original author"
msgstr "Alkuperäinen tekijä"
#: src/extensions-tool/main.c:184
msgid "Version"
msgstr "Versio"
#: src/extensions-tool/main.c:187
msgid "State"
msgstr "Tila"
#: src/extensions-tool/main.c:221
msgid "“version” takes no arguments"
msgstr "“version” ei kelpuuta argumentteja"
#: src/extensions-tool/main.c:223 src/extensions-tool/main.c:239
msgid "Usage:"
msgstr "Käyttö:"
#: src/extensions-tool/main.c:226
msgid "Print version information and exit."
msgstr "Tulosta versiotiedot ja poistu."
#: src/extensions-tool/main.c:240
msgid "COMMAND"
msgstr "KOMENTO"
#: src/extensions-tool/main.c:240
msgid "[ARGS…]"
msgstr "[ARGS…]"
#: src/extensions-tool/main.c:242
msgid "Commands:"
msgstr "Komennot:"
#: src/extensions-tool/main.c:243
msgid "Print help"
msgstr "Tulosta ohje"
#: src/extensions-tool/main.c:244 src/main.c:468
msgid "Print version"
msgstr "Tulosta versio"
#: src/main.c:470
#: src/extensions-tool/main.c:245
msgid "Enable extension"
msgstr "Ota laajennus käyttöön"
#: src/extensions-tool/main.c:246
msgid "Disable extension"
msgstr "Poista laajennus käytöstä"
#: src/extensions-tool/main.c:247
msgid "Reset extension"
msgstr "Nollaa laajennus"
#: src/extensions-tool/main.c:248
msgid "Uninstall extension"
msgstr "Poista laajennus"
#: src/extensions-tool/main.c:249
msgid "List extensions"
msgstr "Listaa laajennukset"
#: src/extensions-tool/main.c:250 src/extensions-tool/main.c:251
msgid "Show extension info"
msgstr "Näytä laajennuksen tiedot"
#: src/extensions-tool/main.c:252
msgid "Open extension preferences"
msgstr "Avaa laajennuksen asetukset"
#: src/extensions-tool/main.c:253
msgid "Create extension"
msgstr "Luo laajennus"
#: src/extensions-tool/main.c:254
#, fuzzy
#| msgid "Extension"
msgid "Package extension"
msgstr "Laajennus"
#: src/extensions-tool/main.c:255
msgid "Install extension bundle"
msgstr "Asenna laajennuspaketti"
#: src/extensions-tool/main.c:257
#, c-format
msgid "Use %s to get detailed help.\n"
msgstr "Suorita %s nähdäksesi yksityiskohtaisia ohjeita.\n"
#: src/main.c:474
msgid "Mode used by GDM for login screen"
msgstr "GDM:n kirjautumisruudussa käyttämä tila"
#: src/main.c:476
#: src/main.c:480
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Käytä tiettyä tilaa (esim. “gdm”) kirjautumisnäkymää varten"
#: src/main.c:482
#: src/main.c:486
msgid "List possible modes"
msgstr "Listaa mahdolliset tilat"
@@ -2395,7 +2708,7 @@ msgstr "Salasanat eivät täsmää."
msgid "Password cannot be blank"
msgstr "Salasana ei voi olla tyhjä"
#: src/shell-polkit-authentication-agent.c:348
#: src/shell-polkit-authentication-agent.c:344
msgid "Authentication dialog was dismissed by the user"
msgstr "Käyttäjä poistui tunnistautumisvalintaikkunasta"
@@ -2484,9 +2797,6 @@ msgstr "Järjestelmän äänet"
#~ msgid "Media"
#~ msgstr "Media"
#~ msgid "GNOME Shell Extension Preferences"
#~ msgstr "Gnome Shell -laajennusten asetukset"
#~ msgid "%d x %d"
#~ msgstr "%d x %d"
@@ -2745,9 +3055,6 @@ msgstr "Järjestelmän äänet"
#~ "Tämä avain syrjäyttää avaimen org.gnome.desktop.wm.preferences Gnome "
#~ "Shelliä käyttäessä."
#~ msgid "Extension"
#~ msgstr "Laajennus"
#~ msgid "Select an extension to configure using the combobox above."
#~ msgstr "Valitse muokattava laajennus alta."

1287
po/fr.po

File diff suppressed because it is too large Load Diff

631
po/fur.po

File diff suppressed because it is too large Load Diff

2528
po/gl.po

File diff suppressed because it is too large Load Diff

1193
po/hr.po

File diff suppressed because it is too large Load Diff

1210
po/hu.po

File diff suppressed because it is too large Load Diff

405
po/id.po
View File

@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2019-08-12 19:40+0000\n"
"PO-Revision-Date: 2019-08-16 15:37+0700\n"
"POT-Creation-Date: 2019-09-11 17:13+0000\n"
"PO-Revision-Date: 2019-09-12 01:30+0700\n"
"Last-Translator: Kukuh Syafaat <kukuhsyafaat@gnome.org>\n"
"Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n"
"Language: id\n"
@@ -47,7 +47,7 @@ msgid "Open the application menu"
msgstr "Buka menu aplikasi"
#: data/gnome-shell-extension-prefs.desktop.in.in:4
#: js/extensionPrefs/main.js:208
#: js/extensionPrefs/main.js:211
msgid "Shell Extensions"
msgstr "Ekstensi Shell"
@@ -403,11 +403,11 @@ msgstr ""
msgid "Network Login"
msgstr "Log Masuk Jaringan"
#: js/extensionPrefs/main.js:101 js/extensionPrefs/main.js:531
#: js/extensionPrefs/main.js:104 js/extensionPrefs/main.js:534
msgid "Somethings gone wrong"
msgstr "Ada yang tidak beres"
#: js/extensionPrefs/main.js:108
#: js/extensionPrefs/main.js:111
msgid ""
"Were very sorry, but theres been a problem: the settings for this "
"extension cant be displayed. We recommend that you report the issue to the "
@@ -417,27 +417,27 @@ msgstr ""
"tidak dapat ditampilkan. Kami menyarankan Anda melaporkan masalah ini kepada "
"penulis ekstensi."
#: js/extensionPrefs/main.js:115
#: js/extensionPrefs/main.js:118
msgid "Technical Details"
msgstr "Detail Teknis"
#: js/extensionPrefs/main.js:150
#: js/extensionPrefs/main.js:153
msgid "Copy Error"
msgstr "Salin Galat"
#: js/extensionPrefs/main.js:177
#: js/extensionPrefs/main.js:180
msgid "Homepage"
msgstr "Halaman Web"
#: js/extensionPrefs/main.js:178
#: js/extensionPrefs/main.js:181
msgid "Visit extension homepage"
msgstr "Kunjungi halaman web ekstensi"
#: js/extensionPrefs/main.js:473
#: js/extensionPrefs/main.js:476
msgid "No Extensions Installed"
msgstr "Tak Ada Ekstensi Terpasang"
#: js/extensionPrefs/main.js:483
#: js/extensionPrefs/main.js:486
msgid ""
"Extensions can be installed through Software or <a href=\"https://extensions."
"gnome.org\">extensions.gnome.org</a>."
@@ -445,11 +445,11 @@ msgstr ""
"Ekstensi dapat dipasang melalui Perangkat Lunak atau <a href=\"https://"
"extensions.gnome.org\">extensions.gnome.org</a>."
#: js/extensionPrefs/main.js:498
#: js/extensionPrefs/main.js:501
msgid "Browse in Software"
msgstr "Ramban di Perangkat Lunak"
#: js/extensionPrefs/main.js:538
#: js/extensionPrefs/main.js:541
msgid ""
"Were very sorry, but it was not possible to get the list of installed "
"extensions. Make sure you are logged into GNOME and try again."
@@ -459,7 +459,7 @@ msgstr ""
#: js/gdm/authPrompt.js:139 js/ui/audioDeviceSelection.js:53
#: js/ui/components/networkAgent.js:120 js/ui/components/polkitAgent.js:138
#: js/ui/endSessionDialog.js:445 js/ui/extensionDownloader.js:189
#: js/ui/endSessionDialog.js:448 js/ui/extensionDownloader.js:189
#: js/ui/shellMountOperation.js:390 js/ui/shellMountOperation.js:399
#: js/ui/status/network.js:899
msgid "Cancel"
@@ -763,28 +763,32 @@ msgstr "Sering"
msgid "All"
msgstr "Semua"
#: js/ui/appDisplay.js:1751
msgid "Rename"
msgstr "Ubah Nama"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2233 js/ui/panel.js:77
#: js/ui/appDisplay.js:2397 js/ui/panel.js:77
msgid "Open Windows"
msgstr "Buka Jendela"
#: js/ui/appDisplay.js:2252 js/ui/panel.js:84
#: js/ui/appDisplay.js:2416 js/ui/panel.js:84
msgid "New Window"
msgstr "Jendela Baru"
#: js/ui/appDisplay.js:2264
#: js/ui/appDisplay.js:2428
msgid "Launch using Dedicated Graphics Card"
msgstr "Luncurkan menggunakan Kartu Grafis Terdedikasi"
#: js/ui/appDisplay.js:2293 js/ui/dash.js:240
#: js/ui/appDisplay.js:2457 js/ui/dash.js:240
msgid "Remove from Favorites"
msgstr "Hapus dari Favorit"
#: js/ui/appDisplay.js:2299
#: js/ui/appDisplay.js:2463
msgid "Add to Favorites"
msgstr "Tambah ke Favorit"
#: js/ui/appDisplay.js:2309 js/ui/panel.js:95
#: js/ui/appDisplay.js:2473 js/ui/panel.js:95
msgid "Show Details"
msgstr "Tampilkan Rincian"
@@ -814,7 +818,7 @@ msgstr "Headphone"
msgid "Headset"
msgstr "Headset"
#: js/ui/audioDeviceSelection.js:64 js/ui/status/volume.js:241
#: js/ui/audioDeviceSelection.js:64 js/ui/status/volume.js:248
msgid "Microphone"
msgstr "Mikrofon"
@@ -1315,13 +1319,13 @@ msgid "Other users are logged in."
msgstr "Pengguna lain sedang log masuk."
#. Translators: Remote here refers to a remote session, like a ssh login
#: js/ui/endSessionDialog.js:647
#: js/ui/endSessionDialog.js:650
#, javascript-format
msgid "%s (remote)"
msgstr "%s (jarak jauh)"
#. Translators: Console here refers to a tty like a VT console
#: js/ui/endSessionDialog.js:650
#: js/ui/endSessionDialog.js:653
#, javascript-format
msgid "%s (console)"
msgstr "%s (konsol)"
@@ -1474,7 +1478,7 @@ msgstr "Tilik Sumber"
msgid "Web Page"
msgstr "Halaman Web"
#: js/ui/messageTray.js:1462
#: js/ui/messageTray.js:1461
msgid "System Information"
msgstr "Informasi Sistem"
@@ -1603,7 +1607,7 @@ msgid_plural "%d new notifications"
msgstr[0] "%d pemberitahuan baru"
msgstr[1] "%d pemberitahuan baru"
#: js/ui/screenShield.js:444 js/ui/status/system.js:269
#: js/ui/screenShield.js:444 js/ui/status/system.js:260
msgid "Lock"
msgstr "Kunci"
@@ -1626,15 +1630,15 @@ msgstr "Tak bisa mengunci"
msgid "Lock was blocked by an application"
msgstr "Kunci diblokir oleh suatu aplikasi"
#: js/ui/search.js:647
#: js/ui/search.js:668
msgid "Searching…"
msgstr "Mencari…"
#: js/ui/search.js:649
#: js/ui/search.js:670
msgid "No results."
msgstr "Tak ada yang cocok."
#: js/ui/search.js:773
#: js/ui/search.js:794
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
@@ -1780,7 +1784,7 @@ msgstr "Mati"
msgid "On"
msgstr "Hidup"
#: js/ui/status/brightness.js:37
#: js/ui/status/brightness.js:38
msgid "Brightness"
msgstr "Kecerahan"
@@ -2117,27 +2121,27 @@ msgstr "Matikan"
msgid "Airplane Mode On"
msgstr "Mode Pesawat Terbang Aktif"
#: js/ui/status/system.js:201
#: js/ui/status/system.js:192
msgid "Switch User"
msgstr "Ganti Pengguna"
#: js/ui/status/system.js:213
#: js/ui/status/system.js:204
msgid "Log Out"
msgstr "Keluar"
#: js/ui/status/system.js:225
#: js/ui/status/system.js:216
msgid "Account Settings"
msgstr "Pengaturan Akun"
#: js/ui/status/system.js:254
#: js/ui/status/system.js:245
msgid "Orientation Lock"
msgstr "Kunci Orientasi"
#: js/ui/status/system.js:280
#: js/ui/status/system.js:271
msgid "Suspend"
msgstr "Suspensi"
#: js/ui/status/system.js:290
#: js/ui/status/system.js:281
msgid "Power Off"
msgstr "Matikan"
@@ -2176,11 +2180,11 @@ msgstr "Autorisasi Thunderbolt galat"
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "Tidak dapat mengautorisasi perangkat Thunderbolt: %s"
#: js/ui/status/volume.js:128
#: js/ui/status/volume.js:129
msgid "Volume changed"
msgstr "Volume diubah"
#: js/ui/status/volume.js:193
#: js/ui/status/volume.js:200
msgid "Volume"
msgstr "Volume"
@@ -2233,22 +2237,22 @@ msgstr "Cari"
msgid "“%s” is ready"
msgstr "“%s” siap"
#: js/ui/windowManager.js:54
#: js/ui/windowManager.js:55
msgid "Do you want to keep these display settings?"
msgstr "Apakah Anda ingin mempertahankan pengaturan tampilan ini?"
#. Translators: this and the following message should be limited in length,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:66
#: js/ui/windowManager.js:67
msgid "Revert Settings"
msgstr "Balikkan Tatanan"
#: js/ui/windowManager.js:69
#: js/ui/windowManager.js:70
msgid "Keep Changes"
msgstr "Simpan Perubahan"
#: js/ui/windowManager.js:87
#: js/ui/windowManager.js:88
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -2257,7 +2261,7 @@ msgstr[1] "Perubahan tatanan akan dikembalikan dalam %d detik"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:683
#: js/ui/windowManager.js:684
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2330,19 +2334,328 @@ msgstr "Pindahkan ke Monitor Kanan"
msgid "Evolution Calendar"
msgstr "Evolution Kalender"
#: src/main.c:460
#: src/extensions-tool/command-create.c:189
#, c-format
msgid ""
"Name should be a very short (ideally descriptive) string.\n"
"Examples are: %s"
msgstr ""
"Nama harus berupa string yang sangat pendek (idealnya deskriptif).\n"
"Contohnya adalah: %s"
#: src/extensions-tool/command-create.c:192 src/extensions-tool/main.c:169
msgid "Name"
msgstr "Nama"
#: src/extensions-tool/command-create.c:203
#, c-format
msgid ""
"Description is a single-sentence explanation of what your extension does.\n"
"Examples are: %s"
msgstr ""
"Deskripsi adalah penjelasan satu kalimat tentang apa yang dilakukan ekstensi "
"Anda.\n"
"Contohnya adalah: %s"
#: src/extensions-tool/command-create.c:206 src/extensions-tool/main.c:172
msgid "Description"
msgstr "Deskripsi"
#: src/extensions-tool/command-create.c:217
msgid ""
"UUID is a globally-unique identifier for your extension.\n"
"This should be in the format of an email address (clicktofocus@janedoe."
"example.com)\n"
msgstr ""
"UUID adalah pengidentifikasi unik secara global untuk ekstensi Anda.\n"
"Ini harus dalam format alamat surel (clicktofocus@janedoe.example.com)\n"
#: src/extensions-tool/command-create.c:239
msgid "The unique identifier of the new extension"
msgstr "Pengidentifikasi unik ekstensi baru"
#: src/extensions-tool/command-create.c:242
msgid "NAME"
msgstr "NAMA"
#: src/extensions-tool/command-create.c:243
msgid "The user-visible name of the new extension"
msgstr "Nama ekstensi baru yang dapat dilihat pengguna"
#: src/extensions-tool/command-create.c:245
msgid "DESCRIPTION"
msgstr "DESKRIPSI"
#: src/extensions-tool/command-create.c:247
msgid "A short description of what the extension does"
msgstr "Deskripsi singkat tentang apa yang dilakukan ekstensi"
#: src/extensions-tool/command-create.c:250
msgid "Enter extension information interactively"
msgstr "Masukkan informasi ekstensi secara interaktif"
#: src/extensions-tool/command-create.c:258
msgid "Create a new extension"
msgstr "Buat ekstensi baru"
#: src/extensions-tool/command-create.c:275
#: src/extensions-tool/command-list.c:158
msgid "Unknown arguments"
msgstr "Argumen tak dikenal"
#: src/extensions-tool/command-create.c:284
msgid "UUID, name and description are required"
msgstr "Diperlukan UUID, nama, dan deskripsi"
#: src/extensions-tool/command-disable.c:57
msgid "Disable an extension"
msgstr "Nonaktifkan ekstensi"
#: src/extensions-tool/command-disable.c:74
#: src/extensions-tool/command-enable.c:74
#: src/extensions-tool/command-info.c:96
#: src/extensions-tool/command-prefs.c:107
#: src/extensions-tool/command-reset.c:74
#: src/extensions-tool/command-uninstall.c:89
msgid "No UUID given"
msgstr "Tidak ada UUID yang diberikan"
#: src/extensions-tool/command-disable.c:79
#: src/extensions-tool/command-enable.c:79
#: src/extensions-tool/command-info.c:101
#: src/extensions-tool/command-prefs.c:112
#: src/extensions-tool/command-reset.c:79
#: src/extensions-tool/command-uninstall.c:94
msgid "More than one UUID given"
msgstr "Lebih dari satu UUID diberikan"
#: src/extensions-tool/command-enable.c:57
msgid "Enable an extension"
msgstr "Aktifkan ekstensi"
#: src/extensions-tool/command-info.c:79
msgid "Show extensions info"
msgstr "Tampilkan info ekstensi"
#: src/extensions-tool/command-install.c:173
msgid "Overwrite an existing extension"
msgstr "Timpa ekstensi yang ada"
#: src/extensions-tool/command-install.c:175
msgid "EXTENSION_BUNDLE"
msgstr "BUNDEL_EKSTENSI"
#: src/extensions-tool/command-install.c:184
msgid "Install an extension bundle"
msgstr "Pasang bundel ekstensi"
#: src/extensions-tool/command-install.c:201
msgid "No extension bundle specified"
msgstr "Tidak ada bundel ekstensi yang ditentukan"
#: src/extensions-tool/command-install.c:207
msgid "More than one extension bundle specified"
msgstr "Lebih dari satu bundel ekstensi ditentukan"
#: src/extensions-tool/command-list.c:118
msgid "Show user-installed extensions"
msgstr "Tampilkan ekstensi yang dipasang pengguna"
#: src/extensions-tool/command-list.c:121
msgid "Show system-installed extensions"
msgstr "Tampilkan ekstensi yang dipasang sistem"
#: src/extensions-tool/command-list.c:124
msgid "Show enabled extensions"
msgstr "Tampilkan ekstensi yang diaktifkan"
#: src/extensions-tool/command-list.c:127
msgid "Show disabled extensions"
msgstr "Tampilkan ekstensi yang dinonaktifkan"
#: src/extensions-tool/command-list.c:130
msgid "Show extensions with preferences"
msgstr "Tampilkan ekstensi dengan preferensi"
#: src/extensions-tool/command-list.c:133
msgid "Print extension details"
msgstr "Cetak detail ekstensi"
#: src/extensions-tool/command-list.c:141
msgid "List installed extensions"
msgstr "Daftar ekstensi yang dipasang"
#: src/extensions-tool/command-pack.c:450
msgid "FILE"
msgstr "BERKAS"
#: src/extensions-tool/command-pack.c:451
msgid "Additional source to include in the bundle"
msgstr "Sumber tambahan untuk disertakan dalam bundel"
#: src/extensions-tool/command-pack.c:454
msgid "SCHEMA"
msgstr "SKEMA"
#: src/extensions-tool/command-pack.c:455
msgid "A GSettings schema that should be included"
msgstr "Skema GSettings yang harus dimasukkan"
#: src/extensions-tool/command-pack.c:457
#: src/extensions-tool/command-pack.c:468
msgid "DIRECTORY"
msgstr "DIREKTORI"
#: src/extensions-tool/command-pack.c:459
msgid "The directory where translations are found"
msgstr "Direktori tempat terjemahan ditemukan"
#: src/extensions-tool/command-pack.c:461
msgid "DOMAIN"
msgstr "DOMAIN"
#: src/extensions-tool/command-pack.c:463
msgid "The gettext domain to use for translations"
msgstr "Domain gettext yang digunakan untuk terjemahan"
#: src/extensions-tool/command-pack.c:466
msgid "Overwrite an existing pack"
msgstr "Timpa paket yang ada"
#: src/extensions-tool/command-pack.c:470
msgid "The directory where the pack should be created"
msgstr "Direktori tempat paket harus dibuat"
#: src/extensions-tool/command-pack.c:472
msgid "SOURCE_DIRECTORY"
msgstr "DIREKTORI_SUMBER"
#: src/extensions-tool/command-pack.c:481
msgid "Create an extension bundle"
msgstr "Buat bundel ekstensi"
#: src/extensions-tool/command-pack.c:500
msgid "More than one source directory specified"
msgstr "Lebih dari satu direktori sumber ditentukan"
#: src/extensions-tool/command-prefs.c:90
msgid "Opens extension preferences"
msgstr "Buka preferensi ekstensi"
#: src/extensions-tool/command-reset.c:57
msgid "Reset an extension"
msgstr "Atur ulang ekstensi"
#: src/extensions-tool/command-uninstall.c:72
msgid "Uninstall an extension"
msgstr "Hapus ekstensi"
#: src/extensions-tool/main.c:175
msgid "Path"
msgstr "Path"
#: src/extensions-tool/main.c:178
msgid "URL"
msgstr "URL"
#: src/extensions-tool/main.c:181
msgid "Original author"
msgstr "Penulis asli"
#: src/extensions-tool/main.c:184
msgid "Version"
msgstr "Versi"
#: src/extensions-tool/main.c:187
msgid "State"
msgstr "Kondisi"
#: src/extensions-tool/main.c:221
msgid "“version” takes no arguments"
msgstr "\"version\" tak menerima argumen"
#: src/extensions-tool/main.c:223 src/extensions-tool/main.c:243
msgid "Usage:"
msgstr "Pemakaian:"
#: src/extensions-tool/main.c:226
msgid "Print version information and exit."
msgstr "Cetak informasi versi dan keluar."
#: src/extensions-tool/main.c:241 src/extensions-tool/main.c:244
msgid "COMMAND"
msgstr "PERINTAH"
#: src/extensions-tool/main.c:244
msgid "[ARGS…]"
msgstr "[ARG...]"
#: src/extensions-tool/main.c:246
msgid "Commands:"
msgstr "Perintah:"
#: src/extensions-tool/main.c:247
msgid "Print help"
msgstr "Cetak bantuan"
#: src/extensions-tool/main.c:248 src/main.c:468
msgid "Print version"
msgstr "Versi Cetak"
#: src/main.c:466
#: src/extensions-tool/main.c:249
msgid "Enable extension"
msgstr "Aktifkan ekstensi"
#: src/extensions-tool/main.c:250
msgid "Disable extension"
msgstr "Nonaktifkan ekstensi"
#: src/extensions-tool/main.c:251
msgid "Reset extension"
msgstr "Atur ulang ekstensi"
#: src/extensions-tool/main.c:252
msgid "Uninstall extension"
msgstr "Hapus ekstensi"
#: src/extensions-tool/main.c:253
msgid "List extensions"
msgstr "Daftar ekstensi"
#: src/extensions-tool/main.c:254 src/extensions-tool/main.c:255
msgid "Show extension info"
msgstr "Tampilkan info ekstensi"
#: src/extensions-tool/main.c:256
msgid "Open extension preferences"
msgstr "Buka preferensi ekstensi"
#: src/extensions-tool/main.c:257
msgid "Create extension"
msgstr "Buat ekstensi"
#: src/extensions-tool/main.c:258
msgid "Package extension"
msgstr "Ekstensi Paket"
#: src/extensions-tool/main.c:259
msgid "Install extension bundle"
msgstr "Pasang bundel ekstensi"
#: src/extensions-tool/main.c:261
#, c-format
msgid "Use “%s” to get detailed help.\n"
msgstr "Gunakan \"%s\" untuk mendapatkan bantuan terperinci.\n"
#: src/main.c:474
msgid "Mode used by GDM for login screen"
msgstr "Mode yang dipakai oleh layar log masuk GDM"
#: src/main.c:472
#: src/main.c:480
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Menggunakan mode tertentu, mis. \"gdm\" untuk layar masuk"
#: src/main.c:478
#: src/main.c:486
msgid "List possible modes"
msgstr "Menampilkan mode yang mungkin"

1287
po/it.po

File diff suppressed because it is too large Load Diff

1300
po/ja.po

File diff suppressed because it is too large Load Diff

1292
po/ko.po

File diff suppressed because it is too large Load Diff

426
po/lt.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: 2019-08-09 14:45+0000\n"
"PO-Revision-Date: 2019-08-18 22:05+0300\n"
"POT-Creation-Date: 2019-09-11 17:13+0000\n"
"PO-Revision-Date: 2019-09-11 22:37+0300\n"
"Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n"
"Language-Team: Lietuvių <gnome-lt@lists.akl.lt>\n"
"Language: lt\n"
@@ -48,7 +48,7 @@ msgid "Open the application menu"
msgstr "Atverti programų meniu"
#: data/gnome-shell-extension-prefs.desktop.in.in:4
#: js/extensionPrefs/main.js:208
#: js/extensionPrefs/main.js:211
msgid "Shell Extensions"
msgstr "Shell plėtiniai"
@@ -95,16 +95,10 @@ msgstr ""
"Shell D-Bus metodus EnableExtension ir DisableExtension."
#: data/org.gnome.shell.gschema.xml.in:26
#| msgid "UUIDs of extensions to enable"
msgid "UUIDs of extensions to force disabling"
msgstr "Privestinai išjungtų plėtinių UUID"
#: data/org.gnome.shell.gschema.xml.in:27
#| msgid ""
#| "GNOME Shell extensions have a UUID property; this key lists extensions "
#| "which should be loaded. Any extension that wants to be loaded needs to be "
#| "in this list. You can also manipulate this list with the EnableExtension "
#| "and DisableExtension D-Bus methods on org.gnome.Shell."
msgid ""
"GNOME Shell extensions have a UUID property; this key lists extensions which "
"should be disabled, even if loaded as part of the current mode. You can also "
@@ -347,7 +341,6 @@ msgstr ""
"srities. Priešingu atveju įtraukiami visi langai."
#: data/org.gnome.shell.gschema.xml.in:234
#| msgid "Location In Use"
msgid "Locations"
msgstr "Vietos"
@@ -364,7 +357,6 @@ msgid "Whether to fetch the current location or not"
msgstr "Ar gauti dabartinę vietą"
#: data/org.gnome.shell.gschema.xml.in:253
#| msgid "Location In Use"
msgid "Location"
msgstr "Vieta"
@@ -405,11 +397,11 @@ msgstr "Atidėti fokuso pakeitimus pelei iki žymiklis nustos judėti"
msgid "Network Login"
msgstr "Tinklo prisijungimas"
#: js/extensionPrefs/main.js:101 js/extensionPrefs/main.js:531
#: js/extensionPrefs/main.js:104 js/extensionPrefs/main.js:534
msgid "Somethings gone wrong"
msgstr "Atsitiko kažkas negero"
#: js/extensionPrefs/main.js:108
#: js/extensionPrefs/main.js:111
msgid ""
"Were very sorry, but theres been a problem: the settings for this "
"extension cant be displayed. We recommend that you report the issue to the "
@@ -418,27 +410,27 @@ msgstr ""
"Atsiprašome, bet kilo problema: šio plėtinio nustatymų parodyti nepavyksta. "
"Rekomenduojame pranešti apie problemą plėtinio autoriams."
#: js/extensionPrefs/main.js:115
#: js/extensionPrefs/main.js:118
msgid "Technical Details"
msgstr "Techninė informacija"
#: js/extensionPrefs/main.js:150
#: js/extensionPrefs/main.js:153
msgid "Copy Error"
msgstr "Kopijuoti klaidą"
#: js/extensionPrefs/main.js:177
#: js/extensionPrefs/main.js:180
msgid "Homepage"
msgstr "Namų tinklalapis"
#: js/extensionPrefs/main.js:178
#: js/extensionPrefs/main.js:181
msgid "Visit extension homepage"
msgstr "Aplankyti plėtinio namų tinklalapį"
#: js/extensionPrefs/main.js:473
#: js/extensionPrefs/main.js:476
msgid "No Extensions Installed"
msgstr "Nėra įdiegtų plėtinių"
#: js/extensionPrefs/main.js:483
#: js/extensionPrefs/main.js:486
msgid ""
"Extensions can be installed through Software or <a href=\"https://extensions."
"gnome.org\">extensions.gnome.org</a>."
@@ -446,11 +438,11 @@ msgstr ""
"Plėtinius galima įdiegti per Programinę įrangą arba <a href=\"https://"
"extensions.gnome.org\">extensions.gnome.org</a>."
#: js/extensionPrefs/main.js:498
#: js/extensionPrefs/main.js:501
msgid "Browse in Software"
msgstr "Naršyti Programinėje įrangoje"
#: js/extensionPrefs/main.js:538
#: js/extensionPrefs/main.js:541
msgid ""
"Were very sorry, but it was not possible to get the list of installed "
"extensions. Make sure you are logged into GNOME and try again."
@@ -460,7 +452,7 @@ msgstr ""
#: js/gdm/authPrompt.js:139 js/ui/audioDeviceSelection.js:53
#: js/ui/components/networkAgent.js:120 js/ui/components/polkitAgent.js:138
#: js/ui/endSessionDialog.js:445 js/ui/extensionDownloader.js:189
#: js/ui/endSessionDialog.js:448 js/ui/extensionDownloader.js:189
#: js/ui/shellMountOperation.js:390 js/ui/shellMountOperation.js:399
#: js/ui/status/network.js:899
msgid "Cancel"
@@ -553,7 +545,6 @@ msgstr "Atsijungti"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:108
#| msgid "logout;sign off"
msgid "logout;log out;sign off"
msgstr "atsijungti;išeiti;"
@@ -770,29 +761,33 @@ msgstr "Dažnai naudojamos"
msgid "All"
msgstr "Visos"
#: js/ui/appDisplay.js:1751
#| msgid "Username: "
msgid "Rename"
msgstr "Pervadinti"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2224 js/ui/panel.js:77
#| msgid "Windows"
#: js/ui/appDisplay.js:2397 js/ui/panel.js:77
msgid "Open Windows"
msgstr "Atverti langai"
#: js/ui/appDisplay.js:2243 js/ui/panel.js:84
#: js/ui/appDisplay.js:2416 js/ui/panel.js:84
msgid "New Window"
msgstr "Naujas langas"
#: js/ui/appDisplay.js:2255
#: js/ui/appDisplay.js:2428
msgid "Launch using Dedicated Graphics Card"
msgstr "Paleisti naudojant dedikuotą grafikos kortą"
#: js/ui/appDisplay.js:2284 js/ui/dash.js:240
#: js/ui/appDisplay.js:2457 js/ui/dash.js:240
msgid "Remove from Favorites"
msgstr "Pašalinti iš mėgstamų"
#: js/ui/appDisplay.js:2290
#: js/ui/appDisplay.js:2463
msgid "Add to Favorites"
msgstr "Pridėti prie mėgstamų"
#: js/ui/appDisplay.js:2300 js/ui/panel.js:95
#: js/ui/appDisplay.js:2473 js/ui/panel.js:95
msgid "Show Details"
msgstr "Rodyti detalią informaciją"
@@ -822,7 +817,7 @@ msgstr "Ausinės"
msgid "Headset"
msgstr "Ausinės su mikrofonu"
#: js/ui/audioDeviceSelection.js:64 js/ui/status/volume.js:241
#: js/ui/audioDeviceSelection.js:64 js/ui/status/volume.js:248
msgid "Microphone"
msgstr "Mikrofonas"
@@ -992,7 +987,6 @@ msgid "External drive disconnected"
msgstr "Atjungta išorinė laikmena"
#: js/ui/components/automountManager.js:210
#| msgid "Unable to lock"
msgid "Unable to unlock volume"
msgstr "Nepavyksta atrakinti garso"
@@ -1328,13 +1322,13 @@ msgid "Other users are logged in."
msgstr "Yra prisijungusių kitų naudotojų"
#. Translators: Remote here refers to a remote session, like a ssh login
#: js/ui/endSessionDialog.js:647
#: js/ui/endSessionDialog.js:650
#, javascript-format
msgid "%s (remote)"
msgstr "%s (nutolęs)"
#. Translators: Console here refers to a tty like a VT console
#: js/ui/endSessionDialog.js:650
#: js/ui/endSessionDialog.js:653
#, javascript-format
msgid "%s (console)"
msgstr "%s (komandų eilutė)"
@@ -1487,7 +1481,7 @@ msgstr "Žiūrėti šaltinį"
msgid "Web Page"
msgstr "Tinklalapis"
#: js/ui/messageTray.js:1462
#: js/ui/messageTray.js:1461
msgid "System Information"
msgstr "Sistemos informacija"
@@ -1618,7 +1612,7 @@ msgstr[0] "%d naujas pranešimas"
msgstr[1] "%d nauji pranešimai"
msgstr[2] "%d naujų pranešimų"
#: js/ui/screenShield.js:444 js/ui/status/system.js:269
#: js/ui/screenShield.js:444 js/ui/status/system.js:260
msgid "Lock"
msgstr "Užrakinti"
@@ -1641,15 +1635,15 @@ msgstr "Nepavyksta užrakinti"
msgid "Lock was blocked by an application"
msgstr "Programa užblokavo užrakinimą"
#: js/ui/search.js:647
#: js/ui/search.js:668
msgid "Searching…"
msgstr "Ieškoma…"
#: js/ui/search.js:649
#: js/ui/search.js:670
msgid "No results."
msgstr "Nerasta atitikmenų."
#: js/ui/search.js:773
#: js/ui/search.js:794
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
@@ -1674,7 +1668,6 @@ msgid "Hide Text"
msgstr "Slėpti tekstą"
#: js/ui/shellMountOperation.js:304
#| msgid "Volume"
msgid "Hidden Volume"
msgstr "Paslėptas garsumas"
@@ -1683,7 +1676,6 @@ msgid "Windows System Volume"
msgstr "Windows sisteminis tomas"
#: js/ui/shellMountOperation.js:310
#| msgid "Mouse Keys"
msgid "Uses Keyfiles"
msgstr "Naudoja raktų failus"
@@ -1715,14 +1707,12 @@ msgstr "Atsiminti slaptažodį"
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:404
#, javascript-format
#| msgid "Open with %s"
msgid "Open %s"
msgstr "Atverti %s"
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:476
#, javascript-format
#| msgid "Unable to connect to %s"
msgid "Unable to start %s"
msgstr "Nepavyksta paleisti %s"
@@ -1801,7 +1791,7 @@ msgstr "Išjungta"
msgid "On"
msgstr "Įjungta"
#: js/ui/status/brightness.js:37
#: js/ui/status/brightness.js:38
msgid "Brightness"
msgstr "Ryškumas"
@@ -2141,27 +2131,27 @@ msgstr "Išjungti"
msgid "Airplane Mode On"
msgstr "Skrydžio veiksena įjungta"
#: js/ui/status/system.js:201
#: js/ui/status/system.js:192
msgid "Switch User"
msgstr "Keisti naudotoją"
#: js/ui/status/system.js:213
#: js/ui/status/system.js:204
msgid "Log Out"
msgstr "Atsijungti"
#: js/ui/status/system.js:225
#: js/ui/status/system.js:216
msgid "Account Settings"
msgstr "Paskyros nustatymai"
#: js/ui/status/system.js:254
#: js/ui/status/system.js:245
msgid "Orientation Lock"
msgstr "Padėties užrakinimas"
#: js/ui/status/system.js:280
#: js/ui/status/system.js:271
msgid "Suspend"
msgstr "Pristabdyti"
#: js/ui/status/system.js:290
#: js/ui/status/system.js:281
msgid "Power Off"
msgstr "Išjungti"
@@ -2199,11 +2189,11 @@ msgstr "Thunderbolt autorizacijos klaida"
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "Nepavyko autorizuoti Thunderbolt įrenginio: %s"
#: js/ui/status/volume.js:128
#: js/ui/status/volume.js:129
msgid "Volume changed"
msgstr "Garsumas pakeistas"
#: js/ui/status/volume.js:193
#: js/ui/status/volume.js:200
msgid "Volume"
msgstr "Garsumas"
@@ -2256,22 +2246,22 @@ msgstr "Ieškoti"
msgid "“%s” is ready"
msgstr "„%s“ yra pasirengusi"
#: js/ui/windowManager.js:54
#: js/ui/windowManager.js:55
msgid "Do you want to keep these display settings?"
msgstr "Ar norite įrašyti šiuos vaizduoklio nustatymus?"
#. Translators: this and the following message should be limited in length,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:66
#: js/ui/windowManager.js:67
msgid "Revert Settings"
msgstr "Grąžinti nustatymus"
#: js/ui/windowManager.js:69
#: js/ui/windowManager.js:70
msgid "Keep Changes"
msgstr "Įrašyti pakeitimus"
#: js/ui/windowManager.js:87
#: js/ui/windowManager.js:88
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -2281,7 +2271,7 @@ msgstr[2] "Pakeitimai bus grąžinti po %d sekundžių"
#. 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:683
#: js/ui/windowManager.js:684
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2354,19 +2344,328 @@ msgstr "Perkelti į dešiniau esantį monitorių"
msgid "Evolution Calendar"
msgstr "Evolution kalendorius"
#: src/main.c:464
#: src/extensions-tool/command-create.c:189
#, c-format
msgid ""
"Name should be a very short (ideally descriptive) string.\n"
"Examples are: %s"
msgstr ""
"Pavadinimas turi būti trumpa (geriausia apibūdinant) simbolių eilutė.\n"
"Pavyzdžiai: %s"
#: src/extensions-tool/command-create.c:192 src/extensions-tool/main.c:169
msgid "Name"
msgstr "Pavadinimas"
#: src/extensions-tool/command-create.c:203
#, c-format
msgid ""
"Description is a single-sentence explanation of what your extension does.\n"
"Examples are: %s"
msgstr ""
"Aprašymas yra vieno sakinio paaiškinimas, ką daro plėtinys.\n"
"Pavyzdžiai: %s"
#: src/extensions-tool/command-create.c:206 src/extensions-tool/main.c:172
msgid "Description"
msgstr "Aprašymas"
#: src/extensions-tool/command-create.c:217
msgid ""
"UUID is a globally-unique identifier for your extension.\n"
"This should be in the format of an email address (clicktofocus@janedoe."
"example.com)\n"
msgstr ""
"UUID yra visuotinai unikalus identifikatorius jūsų plėtiniui.\n"
"Jis turėtų būti el. pašto adreso formato (clicktofocus@janedoe.example.com)\n"
#: src/extensions-tool/command-create.c:239
msgid "The unique identifier of the new extension"
msgstr "Unikalus identifikatorius naujam plėtiniui"
#: src/extensions-tool/command-create.c:242
msgid "NAME"
msgstr "PAVADINIMAS"
#: src/extensions-tool/command-create.c:243
msgid "The user-visible name of the new extension"
msgstr "Naudotojui matomas plėtinio pavadinimas"
#: src/extensions-tool/command-create.c:245
msgid "DESCRIPTION"
msgstr "APRAŠYMAS"
#: src/extensions-tool/command-create.c:247
msgid "A short description of what the extension does"
msgstr "Trumpas aprašymas, ką daro plėtinys"
#: src/extensions-tool/command-create.c:250
msgid "Enter extension information interactively"
msgstr "Įveskite plėtinio informaciją interaktyviai"
#: src/extensions-tool/command-create.c:258
msgid "Create a new extension"
msgstr "Sukurti naują plėtinį"
#: src/extensions-tool/command-create.c:275
#: src/extensions-tool/command-list.c:158
msgid "Unknown arguments"
msgstr "Nežinomi argumentai"
#: src/extensions-tool/command-create.c:284
msgid "UUID, name and description are required"
msgstr "UUID, pavadinimas ir aprašymas yra būtini"
#: src/extensions-tool/command-disable.c:57
msgid "Disable an extension"
msgstr "Išjungti plėtinį"
#: src/extensions-tool/command-disable.c:74
#: src/extensions-tool/command-enable.c:74
#: src/extensions-tool/command-info.c:96
#: src/extensions-tool/command-prefs.c:107
#: src/extensions-tool/command-reset.c:74
#: src/extensions-tool/command-uninstall.c:89
msgid "No UUID given"
msgstr "Nenurodytas UUID"
#: src/extensions-tool/command-disable.c:79
#: src/extensions-tool/command-enable.c:79
#: src/extensions-tool/command-info.c:101
#: src/extensions-tool/command-prefs.c:112
#: src/extensions-tool/command-reset.c:79
#: src/extensions-tool/command-uninstall.c:94
msgid "More than one UUID given"
msgstr "Pateiktas daugiau nei vienas UUID"
#: src/extensions-tool/command-enable.c:57
msgid "Enable an extension"
msgstr "Išjungti plėtinį"
#: src/extensions-tool/command-info.c:79
msgid "Show extensions info"
msgstr "Rodyti plėtinio informaciją"
#: src/extensions-tool/command-install.c:173
msgid "Overwrite an existing extension"
msgstr "Perrašyti esamą plėtinį"
#: src/extensions-tool/command-install.c:175
msgid "EXTENSION_BUNDLE"
msgstr "PLĖTINIO_RYŠULYS"
#: src/extensions-tool/command-install.c:184
msgid "Install an extension bundle"
msgstr "Įdiegti plėtinio ryšulį"
#: src/extensions-tool/command-install.c:201
msgid "No extension bundle specified"
msgstr "Nenurodytas plėtinio ryšulys"
#: src/extensions-tool/command-install.c:207
msgid "More than one extension bundle specified"
msgstr "Nurodytas daugiau nei vienas plėtinio ryšulys"
#: src/extensions-tool/command-list.c:118
msgid "Show user-installed extensions"
msgstr "Rodyti naudotojo įdiegtus plėtinius"
#: src/extensions-tool/command-list.c:121
msgid "Show system-installed extensions"
msgstr "Rodyti sistemoje įdiegtus plėtinius"
#: src/extensions-tool/command-list.c:124
msgid "Show enabled extensions"
msgstr "Rodyti įjungtus plėtinius"
#: src/extensions-tool/command-list.c:127
msgid "Show disabled extensions"
msgstr "Rodyti išjungtus plėtinius"
#: src/extensions-tool/command-list.c:130
msgid "Show extensions with preferences"
msgstr "Rodyti plėtinius su nuostatomis"
#: src/extensions-tool/command-list.c:133
msgid "Print extension details"
msgstr "Atspausdinti plėtinio informaciją"
#: src/extensions-tool/command-list.c:141
msgid "List installed extensions"
msgstr "Išvardinti įdiegtus plėtinius"
#: src/extensions-tool/command-pack.c:450
msgid "FILE"
msgstr "FAILAS"
#: src/extensions-tool/command-pack.c:451
msgid "Additional source to include in the bundle"
msgstr "Papildomas šaltinis įdėjimui į ryšulį"
#: src/extensions-tool/command-pack.c:454
msgid "SCHEMA"
msgstr "SCHEMA"
#: src/extensions-tool/command-pack.c:455
msgid "A GSettings schema that should be included"
msgstr "GSettings schema, kuri turi būti įtraukta"
#: src/extensions-tool/command-pack.c:457
#: src/extensions-tool/command-pack.c:468
msgid "DIRECTORY"
msgstr "KATALOGAS"
#: src/extensions-tool/command-pack.c:459
msgid "The directory where translations are found"
msgstr "Katalogas, kuriame yra vertimai"
#: src/extensions-tool/command-pack.c:461
msgid "DOMAIN"
msgstr "DOMENAS"
#: src/extensions-tool/command-pack.c:463
msgid "The gettext domain to use for translations"
msgstr "gettext domenas, naudojamas vertimams"
#: src/extensions-tool/command-pack.c:466
msgid "Overwrite an existing pack"
msgstr "Perrašyti esamą paketą"
#: src/extensions-tool/command-pack.c:470
msgid "The directory where the pack should be created"
msgstr "Katalogas, kuriame turi būti sukurtas paketas"
#: src/extensions-tool/command-pack.c:472
msgid "SOURCE_DIRECTORY"
msgstr "KODO_KATALOGAS"
#: src/extensions-tool/command-pack.c:481
msgid "Create an extension bundle"
msgstr "Sukurti plėtinio ryšulį"
#: src/extensions-tool/command-pack.c:500
msgid "More than one source directory specified"
msgstr "Nurodytas daugiau nei vienas kodo aplankas"
#: src/extensions-tool/command-prefs.c:90
msgid "Opens extension preferences"
msgstr "Atveria plėtinio nuostatas"
#: src/extensions-tool/command-reset.c:57
msgid "Reset an extension"
msgstr "Atstatyti plėtinį"
#: src/extensions-tool/command-uninstall.c:72
msgid "Uninstall an extension"
msgstr "Išdiegti plėtinį"
#: src/extensions-tool/main.c:175
msgid "Path"
msgstr "Kelias"
#: src/extensions-tool/main.c:178
msgid "URL"
msgstr "URL"
#: src/extensions-tool/main.c:181
msgid "Original author"
msgstr "Pradinis autorius"
#: src/extensions-tool/main.c:184
msgid "Version"
msgstr "Versija"
#: src/extensions-tool/main.c:187
msgid "State"
msgstr "Būsena"
#: src/extensions-tool/main.c:221
msgid "“version” takes no arguments"
msgstr "„version“ nepriima argumentų"
#: src/extensions-tool/main.c:223 src/extensions-tool/main.c:243
msgid "Usage:"
msgstr "Naudojimas:"
#: src/extensions-tool/main.c:226
msgid "Print version information and exit."
msgstr "Atspausdinti versijos informaciją ir išeiti."
#: src/extensions-tool/main.c:241 src/extensions-tool/main.c:244
msgid "COMMAND"
msgstr "KOMANDA"
#: src/extensions-tool/main.c:244
msgid "[ARGS…]"
msgstr "[ARG…]"
#: src/extensions-tool/main.c:246
msgid "Commands:"
msgstr "Komandos:"
#: src/extensions-tool/main.c:247
msgid "Print help"
msgstr "Atspausdinti žinyną"
#: src/extensions-tool/main.c:248 src/main.c:468
msgid "Print version"
msgstr "Išvesti versijos numerį"
#: src/main.c:470
#: src/extensions-tool/main.c:249
msgid "Enable extension"
msgstr "Įjungti ]plėtinį"
#: src/extensions-tool/main.c:250
msgid "Disable extension"
msgstr "Išjungti plėtinį"
#: src/extensions-tool/main.c:251
msgid "Reset extension"
msgstr "Atstatyti plėtinį"
#: src/extensions-tool/main.c:252
msgid "Uninstall extension"
msgstr "Išdiegti plėtinį"
#: src/extensions-tool/main.c:253
msgid "List extensions"
msgstr "Išvardinti plėtinius"
#: src/extensions-tool/main.c:254 src/extensions-tool/main.c:255
msgid "Show extension info"
msgstr "Rodyti plėtinio informaciją"
#: src/extensions-tool/main.c:256
msgid "Open extension preferences"
msgstr "Atverti plėtinio nuostatas"
#: src/extensions-tool/main.c:257
msgid "Create extension"
msgstr "Sukurti plėtinį"
#: src/extensions-tool/main.c:258
msgid "Package extension"
msgstr "Supakuoti plėtinį"
#: src/extensions-tool/main.c:259
msgid "Install extension bundle"
msgstr "Įdiegti plėtinio ryšulį"
#: src/extensions-tool/main.c:261
#, c-format
#| msgid "Use %s to get detailed help.\n"
msgid "Use “%s” to get detailed help.\n"
msgstr "Detalesnį žinyną gausite panaudoję „%s“.\n"
#: src/main.c:474
msgid "Mode used by GDM for login screen"
msgstr "Veiksena, naudojama GDM prisijungimo ekrane"
#: src/main.c:476
#: src/main.c:480
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Naudoti konkrečią veikseną, pvz., „gdm“ prisijungimo ekranui"
#: src/main.c:482
#: src/main.c:486
msgid "List possible modes"
msgstr "Išvardinti galimas veiksenas"
@@ -2388,7 +2687,7 @@ msgstr "Slaptažodžiai nesutampa."
msgid "Password cannot be blank"
msgstr "Slaptažodis negali būti tuščias"
#: src/shell-polkit-authentication-agent.c:348
#: src/shell-polkit-authentication-agent.c:344
msgid "Authentication dialog was dismissed by the user"
msgstr "Naudotojas užvėrė tapatybės patvirtinimo dialogą"
@@ -2486,9 +2785,6 @@ msgstr "Sistemos garsai"
#~ msgid "Media"
#~ msgstr "Medija"
#~ msgid "GNOME Shell Extension Preferences"
#~ msgstr "GNOME Shell plėtinių nuostatos"
#~ msgid "Web Authentication Redirect"
#~ msgstr "Reikia patvirtinti tapatybę internete"

1367
po/lv.po

File diff suppressed because it is too large Load Diff

1700
po/ne.po

File diff suppressed because it is too large Load Diff

1526
po/pa.po

File diff suppressed because it is too large Load Diff

410
po/pl.po
View File

@@ -10,8 +10,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: 2019-08-09 14:45+0000\n"
"PO-Revision-Date: 2019-08-20 19:15+0200\n"
"POT-Creation-Date: 2019-09-11 17:13+0000\n"
"PO-Revision-Date: 2019-09-11 19:21+0200\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <community-poland@mozilla.org>\n"
"Language: pl\n"
@@ -46,7 +46,7 @@ msgid "Open the application menu"
msgstr "Otwarcie menu programu"
#: data/gnome-shell-extension-prefs.desktop.in.in:4
#: js/extensionPrefs/main.js:208
#: js/extensionPrefs/main.js:211
msgid "Shell Extensions"
msgstr "Rozszerzenia powłoki"
@@ -403,11 +403,11 @@ msgstr ""
msgid "Network Login"
msgstr "Logowanie do sieci"
#: js/extensionPrefs/main.js:101 js/extensionPrefs/main.js:531
#: js/extensionPrefs/main.js:104 js/extensionPrefs/main.js:534
msgid "Somethings gone wrong"
msgstr "Coś się nie powiodło"
#: js/extensionPrefs/main.js:108
#: js/extensionPrefs/main.js:111
msgid ""
"Were very sorry, but theres been a problem: the settings for this "
"extension cant be displayed. We recommend that you report the issue to the "
@@ -416,27 +416,27 @@ msgstr ""
"Wystąpił problem: nie można wyświetlić ustawień tego rozszerzenia. Zalecamy "
"zgłoszenie problemu autorom rozszerzenia."
#: js/extensionPrefs/main.js:115
#: js/extensionPrefs/main.js:118
msgid "Technical Details"
msgstr "Informacje techniczne"
#: js/extensionPrefs/main.js:150
#: js/extensionPrefs/main.js:153
msgid "Copy Error"
msgstr "Skopiuj błąd"
#: js/extensionPrefs/main.js:177
#: js/extensionPrefs/main.js:180
msgid "Homepage"
msgstr "Strona WWW"
#: js/extensionPrefs/main.js:178
#: js/extensionPrefs/main.js:181
msgid "Visit extension homepage"
msgstr "Otwiera stronę WWW rozszerzenia"
#: js/extensionPrefs/main.js:473
#: js/extensionPrefs/main.js:476
msgid "No Extensions Installed"
msgstr "Nie zainstalowano rozszerzeń"
#: js/extensionPrefs/main.js:483
#: js/extensionPrefs/main.js:486
msgid ""
"Extensions can be installed through Software or <a href=\"https://extensions."
"gnome.org\">extensions.gnome.org</a>."
@@ -444,11 +444,11 @@ msgstr ""
"Można instalować rozszerzenia przez Menedżera oprogramowania lub stronę <a "
"href=\"https://extensions.gnome.org\">extensions.gnome.org</a>."
#: js/extensionPrefs/main.js:498
#: js/extensionPrefs/main.js:501
msgid "Browse in Software"
msgstr "Przeglądaj w Menedżerze oprogramowania"
#: js/extensionPrefs/main.js:538
#: js/extensionPrefs/main.js:541
msgid ""
"Were very sorry, but it was not possible to get the list of installed "
"extensions. Make sure you are logged into GNOME and try again."
@@ -458,7 +458,7 @@ msgstr ""
#: js/gdm/authPrompt.js:139 js/ui/audioDeviceSelection.js:53
#: js/ui/components/networkAgent.js:120 js/ui/components/polkitAgent.js:138
#: js/ui/endSessionDialog.js:445 js/ui/extensionDownloader.js:189
#: js/ui/endSessionDialog.js:448 js/ui/extensionDownloader.js:189
#: js/ui/shellMountOperation.js:390 js/ui/shellMountOperation.js:399
#: js/ui/status/network.js:899
msgid "Cancel"
@@ -774,28 +774,32 @@ msgstr "Często używane"
msgid "All"
msgstr "Wszystkie"
#: js/ui/appDisplay.js:1751
msgid "Rename"
msgstr "Zmień nazwę"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2224 js/ui/panel.js:77
#: js/ui/appDisplay.js:2397 js/ui/panel.js:77
msgid "Open Windows"
msgstr "Otwarte okna"
#: js/ui/appDisplay.js:2243 js/ui/panel.js:84
#: js/ui/appDisplay.js:2416 js/ui/panel.js:84
msgid "New Window"
msgstr "Nowe okno"
#: js/ui/appDisplay.js:2255
#: js/ui/appDisplay.js:2428
msgid "Launch using Dedicated Graphics Card"
msgstr "Uruchom za pomocą dedykowanej karty graficznej"
#: js/ui/appDisplay.js:2284 js/ui/dash.js:240
#: js/ui/appDisplay.js:2457 js/ui/dash.js:240
msgid "Remove from Favorites"
msgstr "Usuń z ulubionych"
#: js/ui/appDisplay.js:2290
#: js/ui/appDisplay.js:2463
msgid "Add to Favorites"
msgstr "Dodaj do ulubionych"
#: js/ui/appDisplay.js:2300 js/ui/panel.js:95
#: js/ui/appDisplay.js:2473 js/ui/panel.js:95
msgid "Show Details"
msgstr "Wyświetl szczegóły"
@@ -825,7 +829,7 @@ msgstr "Słuchawki"
msgid "Headset"
msgstr "Słuchawki z mikrofonem"
#: js/ui/audioDeviceSelection.js:64 js/ui/status/volume.js:241
#: js/ui/audioDeviceSelection.js:64 js/ui/status/volume.js:248
msgid "Microphone"
msgstr "Mikrofon"
@@ -1330,13 +1334,13 @@ msgid "Other users are logged in."
msgstr "Inni użytkownicy są zalogowani."
#. Translators: Remote here refers to a remote session, like a ssh login
#: js/ui/endSessionDialog.js:647
#: js/ui/endSessionDialog.js:650
#, javascript-format
msgid "%s (remote)"
msgstr "%s (zdalnie)"
#. Translators: Console here refers to a tty like a VT console
#: js/ui/endSessionDialog.js:650
#: js/ui/endSessionDialog.js:653
#, javascript-format
msgid "%s (console)"
msgstr "%s (konsola)"
@@ -1490,7 +1494,7 @@ msgstr "Wyświetl źródło"
msgid "Web Page"
msgstr "Strona WWW"
#: js/ui/messageTray.js:1462
#: js/ui/messageTray.js:1461
msgid "System Information"
msgstr "Informacje systemowe"
@@ -1621,7 +1625,7 @@ msgstr[0] "%d nowe powiadomienie"
msgstr[1] "%d nowe powiadomienia"
msgstr[2] "%d nowych powiadomień"
#: js/ui/screenShield.js:444 js/ui/status/system.js:269
#: js/ui/screenShield.js:444 js/ui/status/system.js:260
msgid "Lock"
msgstr "Zablokuj ekran"
@@ -1644,15 +1648,15 @@ msgstr "Nie można zablokować"
msgid "Lock was blocked by an application"
msgstr "Blokowanie zostało zablokowane przez program"
#: js/ui/search.js:647
#: js/ui/search.js:668
msgid "Searching…"
msgstr "Wyszukiwanie…"
#: js/ui/search.js:649
#: js/ui/search.js:670
msgid "No results."
msgstr "Brak wyników."
#: js/ui/search.js:773
#: js/ui/search.js:794
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
@@ -1694,8 +1698,8 @@ msgstr "Używa plików kluczy"
msgid ""
"To unlock a volume that uses keyfiles, use the <i>%s</i> utility instead."
msgstr ""
"Do odblokowania woluminu używającego plików kluczy należy użyć narzędzia "
"<i>%s</i>."
"Do odblokowania woluminu używającego plików kluczy należy użyć narzędzia <i>"
"%s</i>."
#: js/ui/shellMountOperation.js:323
msgid "PIM Number"
@@ -1800,7 +1804,7 @@ msgstr "Wyłączone"
msgid "On"
msgstr "Włączone"
#: js/ui/status/brightness.js:37
#: js/ui/status/brightness.js:38
msgid "Brightness"
msgstr "Jasność"
@@ -2141,27 +2145,27 @@ msgstr "Wyłącz"
msgid "Airplane Mode On"
msgstr "Włączono tryb samolotowy"
#: js/ui/status/system.js:201
#: js/ui/status/system.js:192
msgid "Switch User"
msgstr "Przełącz użytkownika"
#: js/ui/status/system.js:213
#: js/ui/status/system.js:204
msgid "Log Out"
msgstr "Wyloguj się"
#: js/ui/status/system.js:225
#: js/ui/status/system.js:216
msgid "Account Settings"
msgstr "Ustawienia konta"
#: js/ui/status/system.js:254
#: js/ui/status/system.js:245
msgid "Orientation Lock"
msgstr "Blokada orientacji"
#: js/ui/status/system.js:280
#: js/ui/status/system.js:271
msgid "Suspend"
msgstr "Uśpij"
#: js/ui/status/system.js:290
#: js/ui/status/system.js:281
msgid "Power Off"
msgstr "Wyłącz komputer"
@@ -2200,11 +2204,11 @@ msgstr "Błąd upoważnienia Thunderbolt"
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "Nie można upoważnić urządzenia Thunderbolt: %s"
#: js/ui/status/volume.js:128
#: js/ui/status/volume.js:129
msgid "Volume changed"
msgstr "Zmieniono głośność"
#: js/ui/status/volume.js:193
#: js/ui/status/volume.js:200
msgid "Volume"
msgstr "Głośność"
@@ -2257,22 +2261,22 @@ msgstr "Wyszukiwanie"
msgid "“%s” is ready"
msgstr "Okno „%s” jest gotowe"
#: js/ui/windowManager.js:54
#: js/ui/windowManager.js:55
msgid "Do you want to keep these display settings?"
msgstr "Zachować te ustawienia ekranu?"
#. Translators: this and the following message should be limited in length,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:66
#: js/ui/windowManager.js:67
msgid "Revert Settings"
msgstr "Przywróć ustawienia"
#: js/ui/windowManager.js:69
#: js/ui/windowManager.js:70
msgid "Keep Changes"
msgstr "Zachowaj zmiany"
#: js/ui/windowManager.js:87
#: js/ui/windowManager.js:88
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -2282,7 +2286,7 @@ msgstr[2] "Zmienione ustawienia zostaną przywrócone za %d sekund"
#. 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:683
#: js/ui/windowManager.js:684
#, javascript-format
msgid "%d × %d"
msgstr "%d×%d"
@@ -2355,19 +2359,327 @@ msgstr "Przenieś na prawy monitor"
msgid "Evolution Calendar"
msgstr "Kalendarz programu Evolution"
#: src/main.c:464
#: src/extensions-tool/command-create.c:189
#, c-format
msgid ""
"Name should be a very short (ideally descriptive) string.\n"
"Examples are: %s"
msgstr ""
"Nazwa jest być bardzo krótkim (najlepiej opisowym) napisem.\n"
"Przykłady: %s"
#: src/extensions-tool/command-create.c:192 src/extensions-tool/main.c:169
msgid "Name"
msgstr "Nazwa"
#: src/extensions-tool/command-create.c:203
#, c-format
msgid ""
"Description is a single-sentence explanation of what your extension does.\n"
"Examples are: %s"
msgstr ""
"Opis jest jednozdaniowym wyjaśnieniem działania rozszerzenia.\n"
"Przykłady: %s"
#: src/extensions-tool/command-create.c:206 src/extensions-tool/main.c:172
msgid "Description"
msgstr "Opis"
#: src/extensions-tool/command-create.c:217
msgid ""
"UUID is a globally-unique identifier for your extension.\n"
"This should be in the format of an email address (clicktofocus@janedoe."
"example.com)\n"
msgstr ""
"UUID to globalnie unikalny identyfikator rozszerzenia.\n"
"Musi być w formacie adresu e-mail (kliknięcie-aktywuje@alicja.example.com)\n"
#: src/extensions-tool/command-create.c:239
msgid "The unique identifier of the new extension"
msgstr "Unikalny identyfikator nowego rozszerzenia"
#: src/extensions-tool/command-create.c:242
msgid "NAME"
msgstr "NAZWA"
#: src/extensions-tool/command-create.c:243
msgid "The user-visible name of the new extension"
msgstr "Widoczna dla użytkownika nazwa nowego rozszerzenia"
#: src/extensions-tool/command-create.c:245
msgid "DESCRIPTION"
msgstr "OPIS"
#: src/extensions-tool/command-create.c:247
msgid "A short description of what the extension does"
msgstr "Krótki opis działania rozszerzenia"
#: src/extensions-tool/command-create.c:250
msgid "Enter extension information interactively"
msgstr "Interaktywnie wprowadza informacje o rozszerzeniu"
#: src/extensions-tool/command-create.c:258
msgid "Create a new extension"
msgstr "Tworzy nowe rozszerzenie"
#: src/extensions-tool/command-create.c:275
#: src/extensions-tool/command-list.c:158
msgid "Unknown arguments"
msgstr "Nieznane parametry"
#: src/extensions-tool/command-create.c:284
msgid "UUID, name and description are required"
msgstr "UUID, nazwa i opis są wymagane"
#: src/extensions-tool/command-disable.c:57
msgid "Disable an extension"
msgstr "Wyłącza rozszerzenie"
#: src/extensions-tool/command-disable.c:74
#: src/extensions-tool/command-enable.c:74
#: src/extensions-tool/command-info.c:96
#: src/extensions-tool/command-prefs.c:107
#: src/extensions-tool/command-reset.c:74
#: src/extensions-tool/command-uninstall.c:89
msgid "No UUID given"
msgstr "Nie podano UUID"
#: src/extensions-tool/command-disable.c:79
#: src/extensions-tool/command-enable.c:79
#: src/extensions-tool/command-info.c:101
#: src/extensions-tool/command-prefs.c:112
#: src/extensions-tool/command-reset.c:79
#: src/extensions-tool/command-uninstall.c:94
msgid "More than one UUID given"
msgstr "Podano więcej niż jeden UUID"
#: src/extensions-tool/command-enable.c:57
msgid "Enable an extension"
msgstr "Włącza rozszerzenie"
#: src/extensions-tool/command-info.c:79
msgid "Show extensions info"
msgstr "Wyświetla informacje o rozszerzeniach"
#: src/extensions-tool/command-install.c:173
msgid "Overwrite an existing extension"
msgstr "Zastępuje istniejące rozszerzenie"
#: src/extensions-tool/command-install.c:175
msgid "EXTENSION_BUNDLE"
msgstr "PAKIET_ROZSZERZENIA"
#: src/extensions-tool/command-install.c:184
msgid "Install an extension bundle"
msgstr "Instaluje pakiet rozszerzenia"
#: src/extensions-tool/command-install.c:201
msgid "No extension bundle specified"
msgstr "Nie podano pakietu rozszerzenia"
#: src/extensions-tool/command-install.c:207
msgid "More than one extension bundle specified"
msgstr "Podano więcej niż jeden pakiet rozszerzenia"
#: src/extensions-tool/command-list.c:118
msgid "Show user-installed extensions"
msgstr "Wyświetla rozszerzenia zainstalowane przez użytkownika"
#: src/extensions-tool/command-list.c:121
msgid "Show system-installed extensions"
msgstr "Wyświetla rozszerzenia zainstalowane w systemie"
#: src/extensions-tool/command-list.c:124
msgid "Show enabled extensions"
msgstr "Wyświetla włączone rozszerzenia"
#: src/extensions-tool/command-list.c:127
msgid "Show disabled extensions"
msgstr "Wyświetla wyłączone rozszerzenia"
#: src/extensions-tool/command-list.c:130
msgid "Show extensions with preferences"
msgstr "Wyświetla rozszerzenia z preferencjami"
#: src/extensions-tool/command-list.c:133
msgid "Print extension details"
msgstr "Wyświetla informacje o rozszerzeniu"
#: src/extensions-tool/command-list.c:141
msgid "List installed extensions"
msgstr "Wyświetla listę zainstalowanych rozszerzeń"
#: src/extensions-tool/command-pack.c:450
msgid "FILE"
msgstr "PLIK"
#: src/extensions-tool/command-pack.c:451
msgid "Additional source to include in the bundle"
msgstr "Dodatkowe źródło do dołączenia do pakietu"
#: src/extensions-tool/command-pack.c:454
msgid "SCHEMA"
msgstr "SCHEMAT"
#: src/extensions-tool/command-pack.c:455
msgid "A GSettings schema that should be included"
msgstr "Schemat GSettings, który ma zostać dołączony"
#: src/extensions-tool/command-pack.c:457
#: src/extensions-tool/command-pack.c:468
msgid "DIRECTORY"
msgstr "KATALOG"
#: src/extensions-tool/command-pack.c:459
msgid "The directory where translations are found"
msgstr "Katalog z tłumaczeniami"
#: src/extensions-tool/command-pack.c:461
msgid "DOMAIN"
msgstr "DOMENA"
#: src/extensions-tool/command-pack.c:463
msgid "The gettext domain to use for translations"
msgstr "Domena gettext używana dla tłumaczeń"
#: src/extensions-tool/command-pack.c:466
msgid "Overwrite an existing pack"
msgstr "Zastępuje istniejący pakiet"
#: src/extensions-tool/command-pack.c:470
msgid "The directory where the pack should be created"
msgstr "Katalog, w którym utworzyć pakiet"
#: src/extensions-tool/command-pack.c:472
msgid "SOURCE_DIRECTORY"
msgstr "KATALOG_ŹRÓDŁOWY"
#: src/extensions-tool/command-pack.c:481
msgid "Create an extension bundle"
msgstr "Tworzy pakiet rozszerzenia"
#: src/extensions-tool/command-pack.c:500
msgid "More than one source directory specified"
msgstr "Podano więcej niż jeden katalog źródłowy"
#: src/extensions-tool/command-prefs.c:90
msgid "Opens extension preferences"
msgstr "Otwiera preferencje rozszerzenia"
#: src/extensions-tool/command-reset.c:57
msgid "Reset an extension"
msgstr "Przywraca rozszerzenie"
#: src/extensions-tool/command-uninstall.c:72
msgid "Uninstall an extension"
msgstr "Odinstalowuje rozszerzenie"
#: src/extensions-tool/main.c:175
msgid "Path"
msgstr "Ścieżka"
#: src/extensions-tool/main.c:178
msgid "URL"
msgstr "Adres URL"
#: src/extensions-tool/main.c:181
msgid "Original author"
msgstr "Oryginalny autor"
#: src/extensions-tool/main.c:184
msgid "Version"
msgstr "Wersja"
#: src/extensions-tool/main.c:187
msgid "State"
msgstr "Stan"
#: src/extensions-tool/main.c:221
msgid "“version” takes no arguments"
msgstr "Opcja „version” nie przyjmuje parametrów"
#: src/extensions-tool/main.c:223 src/extensions-tool/main.c:243
msgid "Usage:"
msgstr "Użycie:"
#: src/extensions-tool/main.c:226
msgid "Print version information and exit."
msgstr "Wyświetla informacje o wersji i kończy działanie."
#: src/extensions-tool/main.c:241 src/extensions-tool/main.c:244
msgid "COMMAND"
msgstr "POLECENIE"
#: src/extensions-tool/main.c:244
msgid "[ARGS…]"
msgstr "[PARAMETRY…]"
#: src/extensions-tool/main.c:246
msgid "Commands:"
msgstr "Polecenia:"
#: src/extensions-tool/main.c:247
msgid "Print help"
msgstr "Wyświetla pomoc"
#: src/extensions-tool/main.c:248 src/main.c:468
msgid "Print version"
msgstr "Wyświetla wersję"
#: src/main.c:470
#: src/extensions-tool/main.c:249
msgid "Enable extension"
msgstr "Włącza rozszerzenie"
#: src/extensions-tool/main.c:250
msgid "Disable extension"
msgstr "Wyłącza rozszerzenie"
#: src/extensions-tool/main.c:251
msgid "Reset extension"
msgstr "Przywraca rozszerzenie"
#: src/extensions-tool/main.c:252
msgid "Uninstall extension"
msgstr "Odinstalowuje rozszerzenie"
#: src/extensions-tool/main.c:253
msgid "List extensions"
msgstr "Wyświetla listę rozszerzeń"
#: src/extensions-tool/main.c:254 src/extensions-tool/main.c:255
msgid "Show extension info"
msgstr "Wyświetla informacje o rozszerzeniu"
#: src/extensions-tool/main.c:256
msgid "Open extension preferences"
msgstr "Otwiera preferencje rozszerzenia"
#: src/extensions-tool/main.c:257
msgid "Create extension"
msgstr "Tworzy rozszerzenie"
#: src/extensions-tool/main.c:258
msgid "Package extension"
msgstr "Tworzy pakiet z rozszerzeniem"
#: src/extensions-tool/main.c:259
msgid "Install extension bundle"
msgstr "Instaluje pakiet rozszerzenia"
#: src/extensions-tool/main.c:261
#, c-format
msgid "Use “%s” to get detailed help.\n"
msgstr "Polecenie „%s” wyświetli szczegółową pomoc.\n"
#: src/main.c:474
msgid "Mode used by GDM for login screen"
msgstr "Tryb używany przez GDM dla ekranu logowania"
#: src/main.c:476
#: src/main.c:480
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Używa podanego trybu, np. „gdm” dla ekranu logowania"
#: src/main.c:482
#: src/main.c:486
msgid "List possible modes"
msgstr "Wyświetla listę możliwych trybów"
@@ -2389,7 +2701,7 @@ msgstr "Hasła się nie zgadzają."
msgid "Password cannot be blank"
msgstr "Hasło nie może być puste"
#: src/shell-polkit-authentication-agent.c:348
#: src/shell-polkit-authentication-agent.c:344
msgid "Authentication dialog was dismissed by the user"
msgstr "Okno uwierzytelniania zostało odrzucone przez użytkownika"

File diff suppressed because it is too large Load Diff

420
po/ro.po
View File

@@ -10,10 +10,9 @@ 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: 2019-08-12 19:40+0000\n"
"PO-Revision-Date: 2019-08-18 14:20+0300\n"
"Last-Translator: Florentina Mușat <florentina.musat.28 [at] gmail [dot] "
"com>\n"
"POT-Creation-Date: 2019-09-11 17:13+0000\n"
"PO-Revision-Date: 2019-09-11 22:12+0200\n"
"Last-Translator: Daniel Șerbănescu <daniel [at] serbanescu [dot] dk>\n"
"Language-Team: Gnome Romanian Translation Team <gnomero-list@lists."
"sourceforge.net>\n"
"Language: ro\n"
@@ -52,7 +51,7 @@ msgid "Open the application menu"
msgstr "Arată meniul aplicației"
#: data/gnome-shell-extension-prefs.desktop.in.in:4
#: js/extensionPrefs/main.js:208
#: js/extensionPrefs/main.js:211
msgid "Shell Extensions"
msgstr "Extensii pentru vizualizatorul activităților"
@@ -413,11 +412,11 @@ msgstr ""
msgid "Network Login"
msgstr "Logare prin rețea"
#: js/extensionPrefs/main.js:101 js/extensionPrefs/main.js:531
#: js/extensionPrefs/main.js:104 js/extensionPrefs/main.js:534
msgid "Somethings gone wrong"
msgstr "Ceva nu a funcționat cum trebuie"
#: js/extensionPrefs/main.js:108
#: js/extensionPrefs/main.js:111
msgid ""
"Were very sorry, but theres been a problem: the settings for this "
"extension cant be displayed. We recommend that you report the issue to the "
@@ -427,27 +426,27 @@ msgstr ""
"extensie nu pot fi afișate. Vă recomandăm să raportați problema autorilor "
"extensiei."
#: js/extensionPrefs/main.js:115
#: js/extensionPrefs/main.js:118
msgid "Technical Details"
msgstr "Detalii tehnice"
#: js/extensionPrefs/main.js:150
#: js/extensionPrefs/main.js:153
msgid "Copy Error"
msgstr "Eroare la copiere"
#: js/extensionPrefs/main.js:177
#: js/extensionPrefs/main.js:180
msgid "Homepage"
msgstr "Pagină principală"
#: js/extensionPrefs/main.js:178
#: js/extensionPrefs/main.js:181
msgid "Visit extension homepage"
msgstr "Vizitează pagina principală a extensiei"
#: js/extensionPrefs/main.js:473
#: js/extensionPrefs/main.js:476
msgid "No Extensions Installed"
msgstr "Nicio extensie instalată"
#: js/extensionPrefs/main.js:483
#: js/extensionPrefs/main.js:486
msgid ""
"Extensions can be installed through Software or <a href=\"https://extensions."
"gnome.org\">extensions.gnome.org</a>."
@@ -455,11 +454,11 @@ msgstr ""
"Extensii pot fi instalate prin intermediul Aplicații sau <a href=\"https://"
"extensions.gnome.org\">extensions.gnome.org</a>."
#: js/extensionPrefs/main.js:498
#: js/extensionPrefs/main.js:501
msgid "Browse in Software"
msgstr "Navighați în Aplicații"
#: js/extensionPrefs/main.js:538
#: js/extensionPrefs/main.js:541
msgid ""
"Were very sorry, but it was not possible to get the list of installed "
"extensions. Make sure you are logged into GNOME and try again."
@@ -469,7 +468,7 @@ msgstr ""
#: js/gdm/authPrompt.js:139 js/ui/audioDeviceSelection.js:53
#: js/ui/components/networkAgent.js:120 js/ui/components/polkitAgent.js:138
#: js/ui/endSessionDialog.js:445 js/ui/extensionDownloader.js:189
#: js/ui/endSessionDialog.js:448 js/ui/extensionDownloader.js:189
#: js/ui/shellMountOperation.js:390 js/ui/shellMountOperation.js:399
#: js/ui/status/network.js:899
msgid "Cancel"
@@ -781,28 +780,32 @@ msgstr "Frecvente"
msgid "All"
msgstr "Toate"
#: js/ui/appDisplay.js:1751
msgid "Rename"
msgstr "Redenumește"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2233 js/ui/panel.js:77
#: js/ui/appDisplay.js:2397 js/ui/panel.js:77
msgid "Open Windows"
msgstr "Ferestre deschise"
#: js/ui/appDisplay.js:2252 js/ui/panel.js:84
#: js/ui/appDisplay.js:2416 js/ui/panel.js:84
msgid "New Window"
msgstr "Fereastră nouă"
#: js/ui/appDisplay.js:2264
#: js/ui/appDisplay.js:2428
msgid "Launch using Dedicated Graphics Card"
msgstr "Lansează folosind placa grafică dedicată"
#: js/ui/appDisplay.js:2293 js/ui/dash.js:240
#: js/ui/appDisplay.js:2457 js/ui/dash.js:240
msgid "Remove from Favorites"
msgstr "Elimină din favorite"
#: js/ui/appDisplay.js:2299
#: js/ui/appDisplay.js:2463
msgid "Add to Favorites"
msgstr "Adaugă la Favorite"
#: js/ui/appDisplay.js:2309 js/ui/panel.js:95
#: js/ui/appDisplay.js:2473 js/ui/panel.js:95
msgid "Show Details"
msgstr "Arată detaliile"
@@ -832,7 +835,7 @@ msgstr "Căști auriculare"
msgid "Headset"
msgstr "Căști cu microfon"
#: js/ui/audioDeviceSelection.js:64 js/ui/status/volume.js:241
#: js/ui/audioDeviceSelection.js:64 js/ui/status/volume.js:248
msgid "Microphone"
msgstr "Microfon"
@@ -1335,13 +1338,13 @@ msgid "Other users are logged in."
msgstr "Alți utilizatori sunt conectați."
#. Translators: Remote here refers to a remote session, like a ssh login
#: js/ui/endSessionDialog.js:647
#: js/ui/endSessionDialog.js:650
#, javascript-format
msgid "%s (remote)"
msgstr "%s (la distanță)"
#. Translators: Console here refers to a tty like a VT console
#: js/ui/endSessionDialog.js:650
#: js/ui/endSessionDialog.js:653
#, javascript-format
msgid "%s (console)"
msgstr "%s (consolă)"
@@ -1496,7 +1499,7 @@ msgstr "Vizualizează sursa"
msgid "Web Page"
msgstr "Pagină Web"
#: js/ui/messageTray.js:1462
#: js/ui/messageTray.js:1461
msgid "System Information"
msgstr "Informații despre sistem"
@@ -1627,7 +1630,7 @@ msgstr[0] "%d notificare"
msgstr[1] "%d notificări"
msgstr[2] "%d de notificări"
#: js/ui/screenShield.js:444 js/ui/status/system.js:269
#: js/ui/screenShield.js:444 js/ui/status/system.js:260
msgid "Lock"
msgstr "Blocare"
@@ -1650,15 +1653,15 @@ msgstr "Blocare nereușită"
msgid "Lock was blocked by an application"
msgstr "Blocarea a fost împiedicată de o aplicație"
#: js/ui/search.js:647
#: js/ui/search.js:668
msgid "Searching…"
msgstr "Se caută…"
#: js/ui/search.js:649
#: js/ui/search.js:670
msgid "No results."
msgstr "Niciun rezultat."
#: js/ui/search.js:773
#: js/ui/search.js:794
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
@@ -1806,7 +1809,7 @@ msgstr "Oprit"
msgid "On"
msgstr "Pornit"
#: js/ui/status/brightness.js:37
#: js/ui/status/brightness.js:38
msgid "Brightness"
msgstr "Luminozitate"
@@ -2148,27 +2151,27 @@ msgstr "Oprește"
msgid "Airplane Mode On"
msgstr "Modul avion este pornit"
#: js/ui/status/system.js:201
#: js/ui/status/system.js:192
msgid "Switch User"
msgstr "Comută utilizatorul"
#: js/ui/status/system.js:213
#: js/ui/status/system.js:204
msgid "Log Out"
msgstr "Ieșire din sesiune"
#: js/ui/status/system.js:225
#: js/ui/status/system.js:216
msgid "Account Settings"
msgstr "Configurări de cont"
#: js/ui/status/system.js:254
#: js/ui/status/system.js:245
msgid "Orientation Lock"
msgstr "Blocare de orientare"
#: js/ui/status/system.js:280
#: js/ui/status/system.js:271
msgid "Suspend"
msgstr "Suspendare"
#: js/ui/status/system.js:290
#: js/ui/status/system.js:281
msgid "Power Off"
msgstr "Oprire"
@@ -2207,11 +2210,11 @@ msgstr "Eroare de autorizare Thunderbolt"
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "Nu s-a putut autoriza dispozitivul Thunderbolt: %s"
#: js/ui/status/volume.js:128
#: js/ui/status/volume.js:129
msgid "Volume changed"
msgstr "Volumul a fost schimbat"
#: js/ui/status/volume.js:193
#: js/ui/status/volume.js:200
msgid "Volume"
msgstr "Volum"
@@ -2264,22 +2267,22 @@ msgstr "Caută"
msgid "“%s” is ready"
msgstr "„%s” este gata"
#: js/ui/windowManager.js:54
#: js/ui/windowManager.js:55
msgid "Do you want to keep these display settings?"
msgstr "Doriți să păstrați aceste configurări de afișare?"
#. Translators: this and the following message should be limited in length,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:66
#: js/ui/windowManager.js:67
msgid "Revert Settings"
msgstr "Restaurează configurările"
#: js/ui/windowManager.js:69
#: js/ui/windowManager.js:70
msgid "Keep Changes"
msgstr "Păstrați modificările"
#: js/ui/windowManager.js:87
#: js/ui/windowManager.js:88
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -2289,7 +2292,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:683
#: js/ui/windowManager.js:684
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2362,19 +2365,329 @@ msgstr "Mută fereastra cu un monitor spre dreapta"
msgid "Evolution Calendar"
msgstr "Calendar Evolution"
#: src/main.c:460
#: src/extensions-tool/command-create.c:189
#, c-format
msgid ""
"Name should be a very short (ideally descriptive) string.\n"
"Examples are: %s"
msgstr ""
"Numele ar trebui să fie un șir foarte scurt (ideal descriptiv).\n"
"Exemple: %s"
#: src/extensions-tool/command-create.c:192 src/extensions-tool/main.c:169
msgid "Name"
msgstr "Nume"
#: src/extensions-tool/command-create.c:203
#, c-format
msgid ""
"Description is a single-sentence explanation of what your extension does.\n"
"Examples are: %s"
msgstr ""
"Descrierea este o explicație într-o singură propoziție despre ce face "
"extensia.\n"
"Exemple: %s"
#: src/extensions-tool/command-create.c:206 src/extensions-tool/main.c:172
msgid "Description"
msgstr "Descriere"
#: src/extensions-tool/command-create.c:217
msgid ""
"UUID is a globally-unique identifier for your extension.\n"
"This should be in the format of an email address (clicktofocus@janedoe."
"example.com)\n"
msgstr ""
"UUID-ul este un identificator global unic pentru extensie.\n"
"Aceasta ar trebui să fie în formatul unei adrese de email "
"(clicktofocus@janedoe.example.com)\n"
#: src/extensions-tool/command-create.c:239
msgid "The unique identifier of the new extension"
msgstr "Identificatorul unic al noii extensii"
#: src/extensions-tool/command-create.c:242
msgid "NAME"
msgstr "NUME"
#: src/extensions-tool/command-create.c:243
msgid "The user-visible name of the new extension"
msgstr "Numele vizibil de utilizator pentru noua extensie"
#: src/extensions-tool/command-create.c:245
msgid "DESCRIPTION"
msgstr "DESCRIERE"
#: src/extensions-tool/command-create.c:247
msgid "A short description of what the extension does"
msgstr "O scurtă descriere despre ce face extensia"
#: src/extensions-tool/command-create.c:250
msgid "Enter extension information interactively"
msgstr "Introdu informațiile extensiei interactiv"
#: src/extensions-tool/command-create.c:258
msgid "Create a new extension"
msgstr "Creează o nouă extensie"
#: src/extensions-tool/command-create.c:275
#: src/extensions-tool/command-list.c:158
msgid "Unknown arguments"
msgstr "Argumente necunoscute"
#: src/extensions-tool/command-create.c:284
msgid "UUID, name and description are required"
msgstr "UUID-ul, numele și descrierea sunt necesare"
#: src/extensions-tool/command-disable.c:57
msgid "Disable an extension"
msgstr "Dezactivează o extensie"
#: src/extensions-tool/command-disable.c:74
#: src/extensions-tool/command-enable.c:74
#: src/extensions-tool/command-info.c:96
#: src/extensions-tool/command-prefs.c:107
#: src/extensions-tool/command-reset.c:74
#: src/extensions-tool/command-uninstall.c:89
msgid "No UUID given"
msgstr "Niciun UUID dat"
#: src/extensions-tool/command-disable.c:79
#: src/extensions-tool/command-enable.c:79
#: src/extensions-tool/command-info.c:101
#: src/extensions-tool/command-prefs.c:112
#: src/extensions-tool/command-reset.c:79
#: src/extensions-tool/command-uninstall.c:94
msgid "More than one UUID given"
msgstr "Mai mult de un UUID dat"
#: src/extensions-tool/command-enable.c:57
msgid "Enable an extension"
msgstr "Activează o extensie"
#: src/extensions-tool/command-info.c:79
msgid "Show extensions info"
msgstr "Arată informații despre extensii"
#: src/extensions-tool/command-install.c:173
msgid "Overwrite an existing extension"
msgstr "Suprascrie o extensie existentă"
#: src/extensions-tool/command-install.c:175
msgid "EXTENSION_BUNDLE"
msgstr "PACHET_EXTENSIE"
#: src/extensions-tool/command-install.c:184
msgid "Install an extension bundle"
msgstr "Instalează un pachet de extensii"
#: src/extensions-tool/command-install.c:201
msgid "No extension bundle specified"
msgstr "Niciun pachet de extensii specificat"
#: src/extensions-tool/command-install.c:207
msgid "More than one extension bundle specified"
msgstr "Mai mult de un pachet de extensii specificat"
#: src/extensions-tool/command-list.c:118
msgid "Show user-installed extensions"
msgstr "Arată extensiile instalate de utilizator"
#: src/extensions-tool/command-list.c:121
msgid "Show system-installed extensions"
msgstr "Arată extensiile instalate de sistem"
#: src/extensions-tool/command-list.c:124
msgid "Show enabled extensions"
msgstr "Arată extensiile activate"
#: src/extensions-tool/command-list.c:127
msgid "Show disabled extensions"
msgstr "Arată extensiile dezactivate"
#: src/extensions-tool/command-list.c:130
msgid "Show extensions with preferences"
msgstr "Arată extensiile cu preferințe"
#: src/extensions-tool/command-list.c:133
msgid "Print extension details"
msgstr "Tipărește detaliile extensiei"
#: src/extensions-tool/command-list.c:141
msgid "List installed extensions"
msgstr "Listează extensiile instalate"
#: src/extensions-tool/command-pack.c:450
msgid "FILE"
msgstr "FIȘIER"
#: src/extensions-tool/command-pack.c:451
msgid "Additional source to include in the bundle"
msgstr "Sursă adițională de inclus în pachet"
#: src/extensions-tool/command-pack.c:454
msgid "SCHEMA"
msgstr "SCHEMĂ"
#: src/extensions-tool/command-pack.c:455
msgid "A GSettings schema that should be included"
msgstr "O schemă GSettings care ar trebui inclusă"
#: src/extensions-tool/command-pack.c:457
#: src/extensions-tool/command-pack.c:468
msgid "DIRECTORY"
msgstr "DIRECTOR"
#: src/extensions-tool/command-pack.c:459
msgid "The directory where translations are found"
msgstr "Directorul unde se găsesc traducerile"
#: src/extensions-tool/command-pack.c:461
msgid "DOMAIN"
msgstr "DOMENIU"
#: src/extensions-tool/command-pack.c:463
msgid "The gettext domain to use for translations"
msgstr "Domeniu gettext de folosit pentru traduceri"
#: src/extensions-tool/command-pack.c:466
msgid "Overwrite an existing pack"
msgstr "Suprascrie un pachet existent"
#: src/extensions-tool/command-pack.c:470
msgid "The directory where the pack should be created"
msgstr "Directorul unde pachetul ar trebui creat"
#: src/extensions-tool/command-pack.c:472
msgid "SOURCE_DIRECTORY"
msgstr "DIRECTOR_SURSĂ"
#: src/extensions-tool/command-pack.c:481
msgid "Create an extension bundle"
msgstr "Creează un pachet de extensii"
#: src/extensions-tool/command-pack.c:500
msgid "More than one source directory specified"
msgstr "Mai mult de un director sursă specificat"
#: src/extensions-tool/command-prefs.c:90
msgid "Opens extension preferences"
msgstr "Deschide preferințele extensiei"
#: src/extensions-tool/command-reset.c:57
msgid "Reset an extension"
msgstr "Restabilește o extensie"
#: src/extensions-tool/command-uninstall.c:72
msgid "Uninstall an extension"
msgstr "Dezinstalează o extensie"
#: src/extensions-tool/main.c:175
msgid "Path"
msgstr "Cale"
#: src/extensions-tool/main.c:178
msgid "URL"
msgstr "URL"
#: src/extensions-tool/main.c:181
msgid "Original author"
msgstr "Autor original"
#: src/extensions-tool/main.c:184
msgid "Version"
msgstr "Versiune"
#: src/extensions-tool/main.c:187
msgid "State"
msgstr "Stare"
#: src/extensions-tool/main.c:221
msgid "“version” takes no arguments"
msgstr "„version” nu primește argumente"
#: src/extensions-tool/main.c:223 src/extensions-tool/main.c:243
msgid "Usage:"
msgstr "Utilizare:"
#: src/extensions-tool/main.c:226
msgid "Print version information and exit."
msgstr "Tipărește informațiile versiunii și ieși."
#: src/extensions-tool/main.c:241 src/extensions-tool/main.c:244
msgid "COMMAND"
msgstr "COMANDĂ"
#: src/extensions-tool/main.c:244
msgid "[ARGS…]"
msgstr "[ARGUMENTE…]"
#: src/extensions-tool/main.c:246
msgid "Commands:"
msgstr "Comenzi:"
#: src/extensions-tool/main.c:247
msgid "Print help"
msgstr "Tipărește ajutorul"
#: src/extensions-tool/main.c:248 src/main.c:468
msgid "Print version"
msgstr "Tipărește versiunea"
#: src/main.c:466
#: src/extensions-tool/main.c:249
msgid "Enable extension"
msgstr "Activează extensia"
#: src/extensions-tool/main.c:250
msgid "Disable extension"
msgstr "Dezactivează extensia"
#: src/extensions-tool/main.c:251
msgid "Reset extension"
msgstr "Restabilește extensia"
#: src/extensions-tool/main.c:252
msgid "Uninstall extension"
msgstr "Dezinstalează extensia"
#: src/extensions-tool/main.c:253
msgid "List extensions"
msgstr "Listează extensiile"
#: src/extensions-tool/main.c:254 src/extensions-tool/main.c:255
msgid "Show extension info"
msgstr "Arată informații despre extensie"
#: src/extensions-tool/main.c:256
msgid "Open extension preferences"
msgstr "Deschide preferințele extensiei"
#: src/extensions-tool/main.c:257
msgid "Create extension"
msgstr "Creează extensie"
#: src/extensions-tool/main.c:258
msgid "Package extension"
msgstr "Împachetează extensia"
#: src/extensions-tool/main.c:259
msgid "Install extension bundle"
msgstr "Instalează pachetul de extensii"
#: src/extensions-tool/main.c:261
#, c-format
msgid "Use “%s” to get detailed help.\n"
msgstr "Utilizați „%s” pentru a obține ajutor detaliat.\n"
#: src/main.c:474
msgid "Mode used by GDM for login screen"
msgstr "Mod folosit de GDM pentru meniul de autentificare"
#: src/main.c:472
#: src/main.c:480
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Utilizează un mod specific, de exemplu „gdm” pentru ecranul de logare"
#: src/main.c:478
#: src/main.c:486
msgid "List possible modes"
msgstr "Enumeră câmpurile care pot fi afișate"
@@ -2462,9 +2775,6 @@ msgstr "Sunete de sistem"
#~ msgid "Feels like %s."
#~ msgstr "Percepută ca %s."
#~ msgid "GNOME Shell Extension Preferences"
#~ msgstr "Preferințele extensiei Vizualizatorul activităților GNOME"
#~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "Vizualizatorul activităților GNOME (compozitor wayland)"
@@ -2501,9 +2811,6 @@ msgstr "Sunete de sistem"
#~ msgid "%d x %d"
#~ msgstr "%d x %d"
#~ msgid "Extension"
#~ msgstr "Extensie"
#~ msgctxt "list sunday"
#~ msgid "Su"
#~ msgstr "D"
@@ -2831,11 +3138,6 @@ msgstr "Sunete de sistem"
#~ "data curentă și vor folosi această extensie. Ar trebui să fie modificată "
#~ "când se înregistrează într-un format de container diferit."
#, fuzzy
#~| msgid "Session..."
#~ msgid "Session"
#~ msgstr "Sesiune..."
#, fuzzy
#~| msgid "Power Off"
#~ msgid "Power"

1394
po/sk.po

File diff suppressed because it is too large Load Diff

1365
po/sl.po

File diff suppressed because it is too large Load Diff

1339
po/sr.po

File diff suppressed because it is too large Load Diff

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