Compare commits

..

114 Commits

Author SHA1 Message Date
35d21c0bca Bump version to 3.37.2
Update NEWS.
2020-06-03 01:29:26 +02:00
b487846c0a notificationDaemon: Try harder to find a matching app
Unlike the desktop-entry hint, the app name is not optional. That
doesn't mean that we'll be able to match it to a .desktop file,
but we can at least try if we fail to match on PID or desktop-entry.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1291
2020-06-02 23:17:24 +00:00
7bbce1d5ad workspace: Position clones using width and height instead of scale
Since we now have a layout manager for the WindowClone that allows
allocating it a size that isn't the absolute size of the window, we can
now give the WindowClone an artificial size and it will get scaled
accordingly.

So make use of that and stop positioning WindowClones using fixed
position and scale and use a fixed position and fixed size instead. This
will make it easier to use a ClutterLayoutManager to allocate the
WindowClones, because layout managers should only set the allocation of
their children, not the scale.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1294
2020-06-02 23:03:06 +00:00
bf40d96a83 workspace: Use boundingBox to get absolute width and height of window
Since we're going to override the fixed width and height of the
ClutterActor the WindowClone is subclassing, remove those confusing
getter methods for width and height and switch to the public boundingBox
for getting that information.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1294
2020-06-02 23:03:06 +00:00
2d650e51a5 workspace: Use boundingBox instead of getOriginalPosition()
The getOriginalPosition() API of WindowClone can easily be replaced by
using the existing boundingBox property, which reflects the windows
bounding box in absolute coordinates. This property is also used
everywhere else in the Workspace object, so we can use it here, too.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1294
2020-06-02 23:03:06 +00:00
85d2837466 workspace: Allow allocating smaller sizes for window clones
Change the preferred size functions of the layout manager of window
clones to allow allocating smaller sizes, too. Also scale down the
allocation sizes of the ClutterClones our allocate implementation so
the ClutterClones will scale their texture accordingly.

This will enable us to position the window clones using their allocation
size instead of their scale, which is necessary when introducing a new
ClutterLayoutManager that positions the window clones.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1294
2020-06-02 23:03:06 +00:00
25985868e8 Revert "workspace: Animate window clones using translation properties"
We're going to add a ClutterLayoutManager responsible for allocating the
WindowClones. Since layout managers should only set the allocation of
actors, not the translation or scale, we need to position the
WindowClones using their x, y, width and height properties.

The first step for this is to revert this commit, which switched from
setting fixed positions on WindowClones to using the translation
properties.

This reverts commit 8929c89d1f.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1294
2020-06-02 23:03:06 +00:00
393c6c6805 lookingGlass: Add actor tree inspector
Being able to visualize the actor tree is a handy feature
to have, specially when debugging the hierarchy.

Add a new "Actors" tab to the Looking Glass with the actor
tree inspector. The tree is cleared on unmap to not get
heavy on the number of actors.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1292
2020-06-02 12:44:21 -03:00
775d6ec431 Updated Slovenian translation 2020-06-01 22:25:53 +02:00
988f996407 workspace: Also hide attached dialogs in WindowClone from picking
As explained in the comment in _init() of WindowClone, we hide the
actual clone from picking so it doesn't interfere with XDND.

This description applies to the clones of the attached dialogs just as
well though, so hide the clones of attached dialogs from picking, too.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1293
2020-06-01 14:01:39 +00:00
315c8820ca padOsd: Apply specific CSS to Button/Leader SVG classes
Applying a fill operation on the Leader line path seems to close
it, resulting in filled polygon. Bug or not this is not the intended
result here, we can do less ambiguously by not specifying the fill
CSS property to the Leader class.

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

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1290
2020-05-29 18:06:48 +00:00
8a89de04a2 padOsd: Keep label coordinates in image coordinates
Apply the necessary transforms to map those coordinates to actor
positions in the allocate phase. This all fits since it's the place
where we do know the size the actor will have.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1290
2020-05-29 18:06:48 +00:00
63abfc163d padOsd: Cache label coordinates/arrangements
This is actually static for a given PadDiagram, as it always represents
a single device.

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

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1290
2020-05-29 18:06:48 +00:00
f58cb34065 padOsd: Only allocate child labels within allocate vfunc
Make both start/stop edition and label updates queue a relayout, and
only deal with child allocations in the allocate method.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1290
2020-05-29 18:06:48 +00:00
ece1329145 padOsd: Drop needless call
If we got this far, we are dealing with an already known label.
There's no need for this check.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1290
2020-05-29 18:06:48 +00:00
989118981b padOsd: Use map to store misc action label data
We'll be adding more stuff here, so it's a bit inconvenient to keep
it an array.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1290
2020-05-29 18:06:48 +00:00
c511c469fe padOsd: Move all coord/existence checks to _addLabel()
Drops some repetitive code. Also rely completely on the label/leader
elements being found in order to find buttons/rings/strips.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1290
2020-05-29 18:06:48 +00:00
dac05c7e53 padOsd: Make label coordinates API "private"
This is only called internally, and only needed there.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1290
2020-05-29 18:06:48 +00:00
c90e7ce258 padOsd: Move button/ring/strip label creation to PadDiagram
It's the natural container of those. We can create all those labels
internally, and only expose the updateLabels() method to update them
wholesome.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1290
2020-05-29 18:06:48 +00:00
963f96292d padOsd: Fix double styling
We set the StLabel style property, there's no need to re-apply the
large/bold text style via markup. Makes the StLabel text size consistent
across editable state changes.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1290
2020-05-29 18:06:48 +00:00
989ee6593b padOsd: Disable ellipsizing in title label
We make the label text large and let it ellipsize. It ends up doing
so instead of allowing the label to expand. This title is important
and we don't want it to be ellipsized, so ensure that won't happen.

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

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1290
2020-05-29 18:06:48 +00:00
2a8eea1ff5 padOsd: Fix .allocate() call
This was not updated to the API change in commit 9a8ced9f5b.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1290
2020-05-29 18:06:48 +00:00
55c287280b screenshot: Properly clean up if PickColor() is cancelled
We currently only remove the screenshot operation from the shooter
map if the color pick operation completed successfully, but not if
it was cancelled. As a result, we now reject any further requests
from the same sender because we assume that there is an ongoing
operation.

Fix this by moving the cleanup to a finally clause that runs for
both code paths.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1288
2020-05-29 00:52:33 +02:00
1fdd4ff313 screenshot: Return an error when operation is blocked
Right now _createScreenshot() returns a tuple that indicates failure
when a sender requests a screenshot operation before a previously
started operation finished.

However that doesn't work for the PickColor() method, as it uses a
different return type than the other methods.

Address this by returning an error instead, which works in any case;
arguably trying to start multiple operations in parallel is an error
by the caller more than it is a failed operation anyway.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1288
2020-05-29 00:52:33 +02:00
3522338b3d extensions-tool: Escape '\' and '"' in json string
If user-input string contains '\' and/or '"', extensions-tool
generates invalid json.
This fixes that by escaping '\' and '"'.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1279
2020-05-28 11:23:19 +00:00
61e3349dc7 Update Korean translation
(cherry picked from commit 4099c446da)
2020-05-27 23:50:42 +00:00
dc27db0897 iconGrid: Remove fillParent support
This was only used by the frequent view to display as many children
as fit the available space. Now that the view is gone, there's no
need to keep the support ...

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1286
2020-05-28 00:31:49 +02:00
f09fbb19cf iconGrid: Merge PaginatedIconGrid and IconGrid
Now that the only user of the IconGrid is AppDisplay, and
it only uses the paginated icon grid, there's no point in
having the two classes split anymore.

In addition to that, future commits will introduce a layout
manager that will extend current icon grid features, and
merging PaginatedIconGrid and IconGrid in the same class will
vastly simplify this transition.

Merge PaginatedIconGrid into IconGrid, and adapt AppDisplay
to this change.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1267
2020-05-27 19:23:56 -03:00
846fa77b37 appDisplay: Merge AppDisplay in AllView
Now that AllView is the only actor that AppDisplay creates,
we can actually merge them together.

Merge AllView in AppDisplay, remove what used to be AppDisplay,
and rename AllView to AppDisplay.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/880
2020-05-27 21:06:36 +00:00
b57bcf823f appDisplay: Simplify AppDisplay
Inherit St.Widget and remove the custom layout manager. Instead,
override vfunc_allocate(). Also remove the view stack.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/880
2020-05-27 21:06:36 +00:00
548e19a7cd appDisplay: Remove Frequent view
The Frequent apps grid has a few problems:

 * On a fresh install there would be no history of app usage so the
   applications shown in the grid have no relevance it takes time
   to be useful instead of being useful from the start;

 * The grid has far too many items in it to be relevant; 24 apps is
   well beyond the average use case as most people don't frequently
   use that many, so it gets populated with several apps that are
   single use (hello xterm);

 * The position of items in the grid are always changing based on an
   unknown frequency metric (and not by user-intended input) which
   makes it a poor way to quickly launch apps as one would have to
   constantly learn the positions of the items in the grid;

 * Having two app grids is a bit superfluous and needlessly complicates
   the app launching navigation: you have to spend time checking the
   frequent grid and if it's not there you have to switch over to another
   grid and find the app you need in there it's not straightforward.

Remove the Frequent tab and simplify the related code.

Related: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1425

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/880
2020-05-27 21:06:36 +00:00
4ae04d5aa8 power: Fix icon when discharging at 100%
The special-case for a fill level of 100 introduced in commit 5fd52e99d3
should only apply when charging, for the discharging state there's a
proper battery-level-100-symbolic icon.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2286
2020-05-26 21:27:42 +02:00
5d5ca80d17 st/box-layout: Fix gtk-doc comments
Commit 9dc421875 added a subtle syntax error: # is used to cross
reference symbols, but must not be used in the definition of the
symbols itself.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1281
2020-05-25 18:43:30 +00:00
d81237b9d6 st/texture-cache: Cancel pending requests on icon-theme changes
As outlined in commit 36b8dcbe07, we can end up with wrong icons
if the icon theme changes right after a GTK theme change to/from
HighContrast triggered a theme reload.

That's because when we reload icons for the new icon theme, there
are already pending requests due to the icon-style change; those
requests are simply re-used for the new icons, with the existing
icon infos from the old theme.

The above commit applied a simple work-around by changing the
icon theme before the GTK theme, but that only works for the
HighContrast switch in our own UI.

It turns out that Settings also uses the "wrong" order, so the
issue still reproduces with the Universal Access panel.

So instead of relying on everything changing the settings in the
order we expect, cancel all ongoing requests on icon-theme changes.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1277
2020-05-25 12:55:28 +02:00
71b3b03b2f theme: Make world clock times tabular
Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2825
2020-05-24 18:27:12 +00:00
8c909e37e9 panel: fix size of battery percentage label
Adjust the label of the (optional) battery percentage in the top
bar to have the same size as all other text in the top bar.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2652
2020-05-24 16:37:57 +00:00
6508fa4349 Update German translation
(cherry picked from commit bc3c1e5a68)
2020-05-24 16:06:35 +00:00
ce8fb83c36 Update Romanian translation 2020-05-24 10:43:48 +00:00
58ec607818 Update Slovak translation
(cherry picked from commit b148a8bc60)
2020-05-24 07:28:07 +00:00
f06223df48 screenshot: Add preview to color picker
With color picking implemented in the compositor, we
can do better than letting the user pick a pixel with
the crosshair cursor, and present them with a preview
of the color that will be selected.

Do this by replacing the cursor with a custom icon and
apply a recoloring effect, where we replace a given color
with the color of the currently hovered pixel (similar
to a green screen).

https://gitlab.gnome.org/GNOME/gnome-shell/issues/451
2020-05-22 16:10:43 +02:00
9a8ced9f5b search: Remove usage of allocation flags
Allocation flags have been removed from Clutter, and commit
400d045a6a accidentally added their
arguments again which causes a warning, so remove those arguments.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1276
2020-05-22 10:18:24 +00:00
67c45e5648 Update Ukrainian translation 2020-05-22 05:44:50 +00:00
b88ed3f251 Use pid_t for meta_window_get_pid()
The return value of meta_window_get_pid() changed again and it now
returns pid_t, which usually just resolves to int on most platforms. We
should still use pid_t now though, so do that.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1188
2020-05-21 23:11:21 +00:00
669b0f193a StClipboard: add st_clipboard_get_mimetypes
Since the `MetaSelection` of the global `StClipboard` is private (and
should be), there is no reasonable way for extensions or external code
to query the supported mime-types.

Add `st_clipboard_get_mimetypes()` so this can be queried without
poking around in private code.

closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2819
2020-05-21 22:24:59 +00:00
9cad7ae975 extensions-app: Indicate extension errors
Currently there is no indication that an extension had an error except
for the sensitivity of the switch (which may have a different cause).

This is useful information to users, so add a small error indicator
alongside the updates icon and show the actual error in the details.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2337
2020-05-21 21:45:04 +00:00
48e6a58250 extensionSystem: Don't log error name
logExtensionError() currently saves the error message by calling
toString() on the passed error. That's convenient as it allows to
pass a string instead of a "proper" error, but the result isn't
great for the common Error case: Its toString() method prefixes
the message with the error name, which usually is just "Error:".

The plain message is more suitable for displaying it to users,
so use that for Error objects.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2337
2020-05-21 21:45:04 +00:00
d2583aa47b extensions-app: Reset switch handle when it becomes insensitive
Currently the switches handle position reflects the requested
extension state (as in: the user (de)activated the switch),
while the actual extension state is reflected by the underlying
state.

That doesn't work well when the switch is insensitive though (for
example on error), because the desaturation neuters the color
that reflects the state.

Address this by resetting the switch handle to the state when
making it insensitive.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1263
2020-05-21 21:29:31 +00:00
0ab34fe21f st: Remove BoxLayout child meta
They were deprecated last cycle in favor of ClutterActor's own
expand/align properties, time to retire them for good.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1274
2020-05-21 21:17:16 +00:00
0f947d4ff9 st/theme: Remove entry from files_by_stylesheet after emitting signal
Since e06109c23c we keep old theme nodes
valid during the emission of the "custom-stylesheets-changed" signal.

It turns out that we might still look up the file of a stylesheet using
the files_by_stylesheet hashtable during the emission of that signal,
causing a crash because the assertion in _st_theme_resolve_url() fails.

So fix that and remove the stylesheet entry from the files_by_stylesheet
hashtable after emitting the "custom-stylesheets-changed" signal. And to
be consistent, also remove the entry from the stylesheets_by_file
hashtable after emitting the signal.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2757
2020-05-21 20:59:35 +00:00
9dc421875b StBoxLayout: Fix up some documentation
`StBoxLayout` has a couple properties (`vertical` and `pack-start`)
improperly referenced as signals, and is somewhat unclear these
properties are wrappers around the underlying `ClutterBoxLayout`
properties.

Fix these up and add references to the underlying properties, rather
than redescribing them.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2816
2020-05-21 22:37:23 +02:00
9c3c9a155e st: Remove deprecated Bin properties
Those were deprecated last cycle in favor of ClutterActor's own
expand/align properties, and don't have any effect anymore.

Time to remove them for good.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1273
2020-05-21 14:36:59 +02:00
faaed642a7 js: Listen to notify::allocation instead of allocation-changed
ClutterActors "allocation-changed" signal was removed since it's no
longer needed now that there are no ClutterAllocationFlags anymore.

See https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1245

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1245
2020-05-20 15:12:36 +02:00
9b99b67fea Remove ClutterAllocationFlags
Those flags were removed from Clutter since they're pretty much unused,
so remove them here, too.

See https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1245

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1245
2020-05-20 15:12:03 +02:00
693dd79d28 iconGrid: Remove dead code
Remove unused methods from IconGrid.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1265
2020-05-19 16:40:49 -03:00
400d045a6a search: Replace IconGrid from grid search results
Replace the usage of IconGrid in the grid search results by
a custom layout manager that only allocates as many children
as the actor can fit.

This new layout manager does not implement changing the icon
size depending on the screen size.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1265
2020-05-19 16:40:49 -03:00
e20cf1ac78 environment: Replace monkey-patched method with Symbol.iterator
This allows using the actor itself as iterator:

  for (let child of container)
      doStuff(child);

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1269
2020-05-19 21:33:31 +02:00
8d4e650a95 environment: Monkey-patch iterate_children() generator
This is a small convenience method for using ClutterActor's iterator API
with javascript's built-in iterator protocol, for example as:

  for (let child of container.iterate_children())
      doStuff(child);

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1268
2020-05-19 21:07:20 +02:00
82fd68b985 notificationDaemon: Fix grouping by PID
For fd.o notifications, we are taking the sender's PID into
account when associating notifications with sources (mainly
to deal with notify-send).

This broke when the implementation under the well-known name
was moved into a separate service, as the implementation in
gnome-shell will now always see the public notification-daemon
as sender.

Restore the old behavior by resolving the sender PID in the
separate service, and pass it as hint to the implementation
in gnome-shell.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2592
2020-05-19 08:24:07 +00:00
6ddd43f361 extensionSystem: Prevent broken updates
Spidermonkey caches imports, which means that uninstalling an
old extension version and installing a new one doesn't work as
expected: If the previous version was loaded, then its code will
be imported instead.

For the last couple of releases this has been a reliable source
of extension bug reports after major GNOME updates. Thankfully
chrome-gnome-shell removed its update support in favor of our
built-in support now, but users may still use older versions
or perform those actions manually, so it still makes sense to
catch this case and set an appropriate error.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1248
2020-05-18 20:41:06 +00:00
4e2ae30a47 dateMenu: Remove unused property
This is a left-over from an earlier iteration where the session's
presence status was used rather than the GSetting.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2796
2020-05-18 17:02:57 +00:00
32bc064d10 calendar: Fix initial do-not-disturb state
The do-not-disturb button and the contained switch are
tied together via a bidirectional property binding.

However it still matters which objects are used as source
and target, as that will determine the initial state: Right
now the (unchecked) button is used as source, which means
that do-not-disturb is turned off on startup.

We want the state to be preserved, so swap source and target
to let the switch (that is bound to the underlying GSetting)
control the initial state.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2804
2020-05-18 18:55:19 +02:00
87606c6a6b status: Pass scroll events to volume and brightness sliders
Sliders can be operated by mouse scroll, but the mouse has to be over
the slider control.  Make the brightness and volume system menu entries
forward scroll events to the sliders they contain so that scrolling
anywhere on the menu item operates the slider.

Closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2795
2020-05-18 11:30:28 +00:00
955afb8711 Update Serbian translation
(cherry picked from commit db2917479a)
2020-05-17 19:22:51 +00:00
3309031fd1 extensionSystem: Update canChange on error
Whether or not an extension has errors influences the 'canChange'
property, but so far we only update it for errors that occur when
initializing the extension, not when an extension is enabled later.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1249
2020-05-16 16:33:22 +00:00
a2235c269a Update Finnish translation
(cherry picked from commit 5815f9ac0e)
2020-05-16 11:03:11 +00:00
1cf2c9edd0 Update Turkish translation 2020-05-16 09:12:43 +00:00
64a3ecf9b1 dateMenu: Update timezone offsets when timezone changes
Adds a signal handler to update the timezone offsets whenever the
user changes the system timezone.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2209
2020-05-15 20:46:00 +00:00
f144ed6e87 Update Catalan translation 2020-05-15 20:43:22 +02:00
a47e0f9845 extensionDownloader: Replace deprecated Soup.SessionAsync
Soup.SessionAsync by default sets timeout and idle_timeout to 0. This
causes connections to hang around in state CLOSE_WAIT forever after the
remote host has closed the connection.

To fix this, we could set timeout and idle_timeout manually. However,
Soup.SessionAsync is marked as deprecated anyway and should be replaced
by Soup.Session. Doing so also sets a default timeout of 60 seconds.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2774
2020-05-14 19:43:56 +00:00
0737c8f416 dash: Allow adding favorites out of favorites zone
Previously, you could not add favorites outside of the favorites zone.
This change inserts a placeholder at the end of the favorites zone if
you are outside of it.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2777
2020-05-14 18:32:57 +00:00
fba350eaad Update Indonesian translation
(cherry picked from commit bc6a3329b4)
2020-05-14 09:43:30 +00:00
6d5e93b00b extensionSystem: Disable extension before unloading stylesheet
Removing a stylesheet from the theme will trigger a style update. There's
little point in updating the extension actors that are about to be destroyed
(hopefully), so call the extension's disable() function first.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2757
2020-05-13 20:10:56 +02:00
f526e592fe mpris: Prevent DBus race when creating media players
Sometimes an MPRIS media player will create and then destroy an object
before the signals that handle the object's destruction can be created.
This verifies that the object still exists after the necessary signals
have been created.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2776
2020-05-13 19:46:24 +02:00
751a94ab5d Update Japanese translation 2020-05-13 15:16:58 +00:00
e0e128e207 Update Japanese translation 2020-05-13 15:08:22 +00:00
137e6c8493 windowManager: Allow xwayland startup to complete without systemd
Since commit 0ecddafc20 gsd-xsettings startup has been made conditional
on the systemd user instance being available at runtime. While that is
correct, it means that completing xwayland startup is also conditional
now.

We always want xwayland startup to go ahead, so wait for the XSettings
plugin to appear on the bus when gsd-xsettings is launched by gnome-session
and complete the task immediately if startup fails.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1252
2020-05-12 18:05:38 +02:00
72751c2d92 Update Persian translation 2020-05-12 14:24:58 +00:00
b84fa852f6 Update French translation
(cherry picked from commit e8e79173d9)
2020-05-12 14:15:08 +00:00
d20961f323 Update Swedish translation
(cherry picked from commit 884a2623a0)
2020-05-11 22:36:14 +00:00
5a01395a2b Update Italian translation
(cherry picked from commit fbdb56eb6d)
2020-05-11 15:53:05 +00:00
e59ca7053b workspacesView: Lower scroll timeout
Looks like 250ms is too high, lower it to 150ms.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2602
2020-05-09 19:27:36 +05:00
6895592a7b appDisplay: Lower scroll timeout
Looks like 250ms is too high, lower it to 150ms.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2602
2020-05-09 19:27:33 +05:00
eed27a2a4c shell: Fix return value if the systemd unit is actually successfully run
This got broken by last minute changes in commit 2d56395921. There's no change
too simple.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1242
2020-05-08 19:21:32 +02:00
43c6afa80f Update Romanian translation 2020-05-08 16:32:22 +00:00
7d60f418e7 systemActions: Use 'system-log-out-symbolic' for logout
Changing the icon to 'system-log-out-symbolic' has no visual
change in a default GNOME setup since both 'system-log-out-symbolic'
and 'application-exit-symbolic' are the same in adwaita-icon-theme
(at the time of writing), however, other icon themes differentiate
between the two icons so pointing to the appropriate icon name
is the right thing to do.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2751
2020-05-07 19:19:32 +00:00
94dca1606f extensions-app: Add permission to talk to gnome-session
This is required for offering a "Logout" option when handling extension
updates.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2735
2020-05-07 15:58:06 +00:00
27774582b6 extensions-app: Fix Logout call
Commit 764527c8c9 adjusted the "call" call to promisification that
never happened (in this bit of code).

We can either add back a callback or properly promisify the call;
this opts for the latter.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2735
2020-05-07 15:58:06 +00:00
7dc08b06b1 Updated Spanish translation 2020-05-07 16:48:35 +02:00
a9d73b1017 panel: Center app icon
Giving the icon extra space may distort it, so center it vertically.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2578
2020-05-07 14:57:12 +02:00
25e4d0ba8b Update British English translation
(cherry picked from commit 6a9ce0f18c)
2020-05-07 10:48:37 +00:00
2d56395921 shell: Check we are in a systemd environment before starting systemd units
Avoid starting/stopping the gsd-xsettings systemd unit if the shell itself
was not started via systemd. In the lack of a user session manager, we
have no means to neatly start/stop services, so should rely on the good
ol' gnome-session to do this for us.

This changes the return value meaning slightly, TRUE means "service did
start", FALSE otherwise. The error is only raised if we ought to start,
but it produced an error somehow.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1238
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2755
2020-05-07 12:16:11 +02:00
0ecddafc20 windowManager: Handle return value/errors from systemd unit calls
These may produce errors, and return a value indicating we should
proceed further. Check for those when starting/stopping gsd-xsettings.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1238
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2755
2020-05-07 12:16:03 +02:00
af34c8d2f4 Update Dutch translation
(cherry picked from commit 473a666cc0)
2020-05-06 11:13:47 +00:00
5223599145 Update Ukrainian translation 2020-05-04 17:21:20 +00:00
c96af776d6 Updated Spanish translation 2020-05-04 16:41:18 +02:00
34da48453e shell-app: Add PrefersNonDefaultGPU support to shell_app_launch()
Read the "PrefersNonDefaultGPU" key in desktop files to figure out
whether the application prefers running on the discrete GPU, or the
default GPU, and apply that.

Update the "Launch..." contextual menu to allow launching on
the default GPU if the application "prefers [the] non default GPU".

See:
https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#recognized-keys

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/1804
2020-05-04 16:22:03 +02:00
13dcd78be1 shell-app: Downgrade not finding a discrete GPU to debug
As we'll want to call this unconditionally soon.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1226
2020-05-04 16:22:03 +02:00
3bfa9916da appDisplay: Use global switcheroo-control D-Bus proxy
Rather than creating our own.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1226
2020-05-04 16:22:03 +02:00
b17017679b shell/global: Notify when switcheroo-control prop changes
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1226
2020-05-04 16:22:03 +02:00
9d7832ea44 shell/global: Make switcheroo-control available from JS
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1226
2020-05-04 16:22:03 +02:00
49605c7b00 shell/global: Watch for switcheroo-control appearing
Rather than staticly expecting switcheroo-control to already be running
on the system, wait for it appearing and disappearing.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1226
2020-05-04 16:22:03 +02:00
bf8b9cecf5 Updated Spanish translation 2020-05-04 09:57:45 +02:00
c291291304 Add Ossetian translation 2020-05-03 16:06:23 +00:00
e08a4acd06 ibusManager: Fix the panel after porting to Promises
Commit 764527c8c9 not only ports this file
to Promises but also changes the behavior of _initPanelService method.
Instead of always calling _updateReadiness when _panelService is ready,
it only calls it when get_global_engine_async succeeds.

The only callers of _updateReadiness are _initEngines and
_initPanelService. Assume that _initEngines completes first. Its
_updateReadiness call keeps _ready as false and it is expected for
_initPanelService to change it to true. However, since
get_global_engine_async fails because there is no active engine,
_initPanelService never calls _updateReadiness. Therefore, all setEngine
calls do nothing because _ready is false, and the input method panel
never shows. Users are unable to use any input method even if they can
see that ibus-daemon is already running.

Fix the issue by changing it back to the old behavior.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1235
2020-05-03 23:26:39 +08:00
0397a104ba Update Polish translation
Fixes https://gitlab.gnome.org/Teams/Translation/pl/-/issues/6
2020-05-02 21:45:45 +02:00
a41c1d4fda Update Slovak translation
(cherry picked from commit e4199c71cc)
2020-05-02 14:07:51 +00:00
8ae3ed907a Update Chinese (Taiwan) translation 2020-05-02 08:07:05 +00:00
31cd8f738c appFavorites: Add eog to rename list
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1233
2020-05-02 00:16:28 +02:00
a4cd9e0038 Update Ukrainian translation 2020-05-01 15:57:22 +00:00
e06109c23c st/theme: Unref CRStylesheet after removing old theme nodes
Since we now remove all theme nodes on a stylesheet change (ie.
StTheme's "custom-stylesheets-changed" signal) instead of only
invalidating them, those nodes may not be accessed anymore as soon as
"custom-stylesheets-changed" is emitted.

It turned out though that when comparing them to the newly generated
nodes in `st_widget_recompute_style()` using the
`st_theme_node_paint/geometry_equal()` functions, the properties of the
old nodes will still be accessed, causing a crash since the
CRDeclarations are already freed.

To fix that, keep the reference to the CRStylesheet, which owns the
CRDeclarations used by the theme nodes, around a bit longer, so it's
still possible to access the CRDeclarations inside the
"custom-stylesheets-changed" signal handler. This allows us to compare
the old theme nodes to the new ones since the CSS properties of both are
still valid.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2709
2020-05-01 14:24:16 +00:00
05485fe04c extensions-app: Fix translatable string
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1231
2020-05-01 14:14:35 +02:00
13062af7ef Update Chinese (Taiwan) translation
(cherry picked from commit dff855942e)
2020-04-30 17:32:19 +00:00
5e254666b0 messageTray: Add missing property getter
gjs has gotten less forgiving about missing getters/setters, and
commit 6aa1b817 missed the missing getter in the base policy class.

Most notifications use a policy subclass that already provides a
getter, but at least Main.notify() and friends don't; unbreak them
by fixing the base class.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1229
2020-04-30 07:41:38 +00:00
d29eb8646a Update Friulian translation 2020-04-29 22:34:43 +00:00
110 changed files with 11379 additions and 8001 deletions

41
NEWS
View File

@ -1,3 +1,44 @@
3.37.2
======
* Add support for "PrefersNonDefaultGPU" desktop key [Bastien; !1226]
* Only start systemd units when running under systemd
[Carlos, Florian; #2755, !1242, !1252]
* Fix "ghost" media controls [Bryan; #2776]
* Fix zombie sockets from extensions downloader [Michael; #2774]
* Update world clocks offsets when timezone changes [Bryan; #2209]
* Support scrolling anywhere in slider menu items [Peter; #2795]
* Fix "Do Not Disturb" setting getting reset on startup [Florian; #2804]
* Only allow updates for extensions that aren't cached [Florian; !1248]
* Fix matching notifications by PID [Florian; #2592]
* Indicate extension errors in Extensions app [Florian; #2337]
* Add clipboard API for querying supported mimetypes [Andy; #2819]
* Add preview to color picker [Florian; #451]
* Improve world clocks styling [PrOF-kk; #2825]
* Remove Frequent view from app picker [Georges; !880]
* Fix pad OSD glitches [Carlos; !1290]
* Expose actor tree in looking glass [Georges; !1292]
* Fixed crashes [Jonas D., Florian; #2709, #2757]
* Misc. bug fixes and cleanups [Florian, AsciiWolf, Michael, Piotr, Ting-Wei,
Amr, Alexander, Bryan, Georges, Jonas D., Andy, Björn, Koki, Carlos; !1229,
!1231, !1233, !1235, #2578, #2735, #2751, #2602, #2777, !1249, #2796, !1268,
!1269, !1265, !1245, !1273, #2816, !1274, !1263, !1188, !1276, #2652, !1277,
!1281, #2286, !1267, !1286, !1279, !1288, !1293, !1294, !1291]
Contributors:
AsciiWolf, Michael Catanzaro, Björn Daase, Jonas Dreßler, Bryan Dunsmore,
Koki Fukuda, Carlos Garnacho, Andy Holmes, Amr Ibrahim, Soslan Khubulov,
Ting-Wei Lan, Michael Lass, Alexander Mikhaylenko, Florian Müllner,
Georges Basile Stavracas Neto, Bastien Nocera, PrOF-kk, Peter Simonyi
Translators:
Fabio Tomat [fur], Cheng-Chia Tseng [zh_TW], Yuri Chornoivan [uk],
Dušan Kazik [sk], Piotr Drąg [pl], Soslan Khubulov [os],
Daniel Mustieles [es], Nathan Follens [nl], Bruce Cowan [en_GB],
Florentina Mușat [ro], Milo Casagrande [it], Anders Jonsson [sv],
Charles Monzat [fr], Danial Behzadi [fa], sicklylife [ja], Kukuh Syafaat [id],
Jordi Mas [ca], Emin Tufan Çetin [tr], Jiri Grönroos [fi], Марко Костић [sr],
Christian Kirbach [de], Changwoo Ryu [ko], Matej Urbančič [sl]
3.37.1
======
* Improve bluetooth submenu title [Mariana; #2340]

View File

@ -2,7 +2,6 @@
<gresources>
<gresource prefix="/org/gnome/shell/dbus-interfaces">
<file preprocess="xml-stripblanks">net.hadess.SensorProxy.xml</file>
<file preprocess="xml-stripblanks">net.hadess.SwitcherooControl.xml</file>
<file preprocess="xml-stripblanks">org.freedesktop.Application.xml</file>
<file preprocess="xml-stripblanks">org.freedesktop.bolt1.Device.xml</file>
<file preprocess="xml-stripblanks">org.freedesktop.bolt1.Manager.xml</file>

View File

@ -6,6 +6,7 @@
<file>checkbox-off-focused.svg</file>
<file>checkbox-off.svg</file>
<file>checkbox.svg</file>
<file alias="icons/color-pick.svg">color-pick.svg</file>
<file>dash-placeholder.svg</file>
<file>gnome-shell.css</file>
<file>gnome-shell-high-contrast.css</file>

94
data/theme/color-pick.svg Normal file
View File

@ -0,0 +1,94 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="5.4116011mm"
height="5.1374583mm"
viewBox="0 0 5.4116011 5.1374583"
version="1.1"
id="svg5595"
inkscape:version="0.92.4 (unknown)"
sodipodi:docname="color-pick.svg">
<defs
id="defs5589">
<filter
inkscape:collect="always"
x="-0.10291173"
width="1.2058235"
y="-0.065432459"
height="1.1308649"
id="filter5601"
style="color-interpolation-filters:sRGB">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.610872"
id="feGaussianBlur5603" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="15.839192"
inkscape:cx="39.387731"
inkscape:cy="12.554326"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata5592">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-103.12753,-146.26461)">
<circle
r="8.4810486"
cy="9.82623"
cx="10.226647"
id="circle7584"
style="color:#000000;display:inline;overflow:visible;opacity:0.6;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;filter:url(#filter5601)"
transform="matrix(0.26458333,0,0,0.26458333,103.12753,146.26461)" />
<path
style="color:#000000;display:inline;overflow:visible;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:0.26399338;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
d="m 108.07728,148.64122 c 0,1.2393 -1.00465,2.24394 -2.24395,2.24394 -1.23929,0 -2.24716,-1.00465 -2.25221,-2.24394 l -0.009,-2.24458 2.26136,6.4e-4 c 1.2393,3.4e-4 2.24395,1.00464 2.24395,2.24394 z"
id="path7523-7"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ssscss" />
<circle
style="color:#000000;display:inline;overflow:visible;opacity:1;vector-effect:none;fill:#50dbb5;fill-opacity:1;stroke:none;stroke-width:0.36885914;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
id="path7482-1"
cx="105.83707"
cy="148.64352"
r="1.844296" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -14,8 +14,6 @@ $app_icon_padding: 24px;
}
}
//.app-display { spacing: 20px; }
/* App Icons */
$app_grid_fg_color: #fff;
@ -123,15 +121,11 @@ $app_grid_fg_color: #fff;
}
// Some hacks I don't even know
.all-apps,
.frequent-apps > StBoxLayout {
.all-apps {
// horizontal padding to make sure scrollbars or dash don't overlap content
padding: 0px 88px 10px 88px;
}
// Label when no frequent apps
.no-frequent-applications-label { @extend %status_text; }
// shutdown and other actions in the grid
.system-action-icon {
background-color: rgba(0,0,0,0.8);
@ -139,44 +133,3 @@ $app_grid_fg_color: #fff;
border-radius: 99px;
icon-size: $app_icon_size * 0.5;
}
/* Frequent | All toggle */
// container
.app-view-controls {
padding-bottom: 32px;
}
// buttons
.app-view-control {
padding: 4px 32px;
margin: 0 4px;
&, &:hover, &:checked {
@include button(undecorated);
color: darken($osd_fg_color, 25%);
}
&:hover {
color: $osd_fg_color;
box-shadow: inset 0 -2px darken($osd_fg_color, 25%);
}
&:active {
box-shadow: inset 0 -2px $osd_fg_color;
}
&:checked {
color: $osd_fg_color;
box-shadow: inset 0 -2px $selected_bg_color;
}
&:first-child {
border-right-width: 0;
border-radius: 0;
}
&:last-child {
border-radius: 0;
}
}

View File

@ -204,7 +204,7 @@
.world-clocks-time {
font-weight: bold;
color: $fg_color;
font-feature-settings: "lnum";
font-feature-settings: "tnum";
@include fontsize($base_font_size);
text-align: right;
}

View File

@ -1,5 +1,7 @@
/* Looking Glass */
$text_fg_color: #ccc;
// Dialog
#LookingGlassDialog {
background-color: $osd_bg_color;
@ -52,6 +54,11 @@
&:hover { color: lighten($link_color, 10%); }
&:active { color: darken($link_color, 10%); }
}
.actor-link {
color: $text_fg_color;
&:hover { color: lighten($text_fg_color, 20%); }
&:active { color: darken($text_fg_color, 20%); }
}
}
.lg-completions-text {

View File

@ -54,6 +54,10 @@
@extend %status_text;
}
.grid-search-results {
spacing: $base_spacing * 6;
}
// Search results with icons
.grid-search-result {
@extend %app-well-app;

View File

@ -9,6 +9,8 @@ const { ServiceImplementation } = imports.dbusService;
const NotificationsIface = loadInterfaceXML('org.freedesktop.Notifications');
const NotificationsProxy = Gio.DBusProxy.makeProxyWrapper(NotificationsIface);
Gio._promisify(Gio.DBusConnection.prototype, 'call', 'call_finish');
var NotificationDaemon = class extends ServiceImplementation {
constructor() {
super(NotificationsIface, '/org/freedesktop/Notifications');
@ -42,7 +44,15 @@ var NotificationDaemon = class extends ServiceImplementation {
null, null);
}
NotifyAsync(params, invocation) {
async NotifyAsync(params, invocation) {
const pid = await this._getSenderPid(invocation.get_sender());
const hints = params[6];
params[6] = {
...hints,
'sender-pid': new GLib.Variant('u', pid),
};
this._proxy.NotifyRemote(...params, (res, error) => {
if (this._handleError(invocation, error))
return;
@ -77,4 +87,19 @@ var NotificationDaemon = class extends ServiceImplementation {
invocation.return_value(new GLib.Variant('(ssss)', res));
});
}
async _getSenderPid(sender) {
const res = await Gio.DBus.session.call(
'org.freedesktop.DBus',
'/',
'org.freedesktop.DBus',
'GetConnectionUnixProcessID',
new GLib.Variant('(s)', [sender]),
new GLib.VariantType('(u)'),
Gio.DBusCallFlags.NONE,
-1,
null);
const [pid] = res.deepUnpack();
return pid;
}
};

View File

@ -589,8 +589,8 @@ var LoginDialog = GObject.registerClass({
return actorBox;
}
vfunc_allocate(dialogBox, flags) {
this.set_allocation(dialogBox, flags);
vfunc_allocate(dialogBox) {
this.set_allocation(dialogBox);
let themeNode = this.get_theme_node();
dialogBox = themeNode.get_content_box(dialogBox);
@ -719,19 +719,19 @@ var LoginDialog = GObject.registerClass({
// Finally hand out the allocations
if (bannerAllocation)
this._bannerView.allocate(bannerAllocation, flags);
this._bannerView.allocate(bannerAllocation);
if (authPromptAllocation)
this._authPrompt.allocate(authPromptAllocation, flags);
this._authPrompt.allocate(authPromptAllocation);
if (userSelectionAllocation)
this._userSelectionBox.allocate(userSelectionAllocation, flags);
this._userSelectionBox.allocate(userSelectionAllocation);
if (logoAllocation)
this._logoBin.allocate(logoAllocation, flags);
this._logoBin.allocate(logoAllocation);
if (sessionMenuButtonAllocation)
this._sessionMenuButton.allocate(sessionMenuButtonAllocation, flags);
this._sessionMenuButton.allocate(sessionMenuButtonAllocation);
}
_ensureUserListLoaded() {

View File

@ -171,13 +171,13 @@ var IBusManager = class {
this._panelService.connect('set-content-type', this._setContentType.bind(this));
} catch (e) {
}
this._updateReadiness();
try {
// If an engine is already active we need to get its properties
const engine =
await this._ibus.get_global_engine_async(-1, this._cancellable);
this._engineChanged(this._ibus, engine.get_name());
this._updateReadiness();
} catch (e) {
}
}

View File

@ -107,7 +107,7 @@ const SystemActions = GObject.registerClass({
this._actions.set(LOGOUT_ACTION_ID, {
// Translators: The name of the logout action in search
name: C_("search-result", "Log Out"),
iconName: 'application-exit-symbolic',
iconName: 'system-log-out-symbolic',
// Translators: A list of keywords that match the logout action, separated by semicolons
keywords: tokenizeKeywords(_('logout;log out;sign off')),
available: false,

View File

@ -68,8 +68,8 @@ class AppSwitcherPopup extends SwitcherPopup.SwitcherPopup {
this._items = this._switcherList.icons;
}
vfunc_allocate(box, flags) {
super.vfunc_allocate(box, flags);
vfunc_allocate(box) {
super.vfunc_allocate(box);
// Allocate the thumbnails
// We try to avoid overflowing the screen so we base the resulting size on
@ -102,7 +102,7 @@ class AppSwitcherPopup extends SwitcherPopup.SwitcherPopup {
this._thumbnails.addClones(primary.y + primary.height - bottomPadding - childBox.y1);
let [, childNaturalHeight] = this._thumbnails.get_preferred_height(-1);
childBox.y2 = childBox.y1 + childNaturalHeight;
this._thumbnails.allocate(childBox, flags);
this._thumbnails.allocate(childBox);
}
}
@ -749,9 +749,9 @@ class AppSwitcher extends SwitcherPopup.SwitcherList {
return super.vfunc_get_preferred_height(forWidth);
}
vfunc_allocate(box, flags) {
vfunc_allocate(box) {
// Allocate the main list items
super.vfunc_allocate(box, flags);
super.vfunc_allocate(box);
let contentBox = this.get_theme_node().get_content_box(box);
@ -766,7 +766,7 @@ class AppSwitcher extends SwitcherPopup.SwitcherList {
childBox.x2 = childBox.x1 + arrowWidth;
childBox.y1 = contentBox.y1 + itemBox.y2 + arrowHeight;
childBox.y2 = childBox.y1 + arrowHeight;
this._arrows[i].allocate(childBox, flags);
this._arrows[i].allocate(childBox);
}
}
@ -1056,7 +1056,7 @@ class WindowSwitcher extends SwitcherPopup.SwitcherList {
return [minHeight, natHeight];
}
vfunc_allocate(box, flags) {
vfunc_allocate(box) {
let themeNode = this.get_theme_node();
let contentBox = themeNode.get_content_box(box);
const labelHeight = this._label.height;
@ -1064,20 +1064,20 @@ class WindowSwitcher extends SwitcherPopup.SwitcherList {
labelHeight + themeNode.get_padding(St.Side.BOTTOM);
box.y2 -= totalLabelHeight;
super.vfunc_allocate(box, flags);
super.vfunc_allocate(box);
// Hooking up the parent vfunc will call this.set_allocation() with
// the height without the label height, so call it again with the
// correct size here.
box.y2 += totalLabelHeight;
this.set_allocation(box, flags);
this.set_allocation(box);
const childBox = new Clutter.ActorBox();
childBox.x1 = contentBox.x1;
childBox.x2 = contentBox.x2;
childBox.y2 = contentBox.y2;
childBox.y1 = childBox.y2 - labelHeight;
this._label.allocate(childBox, flags);
this._label.allocate(childBox);
}
highlight(index, justOutline) {

View File

@ -18,8 +18,6 @@ const Params = imports.misc.params;
const Util = imports.misc.util;
const SystemActions = imports.misc.systemActions;
const { loadInterfaceXML } = imports.misc.fileUtils;
var MENU_POPUP_TIMEOUT = 600;
var MAX_COLUMNS = 6;
var MIN_COLUMNS = 4;
@ -31,12 +29,11 @@ var INACTIVE_GRID_OPACITY = 77;
var INACTIVE_GRID_OPACITY_ANIMATION_TIME = 240;
var FOLDER_SUBICON_FRACTION = .4;
var MIN_FREQUENT_APPS_COUNT = 3;
var VIEWS_SWITCH_TIME = 400;
var VIEWS_SWITCH_ANIMATION_DELAY = 100;
var PAGE_SWITCH_TIME = 250;
var SCROLL_TIMEOUT_TIME = 150;
var APP_ICON_SCALE_IN_TIME = 500;
var APP_ICON_SCALE_IN_DELAY = 700;
@ -46,11 +43,6 @@ const FOLDER_DIALOG_ANIMATION_TIME = 200;
const OVERSHOOT_THRESHOLD = 20;
const OVERSHOOT_TIMEOUT = 1000;
const SWITCHEROO_BUS_NAME = 'net.hadess.SwitcherooControl';
const SWITCHEROO_OBJECT_PATH = '/net/hadess/SwitcherooControl';
const SwitcherooProxyInterface = loadInterfaceXML('net.hadess.SwitcherooControl');
const SwitcherooProxy = Gio.DBusProxy.makeProxyWrapper(SwitcherooProxyInterface);
let discreteGpuAvailable = false;
function _getCategories(info) {
@ -146,11 +138,7 @@ var BaseAppView = GObject.registerClass({
padWithSpacing: true,
}, true);
if (this.use_pagination)
this._grid = new IconGrid.PaginatedIconGrid(gridParams);
else
this._grid = new IconGrid.IconGrid(gridParams);
this._grid = new IconGrid.IconGrid(gridParams);
this._grid.connect('child-focused', (grid, actor) => {
this._childFocused(actor);
});
@ -332,14 +320,13 @@ var BaseAppView = GObject.registerClass({
}
});
var AllView = GObject.registerClass({
}, class AllView extends BaseAppView {
var AppDisplay = GObject.registerClass(
class AppDisplay extends BaseAppView {
_init() {
super._init({
layout_manager: new Clutter.BinLayout(),
x_expand: true,
y_expand: true,
use_pagination: true,
});
this._grid._delegate = this;
@ -446,6 +433,29 @@ var AllView = GObject.registerClass({
Main.overview.connect('item-drag-end', this._onDragEnd.bind(this));
this.connect('destroy', this._onDestroy.bind(this));
this._switcherooNotifyId = global.connect('notify::switcheroo-control',
() => this._updateDiscreteGpuAvailable());
this._updateDiscreteGpuAvailable();
}
_updateDiscreteGpuAvailable() {
this._switcherooProxy = global.get_switcheroo_control();
if (this._switcherooProxy) {
let prop = this._switcherooProxy.get_cached_property('HasDualGpu');
discreteGpuAvailable = prop ? prop.unpack() : false;
} else {
discreteGpuAvailable = false;
}
}
vfunc_allocate(box) {
box = this.get_theme_node().get_content_box(box);
let availWidth = box.get_width();
let availHeight = box.get_height();
this.adaptToSize(availWidth, availHeight);
super.vfunc_allocate(box);
}
_onDestroy() {
@ -665,7 +675,7 @@ var AllView = GObject.registerClass({
this._canScroll = false;
this._scrollTimeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT,
PAGE_SWITCH_TIME, () => {
SCROLL_TIMEOUT_TIME, () => {
this._canScroll = true;
this._scrollTimeoutId = 0;
return GLib.SOURCE_REMOVE;
@ -960,301 +970,6 @@ var AllView = GObject.registerClass({
}
});
var FrequentView = GObject.registerClass(
class FrequentView extends BaseAppView {
_init() {
super._init({
style_class: 'frequent-apps',
layout_manager: new Clutter.BinLayout(),
x_expand: true,
y_expand: true,
}, { fillParent: true });
this._noFrequentAppsLabel = new St.Label({ text: _("Frequently used applications will appear here"),
style_class: 'no-frequent-applications-label',
x_align: Clutter.ActorAlign.CENTER,
x_expand: true,
y_align: Clutter.ActorAlign.CENTER,
y_expand: true });
this._grid.y_expand = true;
this.add_actor(this._grid);
this.add_actor(this._noFrequentAppsLabel);
this._noFrequentAppsLabel.hide();
this._usage = Shell.AppUsage.get_default();
}
vfunc_map() {
this._redisplay();
super.vfunc_map();
}
hasUsefulData() {
return this._usage.get_most_used().length >= MIN_FREQUENT_APPS_COUNT;
}
_compareItems() {
// The FrequentView does not need to be sorted alphabetically
return 0;
}
_loadApps() {
let apps = [];
let mostUsed = this._usage.get_most_used();
let hasUsefulData = this.hasUsefulData();
this._noFrequentAppsLabel.visible = !hasUsefulData;
if (!hasUsefulData)
return [];
// Allow dragging of the icon only if the Dash would accept a drop to
// change favorite-apps. There are no other possible drop targets from
// the app picker, so there's no other need for a drag to start,
// at least on single-monitor setups.
// This also disables drag-to-launch on multi-monitor setups,
// but we hope that is not used much.
let favoritesWritable = global.settings.is_writable('favorite-apps');
for (let i = 0; i < mostUsed.length; i++) {
if (!this._parentalControlsManager.shouldShowApp(mostUsed[i].get_app_info()))
continue;
let appIcon = this._items.get(mostUsed[i].get_id());
if (!appIcon) {
appIcon = new AppIcon(mostUsed[i], {
isDraggable: favoritesWritable,
});
}
apps.push(appIcon);
}
return apps;
}
// Called before allocation to calculate dynamic spacing
adaptToSize(width, height) {
let box = new Clutter.ActorBox();
box.x1 = box.y1 = 0;
box.x2 = width;
box.y2 = height;
box = this.get_theme_node().get_content_box(box);
box = this._grid.get_theme_node().get_content_box(box);
let availWidth = box.x2 - box.x1;
let availHeight = box.y2 - box.y1;
this._grid.adaptToSize(availWidth, availHeight);
}
});
var Views = {
FREQUENT: 0,
ALL: 1,
};
var ControlsBoxLayout = GObject.registerClass(
class ControlsBoxLayout extends Clutter.BoxLayout {
/*
* Override the BoxLayout behavior to use the maximum preferred width of all
* buttons for each child
*/
vfunc_get_preferred_width(container, forHeight) {
let maxMinWidth = 0;
let maxNaturalWidth = 0;
for (let child = container.get_first_child();
child;
child = child.get_next_sibling()) {
let [minWidth, natWidth] = child.get_preferred_width(forHeight);
maxMinWidth = Math.max(maxMinWidth, minWidth);
maxNaturalWidth = Math.max(maxNaturalWidth, natWidth);
}
let childrenCount = container.get_n_children();
let totalSpacing = this.spacing * (childrenCount - 1);
return [maxMinWidth * childrenCount + totalSpacing,
maxNaturalWidth * childrenCount + totalSpacing];
}
});
var ViewStackLayout = GObject.registerClass({
Signals: { 'allocated-size-changed': { param_types: [GObject.TYPE_INT,
GObject.TYPE_INT] } },
}, class ViewStackLayout extends Clutter.BinLayout {
vfunc_allocate(actor, box, flags) {
let availWidth = box.x2 - box.x1;
let availHeight = box.y2 - box.y1;
// Prepare children of all views for the upcoming allocation, calculate all
// the needed values to adapt available size
this.emit('allocated-size-changed', availWidth, availHeight);
super.vfunc_allocate(actor, box, flags);
}
});
var AppDisplay = GObject.registerClass(
class AppDisplay extends St.BoxLayout {
_init() {
super._init({
style_class: 'app-display',
vertical: true,
x_expand: true,
y_expand: true,
});
this._privacySettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.privacy' });
this._privacySettings.connect('changed::remember-app-usage',
this._updateFrequentVisibility.bind(this));
this._views = [];
let view, button;
view = new FrequentView();
button = new St.Button({ label: _("Frequent"),
style_class: 'app-view-control button',
can_focus: true,
x_expand: true });
this._views[Views.FREQUENT] = { view, 'control': button };
view = new AllView();
button = new St.Button({ label: _("All"),
style_class: 'app-view-control button',
can_focus: true,
x_expand: true });
this._views[Views.ALL] = { view, 'control': button };
this._viewStackLayout = new ViewStackLayout();
this._viewStack = new St.Widget({ x_expand: true, y_expand: true,
layout_manager: this._viewStackLayout });
this._viewStackLayout.connect('allocated-size-changed', this._onAllocatedSizeChanged.bind(this));
this.add_actor(this._viewStack);
let layout = new ControlsBoxLayout({ homogeneous: true });
this._controls = new St.Widget({
style_class: 'app-view-controls',
layout_manager: layout,
x_align: Clutter.ActorAlign.CENTER,
});
this._controls.connect('notify::mapped', () => {
// controls are faded either with their parent or
// explicitly in animate(); we can't know how they'll be
// shown next, so make sure to restore their opacity
// when they are hidden
if (this._controls.mapped)
return;
this._controls.remove_all_transitions();
this._controls.opacity = 255;
});
layout.hookup_style(this._controls);
this.add_actor(new St.Bin({ child: this._controls }));
for (let i = 0; i < this._views.length; i++) {
this._viewStack.add_actor(this._views[i].view);
this._controls.add_actor(this._views[i].control);
let viewIndex = i;
this._views[i].control.connect('clicked', () => {
this._showView(viewIndex);
global.settings.set_uint('app-picker-view', viewIndex);
});
}
let initialView = Math.min(global.settings.get_uint('app-picker-view'),
this._views.length - 1);
let frequentUseful = this._views[Views.FREQUENT].view.hasUsefulData();
if (initialView == Views.FREQUENT && !frequentUseful)
initialView = Views.ALL;
this._showView(initialView);
this._updateFrequentVisibility();
Gio.DBus.system.watch_name(SWITCHEROO_BUS_NAME,
Gio.BusNameWatcherFlags.NONE,
this._switcherooProxyAppeared.bind(this),
() => {
this._switcherooProxy = null;
this._updateDiscreteGpuAvailable();
});
}
_updateDiscreteGpuAvailable() {
if (!this._switcherooProxy)
discreteGpuAvailable = false;
else
discreteGpuAvailable = this._switcherooProxy.HasDualGpu;
}
_switcherooProxyAppeared() {
this._switcherooProxy = new SwitcherooProxy(Gio.DBus.system, SWITCHEROO_BUS_NAME, SWITCHEROO_OBJECT_PATH,
(proxy, error) => {
if (error) {
log(error.message);
return;
}
this._updateDiscreteGpuAvailable();
});
}
animate(animationDirection, onComplete) {
let currentView = this._views.filter(v => v.control.has_style_pseudo_class('checked')).pop().view;
// Animate controls opacity using iconGrid animation time, since
// it will be the time the AllView or FrequentView takes to show
// it entirely.
let finalOpacity;
if (animationDirection == IconGrid.AnimationDirection.IN) {
this._controls.opacity = 0;
finalOpacity = 255;
} else {
finalOpacity = 0;
}
this._controls.ease({
opacity: finalOpacity,
duration: IconGrid.ANIMATION_TIME_IN,
mode: Clutter.AnimationMode.EASE_IN_OUT_QUAD,
});
currentView.animate(animationDirection, onComplete);
}
_showView(activeIndex) {
for (let i = 0; i < this._views.length; i++) {
if (i == activeIndex)
this._views[i].control.add_style_pseudo_class('checked');
else
this._views[i].control.remove_style_pseudo_class('checked');
let animationDirection = i == activeIndex
? IconGrid.AnimationDirection.IN
: IconGrid.AnimationDirection.OUT;
this._views[i].view.animateSwitch(animationDirection);
}
}
_updateFrequentVisibility() {
let enabled = this._privacySettings.get_boolean('remember-app-usage');
this._views[Views.FREQUENT].control.visible = enabled;
let visibleViews = this._views.filter(v => v.control.visible);
this._controls.visible = visibleViews.length > 1;
if (!enabled && this._views[Views.FREQUENT].view.visible)
this._showView(Views.ALL);
}
selectApp(id) {
this._showView(Views.ALL);
this._views[Views.ALL].view.selectApp(id);
}
_onAllocatedSizeChanged(actor, width, height) {
let box = new Clutter.ActorBox();
box.x1 = box.y1 = 0;
box.x2 = width;
box.y2 = height;
box = this._viewStack.get_theme_node().get_content_box(box);
let availWidth = box.x2 - box.x1;
let availHeight = box.y2 - box.y1;
for (let i = 0; i < this._views.length; i++)
this._views[i].view.adaptToSize(availWidth, availHeight);
}
});
var AppSearchProvider = class AppSearchProvider {
constructor() {
this._appSys = Shell.AppSystem.get_default();
@ -1643,7 +1358,7 @@ var FolderIcon = GObject.registerClass({
return false;
let view = _getViewFromIcon(source);
if (!view || !(view instanceof AllView))
if (!view || !(view instanceof AppDisplay))
return false;
if (this._folder.get_strv('apps').includes(source.id))
@ -1965,7 +1680,7 @@ var AppFolderDialog = GObject.registerClass({
}
}
vfunc_allocate(box, flags) {
vfunc_allocate(box) {
let contentBox = this.get_theme_node().get_content_box(box);
contentBox = this._viewBox.get_theme_node().get_content_box(contentBox);
@ -1978,7 +1693,7 @@ var AppFolderDialog = GObject.registerClass({
this._view._grid.topPadding = 0;
super.vfunc_allocate(box, flags);
super.vfunc_allocate(box);
// We can only start zooming after receiving an allocation
if (this._needsZoomAndFade)
@ -2395,7 +2110,7 @@ var AppIcon = GObject.registerClass({
return source != this &&
(source instanceof this.constructor) &&
(view instanceof AllView);
(view instanceof AppDisplay);
}
_setHoveringByDnd(hovering) {
@ -2531,10 +2246,16 @@ var AppIconMenu = class AppIconMenu extends PopupMenu.PopupMenu {
if (discreteGpuAvailable &&
this._source.app.state == Shell.AppState.STOPPED) {
this._onDiscreteGpuMenuItem = this._appendMenuItem(_("Launch using Dedicated Graphics Card"));
this._onDiscreteGpuMenuItem.connect('activate', () => {
const appPrefersNonDefaultGPU = appInfo.get_boolean('PrefersNonDefaultGPU');
const gpuPref = appPrefersNonDefaultGPU
? Shell.AppLaunchGpu.DEFAULT
: Shell.AppLaunchGpu.DISCRETE;
this._onGpuMenuItem = this._appendMenuItem(appPrefersNonDefaultGPU
? _('Launch using Integrated Graphics Card')
: _('Launch using Discrete Graphics Card'));
this._onGpuMenuItem.connect('activate', () => {
this._source.animateLaunch();
this._source.app.launch(0, -1, true);
this._source.app.launch(0, -1, gpuPref);
this.emit('activate-window', null);
});
}

View File

@ -13,6 +13,7 @@ const RENAMED_DESKTOP_IDS = {
'cheese.desktop': 'org.gnome.Cheese.desktop',
'dconf-editor.desktop': 'ca.desrt.dconf-editor.desktop',
'empathy.desktop': 'org.gnome.Empathy.desktop',
'eog.desktop': 'org.gnome.eog.desktop',
'epiphany.desktop': 'org.gnome.Epiphany.desktop',
'evolution.desktop': 'org.gnome.Evolution.desktop',
'file-roller.desktop': 'org.gnome.FileRoller.desktop',

View File

@ -30,8 +30,8 @@ var BarLevel = GObject.registerClass({
accessible_role: Atk.Role.LEVEL_BAR,
};
super._init(Object.assign(defaultParams, params));
this.connect('allocation-changed', (actor, box) => {
this._barLevelWidth = box.get_width();
this.connect('notify::allocation', () => {
this._barLevelWidth = this.allocation.get_width();
});
this._customAccessible = St.GenericAccessible.new_for_actor(this);

View File

@ -196,13 +196,13 @@ var BoxPointer = GObject.registerClass({
return themeNode.adjust_preferred_height(...height);
}
vfunc_allocate(box, flags) {
vfunc_allocate(box) {
if (this._sourceActor && this._sourceActor.mapped) {
this._reposition(box);
this._updateFlip(box);
}
this.set_allocation(box, flags);
this.set_allocation(box);
let themeNode = this.get_theme_node();
let borderWidth = themeNode.get_length('-arrow-border-width');
@ -214,7 +214,7 @@ var BoxPointer = GObject.registerClass({
childBox.y1 = 0;
childBox.x2 = availWidth;
childBox.y2 = availHeight;
this._border.allocate(childBox, flags);
this._border.allocate(childBox);
childBox.x1 = borderWidth;
childBox.y1 = borderWidth;
@ -234,7 +234,7 @@ var BoxPointer = GObject.registerClass({
childBox.x2 -= rise;
break;
}
this.bin.allocate(childBox, flags);
this.bin.allocate(childBox);
}
_drawBorder(area) {

View File

@ -1199,8 +1199,8 @@ class CalendarMessageList extends St.Widget {
child: this._dndSwitch,
label_actor: dndLabel,
});
this._dndButton.bind_property('checked',
this._dndSwitch, 'state',
this._dndSwitch.bind_property('state',
this._dndButton, 'checked',
GObject.BindingFlags.BIDIRECTIONAL | GObject.BindingFlags.SYNC_CREATE);
hbox.add_child(this._dndButton);

View File

@ -292,11 +292,11 @@ class DashActor extends St.Widget {
});
}
vfunc_allocate(box, flags) {
vfunc_allocate(box) {
let contentBox = this.get_theme_node().get_content_box(box);
let availWidth = contentBox.x2 - contentBox.x1;
this.set_allocation(box, flags);
this.set_allocation(box);
let [appIcons, showAppsButton] = this.get_children();
let [, showAppsNatHeight] = showAppsButton.get_preferred_height(availWidth);
@ -306,11 +306,11 @@ class DashActor extends St.Widget {
childBox.y1 = contentBox.y1;
childBox.x2 = contentBox.x2;
childBox.y2 = contentBox.y2 - showAppsNatHeight;
appIcons.allocate(childBox, flags);
appIcons.allocate(childBox);
childBox.y1 = contentBox.y2 - showAppsNatHeight;
childBox.y2 = contentBox.y2;
showAppsButton.allocate(childBox, flags);
showAppsButton.allocate(childBox);
}
vfunc_get_preferred_height(forWidth) {
@ -815,7 +815,12 @@ var Dash = GObject.registerClass({
else
pos = 0; // always insert at the top when dash is empty
if (pos != this._dragPlaceholderPos && pos <= numFavorites && this._animatingPlaceholdersCount == 0) {
// Put the placeholder after the last favorite if we are not
// in the favorites zone
if (pos > numFavorites)
pos = numFavorites;
if (pos !== this._dragPlaceholderPos && this._animatingPlaceholdersCount === 0) {
this._dragPlaceholderPos = pos;
// Don't allow positioning before or after self
@ -843,11 +848,6 @@ var Dash = GObject.registerClass({
this._dragPlaceholder.show(fadeIn);
}
// Remove the drag placeholder if we are not in the
// "favorites zone"
if (pos > numFavorites)
this._clearDragPlaceholder();
if (!this._dragPlaceholder)
return DND.DragMotionResult.NO_DROP;

View File

@ -94,6 +94,7 @@ class WorldClocksSection extends St.Button {
});
this._clock = new GnomeDesktop.WallClock();
this._clockNotifyId = 0;
this._tzNotifyId = 0;
this._locations = [];
@ -166,8 +167,6 @@ class WorldClocksSection extends St.Button {
layout.attach(header, 0, 0, 2, 1);
this.label_actor = header;
let localOffset = GLib.DateTime.new_now_local().get_utc_offset();
for (let i = 0; i < this._locations.length; i++) {
let l = this._locations[i].location;
@ -180,21 +179,8 @@ class WorldClocksSection extends St.Button {
let time = new St.Label({ style_class: 'world-clocks-time' });
const utcOffset = this._getTimeAtLocation(l).get_utc_offset();
const offsetCurrentTz = utcOffset - localOffset;
const offsetHours = Math.abs(offsetCurrentTz) / GLib.TIME_SPAN_HOUR;
const offsetMinutes =
(Math.abs(offsetCurrentTz) % GLib.TIME_SPAN_HOUR) /
GLib.TIME_SPAN_MINUTE;
const prefix = offsetCurrentTz >= 0 ? '+' : '-';
const text = offsetMinutes === 0
? '%s%d'.format(prefix, offsetHours)
: '%s%d\u2236%d'.format(prefix, offsetHours, offsetMinutes);
const tz = new St.Label({
style_class: 'world-clocks-timezone',
text,
x_align: Clutter.ActorAlign.END,
y_align: Clutter.ActorAlign.CENTER,
});
@ -212,32 +198,65 @@ class WorldClocksSection extends St.Button {
layout.attach(tz, 2, i + 1, 1, 1);
}
this._locations[i].actor = time;
this._locations[i].timeLabel = time;
this._locations[i].tzLabel = tz;
}
if (this._grid.get_n_children() > 1) {
if (!this._clockNotifyId) {
this._clockNotifyId =
this._clock.connect('notify::clock', this._updateLabels.bind(this));
this._clock.connect('notify::clock', this._updateTimeLabels.bind(this));
}
this._updateLabels();
if (!this._tzNotifyId) {
this._tzNotifyId =
this._clock.connect('notify::timezone', this._updateTimezoneLabels.bind(this));
}
this._updateTimeLabels();
this._updateTimezoneLabels();
} else {
if (this._clockNotifyId)
this._clock.disconnect(this._clockNotifyId);
this._clockNotifyId = 0;
if (this._tzNotifyId)
this._clock.disconnect(this._tzNotifyId);
this._tzNotifyId = 0;
}
}
_getTimezoneOffsetAtLocation(location) {
const localOffset = GLib.DateTime.new_now_local().get_utc_offset();
const utcOffset = this._getTimeAtLocation(location).get_utc_offset();
const offsetCurrentTz = utcOffset - localOffset;
const offsetHours = Math.abs(offsetCurrentTz) / GLib.TIME_SPAN_HOUR;
const offsetMinutes =
(Math.abs(offsetCurrentTz) % GLib.TIME_SPAN_HOUR) /
GLib.TIME_SPAN_MINUTE;
const prefix = offsetCurrentTz >= 0 ? '+' : '-';
const text = offsetMinutes === 0
? '%s%d'.format(prefix, offsetHours)
: '%s%d\u2236%d'.format(prefix, offsetHours, offsetMinutes);
return text;
}
_getTimeAtLocation(location) {
let tz = GLib.TimeZone.new(location.get_timezone().get_tzid());
return GLib.DateTime.new_now(tz);
}
_updateLabels() {
_updateTimeLabels() {
for (let i = 0; i < this._locations.length; i++) {
let l = this._locations[i];
let now = this._getTimeAtLocation(l.location);
l.actor.text = Util.formatTime(now, { timeOnly: true });
l.timeLabel.text = Util.formatTime(now, { timeOnly: true });
}
}
_updateTimezoneLabels() {
for (let i = 0; i < this._locations.length; i++) {
let l = this._locations[i];
l.tzLabel.text = this._getTimezoneOffsetAtLocation(l.location);
}
}
@ -466,7 +485,6 @@ class MessagesIndicator extends St.Icon {
this._sources = [];
this._count = 0;
this._doNotDisturb = false;
this._settings = new Gio.Settings({
schema_id: 'org.gnome.desktop.notifications',
@ -547,8 +565,8 @@ class FreezableBinLayout extends Clutter.BinLayout {
return this._savedHeight;
}
vfunc_allocate(container, allocation, flags) {
super.vfunc_allocate(container, allocation, flags);
vfunc_allocate(container, allocation) {
super.vfunc_allocate(container, allocation);
let [width, height] = allocation.get_size();
this._savedWidth = [width, width];

View File

@ -285,6 +285,11 @@ function init() {
_easeActorProperty(this, 'value', target, params);
};
Clutter.Actor.prototype[Symbol.iterator] = function* () {
for (let c = this.get_first_child(); c; c = c.get_next_sibling())
yield c;
};
Clutter.Actor.prototype.toString = function () {
return St.describe_actor(this);
};

View File

@ -238,7 +238,7 @@ class InstallExtensionDialog extends ModalDialog.ModalDialog {
});
function init() {
_httpSession = new Soup.SessionAsync({ ssl_use_system_ca_file: true });
_httpSession = new Soup.Session({ ssl_use_system_ca_file: true });
// See: https://bugzilla.gnome.org/show_bug.cgi?id=655189 for context.
// _httpSession.add_feature(new Soup.ProxyResolverDefault());

View File

@ -26,6 +26,7 @@ var ExtensionManager = class {
this._updateNotified = false;
this._extensions = new Map();
this._unloadedExtensions = new Map();
this._enabledExtensions = [];
this._extensionOrder = [];
@ -102,18 +103,18 @@ var ExtensionManager = class {
}
}
if (extension.stylesheet) {
let theme = St.ThemeContext.get_for_stage(global.stage).get_theme();
theme.unload_stylesheet(extension.stylesheet);
delete extension.stylesheet;
}
try {
extension.stateObj.disable();
} catch (e) {
this.logExtensionError(uuid, e);
}
if (extension.stylesheet) {
let theme = St.ThemeContext.get_for_stage(global.stage).get_theme();
theme.unload_stylesheet(extension.stylesheet);
delete extension.stylesheet;
}
for (let i = 0; i < order.length; i++) {
let otherUuid = order[i];
try {
@ -259,7 +260,8 @@ var ExtensionManager = class {
if (!extension)
return;
let message = error.toString();
const message = error instanceof Error
? error.message : error.toString();
extension.error = message;
extension.state = ExtensionState.ERROR;
@ -268,6 +270,7 @@ var ExtensionManager = class {
extension.errors.push(message);
logError(error, 'Extension %s'.format(uuid));
this._updateCanChange(extension);
this.emit('extension-state-changed', extension);
}
@ -317,6 +320,14 @@ var ExtensionManager = class {
return extension;
}
_canLoad(extension) {
if (!this._unloadedExtensions.has(extension.uuid))
return true;
const version = this._unloadedExtensions.get(extension.uuid);
return extension.metadata.version === version;
}
loadExtension(extension) {
// Default to error, we set success as the last step
extension.state = ExtensionState.ERROR;
@ -325,6 +336,9 @@ var ExtensionManager = class {
if (checkVersion && ExtensionUtils.isOutOfDate(extension)) {
extension.state = ExtensionState.OUT_OF_DATE;
} else if (!this._canLoad(extension)) {
this.logExtensionError(extension.uuid, new Error(
'A different version was loaded previously. You need to log out for changes to take effect.'));
} else {
let enabled = this._enabledExtensions.includes(extension.uuid);
if (enabled) {
@ -335,6 +349,8 @@ var ExtensionManager = class {
} else {
extension.state = ExtensionState.INITIALIZED;
}
this._unloadedExtensions.delete(extension.uuid);
}
this._updateCanChange(extension);
@ -342,15 +358,22 @@ var ExtensionManager = class {
}
unloadExtension(extension) {
const { uuid, type } = extension;
// Try to disable it -- if it's ERROR'd, we can't guarantee that,
// but it will be removed on next reboot, and hopefully nothing
// broke too much.
this._callExtensionDisable(extension.uuid);
this._callExtensionDisable(uuid);
extension.state = ExtensionState.UNINSTALLED;
this.emit('extension-state-changed', extension);
this._extensions.delete(extension.uuid);
// If we did install an importer, it is now cached and it's
// impossible to load a different version
if (type === ExtensionType.PER_USER && extension.imports)
this._unloadedExtensions.set(uuid, extension.metadata.version);
this._extensions.delete(uuid);
return true;
}

View File

@ -197,9 +197,9 @@ function zoomOutActorAtPos(actor, x, y) {
});
}
function animateIconPosition(icon, box, flags, nChangedIcons) {
function animateIconPosition(icon, box, nChangedIcons) {
if (!icon.has_allocation() || icon.allocation.equal(box) || icon.opacity === 0) {
icon.allocate(box, flags);
icon.allocate(box);
return false;
}
@ -207,7 +207,7 @@ function animateIconPosition(icon, box, flags, nChangedIcons) {
icon.set_easing_mode(Clutter.AnimationMode.EASE_OUT_QUAD);
icon.set_easing_delay(nChangedIcons * ICON_POSITION_DELAY);
icon.allocate(box, flags);
icon.allocate(box);
icon.restore_easing_state();
@ -226,7 +226,6 @@ var IconGrid = GObject.registerClass({
columnLimit: null,
minRows: 1,
minColumns: 1,
fillParent: false,
xAlign: St.Align.MIDDLE,
padWithSpacing: false });
this._rowLimit = params.rowLimit;
@ -234,7 +233,6 @@ var IconGrid = GObject.registerClass({
this._minRows = params.minRows;
this._minColumns = params.minColumns;
this._xAlign = params.xAlign;
this._fillParent = params.fillParent;
this._padWithSpacing = params.padWithSpacing;
this.topPadding = 0;
@ -242,6 +240,12 @@ var IconGrid = GObject.registerClass({
this.rightPadding = 0;
this.leftPadding = 0;
this._nPages = 0;
this.currentPage = 0;
this._rowsPerPage = 0;
this._spaceBetweenPages = 0;
this._childrenPerPage = 0;
this._updateIconSizesLaterId = 0;
this._items = [];
@ -297,11 +301,6 @@ var IconGrid = GObject.registerClass({
}
vfunc_get_preferred_width(_forHeight) {
if (this._fillParent)
// Ignore all size requests of children and request a size of 0;
// later we'll allocate as many children as fit the parent
return [0, 0];
let nChildren = this.get_n_children();
let nColumns = this._colLimit
? Math.min(this._colLimit, nChildren)
@ -320,52 +319,23 @@ var IconGrid = GObject.registerClass({
return this.get_children().filter(actor => actor.visible);
}
vfunc_get_preferred_height(forWidth) {
if (this._fillParent)
// Ignore all size requests of children and request a size of 0;
// later we'll allocate as many children as fit the parent
return [0, 0];
let themeNode = this.get_theme_node();
let children = this._getVisibleChildren();
let nColumns;
forWidth = themeNode.adjust_for_width(forWidth);
if (forWidth < 0)
nColumns = children.length;
else
[nColumns] = this._computeLayout(forWidth);
let nRows;
if (nColumns > 0)
nRows = Math.ceil(children.length / nColumns);
else
nRows = 0;
if (this._rowLimit)
nRows = Math.min(nRows, this._rowLimit);
let totalSpacing = Math.max(0, nRows - 1) * this._getSpacing();
let height = nRows * this._getVItemSize() + totalSpacing + this.topPadding + this.bottomPadding;
return themeNode.adjust_preferred_height(height, height);
_availableHeightPerPageForItems() {
return this.usedHeightForNRows(this._rowsPerPage) - (this.topPadding + this.bottomPadding);
}
vfunc_allocate(box, flags) {
this.set_allocation(box, flags);
vfunc_get_preferred_height() {
const height = (this._availableHeightPerPageForItems() + this.bottomPadding + this.topPadding) * this._nPages + this._spaceBetweenPages * this._nPages;
return [height, height];
}
let themeNode = this.get_theme_node();
box = themeNode.get_content_box(box);
vfunc_allocate(box) {
if (this._childrenPerPage === 0)
log('computePages() must be called before allocate(); pagination will not work.');
if (this._fillParent) {
// Reset the passed in box to fill the parent
let parentBox = this.get_parent().allocation;
let gridBox = themeNode.get_content_box(parentBox);
box = themeNode.get_content_box(gridBox);
}
this.set_allocation(box);
let children = this._getVisibleChildren();
let availWidth = box.x2 - box.x1;
let availHeight = box.y2 - box.y1;
let spacing = this._getSpacing();
let [nColumns, usedWidth] = this._computeLayout(availWidth);
@ -381,34 +351,27 @@ var IconGrid = GObject.registerClass({
leftEmptySpace = availWidth - usedWidth;
}
let animating = this._clonesAnimating.length > 0;
let x = box.x1 + leftEmptySpace + this.leftPadding;
let y = box.y1 + this.topPadding;
let columnIndex = 0;
let rowIndex = 0;
let nChangedIcons = 0;
for (let i = 0; i < children.length; i++) {
let childBox = this._calculateChildBox(children[i], x, y, box);
if (this._rowLimit && rowIndex >= this._rowLimit ||
this._fillParent && childBox.y2 > availHeight - this.bottomPadding) {
children[i].opacity = 0;
} else {
if (!animating)
children[i].opacity = 255;
if (animateIconPosition(children[i], childBox, nChangedIcons))
nChangedIcons++;
if (animateIconPosition(children[i], childBox, flags, nChangedIcons))
nChangedIcons++;
}
children[i].show();
columnIndex++;
if (columnIndex == nColumns) {
if (columnIndex === nColumns)
columnIndex = 0;
rowIndex++;
}
if (columnIndex == 0) {
y += this._getVItemSize() + spacing;
if ((i + 1) % this._childrenPerPage === 0)
y += this._spaceBetweenPages - spacing + this.bottomPadding + this.topPadding;
x = box.x1 + leftEmptySpace + this.leftPadding;
} else {
x += this._getHItemSize() + spacing;
@ -460,7 +423,11 @@ var IconGrid = GObject.registerClass({
* set of items to be animated.
*/
_getChildrenToAnimate() {
return this._getVisibleChildren().filter(child => child.opacity > 0);
const children = this._getVisibleChildren().filter(child => child.opacity > 0);
const firstIndex = this._childrenPerPage * this.currentPage;
const lastIndex = firstIndex + this._childrenPerPage;
return children.slice(firstIndex, lastIndex);
}
_resetAnimationActors() {
@ -736,16 +703,6 @@ var IconGrid = GObject.registerClass({
return usedWidth + this.leftPadding + this.rightPadding;
}
removeAll() {
this._items = [];
this.remove_all_children();
}
destroyAll() {
this._items = [];
this.destroy_all_children();
}
addItem(item, index) {
if (!(item.icon instanceof BaseIcon))
throw new Error('Only items with a BaseIcon icon property can be added to IconGrid');
@ -761,14 +718,6 @@ var IconGrid = GObject.registerClass({
this.remove_child(item);
}
getItemAtIndex(index) {
return this.get_child_at_index(index);
}
visibleItemsCount() {
return this.get_children().filter(c => c.is_visible()).length;
}
setSpacing(spacing) {
this._fixedSpacing = spacing;
}
@ -818,6 +767,24 @@ var IconGrid = GObject.registerClass({
this.topPadding = this.rightPadding = this.bottomPadding = this.leftPadding = spacing;
}
_computePages(availWidthPerPage, availHeightPerPage) {
const [nColumns] = this._computeLayout(availWidthPerPage);
const children = this._getVisibleChildren();
let nRows;
if (nColumns > 0)
nRows = Math.ceil(children.length / nColumns);
else
nRows = 0;
if (this._rowLimit)
nRows = Math.min(nRows, this._rowLimit);
// We want to contain the grid inside the parent box with padding
this._rowsPerPage = this.rowsForHeight(availHeightPerPage);
this._nPages = Math.ceil(nRows / this._rowsPerPage);
this._spaceBetweenPages = availHeightPerPage - (this.topPadding + this.bottomPadding) - this._availableHeightPerPageForItems();
this._childrenPerPage = nColumns * this._rowsPerPage;
}
/*
* This function must to be called before iconGrid allocation,
* to know how much spacing can the grid has
@ -843,6 +810,7 @@ var IconGrid = GObject.registerClass({
this._updateIconSizesLaterId = Meta.later_add(Meta.LaterType.BEFORE_REDRAW,
this._updateIconSizes.bind(this));
}
this._computePages(availWidth, availHeight);
}
// Note that this is ICON_SIZE as used by BaseIcon, not elsewhere in IconGrid; it's a bit messed up
@ -855,116 +823,6 @@ var IconGrid = GObject.registerClass({
return GLib.SOURCE_REMOVE;
}
});
var PaginatedIconGrid = GObject.registerClass(
class PaginatedIconGrid extends IconGrid {
_init(params) {
super._init(params);
this._nPages = 0;
this.currentPage = 0;
this._rowsPerPage = 0;
this._spaceBetweenPages = 0;
this._childrenPerPage = 0;
}
vfunc_get_preferred_height(_forWidth) {
let height = (this._availableHeightPerPageForItems() + this.bottomPadding + this.topPadding) * this._nPages + this._spaceBetweenPages * this._nPages;
return [height, height];
}
vfunc_allocate(box, flags) {
if (this._childrenPerPage == 0)
log('computePages() must be called before allocate(); pagination will not work.');
this.set_allocation(box, flags);
if (this._fillParent) {
// Reset the passed in box to fill the parent
let parentBox = this.get_parent().allocation;
let gridBox = this.get_theme_node().get_content_box(parentBox);
box = this.get_theme_node().get_content_box(gridBox);
}
let children = this._getVisibleChildren();
let availWidth = box.x2 - box.x1;
let spacing = this._getSpacing();
let [nColumns, usedWidth] = this._computeLayout(availWidth);
let leftEmptySpace;
switch (this._xAlign) {
case St.Align.START:
leftEmptySpace = 0;
break;
case St.Align.MIDDLE:
leftEmptySpace = Math.floor((availWidth - usedWidth) / 2);
break;
case St.Align.END:
leftEmptySpace = availWidth - usedWidth;
}
let x = box.x1 + leftEmptySpace + this.leftPadding;
let y = box.y1 + this.topPadding;
let columnIndex = 0;
let nChangedIcons = 0;
for (let i = 0; i < children.length; i++) {
let childBox = this._calculateChildBox(children[i], x, y, box);
if (animateIconPosition(children[i], childBox, flags, nChangedIcons))
nChangedIcons++;
children[i].show();
columnIndex++;
if (columnIndex == nColumns)
columnIndex = 0;
if (columnIndex == 0) {
y += this._getVItemSize() + spacing;
if ((i + 1) % this._childrenPerPage == 0)
y += this._spaceBetweenPages - spacing + this.bottomPadding + this.topPadding;
x = box.x1 + leftEmptySpace + this.leftPadding;
} else {
x += this._getHItemSize() + spacing;
}
}
}
// Overridden from IconGrid
_getChildrenToAnimate() {
let children = super._getChildrenToAnimate();
let firstIndex = this._childrenPerPage * this.currentPage;
let lastIndex = firstIndex + this._childrenPerPage;
return children.slice(firstIndex, lastIndex);
}
_computePages(availWidthPerPage, availHeightPerPage) {
let [nColumns, usedWidth_] = this._computeLayout(availWidthPerPage);
let nRows;
let children = this._getVisibleChildren();
if (nColumns > 0)
nRows = Math.ceil(children.length / nColumns);
else
nRows = 0;
if (this._rowLimit)
nRows = Math.min(nRows, this._rowLimit);
// We want to contain the grid inside the parent box with padding
this._rowsPerPage = this.rowsForHeight(availHeightPerPage);
this._nPages = Math.ceil(nRows / this._rowsPerPage);
this._spaceBetweenPages = availHeightPerPage - (this.topPadding + this.bottomPadding) - this._availableHeightPerPageForItems();
this._childrenPerPage = nColumns * this._rowsPerPage;
}
adaptToSize(availWidth, availHeight) {
super.adaptToSize(availWidth, availHeight);
this._computePages(availWidth, availHeight);
}
_availableHeightPerPageForItems() {
return this.usedHeightForNRows(this._rowsPerPage) - (this.topPadding + this.bottomPadding);
}
nPages() {
return this._nPages;

View File

@ -61,7 +61,7 @@ class AspectContainer extends St.Widget {
this.queue_relayout();
}
vfunc_allocate(box, flags) {
vfunc_allocate(box) {
if (box.get_width() > 0 && box.get_height() > 0) {
let sizeRatio = box.get_width() / box.get_height();
@ -79,7 +79,7 @@ class AspectContainer extends St.Widget {
}
}
super.vfunc_allocate(box, flags);
super.vfunc_allocate(box);
}
});

View File

@ -246,7 +246,7 @@ var LayoutManager = GObject.registerClass({
vertical: true });
this.addChrome(this.panelBox, { affectsStruts: true,
trackFullscreen: true });
this.panelBox.connect('allocation-changed',
this.panelBox.connect('notify::allocation',
this._panelBoxChanged.bind(this));
this.modalDialogGroup = new St.Widget({ name: 'modalDialogGroup',

View File

@ -554,8 +554,8 @@ var Inspector = GObject.registerClass({
this._lookingGlass = lookingGlass;
}
vfunc_allocate(box, flags) {
this.set_allocation(box, flags);
vfunc_allocate(box) {
this.set_allocation(box);
if (!this._eventHandler)
return;
@ -570,7 +570,7 @@ var Inspector = GObject.registerClass({
childBox.x2 = childBox.x1 + natWidth;
childBox.y1 = primary.y + Math.floor((primary.height - natHeight) / 2);
childBox.y2 = childBox.y1 + natHeight;
this._eventHandler.allocate(childBox, flags);
this._eventHandler.allocate(childBox);
}
_close() {
@ -802,6 +802,191 @@ var Extensions = GObject.registerClass({
}
});
var ActorLink = GObject.registerClass({
Signals: {
'inspect-actor': {},
},
}, class ActorLink extends St.Button {
_init(actor) {
this._arrow = new St.Icon({
icon_name: 'pan-end-symbolic',
icon_size: 8,
x_align: Clutter.ActorAlign.CENTER,
y_align: Clutter.ActorAlign.CENTER,
pivot_point: new Graphene.Point({ x: 0.5, y: 0.5 }),
});
const label = new St.Label({
text: actor.toString(),
x_align: Clutter.ActorAlign.START,
});
const inspectButton = new St.Button({
child: new St.Icon({
icon_name: 'insert-object-symbolic',
icon_size: 12,
y_align: Clutter.ActorAlign.CENTER,
}),
reactive: true,
x_expand: true,
x_align: Clutter.ActorAlign.START,
y_align: Clutter.ActorAlign.CENTER,
});
inspectButton.connect('clicked', () => this.emit('inspect-actor'));
const box = new St.BoxLayout();
box.add_child(this._arrow);
box.add_child(label);
box.add_child(inspectButton);
super._init({
reactive: true,
track_hover: true,
toggle_mode: true,
style_class: 'actor-link',
child: box,
x_align: Clutter.ActorAlign.START,
});
this._actor = actor;
}
vfunc_clicked() {
this._arrow.ease({
rotation_angle_z: this.checked ? 90 : 0,
duration: 250,
});
}
});
var ActorTreeViewer = GObject.registerClass(
class ActorTreeViewer extends St.BoxLayout {
_init(lookingGlass) {
super._init();
this._lookingGlass = lookingGlass;
this._actorData = new Map();
}
_showActorChildren(actor) {
const data = this._actorData.get(actor);
if (!data || data.visible)
return;
data.visible = true;
data.actorAddedId = actor.connect('actor-added', (container, child) => {
this._addActor(data.children, child);
});
data.actorRemovedId = actor.connect('actor-removed', (container, child) => {
this._removeActor(child);
});
for (let child of actor)
this._addActor(data.children, child);
}
_hideActorChildren(actor) {
const data = this._actorData.get(actor);
if (!data || !data.visible)
return;
for (let child of actor)
this._removeActor(child);
data.visible = false;
if (data.actorAddedId > 0) {
actor.disconnect(data.actorAddedId);
data.actorAddedId = 0;
}
if (data.actorRemovedId > 0) {
actor.disconnect(data.actorRemovedId);
data.actorRemovedId = 0;
}
data.children.remove_all_children();
}
_addActor(container, actor) {
if (this._actorData.has(actor))
return;
if (actor === this._lookingGlass)
return;
const button = new ActorLink(actor);
button.connect('notify::checked', () => {
this._lookingGlass.setBorderPaintTarget(actor);
if (button.checked)
this._showActorChildren(actor);
else
this._hideActorChildren(actor);
});
button.connect('inspect-actor', () => {
this._lookingGlass.inspectObject(actor, button);
});
const mainContainer = new St.BoxLayout({ vertical: true });
const childrenContainer = new St.BoxLayout({
vertical: true,
style: 'padding: 0 0 0 18px',
});
mainContainer.add_child(button);
mainContainer.add_child(childrenContainer);
this._actorData.set(actor, {
button,
container: mainContainer,
children: childrenContainer,
visible: false,
actorAddedId: 0,
actorRemovedId: 0,
actorDestroyedId: actor.connect('destroy', () => this._removeActor(actor)),
});
let belowChild = null;
const nextSibling = actor.get_next_sibling();
if (nextSibling && this._actorData.has(nextSibling))
belowChild = this._actorData.get(nextSibling).container;
container.insert_child_above(mainContainer, belowChild);
}
_removeActor(actor) {
const data = this._actorData.get(actor);
if (!data)
return;
for (let child of actor)
this._removeActor(child);
if (data.actorAddedId > 0) {
actor.disconnect(data.actorAddedId);
data.actorAddedId = 0;
}
if (data.actorRemovedId > 0) {
actor.disconnect(data.actorRemovedId);
data.actorRemovedId = 0;
}
if (data.actorDestroyedId > 0) {
actor.disconnect(data.actorDestroyedId);
data.actorDestroyedId = 0;
}
data.container.destroy();
this._actorData.delete(actor);
}
vfunc_map() {
super.vfunc_map();
this._addActor(this, global.stage);
}
vfunc_unmap() {
super.vfunc_unmap();
this._removeActor(global.stage);
}
});
var LookingGlass = GObject.registerClass(
class LookingGlass extends St.BoxLayout {
_init() {
@ -833,9 +1018,9 @@ class LookingGlass extends St.BoxLayout {
Main.uiGroup.add_actor(this);
Main.uiGroup.set_child_below_sibling(this,
Main.layoutManager.panelBox);
Main.layoutManager.panelBox.connect('allocation-changed',
Main.layoutManager.panelBox.connect('notify::allocation',
this._queueResize.bind(this));
Main.layoutManager.keyboardBox.connect('allocation-changed',
Main.layoutManager.keyboardBox.connect('notify::allocation',
this._queueResize.bind(this));
this._objInspector = new ObjInspector(this);
@ -917,6 +1102,9 @@ class LookingGlass extends St.BoxLayout {
this._extensions = new Extensions(this);
notebook.appendPage('Extensions', this._extensions);
this._actorTreeViewer = new ActorTreeViewer(this);
notebook.appendPage('Actors', this._actorTreeViewer);
this._entry.clutter_text.connect('activate', (o, _e) => {
// Hide any completions we are currently showing
this._hideCompletions();

View File

@ -285,12 +285,12 @@ var LabelExpanderLayout = GObject.registerClass({
return [min, nat];
}
vfunc_allocate(container, box, flags) {
vfunc_allocate(container, box) {
for (let i = 0; i < container.get_n_children(); i++) {
let child = container.get_child_at_index(i);
if (child.visible)
child.allocate(box, flags);
child.allocate(box);
}
}

View File

@ -162,6 +162,10 @@ var NotificationPolicy = GObject.registerClass({
this.run_dispose();
}
get enable() {
return true;
}
get enableSound() {
return true;
}
@ -682,8 +686,8 @@ class SourceActorWithLabel extends SourceActor {
});
}
vfunc_allocate(box, flags) {
super.vfunc_allocate(box, flags);
vfunc_allocate(box) {
super.vfunc_allocate(box);
let childBox = new Clutter.ActorBox();
@ -703,7 +707,7 @@ class SourceActorWithLabel extends SourceActor {
childBox.y1 = box.y2 - naturalHeight;
childBox.y2 = box.y2;
this._counterBin.allocate(childBox, flags);
this._counterBin.allocate(childBox);
}
_updateCount() {

View File

@ -173,6 +173,11 @@ var MprisPlayer = class MprisPlayer {
if (!this._mprisProxy.g_name_owner)
this._close();
});
// It is possible for the bus to disappear before the previous signal
// is connected, so we must ensure that the bus still exists at this
// point.
if (!this._mprisProxy.g_name_owner)
this._close();
}
_onPlayerProxyReady() {

View File

@ -10,13 +10,6 @@ const Params = imports.misc.params;
const { loadInterfaceXML } = imports.misc.fileUtils;
// Should really be defined in Gio.js
const BusIface = loadInterfaceXML('org.freedesktop.DBus');
var BusProxy = Gio.DBusProxy.makeProxyWrapper(BusIface);
function Bus() {
return new BusProxy(Gio.DBus.session, 'org.freedesktop.DBus', '/org/freedesktop/DBus');
}
const FdoNotificationsIface = loadInterfaceXML('org.freedesktop.Notifications');
var NotificationClosedReason = {
@ -49,9 +42,7 @@ var FdoNotificationDaemon = class FdoNotificationDaemon {
this._dbusImpl.export(Gio.DBus.session, '/org/freedesktop/Notifications');
this._sources = [];
this._senderToPid = {};
this._notifications = {};
this._busProxy = new Bus();
this._nextNotificationId = 1;
@ -116,12 +107,9 @@ var FdoNotificationDaemon = class FdoNotificationDaemon {
//
// If no existing source is found, a new source is created as long as
// pid is provided.
//
// Either a pid or ndata.notification is needed to retrieve or
// create a source.
_getSource(title, pid, ndata, sender) {
if (!pid && !(ndata && ndata.notification))
return null;
throw new Error('Either a pid or ndata.notification is needed');
// We use notification's source for the notifications we still have
// around that are getting replaced because we don't keep sources
@ -218,42 +206,10 @@ var FdoNotificationDaemon = class FdoNotificationDaemon {
this._notifications[id] = ndata;
let sender = invocation.get_sender();
let pid = this._senderToPid[sender];
let pid = hints['sender-pid'];
let source = this._getSource(appName, pid, ndata, sender, null);
if (source) {
this._notifyForSource(source, ndata);
return invocation.return_value(GLib.Variant.new('(u)', [id]));
}
if (replacesId) {
// There's already a pending call to GetConnectionUnixProcessID,
// which will see the new notification data when it finishes,
// so we don't have to do anything.
return invocation.return_value(GLib.Variant.new('(u)', [id]));
}
this._busProxy.GetConnectionUnixProcessIDRemote(sender, (result, excp) => {
// The app may have updated or removed the notification
ndata = this._notifications[id];
if (!ndata)
return;
if (excp) {
logError(excp, 'Call to GetConnectionUnixProcessID failed');
return;
}
[pid] = result;
source = this._getSource(appName, pid, ndata, sender, null);
this._senderToPid[sender] = pid;
source.connect('destroy', () => {
delete this._senderToPid[sender];
});
this._notifyForSource(source, ndata);
});
this._notifyForSource(source, ndata);
return invocation.return_value(GLib.Variant.new('(u)', [id]));
}
@ -417,12 +373,11 @@ var FdoNotificationDaemonSource = GObject.registerClass(
class FdoNotificationDaemonSource extends MessageTray.Source {
_init(title, pid, sender, appId) {
this.pid = pid;
this.initialTitle = title;
this.app = this._getApp(appId);
super._init(title);
this.initialTitle = title;
if (this.app)
this.title = this.app.get_name();
else
@ -470,19 +425,20 @@ class FdoNotificationDaemonSource extends MessageTray.Source {
}
_getApp(appId) {
const appSys = Shell.AppSystem.get_default();
let app;
app = Shell.WindowTracker.get_default().get_app_from_pid(this.pid);
if (app != null)
return app;
if (appId) {
app = Shell.AppSystem.get_default().lookup_app('%s.desktop'.format(appId));
if (app != null)
return app;
}
if (appId)
app = appSys.lookup_app('%s.desktop'.format(appId));
return null;
if (!app)
app = appSys.lookup_app('%s.desktop'.format(this.initialTitle));
return app;
}
setTitle(title) {

View File

@ -51,7 +51,7 @@ var SlideLayout = GObject.registerClass({
return [minWidth, natWidth];
}
vfunc_allocate(container, box, flags) {
vfunc_allocate(container, box) {
let child = container.get_first_child();
let availWidth = Math.round(box.x2 - box.x1);
@ -72,7 +72,7 @@ var SlideLayout = GObject.registerClass({
actorBox.y1 = box.y1;
actorBox.y2 = actorBox.y1 + availHeight;
child.allocate(actorBox, flags);
child.allocate(actorBox);
}
// eslint-disable-next-line camelcase
@ -394,10 +394,10 @@ class DashSpacer extends St.Widget {
});
var ControlsLayout = GObject.registerClass({
Signals: { 'allocation-changed': { flags: GObject.SignalFlags.RUN_LAST } },
Signals: { 'allocation-changed': {} },
}, class ControlsLayout extends Clutter.BinLayout {
vfunc_allocate(container, box, flags) {
super.vfunc_allocate(container, box, flags);
vfunc_allocate(container, box) {
super.vfunc_allocate(container, box);
this.emit('allocation-changed');
}
});

View File

@ -2,7 +2,7 @@
/* exported PadOsd, PadOsdService */
const { Atk, Clutter, GDesktopEnums, Gio,
GLib, GObject, Gtk, Meta, Rsvg, St } = imports.gi;
GLib, GObject, Gtk, Meta, Pango, Rsvg, St } = imports.gi;
const Signals = imports.signals;
const Main = imports.ui.main;
@ -329,6 +329,7 @@ var PadDiagram = GObject.registerClass({
this._imagePath = imagePath;
this._handle = this._composeStyledDiagram();
this._initLabels();
}
// eslint-disable-next-line camelcase
@ -343,6 +344,26 @@ var PadDiagram = GObject.registerClass({
this.add_actor(actor);
}
_initLabels() {
let i = 0;
for (i = 0; ; i++) {
if (!this._addLabel(Meta.PadActionType.BUTTON, i))
break;
}
for (i = 0; ; i++) {
if (!this._addLabel(Meta.PadActionType.RING, i, CW) ||
!this._addLabel(Meta.PadActionType.RING, i, CCW))
break;
}
for (i = 0; ; i++) {
if (!this._addLabel(Meta.PadActionType.STRIP, i, UP) ||
!this._addLabel(Meta.PadActionType.STRIP, i, DOWN))
break;
}
}
_wrappingSvgHeader() {
return '<?xml version="1.0" encoding="UTF-8" standalone="no"?>' +
'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" ' +
@ -362,10 +383,8 @@ var PadDiagram = GObject.registerClass({
for (let i = 0; i < this._activeButtons.length; i++) {
let ch = String.fromCharCode('A'.charCodeAt() + this._activeButtons[i]);
css += '.%s {'.format(ch);
css += ' stroke: %s !important;'.format(ACTIVE_COLOR);
css += ' fill: %s !important;'.format(ACTIVE_COLOR);
css += '}';
css += '.%s.Leader { stroke: %s !important; }'.format(ch, ACTIVE_COLOR);
css += '.%s.Button { stroke: %s !important; fill: %s !important; }'.format(ch, ACTIVE_COLOR, ACTIVE_COLOR);
}
return css;
@ -390,9 +409,6 @@ var PadDiagram = GObject.registerClass({
}
_updateDiagramScale() {
if (this._handle == null)
return;
[this._actorWidth, this._actorHeight] = this.get_size();
let dimensions = this._handle.get_dimensions();
let scaleX = this._actorWidth / dimensions.width;
@ -405,6 +421,11 @@ var PadDiagram = GObject.registerClass({
let [, natWidth] = child.get_preferred_width(natHeight);
let childBox = new Clutter.ActorBox();
// I miss Cairo.Matrix
let dimensions = this._handle.get_dimensions();
x = x * this._scale + this._actorWidth / 2 - dimensions.width / 2 * this._scale;
y = y * this._scale + this._actorHeight / 2 - dimensions.height / 2 * this._scale;
if (direction == LTR) {
childBox.x1 = x;
childBox.x2 = x + natWidth;
@ -415,22 +436,23 @@ var PadDiagram = GObject.registerClass({
childBox.y1 = y - natHeight / 2;
childBox.y2 = y + natHeight / 2;
child.allocate(childBox, 0);
child.allocate(childBox);
}
vfunc_allocate(box, flags) {
super.vfunc_allocate(box, flags);
vfunc_allocate(box) {
super.vfunc_allocate(box);
if (this._handle === null)
return;
this._updateDiagramScale();
for (let i = 0; i < this._labels.length; i++) {
let [label, action, idx, dir] = this._labels[i];
let [found_, x, y, arrangement] = this.getLabelCoords(action, idx, dir);
const { label, x, y, arrangement } = this._labels[i];
this._allocateChild(label, x, y, arrangement);
}
if (this._editorActor && this._curEdited) {
let [label_, action, idx, dir] = this._curEdited;
let [found_, x, y, arrangement] = this.getLabelCoords(action, idx, dir);
const { x, y, arrangement } = this._curEdited;
this._allocateChild(this._editorActor, x, y, arrangement);
}
}
@ -457,17 +479,6 @@ var PadDiagram = GObject.registerClass({
cr.$dispose();
}
_transformPoint(x, y) {
if (this._handle == null || this._scale == null)
return [x, y];
// I miss Cairo.Matrix
let dimensions = this._handle.get_dimensions();
x = x * this._scale + this._actorWidth / 2 - dimensions.width / 2 * this._scale;
y = y * this._scale + this._actorHeight / 2 - dimensions.height / 2 * this._scale;
return [Math.round(x), Math.round(y)];
}
_getItemLabelCoords(labelName, leaderName) {
if (this._handle == null)
return [false];
@ -495,44 +506,39 @@ var PadDiagram = GObject.registerClass({
pos.y = this._imageHeight - pos.y;
}
let [x, y] = this._transformPoint(pos.x, pos.y);
return [true, x, y, direction];
return [true, pos.x, pos.y, direction];
}
getButtonLabelCoords(button) {
_getButtonLabels(button) {
let ch = String.fromCharCode('A'.charCodeAt() + button);
let labelName = 'Label%s'.format(ch);
let leaderName = 'Leader%s'.format(ch);
return this._getItemLabelCoords(labelName, leaderName);
return [labelName, leaderName];
}
getRingLabelCoords(number, dir) {
_getRingLabels(number, dir) {
let numStr = number > 0 ? (number + 1).toString() : '';
let dirStr = dir == CW ? 'CW' : 'CCW';
let labelName = 'LabelRing%s%s'.format(numStr, dirStr);
let leaderName = 'LeaderRing%s%s'.format(numStr, dirStr);
return this._getItemLabelCoords(labelName, leaderName);
return [labelName, leaderName];
}
getStripLabelCoords(number, dir) {
_getStripLabels(number, dir) {
let numStr = number > 0 ? (number + 1).toString() : '';
let dirStr = dir == UP ? 'Up' : 'Down';
let labelName = 'LabelStrip%s%s'.format(numStr, dirStr);
let leaderName = 'LeaderStrip%s%s'.format(numStr, dirStr);
return this._getItemLabelCoords(labelName, leaderName);
return [labelName, leaderName];
}
getLabelCoords(action, idx, dir) {
_getLabelCoords(action, idx, dir) {
if (action == Meta.PadActionType.BUTTON)
return this.getButtonLabelCoords(idx);
return this._getItemLabelCoords(...this._getButtonLabels(idx));
else if (action == Meta.PadActionType.RING)
return this.getRingLabelCoords(idx, dir);
return this._getItemLabelCoords(...this._getRingLabels(idx, dir));
else if (action == Meta.PadActionType.STRIP)
return this.getStripLabelCoords(idx, dir);
return this._getItemLabelCoords(...this._getStripLabels(idx, dir));
return [false];
}
@ -557,26 +563,30 @@ var PadDiagram = GObject.registerClass({
this._invalidateSvg();
}
addLabel(label, type, idx, dir) {
this._labels.push([label, type, idx, dir]);
_addLabel(action, idx, dir) {
let [found, x, y, arrangement] = this._getLabelCoords(action, idx, dir);
if (!found)
return false;
let label = new St.Label();
this._labels.push({ label, action, idx, dir, x, y, arrangement });
this.add_actor(label);
return true;
}
updateLabels(getText) {
for (let i = 0; i < this._labels.length; i++) {
let [label, action, idx, dir] = this._labels[i];
const { label, action, idx, dir } = this._labels[i];
let str = getText(action, idx, dir);
label.set_text(str);
}
this.queue_relayout();
}
_applyLabel(label, action, idx, dir, str) {
if (str != null) {
if (str !== null)
label.set_text(str);
let [found_, x, y, arrangement] = this.getLabelCoords(action, idx, dir);
this._allocateChild(label, x, y, arrangement);
}
label.show();
}
@ -584,18 +594,20 @@ var PadDiagram = GObject.registerClass({
this._editorActor.hide();
if (this._prevEdited) {
let [label, action, idx, dir] = this._prevEdited;
const { label, action, idx, dir } = this._prevEdited;
this._applyLabel(label, action, idx, dir, str);
this._prevEdited = null;
}
if (this._curEdited) {
let [label, action, idx, dir] = this._curEdited;
const { label, action, idx, dir } = this._curEdited;
this._applyLabel(label, action, idx, dir, str);
if (continues)
this._prevEdited = this._curEdited;
this._curEdited = null;
}
this.queue_relayout();
}
startEdition(action, idx, dir) {
@ -605,21 +617,19 @@ var PadDiagram = GObject.registerClass({
return;
for (let i = 0; i < this._labels.length; i++) {
let [label, itemAction, itemIdx, itemDir] = this._labels[i];
if (action == itemAction && idx == itemIdx && dir == itemDir) {
if (action == this._labels[i].action &&
idx == this._labels[i].idx && dir == this._labels[i].dir) {
this._curEdited = this._labels[i];
editedLabel = label;
editedLabel = this._curEdited.label;
break;
}
}
if (this._curEdited == null)
return;
let [found] = this.getLabelCoords(action, idx, dir);
if (!found)
return;
this._editorActor.show();
editedLabel.hide();
this.queue_relayout();
}
});
@ -693,6 +703,7 @@ var PadOsd = GObject.registerClass({
this._titleLabel = new St.Label({ style: 'font-side: larger; font-weight: bold;',
x_align: Clutter.ActorAlign.CENTER });
this._titleLabel.clutter_text.set_ellipsize(Pango.EllipsizeMode.NONE);
this._titleLabel.clutter_text.set_text(padDevice.get_device_name());
labelBox.add_actor(this._titleLabel);
@ -710,31 +721,7 @@ var PadOsd = GObject.registerClass({
x_expand: true,
y_expand: true });
this.add_actor(this._padDiagram);
// FIXME: Fix num buttons.
let i = 0;
for (i = 0; i < 50; i++) {
let [found] = this._padDiagram.getButtonLabelCoords(i);
if (!found)
break;
this._createLabel(Meta.PadActionType.BUTTON, i);
}
for (i = 0; i < padDevice.get_n_rings(); i++) {
let [found] = this._padDiagram.getRingLabelCoords(i, CW);
if (!found)
break;
this._createLabel(Meta.PadActionType.RING, i, CW);
this._createLabel(Meta.PadActionType.RING, i, CCW);
}
for (i = 0; i < padDevice.get_n_strips(); i++) {
let [found] = this._padDiagram.getStripLabelCoords(i, UP);
if (!found)
break;
this._createLabel(Meta.PadActionType.STRIP, i, UP);
this._createLabel(Meta.PadActionType.STRIP, i, DOWN);
}
this._updateActionLabels();
let buttonBox = new St.Widget({ layout_manager: new Clutter.BinLayout(),
x_expand: true,
@ -787,11 +774,6 @@ var PadOsd = GObject.registerClass({
return str ? str : _("None");
}
_createLabel(type, number, dir) {
let label = new St.Label({ text: this._getActionText(type, number) });
this._padDiagram.addLabel(label, type, number, dir);
}
_updateActionLabels() {
this._padDiagram.updateLabels(this._getActionText.bind(this));
}
@ -867,8 +849,7 @@ var PadOsd = GObject.registerClass({
this._tipLabel.set_text(_("Press any key to exit"));
}
this._titleLabel.clutter_text.set_markup(
'<span size="larger"><b>%s</b></span>'.format(title));
this._titleLabel.set_text(title);
}
_isEditedAction(type, number, dir) {

View File

@ -214,7 +214,10 @@ var AppMenuButton = GObject.registerClass({
this._onIconThemeChanged.bind(this));
let iconEffect = new Clutter.DesaturateEffect();
this._iconBox = new St.Bin({ style_class: 'app-menu-icon' });
this._iconBox = new St.Bin({
style_class: 'app-menu-icon',
y_align: Clutter.ActorAlign.CENTER,
});
this._iconBox.add_effect(iconEffect);
this._container.add_actor(this._iconBox);
@ -839,8 +842,8 @@ class Panel extends St.Widget {
return [0, 0];
}
vfunc_allocate(box, flags) {
this.set_allocation(box, flags);
vfunc_allocate(box) {
this.set_allocation(box);
let allocWidth = box.x2 - box.x1;
let allocHeight = box.y2 - box.y1;
@ -876,13 +879,13 @@ class Panel extends St.Widget {
childBox.x2 = Math.min(Math.floor(sideWidth),
leftNaturalWidth);
}
this._leftBox.allocate(childBox, flags);
this._leftBox.allocate(childBox);
childBox.x1 = Math.ceil(sideWidth);
childBox.y1 = 0;
childBox.x2 = childBox.x1 + centerWidth;
childBox.y2 = allocHeight;
this._centerBox.allocate(childBox, flags);
this._centerBox.allocate(childBox);
childBox.y1 = 0;
childBox.y2 = allocHeight;
@ -896,7 +899,7 @@ class Panel extends St.Widget {
0);
childBox.x2 = allocWidth;
}
this._rightBox.allocate(childBox, flags);
this._rightBox.allocate(childBox);
let cornerWidth, cornerHeight;
@ -906,7 +909,7 @@ class Panel extends St.Widget {
childBox.x2 = cornerWidth;
childBox.y1 = allocHeight;
childBox.y2 = allocHeight + cornerHeight;
this._leftCorner.allocate(childBox, flags);
this._leftCorner.allocate(childBox);
[, cornerWidth] = this._rightCorner.get_preferred_width(-1);
[, cornerHeight] = this._rightCorner.get_preferred_height(-1);
@ -914,7 +917,7 @@ class Panel extends St.Widget {
childBox.x2 = allocWidth;
childBox.y1 = allocHeight;
childBox.y2 = allocHeight + cornerHeight;
this._rightCorner.allocate(childBox, flags);
this._rightCorner.allocate(childBox);
}
_tryDragWindow(event) {

View File

@ -59,8 +59,8 @@ class ButtonBox extends St.Widget {
return [0, 0];
}
vfunc_allocate(box, flags) {
this.set_allocation(box, flags);
vfunc_allocate(box) {
this.set_allocation(box);
let child = this.get_first_child();
if (!child)
@ -83,7 +83,7 @@ class ButtonBox extends St.Widget {
childBox.y1 = 0;
childBox.y2 = availHeight;
child.allocate(childBox, flags);
child.allocate(childBox);
}
_onDestroy() {

View File

@ -1,7 +1,7 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/* exported ScreenshotService */
const { Clutter, Graphene, Gio, GObject, GLib, Meta, Shell, St } = imports.gi;
const { Clutter, Gio, GObject, GLib, Meta, Shell, St } = imports.gi;
const GrabHelper = imports.ui.grabHelper;
const Lightbox = imports.ui.lightbox;
@ -37,7 +37,9 @@ var ScreenshotService = class {
let sender = invocation.get_sender();
if (this._screenShooter.has(sender) || lockedDown) {
invocation.return_value(GLib.Variant.new('(bs)', [false, '']));
invocation.return_error_literal(
Gio.IOErrorEnum, Gio.IOErrorEnum.BUSY,
'There is an ongoing operation for this sender');
return null;
}
@ -259,15 +261,13 @@ var ScreenshotService = class {
}
async PickColorAsync(params, invocation) {
let pickPixel = new PickPixel();
const screenshot = this._createScreenshot(invocation, false);
if (!screenshot)
return;
const pickPixel = new PickPixel(screenshot);
try {
const coords = await pickPixel.pickAsync();
let screenshot = this._createScreenshot(invocation, false);
if (!screenshot)
return;
const [color] = await screenshot.pick_color(coords.x, coords.y);
const color = await pickPixel.pickAsync();
const { red, green, blue } = color;
const retval = GLib.Variant.new('(a{sv})', [{
color: GLib.Variant.new('(ddd)', [
@ -276,12 +276,13 @@ var ScreenshotService = class {
blue / 255.0,
]),
}]);
this._removeShooterForSender(invocation.get_sender());
invocation.return_value(retval);
} catch (e) {
invocation.return_error_literal(
Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED,
'Operation was cancelled');
} finally {
this._removeShooterForSender(invocation.get_sender());
}
}
};
@ -379,12 +380,145 @@ class SelectArea extends St.Widget {
}
});
var RecolorEffect = GObject.registerClass({
Properties: {
color: GObject.ParamSpec.boxed(
'color', 'color', 'replacement color',
GObject.ParamFlags.WRITABLE,
Clutter.Color.$gtype),
chroma: GObject.ParamSpec.boxed(
'chroma', 'chroma', 'color to replace',
GObject.ParamFlags.WRITABLE,
Clutter.Color.$gtype),
threshold: GObject.ParamSpec.float(
'threshold', 'threshold', 'threshold',
GObject.ParamFlags.WRITABLE,
0.0, 1.0, 0.0),
smoothing: GObject.ParamSpec.float(
'smoothing', 'smoothing', 'smoothing',
GObject.ParamFlags.WRITABLE,
0.0, 1.0, 0.0),
},
}, class RecolorEffect extends Shell.GLSLEffect {
_init(params) {
this._color = new Clutter.Color();
this._chroma = new Clutter.Color();
this._threshold = 0;
this._smoothing = 0;
this._colorLocation = null;
this._chromaLocation = null;
this._thresholdLocation = null;
this._smoothingLocation = null;
super._init(params);
this._colorLocation = this.get_uniform_location('recolor_color');
this._chromaLocation = this.get_uniform_location('chroma_color');
this._thresholdLocation = this.get_uniform_location('threshold');
this._smoothingLocation = this.get_uniform_location('smoothing');
this._updateColorUniform(this._colorLocation, this._color);
this._updateColorUniform(this._chromaLocation, this._chroma);
this._updateFloatUniform(this._thresholdLocation, this._threshold);
this._updateFloatUniform(this._smoothingLocation, this._smoothing);
}
_updateColorUniform(location, color) {
if (!location)
return;
this.set_uniform_float(location,
3, [color.red / 255, color.green / 255, color.blue / 255]);
this.queue_repaint();
}
_updateFloatUniform(location, value) {
if (!location)
return;
this.set_uniform_float(location, 1, [value]);
this.queue_repaint();
}
set color(c) {
if (this._color.equal(c))
return;
this._color = c;
this.notify('color');
this._updateColorUniform(this._colorLocation, this._color);
}
set chroma(c) {
if (this._chroma.equal(c))
return;
this._chroma = c;
this.notify('chroma');
this._updateColorUniform(this._chromaLocation, this._chroma);
}
set threshold(value) {
if (this._threshold === value)
return;
this._threshold = value;
this.notify('threshold');
this._updateFloatUniform(this._thresholdLocation, this._threshold);
}
set smoothing(value) {
if (this._smoothing === value)
return;
this._smoothing = value;
this.notify('smoothing');
this._updateFloatUniform(this._smoothingLocation, this._smoothing);
}
vfunc_build_pipeline() {
// Conversion parameters from https://en.wikipedia.org/wiki/YCbCr
const decl = `
vec3 rgb2yCrCb(vec3 c) { \n
float y = 0.299 * c.r + 0.587 * c.g + 0.114 * c.b; \n
float cr = 0.7133 * (c.r - y); \n
float cb = 0.5643 * (c.b - y); \n
return vec3(y, cr, cb); \n
} \n
\n
uniform vec3 chroma_color; \n
uniform vec3 recolor_color; \n
uniform float threshold; \n
uniform float smoothing; \n`;
const src = `
vec3 mask = rgb2yCrCb(chroma_color.rgb); \n
vec3 yCrCb = rgb2yCrCb(cogl_color_out.rgb); \n
float blend = \n
smoothstep(threshold, \n
threshold + smoothing, \n
distance(yCrCb.gb, mask.gb)); \n
cogl_color_out.rgb = \n
mix(recolor_color, cogl_color_out.rgb, blend); \n`;
this.add_glsl_snippet(Shell.SnippetHook.FRAGMENT, decl, src, false);
}
});
var PickPixel = GObject.registerClass(
class PickPixel extends St.Widget {
_init() {
_init(screenshot) {
super._init({ visible: false, reactive: true });
this._screenshot = screenshot;
this._result = null;
this._color = null;
this._inPick = false;
Main.uiGroup.add_actor(this);
@ -393,16 +527,44 @@ class PickPixel extends St.Widget {
let constraint = new Clutter.BindConstraint({ source: global.stage,
coordinate: Clutter.BindCoordinate.ALL });
this.add_constraint(constraint);
const action = new Clutter.ClickAction();
action.connect('clicked', async () => {
await this._pickColor(...action.get_coords());
this._result = this._color;
this._grabHelper.ungrab();
});
this.add_action(action);
this._recolorEffect = new RecolorEffect({
chroma: new Clutter.Color({
red: 80,
green: 219,
blue: 181,
}),
threshold: 0.04,
smoothing: 0.07,
});
this._previewCursor = new St.Icon({
icon_name: 'color-pick',
icon_size: Meta.prefs_get_cursor_size(),
effect: this._recolorEffect,
visible: false,
});
Main.uiGroup.add_actor(this._previewCursor);
}
async pickAsync() {
global.display.set_cursor(Meta.Cursor.CROSSHAIR);
global.display.set_cursor(Meta.Cursor.BLANK);
Main.uiGroup.set_child_above_sibling(this, null);
this.show();
this._pickColor(...global.get_pointer());
await this._grabHelper.grabAsync({ actor: this });
global.display.set_cursor(Meta.Cursor.DEFAULT);
this._previewCursor.destroy();
GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
this.destroy();
@ -412,10 +574,25 @@ class PickPixel extends St.Widget {
return this._result;
}
vfunc_button_release_event(buttonEvent) {
let { x, y } = buttonEvent;
this._result = new Graphene.Point({ x, y });
this._grabHelper.ungrab();
async _pickColor(x, y) {
if (this._inPick)
return;
this._inPick = true;
this._previewCursor.set_position(x, y);
[this._color] = await this._screenshot.pick_color(x, y);
this._inPick = false;
if (!this._color)
return;
this._recolorEffect.color = this._color;
this._previewCursor.show();
}
vfunc_motion_event(motionEvent) {
const { x, y } = motionEvent;
this._pickColor(x, y);
return Clutter.EVENT_PROPAGATE;
}
});

View File

@ -13,11 +13,10 @@ const Util = imports.misc.util;
const SEARCH_PROVIDERS_SCHEMA = 'org.gnome.desktop.search-providers';
var MAX_LIST_SEARCH_RESULTS_ROWS = 5;
var MAX_GRID_SEARCH_RESULTS_ROWS = 1;
var MaxWidthBox = GObject.registerClass(
class MaxWidthBox extends St.BoxLayout {
vfunc_allocate(box, flags) {
vfunc_allocate(box) {
let themeNode = this.get_theme_node();
let maxWidth = themeNode.get_max_width();
let availWidth = box.x2 - box.x1;
@ -29,7 +28,7 @@ class MaxWidthBox extends St.BoxLayout {
adjustedBox.x2 -= Math.floor(excessWidth / 2);
}
super.vfunc_allocate(adjustedBox, flags);
super.vfunc_allocate(adjustedBox);
}
});
@ -349,18 +348,140 @@ class ListSearchResults extends SearchResultsBase {
}
});
var GridSearchResultsLayout = GObject.registerClass({
Properties: {
'spacing': GObject.ParamSpec.int('spacing', 'Spacing', 'Spacing',
GObject.ParamFlags.READWRITE, 0, GLib.MAXINT32, 0),
},
}, class GridSearchResultsLayout extends Clutter.LayoutManager {
_init() {
super._init();
this._spacing = 0;
}
vfunc_set_container(container) {
this._container = container;
}
vfunc_get_preferred_width(container, forHeight) {
let minWidth = 0;
let natWidth = 0;
let first = true;
for (let child of container) {
if (!child.visible)
continue;
const [childMinWidth, childNatWidth] = child.get_preferred_width(forHeight);
minWidth = Math.max(minWidth, childMinWidth);
natWidth += childNatWidth;
if (first)
first = false;
else
natWidth += this._spacing;
}
return [minWidth, natWidth];
}
vfunc_get_preferred_height(container, forWidth) {
let minHeight = 0;
let natHeight = 0;
for (let child of container) {
if (!child.visible)
continue;
const [childMinHeight, childNatHeight] = child.get_preferred_height(forWidth);
minHeight = Math.max(minHeight, childMinHeight);
natHeight = Math.max(natHeight, childNatHeight);
}
return [minHeight, natHeight];
}
vfunc_allocate(container, box) {
const width = box.get_width();
const childBox = new Clutter.ActorBox();
childBox.x1 = 0;
childBox.y1 = 0;
let first = true;
for (let child of container) {
if (!child.visible)
continue;
if (first)
first = false;
else
childBox.x1 += this._spacing;
const [childWidth] = child.get_preferred_width(-1);
const [childHeight] = child.get_preferred_height(-1);
childBox.set_size(childWidth, childHeight);
if (childBox.x1 + childWidth > width)
return;
child.allocate(childBox);
childBox.x1 += childWidth;
}
}
columnsForWidth(width) {
if (!this._container)
return -1;
const [minWidth] = this.get_preferred_width(this._container, -1);
if (minWidth === 0)
return -1;
let nCols = 0;
while (width > minWidth) {
width -= minWidth;
if (nCols > 0)
width -= this._spacing;
nCols++;
}
return nCols;
}
get spacing() {
return this._spacing;
}
set spacing(v) {
if (this._spacing === v)
return;
this._spacing = v;
this.layout_changed();
}
});
var GridSearchResults = GObject.registerClass(
class GridSearchResults extends SearchResultsBase {
_init(provider, resultsView) {
super._init(provider, resultsView);
this._grid = new IconGrid.IconGrid({ rowLimit: MAX_GRID_SEARCH_RESULTS_ROWS,
xAlign: St.Align.START });
this._grid = new St.Widget({ style_class: 'grid-search-results' });
this._grid.layout_manager = new GridSearchResultsLayout();
this._bin = new St.Bin({ x_align: Clutter.ActorAlign.CENTER });
this._bin.set_child(this._grid);
this._grid.connect('style-changed', () => {
const node = this._grid.get_theme_node();
this._grid.layout_manager.spacing = node.get_length('spacing');
});
this._resultDisplayBin.set_child(this._bin);
this._resultDisplayBin.set_child(new St.Bin({
child: this._grid,
x_align: Clutter.ActorAlign.CENTER,
}));
}
_onDestroy() {
@ -400,12 +521,11 @@ class GridSearchResults extends SearchResultsBase {
if (width == 0)
return -1;
let nCols = this._grid.columnsForWidth(width);
return nCols * this._grid.getRowLimit();
return this._grid.layout_manager.columnsForWidth(width);
}
_clearResultDisplay() {
this._grid.removeAll();
this._grid.remove_all_children();
}
_createResultDisplay(meta) {
@ -414,14 +534,15 @@ class GridSearchResults extends SearchResultsBase {
}
_addItem(display) {
this._grid.addItem(display);
this._grid.add_child(display);
}
getFirstResult() {
if (this._grid.visibleItemsCount() > 0)
return this._grid.getItemAtIndex(0);
else
return null;
for (let child of this._grid) {
if (child.visible)
return child;
}
return null;
}
});

View File

@ -48,7 +48,9 @@ class Indicator extends PanelMenu.SystemIndicator {
this._item.connect('key-press-event', (actor, event) => {
return this._slider.emit('key-press-event', event);
});
this._item.connect('scroll-event', (actor, event) => {
return this._slider.emit('scroll-event', event);
});
}
_sliderChanged() {

View File

@ -805,8 +805,8 @@ class InputSourceIndicatorContainer extends St.Widget {
}, [0, 0]);
}
vfunc_allocate(box, flags) {
this.set_allocation(box, flags);
vfunc_allocate(box) {
this.set_allocation(box);
// translate box to (0, 0)
box.x2 -= box.x1;
@ -815,7 +815,7 @@ class InputSourceIndicatorContainer extends St.Widget {
box.y1 = 0;
this.get_children().forEach(c => {
c.allocate_align_fill(box, 0.5, 0.5, false, false, flags);
c.allocate_align_fill(box, 0.5, 0.5, false, false);
});
}
});

View File

@ -112,12 +112,12 @@ class Indicator extends PanelMenu.SystemIndicator {
let chargingState = this._proxy.State == UPower.DeviceState.CHARGING
? '-charging' : '';
let fillLevel = 10 * Math.floor(this._proxy.Percentage / 10);
let icon;
if (this._proxy.State == UPower.DeviceState.FULLY_CHARGED ||
fillLevel === 100)
icon = 'battery-level-100-charged-symbolic';
else
icon = 'battery-level-%d%s-symbolic'.format(fillLevel, chargingState);
const charged =
this._proxy.State === UPower.DeviceState.FULLY_CHARGED ||
(this._proxy.State === UPower.DeviceState.CHARGING && fillLevel === 100);
const icon = charged
? 'battery-level-100-charged-symbolic'
: 'battery-level-%d%s-symbolic'.format(fillLevel, chargingState);
// Make sure we fall back to fallback-icon-name and not GThemedIcon's
// default fallbacks
@ -139,7 +139,7 @@ class Indicator extends PanelMenu.SystemIndicator {
label = _("%d\u2009%%").format(100);
else
label = _("%d\u2009%%").format(this._proxy.Percentage);
this._percentageLabel.clutter_text.set_markup('<span size="smaller">' + label + '</span>');
this._percentageLabel.text = label;
// The status label
this._item.label.text = this._getStatus();

View File

@ -56,6 +56,9 @@ var StreamSlider = class {
this.item.connect('key-press-event', (actor, event) => {
return this._slider.emit('key-press-event', event);
});
this.item.connect('scroll-event', (actor, event) => {
return this._slider.emit('scroll-event', event);
});
this._stream = null;
this._volumeCancellable = null;

View File

@ -66,8 +66,8 @@ var SwitcherPopup = GObject.registerClass({
this._disableHover();
}
vfunc_allocate(box, flags) {
this.set_allocation(box, flags);
vfunc_allocate(box) {
this.set_allocation(box);
let childBox = new Clutter.ActorBox();
let primary = Main.layoutManager.primaryMonitor;
@ -84,7 +84,7 @@ var SwitcherPopup = GObject.registerClass({
childBox.x2 = Math.min(primary.x + primary.width - rightPadding, childBox.x1 + childNaturalWidth);
childBox.y1 = primary.y + Math.floor((primary.height - childNaturalHeight) / 2);
childBox.y2 = childBox.y1 + childNaturalHeight;
this._switcherList.allocate(childBox, flags);
this._switcherList.allocate(childBox);
}
_initialSelection(backward, _binding) {
@ -591,8 +591,8 @@ var SwitcherList = GObject.registerClass({
return themeNode.adjust_preferred_height(maxChildMin, maxChildNat);
}
vfunc_allocate(box, flags) {
this.set_allocation(box, flags);
vfunc_allocate(box) {
this.set_allocation(box);
let contentBox = this.get_theme_node().get_content_box(box);
let width = contentBox.x2 - contentBox.x1;
@ -606,7 +606,7 @@ var SwitcherList = GObject.registerClass({
let childBox = new Clutter.ActorBox();
let scrollable = minListWidth > width;
this._scrollView.allocate(contentBox, flags);
this._scrollView.allocate(contentBox);
let arrowWidth = Math.floor(leftPadding / 3);
let arrowHeight = arrowWidth * 2;
@ -614,7 +614,7 @@ var SwitcherList = GObject.registerClass({
childBox.y1 = this.height / 2 - arrowWidth;
childBox.x2 = childBox.x1 + arrowWidth;
childBox.y2 = childBox.y1 + arrowHeight;
this._leftArrow.allocate(childBox, flags);
this._leftArrow.allocate(childBox);
this._leftArrow.opacity = this._scrollableLeft && scrollable ? 255 : 0;
arrowWidth = Math.floor(rightPadding / 3);
@ -623,7 +623,7 @@ var SwitcherList = GObject.registerClass({
childBox.y1 = this.height / 2 - arrowWidth;
childBox.x2 = childBox.x1 + arrowWidth;
childBox.y2 = childBox.y1 + arrowHeight;
this._rightArrow.allocate(childBox, flags);
this._rightArrow.allocate(childBox);
this._rightArrow.opacity = this._scrollableRight && scrollable ? 255 : 0;
}
});

View File

@ -405,7 +405,7 @@ class UnlockDialogLayout extends Clutter.LayoutManager {
return this._stack.get_preferred_height(forWidth);
}
vfunc_allocate(container, box, flags) {
vfunc_allocate(container, box) {
let [width, height] = box.get_size();
let tenthOfHeight = height / 10.0;
@ -432,7 +432,7 @@ class UnlockDialogLayout extends Clutter.LayoutManager {
actorBox.x2 = columnX1 + columnWidth;
actorBox.y2 = actorBox.y1 + maxNotificationsHeight;
this._notifications.allocate(actorBox, flags);
this._notifications.allocate(actorBox);
// Authentication Box
let stackY = Math.min(
@ -444,7 +444,7 @@ class UnlockDialogLayout extends Clutter.LayoutManager {
actorBox.x2 = columnX1 + columnWidth;
actorBox.y2 = stackY + stackHeight;
this._stack.allocate(actorBox, flags);
this._stack.allocate(actorBox);
// Switch User button
if (this._switchUserButton.visible) {
@ -461,7 +461,7 @@ class UnlockDialogLayout extends Clutter.LayoutManager {
actorBox.x2 = actorBox.x1 + natWidth;
actorBox.y2 = actorBox.y1 + natHeight;
this._switchUserButton.allocate(actorBox, flags);
this._switchUserButton.allocate(actorBox);
}
}
});

View File

@ -144,8 +144,8 @@ class UserWidgetLabel extends St.Widget {
}
}
vfunc_allocate(box, flags) {
this.set_allocation(box, flags);
vfunc_allocate(box) {
this.set_allocation(box);
let availWidth = box.x2 - box.x1;
let availHeight = box.y2 - box.y1;
@ -164,7 +164,7 @@ class UserWidgetLabel extends St.Widget {
childBox.x2 = availWidth;
childBox.y2 = availHeight;
this._currentLabel.allocate(childBox, flags);
this._currentLabel.allocate(childBox);
}
vfunc_paint(paintContext) {

View File

@ -900,35 +900,47 @@ var WindowManager = class {
global.display.connect('init-xserver', (display, task) => {
IBusManager.getIBusManager().restartDaemon(['--xim']);
Shell.util_start_systemd_unit('gsd-xsettings.target', 'fail');
/* Leave this watchdog timeout so don't block indefinitely here */
let timeoutId = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 5, () => {
Gio.DBus.session.unwatch_name(watchId);
log('Warning: Failed to start gsd-xsettings');
task.return_boolean(true);
timeoutId = 0;
return GLib.SOURCE_REMOVE;
});
try {
if (!Shell.util_start_systemd_unit('gsd-xsettings.target', 'fail'))
log('Not starting gsd-xsettings; waiting for gnome-session to do so');
/* When gsd-xsettings daemon is started, we are good to resume */
let watchId = Gio.DBus.session.watch_name(
'org.gnome.SettingsDaemon.XSettings',
Gio.BusNameWatcherFlags.NONE,
() => {
/* Leave this watchdog timeout so don't block indefinitely here */
let timeoutId = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 5, () => {
Gio.DBus.session.unwatch_name(watchId);
if (timeoutId > 0) {
task.return_boolean(true);
GLib.source_remove(timeoutId);
}
},
null);
log('Warning: Failed to start gsd-xsettings');
task.return_boolean(true);
timeoutId = 0;
return GLib.SOURCE_REMOVE;
});
/* When gsd-xsettings daemon is started, we are good to resume */
let watchId = Gio.DBus.session.watch_name(
'org.gnome.SettingsDaemon.XSettings',
Gio.BusNameWatcherFlags.NONE,
() => {
Gio.DBus.session.unwatch_name(watchId);
if (timeoutId > 0) {
task.return_boolean(true);
GLib.source_remove(timeoutId);
}
},
null);
} catch (e) {
log('Error starting gsd-xsettings: %s'.format(e.message));
task.return_boolean(true);
}
return true;
});
global.display.connect('x11-display-closing', () => {
if (!Meta.is_wayland_compositor())
return;
Shell.util_stop_systemd_unit('gsd-xsettings.target', 'fail');
try {
Shell.util_stop_systemd_unit('gsd-xsettings.target', 'fail');
} catch (e) {
log('Error stopping gsd-xsettings: %s'.format(e.message));
}
IBusManager.getIBusManager().restartDaemon();
});

View File

@ -51,35 +51,22 @@ class WindowCloneLayout extends Clutter.LayoutManager {
this.layout_changed();
}
_makeBoxForWindow(window) {
// We need to adjust the position of the actor because of the
// consequences of invisible borders -- in reality, the texture
// has an extra set of "padding" around it that we need to trim
// down.
// 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(bufferRect.x - this._boundingBox.x,
bufferRect.y - this._boundingBox.y);
box.set_size(bufferRect.width, bufferRect.height);
return box;
}
vfunc_get_preferred_height(_container, _forWidth) {
return [this._boundingBox.height, this._boundingBox.height];
return [0, this._boundingBox.height];
}
vfunc_get_preferred_width(_container, _forHeight) {
return [this._boundingBox.width, this._boundingBox.width];
return [0, this._boundingBox.width];
}
vfunc_allocate(container, box, flags) {
vfunc_allocate(container, box) {
// If the scale isn't 1, we weren't allocated our preferred size
// and have to scale the children allocations accordingly.
const scaleX = box.get_width() / this._boundingBox.width;
const scaleY = box.get_height() / this._boundingBox.height;
const childBox = new Clutter.ActorBox();
container.get_children().forEach(child => {
let realWindow;
if (child == container._windowClone)
@ -87,8 +74,20 @@ class WindowCloneLayout extends Clutter.LayoutManager {
else
realWindow = child.source;
child.allocate(this._makeBoxForWindow(realWindow.meta_window),
flags);
const bufferRect = realWindow.meta_window.get_buffer_rect();
childBox.set_origin(
bufferRect.x - this._boundingBox.x,
bufferRect.y - this._boundingBox.y);
const [, , natWidth, natHeight] = child.get_preferred_size();
childBox.set_size(natWidth, natHeight);
childBox.x1 *= scaleX;
childBox.x2 *= scaleX;
childBox.y1 *= scaleY;
childBox.y2 *= scaleY;
child.allocate(childBox);
});
}
});
@ -155,7 +154,8 @@ var WindowClone = GObject.registerClass({
this._updateAttachedDialogs();
this._computeBoundingBox();
this.set_translation(this._boundingBox.x, this._boundingBox.y, 0);
this.x = this._boundingBox.x;
this.y = this._boundingBox.y;
this._computeWindowCenter();
@ -240,6 +240,9 @@ var WindowClone = GObject.registerClass({
this._onMetaWindowSizeChanged();
});
Shell.util_set_hidden_from_pick(clone, true);
this.add_child(clone);
}
@ -263,18 +266,6 @@ var WindowClone = GObject.registerClass({
return this._boundingBox;
}
get width() {
return this._boundingBox.width;
}
get height() {
return this._boundingBox.height;
}
getOriginalPosition() {
return [this._boundingBox.x, this._boundingBox.y];
}
_computeBoundingBox() {
let rect = this.metaWindow.get_frame_rect();
@ -868,7 +859,7 @@ var LayoutStrategy = class {
// thumbnails is much more important to preserve than the width of
// them, so two windows with equal height, but maybe differering
// widths line up.
let ratio = window.height / this._monitor.height;
let ratio = window.boundingBox.height / this._monitor.height;
// The purpose of this manipulation here is to prevent windows
// from getting too small. For something like a calculator window,
@ -988,11 +979,12 @@ var LayoutStrategy = class {
let window = row.windows[j];
let s = scale * this._computeWindowScale(window) * row.additionalScale;
let cellWidth = window.width * s;
let cellHeight = window.height * s;
let cellWidth = window.boundingBox.width * s;
let cellHeight = window.boundingBox.height * s;
s = Math.min(s, WINDOW_CLONE_MAXIMUM_SCALE);
let cloneWidth = window.width * s;
let cloneWidth = window.boundingBox.width * s;
const cloneHeight = window.boundingBox.height * s;
let cloneX = x + (cellWidth - cloneWidth) / 2;
let cloneY = row.y + row.height * row.additionalScale - cellHeight + compensation;
@ -1001,7 +993,7 @@ var LayoutStrategy = class {
cloneX = Math.floor(cloneX);
cloneY = Math.floor(cloneY);
slots.push([cloneX, cloneY, s, window]);
slots.push([cloneX, cloneY, cloneWidth, cloneHeight, window]);
x += cellWidth + this._columnSpacing;
}
}
@ -1046,7 +1038,7 @@ var UnalignedLayoutStrategy = class extends LayoutStrategy {
for (let i = 0; i < windows.length; i++) {
let window = windows[i];
let s = this._computeWindowScale(window);
totalWidth += window.width * s;
totalWidth += window.boundingBox.width * s;
}
let idealRowWidth = totalWidth / numRows;
@ -1064,8 +1056,8 @@ var UnalignedLayoutStrategy = class extends LayoutStrategy {
for (; windowIdx < sortedWindows.length; windowIdx++) {
let window = sortedWindows[windowIdx];
let s = this._computeWindowScale(window);
let width = window.width * s;
let height = window.height * s;
let width = window.boundingBox.width * s;
let height = window.boundingBox.height * s;
row.fullHeight = Math.max(row.fullHeight, height);
// either new width is < idealWidth or new width is nearer from idealWidth then oldWidth
@ -1340,7 +1332,7 @@ class Workspace extends St.Widget {
for (let i = 0; i < slots.length; i++) {
let slot = slots[i];
let [x, y, scale, clone] = slot;
const [x, y, cellWidth, cellHeight, clone] = slot;
clone.slotId = i;
@ -1349,8 +1341,8 @@ class Workspace extends St.Widget {
if (clone.inDrag)
continue;
let cloneWidth = clone.width * scale;
let cloneHeight = clone.height * scale;
const cloneWidth = cellWidth;
const cloneHeight = cellHeight;
clone.slot = [x, y, cloneWidth, cloneHeight];
let cloneCenter = x + cloneWidth / 2;
@ -1365,10 +1357,10 @@ class Workspace extends St.Widget {
if (!clone.positioned) {
// This window appeared after the overview was already up
// Grow the clone from the center of the slot
clone.translation_x = x + cloneWidth / 2;
clone.translation_y = y + cloneHeight / 2;
clone.scale_x = 0;
clone.scale_y = 0;
clone.x = x + cloneWidth / 2;
clone.y = y + cloneHeight / 2;
clone.width = 0;
clone.height = 0;
clone.positioned = true;
}
@ -1379,10 +1371,10 @@ class Workspace extends St.Widget {
* can be scaled up later */
if (initialPositioning) {
clone.opacity = 0;
clone.scale_x = 0;
clone.scale_y = 0;
clone.translation_x = x;
clone.translation_y = y;
clone.x = x;
clone.y = y;
clone.width = cloneWidth;
clone.height = cloneHeight;
}
clone.ease({
@ -1392,12 +1384,12 @@ class Workspace extends St.Widget {
});
}
this._animateClone(clone, clone.overlay, x, y, scale);
this._animateClone(clone, clone.overlay, x, y, cloneWidth, cloneHeight);
} else {
// cancel any active tweens (otherwise they might override our changes)
clone.remove_all_transitions();
clone.set_translation(x, y, 0);
clone.set_scale(scale, scale);
clone.set_position(x, y);
clone.set_size(cloneWidth, cloneHeight);
clone.set_opacity(255);
clone.overlay.relayout(false);
this._showWindowOverlay(clone, clone.overlay);
@ -1424,12 +1416,10 @@ class Workspace extends St.Widget {
}
}
_animateClone(clone, overlay, x, y, scale) {
_animateClone(clone, overlay, x, y, width, height) {
clone.ease({
translation_x: x,
translation_y: y,
scale_x: scale,
scale_y: scale,
x, y,
width, height,
duration: Overview.ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => {
@ -1486,11 +1476,14 @@ class Workspace extends St.Widget {
// this point.)
if (win) {
let [stageX, stageY] = clone.get_transformed_position();
let [stageWidth] = clone.get_transformed_size();
const [transformedWidth, transformedHeight] =
clone.get_transformed_size();
win._overviewHint = {
x: stageX,
y: stageY,
scale: stageWidth / clone.width,
width: transformedWidth,
height: transformedHeight,
};
}
clone.destroy();
@ -1566,14 +1559,15 @@ class Workspace extends St.Widget {
if (win._overviewHint) {
let x = win._overviewHint.x - this.x;
let y = win._overviewHint.y - this.y;
let scale = win._overviewHint.scale;
const width = win._overviewHint.width;
const height = win._overviewHint.height;
delete win._overviewHint;
clone.slot = [x, y, clone.width * scale, clone.height * scale];
clone.slot = [x, y, width, height];
clone.positioned = true;
clone.set_translation(x, y, 0);
clone.set_scale(scale, scale);
clone.set_position(x, y);
clone.set_size(width, height);
clone.overlay.relayout(false);
}
@ -1724,11 +1718,10 @@ class Workspace extends St.Widget {
overlay.hide();
if (clone.metaWindow.showing_on_its_workspace()) {
let [origX, origY] = clone.getOriginalPosition();
clone.scale_x = 1;
clone.scale_y = 1;
clone.translation_x = origX;
clone.translation_y = origY;
clone.x = clone.boundingBox.x;
clone.y = clone.boundingBox.y;
clone.width = clone.boundingBox.width;
clone.height = clone.boundingBox.height;
clone.ease({
opacity,
duration,
@ -1776,12 +1769,11 @@ class Workspace extends St.Widget {
overlay.hide();
if (clone.metaWindow.showing_on_its_workspace()) {
let [origX, origY] = clone.getOriginalPosition();
clone.ease({
translation_x: origX,
translation_y: origY,
scale_x: 1,
scale_y: 1,
x: clone.boundingBox.x,
y: clone.boundingBox.y,
width: clone.boundingBox.width,
height: clone.boundingBox.height,
opacity: 255,
duration: Overview.ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
@ -1789,8 +1781,8 @@ class Workspace extends St.Widget {
} else {
// The window is hidden, make it shrink and fade it out
clone.ease({
scale_x: 0,
scale_y: 0,
width: 0,
height: 0,
opacity: 0,
duration: Overview.ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
@ -2035,7 +2027,8 @@ class Workspace extends St.Widget {
win._overviewHint = {
x: actor.x,
y: actor.y,
scale: actor.scale_x,
width: actor.width,
heigth: actor.height,
};
let metaWindow = win.get_meta_window();

View File

@ -86,8 +86,8 @@ class WorkspaceSwitcherPopupList extends St.Widget {
return this._getSizeForOppositeOrientation();
}
vfunc_allocate(box, flags) {
this.set_allocation(box, flags);
vfunc_allocate(box) {
this.set_allocation(box);
let themeNode = this.get_theme_node();
box = themeNode.get_content_box(box);
@ -111,7 +111,7 @@ class WorkspaceSwitcherPopupList extends St.Widget {
} else {
y += this._childHeight + this._itemSpacing;
}
child.allocate(childBox, flags);
child.allocate(childBox);
}
}
});

View File

@ -1204,8 +1204,8 @@ var ThumbnailsBox = GObject.registerClass({
this.queue_relayout();
}
vfunc_allocate(box, flags) {
this.set_allocation(box, flags);
vfunc_allocate(box) {
this.set_allocation(box);
let rtl = Clutter.get_default_text_direction() == Clutter.TextDirection.RTL;
@ -1299,7 +1299,7 @@ var ThumbnailsBox = GObject.registerClass({
childBox.x2 = x2;
childBox.y1 = Math.round(y);
childBox.y2 = Math.round(y + placeholderHeight);
this._dropPlaceholder.allocate(childBox, flags);
this._dropPlaceholder.allocate(childBox);
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => {
this._dropPlaceholder.show();
});
@ -1331,7 +1331,7 @@ var ThumbnailsBox = GObject.registerClass({
childBox.y2 = y1 + portholeHeight;
thumbnail.set_scale(roundedHScale, roundedVScale);
thumbnail.allocate(childBox, flags);
thumbnail.allocate(childBox);
// We round the collapsing portion so that we don't get thumbnails resizing
// during an animation due to differences in rounded, but leave the uncollapsed
@ -1355,6 +1355,6 @@ var ThumbnailsBox = GObject.registerClass({
childBox.x2 += indicatorRightFullBorder;
childBox.y1 = indicatorY1 - indicatorTopFullBorder;
childBox.y2 = indicatorY2 + indicatorBottomFullBorder;
this._indicator.allocate(childBox, flags);
this._indicator.allocate(childBox);
}
});

View File

@ -8,6 +8,7 @@ const SwipeTracker = imports.ui.swipeTracker;
const Workspace = imports.ui.workspace;
var WORKSPACE_SWITCH_TIME = 250;
var SCROLL_TIMEOUT_TIME = 150;
var AnimationType = {
ZOOM: 0,
@ -815,7 +816,7 @@ class WorkspacesDisplay extends St.Widget {
this._canScroll = false;
this._scrollTimeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT,
WORKSPACE_SWITCH_TIME, () => {
SCROLL_TIMEOUT_TIME, () => {
this._canScroll = true;
this._scrollTimeoutId = 0;
return GLib.SOURCE_REMOVE;

View File

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

View File

@ -56,6 +56,7 @@ nl
nn
oc
or
os
pa
pl
pt

1303
po/ca.po

File diff suppressed because it is too large Load Diff

439
po/de.po
View File

@ -22,9 +22,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: 2020-03-19 14:34+0000\n"
"PO-Revision-Date: 2020-03-20 06:42+0100\n"
"Last-Translator: Wolfgang Stoeggl <c72578@yahoo.de>\n"
"POT-Creation-Date: 2020-05-15 03:04+0000\n"
"PO-Revision-Date: 2020-05-24 00:19+0200\n"
"Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
"Language-Team: Deutsch <gnome-de@gnome.org>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
@ -409,68 +409,12 @@ msgstr ""
msgid "Network Login"
msgstr "Netzwerkanmeldung"
#: js/extensionPrefs/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
#: js/extensionPrefs/data/org.gnome.Extensions.desktop.in.in:4
#: js/extensionPrefs/js/main.js:242
#: js/extensionPrefs/data/ui/extensions-window.ui:61
msgid "Extensions"
msgstr "Erweiterungen"
#: js/extensionPrefs/data/metainfo/org.gnome.Extensions.metainfo.xml.in:6
#: js/extensionPrefs/js/main.js:243
msgid "Manage your GNOME Extensions"
msgstr "Ihre GNOME-Erweiterungen verwalten"
#: js/extensionPrefs/data/metainfo/org.gnome.Extensions.metainfo.xml.in:35
msgid ""
"GNOME Extensions handles updating extensions, configuring extension "
"preferences and removing or disabling unwanted extensions."
msgstr ""
"GNOME-Erweiterungen dient der Aktualisierung von Erweiterungen, dem "
"Konfigurieren der Voreinstellungen von Erweiterungen und dem Entfernen oder "
"Deaktivieren nicht gewünschter Erweiterungen."
#: js/extensionPrefs/data/org.gnome.Extensions.desktop.in.in:7
msgid "Configure GNOME Shell Extensions"
msgstr "GNOME-Shell-Erweiterungen einrichten"
#: js/extensionPrefs/js/main.js:164
#, javascript-format
msgid "Remove “%s”?"
msgstr "»%s« entfernen?"
#: js/extensionPrefs/js/main.js:165
msgid ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
msgstr ""
"Wenn Sie die Erweiterung entfernen, müssen Sie sie erneut herunterladen, um "
"sie wieder zu aktivieren"
#: js/extensionPrefs/js/main.js:168 js/gdm/authPrompt.js:135
#: js/ui/audioDeviceSelection.js:57 js/ui/components/networkAgent.js:109
#: js/ui/components/polkitAgent.js:139 js/ui/endSessionDialog.js:374
#: js/ui/extensionDownloader.js:177 js/ui/shellMountOperation.js:376
#: js/ui/shellMountOperation.js:386 js/ui/status/network.js:913
msgid "Cancel"
msgstr "Abbrechen"
#: js/extensionPrefs/js/main.js:169
msgid "Remove"
msgstr "Entfernen"
#: js/extensionPrefs/js/main.js:241
msgid "translator-credits"
msgstr ""
"Tim Sabsch <tim@sabsch.com>\n"
"Christian Kirbach <christian.kirbach@gmail.com>, 2020"
#: js/extensionPrefs/js/main.js:285
#: js/extensionPrefs/data/ui/extensions-window.ui:223
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:36
#: subprojects/extensions-app/data/ui/extensions-window.ui:224
msgid "Somethings gone wrong"
msgstr "Etwas ist schiefgelaufen"
#: js/extensionPrefs/js/main.js:292
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:48
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 "
@ -480,106 +424,25 @@ msgstr ""
"Erweiterung können nicht angezeigt werden. Wir empfehlen, dass Sie diesen "
"Fehler den Autoren der Erweiterung melden."
#: js/extensionPrefs/js/main.js:299
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:82
msgid "Technical Details"
msgstr "Technische Details"
#: js/extensionPrefs/js/main.js:334
msgid "Copy Error"
msgstr "Kopierfehler"
#: js/extensionPrefs/js/main.js:361
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:165
msgid "Homepage"
msgstr "Homepage"
#: js/extensionPrefs/js/main.js:362
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:166
msgid "Visit extension homepage"
msgstr "Internetseite der Erweiterung besuchen"
#: js/extensionPrefs/js/main.js:479
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
msgstr[0] "%d Erweiterung wird bei der nächsten Anmeldung aktualisiert."
msgstr[1] "%d Erweiterungen werden bei der nächsten Anmeldung aktualisiert."
#: js/extensionPrefs/data/ui/extension-row.ui:100
#: subprojects/extensions-tool/src/command-create.c:211
#: subprojects/extensions-tool/src/main.c:173
msgid "Description"
msgstr "Beschreibung"
#: js/extensionPrefs/data/ui/extension-row.ui:123
#: subprojects/extensions-tool/src/main.c:185
msgid "Version"
msgstr "Version"
#: js/extensionPrefs/data/ui/extension-row.ui:151
msgid "Author"
msgstr "Autor"
#: js/extensionPrefs/data/ui/extension-row.ui:175
msgid "Website"
msgstr "Webseite"
#: js/extensionPrefs/data/ui/extension-row.ui:192
msgid "Remove…"
msgstr "Entfernen …"
#: js/extensionPrefs/data/ui/extensions-window.ui:8
msgid "Help"
msgstr "Hilfe"
#: js/extensionPrefs/data/ui/extensions-window.ui:12
msgid "About Extensions"
msgstr "Info zu Erweiterungen"
#: js/extensionPrefs/data/ui/extensions-window.ui:27
msgid ""
"To find and add extensions, visit <a href=\"https://extensions.gnome.org"
"\">extensions.gnome.org</a>."
msgstr ""
"Besuchen Sie <a href=\"https://extensions.gnome.org\">extensions.gnome.org</"
"a>, um Erweiterungen zu finden und hinzuzufügen."
#: js/extensionPrefs/data/ui/extensions-window.ui:35
msgid "Warning"
msgstr "Warnung"
#: js/extensionPrefs/data/ui/extensions-window.ui:46
msgid ""
"Extensions can cause system issues, including performance problems. If you "
"encounter problems with your system, it is recommended to disable all "
"extensions."
msgstr ""
"Erweiterungen können Probleme am System verursachen, darunter auch "
"Leistungsprobleme. Sollten Sie auf Probleme mit Ihrem System stoßen, wird "
"die Deaktivierung aller Erweiterungen empfohlen."
#: js/extensionPrefs/data/ui/extensions-window.ui:134
msgid "Manually Installed"
msgstr "Manuell installiert"
#: js/extensionPrefs/data/ui/extensions-window.ui:158
msgid "Built-In"
msgstr "Mitgeliefert"
#: js/extensionPrefs/data/ui/extensions-window.ui:199
msgid "No Installed Extensions"
msgstr "Keine installierten Erweiterungen"
#: js/extensionPrefs/data/ui/extensions-window.ui:235
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."
msgstr ""
"Tut uns sehr leid, wir konnten keine Liste der installierten Erweiterungen "
"aufstellen. Stellen Sie sicher, dass Sie in GNOME angemeldet sind und "
"versuchen Sie es dann erneut."
#: js/extensionPrefs/data/ui/extensions-window.ui:288
msgid "Log Out…"
msgstr "Abmelden …"
#: js/gdm/authPrompt.js:135 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:109 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:372 js/ui/extensionDownloader.js:181
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:913 subprojects/extensions-app/js/main.js:148
msgid "Cancel"
msgstr "Abbrechen"
#. Cisco LEAP
#: js/gdm/authPrompt.js:237 js/ui/components/networkAgent.js:204
@ -631,71 +494,71 @@ msgid "(or swipe finger)"
msgstr "(oder wischen Sie mit einem Finger)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:89
#: js/misc/systemActions.js:93
msgctxt "search-result"
msgid "Power Off"
msgstr "Ausschalten"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:92
#: js/misc/systemActions.js:96
msgid "power off;shutdown;reboot;restart;halt;stop"
msgstr "ausschalten;herunterfahren;neustarten;halten;stoppen"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:97
#: js/misc/systemActions.js:101
msgctxt "search-result"
msgid "Lock Screen"
msgstr "Bildschirm sperren"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:100
#: js/misc/systemActions.js:104
msgid "lock screen"
msgstr "Bildschirm sperren"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:105
#: js/misc/systemActions.js:109
msgctxt "search-result"
msgid "Log Out"
msgstr "Abmelden"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:108
#: js/misc/systemActions.js:112
msgid "logout;log out;sign off"
msgstr "abmelden;verlassen"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:113
#: js/misc/systemActions.js:117
msgctxt "search-result"
msgid "Suspend"
msgstr "Bereitschaft"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:116
#: js/misc/systemActions.js:120
msgid "suspend;sleep"
msgstr "Bereitschaft;Schlafen"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:121
#: js/misc/systemActions.js:125
msgctxt "search-result"
msgid "Switch User"
msgstr "Benutzer wechseln"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:124
#: js/misc/systemActions.js:128
msgid "switch user"
msgstr "Benutzer wechseln"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:131
#: js/misc/systemActions.js:135
msgid "lock orientation;unlock orientation;screen;rotation"
msgstr "Hochformat;Querformat;sperren;entsperren;Bildschirm;Drehung;drehen"
#: js/misc/systemActions.js:251
#: js/misc/systemActions.js:255
msgctxt "search-result"
msgid "Unlock Screen Rotation"
msgstr "Bildschirmdrehung entsperren"
#: js/misc/systemActions.js:252
#: js/misc/systemActions.js:256
msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Bildschirmdrehung sperren"
@ -861,54 +724,54 @@ msgstr "Zugriff verhindern"
msgid "Grant Access"
msgstr "Zugriff gewähren"
#: js/ui/appDisplay.js:898
#: js/ui/appDisplay.js:939
msgid "Unnamed Folder"
msgstr "Unbenannter Ordner"
#: js/ui/appDisplay.js:921
#: js/ui/appDisplay.js:962
msgid "Frequently used applications will appear here"
msgstr "Häufig genutzte Anwendungen erscheinen hier"
#: js/ui/appDisplay.js:1056
#: js/ui/appDisplay.js:1097
msgid "Frequent"
msgstr "Häufig"
#: js/ui/appDisplay.js:1063
#: js/ui/appDisplay.js:1104
msgid "All"
msgstr "Alle"
# Fensterüberschrift
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2446 js/ui/panel.js:75
#: js/ui/appDisplay.js:2480 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Offene Fenster"
#: js/ui/appDisplay.js:2466 js/ui/panel.js:82
#: js/ui/appDisplay.js:2500 js/ui/panel.js:82
msgid "New Window"
msgstr "Neues Fenster"
#: js/ui/appDisplay.js:2477
#: js/ui/appDisplay.js:2511
msgid "Launch using Dedicated Graphics Card"
msgstr "Mit dedizierter Grafikkarte starten"
#: js/ui/appDisplay.js:2505 js/ui/dash.js:239
#: js/ui/appDisplay.js:2539 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Aus Favoriten entfernen"
#: js/ui/appDisplay.js:2511
#: js/ui/appDisplay.js:2545
msgid "Add to Favorites"
msgstr "Zu Favoriten hinzufügen"
#: js/ui/appDisplay.js:2521 js/ui/panel.js:93
#: js/ui/appDisplay.js:2555 js/ui/panel.js:93
msgid "Show Details"
msgstr "Details anzeigen"
#: js/ui/appFavorites.js:152
#: js/ui/appFavorites.js:153
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s wurde zu Ihren Favoriten hinzugefügt."
#: js/ui/appFavorites.js:185
#: js/ui/appFavorites.js:186
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s wurde aus Ihren Favoriten entfernt."
@ -929,7 +792,7 @@ msgstr "Kopfhörer"
msgid "Headset"
msgstr "Headset"
#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:269
#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:270
msgid "Microphone"
msgstr "Mikrofon"
@ -1070,7 +933,7 @@ msgstr "Keine Termine"
msgid "Do Not Disturb"
msgstr "Nicht stören"
#: js/ui/calendar.js:1171
#: js/ui/calendar.js:1176
msgid "Clear"
msgstr "Leeren"
@ -1223,7 +1086,7 @@ msgstr ""
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: js/ui/components/telepathyClient.js:787
#: js/ui/components/telepathyClient.js:823
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s heißt jetzt %s"
@ -1268,23 +1131,23 @@ msgstr "Weltuhren hinzufügen …"
msgid "World Clocks"
msgstr "Weltuhren"
#: js/ui/dateMenu.js:279
#: js/ui/dateMenu.js:289
msgid "Weather"
msgstr "Wetter"
#: js/ui/dateMenu.js:394
#: js/ui/dateMenu.js:418
msgid "Select a location…"
msgstr "Ort auswählen …"
#: js/ui/dateMenu.js:407
#: js/ui/dateMenu.js:426
msgid "Loading…"
msgstr "Wird geladen …"
#: js/ui/dateMenu.js:417
#: js/ui/dateMenu.js:436
msgid "Go online for weather information"
msgstr "Gehen Sie Online, um Wetterinformationen beziehen zu können"
#: js/ui/dateMenu.js:419
#: js/ui/dateMenu.js:438
msgid "Weather information is currently unavailable"
msgstr "Wetterinformationen sind momentan nicht verfügbar"
@ -1425,35 +1288,35 @@ msgid "Other users are logged in"
msgstr "Andere Benutzer sind angemeldet"
#. Translators: Remote here refers to a remote session, like a ssh login
#: js/ui/endSessionDialog.js:588
#: js/ui/endSessionDialog.js:586
#, javascript-format
msgid "%s (remote)"
msgstr "%s (Entfernt)"
#. Translators: Console here refers to a tty like a VT console
#: js/ui/endSessionDialog.js:591
#: js/ui/endSessionDialog.js:589
#, javascript-format
msgid "%s (console)"
msgstr "%s (Konsole)"
#: js/ui/extensionDownloader.js:181
#: js/ui/extensionDownloader.js:185
msgid "Install"
msgstr "Installieren"
#: js/ui/extensionDownloader.js:187
#: js/ui/extensionDownloader.js:191
msgid "Install Extension"
msgstr "Erweiterung installieren"
#: js/ui/extensionDownloader.js:188
#: js/ui/extensionDownloader.js:192
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "»%s« von extensions.gnome.org herunterladen und installieren?"
#: js/ui/extensionSystem.js:228
#: js/ui/extensionSystem.js:252
msgid "Extension Updates Available"
msgstr "Aktualisierungen für Erweiterungen verfügbar"
#: js/ui/extensionSystem.js:229
#: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed."
msgstr "Aktualisierungen für Erweiterungen stehen bereit zur Installation."
@ -1602,11 +1465,11 @@ msgstr "Quelle zeigen"
msgid "Web Page"
msgstr "Webseite"
#: js/ui/main.js:274
#: js/ui/main.js:279
msgid "Logged in as a privileged user"
msgstr "Als privilegierter Benutzer angemeldet"
#: js/ui/main.js:275
#: js/ui/main.js:280
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@ -1615,23 +1478,23 @@ msgstr ""
"Sicherheitsgründen unterlassen werden. Falls möglich, melden Sie sich bitte "
"als normaler Benutzer an."
#: js/ui/main.js:281
#: js/ui/main.js:319
msgid "Screen Lock disabled"
msgstr "Bildschirmsperre deaktiviert"
#: js/ui/main.js:282
#: js/ui/main.js:320
msgid "Screen Locking requires the GNOME display manager."
msgstr "Die Sperrung des Bildschirms erfordert den GNOME Display-Manager."
#: js/ui/messageTray.js:1554
#: js/ui/messageTray.js:1548
msgid "System Information"
msgstr "Systeminformationen"
#: js/ui/mpris.js:199
#: js/ui/mpris.js:204
msgid "Unknown artist"
msgstr "Unbekannter Künstler"
#: js/ui/mpris.js:209
#: js/ui/mpris.js:214
msgid "Unknown title"
msgstr "Unbekannter Titel"
@ -1703,16 +1566,16 @@ msgstr "Beenden"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: js/ui/panel.js:434
#: js/ui/panel.js:437
msgid "Activities"
msgstr "Aktivitäten"
#: js/ui/panel.js:713
#: js/ui/panel.js:716
msgctxt "System menu in the top bar"
msgid "System"
msgstr "System"
#: js/ui/panel.js:826
#: js/ui/panel.js:829
msgid "Top Bar"
msgstr "Oberes Panel"
@ -1743,11 +1606,11 @@ msgstr "GNOME muss den Bildschirm sperren"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: js/ui/screenShield.js:244 js/ui/screenShield.js:598
#: js/ui/screenShield.js:244 js/ui/screenShield.js:601
msgid "Unable to lock"
msgstr "Sperrung fehlgeschlagen"
#: js/ui/screenShield.js:245 js/ui/screenShield.js:599
#: js/ui/screenShield.js:245 js/ui/screenShield.js:602
msgid "Lock was blocked by an application"
msgstr "Sperrung wurde von einer Anwendung blockiert"
@ -1830,13 +1693,13 @@ msgid "The PIM must be a number or empty."
msgstr "Die PIM muss eine Nummer oder leer sein."
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:469
#: js/ui/shellMountOperation.js:465
#, javascript-format
msgid "Unable to start %s"
msgstr "%s konnte nicht gestartet werden"
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:471
#: js/ui/shellMountOperation.js:467
#, javascript-format
msgid "Couldnt find the %s application"
msgstr "Die Anwendung %s konnte nicht gefunden werden"
@ -2320,11 +2183,11 @@ msgstr "Thunderbolt-Legitimierungsfehler"
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "Das Thunderbolt-Gerät %s konnte nicht legitimiert werden"
#: js/ui/status/volume.js:150
#: js/ui/status/volume.js:151
msgid "Volume changed"
msgstr "Lautstärke geändert"
#: js/ui/status/volume.js:221
#: js/ui/status/volume.js:222
msgid "Volume"
msgstr "Lautstärke"
@ -2358,23 +2221,23 @@ msgstr "Nur eingebaut"
#. Translators: This is a time format for a date in
#. long format
#: js/ui/unlockDialog.js:370
#: js/ui/unlockDialog.js:371
msgid "%A %B %-d"
msgstr "%A, %d. %B"
#: js/ui/unlockDialog.js:376
#: js/ui/unlockDialog.js:377
msgid "Swipe up to unlock"
msgstr "Nach oben wischen zum Entsperren"
#: js/ui/unlockDialog.js:377
#: js/ui/unlockDialog.js:378
msgid "Click or press a key to unlock"
msgstr "Durch Mausklick oder Tastendruck entsperren"
#: js/ui/unlockDialog.js:549
#: js/ui/unlockDialog.js:550
msgid "Unlock Window"
msgstr "Fenster entsperren"
#: js/ui/unlockDialog.js:558
#: js/ui/unlockDialog.js:559
msgid "Log in as another user"
msgstr "Als anderer Benutzer anmelden"
@ -2407,7 +2270,7 @@ msgstr "Zurücksetzen"
msgid "Keep Changes"
msgstr "Beibehalten"
#: js/ui/windowManager.js:85
#: js/ui/windowManager.js:86
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@ -2417,7 +2280,7 @@ msgstr[1] ""
#. 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:544
#: js/ui/windowManager.js:546
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@ -2512,12 +2375,12 @@ msgstr ""
msgid "List possible modes"
msgstr "Die möglichen Modi auflisten"
#: src/shell-app.c:279
#: src/shell-app.c:286
msgctxt "program"
msgid "Unknown"
msgstr "Unbekannt"
#: src/shell-app.c:530
#: src/shell-app.c:537
#, c-format
msgid "Failed to launch “%s”"
msgstr "»%s« konnte nicht gestartet werden"
@ -2534,6 +2397,143 @@ msgstr "Es muss ein Passwort angegeben werden"
msgid "Authentication dialog was dismissed by the user"
msgstr "Der Dialog zur Anmeldung wurde vom Benutzer geschlossen"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:4
#: subprojects/extensions-app/js/main.js:182
#: subprojects/extensions-app/data/ui/extensions-window.ui:61
msgid "Extensions"
msgstr "Erweiterungen"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:6
#: subprojects/extensions-app/js/main.js:183
msgid "Manage your GNOME Extensions"
msgstr "Ihre GNOME-Erweiterungen verwalten"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:35
msgid ""
"GNOME Extensions handles updating extensions, configuring extension "
"preferences and removing or disabling unwanted extensions."
msgstr ""
"GNOME-Erweiterungen dient der Aktualisierung von Erweiterungen, dem "
"Konfigurieren der Voreinstellungen von Erweiterungen und dem Entfernen oder "
"Deaktivieren nicht gewünschter Erweiterungen."
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:7
msgid "Configure GNOME Shell Extensions"
msgstr "GNOME-Shell-Erweiterungen einrichten"
#: subprojects/extensions-app/js/main.js:144
#, javascript-format
msgid "Remove “%s”?"
msgstr "»%s« entfernen?"
#: subprojects/extensions-app/js/main.js:145
msgid ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
msgstr ""
"Wenn Sie die Erweiterung entfernen, müssen Sie sie erneut herunterladen, um "
"sie wieder zu aktivieren"
#: subprojects/extensions-app/js/main.js:149
msgid "Remove"
msgstr "Entfernen"
#: subprojects/extensions-app/js/main.js:181
msgid "translator-credits"
msgstr ""
"Tim Sabsch <tim@sabsch.com>\n"
"Christian Kirbach <christian.kirbach@gmail.com>, 2020"
#: subprojects/extensions-app/js/main.js:316
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
msgstr[0] "%d Erweiterung wird bei der nächsten Anmeldung aktualisiert."
msgstr[1] "%d Erweiterungen werden bei der nächsten Anmeldung aktualisiert."
#: subprojects/extensions-app/data/ui/extension-row.ui:100
#: subprojects/extensions-tool/src/command-create.c:211
#: subprojects/extensions-tool/src/main.c:173
msgid "Description"
msgstr "Beschreibung"
#: subprojects/extensions-app/data/ui/extension-row.ui:123
#: subprojects/extensions-tool/src/main.c:185
msgid "Version"
msgstr "Version"
#: subprojects/extensions-app/data/ui/extension-row.ui:151
msgid "Author"
msgstr "Autor"
#: subprojects/extensions-app/data/ui/extension-row.ui:175
msgid "Website"
msgstr "Webseite"
#: subprojects/extensions-app/data/ui/extension-row.ui:192
msgid "Remove…"
msgstr "Entfernen …"
#: subprojects/extensions-app/data/ui/extensions-window.ui:8
msgid "Help"
msgstr "Hilfe"
#: subprojects/extensions-app/data/ui/extensions-window.ui:12
msgid "About Extensions"
msgstr "Info zu Erweiterungen"
#: subprojects/extensions-app/data/ui/extensions-window.ui:27
msgid ""
"To find and add extensions, visit <a href=\"https://extensions.gnome.org"
"\">extensions.gnome.org</a>."
msgstr ""
"Besuchen Sie <a href=\"https://extensions.gnome.org\">extensions.gnome.org</"
"a>, um Erweiterungen zu finden und hinzuzufügen."
#: subprojects/extensions-app/data/ui/extensions-window.ui:35
msgid "Warning"
msgstr "Warnung"
#: subprojects/extensions-app/data/ui/extensions-window.ui:46
msgid ""
"Extensions can cause system issues, including performance problems. If you "
"encounter problems with your system, it is recommended to disable all "
"extensions."
msgstr ""
"Erweiterungen können Probleme am System verursachen, darunter auch "
"Leistungsprobleme. Sollten Sie auf Probleme mit Ihrem System stoßen, wird "
"die Deaktivierung aller Erweiterungen empfohlen."
#: subprojects/extensions-app/data/ui/extensions-window.ui:135
msgid "Manually Installed"
msgstr "Manuell installiert"
#: subprojects/extensions-app/data/ui/extensions-window.ui:159
msgid "Built-In"
msgstr "Mitgeliefert"
#: subprojects/extensions-app/data/ui/extensions-window.ui:200
msgid "No Installed Extensions"
msgstr "Keine installierten Erweiterungen"
#: subprojects/extensions-app/data/ui/extensions-window.ui:236
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."
msgstr ""
"Tut uns sehr leid, wir konnten keine Liste der installierten Erweiterungen "
"aufstellen. Stellen Sie sicher, dass Sie in GNOME angemeldet sind und "
"versuchen Sie es dann erneut."
#: subprojects/extensions-app/data/ui/extensions-window.ui:273
msgid "Extension Updates Ready"
msgstr "Aktualisierungen für Erweiterungen stehen bereit"
#: subprojects/extensions-app/data/ui/extensions-window.ui:289
msgid "Log Out…"
msgstr "Abmelden …"
#. Translators: a file path to an extension directory
#: subprojects/extensions-tool/src/command-create.c:125
#, c-format
@ -2872,6 +2872,9 @@ msgstr[1] "%u Eingänge"
msgid "System Sounds"
msgstr "Systemklänge"
#~ msgid "Copy Error"
#~ msgstr "Kopierfehler"
#~ msgid "Username…"
#~ msgstr "Benutzername …"

View File

@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-02-21 09:52+0000\n"
"PO-Revision-Date: 2020-02-23 12:49+0000\n"
"POT-Creation-Date: 2020-03-31 07:15+0000\n"
"PO-Revision-Date: 2020-05-06 19:54+0100\n"
"Last-Translator: Bruce Cowan <bruce@bcowan.me.uk>\n"
"Language-Team: English - United Kingdom <en@li.org>\n"
"Language: en_GB\n"
@ -19,7 +19,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: Gtranslator 3.34.0\n"
"X-Generator: Gtranslator 3.36.0\n"
"X-Project-Style: gnome\n"
#: data/50-gnome-shell-system.xml:6
@ -46,15 +46,6 @@ msgstr "Show all applications"
msgid "Open the application menu"
msgstr "Open the application menu"
#: data/org.gnome.Extensions.desktop.in.in:4 js/extensionPrefs/main.js:218
#: js/extensionPrefs/ui/extensions-window.ui:61
msgid "Extensions"
msgstr "Extensions"
#: data/org.gnome.Extensions.desktop.in.in:7
msgid "Configure GNOME Shell Extensions"
msgstr "Configure GNOME Shell Extensions"
#: data/org.gnome.Shell.desktop.in.in:4
msgid "GNOME Shell"
msgstr "GNOME Shell"
@ -395,49 +386,12 @@ msgstr "Delay focus changes in mouse mode until the pointer stops moving"
msgid "Network Login"
msgstr "Network Login"
#: js/extensionPrefs/main.js:140
#, javascript-format
msgid "Remove “%s”?"
msgstr "Remove “%s”?"
#: js/extensionPrefs/main.js:141
msgid ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
msgstr ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
#: js/extensionPrefs/main.js:144 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:107 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:374 js/ui/extensionDownloader.js:165
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:913
msgid "Cancel"
msgstr "Cancel"
#: js/extensionPrefs/main.js:145
msgid "Remove"
msgstr "Remove"
#: js/extensionPrefs/main.js:217
msgid "translator-credits"
msgstr ""
"Philip Withnall <philip@tecnocode.co.uk>\n"
"Bruce Cowan <bruce@bcowan.me.uk>\n"
"Chris Leonard <cjl@laptop.org>\n"
"David King <amigadave@amigadave.com>\n"
"Zander Brown <zbrown@gnome.org>"
#: js/extensionPrefs/main.js:219
msgid "Manage your GNOME Extensions"
msgstr "Manage your GNOME Extensions"
#: js/extensionPrefs/main.js:261 js/extensionPrefs/ui/extensions-window.ui:222
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:36
#: subprojects/extensions-app/data/ui/extensions-window.ui:223
msgid "Somethings gone wrong"
msgstr "Somethings gone wrong"
#: js/extensionPrefs/main.js:268
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:48
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 "
@ -447,113 +401,32 @@ msgstr ""
"extension cant be displayed. We recommend that you report the issue to the "
"extension authors."
#: js/extensionPrefs/main.js:275
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:82
msgid "Technical Details"
msgstr "Technical Details"
#: js/extensionPrefs/main.js:310
msgid "Copy Error"
msgstr "Copy Error"
#: js/extensionPrefs/main.js:337
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:165
msgid "Homepage"
msgstr "Homepage"
#: js/extensionPrefs/main.js:338
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:166
msgid "Visit extension homepage"
msgstr "Visit extension homepage"
#: js/extensionPrefs/main.js:449
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
msgstr[0] "%d extension will be updated on next login."
msgstr[1] "%d extensions will be updated on next login."
#: js/extensionPrefs/ui/extension-row.ui:100
#: subprojects/extensions-tool/src/command-create.c:211
#: subprojects/extensions-tool/src/main.c:173
msgid "Description"
msgstr "Description"
#: js/extensionPrefs/ui/extension-row.ui:123
#: subprojects/extensions-tool/src/main.c:185
msgid "Version"
msgstr "Version"
#: js/extensionPrefs/ui/extension-row.ui:151
msgid "Author"
msgstr "Author"
#: js/extensionPrefs/ui/extension-row.ui:175
msgid "Website"
msgstr "Website"
#: js/extensionPrefs/ui/extension-row.ui:192
msgid "Remove…"
msgstr "Remove…"
#: js/extensionPrefs/ui/extensions-window.ui:8
msgid "Help"
msgstr "Help"
#: js/extensionPrefs/ui/extensions-window.ui:12
msgid "About Extensions"
msgstr "About Extensions"
#: js/extensionPrefs/ui/extensions-window.ui:27
msgid ""
"To find and add extensions, visit <a href=\"https://extensions.gnome.org"
"\">extensions.gnome.org</a>."
msgstr ""
"To find and add extensions, visit <a href=\"https://extensions.gnome.org"
"\">extensions.gnome.org</a>."
#: js/extensionPrefs/ui/extensions-window.ui:35
msgid "Warning"
msgstr "Warning"
#: js/extensionPrefs/ui/extensions-window.ui:46
msgid ""
"Extensions can cause system issues, including performance problems. If you "
"encounter problems with your system, it is recommended to disable all "
"extensions."
msgstr ""
"Extensions can cause system issues, including performance problems. If you "
"encounter problems with your system, it is recommended to disable all "
"extensions."
#: js/extensionPrefs/ui/extensions-window.ui:133
msgid "Manually Installed"
msgstr "Manually Installed"
#: js/extensionPrefs/ui/extensions-window.ui:157
msgid "Built-In"
msgstr "Built-In"
#: js/extensionPrefs/ui/extensions-window.ui:198
msgid "No Installed Extensions"
msgstr "No Installed Extensions"
#: js/extensionPrefs/ui/extensions-window.ui:234
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."
msgstr ""
"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."
#: js/extensionPrefs/ui/extensions-window.ui:287
msgid "Log Out…"
msgstr "Log Out…"
#: js/gdm/authPrompt.js:135 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:109 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:374 js/ui/extensionDownloader.js:181
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:913 subprojects/extensions-app/js/main.js:148
msgid "Cancel"
msgstr "Cancel"
#. Cisco LEAP
#: js/gdm/authPrompt.js:236 js/ui/components/networkAgent.js:202
#: js/ui/components/networkAgent.js:218 js/ui/components/networkAgent.js:242
#: js/ui/components/networkAgent.js:263 js/ui/components/networkAgent.js:283
#: js/ui/components/networkAgent.js:293 js/ui/components/polkitAgent.js:277
#: js/gdm/authPrompt.js:237 js/ui/components/networkAgent.js:204
#: js/ui/components/networkAgent.js:220 js/ui/components/networkAgent.js:244
#: js/ui/components/networkAgent.js:265 js/ui/components/networkAgent.js:285
#: js/ui/components/networkAgent.js:295 js/ui/components/polkitAgent.js:277
#: js/ui/shellMountOperation.js:326
#| msgid "Password:"
msgid "Password"
msgstr "Password"
@ -575,9 +448,8 @@ msgstr "(e.g., user or %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: js/gdm/loginDialog.js:917 js/ui/components/networkAgent.js:238
#: js/ui/components/networkAgent.js:261 js/ui/components/networkAgent.js:279
#| msgid "Username: "
#: js/gdm/loginDialog.js:917 js/ui/components/networkAgent.js:240
#: js/ui/components/networkAgent.js:263 js/ui/components/networkAgent.js:281
msgid "Username"
msgstr "Username"
@ -758,7 +630,7 @@ msgstr "%A, %H%M"
#: js/misc/util.js:255
#, no-c-format
msgid "%B %-d, %H%M"
msgstr "%d %B, %H%M"
msgstr "%-d %B, %H%M"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
@ -766,7 +638,7 @@ msgstr "%d %B, %H%M"
#: js/misc/util.js:261
#, no-c-format
msgid "%B %-d %Y, %H%M"
msgstr "%d %B %Y, %H%M"
msgstr "%-d %B %Y, %H%M"
#. Show only the time if date is on today
#. eslint-disable-line no-lonely-if
@ -795,7 +667,7 @@ msgstr "%A, %l:%M %p"
#: js/misc/util.js:284
#, no-c-format
msgid "%B %-d, %l%M %p"
msgstr "%d %B, %l%M %p"
msgstr "%-d %B, %l%M %p"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
@ -803,7 +675,7 @@ msgstr "%d %B, %l%M %p"
#: js/misc/util.js:290
#, no-c-format
msgid "%B %-d %Y, %l%M %p"
msgstr "%d %B %Y, %l%M %p"
msgstr "%-d %B %Y, %l%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login window
#: js/portalHelper/main.js:41
@ -828,44 +700,44 @@ msgstr "Deny Access"
msgid "Grant Access"
msgstr "Grant Access"
#: js/ui/appDisplay.js:906
#: js/ui/appDisplay.js:932
msgid "Unnamed Folder"
msgstr "Unnamed Folder"
#: js/ui/appDisplay.js:929
#: js/ui/appDisplay.js:955
msgid "Frequently used applications will appear here"
msgstr "Frequently used applications will appear here"
#: js/ui/appDisplay.js:1064
#: js/ui/appDisplay.js:1090
msgid "Frequent"
msgstr "Frequent"
#: js/ui/appDisplay.js:1071
#: js/ui/appDisplay.js:1097
msgid "All"
msgstr "All"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2450 js/ui/panel.js:75
#: js/ui/appDisplay.js:2473 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Open Windows"
#: js/ui/appDisplay.js:2470 js/ui/panel.js:82
#: js/ui/appDisplay.js:2493 js/ui/panel.js:82
msgid "New Window"
msgstr "New Window"
#: js/ui/appDisplay.js:2481
#: js/ui/appDisplay.js:2504
msgid "Launch using Dedicated Graphics Card"
msgstr "Launch using Dedicated Graphics Card"
#: js/ui/appDisplay.js:2509 js/ui/dash.js:239
#: js/ui/appDisplay.js:2532 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Remove from Favourites"
#: js/ui/appDisplay.js:2515
#: js/ui/appDisplay.js:2538
msgid "Add to Favorites"
msgstr "Add to Favourites"
#: js/ui/appDisplay.js:2525 js/ui/panel.js:93
#: js/ui/appDisplay.js:2548 js/ui/panel.js:93
msgid "Show Details"
msgstr "Show Details"
@ -895,7 +767,7 @@ msgstr "Headphones"
msgid "Headset"
msgstr "Headset"
#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:269
#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:270
msgid "Microphone"
msgstr "Microphone"
@ -1013,30 +885,30 @@ msgid "All Day"
msgstr "All Day"
#. Translators: Shown on calendar heading when selected day occurs on current year
#: js/ui/calendar.js:867
#: js/ui/calendar.js:868
msgctxt "calendar heading"
msgid "%A, %B %-d"
msgstr "%A, %d %B"
msgstr "%A, %-d %B"
#. Translators: Shown on calendar heading when selected day occurs on different year
#: js/ui/calendar.js:870
#: js/ui/calendar.js:871
msgctxt "calendar heading"
msgid "%A, %B %-d, %Y"
msgstr "%A, %d %B, %Y"
msgstr "%A, %-d %B, %Y"
#: js/ui/calendar.js:1096
#: js/ui/calendar.js:1100
msgid "No Notifications"
msgstr "No Notifications"
#: js/ui/calendar.js:1099
#: js/ui/calendar.js:1103
msgid "No Events"
msgstr "No Events"
#: js/ui/calendar.js:1153
#: js/ui/calendar.js:1157
msgid "Do Not Disturb"
msgstr "Do Not Disturb"
#: js/ui/calendar.js:1167
#: js/ui/calendar.js:1176
msgid "Clear"
msgstr "Clear"
@ -1083,43 +955,39 @@ msgstr "The installed udisks version does not support the PIM setting"
msgid "Open with %s"
msgstr "Open with %s"
#: js/ui/components/networkAgent.js:89
#: js/ui/components/networkAgent.js:91
msgid ""
"Alternatively you can connect by pushing the “WPS” button on your router."
msgstr ""
"Alternatively you can connect by pushing the “WPS” button on your router."
#: js/ui/components/networkAgent.js:101 js/ui/status/network.js:223
#: js/ui/components/networkAgent.js:103 js/ui/status/network.js:223
#: js/ui/status/network.js:314 js/ui/status/network.js:916
msgid "Connect"
msgstr "Connect"
#: js/ui/components/networkAgent.js:208
#| msgid "Key: "
#: js/ui/components/networkAgent.js:210
msgid "Key"
msgstr "Key"
#: js/ui/components/networkAgent.js:246 js/ui/components/networkAgent.js:269
#| msgid "Private key password: "
#: js/ui/components/networkAgent.js:248 js/ui/components/networkAgent.js:271
msgid "Private key password"
msgstr "Private key password"
#: js/ui/components/networkAgent.js:267
#| msgid "Identity: "
#: js/ui/components/networkAgent.js:269
msgid "Identity"
msgstr "Identity"
#: js/ui/components/networkAgent.js:281
#| msgid "Service: "
#: js/ui/components/networkAgent.js:283
msgid "Service"
msgstr "Service"
#: js/ui/components/networkAgent.js:310 js/ui/components/networkAgent.js:338
#: js/ui/components/networkAgent.js:685 js/ui/components/networkAgent.js:706
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:340
#: js/ui/components/networkAgent.js:679 js/ui/components/networkAgent.js:700
msgid "Authentication required"
msgstr "Authentication required"
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:686
#: js/ui/components/networkAgent.js:313 js/ui/components/networkAgent.js:680
#, javascript-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@ -1128,44 +996,42 @@ msgstr ""
"Passwords or encryption keys are required to access the wireless network "
"“%s”."
#: js/ui/components/networkAgent.js:315 js/ui/components/networkAgent.js:690
#: js/ui/components/networkAgent.js:317 js/ui/components/networkAgent.js:684
msgid "Wired 802.1X authentication"
msgstr "Wired 802.1X authentication"
#: js/ui/components/networkAgent.js:317
#| msgid "Network name: "
#: js/ui/components/networkAgent.js:319
msgid "Network name"
msgstr "Network name"
#: js/ui/components/networkAgent.js:322 js/ui/components/networkAgent.js:694
#: js/ui/components/networkAgent.js:324 js/ui/components/networkAgent.js:688
msgid "DSL authentication"
msgstr "DSL authentication"
#: js/ui/components/networkAgent.js:329 js/ui/components/networkAgent.js:699
#: js/ui/components/networkAgent.js:331 js/ui/components/networkAgent.js:693
msgid "PIN code required"
msgstr "PIN code required"
#: js/ui/components/networkAgent.js:330 js/ui/components/networkAgent.js:700
#: js/ui/components/networkAgent.js:332 js/ui/components/networkAgent.js:694
msgid "PIN code is needed for the mobile broadband device"
msgstr "PIN code is needed for the mobile broadband device"
#: js/ui/components/networkAgent.js:331
#| msgid "PIN: "
#: js/ui/components/networkAgent.js:333
msgid "PIN"
msgstr "PIN"
#: js/ui/components/networkAgent.js:339 js/ui/components/networkAgent.js:691
#: js/ui/components/networkAgent.js:695 js/ui/components/networkAgent.js:707
#: js/ui/components/networkAgent.js:711
#: js/ui/components/networkAgent.js:341 js/ui/components/networkAgent.js:685
#: js/ui/components/networkAgent.js:689 js/ui/components/networkAgent.js:701
#: js/ui/components/networkAgent.js:705
#, javascript-format
msgid "A password is required to connect to “%s”."
msgstr "A password is required to connect to “%s”."
#: js/ui/components/networkAgent.js:674 js/ui/status/network.js:1691
#: js/ui/components/networkAgent.js:668 js/ui/status/network.js:1691
msgid "Network Manager"
msgstr "Network Manager"
#: js/ui/components/networkAgent.js:710
#: js/ui/components/networkAgent.js:704
msgid "VPN password"
msgstr "VPN password"
@ -1191,7 +1057,7 @@ msgstr "Sorry, that didnt work. Please try again."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: js/ui/components/telepathyClient.js:787
#: js/ui/components/telepathyClient.js:823
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s is now known as %s"
@ -1217,7 +1083,7 @@ msgstr "Dash"
#.
#: js/ui/dateMenu.js:75
msgid "%B %-d %Y"
msgstr "%e %B %Y"
msgstr "%-d %B %Y"
#. Translators: This is the accessible name of the date button shown
#. * below the time in the shell; it should combine the weekday and the
@ -1235,106 +1101,106 @@ msgstr "Add world clocks…"
msgid "World Clocks"
msgstr "World Clocks"
#: js/ui/dateMenu.js:276
#: js/ui/dateMenu.js:289
msgid "Weather"
msgstr "Weather"
#: js/ui/dateMenu.js:391
#: js/ui/dateMenu.js:418
msgid "Select a location…"
msgstr "Select a location…"
#: js/ui/dateMenu.js:404
#: js/ui/dateMenu.js:426
msgid "Loading…"
msgstr "Loading…"
#: js/ui/dateMenu.js:414
#: js/ui/dateMenu.js:436
msgid "Go online for weather information"
msgstr "Go online for weather information"
#: js/ui/dateMenu.js:416
#: js/ui/dateMenu.js:438
msgid "Weather information is currently unavailable"
msgstr "Weather information is currently unavailable"
#: js/ui/endSessionDialog.js:37
#: js/ui/endSessionDialog.js:39
#, javascript-format
msgctxt "title"
msgid "Log Out %s"
msgstr "Log Out %s"
#: js/ui/endSessionDialog.js:38
#: js/ui/endSessionDialog.js:40
msgctxt "title"
msgid "Log Out"
msgstr "Log Out"
#: js/ui/endSessionDialog.js:40
#: js/ui/endSessionDialog.js:42
#, javascript-format
msgid "%s will be logged out automatically in %d second."
msgid_plural "%s will be logged out automatically in %d seconds."
msgstr[0] "%s will be logged out automatically in %d second."
msgstr[1] "%s will be logged out automatically in %d seconds."
#: js/ui/endSessionDialog.js:45
#: js/ui/endSessionDialog.js:47
#, javascript-format
msgid "You will be logged out automatically in %d second."
msgid_plural "You will be logged out automatically in %d seconds."
msgstr[0] "You will be logged out automatically in %d second."
msgstr[1] "You will be logged out automatically in %d seconds."
#: js/ui/endSessionDialog.js:51
#: js/ui/endSessionDialog.js:53
msgctxt "button"
msgid "Log Out"
msgstr "Log Out"
#: js/ui/endSessionDialog.js:56
#: js/ui/endSessionDialog.js:58
msgctxt "title"
msgid "Power Off"
msgstr "Power Off"
#: js/ui/endSessionDialog.js:57
#: js/ui/endSessionDialog.js:59
msgctxt "title"
msgid "Install Updates & Power Off"
msgstr "Install Updates & Power Off"
#: js/ui/endSessionDialog.js:59
#: js/ui/endSessionDialog.js:61
#, javascript-format
msgid "The system will power off automatically in %d second."
msgid_plural "The system will power off automatically in %d seconds."
msgstr[0] "The system will power off automatically in %d second."
msgstr[1] "The system will power off automatically in %d seconds."
#: js/ui/endSessionDialog.js:63
#: js/ui/endSessionDialog.js:65
msgctxt "checkbox"
msgid "Install pending software updates"
msgstr "Install pending software updates"
#: js/ui/endSessionDialog.js:66 js/ui/endSessionDialog.js:82
#: js/ui/endSessionDialog.js:68 js/ui/endSessionDialog.js:84
msgctxt "button"
msgid "Restart"
msgstr "Restart"
#: js/ui/endSessionDialog.js:68
#: js/ui/endSessionDialog.js:70
msgctxt "button"
msgid "Power Off"
msgstr "Power Off"
#: js/ui/endSessionDialog.js:74
#: js/ui/endSessionDialog.js:76
msgctxt "title"
msgid "Restart"
msgstr "Restart"
#: js/ui/endSessionDialog.js:76
#: js/ui/endSessionDialog.js:78
#, javascript-format
msgid "The system will restart automatically in %d second."
msgid_plural "The system will restart automatically in %d seconds."
msgstr[0] "The system will restart automatically in %d second."
msgstr[1] "The system will restart automatically in %d seconds."
#: js/ui/endSessionDialog.js:89
#: js/ui/endSessionDialog.js:91
msgctxt "title"
msgid "Restart & Install Updates"
msgstr "Restart & Install Updates"
#: js/ui/endSessionDialog.js:91
#: js/ui/endSessionDialog.js:93
#, javascript-format
msgid "The system will automatically restart and install updates in %d second."
msgid_plural ""
@ -1344,22 +1210,22 @@ msgstr[0] ""
msgstr[1] ""
"The system will automatically restart and install updates in %d seconds."
#: js/ui/endSessionDialog.js:97 js/ui/endSessionDialog.js:116
#: js/ui/endSessionDialog.js:99 js/ui/endSessionDialog.js:118
msgctxt "button"
msgid "Restart &amp; Install"
msgstr "Restart &amp; Install"
#: js/ui/endSessionDialog.js:98
#: js/ui/endSessionDialog.js:100
msgctxt "button"
msgid "Install &amp; Power Off"
msgstr "Install &amp; Power Off"
#: js/ui/endSessionDialog.js:99
#: js/ui/endSessionDialog.js:101
msgctxt "checkbox"
msgid "Power off after updates are installed"
msgstr "Power off after updates are installed"
#: js/ui/endSessionDialog.js:106
#: js/ui/endSessionDialog.js:108
msgctxt "title"
msgid "Restart & Install Upgrade"
msgstr "Restart & Install Upgrade"
@ -1367,7 +1233,7 @@ msgstr "Restart & Install Upgrade"
#. Translators: This is the text displayed for system upgrades in the
#. shut down dialog. First %s gets replaced with the distro name and
#. second %s with the distro version to upgrade to
#: js/ui/endSessionDialog.js:111
#: js/ui/endSessionDialog.js:113
#, javascript-format
msgid ""
"%s %s will be installed after restart. Upgrade installation can take a long "
@ -1376,15 +1242,15 @@ msgstr ""
"%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."
#: js/ui/endSessionDialog.js:259
#: js/ui/endSessionDialog.js:261
msgid "Running on battery power: Please plug in before installing updates."
msgstr "Running on battery power: Please plug in before installing updates."
#: js/ui/endSessionDialog.js:268
#: js/ui/endSessionDialog.js:270
msgid "Some applications are busy or have unsaved work"
msgstr "Some applications are busy or have unsaved work"
#: js/ui/endSessionDialog.js:273
#: js/ui/endSessionDialog.js:275
msgid "Other users are logged in"
msgstr "Other users are logged in"
@ -1400,24 +1266,24 @@ msgstr "%s (remote)"
msgid "%s (console)"
msgstr "%s (console)"
#: js/ui/extensionDownloader.js:169
#: js/ui/extensionDownloader.js:185
msgid "Install"
msgstr "Install"
#: js/ui/extensionDownloader.js:175
#: js/ui/extensionDownloader.js:191
msgid "Install Extension"
msgstr "Install Extension"
#: js/ui/extensionDownloader.js:176
#: js/ui/extensionDownloader.js:192
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Download and install “%s” from extensions.gnome.org?"
#: js/ui/extensionSystem.js:228
#: js/ui/extensionSystem.js:233
msgid "Extension Updates Available"
msgstr "Extension Updates Available"
#: js/ui/extensionSystem.js:229
#: js/ui/extensionSystem.js:234
msgid "Extension updates are ready to be installed."
msgstr "Extension updates are ready to be installed."
@ -1564,11 +1430,11 @@ msgstr "View Source"
msgid "Web Page"
msgstr "Web Page"
#: js/ui/main.js:269
#: js/ui/main.js:277
msgid "Logged in as a privileged user"
msgstr "Logged in as a privileged user"
#: js/ui/main.js:270
#: js/ui/main.js:278
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@ -1576,15 +1442,15 @@ msgstr ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
#: js/ui/main.js:276
#: js/ui/main.js:317
msgid "Screen Lock disabled"
msgstr "Screen Lock disabled"
#: js/ui/main.js:277
#: js/ui/main.js:318
msgid "Screen Locking requires the GNOME display manager."
msgstr "Screen Locking requires the GNOME display manager."
#: js/ui/messageTray.js:1554
#: js/ui/messageTray.js:1551
msgid "System Information"
msgstr "System Information"
@ -1611,7 +1477,6 @@ msgstr "Overview"
#. active; it should not exceed ~30
#. characters.
#: js/ui/overview.js:107
#| msgid "Type to search…"
msgid "Type to search"
msgstr "Type to search"
@ -1669,12 +1534,12 @@ msgstr "Quit"
msgid "Activities"
msgstr "Activities"
#: js/ui/panel.js:707
#: js/ui/panel.js:713
msgctxt "System menu in the top bar"
msgid "System"
msgstr "System"
#: js/ui/panel.js:820
#: js/ui/panel.js:826
msgid "Top Bar"
msgstr "Top Bar"
@ -1769,7 +1634,6 @@ msgstr ""
"To unlock a volume that uses keyfiles, use the <i>%s</i> utility instead."
#: js/ui/shellMountOperation.js:306
#| msgid "Enter PIM Number…"
msgid "PIM Number"
msgstr "PIM Number"
@ -1792,13 +1656,13 @@ msgid "The PIM must be a number or empty."
msgstr "The PIM must be a number or empty."
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:469
#: js/ui/shellMountOperation.js:465
#, javascript-format
msgid "Unable to start %s"
msgstr "Unable to start %s"
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:471
#: js/ui/shellMountOperation.js:467
#, javascript-format
msgid "Couldnt find the %s application"
msgstr "Couldnt find the %s application"
@ -2271,11 +2135,11 @@ msgstr "Thunderbolt authorisation error"
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "Could not authorise the Thunderbolt device: %s"
#: js/ui/status/volume.js:150
#: js/ui/status/volume.js:151
msgid "Volume changed"
msgstr "Volume changed"
#: js/ui/status/volume.js:221
#: js/ui/status/volume.js:222
msgid "Volume"
msgstr "Volume"
@ -2309,24 +2173,26 @@ msgstr "Built-in Only"
#. Translators: This is a time format for a date in
#. long format
#: js/ui/unlockDialog.js:372
#| msgctxt "calendar heading"
#| msgid "%A, %B %-d"
#: js/ui/unlockDialog.js:371
msgid "%A %B %-d"
msgstr "%A %-d %B"
#: js/ui/unlockDialog.js:378
#: js/ui/unlockDialog.js:377
msgid "Swipe up to unlock"
msgstr "Swipe up to unlock"
#: js/ui/unlockDialog.js:379
#: js/ui/unlockDialog.js:378
msgid "Click or press a key to unlock"
msgstr "Click or press a key to unlock"
#: js/ui/unlockDialog.js:552
#: js/ui/unlockDialog.js:550
msgid "Unlock Window"
msgstr "Unlock Window"
#: js/ui/unlockDialog.js:559
msgid "Log in as another user"
msgstr "Log in as another user"
#: js/ui/viewSelector.js:181
msgid "Applications"
msgstr "Applications"
@ -2442,19 +2308,19 @@ msgstr "Close"
msgid "Evolution Calendar"
msgstr "Evolution Calendar"
#: src/main.c:460 subprojects/extensions-tool/src/main.c:249
#: src/main.c:458 subprojects/extensions-tool/src/main.c:249
msgid "Print version"
msgstr "Print version"
#: src/main.c:466
#: src/main.c:464
msgid "Mode used by GDM for login screen"
msgstr "Mode used by GDM for login screen"
#: src/main.c:472
#: src/main.c:470
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Use a specific mode, e.g. “gdm” for login screen"
#: src/main.c:478
#: src/main.c:476
msgid "List possible modes"
msgstr "List possible modes"
@ -2480,6 +2346,140 @@ msgstr "Password cannot be blank"
msgid "Authentication dialog was dismissed by the user"
msgstr "Authentication dialogue was dismissed by the user"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:4
#: subprojects/extensions-app/js/main.js:182
#: subprojects/extensions-app/data/ui/extensions-window.ui:61
msgid "Extensions"
msgstr "Extensions"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:6
#: subprojects/extensions-app/js/main.js:183
msgid "Manage your GNOME Extensions"
msgstr "Manage your GNOME Extensions"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:35
msgid ""
"GNOME Extensions handles updating extensions, configuring extension "
"preferences and removing or disabling unwanted extensions."
msgstr ""
"GNOME Extensions handles updating extensions, configuring extension "
"preferences and removing or disabling unwanted extensions."
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:7
msgid "Configure GNOME Shell Extensions"
msgstr "Configure GNOME Shell Extensions"
#: subprojects/extensions-app/js/main.js:144
#, javascript-format
msgid "Remove “%s”?"
msgstr "Remove “%s”?"
#: subprojects/extensions-app/js/main.js:145
msgid ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
msgstr ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
#: subprojects/extensions-app/js/main.js:149
msgid "Remove"
msgstr "Remove"
#: subprojects/extensions-app/js/main.js:181
msgid "translator-credits"
msgstr ""
"Philip Withnall <philip@tecnocode.co.uk>\n"
"Bruce Cowan <bruce@bcowan.me.uk>\n"
"Chris Leonard <cjl@laptop.org>\n"
"David King <amigadave@amigadave.com>\n"
"Zander Brown <zbrown@gnome.org>"
#: subprojects/extensions-app/js/main.js:316
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
msgstr[0] "%d extension will be updated on next login."
msgstr[1] "%d extensions will be updated on next login."
#: subprojects/extensions-app/data/ui/extension-row.ui:100
#: subprojects/extensions-tool/src/command-create.c:211
#: subprojects/extensions-tool/src/main.c:173
msgid "Description"
msgstr "Description"
#: subprojects/extensions-app/data/ui/extension-row.ui:123
#: subprojects/extensions-tool/src/main.c:185
msgid "Version"
msgstr "Version"
#: subprojects/extensions-app/data/ui/extension-row.ui:151
msgid "Author"
msgstr "Author"
#: subprojects/extensions-app/data/ui/extension-row.ui:175
msgid "Website"
msgstr "Website"
#: subprojects/extensions-app/data/ui/extension-row.ui:192
msgid "Remove…"
msgstr "Remove…"
#: subprojects/extensions-app/data/ui/extensions-window.ui:8
msgid "Help"
msgstr "Help"
#: subprojects/extensions-app/data/ui/extensions-window.ui:12
msgid "About Extensions"
msgstr "About Extensions"
#: subprojects/extensions-app/data/ui/extensions-window.ui:27
msgid ""
"To find and add extensions, visit <a href=\"https://extensions.gnome.org"
"\">extensions.gnome.org</a>."
msgstr ""
"To find and add extensions, visit <a href=\"https://extensions.gnome.org"
"\">extensions.gnome.org</a>."
#: subprojects/extensions-app/data/ui/extensions-window.ui:35
msgid "Warning"
msgstr "Warning"
#: subprojects/extensions-app/data/ui/extensions-window.ui:46
msgid ""
"Extensions can cause system issues, including performance problems. If you "
"encounter problems with your system, it is recommended to disable all "
"extensions."
msgstr ""
"Extensions can cause system issues, including performance problems. If you "
"encounter problems with your system, it is recommended to disable all "
"extensions."
#: subprojects/extensions-app/data/ui/extensions-window.ui:134
msgid "Manually Installed"
msgstr "Manually Installed"
#: subprojects/extensions-app/data/ui/extensions-window.ui:158
msgid "Built-In"
msgstr "Built-In"
#: subprojects/extensions-app/data/ui/extensions-window.ui:199
msgid "No Installed Extensions"
msgstr "No Installed Extensions"
#: subprojects/extensions-app/data/ui/extensions-window.ui:235
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."
msgstr ""
"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."
#: subprojects/extensions-app/data/ui/extensions-window.ui:288
msgid "Log Out…"
msgstr "Log Out…"
#. Translators: a file path to an extension directory
#: subprojects/extensions-tool/src/command-create.c:125
#, c-format
@ -2627,7 +2627,6 @@ msgid "Show extensions with preferences"
msgstr "Show extensions with preferences"
#: subprojects/extensions-tool/src/command-list.c:140
#| msgid "Show extensions with preferences"
msgid "Show extensions with updates"
msgstr "Show extensions with updates"
@ -2818,6 +2817,9 @@ msgstr[1] "%u Inputs"
msgid "System Sounds"
msgstr "System Sounds"
#~ msgid "Copy Error"
#~ msgstr "Copy Error"
#~ msgid "Next"
#~ msgstr "Next"
@ -2844,9 +2846,6 @@ msgstr "System Sounds"
#~ msgstr[0] "%d new notification"
#~ msgstr[1] "%d new notifications"
#~ msgid "Log in as another user"
#~ msgstr "Log in as another user"
#~| msgid "Shell Extensions"
#~ msgid "org.gnome.Extensions"
#~ msgstr "org.gnome.Extensions"

248
po/es.po
View File

@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell.master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-04-09 14:00+0000\n"
"PO-Revision-Date: 2020-04-27 18:06+0200\n"
"POT-Creation-Date: 2020-05-07 13:09+0000\n"
"PO-Revision-Date: 2020-05-07 16:46+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"
@ -431,7 +431,7 @@ msgstr "Visitar la página web de la extensión"
#: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:369 js/ui/extensionDownloader.js:181
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:917 subprojects/extensions-app/js/main.js:148
#: js/ui/status/network.js:916 subprojects/extensions-app/js/main.js:148
msgid "Cancel"
msgstr "Cancelar"
@ -454,7 +454,7 @@ msgstr "¿No está en la lista?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: js/gdm/loginDialog.js:912
#: js/gdm/loginDialog.js:913
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(ej., usuario o %s)"
@ -462,12 +462,12 @@ msgstr "(ej., usuario o %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: js/gdm/loginDialog.js:917 js/ui/components/networkAgent.js:241
#: js/gdm/loginDialog.js:918 js/ui/components/networkAgent.js:241
#: js/ui/components/networkAgent.js:264 js/ui/components/networkAgent.js:282
msgid "Username"
msgstr "Nombre de usuario"
#: js/gdm/loginDialog.js:1253
#: js/gdm/loginDialog.js:1254
msgid "Login Window"
msgstr "Ventana de inicio de sesión"
@ -485,71 +485,71 @@ msgid "(or swipe finger)"
msgstr "(o pase el dedo)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:89
#: js/misc/systemActions.js:93
msgctxt "search-result"
msgid "Power Off"
msgstr "Apagar"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:92
#: js/misc/systemActions.js:96
msgid "power off;shutdown;reboot;restart;halt;stop"
msgstr "apagar;apagado;reinicio;reiniciar;detener;parar"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:97
#: js/misc/systemActions.js:101
msgctxt "search-result"
msgid "Lock Screen"
msgstr "Bloquear la pantalla"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:100
#: js/misc/systemActions.js:104
msgid "lock screen"
msgstr "bloquear;pantalla"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:105
#: js/misc/systemActions.js:109
msgctxt "search-result"
msgid "Log Out"
msgstr "Cerrar la sesión"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:108
#: js/misc/systemActions.js:112
msgid "logout;log out;sign off"
msgstr "cerrar;sesión;salir"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:113
#: js/misc/systemActions.js:117
msgctxt "search-result"
msgid "Suspend"
msgstr "Suspender"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:116
#: js/misc/systemActions.js:120
msgid "suspend;sleep"
msgstr "suspender;dormir"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:121
#: js/misc/systemActions.js:125
msgctxt "search-result"
msgid "Switch User"
msgstr "Cambiar de usuario"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:124
#: js/misc/systemActions.js:128
msgid "switch user"
msgstr "cambiar;usuario"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:131
#: js/misc/systemActions.js:135
msgid "lock orientation;unlock orientation;screen;rotation"
msgstr "bloquear orientación;desbloquear orientación;pantalla;rotación"
#: js/misc/systemActions.js:251
#: js/misc/systemActions.js:255
msgctxt "search-result"
msgid "Unlock Screen Rotation"
msgstr "Desbloquear la rotación de la pantalla"
#: js/misc/systemActions.js:252
#: js/misc/systemActions.js:256
msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Bloquear la rotación de la pantalla"
@ -714,53 +714,57 @@ msgstr "Denegar acceso"
msgid "Grant Access"
msgstr "Conceder acceso"
#: js/ui/appDisplay.js:950
#: js/ui/appDisplay.js:943
msgid "Unnamed Folder"
msgstr "Carpeta sin nombre"
#: js/ui/appDisplay.js:973
#: js/ui/appDisplay.js:966
msgid "Frequently used applications will appear here"
msgstr "Las aplicaciones usadas frecuentemente aparecerán aquí"
#: js/ui/appDisplay.js:1108
#: js/ui/appDisplay.js:1101
msgid "Frequent"
msgstr "Frecuentes"
#: js/ui/appDisplay.js:1115
#: js/ui/appDisplay.js:1108
msgid "All"
msgstr "Todas"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2506 js/ui/panel.js:75
#: js/ui/appDisplay.js:2485 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Ventanas abiertas"
#: js/ui/appDisplay.js:2526 js/ui/panel.js:82
#: js/ui/appDisplay.js:2504 js/ui/panel.js:82
msgid "New Window"
msgstr "Ventana nueva"
#: js/ui/appDisplay.js:2537
msgid "Launch using Dedicated Graphics Card"
msgstr "Lanzar usando la tarjeta gráfica dedicada"
#: js/ui/appDisplay.js:2520
msgid "Launch using Integrated Graphics Card"
msgstr "Lanzar usando la tarjeta gráfica integrada"
#: js/ui/appDisplay.js:2565 js/ui/dash.js:239
#: js/ui/appDisplay.js:2521
msgid "Launch using Discrete Graphics Card"
msgstr "Lanzar usando la tarjeta gráfica discreta"
#: js/ui/appDisplay.js:2549 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Quitar de los favoritos"
#: js/ui/appDisplay.js:2571
#: js/ui/appDisplay.js:2555
msgid "Add to Favorites"
msgstr "Añadir a los favoritos"
#: js/ui/appDisplay.js:2581 js/ui/panel.js:93
#: js/ui/appDisplay.js:2565 js/ui/panel.js:93
msgid "Show Details"
msgstr "Mostrar detalles"
#: js/ui/appFavorites.js:163
#: js/ui/appFavorites.js:164
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "Se ha añadido %s a sus favoritos."
#: js/ui/appFavorites.js:196
#: js/ui/appFavorites.js:197
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "Se ha quitado %s de sus favoritos."
@ -855,7 +859,7 @@ msgstr "S"
#. * "%OB" is the new format specifier introduced in glibc 2.27,
#. * in most cases you should not change it.
#.
#: js/ui/calendar.js:372
#: js/ui/calendar.js:397
msgid "%OB"
msgstr "%OB"
@ -868,61 +872,61 @@ msgstr "%OB"
#. * in most cases you should not use the old "%B" here unless you
#. * absolutely know what you are doing.
#.
#: js/ui/calendar.js:382
#: js/ui/calendar.js:407
msgid "%OB %Y"
msgstr "%OB de %Y"
#: js/ui/calendar.js:441
#: js/ui/calendar.js:466
msgid "Previous month"
msgstr "Mes anterior"
#: js/ui/calendar.js:456
#: js/ui/calendar.js:481
msgid "Next month"
msgstr "Siguiente mes"
#: js/ui/calendar.js:606
#: js/ui/calendar.js:631
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: js/ui/calendar.js:662
#: js/ui/calendar.js:687
msgid "Week %V"
msgstr "Semana %V"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
#: js/ui/calendar.js:731
#: js/ui/calendar.js:762
msgctxt "event list time"
msgid "All Day"
msgstr "Todo el día"
#. Translators: Shown on calendar heading when selected day occurs on current year
#: js/ui/calendar.js:869
#: js/ui/calendar.js:900
msgctxt "calendar heading"
msgid "%A, %B %-d"
msgstr "%A, %d de %B"
#. Translators: Shown on calendar heading when selected day occurs on different year
#: js/ui/calendar.js:872
#: js/ui/calendar.js:903
msgctxt "calendar heading"
msgid "%A, %B %-d, %Y"
msgstr "%A, %d de %B de %Y"
#: js/ui/calendar.js:1101
#: js/ui/calendar.js:1133
msgid "No Notifications"
msgstr "No hay notificaciones"
#: js/ui/calendar.js:1104
#: js/ui/calendar.js:1136
msgid "No Events"
msgstr "No hay eventos"
#: js/ui/calendar.js:1158
#: js/ui/calendar.js:1190
msgid "Do Not Disturb"
msgstr "No molestar"
#: js/ui/calendar.js:1177
#: js/ui/calendar.js:1209
msgid "Clear"
msgstr "Limpiar"
@ -964,7 +968,7 @@ msgstr "No se puede desbloquear el volumen"
msgid "The installed udisks version does not support the PIM setting"
msgstr "La versión de udisks instalada no soporta la configuración PIM"
#: js/ui/components/autorunManager.js:333
#: js/ui/components/autorunManager.js:332
#, javascript-format
msgid "Open with %s"
msgstr "Abrir con %s"
@ -976,7 +980,7 @@ msgstr ""
"Alternativamente puede conectarse pulsando el botón «WPS» de su router."
#: js/ui/components/networkAgent.js:104 js/ui/status/network.js:227
#: js/ui/status/network.js:318 js/ui/status/network.js:920
#: js/ui/status/network.js:318 js/ui/status/network.js:919
msgid "Connect"
msgstr "Conectar"
@ -1041,7 +1045,7 @@ msgstr "PIN"
msgid "A password is required to connect to “%s”."
msgstr "Se requiere una contraseña para conectarse a «%s»."
#: js/ui/components/networkAgent.js:669 js/ui/status/network.js:1695
#: js/ui/components/networkAgent.js:669 js/ui/status/network.js:1694
msgid "Network Manager"
msgstr "Gestor de la red"
@ -1132,7 +1136,6 @@ msgid "Weather"
msgstr "Meteorología"
#: js/ui/dateMenu.js:448
#| msgid "Select a location…"
msgid "Select weather location…"
msgstr "Seleccionar ubicación meteorológica…"
@ -1383,13 +1386,13 @@ msgid "Leave On"
msgstr "Dejar activada"
#: js/ui/kbdA11yDialog.js:55 js/ui/status/bluetooth.js:156
#: js/ui/status/network.js:1292
#: js/ui/status/network.js:1291
msgid "Turn On"
msgstr "Encendido"
#: js/ui/kbdA11yDialog.js:63 js/ui/status/bluetooth.js:156
#: js/ui/status/network.js:135 js/ui/status/network.js:319
#: js/ui/status/network.js:1292 js/ui/status/network.js:1404
#: js/ui/status/network.js:1291 js/ui/status/network.js:1403
#: js/ui/status/nightLight.js:41 js/ui/status/rfkill.js:81
#: js/ui/status/rfkill.js:108
msgid "Turn Off"
@ -1403,59 +1406,59 @@ msgstr "Dejar apagado"
msgid "Region & Language Settings"
msgstr "Configuración de región e idioma"
#: js/ui/lookingGlass.js:665
#: js/ui/lookingGlass.js:664
msgid "No extensions installed"
msgstr "No hay extensiones instaladas"
#. Translators: argument is an extension UUID.
#: js/ui/lookingGlass.js:720
#: js/ui/lookingGlass.js:719
#, javascript-format
msgid "%s has not emitted any errors."
msgstr "%s no ha generado ningún error."
#: js/ui/lookingGlass.js:726
#: js/ui/lookingGlass.js:725
msgid "Hide Errors"
msgstr "Ocultar errores"
#: js/ui/lookingGlass.js:730 js/ui/lookingGlass.js:795
#: js/ui/lookingGlass.js:729 js/ui/lookingGlass.js:794
msgid "Show Errors"
msgstr "Mostrar errores"
#: js/ui/lookingGlass.js:739
#: js/ui/lookingGlass.js:738
msgid "Enabled"
msgstr "Activado"
#. translators:
#. * The device has been disabled
#: js/ui/lookingGlass.js:742 subprojects/gvc/gvc-mixer-control.c:1892
#: js/ui/lookingGlass.js:741 subprojects/gvc/gvc-mixer-control.c:1892
msgid "Disabled"
msgstr "Desactivado"
#: js/ui/lookingGlass.js:744
#: js/ui/lookingGlass.js:743
msgid "Error"
msgstr "Error"
#: js/ui/lookingGlass.js:746
#: js/ui/lookingGlass.js:745
msgid "Out of date"
msgstr "Caducado"
#: js/ui/lookingGlass.js:748
#: js/ui/lookingGlass.js:747
msgid "Downloading"
msgstr "Descargando"
#: js/ui/lookingGlass.js:777
#: js/ui/lookingGlass.js:776
msgid "View Source"
msgstr "Ver fuente"
#: js/ui/lookingGlass.js:786
#: js/ui/lookingGlass.js:785
msgid "Web Page"
msgstr "Página web"
#: js/ui/main.js:284
#: js/ui/main.js:297
msgid "Logged in as a privileged user"
msgstr "Sesión iniciada como usuario con privilegios"
#: js/ui/main.js:285
#: js/ui/main.js:298
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@ -1463,15 +1466,15 @@ msgstr ""
"Se debe evitar ejecutar una sesión como usuario con privilegios por motivos "
"de seguridad. Si es posible, inicie sesión como un usuario normal."
#: js/ui/main.js:324
#: js/ui/main.js:337
msgid "Screen Lock disabled"
msgstr "Pantalla de bloqueo desactivada"
#: js/ui/main.js:325
#: js/ui/main.js:338
msgid "Screen Locking requires the GNOME display manager."
msgstr "La pantalla de bloqueo necesita el gestor de pantallas de GNOME."
#: js/ui/messageTray.js:1551
#: js/ui/messageTray.js:1547
msgid "System Information"
msgstr "Información del sistema"
@ -1551,22 +1554,22 @@ msgstr "Salir"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: js/ui/panel.js:432
#: js/ui/panel.js:435
msgid "Activities"
msgstr "Actividades"
#: js/ui/panel.js:711
#: js/ui/panel.js:714
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistema"
#: js/ui/panel.js:824
#: js/ui/panel.js:827
msgid "Top Bar"
msgstr "Barra superior"
#: js/ui/runDialog.js:58
msgid "Run a Command"
msgstr "Eejcutar un comando"
msgstr "Ejecutar un comando"
#: js/ui/runDialog.js:73
msgid "Press ESC to close"
@ -1591,23 +1594,23 @@ msgstr "GNOME necesita bloquear la pantalla"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: js/ui/screenShield.js:244 js/ui/screenShield.js:601
#: js/ui/screenShield.js:244 js/ui/screenShield.js:602
msgid "Unable to lock"
msgstr "No se pudo bloquear"
#: js/ui/screenShield.js:245 js/ui/screenShield.js:602
#: js/ui/screenShield.js:245 js/ui/screenShield.js:603
msgid "Lock was blocked by an application"
msgstr "Una aplicación impidió el bloqueo"
#: js/ui/search.js:703
#: js/ui/search.js:702
msgid "Searching…"
msgstr "Buscando…"
#: js/ui/search.js:705
#: js/ui/search.js:704
msgid "No results."
msgstr "No se encontraron resultados."
#: js/ui/search.js:831
#: js/ui/search.js:830
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
@ -1742,12 +1745,10 @@ msgid "Bluetooth Settings"
msgstr "Configuración de Bluetooth"
#: js/ui/status/bluetooth.js:152
#| msgid "Bluetooth"
msgid "Bluetooth Off"
msgstr "Bluetooth apagado"
#: js/ui/status/bluetooth.js:154
#| msgid "Bluetooth"
msgid "Bluetooth On"
msgstr "Bluetooth encendido"
@ -1828,7 +1829,7 @@ msgid "<unknown>"
msgstr "<desconocido>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:424 js/ui/status/network.js:1321
#: js/ui/status/network.js:424 js/ui/status/network.js:1320
#, javascript-format
msgid "%s Off"
msgstr "%s apagada"
@ -1854,7 +1855,7 @@ msgid "%s Disconnecting"
msgstr "Desconectando %s"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:442 js/ui/status/network.js:1313
#: js/ui/status/network.js:442 js/ui/status/network.js:1312
#, javascript-format
msgid "%s Connecting"
msgstr "Conectando %s"
@ -1894,7 +1895,7 @@ msgid "Mobile Broadband Settings"
msgstr "Configuración de banda ancha móvil"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:562 js/ui/status/network.js:1318
#: js/ui/status/network.js:562 js/ui/status/network.js:1317
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "Hardware %s desactivado"
@ -1910,121 +1911,121 @@ msgstr "%s desactivado"
msgid "Connect to Internet"
msgstr "Conectar a Internet"
#: js/ui/status/network.js:812
#: js/ui/status/network.js:811
msgid "Airplane Mode is On"
msgstr "El modo avión está activado"
#: js/ui/status/network.js:813
#: js/ui/status/network.js:812
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "La Wi-Fi se desactiva cuando se activa el modo avión."
#: js/ui/status/network.js:814
#: js/ui/status/network.js:813
msgid "Turn Off Airplane Mode"
msgstr "Apagar el modo avión"
#: js/ui/status/network.js:823
#: js/ui/status/network.js:822
msgid "Wi-Fi is Off"
msgstr "La Wi-Fi está desactivada"
#: js/ui/status/network.js:824
#: js/ui/status/network.js:823
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Se debe activar la Wi-Fi para poder conectarse a la red."
#: js/ui/status/network.js:825
#: js/ui/status/network.js:824
msgid "Turn On Wi-Fi"
msgstr "Activar la Wi-Fi"
#: js/ui/status/network.js:850
#: js/ui/status/network.js:849
msgid "Wi-Fi Networks"
msgstr "Redes Wi-Fi"
#: js/ui/status/network.js:852
#: js/ui/status/network.js:851
msgid "Select a network"
msgstr "Seleccionar una red"
#: js/ui/status/network.js:884
#: js/ui/status/network.js:883
msgid "No Networks"
msgstr "No hay redes"
#: js/ui/status/network.js:905 js/ui/status/rfkill.js:106
#: js/ui/status/network.js:904 js/ui/status/rfkill.js:106
msgid "Use hardware switch to turn off"
msgstr "Usar el interruptor hardware para apagar"
#: js/ui/status/network.js:1182
#: js/ui/status/network.js:1181
msgid "Select Network"
msgstr "Seleccionar red"
#: js/ui/status/network.js:1188
#: js/ui/status/network.js:1187
msgid "Wi-Fi Settings"
msgstr "Configuración de Wi-Fi"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1309
#: js/ui/status/network.js:1308
#, javascript-format
msgid "%s Hotspot Active"
msgstr "Punto de acceso %s activo"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1324
#: js/ui/status/network.js:1323
#, javascript-format
msgid "%s Not Connected"
msgstr "%s no conectado"
#: js/ui/status/network.js:1421
#: js/ui/status/network.js:1420
msgid "connecting…"
msgstr "conectando…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1424
#: js/ui/status/network.js:1423
msgid "authentication required"
msgstr "se necesita autenticación"
#: js/ui/status/network.js:1426
#: js/ui/status/network.js:1425
msgid "connection failed"
msgstr "falló la conexión"
#: js/ui/status/network.js:1477
#: js/ui/status/network.js:1476
msgid "VPN Settings"
msgstr "Configuración de VPN"
#: js/ui/status/network.js:1494
#: js/ui/status/network.js:1493
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1504
#: js/ui/status/network.js:1503
msgid "VPN Off"
msgstr "VPN apagada"
#: js/ui/status/network.js:1565 js/ui/status/rfkill.js:84
#: js/ui/status/network.js:1564 js/ui/status/rfkill.js:84
msgid "Network Settings"
msgstr "Configuración de la red"
#: js/ui/status/network.js:1594
#: js/ui/status/network.js:1593
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "%s conexión cableada"
msgstr[1] "%s conexiones cableadas"
#: js/ui/status/network.js:1598
#: js/ui/status/network.js:1597
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
msgstr[0] "%s conexión inalámbrica"
msgstr[1] "%s conexiones inalámbricas"
#: js/ui/status/network.js:1602
#: js/ui/status/network.js:1601
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] "%s conexión por módem"
msgstr[1] "%s conexiones por módem"
#: js/ui/status/network.js:1736
#: js/ui/status/network.js:1735
msgid "Connection failed"
msgstr "Falló la conexión"
#: js/ui/status/network.js:1737
#: js/ui/status/network.js:1736
msgid "Activation of network connection failed"
msgstr "Falló la activación de la conexión de red"
@ -2079,11 +2080,11 @@ msgstr "%d%02d para la carga completa (%d%%)"
msgid "%d%%"
msgstr "%d%%"
#: js/ui/status/remoteAccess.js:44
#: js/ui/status/remoteAccess.js:43
msgid "Screen is Being Shared"
msgstr "Se está compartiendo la pantalla"
#: js/ui/status/remoteAccess.js:46
#: js/ui/status/remoteAccess.js:45
msgid "Turn off"
msgstr "Apagar"
@ -2094,27 +2095,27 @@ msgstr "Apagar"
msgid "Airplane Mode On"
msgstr "Modo avión activado"
#: js/ui/status/system.js:103
#: js/ui/status/system.js:102
msgid "Lock"
msgstr "Bloquear"
#: js/ui/status/system.js:116
#: js/ui/status/system.js:115
msgid "Power Off / Log Out"
msgstr "Apagar / cerrar sesión"
#: js/ui/status/system.js:119
#: js/ui/status/system.js:118
msgid "Log Out"
msgstr "Cerrar la sesión"
#: js/ui/status/system.js:131
#: js/ui/status/system.js:130
msgid "Switch User…"
msgstr "Cambiar de usuario…"
#: js/ui/status/system.js:145
#: js/ui/status/system.js:144
msgid "Suspend"
msgstr "Suspender"
#: js/ui/status/system.js:157
#: js/ui/status/system.js:156
msgid "Power Off…"
msgstr "Apagar…"
@ -2201,7 +2202,7 @@ msgstr "Deslizar para desbloquear"
#: js/ui/unlockDialog.js:378
msgid "Click or press a key to unlock"
msgstr "Pulse con el ratón o un tecla para desbloquear"
msgstr "Pulse con el ratón o una tecla para desbloquear"
#: js/ui/unlockDialog.js:550
msgid "Unlock Window"
@ -2240,7 +2241,7 @@ msgstr "Revertir configuración"
msgid "Keep Changes"
msgstr "Mantener cambios"
#: js/ui/windowManager.js:85
#: js/ui/windowManager.js:86
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@ -2249,7 +2250,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:544
#: js/ui/windowManager.js:546
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@ -2498,6 +2499,10 @@ msgstr ""
"No es posible obtener la lista de extensiones instaladas. asegúrese de que "
"ha iniciado sesión en GNOME e inténtelo de nuevo."
#: subprojects/extensions-app/data/ui/extensions-window.ui:273
msgid "Extension Updates Ready"
msgstr "Actualizaciones de extensiones disponibles"
#: subprojects/extensions-app/data/ui/extensions-window.ui:289
msgid "Log Out…"
msgstr "Cerrar la sesión…"
@ -2574,7 +2579,6 @@ msgid "TEMPLATE"
msgstr "PLANTILLA"
#: subprojects/extensions-tool/src/command-create.c:423
#| msgid "The user-visible name of the new extension"
msgid "The template to use for the new extension"
msgstr "La plantilla que usar para la nueva extensión"
@ -2751,7 +2755,6 @@ msgstr "Se ha especificado más de una carpeta fuente"
#: subprojects/extensions-tool/src/command-prefs.c:47
#, c-format
#| msgid "Show extensions with preferences"
msgid "Extension “%s” doesn't have preferences\n"
msgstr "La extensión «%s» no tiene opciones\n"
@ -2764,13 +2767,11 @@ msgid "Reset an extension"
msgstr "Restablecer una extensión"
#: subprojects/extensions-tool/src/command-uninstall.c:49
#| msgid "List installed extensions"
msgid "Cannot uninstall system extensions\n"
msgstr "No se pueden desinstalar extensiones del sistema\n"
#: subprojects/extensions-tool/src/command-uninstall.c:64
#, c-format
#| msgid "Failed to launch “%s”"
msgid "Failed to uninstall “%s”\n"
msgstr "Falló al desinstalar «%s»\n"
@ -2883,7 +2884,6 @@ msgid "Plain"
msgstr "Plano"
#: subprojects/extensions-tool/src/templates/00-plain.desktop.in:5
#| msgid "Reset extension"
msgid "An empty extension"
msgstr "Una extensión vacía"

254
po/fa.po
View File

@ -2,15 +2,15 @@
# Copyright (C) 2010-2011 Iranian Free Software Users Group (IFSUG.org)translation team.
# 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, 2020.
# Arash Mousavi <mousavi.arash@gmail.com>, 2010-2017.
# Danial behzadi <dani.behzi@ubuntu.com>, 2018-2020.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-04-09 14:00+0000\n"
"PO-Revision-Date: 2020-04-25 00:31+0430\n"
"POT-Creation-Date: 2020-05-12 14:15+0000\n"
"PO-Revision-Date: 2020-05-12 14:22+0000\n"
"Last-Translator: Danial Behzadi <dani.behzi@ubuntu.com>\n"
"Language-Team: Persian <>\n"
"Language: fa\n"
@ -396,7 +396,7 @@ msgstr "مشاهدهٔ صفحهٔ خانگی افزونه"
#: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:369 js/ui/extensionDownloader.js:181
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:917 subprojects/extensions-app/js/main.js:148
#: js/ui/status/network.js:916 subprojects/extensions-app/js/main.js:149
msgid "Cancel"
msgstr "لغو"
@ -419,7 +419,7 @@ msgstr "فهرست نشده؟"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: js/gdm/loginDialog.js:912
#: js/gdm/loginDialog.js:913
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(برای مثال, کاربر یا %s)"
@ -427,12 +427,12 @@ msgstr "(برای مثال, کاربر یا %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: js/gdm/loginDialog.js:917 js/ui/components/networkAgent.js:241
#: js/gdm/loginDialog.js:918 js/ui/components/networkAgent.js:241
#: js/ui/components/networkAgent.js:264 js/ui/components/networkAgent.js:282
msgid "Username"
msgstr "نام‌کاربری"
#: js/gdm/loginDialog.js:1253
#: js/gdm/loginDialog.js:1254
msgid "Login Window"
msgstr "پنجرهٔ ورود به سامانه"
@ -450,71 +450,71 @@ msgid "(or swipe finger)"
msgstr "(یا انگشتتان را بکشید)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:89
#: js/misc/systemActions.js:93
msgctxt "search-result"
msgid "Power Off"
msgstr "خاموش کردن"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:92
#: js/misc/systemActions.js:96
msgid "power off;shutdown;reboot;restart;halt;stop"
msgstr "power off;shutdown;reboot;restart;خاموش;توقف"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:97
#: js/misc/systemActions.js:101
msgctxt "search-result"
msgid "Lock Screen"
msgstr "صفحهٔ قفل"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:100
#: js/misc/systemActions.js:104
msgid "lock screen"
msgstr "قفل کردن صفحه"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:105
#: js/misc/systemActions.js:109
msgctxt "search-result"
msgid "Log Out"
msgstr "خروج"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:108
#: js/misc/systemActions.js:112
msgid "logout;log out;sign off"
msgstr "logout;log out;sign off;خروج;خارج"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:113
#: js/misc/systemActions.js:117
msgctxt "search-result"
msgid "Suspend"
msgstr "تعلیق"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:116
#: js/misc/systemActions.js:120
msgid "suspend;sleep"
msgstr "suspend;sleep;تعلیق;خواب"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:121
#: js/misc/systemActions.js:125
msgctxt "search-result"
msgid "Switch User"
msgstr "تعویض کاربر"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:124
#: js/misc/systemActions.js:128
msgid "switch user"
msgstr "تعویض کاربر"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:131
#: js/misc/systemActions.js:135
msgid "lock orientation;unlock orientation;screen;rotation"
msgstr "lock orientation;screen;rotation;قفل;جهت;چرخش;صفحه"
#: js/misc/systemActions.js:251
#: js/misc/systemActions.js:255
msgctxt "search-result"
msgid "Unlock Screen Rotation"
msgstr "قفل‌گشایی چرخش صفحه"
#: js/misc/systemActions.js:252
#: js/misc/systemActions.js:256
msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "قفل چرخش صفحه"
@ -679,53 +679,57 @@ msgstr "رد دسترسی"
msgid "Grant Access"
msgstr "پذیرفتن دسترسی"
#: js/ui/appDisplay.js:950
#: js/ui/appDisplay.js:944
msgid "Unnamed Folder"
msgstr "پوشهٔ بی‌نام"
#: js/ui/appDisplay.js:973
#: js/ui/appDisplay.js:967
msgid "Frequently used applications will appear here"
msgstr "برنامه‌های بیشتر استفاده شده در اینجا نمایش داده می‌شود"
#: js/ui/appDisplay.js:1108
#: js/ui/appDisplay.js:1102
msgid "Frequent"
msgstr "پُر استفاده"
#: js/ui/appDisplay.js:1115
#: js/ui/appDisplay.js:1109
msgid "All"
msgstr "همه"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2506 js/ui/panel.js:75
#: js/ui/appDisplay.js:2486 js/ui/panel.js:75
msgid "Open Windows"
msgstr "پنجره‌های باز"
#: js/ui/appDisplay.js:2526 js/ui/panel.js:82
#: js/ui/appDisplay.js:2505 js/ui/panel.js:82
msgid "New Window"
msgstr "پنجرهٔ جدید"
#: js/ui/appDisplay.js:2537
msgid "Launch using Dedicated Graphics Card"
msgstr "اجرا با کارت گرافیک اختصاصی"
#: js/ui/appDisplay.js:2521
msgid "Launch using Integrated Graphics Card"
msgstr "اجرا با کارت گرافیک یکپارچه"
#: js/ui/appDisplay.js:2565 js/ui/dash.js:239
#: js/ui/appDisplay.js:2522
msgid "Launch using Discrete Graphics Card"
msgstr "اجرا با کارت گرافیک جداگانه"
#: js/ui/appDisplay.js:2550 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "حذف از مورد پسندها"
#: js/ui/appDisplay.js:2571
#: js/ui/appDisplay.js:2556
msgid "Add to Favorites"
msgstr "افزودن به مورد پسندها"
#: js/ui/appDisplay.js:2581 js/ui/panel.js:93
#: js/ui/appDisplay.js:2566 js/ui/panel.js:93
msgid "Show Details"
msgstr "نمایش جزییات"
#: js/ui/appFavorites.js:163
#: js/ui/appFavorites.js:164
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s به مورد پسندهایتان اضافه شد."
#: js/ui/appFavorites.js:196
#: js/ui/appFavorites.js:197
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s ازمورد پسندهایتان حذف شد."
@ -820,7 +824,7 @@ msgstr "ش"
#. * "%OB" is the new format specifier introduced in glibc 2.27,
#. * in most cases you should not change it.
#.
#: js/ui/calendar.js:372
#: js/ui/calendar.js:397
msgid "%OB"
msgstr "%OB"
@ -833,61 +837,61 @@ msgstr "%OB"
#. * in most cases you should not use the old "%B" here unless you
#. * absolutely know what you are doing.
#.
#: js/ui/calendar.js:382
#: js/ui/calendar.js:407
msgid "%OB %Y"
msgstr "%OB %Y"
#: js/ui/calendar.js:441
#: js/ui/calendar.js:466
msgid "Previous month"
msgstr "ماه پیش"
#: js/ui/calendar.js:456
#: js/ui/calendar.js:481
msgid "Next month"
msgstr "ماه بعد"
#: js/ui/calendar.js:606
#: js/ui/calendar.js:631
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%Od"
#: js/ui/calendar.js:662
#: js/ui/calendar.js:687
msgid "Week %V"
msgstr "هفته %OV"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
#: js/ui/calendar.js:731
#: js/ui/calendar.js:762
msgctxt "event list time"
msgid "All Day"
msgstr "تمام روز"
#. Translators: Shown on calendar heading when selected day occurs on current year
#: js/ui/calendar.js:869
#: js/ui/calendar.js:900
msgctxt "calendar heading"
msgid "%A, %B %-d"
msgstr "%A %-Od %OB"
#. Translators: Shown on calendar heading when selected day occurs on different year
#: js/ui/calendar.js:872
#: js/ui/calendar.js:903
msgctxt "calendar heading"
msgid "%A, %B %-d, %Y"
msgstr "%A %-Od %OB %Y"
#: js/ui/calendar.js:1101
#: js/ui/calendar.js:1133
msgid "No Notifications"
msgstr "بدون آگاهی"
#: js/ui/calendar.js:1104
#: js/ui/calendar.js:1136
msgid "No Events"
msgstr "بدون رویداد"
#: js/ui/calendar.js:1158
#: js/ui/calendar.js:1190
msgid "Do Not Disturb"
msgstr "مزاحم نشوید"
#: js/ui/calendar.js:1177
#: js/ui/calendar.js:1209
msgid "Clear"
msgstr "پاک‌سازی"
@ -929,7 +933,7 @@ msgstr "ناتوانی در قفل‌گشایی حجم"
msgid "The installed udisks version does not support the PIM setting"
msgstr "نگارش نصب‌شدهٔ udisk از تنظیمات PIM پشتیبانی نمی‌کند"
#: js/ui/components/autorunManager.js:333
#: js/ui/components/autorunManager.js:332
#, javascript-format
msgid "Open with %s"
msgstr "گشودن با %s"
@ -939,7 +943,7 @@ msgid "Alternatively you can connect by pushing the “WPS” button on your rou
msgstr "به عنوان جایگزین می‌توانید با فشردن دکمهٔ WPS روی مسیریابتان، وصل شوید."
#: js/ui/components/networkAgent.js:104 js/ui/status/network.js:227
#: js/ui/status/network.js:318 js/ui/status/network.js:920
#: js/ui/status/network.js:318 js/ui/status/network.js:919
msgid "Connect"
msgstr "اتّصال"
@ -1001,7 +1005,7 @@ msgstr "پین"
msgid "A password is required to connect to “%s”."
msgstr "برای اتصال به «%s» گذرواژه لازم است."
#: js/ui/components/networkAgent.js:669 js/ui/status/network.js:1695
#: js/ui/components/networkAgent.js:669 js/ui/status/network.js:1694
msgid "Network Manager"
msgstr "مدیر شبکه"
@ -1336,13 +1340,13 @@ msgid "Leave On"
msgstr "روشن گذاشتن"
#: js/ui/kbdA11yDialog.js:55 js/ui/status/bluetooth.js:156
#: js/ui/status/network.js:1292
#: js/ui/status/network.js:1291
msgid "Turn On"
msgstr "روشن کردن"
#: js/ui/kbdA11yDialog.js:63 js/ui/status/bluetooth.js:156
#: js/ui/status/network.js:135 js/ui/status/network.js:319
#: js/ui/status/network.js:1292 js/ui/status/network.js:1404
#: js/ui/status/network.js:1291 js/ui/status/network.js:1403
#: js/ui/status/nightLight.js:41 js/ui/status/rfkill.js:81
#: js/ui/status/rfkill.js:108
msgid "Turn Off"
@ -1356,59 +1360,59 @@ msgstr "خاموش گذاشتن"
msgid "Region & Language Settings"
msgstr "تنظیمات ناحیه و زبان"
#: js/ui/lookingGlass.js:665
#: js/ui/lookingGlass.js:664
msgid "No extensions installed"
msgstr "هیچ افزونه‌ای نصب نشده است"
#. Translators: argument is an extension UUID.
#: js/ui/lookingGlass.js:720
#: js/ui/lookingGlass.js:719
#, javascript-format
msgid "%s has not emitted any errors."
msgstr "افزونه %s هیچ خطایی منتشر نکرده است."
#: js/ui/lookingGlass.js:726
#: js/ui/lookingGlass.js:725
msgid "Hide Errors"
msgstr "مخفی کردن خطاها"
#: js/ui/lookingGlass.js:730 js/ui/lookingGlass.js:795
#: js/ui/lookingGlass.js:729 js/ui/lookingGlass.js:794
msgid "Show Errors"
msgstr "نمایش خطاها"
#: js/ui/lookingGlass.js:739
#: js/ui/lookingGlass.js:738
msgid "Enabled"
msgstr "به کار انداختن"
#. translators:
#. * The device has been disabled
#: js/ui/lookingGlass.js:742 subprojects/gvc/gvc-mixer-control.c:1892
#: js/ui/lookingGlass.js:741 subprojects/gvc/gvc-mixer-control.c:1892
msgid "Disabled"
msgstr "از کار انداختن"
#: js/ui/lookingGlass.js:744
#: js/ui/lookingGlass.js:743
msgid "Error"
msgstr "خطا"
#: js/ui/lookingGlass.js:746
#: js/ui/lookingGlass.js:745
msgid "Out of date"
msgstr "قدیمی"
#: js/ui/lookingGlass.js:748
#: js/ui/lookingGlass.js:747
msgid "Downloading"
msgstr "در حال بارگیری"
#: js/ui/lookingGlass.js:777
#: js/ui/lookingGlass.js:776
msgid "View Source"
msgstr "نمایش منبع"
#: js/ui/lookingGlass.js:786
#: js/ui/lookingGlass.js:785
msgid "Web Page"
msgstr "صفحهٔ وب"
#: js/ui/main.js:284
#: js/ui/main.js:297
msgid "Logged in as a privileged user"
msgstr "واردشده به عنوان کاربری ممتاز"
#: js/ui/main.js:285
#: js/ui/main.js:298
msgid ""
"Running a session as a privileged user should be avoided for security reasons. If "
"possible, you should log in as a normal user."
@ -1416,15 +1420,15 @@ msgstr ""
"به دلایل امنیتی باید از اجرای یک نشست به عنوان کاربری ممتاز خودداری کرد. در صورت "
"امکان، با کاربری عادی وارد شوید."
#: js/ui/main.js:324
#: js/ui/main.js:337
msgid "Screen Lock disabled"
msgstr "قفل صفحه از کار افتاده"
#: js/ui/main.js:325
#: js/ui/main.js:338
msgid "Screen Locking requires the GNOME display manager."
msgstr "قفل صفحه نیاز به مدیر نمایش گنوم دارد."
#: js/ui/messageTray.js:1551
#: js/ui/messageTray.js:1547
msgid "System Information"
msgstr "اطلاعات سامانه"
@ -1504,16 +1508,16 @@ msgstr "خروج"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: js/ui/panel.js:432
#: js/ui/panel.js:435
msgid "Activities"
msgstr "فعّالیت‌ها"
#: js/ui/panel.js:711
#: js/ui/panel.js:714
msgctxt "System menu in the top bar"
msgid "System"
msgstr "سامانه"
#: js/ui/panel.js:824
#: js/ui/panel.js:827
msgid "Top Bar"
msgstr "نوار بالا"
@ -1544,23 +1548,23 @@ msgstr "لازم است گنوم صفحه را قفل کند"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: js/ui/screenShield.js:244 js/ui/screenShield.js:601
#: js/ui/screenShield.js:244 js/ui/screenShield.js:602
msgid "Unable to lock"
msgstr "نمی‌توان قفل کرد"
#: js/ui/screenShield.js:245 js/ui/screenShield.js:602
#: js/ui/screenShield.js:245 js/ui/screenShield.js:603
msgid "Lock was blocked by an application"
msgstr "قفل توسط یک برنامه مسدود شده بود"
#: js/ui/search.js:703
#: js/ui/search.js:702
msgid "Searching…"
msgstr "درحال جست‌وجو…"
#: js/ui/search.js:705
#: js/ui/search.js:704
msgid "No results."
msgstr "بدون نتیجه."
#: js/ui/search.js:831
#: js/ui/search.js:830
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
@ -1776,7 +1780,7 @@ msgid "<unknown>"
msgstr "<ناشناخته>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:424 js/ui/status/network.js:1321
#: js/ui/status/network.js:424 js/ui/status/network.js:1320
#, javascript-format
msgid "%s Off"
msgstr "%s خاموش است"
@ -1802,7 +1806,7 @@ msgid "%s Disconnecting"
msgstr "درحال قطع ارتباط %s"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:442 js/ui/status/network.js:1313
#: js/ui/status/network.js:442 js/ui/status/network.js:1312
#, javascript-format
msgid "%s Connecting"
msgstr "درحال اتصال %s"
@ -1842,7 +1846,7 @@ msgid "Mobile Broadband Settings"
msgstr "تنظیمات پهن‌باند همراه"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:562 js/ui/status/network.js:1318
#: js/ui/status/network.js:562 js/ui/status/network.js:1317
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "سخت‌افزار %s از کار افتاده"
@ -1858,121 +1862,121 @@ msgstr "%s از کار افتاده"
msgid "Connect to Internet"
msgstr "وصل شدن به اینترنت"
#: js/ui/status/network.js:812
#: js/ui/status/network.js:811
msgid "Airplane Mode is On"
msgstr "حالت هواپیمایی روشن است"
#: js/ui/status/network.js:813
#: js/ui/status/network.js:812
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "در زمان روشن بودن حالت هواپیمایی، وای‌فای از کار می‌افتد."
#: js/ui/status/network.js:814
#: js/ui/status/network.js:813
msgid "Turn Off Airplane Mode"
msgstr "خاموش کردن حالت هواپیمایی"
#: js/ui/status/network.js:823
#: js/ui/status/network.js:822
msgid "Wi-Fi is Off"
msgstr "وای‌فای خاموش است"
#: js/ui/status/network.js:824
#: js/ui/status/network.js:823
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "برای وصل شدن به شبکه باید وای‌فای روشن شود."
#: js/ui/status/network.js:825
#: js/ui/status/network.js:824
msgid "Turn On Wi-Fi"
msgstr "روشن کردن وای‌فای"
#: js/ui/status/network.js:850
#: js/ui/status/network.js:849
msgid "Wi-Fi Networks"
msgstr "شبکه‌های وای‌فای"
#: js/ui/status/network.js:852
#: js/ui/status/network.js:851
msgid "Select a network"
msgstr "شبکه‌ای برگزینید"
#: js/ui/status/network.js:884
#: js/ui/status/network.js:883
msgid "No Networks"
msgstr "هیچ شبکه‌ای نیست"
#: js/ui/status/network.js:905 js/ui/status/rfkill.js:106
#: js/ui/status/network.js:904 js/ui/status/rfkill.js:106
msgid "Use hardware switch to turn off"
msgstr "برای خاموش کردن از کلید سخت‌افزاری استفاده کنید"
#: js/ui/status/network.js:1182
#: js/ui/status/network.js:1181
msgid "Select Network"
msgstr "گزینش شبکه"
#: js/ui/status/network.js:1188
#: js/ui/status/network.js:1187
msgid "Wi-Fi Settings"
msgstr "تنظیمات وای‌فای"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1309
#: js/ui/status/network.js:1308
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s نقطهٔ داغ فعال"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1324
#: js/ui/status/network.js:1323
#, javascript-format
msgid "%s Not Connected"
msgstr "%s متصل نشد"
#: js/ui/status/network.js:1421
#: js/ui/status/network.js:1420
msgid "connecting…"
msgstr "درحال اتّصال…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1424
#: js/ui/status/network.js:1423
msgid "authentication required"
msgstr "تایید هویت لازم است"
#: js/ui/status/network.js:1426
#: js/ui/status/network.js:1425
msgid "connection failed"
msgstr "اتصال شکست خورد"
#: js/ui/status/network.js:1477
#: js/ui/status/network.js:1476
msgid "VPN Settings"
msgstr "تنظیمات وی‌پی‌ان"
#: js/ui/status/network.js:1494
#: js/ui/status/network.js:1493
msgid "VPN"
msgstr "وی‌پی‌ان"
#: js/ui/status/network.js:1504
#: js/ui/status/network.js:1503
msgid "VPN Off"
msgstr "وی‌پی‌ان خاموش است"
#: js/ui/status/network.js:1565 js/ui/status/rfkill.js:84
#: js/ui/status/network.js:1564 js/ui/status/rfkill.js:84
msgid "Network Settings"
msgstr "تنظیمات شبکه"
#: js/ui/status/network.js:1594
#: js/ui/status/network.js:1593
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "اتّصال سیمی %s"
msgstr[1] "اتّصال سیمی %s"
#: js/ui/status/network.js:1598
#: js/ui/status/network.js:1597
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
msgstr[0] "اتّصال وای‌فای %s"
msgstr[1] "اتّصال وای‌فای %s"
#: js/ui/status/network.js:1602
#: js/ui/status/network.js:1601
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] "اتّصال مودم %s"
msgstr[1] "اتّصال مودم %s"
#: js/ui/status/network.js:1736
#: js/ui/status/network.js:1735
msgid "Connection failed"
msgstr "اتصال شکست خورد"
#: js/ui/status/network.js:1737
#: js/ui/status/network.js:1736
msgid "Activation of network connection failed"
msgstr "فعاّل‌سازی اتّصال شبکه شکست خورد"
@ -2027,11 +2031,11 @@ msgstr "%Id%I02d تا شارژ کامل (%Id٪)"
msgid "%d%%"
msgstr "%Id٪"
#: js/ui/status/remoteAccess.js:44
#: js/ui/status/remoteAccess.js:43
msgid "Screen is Being Shared"
msgstr "صفحه هم‌رسانی می‌شود"
#: js/ui/status/remoteAccess.js:46
#: js/ui/status/remoteAccess.js:45
msgid "Turn off"
msgstr "خاموش کردن"
@ -2042,27 +2046,27 @@ msgstr "خاموش کردن"
msgid "Airplane Mode On"
msgstr "حالت هواپیمایی روشن است"
#: js/ui/status/system.js:103
#: js/ui/status/system.js:102
msgid "Lock"
msgstr "قفل کردن"
#: js/ui/status/system.js:116
#: js/ui/status/system.js:115
msgid "Power Off / Log Out"
msgstr "خاموش کردن / خروج"
#: js/ui/status/system.js:119
#: js/ui/status/system.js:118
msgid "Log Out"
msgstr "خروج"
#: js/ui/status/system.js:131
#: js/ui/status/system.js:130
msgid "Switch User…"
msgstr "تعویض کاربر…"
#: js/ui/status/system.js:145
#: js/ui/status/system.js:144
msgid "Suspend"
msgstr "تعلیق"
#: js/ui/status/system.js:157
#: js/ui/status/system.js:156
msgid "Power Off…"
msgstr "خاموش کردن…"
@ -2186,7 +2190,7 @@ msgstr "بازنشانی تنظیمات"
msgid "Keep Changes"
msgstr "نگه‌داری تغییرات"
#: js/ui/windowManager.js:85
#: js/ui/windowManager.js:86
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@ -2195,7 +2199,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:544
#: js/ui/windowManager.js:546
#, javascript-format
msgid "%d × %d"
msgstr "%Id × %Id"
@ -2312,13 +2316,13 @@ msgstr "محاوره تایید هویت از طرف کاربر رد شد"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:4
#: subprojects/extensions-app/js/main.js:182
#: subprojects/extensions-app/js/main.js:183
#: subprojects/extensions-app/data/ui/extensions-window.ui:61
msgid "Extensions"
msgstr "افزونه‌ها"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:6
#: subprojects/extensions-app/js/main.js:183
#: subprojects/extensions-app/js/main.js:184
msgid "Manage your GNOME Extensions"
msgstr "مدیریت افزونه‌های پوستهٔ گنوم"
@ -2338,26 +2342,26 @@ msgstr ""
msgid "Configure GNOME Shell Extensions"
msgstr "پیکربندی افزونه‌های پوستهٔ گنوم"
#: subprojects/extensions-app/js/main.js:144
#: subprojects/extensions-app/js/main.js:145
#, javascript-format
msgid "Remove “%s”?"
msgstr "برداشتن «%s»؟"
#: subprojects/extensions-app/js/main.js:145
#: subprojects/extensions-app/js/main.js:146
msgid ""
"If you remove the extension, you need to return to download it if you want to "
"enable it again"
msgstr "اگر افزونه را بردارید، باید برای به کار انداختن دوباره‌اش، بارگیریش کنید"
#: subprojects/extensions-app/js/main.js:149
#: subprojects/extensions-app/js/main.js:150
msgid "Remove"
msgstr "حذف"
#: subprojects/extensions-app/js/main.js:181
#: subprojects/extensions-app/js/main.js:182
msgid "translator-credits"
msgstr "دانیال بهزادی <dani.behzi@ubuntu.com>"
#: subprojects/extensions-app/js/main.js:313
#: subprojects/extensions-app/js/main.js:314
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
@ -2435,6 +2439,10 @@ msgstr ""
"متأسّفیم، ولی امکان گرفتن فهرست افزونه‌های نصب‌شده نبود. مطمئن شوید که به گنوم وارد "
"شده‌اید و دوباره تلاش کنید."
#: subprojects/extensions-app/data/ui/extensions-window.ui:273
msgid "Extension Updates Ready"
msgstr "به‌روز رسانی‌های افزونه آماده‌اند"
#: subprojects/extensions-app/data/ui/extensions-window.ui:289
msgid "Log Out…"
msgstr "خروج…"

150
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: 2020-04-02 09:45+0000\n"
"PO-Revision-Date: 2020-04-13 18:02+0300\n"
"POT-Creation-Date: 2020-05-15 03:04+0000\n"
"PO-Revision-Date: 2020-05-16 14:02+0300\n"
"Last-Translator: Jiri Grönroos <jiri.gronroos+l10n@iki.fi>\n"
"Language-Team: suomi <lokalisointi-lista@googlegroups.com>\n"
"Language: fi\n"
@ -421,7 +421,7 @@ msgid "Network Login"
msgstr "Verkkokirjautuminen"
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:36
#: subprojects/extensions-app/data/ui/extensions-window.ui:223
#: subprojects/extensions-app/data/ui/extensions-window.ui:224
msgid "Somethings gone wrong"
msgstr "Jokin meni pieleen"
@ -448,7 +448,7 @@ msgstr "Käy laajennuksen verkkosivulla"
#: js/gdm/authPrompt.js:135 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:109 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:374 js/ui/extensionDownloader.js:181
#: js/ui/endSessionDialog.js:372 js/ui/extensionDownloader.js:181
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:913 subprojects/extensions-app/js/main.js:148
msgid "Cancel"
@ -504,74 +504,74 @@ msgid "(or swipe finger)"
msgstr "(tai pyyhkäise sormella)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:89
#: js/misc/systemActions.js:93
msgctxt "search-result"
msgid "Power Off"
msgstr "Sammuta"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:92
#: js/misc/systemActions.js:96
msgid "power off;shutdown;reboot;restart;halt;stop"
msgstr ""
"power off;shutdown;reboot;restart;halt;stop;sammuta;käynnistä uudelleen"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:97
#: js/misc/systemActions.js:101
msgctxt "search-result"
msgid "Lock Screen"
msgstr "Lukitse näyttö"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:100
#: js/misc/systemActions.js:104
msgid "lock screen"
msgstr "lock screen"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:105
#: js/misc/systemActions.js:109
msgctxt "search-result"
msgid "Log Out"
msgstr "Kirjaudu ulos"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:108
#: js/misc/systemActions.js:112
msgid "logout;log out;sign off"
msgstr "logout;log out;sign off;kirjaudu ulos;uloskirjautuminen;poistu"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:113
#: js/misc/systemActions.js:117
msgctxt "search-result"
msgid "Suspend"
msgstr "Valmiustila"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:116
#: js/misc/systemActions.js:120
msgid "suspend;sleep"
msgstr "suspend;sleep"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:121
#: js/misc/systemActions.js:125
msgctxt "search-result"
msgid "Switch User"
msgstr "Vaihda käyttäjää"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:124
#: js/misc/systemActions.js:128
msgid "switch user"
msgstr "switch user"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:131
#: js/misc/systemActions.js:135
msgid "lock orientation;unlock orientation;screen;rotation"
msgstr ""
"lock orientation;unlock orientation;screen;rotation;lukitse kierto;lukitse "
"suunta;suunta;kääntö"
#: js/misc/systemActions.js:251
#: js/misc/systemActions.js:255
msgctxt "search-result"
msgid "Unlock Screen Rotation"
msgstr "Vapauta näytön kierto"
#: js/misc/systemActions.js:252
#: js/misc/systemActions.js:256
msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Lukitse näytön kierto"
@ -736,53 +736,53 @@ msgstr "Estä pääsy"
msgid "Grant Access"
msgstr "Salli pääsy"
#: js/ui/appDisplay.js:937
#: js/ui/appDisplay.js:939
msgid "Unnamed Folder"
msgstr "Nimetön kansio"
#: js/ui/appDisplay.js:960
#: js/ui/appDisplay.js:962
msgid "Frequently used applications will appear here"
msgstr "Usein käytetyt sovellukset ilmestyvät tänne"
#: js/ui/appDisplay.js:1095
#: js/ui/appDisplay.js:1097
msgid "Frequent"
msgstr "Käytetyimmät"
#: js/ui/appDisplay.js:1102
#: js/ui/appDisplay.js:1104
msgid "All"
msgstr "Kaikki"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2478 js/ui/panel.js:75
#: js/ui/appDisplay.js:2480 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Avoimet ikkunat"
#: js/ui/appDisplay.js:2498 js/ui/panel.js:82
#: js/ui/appDisplay.js:2500 js/ui/panel.js:82
msgid "New Window"
msgstr "Uusi ikkuna"
#: js/ui/appDisplay.js:2509
#: js/ui/appDisplay.js:2511
msgid "Launch using Dedicated Graphics Card"
msgstr "Käynnistä erillisnäytönohjainta käyttäen"
#: js/ui/appDisplay.js:2537 js/ui/dash.js:239
#: js/ui/appDisplay.js:2539 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Poista suosikeista"
#: js/ui/appDisplay.js:2543
#: js/ui/appDisplay.js:2545
msgid "Add to Favorites"
msgstr "Lisää suosikkeihin"
#: js/ui/appDisplay.js:2553 js/ui/panel.js:93
#: js/ui/appDisplay.js:2555 js/ui/panel.js:93
msgid "Show Details"
msgstr "Näytä tiedot"
#: js/ui/appFavorites.js:152
#: js/ui/appFavorites.js:153
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s on lisätty suosikkeihin."
#: js/ui/appFavorites.js:185
#: js/ui/appFavorites.js:186
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s on poistettu suosikeista."
@ -1155,74 +1155,74 @@ msgstr "Yhdistä verkkoon saadaksesi säätietoja"
msgid "Weather information is currently unavailable"
msgstr "Säätiedot eivät ole juuri nyt saatavilla"
#: js/ui/endSessionDialog.js:39
#: js/ui/endSessionDialog.js:37
#, javascript-format
msgctxt "title"
msgid "Log Out %s"
msgstr "Kirjaa %s ulos"
#: js/ui/endSessionDialog.js:40
#: js/ui/endSessionDialog.js:38
msgctxt "title"
msgid "Log Out"
msgstr "Kirjaudu ulos"
#: js/ui/endSessionDialog.js:42
#: js/ui/endSessionDialog.js:40
#, javascript-format
msgid "%s will be logged out automatically in %d second."
msgid_plural "%s will be logged out automatically in %d seconds."
msgstr[0] "%s - kirjaudutaan ulos automaattisesti %d sekunnin kuluttua."
msgstr[1] "%s - kirjaudutaan ulos automaattisesti %d sekunnin kuluttua."
#: js/ui/endSessionDialog.js:47
#: js/ui/endSessionDialog.js:45
#, javascript-format
msgid "You will be logged out automatically in %d second."
msgid_plural "You will be logged out automatically in %d seconds."
msgstr[0] "Sinut kirjataan ulos automaattisesti %d sekunnin kuluttua."
msgstr[1] "Sinut kirjataan ulos automaattisesti %d sekunnin kuluttua."
#: js/ui/endSessionDialog.js:53
#: js/ui/endSessionDialog.js:51
msgctxt "button"
msgid "Log Out"
msgstr "Kirjaudu ulos"
#: js/ui/endSessionDialog.js:58
#: js/ui/endSessionDialog.js:56
msgctxt "title"
msgid "Power Off"
msgstr "Sammuta"
#: js/ui/endSessionDialog.js:59
#: js/ui/endSessionDialog.js:57
msgctxt "title"
msgid "Install Updates & Power Off"
msgstr "Asenna päivitykset ja sammuta"
#: js/ui/endSessionDialog.js:61
#: js/ui/endSessionDialog.js:59
#, javascript-format
msgid "The system will power off automatically in %d second."
msgid_plural "The system will power off automatically in %d seconds."
msgstr[0] "Järjestelmä sammuu automaattisesti %d sekunnin kuluttua."
msgstr[1] "Järjestelmä sammuu automaattisesti %d sekunnin kuluttua."
#: js/ui/endSessionDialog.js:65
#: js/ui/endSessionDialog.js:63
msgctxt "checkbox"
msgid "Install pending software updates"
msgstr "Asenna odottavat ohjelmistopäivitykset"
#: js/ui/endSessionDialog.js:68 js/ui/endSessionDialog.js:84
#: js/ui/endSessionDialog.js:66 js/ui/endSessionDialog.js:82
msgctxt "button"
msgid "Restart"
msgstr "Käynnistä uudelleen"
#: js/ui/endSessionDialog.js:70
#: js/ui/endSessionDialog.js:68
msgctxt "button"
msgid "Power Off"
msgstr "Sammuta"
#: js/ui/endSessionDialog.js:76
#: js/ui/endSessionDialog.js:74
msgctxt "title"
msgid "Restart"
msgstr "Käynnistä uudelleen"
#: js/ui/endSessionDialog.js:78
#: js/ui/endSessionDialog.js:76
#, javascript-format
msgid "The system will restart automatically in %d second."
msgid_plural "The system will restart automatically in %d seconds."
@ -1231,12 +1231,12 @@ msgstr[0] ""
msgstr[1] ""
"Järjestelmä käynnistyy automaattisesti uudelleen %d sekunnin kuluttua."
#: js/ui/endSessionDialog.js:91
#: js/ui/endSessionDialog.js:89
msgctxt "title"
msgid "Restart & Install Updates"
msgstr "Käynnistä uudelleen ja asenna päivitykset"
#: js/ui/endSessionDialog.js:93
#: js/ui/endSessionDialog.js:91
#, javascript-format
msgid "The system will automatically restart and install updates in %d second."
msgid_plural ""
@ -1248,22 +1248,22 @@ msgstr[1] ""
"Järjestelmä käynnistyy automaattisesti uudelleen ja asentaa päivitykset %d "
"sekunnin kuluttua."
#: js/ui/endSessionDialog.js:99 js/ui/endSessionDialog.js:118
#: js/ui/endSessionDialog.js:97 js/ui/endSessionDialog.js:116
msgctxt "button"
msgid "Restart &amp; Install"
msgstr "Käynnistä uudelleen ja asenna"
#: js/ui/endSessionDialog.js:100
#: js/ui/endSessionDialog.js:98
msgctxt "button"
msgid "Install &amp; Power Off"
msgstr "Asenna ja sammuta"
#: js/ui/endSessionDialog.js:101
#: js/ui/endSessionDialog.js:99
msgctxt "checkbox"
msgid "Power off after updates are installed"
msgstr "Sammuta päivitysten asennuksen jälkeen"
#: js/ui/endSessionDialog.js:108
#: js/ui/endSessionDialog.js:106
msgctxt "title"
msgid "Restart & Install Upgrade"
msgstr "Käynnistä uudelleen ja asenna päivitys"
@ -1271,7 +1271,7 @@ msgstr "Käynnistä uudelleen ja asenna päivitys"
#. Translators: This is the text displayed for system upgrades in the
#. shut down dialog. First %s gets replaced with the distro name and
#. second %s with the distro version to upgrade to
#: js/ui/endSessionDialog.js:113
#: js/ui/endSessionDialog.js:111
#, javascript-format
msgid ""
"%s %s will be installed after restart. Upgrade installation can take a long "
@ -1281,27 +1281,27 @@ msgstr ""
"voi kestää kauan: varmista varmuuskopioidesi ajantasaisuus ja toimivuus. "
"Kiinnitä kone myös verkkovirtaan."
#: js/ui/endSessionDialog.js:261
#: js/ui/endSessionDialog.js:259
msgid "Running on battery power: Please plug in before installing updates."
msgstr ""
"Laite käy akkuvirralla: kiinnitä verkkovirtaan ennen päivitysten asennusta."
#: js/ui/endSessionDialog.js:270
#: js/ui/endSessionDialog.js:268
msgid "Some applications are busy or have unsaved work"
msgstr "Jotkin sovellukset ovat kiireisiä tai sisältävät tallentamatonta työtä"
#: js/ui/endSessionDialog.js:275
#: js/ui/endSessionDialog.js:273
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:588
#: js/ui/endSessionDialog.js:586
#, javascript-format
msgid "%s (remote)"
msgstr "%s (etä)"
#. Translators: Console here refers to a tty like a VT console
#: js/ui/endSessionDialog.js:591
#: js/ui/endSessionDialog.js:589
#, javascript-format
msgid "%s (console)"
msgstr "%s (konsoli)"
@ -1319,11 +1319,11 @@ msgstr "Asenna laajennus"
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Ladataanko ja asennetaanko ”%s” sivustolta extensions.gnome.org?"
#: js/ui/extensionSystem.js:233
#: js/ui/extensionSystem.js:252
msgid "Extension Updates Available"
msgstr "Laajennusten päivityksiä saatavilla"
#: js/ui/extensionSystem.js:234
#: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed."
msgstr "Laajennusten päivitykset ovat valmiina asennettavaksi."
@ -1492,15 +1492,15 @@ msgstr "Näytön lukitus pois käytöstä"
msgid "Screen Locking requires the GNOME display manager."
msgstr "Näytön lukitus vaatii Gnomen kirjautumishallinnan."
#: js/ui/messageTray.js:1551
#: js/ui/messageTray.js:1548
msgid "System Information"
msgstr "Järjestelmän tiedot"
#: js/ui/mpris.js:199
#: js/ui/mpris.js:204
msgid "Unknown artist"
msgstr "Tuntematon esittäjä"
#: js/ui/mpris.js:209
#: js/ui/mpris.js:214
msgid "Unknown title"
msgstr "Tuntematon kappale"
@ -1574,16 +1574,16 @@ msgstr "Lopeta"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: js/ui/panel.js:434
#: js/ui/panel.js:437
msgid "Activities"
msgstr "Toiminnot"
#: js/ui/panel.js:713
#: js/ui/panel.js:716
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Järjestelmä"
#: js/ui/panel.js:826
#: js/ui/panel.js:829
msgid "Top Bar"
msgstr "Yläpalkki"
@ -1614,11 +1614,11 @@ msgstr "Gnomen täytyy lukita näyttö"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: js/ui/screenShield.js:244 js/ui/screenShield.js:598
#: js/ui/screenShield.js:244 js/ui/screenShield.js:601
msgid "Unable to lock"
msgstr "Lukitus epäonnistui"
#: js/ui/screenShield.js:245 js/ui/screenShield.js:599
#: js/ui/screenShield.js:245 js/ui/screenShield.js:602
msgid "Lock was blocked by an application"
msgstr "Lukitus estettiin sovelluksen toimesta"
@ -2266,7 +2266,7 @@ msgstr "Palauta asetukset"
msgid "Keep Changes"
msgstr "Säilytä muutokset"
#: js/ui/windowManager.js:85
#: js/ui/windowManager.js:86
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@ -2275,7 +2275,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:544
#: js/ui/windowManager.js:546
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@ -2368,12 +2368,12 @@ msgstr "Käytä tiettyä tilaa (esim. “gdm”) kirjautumisnäkymää varten"
msgid "List possible modes"
msgstr "Listaa mahdolliset tilat"
#: src/shell-app.c:279
#: src/shell-app.c:286
msgctxt "program"
msgid "Unknown"
msgstr "Tuntematon"
#: src/shell-app.c:530
#: src/shell-app.c:537
#, c-format
msgid "Failed to launch “%s”"
msgstr "Sovelluksen “%s” käynnistäminen epäonnistui"
@ -2496,19 +2496,19 @@ msgstr ""
"Jos kohtaat ongelmia järjestelmän kanssa, on suositeltavaa poistaa kaikki "
"laajennukset käytöstä."
#: subprojects/extensions-app/data/ui/extensions-window.ui:134
#: subprojects/extensions-app/data/ui/extensions-window.ui:135
msgid "Manually Installed"
msgstr "Manuaalisesti asennettu"
#: subprojects/extensions-app/data/ui/extensions-window.ui:158
#: subprojects/extensions-app/data/ui/extensions-window.ui:159
msgid "Built-In"
msgstr "Sisäänrakennettu"
#: subprojects/extensions-app/data/ui/extensions-window.ui:199
#: subprojects/extensions-app/data/ui/extensions-window.ui:200
msgid "No Installed Extensions"
msgstr "Ei asennettuja laajennuksia"
#: subprojects/extensions-app/data/ui/extensions-window.ui:235
#: subprojects/extensions-app/data/ui/extensions-window.ui:236
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."
@ -2516,7 +2516,11 @@ msgstr ""
"Valitettavasti asennettujen laajennusten listaa ei voitu muodostaa. Varmista "
"että olet kirjautunut Gnomeen ja yritä uudelleen."
#: subprojects/extensions-app/data/ui/extensions-window.ui:288
#: subprojects/extensions-app/data/ui/extensions-window.ui:273
msgid "Extension Updates Ready"
msgstr "Laajennuspäivitykset valmiina"
#: subprojects/extensions-app/data/ui/extensions-window.ui:289
msgid "Log Out…"
msgstr "Kirjaudu ulos…"

466
po/fr.po
View File

@ -21,16 +21,16 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master fr\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-03-19 14:34+0000\n"
"PO-Revision-Date: 2020-03-19 21:59+0100\n"
"Last-Translator: Guillaume Bernard <associations@guillaume-bernard.fr>\n"
"Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
"Language: fr_FR\n"
"POT-Creation-Date: 2020-05-11 14:00+0000\n"
"PO-Revision-Date: 2020-05-12 15:16+0200\n"
"Last-Translator: Charles Monzat <charles.monzat@free.fr>\n"
"Language-Team: French <gnomefr@traduc.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 2.3\n"
"X-Generator: Gtranslator 3.36.0\n"
#: data/50-gnome-shell-system.xml:6
msgid "System"
@ -415,80 +415,12 @@ msgstr ""
msgid "Network Login"
msgstr "Identification réseau"
#: js/extensionPrefs/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
#: js/extensionPrefs/data/org.gnome.Extensions.desktop.in.in:4
#: js/extensionPrefs/js/main.js:242
#: js/extensionPrefs/data/ui/extensions-window.ui:61
msgid "Extensions"
msgstr "Extensions"
#: js/extensionPrefs/data/metainfo/org.gnome.Extensions.metainfo.xml.in:6
#: js/extensionPrefs/js/main.js:243
msgid "Manage your GNOME Extensions"
msgstr "Gérer vos extensions GNOME"
#: js/extensionPrefs/data/metainfo/org.gnome.Extensions.metainfo.xml.in:35
msgid ""
"GNOME Extensions handles updating extensions, configuring extension "
"preferences and removing or disabling unwanted extensions."
msgstr ""
"Extensions de GNOME gère la mise à jour des extensions, la configuration des "
"préférences des extensions et la suppression ou la désactivation des "
"extensions non désirées."
#: js/extensionPrefs/data/org.gnome.Extensions.desktop.in.in:7
msgid "Configure GNOME Shell Extensions"
msgstr "Configurer les extensions Shell de GNOME"
#: js/extensionPrefs/js/main.js:164
#, javascript-format
msgid "Remove “%s”?"
msgstr "Enlever « %s » ?"
#: js/extensionPrefs/js/main.js:165
msgid ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
msgstr ""
"Si vous enlevez cette extension, vous devrez recommencer son téléchargement "
"si vous souhaitez la réactiver plus tard"
#: js/extensionPrefs/js/main.js:168 js/gdm/authPrompt.js:135
#: js/ui/audioDeviceSelection.js:57 js/ui/components/networkAgent.js:109
#: js/ui/components/polkitAgent.js:139 js/ui/endSessionDialog.js:374
#: js/ui/extensionDownloader.js:177 js/ui/shellMountOperation.js:376
#: js/ui/shellMountOperation.js:386 js/ui/status/network.js:913
msgid "Cancel"
msgstr "Annuler"
#: js/extensionPrefs/js/main.js:169
msgid "Remove"
msgstr "Enlever"
#: js/extensionPrefs/js/main.js:241
msgid "translator-credits"
msgstr ""
"Mathieu Bridon <bochecha@fedoraproject.org>\n"
"Pablo Martin-Gomez <pablo.martin-gomez@laposte.net>\n"
"Bruno Brouard <annoa.b@gmail.com>\n"
"Cyril Arnaud <cyril dot arnaud at gmail dot com>\n"
"Luc Guillemin <luc.guillemin@gmail.com>\n"
"Luc Pionchon <pionchon.luc@gmail.com>\n"
"Pierre Henry <pierrehenry73@yahoo.fr>\n"
"Alexandre Franke <alexandre.franke@gmail.com>\n"
"Mathieu Stumpf <psychoslave@culture-libre.org>\n"
"Alain Lojewski <allomervan@gmail.com>\n"
"Erwan Georget <egeorget@opmbx.org>\n"
"Julien Humbert <julroy67@gmail.com>\n"
"Claude Paroz <claude@2xlibre.net>\n"
"Charles Monzat <charles.monzat@free.fr>"
#: js/extensionPrefs/js/main.js:285
#: js/extensionPrefs/data/ui/extensions-window.ui:223
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:36
#: subprojects/extensions-app/data/ui/extensions-window.ui:224
msgid "Somethings gone wrong"
msgstr "Quelque chose sest mal passé"
#: js/extensionPrefs/js/main.js:292
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:48
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 "
@ -498,106 +430,25 @@ msgstr ""
"extension ne peuvent être affichés. Nous vous recommandons de signaler ce "
"problème aux auteurs de lextension."
#: js/extensionPrefs/js/main.js:299
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:82
msgid "Technical Details"
msgstr "Détails techniques"
#: js/extensionPrefs/js/main.js:334
msgid "Copy Error"
msgstr "Copier lerreur"
#: js/extensionPrefs/js/main.js:361
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:165
msgid "Homepage"
msgstr "Site Web"
#: js/extensionPrefs/js/main.js:362
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:166
msgid "Visit extension homepage"
msgstr "Visiter le site Web de lextension"
#: js/extensionPrefs/js/main.js:479
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
msgstr[0] "%d extension sera mise à jour à la prochaine connexion."
msgstr[1] "%d extensions seront mises à jour à la prochaine connexion."
#: js/extensionPrefs/data/ui/extension-row.ui:100
#: subprojects/extensions-tool/src/command-create.c:211
#: subprojects/extensions-tool/src/main.c:173
msgid "Description"
msgstr "Description"
#: js/extensionPrefs/data/ui/extension-row.ui:123
#: subprojects/extensions-tool/src/main.c:185
msgid "Version"
msgstr "Version"
#: js/extensionPrefs/data/ui/extension-row.ui:151
msgid "Author"
msgstr "Auteur"
#: js/extensionPrefs/data/ui/extension-row.ui:175
msgid "Website"
msgstr "Site Web"
#: js/extensionPrefs/data/ui/extension-row.ui:192
msgid "Remove…"
msgstr "Enlever…"
#: js/extensionPrefs/data/ui/extensions-window.ui:8
msgid "Help"
msgstr "Aide"
#: js/extensionPrefs/data/ui/extensions-window.ui:12
msgid "About Extensions"
msgstr "À propos des extensions"
#: js/extensionPrefs/data/ui/extensions-window.ui:27
msgid ""
"To find and add extensions, visit <a href=\"https://extensions.gnome.org"
"\">extensions.gnome.org</a>."
msgstr ""
"Pour trouver et ajouter des extensions, visitez <a href=\"https://extensions."
"gnome.org\">extensions.gnome.org</a>."
#: js/extensionPrefs/data/ui/extensions-window.ui:35
msgid "Warning"
msgstr "Avertissement"
#: js/extensionPrefs/data/ui/extensions-window.ui:46
msgid ""
"Extensions can cause system issues, including performance problems. If you "
"encounter problems with your system, it is recommended to disable all "
"extensions."
msgstr ""
"Les extensions peuvent poser des problèmes au système, y compris au niveau "
"des performances. Si vous pensez être dans ce cas, il est recommandé de "
"désactiver toutes les extensions."
#: js/extensionPrefs/data/ui/extensions-window.ui:134
msgid "Manually Installed"
msgstr "Installée manuellement"
#: js/extensionPrefs/data/ui/extensions-window.ui:158
msgid "Built-In"
msgstr "Intégrée"
#: js/extensionPrefs/data/ui/extensions-window.ui:199
msgid "No Installed Extensions"
msgstr "Aucune extension installée"
#: js/extensionPrefs/data/ui/extensions-window.ui:235
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."
msgstr ""
"Nous sommes désolés, mais il nest pas possible dobtenir la liste des "
"extensions installées. Vérifiez que vous êtes bien connecté à GNOME et "
"essayez encore une fois."
#: js/extensionPrefs/data/ui/extensions-window.ui:288
msgid "Log Out…"
msgstr "Fermer la session…"
#: js/gdm/authPrompt.js:135 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:109 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:372 js/ui/extensionDownloader.js:181
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:913 subprojects/extensions-app/js/main.js:148
msgid "Cancel"
msgstr "Annuler"
#. Cisco LEAP
#: js/gdm/authPrompt.js:237 js/ui/components/networkAgent.js:204
@ -649,71 +500,71 @@ msgid "(or swipe finger)"
msgstr "(ou faites glisser le doigt)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:89
#: js/misc/systemActions.js:93
msgctxt "search-result"
msgid "Power Off"
msgstr "Éteindre"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:92
#: js/misc/systemActions.js:96
msgid "power off;shutdown;reboot;restart;halt;stop"
msgstr "éteindre;fermer;débrancher;redémarrer;rallumer;reboot;arrêter;stop"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:97
#: js/misc/systemActions.js:101
msgctxt "search-result"
msgid "Lock Screen"
msgstr "Verrouillage de lécran"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:100
#: js/misc/systemActions.js:104
msgid "lock screen"
msgstr "verrouillage;écran;"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:105
#: js/misc/systemActions.js:109
msgctxt "search-result"
msgid "Log Out"
msgstr "Fermer la session"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:108
#: js/misc/systemActions.js:112
msgid "logout;log out;sign off"
msgstr "fermer;session;déconnecter;"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:113
#: js/misc/systemActions.js:117
msgctxt "search-result"
msgid "Suspend"
msgstr "Mettre en veille"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:116
#: js/misc/systemActions.js:120
msgid "suspend;sleep"
msgstr "mettre en veille;sommeil;"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:121
#: js/misc/systemActions.js:125
msgctxt "search-result"
msgid "Switch User"
msgstr "Changer dutilisateur"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:124
#: js/misc/systemActions.js:128
msgid "switch user"
msgstr "changer;utilisateur;"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:131
#: js/misc/systemActions.js:135
msgid "lock orientation;unlock orientation;screen;rotation"
msgstr "verrouillage;déverrouillage;orientation;écran;rotation"
#: js/misc/systemActions.js:251
#: js/misc/systemActions.js:255
msgctxt "search-result"
msgid "Unlock Screen Rotation"
msgstr "Déverrouiller la rotation de lécran"
#: js/misc/systemActions.js:252
#: js/misc/systemActions.js:256
msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Verrouiller la rotation de lécran"
@ -879,53 +730,53 @@ msgstr "Refuser laccès"
msgid "Grant Access"
msgstr "Accorder laccès"
#: js/ui/appDisplay.js:898
#: js/ui/appDisplay.js:939
msgid "Unnamed Folder"
msgstr "Dossier sans nom"
#: js/ui/appDisplay.js:921
#: js/ui/appDisplay.js:962
msgid "Frequently used applications will appear here"
msgstr "Les applications fréquemment utilisées apparaîtront ici"
#: js/ui/appDisplay.js:1056
#: js/ui/appDisplay.js:1097
msgid "Frequent"
msgstr "Fréquemment utilisées"
#: js/ui/appDisplay.js:1063
#: js/ui/appDisplay.js:1104
msgid "All"
msgstr "Toutes"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2446 js/ui/panel.js:75
#: js/ui/appDisplay.js:2480 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Fenêtres ouvertes"
#: js/ui/appDisplay.js:2466 js/ui/panel.js:82
#: js/ui/appDisplay.js:2500 js/ui/panel.js:82
msgid "New Window"
msgstr "Nouvelle fenêtre"
#: js/ui/appDisplay.js:2477
#: js/ui/appDisplay.js:2511
msgid "Launch using Dedicated Graphics Card"
msgstr "Démarrer en utilisant la carte graphique dédiée"
#: js/ui/appDisplay.js:2505 js/ui/dash.js:239
#: js/ui/appDisplay.js:2539 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Enlever des favoris"
#: js/ui/appDisplay.js:2511
#: js/ui/appDisplay.js:2545
msgid "Add to Favorites"
msgstr "Ajouter aux favoris"
#: js/ui/appDisplay.js:2521 js/ui/panel.js:93
#: js/ui/appDisplay.js:2555 js/ui/panel.js:93
msgid "Show Details"
msgstr "Afficher les détails"
#: js/ui/appFavorites.js:152
#: js/ui/appFavorites.js:153
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s a été ajouté à vos favoris."
#: js/ui/appFavorites.js:185
#: js/ui/appFavorites.js:186
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s a été supprimé de vos favoris."
@ -946,7 +797,7 @@ msgstr "Casque audio"
msgid "Headset"
msgstr "Micro-casque"
#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:269
#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:270
msgid "Microphone"
msgstr "Microphone"
@ -1102,7 +953,7 @@ msgstr "Aucun évènement"
msgid "Do Not Disturb"
msgstr "Ne pas déranger"
#: js/ui/calendar.js:1171
#: js/ui/calendar.js:1176
msgid "Clear"
msgstr "Effacer"
@ -1252,7 +1103,7 @@ msgstr "Échec de lauthentification. Essayez à nouveau."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: js/ui/components/telepathyClient.js:787
#: js/ui/components/telepathyClient.js:823
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s est maintenant connu sous le nom de %s"
@ -1308,23 +1159,23 @@ msgstr "Ajouter des horloges locales…"
msgid "World Clocks"
msgstr "Horloges locales"
#: js/ui/dateMenu.js:279
#: js/ui/dateMenu.js:289
msgid "Weather"
msgstr "Météo"
#: js/ui/dateMenu.js:394
#: js/ui/dateMenu.js:418
msgid "Select a location…"
msgstr "Choisir un emplacement…"
#: js/ui/dateMenu.js:407
#: js/ui/dateMenu.js:426
msgid "Loading…"
msgstr "Chargement…"
#: js/ui/dateMenu.js:417
#: js/ui/dateMenu.js:436
msgid "Go online for weather information"
msgstr "Chercher les informations météorologiques en ligne"
#: js/ui/dateMenu.js:419
#: js/ui/dateMenu.js:438
msgid "Weather information is currently unavailable"
msgstr "Les informations météorologiques ne sont pas disponibles actuellement"
@ -1464,35 +1315,35 @@ msgid "Other users are logged in"
msgstr "Dautres utilisateurs sont connectés"
#. Translators: Remote here refers to a remote session, like a ssh login
#: js/ui/endSessionDialog.js:588
#: js/ui/endSessionDialog.js:586
#, javascript-format
msgid "%s (remote)"
msgstr "%s (distant)"
#. Translators: Console here refers to a tty like a VT console
#: js/ui/endSessionDialog.js:591
#: js/ui/endSessionDialog.js:589
#, javascript-format
msgid "%s (console)"
msgstr "%s (console)"
#: js/ui/extensionDownloader.js:181
#: js/ui/extensionDownloader.js:185
msgid "Install"
msgstr "Installer"
#: js/ui/extensionDownloader.js:187
#: js/ui/extensionDownloader.js:191
msgid "Install Extension"
msgstr "Installer lextension"
#: js/ui/extensionDownloader.js:188
#: js/ui/extensionDownloader.js:192
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Télécharger et installer « %s » à partir de extensions.gnome.org ?"
#: js/ui/extensionSystem.js:228
#: js/ui/extensionSystem.js:252
msgid "Extension Updates Available"
msgstr "Mises à jour dextensions disponibles"
#: js/ui/extensionSystem.js:229
#: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed."
msgstr "Des mises à jour dextensions sont prêtes à être installées."
@ -1641,11 +1492,11 @@ msgstr "Afficher la source"
msgid "Web Page"
msgstr "Page Web"
#: js/ui/main.js:274
#: js/ui/main.js:279
msgid "Logged in as a privileged user"
msgstr "Connecté en tant quutilisateur privilégié"
#: js/ui/main.js:275
#: js/ui/main.js:280
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@ -1654,16 +1505,16 @@ msgstr ""
"des raisons de sécurité. Si possible, connectez-vous comme utilisateur "
"normal."
#: js/ui/main.js:281
#: js/ui/main.js:319
msgid "Screen Lock disabled"
msgstr "Verrouillage décran désactivé"
#: js/ui/main.js:282
#: js/ui/main.js:320
msgid "Screen Locking requires the GNOME display manager."
msgstr ""
"Le verrouillage de lécran nécessite le gestionnaire daffichage GNOME."
#: js/ui/messageTray.js:1554
#: js/ui/messageTray.js:1548
msgid "System Information"
msgstr "Informations du système"
@ -1743,16 +1594,16 @@ msgstr "Quitter"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: js/ui/panel.js:434
#: js/ui/panel.js:437
msgid "Activities"
msgstr "Activités"
#: js/ui/panel.js:713
#: js/ui/panel.js:716
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Système"
#: js/ui/panel.js:826
#: js/ui/panel.js:829
msgid "Top Bar"
msgstr "Barre supérieure"
@ -1783,11 +1634,11 @@ msgstr "GNOME a besoin de verrouiller lécran"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: js/ui/screenShield.js:244 js/ui/screenShield.js:598
#: js/ui/screenShield.js:244 js/ui/screenShield.js:601
msgid "Unable to lock"
msgstr "Impossible de verrouiller"
#: js/ui/screenShield.js:245 js/ui/screenShield.js:599
#: js/ui/screenShield.js:245 js/ui/screenShield.js:602
msgid "Lock was blocked by an application"
msgstr "Le verrouillage a été bloqué par une application"
@ -1870,13 +1721,13 @@ msgid "The PIM must be a number or empty."
msgstr "Le numéro PIM doit être un nombre ou être vide."
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:469
#: js/ui/shellMountOperation.js:465
#, javascript-format
msgid "Unable to start %s"
msgstr "Impossible de démarrer %s"
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:471
#: js/ui/shellMountOperation.js:467
#, javascript-format
msgid "Couldnt find the %s application"
msgstr "Impossible de trouver lapplication %s"
@ -2352,11 +2203,11 @@ msgstr "Erreur dautorisation Thunderbolt"
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "Impossible dautoriser le périphérique Thunderbolt : %s"
#: js/ui/status/volume.js:150
#: js/ui/status/volume.js:151
msgid "Volume changed"
msgstr "Volume modifié"
#: js/ui/status/volume.js:221
#: js/ui/status/volume.js:222
msgid "Volume"
msgstr "Volume"
@ -2390,23 +2241,23 @@ msgstr "Intégré seulement"
#. Translators: This is a time format for a date in
#. long format
#: js/ui/unlockDialog.js:370
#: js/ui/unlockDialog.js:371
msgid "%A %B %-d"
msgstr "%A %-d %B"
#: js/ui/unlockDialog.js:376
#: js/ui/unlockDialog.js:377
msgid "Swipe up to unlock"
msgstr "Faire glisser vers le haut pour déverrouiller"
#: js/ui/unlockDialog.js:377
#: js/ui/unlockDialog.js:378
msgid "Click or press a key to unlock"
msgstr "Cliquer ou appuyer sur une touche pour déverrouiller"
#: js/ui/unlockDialog.js:549
#: js/ui/unlockDialog.js:550
msgid "Unlock Window"
msgstr "Fenêtre de déverrouillage"
#: js/ui/unlockDialog.js:558
#: js/ui/unlockDialog.js:559
msgid "Log in as another user"
msgstr "Se connecter en tant quautre utilisateur"
@ -2439,7 +2290,7 @@ msgstr "Restaurer les paramètres"
msgid "Keep Changes"
msgstr "Conserver les modifications"
#: js/ui/windowManager.js:85
#: js/ui/windowManager.js:86
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@ -2448,7 +2299,7 @@ msgstr[1] "Les paramètres seront restaurés dans %d secondes"
#. 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:544
#: js/ui/windowManager.js:546
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@ -2542,12 +2393,12 @@ msgstr ""
msgid "List possible modes"
msgstr "Lister les modes possibles"
#: src/shell-app.c:279
#: src/shell-app.c:286
msgctxt "program"
msgid "Unknown"
msgstr "Inconnu"
#: src/shell-app.c:530
#: src/shell-app.c:537
#, c-format
msgid "Failed to launch “%s”"
msgstr "Impossible de lancer « %s »"
@ -2564,6 +2415,156 @@ msgstr "Le mot de passe ne peut pas être vide"
msgid "Authentication dialog was dismissed by the user"
msgstr "La fenêtre dauthentification a été écartée par lutilisateur"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:4
#: subprojects/extensions-app/js/main.js:182
#: subprojects/extensions-app/data/ui/extensions-window.ui:61
msgid "Extensions"
msgstr "Extensions"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:6
#: subprojects/extensions-app/js/main.js:183
msgid "Manage your GNOME Extensions"
msgstr "Gérer vos extensions GNOME"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:35
msgid ""
"GNOME Extensions handles updating extensions, configuring extension "
"preferences and removing or disabling unwanted extensions."
msgstr ""
"Extensions de GNOME gère la mise à jour des extensions, la configuration des "
"préférences des extensions et la suppression ou la désactivation des "
"extensions non désirées."
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:7
msgid "Configure GNOME Shell Extensions"
msgstr "Configurer les extensions Shell de GNOME"
#: subprojects/extensions-app/js/main.js:144
#, javascript-format
msgid "Remove “%s”?"
msgstr "Enlever « %s » ?"
#: subprojects/extensions-app/js/main.js:145
msgid ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
msgstr ""
"Si vous enlevez cette extension, vous devrez recommencer son téléchargement "
"si vous souhaitez la réactiver plus tard"
#: subprojects/extensions-app/js/main.js:149
msgid "Remove"
msgstr "Enlever"
#: subprojects/extensions-app/js/main.js:181
msgid "translator-credits"
msgstr ""
"Mathieu Bridon <bochecha@fedoraproject.org>\n"
"Pablo Martin-Gomez <pablo.martin-gomez@laposte.net>\n"
"Bruno Brouard <annoa.b@gmail.com>\n"
"Cyril Arnaud <cyril dot arnaud at gmail dot com>\n"
"Luc Guillemin <luc.guillemin@gmail.com>\n"
"Luc Pionchon <pionchon.luc@gmail.com>\n"
"Pierre Henry <pierrehenry73@yahoo.fr>\n"
"Alexandre Franke <alexandre.franke@gmail.com>\n"
"Mathieu Stumpf <psychoslave@culture-libre.org>\n"
"Alain Lojewski <allomervan@gmail.com>\n"
"Erwan Georget <egeorget@opmbx.org>\n"
"Julien Humbert <julroy67@gmail.com>\n"
"Claude Paroz <claude@2xlibre.net>\n"
"Charles Monzat <charles.monzat@free.fr>"
#: subprojects/extensions-app/js/main.js:316
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
msgstr[0] "%d extension sera mise à jour à la prochaine connexion."
msgstr[1] "%d extensions seront mises à jour à la prochaine connexion."
#: subprojects/extensions-app/data/ui/extension-row.ui:100
#: subprojects/extensions-tool/src/command-create.c:211
#: subprojects/extensions-tool/src/main.c:173
msgid "Description"
msgstr "Description"
#: subprojects/extensions-app/data/ui/extension-row.ui:123
#: subprojects/extensions-tool/src/main.c:185
msgid "Version"
msgstr "Version"
#: subprojects/extensions-app/data/ui/extension-row.ui:151
msgid "Author"
msgstr "Auteur"
#: subprojects/extensions-app/data/ui/extension-row.ui:175
msgid "Website"
msgstr "Site Web"
#: subprojects/extensions-app/data/ui/extension-row.ui:192
msgid "Remove…"
msgstr "Enlever…"
#: subprojects/extensions-app/data/ui/extensions-window.ui:8
msgid "Help"
msgstr "Aide"
#: subprojects/extensions-app/data/ui/extensions-window.ui:12
msgid "About Extensions"
msgstr "À propos des extensions"
#: subprojects/extensions-app/data/ui/extensions-window.ui:27
msgid ""
"To find and add extensions, visit <a href=\"https://extensions.gnome.org"
"\">extensions.gnome.org</a>."
msgstr ""
"Pour trouver et ajouter des extensions, visitez <a href=\"https://extensions."
"gnome.org\">extensions.gnome.org</a>."
#: subprojects/extensions-app/data/ui/extensions-window.ui:35
msgid "Warning"
msgstr "Avertissement"
#: subprojects/extensions-app/data/ui/extensions-window.ui:46
msgid ""
"Extensions can cause system issues, including performance problems. If you "
"encounter problems with your system, it is recommended to disable all "
"extensions."
msgstr ""
"Les extensions peuvent poser des problèmes au système, y compris au niveau "
"des performances. Si vous pensez être dans ce cas, il est recommandé de "
"désactiver toutes les extensions."
#: subprojects/extensions-app/data/ui/extensions-window.ui:135
msgid "Manually Installed"
msgstr "Installée manuellement"
#: subprojects/extensions-app/data/ui/extensions-window.ui:159
msgid "Built-In"
msgstr "Intégrée"
#: subprojects/extensions-app/data/ui/extensions-window.ui:200
msgid "No Installed Extensions"
msgstr "Aucune extension installée"
#: subprojects/extensions-app/data/ui/extensions-window.ui:236
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."
msgstr ""
"Nous sommes désolés, mais il nest pas possible dobtenir la liste des "
"extensions installées. Vérifiez que vous êtes bien connecté à GNOME et "
"essayez encore une fois."
#: subprojects/extensions-app/data/ui/extensions-window.ui:273
#| msgid "Extension Updates Available"
msgid "Extension Updates Ready"
msgstr "Mises à jour dextensions prêtes"
#: subprojects/extensions-app/data/ui/extensions-window.ui:289
msgid "Log Out…"
msgstr "Fermer la session…"
#. Translators: a file path to an extension directory
#: subprojects/extensions-tool/src/command-create.c:125
#, c-format
@ -2902,6 +2903,9 @@ msgstr[1] "%u entrées"
msgid "System Sounds"
msgstr "Sons système"
#~ msgid "Copy Error"
#~ msgstr "Copier lerreur"
#~| msgid "Username: "
#~ msgid "Username…"
#~ msgstr "Nom dutilisateur…"

597
po/fur.po

File diff suppressed because it is too large Load Diff

437
po/id.po
View File

@ -11,8 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-03-19 14:34+0000\n"
"PO-Revision-Date: 2020-03-20 14:13+0700\n"
"POT-Creation-Date: 2020-05-11 14:00+0000\n"
"PO-Revision-Date: 2020-05-14 16:29+0700\n"
"Last-Translator: Kukuh Syafaat <kukuhsyafaat@gnome.org>\n"
"Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n"
"Language: id\n"
@ -20,7 +20,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.3\n"
"X-Generator: Poedit 2.3.1\n"
"X-DamnedLies-Scope: partial\n"
"X-Poedit-SourceCharset: UTF-8\n"
@ -396,70 +396,12 @@ msgstr ""
msgid "Network Login"
msgstr "Log Masuk Jaringan"
#: js/extensionPrefs/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
#: js/extensionPrefs/data/org.gnome.Extensions.desktop.in.in:4
#: js/extensionPrefs/js/main.js:242
#: js/extensionPrefs/data/ui/extensions-window.ui:61
msgid "Extensions"
msgstr "Ekstensi"
#: js/extensionPrefs/data/metainfo/org.gnome.Extensions.metainfo.xml.in:6
#: js/extensionPrefs/js/main.js:243
msgid "Manage your GNOME Extensions"
msgstr "Kelola Ekstensi GNOME Anda"
#: js/extensionPrefs/data/metainfo/org.gnome.Extensions.metainfo.xml.in:35
msgid ""
"GNOME Extensions handles updating extensions, configuring extension "
"preferences and removing or disabling unwanted extensions."
msgstr ""
"Ekstensi GNOME menangani pemutakhiran ekstensi, mengkonfigurasi preferensi "
"ekstensi, dan menghapus atau menonaktifkan ekstensi yang tidak diinginkan."
#: js/extensionPrefs/data/org.gnome.Extensions.desktop.in.in:7
msgid "Configure GNOME Shell Extensions"
msgstr "Konfigurasi Ekstensi GNOME Shell"
#: js/extensionPrefs/js/main.js:164
#, javascript-format
msgid "Remove “%s”?"
msgstr "Hapus \"%s\"?"
#: js/extensionPrefs/js/main.js:165
msgid ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
msgstr ""
"Jika Anda menghapus ekstensi, Anda harus kembali untuk mengunduhnya jika "
"Anda ingin mengaktifkannya lagi"
#: js/extensionPrefs/js/main.js:168 js/gdm/authPrompt.js:135
#: js/ui/audioDeviceSelection.js:57 js/ui/components/networkAgent.js:109
#: js/ui/components/polkitAgent.js:139 js/ui/endSessionDialog.js:374
#: js/ui/extensionDownloader.js:177 js/ui/shellMountOperation.js:376
#: js/ui/shellMountOperation.js:386 js/ui/status/network.js:913
msgid "Cancel"
msgstr "Batal"
#: js/extensionPrefs/js/main.js:169
msgid "Remove"
msgstr "Hapus"
#: js/extensionPrefs/js/main.js:241
msgid "translator-credits"
msgstr ""
"Andika Triwidada <andika@gmail.com>, 2010-2014, 2017.\n"
"Dirgita <dirgitadevina@yahoo.co.id>, 2011, 2012, 2014.\n"
"Wibiharto <wibinem@yahoo.com>, 2011.\n"
"Kukuh Syafaat <kukuhsyafaat@gnome.org>, 2017-2020.\n"
"Sucipto <sucipto@pm.me>, 2020."
#: js/extensionPrefs/js/main.js:285
#: js/extensionPrefs/data/ui/extensions-window.ui:223
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:36
#: subprojects/extensions-app/data/ui/extensions-window.ui:224
msgid "Somethings gone wrong"
msgstr "Ada yang tidak beres"
#: js/extensionPrefs/js/main.js:292
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:48
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 "
@ -469,105 +411,25 @@ msgstr ""
"tidak dapat ditampilkan. Kami menyarankan Anda melaporkan masalah ini kepada "
"penulis ekstensi."
#: js/extensionPrefs/js/main.js:299
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:82
msgid "Technical Details"
msgstr "Detail Teknis"
#: js/extensionPrefs/js/main.js:334
msgid "Copy Error"
msgstr "Salin Galat"
#: js/extensionPrefs/js/main.js:361
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:165
msgid "Homepage"
msgstr "Halaman Web"
#: js/extensionPrefs/js/main.js:362
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:166
msgid "Visit extension homepage"
msgstr "Kunjungi halaman web ekstensi"
#: js/extensionPrefs/js/main.js:479
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
msgstr[0] "%d ekstensi akan diperbarui pada log masuk berikutnya."
msgstr[1] "%d ekstensi akan diperbarui pada log masuk berikutnya."
#: js/extensionPrefs/data/ui/extension-row.ui:100
#: subprojects/extensions-tool/src/command-create.c:211
#: subprojects/extensions-tool/src/main.c:173
msgid "Description"
msgstr "Deskripsi"
#: js/extensionPrefs/data/ui/extension-row.ui:123
#: subprojects/extensions-tool/src/main.c:185
msgid "Version"
msgstr "Versi"
#: js/extensionPrefs/data/ui/extension-row.ui:151
msgid "Author"
msgstr "Penulis"
#: js/extensionPrefs/data/ui/extension-row.ui:175
msgid "Website"
msgstr "Situs Web"
#: js/extensionPrefs/data/ui/extension-row.ui:192
msgid "Remove…"
msgstr "Hapus…"
#: js/extensionPrefs/data/ui/extensions-window.ui:8
msgid "Help"
msgstr "Bantuan"
#: js/extensionPrefs/data/ui/extensions-window.ui:12
msgid "About Extensions"
msgstr "Tentang Ekstensi"
#: js/extensionPrefs/data/ui/extensions-window.ui:27
msgid ""
"To find and add extensions, visit <a href=\"https://extensions.gnome.org"
"\">extensions.gnome.org</a>."
msgstr ""
"Untuk menemukan dan menambahkan ekstensi, kunjungi <a href=\"https://"
"extensions.gnome.org\">extensions.gnome.org</a>."
#: js/extensionPrefs/data/ui/extensions-window.ui:35
msgid "Warning"
msgstr "Peringatan"
#: js/extensionPrefs/data/ui/extensions-window.ui:46
msgid ""
"Extensions can cause system issues, including performance problems. If you "
"encounter problems with your system, it is recommended to disable all "
"extensions."
msgstr ""
"Ekstensi dapat menyebabkan masalah sistem, termasuk masalah kinerja. Jika "
"Anda mengalami masalah dengan sistem Anda, disarankan untuk menonaktifkan "
"semua ekstensi."
#: js/extensionPrefs/data/ui/extensions-window.ui:134
msgid "Manually Installed"
msgstr "Dipasang Secara Manual"
#: js/extensionPrefs/data/ui/extensions-window.ui:158
msgid "Built-In"
msgstr "Bawaan"
#: js/extensionPrefs/data/ui/extensions-window.ui:199
msgid "No Installed Extensions"
msgstr "Tidak Ada Ekstensi Terpasang"
#: js/extensionPrefs/data/ui/extensions-window.ui:235
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."
msgstr ""
"Kami sangat menyesal, tetapi tidak mungkin mendapatkan daftar ekstensi yang "
"dipasang. Pastikan Anda masuk ke GNOME dan coba lagi."
#: js/extensionPrefs/data/ui/extensions-window.ui:288
msgid "Log Out…"
msgstr "Keluar…"
#: js/gdm/authPrompt.js:135 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:109 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:372 js/ui/extensionDownloader.js:181
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:913 subprojects/extensions-app/js/main.js:148
msgid "Cancel"
msgstr "Batal"
#. Cisco LEAP
#: js/gdm/authPrompt.js:237 js/ui/components/networkAgent.js:204
@ -619,71 +481,71 @@ msgid "(or swipe finger)"
msgstr "(atau gesekkan jari)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:89
#: js/misc/systemActions.js:93
msgctxt "search-result"
msgid "Power Off"
msgstr "Matikan"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:92
#: js/misc/systemActions.js:96
msgid "power off;shutdown;reboot;restart;halt;stop"
msgstr "matikan;nyalakan ulang;berhenti"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:97
#: js/misc/systemActions.js:101
msgctxt "search-result"
msgid "Lock Screen"
msgstr "Kunci Layar"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:100
#: js/misc/systemActions.js:104
msgid "lock screen"
msgstr "kunci layar"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:105
#: js/misc/systemActions.js:109
msgctxt "search-result"
msgid "Log Out"
msgstr "Keluar"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:108
#: js/misc/systemActions.js:112
msgid "logout;log out;sign off"
msgstr "keluar;logout;log out;sign off"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:113
#: js/misc/systemActions.js:117
msgctxt "search-result"
msgid "Suspend"
msgstr "Suspensi"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:116
#: js/misc/systemActions.js:120
msgid "suspend;sleep"
msgstr "suspensi;tidur"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:121
#: js/misc/systemActions.js:125
msgctxt "search-result"
msgid "Switch User"
msgstr "Ganti Pengguna"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:124
#: js/misc/systemActions.js:128
msgid "switch user"
msgstr "ganti pengguna"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:131
#: js/misc/systemActions.js:135
msgid "lock orientation;unlock orientation;screen;rotation"
msgstr "kunci orientasi;buka kunci orientasi;layar;rotasi"
#: js/misc/systemActions.js:251
#: js/misc/systemActions.js:255
msgctxt "search-result"
msgid "Unlock Screen Rotation"
msgstr "Buka Kunci Rotasi Layar"
#: js/misc/systemActions.js:252
#: js/misc/systemActions.js:256
msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Kunci Rotasi Layar"
@ -849,53 +711,53 @@ msgstr "Tolak Akses"
msgid "Grant Access"
msgstr "Beri Akses"
#: js/ui/appDisplay.js:898
#: js/ui/appDisplay.js:939
msgid "Unnamed Folder"
msgstr "Folder Tanpa Nama"
#: js/ui/appDisplay.js:921
#: js/ui/appDisplay.js:962
msgid "Frequently used applications will appear here"
msgstr "Aplikasi yang sering dipakai akan muncul di sini"
#: js/ui/appDisplay.js:1056
#: js/ui/appDisplay.js:1097
msgid "Frequent"
msgstr "Sering"
#: js/ui/appDisplay.js:1063
#: js/ui/appDisplay.js:1104
msgid "All"
msgstr "Semua"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2446 js/ui/panel.js:75
#: js/ui/appDisplay.js:2480 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Buka Jendela"
#: js/ui/appDisplay.js:2466 js/ui/panel.js:82
#: js/ui/appDisplay.js:2500 js/ui/panel.js:82
msgid "New Window"
msgstr "Jendela Baru"
#: js/ui/appDisplay.js:2477
#: js/ui/appDisplay.js:2511
msgid "Launch using Dedicated Graphics Card"
msgstr "Luncurkan menggunakan Kartu Grafis Terdedikasi"
#: js/ui/appDisplay.js:2505 js/ui/dash.js:239
#: js/ui/appDisplay.js:2539 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Hapus dari Favorit"
#: js/ui/appDisplay.js:2511
#: js/ui/appDisplay.js:2545
msgid "Add to Favorites"
msgstr "Tambah ke Favorit"
#: js/ui/appDisplay.js:2521 js/ui/panel.js:93
#: js/ui/appDisplay.js:2555 js/ui/panel.js:93
msgid "Show Details"
msgstr "Tampilkan Rincian"
#: js/ui/appFavorites.js:152
#: js/ui/appFavorites.js:153
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s telah ditambahkan ke favorit Anda."
#: js/ui/appFavorites.js:185
#: js/ui/appFavorites.js:186
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s telah dihapus dari favorit Anda."
@ -916,7 +778,7 @@ msgstr "Headphone"
msgid "Headset"
msgstr "Headset"
#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:269
#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:270
msgid "Microphone"
msgstr "Mikrofon"
@ -1057,7 +919,7 @@ msgstr "Tak Ada Kejadian"
msgid "Do Not Disturb"
msgstr "Jangan Ganggu"
#: js/ui/calendar.js:1171
#: js/ui/calendar.js:1176
msgid "Clear"
msgstr "Bersihkan"
@ -1207,7 +1069,7 @@ msgstr "Maaf, tidak berhasil. Silakan coba lagi."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: js/ui/components/telepathyClient.js:787
#: js/ui/components/telepathyClient.js:823
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s sekarang dikenal sebagai %s"
@ -1251,23 +1113,23 @@ msgstr "Tambah jam dunia…"
msgid "World Clocks"
msgstr "Jam Dunia"
#: js/ui/dateMenu.js:279
#: js/ui/dateMenu.js:289
msgid "Weather"
msgstr "Cuaca"
#: js/ui/dateMenu.js:394
#: js/ui/dateMenu.js:418
msgid "Select a location…"
msgstr "Pilih lokasi…"
#: js/ui/dateMenu.js:407
#: js/ui/dateMenu.js:426
msgid "Loading…"
msgstr "Memuat…"
#: js/ui/dateMenu.js:417
#: js/ui/dateMenu.js:436
msgid "Go online for weather information"
msgstr "Pergi daring untuk informasi cuaca"
#: js/ui/dateMenu.js:419
#: js/ui/dateMenu.js:438
msgid "Weather information is currently unavailable"
msgstr "Informasi cuaca saat ini tidak tersedia"
@ -1409,35 +1271,35 @@ 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:588
#: js/ui/endSessionDialog.js:586
#, javascript-format
msgid "%s (remote)"
msgstr "%s (jarak jauh)"
#. Translators: Console here refers to a tty like a VT console
#: js/ui/endSessionDialog.js:591
#: js/ui/endSessionDialog.js:589
#, javascript-format
msgid "%s (console)"
msgstr "%s (konsol)"
#: js/ui/extensionDownloader.js:181
#: js/ui/extensionDownloader.js:185
msgid "Install"
msgstr "Pasang"
#: js/ui/extensionDownloader.js:187
#: js/ui/extensionDownloader.js:191
msgid "Install Extension"
msgstr "Pasang Ekstensi"
#: js/ui/extensionDownloader.js:188
#: js/ui/extensionDownloader.js:192
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Unduh dan pasang \"%s\" dari extensions.gnome.org?"
#: js/ui/extensionSystem.js:228
#: js/ui/extensionSystem.js:252
msgid "Extension Updates Available"
msgstr "Pemutakhiran Ekstensi Tersedia"
#: js/ui/extensionSystem.js:229
#: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed."
msgstr "Pemutakhiran ekstensi siap dipasang."
@ -1584,11 +1446,11 @@ msgstr "Tilik Sumber"
msgid "Web Page"
msgstr "Halaman Web"
#: js/ui/main.js:274
#: js/ui/main.js:279
msgid "Logged in as a privileged user"
msgstr "Masuk sebagai pengguna istimewa"
#: js/ui/main.js:275
#: js/ui/main.js:280
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@ -1596,15 +1458,15 @@ msgstr ""
"Menjalankan sesi sebagai pengguna istimewa harus dihindari untuk alasan "
"keamanan. Jika memungkinkan, Anda harus masuk sebagai pengguna biasa."
#: js/ui/main.js:281
#: js/ui/main.js:319
msgid "Screen Lock disabled"
msgstr "Kunci Layar dinonaktifkan"
#: js/ui/main.js:282
#: js/ui/main.js:320
msgid "Screen Locking requires the GNOME display manager."
msgstr "Penguncian Layar memerlukan manajer tampilan GNOME."
#: js/ui/messageTray.js:1554
#: js/ui/messageTray.js:1548
msgid "System Information"
msgstr "Informasi Sistem"
@ -1684,16 +1546,16 @@ msgstr "Keluar"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: js/ui/panel.js:434
#: js/ui/panel.js:437
msgid "Activities"
msgstr "Aktivitas"
#: js/ui/panel.js:713
#: js/ui/panel.js:716
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistem"
#: js/ui/panel.js:826
#: js/ui/panel.js:829
msgid "Top Bar"
msgstr "Bar Atas"
@ -1724,11 +1586,11 @@ msgstr "GNOME perlu mengunci layar"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: js/ui/screenShield.js:244 js/ui/screenShield.js:598
#: js/ui/screenShield.js:244 js/ui/screenShield.js:601
msgid "Unable to lock"
msgstr "Tak bisa mengunci"
#: js/ui/screenShield.js:245 js/ui/screenShield.js:599
#: js/ui/screenShield.js:245 js/ui/screenShield.js:602
msgid "Lock was blocked by an application"
msgstr "Kunci diblokir oleh suatu aplikasi"
@ -1811,13 +1673,13 @@ msgid "The PIM must be a number or empty."
msgstr "PIM harus berupa angka atau kosong."
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:469
#: js/ui/shellMountOperation.js:465
#, javascript-format
msgid "Unable to start %s"
msgstr "Tak bisa memulai %s"
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:471
#: js/ui/shellMountOperation.js:467
#, javascript-format
msgid "Couldnt find the %s application"
msgstr "Tak bisa menemukan aplikasi %s"
@ -2290,11 +2152,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:150
#: js/ui/status/volume.js:151
msgid "Volume changed"
msgstr "Volume diubah"
#: js/ui/status/volume.js:221
#: js/ui/status/volume.js:222
msgid "Volume"
msgstr "Volume"
@ -2334,23 +2196,23 @@ msgstr "Hanya Bawaan"
# %d: 1
#. Translators: This is a time format for a date in
#. long format
#: js/ui/unlockDialog.js:370
#: js/ui/unlockDialog.js:371
msgid "%A %B %-d"
msgstr "%A, %d %B"
#: js/ui/unlockDialog.js:376
#: js/ui/unlockDialog.js:377
msgid "Swipe up to unlock"
msgstr "Gesek ke atas untuk membuka kunci"
#: js/ui/unlockDialog.js:377
#: js/ui/unlockDialog.js:378
msgid "Click or press a key to unlock"
msgstr "Klik atau tekan tombol untuk membuka kunci"
#: js/ui/unlockDialog.js:549
#: js/ui/unlockDialog.js:550
msgid "Unlock Window"
msgstr "Buka Kunci Jendela"
#: js/ui/unlockDialog.js:558
#: js/ui/unlockDialog.js:559
msgid "Log in as another user"
msgstr "Masuk sebagai pengguna lain"
@ -2383,7 +2245,7 @@ msgstr "Balikkan Tatanan"
msgid "Keep Changes"
msgstr "Simpan Perubahan"
#: js/ui/windowManager.js:85
#: js/ui/windowManager.js:86
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@ -2392,7 +2254,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:544
#: js/ui/windowManager.js:546
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@ -2485,12 +2347,12 @@ msgstr "Menggunakan mode tertentu, mis. \"gdm\" untuk layar masuk"
msgid "List possible modes"
msgstr "Menampilkan mode yang mungkin"
#: src/shell-app.c:279
#: src/shell-app.c:286
msgctxt "program"
msgid "Unknown"
msgstr "Tak dikenal"
#: src/shell-app.c:530
#: src/shell-app.c:537
#, c-format
msgid "Failed to launch “%s”"
msgstr "Gagal meluncurkan \"%s\""
@ -2507,6 +2369,144 @@ msgstr "Kata sandi tidak boleh kosong"
msgid "Authentication dialog was dismissed by the user"
msgstr "Dialog autentikasi ditolak oleh pengguna"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:4
#: subprojects/extensions-app/js/main.js:182
#: subprojects/extensions-app/data/ui/extensions-window.ui:61
msgid "Extensions"
msgstr "Ekstensi"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:6
#: subprojects/extensions-app/js/main.js:183
msgid "Manage your GNOME Extensions"
msgstr "Kelola Ekstensi GNOME Anda"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:35
msgid ""
"GNOME Extensions handles updating extensions, configuring extension "
"preferences and removing or disabling unwanted extensions."
msgstr ""
"Ekstensi GNOME menangani pemutakhiran ekstensi, mengkonfigurasi preferensi "
"ekstensi, dan menghapus atau menonaktifkan ekstensi yang tidak diinginkan."
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:7
msgid "Configure GNOME Shell Extensions"
msgstr "Konfigurasi Ekstensi GNOME Shell"
#: subprojects/extensions-app/js/main.js:144
#, javascript-format
msgid "Remove “%s”?"
msgstr "Hapus \"%s\"?"
#: subprojects/extensions-app/js/main.js:145
msgid ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
msgstr ""
"Jika Anda menghapus ekstensi, Anda harus kembali untuk mengunduhnya jika "
"Anda ingin mengaktifkannya lagi"
#: subprojects/extensions-app/js/main.js:149
msgid "Remove"
msgstr "Hapus"
#: subprojects/extensions-app/js/main.js:181
msgid "translator-credits"
msgstr ""
"Andika Triwidada <andika@gmail.com>, 2010-2014, 2017.\n"
"Dirgita <dirgitadevina@yahoo.co.id>, 2011, 2012, 2014.\n"
"Wibiharto <wibinem@yahoo.com>, 2011.\n"
"Kukuh Syafaat <kukuhsyafaat@gnome.org>, 2017-2020.\n"
"Sucipto <sucipto@pm.me>, 2020."
#: subprojects/extensions-app/js/main.js:316
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
msgstr[0] "%d ekstensi akan diperbarui pada log masuk berikutnya."
msgstr[1] "%d ekstensi akan diperbarui pada log masuk berikutnya."
#: subprojects/extensions-app/data/ui/extension-row.ui:100
#: subprojects/extensions-tool/src/command-create.c:211
#: subprojects/extensions-tool/src/main.c:173
msgid "Description"
msgstr "Deskripsi"
#: subprojects/extensions-app/data/ui/extension-row.ui:123
#: subprojects/extensions-tool/src/main.c:185
msgid "Version"
msgstr "Versi"
#: subprojects/extensions-app/data/ui/extension-row.ui:151
msgid "Author"
msgstr "Penulis"
#: subprojects/extensions-app/data/ui/extension-row.ui:175
msgid "Website"
msgstr "Situs Web"
#: subprojects/extensions-app/data/ui/extension-row.ui:192
msgid "Remove…"
msgstr "Hapus…"
#: subprojects/extensions-app/data/ui/extensions-window.ui:8
msgid "Help"
msgstr "Bantuan"
#: subprojects/extensions-app/data/ui/extensions-window.ui:12
msgid "About Extensions"
msgstr "Tentang Ekstensi"
#: subprojects/extensions-app/data/ui/extensions-window.ui:27
msgid ""
"To find and add extensions, visit <a href=\"https://extensions.gnome.org"
"\">extensions.gnome.org</a>."
msgstr ""
"Untuk menemukan dan menambahkan ekstensi, kunjungi <a href=\"https://"
"extensions.gnome.org\">extensions.gnome.org</a>."
#: subprojects/extensions-app/data/ui/extensions-window.ui:35
msgid "Warning"
msgstr "Peringatan"
#: subprojects/extensions-app/data/ui/extensions-window.ui:46
msgid ""
"Extensions can cause system issues, including performance problems. If you "
"encounter problems with your system, it is recommended to disable all "
"extensions."
msgstr ""
"Ekstensi dapat menyebabkan masalah sistem, termasuk masalah kinerja. Jika "
"Anda mengalami masalah dengan sistem Anda, disarankan untuk menonaktifkan "
"semua ekstensi."
#: subprojects/extensions-app/data/ui/extensions-window.ui:135
msgid "Manually Installed"
msgstr "Dipasang Secara Manual"
#: subprojects/extensions-app/data/ui/extensions-window.ui:159
msgid "Built-In"
msgstr "Bawaan"
#: subprojects/extensions-app/data/ui/extensions-window.ui:200
msgid "No Installed Extensions"
msgstr "Tidak Ada Ekstensi Terpasang"
#: subprojects/extensions-app/data/ui/extensions-window.ui:236
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."
msgstr ""
"Kami sangat menyesal, tetapi tidak mungkin mendapatkan daftar ekstensi yang "
"dipasang. Pastikan Anda masuk ke GNOME dan coba lagi."
#: subprojects/extensions-app/data/ui/extensions-window.ui:273
msgid "Extension Updates Ready"
msgstr "Pemutakhiran Ekstensi Siap"
#: subprojects/extensions-app/data/ui/extensions-window.ui:289
msgid "Log Out…"
msgstr "Keluar…"
#. Translators: a file path to an extension directory
#: subprojects/extensions-tool/src/command-create.c:125
#, c-format
@ -2844,6 +2844,9 @@ msgstr[1] "%u Masukan"
msgid "System Sounds"
msgstr "Suara Sistem"
#~ msgid "Copy Error"
#~ msgstr "Salin Galat"
#~ msgid "Username…"
#~ msgstr "Nama pengguna…"

428
po/it.po
View File

@ -4,7 +4,7 @@
# Copyright (C) 2019, 2020 the Free Software Foundation
# This file is distributed under the same license as the gnome-shell package.
#
# Milo Casagrande <milo@milo.name>, 2009, 2010, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019., 2020
# Milo Casagrande <milo@milo.name>, 2009, 2010, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020
# Luca Ferretti <elle.uca@infinito.it>, 2010, 2011, 2012, 2013, 2014.
# Gianvito Cavasoli <gianvito@gmx.it>, 2016.
#
@ -12,8 +12,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-03-19 14:34+0000\n"
"PO-Revision-Date: 2020-03-19 16:08+0100\n"
"POT-Creation-Date: 2020-05-11 14:00+0000\n"
"PO-Revision-Date: 2020-05-11 17:51+0200\n"
"Last-Translator: Milo Casagrande <milo@milo.name>\n"
"Language-Team: Italiano <gnome-it-list@gnome.org>\n"
"Language: it\n"
@ -21,7 +21,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.2.4\n"
"X-Generator: Poedit 2.3\n"
"X-DamnedLies-Scope: partial\n"
#: data/50-gnome-shell-system.xml:6
@ -406,66 +406,12 @@ msgstr ""
msgid "Network Login"
msgstr "Accesso di rete"
#: js/extensionPrefs/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
#: js/extensionPrefs/data/org.gnome.Extensions.desktop.in.in:4
#: js/extensionPrefs/js/main.js:242
#: js/extensionPrefs/data/ui/extensions-window.ui:61
msgid "Extensions"
msgstr "Estensioni"
#: js/extensionPrefs/data/metainfo/org.gnome.Extensions.metainfo.xml.in:6
#: js/extensionPrefs/js/main.js:243
msgid "Manage your GNOME Extensions"
msgstr "Gestione delle Estensioni GNOME"
#: js/extensionPrefs/data/metainfo/org.gnome.Extensions.metainfo.xml.in:35
msgid ""
"GNOME Extensions handles updating extensions, configuring extension "
"preferences and removing or disabling unwanted extensions."
msgstr ""
"Estensioni GNOME gestisce l'aggiornamento e la configurazione delle "
"preferenze delle estensioni e la rimozione o la disabilitazione di "
"estensioni indesiderate."
#: js/extensionPrefs/data/org.gnome.Extensions.desktop.in.in:7
msgid "Configure GNOME Shell Extensions"
msgstr "Configura le estensioni di GNOME Shell"
#: js/extensionPrefs/js/main.js:164
#, javascript-format
msgid "Remove “%s”?"
msgstr "Rimuovere «%s»?"
#: js/extensionPrefs/js/main.js:165
msgid ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
msgstr ""
"Una volta rimossa l'estensione sarà necessario scaricarla nuovamente per "
"abilitarla"
#: js/extensionPrefs/js/main.js:168 js/gdm/authPrompt.js:135
#: js/ui/audioDeviceSelection.js:57 js/ui/components/networkAgent.js:109
#: js/ui/components/polkitAgent.js:139 js/ui/endSessionDialog.js:374
#: js/ui/extensionDownloader.js:177 js/ui/shellMountOperation.js:376
#: js/ui/shellMountOperation.js:386 js/ui/status/network.js:913
msgid "Cancel"
msgstr "Annulla"
#: js/extensionPrefs/js/main.js:169
msgid "Remove"
msgstr "Rimuovi"
#: js/extensionPrefs/js/main.js:241
msgid "translator-credits"
msgstr "Milo Casagrande <milo@milo.name>"
#: js/extensionPrefs/js/main.js:285
#: js/extensionPrefs/data/ui/extensions-window.ui:223
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:36
#: subprojects/extensions-app/data/ui/extensions-window.ui:224
msgid "Somethings gone wrong"
msgstr "Qualcosa è andato storto"
#: js/extensionPrefs/js/main.js:292
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:48
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 "
@ -475,105 +421,25 @@ msgstr ""
"questa estensione. È consigliato segnalare il problema agli autori "
"dell'estensione."
#: js/extensionPrefs/js/main.js:299
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:82
msgid "Technical Details"
msgstr "Dettagli tecnici"
#: js/extensionPrefs/js/main.js:334
msgid "Copy Error"
msgstr "Copia errore"
#: js/extensionPrefs/js/main.js:361
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:165
msgid "Homepage"
msgstr "Sito web"
#: js/extensionPrefs/js/main.js:362
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:166
msgid "Visit extension homepage"
msgstr "Sito web dell'estensione"
#: js/extensionPrefs/js/main.js:479
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
msgstr[0] "%d estensione verrà aggiornata al prossimo accesso."
msgstr[1] "%d estensioni verranno aggiornate al prossimo accesso."
#: js/extensionPrefs/data/ui/extension-row.ui:100
#: subprojects/extensions-tool/src/command-create.c:211
#: subprojects/extensions-tool/src/main.c:173
msgid "Description"
msgstr "Descrizione"
#: js/extensionPrefs/data/ui/extension-row.ui:123
#: subprojects/extensions-tool/src/main.c:185
msgid "Version"
msgstr "Versione"
#: js/extensionPrefs/data/ui/extension-row.ui:151
msgid "Author"
msgstr "Autore"
#: js/extensionPrefs/data/ui/extension-row.ui:175
msgid "Website"
msgstr "Sito web"
#: js/extensionPrefs/data/ui/extension-row.ui:192
msgid "Remove…"
msgstr "Rimuovi…"
#: js/extensionPrefs/data/ui/extensions-window.ui:8
msgid "Help"
msgstr "Aiuto"
#: js/extensionPrefs/data/ui/extensions-window.ui:12
msgid "About Extensions"
msgstr "Informazioni su Estensioni"
#: js/extensionPrefs/data/ui/extensions-window.ui:27
msgid ""
"To find and add extensions, visit <a href=\"https://extensions.gnome.org"
"\">extensions.gnome.org</a>."
msgstr ""
"Per trovare e installare estensioni, visitare il sito web <a href=\"https://"
"extensions.gnome.org\">extensions.gnome.org</a>."
#: js/extensionPrefs/data/ui/extensions-window.ui:35
msgid "Warning"
msgstr "Attenzione"
#: js/extensionPrefs/data/ui/extensions-window.ui:46
msgid ""
"Extensions can cause system issues, including performance problems. If you "
"encounter problems with your system, it is recommended to disable all "
"extensions."
msgstr ""
"Le estensioni possono causare problemi al sistema, compresi problemi di "
"prestazioni. Nel caso si riscontrino dei problemi, è consigliato di "
"disabilitare tutte le estensioni."
#: js/extensionPrefs/data/ui/extensions-window.ui:134
msgid "Manually Installed"
msgstr "Installata manualmente"
#: js/extensionPrefs/data/ui/extensions-window.ui:158
msgid "Built-In"
msgstr "Integrata"
#: js/extensionPrefs/data/ui/extensions-window.ui:199
msgid "No Installed Extensions"
msgstr "Nessuna estensione installata"
#: js/extensionPrefs/data/ui/extensions-window.ui:235
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."
msgstr ""
"Impossibile recuperare l'elenco delle estensioni installate. Assicurarsi di "
"aver eseguire l'accesso a GNOME e riprovare."
#: js/extensionPrefs/data/ui/extensions-window.ui:288
msgid "Log Out…"
msgstr "Termina sessione…"
#: js/gdm/authPrompt.js:135 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:109 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:372 js/ui/extensionDownloader.js:181
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:913 subprojects/extensions-app/js/main.js:148
msgid "Cancel"
msgstr "Annulla"
#. Cisco LEAP
#: js/gdm/authPrompt.js:237 js/ui/components/networkAgent.js:204
@ -625,71 +491,71 @@ msgid "(or swipe finger)"
msgstr "(o scorrere con il dito)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:89
#: js/misc/systemActions.js:93
msgctxt "search-result"
msgid "Power Off"
msgstr "Spegni"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:92
#: js/misc/systemActions.js:96
msgid "power off;shutdown;reboot;restart;halt;stop"
msgstr "spegni;arresta;ferma;stop;riavvia"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:97
#: js/misc/systemActions.js:101
msgctxt "search-result"
msgid "Lock Screen"
msgstr "Blocca schermo"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:100
#: js/misc/systemActions.js:104
msgid "lock screen"
msgstr "blocca schermo"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:105
#: js/misc/systemActions.js:109
msgctxt "search-result"
msgid "Log Out"
msgstr "Termina sessione"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:108
#: js/misc/systemActions.js:112
msgid "logout;log out;sign off"
msgstr "esci;logout;termina sessione"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:113
#: js/misc/systemActions.js:117
msgctxt "search-result"
msgid "Suspend"
msgstr "Sospendi"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:116
#: js/misc/systemActions.js:120
msgid "suspend;sleep"
msgstr "sospendi;riposo"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:121
#: js/misc/systemActions.js:125
msgctxt "search-result"
msgid "Switch User"
msgstr "Cambia utente"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:124
#: js/misc/systemActions.js:128
msgid "switch user"
msgstr "cambia utente"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:131
#: js/misc/systemActions.js:135
msgid "lock orientation;unlock orientation;screen;rotation"
msgstr "blocca orientazione;sblocca orientazione;schermo;rotazione"
#: js/misc/systemActions.js:251
#: js/misc/systemActions.js:255
msgctxt "search-result"
msgid "Unlock Screen Rotation"
msgstr "Sblocca rotazione schermo"
#: js/misc/systemActions.js:252
#: js/misc/systemActions.js:256
msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Blocca rotazione schermo"
@ -854,55 +720,55 @@ msgstr "Nega accesso"
msgid "Grant Access"
msgstr "Consenti accesso"
#: js/ui/appDisplay.js:898
#: js/ui/appDisplay.js:939
msgid "Unnamed Folder"
msgstr "Cartella senza nome"
#: js/ui/appDisplay.js:921
#: js/ui/appDisplay.js:962
msgid "Frequently used applications will appear here"
msgstr "Qui saranno mostrate le applicazioni usate frequentemente"
#: js/ui/appDisplay.js:1056
#: js/ui/appDisplay.js:1097
msgid "Frequent"
msgstr "Frequenti"
#: js/ui/appDisplay.js:1063
#: js/ui/appDisplay.js:1104
msgid "All"
msgstr "Tutte"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2446 js/ui/panel.js:75
#: js/ui/appDisplay.js:2480 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Finestre aperte"
#: js/ui/appDisplay.js:2466 js/ui/panel.js:82
#: js/ui/appDisplay.js:2500 js/ui/panel.js:82
msgid "New Window"
msgstr "Nuova finestra"
#: js/ui/appDisplay.js:2477
#: js/ui/appDisplay.js:2511
msgid "Launch using Dedicated Graphics Card"
msgstr "Lancia utilizzando scheda grafica dedicata"
#: js/ui/appDisplay.js:2505 js/ui/dash.js:239
#: js/ui/appDisplay.js:2539 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Rimuovi dai preferiti"
#: js/ui/appDisplay.js:2511
#: js/ui/appDisplay.js:2545
msgid "Add to Favorites"
msgstr "Aggiungi ai preferiti"
#: js/ui/appDisplay.js:2521 js/ui/panel.js:93
#: js/ui/appDisplay.js:2555 js/ui/panel.js:93
msgid "Show Details"
msgstr "Mostra dettagli"
# (ndt) e usare:
# L'elemento %s è stato rimosso... ?
#: js/ui/appFavorites.js:152
#: js/ui/appFavorites.js:153
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s è stato aggiunto ai preferiti."
#: js/ui/appFavorites.js:185
#: js/ui/appFavorites.js:186
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s è stato rimosso dai preferiti."
@ -923,7 +789,7 @@ msgstr "Cuffie"
msgid "Headset"
msgstr "Cuffie con microfono"
#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:269
#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:270
msgid "Microphone"
msgstr "Microfono"
@ -1064,7 +930,7 @@ msgstr "Nessun evento"
msgid "Do Not Disturb"
msgstr "Non disturbare"
#: js/ui/calendar.js:1171
#: js/ui/calendar.js:1176
msgid "Clear"
msgstr "Pulisci"
@ -1213,7 +1079,7 @@ msgstr "Errore nell'autenticazione. Provare di nuovo."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: js/ui/components/telepathyClient.js:787
#: js/ui/components/telepathyClient.js:823
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s ha cambiato nome in %s"
@ -1258,23 +1124,23 @@ msgstr "Aggiungi orologi mondiali…"
msgid "World Clocks"
msgstr "Orologi mondiali"
#: js/ui/dateMenu.js:279
#: js/ui/dateMenu.js:289
msgid "Weather"
msgstr "Meteo"
#: js/ui/dateMenu.js:394
#: js/ui/dateMenu.js:418
msgid "Select a location…"
msgstr "Seleziona una posizione…"
#: js/ui/dateMenu.js:407
#: js/ui/dateMenu.js:426
msgid "Loading…"
msgstr "Caricamento…"
#: js/ui/dateMenu.js:417
#: js/ui/dateMenu.js:436
msgid "Go online for weather information"
msgstr "Collegarsi a Internet per le informazioni meteo"
#: js/ui/dateMenu.js:419
#: js/ui/dateMenu.js:438
msgid "Weather information is currently unavailable"
msgstr "Le informazioni meteo non sono disponibili"
@ -1417,35 +1283,35 @@ msgid "Other users are logged in"
msgstr "Altri utenti sono collegati"
#. Translators: Remote here refers to a remote session, like a ssh login
#: js/ui/endSessionDialog.js:588
#: js/ui/endSessionDialog.js:586
#, javascript-format
msgid "%s (remote)"
msgstr "%s (remoto)"
#. Translators: Console here refers to a tty like a VT console
#: js/ui/endSessionDialog.js:591
#: js/ui/endSessionDialog.js:589
#, javascript-format
msgid "%s (console)"
msgstr "%s (console)"
#: js/ui/extensionDownloader.js:181
#: js/ui/extensionDownloader.js:185
msgid "Install"
msgstr "Installa"
#: js/ui/extensionDownloader.js:187
#: js/ui/extensionDownloader.js:191
msgid "Install Extension"
msgstr "Installa estensione"
#: js/ui/extensionDownloader.js:188
#: js/ui/extensionDownloader.js:192
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Scaricare e installare «%s» da extensions.gnome.org?"
#: js/ui/extensionSystem.js:228
#: js/ui/extensionSystem.js:252
msgid "Extension Updates Available"
msgstr "Disponibili aggiornamenti estensioni"
#: js/ui/extensionSystem.js:229
#: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed."
msgstr "È possibile installare gli aggiornamenti delle estensioni."
@ -1596,11 +1462,11 @@ msgstr "Visualizza sorgente"
msgid "Web Page"
msgstr "Pagina web"
#: js/ui/main.js:274
#: js/ui/main.js:279
msgid "Logged in as a privileged user"
msgstr "Accesso eseguito come utente con privilegi"
#: js/ui/main.js:275
#: js/ui/main.js:280
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@ -1608,15 +1474,15 @@ msgstr ""
"Per motivi di sicurezza, non è consigliato avviare una sessione con un "
"utente con privilegi. Se possibile, accedere come utente normale."
#: js/ui/main.js:281
#: js/ui/main.js:319
msgid "Screen Lock disabled"
msgstr "Blocca scherma disabilitato"
#: js/ui/main.js:282
#: js/ui/main.js:320
msgid "Screen Locking requires the GNOME display manager."
msgstr "Il blocco dello schermo richiede il gestore schermi di GNOME."
#: js/ui/messageTray.js:1554
#: js/ui/messageTray.js:1548
msgid "System Information"
msgstr "Informazione di sistema"
@ -1696,16 +1562,16 @@ msgstr "Esci"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: js/ui/panel.js:434
#: js/ui/panel.js:437
msgid "Activities"
msgstr "Attività"
#: js/ui/panel.js:713
#: js/ui/panel.js:716
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistema"
#: js/ui/panel.js:826
#: js/ui/panel.js:829
msgid "Top Bar"
msgstr "Barra superiore"
@ -1736,11 +1602,11 @@ msgstr "GNOME deve bloccare lo schermo"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: js/ui/screenShield.js:244 js/ui/screenShield.js:598
#: js/ui/screenShield.js:244 js/ui/screenShield.js:601
msgid "Unable to lock"
msgstr "Impossibile bloccare"
#: js/ui/screenShield.js:245 js/ui/screenShield.js:599
#: js/ui/screenShield.js:245 js/ui/screenShield.js:602
msgid "Lock was blocked by an application"
msgstr "Il blocco è stato impedito da un'applicazione"
@ -1823,13 +1689,13 @@ msgid "The PIM must be a number or empty."
msgstr "PIM deve essere un numero o vuoto."
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:469
#: js/ui/shellMountOperation.js:465
#, javascript-format
msgid "Unable to start %s"
msgstr "Impossibile avviare %s"
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:471
#: js/ui/shellMountOperation.js:467
#, javascript-format
msgid "Couldnt find the %s application"
msgstr "Impossibile trovare l'applicazione %s"
@ -2311,11 +2177,11 @@ msgstr "Errore autenticazione Thunderbolt"
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "Impossibile autorizzare il dispositivo Thunderbolt: %s"
#: js/ui/status/volume.js:150
#: js/ui/status/volume.js:151
msgid "Volume changed"
msgstr "Volume modificato"
#: js/ui/status/volume.js:221
#: js/ui/status/volume.js:222
msgid "Volume"
msgstr "Volume"
@ -2349,23 +2215,23 @@ msgstr "Solo integrato"
#. Translators: This is a time format for a date in
#. long format
#: js/ui/unlockDialog.js:370
#: js/ui/unlockDialog.js:371
msgid "%A %B %-d"
msgstr "%A %-d %B"
#: js/ui/unlockDialog.js:376
#: js/ui/unlockDialog.js:377
msgid "Swipe up to unlock"
msgstr "Scorrere per sbloccare"
#: js/ui/unlockDialog.js:377
#: js/ui/unlockDialog.js:378
msgid "Click or press a key to unlock"
msgstr "Fare clic o premere un tasto per sbloccare"
#: js/ui/unlockDialog.js:549
#: js/ui/unlockDialog.js:550
msgid "Unlock Window"
msgstr "Sblocca finestra"
#: js/ui/unlockDialog.js:558
#: js/ui/unlockDialog.js:559
msgid "Log in as another user"
msgstr "Accedi come altro utente"
@ -2399,7 +2265,7 @@ msgstr "Ripristina impostazioni"
msgid "Keep Changes"
msgstr "Mantieni modifiche"
#: js/ui/windowManager.js:85
#: js/ui/windowManager.js:86
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@ -2408,7 +2274,7 @@ msgstr[1] "Le modifiche alle impostazioni saranno ripristinate tra %d secondi"
#. 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:544
#: js/ui/windowManager.js:546
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@ -2501,12 +2367,12 @@ msgstr "Usa una modalità specifica, per es. «gdm» per la schermata d'accesso"
msgid "List possible modes"
msgstr "Elenca le modalità possibili"
#: src/shell-app.c:279
#: src/shell-app.c:286
msgctxt "program"
msgid "Unknown"
msgstr "Sconosciuto"
#: src/shell-app.c:530
#: src/shell-app.c:537
#, c-format
msgid "Failed to launch “%s”"
msgstr "Avvio di «%s» non riuscito"
@ -2523,6 +2389,140 @@ msgstr "La password non può essere vuota"
msgid "Authentication dialog was dismissed by the user"
msgstr "La finestra di dialogo di autenticazione è stata annullata dall'utente"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:4
#: subprojects/extensions-app/js/main.js:182
#: subprojects/extensions-app/data/ui/extensions-window.ui:61
msgid "Extensions"
msgstr "Estensioni"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:6
#: subprojects/extensions-app/js/main.js:183
msgid "Manage your GNOME Extensions"
msgstr "Gestione delle Estensioni GNOME"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:35
msgid ""
"GNOME Extensions handles updating extensions, configuring extension "
"preferences and removing or disabling unwanted extensions."
msgstr ""
"Estensioni GNOME gestisce l'aggiornamento e la configurazione delle "
"preferenze delle estensioni e la rimozione o la disabilitazione di "
"estensioni indesiderate."
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:7
msgid "Configure GNOME Shell Extensions"
msgstr "Configura le estensioni di GNOME Shell"
#: subprojects/extensions-app/js/main.js:144
#, javascript-format
msgid "Remove “%s”?"
msgstr "Rimuovere «%s»?"
#: subprojects/extensions-app/js/main.js:145
msgid ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
msgstr ""
"Una volta rimossa l'estensione sarà necessario scaricarla nuovamente per "
"abilitarla"
#: subprojects/extensions-app/js/main.js:149
msgid "Remove"
msgstr "Rimuovi"
#: subprojects/extensions-app/js/main.js:181
msgid "translator-credits"
msgstr "Milo Casagrande <milo@milo.name>"
#: subprojects/extensions-app/js/main.js:316
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
msgstr[0] "%d estensione verrà aggiornata al prossimo accesso."
msgstr[1] "%d estensioni verranno aggiornate al prossimo accesso."
#: subprojects/extensions-app/data/ui/extension-row.ui:100
#: subprojects/extensions-tool/src/command-create.c:211
#: subprojects/extensions-tool/src/main.c:173
msgid "Description"
msgstr "Descrizione"
#: subprojects/extensions-app/data/ui/extension-row.ui:123
#: subprojects/extensions-tool/src/main.c:185
msgid "Version"
msgstr "Versione"
#: subprojects/extensions-app/data/ui/extension-row.ui:151
msgid "Author"
msgstr "Autore"
#: subprojects/extensions-app/data/ui/extension-row.ui:175
msgid "Website"
msgstr "Sito web"
#: subprojects/extensions-app/data/ui/extension-row.ui:192
msgid "Remove…"
msgstr "Rimuovi…"
#: subprojects/extensions-app/data/ui/extensions-window.ui:8
msgid "Help"
msgstr "Aiuto"
#: subprojects/extensions-app/data/ui/extensions-window.ui:12
msgid "About Extensions"
msgstr "Informazioni su Estensioni"
#: subprojects/extensions-app/data/ui/extensions-window.ui:27
msgid ""
"To find and add extensions, visit <a href=\"https://extensions.gnome.org"
"\">extensions.gnome.org</a>."
msgstr ""
"Per trovare e installare estensioni, visitare il sito web <a href=\"https://"
"extensions.gnome.org\">extensions.gnome.org</a>."
#: subprojects/extensions-app/data/ui/extensions-window.ui:35
msgid "Warning"
msgstr "Attenzione"
#: subprojects/extensions-app/data/ui/extensions-window.ui:46
msgid ""
"Extensions can cause system issues, including performance problems. If you "
"encounter problems with your system, it is recommended to disable all "
"extensions."
msgstr ""
"Le estensioni possono causare problemi al sistema, compresi problemi di "
"prestazioni. Nel caso si riscontrino dei problemi, è consigliato di "
"disabilitare tutte le estensioni."
#: subprojects/extensions-app/data/ui/extensions-window.ui:135
msgid "Manually Installed"
msgstr "Installata manualmente"
#: subprojects/extensions-app/data/ui/extensions-window.ui:159
msgid "Built-In"
msgstr "Integrata"
#: subprojects/extensions-app/data/ui/extensions-window.ui:200
msgid "No Installed Extensions"
msgstr "Nessuna estensione installata"
#: subprojects/extensions-app/data/ui/extensions-window.ui:236
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."
msgstr ""
"Impossibile recuperare l'elenco delle estensioni installate. Assicurarsi di "
"aver eseguire l'accesso a GNOME e riprovare."
#: subprojects/extensions-app/data/ui/extensions-window.ui:273
msgid "Extension Updates Ready"
msgstr "Disponibili aggiornamenti estensioni"
#: subprojects/extensions-app/data/ui/extensions-window.ui:289
msgid "Log Out…"
msgstr "Termina sessione…"
#. Translators: a file path to an extension directory
#: subprojects/extensions-tool/src/command-create.c:125
#, c-format

929
po/ja.po

File diff suppressed because it is too large Load Diff

489
po/ko.po
View File

@ -20,8 +20,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-02-28 07:20+0000\n"
"PO-Revision-Date: 2020-02-28 17:34+0900\n"
"POT-Creation-Date: 2020-05-26 21:26+0000\n"
"PO-Revision-Date: 2020-05-28 08:49+0900\n"
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
"Language-Team: GNOME Korea <gnome-kr@googlegroups.com>\n"
"Language: ko\n"
@ -54,15 +54,6 @@ msgstr "모든 프로그램 표시"
msgid "Open the application menu"
msgstr "프로그램 메뉴 열기"
#: data/org.gnome.Extensions.desktop.in.in:4 js/extensionPrefs/main.js:218
#: js/extensionPrefs/ui/extensions-window.ui:61
msgid "Extensions"
msgstr "확장"
#: data/org.gnome.Extensions.desktop.in.in:7
msgid "Configure GNOME Shell Extensions"
msgstr "그놈 셸 확장을 설정합니다"
#: data/org.gnome.Shell.desktop.in.in:4
msgid "GNOME Shell"
msgstr "그놈 셸"
@ -391,45 +382,12 @@ msgstr "마우스 포인터가 움직이지 않을 때까지 포커스 전환을
msgid "Network Login"
msgstr "네트워크 로그인"
#: js/extensionPrefs/main.js:140
#, javascript-format
msgid "Remove “%s”?"
msgstr "“%s” 확장을 제거하시겠습니까?"
#: js/extensionPrefs/main.js:141
msgid ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
msgstr "확장을 제거한 다음 다시 사용하려면 다시 다운로드해야 합니다"
#: js/extensionPrefs/main.js:144 js/gdm/authPrompt.js:135
#: js/ui/audioDeviceSelection.js:57 js/ui/components/networkAgent.js:107
#: js/ui/components/polkitAgent.js:139 js/ui/endSessionDialog.js:374
#: js/ui/extensionDownloader.js:165 js/ui/shellMountOperation.js:376
#: js/ui/shellMountOperation.js:386 js/ui/status/network.js:913
msgid "Cancel"
msgstr "취소"
#: js/extensionPrefs/main.js:145
msgid "Remove"
msgstr "제거"
#: js/extensionPrefs/main.js:217
msgid "translator-credits"
msgstr ""
"차영호 <ganadist@gmail.com>\n"
"조성호 <darkcircle.0426@gmail.com>\n"
"류창우 <cwryu@debian.org>"
#: js/extensionPrefs/main.js:219
msgid "Manage your GNOME Extensions"
msgstr "그놈 확장을 관리합니다"
#: js/extensionPrefs/main.js:261 js/extensionPrefs/ui/extensions-window.ui:222
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:36
#: subprojects/extensions-app/data/ui/extensions-window.ui:224
msgid "Somethings gone wrong"
msgstr "무언가 잘못되었습니다"
#: js/extensionPrefs/main.js:268
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:48
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 "
@ -438,110 +396,31 @@ msgstr ""
"죄송하지만 문제가 발생했습니다. 이 확장의 설정을 표시할 수 없습니다. 확장 개"
"발자에게 이 문제를 알려주시기를 추천합니다."
#: js/extensionPrefs/main.js:275
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:82
msgid "Technical Details"
msgstr "기술적 정보"
#: js/extensionPrefs/main.js:310
msgid "Copy Error"
msgstr "오류 메시지 복사"
#: js/extensionPrefs/main.js:337
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:165
msgid "Homepage"
msgstr "홈페이지"
#: js/extensionPrefs/main.js:338
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:166
msgid "Visit extension homepage"
msgstr "확장 홈페이지 보기"
#: js/extensionPrefs/main.js:449
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
msgstr[0] "다음 로그인에 확장 %d개를 업데이트할 예정입니다."
#: js/extensionPrefs/ui/extension-row.ui:100
#: subprojects/extensions-tool/src/command-create.c:211
#: subprojects/extensions-tool/src/main.c:173
msgid "Description"
msgstr "설명"
# 커맨드라인 옵션 설명
#: js/extensionPrefs/ui/extension-row.ui:123
#: subprojects/extensions-tool/src/main.c:185
msgid "Version"
msgstr "버전"
#: js/extensionPrefs/ui/extension-row.ui:151
msgid "Author"
msgstr "작성자"
#: js/extensionPrefs/ui/extension-row.ui:175
msgid "Website"
msgstr "홈페이지"
#: js/extensionPrefs/ui/extension-row.ui:192
msgid "Remove…"
msgstr "제거…"
#: js/extensionPrefs/ui/extensions-window.ui:8
msgid "Help"
msgstr "도움말"
#: js/extensionPrefs/ui/extensions-window.ui:12
msgid "About Extensions"
msgstr "확장 정보"
#: js/extensionPrefs/ui/extensions-window.ui:27
msgid ""
"To find and add extensions, visit <a href=\"https://extensions.gnome.org"
"\">extensions.gnome.org</a>."
msgstr ""
"확장을 찾고 추가하려면, <a href=\"https://extensions.gnome.org\">extensions."
"gnome.org</a> 사이트를 방문하십시오."
#: js/extensionPrefs/ui/extensions-window.ui:35
msgid "Warning"
msgstr "주의"
#: js/extensionPrefs/ui/extensions-window.ui:46
msgid ""
"Extensions can cause system issues, including performance problems. If you "
"encounter problems with your system, it is recommended to disable all "
"extensions."
msgstr ""
"확장 때문에 성능 문제 등의 시스템 문제가 발생할 수 있습니다. 시스템에 문제를 "
"발견할 경우, 모든 확장을 꺼 보기를 권합니다."
#: js/extensionPrefs/ui/extensions-window.ui:133
msgid "Manually Installed"
msgstr "수동 설치"
#: js/extensionPrefs/ui/extensions-window.ui:157
msgid "Built-In"
msgstr "내장"
#: js/extensionPrefs/ui/extensions-window.ui:198
msgid "No Installed Extensions"
msgstr "설치한 확장 없음"
#: js/extensionPrefs/ui/extensions-window.ui:234
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."
msgstr ""
"대단히 죄송합니다. 설치한 확장 기능의 목록을 가져올 수 없습니다. 그놈 데스크"
"톱에 로그인했는지 확인하시고 다시 시도하십시오."
#: js/extensionPrefs/ui/extensions-window.ui:287
msgid "Log Out…"
msgstr "로그아웃…"
#: js/gdm/authPrompt.js:135 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:109 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:372 js/ui/extensionDownloader.js:181
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:913 subprojects/extensions-app/js/main.js:148
msgid "Cancel"
msgstr "취소"
#. Cisco LEAP
#: js/gdm/authPrompt.js:237 js/ui/components/networkAgent.js:202
#: js/ui/components/networkAgent.js:218 js/ui/components/networkAgent.js:242
#: js/ui/components/networkAgent.js:263 js/ui/components/networkAgent.js:283
#: js/ui/components/networkAgent.js:293 js/ui/components/polkitAgent.js:277
#: js/gdm/authPrompt.js:237 js/ui/components/networkAgent.js:204
#: js/ui/components/networkAgent.js:220 js/ui/components/networkAgent.js:244
#: js/ui/components/networkAgent.js:265 js/ui/components/networkAgent.js:285
#: js/ui/components/networkAgent.js:295 js/ui/components/polkitAgent.js:277
#: js/ui/shellMountOperation.js:326
msgid "Password"
msgstr "암호"
@ -564,8 +443,8 @@ msgstr "(예를 들어, 사용자 또는 %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: js/gdm/loginDialog.js:917 js/ui/components/networkAgent.js:238
#: js/ui/components/networkAgent.js:261 js/ui/components/networkAgent.js:279
#: js/gdm/loginDialog.js:917 js/ui/components/networkAgent.js:240
#: js/ui/components/networkAgent.js:263 js/ui/components/networkAgent.js:281
msgid "Username"
msgstr "사용자 이름"
@ -587,76 +466,76 @@ msgid "(or swipe finger)"
msgstr "(또는 지문을 문지르십시오)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:89
#: js/misc/systemActions.js:93
msgctxt "search-result"
msgid "Power Off"
msgstr "컴퓨터 끄기"
# 주의: 키워드 번역
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:92
#: js/misc/systemActions.js:96
msgid "power off;shutdown;reboot;restart;halt;stop"
msgstr ""
"power off;shutdown;전원;끄기;셧다운;reboot;restart;재시작;다시;리부팅;halt;"
"stop;중지;"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:97
#: js/misc/systemActions.js:101
msgctxt "search-result"
msgid "Lock Screen"
msgstr "화면 잠그기"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:100
#: js/misc/systemActions.js:104
msgid "lock screen"
msgstr "화면 잠그기"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:105
#: js/misc/systemActions.js:109
msgctxt "search-result"
msgid "Log Out"
msgstr "로그아웃"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:108
#: js/misc/systemActions.js:112
msgid "logout;log out;sign off"
msgstr "logout;로그아웃;log out;로그 아웃;sign off;나가기"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:113
#: js/misc/systemActions.js:117
msgctxt "search-result"
msgid "Suspend"
msgstr "절전"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:116
#: js/misc/systemActions.js:120
msgid "suspend;sleep"
msgstr "suspend;sleep;절전;슬립;서스펜드"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:121
#: js/misc/systemActions.js:125
msgctxt "search-result"
msgid "Switch User"
msgstr "사용자 바꾸기"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:124
#: js/misc/systemActions.js:128
msgid "switch user"
msgstr "사용자 바꾸기"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:131
#: js/misc/systemActions.js:135
msgid "lock orientation;unlock orientation;screen;rotation"
msgstr ""
"lock orientation;방향 잠금;unlock orientation;방향 잠금 해제;screen;화면;"
"rotation;회전"
#: js/misc/systemActions.js:251
#: js/misc/systemActions.js:255
msgctxt "search-result"
msgid "Unlock Screen Rotation"
msgstr "화면 회전 잠금 해제"
#: js/misc/systemActions.js:252
#: js/misc/systemActions.js:256
msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "화면 회전 잠금"
@ -815,54 +694,54 @@ msgstr "접근 거부"
msgid "Grant Access"
msgstr "접근 허용"
#: js/ui/appDisplay.js:906
#: js/ui/appDisplay.js:939
msgid "Unnamed Folder"
msgstr "이름 없는 폴더"
#: js/ui/appDisplay.js:929
#: js/ui/appDisplay.js:962
msgid "Frequently used applications will appear here"
msgstr "자주 사용하는 프로그램이 여기 나타납니다"
#: js/ui/appDisplay.js:1064
#: js/ui/appDisplay.js:1097
msgid "Frequent"
msgstr "자주"
#: js/ui/appDisplay.js:1071
#: js/ui/appDisplay.js:1104
msgid "All"
msgstr "모두"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2450 js/ui/panel.js:75
#: js/ui/appDisplay.js:2480 js/ui/panel.js:75
msgid "Open Windows"
msgstr "열린 창"
#: js/ui/appDisplay.js:2470 js/ui/panel.js:82
#: js/ui/appDisplay.js:2500 js/ui/panel.js:82
msgid "New Window"
msgstr "새 창"
#: js/ui/appDisplay.js:2481
#: js/ui/appDisplay.js:2511
msgid "Launch using Dedicated Graphics Card"
msgstr "지정한 그래픽 카드를 사용해 시작"
#: js/ui/appDisplay.js:2509 js/ui/dash.js:239
#: js/ui/appDisplay.js:2539 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "즐겨찾기에서 제거"
#: js/ui/appDisplay.js:2515
#: js/ui/appDisplay.js:2545
msgid "Add to Favorites"
msgstr "즐겨찾기에 추가"
# 주의: "Show ..." 형태지만 보이기로 번역하지 않는다
#: js/ui/appDisplay.js:2525 js/ui/panel.js:93
#: js/ui/appDisplay.js:2555 js/ui/panel.js:93
msgid "Show Details"
msgstr "자세히 보기"
#: js/ui/appFavorites.js:152
#: js/ui/appFavorites.js:153
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s 프로그램을 즐겨찾기에 추가했습니다."
#: js/ui/appFavorites.js:185
#: js/ui/appFavorites.js:186
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s 프로그램을 즐겨찾기에서 제거했습니다."
@ -883,7 +762,7 @@ msgstr "헤드폰"
msgid "Headset"
msgstr "헤드셋"
#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:269
#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:270
msgid "Microphone"
msgstr "마이크"
@ -1001,30 +880,30 @@ msgid "All Day"
msgstr "종일"
#. Translators: Shown on calendar heading when selected day occurs on current year
#: js/ui/calendar.js:867
#: js/ui/calendar.js:868
msgctxt "calendar heading"
msgid "%A, %B %-d"
msgstr "%B %-d일 %A"
#. Translators: Shown on calendar heading when selected day occurs on different year
#: js/ui/calendar.js:870
#: js/ui/calendar.js:871
msgctxt "calendar heading"
msgid "%A, %B %-d, %Y"
msgstr "%Y년 %B %-d일 %A"
#: js/ui/calendar.js:1096
#: js/ui/calendar.js:1100
msgid "No Notifications"
msgstr "알림 없음"
#: js/ui/calendar.js:1099
#: js/ui/calendar.js:1103
msgid "No Events"
msgstr "행사 없음"
#: js/ui/calendar.js:1153
#: js/ui/calendar.js:1157
msgid "Do Not Disturb"
msgstr "방해 금지"
#: js/ui/calendar.js:1167
#: js/ui/calendar.js:1176
msgid "Clear"
msgstr "지우기"
@ -1070,80 +949,80 @@ msgstr "설치한 버전의 udisks는 PIM 설정을 지원하지 않습니다"
msgid "Open with %s"
msgstr "%s 프로그램으로 열기"
#: js/ui/components/networkAgent.js:89
#: js/ui/components/networkAgent.js:91
msgid ""
"Alternatively you can connect by pushing the “WPS” button on your router."
msgstr "다른 방법으로 라우터의 “WPS” 단추를 눌러서 연결할 수 있습니다."
#: js/ui/components/networkAgent.js:101 js/ui/status/network.js:223
#: js/ui/components/networkAgent.js:103 js/ui/status/network.js:223
#: js/ui/status/network.js:314 js/ui/status/network.js:916
msgid "Connect"
msgstr "연결"
#: js/ui/components/networkAgent.js:208
#: js/ui/components/networkAgent.js:210
msgid "Key"
msgstr "키"
#: js/ui/components/networkAgent.js:246 js/ui/components/networkAgent.js:269
#: js/ui/components/networkAgent.js:248 js/ui/components/networkAgent.js:271
msgid "Private key password"
msgstr "개인 키 암호"
#: js/ui/components/networkAgent.js:267
#: js/ui/components/networkAgent.js:269
msgid "Identity"
msgstr "신원"
#: js/ui/components/networkAgent.js:281
#: js/ui/components/networkAgent.js:283
msgid "Service"
msgstr "서비스"
#: js/ui/components/networkAgent.js:310 js/ui/components/networkAgent.js:338
#: js/ui/components/networkAgent.js:685 js/ui/components/networkAgent.js:706
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:340
#: js/ui/components/networkAgent.js:679 js/ui/components/networkAgent.js:700
msgid "Authentication required"
msgstr "인증 필요"
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:686
#: js/ui/components/networkAgent.js:313 js/ui/components/networkAgent.js:680
#, javascript-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
"“%s”."
msgstr "“%s” 무선 네트워크에 연결하려면 암호 또는 암호화 키가 필요합니다."
#: js/ui/components/networkAgent.js:315 js/ui/components/networkAgent.js:690
#: js/ui/components/networkAgent.js:317 js/ui/components/networkAgent.js:684
msgid "Wired 802.1X authentication"
msgstr "유선 802.1X 인증"
#: js/ui/components/networkAgent.js:317
#: js/ui/components/networkAgent.js:319
msgid "Network name"
msgstr "네트워크 이름"
#: js/ui/components/networkAgent.js:322 js/ui/components/networkAgent.js:694
#: js/ui/components/networkAgent.js:324 js/ui/components/networkAgent.js:688
msgid "DSL authentication"
msgstr "인증이 필요합니다"
#: js/ui/components/networkAgent.js:329 js/ui/components/networkAgent.js:699
#: js/ui/components/networkAgent.js:331 js/ui/components/networkAgent.js:693
msgid "PIN code required"
msgstr "PIN 코드가 필요합니다"
#: js/ui/components/networkAgent.js:330 js/ui/components/networkAgent.js:700
#: js/ui/components/networkAgent.js:332 js/ui/components/networkAgent.js:694
msgid "PIN code is needed for the mobile broadband device"
msgstr "휴대전화 네트워크 장치를 사용하려면 PIN 코드가 필요합니다"
#: js/ui/components/networkAgent.js:331
#: js/ui/components/networkAgent.js:333
msgid "PIN"
msgstr "PIN"
#: js/ui/components/networkAgent.js:339 js/ui/components/networkAgent.js:691
#: js/ui/components/networkAgent.js:695 js/ui/components/networkAgent.js:707
#: js/ui/components/networkAgent.js:711
#: js/ui/components/networkAgent.js:341 js/ui/components/networkAgent.js:685
#: js/ui/components/networkAgent.js:689 js/ui/components/networkAgent.js:701
#: js/ui/components/networkAgent.js:705
#, javascript-format
msgid "A password is required to connect to “%s”."
msgstr "“%s”에 연결하려면 암호가 필요합니다."
#: js/ui/components/networkAgent.js:674 js/ui/status/network.js:1691
#: js/ui/components/networkAgent.js:668 js/ui/status/network.js:1691
msgid "Network Manager"
msgstr "네트워크 관리"
#: js/ui/components/networkAgent.js:710
#: js/ui/components/networkAgent.js:704
msgid "VPN password"
msgstr "VPN 암호"
@ -1169,7 +1048,7 @@ msgstr "죄송합니다. 동작하지 않았습니다. 다시 시도하십시오
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: js/ui/components/telepathyClient.js:787
#: js/ui/components/telepathyClient.js:823
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s의 대화명이 이제 %s입니다"
@ -1205,31 +1084,31 @@ msgstr "%Y년 %B %-d일"
msgid "%A %B %e %Y"
msgstr "%Y년 %B %e일 %A"
#: js/ui/dateMenu.js:161
#: js/ui/dateMenu.js:162
msgid "Add world clocks…"
msgstr "세계 시계 추가…"
#: js/ui/dateMenu.js:162
#: js/ui/dateMenu.js:163
msgid "World Clocks"
msgstr "세계 시계"
#: js/ui/dateMenu.js:276
#: js/ui/dateMenu.js:308
msgid "Weather"
msgstr "날씨"
#: js/ui/dateMenu.js:391
#: js/ui/dateMenu.js:437
msgid "Select a location…"
msgstr "위치를 선택하십시오…"
#: js/ui/dateMenu.js:404
#: js/ui/dateMenu.js:445
msgid "Loading…"
msgstr "읽어들이는 중…"
#: js/ui/dateMenu.js:414
#: js/ui/dateMenu.js:455
msgid "Go online for weather information"
msgstr "날씨 정보를 온라인으로 가져옵니다"
#: js/ui/dateMenu.js:416
#: js/ui/dateMenu.js:457
msgid "Weather information is currently unavailable"
msgstr "날씨 정보를 현재 사용할 수 없습니다"
@ -1360,36 +1239,36 @@ msgid "Other users are logged in"
msgstr "다른 사용자가 로그인 중입니다"
#. Translators: Remote here refers to a remote session, like a ssh login
#: js/ui/endSessionDialog.js:588
#: js/ui/endSessionDialog.js:586
#, javascript-format
msgid "%s (remote)"
msgstr "%s (원격)"
#. Translators: Console here refers to a tty like a VT console
#: js/ui/endSessionDialog.js:591
#: js/ui/endSessionDialog.js:589
#, javascript-format
msgid "%s (console)"
msgstr "%s (콘솔)"
#: js/ui/extensionDownloader.js:169
#: js/ui/extensionDownloader.js:185
msgid "Install"
msgstr "설치"
#: js/ui/extensionDownloader.js:175
#: js/ui/extensionDownloader.js:191
msgid "Install Extension"
msgstr "확장 설치"
#: js/ui/extensionDownloader.js:176
#: js/ui/extensionDownloader.js:192
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr ""
"extensions.gnome.org 사이트에서 “%s” 확장을 다운로드해 설치하시겠습니까?"
#: js/ui/extensionSystem.js:228
#: js/ui/extensionSystem.js:252
msgid "Extension Updates Available"
msgstr "확장 업데이트가 있습니다"
#: js/ui/extensionSystem.js:229
#: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed."
msgstr "확장 업데이트 설치할 준비가 되었습니다."
@ -1535,11 +1414,11 @@ msgstr "소스 보기"
msgid "Web Page"
msgstr "웹페이지"
#: js/ui/main.js:269
#: js/ui/main.js:279
msgid "Logged in as a privileged user"
msgstr "관리자 권한으로 로그인"
#: js/ui/main.js:270
#: js/ui/main.js:280
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@ -1547,24 +1426,24 @@ msgstr ""
"관리자 권한으로 세션을 시작하는 일은 보안 이유로 피해야 합니다. 할 수 있으면 "
"일반 유저로 로그인해야 합니다."
#: js/ui/main.js:276
#: js/ui/main.js:319
msgid "Screen Lock disabled"
msgstr "화면 잠금 사용하지 않음"
# GDM
#: js/ui/main.js:277
#: js/ui/main.js:320
msgid "Screen Locking requires the GNOME display manager."
msgstr "화면 잠금은 그놈 디스플레이 관리자가 필요합니다."
#: js/ui/messageTray.js:1554
#: js/ui/messageTray.js:1548
msgid "System Information"
msgstr "시스템 정보"
#: js/ui/mpris.js:199
#: js/ui/mpris.js:204
msgid "Unknown artist"
msgstr "알 수 없는 음악가"
#: js/ui/mpris.js:209
#: js/ui/mpris.js:214
msgid "Unknown title"
msgstr "알 수 없는 제목"
@ -1636,16 +1515,16 @@ msgstr "끝내기"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: js/ui/panel.js:434
#: js/ui/panel.js:437
msgid "Activities"
msgstr "현재 활동"
#: js/ui/panel.js:713
#: js/ui/panel.js:716
msgctxt "System menu in the top bar"
msgid "System"
msgstr "시스템"
#: js/ui/panel.js:826
#: js/ui/panel.js:829
msgid "Top Bar"
msgstr "위 막대"
@ -1676,11 +1555,11 @@ msgstr "그놈에서 화면을 잠궈야 합니다"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: js/ui/screenShield.js:244 js/ui/screenShield.js:598
#: js/ui/screenShield.js:244 js/ui/screenShield.js:601
msgid "Unable to lock"
msgstr "잠글 수 없습니다"
#: js/ui/screenShield.js:245 js/ui/screenShield.js:599
#: js/ui/screenShield.js:245 js/ui/screenShield.js:602
msgid "Lock was blocked by an application"
msgstr "프로그램이 잠금을 막았습니다"
@ -1763,13 +1642,13 @@ msgid "The PIM must be a number or empty."
msgstr "PIM은 숫자거나 비어 있어야 합니다."
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:469
#: js/ui/shellMountOperation.js:465
#, javascript-format
msgid "Unable to start %s"
msgstr "%s 프로그램을 시작할 수 없습니다"
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:471
#: js/ui/shellMountOperation.js:467
#, javascript-format
msgid "Couldnt find the %s application"
msgstr "%s 프로그램을 찾을 수 없습니다"
@ -2238,12 +2117,12 @@ msgid "Could not authorize the Thunderbolt device: %s"
msgstr "썬더볼트 장치에 권한을 부여할 수 없습니다: %s"
# 오디오 볼륨
#: js/ui/status/volume.js:150
#: js/ui/status/volume.js:151
msgid "Volume changed"
msgstr "볼륨 바꿈"
# 오디오 볼륨
#: js/ui/status/volume.js:221
#: js/ui/status/volume.js:222
msgid "Volume"
msgstr "볼륨"
@ -2277,23 +2156,23 @@ msgstr "내장만 사용"
#. Translators: This is a time format for a date in
#. long format
#: js/ui/unlockDialog.js:370
#: js/ui/unlockDialog.js:371
msgid "%A %B %-d"
msgstr "%B %-d일 %A"
#: js/ui/unlockDialog.js:376
#: js/ui/unlockDialog.js:377
msgid "Swipe up to unlock"
msgstr "잠금을 풀려면 위로 살짝 미십시오"
#: js/ui/unlockDialog.js:377
#: js/ui/unlockDialog.js:378
msgid "Click or press a key to unlock"
msgstr "잠금을 풀려면 마우스 단추 또는 키를 누르십시오"
#: js/ui/unlockDialog.js:549
#: js/ui/unlockDialog.js:550
msgid "Unlock Window"
msgstr "창 잠금 풀기"
#: js/ui/unlockDialog.js:558
#: js/ui/unlockDialog.js:559
msgid "Log in as another user"
msgstr "다른 사용자로 로그인"
@ -2326,7 +2205,7 @@ msgstr "설정 되돌리기"
msgid "Keep Changes"
msgstr "바뀐 사항 유지"
#: js/ui/windowManager.js:85
#: js/ui/windowManager.js:86
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@ -2334,7 +2213,7 @@ msgstr[0] "바뀐 설정을 %d초 후에 되돌립니다"
#. 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:544
#: js/ui/windowManager.js:546
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@ -2412,28 +2291,28 @@ msgid "Evolution Calendar"
msgstr "에볼루션 달력"
# 커맨드라인 옵션 설명
#: src/main.c:460 subprojects/extensions-tool/src/main.c:249
#: src/main.c:458 subprojects/extensions-tool/src/main.c:249
msgid "Print version"
msgstr "버전을 표시합니다"
#: src/main.c:466
#: src/main.c:464
msgid "Mode used by GDM for login screen"
msgstr "GDM에서 로그인 화면에 사용할 모드"
#: src/main.c:472
#: src/main.c:470
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "특정 모드 사용. 예를 들어 로그인 화면에 대해 “gdm”"
#: src/main.c:478
#: src/main.c:476
msgid "List possible modes"
msgstr "가능한 모드 목록 표시"
#: src/shell-app.c:279
#: src/shell-app.c:286
msgctxt "program"
msgid "Unknown"
msgstr "알 수 없음"
#: src/shell-app.c:530
#: src/shell-app.c:537
#, c-format
msgid "Failed to launch “%s”"
msgstr "“%s” 실행에 실패했습니다"
@ -2450,6 +2329,137 @@ msgstr "빈 암호를 쓸 수 없습니다"
msgid "Authentication dialog was dismissed by the user"
msgstr "인증 대화 창을 사용자가 닫았습니다"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:4
#: subprojects/extensions-app/js/main.js:182
#: subprojects/extensions-app/data/ui/extensions-window.ui:61
msgid "Extensions"
msgstr "확장"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:6
#: subprojects/extensions-app/js/main.js:183
msgid "Manage your GNOME Extensions"
msgstr "그놈 확장을 관리합니다"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:35
msgid ""
"GNOME Extensions handles updating extensions, configuring extension "
"preferences and removing or disabling unwanted extensions."
msgstr "그놈 확장 관리자에서는 확장 기능의 업데이트, 확장 기능의 설정, 원하지 않는 확장 기능 제거 또는 사용 중지를 처리합니다."
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:7
msgid "Configure GNOME Shell Extensions"
msgstr "그놈 셸 확장을 설정합니다"
#: subprojects/extensions-app/js/main.js:144
#, javascript-format
msgid "Remove “%s”?"
msgstr "“%s” 확장을 제거하시겠습니까?"
#: subprojects/extensions-app/js/main.js:145
msgid ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
msgstr "확장을 제거한 다음 다시 사용하려면 다시 다운로드해야 합니다"
#: subprojects/extensions-app/js/main.js:149
msgid "Remove"
msgstr "제거"
#: subprojects/extensions-app/js/main.js:181
msgid "translator-credits"
msgstr ""
"차영호 <ganadist@gmail.com>\n"
"조성호 <darkcircle.0426@gmail.com>\n"
"류창우 <cwryu@debian.org>"
#: subprojects/extensions-app/js/main.js:316
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
msgstr[0] "다음 로그인에 확장 %d개를 업데이트할 예정입니다."
#: subprojects/extensions-app/data/ui/extension-row.ui:100
#: subprojects/extensions-tool/src/command-create.c:211
#: subprojects/extensions-tool/src/main.c:173
msgid "Description"
msgstr "설명"
# 커맨드라인 옵션 설명
#: subprojects/extensions-app/data/ui/extension-row.ui:123
#: subprojects/extensions-tool/src/main.c:185
msgid "Version"
msgstr "버전"
#: subprojects/extensions-app/data/ui/extension-row.ui:151
msgid "Author"
msgstr "작성자"
#: subprojects/extensions-app/data/ui/extension-row.ui:175
msgid "Website"
msgstr "홈페이지"
#: subprojects/extensions-app/data/ui/extension-row.ui:192
msgid "Remove…"
msgstr "제거…"
#: subprojects/extensions-app/data/ui/extensions-window.ui:8
msgid "Help"
msgstr "도움말"
#: subprojects/extensions-app/data/ui/extensions-window.ui:12
msgid "About Extensions"
msgstr "확장 정보"
#: subprojects/extensions-app/data/ui/extensions-window.ui:27
msgid ""
"To find and add extensions, visit <a href=\"https://extensions.gnome.org"
"\">extensions.gnome.org</a>."
msgstr ""
"확장을 찾고 추가하려면, <a href=\"https://extensions.gnome.org\">extensions."
"gnome.org</a> 사이트를 방문하십시오."
#: subprojects/extensions-app/data/ui/extensions-window.ui:35
msgid "Warning"
msgstr "주의"
#: subprojects/extensions-app/data/ui/extensions-window.ui:46
msgid ""
"Extensions can cause system issues, including performance problems. If you "
"encounter problems with your system, it is recommended to disable all "
"extensions."
msgstr ""
"확장 때문에 성능 문제 등의 시스템 문제가 발생할 수 있습니다. 시스템에 문제를 "
"발견할 경우, 모든 확장을 꺼 보기를 권합니다."
#: subprojects/extensions-app/data/ui/extensions-window.ui:135
msgid "Manually Installed"
msgstr "수동 설치"
#: subprojects/extensions-app/data/ui/extensions-window.ui:159
msgid "Built-In"
msgstr "내장"
#: subprojects/extensions-app/data/ui/extensions-window.ui:200
msgid "No Installed Extensions"
msgstr "설치한 확장 없음"
#: subprojects/extensions-app/data/ui/extensions-window.ui:236
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."
msgstr ""
"대단히 죄송합니다. 설치한 확장 기능의 목록을 가져올 수 없습니다. 그놈 데스크"
"톱에 로그인했는지 확인하시고 다시 시도하십시오."
#: subprojects/extensions-app/data/ui/extensions-window.ui:273
msgid "Extension Updates Ready"
msgstr "확장 업데이트가 준비되었습니다"
#: subprojects/extensions-app/data/ui/extensions-window.ui:289
msgid "Log Out…"
msgstr "로그아웃…"
#. Translators: a file path to an extension directory
#: subprojects/extensions-tool/src/command-create.c:125
#, c-format
@ -2785,3 +2795,6 @@ msgstr[0] "%u개 입력"
#: subprojects/gvc/gvc-mixer-control.c:2766
msgid "System Sounds"
msgstr "시스템 소리"
#~ msgid "Copy Error"
#~ msgstr "오류 메시지 복사"

486
po/nl.po
View File

@ -16,8 +16,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-02-24 12:37+0000\n"
"PO-Revision-Date: 2020-02-24 23:33+0100\n"
"POT-Creation-Date: 2020-03-31 07:15+0000\n"
"PO-Revision-Date: 2020-05-06 13:10+0200\n"
"Last-Translator: Nathan Follens <nthn@unseen.is>\n"
"Language-Team: Nederlands <gnome-nl-list@gnome.org>\n"
"Language: nl\n"
@ -52,15 +52,6 @@ msgstr "Alle toepassingen tonen"
msgid "Open the application menu"
msgstr "Toepassingenmenu openen"
#: data/org.gnome.Extensions.desktop.in.in:4 js/extensionPrefs/main.js:218
#: js/extensionPrefs/ui/extensions-window.ui:61
msgid "Extensions"
msgstr "Uitbreidingen"
#: data/org.gnome.Extensions.desktop.in.in:7
msgid "Configure GNOME Shell Extensions"
msgstr "Gnome Shell-uitbreidingen configureren"
#: data/org.gnome.Shell.desktop.in.in:4
msgid "GNOME Shell"
msgstr "Gnome Shell"
@ -408,47 +399,12 @@ msgstr "Focus pas wijzigen nadat de muisaanwijzer is gestopt met bewegen"
msgid "Network Login"
msgstr "Netwerkaanmelding"
#: js/extensionPrefs/main.js:140
#, javascript-format
msgid "Remove “%s”?"
msgstr "%s verwijderen?"
#: js/extensionPrefs/main.js:141
msgid ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
msgstr ""
"Als u een uitbreiding verwijdert, zult u deze opnieuw moeten downloaden om "
"ze opnieuw te gebruiken"
#: js/extensionPrefs/main.js:144 js/gdm/authPrompt.js:135
#: js/ui/audioDeviceSelection.js:57 js/ui/components/networkAgent.js:107
#: js/ui/components/polkitAgent.js:139 js/ui/endSessionDialog.js:374
#: js/ui/extensionDownloader.js:165 js/ui/shellMountOperation.js:376
#: js/ui/shellMountOperation.js:386 js/ui/status/network.js:913
msgid "Cancel"
msgstr "Annuleren"
#: js/extensionPrefs/main.js:145
msgid "Remove"
msgstr "Verwijderen"
#: js/extensionPrefs/main.js:217
msgid "translator-credits"
msgstr ""
"Nathan Follens <nthn@unseen.is>\n"
"\n"
"Meer info over Gnome-NL http://nl.gnome.org"
#: js/extensionPrefs/main.js:219
msgid "Manage your GNOME Extensions"
msgstr "Beheer uw Gnome-uitbreidingen"
#: js/extensionPrefs/main.js:261 js/extensionPrefs/ui/extensions-window.ui:222
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:36
#: subprojects/extensions-app/data/ui/extensions-window.ui:223
msgid "Somethings gone wrong"
msgstr "Er is iets misgegaan"
#: js/extensionPrefs/main.js:268
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:48
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 "
@ -458,111 +414,31 @@ msgstr ""
"uitbreiding kunnen niet worden weergegeven. We raden u aan dit probleem te "
"melden aan de ontwikkelaars van de uitbreiding."
#: js/extensionPrefs/main.js:275
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:82
msgid "Technical Details"
msgstr "Technische details"
#: js/extensionPrefs/main.js:310
msgid "Copy Error"
msgstr "Fout kopiëren"
#: js/extensionPrefs/main.js:337
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:165
msgid "Homepage"
msgstr "Startpagina"
#: js/extensionPrefs/main.js:338
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:166
msgid "Visit extension homepage"
msgstr "Website van uitbreiding openen"
#: js/extensionPrefs/main.js:449
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
msgstr[0] "%d uitbreiding wordt bijgewerkt bij de volgende aanmelding."
msgstr[1] "%d uitbreidingen worden bijgewerkt bij de volgende aanmelding."
#: js/extensionPrefs/ui/extension-row.ui:100
#: subprojects/extensions-tool/src/command-create.c:211
#: subprojects/extensions-tool/src/main.c:173
msgid "Description"
msgstr "Beschrijving"
#: js/extensionPrefs/ui/extension-row.ui:123
#: subprojects/extensions-tool/src/main.c:185
msgid "Version"
msgstr "Versie"
#: js/extensionPrefs/ui/extension-row.ui:151
msgid "Author"
msgstr "Auteur"
#: js/extensionPrefs/ui/extension-row.ui:175
msgid "Website"
msgstr "Website"
#: js/extensionPrefs/ui/extension-row.ui:192
msgid "Remove…"
msgstr "Verwijderen…"
#: js/extensionPrefs/ui/extensions-window.ui:8
msgid "Help"
msgstr "Hulp"
#: js/extensionPrefs/ui/extensions-window.ui:12
msgid "About Extensions"
msgstr "Over uitbreidingen"
#: js/extensionPrefs/ui/extensions-window.ui:27
msgid ""
"To find and add extensions, visit <a href=\"https://extensions.gnome.org"
"\">extensions.gnome.org</a>."
msgstr ""
"Bezoek <a href=\"https://extensions.gnome.org\">extensions.gnome.org</a> om "
"uitbreidingen te zoeken en installeren."
#: js/extensionPrefs/ui/extensions-window.ui:35
msgid "Warning"
msgstr "Waarschuwing"
#: js/extensionPrefs/ui/extensions-window.ui:46
msgid ""
"Extensions can cause system issues, including performance problems. If you "
"encounter problems with your system, it is recommended to disable all "
"extensions."
msgstr ""
"Uitbreidingen kunnen problemen veroorzaken, inclusief prestatieproblemen. "
"Als u een probleem met uw systeem ondervindt, wordt het aanbevolen eerst "
"alle uitbreidingen uit te schakelen."
#: js/extensionPrefs/ui/extensions-window.ui:133
msgid "Manually Installed"
msgstr "Handmatig geïnstalleerd"
#: js/extensionPrefs/ui/extensions-window.ui:157
msgid "Built-In"
msgstr "Ingebouwd"
#: js/extensionPrefs/ui/extensions-window.ui:198
msgid "No Installed Extensions"
msgstr "Geen uitbreidingen geïnstalleerd"
#: js/extensionPrefs/ui/extensions-window.ui:234
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."
msgstr ""
"Sorry, we konden de lijst met geïnstalleerde uitbreidingen niet verkrijgen. "
"Zorg dat u bij Gnome aangemeld bent, en probeer het opnieuw."
#: js/extensionPrefs/ui/extensions-window.ui:287
msgid "Log Out…"
msgstr "Afmelden…"
#: js/gdm/authPrompt.js:135 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:109 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:374 js/ui/extensionDownloader.js:181
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:913 subprojects/extensions-app/js/main.js:148
msgid "Cancel"
msgstr "Annuleren"
#. Cisco LEAP
#: js/gdm/authPrompt.js:237 js/ui/components/networkAgent.js:202
#: js/ui/components/networkAgent.js:218 js/ui/components/networkAgent.js:242
#: js/ui/components/networkAgent.js:263 js/ui/components/networkAgent.js:283
#: js/ui/components/networkAgent.js:293 js/ui/components/polkitAgent.js:277
#: js/gdm/authPrompt.js:237 js/ui/components/networkAgent.js:204
#: js/ui/components/networkAgent.js:220 js/ui/components/networkAgent.js:244
#: js/ui/components/networkAgent.js:265 js/ui/components/networkAgent.js:285
#: js/ui/components/networkAgent.js:295 js/ui/components/polkitAgent.js:277
#: js/ui/shellMountOperation.js:326
msgid "Password"
msgstr "Wachtwoord"
@ -585,8 +461,8 @@ msgstr "(bijv. gebruiker of %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: js/gdm/loginDialog.js:917 js/ui/components/networkAgent.js:238
#: js/ui/components/networkAgent.js:261 js/ui/components/networkAgent.js:279
#: js/gdm/loginDialog.js:917 js/ui/components/networkAgent.js:240
#: js/ui/components/networkAgent.js:263 js/ui/components/networkAgent.js:281
msgid "Username"
msgstr "Gebruikersnaam"
@ -842,45 +718,45 @@ msgstr "Toegang weigeren"
msgid "Grant Access"
msgstr "Toegang verlenen"
#: js/ui/appDisplay.js:906
#: js/ui/appDisplay.js:932
msgid "Unnamed Folder"
msgstr "Naamloze map"
#: js/ui/appDisplay.js:929
#: js/ui/appDisplay.js:955
msgid "Frequently used applications will appear here"
msgstr "Vaak gebruikte toepassingen verschijnen hier"
#: js/ui/appDisplay.js:1064
#: js/ui/appDisplay.js:1090
msgid "Frequent"
msgstr "Vaak gebruikt"
#: js/ui/appDisplay.js:1071
#: js/ui/appDisplay.js:1097
msgid "All"
msgstr "Alles"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2450 js/ui/panel.js:75
#: js/ui/appDisplay.js:2473 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Vensters openen"
msgstr "Open vensters"
#: js/ui/appDisplay.js:2470 js/ui/panel.js:82
#: js/ui/appDisplay.js:2493 js/ui/panel.js:82
msgid "New Window"
msgstr "Nieuw venster"
# Dedicated niet vertaald
#: js/ui/appDisplay.js:2481
#: js/ui/appDisplay.js:2504
msgid "Launch using Dedicated Graphics Card"
msgstr "Met grafische kaart opstarten"
#: js/ui/appDisplay.js:2509 js/ui/dash.js:239
#: js/ui/appDisplay.js:2532 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Uit favorieten verwijderen"
#: js/ui/appDisplay.js:2515
#: js/ui/appDisplay.js:2538
msgid "Add to Favorites"
msgstr "Aan favorieten toevoegen"
#: js/ui/appDisplay.js:2525 js/ui/panel.js:93
#: js/ui/appDisplay.js:2548 js/ui/panel.js:93
msgid "Show Details"
msgstr "Details tonen"
@ -910,7 +786,7 @@ msgstr "Hoofdtelefoon"
msgid "Headset"
msgstr "Headset"
#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:269
#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:270
msgid "Microphone"
msgstr "Microfoon"
@ -1028,30 +904,30 @@ msgid "All Day"
msgstr "Gehele dag"
#. Translators: Shown on calendar heading when selected day occurs on current year
#: js/ui/calendar.js:867
#: js/ui/calendar.js:868
msgctxt "calendar heading"
msgid "%A, %B %-d"
msgstr "%A %-d %B"
#. Translators: Shown on calendar heading when selected day occurs on different year
#: js/ui/calendar.js:870
#: js/ui/calendar.js:871
msgctxt "calendar heading"
msgid "%A, %B %-d, %Y"
msgstr "%A %-d %B %Y"
#: js/ui/calendar.js:1096
#: js/ui/calendar.js:1100
msgid "No Notifications"
msgstr "Geen notificaties"
#: js/ui/calendar.js:1099
#: js/ui/calendar.js:1103
msgid "No Events"
msgstr "Geen gebeurtenissen"
#: js/ui/calendar.js:1153
#: js/ui/calendar.js:1157
msgid "Do Not Disturb"
msgstr "Niet storen"
#: js/ui/calendar.js:1167
#: js/ui/calendar.js:1176
msgid "Clear"
msgstr "Wissen"
@ -1100,39 +976,39 @@ msgstr ""
msgid "Open with %s"
msgstr "Openen met %s"
#: js/ui/components/networkAgent.js:89
#: js/ui/components/networkAgent.js:91
msgid ""
"Alternatively you can connect by pushing the “WPS” button on your router."
msgstr ""
"U kunt ook verbinding maken door op de WPS-knop op uw router te drukken."
#: js/ui/components/networkAgent.js:101 js/ui/status/network.js:223
#: js/ui/components/networkAgent.js:103 js/ui/status/network.js:223
#: js/ui/status/network.js:314 js/ui/status/network.js:916
msgid "Connect"
msgstr "Verbinden"
#: js/ui/components/networkAgent.js:208
#: js/ui/components/networkAgent.js:210
msgid "Key"
msgstr "Sleutel"
#: js/ui/components/networkAgent.js:246 js/ui/components/networkAgent.js:269
#: js/ui/components/networkAgent.js:248 js/ui/components/networkAgent.js:271
msgid "Private key password"
msgstr "Wachtwoord van privésleutel"
#: js/ui/components/networkAgent.js:267
#: js/ui/components/networkAgent.js:269
msgid "Identity"
msgstr "Identiteit"
#: js/ui/components/networkAgent.js:281
#: js/ui/components/networkAgent.js:283
msgid "Service"
msgstr "Dienst"
#: js/ui/components/networkAgent.js:310 js/ui/components/networkAgent.js:338
#: js/ui/components/networkAgent.js:685 js/ui/components/networkAgent.js:706
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:340
#: js/ui/components/networkAgent.js:679 js/ui/components/networkAgent.js:700
msgid "Authentication required"
msgstr "Aanmelding vereist"
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:686
#: js/ui/components/networkAgent.js:313 js/ui/components/networkAgent.js:680
#, javascript-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@ -1141,42 +1017,42 @@ msgstr ""
"Voor toegang tot het draadloze netwerk %s is een wachtwoord of sleutel "
"benodigd."
#: js/ui/components/networkAgent.js:315 js/ui/components/networkAgent.js:690
#: js/ui/components/networkAgent.js:317 js/ui/components/networkAgent.js:684
msgid "Wired 802.1X authentication"
msgstr "802.1X-authenticatie (bekabeld)"
#: js/ui/components/networkAgent.js:317
#: js/ui/components/networkAgent.js:319
msgid "Network name"
msgstr "Netwerknaam"
#: js/ui/components/networkAgent.js:322 js/ui/components/networkAgent.js:694
#: js/ui/components/networkAgent.js:324 js/ui/components/networkAgent.js:688
msgid "DSL authentication"
msgstr "DSL-authenticatie"
#: js/ui/components/networkAgent.js:329 js/ui/components/networkAgent.js:699
#: js/ui/components/networkAgent.js:331 js/ui/components/networkAgent.js:693
msgid "PIN code required"
msgstr "PIN-code vereist"
#: js/ui/components/networkAgent.js:330 js/ui/components/networkAgent.js:700
#: js/ui/components/networkAgent.js:332 js/ui/components/networkAgent.js:694
msgid "PIN code is needed for the mobile broadband device"
msgstr "PIN-code vereist voor het apparaat voor mobiel breedband"
#: js/ui/components/networkAgent.js:331
#: js/ui/components/networkAgent.js:333
msgid "PIN"
msgstr "Pincode"
#: js/ui/components/networkAgent.js:339 js/ui/components/networkAgent.js:691
#: js/ui/components/networkAgent.js:695 js/ui/components/networkAgent.js:707
#: js/ui/components/networkAgent.js:711
#: js/ui/components/networkAgent.js:341 js/ui/components/networkAgent.js:685
#: js/ui/components/networkAgent.js:689 js/ui/components/networkAgent.js:701
#: js/ui/components/networkAgent.js:705
#, javascript-format
msgid "A password is required to connect to “%s”."
msgstr "Er is een wachtwoord nodig om met %s te verbinden."
#: js/ui/components/networkAgent.js:674 js/ui/status/network.js:1691
#: js/ui/components/networkAgent.js:668 js/ui/status/network.js:1691
msgid "Network Manager"
msgstr "Netwerk-manager"
#: js/ui/components/networkAgent.js:710
#: js/ui/components/networkAgent.js:704
msgid "VPN password"
msgstr "VPN-wachtwoord"
@ -1203,7 +1079,7 @@ msgstr "Helaas, dat werkte niet. Probeer het opnieuw."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: js/ui/components/telepathyClient.js:787
#: js/ui/components/telepathyClient.js:823
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s heet vanaf nu %s"
@ -1248,106 +1124,106 @@ msgstr "Wereldklokken toevoegen…"
msgid "World Clocks"
msgstr "Wereldklokken"
#: js/ui/dateMenu.js:276
#: js/ui/dateMenu.js:289
msgid "Weather"
msgstr "Weer"
#: js/ui/dateMenu.js:391
#: js/ui/dateMenu.js:418
msgid "Select a location…"
msgstr "Selecteer een locatie…"
#: js/ui/dateMenu.js:404
#: js/ui/dateMenu.js:426
msgid "Loading…"
msgstr "Laden…"
#: js/ui/dateMenu.js:414
#: js/ui/dateMenu.js:436
msgid "Go online for weather information"
msgstr "Ga online voor informatie over het weer"
#: js/ui/dateMenu.js:416
#: js/ui/dateMenu.js:438
msgid "Weather information is currently unavailable"
msgstr "Informatie over het weer is momenteel niet beschikbaar"
#: js/ui/endSessionDialog.js:37
#: js/ui/endSessionDialog.js:39
#, javascript-format
msgctxt "title"
msgid "Log Out %s"
msgstr "%s afmelden"
#: js/ui/endSessionDialog.js:38
#: js/ui/endSessionDialog.js:40
msgctxt "title"
msgid "Log Out"
msgstr "Afmelden"
#: js/ui/endSessionDialog.js:40
#: js/ui/endSessionDialog.js:42
#, javascript-format
msgid "%s will be logged out automatically in %d second."
msgid_plural "%s will be logged out automatically in %d seconds."
msgstr[0] "%s wordt automatisch afgemeld over %d seconde."
msgstr[1] "%s wordt automatisch afgemeld over %d seconden."
#: js/ui/endSessionDialog.js:45
#: js/ui/endSessionDialog.js:47
#, javascript-format
msgid "You will be logged out automatically in %d second."
msgid_plural "You will be logged out automatically in %d seconds."
msgstr[0] "U wordt automatisch afgemeld over %d seconde."
msgstr[1] "U wordt automatisch afgemeld over %d seconden."
#: js/ui/endSessionDialog.js:51
#: js/ui/endSessionDialog.js:53
msgctxt "button"
msgid "Log Out"
msgstr "Afmelden"
#: js/ui/endSessionDialog.js:56
#: js/ui/endSessionDialog.js:58
msgctxt "title"
msgid "Power Off"
msgstr "Uitschakelen"
#: js/ui/endSessionDialog.js:57
#: js/ui/endSessionDialog.js:59
msgctxt "title"
msgid "Install Updates & Power Off"
msgstr "Updates installeren en uitschakelen"
#: js/ui/endSessionDialog.js:59
#: js/ui/endSessionDialog.js:61
#, javascript-format
msgid "The system will power off automatically in %d second."
msgid_plural "The system will power off automatically in %d seconds."
msgstr[0] "De computer wordt automatisch afgesloten over %d seconde."
msgstr[1] "De computer wordt automatisch afgesloten over %d seconden."
#: js/ui/endSessionDialog.js:63
#: js/ui/endSessionDialog.js:65
msgctxt "checkbox"
msgid "Install pending software updates"
msgstr "Gereedstaande software-updates installeren"
#: js/ui/endSessionDialog.js:66 js/ui/endSessionDialog.js:82
#: js/ui/endSessionDialog.js:68 js/ui/endSessionDialog.js:84
msgctxt "button"
msgid "Restart"
msgstr "Opnieuw opstarten"
#: js/ui/endSessionDialog.js:68
#: js/ui/endSessionDialog.js:70
msgctxt "button"
msgid "Power Off"
msgstr "Uitschakelen"
#: js/ui/endSessionDialog.js:74
#: js/ui/endSessionDialog.js:76
msgctxt "title"
msgid "Restart"
msgstr "Opnieuw opstarten"
#: js/ui/endSessionDialog.js:76
#: js/ui/endSessionDialog.js:78
#, javascript-format
msgid "The system will restart automatically in %d second."
msgid_plural "The system will restart automatically in %d seconds."
msgstr[0] "De computer wordt opnieuw opgestart over %d seconde."
msgstr[1] "De computer wordt opnieuw opgestart over %d seconden."
#: js/ui/endSessionDialog.js:89
#: js/ui/endSessionDialog.js:91
msgctxt "title"
msgid "Restart & Install Updates"
msgstr "Opnieuw opstarten en updates installeren"
#: js/ui/endSessionDialog.js:91
#: js/ui/endSessionDialog.js:93
#, javascript-format
msgid "The system will automatically restart and install updates in %d second."
msgid_plural ""
@ -1357,22 +1233,22 @@ msgstr[0] ""
msgstr[1] ""
"De computer zal opnieuw opstarten en updates installeren over %d seconden."
#: js/ui/endSessionDialog.js:97 js/ui/endSessionDialog.js:116
#: js/ui/endSessionDialog.js:99 js/ui/endSessionDialog.js:118
msgctxt "button"
msgid "Restart &amp; Install"
msgstr "Herstarten en installeren"
#: js/ui/endSessionDialog.js:98
#: js/ui/endSessionDialog.js:100
msgctxt "button"
msgid "Install &amp; Power Off"
msgstr "Installeren en uitschakelen"
#: js/ui/endSessionDialog.js:99
#: js/ui/endSessionDialog.js:101
msgctxt "checkbox"
msgid "Power off after updates are installed"
msgstr "Uitschakelen na installatie van updates"
#: js/ui/endSessionDialog.js:106
#: js/ui/endSessionDialog.js:108
msgctxt "title"
msgid "Restart & Install Upgrade"
msgstr "Opnieuw opstarten en upgrades installeren"
@ -1380,7 +1256,7 @@ msgstr "Opnieuw opstarten en upgrades installeren"
#. Translators: This is the text displayed for system upgrades in the
#. shut down dialog. First %s gets replaced with the distro name and
#. second %s with the distro version to upgrade to
#: js/ui/endSessionDialog.js:111
#: js/ui/endSessionDialog.js:113
#, javascript-format
msgid ""
"%s %s will be installed after restart. Upgrade installation can take a long "
@ -1390,17 +1266,17 @@ msgstr ""
"kan lang duren: zorg ervoor dat u een reservekopie heeft gemaakt en dat de "
"computer is aangesloten op netstroom."
#: js/ui/endSessionDialog.js:259
#: js/ui/endSessionDialog.js:261
msgid "Running on battery power: Please plug in before installing updates."
msgstr ""
"De computer gebruikt accustroom. Sluit de adapter aan alvorens de "
"installatie te starten."
#: js/ui/endSessionDialog.js:268
#: js/ui/endSessionDialog.js:270
msgid "Some applications are busy or have unsaved work"
msgstr "Sommige toepassingen zijn bezig of hebben niet-opgeslagen werk"
#: js/ui/endSessionDialog.js:273
#: js/ui/endSessionDialog.js:275
msgid "Other users are logged in"
msgstr "Er zijn andere gebruikers aangemeld"
@ -1416,24 +1292,24 @@ msgstr "%s (op afstand)"
msgid "%s (console)"
msgstr "%s (console)"
#: js/ui/extensionDownloader.js:169
#: js/ui/extensionDownloader.js:185
msgid "Install"
msgstr "Installeren"
#: js/ui/extensionDownloader.js:175
#: js/ui/extensionDownloader.js:191
msgid "Install Extension"
msgstr "Uitbreiding installeren"
#: js/ui/extensionDownloader.js:176
#: js/ui/extensionDownloader.js:192
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "%s downloaden van extensions.gnome.org en daarna installeren?"
#: js/ui/extensionSystem.js:228
#: js/ui/extensionSystem.js:233
msgid "Extension Updates Available"
msgstr "Er zijn uitbreidingsupdates beschikbaar"
#: js/ui/extensionSystem.js:229
#: js/ui/extensionSystem.js:234
msgid "Extension updates are ready to be installed."
msgstr "Uitbreidingsupdates zijn klaar voor installatie."
@ -1582,11 +1458,11 @@ msgstr "Broncode weergeven"
msgid "Web Page"
msgstr "Webpagina"
#: js/ui/main.js:269
#: js/ui/main.js:277
msgid "Logged in as a privileged user"
msgstr "Aangemeld als gebruiker met extra rechten"
#: js/ui/main.js:270
#: js/ui/main.js:278
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@ -1595,15 +1471,15 @@ msgstr ""
"als gebruiker met extra rechten vermijdt. Meld u, indien mogelijk, aan als "
"een normale gebruiker."
#: js/ui/main.js:276
#: js/ui/main.js:317
msgid "Screen Lock disabled"
msgstr "Schermvergrendeling uitgeschakeld"
#: js/ui/main.js:277
#: js/ui/main.js:318
msgid "Screen Locking requires the GNOME display manager."
msgstr "Schermvergrendeling vereist de Gnome-displaymanager."
#: js/ui/messageTray.js:1554
#: js/ui/messageTray.js:1551
msgid "System Information"
msgstr "Systeeminformatie"
@ -1687,12 +1563,12 @@ msgstr "Afsluiten"
msgid "Activities"
msgstr "Activiteiten"
#: js/ui/panel.js:707
#: js/ui/panel.js:713
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Systeem"
#: js/ui/panel.js:820
#: js/ui/panel.js:826
msgid "Top Bar"
msgstr "Menubalk"
@ -1810,13 +1686,13 @@ msgid "The PIM must be a number or empty."
msgstr "De PIM moet ofwel een getal ofwel leeg zijn."
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:469
#: js/ui/shellMountOperation.js:465
#, javascript-format
msgid "Unable to start %s"
msgstr "Kan %s niet starten"
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:471
#: js/ui/shellMountOperation.js:467
#, javascript-format
msgid "Couldnt find the %s application"
msgstr "Kon %s niet vinden"
@ -2291,11 +2167,11 @@ msgstr "Thunderbolt-autorisatiefout"
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "Kon het Thunderbolt-apparaat niet autoriseren: %s"
#: js/ui/status/volume.js:150
#: js/ui/status/volume.js:151
msgid "Volume changed"
msgstr "Volume gewijzigd"
#: js/ui/status/volume.js:221
#: js/ui/status/volume.js:222
msgid "Volume"
msgstr "Volume"
@ -2329,23 +2205,23 @@ msgstr "Enkel ingebouwd"
#. Translators: This is a time format for a date in
#. long format
#: js/ui/unlockDialog.js:370
#: js/ui/unlockDialog.js:371
msgid "%A %B %-d"
msgstr "%A %-d %B"
#: js/ui/unlockDialog.js:376
#: js/ui/unlockDialog.js:377
msgid "Swipe up to unlock"
msgstr "Veeg omhoog om te ontgrendelen"
#: js/ui/unlockDialog.js:377
#: js/ui/unlockDialog.js:378
msgid "Click or press a key to unlock"
msgstr "Klik of druk op een toets om te ontgrendelen"
#: js/ui/unlockDialog.js:549
#: js/ui/unlockDialog.js:550
msgid "Unlock Window"
msgstr "Venster voor ontgrendelen"
#: js/ui/unlockDialog.js:558
#: js/ui/unlockDialog.js:559
msgid "Log in as another user"
msgstr "Aanmelden als andere gebruiker"
@ -2464,19 +2340,19 @@ msgstr "Sluiten"
msgid "Evolution Calendar"
msgstr "Evolution-agenda"
#: src/main.c:460 subprojects/extensions-tool/src/main.c:249
#: src/main.c:458 subprojects/extensions-tool/src/main.c:249
msgid "Print version"
msgstr "Versie weergeven"
#: src/main.c:466
#: src/main.c:464
msgid "Mode used by GDM for login screen"
msgstr "De modus die door GDM voor het aanmeldscherm gebruikt wordt"
#: src/main.c:472
#: src/main.c:470
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Specifieke modus gebruiken, bijv. gdm voor het aanmeldscherm"
#: src/main.c:478
#: src/main.c:476
msgid "List possible modes"
msgstr "Mogelijke modi tonen"
@ -2502,6 +2378,139 @@ msgstr "Het wachtwoord mag niet leeg blijven"
msgid "Authentication dialog was dismissed by the user"
msgstr "Authenticatievenster is door de gebruiker afgesloten"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:4
#: subprojects/extensions-app/js/main.js:182
#: subprojects/extensions-app/data/ui/extensions-window.ui:61
msgid "Extensions"
msgstr "Uitbreidingen"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:6
#: subprojects/extensions-app/js/main.js:183
msgid "Manage your GNOME Extensions"
msgstr "Beheer uw Gnome-uitbreidingen"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:35
msgid ""
"GNOME Extensions handles updating extensions, configuring extension "
"preferences and removing or disabling unwanted extensions."
msgstr ""
"Gnome Uitbreidingen staat in voor het bijwerken van uitbreidingen, hun "
"voorkeuren te configureren of ongewenste uitbreidingen te verwijderen of uit "
"te schakelen."
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:7
msgid "Configure GNOME Shell Extensions"
msgstr "Gnome Shell-uitbreidingen configureren"
#: subprojects/extensions-app/js/main.js:144
#, javascript-format
msgid "Remove “%s”?"
msgstr "%s verwijderen?"
#: subprojects/extensions-app/js/main.js:145
msgid ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
msgstr ""
"Als u een uitbreiding verwijdert, zult u deze opnieuw moeten downloaden om "
"ze opnieuw te gebruiken"
#: subprojects/extensions-app/js/main.js:149
msgid "Remove"
msgstr "Verwijderen"
#: subprojects/extensions-app/js/main.js:181
msgid "translator-credits"
msgstr ""
"Nathan Follens <nthn@unseen.is>\n"
"\n"
"Meer info over Gnome-NL http://nl.gnome.org"
#: subprojects/extensions-app/js/main.js:316
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
msgstr[0] "%d uitbreiding wordt bijgewerkt bij de volgende aanmelding."
msgstr[1] "%d uitbreidingen worden bijgewerkt bij de volgende aanmelding."
#: subprojects/extensions-app/data/ui/extension-row.ui:100
#: subprojects/extensions-tool/src/command-create.c:211
#: subprojects/extensions-tool/src/main.c:173
msgid "Description"
msgstr "Beschrijving"
#: subprojects/extensions-app/data/ui/extension-row.ui:123
#: subprojects/extensions-tool/src/main.c:185
msgid "Version"
msgstr "Versie"
#: subprojects/extensions-app/data/ui/extension-row.ui:151
msgid "Author"
msgstr "Auteur"
#: subprojects/extensions-app/data/ui/extension-row.ui:175
msgid "Website"
msgstr "Website"
#: subprojects/extensions-app/data/ui/extension-row.ui:192
msgid "Remove…"
msgstr "Verwijderen…"
#: subprojects/extensions-app/data/ui/extensions-window.ui:8
msgid "Help"
msgstr "Hulp"
#: subprojects/extensions-app/data/ui/extensions-window.ui:12
msgid "About Extensions"
msgstr "Over uitbreidingen"
#: subprojects/extensions-app/data/ui/extensions-window.ui:27
msgid ""
"To find and add extensions, visit <a href=\"https://extensions.gnome.org"
"\">extensions.gnome.org</a>."
msgstr ""
"Bezoek <a href=\"https://extensions.gnome.org\">extensions.gnome.org</a> om "
"uitbreidingen te zoeken en installeren."
#: subprojects/extensions-app/data/ui/extensions-window.ui:35
msgid "Warning"
msgstr "Waarschuwing"
#: subprojects/extensions-app/data/ui/extensions-window.ui:46
msgid ""
"Extensions can cause system issues, including performance problems. If you "
"encounter problems with your system, it is recommended to disable all "
"extensions."
msgstr ""
"Uitbreidingen kunnen problemen veroorzaken, inclusief prestatieproblemen. "
"Als u een probleem met uw systeem ondervindt, wordt het aanbevolen eerst "
"alle uitbreidingen uit te schakelen."
#: subprojects/extensions-app/data/ui/extensions-window.ui:134
msgid "Manually Installed"
msgstr "Handmatig geïnstalleerd"
#: subprojects/extensions-app/data/ui/extensions-window.ui:158
msgid "Built-In"
msgstr "Ingebouwd"
#: subprojects/extensions-app/data/ui/extensions-window.ui:199
msgid "No Installed Extensions"
msgstr "Geen uitbreidingen geïnstalleerd"
#: subprojects/extensions-app/data/ui/extensions-window.ui:235
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."
msgstr ""
"Sorry, we konden de lijst met geïnstalleerde uitbreidingen niet verkrijgen. "
"Zorg dat u bij Gnome aangemeld bent, en probeer het opnieuw."
#: subprojects/extensions-app/data/ui/extensions-window.ui:288
msgid "Log Out…"
msgstr "Afmelden…"
#. Translators: a file path to an extension directory
#: subprojects/extensions-tool/src/command-create.c:125
#, c-format
@ -2839,6 +2848,9 @@ msgstr[1] "%u invoerkanalen"
msgid "System Sounds"
msgstr "Systeemgeluiden"
#~ msgid "Copy Error"
#~ msgstr "Fout kopiëren"
#~ msgid "Browse in Software"
#~ msgstr "Bladeren in Software"

2803
po/os.po Normal file

File diff suppressed because it is too large Load Diff

427
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: 2020-03-19 14:34+0000\n"
"PO-Revision-Date: 2020-03-19 15:40+0100\n"
"POT-Creation-Date: 2020-03-31 07:15+0000\n"
"PO-Revision-Date: 2020-05-02 21:42+0200\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <community-poland@mozilla.org>\n"
"Language: pl\n"
@ -394,69 +394,12 @@ msgstr ""
msgid "Network Login"
msgstr "Logowanie do sieci"
#: js/extensionPrefs/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
#: js/extensionPrefs/data/org.gnome.Extensions.desktop.in.in:4
#: js/extensionPrefs/js/main.js:242
#: js/extensionPrefs/data/ui/extensions-window.ui:61
msgid "Extensions"
msgstr "Rozszerzenia"
#: js/extensionPrefs/data/metainfo/org.gnome.Extensions.metainfo.xml.in:6
#: js/extensionPrefs/js/main.js:243
msgid "Manage your GNOME Extensions"
msgstr "Zarządzanie rozszerzeniami GNOME"
#: js/extensionPrefs/data/metainfo/org.gnome.Extensions.metainfo.xml.in:35
msgid ""
"GNOME Extensions handles updating extensions, configuring extension "
"preferences and removing or disabling unwanted extensions."
msgstr ""
"Ten program obsługuje aktualizowanie, konfigurowanie preferencji oraz "
"usuwanie i wyłączanie niechcianych rozszerzeń."
#: js/extensionPrefs/data/org.gnome.Extensions.desktop.in.in:7
msgid "Configure GNOME Shell Extensions"
msgstr "Konfiguracja rozszerzeń powłoki GNOME"
#: js/extensionPrefs/js/main.js:164
#, javascript-format
msgid "Remove “%s”?"
msgstr "Usunąć rozszerzenie „%s”?"
#: js/extensionPrefs/js/main.js:165
msgid ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
msgstr ""
"Po usunięciu rozszerzenia jego ponowne włączenie będzie wymagało pobrania od "
"nowa"
#: js/extensionPrefs/js/main.js:168 js/gdm/authPrompt.js:135
#: js/ui/audioDeviceSelection.js:57 js/ui/components/networkAgent.js:109
#: js/ui/components/polkitAgent.js:139 js/ui/endSessionDialog.js:374
#: js/ui/extensionDownloader.js:177 js/ui/shellMountOperation.js:376
#: js/ui/shellMountOperation.js:386 js/ui/status/network.js:913
msgid "Cancel"
msgstr "Anuluj"
#: js/extensionPrefs/js/main.js:169
msgid "Remove"
msgstr "Usuń"
#: js/extensionPrefs/js/main.js:241
msgid "translator-credits"
msgstr ""
"Piotr Drąg <piotrdrag@gmail.com>, 2009-2020\n"
"Tomasz Dominikowski <dominikowski@gmail.com>, 2009\n"
"Wojciech Szczęsny <wszczesny@aviary.pl>, 2013\n"
"Aviary.pl <community-poland@mozilla.org>, 2009-2020"
#: js/extensionPrefs/js/main.js:285
#: js/extensionPrefs/data/ui/extensions-window.ui:223
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:36
#: subprojects/extensions-app/data/ui/extensions-window.ui:223
msgid "Somethings gone wrong"
msgstr "Coś się nie powiodło"
#: js/extensionPrefs/js/main.js:292
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:48
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 "
@ -465,106 +408,25 @@ msgstr ""
"Wystąpił problem: nie można wyświetlić ustawień tego rozszerzenia. Zalecamy "
"zgłoszenie problemu autorom rozszerzenia."
#: js/extensionPrefs/js/main.js:299
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:82
msgid "Technical Details"
msgstr "Informacje techniczne"
#: js/extensionPrefs/js/main.js:334
msgid "Copy Error"
msgstr "Skopiuj błąd"
#: js/extensionPrefs/js/main.js:361
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:165
msgid "Homepage"
msgstr "Strona WWW"
#: js/extensionPrefs/js/main.js:362
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:166
msgid "Visit extension homepage"
msgstr "Otwiera stronę WWW rozszerzenia"
#: js/extensionPrefs/js/main.js:479
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
msgstr[0] "%d rozszerzenie zostanie zaktualizowane po następnym zalogowaniu."
msgstr[1] "%d rozszerzenia zostaną zaktualizowane po następnym zalogowaniu."
msgstr[2] "%d rozszerzeń zostanie zaktualizowanych po następnym zalogowaniu."
#: js/extensionPrefs/data/ui/extension-row.ui:100
#: subprojects/extensions-tool/src/command-create.c:211
#: subprojects/extensions-tool/src/main.c:173
msgid "Description"
msgstr "Opis"
#: js/extensionPrefs/data/ui/extension-row.ui:123
#: subprojects/extensions-tool/src/main.c:185
msgid "Version"
msgstr "Wersja"
#: js/extensionPrefs/data/ui/extension-row.ui:151
msgid "Author"
msgstr "Autor"
#: js/extensionPrefs/data/ui/extension-row.ui:175
msgid "Website"
msgstr "Witryna"
#: js/extensionPrefs/data/ui/extension-row.ui:192
msgid "Remove…"
msgstr "Usuń…"
#: js/extensionPrefs/data/ui/extensions-window.ui:8
msgid "Help"
msgstr "Pomoc"
#: js/extensionPrefs/data/ui/extensions-window.ui:12
msgid "About Extensions"
msgstr "O programie"
#: js/extensionPrefs/data/ui/extensions-window.ui:27
msgid ""
"To find and add extensions, visit <a href=\"https://extensions.gnome.org"
"\">extensions.gnome.org</a>."
msgstr ""
"Witryna <a href=\"https://extensions.gnome.org\">extensions.gnome.org</a> "
"umożliwia wyszukiwanie i dodawanie rozszerzeń."
#: js/extensionPrefs/data/ui/extensions-window.ui:35
msgid "Warning"
msgstr "Ostrzeżenie"
#: js/extensionPrefs/data/ui/extensions-window.ui:46
msgid ""
"Extensions can cause system issues, including performance problems. If you "
"encounter problems with your system, it is recommended to disable all "
"extensions."
msgstr ""
"Rozszerzenia mogą powodować problemy z komputerem, w tym związane "
"z wydajnością. W przypadku występowania problemów zalecane jest wyłączenie "
"wszystkich rozszerzeń."
#: js/extensionPrefs/data/ui/extensions-window.ui:134
msgid "Manually Installed"
msgstr "Ręcznie zainstalowane"
#: js/extensionPrefs/data/ui/extensions-window.ui:158
msgid "Built-In"
msgstr "Wbudowane"
#: js/extensionPrefs/data/ui/extensions-window.ui:199
msgid "No Installed Extensions"
msgstr "Brak zainstalowanych rozszerzeń"
#: js/extensionPrefs/data/ui/extensions-window.ui:235
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."
msgstr ""
"Nie można wyświetlić listy zainstalowanych rozszerzeń. Proszę się upewnić, "
"że zalogowano w środowisku GNOME i spróbować ponownie."
#: js/extensionPrefs/data/ui/extensions-window.ui:288
msgid "Log Out…"
msgstr "Wyloguj się…"
#: js/gdm/authPrompt.js:135 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:109 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:374 js/ui/extensionDownloader.js:181
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:913 subprojects/extensions-app/js/main.js:148
msgid "Cancel"
msgstr "Anuluj"
#. Cisco LEAP
#: js/gdm/authPrompt.js:237 js/ui/components/networkAgent.js:204
@ -858,44 +720,44 @@ msgstr "Odmów dostępu"
msgid "Grant Access"
msgstr "Udziel dostępu"
#: js/ui/appDisplay.js:898
#: js/ui/appDisplay.js:932
msgid "Unnamed Folder"
msgstr "Katalog bez nazwy"
#: js/ui/appDisplay.js:921
#: js/ui/appDisplay.js:955
msgid "Frequently used applications will appear here"
msgstr "W tym miejscu pojawią się często używane programy"
#: js/ui/appDisplay.js:1056
#: js/ui/appDisplay.js:1090
msgid "Frequent"
msgstr "Często używane"
#: js/ui/appDisplay.js:1063
#: js/ui/appDisplay.js:1097
msgid "All"
msgstr "Wszystkie"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2446 js/ui/panel.js:75
#: js/ui/appDisplay.js:2473 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Otwarte okna"
#: js/ui/appDisplay.js:2466 js/ui/panel.js:82
#: js/ui/appDisplay.js:2493 js/ui/panel.js:82
msgid "New Window"
msgstr "Nowe okno"
#: js/ui/appDisplay.js:2477
#: js/ui/appDisplay.js:2504
msgid "Launch using Dedicated Graphics Card"
msgstr "Uruchom za pomocą dedykowanej karty graficznej"
#: js/ui/appDisplay.js:2505 js/ui/dash.js:239
#: js/ui/appDisplay.js:2532 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Usuń z ulubionych"
#: js/ui/appDisplay.js:2511
#: js/ui/appDisplay.js:2538
msgid "Add to Favorites"
msgstr "Dodaj do ulubionych"
#: js/ui/appDisplay.js:2521 js/ui/panel.js:93
#: js/ui/appDisplay.js:2548 js/ui/panel.js:93
msgid "Show Details"
msgstr "Wyświetl szczegóły"
@ -925,7 +787,7 @@ msgstr "Słuchawki"
msgid "Headset"
msgstr "Słuchawki z mikrofonem"
#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:269
#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:270
msgid "Microphone"
msgstr "Mikrofon"
@ -1066,7 +928,7 @@ msgstr "Brak wydarzeń"
msgid "Do Not Disturb"
msgstr "Nie przeszkadzać"
#: js/ui/calendar.js:1171
#: js/ui/calendar.js:1176
msgid "Clear"
msgstr "Wyczyść"
@ -1212,7 +1074,7 @@ msgstr "To nie zadziałało. Proszę spróbować ponownie."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: js/ui/components/telepathyClient.js:787
#: js/ui/components/telepathyClient.js:823
#, javascript-format
msgid "%s is now known as %s"
msgstr "Użytkownik „%s” jest teraz znany jako „%s”"
@ -1256,38 +1118,38 @@ msgstr "Dodaj zegar światowy…"
msgid "World Clocks"
msgstr "Zegar światowy"
#: js/ui/dateMenu.js:279
#: js/ui/dateMenu.js:289
msgid "Weather"
msgstr "Pogoda"
#: js/ui/dateMenu.js:394
#: js/ui/dateMenu.js:418
msgid "Select a location…"
msgstr "Wybierz położenie…"
#: js/ui/dateMenu.js:407
#: js/ui/dateMenu.js:426
msgid "Loading…"
msgstr "Wczytywanie…"
#: js/ui/dateMenu.js:417
#: js/ui/dateMenu.js:436
msgid "Go online for weather information"
msgstr "Prognoza pogody wymaga połączenia z Internetem"
#: js/ui/dateMenu.js:419
#: js/ui/dateMenu.js:438
msgid "Weather information is currently unavailable"
msgstr "Prognoza pogody jest obecnie niedostępna"
#: js/ui/endSessionDialog.js:37
#: js/ui/endSessionDialog.js:39
#, javascript-format
msgctxt "title"
msgid "Log Out %s"
msgstr "Wylogowanie użytkownika %s"
#: js/ui/endSessionDialog.js:38
#: js/ui/endSessionDialog.js:40
msgctxt "title"
msgid "Log Out"
msgstr "Wylogowanie"
#: js/ui/endSessionDialog.js:40
#: js/ui/endSessionDialog.js:42
#, javascript-format
msgid "%s will be logged out automatically in %d second."
msgid_plural "%s will be logged out automatically in %d seconds."
@ -1295,7 +1157,7 @@ msgstr[0] "Użytkownik %s zostanie wylogowany za %d sekundę."
msgstr[1] "Użytkownik %s zostanie wylogowany za %d sekundy."
msgstr[2] "Użytkownik %s zostanie wylogowany za %d sekund."
#: js/ui/endSessionDialog.js:45
#: js/ui/endSessionDialog.js:47
#, javascript-format
msgid "You will be logged out automatically in %d second."
msgid_plural "You will be logged out automatically in %d seconds."
@ -1303,22 +1165,22 @@ msgstr[0] "Wylogowanie nastąpi za %d sekundę."
msgstr[1] "Wylogowanie nastąpi za %d sekundy."
msgstr[2] "Wylogowanie nastąpi za %d sekund."
#: js/ui/endSessionDialog.js:51
#: js/ui/endSessionDialog.js:53
msgctxt "button"
msgid "Log Out"
msgstr "Wyloguj się"
#: js/ui/endSessionDialog.js:56
#: js/ui/endSessionDialog.js:58
msgctxt "title"
msgid "Power Off"
msgstr "Wyłączenie komputera"
#: js/ui/endSessionDialog.js:57
#: js/ui/endSessionDialog.js:59
msgctxt "title"
msgid "Install Updates & Power Off"
msgstr "Instalacja aktualizacji i wyłączenie komputera"
#: js/ui/endSessionDialog.js:59
#: js/ui/endSessionDialog.js:61
#, javascript-format
msgid "The system will power off automatically in %d second."
msgid_plural "The system will power off automatically in %d seconds."
@ -1326,27 +1188,27 @@ msgstr[0] "Wyłączenie komputera nastąpi za %d sekundę."
msgstr[1] "Wyłączenie komputera nastąpi za %d sekundy."
msgstr[2] "Wyłączenie komputera nastąpi za %d sekund."
#: js/ui/endSessionDialog.js:63
#: js/ui/endSessionDialog.js:65
msgctxt "checkbox"
msgid "Install pending software updates"
msgstr "Instalacja oczekujących aktualizacji oprogramowania"
#: js/ui/endSessionDialog.js:66 js/ui/endSessionDialog.js:82
#: js/ui/endSessionDialog.js:68 js/ui/endSessionDialog.js:84
msgctxt "button"
msgid "Restart"
msgstr "Uruchom ponownie"
#: js/ui/endSessionDialog.js:68
#: js/ui/endSessionDialog.js:70
msgctxt "button"
msgid "Power Off"
msgstr "Wyłącz komputer"
#: js/ui/endSessionDialog.js:74
#: js/ui/endSessionDialog.js:76
msgctxt "title"
msgid "Restart"
msgstr "Ponowne uruchomienie"
#: js/ui/endSessionDialog.js:76
#: js/ui/endSessionDialog.js:78
#, javascript-format
msgid "The system will restart automatically in %d second."
msgid_plural "The system will restart automatically in %d seconds."
@ -1354,12 +1216,12 @@ msgstr[0] "Ponowne uruchomienie komputera nastąpi za %d sekundę."
msgstr[1] "Ponowne uruchomienie komputera nastąpi za %d sekundy."
msgstr[2] "Ponowne uruchomienie komputera nastąpi za %d sekund."
#: js/ui/endSessionDialog.js:89
#: js/ui/endSessionDialog.js:91
msgctxt "title"
msgid "Restart & Install Updates"
msgstr "Ponowne uruchomienie i instalacja aktualizacji"
#: js/ui/endSessionDialog.js:91
#: js/ui/endSessionDialog.js:93
#, javascript-format
msgid "The system will automatically restart and install updates in %d second."
msgid_plural ""
@ -1374,22 +1236,22 @@ msgstr[2] ""
"Ponowne uruchomienie komputera i instalacja aktualizacji nastąpi za "
"%d sekund."
#: js/ui/endSessionDialog.js:97 js/ui/endSessionDialog.js:116
#: js/ui/endSessionDialog.js:99 js/ui/endSessionDialog.js:118
msgctxt "button"
msgid "Restart &amp; Install"
msgstr "Uruchom ponownie i zainstaluj"
#: js/ui/endSessionDialog.js:98
#: js/ui/endSessionDialog.js:100
msgctxt "button"
msgid "Install &amp; Power Off"
msgstr "Zainstaluj i wyłącz komputer"
#: js/ui/endSessionDialog.js:99
#: js/ui/endSessionDialog.js:101
msgctxt "checkbox"
msgid "Power off after updates are installed"
msgstr "Wyłączenie komputera po zainstalowaniu aktualizacji"
#: js/ui/endSessionDialog.js:106
#: js/ui/endSessionDialog.js:108
msgctxt "title"
msgid "Restart & Install Upgrade"
msgstr "Ponowne uruchomienie i instalacja aktualizacji"
@ -1397,7 +1259,7 @@ msgstr "Ponowne uruchomienie i instalacja aktualizacji"
#. Translators: This is the text displayed for system upgrades in the
#. shut down dialog. First %s gets replaced with the distro name and
#. second %s with the distro version to upgrade to
#: js/ui/endSessionDialog.js:111
#: js/ui/endSessionDialog.js:113
#, javascript-format
msgid ""
"%s %s will be installed after restart. Upgrade installation can take a long "
@ -1407,17 +1269,17 @@ msgstr ""
"aktualizacji może zająć dużo czasu. Proszę się upewnić, że wykonano kopię "
"zapasową danych i podłączono komputer do prądu."
#: js/ui/endSessionDialog.js:259
#: js/ui/endSessionDialog.js:261
msgid "Running on battery power: Please plug in before installing updates."
msgstr ""
"Działanie na zasilaniu z akumulatora: proszę podłączyć komputer do prądu "
"przed instalowaniem aktualizacji."
#: js/ui/endSessionDialog.js:268
#: js/ui/endSessionDialog.js:270
msgid "Some applications are busy or have unsaved work"
msgstr "Niektóre programy są używane lub mają niezapisane dane"
#: js/ui/endSessionDialog.js:273
#: js/ui/endSessionDialog.js:275
msgid "Other users are logged in"
msgstr "Inni użytkownicy są zalogowani"
@ -1433,25 +1295,25 @@ msgstr "%s (zdalnie)"
msgid "%s (console)"
msgstr "%s (konsola)"
#: js/ui/extensionDownloader.js:181
#: js/ui/extensionDownloader.js:185
msgid "Install"
msgstr "Zainstaluj"
#: js/ui/extensionDownloader.js:187
#: js/ui/extensionDownloader.js:191
msgid "Install Extension"
msgstr "Instalacja rozszerzenia"
#: js/ui/extensionDownloader.js:188
#: js/ui/extensionDownloader.js:192
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr ""
"Pobrać i zainstalować rozszerzenie „%s” z witryny extensions.gnome.org?"
#: js/ui/extensionSystem.js:228
#: js/ui/extensionSystem.js:233
msgid "Extension Updates Available"
msgstr "Dostępne są aktualizacje rozszerzeń"
#: js/ui/extensionSystem.js:229
#: js/ui/extensionSystem.js:234
msgid "Extension updates are ready to be installed."
msgstr "Aktualizacje rozszerzeń są gotowe do zainstalowania."
@ -1598,11 +1460,11 @@ msgstr "Wyświetl źródło"
msgid "Web Page"
msgstr "Strona WWW"
#: js/ui/main.js:274
#: js/ui/main.js:277
msgid "Logged in as a privileged user"
msgstr "Zalogowano jako uprawniony użytkownik"
#: js/ui/main.js:275
#: js/ui/main.js:278
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@ -1610,15 +1472,15 @@ msgstr ""
"Należy unikać działania jako uprawniony użytkownik z powodów bezpieczeństwa. "
"Jeśli to możliwe, należy zalogować się jako zwykły użytkownik."
#: js/ui/main.js:281
#: js/ui/main.js:317
msgid "Screen Lock disabled"
msgstr "Blokada ekranu jest wyłączona"
#: js/ui/main.js:282
#: js/ui/main.js:318
msgid "Screen Locking requires the GNOME display manager."
msgstr "Blokowanie ekranu wymaga menedżera wyświetlania GNOME."
#: js/ui/messageTray.js:1554
#: js/ui/messageTray.js:1551
msgid "System Information"
msgstr "Informacje systemowe"
@ -1826,13 +1688,13 @@ msgid "The PIM must be a number or empty."
msgstr "PIM musi być numerem lub być pusty."
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:469
#: js/ui/shellMountOperation.js:465
#, javascript-format
msgid "Unable to start %s"
msgstr "Nie można uruchomić programu %s"
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:471
#: js/ui/shellMountOperation.js:467
#, javascript-format
msgid "Couldnt find the %s application"
msgstr "Nie można odnaleźć programu %s"
@ -2257,7 +2119,7 @@ msgstr "Zablokuj ekran"
#: js/ui/status/system.js:116
msgid "Power Off / Log Out"
msgstr "Wyłącz komputer/wyloguj się"
msgstr "Wyłącz/wyloguj się"
#: js/ui/status/system.js:119
msgid "Log Out"
@ -2310,11 +2172,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:150
#: js/ui/status/volume.js:151
msgid "Volume changed"
msgstr "Zmieniono głośność"
#: js/ui/status/volume.js:221
#: js/ui/status/volume.js:222
msgid "Volume"
msgstr "Głośność"
@ -2348,23 +2210,23 @@ msgstr "Tylko wbudowany"
#. Translators: This is a time format for a date in
#. long format
#: js/ui/unlockDialog.js:370
#: js/ui/unlockDialog.js:371
msgid "%A %B %-d"
msgstr "%A, %-d %B"
#: js/ui/unlockDialog.js:376
#: js/ui/unlockDialog.js:377
msgid "Swipe up to unlock"
msgstr "Przeciągnięcie w górę odblokuje"
#: js/ui/unlockDialog.js:377
#: js/ui/unlockDialog.js:378
msgid "Click or press a key to unlock"
msgstr "Kliknięcie lub naciśnięcie klawisza odblokuje"
#: js/ui/unlockDialog.js:549
#: js/ui/unlockDialog.js:550
msgid "Unlock Window"
msgstr "Okno odblokowania"
#: js/ui/unlockDialog.js:558
#: js/ui/unlockDialog.js:559
msgid "Log in as another user"
msgstr "Zaloguj jako inny użytkownik"
@ -2522,6 +2384,140 @@ msgstr "Hasło nie może być puste"
msgid "Authentication dialog was dismissed by the user"
msgstr "Okno uwierzytelniania zostało odrzucone przez użytkownika"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:4
#: subprojects/extensions-app/js/main.js:182
#: subprojects/extensions-app/data/ui/extensions-window.ui:61
msgid "Extensions"
msgstr "Rozszerzenia"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:6
#: subprojects/extensions-app/js/main.js:183
msgid "Manage your GNOME Extensions"
msgstr "Zarządzanie rozszerzeniami GNOME"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:35
msgid ""
"GNOME Extensions handles updating extensions, configuring extension "
"preferences and removing or disabling unwanted extensions."
msgstr ""
"Ten program obsługuje aktualizowanie, konfigurowanie preferencji oraz "
"usuwanie i wyłączanie niechcianych rozszerzeń."
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:7
msgid "Configure GNOME Shell Extensions"
msgstr "Konfiguracja rozszerzeń powłoki GNOME"
#: subprojects/extensions-app/js/main.js:144
#, javascript-format
msgid "Remove “%s”?"
msgstr "Usunąć rozszerzenie „%s”?"
#: subprojects/extensions-app/js/main.js:145
msgid ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
msgstr ""
"Po usunięciu rozszerzenia jego ponowne włączenie będzie wymagało pobrania od "
"nowa"
#: subprojects/extensions-app/js/main.js:149
msgid "Remove"
msgstr "Usuń"
#: subprojects/extensions-app/js/main.js:181
msgid "translator-credits"
msgstr ""
"Piotr Drąg <piotrdrag@gmail.com>, 2009-2020\n"
"Tomasz Dominikowski <dominikowski@gmail.com>, 2009\n"
"Wojciech Szczęsny <wszczesny@aviary.pl>, 2013\n"
"Aviary.pl <community-poland@mozilla.org>, 2009-2020"
#: subprojects/extensions-app/js/main.js:316
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
msgstr[0] "%d rozszerzenie zostanie zaktualizowane po następnym zalogowaniu."
msgstr[1] "%d rozszerzenia zostaną zaktualizowane po następnym zalogowaniu."
msgstr[2] "%d rozszerzeń zostanie zaktualizowanych po następnym zalogowaniu."
#: subprojects/extensions-app/data/ui/extension-row.ui:100
#: subprojects/extensions-tool/src/command-create.c:211
#: subprojects/extensions-tool/src/main.c:173
msgid "Description"
msgstr "Opis"
#: subprojects/extensions-app/data/ui/extension-row.ui:123
#: subprojects/extensions-tool/src/main.c:185
msgid "Version"
msgstr "Wersja"
#: subprojects/extensions-app/data/ui/extension-row.ui:151
msgid "Author"
msgstr "Autor"
#: subprojects/extensions-app/data/ui/extension-row.ui:175
msgid "Website"
msgstr "Witryna"
#: subprojects/extensions-app/data/ui/extension-row.ui:192
msgid "Remove…"
msgstr "Usuń…"
#: subprojects/extensions-app/data/ui/extensions-window.ui:8
msgid "Help"
msgstr "Pomoc"
#: subprojects/extensions-app/data/ui/extensions-window.ui:12
msgid "About Extensions"
msgstr "O programie"
#: subprojects/extensions-app/data/ui/extensions-window.ui:27
msgid ""
"To find and add extensions, visit <a href=\"https://extensions.gnome.org"
"\">extensions.gnome.org</a>."
msgstr ""
"Witryna <a href=\"https://extensions.gnome.org\">extensions.gnome.org</a> "
"umożliwia wyszukiwanie i dodawanie rozszerzeń."
#: subprojects/extensions-app/data/ui/extensions-window.ui:35
msgid "Warning"
msgstr "Ostrzeżenie"
#: subprojects/extensions-app/data/ui/extensions-window.ui:46
msgid ""
"Extensions can cause system issues, including performance problems. If you "
"encounter problems with your system, it is recommended to disable all "
"extensions."
msgstr ""
"Rozszerzenia mogą powodować problemy z komputerem, w tym związane "
"z wydajnością. W przypadku występowania problemów zalecane jest wyłączenie "
"wszystkich rozszerzeń."
#: subprojects/extensions-app/data/ui/extensions-window.ui:134
msgid "Manually Installed"
msgstr "Ręcznie zainstalowane"
#: subprojects/extensions-app/data/ui/extensions-window.ui:158
msgid "Built-In"
msgstr "Wbudowane"
#: subprojects/extensions-app/data/ui/extensions-window.ui:199
msgid "No Installed Extensions"
msgstr "Brak zainstalowanych rozszerzeń"
#: subprojects/extensions-app/data/ui/extensions-window.ui:235
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."
msgstr ""
"Nie można wyświetlić listy zainstalowanych rozszerzeń. Proszę się upewnić, "
"że zalogowano w środowisku GNOME i spróbować ponownie."
#: subprojects/extensions-app/data/ui/extensions-window.ui:288
msgid "Log Out…"
msgstr "Wyloguj się…"
#. Translators: a file path to an extension directory
#: subprojects/extensions-tool/src/command-create.c:125
#, c-format
@ -2860,6 +2856,9 @@ msgstr[2] "%u wejść"
msgid "System Sounds"
msgstr "Dźwięki systemowe"
msgid "Extension Updates Ready"
msgstr "Aktualizacje rozszerzeń są gotowe"
msgctxt "button"
msgid "Boot Options"
msgstr "Opcje uruchamiania"

1939
po/ro.po

File diff suppressed because it is too large Load Diff

555
po/sk.po

File diff suppressed because it is too large Load Diff

2002
po/sl.po

File diff suppressed because it is too large Load Diff

161
po/sr.po
View File

@ -12,8 +12,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-03-31 07:15+0000\n"
"PO-Revision-Date: 2020-04-02 21:42+0200\n"
"POT-Creation-Date: 2020-05-15 03:04+0000\n"
"PO-Revision-Date: 2020-05-17 21:22+0200\n"
"Last-Translator: Марко М. Костић <marko.m.kostic@gmail.com>\n"
"Language-Team: Serbian <gnome-sr@googlegroups.org>\n"
"Language: sr\n"
@ -28,7 +28,7 @@ msgstr ""
#: data/50-gnome-shell-system.xml:6
msgid "System"
msgstr "Упишите тражено"
msgstr "Систем"
#: data/50-gnome-shell-system.xml:9
msgid "Show the notification list"
@ -391,7 +391,7 @@ msgid "Network Login"
msgstr "Мрежна пријава"
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:36
#: subprojects/extensions-app/data/ui/extensions-window.ui:223
#: subprojects/extensions-app/data/ui/extensions-window.ui:224
msgid "Somethings gone wrong"
msgstr "Нешто је пошло наопако"
@ -418,7 +418,7 @@ msgstr "Посети матичну страну проширењ"
#: js/gdm/authPrompt.js:135 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:109 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:374 js/ui/extensionDownloader.js:181
#: js/ui/endSessionDialog.js:372 js/ui/extensionDownloader.js:181
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:913 subprojects/extensions-app/js/main.js:148
msgid "Cancel"
@ -474,13 +474,13 @@ msgid "(or swipe finger)"
msgstr "(или превуците прст)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:89
#: js/misc/systemActions.js:93
msgctxt "search-result"
msgid "Power Off"
msgstr "Искључи"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:92
#: js/misc/systemActions.js:96
msgid "power off;shutdown;reboot;restart;halt;stop"
msgstr ""
"power off;shutdown;искључи;угаси;гашење;isključi;ugasi;gašenje;iskljuci;"
@ -488,55 +488,55 @@ msgstr ""
"стоп"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:97
#: js/misc/systemActions.js:101
msgctxt "search-result"
msgid "Lock Screen"
msgstr "Закључај екран"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:100
#: js/misc/systemActions.js:104
msgid "lock screen"
msgstr "закључај екран"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:105
#: js/misc/systemActions.js:109
msgctxt "search-result"
msgid "Log Out"
msgstr "Одјави ме"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:108
#: js/misc/systemActions.js:112
msgid "logout;log out;sign off"
msgstr ""
"изађи;одјави се;одлогуј се;izađi;odjavi se;odloguj se;izadji;logout;log out;"
"sign off"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:113
#: js/misc/systemActions.js:117
msgctxt "search-result"
msgid "Suspend"
msgstr "Обустави"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:116
#: js/misc/systemActions.js:120
msgid "suspend;sleep"
msgstr ""
"suspend;sleep;обустави;спавај;суспендуј;obustavi;spavaj;suspenduj;suspend;"
"sleep"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:121
#: js/misc/systemActions.js:125
msgctxt "search-result"
msgid "Switch User"
msgstr "Промени корисника"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:124
#: js/misc/systemActions.js:128
msgid "switch user"
msgstr "switch user;промени корисника;promeni korisnika;switch user"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:131
#: js/misc/systemActions.js:135
msgid "lock orientation;unlock orientation;screen;rotation"
msgstr ""
"lock orientation;screen;rotation;закључај окретање екрана;закључај "
@ -544,12 +544,12 @@ msgstr ""
"okretanje ekrana;екран;ekran;окретање;okretanje;lock orientation;screen;"
"rotation"
#: js/misc/systemActions.js:251
#: js/misc/systemActions.js:255
msgctxt "search-result"
msgid "Unlock Screen Rotation"
msgstr "Откључај окретање екрана"
#: js/misc/systemActions.js:252
#: js/misc/systemActions.js:256
msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Закључај окретање екрана"
@ -726,53 +726,53 @@ msgstr "Забрани приступ"
msgid "Grant Access"
msgstr "Дозволи приступ"
#: js/ui/appDisplay.js:932
#: js/ui/appDisplay.js:939
msgid "Unnamed Folder"
msgstr "Неименована фасцикла"
#: js/ui/appDisplay.js:955
#: js/ui/appDisplay.js:962
msgid "Frequently used applications will appear here"
msgstr "Често коришћени програми ће се појавити овде"
#: js/ui/appDisplay.js:1090
#: js/ui/appDisplay.js:1097
msgid "Frequent"
msgstr "Често"
#: js/ui/appDisplay.js:1097
#: js/ui/appDisplay.js:1104
msgid "All"
msgstr "Све"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2473 js/ui/panel.js:75
#: js/ui/appDisplay.js:2480 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Отвори прозоре"
#: js/ui/appDisplay.js:2493 js/ui/panel.js:82
#: js/ui/appDisplay.js:2500 js/ui/panel.js:82
msgid "New Window"
msgstr "Нови прозор"
#: js/ui/appDisplay.js:2504
#: js/ui/appDisplay.js:2511
msgid "Launch using Dedicated Graphics Card"
msgstr "Покрени са намењеном графичком картицом"
#: js/ui/appDisplay.js:2532 js/ui/dash.js:239
#: js/ui/appDisplay.js:2539 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Уклони из омиљених"
#: js/ui/appDisplay.js:2538
#: js/ui/appDisplay.js:2545
msgid "Add to Favorites"
msgstr "Додај у омиљене"
#: js/ui/appDisplay.js:2548 js/ui/panel.js:93
#: js/ui/appDisplay.js:2555 js/ui/panel.js:93
msgid "Show Details"
msgstr "Прикажи детаље"
#: js/ui/appFavorites.js:152
#: js/ui/appFavorites.js:153
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "„%s“ је додат међу омиљене."
#: js/ui/appFavorites.js:185
#: js/ui/appFavorites.js:186
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "„%s“ је уклоњен из омиљених."
@ -1145,18 +1145,18 @@ msgstr "Идите на мрежу за податке о временској
msgid "Weather information is currently unavailable"
msgstr "Подаци о временској прогнози тренутно нису доступни."
#: js/ui/endSessionDialog.js:39
#: js/ui/endSessionDialog.js:37
#, javascript-format
msgctxt "title"
msgid "Log Out %s"
msgstr "Одјави корисника „%s“"
#: js/ui/endSessionDialog.js:40
#: js/ui/endSessionDialog.js:38
msgctxt "title"
msgid "Log Out"
msgstr "Одјави ме"
#: js/ui/endSessionDialog.js:42
#: js/ui/endSessionDialog.js:40
#, javascript-format
msgid "%s will be logged out automatically in %d second."
msgid_plural "%s will be logged out automatically in %d seconds."
@ -1165,7 +1165,7 @@ msgstr[1] "%s ће бити одјављен за %d секунде."
msgstr[2] "%s ће бити одјављен за %d секунди."
msgstr[3] "%s ће бити одјављен за %d секунду."
#: js/ui/endSessionDialog.js:47
#: js/ui/endSessionDialog.js:45
#, javascript-format
msgid "You will be logged out automatically in %d second."
msgid_plural "You will be logged out automatically in %d seconds."
@ -1174,22 +1174,22 @@ msgstr[1] "Бићете одјављени за %d секунде."
msgstr[2] "Бићете одјављени за %d секунди."
msgstr[3] "Бићете одјављени за %d секунду."
#: js/ui/endSessionDialog.js:53
#: js/ui/endSessionDialog.js:51
msgctxt "button"
msgid "Log Out"
msgstr "Одјави"
#: js/ui/endSessionDialog.js:58
#: js/ui/endSessionDialog.js:56
msgctxt "title"
msgid "Power Off"
msgstr "Искључи"
#: js/ui/endSessionDialog.js:59
#: js/ui/endSessionDialog.js:57
msgctxt "title"
msgid "Install Updates & Power Off"
msgstr "Инсталирај освежења и искључи"
#: js/ui/endSessionDialog.js:61
#: js/ui/endSessionDialog.js:59
#, javascript-format
msgid "The system will power off automatically in %d second."
msgid_plural "The system will power off automatically in %d seconds."
@ -1198,27 +1198,27 @@ msgstr[1] "Рачунар ће се искључити за %d секунде."
msgstr[2] "Рачунар ће се искључити за %d секунди."
msgstr[3] "Рачунар ће се искључити за %d секунду."
#: js/ui/endSessionDialog.js:65
#: js/ui/endSessionDialog.js:63
msgctxt "checkbox"
msgid "Install pending software updates"
msgstr "Инсталирај освежења софтвера на чекању"
#: js/ui/endSessionDialog.js:68 js/ui/endSessionDialog.js:84
#: js/ui/endSessionDialog.js:66 js/ui/endSessionDialog.js:82
msgctxt "button"
msgid "Restart"
msgstr "Поново покрени"
#: js/ui/endSessionDialog.js:70
#: js/ui/endSessionDialog.js:68
msgctxt "button"
msgid "Power Off"
msgstr "Искључи"
#: js/ui/endSessionDialog.js:76
#: js/ui/endSessionDialog.js:74
msgctxt "title"
msgid "Restart"
msgstr "Поново покрени"
#: js/ui/endSessionDialog.js:78
#: js/ui/endSessionDialog.js:76
#, javascript-format
msgid "The system will restart automatically in %d second."
msgid_plural "The system will restart automatically in %d seconds."
@ -1227,12 +1227,12 @@ msgstr[1] "Систем ће се поново покренути за %d сек
msgstr[2] "Систем ће се поново покренути за %d секунди."
msgstr[3] "Систем ће се поново покренути за %d секунду."
#: js/ui/endSessionDialog.js:91
#: js/ui/endSessionDialog.js:89
msgctxt "title"
msgid "Restart & Install Updates"
msgstr "Поново покрени и инсталирај ажурирања"
#: js/ui/endSessionDialog.js:93
#: js/ui/endSessionDialog.js:91
#, javascript-format
msgid "The system will automatically restart and install updates in %d second."
msgid_plural ""
@ -1246,22 +1246,22 @@ msgstr[2] ""
msgstr[3] ""
"Систем ће се сам поново покренути и инсталирати ажурирања за %d секунду."
#: js/ui/endSessionDialog.js:99 js/ui/endSessionDialog.js:118
#: js/ui/endSessionDialog.js:97 js/ui/endSessionDialog.js:116
msgctxt "button"
msgid "Restart &amp; Install"
msgstr "Поново покрени и инсталирај"
#: js/ui/endSessionDialog.js:100
#: js/ui/endSessionDialog.js:98
msgctxt "button"
msgid "Install &amp; Power Off"
msgstr "Инсталирај и искључи"
#: js/ui/endSessionDialog.js:101
#: js/ui/endSessionDialog.js:99
msgctxt "checkbox"
msgid "Power off after updates are installed"
msgstr "Искључи након инсталирања освежења"
#: js/ui/endSessionDialog.js:108
#: js/ui/endSessionDialog.js:106
msgctxt "title"
msgid "Restart & Install Upgrade"
msgstr "Поново покрени и инсталирај надоградњу"
@ -1269,7 +1269,7 @@ msgstr "Поново покрени и инсталирај надоградњу
#. Translators: This is the text displayed for system upgrades in the
#. shut down dialog. First %s gets replaced with the distro name and
#. second %s with the distro version to upgrade to
#: js/ui/endSessionDialog.js:113
#: js/ui/endSessionDialog.js:111
#, javascript-format
msgid ""
"%s %s will be installed after restart. Upgrade installation can take a long "
@ -1279,26 +1279,26 @@ msgstr ""
"понекад може да потраје: проверите да ли сте направили резерву ваших важних "
"података и да ли је рачунар прикључен на мрежно напајање."
#: js/ui/endSessionDialog.js:261
#: js/ui/endSessionDialog.js:259
msgid "Running on battery power: Please plug in before installing updates."
msgstr "На батерији сте, прикључите мрежно напајање пре инсталирања ажурирања."
#: js/ui/endSessionDialog.js:270
#: js/ui/endSessionDialog.js:268
msgid "Some applications are busy or have unsaved work"
msgstr "Неки програми су заузети или имају несачувани рад"
#: js/ui/endSessionDialog.js:275
#: js/ui/endSessionDialog.js:273
msgid "Other users are logged in"
msgstr "Други корисници су пријављени"
#. Translators: Remote here refers to a remote session, like a ssh login
#: js/ui/endSessionDialog.js:588
#: js/ui/endSessionDialog.js:586
#, javascript-format
msgid "%s (remote)"
msgstr "%s (удаљено)"
#. Translators: Console here refers to a tty like a VT console
#: js/ui/endSessionDialog.js:591
#: js/ui/endSessionDialog.js:589
#, javascript-format
msgid "%s (console)"
msgstr "%s (љуска)"
@ -1316,11 +1316,11 @@ msgstr "Инсталирај проширење"
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Да преузмем и да инсталирам „%s“ са „extensions.gnome.org“-а?"
#: js/ui/extensionSystem.js:233
#: js/ui/extensionSystem.js:252
msgid "Extension Updates Available"
msgstr "Доступна су ажурирања проширења"
#: js/ui/extensionSystem.js:234
#: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed."
msgstr "Ажурирања проширења су доступна за инсталирање."
@ -1467,11 +1467,11 @@ msgstr "Прикажи код"
msgid "Web Page"
msgstr "Веб страница"
#: js/ui/main.js:277
#: js/ui/main.js:279
msgid "Logged in as a privileged user"
msgstr "Пријављен као повлашћен корисник"
#: js/ui/main.js:278
#: js/ui/main.js:280
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@ -1479,23 +1479,23 @@ msgstr ""
"Покретање сесије под повлашћеним корисничким налогом треба избегавати из "
"безбедносних разлога. Ако је то могуће, пријавите се као обичан корисник."
#: js/ui/main.js:317
#: js/ui/main.js:319
msgid "Screen Lock disabled"
msgstr "Закључавање екрана онемогућено"
#: js/ui/main.js:318
#: js/ui/main.js:320
msgid "Screen Locking requires the GNOME display manager."
msgstr "Потребан је Гномов управник екрана за могућност закључавања екрана."
#: js/ui/messageTray.js:1551
#: js/ui/messageTray.js:1548
msgid "System Information"
msgstr "Подаци о систему"
#: js/ui/mpris.js:199
#: js/ui/mpris.js:204
msgid "Unknown artist"
msgstr "Непознат извођач"
#: js/ui/mpris.js:209
#: js/ui/mpris.js:214
msgid "Unknown title"
msgstr "Непознат наслов"
@ -1567,16 +1567,16 @@ msgstr "Изађи"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: js/ui/panel.js:434
#: js/ui/panel.js:437
msgid "Activities"
msgstr "Активности"
#: js/ui/panel.js:713
#: js/ui/panel.js:716
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Систем"
#: js/ui/panel.js:826
#: js/ui/panel.js:829
msgid "Top Bar"
msgstr "Горња трака"
@ -1607,11 +1607,11 @@ msgstr "Гном мора да закључа екран"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: js/ui/screenShield.js:244 js/ui/screenShield.js:598
#: js/ui/screenShield.js:244 js/ui/screenShield.js:601
msgid "Unable to lock"
msgstr "Не могу да закључам"
#: js/ui/screenShield.js:245 js/ui/screenShield.js:599
#: js/ui/screenShield.js:245 js/ui/screenShield.js:602
msgid "Lock was blocked by an application"
msgstr "Неки програм је блокирао закључавање"
@ -2273,7 +2273,7 @@ msgstr "Врати подешавања"
msgid "Keep Changes"
msgstr "Задржи измене"
#: js/ui/windowManager.js:85
#: js/ui/windowManager.js:86
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@ -2284,7 +2284,7 @@ msgstr[3] "Измене подешавања ће бити враћене за %
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:544
#: js/ui/windowManager.js:546
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@ -2377,12 +2377,12 @@ msgstr "Користи нарочит режим, нпр. „gdm“ за екр
msgid "List possible modes"
msgstr "Исписује могуће режиме"
#: src/shell-app.c:279
#: src/shell-app.c:286
msgctxt "program"
msgid "Unknown"
msgstr "Непознат"
#: src/shell-app.c:530
#: src/shell-app.c:537
#, c-format
msgid "Failed to launch “%s”"
msgstr "Нисам успео да покренем „%s“"
@ -2512,19 +2512,19 @@ msgstr ""
"Уколико приметите проблеме у раду, препоручујемо да онемогућите сва "
"проширења."
#: subprojects/extensions-app/data/ui/extensions-window.ui:134
#: subprojects/extensions-app/data/ui/extensions-window.ui:135
msgid "Manually Installed"
msgstr "Ручно инсталирана"
#: subprojects/extensions-app/data/ui/extensions-window.ui:158
#: subprojects/extensions-app/data/ui/extensions-window.ui:159
msgid "Built-In"
msgstr "Уграђена"
#: subprojects/extensions-app/data/ui/extensions-window.ui:199
#: subprojects/extensions-app/data/ui/extensions-window.ui:200
msgid "No Installed Extensions"
msgstr "Неинсталирана проширења"
#: subprojects/extensions-app/data/ui/extensions-window.ui:235
#: subprojects/extensions-app/data/ui/extensions-window.ui:236
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."
@ -2532,7 +2532,12 @@ msgstr ""
"Нажалост, није било могуће добавити списак инсталираних проширења. Проверите "
"да ли сте пријављени у Гном и пробајте поново."
#: subprojects/extensions-app/data/ui/extensions-window.ui:288
#: subprojects/extensions-app/data/ui/extensions-window.ui:273
#| msgid "Extension Updates Available"
msgid "Extension Updates Ready"
msgstr "Спремна су ажурирања проширења"
#: subprojects/extensions-app/data/ui/extensions-window.ui:289
msgid "Log Out…"
msgstr "Одјава…"

431
po/sv.po
View File

@ -11,8 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-03-19 14:34+0000\n"
"PO-Revision-Date: 2020-03-19 21:39+0100\n"
"POT-Creation-Date: 2020-05-11 14:00+0000\n"
"PO-Revision-Date: 2020-05-12 00:34+0200\n"
"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n"
@ -387,69 +387,12 @@ msgstr "Fördröj fokusändringar i musläge tills pekare slutar röra sig"
msgid "Network Login"
msgstr "Nätverksinloggning"
#: js/extensionPrefs/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
#: js/extensionPrefs/data/org.gnome.Extensions.desktop.in.in:4
#: js/extensionPrefs/js/main.js:242
#: js/extensionPrefs/data/ui/extensions-window.ui:61
msgid "Extensions"
msgstr "Tillägg"
#: js/extensionPrefs/data/metainfo/org.gnome.Extensions.metainfo.xml.in:6
#: js/extensionPrefs/js/main.js:243
msgid "Manage your GNOME Extensions"
msgstr "Hantera dina GNOME-tillägg"
#: js/extensionPrefs/data/metainfo/org.gnome.Extensions.metainfo.xml.in:35
msgid ""
"GNOME Extensions handles updating extensions, configuring extension "
"preferences and removing or disabling unwanted extensions."
msgstr ""
"GNOME Tillägg hanterar uppdatering av tillägg, konfiguration av "
"inställningar för tillägg samt att ta bort eller inaktivera oönskade tillägg."
#: js/extensionPrefs/data/org.gnome.Extensions.desktop.in.in:7
msgid "Configure GNOME Shell Extensions"
msgstr "Konfigurera tillägg för GNOME-skal"
#: js/extensionPrefs/js/main.js:164
#, javascript-format
msgid "Remove “%s”?"
msgstr "Ta bort ”%s”?"
#: js/extensionPrefs/js/main.js:165
msgid ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
msgstr ""
"Om du tar bort tillägget kommer du att behöva återvända för att hämta det om "
"du vill aktivera det igen"
#: js/extensionPrefs/js/main.js:168 js/gdm/authPrompt.js:135
#: js/ui/audioDeviceSelection.js:57 js/ui/components/networkAgent.js:109
#: js/ui/components/polkitAgent.js:139 js/ui/endSessionDialog.js:374
#: js/ui/extensionDownloader.js:177 js/ui/shellMountOperation.js:376
#: js/ui/shellMountOperation.js:386 js/ui/status/network.js:913
msgid "Cancel"
msgstr "Avbryt"
#: js/extensionPrefs/js/main.js:169
msgid "Remove"
msgstr "Ta bort"
#: js/extensionPrefs/js/main.js:241
msgid "translator-credits"
msgstr ""
"Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
"\n"
"Skicka synpunkter på översättningen till\n"
"<tp-sv@listor.tp-sv.se>."
#: js/extensionPrefs/js/main.js:285
#: js/extensionPrefs/data/ui/extensions-window.ui:223
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:36
#: subprojects/extensions-app/data/ui/extensions-window.ui:224
msgid "Somethings gone wrong"
msgstr "Något har gått fel"
#: js/extensionPrefs/js/main.js:292
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:48
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 "
@ -459,104 +402,25 @@ msgstr ""
"tillägg kan inte visas. Vi rekommenderar att du rapporterar problemet till "
"tilläggets skapare."
#: js/extensionPrefs/js/main.js:299
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:82
msgid "Technical Details"
msgstr "Tekniska detaljer"
#: js/extensionPrefs/js/main.js:334
msgid "Copy Error"
msgstr "Kopiera fel"
#: js/extensionPrefs/js/main.js:361
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:165
msgid "Homepage"
msgstr "Webbsida"
#: js/extensionPrefs/js/main.js:362
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:166
msgid "Visit extension homepage"
msgstr "Besök webbsida för tillägg"
#: js/extensionPrefs/js/main.js:479
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
msgstr[0] "%d inlägg kommer att uppdateras vid nästa inloggning."
msgstr[1] "%d inlägg kommer att uppdateras vid nästa inloggning."
#: js/extensionPrefs/data/ui/extension-row.ui:100
#: subprojects/extensions-tool/src/command-create.c:211
#: subprojects/extensions-tool/src/main.c:173
msgid "Description"
msgstr "Beskrivning"
#: js/extensionPrefs/data/ui/extension-row.ui:123
#: subprojects/extensions-tool/src/main.c:185
msgid "Version"
msgstr "Version"
#: js/extensionPrefs/data/ui/extension-row.ui:151
msgid "Author"
msgstr "Upphovsman"
#: js/extensionPrefs/data/ui/extension-row.ui:175
msgid "Website"
msgstr "Webbplats"
#: js/extensionPrefs/data/ui/extension-row.ui:192
msgid "Remove…"
msgstr "Ta bort…"
#: js/extensionPrefs/data/ui/extensions-window.ui:8
msgid "Help"
msgstr "Hjälp"
#: js/extensionPrefs/data/ui/extensions-window.ui:12
msgid "About Extensions"
msgstr "Om tillägg"
#: js/extensionPrefs/data/ui/extensions-window.ui:27
msgid ""
"To find and add extensions, visit <a href=\"https://extensions.gnome.org"
"\">extensions.gnome.org</a>."
msgstr ""
"För att hitta och lägga till tillägg, besök <a href=\"https://extensions."
"gnome.org\">extensions.gnome.org</a>."
#: js/extensionPrefs/data/ui/extensions-window.ui:35
msgid "Warning"
msgstr "Varning"
#: js/extensionPrefs/data/ui/extensions-window.ui:46
msgid ""
"Extensions can cause system issues, including performance problems. If you "
"encounter problems with your system, it is recommended to disable all "
"extensions."
msgstr ""
"Tillägg kan orsaka systemproblem, även prestandaproblem. Om du stöter på "
"problem med ditt system så rekommenderas du att inaktivera alla tillägg."
#: js/extensionPrefs/data/ui/extensions-window.ui:134
msgid "Manually Installed"
msgstr "Manuellt installerade"
#: js/extensionPrefs/data/ui/extensions-window.ui:158
msgid "Built-In"
msgstr "Inbyggda"
#: js/extensionPrefs/data/ui/extensions-window.ui:199
msgid "No Installed Extensions"
msgstr "Inga installerade tillägg"
#: js/extensionPrefs/data/ui/extensions-window.ui:235
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."
msgstr ""
"Vi är ledsna, men det var inte möjligt att erhålla listan över installerade "
"tillägg. Säkerställ att du är inloggad i GNOME och försök igen."
#: js/extensionPrefs/data/ui/extensions-window.ui:288
msgid "Log Out…"
msgstr "Logga ut…"
#: js/gdm/authPrompt.js:135 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:109 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:372 js/ui/extensionDownloader.js:181
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:913 subprojects/extensions-app/js/main.js:148
msgid "Cancel"
msgstr "Avbryt"
#. Cisco LEAP
#: js/gdm/authPrompt.js:237 js/ui/components/networkAgent.js:204
@ -608,73 +472,73 @@ msgid "(or swipe finger)"
msgstr "(eller dra fingret)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:89
#: js/misc/systemActions.js:93
msgctxt "search-result"
msgid "Power Off"
msgstr "Stäng av"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:92
#: js/misc/systemActions.js:96
msgid "power off;shutdown;reboot;restart;halt;stop"
msgstr "stäng av;stäng ner;stäng;starta om;omstart;halt;stopp"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:97
#: js/misc/systemActions.js:101
msgctxt "search-result"
msgid "Lock Screen"
msgstr "Lås skärm"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:100
#: js/misc/systemActions.js:104
msgid "lock screen"
msgstr "lås skärm"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:105
#: js/misc/systemActions.js:109
msgctxt "search-result"
msgid "Log Out"
msgstr "Logga ut"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:108
#: js/misc/systemActions.js:112
msgid "logout;log out;sign off"
msgstr "utloggning;logga ut"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:113
#: js/misc/systemActions.js:117
msgctxt "search-result"
msgid "Suspend"
msgstr "Vänteläge"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:116
#: js/misc/systemActions.js:120
msgid "suspend;sleep"
msgstr "vänteläge;vila"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:121
#: js/misc/systemActions.js:125
msgctxt "search-result"
msgid "Switch User"
msgstr "Växla användare"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:124
#: js/misc/systemActions.js:128
msgid "switch user"
msgstr "växla användare"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:131
#: js/misc/systemActions.js:135
msgid "lock orientation;unlock orientation;screen;rotation"
msgstr ""
"lås orientering;lås riktning;lås upp orientering;lås upp riktning;skärm;"
"rotation"
#: js/misc/systemActions.js:251
#: js/misc/systemActions.js:255
msgctxt "search-result"
msgid "Unlock Screen Rotation"
msgstr "Lås upp skärmrotation"
#: js/misc/systemActions.js:252
#: js/misc/systemActions.js:256
msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Lås skärmrotation"
@ -840,53 +704,53 @@ msgstr "Neka åtkomst"
msgid "Grant Access"
msgstr "Bevilja åtkomst"
#: js/ui/appDisplay.js:898
#: js/ui/appDisplay.js:939
msgid "Unnamed Folder"
msgstr "Namnlös mapp"
#: js/ui/appDisplay.js:921
#: js/ui/appDisplay.js:962
msgid "Frequently used applications will appear here"
msgstr "Ofta använda program kommer visas här"
#: js/ui/appDisplay.js:1056
#: js/ui/appDisplay.js:1097
msgid "Frequent"
msgstr "Ofta använda"
#: js/ui/appDisplay.js:1063
#: js/ui/appDisplay.js:1104
msgid "All"
msgstr "Alla"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2446 js/ui/panel.js:75
#: js/ui/appDisplay.js:2480 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Öppna fönster"
#: js/ui/appDisplay.js:2466 js/ui/panel.js:82
#: js/ui/appDisplay.js:2500 js/ui/panel.js:82
msgid "New Window"
msgstr "Nytt fönster"
#: js/ui/appDisplay.js:2477
#: js/ui/appDisplay.js:2511
msgid "Launch using Dedicated Graphics Card"
msgstr "Kör med diskret grafikkort"
#: js/ui/appDisplay.js:2505 js/ui/dash.js:239
#: js/ui/appDisplay.js:2539 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Ta bort från favoriter"
#: js/ui/appDisplay.js:2511
#: js/ui/appDisplay.js:2545
msgid "Add to Favorites"
msgstr "Lägg till som favorit"
#: js/ui/appDisplay.js:2521 js/ui/panel.js:93
#: js/ui/appDisplay.js:2555 js/ui/panel.js:93
msgid "Show Details"
msgstr "Visa detaljer"
#: js/ui/appFavorites.js:152
#: js/ui/appFavorites.js:153
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s har lagts till i dina favoriter."
#: js/ui/appFavorites.js:185
#: js/ui/appFavorites.js:186
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s har tagits bort från dina favoriter."
@ -907,7 +771,7 @@ msgstr "Hörlurar"
msgid "Headset"
msgstr "Mikrofonlur"
#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:269
#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:270
msgid "Microphone"
msgstr "Mikrofon"
@ -1048,7 +912,7 @@ msgstr "Inga händelser"
msgid "Do Not Disturb"
msgstr "Stör ej"
#: js/ui/calendar.js:1171
#: js/ui/calendar.js:1176
msgid "Clear"
msgstr "Töm"
@ -1197,7 +1061,7 @@ msgstr "Tyvärr, det fungerade inte. Försök igen."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: js/ui/components/telepathyClient.js:787
#: js/ui/components/telepathyClient.js:823
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s är nu känd som %s"
@ -1241,23 +1105,23 @@ msgstr "Lägg till världsklockor…"
msgid "World Clocks"
msgstr "Världsklockor"
#: js/ui/dateMenu.js:279
#: js/ui/dateMenu.js:289
msgid "Weather"
msgstr "Väder"
#: js/ui/dateMenu.js:394
#: js/ui/dateMenu.js:418
msgid "Select a location…"
msgstr "Välj en plats…"
#: js/ui/dateMenu.js:407
#: js/ui/dateMenu.js:426
msgid "Loading…"
msgstr "Läser in…"
#: js/ui/dateMenu.js:417
#: js/ui/dateMenu.js:436
msgid "Go online for weather information"
msgstr "Anslut till nätet för väderinformation"
#: js/ui/dateMenu.js:419
#: js/ui/dateMenu.js:438
msgid "Weather information is currently unavailable"
msgstr "Väderinformation är för närvarande inte tillgänglig"
@ -1400,35 +1264,35 @@ msgid "Other users are logged in"
msgstr "Andra användare är inloggade"
#. Translators: Remote here refers to a remote session, like a ssh login
#: js/ui/endSessionDialog.js:588
#: js/ui/endSessionDialog.js:586
#, javascript-format
msgid "%s (remote)"
msgstr "%s (fjärransluten)"
#. Translators: Console here refers to a tty like a VT console
#: js/ui/endSessionDialog.js:591
#: js/ui/endSessionDialog.js:589
#, javascript-format
msgid "%s (console)"
msgstr "%s (konsol)"
#: js/ui/extensionDownloader.js:181
#: js/ui/extensionDownloader.js:185
msgid "Install"
msgstr "Installera"
#: js/ui/extensionDownloader.js:187
#: js/ui/extensionDownloader.js:191
msgid "Install Extension"
msgstr "Installera tillägg"
#: js/ui/extensionDownloader.js:188
#: js/ui/extensionDownloader.js:192
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Hämta och installera ”%s” från extensions.gnome.org?"
#: js/ui/extensionSystem.js:228
#: js/ui/extensionSystem.js:252
msgid "Extension Updates Available"
msgstr "Uppdateringar för tillägg finns tillgängliga"
#: js/ui/extensionSystem.js:229
#: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed."
msgstr "Uppdateringar för tillägg är redo att installeras."
@ -1576,11 +1440,11 @@ msgstr "Visa källa"
msgid "Web Page"
msgstr "Webbsida"
#: js/ui/main.js:274
#: js/ui/main.js:279
msgid "Logged in as a privileged user"
msgstr "Inloggad som en privilegierad användare"
#: js/ui/main.js:275
#: js/ui/main.js:280
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@ -1588,15 +1452,15 @@ msgstr ""
"Att köra en session som en privilegierad användare bör undvikas av "
"säkerhetsskäl. Om möjligt bör du logga in som en normal användare."
#: js/ui/main.js:281
#: js/ui/main.js:319
msgid "Screen Lock disabled"
msgstr "Skärmlås inaktiverat"
#: js/ui/main.js:282
#: js/ui/main.js:320
msgid "Screen Locking requires the GNOME display manager."
msgstr "Skärmlås kräver GNOME:s displayhanterare."
#: js/ui/messageTray.js:1554
#: js/ui/messageTray.js:1548
msgid "System Information"
msgstr "Systeminformation"
@ -1676,16 +1540,16 @@ msgstr "Avsluta"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: js/ui/panel.js:434
#: js/ui/panel.js:437
msgid "Activities"
msgstr "Aktiviteter"
#: js/ui/panel.js:713
#: js/ui/panel.js:716
msgctxt "System menu in the top bar"
msgid "System"
msgstr "System"
#: js/ui/panel.js:826
#: js/ui/panel.js:829
msgid "Top Bar"
msgstr "Systemrad"
@ -1716,11 +1580,11 @@ msgstr "GNOME behöver låsa skärmen"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: js/ui/screenShield.js:244 js/ui/screenShield.js:598
#: js/ui/screenShield.js:244 js/ui/screenShield.js:601
msgid "Unable to lock"
msgstr "Kunde inte låsa"
#: js/ui/screenShield.js:245 js/ui/screenShield.js:599
#: js/ui/screenShield.js:245 js/ui/screenShield.js:602
msgid "Lock was blocked by an application"
msgstr "Låsning hindrades av ett program"
@ -1803,13 +1667,13 @@ msgid "The PIM must be a number or empty."
msgstr "PIM måste vara ett tal eller tomt."
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:469
#: js/ui/shellMountOperation.js:465
#, javascript-format
msgid "Unable to start %s"
msgstr "Kunde inte starta %s"
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:471
#: js/ui/shellMountOperation.js:467
#, javascript-format
msgid "Couldnt find the %s application"
msgstr "Kunde inte hitta programmet %s"
@ -2283,11 +2147,11 @@ msgstr "Thunderbolt-auktoriseringsfel"
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "Kunde inte auktorisera Thunderbolt-enheten: %s"
#: js/ui/status/volume.js:150
#: js/ui/status/volume.js:151
msgid "Volume changed"
msgstr "Volymen ändrades"
#: js/ui/status/volume.js:221
#: js/ui/status/volume.js:222
msgid "Volume"
msgstr "Volym"
@ -2321,23 +2185,23 @@ msgstr "Inbyggd skärm"
#. Translators: This is a time format for a date in
#. long format
#: js/ui/unlockDialog.js:370
#: js/ui/unlockDialog.js:371
msgid "%A %B %-d"
msgstr "%A %-d %B"
#: js/ui/unlockDialog.js:376
#: js/ui/unlockDialog.js:377
msgid "Swipe up to unlock"
msgstr "Svep uppåt för att låsa upp"
#: js/ui/unlockDialog.js:377
#: js/ui/unlockDialog.js:378
msgid "Click or press a key to unlock"
msgstr "Klicka eller tryck på en tangent för att låsa upp"
#: js/ui/unlockDialog.js:549
#: js/ui/unlockDialog.js:550
msgid "Unlock Window"
msgstr "Lås upp fönster"
#: js/ui/unlockDialog.js:558
#: js/ui/unlockDialog.js:559
msgid "Log in as another user"
msgstr "Logga in som en annan användare"
@ -2370,7 +2234,7 @@ msgstr "Återställ inställningar"
msgid "Keep Changes"
msgstr "Behåll ändringar"
#: js/ui/windowManager.js:85
#: js/ui/windowManager.js:86
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@ -2379,7 +2243,7 @@ msgstr[1] "Inställningarna kommer återställas om %d sekunder"
#. 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:544
#: js/ui/windowManager.js:546
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@ -2472,12 +2336,12 @@ msgstr "Använd ett specifikt läge, t.ex. ”gdm” för inloggningsskärm"
msgid "List possible modes"
msgstr "Lista möjliga lägen"
#: src/shell-app.c:279
#: src/shell-app.c:286
msgctxt "program"
msgid "Unknown"
msgstr "Okänt"
#: src/shell-app.c:530
#: src/shell-app.c:537
#, c-format
msgid "Failed to launch “%s”"
msgstr "Misslyckades med att starta ”%s”"
@ -2494,6 +2358,142 @@ msgstr "Lösenordet får inte vara blankt"
msgid "Authentication dialog was dismissed by the user"
msgstr "Autentiseringsdialogen stängdes av användaren"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:4
#: subprojects/extensions-app/js/main.js:182
#: subprojects/extensions-app/data/ui/extensions-window.ui:61
msgid "Extensions"
msgstr "Tillägg"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:6
#: subprojects/extensions-app/js/main.js:183
msgid "Manage your GNOME Extensions"
msgstr "Hantera dina GNOME-tillägg"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:35
msgid ""
"GNOME Extensions handles updating extensions, configuring extension "
"preferences and removing or disabling unwanted extensions."
msgstr ""
"GNOME Tillägg hanterar uppdatering av tillägg, konfiguration av "
"inställningar för tillägg samt att ta bort eller inaktivera oönskade tillägg."
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:7
msgid "Configure GNOME Shell Extensions"
msgstr "Konfigurera tillägg för GNOME-skal"
#: subprojects/extensions-app/js/main.js:144
#, javascript-format
msgid "Remove “%s”?"
msgstr "Ta bort ”%s”?"
#: subprojects/extensions-app/js/main.js:145
msgid ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
msgstr ""
"Om du tar bort tillägget kommer du att behöva återvända för att hämta det om "
"du vill aktivera det igen"
#: subprojects/extensions-app/js/main.js:149
msgid "Remove"
msgstr "Ta bort"
#: subprojects/extensions-app/js/main.js:181
msgid "translator-credits"
msgstr ""
"Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
"\n"
"Skicka synpunkter på översättningen till\n"
"<tp-sv@listor.tp-sv.se>."
#: subprojects/extensions-app/js/main.js:316
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
msgstr[0] "%d inlägg kommer att uppdateras vid nästa inloggning."
msgstr[1] "%d inlägg kommer att uppdateras vid nästa inloggning."
#: subprojects/extensions-app/data/ui/extension-row.ui:100
#: subprojects/extensions-tool/src/command-create.c:211
#: subprojects/extensions-tool/src/main.c:173
msgid "Description"
msgstr "Beskrivning"
#: subprojects/extensions-app/data/ui/extension-row.ui:123
#: subprojects/extensions-tool/src/main.c:185
msgid "Version"
msgstr "Version"
#: subprojects/extensions-app/data/ui/extension-row.ui:151
msgid "Author"
msgstr "Upphovsman"
#: subprojects/extensions-app/data/ui/extension-row.ui:175
msgid "Website"
msgstr "Webbplats"
#: subprojects/extensions-app/data/ui/extension-row.ui:192
msgid "Remove…"
msgstr "Ta bort…"
#: subprojects/extensions-app/data/ui/extensions-window.ui:8
msgid "Help"
msgstr "Hjälp"
#: subprojects/extensions-app/data/ui/extensions-window.ui:12
msgid "About Extensions"
msgstr "Om tillägg"
#: subprojects/extensions-app/data/ui/extensions-window.ui:27
msgid ""
"To find and add extensions, visit <a href=\"https://extensions.gnome.org"
"\">extensions.gnome.org</a>."
msgstr ""
"För att hitta och lägga till tillägg, besök <a href=\"https://extensions."
"gnome.org\">extensions.gnome.org</a>."
#: subprojects/extensions-app/data/ui/extensions-window.ui:35
msgid "Warning"
msgstr "Varning"
#: subprojects/extensions-app/data/ui/extensions-window.ui:46
msgid ""
"Extensions can cause system issues, including performance problems. If you "
"encounter problems with your system, it is recommended to disable all "
"extensions."
msgstr ""
"Tillägg kan orsaka systemproblem, även prestandaproblem. Om du stöter på "
"problem med ditt system så rekommenderas du att inaktivera alla tillägg."
#: subprojects/extensions-app/data/ui/extensions-window.ui:135
msgid "Manually Installed"
msgstr "Manuellt installerade"
#: subprojects/extensions-app/data/ui/extensions-window.ui:159
msgid "Built-In"
msgstr "Inbyggda"
#: subprojects/extensions-app/data/ui/extensions-window.ui:200
msgid "No Installed Extensions"
msgstr "Inga installerade tillägg"
#: subprojects/extensions-app/data/ui/extensions-window.ui:236
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."
msgstr ""
"Vi är ledsna, men det var inte möjligt att erhålla listan över installerade "
"tillägg. Säkerställ att du är inloggad i GNOME och försök igen."
#: subprojects/extensions-app/data/ui/extensions-window.ui:273
msgid "Extension Updates Ready"
msgstr "Uppdateringar för tillägg är redo"
#: subprojects/extensions-app/data/ui/extensions-window.ui:289
msgid "Log Out…"
msgstr "Logga ut…"
#. Translators: a file path to an extension directory
#: subprojects/extensions-tool/src/command-create.c:125
#, c-format
@ -2831,6 +2831,9 @@ msgstr[1] "%u ingångar"
msgid "System Sounds"
msgstr "Systemljud"
#~ msgid "Copy Error"
#~ msgstr "Kopiera fel"
#~ msgid "Username…"
#~ msgstr "Användarnamn…"

308
po/tr.po
View File

@ -17,8 +17,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-04-09 14:00+0000\n"
"PO-Revision-Date: 2020-04-28 16:18+0300\n"
"POT-Creation-Date: 2020-05-15 18:43+0000\n"
"PO-Revision-Date: 2020-05-16 12:12+0300\n"
"Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>\n"
"Language-Team: Türkçe <gnome-turk@gnome.org>\n"
"Language: tr\n"
@ -85,7 +85,7 @@ msgid ""
"list. You can also manipulate this list with the EnableExtension and "
"DisableExtension D-Bus methods on org.gnome.Shell."
msgstr ""
"GNOME Kabuğu uzantılarında UUID adlı bir özellik bulunur; bu anahtar, "
"GNOME Kabuğu uzantılarında UUID adında özellik bulunur; bu anahtar, "
"yüklenmesi gereken uzantıları listeler. Yüklenmesi istenen her tür uzantının "
"bu listede olması gerekir. Ayrıca bu listeyi, org.gnome.Shell üzerindeki "
"EnableExtension ve DisableExtension DBus yöntemleri ile de "
@ -103,12 +103,11 @@ msgid ""
"methods on org.gnome.Shell. This key takes precedence over the “enabled-"
"extensions” setting."
msgstr ""
"GNOME Kabuğu uzantılarında UUID adlı bir özellik bulunur; bu anahtar, "
"geçerli kipin bir parçası olarak yüklenmiş olsa bile devre dışı bırakılması "
"gereken uzantıları listeler. Bu listeyi, org.gnome.Shell üzerindeki "
"EnableExtension ve DisableExtension D-Bus yöntemleriyle de "
"değiştirebilirsiniz. Bu anahtar “enabled-extensions” ayarına göre "
"önceliklidir."
"GNOME Kabuğu uzantılarında UUID adında özellik bulunur; bu anahtar, geçerli "
"kipin parçası olarak yüklenmiş olsa bile devre dışı bırakılması gereken "
"uzantıları listeler. Bu listeyi, org.gnome.Shell üzerindeki EnableExtension "
"ve DisableExtension D-Bus yöntemleriyle de değiştirebilirsiniz. Bu anahtar "
"“enabled-extensions” ayarına göre önceliklidir."
#: data/org.gnome.shell.gschema.xml.in:37
msgid "Disable user extensions"
@ -190,7 +189,7 @@ msgid ""
"“Remember Password” checkbox will be present. This key sets the default "
"state of the checkbox."
msgstr ""
"Kabuk, şifreli bir aygıt ya da uzak dosya sistemi bağlandığında parola "
"Kabuk, şifreli aygıt ya da uzak dosya sistemi bağlandığında parola "
"isteyecek. Eğer parola gelecekte kullanılmak üzere kaydedilebiliyorsa, "
"“Parolayı Anımsa” onay kutusu sunulacak. Bu anahtar, onay kutusunun "
"öntanımlı durumunu belirler."
@ -209,9 +208,9 @@ msgid ""
"adapter. This will be reset if the default adapter is ever seen not to have "
"devices associated to it."
msgstr ""
"Kabuk, yalnızca gücü açık bir Bluetooth bağdaştırıcı varsa ya da öntanımlı "
"bağdaştırıcı ile ilişkili olarak ayarlanmış aygıtlar varsa bir Bluetooth "
"menü ögesi gösterecektir. Eğer öntanımlı bağdaştırıcıyla ilşkili aygıtların "
"Kabuk, yalnızca gücü açık Bluetooth bağdaştırıcı varsa ya da öntanımlı "
"bağdaştırıcı ile ilişkili olarak ayarlanmış aygıtlar varsa Bluetooth menü "
"ögesi gösterecektir. Eğer öntanımlı bağdaştırıcıyla ilişkili aygıtların "
"olmadığı görülecek olursa bu durum sıfırlanacaktır."
#: data/org.gnome.shell.gschema.xml.in:106
@ -223,7 +222,7 @@ msgid ""
"Enables a D-Bus API that allows to introspect the application state of the "
"shell."
msgstr ""
"Kabuğun uygulama durumunu gözden geçirmeyi sağlayan bir D-Bus APIʼsını "
"Kabuğun uygulama durumunu gözden geçirmeyi sağlayan D-Bus APIʼsını "
"etkinleştirir."
#: data/org.gnome.shell.gschema.xml.in:119
@ -330,8 +329,8 @@ msgid ""
"only” (shows only the application icon) or “both”."
msgstr ""
"Pencerelerin değiştiricideki gösterim biçimini yapılandırır. Uygun "
"olasılıklar; “thumbnail-only” (pencerenin küçük bir resmini gösterir), “app-"
"icon-only” (yalnızca uygulama simgesini gösterir) ya da “both” (her ikisi) "
"olasılıklar; “thumbnail-only” (pencerenin küçük resmini gösterir), “app-icon-"
"only” (yalnızca uygulama simgesini gösterir) ya da “both” (her ikisi) "
"değerleridir."
#: data/org.gnome.shell.gschema.xml.in:224
@ -433,7 +432,7 @@ msgstr "Uzantı ana sayfasını ziyaret et"
#: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:369 js/ui/extensionDownloader.js:181
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:917 subprojects/extensions-app/js/main.js:148
#: js/ui/status/network.js:916 subprojects/extensions-app/js/main.js:149
msgid "Cancel"
msgstr "İptal"
@ -456,7 +455,7 @@ msgstr "Listede yok mu?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: js/gdm/loginDialog.js:912
#: js/gdm/loginDialog.js:913
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(örneğin, kullanıcı veya %s)"
@ -464,12 +463,12 @@ msgstr "(örneğin, kullanıcı veya %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: js/gdm/loginDialog.js:917 js/ui/components/networkAgent.js:241
#: js/gdm/loginDialog.js:918 js/ui/components/networkAgent.js:241
#: js/ui/components/networkAgent.js:264 js/ui/components/networkAgent.js:282
msgid "Username"
msgstr "Kullanıcı Adı"
#: js/gdm/loginDialog.js:1253
#: js/gdm/loginDialog.js:1254
msgid "Login Window"
msgstr "Oturum Açma Penceresi"
@ -487,71 +486,71 @@ msgid "(or swipe finger)"
msgstr "(ya da parmak izi okut)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:89
#: js/misc/systemActions.js:93
msgctxt "search-result"
msgid "Power Off"
msgstr "Bilgisayarı Kapat"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:92
#: js/misc/systemActions.js:96
msgid "power off;shutdown;reboot;restart;halt;stop"
msgstr "gücü kapat;bilgisayarı kapat;yeniden başlat;duraklat;durdur"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:97
#: js/misc/systemActions.js:101
msgctxt "search-result"
msgid "Lock Screen"
msgstr "Ekranı Kilitle"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:100
#: js/misc/systemActions.js:104
msgid "lock screen"
msgstr "ekranı kilitle"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:105
#: js/misc/systemActions.js:109
msgctxt "search-result"
msgid "Log Out"
msgstr "Oturumu Kapat"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:108
#: js/misc/systemActions.js:112
msgid "logout;log out;sign off"
msgstr "çıkış;oturumu kapat;çıkış yap"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:113
#: js/misc/systemActions.js:117
msgctxt "search-result"
msgid "Suspend"
msgstr "Bilgisayarı beklet"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:116
#: js/misc/systemActions.js:120
msgid "suspend;sleep"
msgstr "beklet;uyku;duraklat"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:121
#: js/misc/systemActions.js:125
msgctxt "search-result"
msgid "Switch User"
msgstr "Kullanıcı Değiştir"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:124
#: js/misc/systemActions.js:128
msgid "switch user"
msgstr "kullanıcı değiştir"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:131
#: js/misc/systemActions.js:135
msgid "lock orientation;unlock orientation;screen;rotation"
msgstr "yönelimi kilitle;yönelim kilidini kaldır;ekran;döndürme"
#: js/misc/systemActions.js:251
#: js/misc/systemActions.js:255
msgctxt "search-result"
msgid "Unlock Screen Rotation"
msgstr "Ekran Döndürme Kilidini Kaldır"
#: js/misc/systemActions.js:252
#: js/misc/systemActions.js:256
msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Ekran Döndürmeyi Kilitle"
@ -711,53 +710,57 @@ msgstr "Erişimi Reddet"
msgid "Grant Access"
msgstr "Erişime İzin Ver"
#: js/ui/appDisplay.js:950
#: js/ui/appDisplay.js:944
msgid "Unnamed Folder"
msgstr "Adsız Klasör"
#: js/ui/appDisplay.js:973
#: js/ui/appDisplay.js:967
msgid "Frequently used applications will appear here"
msgstr "Sık kullanılan uygulamalar burada yer alacak"
#: js/ui/appDisplay.js:1108
#: js/ui/appDisplay.js:1102
msgid "Frequent"
msgstr "Sık Sık"
#: js/ui/appDisplay.js:1115
#: js/ui/appDisplay.js:1109
msgid "All"
msgstr "Tümü"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2506 js/ui/panel.js:75
#: js/ui/appDisplay.js:2486 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Açık Pencereler"
#: js/ui/appDisplay.js:2526 js/ui/panel.js:82
#: js/ui/appDisplay.js:2505 js/ui/panel.js:82
msgid "New Window"
msgstr "Yeni Pencere"
#: js/ui/appDisplay.js:2537
msgid "Launch using Dedicated Graphics Card"
msgstr "Adanmış Ekran Kartıyla Başlat"
#: js/ui/appDisplay.js:2521
msgid "Launch using Integrated Graphics Card"
msgstr "Tümleşik Ekran Kartıyla Başlat"
#: js/ui/appDisplay.js:2565 js/ui/dash.js:239
#: js/ui/appDisplay.js:2522
msgid "Launch using Discrete Graphics Card"
msgstr "Ayrık Ekran Kartıyla Başlat"
#: js/ui/appDisplay.js:2550 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Sık Kullanılanlardan Çıkar"
#: js/ui/appDisplay.js:2571
#: js/ui/appDisplay.js:2556
msgid "Add to Favorites"
msgstr "Sık Kullanılanlara Ekle"
#: js/ui/appDisplay.js:2581 js/ui/panel.js:93
#: js/ui/appDisplay.js:2566 js/ui/panel.js:93
msgid "Show Details"
msgstr "Ayrıntıları Göster"
#: js/ui/appFavorites.js:163
#: js/ui/appFavorites.js:164
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s sık kullanılanlarınıza eklendi."
#: js/ui/appFavorites.js:196
#: js/ui/appFavorites.js:197
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s sık kullanılanlarınızdan çıkarıldı."
@ -852,7 +855,7 @@ msgstr "C"
#. * "%OB" is the new format specifier introduced in glibc 2.27,
#. * in most cases you should not change it.
#.
#: js/ui/calendar.js:372
#: js/ui/calendar.js:397
msgid "%OB"
msgstr "%OB"
@ -865,61 +868,61 @@ msgstr "%OB"
#. * in most cases you should not use the old "%B" here unless you
#. * absolutely know what you are doing.
#.
#: js/ui/calendar.js:382
#: js/ui/calendar.js:407
msgid "%OB %Y"
msgstr "%OB %Y"
#: js/ui/calendar.js:441
#: js/ui/calendar.js:466
msgid "Previous month"
msgstr "Önceki ay"
#: js/ui/calendar.js:456
#: js/ui/calendar.js:481
msgid "Next month"
msgstr "Gelecek ay"
#: js/ui/calendar.js:606
#: js/ui/calendar.js:631
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: js/ui/calendar.js:662
#: js/ui/calendar.js:687
msgid "Week %V"
msgstr "%V. Hafta"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
#: js/ui/calendar.js:731
#: js/ui/calendar.js:762
msgctxt "event list time"
msgid "All Day"
msgstr "Tüm Gün"
#. Translators: Shown on calendar heading when selected day occurs on current year
#: js/ui/calendar.js:869
#: js/ui/calendar.js:900
msgctxt "calendar heading"
msgid "%A, %B %-d"
msgstr "%A, %-d %B"
#. Translators: Shown on calendar heading when selected day occurs on different year
#: js/ui/calendar.js:872
#: js/ui/calendar.js:903
msgctxt "calendar heading"
msgid "%A, %B %-d, %Y"
msgstr "%A, %-d %B, %Y"
#: js/ui/calendar.js:1101
#: js/ui/calendar.js:1133
msgid "No Notifications"
msgstr "Bildirim Yok"
#: js/ui/calendar.js:1104
#: js/ui/calendar.js:1136
msgid "No Events"
msgstr "Olay Yok"
#: js/ui/calendar.js:1158
#: js/ui/calendar.js:1190
msgid "Do Not Disturb"
msgstr "Rahatsız Etme"
#: js/ui/calendar.js:1177
#: js/ui/calendar.js:1209
msgid "Clear"
msgstr "Temizle"
@ -927,14 +930,14 @@ msgstr "Temizle"
#: js/ui/closeDialog.js:42
#, javascript-format
msgid "“%s” is not responding."
msgstr "“%s” yanıt vermiyor."
msgstr "“%s” yanıtlamıyor."
#: js/ui/closeDialog.js:43
msgid ""
"You may choose to wait a short while for it to continue or force the "
"application to quit entirely."
msgstr ""
"Devam etmesi için bir süre bekleyebilir ya da uygulamayı tümüyle kapanmaya "
"Devam etmesi için bekleyebilir ya da uygulamayı tümüyle kapanmaya "
"zorlayabilirsiniz."
#: js/ui/closeDialog.js:70
@ -961,7 +964,7 @@ msgstr "Bölümün kilidi açılamadı"
msgid "The installed udisks version does not support the PIM setting"
msgstr "Kurulu udisks sürümü PIM ayarını desteklemiyor"
#: js/ui/components/autorunManager.js:333
#: js/ui/components/autorunManager.js:332
#, javascript-format
msgid "Open with %s"
msgstr "%s ile Aç"
@ -974,7 +977,7 @@ msgstr ""
"bağlayabilirsiniz."
#: js/ui/components/networkAgent.js:104 js/ui/status/network.js:227
#: js/ui/status/network.js:318 js/ui/status/network.js:920
#: js/ui/status/network.js:318 js/ui/status/network.js:919
msgid "Connect"
msgstr "Bağlan"
@ -1038,7 +1041,7 @@ msgstr "PIN"
msgid "A password is required to connect to “%s”."
msgstr "“%s”e bağlanmak için parola gerekli."
#: js/ui/components/networkAgent.js:669 js/ui/status/network.js:1695
#: js/ui/components/networkAgent.js:669 js/ui/status/network.js:1694
msgid "Network Manager"
msgstr "Ağ Yöneticisi"
@ -1369,13 +1372,13 @@ msgid "Leave On"
msgstr "Açık Bırak"
#: js/ui/kbdA11yDialog.js:55 js/ui/status/bluetooth.js:156
#: js/ui/status/network.js:1292
#: js/ui/status/network.js:1291
msgid "Turn On"
msgstr "Aç"
#: js/ui/kbdA11yDialog.js:63 js/ui/status/bluetooth.js:156
#: js/ui/status/network.js:135 js/ui/status/network.js:319
#: js/ui/status/network.js:1292 js/ui/status/network.js:1404
#: js/ui/status/network.js:1291 js/ui/status/network.js:1403
#: js/ui/status/nightLight.js:41 js/ui/status/rfkill.js:81
#: js/ui/status/rfkill.js:108
msgid "Turn Off"
@ -1389,59 +1392,59 @@ msgstr "Kapalı Bırak"
msgid "Region & Language Settings"
msgstr "Bölge ve Dil Ayarları"
#: js/ui/lookingGlass.js:665
#: js/ui/lookingGlass.js:664
msgid "No extensions installed"
msgstr "Herhangi bir uzantı kurulu değil"
#. Translators: argument is an extension UUID.
#: js/ui/lookingGlass.js:720
#: js/ui/lookingGlass.js:719
#, javascript-format
msgid "%s has not emitted any errors."
msgstr "%s, herhangi bir hata vermedi."
#: js/ui/lookingGlass.js:726
#: js/ui/lookingGlass.js:725
msgid "Hide Errors"
msgstr "Hataları Gizle"
#: js/ui/lookingGlass.js:730 js/ui/lookingGlass.js:795
#: js/ui/lookingGlass.js:729 js/ui/lookingGlass.js:794
msgid "Show Errors"
msgstr "Hataları Göster"
#: js/ui/lookingGlass.js:739
#: js/ui/lookingGlass.js:738
msgid "Enabled"
msgstr "Etkin"
#. translators:
#. * The device has been disabled
#: js/ui/lookingGlass.js:742 subprojects/gvc/gvc-mixer-control.c:1892
#: js/ui/lookingGlass.js:741 subprojects/gvc/gvc-mixer-control.c:1892
msgid "Disabled"
msgstr "Devre dışı"
#: js/ui/lookingGlass.js:744
#: js/ui/lookingGlass.js:743
msgid "Error"
msgstr "Hata"
#: js/ui/lookingGlass.js:746
#: js/ui/lookingGlass.js:745
msgid "Out of date"
msgstr "Güncel değil"
#: js/ui/lookingGlass.js:748
#: js/ui/lookingGlass.js:747
msgid "Downloading"
msgstr "İndiriliyor"
#: js/ui/lookingGlass.js:777
#: js/ui/lookingGlass.js:776
msgid "View Source"
msgstr "Kaynağı Görüntüle"
#: js/ui/lookingGlass.js:786
#: js/ui/lookingGlass.js:785
msgid "Web Page"
msgstr "Web Sayfası"
#: js/ui/main.js:284
#: js/ui/main.js:297
msgid "Logged in as a privileged user"
msgstr "Yetkili kullanıcı olarak oturum açılmış"
#: js/ui/main.js:285
#: js/ui/main.js:298
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@ -1449,23 +1452,23 @@ msgstr ""
"Oturumu öncelikli kullanıcı olarak çalıştırmaktan güvenlik nedeniyle "
"kaçınılmalıdır. Eğer olasıysa sıradan kullanıcı olarak giriş yapmalısınız."
#: js/ui/main.js:324
#: js/ui/main.js:337
msgid "Screen Lock disabled"
msgstr "Ekran Kilidi devre dışı"
#: js/ui/main.js:325
#: js/ui/main.js:338
msgid "Screen Locking requires the GNOME display manager."
msgstr "Ekran Kilitleme, GNOME ekran yöneticisi gerektirir."
#: js/ui/messageTray.js:1551
#: js/ui/messageTray.js:1547
msgid "System Information"
msgstr "Sistem Bilgisi"
#: js/ui/mpris.js:199
#: js/ui/mpris.js:204
msgid "Unknown artist"
msgstr "Bilinmeyen sanatçı"
#: js/ui/mpris.js:209
#: js/ui/mpris.js:214
msgid "Unknown title"
msgstr "Bilinmeyen başlık"
@ -1521,7 +1524,7 @@ msgstr "Yok"
#: js/ui/padOsd.js:863
msgid "Press a button to configure"
msgstr "Yapılandırmak için bir düğmeye bas"
msgstr "Yapılandırmak için düğmeye bas"
#: js/ui/padOsd.js:864
msgid "Press Esc to exit"
@ -1537,16 +1540,16 @@ msgstr "Kapat"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: js/ui/panel.js:432
#: js/ui/panel.js:435
msgid "Activities"
msgstr "Etkinlikler"
#: js/ui/panel.js:711
#: js/ui/panel.js:714
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistem"
#: js/ui/panel.js:824
#: js/ui/panel.js:827
msgid "Top Bar"
msgstr "Tepe Çubuğu"
@ -1577,23 +1580,23 @@ msgstr "GNOMEun ekranı kilitlemesi gerekiyor"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: js/ui/screenShield.js:244 js/ui/screenShield.js:601
#: js/ui/screenShield.js:244 js/ui/screenShield.js:602
msgid "Unable to lock"
msgstr "Kilitlenemedi"
#: js/ui/screenShield.js:245 js/ui/screenShield.js:602
#: js/ui/screenShield.js:245 js/ui/screenShield.js:603
msgid "Lock was blocked by an application"
msgstr "Kilitleme bir uygulama tarafından engellendi"
#: js/ui/search.js:703
#: js/ui/search.js:702
msgid "Searching…"
msgstr "Aranıyor…"
#: js/ui/search.js:705
#: js/ui/search.js:704
msgid "No results."
msgstr "Sonuç yok."
#: js/ui/search.js:831
#: js/ui/search.js:830
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
@ -1809,7 +1812,7 @@ msgid "<unknown>"
msgstr "<bilinmeyen>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:424 js/ui/status/network.js:1321
#: js/ui/status/network.js:424 js/ui/status/network.js:1320
#, javascript-format
msgid "%s Off"
msgstr "%s Kapalı"
@ -1835,7 +1838,7 @@ msgid "%s Disconnecting"
msgstr "%s Bağlantısı Kesiliyor"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:442 js/ui/status/network.js:1313
#: js/ui/status/network.js:442 js/ui/status/network.js:1312
#, javascript-format
msgid "%s Connecting"
msgstr "%s Bağlanıyor"
@ -1875,7 +1878,7 @@ msgid "Mobile Broadband Settings"
msgstr "Mobil Geniş Bant Ayarları"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:562 js/ui/status/network.js:1318
#: js/ui/status/network.js:562 js/ui/status/network.js:1317
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s Donanımı Devre Dışı"
@ -1891,118 +1894,118 @@ msgstr "%s Devre Dışı"
msgid "Connect to Internet"
msgstr "İnternete Bağlan"
#: js/ui/status/network.js:812
#: js/ui/status/network.js:811
msgid "Airplane Mode is On"
msgstr "Uçak Kipi Açık"
#: js/ui/status/network.js:813
#: js/ui/status/network.js:812
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Uçak kipi açıldığında kablosuz ağ devre dışı kalır."
#: js/ui/status/network.js:814
#: js/ui/status/network.js:813
msgid "Turn Off Airplane Mode"
msgstr "Uçak Kipini Kapat"
#: js/ui/status/network.js:823
#: js/ui/status/network.js:822
msgid "Wi-Fi is Off"
msgstr "Kablosuz Ağ Kapalı"
#: js/ui/status/network.js:824
#: js/ui/status/network.js:823
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Bir ağa bağlanmak için kablosuz ağın açık olması gerekir."
msgstr "Ağa bağlanmak için kablosuz ağın açık olması gerekir."
#: js/ui/status/network.js:825
#: js/ui/status/network.js:824
msgid "Turn On Wi-Fi"
msgstr "Kablosuz Ağı Aç"
#: js/ui/status/network.js:850
#: js/ui/status/network.js:849
msgid "Wi-Fi Networks"
msgstr "Kablosuz Ağlar"
#: js/ui/status/network.js:852
#: js/ui/status/network.js:851
msgid "Select a network"
msgstr "Ağ seç"
#: js/ui/status/network.js:884
#: js/ui/status/network.js:883
msgid "No Networks"
msgstr "Ağ Yok"
#: js/ui/status/network.js:905 js/ui/status/rfkill.js:106
#: js/ui/status/network.js:904 js/ui/status/rfkill.js:106
msgid "Use hardware switch to turn off"
msgstr "Kapatmak için donanım anahtarını kullan"
#: js/ui/status/network.js:1182
#: js/ui/status/network.js:1181
msgid "Select Network"
msgstr "Ağ Seç"
#: js/ui/status/network.js:1188
#: js/ui/status/network.js:1187
msgid "Wi-Fi Settings"
msgstr "Kablosuz Ağ Ayarları"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1309
#: js/ui/status/network.js:1308
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s Erişim Noktası Etkin"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1324
#: js/ui/status/network.js:1323
#, javascript-format
msgid "%s Not Connected"
msgstr "%s Bağlı Değil"
#: js/ui/status/network.js:1421
#: js/ui/status/network.js:1420
msgid "connecting…"
msgstr "bağlanıyor…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1424
#: js/ui/status/network.js:1423
msgid "authentication required"
msgstr "kimlik doğrulaması gerekli"
#: js/ui/status/network.js:1426
#: js/ui/status/network.js:1425
msgid "connection failed"
msgstr "bağlantı başarısız"
#: js/ui/status/network.js:1477
#: js/ui/status/network.js:1476
msgid "VPN Settings"
msgstr "VPN Ayarları"
#: js/ui/status/network.js:1494
#: js/ui/status/network.js:1493
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1504
#: js/ui/status/network.js:1503
msgid "VPN Off"
msgstr "VPN Kapalı"
#: js/ui/status/network.js:1565 js/ui/status/rfkill.js:84
#: js/ui/status/network.js:1564 js/ui/status/rfkill.js:84
msgid "Network Settings"
msgstr "Ağ Ayarları"
#: js/ui/status/network.js:1594
#: js/ui/status/network.js:1593
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "%s Kablolu Bağlantı"
#: js/ui/status/network.js:1598
#: js/ui/status/network.js:1597
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
msgstr[0] "%s Kablosuz Ağ Bağlantısı"
#: js/ui/status/network.js:1602
#: js/ui/status/network.js:1601
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] "%s Modem Bağlantısı"
#: js/ui/status/network.js:1736
#: js/ui/status/network.js:1735
msgid "Connection failed"
msgstr "Bağlantı başarısız oldu"
#: js/ui/status/network.js:1737
#: js/ui/status/network.js:1736
msgid "Activation of network connection failed"
msgstr "Ağ bağlantısının etkinleştirilmesi başarısız oldu"
@ -2057,11 +2060,11 @@ msgstr "Tümüyle Dolmasına %d.%02d Kaldı (%% %d)"
msgid "%d%%"
msgstr "%d%%"
#: js/ui/status/remoteAccess.js:44
#: js/ui/status/remoteAccess.js:43
msgid "Screen is Being Shared"
msgstr "Ekran Paylaşılıyor"
#: js/ui/status/remoteAccess.js:46
#: js/ui/status/remoteAccess.js:45
msgid "Turn off"
msgstr "Kapat"
@ -2072,27 +2075,27 @@ msgstr "Kapat"
msgid "Airplane Mode On"
msgstr "Uçak Kipi Açık"
#: js/ui/status/system.js:103
#: js/ui/status/system.js:102
msgid "Lock"
msgstr "Kilitle"
#: js/ui/status/system.js:116
#: js/ui/status/system.js:115
msgid "Power Off / Log Out"
msgstr "Gücü Kapat / Oturumu Kapat"
#: js/ui/status/system.js:119
#: js/ui/status/system.js:118
msgid "Log Out"
msgstr "Oturumu Kapat"
#: js/ui/status/system.js:131
#: js/ui/status/system.js:130
msgid "Switch User…"
msgstr "Kullanıcı Değiştir…"
#: js/ui/status/system.js:145
#: js/ui/status/system.js:144
msgid "Suspend"
msgstr "Beklet"
#: js/ui/status/system.js:157
#: js/ui/status/system.js:156
msgid "Power Off…"
msgstr "Gücü Kapat…"
@ -2120,7 +2123,7 @@ msgstr "Yetkisiz Thunderbolt aygıtı"
msgid ""
"New device has been detected and needs to be authorized by an administrator."
msgstr ""
"Yeni aygıt saptandı ve bir yönetici tarafından yetkilendirilmesi gerekiyor."
"Yeni aygıt saptandı ve yönetici tarafından yetkilendirilmesi gerekiyor."
#: js/ui/status/thunderbolt.js:336
msgid "Thunderbolt authorization error"
@ -2218,7 +2221,7 @@ msgstr "Ayarları Eski Haline Getir"
msgid "Keep Changes"
msgstr "Değişiklikleri Sakla"
#: js/ui/windowManager.js:85
#: js/ui/windowManager.js:86
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@ -2226,7 +2229,7 @@ msgstr[0] "Ayarlardaki değişiklikler %d saniye içinde eski haline döndürül
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:544
#: js/ui/windowManager.js:546
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@ -2313,7 +2316,7 @@ msgstr "Oturum açma ekranında GDM tarafından kullanılan kip"
#: src/main.c:470
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Oturum açma ekranı için -“gdm” gibi- özel bir kip kullan"
msgstr "Oturum açma ekranı için -“gdm” gibi- özel kip kullan"
#: src/main.c:476
msgid "List possible modes"
@ -2343,13 +2346,13 @@ msgstr "Kimlik doğrulama penceresi kullanıcı tarafından kapatıldı"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:4
#: subprojects/extensions-app/js/main.js:182
#: subprojects/extensions-app/js/main.js:183
#: subprojects/extensions-app/data/ui/extensions-window.ui:61
msgid "Extensions"
msgstr "Uzantılar"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:6
#: subprojects/extensions-app/js/main.js:183
#: subprojects/extensions-app/js/main.js:184
msgid "Manage your GNOME Extensions"
msgstr "GNOME Uzantılarını Yönet"
@ -2369,12 +2372,12 @@ msgstr ""
msgid "Configure GNOME Shell Extensions"
msgstr "GNOME Kabuğu Uzantılarını Ayarla"
#: subprojects/extensions-app/js/main.js:144
#: subprojects/extensions-app/js/main.js:145
#, javascript-format
msgid "Remove “%s”?"
msgstr "“%s” kaldırılsın mı?"
#: subprojects/extensions-app/js/main.js:145
#: subprojects/extensions-app/js/main.js:146
msgid ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
@ -2382,18 +2385,18 @@ msgstr ""
"Uzantıyı kaldırırsanız, yeniden etkinleştirmek istediğinizde yeniden "
"indirmeniz gerekir"
#: subprojects/extensions-app/js/main.js:149
#: subprojects/extensions-app/js/main.js:150
msgid "Remove"
msgstr "Sil"
#: subprojects/extensions-app/js/main.js:181
#: subprojects/extensions-app/js/main.js:182
msgid "translator-credits"
msgstr ""
"Muhammet Kara <muhammetk@gmail.com>\n"
"Emin Tufan Çetin <etcetin@gmail.com>\n"
"Sabri Ünal <libreajans@gmail.com>"
#: subprojects/extensions-app/js/main.js:313
#: subprojects/extensions-app/js/main.js:314
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
@ -2471,6 +2474,10 @@ msgstr ""
"Maalesef, yüklü uzantıların listesi alınamadı. GNOME'da oturum açtığınızdan "
"emin olun ve tekrar deneyin."
#: subprojects/extensions-app/data/ui/extensions-window.ui:273
msgid "Extension Updates Ready"
msgstr "Uzantı Güncellemeleri Hazır"
#: subprojects/extensions-app/data/ui/extensions-window.ui:289
msgid "Log Out…"
msgstr "Oturumu Kapat…"
@ -2487,7 +2494,7 @@ msgid ""
"Name should be a very short (ideally descriptive) string.\n"
"Examples are: %s"
msgstr ""
"Ad çok kısa (ideal olarak açıklayıcı) bir dizge olmalıdır.\n"
"Ad çok kısa (ideal olarak açıklayıcı) dizge olmalıdır.\n"
"Örnekler: %s"
#: subprojects/extensions-tool/src/command-create.c:281
@ -2882,9 +2889,7 @@ msgstr[0] "%u Girdi"
msgid "System Sounds"
msgstr "Sistem Sesleri"
#~ msgid "Copy Error"
#~ msgstr "Hataları Kopyala"
#, javascript-format
#~ msgid "%d Connected"
#~ msgid_plural "%d Connected"
#~ msgstr[0] "%d Aygıt Bağlandı"
@ -2895,6 +2900,9 @@ msgstr "Sistem Sesleri"
#~ msgid "On"
#~ msgstr "Açık"
#~ msgid "Copy Error"
#~ msgstr "Hataları Kopyala"
#~ msgid "Username…"
#~ msgstr "Kullanıcı Adı…"
@ -2923,7 +2931,6 @@ msgstr "Sistem Sesleri"
#~ msgstr[0] "%d yeni bildirim"
# Çevirmeyin
#~| msgid "Shell Extensions"
#~ msgid "org.gnome.Extensions"
#~ msgstr "org.gnome.Extensions"
@ -2933,7 +2940,6 @@ msgstr "Sistem Sesleri"
#~ msgid "Browse in Software"
#~ msgstr "Yazılımlara Göz Atın"
#~| msgid "Username: "
#~ msgid "Rename"
#~ msgstr "Yeniden Adlandır"
@ -2989,17 +2995,14 @@ msgstr "Sistem Sesleri"
#~ msgid "There was an error loading the preferences dialog for %s:"
#~ msgstr "%s için tercihler iletişim penceresi yüklenirken hata oluştu:"
#~| msgid "Power Off"
#~ msgctxt "search-result"
#~ msgid "Power off"
#~ msgstr "Bilgisayarı kapat"
#~| msgid "Log Out"
#~ msgctxt "search-result"
#~ msgid "Log out"
#~ msgstr "Oturumu kapat"
#~| msgid "Switch User"
#~ msgctxt "search-result"
#~ msgid "Switch user"
#~ msgstr "Kullanıcı değiştir"
@ -3056,7 +3059,6 @@ msgstr "Sistem Sesleri"
#~ msgid "Airplane Mode"
#~ msgstr "Uçak Kipi"
#~| msgid "Show the message tray"
#~ msgid "Show the message list"
#~ msgstr "İleti listesini göster"

291
po/uk.po
View File

@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-04-22 13:01+0000\n"
"PO-Revision-Date: 2020-04-25 10:57+0300\n"
"POT-Creation-Date: 2020-05-21 23:22+0000\n"
"PO-Revision-Date: 2020-05-22 08:44+0300\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <kde-i18n-uk@kde.org>\n"
"Language: uk\n"
@ -416,7 +416,7 @@ msgstr "Відвідати сторінку розширення"
#: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:369 js/ui/extensionDownloader.js:181
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:917 subprojects/extensions-app/js/main.js:148
#: js/ui/status/network.js:916 subprojects/extensions-app/js/main.js:149
msgid "Cancel"
msgstr "Скасувати"
@ -470,73 +470,73 @@ msgid "(or swipe finger)"
msgstr "(або проведіть пальцем)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:89
#: js/misc/systemActions.js:93
msgctxt "search-result"
msgid "Power Off"
msgstr "Вимкнути"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:92
#: js/misc/systemActions.js:96
msgid "power off;shutdown;reboot;restart;halt;stop"
msgstr "вимкнути;перезавантажити;power off;shutdown;reboot;restart;halt;stop"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:97
#: js/misc/systemActions.js:101
msgctxt "search-result"
msgid "Lock Screen"
msgstr "Заблокувати екран"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:100
#: js/misc/systemActions.js:104
msgid "lock screen"
msgstr "заблокувати екран;lock screen"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:105
#: js/misc/systemActions.js:109
msgctxt "search-result"
msgid "Log Out"
msgstr "Вийти"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:108
#: js/misc/systemActions.js:112
msgid "logout;log out;sign off"
msgstr "вийти;завершити роботу;logout;log out;sign off"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:113
#: js/misc/systemActions.js:117
msgctxt "search-result"
msgid "Suspend"
msgstr "Призупинити"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:116
#: js/misc/systemActions.js:120
msgid "suspend;sleep"
msgstr "призупинити;сон;suspend;sleep"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:121
#: js/misc/systemActions.js:125
msgctxt "search-result"
msgid "Switch User"
msgstr "Змінити користувача"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:124
#: js/misc/systemActions.js:128
msgid "switch user"
msgstr "змінити користувача;перемкнути;switch user"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:131
#: js/misc/systemActions.js:135
msgid "lock orientation;unlock orientation;screen;rotation"
msgstr ""
"заблокувати орієнтацію;розблокувати орієнтацію;екран;обертання;lock "
"orientation;unlock orientation;screen;rotation"
#: js/misc/systemActions.js:251
#: js/misc/systemActions.js:255
msgctxt "search-result"
msgid "Unlock Screen Rotation"
msgstr "Розблокувати обертання екрана"
#: js/misc/systemActions.js:252
#: js/misc/systemActions.js:256
msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Заблокувати обертання екрана"
@ -713,53 +713,57 @@ msgstr "Заборонити доступ"
msgid "Grant Access"
msgstr "Надати доступ"
#: js/ui/appDisplay.js:951
#: js/ui/appDisplay.js:944
msgid "Unnamed Folder"
msgstr "Неназвана тека"
#: js/ui/appDisplay.js:974
#: js/ui/appDisplay.js:967
msgid "Frequently used applications will appear here"
msgstr "Часто використовувані програми будуть з'являтись тут"
#: js/ui/appDisplay.js:1109
#: js/ui/appDisplay.js:1102
msgid "Frequent"
msgstr "Частовживане"
#: js/ui/appDisplay.js:1116
#: js/ui/appDisplay.js:1109
msgid "All"
msgstr "Усе"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2507 js/ui/panel.js:75
#: js/ui/appDisplay.js:2486 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Відкрити вікна"
#: js/ui/appDisplay.js:2527 js/ui/panel.js:82
#: js/ui/appDisplay.js:2505 js/ui/panel.js:82
msgid "New Window"
msgstr "Нове вікно"
#: js/ui/appDisplay.js:2538
msgid "Launch using Dedicated Graphics Card"
msgstr "Запустити через відповідну графічну плату"
#: js/ui/appDisplay.js:2521
msgid "Launch using Integrated Graphics Card"
msgstr "Запустити через інтегровану графічну плату"
#: js/ui/appDisplay.js:2566 js/ui/dash.js:239
#: js/ui/appDisplay.js:2522
msgid "Launch using Discrete Graphics Card"
msgstr "Запустити через дискретну графічну плату"
#: js/ui/appDisplay.js:2550 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Вилучити з улюбленого"
#: js/ui/appDisplay.js:2572
#: js/ui/appDisplay.js:2556
msgid "Add to Favorites"
msgstr "Додати до улюбленого"
#: js/ui/appDisplay.js:2582 js/ui/panel.js:93
#: js/ui/appDisplay.js:2566 js/ui/panel.js:93
msgid "Show Details"
msgstr "Показати подробиці"
#: js/ui/appFavorites.js:163
#: js/ui/appFavorites.js:164
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s додано до улюбленого."
#: js/ui/appFavorites.js:196
#: js/ui/appFavorites.js:197
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s вилучено з улюбленого."
@ -780,7 +784,7 @@ msgstr "Навушники"
msgid "Headset"
msgstr "Гарнітура"
#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:270
#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:273
msgid "Microphone"
msgstr "Мікрофон"
@ -854,7 +858,7 @@ msgstr "С"
#. * "%OB" is the new format specifier introduced in glibc 2.27,
#. * in most cases you should not change it.
#.
#: js/ui/calendar.js:372
#: js/ui/calendar.js:397
msgid "%OB"
msgstr "%OB"
@ -867,61 +871,61 @@ msgstr "%OB"
#. * in most cases you should not use the old "%B" here unless you
#. * absolutely know what you are doing.
#.
#: js/ui/calendar.js:382
#: js/ui/calendar.js:407
msgid "%OB %Y"
msgstr "%OB %Y"
#: js/ui/calendar.js:441
#: js/ui/calendar.js:466
msgid "Previous month"
msgstr "Попередній місяць"
#: js/ui/calendar.js:456
#: js/ui/calendar.js:481
msgid "Next month"
msgstr "Наступний місяць"
#: js/ui/calendar.js:606
#: js/ui/calendar.js:631
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: js/ui/calendar.js:662
#: js/ui/calendar.js:687
msgid "Week %V"
msgstr "Тиждень %V"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
#: js/ui/calendar.js:731
#: js/ui/calendar.js:762
msgctxt "event list time"
msgid "All Day"
msgstr "Увесь день"
#. Translators: Shown on calendar heading when selected day occurs on current year
#: js/ui/calendar.js:869
#: js/ui/calendar.js:900
msgctxt "calendar heading"
msgid "%A, %B %-d"
msgstr "%A, %-d %B"
#. Translators: Shown on calendar heading when selected day occurs on different year
#: js/ui/calendar.js:872
#: js/ui/calendar.js:903
msgctxt "calendar heading"
msgid "%A, %B %-d, %Y"
msgstr "%A, %-d %B, %Y"
#: js/ui/calendar.js:1101
#: js/ui/calendar.js:1133
msgid "No Notifications"
msgstr "Немає сповіщень"
#: js/ui/calendar.js:1104
#: js/ui/calendar.js:1136
msgid "No Events"
msgstr "Немає подій"
#: js/ui/calendar.js:1158
#: js/ui/calendar.js:1190
msgid "Do Not Disturb"
msgstr "Не турбувати"
#: js/ui/calendar.js:1177
#: js/ui/calendar.js:1209
msgid "Clear"
msgstr "Очистити"
@ -962,7 +966,7 @@ msgstr "Неможливо розблокувати том"
msgid "The installed udisks version does not support the PIM setting"
msgstr "Наявна версія udisks не підтримує параметри PIM"
#: js/ui/components/autorunManager.js:333
#: js/ui/components/autorunManager.js:332
#, javascript-format
msgid "Open with %s"
msgstr "Відкрити через %s"
@ -974,7 +978,7 @@ msgstr ""
"Також можете під'єднатися, натиснувши кнопку «WPS» на вашому маршрутизаторі."
#: js/ui/components/networkAgent.js:104 js/ui/status/network.js:227
#: js/ui/status/network.js:318 js/ui/status/network.js:920
#: js/ui/status/network.js:318 js/ui/status/network.js:919
msgid "Connect"
msgstr "З'єднатись"
@ -1037,7 +1041,7 @@ msgstr "Пін-код"
msgid "A password is required to connect to “%s”."
msgstr "Пароль потрібен для з'єднання з «%s»."
#: js/ui/components/networkAgent.js:669 js/ui/status/network.js:1695
#: js/ui/components/networkAgent.js:669 js/ui/status/network.js:1694
msgid "Network Manager"
msgstr "Керування мережею"
@ -1103,32 +1107,31 @@ msgstr "%-d %B %Y"
msgid "%A %B %e %Y"
msgstr "%A %-d %B %Y"
#: js/ui/dateMenu.js:161
#: js/ui/dateMenu.js:162
msgid "Add world clocks…"
msgstr "Додати світові годинники…"
#: js/ui/dateMenu.js:162
#: js/ui/dateMenu.js:163
msgid "World Clocks"
msgstr "Світові годинники"
#: js/ui/dateMenu.js:424
#: js/ui/dateMenu.js:443
msgid "Loading…"
msgstr "Завантаження…"
#: js/ui/dateMenu.js:434
#: js/ui/dateMenu.js:453
msgid "Go online for weather information"
msgstr "Увійти в мережу за прогнозом погоди"
#: js/ui/dateMenu.js:436
#: js/ui/dateMenu.js:455
msgid "Weather information is currently unavailable"
msgstr "Наразі інформації про погоду недоступна"
#: js/ui/dateMenu.js:446
#: js/ui/dateMenu.js:465
msgid "Weather"
msgstr "Погода"
#: js/ui/dateMenu.js:448
#| msgid "Select a location…"
#: js/ui/dateMenu.js:467
msgid "Select weather location…"
msgstr "Виберіть місцевість для погоди…"
@ -1305,11 +1308,11 @@ msgstr "Встановити розширення"
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Звантажити і встановити «%s» з extensions.gnome.org?"
#: js/ui/extensionSystem.js:251
#: js/ui/extensionSystem.js:252
msgid "Extension Updates Available"
msgstr "Випущено оновлення розширень"
#: js/ui/extensionSystem.js:252
#: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed."
msgstr "Приготовано до встановлення оновлення розширень."
@ -1387,13 +1390,13 @@ msgid "Leave On"
msgstr "Залишити"
#: js/ui/kbdA11yDialog.js:55 js/ui/status/bluetooth.js:156
#: js/ui/status/network.js:1292
#: js/ui/status/network.js:1291
msgid "Turn On"
msgstr "Увімкнути"
#: js/ui/kbdA11yDialog.js:63 js/ui/status/bluetooth.js:156
#: js/ui/status/network.js:135 js/ui/status/network.js:319
#: js/ui/status/network.js:1292 js/ui/status/network.js:1404
#: js/ui/status/network.js:1291 js/ui/status/network.js:1403
#: js/ui/status/nightLight.js:41 js/ui/status/rfkill.js:81
#: js/ui/status/rfkill.js:108
msgid "Turn Off"
@ -1407,59 +1410,60 @@ msgstr "Покинути"
msgid "Region & Language Settings"
msgstr "Параметри регіону та мови"
#: js/ui/lookingGlass.js:665
#: js/ui/lookingGlass.js:664
msgid "No extensions installed"
msgstr "Не встановлено розширення"
#. Translators: argument is an extension UUID.
#: js/ui/lookingGlass.js:720
#: js/ui/lookingGlass.js:719
#, javascript-format
msgid "%s has not emitted any errors."
msgstr "%s не випустила жодної помилки. "
#: js/ui/lookingGlass.js:726
#: js/ui/lookingGlass.js:725
msgid "Hide Errors"
msgstr "Сховати помилки"
#: js/ui/lookingGlass.js:730 js/ui/lookingGlass.js:795
#: js/ui/lookingGlass.js:729 js/ui/lookingGlass.js:794
msgid "Show Errors"
msgstr "Показати помилки"
#: js/ui/lookingGlass.js:739
#: js/ui/lookingGlass.js:738
msgid "Enabled"
msgstr "Увімкнено"
#. translators:
#. * The device has been disabled
#: js/ui/lookingGlass.js:742 subprojects/gvc/gvc-mixer-control.c:1892
#: js/ui/lookingGlass.js:741 subprojects/gvc/gvc-mixer-control.c:1892
msgid "Disabled"
msgstr "Вимкнено"
#: js/ui/lookingGlass.js:744
#: js/ui/lookingGlass.js:743
#: subprojects/extensions-app/data/ui/extension-row.ui:188
msgid "Error"
msgstr "Помилка"
#: js/ui/lookingGlass.js:746
#: js/ui/lookingGlass.js:745
msgid "Out of date"
msgstr "Застаріло"
#: js/ui/lookingGlass.js:748
#: js/ui/lookingGlass.js:747
msgid "Downloading"
msgstr "Звантаження"
#: js/ui/lookingGlass.js:777
#: js/ui/lookingGlass.js:776
msgid "View Source"
msgstr "Переглянути джерело"
#: js/ui/lookingGlass.js:786
#: js/ui/lookingGlass.js:785
msgid "Web Page"
msgstr "Веб-сторінка"
#: js/ui/main.js:284
#: js/ui/main.js:297
msgid "Logged in as a privileged user"
msgstr "Увійшов як наділений користувач"
#: js/ui/main.js:285
#: js/ui/main.js:298
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@ -1467,23 +1471,23 @@ msgstr ""
"З міркувань безпеки слід уникати сеансів з наділеними правами. Користуйтесь "
"звичайним сеансом."
#: js/ui/main.js:324
#: js/ui/main.js:337
msgid "Screen Lock disabled"
msgstr "Блокування екрана вимкнено"
#: js/ui/main.js:325
#: js/ui/main.js:338
msgid "Screen Locking requires the GNOME display manager."
msgstr "Блокування екрана потребує керування входом GNOME."
#: js/ui/messageTray.js:1544
#: js/ui/messageTray.js:1547
msgid "System Information"
msgstr "Інформація про систему"
#: js/ui/mpris.js:199
#: js/ui/mpris.js:204
msgid "Unknown artist"
msgstr "Невідомий виконавець"
#: js/ui/mpris.js:209
#: js/ui/mpris.js:214
msgid "Unknown title"
msgstr "Невідома назва"
@ -1555,16 +1559,16 @@ msgstr "Вийти"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: js/ui/panel.js:432
#: js/ui/panel.js:435
msgid "Activities"
msgstr "Діяльність"
#: js/ui/panel.js:711
#: js/ui/panel.js:714
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Система"
#: js/ui/panel.js:824
#: js/ui/panel.js:827
msgid "Top Bar"
msgstr "Верхня панель"
@ -1595,23 +1599,23 @@ msgstr "GNOME потребує заблокувати екран"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: js/ui/screenShield.js:244 js/ui/screenShield.js:601
#: js/ui/screenShield.js:244 js/ui/screenShield.js:602
msgid "Unable to lock"
msgstr "Неможливо заблокувати"
#: js/ui/screenShield.js:245 js/ui/screenShield.js:602
#: js/ui/screenShield.js:245 js/ui/screenShield.js:603
msgid "Lock was blocked by an application"
msgstr "Блокування заборонено програмою"
#: js/ui/search.js:703
#: js/ui/search.js:823
msgid "Searching…"
msgstr "Пошуки…"
#: js/ui/search.js:705
#: js/ui/search.js:825
msgid "No results."
msgstr "Безрезультатно."
#: js/ui/search.js:831
#: js/ui/search.js:951
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
@ -1830,7 +1834,7 @@ msgid "<unknown>"
msgstr "<невідомо>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:424 js/ui/status/network.js:1321
#: js/ui/status/network.js:424 js/ui/status/network.js:1320
#, javascript-format
msgid "%s Off"
msgstr "%s вимкнено"
@ -1856,7 +1860,7 @@ msgid "%s Disconnecting"
msgstr "%s від'єднується"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:442 js/ui/status/network.js:1313
#: js/ui/status/network.js:442 js/ui/status/network.js:1312
#, javascript-format
msgid "%s Connecting"
msgstr "%s під'єднується"
@ -1896,7 +1900,7 @@ msgid "Mobile Broadband Settings"
msgstr "параметри мобільної радіомережі"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:562 js/ui/status/network.js:1318
#: js/ui/status/network.js:562 js/ui/status/network.js:1317
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s вимкнено апаратно"
@ -1912,96 +1916,96 @@ msgstr "%s вимкнено"
msgid "Connect to Internet"
msgstr "Під'єднатись до інтернету"
#: js/ui/status/network.js:812
#: js/ui/status/network.js:811
msgid "Airplane Mode is On"
msgstr "Режим «у літаку» ввімкнено"
#: js/ui/status/network.js:813
#: js/ui/status/network.js:812
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Wi-Fi вимкнено, коли режим «у літаку» ввімкнено."
#: js/ui/status/network.js:814
#: js/ui/status/network.js:813
msgid "Turn Off Airplane Mode"
msgstr "Вимкнути режим «у літаку»"
#: js/ui/status/network.js:823
#: js/ui/status/network.js:822
msgid "Wi-Fi is Off"
msgstr "Wi-Fi вимкнено"
#: js/ui/status/network.js:824
#: js/ui/status/network.js:823
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Wi-Fi потрібно ввімкнути, щоб з'єднатись з мережею."
#: js/ui/status/network.js:825
#: js/ui/status/network.js:824
msgid "Turn On Wi-Fi"
msgstr "Увімкнути Wi-Fi"
#: js/ui/status/network.js:850
#: js/ui/status/network.js:849
msgid "Wi-Fi Networks"
msgstr "Мережі Wi-Fi"
#: js/ui/status/network.js:852
#: js/ui/status/network.js:851
msgid "Select a network"
msgstr "Вибрати мережу"
#: js/ui/status/network.js:884
#: js/ui/status/network.js:883
msgid "No Networks"
msgstr "Немає мереж"
#: js/ui/status/network.js:905 js/ui/status/rfkill.js:106
#: js/ui/status/network.js:904 js/ui/status/rfkill.js:106
msgid "Use hardware switch to turn off"
msgstr "Натисніть апаратну кнопку, щоб вимкнути"
#: js/ui/status/network.js:1182
#: js/ui/status/network.js:1181
msgid "Select Network"
msgstr "Виберіть мережу"
#: js/ui/status/network.js:1188
#: js/ui/status/network.js:1187
msgid "Wi-Fi Settings"
msgstr "Параметри Wi-Fi"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1309
#: js/ui/status/network.js:1308
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s точка доступу"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1324
#: js/ui/status/network.js:1323
#, javascript-format
msgid "%s Not Connected"
msgstr "%s не під'єднано"
#: js/ui/status/network.js:1421
#: js/ui/status/network.js:1420
msgid "connecting…"
msgstr "З'єднання…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1424
#: js/ui/status/network.js:1423
msgid "authentication required"
msgstr "Потрібна аутентифікація"
#: js/ui/status/network.js:1426
#: js/ui/status/network.js:1425
msgid "connection failed"
msgstr "не вдалось з'єднатись"
#: js/ui/status/network.js:1477
#: js/ui/status/network.js:1476
msgid "VPN Settings"
msgstr "Параметри VPN"
#: js/ui/status/network.js:1494
#: js/ui/status/network.js:1493
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1504
#: js/ui/status/network.js:1503
msgid "VPN Off"
msgstr "VPN вимкнено"
#: js/ui/status/network.js:1565 js/ui/status/rfkill.js:84
#: js/ui/status/network.js:1564 js/ui/status/rfkill.js:84
msgid "Network Settings"
msgstr "Налаштування мережі"
#: js/ui/status/network.js:1594
#: js/ui/status/network.js:1593
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
@ -2010,7 +2014,7 @@ msgstr[1] "%s з'єднання через дріт"
msgstr[2] "%s з'єднань через дріт"
msgstr[3] "%s з'єднання через дріт"
#: js/ui/status/network.js:1598
#: js/ui/status/network.js:1597
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
@ -2019,7 +2023,7 @@ msgstr[1] "%s з'єднання через Wi-Fi"
msgstr[2] "%s з'єднань через Wi-Fi"
msgstr[3] "%s з'єднання через Wi-Fi"
#: js/ui/status/network.js:1602
#: js/ui/status/network.js:1601
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
@ -2028,11 +2032,11 @@ msgstr[1] "%s з'єднання через модем"
msgstr[2] "%s з'єднань через модем"
msgstr[3] "%s з'єднання через модем"
#: js/ui/status/network.js:1736
#: js/ui/status/network.js:1735
msgid "Connection failed"
msgstr "Не вдалось з'єднатись"
#: js/ui/status/network.js:1737
#: js/ui/status/network.js:1736
msgid "Activation of network connection failed"
msgstr "Не вдалось увімкнути мережеве з'єднання"
@ -2087,11 +2091,11 @@ msgstr "Зарядиться через %d%02d (%d%%)"
msgid "%d%%"
msgstr "%d%%"
#: js/ui/status/remoteAccess.js:44
#: js/ui/status/remoteAccess.js:43
msgid "Screen is Being Shared"
msgstr "Екран у спільному доступі"
#: js/ui/status/remoteAccess.js:46
#: js/ui/status/remoteAccess.js:45
msgid "Turn off"
msgstr "Вимкнути"
@ -2102,27 +2106,27 @@ msgstr "Вимкнути"
msgid "Airplane Mode On"
msgstr "Режим «у літаку» ввімкнено"
#: js/ui/status/system.js:103
#: js/ui/status/system.js:102
msgid "Lock"
msgstr "Заблокувати"
#: js/ui/status/system.js:116
#: js/ui/status/system.js:115
msgid "Power Off / Log Out"
msgstr "Вимкнути / Вийти"
#: js/ui/status/system.js:119
#: js/ui/status/system.js:118
msgid "Log Out"
msgstr "Вийти"
#: js/ui/status/system.js:131
#: js/ui/status/system.js:130
msgid "Switch User…"
msgstr "Змінити користувача…"
#: js/ui/status/system.js:145
#: js/ui/status/system.js:144
msgid "Suspend"
msgstr "Призупинити"
#: js/ui/status/system.js:157
#: js/ui/status/system.js:156
msgid "Power Off…"
msgstr "Вимкнути…"
@ -2160,11 +2164,11 @@ msgstr "Помилка завірення Thunderbolt"
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "Неможливо завірити пристрій Thunderbolt: %s"
#: js/ui/status/volume.js:151
#: js/ui/status/volume.js:154
msgid "Volume changed"
msgstr "Гучність змінено"
#: js/ui/status/volume.js:222
#: js/ui/status/volume.js:225
msgid "Volume"
msgstr "Гучність"
@ -2375,13 +2379,13 @@ msgstr "Вікно авторизації відхилено користува
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:4
#: subprojects/extensions-app/js/main.js:182
#: subprojects/extensions-app/js/main.js:183
#: subprojects/extensions-app/data/ui/extensions-window.ui:61
msgid "Extensions"
msgstr "Розширення"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:6
#: subprojects/extensions-app/js/main.js:183
#: subprojects/extensions-app/js/main.js:184
msgid "Manage your GNOME Extensions"
msgstr "Керуйте вашими розширеннями GNOME"
@ -2401,12 +2405,12 @@ msgstr ""
msgid "Configure GNOME Shell Extensions"
msgstr "Налаштувати розширення GNOME Shell"
#: subprojects/extensions-app/js/main.js:144
#: subprojects/extensions-app/js/main.js:145
#, javascript-format
msgid "Remove “%s”?"
msgstr "Вилучити «%s»?"
#: subprojects/extensions-app/js/main.js:145
#: subprojects/extensions-app/js/main.js:146
msgid ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
@ -2414,18 +2418,18 @@ msgstr ""
"Якщо ви вилучите розширення, вам доведеться отримати його код знову, якщо ви "
"захочете його знову увімкнути"
#: subprojects/extensions-app/js/main.js:149
#: subprojects/extensions-app/js/main.js:150
msgid "Remove"
msgstr "Вилучити"
#: subprojects/extensions-app/js/main.js:181
#: subprojects/extensions-app/js/main.js:182
msgid "translator-credits"
msgstr ""
"Максим Дзюманенко <dziumanenko@gmail.com>\n"
"Данило Коростіль <ted.korostiled@gmail.com>\n"
"Юрій Чорноіван <yurchor@ukr.net>"
#: subprojects/extensions-app/js/main.js:313
#: subprojects/extensions-app/js/main.js:314
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
@ -2434,26 +2438,35 @@ msgstr[1] "Під час наступного входу до системи б
msgstr[2] "Під час наступного входу до системи буде оновлено %d розширень."
msgstr[3] "Під час наступного входу до системи буде оновлено одне розширення."
#: subprojects/extensions-app/data/ui/extension-row.ui:100
#: subprojects/extensions-app/js/main.js:461
msgid "The extension is incompatible with the current GNOME version"
msgstr "Розширення є несумісним із поточною версією GNOME"
#: subprojects/extensions-app/js/main.js:464
#| msgid "Show extension info"
msgid "The extension had an error"
msgstr "У розширенні сталася помилка"
#: subprojects/extensions-app/data/ui/extension-row.ui:109
#: subprojects/extensions-tool/src/command-create.c:301
#: subprojects/extensions-tool/src/main.c:241
msgid "Description"
msgstr "Опис"
#: subprojects/extensions-app/data/ui/extension-row.ui:123
#: subprojects/extensions-app/data/ui/extension-row.ui:132
#: subprojects/extensions-tool/src/main.c:253
msgid "Version"
msgstr "Версія"
#: subprojects/extensions-app/data/ui/extension-row.ui:151
#: subprojects/extensions-app/data/ui/extension-row.ui:160
msgid "Author"
msgstr "Автор"
#: subprojects/extensions-app/data/ui/extension-row.ui:175
#: subprojects/extensions-app/data/ui/extension-row.ui:216
msgid "Website"
msgstr "Сайт"
#: subprojects/extensions-app/data/ui/extension-row.ui:192
#: subprojects/extensions-app/data/ui/extension-row.ui:233
msgid "Remove…"
msgstr "Вилучити…"
@ -2507,6 +2520,10 @@ msgstr ""
"На жаль, неможливо одержати перелік установлених розширень. Переконайтесь, "
"що ви увійшли в GNOME і спробуйте ще раз."
#: subprojects/extensions-app/data/ui/extensions-window.ui:273
msgid "Extension Updates Ready"
msgstr "Готові оновлення розширень"
#: subprojects/extensions-app/data/ui/extensions-window.ui:289
msgid "Log Out…"
msgstr "Вийти…"
@ -2583,7 +2600,6 @@ msgid "TEMPLATE"
msgstr "ШАБЛОН"
#: subprojects/extensions-tool/src/command-create.c:423
#| msgid "The user-visible name of the new extension"
msgid "The template to use for the new extension"
msgstr "Шаблон, яким слід скористатися для нового розширення"
@ -2889,7 +2905,6 @@ msgid "Plain"
msgstr "Просте"
#: subprojects/extensions-tool/src/templates/00-plain.desktop.in:5
#| msgid "Reset extension"
msgid "An empty extension"
msgstr "Порожнє розширення"

File diff suppressed because it is too large Load Diff

View File

@ -531,7 +531,7 @@ shell_app_activate_full (ShellApp *app,
case SHELL_APP_STATE_STOPPED:
{
GError *error = NULL;
if (!shell_app_launch (app, timestamp, workspace, FALSE, &error))
if (!shell_app_launch (app, timestamp, workspace, SHELL_APP_LAUNCH_GPU_APP_PREF, &error))
{
char *msg;
msg = g_strdup_printf (_("Failed to launch “%s”"), shell_app_get_name (app));
@ -606,7 +606,7 @@ shell_app_open_new_window (ShellApp *app,
* instance (Firefox). There are a few less-sensical cases such
* as say Pidgin.
*/
shell_app_launch (app, 0, workspace, FALSE, NULL);
shell_app_launch (app, 0, workspace, SHELL_APP_LAUNCH_GPU_APP_PREF, NULL);
}
/**
@ -1158,7 +1158,7 @@ shell_app_get_pids (ShellApp *app)
for (iter = shell_app_get_windows (app); iter; iter = iter->next)
{
MetaWindow *window = iter->data;
int pid = meta_window_get_pid (window);
pid_t pid = meta_window_get_pid (window);
if (pid < 1)
continue;
@ -1289,7 +1289,7 @@ apply_discrete_gpu_env (GAppLaunchContext *context,
GVariant* variant;
guint num_children, i;
proxy = _shell_global_get_switcheroo_control (global);
proxy = shell_global_get_switcheroo_control (global);
if (!proxy)
{
g_warning ("Could not apply discrete GPU environment, switcheroo-control not available");
@ -1332,27 +1332,28 @@ apply_discrete_gpu_env (GAppLaunchContext *context,
return;
}
g_warning ("Could not find discrete GPU data in switcheroo-control");
g_debug ("Could not find discrete GPU in switcheroo-control, not applying environment");
}
/**
* shell_app_launch:
* @timestamp: Event timestamp, or 0 for current event timestamp
* @workspace: Start on this workspace, or -1 for default
* @discrete_gpu: Whether to start on the discrete GPU
* @gpu_pref: the GPU to prefer launching on
* @error: A #GError
*/
gboolean
shell_app_launch (ShellApp *app,
guint timestamp,
int workspace,
gboolean discrete_gpu,
GError **error)
shell_app_launch (ShellApp *app,
guint timestamp,
int workspace,
ShellAppLaunchGpu gpu_pref,
GError **error)
{
ShellGlobal *global;
GAppLaunchContext *context;
gboolean ret;
GSpawnFlags flags;
gboolean discrete_gpu = FALSE;
if (app->info == NULL)
{
@ -1369,6 +1370,11 @@ shell_app_launch (ShellApp *app,
global = shell_global_get ();
context = shell_global_create_app_launch_context (global, timestamp, workspace);
if (gpu_pref == SHELL_APP_LAUNCH_GPU_APP_PREF)
discrete_gpu = g_desktop_app_info_get_boolean (app->info, "PrefersNonDefaultGPU");
else
discrete_gpu = (gpu_pref == SHELL_APP_LAUNCH_GPU_DISCRETE);
if (discrete_gpu)
apply_discrete_gpu_env (context, global);

View File

@ -18,6 +18,12 @@ typedef enum {
SHELL_APP_STATE_RUNNING
} ShellAppState;
typedef enum {
SHELL_APP_LAUNCH_GPU_APP_PREF = 0,
SHELL_APP_LAUNCH_GPU_DISCRETE,
SHELL_APP_LAUNCH_GPU_DEFAULT
} ShellAppLaunchGpu;
const char *shell_app_get_id (ShellApp *app);
GDesktopAppInfo *shell_app_get_app_info (ShellApp *app);
@ -51,11 +57,11 @@ GSList *shell_app_get_pids (ShellApp *app);
gboolean shell_app_is_on_workspace (ShellApp *app, MetaWorkspace *workspace);
gboolean shell_app_launch (ShellApp *app,
guint timestamp,
int workspace,
gboolean discrete_gpu,
GError **error);
gboolean shell_app_launch (ShellApp *app,
guint timestamp,
int workspace,
ShellAppLaunchGpu gpu_pref,
GError **error);
void shell_app_launch_action (ShellApp *app,
const char *action_name,

View File

@ -148,6 +148,7 @@ got_switcheroo_control_gpus_property_cb (GObject *source_object,
global = user_data;
g_dbus_proxy_set_cached_property (global->switcheroo_control, "GPUs", gpus);
g_object_notify (G_OBJECT (global), "switcheroo-control");
}
static void
@ -175,7 +176,11 @@ switcheroo_control_ready_cb (GObject *source_object,
cached_props = g_dbus_proxy_get_cached_property_names (global->switcheroo_control);
if (cached_props != NULL && g_strv_contains ((const gchar * const *) cached_props, "GPUs"))
return;
{
g_object_notify (G_OBJECT (global), "switcheroo-control");
return;
}
/* Delay property notification until we have all the properties gathered */
g_dbus_connection_call (g_dbus_proxy_get_connection (global->switcheroo_control),
g_dbus_proxy_get_name (global->switcheroo_control),
@ -299,6 +304,36 @@ shell_global_get_property(GObject *object,
}
}
static void
switcheroo_appeared_cb (GDBusConnection *connection,
const char *name,
const char *name_owner,
gpointer user_data)
{
ShellGlobal *global = user_data;
g_debug ("switcheroo-control appeared");
shell_net_hadess_switcheroo_control_proxy_new_for_bus (G_BUS_TYPE_SYSTEM,
G_DBUS_PROXY_FLAGS_NONE,
"net.hadess.SwitcherooControl",
"/net/hadess/SwitcherooControl",
global->switcheroo_cancellable,
switcheroo_control_ready_cb,
global);
}
static void
switcheroo_vanished_cb (GDBusConnection *connection,
const char *name,
gpointer user_data)
{
ShellGlobal *global = user_data;
g_debug ("switcheroo-control vanished");
g_clear_object (&global->switcheroo_control);
g_object_notify (G_OBJECT (global), "switcheroo-control");
}
static void
shell_global_init (ShellGlobal *global)
{
@ -394,13 +429,13 @@ shell_global_init (ShellGlobal *global)
g_object_unref, g_object_unref);
global->switcheroo_cancellable = g_cancellable_new ();
shell_net_hadess_switcheroo_control_proxy_new_for_bus (G_BUS_TYPE_SYSTEM,
G_DBUS_PROXY_FLAGS_NONE,
"net.hadess.SwitcherooControl",
"/net/hadess/SwitcherooControl",
global->switcheroo_cancellable,
switcheroo_control_ready_cb,
global);
g_bus_watch_name (G_BUS_TYPE_SYSTEM,
"net.hadess.SwitcherooControl",
G_BUS_NAME_WATCHER_FLAGS_NONE,
switcheroo_appeared_cb,
switcheroo_vanished_cb,
global,
NULL);
}
static void
@ -1373,7 +1408,7 @@ shell_global_sync_pointer (ShellGlobal *global)
}
/**
* _shell_global_get_switcheroo_control: (skip)
* shell_global_get_switcheroo_control:
* @global: A #ShellGlobal
*
* Get the global #GDBusProxy instance for the switcheroo-control
@ -1383,7 +1418,7 @@ shell_global_sync_pointer (ShellGlobal *global)
* or %NULL on error.
*/
GDBusProxy *
_shell_global_get_switcheroo_control (ShellGlobal *global)
shell_global_get_switcheroo_control (ShellGlobal *global)
{
return global->switcheroo_control;
}

View File

@ -67,7 +67,7 @@ void shell_global_run_at_leisure (ShellGlobal *global,
void shell_global_sync_pointer (ShellGlobal *global);
GDBusProxy *
_shell_global_get_switcheroo_control (ShellGlobal *global);
shell_global_get_switcheroo_control (ShellGlobal *global);
GAppLaunchContext *
shell_global_create_app_launch_context (ShellGlobal *global,

View File

@ -268,15 +268,14 @@ shell_gtk_embed_get_preferred_height (ClutterActor *actor,
static void
shell_gtk_embed_allocate (ClutterActor *actor,
const ClutterActorBox *box,
ClutterAllocationFlags flags)
const ClutterActorBox *box)
{
ShellGtkEmbed *embed = SHELL_GTK_EMBED (actor);
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
float wx, wy;
CLUTTER_ACTOR_CLASS (shell_gtk_embed_parent_class)->
allocate (actor, box, flags);
allocate (actor, box);
/* Find the actor's new coordinates in terms of the stage (which is
* priv->window's parent window.

View File

@ -25,14 +25,13 @@ G_DEFINE_TYPE (ShellStack, shell_stack, ST_TYPE_WIDGET);
static void
shell_stack_allocate (ClutterActor *self,
const ClutterActorBox *box,
ClutterAllocationFlags flags)
const ClutterActorBox *box)
{
StThemeNode *theme_node = st_widget_get_theme_node (ST_WIDGET (self));
ClutterActorBox content_box;
ClutterActor *child;
clutter_actor_set_allocation (self, box, flags);
clutter_actor_set_allocation (self, box);
st_theme_node_get_content_box (theme_node, box, &content_box);
@ -41,7 +40,7 @@ shell_stack_allocate (ClutterActor *self,
child = clutter_actor_get_next_sibling (child))
{
ClutterActorBox child_box = content_box;
clutter_actor_allocate (child, &child_box, flags);
clutter_actor_allocate (child, &child_box);
}
}

View File

@ -31,6 +31,7 @@
#ifdef HAVE_SYSTEMD
#include <systemd/sd-daemon.h>
#include <systemd/sd-login.h>
#else
/* So we don't need to add ifdef's everywhere */
#define sd_notify(u, m) do {} while (0)
@ -673,7 +674,27 @@ shell_util_systemd_call (const char *command,
const char *mode,
GError **error)
{
#ifdef HAVE_SYSTEMD
g_autoptr (GDBusConnection) connection = NULL;
g_autofree char *self_unit = NULL;
int res;
res = sd_pid_get_user_unit (getpid (), &self_unit);
if (res == -ENODATA)
{
g_debug ("Not systemd-managed, not doing '%s' on '%s'", mode, unit);
return FALSE;
}
else if (res < 0)
{
g_set_error (error,
G_IO_ERROR,
g_io_error_from_errno (-res),
"Error trying to start systemd unit '%s': %s",
unit, g_strerror (-res));
return FALSE;
}
connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, error);
@ -693,6 +714,9 @@ shell_util_systemd_call (const char *command,
on_systemd_call_cb,
(gpointer) command);
return TRUE;
#endif /* HAVE_SYSTEMD */
return FALSE;
}
gboolean

View File

@ -336,7 +336,7 @@ get_app_from_window_pid (ShellWindowTracker *tracker,
MetaWindow *window)
{
ShellApp *result;
int pid;
pid_t pid;
if (meta_window_is_remote (window))
return NULL;

View File

@ -4,7 +4,6 @@ st_headers = [
'st-bin.h',
'st-border-image.h',
'st-box-layout.h',
'st-box-layout-child.h',
'st-button.h',
'st-clipboard.h',
'st-drawing-area.h',
@ -116,7 +115,6 @@ st_sources = [
'st-bin.c',
'st-border-image.c',
'st-box-layout.c',
'st-box-layout-child.c',
'st-button.c',
'st-clipboard.c',
'st-drawing-area.c',

View File

@ -42,9 +42,6 @@ typedef struct _StBinPrivate StBinPrivate;
struct _StBinPrivate
{
ClutterActor *child;
guint x_fill : 1;
guint y_fill : 1;
};
enum
@ -52,8 +49,6 @@ enum
PROP_0,
PROP_CHILD,
PROP_X_FILL,
PROP_Y_FILL,
N_PROPS
};
@ -115,12 +110,11 @@ get_align_factor (ClutterActorAlign align)
static void
st_bin_allocate (ClutterActor *self,
const ClutterActorBox *box,
ClutterAllocationFlags flags)
const ClutterActorBox *box)
{
StBinPrivate *priv = st_bin_get_instance_private (ST_BIN (self));
clutter_actor_set_allocation (self, box, flags);
clutter_actor_set_allocation (self, box);
if (priv->child && clutter_actor_is_visible (priv->child))
{
@ -134,8 +128,7 @@ st_bin_allocate (ClutterActor *self,
get_align_factor (x_align),
get_align_factor (y_align),
x_align == CLUTTER_ACTOR_ALIGN_FILL,
y_align == CLUTTER_ACTOR_ALIGN_FILL,
flags);
y_align == CLUTTER_ACTOR_ALIGN_FILL);
}
}
@ -260,7 +253,6 @@ st_bin_set_property (GObject *gobject,
GParamSpec *pspec)
{
StBin *bin = ST_BIN (gobject);
StBinPrivate *priv = st_bin_get_instance_private (bin);
switch (prop_id)
{
@ -268,18 +260,6 @@ st_bin_set_property (GObject *gobject,
st_bin_set_child (bin, g_value_get_object (value));
break;
case PROP_X_FILL:
st_bin_set_fill (bin,
g_value_get_boolean (value),
priv->y_fill);
break;
case PROP_Y_FILL:
st_bin_set_fill (bin,
priv->x_fill,
g_value_get_boolean (value));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
}
@ -299,14 +279,6 @@ st_bin_get_property (GObject *gobject,
g_value_set_object (value, priv->child);
break;
case PROP_X_FILL:
g_value_set_boolean (value, priv->x_fill);
break;
case PROP_Y_FILL:
g_value_set_boolean (value, priv->y_fill);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
}
@ -342,32 +314,6 @@ st_bin_class_init (StBinClass *klass)
CLUTTER_TYPE_ACTOR,
ST_PARAM_READWRITE);
/**
* StBin:x-fill:
*
* Whether the child should fill the horizontal allocation
*/
props[PROP_X_FILL] =
g_param_spec_boolean ("x-fill",
"X Fill",
"Whether the child should fill the "
"horizontal allocation",
FALSE,
ST_PARAM_READWRITE | G_PARAM_DEPRECATED);
/**
* StBin:y-fill:
*
* Whether the child should fill the vertical allocation
*/
props[PROP_Y_FILL] =
g_param_spec_boolean ("y-fill",
"Y Fill",
"Whether the child should fill the "
"vertical allocation",
FALSE,
ST_PARAM_READWRITE | G_PARAM_DEPRECATED);
g_object_class_install_properties (gobject_class, N_PROPS, props);
}
@ -443,68 +389,3 @@ st_bin_get_child (StBin *bin)
return ((StBinPrivate *)st_bin_get_instance_private (bin))->child;
}
/**
* st_bin_set_fill:
* @bin: a #StBin
* @x_fill: %TRUE if the child should fill horizontally the @bin
* @y_fill: %TRUE if the child should fill vertically the @bin
*
* Sets whether the child of @bin should fill out the horizontal
* and/or vertical allocation of the parent
*/
void
st_bin_set_fill (StBin *bin,
gboolean x_fill,
gboolean y_fill)
{
StBinPrivate *priv;
g_return_if_fail (ST_IS_BIN (bin));
priv = st_bin_get_instance_private (bin);
g_object_freeze_notify (G_OBJECT (bin));
if (priv->x_fill != x_fill)
{
priv->x_fill = x_fill;
g_object_notify_by_pspec (G_OBJECT (bin), props[PROP_X_FILL]);
}
if (priv->y_fill != y_fill)
{
priv->y_fill = y_fill;
g_object_notify_by_pspec (G_OBJECT (bin), props[PROP_Y_FILL]);
}
g_object_thaw_notify (G_OBJECT (bin));
}
/**
* st_bin_get_fill:
* @bin: a #StBin
* @x_fill: (out): return location for the horizontal fill, or %NULL
* @y_fill: (out): return location for the vertical fill, or %NULL
*
* Retrieves the horizontal and vertical fill settings
*/
void
st_bin_get_fill (StBin *bin,
gboolean *x_fill,
gboolean *y_fill)
{
StBinPrivate *priv;
g_return_if_fail (ST_IS_BIN (bin));
priv = st_bin_get_instance_private (bin);
if (x_fill)
*x_fill = priv->x_fill;
if (y_fill)
*y_fill = priv->y_fill;
}

View File

@ -47,12 +47,6 @@ StWidget * st_bin_new (void);
void st_bin_set_child (StBin *bin,
ClutterActor *child);
ClutterActor *st_bin_get_child (StBin *bin);
void st_bin_set_fill (StBin *bin,
gboolean x_fill,
gboolean y_fill);
void st_bin_get_fill (StBin *bin,
gboolean *x_fill,
gboolean *y_fill);
G_END_DECLS

View File

@ -1,221 +0,0 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/*
* st-box-layout-child.c: box layout child actor
*
* Copyright 2009 Intel Corporation
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU Lesser General Public License,
* version 2.1, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
* more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* SECTION:st-box-layout-child
* @short_description: meta data associated with a #StBoxLayout child.
*
* #StBoxLayoutChild is a #ClutterChildMeta implementation that stores the
* child properties for children inside a #StBoxLayout.
*/
#include "st-box-layout-child.h"
#include "st-private.h"
G_DEFINE_TYPE (StBoxLayoutChild, st_box_layout_child, CLUTTER_TYPE_CHILD_META)
enum
{
PROP_0,
PROP_EXPAND,
PROP_X_FILL,
PROP_Y_FILL,
PROP_X_ALIGN,
PROP_Y_ALIGN
};
static ClutterLayoutMeta *
get_layout_meta (StBoxLayoutChild *self)
{
ClutterChildMeta *meta = CLUTTER_CHILD_META (self);
ClutterActor *actor = clutter_child_meta_get_actor (meta);
ClutterContainer *container = clutter_child_meta_get_container (meta);
ClutterLayoutManager *layout = clutter_actor_get_layout_manager (CLUTTER_ACTOR (container));
return clutter_layout_manager_get_child_meta (layout, container, actor);
}
static void
st_box_layout_child_get_property (GObject *object,
guint property_id,
GValue *value,
GParamSpec *pspec)
{
StBoxLayoutChild *child = ST_BOX_LAYOUT_CHILD (object);
GObject *meta = G_OBJECT (get_layout_meta (child));
gboolean expand, fill;
ClutterBoxAlignment layout_align;
StAlign align;
switch (property_id)
{
case PROP_EXPAND:
g_object_get (meta, "expand", &expand, NULL);
g_value_set_boolean (value, expand);
break;
case PROP_X_FILL:
g_object_get (meta, "x-fill", &fill, NULL);
g_value_set_boolean (value, fill);
break;
case PROP_Y_FILL:
g_object_get (meta, "y-fill", &fill, NULL);
g_value_set_boolean (value, fill);
break;
case PROP_X_ALIGN:
case PROP_Y_ALIGN:
g_object_get (meta, g_param_spec_get_name (pspec), &layout_align, NULL);
switch (layout_align)
{
case CLUTTER_BOX_ALIGNMENT_START:
align = ST_ALIGN_START;
break;
case CLUTTER_BOX_ALIGNMENT_CENTER:
align = ST_ALIGN_MIDDLE;
break;
case CLUTTER_BOX_ALIGNMENT_END:
align = ST_ALIGN_END;
break;
default:
g_assert_not_reached ();
}
g_value_set_enum (value, align);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
}
}
static void
st_box_layout_child_set_property (GObject *object,
guint property_id,
const GValue *value,
GParamSpec *pspec)
{
StBoxLayoutChild *child = ST_BOX_LAYOUT_CHILD (object);
GObject *meta = G_OBJECT (get_layout_meta (child));
ClutterBoxAlignment align;
switch (property_id)
{
case PROP_EXPAND:
g_object_set (meta, "expand", g_value_get_boolean (value), NULL);
break;
case PROP_X_FILL:
child->x_fill_set = TRUE;
g_object_set (meta, "x-fill", g_value_get_boolean (value), NULL);
break;
case PROP_Y_FILL:
child->y_fill_set = TRUE;
g_object_set (meta, "y-fill", g_value_get_boolean (value), NULL);
break;
case PROP_X_ALIGN:
case PROP_Y_ALIGN:
switch (g_value_get_enum (value))
{
case ST_ALIGN_START:
align = CLUTTER_BOX_ALIGNMENT_START;
break;
case ST_ALIGN_MIDDLE:
align = CLUTTER_BOX_ALIGNMENT_CENTER;
break;
case ST_ALIGN_END:
align = CLUTTER_BOX_ALIGNMENT_END;
break;
default:
g_assert_not_reached ();
}
g_object_set (meta, g_param_spec_get_name (pspec), align, NULL);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
}
}
static void
st_box_layout_child_constructed (GObject *object)
{
StBoxLayoutChild *child = ST_BOX_LAYOUT_CHILD (object);
GObject *meta = G_OBJECT (get_layout_meta (child));
if (!child->x_fill_set)
g_object_set (meta, "x-fill", TRUE, NULL);
if (!child->y_fill_set)
g_object_set (meta, "y-fill", TRUE, NULL);
G_OBJECT_CLASS (st_box_layout_child_parent_class)->constructed (object);
}
static void
st_box_layout_child_class_init (StBoxLayoutChildClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GParamSpec *pspec;
object_class->get_property = st_box_layout_child_get_property;
object_class->set_property = st_box_layout_child_set_property;
object_class->constructed = st_box_layout_child_constructed;
pspec = g_param_spec_boolean ("expand", "Expand",
"Allocate the child extra space",
FALSE,
ST_PARAM_READWRITE | G_PARAM_DEPRECATED);
g_object_class_install_property (object_class, PROP_EXPAND, pspec);
pspec = g_param_spec_boolean ("x-fill", "x-fill",
"Whether the child should receive priority "
"when the container is allocating spare space "
"on the horizontal axis",
TRUE,
ST_PARAM_READWRITE | G_PARAM_DEPRECATED);
g_object_class_install_property (object_class, PROP_X_FILL, pspec);
pspec = g_param_spec_boolean ("y-fill", "y-fill",
"Whether the child should receive priority "
"when the container is allocating spare space "
"on the vertical axis",
TRUE,
ST_PARAM_READWRITE | G_PARAM_DEPRECATED);
g_object_class_install_property (object_class, PROP_Y_FILL, pspec);
pspec = g_param_spec_enum ("x-align",
"X Alignment",
"X alignment of the widget within the cell",
ST_TYPE_ALIGN,
ST_ALIGN_MIDDLE,
ST_PARAM_READWRITE | G_PARAM_DEPRECATED);
g_object_class_install_property (object_class, PROP_X_ALIGN, pspec);
pspec = g_param_spec_enum ("y-align",
"Y Alignment",
"Y alignment of the widget within the cell",
ST_TYPE_ALIGN,
ST_ALIGN_MIDDLE,
ST_PARAM_READWRITE | G_PARAM_DEPRECATED);
g_object_class_install_property (object_class, PROP_Y_ALIGN, pspec);
}
static void
st_box_layout_child_init (StBoxLayoutChild *self)
{
}

View File

@ -1,52 +0,0 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/*
* st-box-layout-child.h: box layout child actor
*
* Copyright 2009 Intel Corporation
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU Lesser General Public License,
* version 2.1, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
* more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _ST_BOX_LAYOUT_CHILD_H
#define _ST_BOX_LAYOUT_CHILD_H
#include <clutter/clutter.h>
#include "st-enum-types.h"
#include "st-box-layout.h"
G_BEGIN_DECLS
#define ST_TYPE_BOX_LAYOUT_CHILD st_box_layout_child_get_type()
G_DECLARE_FINAL_TYPE (StBoxLayoutChild, st_box_layout_child, ST, BOX_LAYOUT_CHILD, ClutterChildMeta)
typedef struct _StBoxLayoutChild StBoxLayoutChild;
typedef struct _StBoxLayoutChildPrivate StBoxLayoutChildPrivate;
/**
* StBoxLayoutChild:
*
* The contents of this structure are private and should only be accessed
* through the public API.
*/
struct _StBoxLayoutChild
{
/*< private >*/
ClutterChildMeta parent;
gboolean x_fill_set;
gboolean y_fill_set;
};
G_END_DECLS
#endif /* _ST_BOX_LAYOUT_CHILD_H */

View File

@ -53,11 +53,8 @@
#include "st-private.h"
#include "st-scrollable.h"
#include "st-box-layout-child.h"
static void st_box_container_iface_init (ClutterContainerIface *iface);
enum {
PROP_0,
@ -71,16 +68,7 @@ struct _StBoxLayoutPrivate
StAdjustment *vadjustment;
};
G_DEFINE_TYPE_WITH_CODE (StBoxLayout, st_box_layout, ST_TYPE_VIEWPORT,
G_ADD_PRIVATE (StBoxLayout)
G_IMPLEMENT_INTERFACE (CLUTTER_TYPE_CONTAINER,
st_box_container_iface_init));
static void
st_box_container_iface_init (ClutterContainerIface *iface)
{
iface->child_meta_type = ST_TYPE_BOX_LAYOUT_CHILD;
}
G_DEFINE_TYPE_WITH_PRIVATE (StBoxLayout, st_box_layout, ST_TYPE_VIEWPORT);
static void
@ -190,6 +178,12 @@ st_box_layout_class_init (StBoxLayoutClass *klass)
widget_class->style_changed = st_box_layout_style_changed;
/**
* StBoxLayout:vertical:
*
* A convenience property for getting the #ClutterBoxLayout:vertical
* property of the layout for #StBoxLayout.
*/
pspec = g_param_spec_boolean ("vertical",
"Vertical",
"Whether the layout should be vertical, rather"
@ -198,6 +192,12 @@ st_box_layout_class_init (StBoxLayoutClass *klass)
ST_PARAM_READWRITE);
g_object_class_install_property (object_class, PROP_VERTICAL, pspec);
/**
* StBoxLayout:pack-start:
*
* A convenience property for getting the #ClutterBoxLayout:pack-start
* property of the layout for #StBoxLayout.
*/
pspec = g_param_spec_boolean ("pack-start",
"Pack Start",
"Whether to pack items at the start of the box",
@ -234,8 +234,7 @@ st_box_layout_new (void)
* @box: A #StBoxLayout
* @vertical: %TRUE if the layout should be vertical
*
* Set the value of the #StBoxLayout::vertical property
*
* Set the value of the #StBoxLayout:vertical property
*/
void
st_box_layout_set_vertical (StBoxLayout *box,
@ -261,7 +260,7 @@ st_box_layout_set_vertical (StBoxLayout *box,
* st_box_layout_get_vertical:
* @box: A #StBoxLayout
*
* Get the value of the #StBoxLayout::vertical property.
* Get the value of the #StBoxLayout:vertical property.
*
* Returns: %TRUE if the layout is vertical
*/
@ -283,8 +282,7 @@ st_box_layout_get_vertical (StBoxLayout *box)
* @box: A #StBoxLayout
* @pack_start: %TRUE if the layout should use pack-start
*
* Set the value of the #StBoxLayout::pack-start property.
*
* Set the value of the #StBoxLayout:pack-start property.
*/
void
st_box_layout_set_pack_start (StBoxLayout *box,
@ -307,7 +305,7 @@ st_box_layout_set_pack_start (StBoxLayout *box,
* st_box_layout_get_pack_start:
* @box: A #StBoxLayout
*
* Get the value of the #StBoxLayout::pack-start property.
* Get the value of the #StBoxLayout:pack-start property.
*
* Returns: %TRUE if pack-start is enabled
*/

View File

@ -146,6 +146,29 @@ transfer_cb (MetaSelection *selection,
g_free (text);
}
/**
* st_clipboard_get_mimetypes:
* @clipboard: a #StClipboard
*
* Gets a list of the mimetypes supported by the default #StClipboard.
*
* Returns: (element-type utf8) (transfer full): the supported mimetypes
*/
GList *
st_clipboard_get_mimetypes (StClipboard *clipboard,
StClipboardType type)
{
MetaSelectionType selection_type;
g_return_val_if_fail (ST_IS_CLIPBOARD (clipboard), NULL);
g_return_val_if_fail (meta_selection != NULL, NULL);
if (!convert_type (type, &selection_type))
return NULL;
return meta_selection_get_mimetypes (meta_selection, selection_type);
}
/**
* st_clipboard_get_text:
* @clipboard: A #StCliboard

View File

@ -65,6 +65,9 @@ typedef void (*StClipboardCallbackFunc) (StClipboard *clipboard,
StClipboard* st_clipboard_get_default (void);
GList * st_clipboard_get_mimetypes (StClipboard *clipboard,
StClipboardType type);
void st_clipboard_get_text (StClipboard *clipboard,
StClipboardType type,
StClipboardCallbackFunc callback,

View File

@ -77,8 +77,7 @@ draw_content (ClutterCanvas *canvas,
static void
st_drawing_area_allocate (ClutterActor *self,
const ClutterActorBox *box,
ClutterAllocationFlags flags)
const ClutterActorBox *box)
{
StThemeNode *theme_node = st_widget_get_theme_node (ST_WIDGET (self));
ClutterContent *content = clutter_actor_get_content (self);
@ -89,11 +88,11 @@ st_drawing_area_allocate (ClutterActor *self,
if (!st_widget_get_resource_scale (ST_WIDGET (self), &resource_scale))
{
ClutterActorBox empty = CLUTTER_ACTOR_BOX_INIT_ZERO;
clutter_actor_set_allocation (self, &empty, 0);
clutter_actor_set_allocation (self, &empty);
return;
}
clutter_actor_set_allocation (self, box, flags);
clutter_actor_set_allocation (self, box);
st_theme_node_get_content_box (theme_node, box, &content_box);
width = (int)(0.5 + content_box.x2 - content_box.x1);

View File

@ -416,8 +416,7 @@ st_entry_get_preferred_height (ClutterActor *actor,
static void
st_entry_allocate (ClutterActor *actor,
const ClutterActorBox *box,
ClutterAllocationFlags flags)
const ClutterActorBox *box)
{
StEntryPrivate *priv = ST_ENTRY_PRIV (actor);
StThemeNode *theme_node = st_widget_get_theme_node (ST_WIDGET (actor));
@ -441,7 +440,7 @@ st_entry_allocate (ClutterActor *actor,
right_icon = priv->secondary_icon;
}
clutter_actor_set_allocation (actor, box, flags);
clutter_actor_set_allocation (actor, box);
st_theme_node_get_content_box (theme_node, box, &content_box);
@ -461,7 +460,7 @@ st_entry_allocate (ClutterActor *actor,
icon_box.y1 = (int) (content_box.y1 + avail_h / 2 - icon_h / 2);
icon_box.y2 = icon_box.y1 + icon_h;
clutter_actor_allocate (left_icon, &icon_box, flags);
clutter_actor_allocate (left_icon, &icon_box);
/* reduce the size for the entry */
child_box.x1 = MIN (child_box.x2, child_box.x1 + icon_w + priv->spacing);
@ -478,7 +477,7 @@ st_entry_allocate (ClutterActor *actor,
icon_box.y1 = (int) (content_box.y1 + avail_h / 2 - icon_h / 2);
icon_box.y2 = icon_box.y1 + icon_h;
clutter_actor_allocate (right_icon, &icon_box, flags);
clutter_actor_allocate (right_icon, &icon_box);
/* reduce the size for the entry */
child_box.x2 = MAX (child_box.x1, child_box.x2 - icon_w - priv->spacing);
@ -502,7 +501,7 @@ st_entry_allocate (ClutterActor *actor,
hint_box.y1 = ceil (content_box.y1 + avail_h / 2 - hint_h / 2);
hint_box.y2 = hint_box.y1 + hint_h;
clutter_actor_allocate (priv->hint_actor, &hint_box, flags);
clutter_actor_allocate (priv->hint_actor, &hint_box);
}
clutter_actor_get_preferred_height (priv->entry, child_box.x2 - child_box.x1,
@ -513,7 +512,7 @@ st_entry_allocate (ClutterActor *actor,
child_box.y1 = (int) (content_box.y1 + avail_h / 2 - entry_h / 2);
child_box.y2 = child_box.y1 + entry_h;
clutter_actor_allocate (priv->entry, &child_box, flags);
clutter_actor_allocate (priv->entry, &child_box);
}
static void

View File

@ -165,18 +165,17 @@ st_label_get_preferred_height (ClutterActor *actor,
static void
st_label_allocate (ClutterActor *actor,
const ClutterActorBox *box,
ClutterAllocationFlags flags)
const ClutterActorBox *box)
{
StLabelPrivate *priv = ST_LABEL (actor)->priv;
StThemeNode *theme_node = st_widget_get_theme_node (ST_WIDGET (actor));
ClutterActorBox content_box;
clutter_actor_set_allocation (actor, box, flags);
clutter_actor_set_allocation (actor, box);
st_theme_node_get_content_box (theme_node, box, &content_box);
clutter_actor_allocate (priv->label, &content_box, flags);
clutter_actor_allocate (priv->label, &content_box);
}
static void

View File

@ -192,8 +192,7 @@ st_scroll_bar_unmap (ClutterActor *actor)
static void
scroll_bar_allocate_children (StScrollBar *bar,
const ClutterActorBox *box,
ClutterAllocationFlags flags)
const ClutterActorBox *box)
{
StScrollBarPrivate *priv = st_scroll_bar_get_instance_private (bar);
StThemeNode *theme_node = st_widget_get_theme_node (ST_WIDGET (bar));
@ -207,7 +206,7 @@ scroll_bar_allocate_children (StScrollBar *bar,
trough_box.y1 = content_box.y1;
trough_box.x2 = content_box.x2;
trough_box.y2 = content_box.y2;
clutter_actor_allocate (priv->trough, &trough_box, flags);
clutter_actor_allocate (priv->trough, &trough_box);
}
else
{
@ -215,7 +214,7 @@ scroll_bar_allocate_children (StScrollBar *bar,
trough_box.y1 = content_box.y1;
trough_box.x2 = content_box.x2;
trough_box.y2 = content_box.y2;
clutter_actor_allocate (priv->trough, &trough_box, flags);
clutter_actor_allocate (priv->trough, &trough_box);
}
@ -274,9 +273,7 @@ scroll_bar_allocate_children (StScrollBar *bar,
handle_box.y2 = content_box.y2;
}
clutter_actor_allocate (priv->handle,
&handle_box,
flags);
clutter_actor_allocate (priv->handle, &handle_box);
}
}
@ -362,14 +359,13 @@ st_scroll_bar_get_preferred_height (ClutterActor *self,
static void
st_scroll_bar_allocate (ClutterActor *actor,
const ClutterActorBox *box,
ClutterAllocationFlags flags)
const ClutterActorBox *box)
{
StScrollBar *bar = ST_SCROLL_BAR (actor);
clutter_actor_set_allocation (actor, box, flags);
clutter_actor_set_allocation (actor, box);
scroll_bar_allocate_children (bar, box, flags);
scroll_bar_allocate_children (bar, box);
}
static void
@ -392,7 +388,7 @@ scroll_bar_update_positions (StScrollBar *bar)
return;
clutter_actor_get_allocation_box (CLUTTER_ACTOR (bar), &box);
scroll_bar_allocate_children (bar, &box, CLUTTER_ALLOCATION_NONE);
scroll_bar_allocate_children (bar, &box);
}
static void

View File

@ -533,8 +533,7 @@ st_scroll_view_get_preferred_height (ClutterActor *actor,
static void
st_scroll_view_allocate (ClutterActor *actor,
const ClutterActorBox *box,
ClutterAllocationFlags flags)
const ClutterActorBox *box)
{
ClutterActorBox content_box, child_box;
gfloat avail_width, avail_height, sb_width, sb_height;
@ -543,7 +542,7 @@ st_scroll_view_allocate (ClutterActor *actor,
StScrollViewPrivate *priv = ST_SCROLL_VIEW (actor)->priv;
StThemeNode *theme_node = st_widget_get_theme_node (ST_WIDGET (actor));
clutter_actor_set_allocation (actor, box, flags);
clutter_actor_set_allocation (actor, box);
st_theme_node_get_content_box (theme_node, box, &content_box);
@ -641,7 +640,7 @@ st_scroll_view_allocate (ClutterActor *actor,
child_box.y1 = content_box.y1;
child_box.y2 = content_box.y2 - (hscrollbar_visible ? sb_height : 0);
clutter_actor_allocate (priv->vscroll, &child_box, flags);
clutter_actor_allocate (priv->vscroll, &child_box);
/* Horizontal scrollbar */
if (clutter_actor_get_text_direction (actor) == CLUTTER_TEXT_DIRECTION_RTL)
@ -657,7 +656,7 @@ st_scroll_view_allocate (ClutterActor *actor,
child_box.y1 = content_box.y2 - sb_height;
child_box.y2 = content_box.y2;
clutter_actor_allocate (priv->hscroll, &child_box, flags);
clutter_actor_allocate (priv->hscroll, &child_box);
/* In case the scrollbar policy is NEVER or EXTERNAL or scrollbars
* should be overlayed, we don't trim the content box allocation by
@ -689,7 +688,7 @@ st_scroll_view_allocate (ClutterActor *actor,
child_box.y2 = content_box.y2 - sb_height;
if (priv->child)
clutter_actor_allocate (priv->child, &child_box, flags);
clutter_actor_allocate (priv->child, &child_box);
if (priv->hscrollbar_visible != hscrollbar_visible)
{

View File

@ -50,6 +50,8 @@ struct _StTextureCachePrivate
/* File monitors to evict cache data on changes */
GHashTable *file_monitors; /* char * -> GFileMonitor * */
GCancellable *cancellable;
};
static void st_texture_cache_dispose (GObject *object);
@ -144,6 +146,9 @@ on_icon_theme_changed (StSettings *settings,
{
g_autofree gchar *theme = NULL;
g_cancellable_cancel (cache->priv->cancellable);
g_cancellable_reset (cache->priv->cancellable);
st_texture_cache_evict_icons (cache);
g_object_get (settings, "gtk-icon-theme", &theme, NULL);
@ -190,6 +195,8 @@ st_texture_cache_init (StTextureCache *self)
self->priv->file_monitors = g_hash_table_new_full (g_file_hash, (GEqualFunc) g_file_equal,
g_object_unref, g_object_unref);
self->priv->cancellable = g_cancellable_new ();
on_icon_theme_changed (settings, NULL, self);
}
@ -198,8 +205,11 @@ st_texture_cache_dispose (GObject *object)
{
StTextureCache *self = (StTextureCache*)object;
g_cancellable_cancel (self->priv->cancellable);
g_clear_object (&self->priv->settings);
g_clear_object (&self->priv->icon_theme);
g_clear_object (&self->priv->cancellable);
g_clear_pointer (&self->priv->keyed_cache, g_hash_table_destroy);
g_clear_pointer (&self->priv->keyed_surface_cache, g_hash_table_destroy);
@ -696,11 +706,14 @@ load_texture_async (StTextureCache *cache,
gtk_icon_info_load_symbolic_async (data->icon_info,
&foreground_color, &success_color,
&warning_color, &error_color,
NULL, on_symbolic_icon_loaded, data);
cache->priv->cancellable,
on_symbolic_icon_loaded, data);
}
else
{
gtk_icon_info_load_icon_async (data->icon_info, NULL, on_icon_loaded, data);
gtk_icon_info_load_icon_async (data->icon_info,
cache->priv->cancellable,
on_icon_loaded, data);
}
}
else

View File

@ -285,10 +285,16 @@ st_theme_unload_stylesheet (StTheme *theme,
return;
theme->custom_stylesheets = g_slist_remove (theme->custom_stylesheets, stylesheet);
g_signal_emit (theme, signals[STYLESHEETS_CHANGED], 0);
/* We need to remove the entry from the hashtable after emitting the signal
* since we might still access the files_by_stylesheet hashtable in
* _st_theme_resolve_url() during the signal emission.
*/
g_hash_table_remove (theme->stylesheets_by_file, file);
g_hash_table_remove (theme->files_by_stylesheet, stylesheet);
cr_stylesheet_unref (stylesheet);
g_signal_emit (theme, signals[STYLESHEETS_CHANGED], 0);
}
/**

View File

@ -231,8 +231,7 @@ st_viewport_dispose (GObject *object)
static void
st_viewport_allocate (ClutterActor *actor,
const ClutterActorBox *box,
ClutterAllocationFlags flags)
const ClutterActorBox *box)
{
StViewport *viewport = ST_VIEWPORT (actor);
StViewportPrivate *priv =
@ -259,14 +258,14 @@ st_viewport_allocate (ClutterActor *actor,
* may not match the minimum sizes reported by the layout manager. When that
* happens, the content box needs to be adjusted to match the reported minimum
* sizes before being passed to clutter_layout_manager_allocate() */
clutter_actor_set_allocation (actor, box, flags);
clutter_actor_set_allocation (actor, box);
content_box = viewport_box;
content_box.x2 += MAX (0, min_width - avail_width);
content_box.y2 += MAX (0, min_height - avail_height);
clutter_layout_manager_allocate (layout, CLUTTER_CONTAINER (actor),
&content_box, flags);
&content_box);
/* update adjustments for scrolling */
if (priv->vadjustment)

View File

@ -371,8 +371,7 @@ st_widget_get_preferred_height (ClutterActor *self,
static void
st_widget_allocate (ClutterActor *actor,
const ClutterActorBox *box,
ClutterAllocationFlags flags)
const ClutterActorBox *box)
{
StThemeNode *theme_node = st_widget_get_theme_node (ST_WIDGET (actor));
ClutterActorBox content_box;
@ -383,7 +382,7 @@ st_widget_allocate (ClutterActor *actor,
* manager, meaning that we can't modify it for children only.
*/
clutter_actor_set_allocation (actor, box, flags);
clutter_actor_set_allocation (actor, box);
st_theme_node_get_content_box (theme_node, box, &content_box);
@ -391,8 +390,7 @@ st_widget_allocate (ClutterActor *actor,
* currently installed layout manager */
clutter_layout_manager_allocate (clutter_actor_get_layout_manager (actor),
CLUTTER_CONTAINER (actor),
&content_box,
flags);
&content_box);
}
/**

View File

@ -9,6 +9,7 @@
"finish-args": [
"--share=ipc", "--socket=fallback-x11",
"--socket=wayland",
"--talk-name=org.gnome.SessionManager",
"--talk-name=org.gnome.Shell.Extensions"
],
"build-options": {

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