Compare commits

..

296 Commits

Author SHA1 Message Date
ebe071bd50 Bump version to 3.20.1
Update NEWS.
2016-04-13 18:46:38 +02:00
2edfd458b7 Update Arabic translation 2016-04-10 20:28:02 +02:00
3b750aa815 Added Bulgarian translation 2016-04-09 08:30:01 +03:00
d96f97e55a Update Persian translations 2016-04-08 20:46:03 +04:30
55ac2f46ba Updated Friulian translation 2016-04-08 09:31:04 +00:00
262c04ab91 Updated Friulian translation 2016-04-05 20:14:39 +00:00
c80e7784fb Updated Friulian translation 2016-04-02 23:34:03 +00:00
763567377f Updated Friulian translation 2016-03-31 08:56:25 +00:00
ea9dcbf8b7 Updated Friulian translation 2016-03-31 08:46:12 +00:00
2b383bf73e Updated Friulian translation 2016-03-31 06:40:06 +00:00
b8dcbfebb2 Updated Friulian translation 2016-03-30 22:18:45 +00:00
a257aa35d5 Updated Friulian translation 2016-03-30 22:09:08 +00:00
941513b280 st: Fix offscreen leak if cogl_framebuffer_allocate fails
If cogl_framebuffer_allocate fails in _st_create_shadow_pipeline_from_actor, the
CoglOffscreen* that was allocated earlier in the function is leaked.

https://bugzilla.gnome.org/show_bug.cgi?id=735705

Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
2016-03-30 15:59:10 -04:00
a9bb0558bc Updated Czech translation 2016-03-30 08:27:21 +02:00
58834b80d7 update zh_CN translation 2016-03-26 15:13:42 +08:00
b125a0e371 Updated Vietnamese translation
Signed-off-by: Trần Ngọc Quân <vnwildman@gmail.com>
2016-03-26 13:43:56 +07:00
980ac0da8a Updated Friulian translation 2016-03-24 22:11:37 +00:00
f15fb0bd73 Updated Chinese (Taiwan) translation 2016-03-24 17:08:39 +00:00
7d25592165 Updated Basque language 2016-03-23 20:56:09 +01:00
9ee36f2b71 Updated Slovenian translation 2016-03-22 22:27:08 +01:00
f3e226103f Updated Ukrainian translation 2016-03-22 22:31:00 +02:00
a03e5662e2 Bump version to 3.20.0
Update NEWS.
2016-03-22 18:14:58 +01:00
16bb3efeb9 Updated Japanese translation 2016-03-21 02:44:48 +00:00
e01d867e69 Updated Danish translation 2016-03-20 23:45:33 +01:00
1d4dfd7d5f Update Latvian translation 2016-03-20 21:27:04 +02:00
da05d1d864 Updated French translation 2016-03-20 02:13:36 +00:00
6499424eba Updated Turkish translation 2016-03-19 18:57:04 +00:00
824a602963 Updated Swedish translation 2016-03-18 10:12:11 +00:00
0092d8fff3 Updated Italian translation 2016-03-17 20:21:40 +00:00
5fbe454836 Updated Kazakh translation 2016-03-17 03:39:25 +00:00
23a59d387b Updated Korean translation 2016-03-16 19:50:25 +00:00
6b2a68e553 Bump version to 3.19.92
Update NEWS.
2016-03-16 19:03:53 +01:00
82950ecea0 telepathyClient: Acknowledge messages before closing
While a channel has pending messages, it will pop up again when
dismissed. That is clearly not what users expect, so clear them
out first before closing a channel.

https://bugzilla.gnome.org/show_bug.cgi?id=747991
2016-03-16 18:59:44 +01:00
2da4df219c Updated Russian translation 2016-03-13 21:05:14 +00:00
8b5597fd8d Updated Lithuanian translation 2016-03-13 21:21:30 +02:00
82ae06ad55 Updated Brazilian Portuguese translation 2016-03-13 16:16:19 +00:00
c594b66a2a [l10n] Updated Catalan translation 2016-03-13 14:47:13 +01:00
13e3318e4d Updated Finnish translation 2016-03-13 10:33:44 +00:00
4aa4bb4a6a Updated Slovenian translation 2016-03-12 22:04:47 +01:00
4a74df86e2 Updated Greek translation 2016-03-12 12:38:15 +00:00
30ebc9c241 Updated German translation 2016-03-12 12:33:42 +00:00
e0f6cf538d Updated Galician translations 2016-03-12 13:16:26 +01:00
ba71382c72 Updated Spanish translation 2016-03-11 15:31:51 +00:00
87eb0d7e2f Updated Hebrew translation 2016-03-11 14:51:10 +02:00
da199242b2 theme: Actually apply style changes
Commit e86c2826e updated the SASS submodule without actually applying
the changes to the generated CSS.

https://bugzilla.gnome.org/show_bug.cgi?id=762480
2016-03-11 11:09:19 +01:00
5e3d378667 Updated Hungarian translation 2016-03-11 06:48:23 +00:00
a6d2735373 Updated Serbian translation 2016-03-11 02:57:07 +01:00
2ea435a928 Updated Slovak translation 2016-03-10 18:21:12 +00:00
75ba75900c extensionPrefs: Stop using custom CSS
GTK+ now has a documented CSS class for circular buttons that we can
use for the preference buttons instead of custom CSS.
2016-03-10 18:16:33 +01:00
7bacf4e344 Updated Polish translation 2016-03-10 17:27:29 +01:00
258993d8ad Updated Czech translation 2016-03-10 16:35:36 +01:00
ff19e411a2 location: Style reason label
https://bugzilla.gnome.org/show_bug.cgi?id=762480
2016-03-10 15:24:21 +00:00
e86c2826ef Update to latest gnome-shell-sass
https://bugzilla.gnome.org/show_bug.cgi?id=762480
2016-03-10 15:24:21 +00:00
64741e41df location: Replace description w/ privacy note
https://bugzilla.gnome.org/show_bug.cgi?id=762480
2016-03-10 14:51:32 +00:00
fceac27412 Updated Danish translation 2016-03-06 19:50:19 +01:00
0a394799da Updated Friulian translation 2016-03-06 14:05:09 +00:00
b83f2c0e33 Updated Dutch translation 2016-03-05 21:57:19 +01:00
225f825faf Updated Slovenian translation 2016-03-05 20:45:01 +01:00
ed054f4f40 Updated Korean translation 2016-03-05 12:49:32 +00:00
a1244a9b26 Update Latvian translation 2016-03-03 22:08:36 +02:00
3a3714f4ff Bump version to 3.19.91
Update NEWS.
2016-03-03 17:13:03 +01:00
be483c4137 legacyTray: Style the slider's child, not the slider
This avoids jiggling when showing/hiding the tray. Based on a
suggestion from maxnevesnunes@gmail.com in bug 750022.

https://bugzilla.gnome.org/show_bug.cgi?id=747957
2016-03-03 17:09:47 +01:00
3492121c3f location: Only ask user once
Let's make it really simple and ask user interactively, once. This
simplifies things for:

* Privacy panel of gnome-control-center as it doesn't have to filter
  applications.

* Apps: If they are denied access, they can simply point users to
  privacy panel of gnome-control-center since they can be sure location
  access for the app can be enabled in there.

Also it's less annoying to user. Before this patch, if they denied
access to application, they had to keep doing that at least each time
they launched the application.

https://bugzilla.gnome.org/show_bug.cgi?id=762559
2016-03-03 16:06:20 +00:00
364f1453c1 Updated Hebrew translation 2016-03-03 14:52:51 +02:00
9392e50cf1 Updated Russian translation 2016-03-02 22:15:25 +00:00
f60a6ab465 Updated Lithuanian translation 2016-03-02 20:52:50 +02:00
f3a92d558d Update Arabic translation 2016-03-02 14:45:02 +04:00
d387d4a60d Update zh_CN translation 2016-03-02 13:50:42 +08:00
4503ca4ca0 Update zh_CN translation 2016-03-02 13:47:56 +08:00
eeb10c0ce3 Updated Czech translation 2016-03-01 10:51:13 +01:00
c69fcc2ef8 Bugfix in Afrikaans (af) translation 2016-03-01 08:51:00 +02:00
7d67d88ae8 Updated translation for Afrikaans (af) 2016-02-29 19:52:58 +02:00
310622b14e Updated Kazakh translation 2016-02-29 09:26:51 +00:00
00065b84e1 Updated Hungarian translation 2016-02-28 16:43:16 +00:00
4f7a8902f8 Updated Occitan translation 2016-02-27 18:48:31 +00:00
d20a6e0988 Mark an invalid string in the Irish translation as fuzzy
Apparently, javascript-format in gettext doesn't support reversing
the order of variables with %1$s, and this string trips validation.
2016-02-27 18:47:34 +01:00
96fa7b7e77 Update Catalan translation 2016-02-27 16:36:48 +01:00
61e4d40852 Updated Swedish translation 2016-02-27 13:33:58 +00:00
cc826f77fb Updated German translation 2016-02-26 14:17:51 +00:00
1de288c5bb build: Fix build with clang -Werror
https://bugzilla.gnome.org/show_bug.cgi?id=755659
2016-02-26 02:06:55 +08:00
fe986faa2d Updated Greek translation 2016-02-25 09:48:13 +00:00
f11b404622 Updated Galician translations 2016-02-23 16:24:15 +01:00
508668107b st-entry: Disable middle-click-paste when entry is not editable
Should only allow pasting the primary selection when the entry is
editable.

https://bugzilla.gnome.org/show_bug.cgi?id=762507
2016-02-23 06:48:50 -06:00
674454621f Updated Ukrainian translation 2016-02-23 13:08:54 +02:00
2c907bd422 Updated Chinese (Taiwan) translation 2016-02-23 02:52:30 +00:00
4eb6c0c4ee location: Put app permission in GNOME table
Alex told me that since it's not geoclue but rather GNOME-components
storing/accessing app permissions, it's better if we put it under
'gnome' rather than generic 'desktop' table.
2016-02-22 22:55:09 +00:00
dd2eff2b6f Updated Spanish translation 2016-02-22 21:26:18 +01:00
d8960b396b windowManager: Only animate dimming changes when necessary
Now that we no longer skip dimming/undimming windows while showing
the overview, we can still save a bit of work by changing the dimming
without animation while the window is hidden.

https://bugzilla.gnome.org/show_bug.cgi?id=762475
2016-02-22 19:42:57 +01:00
4c29604e1e windowManager: Always check dimming when an attached modal opens/closes
We skip window animations while the overview is shown (and the window
group is hidden) to avoid unnecessary work. However when an attached
modal dialog is opened or closed, this involves checking whether the
parent window should be dimmed - skipping that test means that we can
simply fail to dim or undim a window altogether, so do that check
unconditionally.

https://bugzilla.gnome.org/show_bug.cgi?id=762475
2016-02-22 19:42:57 +01:00
ede0bf2d88 messageList: Add missing import
We lost that when code was split out from calendar.js ...
2016-02-22 19:33:17 +01:00
893bfdf85f Updated Brazilian Portuguese translation 2016-02-20 21:51:41 +00:00
ac7a4c27fd updated Punjabi Translation 2016-02-20 12:36:37 -06:00
4fe0233139 Updated Polish translation 2016-02-20 16:29:15 +01:00
f9f9c7fe5b Updated Serbian translation 2016-02-19 20:25:26 +01:00
f1b90f174a Bump version to 3.19.90
Update NEWS.
2016-02-19 18:12:28 +01:00
3dd74c86c1 Update Catalan translation 2016-02-19 16:19:47 +01:00
0edbdc529e location: Add translator comments
https://bugzilla.gnome.org/show_bug.cgi?id=762270
2016-02-18 17:37:29 +01:00
b08523b170 Updated Slovak translation 2016-02-18 15:36:25 +00:00
cd2f8d8177 Update to latest gnome-shell-sass
The new location dialog theming comes from there.

https://bugzilla.gnome.org/show_bug.cgi?id=762119
2016-02-18 15:11:11 +00:00
a1e8c79d38 location: Ask user to authorize applications
While we could have implemented this already a while ago, this would
have been a completely false security mechanism since we had no way of
reliably identifying applications. Since now with xdg-app, we can at least
reliably identify bundled applications, let's give users a choice of
which applications in particular they are OK with giving location data
to.

While we still can't reliably identify system (non-xdg-app) applications,
it seems extremely unlikely we'll ever be able to do that (at least not
in the near future) so we'll have to trust them to not lie about their
IDs.

Next release of geoclue will take the ID of bundled application directly
from corresponding xdg-app metadata so bundled applications can't simply
lie about their IDs.

https://bugzilla.gnome.org/show_bug.cgi?id=762119
2016-02-18 15:11:11 +00:00
34fc454764 location: Add AppAuthorizer class
This class will be responsible for authorizing applications that try to
access location information. Since this is mainly targetted for xdg-app
applications, we make use of xdg-app's D-Bus API to store
per-application authorization.

https://bugzilla.gnome.org/show_bug.cgi?id=762119
2016-02-18 15:11:11 +00:00
e98a434ede location: Add dialog to ask for location data access
Add a dialog that is used in a following patch, to ask user if they want
a requesting application to gain access to their location.

Co-author: Florian Müllner <fmuellner@gnome.org>

https://bugzilla.gnome.org/show_bug.cgi?id=762119
2016-02-18 15:11:10 +00:00
02cdc065e7 media section touch ups
- make the missing album art more subtle. Negative space
  asked for sizing the box slightly larger. Don't hate me
  for using border-width for it ;)
2016-02-18 14:58:54 +01:00
77eb8f98c0 Updated Italian translation 2016-02-18 13:05:52 +00:00
68679e1e7e Updated German translation 2016-02-18 09:24:16 +01:00
05f2dbf205 Updated Polish translation 2016-02-17 22:32:49 +01:00
45779bc7be Updated Slovak translation 2016-02-17 21:01:26 +00:00
1bf27b1f18 ibusCandidatePopup: Handle relative cursor signal absence gracefully
Only recent IBus versions have support for this signal
which is used for wayland clients. In order to work
with older IBus versions we can silently ignore the
signal's absence.

https://bugzilla.gnome.org/show_bug.cgi?id=753476
2016-02-17 18:01:02 +01:00
3ecdfaffd2 calendar: Add Media section
We lost media controls outside of notification banners when
implementing the new notification designs. Reimplement this
functionality as a dedicated "Media" section in the message
list based on MPRIS.

https://bugzilla.gnome.org/show_bug.cgi?id=756491
2016-02-17 15:15:16 +01:00
ee8fd1e613 calendar: Split out message list base classes
Currently both the base classes for messages/sections and the message
list itself that instantiates the available sections are located in
the same module. As a result, it isn't possible to define sections
in a different module without introducing circular dependencies. The
Calendar module is already unwieldily large, so split it up a bit to
avoid it growing even bigger in the future.

https://bugzilla.gnome.org/show_bug.cgi?id=756491
2016-02-17 14:56:52 +01:00
ccfd5e35d6 location: Better name for a field
_proxy -> _managerProxy.

https://bugzilla.gnome.org/show_bug.cgi?id=762119
2016-02-17 13:04:16 +00:00
b2eab65a81 Updated POTFILES.in 2016-02-16 18:39:42 +01:00
00814dd159 shell: Fix another indentation warning
The compiler doesn't know about preprocessor conditionals, so indentation
changes confuse -Wmisleading-indentation.
2016-02-16 18:05:14 +01:00
57f9ffcaa7 shell: Fix an indentation issue ...
...pointed out by GCC's new -Wmisleading-indentation warning.
2016-02-16 17:35:39 +01:00
ce83f378a5 shell: Fix coding style 2016-02-16 17:35:39 +01:00
30c7545ff3 audioDeviceSelection: Add audio device selection dialog
It is not always possible to determine the type of audio device that
got plugged in. Add a system modal dialog to query the user in that
case and export in on the bus to gnome-settings-daemon.

https://bugzilla.gnome.org/show_bug.cgi?id=760284
2016-02-16 17:02:00 +01:00
a13357c2a8 ibusCandidatePopup: Add support for relative cursor positioning
IBus now provides a new method for cursor positioning where the
coordinates are relative to the focused window. This is useful for
wayland clients which don't have access to their global coordinates.

https://bugzilla.gnome.org/show_bug.cgi?id=753476
2016-02-15 18:06:53 +01:00
75dc5c16c8 appFavorites: Update Nibbles in rename list 2016-02-12 20:17:02 -06:00
acd5d70209 theme: use update icon for app grid
https://bugzilla.gnome.org/show_bug.cgi?id=761772
2016-02-12 12:12:02 +01:00
669d20bcf0 extensionPrefs: Fix prefs button 2016-02-11 15:01:53 +01:00
793a8005a5 Updated French translation 2016-02-11 08:43:48 +00:00
23b81fb241 Updated Polish translation 2016-02-06 16:17:22 +01:00
73ba9d33eb Updated Slovak translation 2016-02-05 06:37:26 +00:00
75e2a7228c Updated Friulian translation 2016-02-04 16:53:47 +00:00
91d70f2487 theme: make week numbers more legible
https://bugzilla.gnome.org/show_bug.cgi?id=683245
2016-02-01 13:16:20 +01:00
779b1ae8e5 slider: Emit a 'drag-begin' signal when starting to drag
We are already emitting a 'drag-end' signal when no more dragging
is happening, so it makes sense to emit a 'drag-begin' too when
starting, so that apps interested in implementing different logic
between those two events can easily do it without needing to deal
with the underlying 'button-press-event' signal for the actor.

https://bugzilla.gnome.org/show_bug.cgi?id=761208
2016-01-27 22:35:11 +00:00
346ffd14d7 NetworkAgent: correctly identify the VPN secret requests
The non-interactive requests for 'vpn' settings are forwarded to the UI because
it is able to talk to the auth helpers. However, the VPN requests are identified
by the connection type instead of setting type. That is incorrect and the UI
is not prepared to handle such requests; tries to construct a dialog and fails
miserably:

  Gjs-Message: JS LOG: Invalid connection type: vpn

  (gnome-shell:13133): Gjs-WARNING **: JS ERROR: Error: No property 'text' in property list (or its value was undefined)
  NetworkSecretDialog<._init@resource:///org/gnome/shell/ui/components/networkAgent.js:60
  wrapper@resource:///org/gnome/gjs/modules/lang.js:169
  _Base.prototype._construct@resource:///org/gnome/gjs/modules/lang.js:110
  Class.prototype._construct/newClass@resource:///org/gnome/gjs/modules/lang.js:204
  NetworkAgent<._handleRequest@resource:///org/gnome/shell/ui/components/networkAgent.js:724
  wrapper@resource:///org/gnome/gjs/modules/lang.js:169
  NetworkAgent<._newRequest@resource:///org/gnome/shell/ui/components/networkAgent.js:715
  wrapper@resource:///org/gnome/gjs/modules/lang.js:169

https://bugzilla.gnome.org/show_bug.cgi?id=760999
2016-01-26 17:31:34 +01:00
558b51f555 Updated Hungarian translation 2016-01-25 11:16:10 +00:00
ef18b7ea25 Updated Bulgarian translation 2016-01-22 07:45:32 +02:00
0044e225aa Bump version to 3.19.4
Update NEWS.
2016-01-21 21:50:35 +01:00
c25c143b24 st-widget: Avoid passing NULL to atk_object_get_role()
This never worked since the code landed but apparently no-one noticed
until now.

The intent here is to return the accessible's default role if none has
been explicitly set on the StWidget instance.

https://bugzilla.gnome.org/show_bug.cgi?id=760945
2016-01-21 16:49:06 +01:00
b87da87252 st-widget: Fix a potentially infinite recursion
Commit ffe4eaf00d changed this code to
call st_widget_get_accessible_role() instead of using the value
directly which would be an infinite recursion if that function didn't
have a bug. As it is, this just resulted in

CRITICAL **: atk_object_get_role: assertion 'ATK_IS_OBJECT
(accessible)' failed

https://bugzilla.gnome.org/show_bug.cgi?id=760945
2016-01-21 16:49:05 +01:00
f9258bb5e3 Updated Russian translation 2016-01-15 10:17:59 +00:00
3d747b00e6 tone down modal dialogs borders
https://bugzilla.gnome.org/show_bug.cgi?id=760577
2016-01-13 15:04:49 +01:00
450345b4d0 style week numbers
https://bugzilla.gnome.org/show_bug.cgi?id=683245
2016-01-13 14:49:23 +01:00
7563e1ebcd Updated Lithuanian translation 2016-01-10 18:12:39 +02:00
f96cc4dd69 Updated Turkish translation 2016-01-09 21:33:23 +00:00
c65a9c4d2e authPrompt: Do not allow bypassing disabled Sign In button
The Next and Sign In buttons are disabled when the username/password
field is empty. However, the user can still bypass this button by
pressing the enter key, leading to some odd glitches with the log in
for 'Not Listed?' users.

This is easy to fix by simply not progressing to the next screen when
the button is disabled.

https://bugzilla.gnome.org/show_bug.cgi?id=746180
2016-01-07 17:19:04 -06:00
c01bd37edc Updated Norwegian bokmål translation. 2016-01-07 22:59:36 +01:00
021cecbce2 NetworkAgent: Fix double-unref in get_secrets_keyring_cb()
In get_secrets_keyring_cb, we own a ref on the 'attributes' hash table
from secret_item_get_attributes), and a ref on the 'secret' object (from
secret_item_get_secret(), but in the SHELL_KEYRING_SK_TAG case, we unref
these once before breaking out of the loop, and the second time after
breaking out of the loop.

https://bugzilla.gnome.org/show_bug.cgi?id=759708
2016-01-07 15:27:42 +01:00
2a0cb7ff05 Updated Czech translation 2016-01-04 23:55:22 +01:00
0085a94706 Add flag no-javascript-format for date string 2016-01-04 19:41:49 +01:00
5db38194dc Updated German translation 2016-01-02 16:21:17 +00:00
2a26143149 Updated Indonesian translation
(cherry picked from commit cca01e3f02)
2016-01-02 12:12:53 +00:00
62f22557aa Updated Brazilian Portuguese translation 2015-12-31 18:39:27 +00:00
516ea5a02e Updated Lithuanian translation 2015-12-20 14:54:29 +02:00
9154471aba Updated Lithuanian translation 2015-12-20 14:51:57 +02:00
fbf6746acf Bump version to 3.19.3
Update NEWS.
2015-12-17 01:35:39 +01:00
a36686a6aa extensionSystem: Fix updating extension list on session update
Before reenabling all extensions, we update the list of enabled extensions
to catch any changes that happened while extensions were enabled. However
this is currently broken as onEnabledExtensionsChanged() is a nop while
disabled, so just call getEnabledExtensions() directly.
2015-12-16 23:50:42 +01:00
fd837d74d1 Updated Czech translation 2015-12-06 23:00:19 +01:00
fd57334395 Updated Czech translation 2015-12-06 22:53:28 +01:00
85100cb65f Updated Kazakh translation 2015-12-06 14:34:14 +00:00
c70f6278d6 Updated Slovak translation 2015-12-06 12:04:43 +00:00
e573441bac Updated Turkish translation 2015-12-05 23:34:42 +00:00
5ed9571b37 Updated Ukrainian translation 2015-12-05 16:56:48 +02:00
9d203ddc0f workspace: Keep track of the dragging touch sequence
draggable.startDrag() is called directly here (i.e. manualMode is not set),
we must keep track of the touch event and pass it to startDrag() then.

https://bugzilla.gnome.org/show_bug.cgi?id=756748
2015-12-04 12:16:56 +01:00
508a13ae72 dnd: Implement touch event support
We need to keep track of the pointer emulating touch sequence. In order
to have events properly redirected on touch devices, the
Clutter.grab_pointer and ungrab_pointer() have been replaced by the grab()
and grab_sequence() ClutterInputDevice methods, one or the other is used
depending on the device triggering DnD.

An extra "sequence" argument has been added to startDrag, passing null here
will resort to pointer grabs.

This is enough to make thumbnails in the WorkspaceBox draggable through
touch.

https://bugzilla.gnome.org/show_bug.cgi?id=756748
2015-12-04 11:50:13 +01:00
c0b50cbdf2 workspaceThumbnail: Enable activation of thumbnails in the WorkspaceBox
We need a separate handler for TOUCH_BEGIN/END events.

https://bugzilla.gnome.org/show_bug.cgi?id=756748
2015-12-04 11:50:13 +01:00
06f78549bd workspaceThumbnail: Enable activation of window clones on touch
We must handle the TOUCH_END event separately for the evdev input
backend.

https://bugzilla.gnome.org/show_bug.cgi?id=756748
2015-12-04 11:50:13 +01:00
67afd7a6d8 popupMenu: Fix touch handling of PopupSubMenuMenuItem
It overrides ::button-release-event in order to implement the
hidden/shown toggling, it must do the same on TOUCH_END, otherwise
menus stay shown on touch.

https://bugzilla.gnome.org/show_bug.cgi?id=756748
2015-12-04 11:50:13 +01:00
ffa8c2f2b1 workspacesView: Return from overview when tapping on an empty workspace
This works for pointers and touch on X11, there is however no pointer
emulation on evdev, so touch triggers ::clicked with button==0 which
is ignored.

https://bugzilla.gnome.org/show_bug.cgi?id=756748
2015-12-04 11:50:12 +01:00
3803a880e8 loginDialog: Reconsider user for user list when user changes
Generally a user-changed operation will be uninteresting, but if the
user is currently in the user list and the account changes to locked, we
want to remove it from the list, or if the user is not in the list and
the account changed to unlocked, we want to add it to the list. This
fixes the case where a new user account created in gnome-control-center
does not appear in the user list. The password mode is set in the new
account immediately after it is created, but the operations are not
atomic, so the login dialog considers the new user account when it is
still locked and rejects it from being displayed, then immediately
afterwards the account is unlocked. This commit causes the login dialog
to show the account when this occurs.

The containsUser() check here is not strictly necessary, but reduces
spurious calls to addUser() and removeUser(), since there's no easy way
to check if the locked status of the account has changed (as it's much
easier to connect to one signal on the UserManager than to
notify::locked on each User object).

https://bugzilla.gnome.org/show_bug.cgi?id=758568
2015-12-02 18:23:36 +01:00
965aedb0bb background: Reload animation on timezone changes
Animated backgrounds are based on a start time in local time - in case
of a timezone change, that time is no longer accurate. To fix, we need
to either make BGSlideShow aware of timezone changes (and notify us to
update the animation), or just reload the animation - timezone changes
should be a rare event, so go with the simpler second option.

https://bugzilla.gnome.org/show_bug.cgi?id=758939
2015-12-02 17:18:39 +01:00
80911535a7 altTab: Fix window-switcher on HiDPI displays
We need to take the scale factor into account to avoid tiny window
previews on HiDPI.

https://bugzilla.gnome.org/show_bug.cgi?id=758676
2015-12-02 10:31:36 +01:00
ca401d5036 build: Bump gsettings-desktop-schemas requirement
We need 3.19.2 for the show-battery-percentage key.
2015-12-01 16:40:55 +01:00
a1c091d98d Bump version to 3.19.2
Update NEWS.
2015-11-25 00:34:56 +01:00
e1e08f0a68 loginDialog: Fix TypeError when user is deleted
LoginDialog has a private _user, but UserListItem has a public user.
Easy to get wrong since _user would be the right thing to type in 90% of
this file.
2015-11-23 17:44:49 -06:00
1a4f629554 Updated Russian translation 2015-11-23 19:20:29 +00:00
4113be770b Updated Spanish translation 2015-11-23 19:02:49 +01:00
cf3f4850b8 Updated Esperanto translation 2015-11-23 00:39:12 +01:00
14f374096a Updated Czech translation 2015-11-22 13:05:02 +01:00
6fef5c37f7 Updated Portuguese translation 2015-11-21 09:03:47 +00:00
6e7455aa1e Updated Hebrew translation 2015-11-19 20:38:03 +02:00
03bf6fa399 theme-node: Use the correct framebuffer in paint_* methods
Since commit 48a54e8ac4, paint() has an explicit framebuffer parameter,
however a couple of submethods are still using the draw framebuffer,
which breaks when rendering to an offscreen buffer.
2015-11-19 14:08:14 +01:00
f777e761c0 st: Fix some more cogl deprecations
Replace the remaining cogl_set_source* calls with the explicit
pipeline/framebuffer API.
2015-11-19 14:07:24 +01:00
31201d9618 power: Add battery percentage label
An oft requested feature, available in 4 separate extensions to
gnome-shell, and in most mobile OSes.

https://bugzilla.gnome.org/show_bug.cgi?id=735771
2015-11-19 14:04:22 +01:00
d95d78ac15 browser-plugin: Do not create a new object every time NPPVpluginScriptableNPObject is requested
Merge PluginData and PluginObject structs into a single one and create
the scriptable object associated to the plugin instance in NPP_New. Then,
when NPPVpluginScriptableNPObject is requested we just return the
scriptable object associated to the given instance. This caused the
crashes in NPN_InvokeDefault with WebKit, since we had multiple
scriptable objects for the same instance, but only one of those objects
had the onchange listener installed. Firefox seems to cache the
scriptable object for the instance and therefore NPPVpluginScriptableNPObject
is requested only once.

https://bugzilla.gnome.org/show_bug.cgi?id=737932
2015-11-17 13:17:31 -06:00
bef4f17c49 Updated Spanish translation 2015-11-17 18:52:52 +01:00
f4b7ab0cb6 browser-plugin: Set windowless mode and don't claim to need XEmbed
NPAPI plugins are windowed by default, so we need to set
NPPVpluginWindowBool value to FALSE on startup. This way the browser
will not create a GtkSocket for a GtkPlug that we are not going to
create. It doesn't make sense to claim that we need XEmbed either.

https://bugzilla.gnome.org/show_bug.cgi?id=757940
2015-11-17 11:35:03 -06:00
a180dde01c Updated Scottish Gaelic translation 2015-11-17 17:10:55 +00:00
385c918e2e Updated Scottish Gaelic translation 2015-11-17 16:10:24 +00:00
d7401c8646 Revert "power: Stop making time estimates"
This reverts commit 6c08799c7b.

See https://bugzilla.gnome.org/show_bug.cgi?id=708472#c87
2015-11-17 13:16:45 +01:00
a456d5eb19 bluetooth: Remove unused imports
https://bugzilla.gnome.org/show_bug.cgi?id=758220
2015-11-17 11:25:02 +01:00
6c08799c7b power: Stop making time estimates
Any time estimates we can come up with are notoriously unreliable;
even on devices that report correct (dis)charging rates, any change
in workload, screen brightness etc. can throw our estimate off by
a huge amount. This is further compounded by bad firmware and battery
firmware which reports inaccurate data as neither Windows nor Android do
not use that data.

So instead, limit ourselves to only showing the current percentage
and leave its interpretation to the user.

As an added bonus, we end up with shorter strings that are less likely
to cause problems with ellipsization when translated.

https://bugzilla.gnome.org/show_bug.cgi?id=708472
2015-11-17 10:58:45 +01:00
8d7bb6496c autorunManager: Follow Files' notification policy
Builtin chat and network notifications already follow the notification
policy of appropriate applications, it makes sense to do the same for
autorun notifications to give users control over hotplug notifications
in Settings.
2015-11-17 00:00:31 +01:00
f0496a2d3c Added Scottish Gaelic translation 2015-11-16 19:00:46 +00:00
6664553b7e Revert "browser-plugin: Set windowless mode and don't claim to need XEmbed"
This reverts commit a52c91e9e5.

https://bugzilla.gnome.org/show_bug.cgi?id=758035
2015-11-16 10:57:03 -06:00
2a950ca3b3 Updated Norwegian bokmål translation. 2015-11-15 20:00:58 +01:00
463cd6382c Updated Finnish translation 2015-11-15 16:53:02 +00:00
78db025b10 appFavorites: Add gnome-terminal to the rename list
https://bugzilla.gnome.org/show_bug.cgi?id=745626
2015-11-14 19:53:41 +01:00
f3265c28a9 Updated Portuguese translation 2015-11-14 07:59:17 +00:00
a6e5e459d3 Updated Hebrew translation 2015-11-13 12:29:54 +02:00
9ba399bf18 power: Add thin space between digits and percentage sign
As mentioned by Matthias Clasen on IRC, we should have a thin space
between the percentage digits and the sign itself.

https://bugzilla.gnome.org/show_bug.cgi?id=757816
2015-11-12 16:19:30 +01:00
a52c91e9e5 browser-plugin: Set windowless mode and don't claim to need XEmbed
NPAPI plugins are windowed by default, so we need to set
NPPVpluginWindowBool value to FALSE on startup. This way the browser
will not create a GtkSocket for a GtkPlug that we are not going to
create. It doesn't make sense to claim that we need XEmbed either.

https://bugzilla.gnome.org/show_bug.cgi?id=757940
2015-11-12 12:11:56 +01:00
9a7b47c23f st: Fix Gaussian kernel calculation
The result of subtracting unsigned operands is unsigned, which throws
off our calculation in case it should be negative.

This partly reverts 18b6f13395.

https://bugzilla.gnome.org/show_bug.cgi?id=757779
2015-11-12 01:02:05 +01:00
18f7d20006 Update zh_CN translations 2015-11-11 00:18:26 +08:00
3f0ee88657 browser-plugin: link with -Wl,-z,nodelete
This ensures that the module will not be unloaded, since GObject types
registered statically can't be reloaded. This should fix crashes with
browsers that correctly unload the plugins.

https://bugzilla.gnome.org/show_bug.cgi?id=737932
2015-11-10 15:23:49 +01:00
c634718dfa shell: Fix crash in polkit agent
The polkit agent does not take ownership of the request's cancellable,
so it may no longer be valid after the request finished and we need
to disconnect it before that. Before the GTask port in 8b4249ef2,
it was safe to do that when freeing the request data because requests
completed in an idle, but now we need to do it before returning the
task result.

https://bugzilla.gnome.org/show_bug.cgi?id=757668
2015-11-10 11:56:37 +01:00
df6b31de05 Updated POTFILES.in 2015-11-10 01:07:42 +01:00
b8e29ae8c7 data: merge gnome-shell.desktop and gnome-shell-wayland.desktop into one file
We can autodetect what to do based on the user's session, so drop
the separate desktop files.

This, along with some future changes, will enable us to be bus
activatable.

https://bugzilla.gnome.org/show_bug.cgi?id=741666
2015-11-09 10:37:24 -05:00
cdba8e5cea Revert "browser-plugin: try to avoid a crash"
This reverts commit faae1a028e.
2015-11-07 08:09:11 -06:00
4fccdaafb7 Updated Portuguese translation 2015-11-05 05:51:05 +00:00
df0b465e76 StTextureCache: Fix a fallout from GTask port
Set the task data that load_pixbuf_thread func expects.

https://bugzilla.gnome.org/show_bug.cgi?id=757418
2015-11-01 00:27:35 +01:00
aacdd4fd5e browser-plugin: fix spelling of GNOME 2015-10-30 17:41:16 +01:00
5f68c3a324 Bump version to 3.19.1
Update NEWS.
2015-10-29 15:50:20 +01:00
8ceae3b054 bluetooth: Show the Bluetooth menu when there were setup devices
If we detected that Bluetooth devices were setup, show the Bluetooth
menu so that users can easily turn Bluetooth back on.

This is a bit of a hack, as we cannot detect whether there is a
Bluetooth adapter at all when it's disabled, so we cannot tell whether
there were any Bluetooth devices setup, at some point. This state is
saved in the gnome-shell GSettings in the had-bluetooth-devices-setup
key.

Checking whether we saw Bluetooth devices at one point is a good
enough guess of whether there will be some in the future.

https://bugzilla.gnome.org/show_bug.cgi?id=723848
2015-10-28 11:51:07 +01:00
3fc5afaff1 Updated Czech translation 2015-10-28 10:56:48 +01:00
8b7464c648 st_theme_node_prerender_shadow: guard against failure to allocate a texture
If we are trying to render a shadow at a size that is very large in one
direction, but small in the other direction (so that we don't 9-slice
the texture), then allocating the backing texture for the offscreen
buffer may fail due to texture-size limits. Don't crash in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=757150
2015-10-27 15:51:40 -04:00
3e602b1765 calendar: Fix number formatting in some languages
Some languages require using a conversion modifier to display the day
number in a translated shape. fa_IR is affected for example.

https://bugzilla.gnome.org/show_bug.cgi?id=673235
2015-10-26 17:48:40 +01:00
5858028411 theme: tone down search entry stroke
https://bugzilla.gnome.org/show_bug.cgi?id=757011
2015-10-26 16:00:48 +01:00
2c682ace81 use osd colors for search (for classic)
https://bugzilla.gnome.org/show_bug.cgi?id=757011
2015-10-26 15:49:16 +01:00
45f3106814 Updated Romanian Translations 2015-10-25 10:19:21 +01:00
aa947f9948 Updated Romanian translation
(cherry picked from commit 9e64a1e3d6)
2015-10-24 17:02:27 +00:00
0c72d1fcbd ActivitiesButton: fix overview being toggled while still animating
Adds the missing checks for whether we should toggle the overview, on
button and key release.

https://bugzilla.gnome.org/show_bug.cgi?id=756925
2015-10-23 13:44:27 +02:00
6d22670307 Defend against failure of cairo_pattern_get_surface()
There are quite a few crashes in retrace.fedoraproject.org that are a result of
of cairo_pattern_get_surface() failing, then a subsequent call to
cairo_image_surface_get_width() crashing because no surface was returned to the
out parameter. Knowing what causes these is hard - my best guess is widgets getting
allocated at ridiculous sizes - but avoiding the crash makes sense in any case.

See https://bugzilla.redhat.com/show_bug.cgi?id=1206754

https://bugzilla.gnome.org/show_bug.cgi?id=756983
2015-10-22 15:14:55 -04:00
0b9e68e305 runDialog: Reload resource on 'rt'
Moving the default theme to a resource broke the 'rt' command;
reload the resource before the theme to fix it.

https://bugzilla.gnome.org/show_bug.cgi?id=738942
2015-10-21 20:54:30 +02:00
da8155cbe5 Updated Hungarian translation
(cherry picked from commit 10e4382a7d)
2015-10-21 06:08:52 +00:00
5b7a052e18 animation: do spinner animation with low priority
It's very unexpected that a spinner animation would
preempt idles from running.

This commit runs the spinner animation with a low
priority to ensure it doesn't take over the main
loop.

https://bugzilla.gnome.org/show_bug.cgi?id=754814
2015-10-20 17:10:06 -04:00
6f26e39082 animation: Run every 16ms not ever 14ms
Right now the spinner animation updates every 14ms.
60 frames per second would be one frame per 16.667ms,
so we're waking up more frequently than we need to.

This commit changes the wakeup to happen after 16ms.

https://bugzilla.gnome.org/show_bug.cgi?id=754814
2015-10-20 17:10:06 -04:00
489b96a310 gdm: don't emit start-session-when-ready from idle function
There's no point in delaying the emission.  We should do it
right away.

https://bugzilla.gnome.org/show_bug.cgi?id=754814
2015-10-20 17:10:06 -04:00
e65d90d624 Fix text-scaling-factor under wayland.
The text-scaling-factor GSetting was not being properly propagated
to clutter and the Pango font map; under X this is done by Clutter,
which listens to XSETTINGS directly.

https://bugzilla.gnome.org/show_bug.cgi?id=756447
2015-10-20 09:35:47 -04:00
9c74e22313 windowMenu: Ensure the source actor isn't sized 0x0
If the source actor is sized 0x0, the grabHelper will close the menu
on button release if the menu ends up flipped because in that case the
release event happens when the pointer is neither over the source
actor (since it's 0x0) or over the menu actor. A zero sized source
actor works for the non-flipped menu case because the menu's actor
itself ends up underneath the pointer.

https://bugzilla.gnome.org/show_bug.cgi?id=756605
2015-10-20 15:00:33 +02:00
48a1fce151 Add RLM as appropriate 2015-10-18 17:22:24 +04:00
83e7f6f496 windowManager: fix fullscreen clone being left around
If we get another effect on the same actor, we should make sure to
remove the clone through the "overwrite" methods provided by Tweener, or
there will be a race that might end up with a stray clone being left
around.

https://bugzilla.gnome.org/show_bug.cgi?id=756714
2015-10-16 13:47:14 -07:00
3c5c3a6597 Fixed some issues reported by Bjørn Lie in bug 740906. 2015-10-16 18:10:11 +02:00
1c3ea1649f windowManager: Fix fullscreen animations on dualscreen
The translation should describe the difference between the fullscreened
and unfullscreened position of the window - however we are currently
assuming a fullscreen position of (0, 0) instead of the monitor's origin,
which causes glitches on dualscreen setups.

https://bugzilla.gnome.org/show_bug.cgi?id=756697
2015-10-16 15:50:39 +02:00
48a54e8ac4 theme-node: Pass an explicit framebuffer to paint()
This allows us to paint to an offscreen buffer without using the
deprecated cogl_push_framebuffer/cogl_pop_framebuffer functions.
2015-10-16 00:16:38 +02:00
113a854048 st: Rename *material to *pipeline
... since the last commit changed the type from CoglMaterial to
CoglPipeline.
2015-10-15 23:42:19 +02:00
882f5fa79e st: Fix a bunch of cogl deprecations 2015-10-15 23:05:11 +02:00
9acdb8012c tray: Get rid of deprecation warnings
gdk_window_set_composited() is deprecated, and we don't need it as
we end up setting it to the default anyway.
We do need gtk_widget_set_double_buffered() though, which has been
deprecated as well because it is only meaningful on X11 - but so
is XEmbed, so just shut up that warning.
2015-10-15 23:05:11 +02:00
731d64e0e4 tray: Don't use gdk_display_supports_composite()
Composite is a hard requirement for mutter's compositor, so if we get
to the point of managing the tray, we already know that the extension
is supported. So let's get rid of yet another deprecation warning.
2015-10-15 23:05:11 +02:00
ccf1bd9f27 tray-manager: Don't use GdkColor
It has been deprecated for a while in favor of GdkRgba, though in our
case translating ClutterColors to an intermediate color type before
setting _NET_SYSTEM_TRAY_COLORS is a bit silly, so just move to
ClutterColor as the rest of the code base.
2015-10-15 23:05:11 +02:00
c164a8fe03 st: Use ClutterCanvas for StDrawingArea
Stop chasing down cogl deprecations by delegating all texture
handling to a ClutterCanvas.
2015-10-15 23:01:11 +02:00
1a39666f7c shell: Port to GTask 2015-10-15 22:59:49 +02:00
f2731d4d6a st: Port to GTask
GSimpleAsyncResult has been deprecated for a while.
2015-10-15 22:59:48 +02:00
3e63fb7abe Port screenshot to GTask 2015-10-15 22:59:48 +02:00
8b4249ef26 Port polkit agent to GTask 2015-10-15 22:59:48 +02:00
bf0be6ef12 hotplug-sniffer: Port to GTask
GSimpleAsyncResult is deprecated.
2015-10-15 22:59:48 +02:00
294702d3f1 shell: Use G_DECLARE_*_TYPE macros
Cut down on boilerplate by using the (no longer that) new helper
macros. We don't care about breaking ABI in private libraries, so
use G_DECLARE_FINAL_TYPE even where the class struct used to be
exposed in the header, except for types we inherit from ourselves
(obviously) or where the class exposes any vfuncs (where changes
could affect inheritance in extensions).
2015-10-15 22:58:28 +02:00
58f3b7c748 shell: Drop questionable vfuncs
Both ShellAppSystem and ShellTrayManager are used as singletons, which
significantly reduces the usefulness of inheritance - it's unlikely for
extensions to inherit from them anyway (AND use any of the vfuncs), so
drop them to allow defining the types as final in an upcoming commit.
2015-10-15 22:13:18 +02:00
e25502aeb2 shell: Use G_DEFINE_TYPE_WITH_PRIVATE() and friends 2015-10-15 22:03:06 +02:00
ffe4eaf00d st: Use G_DECLARE_*_TYPE
Cut down on boilerplate by using the (no longer that) new helper
macros. We don't care about breaking ABI in private libraries, so
use G_DECLARE_FINAL_TYPE even where the class struct used to be
exposed in the header, except for types we inherit from ourselves
(obviously) or where the class exposes any vfuncs (where changes
could affect inheritance in extensions).
2015-10-15 22:02:35 +02:00
2f88a7a1e1 st: Drop vfuncs from StThemeNodeTransition
They are unused, as we don't use them ourselves and the class is not
exposed to introspection. Drop them to allow defining the type as final
in an upcoming commit.
2015-10-15 21:43:08 +02:00
cd7d564125 st: Use G_DEFINE_TYPE_WITH_PRIVATE() and friends 2015-10-15 21:05:22 +02:00
ede81017ec hotplug-sniffer: Modernize GObject usage 2015-10-15 21:04:07 +02:00
a539e6236a calendar-server: Modernize GObject usage 2015-10-15 21:04:07 +02:00
90b7710834 Bump version to 3.18.1
Update NEWS.
2015-10-15 19:56:47 +02:00
f8cc8f1dc1 theme: Use font-relative sizes for menu widths
For menus, it makes more sense to pick a width that fits a reasonable amount
of content rather than a fixed amount of screen estate, so use font-relative
sizes instead of pixel values.

https://bugzilla.gnome.org/show_bug.cgi?id=754581
2015-10-15 19:56:44 +02:00
f8e5e3e435 aggregateMenu: Ignore ellipsizable items in width-request
Some labels in the system status menu - namely network names - are out
of our control, and may thus grow the width "infinitively" unless we
restrict the menu width. So far we have been doing this by setting a
fixed width or max-width, but any value we put there might end up
being too restrictive in some locales. Instead, request a width that
fits all the labels we want to show unellipsized and use that instead
of an arbitrary limit.

https://bugzilla.gnome.org/show_bug.cgi?id=708472
2015-10-15 19:56:03 +02:00
508e751ffd box-layout: Support replacing layout manager
There is nothing preventing callers from replacing the internal
layout manager, and as long as the replacement is a (or derives
from) ClutterBoxLayout, everything should work fine except for
losing a bit of automatic property mapping - and the latter is
easily fixable by moving the setup out of the constructor.

https://bugzilla.gnome.org/show_bug.cgi?id=708472
2015-10-15 19:21:15 +02:00
207c847762 windowManager: add animations for fullscreen and unfullscreen
We use the newly introduced feature from Mutter to hook up our own
fullscreen and unfullscreen animations.
To give the illusion of a transition as smooth as possible, we create a
snapshot of the current contents of the actor before its state is
changed, and crossfade between the two states while the size changes.

https://bugzilla.gnome.org/show_bug.cgi?id=707248
2015-10-14 12:10:58 -04:00
3c980566d3 Updated Basque language 2015-10-14 12:26:29 +02:00
50b59e0ca6 batch: Add old commit message as comment at top of file
This is a lightly-edited version of Ray's commit message in
4902a600d5.
2015-10-13 14:43:39 -05:00
14c52bb00a dash: Ensure style for icon size computation
StIcon will skip loading the texture when its theme node is unset (which
may happen on style changes while the widget is hidden). While our size
request to compute the dash icon size will create the icon's theme node
if necessary (and of all its parents), a missing texture can still throw
off our computation.
Make sure this doesn't happen by ensuring the icon's style first, so the
texture is updated in response to StWidget::style-changed if necessary.

https://bugzilla.gnome.org/show_bug.cgi?id=745649
2015-10-13 20:21:44 +02:00
9720b32987 dash: Revert mislead cleanup
When adjusting dash icon sizes, we compute the icon padding by subtracting
the configured icon size from the first icon actor's preferred size. To
make sure that the preferred size correctly corresponds to the current
dash icon size even while the icon is animating, we enforce the size
before the size request. For that we used to temporarily manipulate
the icon texture size directly, but commit e92d204d42 cleaned this
up to use the setIconSize() method instead.
This does not work however, as the icon actor's iconSize property will
always match the dash iconSize property, making the method a noop. So
go back to the original approach of enforcing the texture size to make
sure we always base our computations on correct values.

https://bugzilla.gnome.org/show_bug.cgi?id=745649
2015-10-13 20:21:44 +02:00
674ae262c8 Change incorrect parameter names
These were renamed a while ago.
2015-10-12 15:38:44 -04:00
db297e7fdb Don't crash on accesses to stale window-backed apps
The JS code could still be holding on to a reference to a window-backed app
after all windows have vanished. (For example, the dash queues an idle to
refetch apps and display them.) Avoid dying with an error message if we
attempt to activate or otherwise manipulate such a window.

https://bugzilla.gnome.org/show_bug.cgi?id=674799
2015-10-11 15:31:39 -04:00
d57c146514 Updated Danish translation by scootergrisen 2015-10-11 18:34:51 +02:00
ec5a4328e3 Updated Danish translation 2015-10-11 16:30:56 +00:00
e4ee72c481 Update Arabic translation 2015-10-10 15:27:42 +04:00
31f1e9ff0a autorunManager: Do not mark the notification CRITICAL
There is nothing particularly critical about this notification, it
was only marked as such to get certain behavior like auto-expanding
and sticking-around to be acknowledged by the user (as it offers
more actions than the summary notification, so it is frustrating
when it goes away because it was missed).
As all notifications will now stay visible until we are sure the
users has seen them, the latter reasoning no longer applies.
Auto-expansion doesn't appear too important and may even be considered
annoying by users, so remove the CRITICAL hint now.

https://bugzilla.gnome.org/show_bug.cgi?id=657923
2015-10-09 15:55:40 +02:00
d6c049a8c9 altTab: Don't error out if we don't have windows for an app
We are currently erroring out when the tab chain doesn't contain at
least one window for an app which might happen for windows that don't
take focus like xeyes. This leaves us in a state where we can't show
the switcher at all. Let's just ignore these apps instead of looking
broken.
2015-10-08 18:27:07 +02:00
44047ac881 shell-glsl-quad: Set the pipeline blend string explicitly
The default pipeline color is opaque white and blending is turned
off. If we only draw with that color (e.g. because animations are
disabled and we're always drawn with opacity == 255), blending is kept
disabled since cogl_pipeline_set_color() returns early if the color
doesn't change from what was there before.

In our case we always want blending to be enabled which we can achieve
by setting the blending string ourselves.

https://bugzilla.gnome.org/show_bug.cgi?id=755827
2015-10-08 18:27:07 +02:00
464d5d8a13 st-button: Don't rely on hover to accept clicks
Since commit 4f1f226828 we only consider buttons clicked when the
release event had a corresponding press event. However as we use
the hover state to check whether a release event actually occurred
on the button, we dismiss any clicks in cases where we missed the
enter event - most likely due to some other actor holding a grab.
Instead, check whether the button contains the event's source, which
should be less error-prone.

https://bugzilla.gnome.org/show_bug.cgi?id=748919
2015-10-07 15:05:36 +02:00
29811a85dc Updated Portuguese translation 2015-10-07 06:07:27 +00:00
36ee4e6c3b panel: Hide app menu when disabled by settings
While the GtkSettings::gtk-shell-shows-app-menu property is meant to
reflect a desktop capability (i.e. in the GNOME case: the app menu is
shown in the top bar), it is possible for users to overwrite it.
Respect the setting and actually hide the menu in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=745919
2015-10-05 14:08:20 +02:00
2036e4c85c st: Remove wrong indentation
GObject-Introspection started warning for wrong annotations, and
StGenericAccessible::set-current-value has a return value annotation
even if it returns nothing. This generates the warning:

src/st/st-generic-accessible.c:146: Warning: St:
StGenericAccessible::set-current-value: invalid return annotation

Which, coupled with fatal warnings, breaks the Shell build.
2015-10-05 12:04:55 +01:00
f24034de84 Updated Czech translation 2015-10-05 11:56:30 +02:00
522ff86081 Updated Spanish translation 2015-10-05 07:46:19 +00:00
669e3c8ed9 Updated Spanish translation 2015-10-05 07:41:45 +00:00
ce850f464c Updated Kazakh translation 2015-10-04 12:00:33 +00:00
03eaa61cef Updated Portuguese translation 2015-10-04 07:34:03 +00:00
e10e953d24 Updated Finnish translation 2015-10-04 07:22:29 +00:00
2b47bb3d82 Updated Serbian Latin translation 2015-10-01 23:39:29 +00:00
73d819116c Updated Serbian translation 2015-10-01 23:38:05 +00:00
c8dd984663 Updated German translation 2015-10-01 20:43:16 +00:00
6087eb6d0e Updated Irish translation 2015-09-30 22:30:18 -06:00
97b43d1d36 Updated Vietnamese translation
Signed-off-by: Trần Ngọc Quân <vnwildman@gmail.com>
2015-10-01 07:22:35 +07:00
57ebadbaf8 Updated Lithuanian translation 2015-09-30 22:17:38 +03:00
cad7bb1151 Updated Greek translation 2015-09-30 10:38:28 +03:00
9a376d47c5 Updated Brazilian Portuguese translation 2015-09-29 19:09:31 +00:00
b79adc05f4 Updated Russian translation 2015-09-29 19:07:25 +00:00
f765c5e319 Updated Korean translation 2015-09-29 19:14:47 +09:00
edc445c0c9 Updated Italian translation 2015-09-29 07:03:06 +00:00
ab6b0f3f7f Updated Slovak translation 2015-09-29 05:32:58 +00:00
5e7902e733 Updated Polish translation 2015-09-29 00:53:38 +02:00
f9f821aa55 Updated Swedish translation 2015-09-28 22:40:28 +00:00
9ed4b2a5ae Updated Galician translation 2015-09-28 22:34:41 +00:00
0130ced790 Updated French translation 2015-09-28 21:39:48 +00:00
8dab07af82 Update Czech translation
Fixes #737598.
2015-09-28 17:10:10 -04:00
f6cd3fa5ed panel: improve string for system menu, bug 755755
Refer to the system menu in the top bar as "System" rather than "Settings" as
it contains more than just settings and "Settings" is already used for the
settings panel. "System" is also used elsewhere, so include context for
translators.
2015-09-28 16:29:12 -04:00
faae1a028e browser-plugin: try to avoid a crash
Quite tempted to delete this unmaintained and unreliable plugin, but I
can stand it not working so long as it at least stops crashing, so let's
try this first.

Hopefully mitigates bug #737932.
2015-09-27 13:14:08 -05:00
f5e32184fe theme: Update sass submodule to pick up menu size changes
https://bugzilla.gnome.org/show_bug.cgi?id=708472
2015-09-25 20:24:32 +02:00
18c7138237 Check error of g_dbus_proxy_new_sync call
Otherwise errors pile up and we crash later on.
2015-09-24 13:33:47 -04:00
3f0fbae7e2 shell_dbus_acquire_name: Don't leak the result
The GVariant returned by g_dbus_proxy_call_sync must be
freed with g_variant_unref, to prevent a leak.
2015-09-24 13:33:47 -04:00
7f1a258ff9 shell_dbus_acquire_name: Don't leak error
If fatal is not set, we return from this function in the error
case. Don't leak the GError if that happens.
2015-09-24 13:33:45 -04:00
197 changed files with 25445 additions and 18793 deletions

6
.gitignore vendored
View File

@ -17,10 +17,8 @@ config.status
config config
configure configure
data/50-gnome-shell-*.xml data/50-gnome-shell-*.xml
data/gnome-shell.desktop data/org.gnome.Shell.desktop
data/gnome-shell.desktop.in data/org.gnome.Shell.desktop.in
data/gnome-shell-wayland.desktop
data/gnome-shell-wayland.desktop.in
data/gnome-shell-extension-prefs.desktop data/gnome-shell-extension-prefs.desktop
data/gnome-shell-extension-prefs.desktop.in data/gnome-shell-extension-prefs.desktop.in
data/gnome-shell-theme.gresource data/gnome-shell-theme.gresource

165
NEWS
View File

@ -1,3 +1,168 @@
3.20.1
======
* Plug a memory leak [Aaron; #735705]
Contributors:
Aaron Plattner
Translations:
Daniel Korostil [uk], Matej Urbančič [sl], Inaki Larranaga Murgoitio [eu],
Cheng-Chia Tseng [zh_TW], Fabio Tomat [fur], Trần Ngọc Quân [vi],
YunQiang Su [zh_CN], Marek Černocký [cs], Arash Mousavi [fa],
Alexander Shopov [bg], Khaled Hosny [ar]
3.20.0
======
Translations:
Changwoo Ryu [ko], Baurzhan Muftakhidinov [kk], Milo Casagrande [it],
Anders Jonsson [sv], Muhammet Kara [tr], Alexandre Franke [fr],
Rūdolfs Mazurs [lv], Ask Hjorth Larsen [da], Jiro Matsuzawa [ja]
3.19.92
=======
* Update location dialog according to latest mockups [Zeeshan; #762480]
* Fix deleting chat notifications in calendar [Florian; #747991]
Contributors:
Zeeshan Ali (Khattak), Florian Müllner
Translations:
Rūdolfs Mazurs [lv], Changwoo Ryu [ko], Matej Urbančič [sl],
Justin van Steijn [nl], Fabio Tomat [fur], Kris Thomsen [da],
Marek Černocký [cs], Piotr Drąg [pl], Dušan Kazik [sk],
Мирослав Николић [sr, sr@latin], Balázs Úr [hu], Yosef Or Boczko [he],
Daniel Mustieles [es], Fran Dieguez [gl], Bernd Homuth [de],
Tom Tryfonidis [el], Jiri Grönroos [fi], Gil Forcada [ca],
Artur Morais [pt_BR], Aurimas Černius [lt], Stas Solovey [ru]
3.19.91
=======
* location: Ask user only once [Zeeshan; #762559]
* Fix jiggling when auto-hiding legacy tray [Florian; #747957]
* Misc. bug fixes [Florian, Michael, Ting-Wei; #762475, #762507, #755659]
Contributors:
Zeeshan Ali (Khattak), Michael Catanzaro, Ting-Wei Lan, Florian Müllner
Translations:
Мирослав Николић [sr, sr@latin], Piotr Drąg [pl], A S Alam [pa],
Artur de Aquino Morais [pt_BR], Daniel Mustieles [es],
Chao-Hsiung Liao [zh_TW], Daniel Korostil [uk], Fran Dieguez [gl],
Tom Tryfonidis [el], Bernd Homuth [de], Sebastian Rasmussen [sv],
Jordi Mas [ca], Piotr Drąg [ga], Cédric Valmary [oc], Gábor Kelemen [hu],
Baurzhan Muftakhidinov [kk], Friedel Wolff [af], Marek Černocký [cs],
Mingye Wang (Arthur2e5) [zh_CN], Aron Xu [zh_CN], Khaled Hosny [ar],
Aurimas Černius [lt], Stas Solovey [ru], Yosef Or Boczko [he]
3.19.90
=======
* Correctly identify VPN secret requests [Lubomir; #760999]
* Improve week number presentation [Jakub; #683245]
* Add audio device selection dialog [Florian; #760284]
* Add media controls to the time and date drop down [Florian; #756491]
* Fix IBus candidate popup position under wayland [Rui; #753476]
* Ask user to grant applications access to location [Zeeshan; #762119]
* Misc. bug fixes [Mario, Jakub, Florian; #761208, #761772, #762270]
Contributors:
Zeeshan Ali (Khattak), Michael Catanzaro, Rui Matos, Florian Müllner,
Lubomir Rintel, Mario Sanchez Prada, Jakub Steiner
Translations:
Alexander Shopov [bg], Balázs Meskó [hu], Fabio Tomat [fur],
Dušan Kazik [sk], Piotr Drąg [pl], Alexandre Franke [fr],
Mario Blättermann [de], Milo Casagrande [it], Jordi Mas [ca]
3.19.4
======
* gdm: Do not allow bypassing disabled Sign In button [Michael; #746180]
* Style week numbers in calendar [Jakub; #683245]
* Misc. bug fixes [Christophe, Jakub, Rui; #759708, #760577, #760945]
Contributors:
Michael Catanzaro, Marek Černocký, Christophe Fergeau, Rui Matos,
Jakub Steiner
Translations:
Aurimas Černius [lt], Enrico Nicoletto [pt_BR], Andika Triwidada [id],
Mario Blättermann [de], Marek Černocký [cs], Kjartan Maraas [nb],
Muhammet Kara [tr], Stas Solovey [ru]
3.19.3
======
* Fix thumbnail scaling in window switcher on HiDPI [Florian; #758676]
* Update animated backgrounds on timezone changes [Florian; #758939]
* loginDialog: Update user list on user changes [Michael; #758568]
* Fix touch interaction on wayland [Carlos; #756748]
Contributors:
Michael Catanzaro, Carlos Garnacho, Kalev Lember, Florian Müllner
Translations:
Daniel Korostil [uk], Muhammet Kara [tr], Dušan Kazik [sk],
Baurzhan Muftakhidinov [kk], Marek Černocký [cs]
3.19.2
======
* Make gnome-shell DBus activatable [Ray; #741666]
* Fix browser plugin crash in Firefox [Carlos; #737932, #757940]
* Optionally show battery percentage in system status area [Bastien; #735771]
* Misc. bug fixes [Kalev, Florian, Bastien; #757418, #757668, #757779, #757816,
#745626, #758220]
Contributors:
Michael Biebl, Michael Catanzaro, Piotr Drąg, Carlos Garcia Campos,
Kalev Lember, Florian Müllner, Bastien Nocera, Ray Strode
Translations:
Pedro Albuquerque [pt], liushuyu [zh_CN], Yosef Or Boczko [he],
Jiri Grönroos [fi], Kjartan Maraas [nb], GNOME Translation Robot [gd],
Daniel Mustieles [es], Marek Černocký [cs], Kristjan SCHMIDT [eo],
Stas Solovey [ru]
3.19.1
======
* Respect text-scaling factor under wayland [Owen; #756447]
* Show the Bluetooth submenu when there were setup devices [Bastien; #723848]
* Misc. bug fixes [Florian, Cosimo, Rui, Ray, Owen, Jakub, Bastien;
#756697, #756714, #756605, #754814, #738942, #756983, #756925,
#757011, #673235, #757150]
Contributors:
Cosimo Cecchi, Rui Matos, Florian Müllner, Bastien Nocera, Jakub Steiner,
Ray Strode, Owen W. Taylor
Translations:
Kjartan Maraas [nb], Khaled Hosny [ar], Balázs Meskó [hu],
Daniel Șerbănescu [ro], Marek Černocký [cs]
3.18.1
======
* Fix screen freezes when a notification is pushed [Carlos; #755425]
* Fix overzealous ellipsization in system status menu [Adel, Florian; #708472]
* Hide app menu when disabled by setting [Florian; #745919]
* Fix lightbox effect when animations are disabled [Rui; #755827]
* Do not mark hotplug notifications as critical [Florian; #657923]
* Fix icons getting cut off in dash [Florian; #745649]
* Animate fullscreen/unfullscreen operations [Cosimo; #707248]
* Misc. bug fixes [Florian, Owen; #748919, #674799, #754581]
Contributors:
Emmanuele Bassi, Michael Catanzaro, Cosimo Cecchi, Matthias Clasen,
Adel Gadllah, Carlos Garnacho, Ekaterina Gerasimova, Rui Matos,
Florian Müllner, Owen W. Taylor
Translations:
Марко Костић [sr], Милош Поповић [sr@latin], Khaled Hosny [ar],
Trần Ngọc Quân [vi], Petr Kovar [cs], Alexandre Franke [fr],
Fran Dieguez [gl], Anders Jonsson [sv], Piotr Drąg [pl], Dušan Kazik [sk],
Milo Casagrande [it], Changwoo Ryu [ko], Stas Solovey [ru],
Rafael Fontenelle [pt_BR], Tom Tryfonidis [el], Aurimas Černius [lt],
Seán de Búrca [ga], Christian Kirbach [de], Jiri Grönroos [fi],
Pedro Albuquerque [pt], Baurzhan Muftakhidinov [kk], Daniel Mustieles [es],
Marek Černocký [cs], Ask Hjorth Larsen [da], Inaki Larranaga Murgoitio [eu]
3.18.0 3.18.0
====== ======

View File

@ -3,7 +3,10 @@ mozillalibdir = $(BROWSER_PLUGIN_DIR)
mozillalib_LTLIBRARIES = libgnome-shell-browser-plugin.la mozillalib_LTLIBRARIES = libgnome-shell-browser-plugin.la
libgnome_shell_browser_plugin_la_LDFLAGS = -module -avoid-version -no-undefined # Browsers can unload and reload the module while browsing, which is not supported by GObject.
# We pass -Wl,-z,nodelete to the linker to ensure the module is never unloaded.
# https://bugzilla.gnome.org/show_bug.cgi?id=737932
libgnome_shell_browser_plugin_la_LDFLAGS = -module -avoid-version -no-undefined -Wl,-z,nodelete
libgnome_shell_browser_plugin_la_LIBADD = \ libgnome_shell_browser_plugin_la_LIBADD = \
$(BROWSER_PLUGIN_LIBS) $(BROWSER_PLUGIN_LIBS)

View File

@ -33,20 +33,16 @@
#include <json-glib/json-glib.h> #include <json-glib/json-glib.h>
#define ORIGIN "extensions.gnome.org" #define ORIGIN "extensions.gnome.org"
#define PLUGIN_NAME "Gnome Shell Integration" #define PLUGIN_NAME "GNOME Shell Integration"
#define PLUGIN_DESCRIPTION "This plugin provides integration with Gnome Shell " \ #define PLUGIN_DESCRIPTION "This plugin provides integration with GNOME Shell " \
"for live extension enabling and disabling. " \ "for live extension enabling and disabling. " \
"It can be used only by extensions.gnome.org" "It can be used only by extensions.gnome.org"
#define PLUGIN_MIME_STRING "application/x-gnome-shell-integration::Gnome Shell Integration Dummy Content-Type"; #define PLUGIN_MIME_STRING "application/x-gnome-shell-integration::GNOME Shell Integration Dummy Content-Type";
#define PLUGIN_API_VERSION 5 #define PLUGIN_API_VERSION 5
#define EXTENSION_DISABLE_VERSION_CHECK_KEY "disable-extension-version-validation" #define EXTENSION_DISABLE_VERSION_CHECK_KEY "disable-extension-version-validation"
typedef struct {
GDBusProxy *proxy;
} PluginData;
static NPNetscapeFuncs funcs; static NPNetscapeFuncs funcs;
static inline gchar * static inline gchar *
@ -145,121 +141,6 @@ check_origin_and_protocol (NPP instance)
return ret; return ret;
} }
/* =============== public entry points =================== */
NPError
NP_Initialize(NPNetscapeFuncs *pfuncs, NPPluginFuncs *plugin)
{
/* global initialization routine, called once when plugin
is loaded */
g_debug ("plugin loaded");
memcpy (&funcs, pfuncs, sizeof (funcs));
plugin->size = sizeof(NPPluginFuncs);
plugin->newp = NPP_New;
plugin->destroy = NPP_Destroy;
plugin->getvalue = NPP_GetValue;
plugin->setwindow = NPP_SetWindow;
return NPERR_NO_ERROR;
}
NPError
NP_Shutdown(void)
{
return NPERR_NO_ERROR;
}
const char*
NP_GetMIMEDescription(void)
{
return PLUGIN_MIME_STRING;
}
NPError
NP_GetValue(void *instance,
NPPVariable variable,
void *value)
{
switch (variable) {
case NPPVpluginNameString:
*(char**)value = PLUGIN_NAME;
break;
case NPPVpluginDescriptionString:
*(char**)value = PLUGIN_DESCRIPTION;
break;
default:
;
}
return NPERR_NO_ERROR;
}
NPError
NPP_New(NPMIMEType mimetype,
NPP instance,
uint16_t mode,
int16_t argc,
char **argn,
char **argv,
NPSavedData *saved)
{
/* instance initialization function */
PluginData *data;
GError *error = NULL;
g_debug ("plugin created");
if (!check_origin_and_protocol (instance))
return NPERR_GENERIC_ERROR;
data = g_slice_new (PluginData);
instance->pdata = data;
data->proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
G_DBUS_PROXY_FLAGS_NONE,
NULL, /* interface info */
"org.gnome.Shell",
"/org/gnome/Shell",
"org.gnome.Shell.Extensions",
NULL, /* GCancellable */
&error);
if (!data->proxy)
{
/* ignore error if the shell is not running, otherwise warn */
if (error->domain != G_DBUS_ERROR ||
error->code != G_DBUS_ERROR_NAME_HAS_NO_OWNER)
{
g_warning ("Failed to set up Shell proxy: %s", error->message);
}
g_clear_error (&error);
return NPERR_GENERIC_ERROR;
}
g_debug ("plugin created successfully");
return NPERR_NO_ERROR;
}
NPError
NPP_Destroy(NPP instance,
NPSavedData **saved)
{
/* instance finalization function */
PluginData *data = instance->pdata;
g_debug ("plugin destroyed");
g_object_unref (data->proxy);
g_slice_free (PluginData, data);
return NPERR_NO_ERROR;
}
/* =================== scripting interface =================== */ /* =================== scripting interface =================== */
typedef struct { typedef struct {
@ -330,45 +211,18 @@ static NPObject *
plugin_object_allocate (NPP instance, plugin_object_allocate (NPP instance,
NPClass *klass) NPClass *klass)
{ {
PluginData *data = instance->pdata; PluginObject *obj = (PluginObject *) funcs.memalloc (sizeof (PluginObject));
PluginObject *obj = g_slice_new0 (PluginObject);
memset (obj, 0, sizeof (PluginObject));
obj->instance = instance; obj->instance = instance;
obj->proxy = g_object_ref (data->proxy);
obj->settings = g_settings_new (SHELL_SCHEMA);
obj->signal_id = g_signal_connect (obj->proxy, "g-signal",
G_CALLBACK (on_shell_signal), obj);
obj->watch_name_id = g_bus_watch_name (G_BUS_TYPE_SESSION, return (NPObject*) obj;
"org.gnome.Shell",
G_BUS_NAME_WATCHER_FLAGS_NONE,
on_shell_appeared,
NULL,
obj,
NULL);
g_debug ("plugin object created");
return (NPObject*)obj;
} }
static void static void
plugin_object_deallocate (NPObject *npobj) plugin_object_deallocate (NPObject *npobj)
{ {
PluginObject *obj = (PluginObject*)npobj; funcs.memfree (npobj);
g_signal_handler_disconnect (obj->proxy, obj->signal_id);
g_object_unref (obj->proxy);
if (obj->listener)
funcs.releaseobject (obj->listener);
if (obj->watch_name_id)
g_bus_unwatch_name (obj->watch_name_id);
g_debug ("plugin object destroyed");
g_slice_free (PluginObject, obj);
} }
static inline gboolean static inline gboolean
@ -1019,6 +873,149 @@ init_methods_and_properties (void)
onextension_changed_id = funcs.getstringidentifier ("onchange"); onextension_changed_id = funcs.getstringidentifier ("onchange");
} }
/* =============== public entry points =================== */
NPError
NP_Initialize(NPNetscapeFuncs *pfuncs, NPPluginFuncs *plugin)
{
/* global initialization routine, called once when plugin
is loaded */
g_debug ("plugin loaded");
memcpy (&funcs, pfuncs, sizeof (funcs));
plugin->size = sizeof(NPPluginFuncs);
plugin->newp = NPP_New;
plugin->destroy = NPP_Destroy;
plugin->getvalue = NPP_GetValue;
plugin->setwindow = NPP_SetWindow;
plugin->event = NPP_HandleEvent;
return NPERR_NO_ERROR;
}
NPError
NP_Shutdown(void)
{
return NPERR_NO_ERROR;
}
const char*
NP_GetMIMEDescription(void)
{
return PLUGIN_MIME_STRING;
}
NPError
NP_GetValue(void *instance,
NPPVariable variable,
void *value)
{
switch (variable) {
case NPPVpluginNameString:
*(char**)value = PLUGIN_NAME;
break;
case NPPVpluginDescriptionString:
*(char**)value = PLUGIN_DESCRIPTION;
break;
default:
;
}
return NPERR_NO_ERROR;
}
NPError
NPP_New(NPMIMEType mimetype,
NPP instance,
uint16_t mode,
int16_t argc,
char **argn,
char **argv,
NPSavedData *saved)
{
/* instance initialization function */
PluginObject *obj;
GError *error = NULL;
g_debug ("plugin created");
if (!check_origin_and_protocol (instance))
return NPERR_GENERIC_ERROR;
/* set windowless mode */
funcs.setvalue(instance, NPPVpluginWindowBool, NULL);
g_debug ("creating scriptable object");
init_methods_and_properties ();
obj = (PluginObject *) funcs.createobject (instance, &plugin_class);
instance->pdata = obj;
obj->proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
G_DBUS_PROXY_FLAGS_NONE,
NULL, /* interface info */
"org.gnome.Shell",
"/org/gnome/Shell",
"org.gnome.Shell.Extensions",
NULL, /* GCancellable */
&error);
if (!obj->proxy)
{
/* ignore error if the shell is not running, otherwise warn */
if (!g_error_matches (error, G_DBUS_ERROR, G_DBUS_ERROR_NAME_HAS_NO_OWNER))
{
g_warning ("Failed to set up Shell proxy: %s", error->message);
}
g_clear_error (&error);
return NPERR_GENERIC_ERROR;
}
obj->settings = g_settings_new (SHELL_SCHEMA);
obj->signal_id = g_signal_connect (obj->proxy, "g-signal",
G_CALLBACK (on_shell_signal), obj);
obj->watch_name_id = g_bus_watch_name (G_BUS_TYPE_SESSION,
"org.gnome.Shell",
G_BUS_NAME_WATCHER_FLAGS_NONE,
on_shell_appeared,
NULL,
obj,
NULL);
g_debug ("plugin created successfully");
return NPERR_NO_ERROR;
}
NPError
NPP_Destroy(NPP instance,
NPSavedData **saved)
{
/* instance finalization function */
PluginObject *obj = (PluginObject *) instance->pdata;
if (!obj)
return NPERR_INVALID_INSTANCE_ERROR;
g_debug ("plugin destroyed");
g_signal_handler_disconnect (obj->proxy, obj->signal_id);
g_object_unref (obj->proxy);
if (obj->listener)
funcs.releaseobject (obj->listener);
if (obj->restart_listener)
funcs.releaseobject (obj->restart_listener);
if (obj->watch_name_id)
g_bus_unwatch_name (obj->watch_name_id);
funcs.releaseobject((NPObject *)obj);
return NPERR_NO_ERROR;
}
NPError NPError
NPP_GetValue(NPP instance, NPP_GetValue(NPP instance,
NPPVariable variable, NPPVariable variable,
@ -1029,13 +1026,10 @@ NPP_GetValue(NPP instance,
switch (variable) { switch (variable) {
case NPPVpluginScriptableNPObject: case NPPVpluginScriptableNPObject:
g_debug ("creating scriptable object"); g_debug ("creating scriptable object");
init_methods_and_properties (); if (!instance->pdata)
return NPERR_INVALID_INSTANCE_ERROR;
*(NPObject**)value = funcs.createobject (instance, &plugin_class); *(NPObject**)value = instance->pdata;
break;
case NPPVpluginNeedsXEmbed:
*(bool *)value = TRUE;
break; break;
default: default:
@ -1053,3 +1047,11 @@ NPP_SetWindow(NPP instance,
{ {
return NPERR_NO_ERROR; return NPERR_NO_ERROR;
} }
int16_t
NPP_HandleEvent(NPP instance,
void *event)
{
/* Ignore the event */
return FALSE;
}

View File

@ -1,5 +1,5 @@
AC_PREREQ(2.63) AC_PREREQ(2.63)
AC_INIT([gnome-shell],[3.18.0],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell]) AC_INIT([gnome-shell],[3.20.1],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AX_IS_RELEASE([git-directory]) AX_IS_RELEASE([git-directory])
AC_CONFIG_HEADERS([config.h]) AC_CONFIG_HEADERS([config.h])
@ -77,7 +77,7 @@ AC_MSG_RESULT($enable_systemd)
CLUTTER_MIN_VERSION=1.21.5 CLUTTER_MIN_VERSION=1.21.5
GOBJECT_INTROSPECTION_MIN_VERSION=1.45.4 GOBJECT_INTROSPECTION_MIN_VERSION=1.45.4
GJS_MIN_VERSION=1.39.0 GJS_MIN_VERSION=1.39.0
MUTTER_MIN_VERSION=3.18.0 MUTTER_MIN_VERSION=3.20.0
GTK_MIN_VERSION=3.15.0 GTK_MIN_VERSION=3.15.0
GIO_MIN_VERSION=2.45.3 GIO_MIN_VERSION=2.45.3
LIBECAL_MIN_VERSION=3.5.3 LIBECAL_MIN_VERSION=3.5.3
@ -117,9 +117,9 @@ PKG_CHECK_MODULES(GNOME_SHELL_JS, gio-2.0 gjs-internals-1.0 >= $GJS_MIN_VERSION)
PKG_CHECK_MODULES(ST, clutter-1.0 gtk+-3.0 libcroco-0.6 >= 0.6.8 x11) PKG_CHECK_MODULES(ST, clutter-1.0 gtk+-3.0 libcroco-0.6 >= 0.6.8 x11)
PKG_CHECK_MODULES(SHELL_PERF_HELPER, gtk+-3.0 gio-2.0) PKG_CHECK_MODULES(SHELL_PERF_HELPER, gtk+-3.0 gio-2.0)
PKG_CHECK_MODULES(SHELL_HOTPLUG_SNIFFER, gio-2.0 gdk-pixbuf-2.0) PKG_CHECK_MODULES(SHELL_HOTPLUG_SNIFFER, gio-2.0 gdk-pixbuf-2.0)
PKG_CHECK_MODULES(TRAY, gtk+-3.0) PKG_CHECK_MODULES(TRAY, clutter-1.0 gtk+-3.0)
PKG_CHECK_MODULES(GVC, libpulse >= $PULSE_MIN_VERS libpulse-mainloop-glib gobject-2.0) PKG_CHECK_MODULES(GVC, libpulse >= $PULSE_MIN_VERS libpulse-mainloop-glib gobject-2.0)
PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.13.1) PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.19.2)
AC_ARG_ENABLE(browser-plugin, AC_ARG_ENABLE(browser-plugin,
[AS_HELP_STRING([--enable-browser-plugin], [AS_HELP_STRING([--enable-browser-plugin],

View File

@ -2,7 +2,7 @@ CLEANFILES =
NULL = NULL =
desktopdir=$(datadir)/applications desktopdir=$(datadir)/applications
desktop_DATA = gnome-shell.desktop gnome-shell-wayland.desktop gnome-shell-extension-prefs.desktop desktop_DATA = org.gnome.Shell.desktop gnome-shell-extension-prefs.desktop
if HAVE_NETWORKMANAGER if HAVE_NETWORKMANAGER
desktop_DATA += org.gnome.Shell.PortalHelper.desktop desktop_DATA += org.gnome.Shell.PortalHelper.desktop
@ -104,8 +104,7 @@ convertdir = $(datadir)/GConf/gsettings
convert_DATA = gnome-shell-overrides.convert convert_DATA = gnome-shell-overrides.convert
EXTRA_DIST = \ EXTRA_DIST = \
gnome-shell.desktop.in.in \ org.gnome.Shell.desktop.in.in \
gnome-shell-wayland.desktop.in.in \
gnome-shell-extension-prefs.desktop.in.in \ gnome-shell-extension-prefs.desktop.in.in \
$(introspection_DATA) \ $(introspection_DATA) \
$(menu_DATA) \ $(menu_DATA) \
@ -121,8 +120,7 @@ EXTRA_DIST = \
$(NULL) $(NULL)
CLEANFILES += \ CLEANFILES += \
gnome-shell.desktop.in \ org.gnome.Shell.desktop.in \
gnome-shell-wayland.desktop.in \
gnome-shell-extension-prefs.in \ gnome-shell-extension-prefs.in \
$(desktop_DATA) \ $(desktop_DATA) \
$(keys_DATA) \ $(keys_DATA) \

View File

@ -1,15 +0,0 @@
[Desktop Entry]
Type=Application
_Name=GNOME Shell (wayland compositor)
_Comment=Window management and application launching
Exec=@bindir@/gnome-shell --wayland --display-server
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gnome-shell
X-GNOME-Bugzilla-Component=general
X-GNOME-Bugzilla-Version=@VERSION@
Categories=GNOME;GTK;Core;
OnlyShowIn=GNOME;
NoDisplay=true
X-GNOME-Autostart-Phase=DisplayServer
X-GNOME-Autostart-Notify=true
X-GNOME-AutoRestart=false

View File

@ -10,7 +10,7 @@ X-GNOME-Bugzilla-Version=@VERSION@
Categories=GNOME;GTK;Core; Categories=GNOME;GTK;Core;
OnlyShowIn=GNOME; OnlyShowIn=GNOME;
NoDisplay=true NoDisplay=true
X-GNOME-Autostart-Phase=WindowManager X-GNOME-Autostart-Phase=DisplayServer
X-GNOME-Provides=panel;windowmanager; X-GNOME-Provides=panel;windowmanager;
X-GNOME-Autostart-Notify=true X-GNOME-Autostart-Notify=true
X-GNOME-AutoRestart=false X-GNOME-AutoRestart=false

View File

@ -72,6 +72,16 @@
This key sets the default state of the checkbox. This key sets the default state of the checkbox.
</_description> </_description>
</key> </key>
<key name="had-bluetooth-devices-setup" type="b">
<default>false</default>
<_summary>Whether the default Bluetooth adapter had set up devices associated to it</_summary>
<_description>
The shell will only show a Bluetooth menu item if a Bluetooth
adapter is powered, or if there were devices set up associated
with the default adapter. This will be reset if the default
adapter is ever seen not to have devices associated to it.
</_description>
</key>
<child name="calendar" schema="org.gnome.shell.calendar"/> <child name="calendar" schema="org.gnome.shell.calendar"/>
<child name="keybindings" schema="org.gnome.shell.keybindings"/> <child name="keybindings" schema="org.gnome.shell.keybindings"/>
<child name="keyboard" schema="org.gnome.shell.keyboard"/> <child name="keyboard" schema="org.gnome.shell.keyboard"/>

View File

@ -199,7 +199,7 @@ StScrollBar {
border-radius: 9px; border-radius: 9px;
color: #eeeeec; color: #eeeeec;
background-color: rgba(23, 25, 26, 0.95); background-color: rgba(23, 25, 26, 0.95);
border: 3px solid rgba(238, 238, 236, 0.5); } border: 1px solid rgba(238, 238, 236, 0.2); }
.modal-dialog .modal-dialog-content-box { .modal-dialog .modal-dialog-content-box {
padding: 24px; } padding: 24px; }
.modal-dialog .run-dialog-entry { .modal-dialog .run-dialog-entry {
@ -224,7 +224,7 @@ StScrollBar {
/* End Session Dialog */ /* End Session Dialog */
.end-session-dialog { .end-session-dialog {
spacing: 42px; spacing: 42px;
border: 3px solid rgba(238, 238, 236, 0.2); } border: 1px solid rgba(238, 238, 236, 0.2); }
.end-session-dialog-list { .end-session-dialog-list {
padding-top: 20px; } padding-top: 20px; }
@ -399,6 +399,54 @@ StScrollBar {
width: 48px; width: 48px;
height: 48px; } height: 48px; }
/* Audio selection dialog */
.audio-device-selection-dialog {
spacing: 30px; }
.audio-selection-content {
spacing: 20px;
padding: 24px; }
.audio-selection-title {
font-weight: bold;
text-align: center; }
.audio-selection-box {
spacing: 20px; }
.audio-selection-device {
border: 1px solid rgba(238, 238, 236, 0.2);
border-radius: 12px; }
.audio-selection-device:active, .audio-selection-device:hover, .audio-selection-device:focus {
background-color: #215d9c; }
.audio-selection-device-box {
padding: 20px;
spacing: 20px; }
.audio-selection-device-icon {
icon-size: 64px; }
/* Geolocation Dialog */
.geolocation-dialog {
spacing: 30px; }
.geolocation-dialog-main-layout {
spacing: 12px; }
.geolocation-dialog-content {
spacing: 20px; }
.geolocation-dialog-icon {
icon-size: 48px; }
.geolocation-dialog-title {
font-weight: bold; }
.geolocation-dialog-reason {
color: #999999;
font-weight: bold; }
/* Network Agent Dialog */ /* Network Agent Dialog */
.network-dialog-secret-table { .network-dialog-secret-table {
spacing-rows: 15px; spacing-rows: 15px;
@ -408,9 +456,9 @@ StScrollBar {
spacing-rows: 15px; spacing-rows: 15px;
spacing-columns: 1em; } spacing-columns: 1em; }
/* Popvers/Menus */ /* Popovers/Menus */
.popup-menu { .popup-menu {
min-width: 200px; } min-width: 15em; }
.popup-menu .popup-sub-menu { .popup-menu .popup-sub-menu {
background-color: black; background-color: black;
box-shadow: inset 0 -1px 0px #0d0d0d; } box-shadow: inset 0 -1px 0px #0d0d0d; }
@ -625,6 +673,8 @@ StScrollBar {
#panel .panel-status-indicators-box, #panel .panel-status-indicators-box,
#panel .panel-status-menu-box { #panel .panel-status-menu-box {
spacing: 2px; } spacing: 2px; }
#panel .power-status.panel-status-indicators-box {
spacing: 0; }
#panel .screencast-indicator { #panel .screencast-indicator {
color: #f57900; } color: #f57900; }
@ -750,9 +800,20 @@ StScrollBar {
color: rgba(255, 255, 255, 0.15); color: rgba(255, 255, 255, 0.15);
opacity: 0.5; } opacity: 0.5; }
.calendar-week-number {
font-size: 70%;
font-weight: bold;
width: 2.3em;
height: 1.8em;
border-radius: 2px;
padding: 0.5em 0 0;
margin: 6px;
background-color: rgba(255, 255, 255, 0.3);
color: #000; }
/* Message list */ /* Message list */
.message-list { .message-list {
width: 420px; } width: 31.5em; }
.message-list-sections { .message-list-sections {
spacing: 1.5em; } spacing: 1.5em; }
@ -808,6 +869,23 @@ StScrollBar {
padding: 8px; padding: 8px;
font-size: .9em; } font-size: .9em; }
.message-media-control {
padding: 6px; }
.message-media-control:last-child:ltr {
padding-right: 18px; }
.message-media-control:last-child:rtl {
padding-left: 18px; }
.media-message-cover-icon {
icon-size: 32px; }
.media-message-cover-icon.fallback {
color: #1a1a1a;
background-color: #000;
border: 2px solid #000;
border-radius: 2px;
icon-size: 16px;
padding: 8px; }
.system-switch-user-submenu-icon.user-icon { .system-switch-user-submenu-icon.user-icon {
icon-size: 20px; icon-size: 20px;
padding: 0 2px; } padding: 0 2px; }
@ -823,7 +901,7 @@ StScrollBar {
color: transparent; } color: transparent; }
.aggregate-menu { .aggregate-menu {
width: 360px; } min-width: 21em; }
.aggregate-menu .popup-menu-icon { .aggregate-menu .popup-menu-icon {
padding: 0 4px; } padding: 0 4px; }
@ -960,10 +1038,14 @@ StScrollBar {
.search-entry { .search-entry {
width: 320px; width: 320px;
padding: 7px 9px; padding: 7px 9px;
border-radius: 6px; } border-radius: 6px;
border-color: #747467;
color: #eeeeec;
background-color: #2e3436; }
.search-entry:focus { .search-entry:focus {
padding: 6px 8px; padding: 6px 8px;
border-width: 2px; } border-width: 2px;
border-color: #215d9c; }
.search-entry .search-entry-icon { .search-entry .search-entry-icon {
icon-size: 1em; icon-size: 1em;
padding: 0 4px; padding: 0 4px;

View File

@ -199,7 +199,7 @@ StScrollBar {
border-radius: 9px; border-radius: 9px;
color: #eeeeec; color: #eeeeec;
background-color: rgba(23, 25, 26, 0.95); background-color: rgba(23, 25, 26, 0.95);
border: 3px solid rgba(238, 238, 236, 0.5); } border: 1px solid rgba(238, 238, 236, 0.2); }
.modal-dialog .modal-dialog-content-box { .modal-dialog .modal-dialog-content-box {
padding: 24px; } padding: 24px; }
.modal-dialog .run-dialog-entry { .modal-dialog .run-dialog-entry {
@ -224,7 +224,7 @@ StScrollBar {
/* End Session Dialog */ /* End Session Dialog */
.end-session-dialog { .end-session-dialog {
spacing: 42px; spacing: 42px;
border: 3px solid rgba(238, 238, 236, 0.2); } border: 1px solid rgba(238, 238, 236, 0.2); }
.end-session-dialog-list { .end-session-dialog-list {
padding-top: 20px; } padding-top: 20px; }
@ -399,6 +399,54 @@ StScrollBar {
width: 48px; width: 48px;
height: 48px; } height: 48px; }
/* Audio selection dialog */
.audio-device-selection-dialog {
spacing: 30px; }
.audio-selection-content {
spacing: 20px;
padding: 24px; }
.audio-selection-title {
font-weight: bold;
text-align: center; }
.audio-selection-box {
spacing: 20px; }
.audio-selection-device {
border: 1px solid rgba(238, 238, 236, 0.2);
border-radius: 12px; }
.audio-selection-device:active, .audio-selection-device:hover, .audio-selection-device:focus {
background-color: #215d9c; }
.audio-selection-device-box {
padding: 20px;
spacing: 20px; }
.audio-selection-device-icon {
icon-size: 64px; }
/* Geolocation Dialog */
.geolocation-dialog {
spacing: 30px; }
.geolocation-dialog-main-layout {
spacing: 12px; }
.geolocation-dialog-content {
spacing: 20px; }
.geolocation-dialog-icon {
icon-size: 48px; }
.geolocation-dialog-title {
font-weight: bold; }
.geolocation-dialog-reason {
color: #8e8e80;
font-weight: bold; }
/* Network Agent Dialog */ /* Network Agent Dialog */
.network-dialog-secret-table { .network-dialog-secret-table {
spacing-rows: 15px; spacing-rows: 15px;
@ -408,9 +456,9 @@ StScrollBar {
spacing-rows: 15px; spacing-rows: 15px;
spacing-columns: 1em; } spacing-columns: 1em; }
/* Popvers/Menus */ /* Popovers/Menus */
.popup-menu { .popup-menu {
min-width: 200px; } min-width: 15em; }
.popup-menu .popup-sub-menu { .popup-menu .popup-sub-menu {
background-color: #343a3a; background-color: #343a3a;
box-shadow: inset 0 -1px 0px #282c2c; } box-shadow: inset 0 -1px 0px #282c2c; }
@ -625,6 +673,8 @@ StScrollBar {
#panel .panel-status-indicators-box, #panel .panel-status-indicators-box,
#panel .panel-status-menu-box { #panel .panel-status-menu-box {
spacing: 2px; } spacing: 2px; }
#panel .power-status.panel-status-indicators-box {
spacing: 0; }
#panel .screencast-indicator { #panel .screencast-indicator {
color: #f57900; } color: #f57900; }
@ -750,9 +800,20 @@ StScrollBar {
color: rgba(238, 238, 236, 0.15); color: rgba(238, 238, 236, 0.15);
opacity: 0.5; } opacity: 0.5; }
.calendar-week-number {
font-size: 70%;
font-weight: bold;
width: 2.3em;
height: 1.8em;
border-radius: 2px;
padding: 0.5em 0 0;
margin: 6px;
background-color: rgba(238, 238, 236, 0.3);
color: #393f3f; }
/* Message list */ /* Message list */
.message-list { .message-list {
width: 420px; } width: 31.5em; }
.message-list-sections { .message-list-sections {
spacing: 1.5em; } spacing: 1.5em; }
@ -808,6 +869,23 @@ StScrollBar {
padding: 8px; padding: 8px;
font-size: .9em; } font-size: .9em; }
.message-media-control {
padding: 6px; }
.message-media-control:last-child:ltr {
padding-right: 18px; }
.message-media-control:last-child:rtl {
padding-left: 18px; }
.media-message-cover-icon {
icon-size: 32px; }
.media-message-cover-icon.fallback {
color: #515a5a;
background-color: #393f3f;
border: 2px solid #393f3f;
border-radius: 2px;
icon-size: 16px;
padding: 8px; }
.system-switch-user-submenu-icon.user-icon { .system-switch-user-submenu-icon.user-icon {
icon-size: 20px; icon-size: 20px;
padding: 0 2px; } padding: 0 2px; }
@ -823,7 +901,7 @@ StScrollBar {
color: transparent; } color: transparent; }
.aggregate-menu { .aggregate-menu {
width: 280px; } min-width: 21em; }
.aggregate-menu .popup-menu-icon { .aggregate-menu .popup-menu-icon {
padding: 0 4px; } padding: 0 4px; }
@ -960,10 +1038,14 @@ StScrollBar {
.search-entry { .search-entry {
width: 320px; width: 320px;
padding: 7px 9px; padding: 7px 9px;
border-radius: 6px; } border-radius: 6px;
border-color: #747467;
color: #eeeeec;
background-color: #2e3436; }
.search-entry:focus { .search-entry:focus {
padding: 6px 8px; padding: 6px 8px;
border-width: 2px; } border-width: 2px;
border-color: #215d9c; }
.search-entry .search-entry-icon { .search-entry .search-entry-icon {
icon-size: 1em; icon-size: 1em;
padding: 0 4px; padding: 0 4px;

View File

@ -23,11 +23,6 @@ const GnomeShellIface = '<node> \
</interface> \ </interface> \
</node>'; </node>';
const customCss = '.prefs-button { \
padding: 8px; \
border-radius: 20px; \
}';
const GnomeShellProxy = Gio.DBusProxy.makeProxyWrapper(GnomeShellIface); const GnomeShellProxy = Gio.DBusProxy.makeProxyWrapper(GnomeShellIface);
function stripPrefix(string, prefix) { function stripPrefix(string, prefix) {
@ -176,21 +171,6 @@ const Application = new Lang.Class({
this._window.show_all(); this._window.show_all();
}, },
_addCustomStyle: function() {
let provider = new Gtk.CssProvider();
try {
provider.load_from_data(customCss, -1);
} catch(e) {
log('Failed to add application style');
return;
}
let screen = this._window.window.get_screen();
let priority = Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION;
Gtk.StyleContext.add_provider_for_screen(screen, provider, priority);
},
_sortList: function(row1, row2) { _sortList: function(row1, row2) {
let name1 = ExtensionUtils.extensions[row1.uuid].metadata.name; let name1 = ExtensionUtils.extensions[row1.uuid].metadata.name;
let name2 = ExtensionUtils.extensions[row2.uuid].metadata.name; let name2 = ExtensionUtils.extensions[row2.uuid].metadata.name;
@ -239,7 +219,6 @@ const Application = new Lang.Class({
_onStartup: function(app) { _onStartup: function(app) {
this._buildUI(app); this._buildUI(app);
this._addCustomStyle();
this._scanExtensions(); this._scanExtensions();
}, },
@ -316,7 +295,7 @@ const ExtensionRow = new Lang.Class({
button.add(new Gtk.Image({ icon_name: 'emblem-system-symbolic', button.add(new Gtk.Image({ icon_name: 'emblem-system-symbolic',
icon_size: Gtk.IconSize.BUTTON, icon_size: Gtk.IconSize.BUTTON,
visible: true })); visible: true }));
button.get_style_context().add_class('prefs-button'); button.get_style_context().add_class('circular');
hbox.add(button); hbox.add(button);
this.prefsButton = button; this.prefsButton = button;

View File

@ -189,7 +189,8 @@ const AuthPrompt = new Lang.Class({
this._updateNextButtonSensitivity(this._entry.text.length > 0); this._updateNextButtonSensitivity(this._entry.text.length > 0);
})); }));
this._entry.clutter_text.connect('activate', Lang.bind(this, function() { this._entry.clutter_text.connect('activate', Lang.bind(this, function() {
this.emit('next'); if (this.nextButton.reactive)
this.emit('next');
})); }));
}, },

View File

@ -16,6 +16,34 @@
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, see <http://www.gnu.org/licenses/>.
*/ */
/*
* In order for transformation animations to look good, they need to be
* incremental and have some order to them (e.g., fade out hidden items,
* then shrink to close the void left over). Chaining animations in this way can
* be error-prone and wordy using just Tweener callbacks.
*
* The classes in this file help with this:
*
* - Task. encapsulates schedulable work to be run in a specific scope.
*
* - ConsecutiveBatch. runs a series of tasks in order and completes
* when the last in the series finishes.
*
* - ConcurrentBatch. runs a set of tasks at the same time and completes
* when the last to finish completes.
*
* - Hold. prevents a batch from completing the pending task until
* the hold is released.
*
* The tasks associated with a batch are specified in a list at batch
* construction time as either task objects or plain functions.
* Batches are task objects, themselves, so they can be nested.
*
* These classes aren't specific to GDM, but were found to be unintuitive and so
* are not used elsewhere. These APIs may ultimately get dropped entirely and
* replaced by something else.
*/
const Lang = imports.lang; const Lang = imports.lang;
const Signals = imports.signals; const Signals = imports.signals;

View File

@ -96,7 +96,7 @@ const UserListItem = new Lang.Class({
}, },
_onDestroy: function() { _onDestroy: function() {
this._user.disconnect(this._userChangedId); this.user.disconnect(this._userChangedId);
}, },
_onClicked: function() { _onClicked: function() {
@ -212,6 +212,10 @@ const UserList = new Lang.Class({
return item; return item;
}, },
containsUser: function(user) {
return this._items[user.get_user_name()] != null;
},
addUser: function(user) { addUser: function(user) {
if (!user.is_loaded) if (!user.is_loaded)
return; return;
@ -924,11 +928,7 @@ const LoginDialog = new Lang.Class({
}, },
onUpdateScope: this, onUpdateScope: this,
onComplete: function() { onComplete: function() {
let id = Mainloop.idle_add(Lang.bind(this, function() { this._greeter.call_start_session_when_ready_sync(serviceName, true, null);
this._greeter.call_start_session_when_ready_sync(serviceName, true, null);
return GLib.SOURCE_REMOVE;
}));
GLib.Source.set_name_by_id(id, '[gnome-shell] this._greeter.call_start_session_when_ready_sync');
}, },
onCompleteScope: this }); onCompleteScope: this });
}, },
@ -1130,6 +1130,10 @@ const LoginDialog = new Lang.Class({
this._userManager.disconnect(this._userRemovedId); this._userManager.disconnect(this._userRemovedId);
this._userRemovedId = 0; this._userRemovedId = 0;
} }
if (this._userChangedId) {
this._userManager.disconnect(this._userChangedId);
this._userChangedId = 0;
}
this._textureCache.disconnect(this._updateLogoTextureId); this._textureCache.disconnect(this._updateLogoTextureId);
Main.layoutManager.disconnect(this._startupCompleteId); Main.layoutManager.disconnect(this._startupCompleteId);
if (this._settings) { if (this._settings) {
@ -1176,6 +1180,14 @@ const LoginDialog = new Lang.Class({
this._userList.removeUser(user); this._userList.removeUser(user);
})); }));
this._userChangedId = this._userManager.connect('user-changed',
Lang.bind(this, function(userManager, user) {
if (this._userList.containsUser(user) && user.locked)
this._userList.removeUser(user);
else if (!this._userList.containsUser(user) && !user.locked)
this._userList.addUser(user);
}));
return GLib.SOURCE_REMOVE; return GLib.SOURCE_REMOVE;
}, },

View File

@ -35,6 +35,7 @@
<file>ui/animation.js</file> <file>ui/animation.js</file>
<file>ui/appDisplay.js</file> <file>ui/appDisplay.js</file>
<file>ui/appFavorites.js</file> <file>ui/appFavorites.js</file>
<file>ui/audioDeviceSelection.js</file>
<file>ui/backgroundMenu.js</file> <file>ui/backgroundMenu.js</file>
<file>ui/background.js</file> <file>ui/background.js</file>
<file>ui/boxpointer.js</file> <file>ui/boxpointer.js</file>
@ -62,7 +63,9 @@
<file>ui/magnifierDBus.js</file> <file>ui/magnifierDBus.js</file>
<file>ui/main.js</file> <file>ui/main.js</file>
<file>ui/messageTray.js</file> <file>ui/messageTray.js</file>
<file>ui/messageList.js</file>
<file>ui/modalDialog.js</file> <file>ui/modalDialog.js</file>
<file>ui/mpris.js</file>
<file>ui/notificationDaemon.js</file> <file>ui/notificationDaemon.js</file>
<file>ui/osdWindow.js</file> <file>ui/osdWindow.js</file>
<file>ui/osdMonitorLabeler.js</file> <file>ui/osdMonitorLabeler.js</file>

View File

@ -448,8 +448,6 @@ const AppSwitcher = new Lang.Class({
}); });
if (appIcon.cachedWindows.length > 0) if (appIcon.cachedWindows.length > 0)
this._addIcon(appIcon); this._addIcon(appIcon);
else if (workspace == null)
throw new Error('%s appears to be running, but doesn\'t have any windows'.format(appIcon.app.get_name()));
} }
this._curApp = -1; this._curApp = -1;
@ -687,15 +685,17 @@ const WindowIcon = new Lang.Class({
this._icon.destroy_all_children(); this._icon.destroy_all_children();
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
switch (mode) { switch (mode) {
case AppIconMode.THUMBNAIL_ONLY: case AppIconMode.THUMBNAIL_ONLY:
size = WINDOW_PREVIEW_SIZE; size = WINDOW_PREVIEW_SIZE;
this._icon.add_actor(_createWindowClone(mutterWindow, WINDOW_PREVIEW_SIZE)); this._icon.add_actor(_createWindowClone(mutterWindow, size * scaleFactor));
break; break;
case AppIconMode.BOTH: case AppIconMode.BOTH:
size = WINDOW_PREVIEW_SIZE; size = WINDOW_PREVIEW_SIZE;
this._icon.add_actor(_createWindowClone(mutterWindow, WINDOW_PREVIEW_SIZE)); this._icon.add_actor(_createWindowClone(mutterWindow, size * scaleFactor));
if (this.app) if (this.app)
this._icon.add_actor(this._createAppIcon(this.app, this._icon.add_actor(this._createAppIcon(this.app,
@ -707,7 +707,7 @@ const WindowIcon = new Lang.Class({
this._icon.add_actor(this._createAppIcon(this.app, size)); this._icon.add_actor(this._createAppIcon(this.app, size));
} }
this._icon.set_size(size, size); this._icon.set_size(size * scaleFactor, size * scaleFactor);
}, },
_createAppIcon: function(app, size) { _createAppIcon: function(app, size) {

View File

@ -7,7 +7,7 @@ const St = imports.gi.St;
const Signals = imports.signals; const Signals = imports.signals;
const Atk = imports.gi.Atk; const Atk = imports.gi.Atk;
const ANIMATED_ICON_UPDATE_TIMEOUT = 14; const ANIMATED_ICON_UPDATE_TIMEOUT = 16;
const Animation = new Lang.Class({ const Animation = new Lang.Class({
Name: 'Animation', Name: 'Animation',
@ -33,7 +33,7 @@ const Animation = new Lang.Class({
if (this._frame == 0) if (this._frame == 0)
this._showFrame(0); this._showFrame(0);
this._timeoutId = Mainloop.timeout_add(this._speed, Lang.bind(this, this._update)); this._timeoutId = GLib.timeout_add(GLib.PRIORITY_LOW, this._speed, Lang.bind(this, this._update));
GLib.Source.set_name_by_id(this._timeoutId, '[gnome-shell] this._update'); GLib.Source.set_name_by_id(this._timeoutId, '[gnome-shell] this._update');
} }

View File

@ -16,16 +16,18 @@ const RENAMED_DESKTOP_IDS = {
'glchess.desktop': 'gnome-chess.desktop', 'glchess.desktop': 'gnome-chess.desktop',
'glines.desktop': 'five-or-more.desktop', 'glines.desktop': 'five-or-more.desktop',
'gnect.desktop': 'four-in-a-row.desktop', 'gnect.desktop': 'four-in-a-row.desktop',
'gnibbles.desktop': 'gnome-nibbles.desktop', 'gnibbles.desktop': 'org.gnome.Nibbles.desktop',
'gnobots2.desktop': 'gnome-robots.desktop', 'gnobots2.desktop': 'gnome-robots.desktop',
'gnome-boxes.desktop': 'org.gnome.Boxes.desktop', 'gnome-boxes.desktop': 'org.gnome.Boxes.desktop',
'gnome-clocks.desktop': 'org.gnome.clocks.desktop', 'gnome-clocks.desktop': 'org.gnome.clocks.desktop',
'gnome-contacts.desktop': 'org.gnome.Contacts.desktop', 'gnome-contacts.desktop': 'org.gnome.Contacts.desktop',
'gnome-documents.desktop': 'org.gnome.Documents.desktop', 'gnome-documents.desktop': 'org.gnome.Documents.desktop',
'gnome-font-viewer.desktop': 'org.gnome.font-viewer.desktop', 'gnome-font-viewer.desktop': 'org.gnome.font-viewer.desktop',
'gnome-nibbles.desktop': 'org.gnome.Nibbles.desktop',
'gnome-photos.desktop': 'org.gnome.Photos.desktop', 'gnome-photos.desktop': 'org.gnome.Photos.desktop',
'gnome-screenshot.desktop': 'org.gnome.Screenshot.desktop', 'gnome-screenshot.desktop': 'org.gnome.Screenshot.desktop',
'gnome-software.desktop': 'org.gnome.Software.desktop', 'gnome-software.desktop': 'org.gnome.Software.desktop',
'gnome-terminal.desktop': 'org.gnome.Terminal.desktop',
'gnome-weather.desktop': 'org.gnome.Weather.Application.desktop', 'gnome-weather.desktop': 'org.gnome.Weather.Application.desktop',
'gnomine.desktop': 'gnome-mines.desktop', 'gnomine.desktop': 'gnome-mines.desktop',
'gnotravex.desktop': 'gnome-tetravex.desktop', 'gnotravex.desktop': 'gnome-tetravex.desktop',

View File

@ -0,0 +1,216 @@
const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Lang = imports.lang;
const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const Main = imports.ui.main;
const ModalDialog = imports.ui.modalDialog;
const AudioDevice = {
HEADPHONES: 1 << 0,
HEADSET: 1 << 1,
MICROPHONE: 1 << 2
};
const AudioDeviceSelectionIface = '<node> \
<interface name="org.gnome.Shell.AudioDeviceSelection"> \
<method name="Open"> \
<arg name="devices" direction="in" type="as" /> \
</method> \
<method name="Close"> \
</method> \
<signal name="DeviceSelected"> \
<arg name="device" type="s" /> \
</signal> \
</interface> \
</node>';
const AudioDeviceSelectionDialog = new Lang.Class({
Name: 'AudioDeviceSelectionDialog',
Extends: ModalDialog.ModalDialog,
_init: function(devices) {
this.parent({ styleClass: 'audio-device-selection-dialog' });
this._deviceItems = {};
this._buildLayout();
if (devices & AudioDevice.HEADPHONES)
this._addDevice(AudioDevice.HEADPHONES);
if (devices & AudioDevice.HEADSET)
this._addDevice(AudioDevice.HEADSET);
if (devices & AudioDevice.MICROPHONE)
this._addDevice(AudioDevice.MICROPHONE);
if (this._selectionBox.get_n_children() < 2)
throw new Error('Too few devices for a selection');
},
destroy: function() {
this.parent();
},
_buildLayout: function(devices) {
let title = new St.Label({ style_class: 'audio-selection-title',
text: _("Select Audio Device"),
x_align: Clutter.ActorAlign.CENTER });
this.contentLayout.style_class = 'audio-selection-content';
this.contentLayout.add(title);
this._selectionBox = new St.BoxLayout({ style_class: 'audio-selection-box' });
this.contentLayout.add(this._selectionBox, { expand: true });
this.addButton({ action: Lang.bind(this, this._openSettings),
label: _("Sound Settings") });
this.addButton({ action: Lang.bind(this, this.close),
label: _("Cancel"),
key: Clutter.Escape });
},
_getDeviceLabel: function(device) {
switch(device) {
case AudioDevice.HEADPHONES:
return _("Headphones");
case AudioDevice.HEADSET:
return _("Headset");
case AudioDevice.MICROPHONE:
return _("Microphone");
default:
return null;
}
},
_getDeviceIcon: function(device) {
switch(device) {
case AudioDevice.HEADPHONES:
return 'audio-headphones-symbolic';
case AudioDevice.HEADSET:
return 'audio-headset-symbolic';
case AudioDevice.MICROPHONE:
return 'audio-input-microphone-symbolic';
default:
return null;
}
},
_addDevice: function(device) {
let box = new St.BoxLayout({ style_class: 'audio-selection-device-box',
vertical: true });
box.connect('notify::height',
function() {
Meta.later_add(Meta.LaterType.BEFORE_REDRAW,
function() {
box.width = box.height;
});
});
let icon = new St.Icon({ style_class: 'audio-selection-device-icon',
icon_name: this._getDeviceIcon(device) });
box.add(icon);
let label = new St.Label({ style_class: 'audio-selection-device-label',
text: this._getDeviceLabel(device),
x_align: Clutter.ActorAlign.CENTER });
box.add(label);
let button = new St.Button({ style_class: 'audio-selection-device',
can_focus: true,
child: box });
this._selectionBox.add(button);
button.connect('clicked', Lang.bind(this,
function() {
this.emit('device-selected', device);
this.close();
Main.overview.hide();
}));
},
_openSettings: function() {
let desktopFile = 'gnome-sound-panel.desktop'
let app = Shell.AppSystem.get_default().lookup_app(desktopFile);
if (!app) {
log('Settings panel for desktop file ' + desktopFile + ' could not be loaded!');
return;
}
this.close();
Main.overview.hide();
app.activate();
}
});
const AudioDeviceSelectionDBus = new Lang.Class({
Name: 'AudioDeviceSelectionDBus',
_init: function() {
this._audioSelectionDialog = null;
this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(AudioDeviceSelectionIface, this);
this._dbusImpl.export(Gio.DBus.session, '/org/gnome/Shell/AudioDeviceSelection');
Gio.DBus.session.own_name('org.gnome.Shell.AudioDeviceSelection', Gio.BusNameOwnerFlags.REPLACE, null, null);
},
_onDialogClosed: function() {
this._audioSelectionDialog = null;
},
_onDeviceSelected: function(dialog, device) {
let connection = this._dbusImpl.get_connection();
let info = this._dbusImpl.get_info();
let deviceName = Object.keys(AudioDevice).filter(
function(dev) {
return AudioDevice[dev] == device;
})[0].toLowerCase();
connection.emit_signal(this._audioSelectionDialog._sender,
this._dbusImpl.get_object_path(),
info ? info.name : null,
'DeviceSelected',
GLib.Variant.new('(s)', [deviceName]));
},
OpenAsync: function(params, invocation) {
if (this._audioSelectionDialog) {
invocation.return_value(null);
return;
}
let [deviceNames] = params;
let devices = 0;
deviceNames.forEach(function(n) {
devices |= AudioDevice[n.toUpperCase()];
});
let dialog;
try {
dialog = new AudioDeviceSelectionDialog(devices);
} catch(e) {
invocation.return_value(null);
return;
}
dialog._sender = invocation.get_sender();
dialog.connect('closed', Lang.bind(this, this._onDialogClosed));
dialog.connect('device-selected',
Lang.bind(this, this._onDeviceSelected));
dialog.open();
this._audioSelectionDialog = dialog;
invocation.return_value(null);
},
CloseAsync: function(params, invocation) {
if (this._audioSelectionDialog &&
this._audioSelectionDialog._sender == invocation.get_sender())
this._audioSelectionDialog.close();
invocation.return_value(null);
}
});

View File

@ -247,6 +247,13 @@ const Background = new Lang.Class({
this._cancellable = new Gio.Cancellable(); this._cancellable = new Gio.Cancellable();
this.isLoaded = false; this.isLoaded = false;
this._clock = new GnomeDesktop.WallClock();
this._timezoneChangedId = this._clock.connect('notify::timezone',
Lang.bind(this, function() {
if (this._animation)
this._loadAnimation(this._animation.file);
}));
this._settingsChangedSignalId = this._settings.connect('changed', Lang.bind(this, function() { this._settingsChangedSignalId = this._settings.connect('changed', Lang.bind(this, function() {
this.emit('changed'); this.emit('changed');
})); }));
@ -265,6 +272,10 @@ const Background = new Lang.Class({
} }
this._fileWatches = null; this._fileWatches = null;
if (this._timezoneChangedId != 0)
this._clock.disconnect(this._timezoneChangedId);
this._timezoneChangedId = 0;
if (this._settingsChangedSignalId != 0) if (this._settingsChangedSignalId != 0)
this._settings.disconnect(this._settingsChangedSignalId); this._settings.disconnect(this._settingsChangedSignalId);
this._settingsChangedSignalId = 0; this._settingsChangedSignalId = 0;

View File

@ -1,23 +1,19 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Atk = imports.gi.Atk;
const Clutter = imports.gi.Clutter; const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib; const GLib = imports.gi.GLib;
const GObject = imports.gi.GObject;
const Gtk = imports.gi.Gtk; const Gtk = imports.gi.Gtk;
const Lang = imports.lang; const Lang = imports.lang;
const St = imports.gi.St; const St = imports.gi.St;
const Signals = imports.signals; const Signals = imports.signals;
const Pango = imports.gi.Pango;
const Gettext_gtk30 = imports.gettext.domain('gtk30'); const Gettext_gtk30 = imports.gettext.domain('gtk30');
const Mainloop = imports.mainloop;
const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell; const Shell = imports.gi.Shell;
const Main = imports.ui.main; const Main = imports.ui.main;
const MessageList = imports.ui.messageList;
const MessageTray = imports.ui.messageTray; const MessageTray = imports.ui.messageTray;
const Tweener = imports.ui.tweener; const Mpris = imports.ui.mpris;
const Util = imports.misc.util; const Util = imports.misc.util;
const MSECS_IN_DAY = 24 * 60 * 60 * 1000; const MSECS_IN_DAY = 24 * 60 * 60 * 1000;
@ -26,28 +22,24 @@ const ELLIPSIS_CHAR = '\u2026';
const MESSAGE_ICON_SIZE = 32; const MESSAGE_ICON_SIZE = 32;
const MESSAGE_ANIMATION_TIME = 0.1;
const DEFAULT_EXPAND_LINES = 6;
// alias to prevent xgettext from picking up strings translated in GTK+ // alias to prevent xgettext from picking up strings translated in GTK+
const gtk30_ = Gettext_gtk30.gettext; const gtk30_ = Gettext_gtk30.gettext;
const NC_ = function(context, str) { return context + '\u0004' + str; }; const NC_ = function(context, str) { return context + '\u0004' + str; };
function _sameYear(dateA, dateB) { function sameYear(dateA, dateB) {
return (dateA.getYear() == dateB.getYear()); return (dateA.getYear() == dateB.getYear());
} }
function _sameMonth(dateA, dateB) { function sameMonth(dateA, dateB) {
return _sameYear(dateA, dateB) && (dateA.getMonth() == dateB.getMonth()); return sameYear(dateA, dateB) && (dateA.getMonth() == dateB.getMonth());
} }
function _sameDay(dateA, dateB) { function sameDay(dateA, dateB) {
return _sameMonth(dateA, dateB) && (dateA.getDate() == dateB.getDate()); return sameMonth(dateA, dateB) && (dateA.getDate() == dateB.getDate());
} }
function _isToday(date) { function isToday(date) {
return _sameDay(new Date(), date); return sameDay(new Date(), date);
} }
function _isWorkDay(date) { function _isWorkDay(date) {
@ -98,148 +90,6 @@ function _getCalendarDayAbbreviation(dayNumber) {
return Shell.util_translate_time_string(abbreviations[dayNumber]); return Shell.util_translate_time_string(abbreviations[dayNumber]);
} }
function _fixMarkup(text, allowMarkup) {
if (allowMarkup) {
// Support &amp;, &quot;, &apos;, &lt; and &gt;, escape all other
// occurrences of '&'.
let _text = text.replace(/&(?!amp;|quot;|apos;|lt;|gt;)/g, '&amp;');
// Support <b>, <i>, and <u>, escape anything else
// so it displays as raw markup.
_text = _text.replace(/<(?!\/?[biu]>)/g, '&lt;');
try {
Pango.parse_markup(_text, -1, '');
return _text;
} catch (e) {}
}
// !allowMarkup, or invalid markup
return GLib.markup_escape_text(text, -1);
}
const URLHighlighter = new Lang.Class({
Name: 'URLHighlighter',
_init: function(text, lineWrap, allowMarkup) {
if (!text)
text = '';
this.actor = new St.Label({ reactive: true, style_class: 'url-highlighter',
x_expand: true, x_align: Clutter.ActorAlign.START });
this._linkColor = '#ccccff';
this.actor.connect('style-changed', Lang.bind(this, function() {
let [hasColor, color] = this.actor.get_theme_node().lookup_color('link-color', false);
if (hasColor) {
let linkColor = color.to_string().substr(0, 7);
if (linkColor != this._linkColor) {
this._linkColor = linkColor;
this._highlightUrls();
}
}
}));
this.actor.clutter_text.line_wrap = lineWrap;
this.actor.clutter_text.line_wrap_mode = Pango.WrapMode.WORD_CHAR;
this.setMarkup(text, allowMarkup);
this.actor.connect('button-press-event', Lang.bind(this, function(actor, event) {
// Don't try to URL highlight when invisible.
// The MessageTray doesn't actually hide us, so
// we need to check for paint opacities as well.
if (!actor.visible || actor.get_paint_opacity() == 0)
return Clutter.EVENT_PROPAGATE;
// Keep Notification.actor from seeing this and taking
// a pointer grab, which would block our button-release-event
// handler, if an URL is clicked
return this._findUrlAtPos(event) != -1;
}));
this.actor.connect('button-release-event', Lang.bind(this, function (actor, event) {
if (!actor.visible || actor.get_paint_opacity() == 0)
return Clutter.EVENT_PROPAGATE;
let urlId = this._findUrlAtPos(event);
if (urlId != -1) {
let url = this._urls[urlId].url;
if (url.indexOf(':') == -1)
url = 'http://' + url;
Gio.app_info_launch_default_for_uri(url, global.create_app_launch_context(0, -1));
return Clutter.EVENT_STOP;
}
return Clutter.EVENT_PROPAGATE;
}));
this.actor.connect('motion-event', Lang.bind(this, function(actor, event) {
if (!actor.visible || actor.get_paint_opacity() == 0)
return Clutter.EVENT_PROPAGATE;
let urlId = this._findUrlAtPos(event);
if (urlId != -1 && !this._cursorChanged) {
global.screen.set_cursor(Meta.Cursor.POINTING_HAND);
this._cursorChanged = true;
} else if (urlId == -1) {
global.screen.set_cursor(Meta.Cursor.DEFAULT);
this._cursorChanged = false;
}
return Clutter.EVENT_PROPAGATE;
}));
this.actor.connect('leave-event', Lang.bind(this, function() {
if (!this.actor.visible || this.actor.get_paint_opacity() == 0)
return Clutter.EVENT_PROPAGATE;
if (this._cursorChanged) {
this._cursorChanged = false;
global.screen.set_cursor(Meta.Cursor.DEFAULT);
}
return Clutter.EVENT_PROPAGATE;
}));
},
setMarkup: function(text, allowMarkup) {
text = text ? _fixMarkup(text, allowMarkup) : '';
this._text = text;
this.actor.clutter_text.set_markup(text);
/* clutter_text.text contain text without markup */
this._urls = Util.findUrls(this.actor.clutter_text.text);
this._highlightUrls();
},
_highlightUrls: function() {
// text here contain markup
let urls = Util.findUrls(this._text);
let markup = '';
let pos = 0;
for (let i = 0; i < urls.length; i++) {
let url = urls[i];
let str = this._text.substr(pos, url.pos - pos);
markup += str + '<span foreground="' + this._linkColor + '"><u>' + url.url + '</u></span>';
pos = url.pos + url.url.length;
}
markup += this._text.substr(pos);
this.actor.clutter_text.set_markup(markup);
},
_findUrlAtPos: function(event) {
let success;
let [x, y] = event.get_coords();
[success, x, y] = this.actor.transform_stage_point(x, y);
let find_pos = -1;
for (let i = 0; i < this.actor.clutter_text.text.length; i++) {
let [success, px, py, line_height] = this.actor.clutter_text.position_to_coords(i);
if (py > y || py + line_height < y || x < px)
continue;
find_pos = i;
}
if (find_pos != -1) {
for (let i = 0; i < this._urls.length; i++)
if (find_pos >= this._urls[i].pos &&
this._urls[i].pos + this._urls[i].url.length > find_pos)
return i;
}
return -1;
}
});
// Abstraction for an appointment/event in a calendar // Abstraction for an appointment/event in a calendar
const CalendarEvent = new Lang.Class({ const CalendarEvent = new Lang.Class({
@ -544,7 +394,7 @@ const Calendar = new Lang.Class({
// Sets the calendar to show a specific date // Sets the calendar to show a specific date
setDate: function(date) { setDate: function(date) {
if (_sameDay(date, this._selectedDate)) if (sameDay(date, this._selectedDate))
return; return;
this._selectedDate = date; this._selectedDate = date;
@ -725,7 +575,8 @@ const Calendar = new Lang.Class({
// nRows here means 6 weeks + one header + one navbar // nRows here means 6 weeks + one header + one navbar
let nRows = 8; let nRows = 8;
while (row < 8) { while (row < 8) {
let button = new St.Button({ label: iter.getDate().toString(), // xgettext:no-javascript-format
let button = new St.Button({ label: iter.toLocaleFormat(C_("date day number format", "%d")),
can_focus: true }); can_focus: true });
let rtl = button.get_text_direction() == Clutter.TextDirection.RTL; let rtl = button.get_text_direction() == Clutter.TextDirection.RTL;
@ -756,7 +607,7 @@ const Calendar = new Lang.Class({
if (leftMost) if (leftMost)
styleClass = 'calendar-day-left ' + styleClass; styleClass = 'calendar-day-left ' + styleClass;
if (_sameDay(now, iter)) if (sameDay(now, iter))
styleClass += ' calendar-today'; styleClass += ' calendar-today';
else if (iter.getMonth() != this._selectedDate.getMonth()) else if (iter.getMonth() != this._selectedDate.getMonth())
styleClass += ' calendar-other-month-day'; styleClass += ' calendar-other-month-day';
@ -799,16 +650,16 @@ const Calendar = new Lang.Class({
_update: function() { _update: function() {
let now = new Date(); let now = new Date();
if (_sameYear(this._selectedDate, now)) if (sameYear(this._selectedDate, now))
this._monthLabel.text = this._selectedDate.toLocaleFormat(this._headerFormatWithoutYear); this._monthLabel.text = this._selectedDate.toLocaleFormat(this._headerFormatWithoutYear);
else else
this._monthLabel.text = this._selectedDate.toLocaleFormat(this._headerFormat); this._monthLabel.text = this._selectedDate.toLocaleFormat(this._headerFormat);
if (!this._calendarBegin || !_sameMonth(this._selectedDate, this._calendarBegin) || !_sameDay(now, this._markedAsToday)) if (!this._calendarBegin || !sameMonth(this._selectedDate, this._calendarBegin) || !sameDay(now, this._markedAsToday))
this._rebuildCalendar(); this._rebuildCalendar();
this._buttons.forEach(Lang.bind(this, function(button) { this._buttons.forEach(Lang.bind(this, function(button) {
if (_sameDay(button._date, this._selectedDate)) { if (sameDay(button._date, this._selectedDate)) {
button.add_style_pseudo_class('active'); button.add_style_pseudo_class('active');
if (this._shouldDateGrabFocus) if (this._shouldDateGrabFocus)
button.grab_key_focus(); button.grab_key_focus();
@ -820,353 +671,9 @@ const Calendar = new Lang.Class({
}); });
Signals.addSignalMethods(Calendar.prototype); Signals.addSignalMethods(Calendar.prototype);
const ScaleLayout = new Lang.Class({
Name: 'ScaleLayout',
Extends: Clutter.BinLayout,
_connectContainer: function(container) {
if (this._container == container)
return;
if (this._container)
for (let id of this._signals)
this._container.disconnect(id);
this._container = container;
this._signals = [];
if (this._container)
for (let signal of ['notify::scale-x', 'notify::scale-y']) {
let id = this._container.connect(signal, Lang.bind(this,
function() {
this.layout_changed();
}));
this._signals.push(id);
}
},
vfunc_get_preferred_width: function(container, forHeight) {
this._connectContainer(container);
let [min, nat] = this.parent(container, forHeight);
return [Math.floor(min * container.scale_x),
Math.floor(nat * container.scale_x)];
},
vfunc_get_preferred_height: function(container, forWidth) {
this._connectContainer(container);
let [min, nat] = this.parent(container, forWidth);
return [Math.floor(min * container.scale_y),
Math.floor(nat * container.scale_y)];
}
});
const LabelExpanderLayout = new Lang.Class({
Name: 'LabelExpanderLayout',
Extends: Clutter.LayoutManager,
Properties: { 'expansion': GObject.ParamSpec.double('expansion',
'Expansion',
'Expansion of the layout, between 0 (collapsed) ' +
'and 1 (fully expanded',
GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE,
0, 1, 0)},
_init: function(params) {
this._expansion = 0;
this._expandLines = DEFAULT_EXPAND_LINES;
this.parent(params);
},
get expansion() {
return this._expansion;
},
set expansion(v) {
if (v == this._expansion)
return;
this._expansion = v;
this.notify('expansion');
let visibleIndex = this._expansion > 0 ? 1 : 0;
for (let i = 0; this._container && i < this._container.get_n_children(); i++)
this._container.get_child_at_index(i).visible = (i == visibleIndex);
this.layout_changed();
},
set expandLines(v) {
if (v == this._expandLines)
return;
this._expandLines = v;
if (this._expansion > 0)
this.layout_changed();
},
vfunc_set_container: function(container) {
this._container = container;
},
vfunc_get_preferred_width: function(container, forHeight) {
let [min, nat] = [0, 0];
for (let i = 0; i < container.get_n_children(); i++) {
if (i > 1)
break; // we support one unexpanded + one expanded child
let child = container.get_child_at_index(i);
let [childMin, childNat] = child.get_preferred_width(forHeight);
[min, nat] = [Math.max(min, childMin), Math.max(nat, childNat)];
}
return [min, nat];
},
vfunc_get_preferred_height: function(container, forWidth) {
let [min, nat] = [0, 0];
let children = container.get_children();
if (children[0])
[min, nat] = children[0].get_preferred_height(forWidth);
if (children[1]) {
let [min2, nat2] = children[1].get_preferred_height(forWidth);
let [expMin, expNat] = [Math.min(min2, min * this._expandLines),
Math.min(nat2, nat * this._expandLines)];
[min, nat] = [min + this._expansion * (expMin - min),
nat + this._expansion * (expNat - nat)];
}
return [min, nat];
},
vfunc_allocate: function(container, box, flags) {
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);
}
}
});
const Message = new Lang.Class({
Name: 'Message',
_init: function(title, body) {
this.expanded = false;
this.actor = new St.Button({ style_class: 'message',
accessible_role: Atk.Role.NOTIFICATION,
can_focus: true,
x_expand: true, x_fill: true });
this.actor.connect('key-press-event',
Lang.bind(this, this._onKeyPressed));
let vbox = new St.BoxLayout({ vertical: true });
this.actor.set_child(vbox);
let hbox = new St.BoxLayout();
vbox.add_actor(hbox);
this._actionBin = new St.Widget({ layout_manager: new ScaleLayout(),
visible: false });
vbox.add_actor(this._actionBin);
this._iconBin = new St.Bin({ style_class: 'message-icon-bin',
y_expand: true,
visible: false });
hbox.add_actor(this._iconBin);
let contentBox = new St.BoxLayout({ style_class: 'message-content',
vertical: true, x_expand: true });
hbox.add_actor(contentBox);
let titleBox = new St.BoxLayout();
contentBox.add_actor(titleBox);
this.titleLabel = new St.Label({ style_class: 'message-title',
x_expand: true,
x_align: Clutter.ActorAlign.START });
this.setTitle(title);
titleBox.add_actor(this.titleLabel);
this._secondaryBin = new St.Bin({ style_class: 'message-secondary-bin' });
titleBox.add_actor(this._secondaryBin);
let closeIcon = new St.Icon({ icon_name: 'window-close-symbolic',
icon_size: 16 });
this._closeButton = new St.Button({ child: closeIcon, visible: false });
titleBox.add_actor(this._closeButton);
this._bodyStack = new St.Widget({ x_expand: true });
this._bodyStack.layout_manager = new LabelExpanderLayout();
contentBox.add_actor(this._bodyStack);
this.bodyLabel = new URLHighlighter('', false, this._useBodyMarkup);
this.bodyLabel.actor.add_style_class_name('message-body');
this._bodyStack.add_actor(this.bodyLabel.actor);
this.setBody(body);
this._closeButton.connect('clicked', Lang.bind(this, this.close));
this.actor.connect('notify::hover', Lang.bind(this, this._sync));
this.actor.connect('clicked', Lang.bind(this, this._onClicked));
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
this._sync();
},
close: function() {
this.emit('close');
},
setIcon: function(actor) {
this._iconBin.child = actor;
this._iconBin.visible = (actor != null);
},
setSecondaryActor: function(actor) {
this._secondaryBin.child = actor;
},
setTitle: function(text) {
let title = text ? _fixMarkup(text.replace(/\n/g, ' '), false) : '';
this.titleLabel.clutter_text.set_markup(title);
},
setBody: function(text) {
this._bodyText = text;
this.bodyLabel.setMarkup(text ? text.replace(/\n/g, ' ') : '',
this._useBodyMarkup);
if (this._expandedLabel)
this._expandedLabel.setMarkup(text, this._useBodyMarkup);
},
setUseBodyMarkup: function(enable) {
if (this._useBodyMarkup === enable)
return;
this._useBodyMarkup = enable;
if (this.bodyLabel)
this.setBody(this._bodyText);
},
setActionArea: function(actor) {
if (actor == null) {
if (this._actionBin.get_n_children() > 0)
this._actionBin.get_child_at_index(0).destroy();
return;
}
if (this._actionBin.get_n_children() > 0)
throw new Error('Message already has an action area');
this._actionBin.add_actor(actor);
this._actionBin.visible = this.expanded;
},
setExpandedBody: function(actor) {
if (actor == null) {
if (this._bodyStack.get_n_children() > 1)
this._bodyStack.get_child_at_index(1).destroy();
return;
}
if (this._bodyStack.get_n_children() > 1)
throw new Error('Message already has an expanded body actor');
this._bodyStack.insert_child_at_index(actor, 1);
},
setExpandedLines: function(nLines) {
this._bodyStack.layout_manager.expandLines = nLines;
},
expand: function(animate) {
this.expanded = true;
this._actionBin.visible = (this._actionBin.get_n_children() > 0);
if (this._bodyStack.get_n_children() < 2) {
this._expandedLabel = new URLHighlighter(this._bodyText,
true, this._useBodyMarkup);
this.setExpandedBody(this._expandedLabel.actor);
}
if (animate) {
Tweener.addTween(this._bodyStack.layout_manager,
{ expansion: 1,
time: MessageTray.ANIMATION_TIME,
transition: 'easeOutQuad' });
this._actionBin.scale_y = 0;
Tweener.addTween(this._actionBin,
{ scale_y: 1,
time: MessageTray.ANIMATION_TIME,
transition: 'easeOutQuad' });
} else {
this._bodyStack.layout_manager.expansion = 1;
this._actionBin.scale_y = 1;
}
this.emit('expanded');
},
unexpand: function(animate) {
if (animate) {
Tweener.addTween(this._bodyStack.layout_manager,
{ expansion: 0,
time: MessageTray.ANIMATION_TIME,
transition: 'easeOutQuad' });
Tweener.addTween(this._actionBin,
{ scale_y: 0,
time: MessageTray.ANIMATION_TIME,
transition: 'easeOutQuad',
onCompleteScope: this,
onComplete: function() {
this._actionBin.hide();
this.expanded = false;
}});
} else {
this._bodyStack.layout_manager.expansion = 0;
this._actionBin.scale_y = 0;
this.expanded = false;
}
this.emit('unexpanded');
},
canClose: function() {
return true;
},
_sync: function() {
let hovered = this.actor.hover;
this._closeButton.visible = hovered && this.canClose();
this._secondaryBin.visible = !hovered;
},
_onClicked: function() {
},
_onDestroy: function() {
},
_onKeyPressed: function(a, event) {
let keysym = event.get_key_symbol();
if (keysym == Clutter.KEY_Delete ||
keysym == Clutter.KEY_KP_Delete) {
this.close();
return Clutter.EVENT_STOP;
}
return Clutter.EVENT_PROPAGATE;
}
});
Signals.addSignalMethods(Message.prototype);
const EventMessage = new Lang.Class({ const EventMessage = new Lang.Class({
Name: 'EventMessage', Name: 'EventMessage',
Extends: Message, Extends: MessageList.Message,
_init: function(event, date) { _init: function(event, date) {
this._event = event; this._event = event;
@ -1209,13 +716,13 @@ const EventMessage = new Lang.Class({
}, },
canClose: function() { canClose: function() {
return _isToday(this._date); return isToday(this._date);
} }
}); });
const NotificationMessage = new Lang.Class({ const NotificationMessage = new Lang.Class({
Name: 'NotificationMessage', Name: 'NotificationMessage',
Extends: Message, Extends: MessageList.Message,
_init: function(notification) { _init: function(notification) {
this.notification = notification; this.notification = notification;
@ -1269,217 +776,9 @@ const NotificationMessage = new Lang.Class({
} }
}); });
const MessageListSection = new Lang.Class({
Name: 'MessageListSection',
_init: function(title) {
this.actor = new St.BoxLayout({ style_class: 'message-list-section',
clip_to_allocation: true,
x_expand: true, vertical: true });
let titleBox = new St.BoxLayout({ style_class: 'message-list-section-title-box' });
this.actor.add_actor(titleBox);
this._title = new St.Button({ style_class: 'message-list-section-title',
label: title,
can_focus: true,
x_expand: true,
x_align: St.Align.START });
titleBox.add_actor(this._title);
this._title.connect('clicked', Lang.bind(this, this._onTitleClicked));
this._title.connect('key-focus-in', Lang.bind(this, this._onKeyFocusIn));
let closeIcon = new St.Icon({ icon_name: 'window-close-symbolic' });
this._closeButton = new St.Button({ style_class: 'message-list-section-close',
child: closeIcon,
accessible_name: _("Clear section"),
can_focus: true });
this._closeButton.set_x_align(Clutter.ActorAlign.END);
titleBox.add_actor(this._closeButton);
this._closeButton.connect('clicked', Lang.bind(this, this.clear));
this._list = new St.BoxLayout({ style_class: 'message-list-section-list',
vertical: true });
this.actor.add_actor(this._list);
this._list.connect('actor-added', Lang.bind(this, this._sync));
this._list.connect('actor-removed', Lang.bind(this, this._sync));
let id = Main.sessionMode.connect('updated',
Lang.bind(this, this._sync));
this.actor.connect('destroy', function() {
Main.sessionMode.disconnect(id);
});
this._messages = new Map();
this._date = new Date();
this.empty = true;
this._sync();
},
_onTitleClicked: function() {
Main.overview.hide();
Main.panel.closeCalendar();
},
_onKeyFocusIn: function(actor) {
this.emit('key-focus-in', actor);
},
get allowed() {
return true;
},
setDate: function(date) {
if (_sameDay(date, this._date))
return;
this._date = date;
this._sync();
},
addMessage: function(message, animate) {
this.addMessageAtIndex(message, -1, animate);
},
addMessageAtIndex: function(message, index, animate) {
let obj = {
container: null,
destroyId: 0,
keyFocusId: 0,
closeId: 0
};
let pivot = new Clutter.Point({ x: .5, y: .5 });
let scale = animate ? 0 : 1;
obj.container = new St.Widget({ layout_manager: new ScaleLayout(),
pivot_point: pivot,
scale_x: scale, scale_y: scale });
obj.keyFocusId = message.actor.connect('key-focus-in',
Lang.bind(this, this._onKeyFocusIn));
obj.destroyId = message.actor.connect('destroy',
Lang.bind(this, function() {
this.removeMessage(message, false);
}));
obj.closeId = message.connect('close',
Lang.bind(this, function() {
this.removeMessage(message, true);
}));
this._messages.set(message, obj);
obj.container.add_actor(message.actor);
this._list.insert_child_at_index(obj.container, index);
if (animate)
Tweener.addTween(obj.container, { scale_x: 1,
scale_y: 1,
time: MESSAGE_ANIMATION_TIME,
transition: 'easeOutQuad' });
},
moveMessage: function(message, index, animate) {
let obj = this._messages.get(message);
if (!animate) {
this._list.set_child_at_index(obj.container, index);
return;
}
let onComplete = Lang.bind(this, function() {
this._list.set_child_at_index(obj.container, index);
Tweener.addTween(obj.container, { scale_x: 1,
scale_y: 1,
time: MESSAGE_ANIMATION_TIME,
transition: 'easeOutQuad' });
});
Tweener.addTween(obj.container, { scale_x: 0,
scale_y: 0,
time: MESSAGE_ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: onComplete });
},
removeMessage: function(message, animate) {
let obj = this._messages.get(message);
message.actor.disconnect(obj.destroyId);
message.actor.disconnect(obj.keyFocusId);
message.disconnect(obj.closeId);
this._messages.delete(message);
if (animate) {
Tweener.addTween(obj.container, { scale_x: 0, scale_y: 0,
time: MESSAGE_ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: function() {
obj.container.destroy();
global.sync_pointer();
}});
} else {
obj.container.destroy();
global.sync_pointer();
}
},
clear: function() {
let messages = [...this._messages.keys()].filter(function(message) {
return message.canClose();
});
// If there are few messages, letting them all zoom out looks OK
if (messages.length < 2) {
messages.forEach(function(message) {
message.close();
});
} else {
// Otherwise we slide them out one by one, and then zoom them
// out "off-screen" in the end to smoothly shrink the parent
let delay = MESSAGE_ANIMATION_TIME / Math.max(messages.length, 5);
for (let i = 0; i < messages.length; i++) {
let message = messages[i];
let obj = this._messages.get(message);
Tweener.addTween(obj.container,
{ anchor_x: this._list.width,
opacity: 0,
time: MESSAGE_ANIMATION_TIME,
delay: i * delay,
transition: 'easeOutQuad',
onComplete: function() {
message.close();
}});
}
}
},
_canClear: function() {
for (let message of this._messages.keys())
if (message.canClose())
return true;
return false;
},
_shouldShow: function() {
return !this.empty;
},
_sync: function() {
let empty = this._list.get_n_children() == 0;
let changed = this.empty !== empty;
this.empty = empty;
if (changed)
this.emit('empty-changed');
this._closeButton.visible = this._canClear();
this.actor.visible = this.allowed && this._shouldShow();
}
});
Signals.addSignalMethods(MessageListSection.prototype);
const EventsSection = new Lang.Class({ const EventsSection = new Lang.Class({
Name: 'EventsSection', Name: 'EventsSection',
Extends: MessageListSection, Extends: MessageList.MessageListSection,
_init: function() { _init: function() {
this._desktopSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.interface' }); this._desktopSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.interface' });
@ -1518,14 +817,14 @@ const EventsSection = new Lang.Class({
}, },
_updateTitle: function() { _updateTitle: function() {
if (_isToday(this._date)) { if (isToday(this._date)) {
this._title.label = _("Events"); this._title.label = _("Events");
return; return;
} }
let dayFormat; let dayFormat;
let now = new Date(); let now = new Date();
if (_sameYear(this._date, now)) if (sameYear(this._date, now))
/* Translators: Shown on calendar heading when selected day occurs on current year */ /* Translators: Shown on calendar heading when selected day occurs on current year */
dayFormat = Shell.util_translate_time_string(NC_("calendar heading", dayFormat = Shell.util_translate_time_string(NC_("calendar heading",
"%A, %B %d")); "%A, %B %d"));
@ -1601,7 +900,7 @@ const EventsSection = new Lang.Class({
}, },
_shouldShow: function() { _shouldShow: function() {
return !this.empty || !_isToday(this._date); return !this.empty || !isToday(this._date);
}, },
_sync: function() { _sync: function() {
@ -1614,7 +913,7 @@ const EventsSection = new Lang.Class({
const NotificationSection = new Lang.Class({ const NotificationSection = new Lang.Class({
Name: 'NotificationSection', Name: 'NotificationSection',
Extends: MessageListSection, Extends: MessageList.MessageListSection,
_init: function() { _init: function() {
this.parent(_("Notifications")); this.parent(_("Notifications"));
@ -1720,7 +1019,7 @@ const NotificationSection = new Lang.Class({
}, },
_shouldShow: function() { _shouldShow: function() {
return !this.empty && _isToday(this._date); return !this.empty && isToday(this._date);
}, },
_sync: function() { _sync: function() {
@ -1753,20 +1052,20 @@ const Placeholder = new Lang.Class({
}, },
setDate: function(date) { setDate: function(date) {
if (_sameDay(this._date, date)) if (sameDay(this._date, date))
return; return;
this._date = date; this._date = date;
this._sync(); this._sync();
}, },
_sync: function() { _sync: function() {
let isToday = _isToday(this._date); let today = isToday(this._date);
if (isToday && this._icon.gicon == this._todayIcon) if (today && this._icon.gicon == this._todayIcon)
return; return;
if (!isToday && this._icon.gicon == this._otherIcon) if (!today && this._icon.gicon == this._otherIcon)
return; return;
if (isToday) { if (today) {
this._icon.gicon = this._todayIcon; this._icon.gicon = this._todayIcon;
this._label.text = _("No Notifications"); this._label.text = _("No Notifications");
} else { } else {
@ -1776,8 +1075,8 @@ const Placeholder = new Lang.Class({
} }
}); });
const MessageList = new Lang.Class({ const CalendarMessageList = new Lang.Class({
Name: 'MessageList', Name: 'CalendarMessageList',
_init: function() { _init: function() {
this.actor = new St.Widget({ style_class: 'message-list', this.actor = new St.Widget({ style_class: 'message-list',
@ -1801,6 +1100,9 @@ const MessageList = new Lang.Class({
this._scrollView.add_actor(this._sectionList); this._scrollView.add_actor(this._sectionList);
this._sections = new Map(); this._sections = new Map();
this._mediaSection = new Mpris.MediaSection();
this._addSection(this._mediaSection);
this._notificationSection = new NotificationSection(); this._notificationSection = new NotificationSection();
this._addSection(this._notificationSection); this._addSection(this._notificationSection);

View File

@ -313,6 +313,10 @@ const AutorunSource = new Lang.Class({
getIcon: function() { getIcon: function() {
return this.mount.get_icon(); return this.mount.get_icon();
},
_createPolicy: function() {
return new MessageTray.NotificationApplicationPolicy('org.gnome.Nautilus');
} }
}); });
@ -325,9 +329,6 @@ const AutorunNotification = new Lang.Class({
this._manager = manager; this._manager = manager;
this._mount = source.mount; this._mount = source.mount;
// set the notification to urgent, so that it expands out
this.setUrgency(MessageTray.Urgency.CRITICAL);
}, },
createBanner: function() { createBanner: function() {

View File

@ -12,9 +12,9 @@ const St = imports.gi.St;
const Tpl = imports.gi.TelepathyLogger; const Tpl = imports.gi.TelepathyLogger;
const Tp = imports.gi.TelepathyGLib; const Tp = imports.gi.TelepathyGLib;
const Calendar = imports.ui.calendar;
const History = imports.misc.history; const History = imports.misc.history;
const Main = imports.ui.main; const Main = imports.ui.main;
const MessageList = imports.ui.messageList;
const MessageTray = imports.ui.messageTray; const MessageTray = imports.ui.messageTray;
const Params = imports.misc.params; const Params = imports.misc.params;
const PopupMenu = imports.ui.popupMenu; const PopupMenu = imports.ui.popupMenu;
@ -469,6 +469,7 @@ const ChatSource = new Lang.Class({
destroy: function(reason) { destroy: function(reason) {
if (this._client.is_handling_channel(this._channel)) { if (this._client.is_handling_channel(this._channel)) {
this._ackMessages();
// The chat box has been destroyed so it can't // The chat box has been destroyed so it can't
// handle the channel any more. // handle the channel any more.
this._channel.close_async(function(channel, result) { this._channel.close_async(function(channel, result) {
@ -866,7 +867,7 @@ const ChatNotificationBanner = new Lang.Class({
}, },
_addMessage: function(message) { _addMessage: function(message) {
let highlighter = new Calendar.URLHighlighter(message.body, true, true); let highlighter = new MessageList.URLHighlighter(message.body, true, true);
let body = highlighter.actor; let body = highlighter.actor;
let styles = message.styles; let styles = message.styles;

View File

@ -259,7 +259,7 @@ const ShowAppsIcon = new Lang.Class({
}, },
_createIcon: function(size) { _createIcon: function(size) {
this._iconActor = new St.Icon({ icon_name: 'view-grid-symbolic', this._iconActor = new St.Icon({ icon_name: 'view-app-grid-symbolic',
icon_size: size, icon_size: size,
style_class: 'show-apps-icon', style_class: 'show-apps-icon',
track_hover: true }); track_hover: true });
@ -644,15 +644,14 @@ const Dash = new Lang.Class({
let firstIcon = firstButton._delegate.icon; let firstIcon = firstButton._delegate.icon;
let minHeight, natHeight; let minHeight, natHeight;
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
// Enforce the current icon size during the size request // Enforce the current icon size during the size request
firstIcon.setIconSize(this.iconSize); firstIcon.icon.ensure_style();
let [currentWidth, currentHeight] = firstIcon.icon.get_size();
firstIcon.icon.set_size(this.iconSize * scaleFactor, this.iconSize * scaleFactor);
[minHeight, natHeight] = firstButton.get_preferred_height(-1); [minHeight, natHeight] = firstButton.get_preferred_height(-1);
firstIcon.icon.set_size(currentWidth, currentHeight);
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
let iconSizes = baseIconSizes.map(function(s) {
return s * scaleFactor;
});
// Subtract icon padding and box spacing from the available height // Subtract icon padding and box spacing from the available height
availHeight -= iconChildren.length * (natHeight - this.iconSize * scaleFactor) + availHeight -= iconChildren.length * (natHeight - this.iconSize * scaleFactor) +
@ -660,6 +659,10 @@ const Dash = new Lang.Class({
let availSize = availHeight / iconChildren.length; let availSize = availHeight / iconChildren.length;
let iconSizes = baseIconSizes.map(function(s) {
return s * scaleFactor;
});
let newIconSize = baseIconSizes[0]; let newIconSize = baseIconSizes[0];
for (let i = 0; i < iconSizes.length; i++) { for (let i = 0; i < iconSizes.length; i++) {
if (iconSizes[i] < availSize) if (iconSizes[i] < availSize)

View File

@ -360,7 +360,7 @@ const DateMenuButton = new Lang.Class({
})); }));
// Fill up the first column // Fill up the first column
this._messageList = new Calendar.MessageList(); this._messageList = new Calendar.CalendarMessageList();
hbox.add(this._messageList.actor, { expand: true, y_fill: false, y_align: St.Align.START }); hbox.add(this._messageList.actor, { expand: true, y_fill: false, y_align: St.Align.START });
// Fill up the second column // Fill up the second column

View File

@ -79,9 +79,12 @@ const _Draggable = new Lang.Class({
dragActorOpacity: undefined }); dragActorOpacity: undefined });
this.actor = actor; this.actor = actor;
if (!params.manualMode) if (!params.manualMode) {
this.actor.connect('button-press-event', this.actor.connect('button-press-event',
Lang.bind(this, this._onButtonPress)); Lang.bind(this, this._onButtonPress));
this.actor.connect('touch-event',
Lang.bind(this, this._onTouchEvent));
}
this.actor.connect('destroy', Lang.bind(this, function() { this.actor.connect('destroy', Lang.bind(this, function() {
this._actorDestroyed = true; this._actorDestroyed = true;
@ -121,8 +124,50 @@ const _Draggable = new Lang.Class({
return Clutter.EVENT_PROPAGATE; return Clutter.EVENT_PROPAGATE;
}, },
_onTouchEvent: function (actor, event) {
if (event.type() != Clutter.EventType.TOUCH_BEGIN ||
!global.display.is_pointer_emulating_sequence(event.get_event_sequence()))
return Clutter.EVENT_PROPAGATE;
if (Tweener.getTweenCount(actor))
return Clutter.EVENT_PROPAGATE;
this._touchSequence = event.get_event_sequence();
this._buttonDown = true;
this._grabActor();
let [stageX, stageY] = event.get_coords();
this._dragStartX = stageX;
this._dragStartY = stageY;
return Clutter.EVENT_PROPAGATE;
},
_grabDevice: function(actor) {
let manager = Clutter.DeviceManager.get_default();
let pointer = manager.get_core_device(Clutter.InputDeviceType.POINTER_DEVICE);
if (pointer && this._touchSequence)
pointer.sequence_grab(this._touchSequence, actor);
else if (pointer)
pointer.grab (actor);
this._grabbedDevice = pointer;
},
_ungrabDevice: function() {
if (this._touchSequence)
this._grabbedDevice.sequence_ungrab (this._touchSequence);
else
this._grabbedDevice.ungrab();
this._touchSequence = null;
this._grabbedDevice = null;
},
_grabActor: function() { _grabActor: function() {
Clutter.grab_pointer(this.actor); this._grabDevice(this.actor);
this._onEventId = this.actor.connect('event', this._onEventId = this.actor.connect('event',
Lang.bind(this, this._onEvent)); Lang.bind(this, this._onEvent));
}, },
@ -131,7 +176,7 @@ const _Draggable = new Lang.Class({
if (!this._onEventId) if (!this._onEventId)
return; return;
Clutter.ungrab_pointer(); this._ungrabDevice();
this.actor.disconnect(this._onEventId); this.actor.disconnect(this._onEventId);
this._onEventId = null; this._onEventId = null;
}, },
@ -140,13 +185,13 @@ const _Draggable = new Lang.Class({
if (!this._eventsGrabbed) { if (!this._eventsGrabbed) {
this._eventsGrabbed = Main.pushModal(_getEventHandlerActor()); this._eventsGrabbed = Main.pushModal(_getEventHandlerActor());
if (this._eventsGrabbed) if (this._eventsGrabbed)
Clutter.grab_pointer(_getEventHandlerActor()); this._grabDevice(_getEventHandlerActor());
} }
}, },
_ungrabEvents: function() { _ungrabEvents: function() {
if (this._eventsGrabbed) { if (this._eventsGrabbed) {
Clutter.ungrab_pointer(); this._ungrabDevice();
Main.popModal(_getEventHandlerActor()); Main.popModal(_getEventHandlerActor());
this._eventsGrabbed = false; this._eventsGrabbed = false;
} }
@ -157,7 +202,9 @@ const _Draggable = new Lang.Class({
// didn't start the drag, to drop the draggable in case the drag was in progress, and // didn't start the drag, to drop the draggable in case the drag was in progress, and
// to complete the drag and ensure that whatever happens to be under the pointer does // to complete the drag and ensure that whatever happens to be under the pointer does
// not get triggered if the drag was cancelled with Esc. // not get triggered if the drag was cancelled with Esc.
if (event.type() == Clutter.EventType.BUTTON_RELEASE) { if (event.type() == Clutter.EventType.BUTTON_RELEASE ||
(event.type() == Clutter.EventType.TOUCH_END &&
global.display.is_pointer_emulating_sequence(event.get_event_sequence()))) {
this._buttonDown = false; this._buttonDown = false;
if (this._dragInProgress) { if (this._dragInProgress) {
return this._dragActorDropped(event); return this._dragActorDropped(event);
@ -172,7 +219,9 @@ const _Draggable = new Lang.Class({
} }
// We intercept MOTION event to figure out if the drag has started and to draw // We intercept MOTION event to figure out if the drag has started and to draw
// this._dragActor under the pointer when dragging is in progress // this._dragActor under the pointer when dragging is in progress
} else if (event.type() == Clutter.EventType.MOTION) { } else if (event.type() == Clutter.EventType.MOTION ||
(event.type() == Clutter.EventType.TOUCH_UPDATE &&
global.display.is_pointer_emulating_sequence(event.get_event_sequence()))) {
if (this._dragInProgress) { if (this._dragInProgress) {
return this._updateDragPosition(event); return this._updateDragPosition(event);
} else if (this._dragActor == null) { } else if (this._dragActor == null) {
@ -214,7 +263,7 @@ const _Draggable = new Lang.Class({
* This function is useful to call if you've specified manualMode * This function is useful to call if you've specified manualMode
* for the draggable. * for the draggable.
*/ */
startDrag: function (stageX, stageY, time) { startDrag: function (stageX, stageY, time, sequence) {
currentDraggable = this; currentDraggable = this;
this._dragInProgress = true; this._dragInProgress = true;
@ -228,6 +277,8 @@ const _Draggable = new Lang.Class({
this.emit('drag-begin', time); this.emit('drag-begin', time);
if (this._onEventId) if (this._onEventId)
this._ungrabActor(); this._ungrabActor();
this._touchSequence = sequence;
this._grabEvents(); this._grabEvents();
global.screen.set_cursor(Meta.Cursor.DND_IN_DRAG); global.screen.set_cursor(Meta.Cursor.DND_IN_DRAG);
@ -338,8 +389,8 @@ const _Draggable = new Lang.Class({
let threshold = Gtk.Settings.get_default().gtk_dnd_drag_threshold; let threshold = Gtk.Settings.get_default().gtk_dnd_drag_threshold;
if ((Math.abs(stageX - this._dragStartX) > threshold || if ((Math.abs(stageX - this._dragStartX) > threshold ||
Math.abs(stageY - this._dragStartY) > threshold)) { Math.abs(stageY - this._dragStartY) > threshold)) {
this.startDrag(stageX, stageY, event.get_time()); this.startDrag(stageX, stageY, event.get_time(), this._touchSequence);
this._updateDragPosition(event); this._updateDragPosition(event);
} }
return true; return true;

View File

@ -334,7 +334,7 @@ function _sessionUpdated() {
// from allowExtensions in the future // from allowExtensions in the future
if (Main.sessionMode.allowExtensions) { if (Main.sessionMode.allowExtensions) {
if (initted) if (initted)
onEnabledExtensionsChanged(); enabledExtensions = getEnabledExtensions();
enableAllExtensions(); enableAllExtensions();
} else { } else {
disableAllExtensions(); disableAllExtensions();

View File

@ -158,10 +158,22 @@ const CandidatePopup = new Lang.Class({
panelService.connect('set-cursor-location', panelService.connect('set-cursor-location',
Lang.bind(this, function(ps, x, y, w, h) { Lang.bind(this, function(ps, x, y, w, h) {
Main.layoutManager.setDummyCursorGeometry(x, y, w, h); this._setDummyCursorGeometry(x, y, w, h);
if (this._boxPointer.actor.visible)
this._boxPointer.setPosition(Main.layoutManager.dummyCursor, 0);
})); }));
try {
panelService.connect('set-cursor-location-relative',
Lang.bind(this, function(ps, x, y, w, h) {
if (!global.display.focus_window)
return;
let window = global.display.focus_window.get_compositor_private();
this._setDummyCursorGeometry(window.x + x, window.y + y, w, h);
}));
} catch(e) {
// Only recent IBus versions have support for this signal
// which is used for wayland clients. In order to work
// with older IBus versions we can silently ignore the
// signal's absence.
}
panelService.connect('update-preedit-text', panelService.connect('update-preedit-text',
Lang.bind(this, function(ps, text, cursorPosition, visible) { Lang.bind(this, function(ps, text, cursorPosition, visible) {
this._preeditText.visible = visible; this._preeditText.visible = visible;
@ -246,6 +258,12 @@ const CandidatePopup = new Lang.Class({
})); }));
}, },
_setDummyCursorGeometry: function(x, y, w, h) {
Main.layoutManager.setDummyCursorGeometry(x, y, w, h);
if (this._boxPointer.actor.visible)
this._boxPointer.setPosition(Main.layoutManager.dummyCursor, 0);
},
_updateVisibility: function() { _updateVisibility: function() {
let isVisible = (this._preeditText.visible || let isVisible = (this._preeditText.visible ||
this._auxText.visible || this._auxText.visible ||

View File

@ -50,15 +50,14 @@ const LegacyTray = new Lang.Class({
this._slideLayout.translationX = 0; this._slideLayout.translationX = 0;
this._slideLayout.slideDirection = OverviewControls.SlideDirection.LEFT; this._slideLayout.slideDirection = OverviewControls.SlideDirection.LEFT;
this._slider = new St.Widget({ style_class: 'legacy-tray', this._slider = new St.Widget({ x_expand: true, y_expand: true,
x_expand: true, y_expand: true,
x_align: Clutter.ActorAlign.START, x_align: Clutter.ActorAlign.START,
y_align: Clutter.ActorAlign.END, y_align: Clutter.ActorAlign.END,
layout_manager: this._slideLayout }); layout_manager: this._slideLayout });
this.actor.add_actor(this._slider); this.actor.add_actor(this._slider);
this._slider.connect('notify::allocation', Lang.bind(this, this._syncBarrier)); this._slider.connect('notify::allocation', Lang.bind(this, this._syncBarrier));
this._box = new St.BoxLayout(); this._box = new St.BoxLayout({ style_class: 'legacy-tray' });
this._slider.add_actor(this._box); this._slider.add_actor(this._box);
this._concealHandle = new St.Button({ style_class: 'legacy-tray-handle', this._concealHandle = new St.Button({ style_class: 'legacy-tray-handle',

View File

@ -11,6 +11,7 @@ const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell; const Shell = imports.gi.Shell;
const St = imports.gi.St; const St = imports.gi.St;
const AudioDeviceSelection = imports.ui.audioDeviceSelection;
const Components = imports.ui.components; const Components = imports.ui.components;
const CtrlAltTab = imports.ui.ctrlAltTab; const CtrlAltTab = imports.ui.ctrlAltTab;
const EndSessionDialog = imports.ui.endSessionDialog; const EndSessionDialog = imports.ui.endSessionDialog;
@ -62,6 +63,7 @@ let ctrlAltTabManager = null;
let osdWindowManager = null; let osdWindowManager = null;
let osdMonitorLabeler = null; let osdMonitorLabeler = null;
let sessionMode = null; let sessionMode = null;
let shellAudioSelectionDBusService = null;
let shellDBusService = null; let shellDBusService = null;
let shellMountOpDBusService = null; let shellMountOpDBusService = null;
let screenSaverDBus = null; let screenSaverDBus = null;
@ -78,6 +80,7 @@ let _startDate;
let _defaultCssStylesheet = null; let _defaultCssStylesheet = null;
let _cssStylesheet = null; let _cssStylesheet = null;
let _a11ySettings = null; let _a11ySettings = null;
let _themeResource = null;
function _sessionUpdated() { function _sessionUpdated() {
if (sessionMode.isPrimary) if (sessionMode.isPrimary)
@ -119,6 +122,7 @@ function start() {
_loadDefaultStylesheet); _loadDefaultStylesheet);
_initializeUI(); _initializeUI();
shellAudioSelectionDBusService = new AudioDeviceSelection.AudioDeviceSelectionDBus();
shellDBusService = new ShellDBus.GnomeShell(); shellDBusService = new ShellDBus.GnomeShell();
shellMountOpDBusService = new ShellMountOperation.GnomeShellMountOpHandler(); shellMountOpDBusService = new ShellMountOperation.GnomeShellMountOpHandler();
@ -137,9 +141,7 @@ function _initializeUI() {
Shell.WindowTracker.get_default(); Shell.WindowTracker.get_default();
Shell.AppUsage.get_default(); Shell.AppUsage.get_default();
let resource = Gio.Resource.load(global.datadir + '/gnome-shell-theme.gresource'); reloadThemeResource();
resource._register();
_loadDefaultStylesheet(); _loadDefaultStylesheet();
// Setup the stage hierarchy early // Setup the stage hierarchy early
@ -290,6 +292,14 @@ function setThemeStylesheet(cssStylesheet) {
_cssStylesheet = cssStylesheet ? Gio.File.new_for_path(cssStylesheet) : null; _cssStylesheet = cssStylesheet ? Gio.File.new_for_path(cssStylesheet) : null;
} }
function reloadThemeResource() {
if (_themeResource)
_themeResource._unregister();
_themeResource = Gio.Resource.load(global.datadir + '/gnome-shell-theme.gresource');
_themeResource._register();
}
/** /**
* loadTheme: * loadTheme:
* *

726
js/ui/messageList.js Normal file
View File

@ -0,0 +1,726 @@
const Atk = imports.gi.Atk;
const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const GObject = imports.gi.GObject;
const Lang = imports.lang;
const Main = imports.ui.main;
const MessageTray = imports.ui.messageTray;
const Meta = imports.gi.Meta;
const Pango = imports.gi.Pango;
const Signals = imports.signals;
const St = imports.gi.St;
const Calendar = imports.ui.calendar;
const Tweener = imports.ui.tweener;
const Util = imports.misc.util;
const MESSAGE_ANIMATION_TIME = 0.1;
const DEFAULT_EXPAND_LINES = 6;
function _fixMarkup(text, allowMarkup) {
if (allowMarkup) {
// Support &amp;, &quot;, &apos;, &lt; and &gt;, escape all other
// occurrences of '&'.
let _text = text.replace(/&(?!amp;|quot;|apos;|lt;|gt;)/g, '&amp;');
// Support <b>, <i>, and <u>, escape anything else
// so it displays as raw markup.
_text = _text.replace(/<(?!\/?[biu]>)/g, '&lt;');
try {
Pango.parse_markup(_text, -1, '');
return _text;
} catch (e) {}
}
// !allowMarkup, or invalid markup
return GLib.markup_escape_text(text, -1);
}
const URLHighlighter = new Lang.Class({
Name: 'URLHighlighter',
_init: function(text, lineWrap, allowMarkup) {
if (!text)
text = '';
this.actor = new St.Label({ reactive: true, style_class: 'url-highlighter',
x_expand: true, x_align: Clutter.ActorAlign.START });
this._linkColor = '#ccccff';
this.actor.connect('style-changed', Lang.bind(this, function() {
let [hasColor, color] = this.actor.get_theme_node().lookup_color('link-color', false);
if (hasColor) {
let linkColor = color.to_string().substr(0, 7);
if (linkColor != this._linkColor) {
this._linkColor = linkColor;
this._highlightUrls();
}
}
}));
this.actor.clutter_text.line_wrap = lineWrap;
this.actor.clutter_text.line_wrap_mode = Pango.WrapMode.WORD_CHAR;
this.setMarkup(text, allowMarkup);
this.actor.connect('button-press-event', Lang.bind(this, function(actor, event) {
// Don't try to URL highlight when invisible.
// The MessageTray doesn't actually hide us, so
// we need to check for paint opacities as well.
if (!actor.visible || actor.get_paint_opacity() == 0)
return Clutter.EVENT_PROPAGATE;
// Keep Notification.actor from seeing this and taking
// a pointer grab, which would block our button-release-event
// handler, if an URL is clicked
return this._findUrlAtPos(event) != -1;
}));
this.actor.connect('button-release-event', Lang.bind(this, function (actor, event) {
if (!actor.visible || actor.get_paint_opacity() == 0)
return Clutter.EVENT_PROPAGATE;
let urlId = this._findUrlAtPos(event);
if (urlId != -1) {
let url = this._urls[urlId].url;
if (url.indexOf(':') == -1)
url = 'http://' + url;
Gio.app_info_launch_default_for_uri(url, global.create_app_launch_context(0, -1));
return Clutter.EVENT_STOP;
}
return Clutter.EVENT_PROPAGATE;
}));
this.actor.connect('motion-event', Lang.bind(this, function(actor, event) {
if (!actor.visible || actor.get_paint_opacity() == 0)
return Clutter.EVENT_PROPAGATE;
let urlId = this._findUrlAtPos(event);
if (urlId != -1 && !this._cursorChanged) {
global.screen.set_cursor(Meta.Cursor.POINTING_HAND);
this._cursorChanged = true;
} else if (urlId == -1) {
global.screen.set_cursor(Meta.Cursor.DEFAULT);
this._cursorChanged = false;
}
return Clutter.EVENT_PROPAGATE;
}));
this.actor.connect('leave-event', Lang.bind(this, function() {
if (!this.actor.visible || this.actor.get_paint_opacity() == 0)
return Clutter.EVENT_PROPAGATE;
if (this._cursorChanged) {
this._cursorChanged = false;
global.screen.set_cursor(Meta.Cursor.DEFAULT);
}
return Clutter.EVENT_PROPAGATE;
}));
},
setMarkup: function(text, allowMarkup) {
text = text ? _fixMarkup(text, allowMarkup) : '';
this._text = text;
this.actor.clutter_text.set_markup(text);
/* clutter_text.text contain text without markup */
this._urls = Util.findUrls(this.actor.clutter_text.text);
this._highlightUrls();
},
_highlightUrls: function() {
// text here contain markup
let urls = Util.findUrls(this._text);
let markup = '';
let pos = 0;
for (let i = 0; i < urls.length; i++) {
let url = urls[i];
let str = this._text.substr(pos, url.pos - pos);
markup += str + '<span foreground="' + this._linkColor + '"><u>' + url.url + '</u></span>';
pos = url.pos + url.url.length;
}
markup += this._text.substr(pos);
this.actor.clutter_text.set_markup(markup);
},
_findUrlAtPos: function(event) {
let success;
let [x, y] = event.get_coords();
[success, x, y] = this.actor.transform_stage_point(x, y);
let find_pos = -1;
for (let i = 0; i < this.actor.clutter_text.text.length; i++) {
let [success, px, py, line_height] = this.actor.clutter_text.position_to_coords(i);
if (py > y || py + line_height < y || x < px)
continue;
find_pos = i;
}
if (find_pos != -1) {
for (let i = 0; i < this._urls.length; i++)
if (find_pos >= this._urls[i].pos &&
this._urls[i].pos + this._urls[i].url.length > find_pos)
return i;
}
return -1;
}
});
const ScaleLayout = new Lang.Class({
Name: 'ScaleLayout',
Extends: Clutter.BinLayout,
_connectContainer: function(container) {
if (this._container == container)
return;
if (this._container)
for (let id of this._signals)
this._container.disconnect(id);
this._container = container;
this._signals = [];
if (this._container)
for (let signal of ['notify::scale-x', 'notify::scale-y']) {
let id = this._container.connect(signal, Lang.bind(this,
function() {
this.layout_changed();
}));
this._signals.push(id);
}
},
vfunc_get_preferred_width: function(container, forHeight) {
this._connectContainer(container);
let [min, nat] = this.parent(container, forHeight);
return [Math.floor(min * container.scale_x),
Math.floor(nat * container.scale_x)];
},
vfunc_get_preferred_height: function(container, forWidth) {
this._connectContainer(container);
let [min, nat] = this.parent(container, forWidth);
return [Math.floor(min * container.scale_y),
Math.floor(nat * container.scale_y)];
}
});
const LabelExpanderLayout = new Lang.Class({
Name: 'LabelExpanderLayout',
Extends: Clutter.LayoutManager,
Properties: { 'expansion': GObject.ParamSpec.double('expansion',
'Expansion',
'Expansion of the layout, between 0 (collapsed) ' +
'and 1 (fully expanded',
GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE,
0, 1, 0)},
_init: function(params) {
this._expansion = 0;
this._expandLines = DEFAULT_EXPAND_LINES;
this.parent(params);
},
get expansion() {
return this._expansion;
},
set expansion(v) {
if (v == this._expansion)
return;
this._expansion = v;
this.notify('expansion');
let visibleIndex = this._expansion > 0 ? 1 : 0;
for (let i = 0; this._container && i < this._container.get_n_children(); i++)
this._container.get_child_at_index(i).visible = (i == visibleIndex);
this.layout_changed();
},
set expandLines(v) {
if (v == this._expandLines)
return;
this._expandLines = v;
if (this._expansion > 0)
this.layout_changed();
},
vfunc_set_container: function(container) {
this._container = container;
},
vfunc_get_preferred_width: function(container, forHeight) {
let [min, nat] = [0, 0];
for (let i = 0; i < container.get_n_children(); i++) {
if (i > 1)
break; // we support one unexpanded + one expanded child
let child = container.get_child_at_index(i);
let [childMin, childNat] = child.get_preferred_width(forHeight);
[min, nat] = [Math.max(min, childMin), Math.max(nat, childNat)];
}
return [min, nat];
},
vfunc_get_preferred_height: function(container, forWidth) {
let [min, nat] = [0, 0];
let children = container.get_children();
if (children[0])
[min, nat] = children[0].get_preferred_height(forWidth);
if (children[1]) {
let [min2, nat2] = children[1].get_preferred_height(forWidth);
let [expMin, expNat] = [Math.min(min2, min * this._expandLines),
Math.min(nat2, nat * this._expandLines)];
[min, nat] = [min + this._expansion * (expMin - min),
nat + this._expansion * (expNat - nat)];
}
return [min, nat];
},
vfunc_allocate: function(container, box, flags) {
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);
}
}
});
const Message = new Lang.Class({
Name: 'Message',
_init: function(title, body) {
this.expanded = false;
this.actor = new St.Button({ style_class: 'message',
accessible_role: Atk.Role.NOTIFICATION,
can_focus: true,
x_expand: true, x_fill: true });
this.actor.connect('key-press-event',
Lang.bind(this, this._onKeyPressed));
let vbox = new St.BoxLayout({ vertical: true });
this.actor.set_child(vbox);
let hbox = new St.BoxLayout();
vbox.add_actor(hbox);
this._actionBin = new St.Widget({ layout_manager: new ScaleLayout(),
visible: false });
vbox.add_actor(this._actionBin);
this._iconBin = new St.Bin({ style_class: 'message-icon-bin',
y_expand: true,
visible: false });
hbox.add_actor(this._iconBin);
let contentBox = new St.BoxLayout({ style_class: 'message-content',
vertical: true, x_expand: true });
hbox.add_actor(contentBox);
this._mediaControls = new St.BoxLayout();
hbox.add_actor(this._mediaControls);
let titleBox = new St.BoxLayout();
contentBox.add_actor(titleBox);
this.titleLabel = new St.Label({ style_class: 'message-title',
x_expand: true,
x_align: Clutter.ActorAlign.START });
this.setTitle(title);
titleBox.add_actor(this.titleLabel);
this._secondaryBin = new St.Bin({ style_class: 'message-secondary-bin' });
titleBox.add_actor(this._secondaryBin);
let closeIcon = new St.Icon({ icon_name: 'window-close-symbolic',
icon_size: 16 });
this._closeButton = new St.Button({ child: closeIcon, visible: false });
titleBox.add_actor(this._closeButton);
this._bodyStack = new St.Widget({ x_expand: true });
this._bodyStack.layout_manager = new LabelExpanderLayout();
contentBox.add_actor(this._bodyStack);
this.bodyLabel = new URLHighlighter('', false, this._useBodyMarkup);
this.bodyLabel.actor.add_style_class_name('message-body');
this._bodyStack.add_actor(this.bodyLabel.actor);
this.setBody(body);
this._closeButton.connect('clicked', Lang.bind(this, this.close));
this.actor.connect('notify::hover', Lang.bind(this, this._sync));
this.actor.connect('clicked', Lang.bind(this, this._onClicked));
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
this._sync();
},
close: function() {
this.emit('close');
},
setIcon: function(actor) {
this._iconBin.child = actor;
this._iconBin.visible = (actor != null);
},
setSecondaryActor: function(actor) {
this._secondaryBin.child = actor;
},
setTitle: function(text) {
let title = text ? _fixMarkup(text.replace(/\n/g, ' '), false) : '';
this.titleLabel.clutter_text.set_markup(title);
},
setBody: function(text) {
this._bodyText = text;
this.bodyLabel.setMarkup(text ? text.replace(/\n/g, ' ') : '',
this._useBodyMarkup);
if (this._expandedLabel)
this._expandedLabel.setMarkup(text, this._useBodyMarkup);
},
setUseBodyMarkup: function(enable) {
if (this._useBodyMarkup === enable)
return;
this._useBodyMarkup = enable;
if (this.bodyLabel)
this.setBody(this._bodyText);
},
setActionArea: function(actor) {
if (actor == null) {
if (this._actionBin.get_n_children() > 0)
this._actionBin.get_child_at_index(0).destroy();
return;
}
if (this._actionBin.get_n_children() > 0)
throw new Error('Message already has an action area');
this._actionBin.add_actor(actor);
this._actionBin.visible = this.expanded;
},
addMediaControl: function(iconName, callback) {
let icon = new St.Icon({ icon_name: iconName, icon_size: 16 });
let button = new St.Button({ style_class: 'message-media-control',
child: icon });
button.connect('clicked', callback);
this._mediaControls.add_actor(button);
return button;
},
setExpandedBody: function(actor) {
if (actor == null) {
if (this._bodyStack.get_n_children() > 1)
this._bodyStack.get_child_at_index(1).destroy();
return;
}
if (this._bodyStack.get_n_children() > 1)
throw new Error('Message already has an expanded body actor');
this._bodyStack.insert_child_at_index(actor, 1);
},
setExpandedLines: function(nLines) {
this._bodyStack.layout_manager.expandLines = nLines;
},
expand: function(animate) {
this.expanded = true;
this._actionBin.visible = (this._actionBin.get_n_children() > 0);
if (this._bodyStack.get_n_children() < 2) {
this._expandedLabel = new URLHighlighter(this._bodyText,
true, this._useBodyMarkup);
this.setExpandedBody(this._expandedLabel.actor);
}
if (animate) {
Tweener.addTween(this._bodyStack.layout_manager,
{ expansion: 1,
time: MessageTray.ANIMATION_TIME,
transition: 'easeOutQuad' });
this._actionBin.scale_y = 0;
Tweener.addTween(this._actionBin,
{ scale_y: 1,
time: MessageTray.ANIMATION_TIME,
transition: 'easeOutQuad' });
} else {
this._bodyStack.layout_manager.expansion = 1;
this._actionBin.scale_y = 1;
}
this.emit('expanded');
},
unexpand: function(animate) {
if (animate) {
Tweener.addTween(this._bodyStack.layout_manager,
{ expansion: 0,
time: MessageTray.ANIMATION_TIME,
transition: 'easeOutQuad' });
Tweener.addTween(this._actionBin,
{ scale_y: 0,
time: MessageTray.ANIMATION_TIME,
transition: 'easeOutQuad',
onCompleteScope: this,
onComplete: function() {
this._actionBin.hide();
this.expanded = false;
}});
} else {
this._bodyStack.layout_manager.expansion = 0;
this._actionBin.scale_y = 0;
this.expanded = false;
}
this.emit('unexpanded');
},
canClose: function() {
return this._mediaControls.get_n_children() == 0;
},
_sync: function() {
let hovered = this.actor.hover;
this._closeButton.visible = hovered && this.canClose();
this._secondaryBin.visible = !hovered;
},
_onClicked: function() {
},
_onDestroy: function() {
},
_onKeyPressed: function(a, event) {
let keysym = event.get_key_symbol();
if (keysym == Clutter.KEY_Delete ||
keysym == Clutter.KEY_KP_Delete) {
this.close();
return Clutter.EVENT_STOP;
}
return Clutter.EVENT_PROPAGATE;
}
});
Signals.addSignalMethods(Message.prototype);
const MessageListSection = new Lang.Class({
Name: 'MessageListSection',
_init: function(title) {
this.actor = new St.BoxLayout({ style_class: 'message-list-section',
clip_to_allocation: true,
x_expand: true, vertical: true });
let titleBox = new St.BoxLayout({ style_class: 'message-list-section-title-box' });
this.actor.add_actor(titleBox);
this._title = new St.Button({ style_class: 'message-list-section-title',
label: title,
can_focus: true,
x_expand: true,
x_align: St.Align.START });
titleBox.add_actor(this._title);
this._title.connect('clicked', Lang.bind(this, this._onTitleClicked));
this._title.connect('key-focus-in', Lang.bind(this, this._onKeyFocusIn));
let closeIcon = new St.Icon({ icon_name: 'window-close-symbolic' });
this._closeButton = new St.Button({ style_class: 'message-list-section-close',
child: closeIcon,
accessible_name: _("Clear section"),
can_focus: true });
this._closeButton.set_x_align(Clutter.ActorAlign.END);
titleBox.add_actor(this._closeButton);
this._closeButton.connect('clicked', Lang.bind(this, this.clear));
this._list = new St.BoxLayout({ style_class: 'message-list-section-list',
vertical: true });
this.actor.add_actor(this._list);
this._list.connect('actor-added', Lang.bind(this, this._sync));
this._list.connect('actor-removed', Lang.bind(this, this._sync));
let id = Main.sessionMode.connect('updated',
Lang.bind(this, this._sync));
this.actor.connect('destroy', function() {
Main.sessionMode.disconnect(id);
});
this._messages = new Map();
this._date = new Date();
this.empty = true;
this._sync();
},
_onTitleClicked: function() {
Main.overview.hide();
Main.panel.closeCalendar();
},
_onKeyFocusIn: function(actor) {
this.emit('key-focus-in', actor);
},
get allowed() {
return true;
},
setDate: function(date) {
if (Calendar.sameDay(date, this._date))
return;
this._date = date;
this._sync();
},
addMessage: function(message, animate) {
this.addMessageAtIndex(message, -1, animate);
},
addMessageAtIndex: function(message, index, animate) {
let obj = {
container: null,
destroyId: 0,
keyFocusId: 0,
closeId: 0
};
let pivot = new Clutter.Point({ x: .5, y: .5 });
let scale = animate ? 0 : 1;
obj.container = new St.Widget({ layout_manager: new ScaleLayout(),
pivot_point: pivot,
scale_x: scale, scale_y: scale });
obj.keyFocusId = message.actor.connect('key-focus-in',
Lang.bind(this, this._onKeyFocusIn));
obj.destroyId = message.actor.connect('destroy',
Lang.bind(this, function() {
this.removeMessage(message, false);
}));
obj.closeId = message.connect('close',
Lang.bind(this, function() {
this.removeMessage(message, true);
}));
this._messages.set(message, obj);
obj.container.add_actor(message.actor);
this._list.insert_child_at_index(obj.container, index);
if (animate)
Tweener.addTween(obj.container, { scale_x: 1,
scale_y: 1,
time: MESSAGE_ANIMATION_TIME,
transition: 'easeOutQuad' });
},
moveMessage: function(message, index, animate) {
let obj = this._messages.get(message);
if (!animate) {
this._list.set_child_at_index(obj.container, index);
return;
}
let onComplete = Lang.bind(this, function() {
this._list.set_child_at_index(obj.container, index);
Tweener.addTween(obj.container, { scale_x: 1,
scale_y: 1,
time: MESSAGE_ANIMATION_TIME,
transition: 'easeOutQuad' });
});
Tweener.addTween(obj.container, { scale_x: 0,
scale_y: 0,
time: MESSAGE_ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: onComplete });
},
removeMessage: function(message, animate) {
let obj = this._messages.get(message);
message.actor.disconnect(obj.destroyId);
message.actor.disconnect(obj.keyFocusId);
message.disconnect(obj.closeId);
this._messages.delete(message);
if (animate) {
Tweener.addTween(obj.container, { scale_x: 0, scale_y: 0,
time: MESSAGE_ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: function() {
obj.container.destroy();
global.sync_pointer();
}});
} else {
obj.container.destroy();
global.sync_pointer();
}
},
clear: function() {
let messages = [...this._messages.keys()].filter(function(message) {
return message.canClose();
});
// If there are few messages, letting them all zoom out looks OK
if (messages.length < 2) {
messages.forEach(function(message) {
message.close();
});
} else {
// Otherwise we slide them out one by one, and then zoom them
// out "off-screen" in the end to smoothly shrink the parent
let delay = MESSAGE_ANIMATION_TIME / Math.max(messages.length, 5);
for (let i = 0; i < messages.length; i++) {
let message = messages[i];
let obj = this._messages.get(message);
Tweener.addTween(obj.container,
{ anchor_x: this._list.width,
opacity: 0,
time: MESSAGE_ANIMATION_TIME,
delay: i * delay,
transition: 'easeOutQuad',
onComplete: function() {
message.close();
}});
}
}
},
_canClear: function() {
for (let message of this._messages.keys())
if (message.canClose())
return true;
return false;
},
_shouldShow: function() {
return !this.empty;
},
_sync: function() {
let empty = this._list.get_n_children() == 0;
let changed = this.empty !== empty;
this.empty = empty;
if (changed)
this.emit('empty-changed');
this._closeButton.visible = this._canClear();
this.actor.visible = this.allowed && this._shouldShow();
}
});
Signals.addSignalMethods(MessageListSection.prototype);

270
js/ui/mpris.js Normal file
View File

@ -0,0 +1,270 @@
const Gio = imports.gi.Gio;
const Lang = imports.lang;
const Signals = imports.signals;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const Calendar = imports.ui.calendar;
const Main = imports.ui.main;
const MessageList = imports.ui.messageList;
const DBusIface = '<node> \
<interface name="org.freedesktop.DBus"> \
<method name="ListNames"> \
<arg type="as" direction="out" name="names" /> \
</method> \
<signal name="NameOwnerChanged"> \
<arg type="s" direction="out" name="name" /> \
<arg type="s" direction="out" name="oldOwner" /> \
<arg type="s" direction="out" name="newOwner" /> \
</signal> \
</interface> \
</node>';
const DBusProxy = Gio.DBusProxy.makeProxyWrapper(DBusIface);
const MprisIface = '<node> \
<interface name="org.mpris.MediaPlayer2"> \
<method name="Raise" /> \
<property name="CanRaise" type="b" access="read" /> \
<property name="DesktopEntry" type="s" access="read" /> \
</interface> \
</node>';
const MprisProxy = Gio.DBusProxy.makeProxyWrapper(MprisIface);
const MprisPlayerIface = '<node> \
<interface name="org.mpris.MediaPlayer2.Player"> \
<method name="PlayPause" /> \
<method name="Next" /> \
<method name="Previous" /> \
<property name="CanPlay" type="b" access="read" /> \
<property name="Metadata" type="a{sv}" access="read" /> \
<property name="PlaybackStatus" type="s" access="read" /> \
</interface> \
</node>';
const MprisPlayerProxy = Gio.DBusProxy.makeProxyWrapper(MprisPlayerIface);
const MPRIS_PLAYER_PREFIX = 'org.mpris.MediaPlayer2.';
const MediaMessage = new Lang.Class({
Name: 'MediaMessage',
Extends: MessageList.Message,
_init: function(player) {
this._player = player;
this.parent('', '');
this._icon = new St.Icon({ style_class: 'media-message-cover-icon' });
this.setIcon(this._icon);
this.addMediaControl('media-skip-backward-symbolic',
Lang.bind(this, function() {
this._player.previous();
}));
this._playPauseButton = this.addMediaControl(null,
Lang.bind(this, function() {
this._player.playPause();
}));
this.addMediaControl('media-skip-forward-symbolic',
Lang.bind(this, function() {
this._player.next();
}));
this._player.connect('changed', Lang.bind(this, this._update));
this._player.connect('closed', Lang.bind(this, this.close));
this._update();
},
_onClicked: function() {
this._player.raise();
Main.panel.closeCalendar();
},
_update: function() {
this.setTitle(this._player.trackArtists.join(', '));
this.setBody(this._player.trackTitle);
if (this._player.trackCoverUrl) {
let file = Gio.File.new_for_uri(this._player.trackCoverUrl);
this._icon.gicon = new Gio.FileIcon({ file: file });
this._icon.remove_style_class_name('fallback');
} else {
this._icon.icon_name = 'audio-x-generic-symbolic';
this._icon.add_style_class_name('fallback');
}
let isPlaying = this._player.status == 'Playing';
let iconName = isPlaying ? 'media-playback-pause-symbolic'
: 'media-playback-start-symbolic';
this._playPauseButton.child.icon_name = iconName;
}
});
const MprisPlayer = new Lang.Class({
Name: 'MprisPlayer',
_init: function(busName) {
this._mprisProxy = new MprisProxy(Gio.DBus.session, busName,
'/org/mpris/MediaPlayer2',
Lang.bind(this, this._onMprisProxyReady));
this._playerProxy = new MprisPlayerProxy(Gio.DBus.session, busName,
'/org/mpris/MediaPlayer2',
Lang.bind(this, this._onPlayerProxyReady));
this._visible = false;
this._trackArtists = [];
this._trackTitle = '';
this._trackCoverUrl = '';
},
get status() {
return this._playerProxy.PlaybackStatus;
},
get trackArtists() {
return this._trackArtists;
},
get trackTitle() {
return this._trackTitle;
},
get trackCoverUrl() {
return this._trackCoverUrl;
},
playPause: function() {
this._playerProxy.PlayPauseRemote();
},
next: function() {
this._playerProxy.NextRemote();
},
previous: function() {
this._playerProxy.PreviousRemote();
},
raise: function() {
// The remote Raise() method may run into focus stealing prevention,
// so prefer activating the app via .desktop file if possible
let app = null;
if (this._mprisProxy.DesktopEntry) {
let desktopId = this._mprisProxy.DesktopEntry + '.desktop';
app = Shell.AppSystem.get_default().lookup_app(desktopId);
}
if (app)
app.activate();
else if (this._mprisProxy.CanRaise)
this._mprisProxy.RaiseRemote();
},
_close: function() {
this._mprisProxy.disconnect(this._ownerNotifyId);
this._mprisProxy = null;
this._playerProxy.disconnect(this._propsChangedId);
this._playerProxy = null;
this.emit('closed');
},
_onMprisProxyReady: function() {
this._ownerNotifyId = this._mprisProxy.connect('notify::g-name-owner',
Lang.bind(this, function() {
if (!this._mprisProxy.g_name_owner)
this._close();
}));
},
_onPlayerProxyReady: function() {
this._propsChangedId = this._playerProxy.connect('g-properties-changed',
Lang.bind(this, this._updateState));
this._updateState();
},
_updateState: function() {
let metadata = {};
for (let prop in this._playerProxy.Metadata)
metadata[prop] = this._playerProxy.Metadata[prop].deep_unpack();
this._trackArtists = metadata['xesam:artist'] || [_("Unknown artist")];
this._trackTitle = metadata['xesam:title'] || _("Unknown title");
this._trackCoverUrl = metadata['mpris:artUrl'] || '';
this.emit('changed');
let visible = this._playerProxy.CanPlay;
if (this._visible != visible) {
this._visible = visible;
if (visible)
this.emit('show');
else
this._close();
}
}
});
Signals.addSignalMethods(MprisPlayer.prototype);
const MediaSection = new Lang.Class({
Name: 'MediaSection',
Extends: MessageList.MessageListSection,
_init: function() {
this.parent(_("Media"));
this._players = new Map();
this._proxy = new DBusProxy(Gio.DBus.session,
'org.freedesktop.DBus',
'/org/freedesktop/DBus',
Lang.bind(this, this._onProxyReady));
},
_shouldShow: function() {
return !this.empty && Calendar.isToday(this._date);
},
_addPlayer: function(busName) {
if (this._players.get(busName))
return;
let player = new MprisPlayer(busName);
player.connect('closed', Lang.bind(this,
function() {
this._players.delete(busName);
}));
player.connect('show', Lang.bind(this,
function() {
let message = new MediaMessage(player);
this.addMessage(message, true);
}));
this._players.set(busName, player);
},
_onProxyReady: function() {
this._proxy.ListNamesRemote(Lang.bind(this,
function([names]) {
names.forEach(Lang.bind(this,
function(name) {
if (!name.startsWith(MPRIS_PLAYER_PREFIX))
return;
this._addPlayer(name);
}));
}));
this._proxy.connectSignal('NameOwnerChanged',
Lang.bind(this, this._onNameOwnerChanged));
},
_onNameOwnerChanged: function(proxy, sender, [name, oldOwner, newOwner]) {
if (!name.startsWith(MPRIS_PLAYER_PREFIX))
return;
if (newOwner && !oldOwner)
this._addPlayer(name);
}
});

View File

@ -95,6 +95,7 @@ const AppMenuButton = new Lang.Class({
this._startingApps = []; this._startingApps = [];
this._menuManager = panel.menuManager; this._menuManager = panel.menuManager;
this._gtkSettings = Gtk.Settings.get_default();
this._targetApp = null; this._targetApp = null;
this._appMenuNotifyId = 0; this._appMenuNotifyId = 0;
this._actionGroupNotifyId = 0; this._actionGroupNotifyId = 0;
@ -123,11 +124,14 @@ const AppMenuButton = new Lang.Class({
this._arrow = PopupMenu.arrowIcon(St.Side.BOTTOM); this._arrow = PopupMenu.arrowIcon(St.Side.BOTTOM);
this._container.add_actor(this._arrow); this._container.add_actor(this._arrow);
this._visible = !Main.overview.visible; this._visible = this._gtkSettings.gtk_shell_shows_app_menu &&
!Main.overview.visible;
if (!this._visible) if (!this._visible)
this.actor.hide(); this.actor.hide();
this._overviewHidingId = Main.overview.connect('hiding', Lang.bind(this, this._sync)); this._overviewHidingId = Main.overview.connect('hiding', Lang.bind(this, this._sync));
this._overviewShowingId = Main.overview.connect('showing', Lang.bind(this, this._sync)); this._overviewShowingId = Main.overview.connect('showing', Lang.bind(this, this._sync));
this._showsAppMenuId = this._gtkSettings.connect('notify::gtk-shell-shows-app-menu',
Lang.bind(this, this._sync));
this._stop = true; this._stop = true;
@ -305,7 +309,9 @@ const AppMenuButton = new Lang.Class({
} }
} }
let visible = (this._targetApp != null && !Main.overview.visibleTarget); let visible = (this._targetApp != null &&
this._gtkSettings.gtk_shell_shows_app_menu &&
!Main.overview.visibleTarget);
if (visible) if (visible)
this.show(); this.show();
else else
@ -378,6 +384,10 @@ const AppMenuButton = new Lang.Class({
Main.overview.disconnect(this._overviewShowingId); Main.overview.disconnect(this._overviewShowingId);
this._overviewShowingId = 0; this._overviewShowingId = 0;
} }
if (this._showsAppMenuId > 0) {
this._gtkSettings.disconnect(this._showsAppMenuId);
this._showsAppMenuId = 0;
}
if (this._switchWorkspaceNotifyId > 0) { if (this._switchWorkspaceNotifyId > 0) {
global.window_manager.disconnect(this._switchWorkspaceNotifyId); global.window_manager.disconnect(this._switchWorkspaceNotifyId);
this._switchWorkspaceNotifyId = 0; this._switchWorkspaceNotifyId = 0;
@ -449,7 +459,8 @@ const ActivitiesButton = new Lang.Class({
if (event.type() == Clutter.EventType.TOUCH_END || if (event.type() == Clutter.EventType.TOUCH_END ||
event.type() == Clutter.EventType.BUTTON_RELEASE) event.type() == Clutter.EventType.BUTTON_RELEASE)
Main.overview.toggle(); if (Main.overview.shouldToggleByCornerOrButton())
Main.overview.toggle();
return Clutter.EVENT_PROPAGATE; return Clutter.EVENT_PROPAGATE;
}, },
@ -457,7 +468,8 @@ const ActivitiesButton = new Lang.Class({
_onKeyRelease: function(actor, event) { _onKeyRelease: function(actor, event) {
let symbol = event.get_key_symbol(); let symbol = event.get_key_symbol();
if (symbol == Clutter.KEY_Return || symbol == Clutter.KEY_space) { if (symbol == Clutter.KEY_Return || symbol == Clutter.KEY_space) {
Main.overview.toggle(); if (Main.overview.shouldToggleByCornerOrButton())
Main.overview.toggle();
} }
return Clutter.EVENT_PROPAGATE; return Clutter.EVENT_PROPAGATE;
}, },
@ -642,14 +654,50 @@ const PanelCorner = new Lang.Class({
} }
}); });
const AggregateLayout = new Lang.Class({
Name: 'AggregateLayout',
Extends: Clutter.BoxLayout,
_init: function(params) {
if (!params)
params = {};
params['orientation'] = Clutter.Orientation.VERTICAL;
this.parent(params);
this._sizeChildren = [];
},
addSizeChild: function(actor) {
this._sizeChildren.push(actor);
this.layout_changed();
},
vfunc_get_preferred_width: function(container, forHeight) {
let themeNode = container.get_theme_node();
let minWidth = themeNode.get_min_width();
let natWidth = minWidth;
for (let i = 0; i < this._sizeChildren.length; i++) {
let child = this._sizeChildren[i];
let [childMin, childNat] = child.get_preferred_width(forHeight);
minWidth = Math.max(minWidth, childMin);
natWidth = Math.max(minWidth, childNat);
}
return [minWidth, natWidth];
}
});
const AggregateMenu = new Lang.Class({ const AggregateMenu = new Lang.Class({
Name: 'AggregateMenu', Name: 'AggregateMenu',
Extends: PanelMenu.Button, Extends: PanelMenu.Button,
_init: function() { _init: function() {
this.parent(0.0, _("Settings"), false); this.parent(0.0, C_("System menu in the top bar", "System"), false);
this.menu.actor.add_style_class_name('aggregate-menu'); this.menu.actor.add_style_class_name('aggregate-menu');
let menuLayout = new AggregateLayout();
this.menu.box.set_layout_manager(menuLayout);
this._indicators = new St.BoxLayout({ style_class: 'panel-status-indicators-box' }); this._indicators = new St.BoxLayout({ style_class: 'panel-status-indicators-box' });
this.actor.add_child(this._indicators); this.actor.add_child(this._indicators);
@ -698,6 +746,11 @@ const AggregateMenu = new Lang.Class({
this.menu.addMenuItem(this._rfkill.menu); this.menu.addMenuItem(this._rfkill.menu);
this.menu.addMenuItem(this._power.menu); this.menu.addMenuItem(this._power.menu);
this.menu.addMenuItem(this._system.menu); this.menu.addMenuItem(this._system.menu);
menuLayout.addSizeChild(this._location.menu.actor);
menuLayout.addSizeChild(this._rfkill.menu.actor);
menuLayout.addSizeChild(this._power.menu.actor);
menuLayout.addSizeChild(this._system.menu.actor);
}, },
}); });

View File

@ -1146,6 +1146,16 @@ const PopupSubMenuMenuItem = new Lang.Class({
this.actor.remove_style_pseudo_class ('active'); this.actor.remove_style_pseudo_class ('active');
this._setOpenState(!this._getOpenState()); this._setOpenState(!this._getOpenState());
return Clutter.EVENT_PROPAGATE; return Clutter.EVENT_PROPAGATE;
},
_onTouchEvent: function(actor, event) {
if (event.type() == Clutter.EventType.TOUCH_END) {
// Since we override the parent, we need to manage what the parent does
// with the active style class
this.actor.remove_style_pseudo_class ('active');
this._setOpenState(!this._getOpenState());
}
return Clutter.EVENT_PROPAGATE;
} }
}); });

View File

@ -61,6 +61,7 @@ const RunDialog = new Lang.Class({
// rt is short for "reload theme" // rt is short for "reload theme"
'rt': Lang.bind(this, function() { 'rt': Lang.bind(this, function() {
Main.reloadThemeResource();
Main.loadTheme(); Main.loadTheme();
}) })
}; };

View File

@ -137,6 +137,10 @@ const Slider = new Lang.Class({
this._motionId = this.actor.connect('motion-event', Lang.bind(this, this._motionEvent)); this._motionId = this.actor.connect('motion-event', Lang.bind(this, this._motionEvent));
} }
// We need to emit 'drag-begin' before moving the handle to make
// sure that no 'value-changed' signal is emitted before this one.
this.emit('drag-begin');
let absX, absY; let absX, absY;
[absX, absY] = event.get_coords(); [absX, absY] = event.get_coords();
this._moveHandle(absX, absY); this._moveHandle(absX, absY);
@ -224,6 +228,7 @@ const Slider = new Lang.Class({
let delta = key == Clutter.KEY_Right ? 0.1 : -0.1; let delta = key == Clutter.KEY_Right ? 0.1 : -0.1;
this._value = Math.max(0, Math.min(this._value + delta, 1)); this._value = Math.max(0, Math.min(this._value + delta, 1));
this.actor.queue_repaint(); this.actor.queue_repaint();
this.emit('drag-begin');
this.emit('value-changed', this._value); this.emit('value-changed', this._value);
this.emit('drag-end'); this.emit('drag-end');
return Clutter.EVENT_STOP; return Clutter.EVENT_STOP;

View File

@ -1,11 +1,8 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const GLib = imports.gi.GLib;
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const GnomeBluetooth = imports.gi.GnomeBluetooth; const GnomeBluetooth = imports.gi.GnomeBluetooth;
const Lang = imports.lang; const Lang = imports.lang;
const St = imports.gi.St;
const Main = imports.ui.main; const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu; const PanelMenu = imports.ui.panelMenu;
@ -23,6 +20,8 @@ const RfkillManagerInterface = '<node> \
const RfkillManagerProxy = Gio.DBusProxy.makeProxyWrapper(RfkillManagerInterface); const RfkillManagerProxy = Gio.DBusProxy.makeProxyWrapper(RfkillManagerInterface);
const HAD_BLUETOOTH_DEVICES_SETUP = 'had-bluetooth-devices-setup';
const Indicator = new Lang.Class({ const Indicator = new Lang.Class({
Name: 'BTIndicator', Name: 'BTIndicator',
Extends: PanelMenu.SystemIndicator, Extends: PanelMenu.SystemIndicator,
@ -32,6 +31,7 @@ const Indicator = new Lang.Class({
this._indicator = this._addIndicator(); this._indicator = this._addIndicator();
this._indicator.icon_name = 'bluetooth-active-symbolic'; this._indicator.icon_name = 'bluetooth-active-symbolic';
this._hadSetupDevices = global.settings.get_boolean(HAD_BLUETOOTH_DEVICES_SETUP);
this._proxy = new RfkillManagerProxy(Gio.DBus.session, BUS_NAME, OBJECT_PATH, this._proxy = new RfkillManagerProxy(Gio.DBus.session, BUS_NAME, OBJECT_PATH,
Lang.bind(this, function(proxy, error) { Lang.bind(this, function(proxy, error) {
@ -44,13 +44,15 @@ const Indicator = new Lang.Class({
})); }));
this._proxy.connect('g-properties-changed', Lang.bind(this, this._sync)); this._proxy.connect('g-properties-changed', Lang.bind(this, this._sync));
// The Bluetooth menu only appears when Bluetooth is in use, this._item = new PopupMenu.PopupSubMenuMenuItem(_("Bluetooth"), true);
// so just statically build it with a "Turn Off" menu item.
this._item = new PopupMenu.PopupSubMenuMenuItem('', true);
this._item.icon.icon_name = 'bluetooth-active-symbolic'; this._item.icon.icon_name = 'bluetooth-active-symbolic';
this._item.menu.addAction(_("Turn Off"), Lang.bind(this, function() {
this._proxy.BluetoothAirplaneMode = true; this._toggleItem = new PopupMenu.PopupMenuItem('');
this._toggleItem.connect('activate', Lang.bind(this, function() {
this._proxy.BluetoothAirplaneMode = !this._proxy.BluetoothAirplaneMode;
})); }));
this._item.menu.addMenuItem(this._toggleItem);
this._item.menu.addSettingsAction(_("Bluetooth Settings"), 'gnome-bluetooth-panel.desktop'); this._item.menu.addSettingsAction(_("Bluetooth Settings"), 'gnome-bluetooth-panel.desktop');
this.menu.addMenuItem(this._item); this.menu.addMenuItem(this._item);
@ -68,42 +70,75 @@ const Indicator = new Lang.Class({
while (ret) { while (ret) {
let isDefault = this._model.get_value(iter, let isDefault = this._model.get_value(iter,
GnomeBluetooth.Column.DEFAULT); GnomeBluetooth.Column.DEFAULT);
if (isDefault) let isPowered = this._model.get_value(iter,
GnomeBluetooth.Column.POWERED);
if (isDefault && isPowered)
return iter; return iter;
ret = this._model.iter_next(iter); ret = this._model.iter_next(iter);
} }
return null; return null;
}, },
_getNConnectedDevices: function() { // nDevices is the number of devices setup for the current default
// adapter if one exists and is powered. If unpowered or unavailable,
// nDevice is "1" if it had setup devices associated to it the last
// time it was seen, and "-1" if not.
//
// nConnectedDevices is the number of devices connected to the default
// adapter if one exists and is powered, or -1 if it's not available.
_getNDevices: function() {
let adapter = this._getDefaultAdapter(); let adapter = this._getDefaultAdapter();
if (!adapter) if (!adapter)
return 0; return [ this._hadSetupDevices ? 1 : -1, -1 ];
let nConnectedDevices = 0;
let nDevices = 0; let nDevices = 0;
let [ret, iter] = this._model.iter_children(adapter); let [ret, iter] = this._model.iter_children(adapter);
while (ret) { while (ret) {
let isConnected = this._model.get_value(iter, let isConnected = this._model.get_value(iter,
GnomeBluetooth.Column.CONNECTED); GnomeBluetooth.Column.CONNECTED);
if (isConnected) if (isConnected)
nConnectedDevices++;
let isPaired = this._model.get_value(iter,
GnomeBluetooth.Column.PAIRED);
let isTrusted = this._model.get_value(iter,
GnomeBluetooth.Column.TRUSTED);
if (isPaired || isTrusted)
nDevices++; nDevices++;
ret = this._model.iter_next(iter); ret = this._model.iter_next(iter);
} }
return nDevices;
if (this._hadSetupDevices != (nDevices > 0)) {
this._hadSetupDevices = !this._hadSetupDevices;
global.settings.set_boolean(HAD_BLUETOOTH_DEVICES_SETUP, this._hadSetupDevices);
}
return [ nDevices, nConnectedDevices];
}, },
_sync: function() { _sync: function() {
let nDevices = this._getNConnectedDevices(); let [ nDevices, nConnectedDevices ] = this._getNDevices();
let sensitive = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter; let sensitive = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter;
this.menu.setSensitive(sensitive); this.menu.setSensitive(sensitive);
this._indicator.visible = nDevices > 0; this._indicator.visible = nConnectedDevices > 0;
this._item.actor.visible = this._proxy.BluetoothHasAirplaneMode && !this._proxy.BluetoothAirplaneMode;
// Remember if there were setup devices and show the menu
// if we've seen setup devices and we're not hard blocked
if (nDevices > 0) if (nDevices > 0)
this._item.actor.visible = !this._proxy.BluetoothHardwareAirplaneMode;
else
this._item.actor.visible = this._proxy.BluetoothHasAirplaneMode && !this._proxy.BluetoothAirplaneMode;
if (nConnectedDevices > 0)
/* Translators: this is the number of connected bluetooth devices */ /* Translators: this is the number of connected bluetooth devices */
this._item.label.text = ngettext("%d Connected", "%d Connected", nDevices).format(nDevices); this._item.label.text = ngettext("%d Connected", "%d Connected", nConnectedDevices).format(nConnectedDevices);
else if (nConnectedDevices == -1)
this._item.label.text = _("Off");
else else
this._item.label.text = _("Not In Use"); this._item.label.text = _("Not In Use");
this._toggleItem.label.text = this._proxy.BluetoothAirplaneMode ? _("Turn On") : _("Turn Off");
}, },
}); });

View File

@ -1,5 +1,6 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const GLib = imports.gi.GLib; const GLib = imports.gi.GLib;
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const Lang = imports.lang; const Lang = imports.lang;
@ -7,12 +8,18 @@ const Lang = imports.lang;
const Main = imports.ui.main; const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu; const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu; const PopupMenu = imports.ui.popupMenu;
const ModalDialog = imports.ui.modalDialog;
const Shell = imports.gi.Shell; const Shell = imports.gi.Shell;
const Signals = imports.signals;
const St = imports.gi.St;
const LOCATION_SCHEMA = 'org.gnome.system.location'; const LOCATION_SCHEMA = 'org.gnome.system.location';
const MAX_ACCURACY_LEVEL = 'max-accuracy-level'; const MAX_ACCURACY_LEVEL = 'max-accuracy-level';
const ENABLED = 'enabled'; const ENABLED = 'enabled';
const APP_PERMISSIONS_TABLE = 'gnome';
const APP_PERMISSIONS_ID = 'geolocation';
const GeoclueAccuracyLevel = { const GeoclueAccuracyLevel = {
NONE: 0, NONE: 0,
COUNTRY: 1, COUNTRY: 1,
@ -22,6 +29,15 @@ const GeoclueAccuracyLevel = {
EXACT: 8 EXACT: 8
}; };
function accuracyLevelToString(accuracyLevel) {
for (let key in GeoclueAccuracyLevel) {
if (GeoclueAccuracyLevel[key] == accuracyLevel)
return key;
}
return 'NONE';
}
var GeoclueIface = '<node> \ var GeoclueIface = '<node> \
<interface name="org.freedesktop.GeoClue2.Manager"> \ <interface name="org.freedesktop.GeoClue2.Manager"> \
<property name="InUse" type="b" access="read"/> \ <property name="InUse" type="b" access="read"/> \
@ -46,6 +62,26 @@ var AgentIface = '<node> \
</interface> \ </interface> \
</node>'; </node>';
var XdgAppIface = '<node> \
<interface name="org.freedesktop.XdgApp.PermissionStore"> \
<method name="Lookup"> \
<arg name="table" type="s" direction="in"/> \
<arg name="id" type="s" direction="in"/> \
<arg name="permissions" type="a{sas}" direction="out"/> \
<arg name="data" type="v" direction="out"/> \
</method> \
<method name="Set"> \
<arg name="table" type="s" direction="in"/> \
<arg name="create" type="b" direction="in"/> \
<arg name="id" type="s" direction="in"/> \
<arg name="app_permissions" type="a{sas}" direction="in"/> \
<arg name="data" type="v" direction="in"/> \
</method> \
</interface> \
</node>';
const PermissionStore = Gio.DBusProxy.makeProxyWrapper(XdgAppIface);
const Indicator = new Lang.Class({ const Indicator = new Lang.Class({
Name: 'LocationIndicator', Name: 'LocationIndicator',
Extends: PanelMenu.SystemIndicator, Extends: PanelMenu.SystemIndicator,
@ -83,64 +119,66 @@ const Indicator = new Lang.Class({
this._onSessionUpdated(); this._onSessionUpdated();
this._onMaxAccuracyLevelChanged(); this._onMaxAccuracyLevelChanged();
this._connectToGeoclue(); this._connectToGeoclue();
this._connectToPermissionStore();
}, },
get MaxAccuracyLevel() { get MaxAccuracyLevel() {
return this._getMaxAccuracyLevel(); return this._getMaxAccuracyLevel();
}, },
// We (and geoclue) have currently no way to reliably identifying apps so AuthorizeAppAsync: function(params, invocation) {
// for now, lets just authorize all apps as long as they provide a valid let [desktopId, reqAccuracyLevel] = params;
// desktop ID. We also ensure they don't get more accuracy than global max.
AuthorizeApp: function(desktop_id, reqAccuracyLevel) {
var appSystem = Shell.AppSystem.get_default();
var app = appSystem.lookup_app(desktop_id + ".desktop");
if (app == null) {
return [false, 0];
}
let allowedAccuracyLevel = clamp(reqAccuracyLevel, 0, this._getMaxAccuracyLevel()); let authorizer = new AppAuthorizer(desktopId,
return [true, allowedAccuracyLevel]; reqAccuracyLevel,
this._permStoreProxy,
this._getMaxAccuracyLevel());
authorizer.authorize(Lang.bind(this, function(accuracyLevel) {
let ret = (accuracyLevel != GeoclueAccuracyLevel.NONE);
invocation.return_value(GLib.Variant.new('(bu)',
[ret, accuracyLevel]));
}));
}, },
_syncIndicator: function() { _syncIndicator: function() {
if (this._proxy == null) { if (this._managerProxy == null) {
this._indicator.visible = false; this._indicator.visible = false;
this._item.actor.visible = false; this._item.actor.visible = false;
return; return;
} }
this._indicator.visible = this._proxy.InUse; this._indicator.visible = this._managerProxy.InUse;
this._item.actor.visible = this._indicator.visible; this._item.actor.visible = this._indicator.visible;
this._updateMenuLabels(); this._updateMenuLabels();
}, },
_connectToGeoclue: function() { _connectToGeoclue: function() {
if (this._proxy != null || this._connecting) if (this._managerProxy != null || this._connecting)
return false; return false;
this._connecting = true; this._connecting = true;
new GeoclueManager(Gio.DBus.system, new GeoclueManager(Gio.DBus.system,
'org.freedesktop.GeoClue2', 'org.freedesktop.GeoClue2',
'/org/freedesktop/GeoClue2/Manager', '/org/freedesktop/GeoClue2/Manager',
Lang.bind(this, this._onProxyReady)); Lang.bind(this, this._onManagerProxyReady));
return true; return true;
}, },
_onProxyReady: function(proxy, error) { _onManagerProxyReady: function(proxy, error) {
if (error != null) { if (error != null) {
log(error.message); log(error.message);
this._connecting = false; this._connecting = false;
return; return;
} }
this._proxy = proxy; this._managerProxy = proxy;
this._propertiesChangedId = this._proxy.connect('g-properties-changed', this._propertiesChangedId = this._managerProxy.connect('g-properties-changed',
Lang.bind(this, this._onGeocluePropsChanged)); Lang.bind(this, this._onGeocluePropsChanged));
this._syncIndicator(); this._syncIndicator();
this._proxy.AddAgentRemote('gnome-shell', Lang.bind(this, this._onAgentRegistered)); this._managerProxy.AddAgentRemote('gnome-shell', Lang.bind(this, this._onAgentRegistered));
}, },
_onAgentRegistered: function(result, error) { _onAgentRegistered: function(result, error) {
@ -153,10 +191,10 @@ const Indicator = new Lang.Class({
_onGeoclueVanished: function() { _onGeoclueVanished: function() {
if (this._propertiesChangedId) { if (this._propertiesChangedId) {
this._proxy.disconnect(this._propertiesChangedId); this._managerProxy.disconnect(this._propertiesChangedId);
this._propertiesChangedId = 0; this._propertiesChangedId = 0;
} }
this._proxy = null; this._managerProxy = null;
this._syncIndicator(); this._syncIndicator();
}, },
@ -211,9 +249,206 @@ const Indicator = new Lang.Class({
let unpacked = properties.deep_unpack(); let unpacked = properties.deep_unpack();
if ("InUse" in unpacked) if ("InUse" in unpacked)
this._syncIndicator(); this._syncIndicator();
} },
_connectToPermissionStore: function() {
this._permStoreProxy = null;
new PermissionStore(Gio.DBus.session,
'org.freedesktop.XdgApp',
'/org/freedesktop/XdgApp/PermissionStore',
Lang.bind(this, this._onPermStoreProxyReady));
},
_onPermStoreProxyReady: function(proxy, error) {
if (error != null) {
log(error.message);
return;
}
this._permStoreProxy = proxy;
},
}); });
function clamp(value, min, max) { function clamp(value, min, max) {
return Math.max(min, Math.min(max, value)); return Math.max(min, Math.min(max, value));
} }
const AppAuthorizer = new Lang.Class({
Name: 'LocationAppAuthorizer',
_init: function(desktopId,
reqAccuracyLevel,
permStoreProxy,
maxAccuracyLevel) {
this.desktopId = desktopId;
this.reqAccuracyLevel = reqAccuracyLevel;
this._permStoreProxy = permStoreProxy;
this._maxAccuracyLevel = maxAccuracyLevel;
this._accuracyLevel = GeoclueAccuracyLevel.NONE;
},
authorize: function(onAuthDone) {
this._onAuthDone = onAuthDone;
let appSystem = Shell.AppSystem.get_default();
this._app = appSystem.lookup_app(this.desktopId + ".desktop");
if (this._app == null || this._permStoreProxy == null) {
this._completeAuth();
return;
}
this._permStoreProxy.LookupRemote(APP_PERMISSIONS_TABLE,
APP_PERMISSIONS_ID,
Lang.bind(this,
this._onPermLookupDone));
},
_onPermLookupDone: function(result, error) {
if (error != null) {
if (error.domain == Gio.DBusError) {
// Likely no xdg-app installed, just authorize the app
this._accuracyLevel = this.reqAccuracyLevel;
this._permStoreProxy = null;
this._completeAuth();
} else {
// Currently xdg-app throws an error if we lookup for
// unknown ID (which would be the case first time this code
// runs) so we continue with user authorization as normal
// and ID is added to the store if user says "yes".
log(error.message);
this._permissions = {};
this._userAuthorizeApp();
}
return;
}
[this._permissions] = result;
let permission = this._permissions[this.desktopId];
if (permission == null) {
this._userAuthorizeApp();
} else {
let [levelStr] = permission || ['NONE'];
this._accuracyLevel = GeoclueAccuracyLevel[levelStr] ||
GeoclueAccuracyLevel.NONE;
this._completeAuth();
}
},
_userAuthorizeApp: function() {
let name = this._app.get_name();
let appInfo = this._app.get_app_info();
let reason = appInfo.get_string("X-Geoclue-Reason");
this._showAppAuthDialog(name, reason);
},
_showAppAuthDialog: function(name, reason) {
this._dialog = new GeolocationDialog(name,
reason,
this.reqAccuracyLevel);
let responseId = this._dialog.connect('response', Lang.bind(this,
function(dialog, level) {
this._dialog.disconnect(responseId);
this._accuracyLevel = level;
this._completeAuth();
}));
this._dialog.open();
},
_completeAuth: function() {
if (this._accuracyLevel != GeoclueAccuracyLevel.NONE) {
this._accuracyLevel = clamp(this._accuracyLevel,
0,
this._maxAccuracyLevel);
}
this._saveToPermissionStore();
this._onAuthDone(this._accuracyLevel);
},
_saveToPermissionStore: function() {
if (this._permStoreProxy == null)
return;
let levelStr = accuracyLevelToString(this._accuracyLevel);
let dateStr = Math.round(Date.now() / 1000).toString();
this._permissions[this.desktopId] = [levelStr, dateStr];
let data = GLib.Variant.new('av', {});
this._permStoreProxy.SetRemote(APP_PERMISSIONS_TABLE,
true,
APP_PERMISSIONS_ID,
this._permissions,
data,
function (result, error) {
if (error != null)
log(error.message);
});
},
});
const GeolocationDialog = new Lang.Class({
Name: 'GeolocationDialog',
Extends: ModalDialog.ModalDialog,
_init: function(name, reason, reqAccuracyLevel) {
this.parent({ styleClass: 'geolocation-dialog' });
this.reqAccuracyLevel = reqAccuracyLevel;
let mainContentBox = new St.BoxLayout({ style_class: 'geolocation-dialog-main-layout' });
this.contentLayout.add_actor(mainContentBox);
let icon = new St.Icon({ style_class: 'geolocation-dialog-icon',
icon_name: 'find-location-symbolic',
y_align: Clutter.ActorAlign.START });
mainContentBox.add_actor(icon);
let messageBox = new St.BoxLayout({ style_class: 'geolocation-dialog-content',
vertical: true });
mainContentBox.add_actor(messageBox);
this._title = new St.Label({ style_class: 'geolocation-dialog-title headline' });
messageBox.add_actor(this._title);
this._reason = new St.Label({ style_class: 'geolocation-dialog-reason' });
messageBox.add_actor(this._reason);
this._privacyNote = new St.Label();
messageBox.add_actor(this._privacyNote);
let button = this.addButton({ label: _("Deny Access"),
action: Lang.bind(this, this._onDenyClicked),
key: Clutter.KEY_Escape });
this.addButton({ label: _("Grant Access"),
action: Lang.bind(this, this._onGrantClicked) });
this.setInitialKeyFocus(button);
/* Translators: %s is an application name */
this._title.text = _("Give %s access to your location?").format(name);
this._privacyNote.text = _("Location access can be changed at any time from the privacy settings.");
if (reason)
this._reason.text = reason;
this._reason.visible = (reason != null);
},
_onGrantClicked: function() {
this.emit('response', this.reqAccuracyLevel);
this.close();
},
_onDenyClicked: function() {
this.emit('response', GeoclueAccuracyLevel.NONE);
this.close();
}
});
Signals.addSignalMethods(GeolocationDialog.prototype);

View File

@ -1,6 +1,8 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const Clutter = imports.gi.Clutter;
const St = imports.gi.St;
const Lang = imports.lang; const Lang = imports.lang;
const UPower = imports.gi.UPowerGlib; const UPower = imports.gi.UPowerGlib;
@ -25,6 +27,8 @@ const DisplayDeviceInterface = '<node> \
const PowerManagerProxy = Gio.DBusProxy.makeProxyWrapper(DisplayDeviceInterface); const PowerManagerProxy = Gio.DBusProxy.makeProxyWrapper(DisplayDeviceInterface);
const SHOW_BATTERY_PERCENTAGE = 'show-battery-percentage';
const Indicator = new Lang.Class({ const Indicator = new Lang.Class({
Name: 'PowerIndicator', Name: 'PowerIndicator',
Extends: PanelMenu.SystemIndicator, Extends: PanelMenu.SystemIndicator,
@ -32,7 +36,15 @@ const Indicator = new Lang.Class({
_init: function() { _init: function() {
this.parent(); this.parent();
this._desktopSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.interface' });
this._desktopSettings.connect('changed::' + SHOW_BATTERY_PERCENTAGE,
Lang.bind(this, this._sync));
this._indicator = this._addIndicator(); this._indicator = this._addIndicator();
this._percentageLabel = new St.Label({ y_expand: true,
y_align: Clutter.ActorAlign.CENTER });
this.indicators.add(this._percentageLabel, { expand: true, y_fill: true });
this.indicators.add_style_class_name('power-status');
this._proxy = new PowerManagerProxy(Gio.DBus.system, BUS_NAME, OBJECT_PATH, this._proxy = new PowerManagerProxy(Gio.DBus.system, BUS_NAME, OBJECT_PATH,
Lang.bind(this, function(proxy, error) { Lang.bind(this, function(proxy, error) {
@ -83,12 +95,12 @@ const Indicator = new Lang.Class({
if (this._proxy.State == UPower.DeviceState.DISCHARGING) { if (this._proxy.State == UPower.DeviceState.DISCHARGING) {
// Translators: this is <hours>:<minutes> Remaining (<percentage>) // Translators: this is <hours>:<minutes> Remaining (<percentage>)
return _("%d\u2236%02d Remaining (%d%%)").format(hours, minutes, this._proxy.Percentage); return _("%d\u2236%02d Remaining (%d\u2009%%)").format(hours, minutes, this._proxy.Percentage);
} }
if (this._proxy.State == UPower.DeviceState.CHARGING) { if (this._proxy.State == UPower.DeviceState.CHARGING) {
// Translators: this is <hours>:<minutes> Until Full (<percentage>) // Translators: this is <hours>:<minutes> Until Full (<percentage>)
return _("%d\u2236%02d Until Full (%d%%)").format(hours, minutes, this._proxy.Percentage); return _("%d\u2236%02d Until Full (%d\u2009%%)").format(hours, minutes, this._proxy.Percentage);
} }
return null; return null;
@ -99,10 +111,12 @@ const Indicator = new Lang.Class({
let visible = this._proxy.IsPresent; let visible = this._proxy.IsPresent;
if (visible) { if (visible) {
this._item.actor.show(); this._item.actor.show();
this._percentageLabel.visible = this._desktopSettings.get_boolean(SHOW_BATTERY_PERCENTAGE);
} else { } else {
// If there's no battery, then we use the power icon. // If there's no battery, then we use the power icon.
this._item.actor.hide(); this._item.actor.hide();
this._indicator.icon_name = 'system-shutdown-symbolic'; this._indicator.icon_name = 'system-shutdown-symbolic';
this._percentageLabel.hide();
return; return;
} }
@ -111,6 +125,14 @@ const Indicator = new Lang.Class({
this._indicator.icon_name = icon; this._indicator.icon_name = icon;
this._item.icon.icon_name = icon; this._item.icon.icon_name = icon;
// The icon label
let label
if (this._proxy.State == UPower.DeviceState.FULLY_CHARGED)
label = _("%d\u2009%%").format(100);
else
label = _("%d\u2009%%").format(this._proxy.Percentage);
this._percentageLabel.clutter_text.set_markup('<span size="smaller">' + label + '</span>');
// The status label // The status label
this._item.label.text = this._getStatus(); this._item.label.text = this._getStatus();
}, },

View File

@ -156,7 +156,7 @@ const ViewSelector = new Lang.Class({
this.appDisplay = new AppDisplay.AppDisplay(); this.appDisplay = new AppDisplay.AppDisplay();
this._appsPage = this._addPage(this.appDisplay.actor, this._appsPage = this._addPage(this.appDisplay.actor,
_("Applications"), 'view-grid-symbolic'); _("Applications"), 'view-app-grid-symbolic');
this._searchResults = new Search.SearchResults(); this._searchResults = new Search.SearchResults();
this._searchPage = this._addPage(this._searchResults.actor, this._searchPage = this._addPage(this._searchResults.actor,

View File

@ -677,6 +677,7 @@ const WindowManager = new Lang.Class({
this._minimizing = []; this._minimizing = [];
this._unminimizing = []; this._unminimizing = [];
this._mapping = []; this._mapping = [];
this._resizing = [];
this._destroying = []; this._destroying = [];
this._movingWindow = null; this._movingWindow = null;
@ -692,6 +693,7 @@ const WindowManager = new Lang.Class({
this._minimizeWindowDone(shellwm, actor); this._minimizeWindowDone(shellwm, actor);
this._mapWindowDone(shellwm, actor); this._mapWindowDone(shellwm, actor);
this._destroyWindowDone(shellwm, actor); this._destroyWindowDone(shellwm, actor);
this._sizeChangeWindowDone(shellwm, actor);
})); }));
this._shellwm.connect('switch-workspace', Lang.bind(this, this._switchWorkspace)); this._shellwm.connect('switch-workspace', Lang.bind(this, this._switchWorkspace));
@ -1218,9 +1220,120 @@ const WindowManager = new Lang.Class({
}, },
_sizeChangeWindow : function(shellwm, actor, whichChange, oldFrameRect, oldBufferRect) { _sizeChangeWindow : function(shellwm, actor, whichChange, oldFrameRect, oldBufferRect) {
let types = [Meta.WindowType.NORMAL];
if (!this._shouldAnimateActor(actor, types)) {
shellwm.completed_size_change(actor);
return;
}
if (whichChange == Meta.SizeChange.FULLSCREEN)
this._fullscreenWindow(shellwm, actor, oldFrameRect, oldBufferRect);
else if (whichChange == Meta.SizeChange.UNFULLSCREEN)
this._unfullscreenWindow(shellwm, actor, oldFrameRect, oldBufferRect);
else
shellwm.completed_size_change(actor);
},
_fullscreenWindow: function(shellwm, actor, oldFrameRect, oldBufferRect) {
let monitor = Main.layoutManager.monitors[actor.meta_window.get_monitor()];
actor.translation_x = oldFrameRect.x - monitor.x;
actor.translation_y = oldFrameRect.y - monitor.y;
this._fullscreenAnimation(shellwm, actor, oldFrameRect);
},
_unfullscreenWindow: function(shellwm, actor, oldFrameRect, oldBufferRect) {
let targetRect = actor.meta_window.get_frame_rect();
let monitor = Main.layoutManager.monitors[actor.meta_window.get_monitor()];
actor.translation_x = -(targetRect.x - monitor.x);
actor.translation_y = -(targetRect.y - monitor.y);
this._fullscreenAnimation(shellwm, actor, oldFrameRect);
},
_fullscreenAnimation: function(shellwm, actor, oldFrameRect) {
this._resizing.push(actor);
// Position a clone of the window on top of the old position,
// while actor updates are frozen.
// Note that the MetaWindow has up to date sizing information for
// the new geometry already.
let targetRect = actor.meta_window.get_frame_rect();
let actorContent = Shell.util_get_content_for_window_actor(actor, oldFrameRect);
let actorClone = new St.Widget({ content: actorContent });
actorClone.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
actorClone.set_position(oldFrameRect.x, oldFrameRect.y);
actorClone.set_size(oldFrameRect.width, oldFrameRect.height);
Main.uiGroup.add_actor(actorClone);
actor.__fullscreenClone = actorClone;
let scaleX = targetRect.width / oldFrameRect.width;
let scaleY = targetRect.height / oldFrameRect.height;
// Now scale and fade out the clone
Tweener.addTween(actorClone,
{ x: targetRect.x,
y: targetRect.y,
scale_x: scaleX,
scale_y: scaleY,
opacity: 0,
time: WINDOW_ANIMATION_TIME,
transition: 'easeOutQuad'
});
// Now set scale the actor to size it as the clone.
// Note that the caller of this function already set a translation
// on the actor.
actor.scale_x = 1 / scaleX;
actor.scale_y = 1 / scaleY;
// Scale it to its actual new size
Tweener.addTween(actor,
{ scale_x: 1.0,
scale_y: 1.0,
translation_x: 0,
translation_y: 0,
time: WINDOW_ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: this._sizeChangeWindowDone,
onCompleteScope: this,
onCompleteParams: [shellwm, actor],
onOverwrite: this._sizeChangeWindowOverwritten,
onOverwriteScope: this,
onOverwriteParams: [shellwm, actor]
});
// Now unfreeze actor updates, to get it to the new size.
// It's important that we don't wait until the animation is completed to
// do this, otherwise our scale will be applied to the old texture size.
shellwm.completed_size_change(actor); shellwm.completed_size_change(actor);
}, },
_sizeChangeWindowDone: function(shellwm, actor) {
if (this._removeEffect(this._resizing, actor)) {
Tweener.removeTweens(actor);
actor.scale_x = 1.0;
actor.scale_y = 1.0;
actor.translation_x = 0;
actor.translation_y = 0;
let actorClone = actor.__fullscreenClone;
if (actorClone) {
actorClone.destroy();
delete actor.__fullscreenClone;
}
}
},
_sizeChangeWindowOverwritten: function(shellwm, actor) {
if (this._removeEffect(this._resizing, actor)) {
let actorClone = actor.__fullscreenClone;
if (actorClone) {
actorClone.destroy();
delete actor.__fullscreenClone;
}
}
},
_hasAttachedDialogs: function(window, ignoreWindow) { _hasAttachedDialogs: function(window, ignoreWindow) {
var count = 0; var count = 0;
window.foreach_transient(function(win) { window.foreach_transient(function(win) {
@ -1254,11 +1367,14 @@ const WindowManager = new Lang.Class({
let dimmer = getWindowDimmer(actor); let dimmer = getWindowDimmer(actor);
if (!dimmer) if (!dimmer)
return; return;
Tweener.addTween(dimmer, if (this._shouldAnimate())
{ dimFactor: 1.0, Tweener.addTween(dimmer,
time: DIM_TIME, { dimFactor: 1.0,
transition: 'linear' time: DIM_TIME,
}); transition: 'linear'
});
else
dimmer.dimFactor = 1.0;
}, },
_undimWindow: function(window) { _undimWindow: function(window) {
@ -1268,10 +1384,13 @@ const WindowManager = new Lang.Class({
let dimmer = getWindowDimmer(actor); let dimmer = getWindowDimmer(actor);
if (!dimmer) if (!dimmer)
return; return;
Tweener.addTween(dimmer, if (this._shouldAnimate())
{ dimFactor: 0.0, Tweener.addTween(dimmer,
time: UNDIM_TIME, { dimFactor: 0.0,
transition: 'linear' }); time: UNDIM_TIME,
transition: 'linear' });
else
dimmer.dimFactor = 0.0;
}, },
_mapWindow : function(shellwm, actor) { _mapWindow : function(shellwm, actor) {
@ -1290,6 +1409,9 @@ const WindowManager = new Lang.Class({
actor._windowType = type; actor._windowType = type;
})); }));
if (actor.meta_window.is_attached_dialog())
this._checkDimming(actor.get_meta_window().get_transient_for());
let types = [Meta.WindowType.NORMAL, let types = [Meta.WindowType.NORMAL,
Meta.WindowType.DIALOG, Meta.WindowType.DIALOG,
Meta.WindowType.MODAL_DIALOG]; Meta.WindowType.MODAL_DIALOG];
@ -1298,9 +1420,6 @@ const WindowManager = new Lang.Class({
return; return;
} }
if (actor.meta_window.is_attached_dialog())
this._checkDimming(actor.get_meta_window().get_transient_for());
switch (actor._windowType) { switch (actor._windowType) {
case Meta.WindowType.NORMAL: case Meta.WindowType.NORMAL:
actor.set_pivot_point(0.5, 1.0); actor.set_pivot_point(0.5, 1.0);
@ -1383,6 +1502,9 @@ const WindowManager = new Lang.Class({
}); });
} }
if (window.is_attached_dialog())
this._checkDimming(window.get_transient_for(), window);
let types = [Meta.WindowType.NORMAL, let types = [Meta.WindowType.NORMAL,
Meta.WindowType.DIALOG, Meta.WindowType.DIALOG,
Meta.WindowType.MODAL_DIALOG]; Meta.WindowType.MODAL_DIALOG];
@ -1417,7 +1539,6 @@ const WindowManager = new Lang.Class({
if (window.is_attached_dialog()) { if (window.is_attached_dialog()) {
let parent = window.get_transient_for(); let parent = window.get_transient_for();
this._checkDimming(parent, window);
actor._parentDestroyId = parent.connect('unmanaged', Lang.bind(this, function () { actor._parentDestroyId = parent.connect('unmanaged', Lang.bind(this, function () {
Tweener.removeTweens(actor); Tweener.removeTweens(actor);
this._destroyWindowDone(shellwm, actor); this._destroyWindowDone(shellwm, actor);

View File

@ -214,7 +214,7 @@ const WindowMenuManager = new Lang.Class({
menu.close(); menu.close();
}); });
this._sourceActor.set_size(rect.width, rect.height); this._sourceActor.set_size(Math.max(1, rect.width), Math.max(1, rect.height));
this._sourceActor.set_position(rect.x, rect.y); this._sourceActor.set_position(rect.x, rect.y);
this._sourceActor.show(); this._sourceActor.show();

View File

@ -361,6 +361,9 @@ const WindowClone = new Lang.Class({
// a long-press canceled when the pointer movement // a long-press canceled when the pointer movement
// exceeds dnd-drag-threshold to manually start the drag // exceeds dnd-drag-threshold to manually start the drag
if (state == Clutter.LongPressState.CANCEL) { if (state == Clutter.LongPressState.CANCEL) {
let event = Clutter.get_current_event();
this._dragTouchSequence = event.get_event_sequence();
// A click cancels a long-press before any click handler is // A click cancels a long-press before any click handler is
// run - make sure to not start a drag in that case // run - make sure to not start a drag in that case
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this, Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this,
@ -369,7 +372,7 @@ const WindowClone = new Lang.Class({
return; return;
let [x, y] = action.get_coords(); let [x, y] = action.get_coords();
action.release(); action.release();
this._draggable.startDrag(x, y, global.get_current_time()); this._draggable.startDrag(x, y, global.get_current_time(), this._dragTouchSequence);
})); }));
} }
return true; return true;

View File

@ -80,6 +80,8 @@ const WindowClone = new Lang.Class({
this.actor.connect('button-release-event', this.actor.connect('button-release-event',
Lang.bind(this, this._onButtonRelease)); Lang.bind(this, this._onButtonRelease));
this.actor.connect('touch-event',
Lang.bind(this, this._onTouchEvent));
this.actor.connect('destroy', Lang.bind(this, this._onDestroy)); this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
@ -200,6 +202,15 @@ const WindowClone = new Lang.Class({
return Clutter.EVENT_STOP; return Clutter.EVENT_STOP;
}, },
_onTouchEvent : function (actor, event) {
if (event.type() != Clutter.EventType.TOUCH_END ||
!global.display.is_pointer_emulating_sequence(event.get_event_sequence()))
return Clutter.EVENT_PROPAGATE;
this.emit('selected', event.get_time());
return Clutter.EVENT_STOP;
},
_onDragBegin : function (draggable, time) { _onDragBegin : function (draggable, time) {
this.inDrag = true; this.inDrag = true;
this.emit('drag-begin'); this.emit('drag-begin');
@ -642,6 +653,7 @@ const ThumbnailsBox = new Lang.Class({
this.actor.connect('button-press-event', function() { return Clutter.EVENT_STOP; }); this.actor.connect('button-press-event', function() { return Clutter.EVENT_STOP; });
this.actor.connect('button-release-event', Lang.bind(this, this._onButtonRelease)); this.actor.connect('button-release-event', Lang.bind(this, this._onButtonRelease));
this.actor.connect('touch-event', Lang.bind(this, this._onTouchEvent));
Main.overview.connect('showing', Main.overview.connect('showing',
Lang.bind(this, this._createThumbnails)); Lang.bind(this, this._createThumbnails));
@ -672,18 +684,31 @@ const ThumbnailsBox = new Lang.Class({
global.screen.n_workspaces > 1; global.screen.n_workspaces > 1;
}, },
_onButtonRelease: function(actor, event) { _activateThumbnailAtPoint: function (stageX, stageY, time) {
let [stageX, stageY] = event.get_coords();
let [r, x, y] = this.actor.transform_stage_point(stageX, stageY); let [r, x, y] = this.actor.transform_stage_point(stageX, stageY);
for (let i = 0; i < this._thumbnails.length; i++) { for (let i = 0; i < this._thumbnails.length; i++) {
let thumbnail = this._thumbnails[i] let thumbnail = this._thumbnails[i]
let [w, h] = thumbnail.actor.get_transformed_size(); let [w, h] = thumbnail.actor.get_transformed_size();
if (y >= thumbnail.actor.y && y <= thumbnail.actor.y + h) { if (y >= thumbnail.actor.y && y <= thumbnail.actor.y + h) {
thumbnail.activate(event.get_time()); thumbnail.activate(time);
break; break;
} }
} }
},
_onButtonRelease: function(actor, event) {
let [stageX, stageY] = event.get_coords();
this._activateThumbnailAtPoint(stageX, stageY, event.get_time());
return Clutter.EVENT_STOP;
},
_onTouchEvent: function (actor, event) {
if (event.type() == Clutter.EventType.TOUCH_END &&
global.display.is_pointer_emulating_sequence(event.get_event_sequence())) {
let [stageX, stageY] = event.get_coords();
this._activateThumbnailAtPoint(stageX, stageY, event.get_time());
}
return Clutter.EVENT_STOP; return Clutter.EVENT_STOP;
}, },

View File

@ -421,7 +421,7 @@ const WorkspacesDisplay = new Lang.Class({
// Only switch to the workspace when there's no application // Only switch to the workspace when there's no application
// windows open. The problem is that it's too easy to miss // windows open. The problem is that it's too easy to miss
// an app window and get the wrong one focused. // an app window and get the wrong one focused.
if (action.get_button() == 1 && if ((action.get_button() == 1 || action.get_button() == 0) &&
this._getPrimaryView().getActiveWorkspace().isEmpty()) this._getPrimaryView().getActiveWorkspace().isEmpty())
Main.overview.hide(); Main.overview.hide();
})); }));

View File

@ -140,7 +140,7 @@
<para> <para>
<filename>/usr/share/gnome-session/sessions/gnome.session</filename>, <filename>/usr/share/gnome-session/sessions/gnome.session</filename>,
<filename>/usr/share/applications/gnome-shell.desktop</filename>.</para> <filename>/usr/share/applications/org.gnome.Shell.desktop</filename>.</para>
</refsect1> </refsect1>
<refsect1> <refsect1>

View File

@ -24,6 +24,7 @@ fi
fr fr
fur fur
ga ga
gd
gl gl
gu gu
he he

View File

@ -2,9 +2,8 @@
# Please keep this file sorted alphabetically. # Please keep this file sorted alphabetically.
[encoding: UTF-8] [encoding: UTF-8]
data/50-gnome-shell-system.xml.in data/50-gnome-shell-system.xml.in
data/gnome-shell.desktop.in.in
data/gnome-shell-extension-prefs.desktop.in.in data/gnome-shell-extension-prefs.desktop.in.in
data/gnome-shell-wayland.desktop.in.in data/org.gnome.Shell.desktop.in.in
data/org.gnome.shell.gschema.xml.in.in data/org.gnome.shell.gschema.xml.in.in
data/org.gnome.Shell.PortalHelper.desktop.in data/org.gnome.Shell.PortalHelper.desktop.in
js/extensionPrefs/main.js js/extensionPrefs/main.js
@ -15,6 +14,7 @@ js/misc/util.js
js/portalHelper/main.js js/portalHelper/main.js
js/ui/appDisplay.js js/ui/appDisplay.js
js/ui/appFavorites.js js/ui/appFavorites.js
js/ui/audioDeviceSelection.js
js/ui/backgroundMenu.js js/ui/backgroundMenu.js
js/ui/calendar.js js/ui/calendar.js
js/ui/components/automountManager.js js/ui/components/automountManager.js
@ -33,7 +33,9 @@ js/ui/keyboard.js
js/ui/legacyTray.js js/ui/legacyTray.js
js/ui/lookingGlass.js js/ui/lookingGlass.js
js/ui/main.js js/ui/main.js
js/ui/messageList.js
js/ui/messageTray.js js/ui/messageTray.js
js/ui/mpris.js
js/ui/notificationDaemon.js js/ui/notificationDaemon.js
js/ui/overviewControls.js js/ui/overviewControls.js
js/ui/overview.js js/ui/overview.js

1403
po/af.po

File diff suppressed because it is too large Load Diff

384
po/ar.po
View File

@ -1,6 +1,6 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package. # This file is distributed under the same license as the PACKAGE package.
# Khaled Hosny <khaledhosny@eglug.org>, 2009, 2010, 2011, 2012, 2013, 2014, 2015. # Khaled Hosny <khaledhosny@eglug.org>, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016.
# Muhammed Abd-ulaziz Abd-ullah <thenubianmuha_idrecy@yahoo.co.uk>, 2012. # Muhammed Abd-ulaziz Abd-ullah <thenubianmuha_idrecy@yahoo.co.uk>, 2012.
# Abderrahim Kitouni <a.kitouni@gmail.com>, 2012, 2014. # Abderrahim Kitouni <a.kitouni@gmail.com>, 2012, 2014.
# Ibrahim Saed <ibraheem5000@gmail.com>, 2012. # Ibrahim Saed <ibraheem5000@gmail.com>, 2012.
@ -8,8 +8,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-23 23:52+0200\n" "POT-Creation-Date: 2016-04-10 20:24+0200\n"
"PO-Revision-Date: 2015-09-23 23:52+0200\n" "PO-Revision-Date: 2016-04-10 20:26+0200\n"
"Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n" "Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n"
"Language-Team: Arabic <doc@arabeyes.org>\n" "Language-Team: Arabic <doc@arabeyes.org>\n"
"Language: ar\n" "Language: ar\n"
@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"X-Generator: Virtaal 0.7.1\n" "X-Generator: Virtaal 1.0.0-beta1\n"
"X-Project-Style: gnome\n" "X-Project-Style: gnome\n"
#: ../data/50-gnome-shell-system.xml.in.h:1 #: ../data/50-gnome-shell-system.xml.in.h:1
@ -45,15 +45,6 @@ msgstr "أظهر كل التطبيقات"
msgid "Open the application menu" msgid "Open the application menu"
msgstr "افتح قائمة التطبيقات" msgstr "افتح قائمة التطبيقات"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "صدفة جنوم"
#: ../data/gnome-shell.desktop.in.in.h:2
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "إدارة النوافذ وإطلاق التطبيقات"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "تفضيلات امتدادات صدفة جنوم" msgstr "تفضيلات امتدادات صدفة جنوم"
@ -62,9 +53,13 @@ msgstr "تفضيلات امتدادات صدفة جنوم"
msgid "Configure GNOME Shell Extensions" msgid "Configure GNOME Shell Extensions"
msgstr "اضبط امتدادات صدفة جنوم" msgstr "اضبط امتدادات صدفة جنوم"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1 #: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)" msgid "GNOME Shell"
msgstr "صدفة جنوم (وايلاند)" msgstr "صدفة جنوم"
#: ../data/org.gnome.Shell.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "إدارة النوافذ وإطلاق التطبيقات"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1 #: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2" msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -152,116 +147,129 @@ msgid ""
msgstr "" msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18 #: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid "Show the week date in the calendar" msgid ""
msgstr "اعرض تاريخ الأسبوع في التقويم" "Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19 #: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid "If true, display the ISO week date in the calendar." msgid ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
"powered, or if there were devices set up associated with the default "
"adapter. This will be reset if the default adapter is ever seen not to have "
"devices associated to it."
msgstr "" msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20 #: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Keybinding to open the application menu" msgid "Show the week date in the calendar"
msgstr "" msgstr "اعرض تاريخ الأسبوع في التقويم"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21 #: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "Keybinding to open the application menu." msgid "If true, display the ISO week date in the calendar."
msgstr "" msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the \"Show Applications\" view" msgid "Keybinding to open the application menu"
msgstr "" msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
msgid "Keybinding to open the application menu."
msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the \"Show Applications\" view"
msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "" msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview." "Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr "" msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "" msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25 #: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "" msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to toggle the visibility of the notification list" msgid "Keybinding to toggle the visibility of the notification list"
msgstr "" msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27 #: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to toggle the visibility of the notification list." msgid "Keybinding to toggle the visibility of the notification list."
msgstr "" msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "" msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29 #: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "" msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "" msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes" "Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr "" msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31 #: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Which keyboard to use" msgid "Which keyboard to use"
msgstr "أي لوحة مفاتيح ترغب باستخدامها" msgstr "أي لوحة مفاتيح ترغب باستخدامها"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32 #: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid "The type of keyboard to use." msgid "The type of keyboard to use."
msgstr "نوع لوحة المفاتيح التي ترغب باستخدامها." msgstr "نوع لوحة المفاتيح التي ترغب باستخدامها."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33 #: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "" msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34 #: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid "" msgid ""
"If true, only applications that have windows on the current workspace are " "If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included." "shown in the switcher. Otherwise, all applications are included."
msgstr "" msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35 #: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "The application icon mode." msgid "The application icon mode."
msgstr "" msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36 #: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "" msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities " "Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-" "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
"only' (shows only the application icon) or 'both'." "only' (shows only the application icon) or 'both'."
msgstr "" msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid "" msgid ""
"If true, only windows from the current workspace are shown in the switcher. " "If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included." "Otherwise, all windows are included."
msgstr "" msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
msgstr "" msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39 #: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid "" msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "" msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40 #: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "" msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41 #: ../data/org.gnome.shell.gschema.xml.in.in.h:43
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "" msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42 #: ../data/org.gnome.shell.gschema.xml.in.in.h:44
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "مساحات عمل على الشاشة الرئيسية فقط" msgstr "مساحات عمل على الشاشة الرئيسية فقط"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43 #: ../data/org.gnome.shell.gschema.xml.in.in.h:45
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "" msgstr ""
@ -269,51 +277,52 @@ msgstr ""
msgid "Network Login" msgid "Network Login"
msgstr "ولوج الشبكة" msgstr "ولوج الشبكة"
#: ../js/extensionPrefs/main.js:122 #: ../js/extensionPrefs/main.js:117
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "حدث خطأ أثناء تشغيل حوار تفضيلات %s:" msgstr "حدث خطأ أثناء تشغيل حوار تفضيلات %s:"
#: ../js/extensionPrefs/main.js:154 #: ../js/extensionPrefs/main.js:149
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "امتدادات صدفة جنوم" msgstr "امتدادات صدفة جنوم"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145 #: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452 #: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916 #: ../js/ui/status/network.js:916
msgid "Cancel" msgid "Cancel"
msgstr "ألغِ" msgstr "ألغِ"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215 #: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:447 #: ../js/gdm/authPrompt.js:448
msgid "Next" msgid "Next"
msgstr "التالي" msgstr "التالي"
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403 #: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59 #: ../js/ui/unlockDialog.js:59
msgid "Unlock" msgid "Unlock"
msgstr "فك القفل" msgstr "فك القفل"
#: ../js/gdm/authPrompt.js:213 #: ../js/gdm/authPrompt.js:214
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "ادخل" msgstr "ادخل"
#: ../js/gdm/loginDialog.js:281 #: ../js/gdm/loginDialog.js:285
msgid "Choose Session" msgid "Choose Session"
msgstr "أغلق الجلسة" msgstr "أغلق الجلسة"
#. translators: this message is shown below the user list on the #. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for #. login screen. It can be activated to reveal an entry for
#. manually entering the username. #. manually entering the username.
#: ../js/gdm/loginDialog.js:431 #: ../js/gdm/loginDialog.js:435
msgid "Not listed?" msgid "Not listed?"
msgstr "غير مدرج؟" msgstr "غير مدرج؟"
#. Translators: this message is shown below the username entry field #. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm #. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:850 #: ../js/gdm/loginDialog.js:854
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(مثلا مستخدم أو %s)" msgstr "(مثلا مستخدم أو %s)"
@ -321,12 +330,12 @@ msgstr "(مثلا مستخدم أو %s)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271 #: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289 #: ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
msgstr "اسم المستخدم: " msgstr "اسم المستخدم: "
#: ../js/gdm/loginDialog.js:1184 #: ../js/gdm/loginDialog.js:1196
msgid "Login Window" msgid "Login Window"
msgstr "نافذة الولوج" msgstr "نافذة الولوج"
@ -462,16 +471,36 @@ msgstr "أضِف إلى المفضّلة"
msgid "Show Details" msgid "Show Details"
msgstr "أظهر التفاصيل" msgstr "أظهر التفاصيل"
#: ../js/ui/appFavorites.js:132 #: ../js/ui/appFavorites.js:134
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "أُضيف %s إلى مفضلتك." msgstr "أُضيف %s إلى مفضلتك."
#: ../js/ui/appFavorites.js:166 #: ../js/ui/appFavorites.js:168
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "أُزيل %s من مفضّلتك." msgstr "أُزيل %s من مفضّلتك."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "اختر جهاز صوت"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "إعدادات الصوت"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "سماعات أذن"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "سماعة رأس"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "ميكروفون"
#: ../js/ui/backgroundMenu.js:19 #: ../js/ui/backgroundMenu.js:19
msgid "Change Background…" msgid "Change Background…"
msgstr "غيّر الخلفية…" msgstr "غيّر الخلفية…"
@ -480,13 +509,12 @@ msgstr "غيّر الخلفية…"
msgid "Display Settings" msgid "Display Settings"
msgstr "إعدادات العرض" msgstr "إعدادات العرض"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "الإعدادات" msgstr "الإعدادات"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). #. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:55 #: ../js/ui/calendar.js:47
msgctxt "calendar-no-work" msgctxt "calendar-no-work"
msgid "06" msgid "06"
msgstr "56" msgstr "56"
@ -496,94 +524,96 @@ msgstr "56"
#. * NOTE: These grid abbreviations are always shown together #. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S". #. * and in order, e.g. "S M T W T F S".
#. #.
#: ../js/ui/calendar.js:84 #: ../js/ui/calendar.js:76
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "ح" msgstr "ح"
#. Translators: Calendar grid abbreviation for Monday #. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:86 #: ../js/ui/calendar.js:78
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "ن" msgstr "ن"
#. Translators: Calendar grid abbreviation for Tuesday #. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:88 #: ../js/ui/calendar.js:80
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "ث" msgstr "ث"
#. Translators: Calendar grid abbreviation for Wednesday #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:90 #: ../js/ui/calendar.js:82
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "ر" msgstr "ر"
#. Translators: Calendar grid abbreviation for Thursday #. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:92 #: ../js/ui/calendar.js:84
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "خ" msgstr "خ"
#. Translators: Calendar grid abbreviation for Friday #. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:94 #: ../js/ui/calendar.js:86
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "ج" msgstr "ج"
#. Translators: Calendar grid abbreviation for Saturday #. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:96 #: ../js/ui/calendar.js:88
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
msgstr "س" msgstr "س"
#: ../js/ui/calendar.js:566 #: ../js/ui/calendar.js:416
msgid "Previous month" msgid "Previous month"
msgstr "الشهر السابق" msgstr "الشهر السابق"
#: ../js/ui/calendar.js:576 #: ../js/ui/calendar.js:426
msgid "Next month" msgid "Next month"
msgstr "الشهر التالي" msgstr "الشهر التالي"
#: ../js/ui/calendar.js:783 #: ../js/ui/calendar.js:579
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:634
msgid "Week %V" msgid "Week %V"
msgstr "أسبوع %V" msgstr "أسبوع %V"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. #.
#: ../js/ui/calendar.js:1188 #: ../js/ui/calendar.js:695
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "طوال اليوم" msgstr "طوال اليوم"
#: ../js/ui/calendar.js:1295 #: ../js/ui/calendar.js:821
msgid "Clear section"
msgstr "امسح القسم"
#: ../js/ui/calendar.js:1522
msgid "Events" msgid "Events"
msgstr "الأحداث" msgstr "الأحداث"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:830
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A %d %B" msgstr "%A %d %B"
#: ../js/ui/calendar.js:1535 #: ../js/ui/calendar.js:834
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A %d %B %Y" msgstr "%A %d %B %Y"
#: ../js/ui/calendar.js:1620 #: ../js/ui/calendar.js:919
msgid "Notifications" msgid "Notifications"
msgstr "التنبيهات" msgstr "التنبيهات"
#: ../js/ui/calendar.js:1771 #: ../js/ui/calendar.js:1070
msgid "No Notifications" msgid "No Notifications"
msgstr "لا تنبيهات" msgstr "لا تنبيهات"
#: ../js/ui/calendar.js:1774 #: ../js/ui/calendar.js:1073
msgid "No Events" msgid "No Events"
msgstr "لا أحداث" msgstr "لا أحداث"
@ -595,7 +625,7 @@ msgstr "وُصّل قرص خارجي"
msgid "External drive disconnected" msgid "External drive disconnected"
msgstr "فُصل القرص الخارجي" msgstr "فُصل القرص الخارجي"
#: ../js/ui/components/autorunManager.js:354 #: ../js/ui/components/autorunManager.js:355
#, javascript-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
msgstr "افتح باستخدام %s" msgstr "افتح باستخدام %s"
@ -719,7 +749,7 @@ msgstr "للأسف لم يُفلح هذا. أعِد المحاولة."
#. Translators: this is the other person changing their old IM name to their new #. Translators: this is the other person changing their old IM name to their new
#. IM name. #. IM name.
#: ../js/ui/components/telepathyClient.js:759 #: ../js/ui/components/telepathyClient.js:760
#, javascript-format #, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "غيّر %s اسمه إلى %s" msgstr "غيّر %s اسمه إلى %s"
@ -921,11 +951,11 @@ msgid "Keyboard"
msgstr "لوحة المفاتيح" msgstr "لوحة المفاتيح"
#. translators: 'Hide' is a verb #. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66 #: ../js/ui/legacyTray.js:65
msgid "Hide tray" msgid "Hide tray"
msgstr "أخفِ الصينية" msgstr "أخفِ الصينية"
#: ../js/ui/legacyTray.js:107 #: ../js/ui/legacyTray.js:106
msgid "Status Icons" msgid "Status Icons"
msgstr "أيقونات الحالة" msgstr "أيقونات الحالة"
@ -977,10 +1007,26 @@ msgstr "اعرض المصدر"
msgid "Web Page" msgid "Web Page"
msgstr "صفحة الوب" msgstr "صفحة الوب"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "امسح القسم"
#: ../js/ui/messageTray.js:1486 #: ../js/ui/messageTray.js:1486
msgid "System Information" msgid "System Information"
msgstr "معلومات النظام" msgstr "معلومات النظام"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "فنان غير معروف"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "عنوان غير معروف"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "وسائط"
#: ../js/ui/overview.js:84 #: ../js/ui/overview.js:84
msgid "Undo" msgid "Undo"
msgstr "تراجع" msgstr "تراجع"
@ -997,17 +1043,22 @@ msgstr "نظرة عامة"
msgid "Type to search…" msgid "Type to search…"
msgstr "اكتب نصا للبحث عنه…" msgstr "اكتب نصا للبحث عنه…"
#: ../js/ui/panel.js:352 #: ../js/ui/panel.js:358
msgid "Quit" msgid "Quit"
msgstr "أنْهِ" msgstr "أنْهِ"
#. Translators: If there is no suitable word for "Activities" #. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". #. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:404 #: ../js/ui/panel.js:414
msgid "Activities" msgid "Activities"
msgstr "الأنشطة" msgstr "الأنشطة"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "النظام"
#: ../js/ui/panel.js:807
msgid "Top Bar" msgid "Top Bar"
msgstr "الشريط العلوي" msgstr "الشريط العلوي"
@ -1020,15 +1071,15 @@ msgstr "الشريط العلوي"
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:70 #: ../js/ui/runDialog.js:71
msgid "Enter a Command" msgid "Enter a Command"
msgstr "اكتب أمرًا" msgstr "اكتب أمرًا"
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162 #: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
msgid "Close" msgid "Close"
msgstr "أغلِق" msgstr "أغلِق"
#: ../js/ui/runDialog.js:281 #: ../js/ui/runDialog.js:282
msgid "Restarting…" msgid "Restarting…"
msgstr "يُعيد التشغيل…" msgstr "يُعيد التشغيل…"
@ -1159,19 +1210,16 @@ msgstr "تباين عال"
msgid "Large Text" msgid "Large Text"
msgstr "نص كبير" msgstr "نص كبير"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178 #: ../js/ui/status/bluetooth.js:47
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279 msgid "Bluetooth"
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90 msgstr "بلوتوث"
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "أوقف"
#: ../js/ui/status/bluetooth.js:54 #: ../js/ui/status/bluetooth.js:56
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "إعدادات بلوتوث" msgstr "إعدادات بلوتوث"
#. Translators: this is the number of connected bluetooth devices #. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:105 #: ../js/ui/status/bluetooth.js:136
#, javascript-format #, javascript-format
msgid "%d Connected" msgid "%d Connected"
msgid_plural "%d Connected" msgid_plural "%d Connected"
@ -1182,10 +1230,25 @@ msgstr[3] "%d مُتصل"
msgstr[4] "%d مُتصل" msgstr[4] "%d مُتصل"
msgstr[5] "%d مُتصل" msgstr[5] "%d مُتصل"
#: ../js/ui/status/bluetooth.js:107 #: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "مغلق"
#: ../js/ui/status/bluetooth.js:140
msgid "Not In Use" msgid "Not In Use"
msgstr "غير مستخدم" msgstr "غير مستخدم"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "شغّل"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "أوقف"
#: ../js/ui/status/brightness.js:44 #: ../js/ui/status/brightness.js:44
msgid "Brightness" msgid "Brightness"
msgstr "السطوع" msgstr "السطوع"
@ -1194,30 +1257,48 @@ msgstr "السطوع"
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "أظهر تخطيط لوحة المفاتيح" msgstr "أظهر تخطيط لوحة المفاتيح"
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177 #: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
msgid "Location Enabled" msgid "Location Enabled"
msgstr "التموضع مفعّل" msgstr "التموضع مفعّل"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178 #: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
msgid "Disable" msgid "Disable"
msgstr "عطّل" msgstr "عطّل"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:109
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "إعدادات الخصوصية" msgstr "إعدادات الخصوصية"
#: ../js/ui/status/location.js:176 #: ../js/ui/status/location.js:214
msgid "Location In Use" msgid "Location In Use"
msgstr "التموضع مستخدم" msgstr "التموضع مستخدم"
#: ../js/ui/status/location.js:180 #: ../js/ui/status/location.js:218
msgid "Location Disabled" msgid "Location Disabled"
msgstr "التموضع غير مفعّل" msgstr "التموضع غير مفعّل"
#: ../js/ui/status/location.js:181 #: ../js/ui/status/location.js:219
msgid "Enable" msgid "Enable"
msgstr "فعّل" msgstr "فعّل"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "ارفض منح الصلاحية"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "امنح الصلاحية"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "أتريد إعطاء %s صلاحية معرفة مكانك؟"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr "يمكن تغيير صلاحيات الوصول لمكانك في أي وقت من إعدادات الخصوصية."
#: ../js/ui/status/network.js:101 #: ../js/ui/status/network.js:101
msgid "<unknown>" msgid "<unknown>"
msgstr "<غير معروفة>" msgstr "<غير معروفة>"
@ -1226,13 +1307,13 @@ msgstr "<غير معروفة>"
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308 #: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
#, javascript-format #, javascript-format
msgid "%s Off" msgid "%s Off"
msgstr "%s مغلق" msgstr "%s مغلق"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:454 #: ../js/ui/status/network.js:454
#, javascript-format #, javascript-format
msgid "%s Connected" msgid "%s Connected"
msgstr "%s مُتصل" msgstr "%s مُتصل"
#. Translators: this is for network devices that are physically present but are not #. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu); #. under NetworkManager's control (and thus cannot be used in the menu);
@ -1240,19 +1321,19 @@ msgstr "%s مُتصل"
#: ../js/ui/status/network.js:459 #: ../js/ui/status/network.js:459
#, javascript-format #, javascript-format
msgid "%s Unmanaged" msgid "%s Unmanaged"
msgstr "%s غير مُدار" msgstr "%s غير مُدار"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:462 #: ../js/ui/status/network.js:462
#, javascript-format #, javascript-format
msgid "%s Disconnecting" msgid "%s Disconnecting"
msgstr "%s يقطع الاتّصال" msgstr "%s يقطع الاتّصال"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300 #: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
#, javascript-format #, javascript-format
msgid "%s Connecting" msgid "%s Connecting"
msgstr "%s يتّصل" msgstr "%s يتّصل"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier #. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: ../js/ui/status/network.js:472 #: ../js/ui/status/network.js:472
@ -1272,7 +1353,7 @@ msgstr "برمجيات %s المغروسة (Firmware) غير متاحة"
#: ../js/ui/status/network.js:484 #: ../js/ui/status/network.js:484
#, javascript-format #, javascript-format
msgid "%s Unavailable" msgid "%s Unavailable"
msgstr "%s غير متاح" msgstr "%s غير متاح"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:487 #: ../js/ui/status/network.js:487
@ -1299,7 +1380,7 @@ msgstr "عتاد %s مُعَطَّل"
#: ../js/ui/status/network.js:592 #: ../js/ui/status/network.js:592
#, javascript-format #, javascript-format
msgid "%s Disabled" msgid "%s Disabled"
msgstr "%s معطّل" msgstr "%s معطّل"
#: ../js/ui/status/network.js:632 #: ../js/ui/status/network.js:632
msgid "Use as Internet connection" msgid "Use as Internet connection"
@ -1353,10 +1434,6 @@ msgstr "اختر شبكة"
msgid "Wi-Fi Settings" msgid "Wi-Fi Settings"
msgstr "إعدادات الاتصال اللاسلكي" msgstr "إعدادات الاتصال اللاسلكي"
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "شغّل"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296 #: ../js/ui/status/network.js:1296
#, javascript-format #, javascript-format
@ -1367,7 +1444,7 @@ msgstr "نقطة اتصال %s نشطة"
#: ../js/ui/status/network.js:1311 #: ../js/ui/status/network.js:1311
#, javascript-format #, javascript-format
msgid "%s Not Connected" msgid "%s Not Connected"
msgstr "%s غير متّصل" msgstr "%s غير متّصل"
#: ../js/ui/status/network.js:1411 #: ../js/ui/status/network.js:1411
msgid "connecting..." msgid "connecting..."
@ -1395,9 +1472,8 @@ msgid "VPN"
msgstr "ش‌خ‌ف (VPN)" msgstr "ش‌خ‌ف (VPN)"
#: ../js/ui/status/network.js:1513 #: ../js/ui/status/network.js:1513
#, fuzzy
msgid "VPN Off" msgid "VPN Off"
msgstr "أطفئ الحاسوب" msgstr "أطفِئ ش‌خ‌ف (VPN) "
#: ../js/ui/status/network.js:1697 #: ../js/ui/status/network.js:1697
msgid "Connection failed" msgid "Connection failed"
@ -1407,31 +1483,36 @@ msgstr "فشل الاتصال"
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "فشل تفعيل اتصال الشبكة" msgstr "فشل تفعيل اتصال الشبكة"
#: ../js/ui/status/power.js:49 #: ../js/ui/status/power.js:61
msgid "Power Settings" msgid "Power Settings"
msgstr "إعدادات الطاقة" msgstr "إعدادات الطاقة"
#: ../js/ui/status/power.js:65 #: ../js/ui/status/power.js:77
msgid "Fully Charged" msgid "Fully Charged"
msgstr "مشحونة بالكامل" msgstr "مشحونة بالكامل"
#. 0 is reported when UPower does not have enough data #. 0 is reported when UPower does not have enough data
#. to estimate battery life #. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78 #: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
msgid "Estimating…" msgid "Estimating…"
msgstr "يَحسِب…" msgstr "يَحسِب…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>) #. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:98
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "بقي %d%02d (%d%%)" msgstr "بقي %d%02d (%d٪)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>) #. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91 #: ../js/ui/status/power.js:103
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "بقي على الاكتمال %d%02d (%d%%)" msgstr "بقي على الاكتمال %d%02d (%d٪)"
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
#, javascript-format
msgid "%d%%"
msgstr "%d٪"
#. The menu only appears when airplane mode is on, so just #. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically #. statically build it as if it was on, rather than dynamically
@ -1472,10 +1553,6 @@ msgstr "تغيّرت شدة الصوت"
msgid "Volume" msgid "Volume"
msgstr "شدة الصوت" msgstr "شدة الصوت"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "ميكروفون"
#: ../js/ui/unlockDialog.js:67 #: ../js/ui/unlockDialog.js:67
msgid "Log in as another user" msgid "Log in as another user"
msgstr "لِج كمستخدم آخر" msgstr "لِج كمستخدم آخر"
@ -1628,46 +1705,49 @@ msgstr[5] "%u مدخل"
msgid "System Sounds" msgid "System Sounds"
msgstr "أصوات النظام" msgstr "أصوات النظام"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "اطبع الإصدارة" msgstr "اطبع الإصدارة"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "الوضع الذي يستخدمه مدير ولوج جنوم لشاشة الولوج" msgstr "الوضع الذي يستخدمه مدير ولوج جنوم لشاشة الولوج"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "استخدم طورا معينا، مثلا: \"gdm\" لشاشة الولوج" msgstr "استخدم طورا معينا، مثلا: \"gdm\" لشاشة الولوج"
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "اسرد كل الأطوار الممكنة" msgstr "اسرد كل الأطوار الممكنة"
#: ../src/shell-app.c:239 #: ../src/shell-app.c:246
msgctxt "program" msgctxt "program"
msgid "Unknown" msgid "Unknown"
msgstr "غير معروف" msgstr "غير معروف"
#: ../src/shell-app.c:480 #: ../src/shell-app.c:487
#, c-format #, c-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "فشل تشغيل ”%s“" msgstr "فشل تشغيل ”%s“"
#: ../src/shell-keyring-prompt.c:742 #: ../src/shell-keyring-prompt.c:730
msgid "Passwords do not match." msgid "Passwords do not match."
msgstr "لا تتطابق كلمتا السر." msgstr "لا تتطابق كلمتا السر."
#: ../src/shell-keyring-prompt.c:750 #: ../src/shell-keyring-prompt.c:738
msgid "Password cannot be blank" msgid "Password cannot be blank"
msgstr "لا يمكن أن تكون كلمة السرّ فارغة" msgstr "لا يمكن أن تكون كلمة السرّ فارغة"
#: ../src/shell-polkit-authentication-agent.c:346 #: ../src/shell-polkit-authentication-agent.c:353
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "أغلق المستخدم مربع الاستيثاق الحِواري" msgstr "أغلق المستخدم مربع الاستيثاق الحِواري"
#~ msgid "Bluetooth" #~ msgid "%s is requesting access to your location."
#~ msgstr "بلوتوث" #~ msgstr "يطلب %s صلاحية معرفة مكانك."
#~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "صدفة جنوم (وايلاند)"
#~ msgid "%d Connected Device" #~ msgid "%d Connected Device"
#~ msgid_plural "%d Connected Devices" #~ msgid_plural "%d Connected Devices"
@ -1678,9 +1758,6 @@ msgstr "أغلق المستخدم مربع الاستيثاق الحِواري"
#~ msgstr[4] "%d جهازًا موصّلا" #~ msgstr[4] "%d جهازًا موصّلا"
#~ msgstr[5] "%d جهاز موصّل" #~ msgstr[5] "%d جهاز موصّل"
#~ msgid "Off"
#~ msgstr "مغلق"
#~ msgid "Authentication required" #~ msgid "Authentication required"
#~ msgstr "الاستيثاق مطلوب" #~ msgstr "الاستيثاق مطلوب"
@ -1882,9 +1959,6 @@ msgstr "أغلق المستخدم مربع الاستيثاق الحِواري"
#~ msgid "View account" #~ msgid "View account"
#~ msgstr "أظهر الحساب" #~ msgstr "أظهر الحساب"
#~ msgid "Unknown reason"
#~ msgstr "السبب غير معروف"
#~ msgid "Open Calendar" #~ msgid "Open Calendar"
#~ msgstr "افتح التقويم" #~ msgstr "افتح التقويم"
@ -1977,9 +2051,6 @@ msgstr "أغلق المستخدم مربع الاستيثاق الحِواري"
#~ msgid "Device %s wants access to the service '%s'" #~ msgid "Device %s wants access to the service '%s'"
#~ msgstr "يريد الجهاز %s صلاحية الوصول للخدمة '%s'" #~ msgstr "يريد الجهاز %s صلاحية الوصول للخدمة '%s'"
#~ msgid "Always grant access"
#~ msgstr "امنح الصلاحية دائما"
#~ msgid "Grant this time only" #~ msgid "Grant this time only"
#~ msgstr "امنح هذه المرة فقط" #~ msgstr "امنح هذه المرة فقط"
@ -2069,9 +2140,6 @@ msgstr "أغلق المستخدم مربع الاستيثاق الحِواري"
#~ msgid "Visibility" #~ msgid "Visibility"
#~ msgstr "الرؤية" #~ msgstr "الرؤية"
#~ msgid "Send Files to Device…"
#~ msgstr "أرسِل ملفات للجهاز…"
#~ msgid "Set Up a New Device…" #~ msgid "Set Up a New Device…"
#~ msgstr "اضبط جهازًا جديدًا…" #~ msgstr "اضبط جهازًا جديدًا…"
@ -2162,10 +2230,6 @@ msgstr "أغلق المستخدم مربع الاستيثاق الحِواري"
#~ msgstr[4] "بقيت %d دقيقة" #~ msgstr[4] "بقيت %d دقيقة"
#~ msgstr[5] "بقيت %d دقيقة" #~ msgstr[5] "بقيت %d دقيقة"
#~ msgctxt "percent of battery remaining"
#~ msgid "%d%%"
#~ msgstr "%d%%"
#~ msgid "AC Adapter" #~ msgid "AC Adapter"
#~ msgstr "مقبس طاقة" #~ msgstr "مقبس طاقة"

719
po/bg.po

File diff suppressed because it is too large Load Diff

372
po/ca.po
View File

@ -3,22 +3,23 @@
# This file is distributed under the same license as the gnome-shell package. # This file is distributed under the same license as the gnome-shell package.
# Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com>, 2009. # Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com>, 2009.
# Jordi Serratosa <jordis@softcatala.cat>, 2012. # Jordi Serratosa <jordis@softcatala.cat>, 2012.
# Gil Forcada <gilforcada@guifi.net>, 2010, 2011, 2013, 2014. # Gil Forcada <gilforcada@guifi.net>, 2010, 2011, 2013, 2014, 2016.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: HEAD\n" "Project-Id-Version: HEAD\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"POT-Creation-Date: 2015-08-20 19:24+0200\n" "shell&keywords=I18N+L10N&component=general\n"
"PO-Revision-Date: 2015-05-28 19:32+0100\n" "POT-Creation-Date: 2016-03-13 10:20+0000\n"
"Last-Translator: David Medina <opensusecatala@gmail.com>\n" "PO-Revision-Date: 2016-03-13 14:47+0100\n"
"Last-Translator: Gil Forcada <gilforcada@guifi.net>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n" "Language-Team: Catalan <tradgnome@softcatala.org>\n"
"Language: ca\n" "Language: ca\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bits\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Poedit 1.6.9\n" "X-Generator: Gtranslator 2.91.6\n"
#: ../data/50-gnome-shell-system.xml.in.h:1 #: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System" msgid "System"
@ -44,15 +45,6 @@ msgstr "Mostra totes les aplicacions"
msgid "Open the application menu" msgid "Open the application menu"
msgstr "Obre el menú d'aplicació" msgstr "Obre el menú d'aplicació"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "GNOME Shell"
#: ../data/gnome-shell.desktop.in.in.h:2
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Gestor de finestres i llançador d'aplicacions"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "Preferències de les extensions del GNOME Shell" msgstr "Preferències de les extensions del GNOME Shell"
@ -61,9 +53,13 @@ msgstr "Preferències de les extensions del GNOME Shell"
msgid "Configure GNOME Shell Extensions" msgid "Configure GNOME Shell Extensions"
msgstr "Configureu les extensions del GNOME Shell" msgstr "Configureu les extensions del GNOME Shell"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1 #: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)" msgid "GNOME Shell"
msgstr "GNOME Shell (composició mitjançant Wayland)" msgstr "GNOME Shell"
#: ../data/org.gnome.Shell.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Gestor de finestres i llançador d'aplicacions"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1 #: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2" msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -176,78 +172,97 @@ msgstr ""
"de verificació." "de verificació."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18 #: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
"Si l'adaptador de Bluetooth predeterminat té dispositius configurats "
"associats"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
"powered, or if there were devices set up associated with the default "
"adapter. This will be reset if the default adapter is ever seen not to have "
"devices associated to it."
msgstr ""
"El Shell només mostrà una entrada de menú Bluetooth si un adaptador Bluetooh "
"està engegat, o si hi ha dispositius configurats associats a l'adaptador "
"predeterminat. Això es reiniciarà si l'adaptador predeterminat té "
"dispositius associats."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar" msgid "Show the week date in the calendar"
msgstr "Mostra el número de la setmana al calendari" msgstr "Mostra el número de la setmana al calendari"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19 #: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "If true, display the ISO week date in the calendar." msgid "If true, display the ISO week date in the calendar."
msgstr "Si és «true» (cert) es mostra el número de la setmana al calendari." msgstr "Si és «true» (cert) es mostra el número de la setmana al calendari."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20 #: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the application menu" msgid "Keybinding to open the application menu"
msgstr "Vinculació per obrir el menú d'aplicació" msgstr "Vinculació per obrir el menú d'aplicació"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
msgid "Keybinding to open the application menu." msgid "Keybinding to open the application menu."
msgstr "La vinculació per obrir el menú d'aplicació." msgstr "La vinculació per obrir el menú d'aplicació."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the \"Show Applications\" view" msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Vinculació per obrir la vista «Mostra les aplicacions»" msgstr "Vinculació per obrir la vista «Mostra les aplicacions»"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "" msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview." "Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr "" msgstr ""
"Vinculació per obrir la vista «Mostra les aplicacions» de les activitats de " "Vinculació per obrir la vista «Mostra les aplicacions» de les activitats de "
"la vista general." "la vista general."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "Vinculació per obrir la vista general" msgstr "Vinculació per obrir la vista general"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25 #: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "Vinculació per obrir la vista general d'activitats." msgstr "Vinculació per obrir la vista general d'activitats."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to toggle the visibility of the notification list" msgid "Keybinding to toggle the visibility of the notification list"
msgstr "" msgstr ""
"La vinculació per commutar la visibilitat de la llista de notificacions" "La vinculació per commutar la visibilitat de la llista de notificacions"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27 #: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to toggle the visibility of the notification list." msgid "Keybinding to toggle the visibility of the notification list."
msgstr "" msgstr ""
"La vinculació per commutar la visibilitat de la llista de notificacions." "La vinculació per commutar la visibilitat de la llista de notificacions."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "Vinculació per posar el focus a la notificació activa" msgstr "Vinculació per posar el focus a la notificació activa"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29 #: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "Vinculació per posar el focus a la notificació activa." msgstr "Vinculació per posar el focus a la notificació activa."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "" msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes" "Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr "" msgstr ""
"Vinculació que fa una pausa i continua tots els «tweens» en execució, per " "Vinculació que fa una pausa i continua tots els «tweens» en execució, per "
"motius de depuració" "motius de depuració"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31 #: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Which keyboard to use" msgid "Which keyboard to use"
msgstr "Quin tipus de teclat s'ha d'utilitzar" msgstr "Quin tipus de teclat s'ha d'utilitzar"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32 #: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid "The type of keyboard to use." msgid "The type of keyboard to use."
msgstr "El tipus de teclat que s'utilitzarà." msgstr "El tipus de teclat que s'utilitzarà."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33 #: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "Limita el canviador a l'espai de treball actual." msgstr "Limita el canviador a l'espai de treball actual."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34 #: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid "" msgid ""
"If true, only applications that have windows on the current workspace are " "If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included." "shown in the switcher. Otherwise, all applications are included."
@ -256,11 +271,11 @@ msgstr ""
"de treball actual es mostren en el canviador. En cas contrari es mostren " "de treball actual es mostren en el canviador. En cas contrari es mostren "
"totes les aplicacions." "totes les aplicacions."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35 #: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "The application icon mode." msgid "The application icon mode."
msgstr "El mode d'icona de les aplicacions." msgstr "El mode d'icona de les aplicacions."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36 #: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "" msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities " "Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-" "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
@ -271,7 +286,7 @@ msgstr ""
"icon-only» (mostra la icona de l'aplicació) o «both» (ambdues coses: mostra " "icon-only» (mostra la icona de l'aplicació) o «both» (ambdues coses: mostra "
"la miniatura de la finestra i la icona de l'aplicació)." "la miniatura de la finestra i la icona de l'aplicació)."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid "" msgid ""
"If true, only windows from the current workspace are shown in the switcher. " "If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included." "Otherwise, all windows are included."
@ -279,32 +294,32 @@ msgstr ""
"Si és «true» (cert), només les finestres de l'espai de treball actual es " "Si és «true» (cert), només les finestres de l'espai de treball actual es "
"mostren en el canviador. En cas contrari, es mostren totes les finestres." "mostren en el canviador. En cas contrari, es mostren totes les finestres."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
msgstr "Adjunta el diàleg modal a la finestra pare" msgstr "Adjunta el diàleg modal a la finestra pare"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39 #: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid "" msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "" msgstr ""
"Si s'executa el GNOME Shell, aquesta clau sobreescriu la clau «org.gnome." "Si s'executa el GNOME Shell, aquesta clau sobreescriu la clau «org.gnome."
"mutter»." "mutter»."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40 #: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "" msgstr ""
"Habilita la tesselització a les vores en deixar anar les finestres a les " "Habilita la tesselització a les vores en deixar anar les finestres a les "
"vores de la pantalla" "vores de la pantalla"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41 #: ../data/org.gnome.shell.gschema.xml.in.in.h:43
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Els espais de treball es gestionen dinàmicament" msgstr "Els espais de treball es gestionen dinàmicament"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42 #: ../data/org.gnome.shell.gschema.xml.in.in.h:44
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Només en el monitor principal hi ha espais de treball" msgstr "Només en el monitor principal hi ha espais de treball"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43 #: ../data/org.gnome.shell.gschema.xml.in.in.h:45
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "" msgstr ""
"Retarda el canvi del focus, quan s'està en mode ratolí, fins que el punter " "Retarda el canvi del focus, quan s'està en mode ratolí, fins que el punter "
@ -314,51 +329,52 @@ msgstr ""
msgid "Network Login" msgid "Network Login"
msgstr "Inici de sessió de la xarxa" msgstr "Inici de sessió de la xarxa"
#: ../js/extensionPrefs/main.js:122 #: ../js/extensionPrefs/main.js:117
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "S'ha produït un error en carregar el diàleg de preferències de %s:" msgstr "S'ha produït un error en carregar el diàleg de preferències de %s:"
#: ../js/extensionPrefs/main.js:154 #: ../js/extensionPrefs/main.js:149
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "Extensions del GNOME Shell" msgstr "Extensions del GNOME Shell"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145 #: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452 #: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916 #: ../js/ui/status/network.js:916
msgid "Cancel" msgid "Cancel"
msgstr "Cancel·la" msgstr "Cancel·la"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215 #: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:435 #: ../js/gdm/authPrompt.js:448
msgid "Next" msgid "Next"
msgstr "Següent" msgstr "Següent"
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403 #: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59 #: ../js/ui/unlockDialog.js:59
msgid "Unlock" msgid "Unlock"
msgstr "Desbloqueja" msgstr "Desbloqueja"
#: ../js/gdm/authPrompt.js:213 #: ../js/gdm/authPrompt.js:214
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Entra" msgstr "Entra"
#: ../js/gdm/loginDialog.js:281 #: ../js/gdm/loginDialog.js:285
msgid "Choose Session" msgid "Choose Session"
msgstr "Trieu la sessió" msgstr "Trieu la sessió"
#. translators: this message is shown below the user list on the #. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for #. login screen. It can be activated to reveal an entry for
#. manually entering the username. #. manually entering the username.
#: ../js/gdm/loginDialog.js:431 #: ../js/gdm/loginDialog.js:435
msgid "Not listed?" msgid "Not listed?"
msgstr "No esteu llistat?" msgstr "No esteu llistat?"
#. Translators: this message is shown below the username entry field #. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm #. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:847 #: ../js/gdm/loginDialog.js:854
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(p. ex. l'usuari o %s)" msgstr "(p. ex. l'usuari o %s)"
@ -366,12 +382,12 @@ msgstr "(p. ex. l'usuari o %s)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:852 ../js/ui/components/networkAgent.js:271 #: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289 #: ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
msgstr "Nom d'usuari:" msgstr "Nom d'usuari:"
#: ../js/gdm/loginDialog.js:1181 #: ../js/gdm/loginDialog.js:1196
msgid "Login Window" msgid "Login Window"
msgstr "Finestra d'entrada" msgstr "Finestra d'entrada"
@ -507,16 +523,36 @@ msgstr "Afegeix als preferits"
msgid "Show Details" msgid "Show Details"
msgstr "Mostra els detalls" msgstr "Mostra els detalls"
#: ../js/ui/appFavorites.js:132 #: ../js/ui/appFavorites.js:134
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "S'ha afegit %s als preferits." msgstr "S'ha afegit %s als preferits."
#: ../js/ui/appFavorites.js:166 #: ../js/ui/appFavorites.js:168
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "S'ha suprimit %s dels preferits." msgstr "S'ha suprimit %s dels preferits."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Seleccioneu dispositiu d'àudio"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "Paràmetres del so"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Auriculars"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Auriculars amb micròfon"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Micròfon"
#: ../js/ui/backgroundMenu.js:19 #: ../js/ui/backgroundMenu.js:19
msgid "Change Background…" msgid "Change Background…"
msgstr "Canvia el fons de l'escriptori…" msgstr "Canvia el fons de l'escriptori…"
@ -525,13 +561,12 @@ msgstr "Canvia el fons de l'escriptori…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Paràmetres de la pantalla" msgstr "Paràmetres de la pantalla"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "Paràmetres" msgstr "Paràmetres"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). #. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:55 #: ../js/ui/calendar.js:47
msgctxt "calendar-no-work" msgctxt "calendar-no-work"
msgid "06" msgid "06"
msgstr "06" msgstr "06"
@ -541,94 +576,96 @@ msgstr "06"
#. * NOTE: These grid abbreviations are always shown together #. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S". #. * and in order, e.g. "S M T W T F S".
#. #.
#: ../js/ui/calendar.js:84 #: ../js/ui/calendar.js:76
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "Dg" msgstr "Dg"
#. Translators: Calendar grid abbreviation for Monday #. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:86 #: ../js/ui/calendar.js:78
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "Dl" msgstr "Dl"
#. Translators: Calendar grid abbreviation for Tuesday #. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:88 #: ../js/ui/calendar.js:80
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "Dt" msgstr "Dt"
#. Translators: Calendar grid abbreviation for Wednesday #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:90 #: ../js/ui/calendar.js:82
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "Dc" msgstr "Dc"
#. Translators: Calendar grid abbreviation for Thursday #. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:92 #: ../js/ui/calendar.js:84
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "Dj" msgstr "Dj"
#. Translators: Calendar grid abbreviation for Friday #. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:94 #: ../js/ui/calendar.js:86
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "Dv" msgstr "Dv"
#. Translators: Calendar grid abbreviation for Saturday #. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:96 #: ../js/ui/calendar.js:88
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
msgstr "Ds" msgstr "Ds"
#: ../js/ui/calendar.js:566 #: ../js/ui/calendar.js:416
msgid "Previous month" msgid "Previous month"
msgstr "Mes anterior" msgstr "Mes anterior"
#: ../js/ui/calendar.js:576 #: ../js/ui/calendar.js:426
msgid "Next month" msgid "Next month"
msgstr "Mes següent" msgstr "Mes següent"
#: ../js/ui/calendar.js:783 #: ../js/ui/calendar.js:579
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:634
msgid "Week %V" msgid "Week %V"
msgstr "Setmana %V" msgstr "Setmana %V"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. #.
#: ../js/ui/calendar.js:1188 #: ../js/ui/calendar.js:695
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Tot el dia" msgstr "Tot el dia"
#: ../js/ui/calendar.js:1291 #: ../js/ui/calendar.js:821
msgid "Clear section"
msgstr "Neteja la secció"
#: ../js/ui/calendar.js:1518
msgid "Events" msgid "Events"
msgstr "Cites" msgstr "Cites"
#: ../js/ui/calendar.js:1527 #: ../js/ui/calendar.js:830
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A %d de %B" msgstr "%A %d de %B"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:834
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A %d de %B de %Y" msgstr "%A %d de %B de %Y"
#: ../js/ui/calendar.js:1616 #: ../js/ui/calendar.js:919
msgid "Notifications" msgid "Notifications"
msgstr "Notificacions" msgstr "Notificacions"
#: ../js/ui/calendar.js:1767 #: ../js/ui/calendar.js:1070
msgid "No Notifications" msgid "No Notifications"
msgstr "Cap notificació" msgstr "Cap notificació"
#: ../js/ui/calendar.js:1770 #: ../js/ui/calendar.js:1073
msgid "No Events" msgid "No Events"
msgstr "Cap cita" msgstr "Cap cita"
@ -640,7 +677,7 @@ msgstr "S'ha connectat un dispositiu extern"
msgid "External drive disconnected" msgid "External drive disconnected"
msgstr "S'ha desconnectat un dispositiu extern" msgstr "S'ha desconnectat un dispositiu extern"
#: ../js/ui/components/autorunManager.js:354 #: ../js/ui/components/autorunManager.js:355
#, javascript-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
msgstr "Obre amb %s" msgstr "Obre amb %s"
@ -956,11 +993,11 @@ msgid "Keyboard"
msgstr "Teclat" msgstr "Teclat"
#. translators: 'Hide' is a verb #. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66 #: ../js/ui/legacyTray.js:65
msgid "Hide tray" msgid "Hide tray"
msgstr "Oculta la Safata" msgstr "Oculta la Safata"
#: ../js/ui/legacyTray.js:107 #: ../js/ui/legacyTray.js:106
msgid "Status Icons" msgid "Status Icons"
msgstr "Icones d'estat" msgstr "Icones d'estat"
@ -988,7 +1025,7 @@ msgstr "Habilitat"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled" msgid "Disabled"
msgstr "Inhabilitat" msgstr "Inhabilitat"
@ -1012,10 +1049,26 @@ msgstr "Mostra el codi font"
msgid "Web Page" msgid "Web Page"
msgstr "Pàgina web" msgstr "Pàgina web"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Neteja la secció"
#: ../js/ui/messageTray.js:1486 #: ../js/ui/messageTray.js:1486
msgid "System Information" msgid "System Information"
msgstr "Informació de l'ordinador" msgstr "Informació de l'ordinador"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Artista desconegut"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "Títol desconegut"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Multimèdia"
#: ../js/ui/overview.js:84 #: ../js/ui/overview.js:84
msgid "Undo" msgid "Undo"
msgstr "Desfés" msgstr "Desfés"
@ -1032,17 +1085,22 @@ msgstr "Vista general"
msgid "Type to search…" msgid "Type to search…"
msgstr "Teclegeu per cercar…" msgstr "Teclegeu per cercar…"
#: ../js/ui/panel.js:352 #: ../js/ui/panel.js:358
msgid "Quit" msgid "Quit"
msgstr "Surt" msgstr "Surt"
#. Translators: If there is no suitable word for "Activities" #. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". #. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:404 #: ../js/ui/panel.js:414
msgid "Activities" msgid "Activities"
msgstr "Activitats" msgstr "Activitats"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistema"
#: ../js/ui/panel.js:807
msgid "Top Bar" msgid "Top Bar"
msgstr "Barra superior" msgstr "Barra superior"
@ -1055,15 +1113,15 @@ msgstr "Barra superior"
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:70 #: ../js/ui/runDialog.js:71
msgid "Enter a Command" msgid "Enter a Command"
msgstr "Introduïu una ordre" msgstr "Introduïu una ordre"
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162 #: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
msgid "Close" msgid "Close"
msgstr "Tanca" msgstr "Tanca"
#: ../js/ui/runDialog.js:281 #: ../js/ui/runDialog.js:282
msgid "Restarting…" msgid "Restarting…"
msgstr "S'està reiniciant…" msgstr "S'està reiniciant…"
@ -1186,29 +1244,41 @@ msgstr "Alt contrast"
msgid "Large Text" msgid "Large Text"
msgstr "Text gran" msgstr "Text gran"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178 #: ../js/ui/status/bluetooth.js:47
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279 msgid "Bluetooth"
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90 msgstr "Bluetooth"
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Desactiva"
#: ../js/ui/status/bluetooth.js:54 #: ../js/ui/status/bluetooth.js:56
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Paràmetres del Bluetooth" msgstr "Paràmetres del Bluetooth"
#. Translators: this is the number of connected bluetooth devices #. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:105 #: ../js/ui/status/bluetooth.js:136
#, javascript-format #, javascript-format
msgid "%d Connected" msgid "%d Connected"
msgid_plural "%d Connected" msgid_plural "%d Connected"
msgstr[0] "%d connectat" msgstr[0] "%d connectat"
msgstr[1] "%d connectats" msgstr[1] "%d connectats"
#: ../js/ui/status/bluetooth.js:107 #: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "Desactivat"
#: ../js/ui/status/bluetooth.js:140
msgid "Not In Use" msgid "Not In Use"
msgstr "No s'usa" msgstr "No s'usa"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Activa"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Desactiva"
#: ../js/ui/status/brightness.js:44 #: ../js/ui/status/brightness.js:44
msgid "Brightness" msgid "Brightness"
msgstr "Brillantor" msgstr "Brillantor"
@ -1217,30 +1287,50 @@ msgstr "Brillantor"
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Mostra la disposició del teclat" msgstr "Mostra la disposició del teclat"
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177 #: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
msgid "Location Enabled" msgid "Location Enabled"
msgstr "Ubicació habilitada" msgstr "Ubicació habilitada"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178 #: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
msgid "Disable" msgid "Disable"
msgstr "Inhabilita" msgstr "Inhabilita"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:109
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "Paràmetres de privacitat" msgstr "Paràmetres de privacitat"
#: ../js/ui/status/location.js:176 #: ../js/ui/status/location.js:214
msgid "Location In Use" msgid "Location In Use"
msgstr "Ubicació en ús" msgstr "Ubicació en ús"
#: ../js/ui/status/location.js:180 #: ../js/ui/status/location.js:218
msgid "Location Disabled" msgid "Location Disabled"
msgstr "Ubicació inhabilitada" msgstr "Ubicació inhabilitada"
#: ../js/ui/status/location.js:181 #: ../js/ui/status/location.js:219
msgid "Enable" msgid "Enable"
msgstr "Habilita" msgstr "Habilita"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Denega l'accés"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Permetre l'accés"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Voleu donar a %s accés a la vostra ubicació?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"Podeu canviar la configuració de l'accés a la ubicació sempre que vulgueu "
"des del la configuració de la privacitat."
#: ../js/ui/status/network.js:101 #: ../js/ui/status/network.js:101
msgid "<unknown>" msgid "<unknown>"
msgstr "<desconegut>" msgstr "<desconegut>"
@ -1376,10 +1466,6 @@ msgstr "Trieu una xarxa"
msgid "Wi-Fi Settings" msgid "Wi-Fi Settings"
msgstr "Paràmetres del sense fil" msgstr "Paràmetres del sense fil"
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Activa"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296 #: ../js/ui/status/network.js:1296
#, javascript-format #, javascript-format
@ -1429,31 +1515,36 @@ msgstr "Ha fallat la connexió"
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Ha fallat l'activació de la connexió de xarxa" msgstr "Ha fallat l'activació de la connexió de xarxa"
#: ../js/ui/status/power.js:49 #: ../js/ui/status/power.js:61
msgid "Power Settings" msgid "Power Settings"
msgstr "Paràmetres d'energia" msgstr "Paràmetres d'energia"
#: ../js/ui/status/power.js:65 #: ../js/ui/status/power.js:77
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Totalment carregada" msgstr "Totalment carregada"
#. 0 is reported when UPower does not have enough data #. 0 is reported when UPower does not have enough data
#. to estimate battery life #. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78 #: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
msgid "Estimating…" msgid "Estimating…"
msgstr "S'està estimant la durada…" msgstr "S'està estimant la durada…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>) #. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:98
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d Queda (%d%%)" msgstr "%d%02d Queda (%d %%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>) #. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91 #: ../js/ui/status/power.js:103
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "%d%02d Fins que estigui del tot carregada (%d%%)" msgstr "%d%02d Fins que estigui del tot carregada (%d %%)"
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
#, javascript-format
msgid "%d%%"
msgstr "%d%%"
#. The menu only appears when airplane mode is on, so just #. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically #. statically build it as if it was on, rather than dynamically
@ -1494,10 +1585,6 @@ msgstr "S'ha canviat el volum"
msgid "Volume" msgid "Volume"
msgstr "Volum" msgstr "Volum"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Micròfon"
#: ../js/ui/unlockDialog.js:67 #: ../js/ui/unlockDialog.js:67
msgid "Log in as another user" msgid "Log in as another user"
msgstr "Entra amb un altre usuari" msgstr "Entra amb un altre usuari"
@ -1618,7 +1705,7 @@ msgstr "Calendari de l'Evolution"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1837 #: ../src/gvc/gvc-mixer-control.c:1835
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1627,66 +1714,66 @@ msgstr[1] "%u sortides"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1847 #: ../src/gvc/gvc-mixer-control.c:1845
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
msgstr[0] "%u entrada" msgstr[0] "%u entrada"
msgstr[1] "%u entrades" msgstr[1] "%u entrades"
#: ../src/gvc/gvc-mixer-control.c:2373 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "Sons del sistema" msgstr "Sons del sistema"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Mostra la versió" msgstr "Mostra la versió"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "El mode que utilitzarà el GDM per a la pantalla d'entrada" msgstr "El mode que utilitzarà el GDM per a la pantalla d'entrada"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Utilitza un mode específic, p. ex. «gdm» per la pantalla d'entrada" msgstr "Utilitza un mode específic, p. ex. «gdm» per la pantalla d'entrada"
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "Llista els modes possibles" msgstr "Llista els modes possibles"
#: ../src/shell-app.c:239 #: ../src/shell-app.c:246
msgctxt "program" msgctxt "program"
msgid "Unknown" msgid "Unknown"
msgstr "Desconegut" msgstr "Desconegut"
#: ../src/shell-app.c:480 #: ../src/shell-app.c:487
#, c-format #, c-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "No s'ha pogut iniciar «%s»" msgstr "No s'ha pogut iniciar «%s»"
#: ../src/shell-keyring-prompt.c:742 #: ../src/shell-keyring-prompt.c:730
msgid "Passwords do not match." msgid "Passwords do not match."
msgstr "Les contrasenyes no coincideixen." msgstr "Les contrasenyes no coincideixen."
#: ../src/shell-keyring-prompt.c:750 #: ../src/shell-keyring-prompt.c:738
msgid "Password cannot be blank" msgid "Password cannot be blank"
msgstr "La contrasenya no pot ser buida" msgstr "La contrasenya no pot ser buida"
#: ../src/shell-polkit-authentication-agent.c:346 #: ../src/shell-polkit-authentication-agent.c:353
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "L'usuari ha descartat el diàleg d'autenticació" msgstr "L'usuari ha descartat el diàleg d'autenticació"
#~ msgid "Bluetooth" #~ msgid "%s is requesting access to your location."
#~ msgstr "Bluetooth" #~ msgstr "%s està demanant accés a la vostra ubicació."
#~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "GNOME Shell (composició mitjançant Wayland)"
#~ msgid "%d Connected Device" #~ msgid "%d Connected Device"
#~ msgid_plural "%d Connected Devices" #~ msgid_plural "%d Connected Devices"
#~ msgstr[0] "%d dispositiu connectat" #~ msgstr[0] "%d dispositiu connectat"
#~ msgstr[1] "%d dispositius connectats" #~ msgstr[1] "%d dispositius connectats"
#~ msgid "Off"
#~ msgstr "Desactivat"
#~ msgid "Authentication required" #~ msgid "Authentication required"
#~ msgstr "Cal autenticació" #~ msgstr "Cal autenticació"
@ -1895,9 +1982,6 @@ msgstr "L'usuari ha descartat el diàleg d'autenticació"
#~ msgid "View account" #~ msgid "View account"
#~ msgstr "Mostra el compte" #~ msgstr "Mostra el compte"
#~ msgid "Unknown reason"
#~ msgstr "Motiu desconegut"
#~ msgid "Open Calendar" #~ msgid "Open Calendar"
#~ msgstr "Obre el calendari" #~ msgstr "Obre el calendari"

567
po/cs.po

File diff suppressed because it is too large Load Diff

381
po/da.po
View File

@ -1,9 +1,9 @@
# Danish translation of gnome-shell # Danish translation of gnome-shell
# Copyright (C) 2010-2011, 2014-2015 gnome-shell # Copyright (C) 2010-2011, 2014-2016 gnome-shell
# This file is distributed under the same license as the gnome-shell package. # This file is distributed under the same license as the gnome-shell package.
# #
# Kenneth Nielsen <k.nielsen81@gmail.com>, 2012. # Kenneth Nielsen <k.nielsen81@gmail.com>, 2012.
# Kris Thomsen <mail@kristhomsen.dk>, 2009-2014. # Kris Thomsen <mail@kristhomsen.dk>, 2009-2014, 2016.
# Ask Hjorth Larsen <asklarsen@gmail.com>, 2014, 2015. # Ask Hjorth Larsen <asklarsen@gmail.com>, 2014, 2015.
# #
# Konventioner: # Konventioner:
@ -20,15 +20,15 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell\n" "Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-18 17:05+0200\n" "POT-Creation-Date: 2016-03-20 23:45+0100\n"
"PO-Revision-Date: 2015-09-04 21:21+0100\n" "PO-Revision-Date: 2016-03-20 03:13+0100\n"
"Last-Translator: Kris Thomsen <mail@kristhomsen.dk>\n" "Last-Translator: Kris Thomsen\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n" "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"Language: da\n" "Language: da\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../data/50-gnome-shell-system.xml.in.h:1 #: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System" msgid "System"
@ -54,15 +54,6 @@ msgstr "Vis alle programmer"
msgid "Open the application menu" msgid "Open the application menu"
msgstr "Åbn program-menuen" msgstr "Åbn program-menuen"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "GNOME Shell"
#: ../data/gnome-shell.desktop.in.in.h:2
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Vindueshåndtering og åbning af programmer"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "Udvidelsesmodulindstillinger for GNOME Shell" msgstr "Udvidelsesmodulindstillinger for GNOME Shell"
@ -71,9 +62,13 @@ msgstr "Udvidelsesmodulindstillinger for GNOME Shell"
msgid "Configure GNOME Shell Extensions" msgid "Configure GNOME Shell Extensions"
msgstr "Konfigurér udvidelsesmoduler til GNOME Shell" msgstr "Konfigurér udvidelsesmoduler til GNOME Shell"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1 #: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)" msgid "GNOME Shell"
msgstr "GNOME Shell (wayland-sammensætter)" msgstr "GNOME Shell"
#: ../data/org.gnome.Shell.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Vindueshåndtering og åbning af programmer"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1 #: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2" msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -180,76 +175,94 @@ msgstr ""
"standard-værdien af denne tjekboks." "standard-værdien af denne tjekboks."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18 #: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
"Om standard Bluetooth-adapteren er indstillet til at have enheder tilknyttet"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
"powered, or if there were devices set up associated with the default "
"adapter. This will be reset if the default adapter is ever seen not to have "
"devices associated to it."
msgstr ""
"Shell'en vil kun vise menupunktet Bluetooth, hvis en Bluetooth-adapter er "
"tændt, eller hvis der er enheder tilknyttet standard adapteren. Dette vil "
"kun blive nulstillet hvis standard adapteren på et tidspunkt, ikke længere "
"har enheder tilknyttet."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar" msgid "Show the week date in the calendar"
msgstr "Vis ugenummer i kalenderen" msgstr "Vis ugenummer i kalenderen"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19 #: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "If true, display the ISO week date in the calendar." msgid "If true, display the ISO week date in the calendar."
msgstr "Hvis sand vises ISO-ugenummeret i kalenderen." msgstr "Hvis sand vises ISO-ugenummeret i kalenderen."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20 #: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the application menu" msgid "Keybinding to open the application menu"
msgstr "Genvejstast til at åbne program-menuen" msgstr "Genvejstast til at åbne program-menuen"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
msgid "Keybinding to open the application menu." msgid "Keybinding to open the application menu."
msgstr "Genvejstast til at åbne program-menuen." msgstr "Genvejstast til at åbne program-menuen."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the \"Show Applications\" view" msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Genvejstast til at åbne \"Vis programmer\"-visningen" msgstr "Genvejstast til at åbne \"Vis programmer\"-visningen"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "" msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview." "Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr "" msgstr ""
"Genvejstast til at åbne \"Vis programmer\"-visningen i Aktivitets-" "Genvejstast til at åbne \"Vis programmer\"-visningen i Aktivitets-"
"overblikket." "overblikket."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "Genvejstast til at åbne overblikket" msgstr "Genvejstast til at åbne overblikket"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25 #: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "Genvejstast til at åbne Aktivitetsoverblikket." msgstr "Genvejstast til at åbne Aktivitetsoverblikket."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to toggle the visibility of the notification list" msgid "Keybinding to toggle the visibility of the notification list"
msgstr "Genvejstast til at slå synligheden af påmindelseslisten til eller fra" msgstr "Genvejstast til at slå synligheden af påmindelseslisten til eller fra"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27 #: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to toggle the visibility of the notification list." msgid "Keybinding to toggle the visibility of the notification list."
msgstr "Genvejstast til at slå synligheden af påmindelseslisten til eller fra." msgstr "Genvejstast til at slå synligheden af påmindelseslisten til eller fra."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "Genvejstast til at fokusere på den aktive påmindelse" msgstr "Genvejstast til at fokusere på den aktive påmindelse"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29 #: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "Genvejstast til at fokusere på den aktive påmindelse." msgstr "Genvejstast til at fokusere på den aktive påmindelse."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "" msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes" "Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr "" msgstr ""
"Genvejstast, som pauser og genstarter alle kørende animationer, til " "Genvejstast, som pauser og genstarter alle kørende animationer, til "
"fejlsøgningsformål" "fejlsøgningsformål"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31 #: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Which keyboard to use" msgid "Which keyboard to use"
msgstr "Hvilket tastatur bruges" msgstr "Hvilket tastatur bruges"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32 #: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid "The type of keyboard to use." msgid "The type of keyboard to use."
msgstr "Tastaturtypen som bruges." msgstr "Tastaturtypen som bruges."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33 #: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "Begræns skifteren til det nuværende arbejdsområde." msgstr "Begræns skifteren til det nuværende arbejdsområde."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34 #: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid "" msgid ""
"If true, only applications that have windows on the current workspace are " "If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included." "shown in the switcher. Otherwise, all applications are included."
@ -257,11 +270,11 @@ msgstr ""
"Hvis sand, vises kun programmer, som har vinduer på det nuværende " "Hvis sand, vises kun programmer, som har vinduer på det nuværende "
"arbejdsområde, i skifteren. Ellers er alle programmer inkluderet." "arbejdsområde, i skifteren. Ellers er alle programmer inkluderet."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35 #: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "The application icon mode." msgid "The application icon mode."
msgstr "Ikon-tilstanden for programmet." msgstr "Ikon-tilstanden for programmet."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36 #: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "" msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities " "Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-" "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
@ -271,7 +284,7 @@ msgstr ""
"er \"thumbnail-only\" (viser forhåndsvisning af vinduet), \"app-icon-only" "er \"thumbnail-only\" (viser forhåndsvisning af vinduet), \"app-icon-only"
"\" (viser kun programikonet) eller \"both\" (begge)." "\" (viser kun programikonet) eller \"both\" (begge)."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid "" msgid ""
"If true, only windows from the current workspace are shown in the switcher. " "If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included." "Otherwise, all windows are included."
@ -279,29 +292,29 @@ msgstr ""
"Hvis sand, vises kun vinduer fra det nuværende arbejdsområde i skifteren. " "Hvis sand, vises kun vinduer fra det nuværende arbejdsområde i skifteren. "
"Ellers er alle programmer inkluderet." "Ellers er alle programmer inkluderet."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
msgstr "Hæft modal dialog til overliggende vindue" msgstr "Hæft modal dialog til overliggende vindue"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39 #: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid "" msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "" msgstr ""
"Denne nøgle overstyrer nøglen i org.gnome.mutter, når du kører GNOME Shell." "Denne nøgle overstyrer nøglen i org.gnome.mutter, når du kører GNOME Shell."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40 #: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Aktivér kant-fliselægning, når vinduer placeres ved skærmkanter" msgstr "Aktivér kant-fliselægning, når vinduer placeres ved skærmkanter"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41 #: ../data/org.gnome.shell.gschema.xml.in.in.h:43
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Arbejdsområder er håndteret dynamisk" msgstr "Arbejdsområder er håndteret dynamisk"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42 #: ../data/org.gnome.shell.gschema.xml.in.in.h:44
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Arbejdsområder kun på den primære skærm" msgstr "Arbejdsområder kun på den primære skærm"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43 #: ../data/org.gnome.shell.gschema.xml.in.in.h:45
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "" msgstr ""
"Forsink fokusændringer i musetilstand indtil pegeren holder op med at bevæge " "Forsink fokusændringer i musetilstand indtil pegeren holder op med at bevæge "
@ -311,51 +324,52 @@ msgstr ""
msgid "Network Login" msgid "Network Login"
msgstr "Netværksindlogning" msgstr "Netværksindlogning"
#: ../js/extensionPrefs/main.js:122 #: ../js/extensionPrefs/main.js:117
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "Der opstod in fejl ved indlæsning af indstillingsdialogen for %s:" msgstr "Der opstod in fejl ved indlæsning af indstillingsdialogen for %s:"
#: ../js/extensionPrefs/main.js:154 #: ../js/extensionPrefs/main.js:149
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "Udvidelsesmoduler til GNOME Shell" msgstr "Udvidelsesmoduler til GNOME Shell"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145 #: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452 #: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916 #: ../js/ui/status/network.js:916
msgid "Cancel" msgid "Cancel"
msgstr "Annullér" msgstr "Annullér"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215 #: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:447 #: ../js/gdm/authPrompt.js:448
msgid "Next" msgid "Next"
msgstr "Næste" msgstr "Næste"
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403 #: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59 #: ../js/ui/unlockDialog.js:59
msgid "Unlock" msgid "Unlock"
msgstr "Lås op" msgstr "Lås op"
#: ../js/gdm/authPrompt.js:213 #: ../js/gdm/authPrompt.js:214
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Log ind" msgstr "Log ind"
#: ../js/gdm/loginDialog.js:281 #: ../js/gdm/loginDialog.js:285
msgid "Choose Session" msgid "Choose Session"
msgstr "Vælg session" msgstr "Vælg session"
#. translators: this message is shown below the user list on the #. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for #. login screen. It can be activated to reveal an entry for
#. manually entering the username. #. manually entering the username.
#: ../js/gdm/loginDialog.js:431 #: ../js/gdm/loginDialog.js:435
msgid "Not listed?" msgid "Not listed?"
msgstr "Ikke listet?" msgstr "Ikke listet?"
#. Translators: this message is shown below the username entry field #. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm #. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:850 #: ../js/gdm/loginDialog.js:854
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(f.eks. bruger eller %s)" msgstr "(f.eks. bruger eller %s)"
@ -363,12 +377,12 @@ msgstr "(f.eks. bruger eller %s)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271 #: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289 #: ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
msgstr "Brugernavn: " msgstr "Brugernavn: "
#: ../js/gdm/loginDialog.js:1184 #: ../js/gdm/loginDialog.js:1196
msgid "Login Window" msgid "Login Window"
msgstr "Indlogningsvindue" msgstr "Indlogningsvindue"
@ -504,16 +518,36 @@ msgstr "Føj til favoritter"
msgid "Show Details" msgid "Show Details"
msgstr "Vis detaljer" msgstr "Vis detaljer"
#: ../js/ui/appFavorites.js:132 #: ../js/ui/appFavorites.js:134
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "%s er blevet føjet til dine favoritter." msgstr "%s er blevet føjet til dine favoritter."
#: ../js/ui/appFavorites.js:166 #: ../js/ui/appFavorites.js:168
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s er blevet fjernet fra dine favoritter." msgstr "%s er blevet fjernet fra dine favoritter."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Vælg lydenhed"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "Indstillinger for lyd"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Hovedtelefoner"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Headset"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/backgroundMenu.js:19 #: ../js/ui/backgroundMenu.js:19
msgid "Change Background…" msgid "Change Background…"
msgstr "Skift baggrund…" msgstr "Skift baggrund…"
@ -522,13 +556,12 @@ msgstr "Skift baggrund…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Skærmindstillinger" msgstr "Skærmindstillinger"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "Indstillinger" msgstr "Indstillinger"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). #. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:55 #: ../js/ui/calendar.js:47
msgctxt "calendar-no-work" msgctxt "calendar-no-work"
msgid "06" msgid "06"
msgstr "06" msgstr "06"
@ -538,94 +571,96 @@ msgstr "06"
#. * NOTE: These grid abbreviations are always shown together #. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S". #. * and in order, e.g. "S M T W T F S".
#. #.
#: ../js/ui/calendar.js:84 #: ../js/ui/calendar.js:76
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "S" msgstr "S"
#. Translators: Calendar grid abbreviation for Monday #. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:86 #: ../js/ui/calendar.js:78
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "M" msgstr "M"
#. Translators: Calendar grid abbreviation for Tuesday #. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:88 #: ../js/ui/calendar.js:80
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "T" msgstr "T"
#. Translators: Calendar grid abbreviation for Wednesday #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:90 #: ../js/ui/calendar.js:82
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "O" msgstr "O"
#. Translators: Calendar grid abbreviation for Thursday #. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:92 #: ../js/ui/calendar.js:84
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "T" msgstr "T"
#. Translators: Calendar grid abbreviation for Friday #. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:94 #: ../js/ui/calendar.js:86
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "F" msgstr "F"
#. Translators: Calendar grid abbreviation for Saturday #. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:96 #: ../js/ui/calendar.js:88
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
msgstr "L" msgstr "L"
#: ../js/ui/calendar.js:566 #: ../js/ui/calendar.js:416
msgid "Previous month" msgid "Previous month"
msgstr "Forrige måned" msgstr "Forrige måned"
#: ../js/ui/calendar.js:576 #: ../js/ui/calendar.js:426
msgid "Next month" msgid "Next month"
msgstr "Næste måned" msgstr "Næste måned"
#: ../js/ui/calendar.js:783 #: ../js/ui/calendar.js:579
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:634
msgid "Week %V" msgid "Week %V"
msgstr "Uge %V" msgstr "Uge %V"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. #.
#: ../js/ui/calendar.js:1188 #: ../js/ui/calendar.js:695
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Hele dagen" msgstr "Hele dagen"
#: ../js/ui/calendar.js:1291 #: ../js/ui/calendar.js:821
msgid "Clear section"
msgstr "Ryd afsnit"
#: ../js/ui/calendar.js:1518
msgid "Events" msgid "Events"
msgstr "Begivenheder" msgstr "Begivenheder"
#: ../js/ui/calendar.js:1527 #: ../js/ui/calendar.js:830
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d. %B" msgstr "%A, %d. %B"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:834
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A, %d. %B %Y" msgstr "%A, %d. %B %Y"
#: ../js/ui/calendar.js:1616 #: ../js/ui/calendar.js:919
msgid "Notifications" msgid "Notifications"
msgstr "Beskeder" msgstr "Beskeder"
#: ../js/ui/calendar.js:1767 #: ../js/ui/calendar.js:1070
msgid "No Notifications" msgid "No Notifications"
msgstr "Ingen påmindelser" msgstr "Ingen påmindelser"
#: ../js/ui/calendar.js:1770 #: ../js/ui/calendar.js:1073
msgid "No Events" msgid "No Events"
msgstr "Ingen begivenheder" msgstr "Ingen begivenheder"
@ -637,7 +672,7 @@ msgstr "Eksternt drev tilkoblet"
msgid "External drive disconnected" msgid "External drive disconnected"
msgstr "Eksternt drev frakoblet" msgstr "Eksternt drev frakoblet"
#: ../js/ui/components/autorunManager.js:354 #: ../js/ui/components/autorunManager.js:355
#, javascript-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
msgstr "Åbn med %s" msgstr "Åbn med %s"
@ -763,7 +798,7 @@ msgstr "Beklager, godkendelse mislykkedes. Prøv igen."
#. Translators: this is the other person changing their old IM name to their new #. Translators: this is the other person changing their old IM name to their new
#. IM name. #. IM name.
#: ../js/ui/components/telepathyClient.js:759 #: ../js/ui/components/telepathyClient.js:760
#, javascript-format #, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "%s kalder sig nu %s" msgstr "%s kalder sig nu %s"
@ -948,11 +983,11 @@ msgid "Keyboard"
msgstr "Tastatur" msgstr "Tastatur"
#. translators: 'Hide' is a verb #. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66 #: ../js/ui/legacyTray.js:65
msgid "Hide tray" msgid "Hide tray"
msgstr "Skjul statusfelt" msgstr "Skjul statusfelt"
#: ../js/ui/legacyTray.js:107 #: ../js/ui/legacyTray.js:106
msgid "Status Icons" msgid "Status Icons"
msgstr "Statusikoner" msgstr "Statusikoner"
@ -980,7 +1015,7 @@ msgstr "Aktiveret"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled" msgid "Disabled"
msgstr "Deaktiveret" msgstr "Deaktiveret"
@ -1004,10 +1039,26 @@ msgstr "Vis kilde"
msgid "Web Page" msgid "Web Page"
msgstr "Webside" msgstr "Webside"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Ryd afsnit"
#: ../js/ui/messageTray.js:1486 #: ../js/ui/messageTray.js:1486
msgid "System Information" msgid "System Information"
msgstr "Systeminformation" msgstr "Systeminformation"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Ukendt kunstner"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "Ukendt titel"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Medier"
#: ../js/ui/overview.js:84 #: ../js/ui/overview.js:84
msgid "Undo" msgid "Undo"
msgstr "Fortryd" msgstr "Fortryd"
@ -1024,17 +1075,22 @@ msgstr "Oversigt"
msgid "Type to search…" msgid "Type to search…"
msgstr "Skriv for at søge…" msgstr "Skriv for at søge…"
#: ../js/ui/panel.js:352 #: ../js/ui/panel.js:358
msgid "Quit" msgid "Quit"
msgstr "Afslut" msgstr "Afslut"
#. Translators: If there is no suitable word for "Activities" #. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". #. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:404 #: ../js/ui/panel.js:414
msgid "Activities" msgid "Activities"
msgstr "Aktiviteter" msgstr "Aktiviteter"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "System"
#: ../js/ui/panel.js:807
msgid "Top Bar" msgid "Top Bar"
msgstr "Toppanel" msgstr "Toppanel"
@ -1047,15 +1103,15 @@ msgstr "Toppanel"
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:70 #: ../js/ui/runDialog.js:71
msgid "Enter a Command" msgid "Enter a Command"
msgstr "Indtast en kommando" msgstr "Indtast en kommando"
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162 #: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
msgid "Close" msgid "Close"
msgstr "Luk" msgstr "Luk"
#: ../js/ui/runDialog.js:281 #: ../js/ui/runDialog.js:282
msgid "Restarting…" msgid "Restarting…"
msgstr "Genstarter…" msgstr "Genstarter…"
@ -1178,29 +1234,41 @@ msgstr "Høj kontrast"
msgid "Large Text" msgid "Large Text"
msgstr "Stor tekst" msgstr "Stor tekst"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178 #: ../js/ui/status/bluetooth.js:47
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279 msgid "Bluetooth"
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90 msgstr "Bluetooth"
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Sluk"
#: ../js/ui/status/bluetooth.js:54 #: ../js/ui/status/bluetooth.js:56
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Indstillinger for Bluetooth" msgstr "Indstillinger for Bluetooth"
#. Translators: this is the number of connected bluetooth devices #. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:105 #: ../js/ui/status/bluetooth.js:136
#, javascript-format #, javascript-format
msgid "%d Connected" msgid "%d Connected"
msgid_plural "%d Connected" msgid_plural "%d Connected"
msgstr[0] "%d forbundet" msgstr[0] "%d forbundet"
msgstr[1] "%d forbundet" msgstr[1] "%d forbundet"
#: ../js/ui/status/bluetooth.js:107 #: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "Slukket"
#: ../js/ui/status/bluetooth.js:140
msgid "Not In Use" msgid "Not In Use"
msgstr "Ikke i brug" msgstr "Ikke i brug"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Tænd"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Sluk"
#: ../js/ui/status/brightness.js:44 #: ../js/ui/status/brightness.js:44
msgid "Brightness" msgid "Brightness"
msgstr "Lysstyrke" msgstr "Lysstyrke"
@ -1209,30 +1277,49 @@ msgstr "Lysstyrke"
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Vis tastaturlayout" msgstr "Vis tastaturlayout"
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177 #: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
msgid "Location Enabled" msgid "Location Enabled"
msgstr "Placering aktiveret" msgstr "Placering aktiveret"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178 #: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
msgid "Disable" msgid "Disable"
msgstr "Slå fra" msgstr "Slå fra"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:109
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "Indstillinger for privatliv" msgstr "Indstillinger for privatliv"
#: ../js/ui/status/location.js:176 #: ../js/ui/status/location.js:214
msgid "Location In Use" msgid "Location In Use"
msgstr "Placering i brug" msgstr "Placering i brug"
#: ../js/ui/status/location.js:180 #: ../js/ui/status/location.js:218
msgid "Location Disabled" msgid "Location Disabled"
msgstr "Placering deaktiveret" msgstr "Placering deaktiveret"
#: ../js/ui/status/location.js:181 #: ../js/ui/status/location.js:219
msgid "Enable" msgid "Enable"
msgstr "Slå til" msgstr "Slå til"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Forbyd adgang"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Giv adgang"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Giv %s adgang til din placering?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"Placeringsadgang kan ændres når som helst via privatlivsindstillingerne."
#: ../js/ui/status/network.js:101 #: ../js/ui/status/network.js:101
msgid "<unknown>" msgid "<unknown>"
msgstr "<ukendt>" msgstr "<ukendt>"
@ -1368,10 +1455,6 @@ msgstr "Vælg netværk"
msgid "Wi-Fi Settings" msgid "Wi-Fi Settings"
msgstr "Indstillinger for trådløs" msgstr "Indstillinger for trådløs"
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Tænd"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296 #: ../js/ui/status/network.js:1296
#, javascript-format #, javascript-format
@ -1399,7 +1482,7 @@ msgstr "forbindelse mislykkedes"
#: ../js/ui/status/network.js:1482 ../js/ui/status/rfkill.js:93 #: ../js/ui/status/network.js:1482 ../js/ui/status/rfkill.js:93
msgid "Network Settings" msgid "Network Settings"
msgstr "Indstillinger for netværk" msgstr "Netværksindstillinger"
#: ../js/ui/status/network.js:1484 #: ../js/ui/status/network.js:1484
msgid "VPN Settings" msgid "VPN Settings"
@ -1421,31 +1504,36 @@ msgstr "Forbindelse mislykkedes"
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Aktivering af netværksforbindelse mislykkedes" msgstr "Aktivering af netværksforbindelse mislykkedes"
#: ../js/ui/status/power.js:49 #: ../js/ui/status/power.js:61
msgid "Power Settings" msgid "Power Settings"
msgstr "Indstillinger for strømstyring" msgstr "Indstillinger for strømstyring"
#: ../js/ui/status/power.js:65 #: ../js/ui/status/power.js:77
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Fuldt opladet" msgstr "Fuldt opladet"
#. 0 is reported when UPower does not have enough data #. 0 is reported when UPower does not have enough data
#. to estimate battery life #. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78 #: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
msgid "Estimating…" msgid "Estimating…"
msgstr "Udregner…" msgstr "Udregner…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>) #. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:98
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d tilbage (%d%%)" msgstr "%d%02d tilbage (%d %%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>) #. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91 #: ../js/ui/status/power.js:103
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "%d%02d indtil fuld (%d%%)" msgstr "%d%02d indtil fuld (%d %%)"
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
#, javascript-format
msgid "%d%%"
msgstr "%d%%"
#. The menu only appears when airplane mode is on, so just #. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically #. statically build it as if it was on, rather than dynamically
@ -1486,10 +1574,6 @@ msgstr "Lydstyrke ændret"
msgid "Volume" msgid "Volume"
msgstr "Lydstyrke" msgstr "Lydstyrke"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/unlockDialog.js:67 #: ../js/ui/unlockDialog.js:67
msgid "Log in as another user" msgid "Log in as another user"
msgstr "Log ind som en anden bruger" msgstr "Log ind som en anden bruger"
@ -1610,7 +1694,7 @@ msgstr "Evolution kalender"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1837 #: ../src/gvc/gvc-mixer-control.c:1835
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1619,66 +1703,66 @@ msgstr[1] "%u outputs"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1847 #: ../src/gvc/gvc-mixer-control.c:1845
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
msgstr[0] "%u input" msgstr[0] "%u input"
msgstr[1] "%u inputs" msgstr[1] "%u inputs"
#: ../src/gvc/gvc-mixer-control.c:2373 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "Systemlyde" msgstr "Systemlyde"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Udskriv version" msgstr "Udskriv version"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Tilstand brugt af GDM til indlogningskærm" msgstr "Tilstand brugt af GDM til indlogningskærm"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Brug en specifik tilstand, f.eks. \"gdm\" til logind-skærm" msgstr "Brug en specifik tilstand, f.eks. \"gdm\" til logind-skærm"
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "Vis mulige tilstande" msgstr "Vis mulige tilstande"
#: ../src/shell-app.c:239 #: ../src/shell-app.c:246
msgctxt "program" msgctxt "program"
msgid "Unknown" msgid "Unknown"
msgstr "Ukendt" msgstr "Ukendt"
#: ../src/shell-app.c:480 #: ../src/shell-app.c:487
#, c-format #, c-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Kunne ikke køre “%s”" msgstr "Kunne ikke køre “%s”"
#: ../src/shell-keyring-prompt.c:742 #: ../src/shell-keyring-prompt.c:730
msgid "Passwords do not match." msgid "Passwords do not match."
msgstr "Adgangskoder er ikke ens." msgstr "Adgangskoder er ikke ens."
#: ../src/shell-keyring-prompt.c:750 #: ../src/shell-keyring-prompt.c:738
msgid "Password cannot be blank" msgid "Password cannot be blank"
msgstr "Adgangskode må ikke være tom" msgstr "Adgangskode må ikke være tom"
#: ../src/shell-polkit-authentication-agent.c:346 #: ../src/shell-polkit-authentication-agent.c:353
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "Godkendelsesdialogen blev afvist af brugeren" msgstr "Godkendelsesdialogen blev afvist af brugeren"
#~ msgid "Bluetooth" #~ msgid "%s is requesting access to your location."
#~ msgstr "Bluetooth" #~ msgstr "%s spørger efter adgang til din placering."
#~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "GNOME Shell (wayland-sammensætter)"
#~ msgid "%d Connected Device" #~ msgid "%d Connected Device"
#~ msgid_plural "%d Connected Devices" #~ msgid_plural "%d Connected Devices"
#~ msgstr[0] "%d forbundet enhed" #~ msgstr[0] "%d forbundet enhed"
#~ msgstr[1] "%d forbundne enheder" #~ msgstr[1] "%d forbundne enheder"
#~ msgid "Off"
#~ msgstr "Slukket"
#~ msgid "Authentication required" #~ msgid "Authentication required"
#~ msgstr "Godkendelse påkrævet" #~ msgstr "Godkendelse påkrævet"
@ -1886,9 +1970,6 @@ msgstr "Godkendelsesdialogen blev afvist af brugeren"
#~ msgid "View account" #~ msgid "View account"
#~ msgstr "Vis konto" #~ msgstr "Vis konto"
#~ msgid "Unknown reason"
#~ msgstr "Ukendt årsag"
#~ msgid "Open Calendar" #~ msgid "Open Calendar"
#~ msgstr "Åbn kalender" #~ msgstr "Åbn kalender"
@ -2011,9 +2092,6 @@ msgstr "Godkendelsesdialogen blev afvist af brugeren"
#~ msgid "Device %s wants access to the service '%s'" #~ msgid "Device %s wants access to the service '%s'"
#~ msgstr "Enheden %s ønsker adgang til tjenesten \"%s\"" #~ msgstr "Enheden %s ønsker adgang til tjenesten \"%s\""
#~ msgid "Always grant access"
#~ msgstr "Giv altid adgang"
#~ msgid "Grant this time only" #~ msgid "Grant this time only"
#~ msgstr "Giv kun lov denne gang" #~ msgstr "Giv kun lov denne gang"
@ -2186,9 +2264,6 @@ msgstr "Godkendelsesdialogen blev afvist af brugeren"
#~ msgid "Visibility" #~ msgid "Visibility"
#~ msgstr "Synlighed" #~ msgstr "Synlighed"
#~ msgid "Send Files to Device…"
#~ msgstr "Send filer til enhed…"
#~ msgid "Set Up a New Device…" #~ msgid "Set Up a New Device…"
#~ msgstr "Indstil en ny enhed…" #~ msgstr "Indstil en ny enhed…"
@ -2266,10 +2341,6 @@ msgstr "Godkendelsesdialogen blev afvist af brugeren"
#~ msgstr[0] "%d minut tilbage" #~ msgstr[0] "%d minut tilbage"
#~ msgstr[1] "%d minutter tilbage" #~ msgstr[1] "%d minutter tilbage"
#~ msgctxt "percent of battery remaining"
#~ msgid "%d%%"
#~ msgstr "%d%%"
#~ msgid "AC Adapter" #~ msgid "AC Adapter"
#~ msgstr "AC-adapter" #~ msgstr "AC-adapter"

916
po/de.po

File diff suppressed because it is too large Load Diff

509
po/el.po

File diff suppressed because it is too large Load Diff

1591
po/eo.po

File diff suppressed because it is too large Load Diff

5728
po/es.po

File diff suppressed because it is too large Load Diff

848
po/eu.po

File diff suppressed because it is too large Load Diff

740
po/fa.po

File diff suppressed because it is too large Load Diff

544
po/fi.po

File diff suppressed because it is too large Load Diff

499
po/fr.po

File diff suppressed because it is too large Load Diff

1648
po/fur.po

File diff suppressed because it is too large Load Diff

162
po/ga.po
View File

@ -1,5 +1,5 @@
# Irish translations for gnome-shell package. # Irish translations for gnome-shell package.
# Copyright (C) 2009-2013 Free Software Foundation, Inc. # Copyright (C) 2009-2015 Free Software Foundation, Inc.
# This file is distributed under the same license as the gnome-shell package. # This file is distributed under the same license as the gnome-shell package.
# Seán de Búrca <leftmostcat@gmail.com>, 2009-2015. # Seán de Búrca <leftmostcat@gmail.com>, 2009-2015.
# #
@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell.master\n" "Project-Id-Version: gnome-shell.master\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-18 10:05-0600\n" "POT-Creation-Date: 2015-09-30 22:09-0600\n"
"PO-Revision-Date: 2015-09-18 10:33-0600\n" "PO-Revision-Date: 2015-09-30 22:29-0600\n"
"Last-Translator: Seán de Búrca <leftmostcat@gmail.com>\n" "Last-Translator: Seán de Búrca <leftmostcat@gmail.com>\n"
"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n" "Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
"Language: ga\n" "Language: ga\n"
@ -262,14 +262,13 @@ msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "" msgstr ""
#: ../data/org.gnome.Shell.PortalHelper.desktop.in.h:1 #: ../data/org.gnome.Shell.PortalHelper.desktop.in.h:1
#, fuzzy
msgid "Network Login" msgid "Network Login"
msgstr "Earráid líonra" msgstr "Logáil Isteach Líonra"
#: ../js/extensionPrefs/main.js:122 #: ../js/extensionPrefs/main.js:122
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "" msgstr "Tharla earráid agus luchtú na dialóige sainroghanna do %s:"
#: ../js/extensionPrefs/main.js:154 #: ../js/extensionPrefs/main.js:154
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
@ -351,9 +350,9 @@ msgid "Could not parse command:"
msgstr "Níorbh fhéidir ordú a pharsáil:" msgstr "Níorbh fhéidir ordú a pharsáil:"
#: ../js/misc/util.js:160 #: ../js/misc/util.js:160
#, fuzzy, javascript-format #, javascript-format
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "Theip rith '%s':" msgstr "Theip ar rith %s:"
#. Translators: Time in 24h format #. Translators: Time in 24h format
#: ../js/misc/util.js:191 #: ../js/misc/util.js:191
@ -428,9 +427,8 @@ msgstr "%d %B %Y, %l%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login #. TRANSLATORS: this is the title of the wifi captive portal login
#. * window, until we know the title of the actual login page #. * window, until we know the title of the actual login page
#: ../js/portalHelper/main.js:85 #: ../js/portalHelper/main.js:85
#, fuzzy
msgid "Web Authentication Redirect" msgid "Web Authentication Redirect"
msgstr "Fíordheimhniú de Dhíth" msgstr ""
#: ../js/ui/appDisplay.js:794 #: ../js/ui/appDisplay.js:794
msgid "Frequently used applications will appear here" msgid "Frequently used applications will appear here"
@ -478,8 +476,7 @@ msgstr "Athraigh Cúlra…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Socruithe Taispeána" msgstr "Socruithe Taispeána"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "Socruithe" msgstr "Socruithe"
@ -537,15 +534,15 @@ msgstr "S"
#: ../js/ui/calendar.js:566 #: ../js/ui/calendar.js:566
msgid "Previous month" msgid "Previous month"
msgstr "" msgstr "An mhí roimhe seo"
#: ../js/ui/calendar.js:576 #: ../js/ui/calendar.js:576
msgid "Next month" msgid "Next month"
msgstr "" msgstr "An chéad mhí eile"
#: ../js/ui/calendar.js:783 #: ../js/ui/calendar.js:783
msgid "Week %V" msgid "Week %V"
msgstr "" msgstr "Seachtain %V"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
@ -555,33 +552,33 @@ msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "An Lá ar Fad" msgstr "An Lá ar Fad"
#: ../js/ui/calendar.js:1291 #: ../js/ui/calendar.js:1295
msgid "Clear section" msgid "Clear section"
msgstr "" msgstr ""
#: ../js/ui/calendar.js:1518 #: ../js/ui/calendar.js:1522
msgid "Events" msgid "Events"
msgstr "Imeachtaí" msgstr "Imeachtaí"
#: ../js/ui/calendar.js:1527 #: ../js/ui/calendar.js:1531
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d %B" msgstr "%A, %d %B"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:1535
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A, %d %B, %Y" msgstr "%A, %d %B, %Y"
#: ../js/ui/calendar.js:1616 #: ../js/ui/calendar.js:1620
msgid "Notifications" msgid "Notifications"
msgstr "Fógraí" msgstr "Fógraí"
#: ../js/ui/calendar.js:1767 #: ../js/ui/calendar.js:1771
msgid "No Notifications" msgid "No Notifications"
msgstr "Gan Fhógra" msgstr "Gan Fhógra"
#: ../js/ui/calendar.js:1770 #: ../js/ui/calendar.js:1774
msgid "No Events" msgid "No Events"
msgstr "Gan Imeacht" msgstr "Gan Imeacht"
@ -687,9 +684,9 @@ msgstr ""
#: ../js/ui/components/networkAgent.js:663 #: ../js/ui/components/networkAgent.js:663
#: ../js/ui/components/networkAgent.js:667 #: ../js/ui/components/networkAgent.js:667
#: ../js/ui/components/networkAgent.js:680 #: ../js/ui/components/networkAgent.js:680
#, fuzzy, javascript-format #, javascript-format
msgid "A password is required to connect to “%s”." msgid "A password is required to connect to “%s”."
msgstr "Tá focal faire de dhíth chun ceangal le '%s'." msgstr "Tá focal faire de dhíth chun ceangal le %s."
#: ../js/ui/components/networkAgent.js:647 ../js/ui/status/network.js:1658 #: ../js/ui/components/networkAgent.js:647 ../js/ui/status/network.js:1658
msgid "Network Manager" msgid "Network Manager"
@ -718,9 +715,9 @@ msgstr "Tá brón orm, theip sé sin. Bain triail eile as, le do thoil."
#. Translators: this is the other person changing their old IM name to their new #. Translators: this is the other person changing their old IM name to their new
#. IM name. #. IM name.
#: ../js/ui/components/telepathyClient.js:759 #: ../js/ui/components/telepathyClient.js:759
#, javascript-format #, fuzzy, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "" msgstr "Tugtar %2$s ar %1$s anois"
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:155 #: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:155
msgid "Windows" msgid "Windows"
@ -818,7 +815,7 @@ msgstr[4] "Múchfar an córas go huathoibríoch i gceann %d soicind."
#: ../js/ui/endSessionDialog.js:91 #: ../js/ui/endSessionDialog.js:91
msgctxt "checkbox" msgctxt "checkbox"
msgid "Install pending software updates" msgid "Install pending software updates"
msgstr "" msgstr "Suiteáil nuashonruithe bogearraí ar feitheamh"
#: ../js/ui/endSessionDialog.js:94 ../js/ui/endSessionDialog.js:111 #: ../js/ui/endSessionDialog.js:94 ../js/ui/endSessionDialog.js:111
msgctxt "button" msgctxt "button"
@ -884,7 +881,7 @@ msgstr "Suiteáil &amp; Múch"
#: ../js/ui/endSessionDialog.js:129 #: ../js/ui/endSessionDialog.js:129
msgctxt "checkbox" msgctxt "checkbox"
msgid "Power off after updates are installed" msgid "Power off after updates are installed"
msgstr "" msgstr "Múch tar éis suiteáil nuashonruithe"
#: ../js/ui/endSessionDialog.js:338 #: ../js/ui/endSessionDialog.js:338
msgid "Running on battery power: please plug in before installing updates." msgid "Running on battery power: please plug in before installing updates."
@ -915,9 +912,9 @@ msgid "Install"
msgstr "Suiteáil" msgstr "Suiteáil"
#: ../js/ui/extensionDownloader.js:204 #: ../js/ui/extensionDownloader.js:204
#, fuzzy, javascript-format #, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Íosluchtaigh agus suiteáil '%s' ó extensions.gnome.org?" msgstr "Íosluchtaigh agus suiteáil %s ó extensions.gnome.org?"
#: ../js/ui/keyboard.js:741 ../js/ui/status/keyboard.js:713 #: ../js/ui/keyboard.js:741 ../js/ui/status/keyboard.js:713
msgid "Keyboard" msgid "Keyboard"
@ -925,13 +922,12 @@ msgstr "Méarchlár"
#. translators: 'Hide' is a verb #. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66 #: ../js/ui/legacyTray.js:66
#, fuzzy
msgid "Hide tray" msgid "Hide tray"
msgstr "Folaigh Téacs" msgstr "Folaigh tráidire"
#: ../js/ui/legacyTray.js:107 #: ../js/ui/legacyTray.js:107
msgid "Status Icons" msgid "Status Icons"
msgstr "" msgstr "Deilbhíní Stádais"
#: ../js/ui/lookingGlass.js:643 #: ../js/ui/lookingGlass.js:643
msgid "No extensions installed" msgid "No extensions installed"
@ -957,7 +953,7 @@ msgstr "Cumasaithe"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled" msgid "Disabled"
msgstr "Díchumasaithe" msgstr "Díchumasaithe"
@ -1011,6 +1007,11 @@ msgstr "Scoir"
msgid "Activities" msgid "Activities"
msgstr "Gníomhartha" msgstr "Gníomhartha"
#: ../js/ui/panel.js:650
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Córas"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:754
msgid "Top Bar" msgid "Top Bar"
msgstr "Barra ag an mBarr" msgstr "Barra ag an mBarr"
@ -1174,18 +1175,18 @@ msgstr "Socruithe Bluetooth"
#. Translators: this is the number of connected bluetooth devices #. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:105 #: ../js/ui/status/bluetooth.js:105
#, fuzzy, javascript-format #, javascript-format
msgid "%d Connected" msgid "%d Connected"
msgid_plural "%d Connected" msgid_plural "%d Connected"
msgstr[0] "%d Ghléas Ceangailte" msgstr[0] "%d Ceangailte"
msgstr[1] "%d Ghléas Ceangailte" msgstr[1] "%d Ceangailte"
msgstr[2] "%d Ghléas Ceangailte" msgstr[2] "%d Ceangailte"
msgstr[3] "%d nGléas Ceangailte" msgstr[3] "%d Ceangailte"
msgstr[4] "%d Gléas Ceangailte" msgstr[4] "%d Ceangailte"
#: ../js/ui/status/bluetooth.js:107 #: ../js/ui/status/bluetooth.js:107
msgid "Not In Use" msgid "Not In Use"
msgstr "" msgstr "Níl in Úsáid"
#: ../js/ui/status/brightness.js:44 #: ../js/ui/status/brightness.js:44
msgid "Brightness" msgid "Brightness"
@ -1196,27 +1197,24 @@ msgid "Show Keyboard Layout"
msgstr "Taispeáin Leagan Amach an Mhéarchláir" msgstr "Taispeáin Leagan Amach an Mhéarchláir"
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177 #: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
#, fuzzy
msgid "Location Enabled" msgid "Location Enabled"
msgstr "theip an ceangal" msgstr "Suíomh Cumasaithe"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178 #: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
msgid "Disable" msgid "Disable"
msgstr "Díchumasaigh" msgstr "Díchumasaigh"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:73
#, fuzzy
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "Socruithe Cumhachta" msgstr "Socruithe Príobháideachais"
#: ../js/ui/status/location.js:176 #: ../js/ui/status/location.js:176
msgid "Location In Use" msgid "Location In Use"
msgstr "" msgstr "Suíomh in Úsáid"
#: ../js/ui/status/location.js:180 #: ../js/ui/status/location.js:180
#, fuzzy
msgid "Location Disabled" msgid "Location Disabled"
msgstr "theip an ceangal" msgstr "Suíomh Díchumasaithe"
#: ../js/ui/status/location.js:181 #: ../js/ui/status/location.js:181
msgid "Enable" msgid "Enable"
@ -1230,46 +1228,46 @@ msgstr "<anaithnid>"
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308 #: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
#, javascript-format #, javascript-format
msgid "%s Off" msgid "%s Off"
msgstr "" msgstr "%s Múchta"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:454 #: ../js/ui/status/network.js:454
#, fuzzy, javascript-format #, javascript-format
msgid "%s Connected" msgid "%s Connected"
msgstr "Ceangal" msgstr "%s Ceangailte"
#. Translators: this is for network devices that are physically present but are not #. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu); #. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier #. %s is a network identifier
#: ../js/ui/status/network.js:459 #: ../js/ui/status/network.js:459
#, fuzzy, javascript-format #, javascript-format
msgid "%s Unmanaged" msgid "%s Unmanaged"
msgstr "gan bhainistiú" msgstr "%s Gan Bhainistiú"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:462 #: ../js/ui/status/network.js:462
#, fuzzy, javascript-format #, javascript-format
msgid "%s Disconnecting" msgid "%s Disconnecting"
msgstr "á dhícheangal..." msgstr "%s ag Dícheangal"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300 #: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
#, fuzzy, javascript-format #, javascript-format
msgid "%s Connecting" msgid "%s Connecting"
msgstr "Ceangal" msgstr "%s ag Ceangal"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier #. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: ../js/ui/status/network.js:472 #: ../js/ui/status/network.js:472
#, fuzzy, javascript-format #, javascript-format
msgid "%s Requires Authentication" msgid "%s Requires Authentication"
msgstr "Fíordheimhniú DSL" msgstr "Fíordheimhniú de Dhíth ar %s"
#. Translators: this is for devices that require some kind of firmware or kernel #. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier #. module, which is missing; %s is a network identifier
#: ../js/ui/status/network.js:480 #: ../js/ui/status/network.js:480
#, fuzzy, javascript-format #, javascript-format
msgid "Firmware Missing For %s" msgid "Firmware Missing For %s"
msgstr "dochtearraí ar iarraidh" msgstr "Dochtearraí do %s ar Iarraidh"
#. Translators: this is for a network device that cannot be activated (for example it #. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier #. is disabled by rfkill, or it has no coverage; %s is a network identifier
@ -1280,14 +1278,13 @@ msgstr "Níl %s ar Fáil"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:487 #: ../js/ui/status/network.js:487
#, fuzzy, javascript-format #, javascript-format
msgid "%s Connection Failed" msgid "%s Connection Failed"
msgstr "Theip an ceangal" msgstr "Theip Ceangal %s"
#: ../js/ui/status/network.js:503 #: ../js/ui/status/network.js:503
#, fuzzy
msgid "Wired Settings" msgid "Wired Settings"
msgstr "Socruithe" msgstr "Socruithe Sreangaithe"
#: ../js/ui/status/network.js:545 ../js/ui/status/network.js:624 #: ../js/ui/status/network.js:545 ../js/ui/status/network.js:624
#, fuzzy #, fuzzy
@ -1303,9 +1300,9 @@ msgstr ""
#. Translators: this is for a network device that cannot be activated #. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier #. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: ../js/ui/status/network.js:592 #: ../js/ui/status/network.js:592
#, fuzzy, javascript-format #, javascript-format
msgid "%s Disabled" msgid "%s Disabled"
msgstr "Díchumasaithe" msgstr "%s Díchumasaithe"
#: ../js/ui/status/network.js:632 #: ../js/ui/status/network.js:632
msgid "Use as Internet connection" msgid "Use as Internet connection"
@ -1327,16 +1324,15 @@ msgstr "Mód Eitleáin"
#: ../js/ui/status/network.js:824 #: ../js/ui/status/network.js:824
msgid "Wi-Fi is Off" msgid "Wi-Fi is Off"
msgstr "" msgstr "Tá Wi-Fi Múchta"
#: ../js/ui/status/network.js:825 #: ../js/ui/status/network.js:825
msgid "Wi-Fi needs to be turned on in order to connect to a network." msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "" msgstr ""
#: ../js/ui/status/network.js:826 #: ../js/ui/status/network.js:826
#, fuzzy
msgid "Turn On Wi-Fi" msgid "Turn On Wi-Fi"
msgstr "Cumasaigh" msgstr "Cuir Wi-Fi ar Siúl"
#: ../js/ui/status/network.js:851 #: ../js/ui/status/network.js:851
msgid "Wi-Fi Networks" msgid "Wi-Fi Networks"
@ -1374,9 +1370,9 @@ msgstr ""
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1311 #: ../js/ui/status/network.js:1311
#, fuzzy, javascript-format #, javascript-format
msgid "%s Not Connected" msgid "%s Not Connected"
msgstr "%d Ghléas Ceangailte" msgstr "%s Gan Cheangal"
#: ../js/ui/status/network.js:1411 #: ../js/ui/status/network.js:1411
msgid "connecting..." msgid "connecting..."
@ -1404,9 +1400,8 @@ msgid "VPN"
msgstr "VPN" msgstr "VPN"
#: ../js/ui/status/network.js:1513 #: ../js/ui/status/network.js:1513
#, fuzzy
msgid "VPN Off" msgid "VPN Off"
msgstr "Múch" msgstr "VPN Múchta"
#: ../js/ui/status/network.js:1697 #: ../js/ui/status/network.js:1697
msgid "Connection failed" msgid "Connection failed"
@ -1446,9 +1441,8 @@ msgstr "%d%02d go dTí Lán (%d%%)"
#. statically build it as if it was on, rather than dynamically #. statically build it as if it was on, rather than dynamically
#. changing the menu contents. #. changing the menu contents.
#: ../js/ui/status/rfkill.js:88 #: ../js/ui/status/rfkill.js:88
#, fuzzy
msgid "Airplane Mode On" msgid "Airplane Mode On"
msgstr "Mód Eitleáin" msgstr "Mód Eitleáin ar Siúl"
#: ../js/ui/status/system.js:343 #: ../js/ui/status/system.js:343
msgid "Switch User" msgid "Switch User"
@ -1565,7 +1559,7 @@ msgstr ""
#: ../js/ui/windowMenu.js:70 #: ../js/ui/windowMenu.js:70
msgid "Always on Top" msgid "Always on Top"
msgstr "" msgstr "Ar Barr i gCónaí"
#: ../js/ui/windowMenu.js:89 #: ../js/ui/windowMenu.js:89
msgid "Always on Visible Workspace" msgid "Always on Visible Workspace"
@ -1609,7 +1603,7 @@ msgstr "Féilire Evolution"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1837 #: ../src/gvc/gvc-mixer-control.c:1835
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1621,7 +1615,7 @@ msgstr[4] "%u Aschur"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1847 #: ../src/gvc/gvc-mixer-control.c:1845
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
@ -1631,23 +1625,23 @@ msgstr[2] "%u Ionchur"
msgstr[3] "%u nIonchur" msgstr[3] "%u nIonchur"
msgstr[4] "%u Ionchur" msgstr[4] "%u Ionchur"
#: ../src/gvc/gvc-mixer-control.c:2373 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "Fuaimeanna Córais" msgstr "Fuaimeanna Córais"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Taispeáin leagan" msgstr "Taispeáin leagan"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "" msgstr ""
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "" msgstr ""
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "" msgstr ""

1517
po/gd.po Normal file

File diff suppressed because it is too large Load Diff

378
po/gl.po
View File

@ -6,21 +6,22 @@
# Antón Méixome <meixome@certima.net>, 2009. # Antón Méixome <meixome@certima.net>, 2009.
# Fran Diéguez <frandieguez@gnome.org>, 2009, 2010, 2011, 2012. # Fran Diéguez <frandieguez@gnome.org>, 2009, 2010, 2011, 2012.
# Leandro Regueiro <leandro.regueiro@gmail.com>, 2012. # Leandro Regueiro <leandro.regueiro@gmail.com>, 2012.
# Fran Dieguez <frandieguez@gnome.org>, 2012, 2013, 2014, 2015. # Fran Dieguez <frandieguez@gnome.org>, 2012, 2013, 2014, 2015, 2016.
#
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-26 00:05+0200\n" "POT-Creation-Date: 2016-03-12 13:15+0100\n"
"PO-Revision-Date: 2015-08-26 00:10+0200\n" "PO-Revision-Date: 2016-03-12 13:16+0100\n"
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n" "Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
"Language-Team: gnome-l10n-gl@gnome.org\n" "Language-Team: Galician <gnome-l10n-gl@gnome.org>\n"
"Language: gl\n" "Language: gl\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Virtaal 0.7.1\n" "X-Generator: Gtranslator 2.91.7\n"
"X-Project-Style: gnome\n" "X-Project-Style: gnome\n"
#: ../data/50-gnome-shell-system.xml.in.h:1 #: ../data/50-gnome-shell-system.xml.in.h:1
@ -47,15 +48,6 @@ msgstr "Mostrar todos os aplicativos"
msgid "Open the application menu" msgid "Open the application menu"
msgstr "Abrir o menú de aplicativo" msgstr "Abrir o menú de aplicativo"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "GNOME Shell"
#: ../data/gnome-shell.desktop.in.in.h:2
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Xestor de xanelas e inicio de aplicativos"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "Preferencias das extensións de GNOME Shell" msgstr "Preferencias das extensións de GNOME Shell"
@ -64,9 +56,13 @@ msgstr "Preferencias das extensións de GNOME Shell"
msgid "Configure GNOME Shell Extensions" msgid "Configure GNOME Shell Extensions"
msgstr "Configure as extensións de GNOME Shell" msgstr "Configure as extensións de GNOME Shell"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1 #: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)" msgid "GNOME Shell"
msgstr "GNOME Shell (compositor de wayland)" msgstr "GNOME Shell"
#: ../data/org.gnome.Shell.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Xestor de xanelas e inicio de aplicativos"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1 #: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2" msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -174,76 +170,95 @@ msgstr ""
"estado por omisión da opción. " "estado por omisión da opción. "
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18 #: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
"Indica se o adaptador de Bluetooth por omisión ten configurados dispositivos "
"asociados a el"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
"powered, or if there were devices set up associated with the default "
"adapter. This will be reset if the default adapter is ever seen not to have "
"devices associated to it."
msgstr ""
"O shell só mostrará o elemento de menú de Bluetooth se hai un adaptador de "
"Bluetooth conectado ou se houbera dispositivos asociados co adaptador "
"principal. Isto restabelecerase se o adaptador por omisión non se ve ou non "
"ten dispositivos asociados a el."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar" msgid "Show the week date in the calendar"
msgstr "Mostrar a data da semana no calendario" msgstr "Mostrar a data da semana no calendario"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19 #: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "If true, display the ISO week date in the calendar." msgid "If true, display the ISO week date in the calendar."
msgstr "Se é verdadeiro, móstrase a data da semana ISO no calendario." msgstr "Se é verdadeiro, móstrase a data da semana ISO no calendario."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20 #: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the application menu" msgid "Keybinding to open the application menu"
msgstr "Combinación de teclas para abrir o menú de aplicativo" msgstr "Combinación de teclas para abrir o menú de aplicativo"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
msgid "Keybinding to open the application menu." msgid "Keybinding to open the application menu."
msgstr "Combinación de teclas para abrir o menú de aplicativo." msgstr "Combinación de teclas para abrir o menú de aplicativo."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the \"Show Applications\" view" msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Combinación de teclas para abrir a vista «Mostrar aplicativos»" msgstr "Combinación de teclas para abrir a vista «Mostrar aplicativos»"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "" msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview." "Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr "" msgstr ""
"Combinación de teclas para abrir a vista \"Mostrar aplicativos\" da Vista " "Combinación de teclas para abrir a vista \"Mostrar aplicativos\" da Vista "
"xera de Actividades." "xera de Actividades."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "Combinación de teclas para abrir a Vista xeral" msgstr "Combinación de teclas para abrir a Vista xeral"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25 #: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "Combinación de teclas para abrir a Vista de actividades." msgstr "Combinación de teclas para abrir a Vista de actividades."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to toggle the visibility of the notification list" msgid "Keybinding to toggle the visibility of the notification list"
msgstr "" msgstr ""
"Combinación de teclas para trocar a visibilidade da área de notificacións" "Combinación de teclas para trocar a visibilidade da área de notificacións"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27 #: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to toggle the visibility of the notification list." msgid "Keybinding to toggle the visibility of the notification list."
msgstr "" msgstr ""
"Combinación de teclas para trocar a visibilidade da área de notificacións." "Combinación de teclas para trocar a visibilidade da área de notificacións."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "Combinación de teclas para enfocar a notificación activa" msgstr "Combinación de teclas para enfocar a notificación activa"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29 #: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "Combinación de teclas para enfocar a notificación activa." msgstr "Combinación de teclas para enfocar a notificación activa."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "" msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes" "Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr "Atallo de teclado que pausa e reinicia todo os xemelgos executándose." msgstr "Atallo de teclado que pausa e reinicia todo os xemelgos executándose."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31 #: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Which keyboard to use" msgid "Which keyboard to use"
msgstr "Que teclado usar" msgstr "Que teclado usar"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32 #: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid "The type of keyboard to use." msgid "The type of keyboard to use."
msgstr "O tipo de teclado a usar." msgstr "O tipo de teclado a usar."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33 #: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "Restrinxir o trocador ao espazo de traballo actual." msgstr "Restrinxir o trocador ao espazo de traballo actual."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34 #: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid "" msgid ""
"If true, only applications that have windows on the current workspace are " "If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included." "shown in the switcher. Otherwise, all applications are included."
@ -251,11 +266,11 @@ msgstr ""
"Se é verdadeiro, só se mostran no trocador os aplicativos que teñen xanelas " "Se é verdadeiro, só se mostran no trocador os aplicativos que teñen xanelas "
"no espazo de traballo actual. Doutra maneira inclúense todos os aplicativos." "no espazo de traballo actual. Doutra maneira inclúense todos os aplicativos."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35 #: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "The application icon mode." msgid "The application icon mode."
msgstr "O modo da icona do aplicativo." msgstr "O modo da icona do aplicativo."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36 #: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "" msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities " "Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-" "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
@ -265,7 +280,7 @@ msgstr ""
"son «thumbnail-only» (mostra unha miniatura da xanela, «app-icon-only» (só " "son «thumbnail-only» (mostra unha miniatura da xanela, «app-icon-only» (só "
"mostra a icona do aplicativo) ou «both» (móstranse ambas cosas)." "mostra a icona do aplicativo) ou «both» (móstranse ambas cosas)."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid "" msgid ""
"If true, only windows from the current workspace are shown in the switcher. " "If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included." "Otherwise, all windows are included."
@ -273,29 +288,29 @@ msgstr ""
"Se é verdadeiro, só se mostrarán no trocador as xanelas do espazo de " "Se é verdadeiro, só se mostrarán no trocador as xanelas do espazo de "
"traballo actual. Doutra maneira inclúense todos os aplicativos." "traballo actual. Doutra maneira inclúense todos os aplicativos."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
msgstr "Anexar o diálogo modal á xanela pai" msgstr "Anexar o diálogo modal á xanela pai"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39 #: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid "" msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "" msgstr ""
"Esta chave sobrescribe a chave en org.gnome.mutter cando executa GNOME Shell." "Esta chave sobrescribe a chave en org.gnome.mutter cando executa GNOME Shell."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40 #: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Activar o mosaico nos bordos ao arrastrar xanelas aos bordos da xanela" msgstr "Activar o mosaico nos bordos ao arrastrar xanelas aos bordos da xanela"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41 #: ../data/org.gnome.shell.gschema.xml.in.in.h:43
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Os espazos de traballo xestiónanse dinamicamente" msgstr "Os espazos de traballo xestiónanse dinamicamente"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42 #: ../data/org.gnome.shell.gschema.xml.in.in.h:44
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Espazos de traballo só no monitor primario" msgstr "Espazos de traballo só no monitor primario"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43 #: ../data/org.gnome.shell.gschema.xml.in.in.h:45
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Atrasar os cambios de foco no modo rato até que o punteiro se pare" msgstr "Atrasar os cambios de foco no modo rato até que o punteiro se pare"
@ -303,51 +318,52 @@ msgstr "Atrasar os cambios de foco no modo rato até que o punteiro se pare"
msgid "Network Login" msgid "Network Login"
msgstr "Inicio de sesión en rede" msgstr "Inicio de sesión en rede"
#: ../js/extensionPrefs/main.js:122 #: ../js/extensionPrefs/main.js:117
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "Produciuse un erro ao cargar o diálogo de preferenzas para %s:" msgstr "Produciuse un erro ao cargar o diálogo de preferenzas para %s:"
#: ../js/extensionPrefs/main.js:154 #: ../js/extensionPrefs/main.js:149
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "Extensións de GNOME Shell" msgstr "Extensións de GNOME Shell"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145 #: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452 #: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916 #: ../js/ui/status/network.js:916
msgid "Cancel" msgid "Cancel"
msgstr "Cancelar" msgstr "Cancelar"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215 #: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:435 #: ../js/gdm/authPrompt.js:448
msgid "Next" msgid "Next"
msgstr "Seguinte" msgstr "Seguinte"
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403 #: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59 #: ../js/ui/unlockDialog.js:59
msgid "Unlock" msgid "Unlock"
msgstr "Desbloquear" msgstr "Desbloquear"
#: ../js/gdm/authPrompt.js:213 #: ../js/gdm/authPrompt.js:214
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Iniciar sesión" msgstr "Iniciar sesión"
#: ../js/gdm/loginDialog.js:281 #: ../js/gdm/loginDialog.js:285
msgid "Choose Session" msgid "Choose Session"
msgstr "Escolla unha sesión" msgstr "Escolla unha sesión"
#. translators: this message is shown below the user list on the #. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for #. login screen. It can be activated to reveal an entry for
#. manually entering the username. #. manually entering the username.
#: ../js/gdm/loginDialog.js:431 #: ../js/gdm/loginDialog.js:435
msgid "Not listed?" msgid "Not listed?"
msgstr "Non está na lista?" msgstr "Non está na lista?"
#. Translators: this message is shown below the username entry field #. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm #. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:847 #: ../js/gdm/loginDialog.js:854
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(p.ex., usuario ou %s)" msgstr "(p.ex., usuario ou %s)"
@ -355,12 +371,12 @@ msgstr "(p.ex., usuario ou %s)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:852 ../js/ui/components/networkAgent.js:271 #: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289 #: ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
msgstr "Nome de usuario: " msgstr "Nome de usuario: "
#: ../js/gdm/loginDialog.js:1181 #: ../js/gdm/loginDialog.js:1196
msgid "Login Window" msgid "Login Window"
msgstr "Xanela de inicio de sesión" msgstr "Xanela de inicio de sesión"
@ -496,16 +512,36 @@ msgstr "Engadir aos favoritos"
msgid "Show Details" msgid "Show Details"
msgstr "Mostrar detalles" msgstr "Mostrar detalles"
#: ../js/ui/appFavorites.js:132 #: ../js/ui/appFavorites.js:134
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "%s foi engadido aos seus favoritos." msgstr "%s foi engadido aos seus favoritos."
#: ../js/ui/appFavorites.js:166 #: ../js/ui/appFavorites.js:168
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s retirouse dos seus marcadores." msgstr "%s retirouse dos seus marcadores."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Seleccionar dispositivo de son"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "Preferencias de son"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Cascos auriculares"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Auriculares"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Micrófono"
#: ../js/ui/backgroundMenu.js:19 #: ../js/ui/backgroundMenu.js:19
msgid "Change Background…" msgid "Change Background…"
msgstr "Cambiar fondo de escritorio…" msgstr "Cambiar fondo de escritorio…"
@ -514,13 +550,12 @@ msgstr "Cambiar fondo de escritorio…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Preferencias da pantalla" msgstr "Preferencias da pantalla"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "Preferencias" msgstr "Preferencias"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). #. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:55 #: ../js/ui/calendar.js:47
msgctxt "calendar-no-work" msgctxt "calendar-no-work"
msgid "06" msgid "06"
msgstr "06" msgstr "06"
@ -530,94 +565,96 @@ msgstr "06"
#. * NOTE: These grid abbreviations are always shown together #. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S". #. * and in order, e.g. "S M T W T F S".
#. #.
#: ../js/ui/calendar.js:84 #: ../js/ui/calendar.js:76
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "D" msgstr "D"
#. Translators: Calendar grid abbreviation for Monday #. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:86 #: ../js/ui/calendar.js:78
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "L" msgstr "L"
#. Translators: Calendar grid abbreviation for Tuesday #. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:88 #: ../js/ui/calendar.js:80
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "M" msgstr "M"
#. Translators: Calendar grid abbreviation for Wednesday #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:90 #: ../js/ui/calendar.js:82
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "W" msgstr "W"
#. Translators: Calendar grid abbreviation for Thursday #. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:92 #: ../js/ui/calendar.js:84
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "X" msgstr "X"
#. Translators: Calendar grid abbreviation for Friday #. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:94 #: ../js/ui/calendar.js:86
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "V" msgstr "V"
#. Translators: Calendar grid abbreviation for Saturday #. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:96 #: ../js/ui/calendar.js:88
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
msgstr "S" msgstr "S"
#: ../js/ui/calendar.js:566 #: ../js/ui/calendar.js:416
msgid "Previous month" msgid "Previous month"
msgstr "Anterior mes" msgstr "Anterior mes"
#: ../js/ui/calendar.js:576 #: ../js/ui/calendar.js:426
msgid "Next month" msgid "Next month"
msgstr "Seguinte mes" msgstr "Seguinte mes"
#: ../js/ui/calendar.js:783 #: ../js/ui/calendar.js:579
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:634
msgid "Week %V" msgid "Week %V"
msgstr "Semana %V" msgstr "Semana %V"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. #.
#: ../js/ui/calendar.js:1188 #: ../js/ui/calendar.js:695
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Todo o día" msgstr "Todo o día"
#: ../js/ui/calendar.js:1291 #: ../js/ui/calendar.js:821
msgid "Clear section"
msgstr "Limpar sección"
#: ../js/ui/calendar.js:1518
msgid "Events" msgid "Events"
msgstr "Eventos" msgstr "Eventos"
#: ../js/ui/calendar.js:1527 #: ../js/ui/calendar.js:830
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d de %B" msgstr "%A, %d de %B"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:834
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A, %d de %B de %Y" msgstr "%A, %d de %B de %Y"
#: ../js/ui/calendar.js:1616 #: ../js/ui/calendar.js:919
msgid "Notifications" msgid "Notifications"
msgstr "Notificacións" msgstr "Notificacións"
#: ../js/ui/calendar.js:1767 #: ../js/ui/calendar.js:1070
msgid "No Notifications" msgid "No Notifications"
msgstr "Non hai notificacións" msgstr "Non hai notificacións"
#: ../js/ui/calendar.js:1770 #: ../js/ui/calendar.js:1073
msgid "No Events" msgid "No Events"
msgstr "Non hai eventos" msgstr "Non hai eventos"
@ -629,7 +666,7 @@ msgstr "Unidade externa conectada"
msgid "External drive disconnected" msgid "External drive disconnected"
msgstr "Unidade externa desconectada" msgstr "Unidade externa desconectada"
#: ../js/ui/components/autorunManager.js:354 #: ../js/ui/components/autorunManager.js:355
#, javascript-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
msgstr "Abrir con %s" msgstr "Abrir con %s"
@ -941,11 +978,11 @@ msgid "Keyboard"
msgstr "Teclado" msgstr "Teclado"
#. translators: 'Hide' is a verb #. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66 #: ../js/ui/legacyTray.js:65
msgid "Hide tray" msgid "Hide tray"
msgstr "Ocultar bandexa" msgstr "Ocultar bandexa"
#: ../js/ui/legacyTray.js:107 #: ../js/ui/legacyTray.js:106
msgid "Status Icons" msgid "Status Icons"
msgstr "Iconas de estado" msgstr "Iconas de estado"
@ -973,7 +1010,7 @@ msgstr "Activado"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled" msgid "Disabled"
msgstr "Desactivado" msgstr "Desactivado"
@ -997,10 +1034,26 @@ msgstr "Ver fonte"
msgid "Web Page" msgid "Web Page"
msgstr "Páxina web" msgstr "Páxina web"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Limpar sección"
#: ../js/ui/messageTray.js:1486 #: ../js/ui/messageTray.js:1486
msgid "System Information" msgid "System Information"
msgstr "Información do sistema" msgstr "Información do sistema"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Artista descoñecido"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "Título descoñecido"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Multimedia"
#: ../js/ui/overview.js:84 #: ../js/ui/overview.js:84
msgid "Undo" msgid "Undo"
msgstr "Desfacer" msgstr "Desfacer"
@ -1017,17 +1070,22 @@ msgstr "Vista xeral"
msgid "Type to search…" msgid "Type to search…"
msgstr "Escriba para buscar…" msgstr "Escriba para buscar…"
#: ../js/ui/panel.js:352 #: ../js/ui/panel.js:358
msgid "Quit" msgid "Quit"
msgstr "Saír" msgstr "Saír"
#. Translators: If there is no suitable word for "Activities" #. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". #. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:404 #: ../js/ui/panel.js:414
msgid "Activities" msgid "Activities"
msgstr "Actividades" msgstr "Actividades"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistema"
#: ../js/ui/panel.js:807
msgid "Top Bar" msgid "Top Bar"
msgstr "Barra superior" msgstr "Barra superior"
@ -1040,15 +1098,15 @@ msgstr "Barra superior"
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:70 #: ../js/ui/runDialog.js:71
msgid "Enter a Command" msgid "Enter a Command"
msgstr "Escriba unha orde" msgstr "Escriba unha orde"
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162 #: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
msgid "Close" msgid "Close"
msgstr "Pechar" msgstr "Pechar"
#: ../js/ui/runDialog.js:281 #: ../js/ui/runDialog.js:282
msgid "Restarting…" msgid "Restarting…"
msgstr "Restimando…" msgstr "Restimando…"
@ -1171,29 +1229,41 @@ msgstr "Contraste alto"
msgid "Large Text" msgid "Large Text"
msgstr "Texto grande" msgstr "Texto grande"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178 #: ../js/ui/status/bluetooth.js:47
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279 msgid "Bluetooth"
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90 msgstr "Bluetooth"
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Apagar"
#: ../js/ui/status/bluetooth.js:54 #: ../js/ui/status/bluetooth.js:56
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Preferencias do Bluetooth" msgstr "Preferencias do Bluetooth"
#. Translators: this is the number of connected bluetooth devices #. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:105 #: ../js/ui/status/bluetooth.js:136
#, javascript-format #, javascript-format
msgid "%d Connected" msgid "%d Connected"
msgid_plural "%d Connected" msgid_plural "%d Connected"
msgstr[0] "%d conectado" msgstr[0] "%d conectado"
msgstr[1] "%d conectados" msgstr[1] "%d conectados"
#: ../js/ui/status/bluetooth.js:107 #: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "Desactivar"
#: ../js/ui/status/bluetooth.js:140
msgid "Not In Use" msgid "Not In Use"
msgstr "Non está en uso" msgstr "Non está en uso"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Activar"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Apagar"
#: ../js/ui/status/brightness.js:44 #: ../js/ui/status/brightness.js:44
msgid "Brightness" msgid "Brightness"
msgstr "Brillo" msgstr "Brillo"
@ -1202,30 +1272,50 @@ msgstr "Brillo"
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Mostrar a distribución do teclado" msgstr "Mostrar a distribución do teclado"
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177 #: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
msgid "Location Enabled" msgid "Location Enabled"
msgstr "Localización activada" msgstr "Localización activada"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178 #: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
msgid "Disable" msgid "Disable"
msgstr "Desactivar" msgstr "Desactivar"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:109
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "Preferencias da privacidade" msgstr "Preferencias da privacidade"
#: ../js/ui/status/location.js:176 #: ../js/ui/status/location.js:214
msgid "Location In Use" msgid "Location In Use"
msgstr "Localización en uso" msgstr "Localización en uso"
#: ../js/ui/status/location.js:180 #: ../js/ui/status/location.js:218
msgid "Location Disabled" msgid "Location Disabled"
msgstr "Localización desactivada" msgstr "Localización desactivada"
#: ../js/ui/status/location.js:181 #: ../js/ui/status/location.js:219
msgid "Enable" msgid "Enable"
msgstr "Activar" msgstr "Activar"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Denegar acceso"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Conceder acceso"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Darlle acceso a %s á súa localización?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"Pode cambiar o acceso á localización en calquera momento desde as "
"preferencias de privacidade."
#: ../js/ui/status/network.js:101 #: ../js/ui/status/network.js:101
msgid "<unknown>" msgid "<unknown>"
msgstr "<descoñecido>" msgstr "<descoñecido>"
@ -1361,10 +1451,6 @@ msgstr "Seleccione unha rede"
msgid "Wi-Fi Settings" msgid "Wi-Fi Settings"
msgstr "Preferencias da WiFi" msgstr "Preferencias da WiFi"
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Activar"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296 #: ../js/ui/status/network.js:1296
#, javascript-format #, javascript-format
@ -1414,31 +1500,36 @@ msgstr "Produciuse un fallo na conexión"
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Produciuse un fallo na activación da conexión de rede" msgstr "Produciuse un fallo na activación da conexión de rede"
#: ../js/ui/status/power.js:49 #: ../js/ui/status/power.js:61
msgid "Power Settings" msgid "Power Settings"
msgstr "Preferencias de enerxía" msgstr "Preferencias de enerxía"
#: ../js/ui/status/power.js:65 #: ../js/ui/status/power.js:77
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Carga completa" msgstr "Carga completa"
#. 0 is reported when UPower does not have enough data #. 0 is reported when UPower does not have enough data
#. to estimate battery life #. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78 #: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
msgid "Estimating…" msgid "Estimating…"
msgstr "Estimando…" msgstr "Estimando…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>) #. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:98
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "Faltan %d:%02d (%d%%)" msgstr "%d%02d Faltan (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>) #. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91 #: ../js/ui/status/power.js:103
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "%d:%02d ate cargado (%d%%)" msgstr "%d%02d ate cargado (%d%%)"
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
#, javascript-format
msgid "%d%%"
msgstr "%d%%"
#. The menu only appears when airplane mode is on, so just #. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically #. statically build it as if it was on, rather than dynamically
@ -1479,10 +1570,6 @@ msgstr "Volume cambiado"
msgid "Volume" msgid "Volume"
msgstr "Volume" msgstr "Volume"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Micrófono"
#: ../js/ui/unlockDialog.js:67 #: ../js/ui/unlockDialog.js:67
msgid "Log in as another user" msgid "Log in as another user"
msgstr "Iniciar sesión como outro usuario" msgstr "Iniciar sesión como outro usuario"
@ -1603,7 +1690,7 @@ msgstr "Calendario de Evolution"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1837 #: ../src/gvc/gvc-mixer-control.c:1835
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1612,68 +1699,68 @@ msgstr[1] "%u saídas"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1847 #: ../src/gvc/gvc-mixer-control.c:1845
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
msgstr[0] "%u entrada" msgstr[0] "%u entrada"
msgstr[1] "%u entradas" msgstr[1] "%u entradas"
#: ../src/gvc/gvc-mixer-control.c:2373 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "Sons do sistema" msgstr "Sons do sistema"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Imprimir versión" msgstr "Imprimir versión"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Modo usado por GDM para a pantalla de inicio" msgstr "Modo usado por GDM para a pantalla de inicio"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "" msgstr ""
"Usar un modo específico, por exemplo, «gdm» para a pantalla de inicio de " "Usar un modo específico, por exemplo, «gdm» para a pantalla de inicio de "
"sesión" "sesión"
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "Listar os modos posíbeis" msgstr "Listar os modos posíbeis"
#: ../src/shell-app.c:239 #: ../src/shell-app.c:246
msgctxt "program" msgctxt "program"
msgid "Unknown" msgid "Unknown"
msgstr "Descoñecido" msgstr "Descoñecido"
#: ../src/shell-app.c:480 #: ../src/shell-app.c:487
#, c-format #, c-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Produciuse un erro ao iniciar «%s»" msgstr "Produciuse un erro ao iniciar «%s»"
#: ../src/shell-keyring-prompt.c:742 #: ../src/shell-keyring-prompt.c:730
msgid "Passwords do not match." msgid "Passwords do not match."
msgstr "Os contrasinais non coinciden." msgstr "Os contrasinais non coinciden."
#: ../src/shell-keyring-prompt.c:750 #: ../src/shell-keyring-prompt.c:738
msgid "Password cannot be blank" msgid "Password cannot be blank"
msgstr "O contrasinal non pode estar baleiro" msgstr "O contrasinal non pode estar baleiro"
#: ../src/shell-polkit-authentication-agent.c:346 #: ../src/shell-polkit-authentication-agent.c:353
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "O usuario rexeitou o diálogo de autenticación" msgstr "O usuario rexeitou o diálogo de autenticación"
#~ msgid "Bluetooth" #~ msgid "%s is requesting access to your location."
#~ msgstr "Bluetooth" #~ msgstr "%s está solicitando acceso á súa localización."
#~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "GNOME Shell (compositor de wayland)"
#~ msgid "%d Connected Device" #~ msgid "%d Connected Device"
#~ msgid_plural "%d Connected Devices" #~ msgid_plural "%d Connected Devices"
#~ msgstr[0] "%d dispositivo conectado" #~ msgstr[0] "%d dispositivo conectado"
#~ msgstr[1] "%d dispositivos conectados" #~ msgstr[1] "%d dispositivos conectados"
#~ msgid "Off"
#~ msgstr "Desactivar"
#~ msgid "Authentication required" #~ msgid "Authentication required"
#~ msgstr "Requírese autenticación" #~ msgstr "Requírese autenticación"
@ -1825,9 +1912,6 @@ msgstr "O usuario rexeitou o diálogo de autenticación"
#~ msgid "View account" #~ msgid "View account"
#~ msgstr "Ver conta" #~ msgstr "Ver conta"
#~ msgid "Unknown reason"
#~ msgstr "Razón descoñecida"
#~ msgid "Show the message list" #~ msgid "Show the message list"
#~ msgstr "Mostrar a lista de mensaxes" #~ msgstr "Mostrar a lista de mensaxes"
@ -2002,9 +2086,6 @@ msgstr "O usuario rexeitou o diálogo de autenticación"
#~ msgid "Device %s wants access to the service '%s'" #~ msgid "Device %s wants access to the service '%s'"
#~ msgstr "O dispositivo %s quere acceder ao servizo «%s»" #~ msgstr "O dispositivo %s quere acceder ao servizo «%s»"
#~ msgid "Always grant access"
#~ msgstr "Conceder acceso sempre"
#~ msgid "Grant this time only" #~ msgid "Grant this time only"
#~ msgstr "Conceder só esta vez" #~ msgstr "Conceder só esta vez"
@ -2172,9 +2253,6 @@ msgstr "O usuario rexeitou o diálogo de autenticación"
#~ msgid "Visibility" #~ msgid "Visibility"
#~ msgstr "Visibilidade" #~ msgstr "Visibilidade"
#~ msgid "Send Files to Device…"
#~ msgstr "Enviar ficheiros ao dispositivo…"
#~ msgid "Set Up a New Device…" #~ msgid "Set Up a New Device…"
#~ msgstr "Configurar un dispositivo novo…" #~ msgstr "Configurar un dispositivo novo…"
@ -2228,10 +2306,6 @@ msgstr "O usuario rexeitou o diálogo de autenticación"
#~ msgstr[0] "Queda %d minuto" #~ msgstr[0] "Queda %d minuto"
#~ msgstr[1] "Quedan %d minutos" #~ msgstr[1] "Quedan %d minutos"
#~ msgctxt "percent of battery remaining"
#~ msgid "%d%%"
#~ msgstr "%d%%"
#~ msgid "AC Adapter" #~ msgid "AC Adapter"
#~ msgstr "Adaptador de corrente" #~ msgstr "Adaptador de corrente"

396
po/he.po
View File

@ -10,8 +10,8 @@ msgid ""
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-30 21:15+0300\n" "POT-Creation-Date: 2016-03-11 14:49+0200\n"
"PO-Revision-Date: 2016-03-11 14:51+0200\n" "PO-Revision-Date: 2016-03-11 14:51+0200\n"
"Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n" "Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n"
"Language-Team: עברית <>\n" "Language-Team: עברית <>\n"
@ -47,15 +47,6 @@ msgstr "הצגת כל היישומים"
#: ../data/50-gnome-shell-system.xml.in.h:6 #: ../data/50-gnome-shell-system.xml.in.h:6
msgid "Open the application menu" msgid "Open the application menu"
msgstr "פתיחת תפריט היישום" msgstr "פתיחת תפריט היישום"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "מעטפת GNOME"
#: ../data/gnome-shell.desktop.in.in.h:2
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "ניהול חלונות והרצת יישומים"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
@ -64,9 +55,13 @@ msgstr "העדפות ההרחבות של GNOME Shell"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:2 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:2
msgid "Configure GNOME Shell Extensions" msgid "Configure GNOME Shell Extensions"
msgstr "הגדרת הרחבות GNOME Shell" msgstr "הגדרת הרחבות GNOME Shell"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1 #: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)" msgid "GNOME Shell"
msgstr "מעטפת GNOME"
#: ../data/org.gnome.Shell.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "ניהול חלונות והרצת יישומים" msgstr "ניהול חלונות והרצת יישומים"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1 #: ../data/org.gnome.shell.gschema.xml.in.in.h:1
@ -170,74 +165,92 @@ msgstr ""
"'Remember Password' checkbox will be present. This key sets the default " "'Remember Password' checkbox will be present. This key sets the default "
"state of the checkbox." "state of the checkbox."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
"Whether the default Bluetooth adapter had set up devices associated to it"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
"powered, or if there were devices set up associated with the default "
"adapter. This will be reset if the default adapter is ever seen not to have "
"devices associated to it."
msgstr ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
"powered, or if there were devices set up associated with the default "
"adapter. This will be reset if the default adapter is ever seen not to have "
"devices associated to it."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20 #: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar" msgid "Show the week date in the calendar"
msgstr "Show the week date in the calendar" msgstr "Show the week date in the calendar"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21 #: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "If true, display the ISO week date in the calendar." msgid "If true, display the ISO week date in the calendar."
msgstr "If true, display the ISO week date in the calendar." msgstr "If true, display the ISO week date in the calendar."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the application menu" msgid "Keybinding to open the application menu"
msgstr "Keybinding to open the application menu" msgstr "Keybinding to open the application menu"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
msgid "Keybinding to open the application menu." msgid "Keybinding to open the application menu."
msgstr "Keybinding to open the application menu." msgstr "Keybinding to open the application menu."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the \"Show Applications\" view" msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Keybinding to open the \"Show Applications\" view" msgstr "Keybinding to open the \"Show Applications\" view"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25 #: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "" msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview." "Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr "" msgstr ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview." "Keybinding to open the \"Show Applications\" view of the Activities Overview."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "Keybinding to open the overview" msgstr "Keybinding to open the overview"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27 #: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "Keybinding to open the Activities Overview." msgstr "Keybinding to open the Activities Overview."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28 #: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to toggle the visibility of the notification list" msgid "Keybinding to toggle the visibility of the notification list"
msgstr "Keybinding to toggle the visibility of the notification list" msgstr "Keybinding to toggle the visibility of the notification list"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29 #: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to toggle the visibility of the notification list." msgid "Keybinding to toggle the visibility of the notification list."
msgstr "Keybinding to toggle the visibility of the notification list." msgstr "Keybinding to toggle the visibility of the notification list."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "Keybinding to focus the active notification" msgstr "Keybinding to focus the active notification"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31 #: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "Keybinding to focus the active notification." msgstr "Keybinding to focus the active notification."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32 #: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "" msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes" "Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr "" msgstr ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes" "Keybinding that pauses and resumes all running tweens, for debugging purposes"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33 #: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Which keyboard to use" msgid "Which keyboard to use"
msgstr "Which keyboard to use" msgstr "Which keyboard to use"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34 #: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid "The type of keyboard to use." msgid "The type of keyboard to use."
msgstr "The type of keyboard to use." msgstr "The type of keyboard to use."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35 #: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "Limit switcher to current workspace." msgstr "Limit switcher to current workspace."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36 #: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid "" msgid ""
"If true, only applications that have windows on the current workspace are " "If true, only applications that have windows on the current workspace are "
@ -245,51 +258,51 @@ msgstr ""
msgstr "" msgstr ""
"If true, only applications that have windows on the current workspace are " "If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included." "shown in the switcher. Otherwise, all applications are included."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "The application icon mode." msgid "The application icon mode."
msgstr "The application icon mode." msgstr "The application icon mode."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
"only' (shows only the application icon) or 'both'."
msgstr ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
"only' (shows only the application icon) or 'both'."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
msgstr ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "Attach modal dialog to the parent window" msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
"only' (shows only the application icon) or 'both'."
msgstr ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
"only' (shows only the application icon) or 'both'." "only' (shows only the application icon) or 'both'."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39 #: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
msgstr ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Attach modal dialog to the parent window"
msgstr "Attach modal dialog to the parent window"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid "" msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "" msgstr ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." "This key overrides the key in org.gnome.mutter when running GNOME Shell."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42 #: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Enable edge tiling when dropping windows on screen edges" msgstr "Enable edge tiling when dropping windows on screen edges"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43 #: ../data/org.gnome.shell.gschema.xml.in.in.h:43
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Workspaces are managed dynamically" msgstr "Workspaces are managed dynamically"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44 #: ../data/org.gnome.shell.gschema.xml.in.in.h:44
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Workspaces only on primary monitor" msgstr "Workspaces only on primary monitor"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45 #: ../data/org.gnome.shell.gschema.xml.in.in.h:45
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Delay focus changes in mouse mode until the pointer stops moving" msgstr "Delay focus changes in mouse mode until the pointer stops moving"
@ -297,51 +310,52 @@ msgstr "Delay focus changes in mouse mode until the pointer stops moving"
#: ../data/org.gnome.Shell.PortalHelper.desktop.in.h:1 #: ../data/org.gnome.Shell.PortalHelper.desktop.in.h:1
msgid "Network Login" msgid "Network Login"
msgstr "Network Login" msgstr "Network Login"
#: ../js/extensionPrefs/main.js:117 #: ../js/extensionPrefs/main.js:117
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "אירעה שגיאה בעת טעינת דו־שיח ההעדפות עבור %s:" msgstr "אירעה שגיאה בעת טעינת דו־שיח ההעדפות עבור %s:"
#: ../js/extensionPrefs/main.js:149 #: ../js/extensionPrefs/main.js:149
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "הרחבות GNOME Shell" msgstr "הרחבות GNOME Shell"
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145 #: ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452 #: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916 #: ../js/ui/status/network.js:916
msgid "Cancel" msgid "Cancel"
msgstr "ביטול" msgstr "ביטול"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215 #: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:448 #: ../js/gdm/authPrompt.js:448
msgid "Next" msgid "Next"
msgstr "הבא" msgstr "הבא"
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403 #: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59 #: ../js/ui/unlockDialog.js:59
msgid "Unlock" msgid "Unlock"
msgstr "שחרור" msgstr "שחרור"
#: ../js/gdm/authPrompt.js:214 #: ../js/gdm/authPrompt.js:214
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "כניסה" msgstr "כניסה"
#: ../js/gdm/loginDialog.js:285 #: ../js/gdm/loginDialog.js:285
msgid "Choose Session" msgid "Choose Session"
msgstr "בחירת הפעלה" msgstr "בחירת הפעלה"
#. translators: this message is shown below the user list on the #. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for #. login screen. It can be activated to reveal an entry for
#. manually entering the username. #. manually entering the username.
#: ../js/gdm/loginDialog.js:435 #: ../js/gdm/loginDialog.js:435
msgid "Not listed?" msgid "Not listed?"
msgstr "לא רשום?" msgstr "לא רשום?"
#. Translators: this message is shown below the username entry field #. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm #. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:854 #: ../js/gdm/loginDialog.js:854
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
@ -349,12 +363,12 @@ msgstr "(משתמש או %s לדוגמה)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271 #: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289 #: ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
msgstr "שם משתמש:" msgstr "שם משתמש:"
#: ../js/gdm/loginDialog.js:1196 #: ../js/gdm/loginDialog.js:1196
msgid "Login Window" msgid "Login Window"
msgstr "חלון כניסה" msgstr "חלון כניסה"
@ -490,16 +504,36 @@ msgstr "הוספה למועדפים"
#: ../js/ui/appDisplay.js:1897 #: ../js/ui/appDisplay.js:1897
msgid "Show Details" msgid "Show Details"
msgstr "הצגת פרטים" msgstr "הצגת פרטים"
#: ../js/ui/appFavorites.js:134 #: ../js/ui/appFavorites.js:134
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "%s נוסף למועדפים שלך." msgstr "%s נוסף למועדפים שלך."
#: ../js/ui/appFavorites.js:168 #: ../js/ui/appFavorites.js:168
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s הוסר מהמועדפים שלך." msgstr "%s הוסר מהמועדפים שלך."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "בחירת התקן שמע"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "הגדרות שמע"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "אזניות"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "אזניות עם מיקרופון"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "מיקרופון"
#: ../js/ui/backgroundMenu.js:19 #: ../js/ui/backgroundMenu.js:19
msgid "Change Background…" msgid "Change Background…"
@ -508,13 +542,12 @@ msgstr "החלפת הרקע…"
#: ../js/ui/backgroundMenu.js:21 #: ../js/ui/backgroundMenu.js:21
msgid "Display Settings" msgid "Display Settings"
msgstr "הגדרות תצוגה" msgstr "הגדרות תצוגה"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "הגדרות" msgstr "הגדרות"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). #. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:47 #: ../js/ui/calendar.js:47
msgctxt "calendar-no-work" msgctxt "calendar-no-work"
msgid "06" msgid "06"
@ -524,94 +557,96 @@ msgstr "65"
#. * #. *
#. * NOTE: These grid abbreviations are always shown together #. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S". #. * and in order, e.g. "S M T W T F S".
#. #.
#: ../js/ui/calendar.js:76 #: ../js/ui/calendar.js:76
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "א" msgstr "א"
#. Translators: Calendar grid abbreviation for Monday #. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:78 #: ../js/ui/calendar.js:78
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "ב" msgstr "ב"
#. Translators: Calendar grid abbreviation for Tuesday #. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:80 #: ../js/ui/calendar.js:80
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "ג" msgstr "ג"
#. Translators: Calendar grid abbreviation for Wednesday #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:82 #: ../js/ui/calendar.js:82
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "ד" msgstr "ד"
#. Translators: Calendar grid abbreviation for Thursday #. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:84 #: ../js/ui/calendar.js:84
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "ה" msgstr "ה"
#. Translators: Calendar grid abbreviation for Friday #. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:86 #: ../js/ui/calendar.js:86
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "ו" msgstr "ו"
#. Translators: Calendar grid abbreviation for Saturday #. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:88 #: ../js/ui/calendar.js:88
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
msgstr "ש" msgstr "ש"
#: ../js/ui/calendar.js:416 #: ../js/ui/calendar.js:416
msgid "Previous month" msgid "Previous month"
msgstr "חודש קודם" msgstr "חודש קודם"
#: ../js/ui/calendar.js:426 #: ../js/ui/calendar.js:426
msgid "Next month" msgid "Next month"
msgstr "חודש הבא" msgstr "חודש הבא"
#: ../js/ui/calendar.js:579
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:634 #: ../js/ui/calendar.js:634
msgid "Week %V" msgid "Week %V"
msgstr "שבוע %V" msgstr "שבוע %V"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. #.
#: ../js/ui/calendar.js:695 #: ../js/ui/calendar.js:695
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "יום שלם" msgstr "יום שלם"
#: ../js/ui/calendar.js:1291
msgid "Clear section"
msgstr "ניקוי מקטע"
#: ../js/ui/calendar.js:821 #: ../js/ui/calendar.js:821
msgid "Events" msgid "Events"
msgstr "אירועים" msgstr "אירועים"
#: ../js/ui/calendar.js:830 #: ../js/ui/calendar.js:830
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, ה־%e ב%B" msgstr "%A, ה־%e ב%B"
#: ../js/ui/calendar.js:834 #: ../js/ui/calendar.js:834
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A, ה־%e ב%B, %Y" msgstr "%A, ה־%e ב%B, %Y"
#: ../js/ui/calendar.js:919 #: ../js/ui/calendar.js:919
msgid "Notifications" msgid "Notifications"
msgstr "התרעות" msgstr "התרעות"
#: ../js/ui/calendar.js:1070 #: ../js/ui/calendar.js:1070
msgid "No Notifications" msgid "No Notifications"
msgstr "אין התרעות" msgstr "אין התרעות"
#: ../js/ui/calendar.js:1073 #: ../js/ui/calendar.js:1073
msgid "No Events" msgid "No Events"
msgstr "אין אירועים" msgstr "אין אירועים"
@ -623,7 +658,7 @@ msgstr "חובר כונן חיצוני"
#: ../js/ui/components/automountManager.js:102 #: ../js/ui/components/automountManager.js:102
msgid "External drive disconnected" msgid "External drive disconnected"
msgstr "נותק כונן חיצוני" msgstr "נותק כונן חיצוני"
#: ../js/ui/components/autorunManager.js:355 #: ../js/ui/components/autorunManager.js:355
#, javascript-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
@ -929,11 +964,11 @@ msgid "Keyboard"
msgid "Keyboard" msgid "Keyboard"
msgstr "מקלדת" msgstr "מקלדת"
#. translators: 'Hide' is a verb #. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:65 #: ../js/ui/legacyTray.js:65
msgid "Hide tray" msgid "Hide tray"
msgstr "הסתרת המגש" msgstr "הסתרת המגש"
#: ../js/ui/legacyTray.js:106 #: ../js/ui/legacyTray.js:106
msgid "Status Icons" msgid "Status Icons"
msgstr "סמלי מצב" msgstr "סמלי מצב"
@ -961,7 +996,7 @@ msgstr "פעיל"
msgstr "פעיל" msgstr "פעיל"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled" msgid "Disabled"
msgstr "מנוטרל" msgstr "מנוטרל"
@ -985,10 +1020,26 @@ msgstr "צפייה במקור"
#: ../js/ui/lookingGlass.js:758 #: ../js/ui/lookingGlass.js:758
msgid "Web Page" msgid "Web Page"
msgstr "דף אינטרנט" msgstr "דף אינטרנט"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "ניקוי מקטע"
#: ../js/ui/messageTray.js:1486 #: ../js/ui/messageTray.js:1486
msgid "System Information" msgid "System Information"
msgstr "פרטי המערכת" msgstr "פרטי המערכת"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "אמן לא ידוע"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "כותרת לא ידועה"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "מדיה"
#: ../js/ui/overview.js:84 #: ../js/ui/overview.js:84
msgid "Undo" msgid "Undo"
@ -1005,17 +1056,22 @@ msgstr "סקירה"
#: ../js/ui/overview.js:244 #: ../js/ui/overview.js:244
msgid "Type to search…" msgid "Type to search…"
msgstr "יש להקליד כדי לחפש…" msgstr "יש להקליד כדי לחפש…"
#: ../js/ui/panel.js:358 #: ../js/ui/panel.js:358
msgid "Quit" msgid "Quit"
msgstr "יציאה" msgstr "יציאה"
#. Translators: If there is no suitable word for "Activities" #. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". #. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:414 #: ../js/ui/panel.js:414
msgid "Activities" msgid "Activities"
msgstr "פעילויות" msgstr "פעילויות"
#: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "מערכת"
#: ../js/ui/panel.js:807 #: ../js/ui/panel.js:807
msgid "Top Bar" msgid "Top Bar"
msgstr "הסרגל העליון" msgstr "הסרגל העליון"
@ -1028,15 +1084,15 @@ msgstr "הסרגל העליון"
#: ../js/ui/popupMenu.js:289 #: ../js/ui/popupMenu.js:289
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:71 #: ../js/ui/runDialog.js:71
msgid "Enter a Command" msgid "Enter a Command"
msgstr "נא להזין פקודה" msgstr "נא להזין פקודה"
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162 #: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
msgid "Close" msgid "Close"
msgstr "סגירה" msgstr "סגירה"
#: ../js/ui/runDialog.js:282 #: ../js/ui/runDialog.js:282
msgid "Restarting…" msgid "Restarting…"
msgstr "מופעל מחדש…" msgstr "מופעל מחדש…"
@ -1161,29 +1217,41 @@ msgstr "ניגודיות גבוהה"
#: ../js/ui/status/accessibility.js:202 #: ../js/ui/status/accessibility.js:202
msgid "Large Text" msgid "Large Text"
msgstr "טקסט גדול" msgstr "טקסט גדול"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178 #: ../js/ui/status/bluetooth.js:47
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279 msgid "Bluetooth"
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Bluetooth" msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:56 #: ../js/ui/status/bluetooth.js:56
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "הגדרות Bluetooth" msgstr "הגדרות Bluetooth"
#. Translators: this is the number of connected bluetooth devices #. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:136 #: ../js/ui/status/bluetooth.js:136
#, c-format #, c-format
msgid "%d Connected" msgid "%d Connected"
msgid_plural "%d Connected" msgid_plural "%d Connected"
msgstr[0] "אחד מחובר" msgstr[0] "אחד מחובר"
msgstr[1] "%d מחוברים" msgstr[1] "%d מחוברים"
#: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "כבוי"
#: ../js/ui/status/bluetooth.js:140 #: ../js/ui/status/bluetooth.js:140
msgid "Not In Use" msgid "Not In Use"
msgstr "לא בשימוש" msgstr "לא בשימוש"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "הפעלה"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "כיבוי"
#: ../js/ui/status/brightness.js:44 #: ../js/ui/status/brightness.js:44
msgid "Brightness" msgid "Brightness"
@ -1192,30 +1260,48 @@ msgstr "בהירות"
#: ../js/ui/status/keyboard.js:736 #: ../js/ui/status/keyboard.js:736
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "הצגת פריסת המקלדת" msgstr "הצגת פריסת המקלדת"
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215 #: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
msgid "Location Enabled" msgid "Location Enabled"
msgstr "איכון מאופשר" msgstr "איכון מאופשר"
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216 #: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
msgid "Disable" msgid "Disable"
msgstr "השבתה" msgstr "השבתה"
#: ../js/ui/status/location.js:109 #: ../js/ui/status/location.js:109
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "הגדרות פרטיות" msgstr "הגדרות פרטיות"
#: ../js/ui/status/location.js:214 #: ../js/ui/status/location.js:214
msgid "Location In Use" msgid "Location In Use"
msgstr "איכון בשימוש" msgstr "איכון בשימוש"
#: ../js/ui/status/location.js:218 #: ../js/ui/status/location.js:218
msgid "Location Disabled" msgid "Location Disabled"
msgstr "איכון מושבת" msgstr "איכון מושבת"
#: ../js/ui/status/location.js:219 #: ../js/ui/status/location.js:219
msgid "Enable" msgid "Enable"
msgstr "אפשור" msgstr "אפשור"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "מניעת גישה"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "אפשור גישה"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "לתת ליישום %s גישה למיקום שלך?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr "ניתן לשנות בכל עת את הרשאות הגישה למיקום שלך מהגדרות הפרטיות."
#: ../js/ui/status/network.js:101 #: ../js/ui/status/network.js:101
msgid "<unknown>" msgid "<unknown>"
@ -1351,10 +1437,6 @@ msgstr "בחירת רשת"
#: ../js/ui/status/network.js:1177 #: ../js/ui/status/network.js:1177
msgid "Wi-Fi Settings" msgid "Wi-Fi Settings"
msgstr "הגדרות רשת אלחוטית" msgstr "הגדרות רשת אלחוטית"
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "הפעלה"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296 #: ../js/ui/status/network.js:1296
@ -1404,32 +1486,37 @@ msgstr "ההתחברות נכשלה"
#: ../js/ui/status/network.js:1698 #: ../js/ui/status/network.js:1698
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "הפעלת חיבור הרשת נכשלה" msgstr "הפעלת חיבור הרשת נכשלה"
#: ../js/ui/status/power.js:61 #: ../js/ui/status/power.js:61
msgid "Power Settings" msgid "Power Settings"
msgstr "הגדרות צריכת החשמל" msgstr "הגדרות צריכת החשמל"
#: ../js/ui/status/power.js:77 #: ../js/ui/status/power.js:77
msgid "Fully Charged" msgid "Fully Charged"
msgstr "בטעינה מלאה" msgstr "בטעינה מלאה"
#. 0 is reported when UPower does not have enough data #. 0 is reported when UPower does not have enough data
#. to estimate battery life #. to estimate battery life
#: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90 #: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
msgid "Estimating…" msgid "Estimating…"
msgstr "מתבצע שערוך…" msgstr "מתבצע שערוך…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>) #. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:98 #: ../js/ui/status/power.js:98
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d נותרו (%d%%)" msgstr "%d%02d נותרו (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>) #. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:103 #: ../js/ui/status/power.js:103
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "%d:%02d עד לטעינה מלאה (%d%%)" msgstr "%d:%02d עד לטעינה מלאה (%d%%)"
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
#, javascript-format
msgid "%d%%"
msgstr "%d%%"
#. The menu only appears when airplane mode is on, so just #. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically #. statically build it as if it was on, rather than dynamically
@ -1469,10 +1556,6 @@ msgstr "עצמת השמע השתנתה"
#: ../js/ui/status/volume.js:162 #: ../js/ui/status/volume.js:162
msgid "Volume" msgid "Volume"
msgstr "עצמה" msgstr "עצמה"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "מיקרופון"
#: ../js/ui/unlockDialog.js:67 #: ../js/ui/unlockDialog.js:67
msgid "Log in as another user" msgid "Log in as another user"
@ -1594,7 +1677,7 @@ msgstr "יומן אבולושן"
msgstr "יומן אבולושן" msgstr "יומן אבולושן"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1835 #: ../src/gvc/gvc-mixer-control.c:1835
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
@ -1603,57 +1686,60 @@ msgstr[1] "%u פלטים"
msgstr[1] "%u פלטים" msgstr[1] "%u פלטים"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1845 #: ../src/gvc/gvc-mixer-control.c:1845
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
msgstr[0] "קלט אחד" msgstr[0] "קלט אחד"
msgstr[1] "%u קלטים" msgstr[1] "%u קלטים"
#: ../src/gvc/gvc-mixer-control.c:2371 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "צלילי מערכת" msgstr "צלילי מערכת"
#: ../src/main.c:381 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Print version" msgstr "Print version"
#: ../src/main.c:387 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "המצב בו GDM יעשה שימוש לצורך מסך הכניסה" msgstr "המצב בו GDM יעשה שימוש לצורך מסך הכניסה"
#: ../src/main.c:393 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "שימוש במצב מסוים, לדוגמה: „gdm“ למסך הכניסה" msgstr "שימוש במצב מסוים, לדוגמה: „gdm“ למסך הכניסה"
#: ../src/main.c:399 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "הצגת המצבים האפשריים" msgstr "הצגת המצבים האפשריים"
#: ../src/shell-app.c:246 #: ../src/shell-app.c:246
msgctxt "program" msgctxt "program"
msgid "Unknown" msgid "Unknown"
msgstr "לא ידוע" msgstr "לא ידוע"
#: ../src/shell-app.c:487 #: ../src/shell-app.c:487
#, c-format #, c-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "אירע כשל בטעינת „%s”" msgstr "אירע כשל בטעינת „%s”"
#: ../src/shell-keyring-prompt.c:730 #: ../src/shell-keyring-prompt.c:730
msgid "Passwords do not match." msgid "Passwords do not match."
msgstr "הססמאות אינן תואמות." msgstr "הססמאות אינן תואמות."
#: ../src/shell-keyring-prompt.c:738 #: ../src/shell-keyring-prompt.c:738
msgid "Password cannot be blank" msgid "Password cannot be blank"
msgstr "הססמה אינה יכולה להישאר ריקה" msgstr "הססמה אינה יכולה להישאר ריקה"
#: ../src/shell-polkit-authentication-agent.c:353 #: ../src/shell-polkit-authentication-agent.c:353
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות" msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgid "Bluetooth" #~ msgid "%s is requesting access to your location."
#~ msgstr "%s דורש גישה למיקום שלך."
#~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "GNOME Shell (מסדר wayland)" #~ msgstr "GNOME Shell (מסדר wayland)"
# javascript-format # javascript-format
@ -1661,9 +1747,6 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgid_plural "%d Connected Devices" #~ msgid_plural "%d Connected Devices"
#~ msgstr[0] "התקן אחד מחובר" #~ msgstr[0] "התקן אחד מחובר"
#~ msgstr[1] "%d התקנים מחוברים" #~ msgstr[1] "%d התקנים מחוברים"
#~ msgid "Off"
#~ msgstr "כבוי"
#~ msgid "Authentication required" #~ msgid "Authentication required"
#~ msgstr "נדרש אימות" #~ msgstr "נדרש אימות"
@ -1810,9 +1893,6 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgid "View account" #~ msgid "View account"
#~ msgstr "צפייה בחשבון" #~ msgstr "צפייה בחשבון"
#~ msgid "Unknown reason"
#~ msgstr "סיבה לא ידועה"
#~ msgid "Show the message list" #~ msgid "Show the message list"
#~ msgstr "הצגת רשימת הודעות" #~ msgstr "הצגת רשימת הודעות"
@ -2006,9 +2086,6 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgid "Device %s wants access to the service '%s'" #~ msgid "Device %s wants access to the service '%s'"
#~ msgstr "ההתקן %s מעוניין לגשת אל השירות '%s'" #~ msgstr "ההתקן %s מעוניין לגשת אל השירות '%s'"
#~ msgid "Always grant access"
#~ msgstr "תמיד להעניק גישה"
#~ msgid "Grant this time only" #~ msgid "Grant this time only"
#~ msgstr "הענקת גישה הפעם בלבד" #~ msgstr "הענקת גישה הפעם בלבד"
@ -2176,9 +2253,6 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgid "Visibility" #~ msgid "Visibility"
#~ msgstr "הצגה" #~ msgstr "הצגה"
#~ msgid "Send Files to Device…"
#~ msgstr "שליחת קובץ להתקן…"
#~ msgid "Set Up a New Device…" #~ msgid "Set Up a New Device…"
#~ msgstr "הגדרת התקן חדש…" #~ msgstr "הגדרת התקן חדש…"
@ -2257,10 +2331,6 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgstr[0] "דקה אחת נותרה" #~ msgstr[0] "דקה אחת נותרה"
#~ msgstr[1] "%d דקות נותרו" #~ msgstr[1] "%d דקות נותרו"
#~ msgstr[2] "שתי דקות נותרו" #~ msgstr[2] "שתי דקות נותרו"
#~ msgctxt "percent of battery remaining"
#~ msgid "%d%%"
#~ msgstr "%d%%"
#~ msgid "AC Adapter" #~ msgid "AC Adapter"
#~ msgstr "מתאם חשמל" #~ msgstr "מתאם חשמל"

536
po/hu.po

File diff suppressed because it is too large Load Diff

210
po/id.po
View File

@ -7,11 +7,11 @@
# Wibiharto <wibinem@yahoo.com>, 2011. # Wibiharto <wibinem@yahoo.com>, 2011.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell gnome-3-18\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2015-09-19 08:21+0000\n" "POT-Creation-Date: 2016-01-02 10:15+0000\n"
"PO-Revision-Date: 2015-09-19 19:34+0700\n" "PO-Revision-Date: 2016-01-02 19:12+0700\n"
"Last-Translator: Andika Triwidada <andika@gmail.com>\n" "Last-Translator: Andika Triwidada <andika@gmail.com>\n"
"Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n" "Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n"
"Language: id\n" "Language: id\n"
@ -20,7 +20,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
"X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-SourceCharset: UTF-8\n"
"X-Generator: Poedit 1.6.10\n" "X-Generator: Poedit 1.8.4\n"
#: ../data/50-gnome-shell-system.xml.in.h:1 #: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System" msgid "System"
@ -336,25 +336,33 @@ msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Masuk" msgstr "Masuk"
#: ../js/gdm/loginDialog.js:281 #: ../js/gdm/loginDialog.js:285
msgid "Choose Session" msgid "Choose Session"
msgstr "Pilih Sesi" msgstr "Pilih Sesi"
#: ../js/gdm/loginDialog.js:431 #. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: ../js/gdm/loginDialog.js:435
msgid "Not listed?" msgid "Not listed?"
msgstr "Tak masuk daftar?" msgstr "Tak masuk daftar?"
#: ../js/gdm/loginDialog.js:850 #. 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:854
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(cth., pengguna dari %s)" msgstr "(cth., pengguna dari %s)"
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271 #. 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:859 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289 #: ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
msgstr "Nama pengguna: " msgstr "Nama pengguna: "
#: ../js/gdm/loginDialog.js:1184 #: ../js/gdm/loginDialog.js:1196
msgid "Login Window" msgid "Login Window"
msgstr "Jendela Log Masuk" msgstr "Jendela Log Masuk"
@ -362,6 +370,11 @@ msgstr "Jendela Log Masuk"
msgid "Authentication error" msgid "Authentication error"
msgstr "Galat otentikasi" msgstr "Galat otentikasi"
#. We don't show fingerprint messages directly since it's
#. not the main auth service. Instead we use the messages
#. as a cue to display our own message.
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/util.js:473 #: ../js/gdm/util.js:473
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(atau gesekkan jari)" msgstr "(atau gesekkan jari)"
@ -370,6 +383,8 @@ msgstr "(atau gesekkan jari)"
msgid "Command not found" msgid "Command not found"
msgstr "Perintah tidak ditemukan" msgstr "Perintah tidak ditemukan"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
#: ../js/misc/util.js:152 #: ../js/misc/util.js:152
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Tak dapat mengurai perintah:" msgstr "Tak dapat mengurai perintah:"
@ -379,70 +394,78 @@ msgstr "Tak dapat mengurai perintah:"
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "Eksekusi \"%s\" gagal:" msgstr "Eksekusi \"%s\" gagal:"
#. Translators: Time in 24h format */ #. Translators: Time in 24h format
#: ../js/misc/util.js:191 #: ../js/misc/util.js:191
msgid "%H%M" msgid "%H%M"
msgstr "%H%M" msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" */ #. time string in 24h format. i.e. "Yesterday, 14:30"
#: ../js/misc/util.js:197 #: ../js/misc/util.js:197
#, no-c-format
msgid "Yesterday, %H%M" msgid "Yesterday, %H%M"
msgstr "Kemarin, %H:%M" msgstr "Kemarin, %H:%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" */ #. string in 24h format. i.e. "Monday, 14:30"
#: ../js/misc/util.js:203 #: ../js/misc/util.js:203
#, no-c-format
msgid "%A, %H%M" msgid "%A, %H%M"
msgstr "%A, %H%M" msgstr "%A, %H%M"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 24h format. #. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" */ #. i.e. "May 25, 14:30"
#: ../js/misc/util.js:209 #: ../js/misc/util.js:209
#, no-c-format
msgid "%B %d, %H%M" msgid "%B %d, %H%M"
msgstr "%d %B, %H%M" msgstr "%d %B, %H%M"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format. #. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" */ #. i.e. "May 25 2012, 14:30"
#: ../js/misc/util.js:215 #: ../js/misc/util.js:215
#, no-c-format
msgid "%B %d %Y, %H%M" msgid "%B %d %Y, %H%M"
msgstr "%d %B %Y, %H%M" msgstr "%d %B %Y, %H%M"
#. Translators: Time in 12h format */ #. Translators: Time in 12h format
#: ../js/misc/util.js:220 #: ../js/misc/util.js:220
msgid "%l%M %p" msgid "%l%M %p"
msgstr "%H%M" msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */ #. time string in 12h format. i.e. "Yesterday, 2:30 pm"
#: ../js/misc/util.js:226 #: ../js/misc/util.js:226
#, no-c-format
msgid "Yesterday, %l%M %p" msgid "Yesterday, %l%M %p"
msgstr "Kemarin, %l%M %p" msgstr "Kemarin, %l%M %p"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" */ #. string in 12h format. i.e. "Monday, 2:30 pm"
#: ../js/misc/util.js:232 #: ../js/misc/util.js:232
#, no-c-format
msgid "%A, %l%M %p" msgid "%A, %l%M %p"
msgstr "%A, %l%M %p" msgstr "%A, %l%M %p"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 12h format. #. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" */ #. i.e. "May 25, 2:30 pm"
#: ../js/misc/util.js:238 #: ../js/misc/util.js:238
#, no-c-format
msgid "%B %d, %l%M %p" 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 #. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format. #. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"*/ #. i.e. "May 25 2012, 2:30 pm"
#: ../js/misc/util.js:244 #: ../js/misc/util.js:244
#, no-c-format
msgid "%B %d %Y, %l%M %p" 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 #. TRANSLATORS: this is the title of the wifi captive portal login
#. * window, until we know the title of the actual login page */ #. * window, until we know the title of the actual login page
#: ../js/portalHelper/main.js:85 #: ../js/portalHelper/main.js:85
msgid "Web Authentication Redirect" msgid "Web Authentication Redirect"
msgstr "Pengalihan Otentikasi Web" msgstr "Pengalihan Otentikasi Web"
@ -493,12 +516,11 @@ msgstr "Ubah Latar…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Pengaturan Tampilan" msgstr "Pengaturan Tampilan"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "Pengaturan" msgstr "Pengaturan"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). */ #. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:55 #: ../js/ui/calendar.js:55
msgctxt "calendar-no-work" msgctxt "calendar-no-work"
msgid "06" msgid "06"
@ -508,43 +530,43 @@ msgstr "06"
#. * #. *
#. * NOTE: These grid abbreviations are always shown together #. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S". #. * and in order, e.g. "S M T W T F S".
#. */ #.
#: ../js/ui/calendar.js:84 #: ../js/ui/calendar.js:84
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "M" msgstr "M"
#. Translators: Calendar grid abbreviation for Monday */ #. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:86 #: ../js/ui/calendar.js:86
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "S" msgstr "S"
#. Translators: Calendar grid abbreviation for Tuesday */ #. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:88 #: ../js/ui/calendar.js:88
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "S" msgstr "S"
#. Translators: Calendar grid abbreviation for Wednesday */ #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:90 #: ../js/ui/calendar.js:90
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "R" msgstr "R"
#. Translators: Calendar grid abbreviation for Thursday */ #. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:92 #: ../js/ui/calendar.js:92
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "K" msgstr "K"
#. Translators: Calendar grid abbreviation for Friday */ #. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:94 #: ../js/ui/calendar.js:94
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "J" msgstr "J"
#. Translators: Calendar grid abbreviation for Saturday */ #. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:96 #: ../js/ui/calendar.js:96
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
@ -564,39 +586,39 @@ msgstr "Minggu %V"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. */ #.
#: ../js/ui/calendar.js:1188 #: ../js/ui/calendar.js:1188
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Sepanjang Hari" msgstr "Sepanjang Hari"
#: ../js/ui/calendar.js:1291 #: ../js/ui/calendar.js:1295
msgid "Clear section" msgid "Clear section"
msgstr "Bersihkan seksi" msgstr "Bersihkan seksi"
#: ../js/ui/calendar.js:1518 #: ../js/ui/calendar.js:1522
msgid "Events" msgid "Events"
msgstr "Kejadian" msgstr "Kejadian"
#: ../js/ui/calendar.js:1527 #: ../js/ui/calendar.js:1531
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d %B" msgstr "%A, %d %B"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:1535
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A, %d %B %Y" msgstr "%A, %d %B %Y"
#: ../js/ui/calendar.js:1616 #: ../js/ui/calendar.js:1620
msgid "Notifications" msgid "Notifications"
msgstr "Pemberitahuan" msgstr "Pemberitahuan"
#: ../js/ui/calendar.js:1767 #: ../js/ui/calendar.js:1771
msgid "No Notifications" msgid "No Notifications"
msgstr "Tak Ada Pemberitahuan" msgstr "Tak Ada Pemberitahuan"
#: ../js/ui/calendar.js:1770 #: ../js/ui/calendar.js:1774
msgid "No Events" msgid "No Events"
msgstr "Tak Ada Kejadian" msgstr "Tak Ada Kejadian"
@ -608,7 +630,7 @@ msgstr "Drive eksternal tersambung"
msgid "External drive disconnected" msgid "External drive disconnected"
msgstr "Drive eksternal terputus" msgstr "Drive eksternal terputus"
#: ../js/ui/components/autorunManager.js:354 #: ../js/ui/components/autorunManager.js:351
#, javascript-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
msgstr "Buka dengan %s" msgstr "Buka dengan %s"
@ -626,6 +648,7 @@ msgstr "Ketik lagi:"
msgid "Connect" msgid "Connect"
msgstr "Sambung" msgstr "Sambung"
#. Cisco LEAP
#: ../js/ui/components/networkAgent.js:233 #: ../js/ui/components/networkAgent.js:233
#: ../js/ui/components/networkAgent.js:245 #: ../js/ui/components/networkAgent.js:245
#: ../js/ui/components/networkAgent.js:273 #: ../js/ui/components/networkAgent.js:273
@ -634,6 +657,7 @@ msgstr "Sambung"
msgid "Password: " msgid "Password: "
msgstr "Sandi: " msgstr "Sandi: "
#. static WEP
#: ../js/ui/components/networkAgent.js:238 #: ../js/ui/components/networkAgent.js:238
msgid "Key: " msgid "Key: "
msgstr "Tombol: " msgstr "Tombol: "
@ -725,13 +749,13 @@ msgstr "Otentikasi"
#. Translators: "that didn't work" refers to the fact that the #. Translators: "that didn't work" refers to the fact that the
#. * requested authentication was not gained; this can happen #. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password), #. * because of an authentication error (like invalid password),
#. * for instance. */ #. * for instance.
#: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383 #: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again." msgid "Sorry, that didn't work. Please try again."
msgstr "Maaf, tidak berhasil. Silakan coba lagi." msgstr "Maaf, tidak berhasil. Silakan coba lagi."
#. Translators: this is the other person changing their old IM name to their new #. Translators: this is the other person changing their old IM name to their new
#. IM name. */ #. IM name.
#: ../js/ui/components/telepathyClient.js:759 #: ../js/ui/components/telepathyClient.js:759
#, javascript-format #, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
@ -745,13 +769,15 @@ msgstr "Jendela"
msgid "Show Applications" msgid "Show Applications"
msgstr "Tampilkan Aplikasi" msgstr "Tampilkan Aplikasi"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:449 #: ../js/ui/dash.js:449
msgid "Dash" msgid "Dash"
msgstr "Dash" msgstr "Dash"
#. Translators: This is the date format to use when the calendar popup is #. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM"). #. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#. */ #.
#: ../js/ui/dateMenu.js:73 #: ../js/ui/dateMenu.js:73
msgid "%B %e %Y" msgid "%B %e %Y"
msgstr "%e %B %Y" msgstr "%e %B %Y"
@ -759,7 +785,7 @@ msgstr "%e %B %Y"
#. Translators: This is the accessible name of the date button shown #. Translators: This is the accessible name of the date button shown
#. * below the time in the shell; it should combine the weekday and the #. * below the time in the shell; it should combine the weekday and the
#. * date, e.g. "Tuesday February 17 2015". #. * date, e.g. "Tuesday February 17 2015".
#. */ #.
#: ../js/ui/dateMenu.js:80 #: ../js/ui/dateMenu.js:80
msgid "%A %B %e %Y" msgid "%A %B %e %Y"
msgstr "%A %e %B %Y" msgstr "%A %e %B %Y"
@ -884,13 +910,13 @@ msgstr "Beberapa aplikasi sedang sibuk atau belum disimpan perubahannya."
msgid "Other users are logged in." msgid "Other users are logged in."
msgstr "Pengguna lain sedang log masuk." msgstr "Pengguna lain sedang log masuk."
#. Translators: Remote here refers to a remote session, like a ssh login */ #. Translators: Remote here refers to a remote session, like a ssh login
#: ../js/ui/endSessionDialog.js:640 #: ../js/ui/endSessionDialog.js:640
#, javascript-format #, javascript-format
msgid "%s (remote)" msgid "%s (remote)"
msgstr "%s (jarak jauh)" msgstr "%s (jarak jauh)"
#. Translators: Console here refers to a tty like a VT console */ #. Translators: Console here refers to a tty like a VT console
#: ../js/ui/endSessionDialog.js:643 #: ../js/ui/endSessionDialog.js:643
#, javascript-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
@ -909,7 +935,7 @@ msgstr "Unduh dan pasang \"%s\" dari extensions.gnome.org?"
msgid "Keyboard" msgid "Keyboard"
msgstr "Papan Ketik" msgstr "Papan Ketik"
#. translators: 'Hide' is a verb */ #. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66 #: ../js/ui/legacyTray.js:66
msgid "Hide tray" msgid "Hide tray"
msgstr "Sembunyikan baki" msgstr "Sembunyikan baki"
@ -922,7 +948,7 @@ msgstr "Ikon Status"
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Tak ada ekstensi terpasang" msgstr "Tak ada ekstensi terpasang"
#. Translators: argument is an extension UUID. */ #. Translators: argument is an extension UUID.
#: ../js/ui/lookingGlass.js:697 #: ../js/ui/lookingGlass.js:697
#, javascript-format #, javascript-format
msgid "%s has not emitted any errors." msgid "%s has not emitted any errors."
@ -942,7 +968,7 @@ msgstr "Diaktifkan"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled" msgid "Disabled"
msgstr "Dinonaktifkan" msgstr "Dinonaktifkan"
@ -981,26 +1007,36 @@ msgstr "Gambaran"
#. Translators: this is the text displayed #. Translators: this is the text displayed
#. in the search entry when no search is #. in the search entry when no search is
#. active; it should not exceed ~30 #. active; it should not exceed ~30
#. characters. */ #. characters.
#: ../js/ui/overview.js:244 #: ../js/ui/overview.js:244
msgid "Type to search…" msgid "Type to search…"
msgstr "Ketik untuk mencari…" msgstr "Ketik untuk mencari…"
#: ../js/ui/panel.js:352 #: ../js/ui/panel.js:358
msgid "Quit" msgid "Quit"
msgstr "Keluar" msgstr "Keluar"
#. Translators: If there is no suitable word for "Activities" #. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". */ #. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:404 #: ../js/ui/panel.js:414
msgid "Activities" msgid "Activities"
msgstr "Aktivitas" msgstr "Aktivitas"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistem"
#: ../js/ui/panel.js:807
msgid "Top Bar" msgid "Top Bar"
msgstr "Bar Atas" msgstr "Bar Atas"
# Dirgita: Hayo, enaknya pake I/O atau ON/OFF?^^ # Dirgita: Hayo, enaknya pake I/O atau ON/OFF?^^
#. Translators: this MUST be either "toggle-switch-us"
#. (for toggle switches containing the English words
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:289 #: ../js/ui/popupMenu.js:289
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
@ -1018,7 +1054,7 @@ msgid "Restarting…"
msgstr "Memulai ulang..." msgstr "Memulai ulang..."
#. Translators: This is a time format for a date in #. Translators: This is a time format for a date in
#. long format */ #. long format
#: ../js/ui/screenShield.js:85 #: ../js/ui/screenShield.js:85
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d %B" msgstr "%A, %d %B"
@ -1043,6 +1079,13 @@ msgstr "Kunci"
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "GNOME perlu mengunci layar" msgstr "GNOME perlu mengunci layar"
#. We could not become modal, so we can't activate the
#. screenshield. The user is probably very upset at this
#. point, but any application using global grabs is broken
#. Just tell him to stop using this app
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271 #: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271
msgid "Unable to lock" msgid "Unable to lock"
msgstr "Tak bisa mengunci" msgstr "Tak bisa mengunci"
@ -1138,7 +1181,7 @@ msgstr "Matikan"
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Pengaturan Bluetooth" msgstr "Pengaturan Bluetooth"
#. Translators: this is the number of connected bluetooth devices */ #. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:105 #: ../js/ui/status/bluetooth.js:105
#, javascript-format #, javascript-format
msgid "%d Connected" msgid "%d Connected"
@ -1185,13 +1228,13 @@ msgstr "Fungsikan"
msgid "<unknown>" msgid "<unknown>"
msgstr "<tak dikenal>" msgstr "<tak dikenal>"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308 #: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
#, javascript-format #, javascript-format
msgid "%s Off" msgid "%s Off"
msgstr "%s Mati" msgstr "%s Mati"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:454 #: ../js/ui/status/network.js:454
#, javascript-format #, javascript-format
msgid "%s Connected" msgid "%s Connected"
@ -1199,45 +1242,45 @@ msgstr "%s Tersambung"
#. Translators: this is for network devices that are physically present but are not #. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu); #. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier */ #. %s is a network identifier
#: ../js/ui/status/network.js:459 #: ../js/ui/status/network.js:459
#, javascript-format #, javascript-format
msgid "%s Unmanaged" msgid "%s Unmanaged"
msgstr "%s Tak Dikelola" msgstr "%s Tak Dikelola"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:462 #: ../js/ui/status/network.js:462
#, javascript-format #, javascript-format
msgid "%s Disconnecting" msgid "%s Disconnecting"
msgstr "%s Memutus" msgstr "%s Memutus"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300 #: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
#, javascript-format #, javascript-format
msgid "%s Connecting" msgid "%s Connecting"
msgstr "%s Menyambung" msgstr "%s Menyambung"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier */ #. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: ../js/ui/status/network.js:472 #: ../js/ui/status/network.js:472
#, javascript-format #, javascript-format
msgid "%s Requires Authentication" msgid "%s Requires Authentication"
msgstr "%s Memerlukan Otentikasi" msgstr "%s Memerlukan Otentikasi"
#. Translators: this is for devices that require some kind of firmware or kernel #. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier */ #. module, which is missing; %s is a network identifier
#: ../js/ui/status/network.js:480 #: ../js/ui/status/network.js:480
#, javascript-format #, javascript-format
msgid "Firmware Missing For %s" msgid "Firmware Missing For %s"
msgstr "Firmware Hilang Untuk %s" msgstr "Firmware Hilang Untuk %s"
#. Translators: this is for a network device that cannot be activated (for example it #. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier */ #. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: ../js/ui/status/network.js:484 #: ../js/ui/status/network.js:484
#, javascript-format #, javascript-format
msgid "%s Unavailable" msgid "%s Unavailable"
msgstr "%s Tak tersedia" msgstr "%s Tak tersedia"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:487 #: ../js/ui/status/network.js:487
#, javascript-format #, javascript-format
msgid "%s Connection Failed" msgid "%s Connection Failed"
@ -1251,14 +1294,14 @@ msgstr "Pengaturan Kabel"
msgid "Mobile Broadband Settings" msgid "Mobile Broadband Settings"
msgstr "Pengaturan Data Seluler" msgstr "Pengaturan Data Seluler"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305 #: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
#, javascript-format #, javascript-format
msgid "%s Hardware Disabled" msgid "%s Hardware Disabled"
msgstr "%s Perangkat Keras Dinonaktifkan" msgstr "%s Perangkat Keras Dinonaktifkan"
#. Translators: this is for a network device that cannot be activated #. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier */ #. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: ../js/ui/status/network.js:592 #: ../js/ui/status/network.js:592
#, javascript-format #, javascript-format
msgid "%s Disabled" msgid "%s Disabled"
@ -1320,13 +1363,13 @@ msgstr "Pengaturan Wi-Fi"
msgid "Turn On" msgid "Turn On"
msgstr "Nyalakan" msgstr "Nyalakan"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296 #: ../js/ui/status/network.js:1296
#, javascript-format #, javascript-format
msgid "%s Hotspot Active" msgid "%s Hotspot Active"
msgstr "%s Hotspot Aktif" msgstr "%s Hotspot Aktif"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1311 #: ../js/ui/status/network.js:1311
#, javascript-format #, javascript-format
msgid "%s Not Connected" msgid "%s Not Connected"
@ -1336,7 +1379,7 @@ msgstr "%s Tak Tersambung"
msgid "connecting..." msgid "connecting..."
msgstr "menghubungi..." msgstr "menghubungi..."
#. Translators: this is for network connections that require some kind of key or password */ #. Translators: this is for network connections that require some kind of key or password
#: ../js/ui/status/network.js:1414 #: ../js/ui/status/network.js:1414
msgid "authentication required" msgid "authentication required"
msgstr "diperlukan otentikasi" msgstr "diperlukan otentikasi"
@ -1377,20 +1420,27 @@ msgstr "Pengaturan Daya"
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Terisi Penuh" msgstr "Terisi Penuh"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78 #: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
msgid "Estimating…" msgid "Estimating…"
msgstr "Memperkirakan…" msgstr "Memperkirakan…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:86
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "%d:%02d Tersisa (%d%%)" msgstr "%d:%02d Tersisa (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91 #: ../js/ui/status/power.js:91
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "%d:%02d Sampai Penuh (%d%%)" msgstr "%d:%02d Sampai Penuh (%d%%)"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
#. changing the menu contents.
#: ../js/ui/status/rfkill.js:88 #: ../js/ui/status/rfkill.js:88
msgid "Airplane Mode On" msgid "Airplane Mode On"
msgstr "Mode Pesawat Terbang Aktif" msgstr "Mode Pesawat Terbang Aktif"
@ -1458,7 +1508,7 @@ msgstr "Apakah Anda ingin mempertahankan pengaturan tampilan ini?"
#. Translators: this and the following message should be limited in lenght, #. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels. #. to avoid ellipsizing the labels.
#. */ #.
#: ../js/ui/windowManager.js:82 #: ../js/ui/windowManager.js:82
msgid "Revert Settings" msgid "Revert Settings"
msgstr "Balikkan Tatanan" msgstr "Balikkan Tatanan"
@ -1474,7 +1524,7 @@ msgid_plural "Settings changes will revert in %d seconds"
msgstr[0] "Perubahan tatanan akan dikembalikan dalam %d detik" msgstr[0] "Perubahan tatanan akan dikembalikan dalam %d detik"
#. Translators: This represents the size of a window. The first number is #. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height. */ #. * the width of the window and the second is the height.
#: ../js/ui/windowManager.js:658 #: ../js/ui/windowManager.js:658
#, javascript-format #, javascript-format
msgid "%d x %d" msgid "%d x %d"
@ -1550,7 +1600,7 @@ msgstr "Evolution Kalender"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1837 #: ../src/gvc/gvc-mixer-control.c:1835
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1558,38 +1608,38 @@ msgstr[0] "%u Keluaran"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1847 #: ../src/gvc/gvc-mixer-control.c:1845
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
msgstr[0] "%u Masukan" msgstr[0] "%u Masukan"
#: ../src/gvc/gvc-mixer-control.c:2373 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "Suara Sistem" msgstr "Suara Sistem"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Versi Cetak" msgstr "Versi Cetak"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Mode yang dipakai oleh layar log masuk GDM" msgstr "Mode yang dipakai oleh layar log masuk GDM"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Menggunakan mode tertentu, mis. \"gdm\" untuk layar masuk" msgstr "Menggunakan mode tertentu, mis. \"gdm\" untuk layar masuk"
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "Menampilkan mode yang mungkin" msgstr "Menampilkan mode yang mungkin"
#: ../src/shell-app.c:239 #: ../src/shell-app.c:246
msgctxt "program" msgctxt "program"
msgid "Unknown" msgid "Unknown"
msgstr "Tak dikenal" msgstr "Tak dikenal"
#: ../src/shell-app.c:480 #: ../src/shell-app.c:487
#, c-format #, c-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Gagal meluncurkan \"%s\"" msgstr "Gagal meluncurkan \"%s\""

524
po/it.po

File diff suppressed because it is too large Load Diff

489
po/ja.po

File diff suppressed because it is too large Load Diff

508
po/kk.po

File diff suppressed because it is too large Load Diff

501
po/ko.po

File diff suppressed because it is too large Load Diff

577
po/lt.po

File diff suppressed because it is too large Load Diff

377
po/lv.po
View File

@ -5,14 +5,14 @@
# Rudolfs <rudolfs.mazurs@gmail.com>, 2011. # Rudolfs <rudolfs.mazurs@gmail.com>, 2011.
# Rūdofls Mazurs <rudolfs.mazurs@gmail.com>, 2011, 2012, 2013, 2014. # Rūdofls Mazurs <rudolfs.mazurs@gmail.com>, 2011, 2012, 2013, 2014.
# Pēteris Krišjānis <pecisk@gmail.com>, 2011. # Pēteris Krišjānis <pecisk@gmail.com>, 2011.
# Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>, 2014, 2015. # Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>, 2014, 2015, 2016.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2015-09-20 08:21+0000\n" "POT-Creation-Date: 2016-03-20 10:24+0000\n"
"PO-Revision-Date: 2015-09-20 22:00+0300\n" "PO-Revision-Date: 2016-03-20 21:26+0200\n"
"Last-Translator: Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>\n" "Last-Translator: Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>\n"
"Language-Team: Latvian <lata-l10n@googlegroups.com>\n" "Language-Team: Latvian <lata-l10n@googlegroups.com>\n"
"Language: lv\n" "Language: lv\n"
@ -21,7 +21,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
"2);\n" "2);\n"
"X-Generator: Lokalize 1.5\n" "X-Generator: Lokalize 2.0\n"
#: ../data/50-gnome-shell-system.xml.in.h:1 #: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System" msgid "System"
@ -47,15 +47,6 @@ msgstr "Rādīt visas lietotnes"
msgid "Open the application menu" msgid "Open the application menu"
msgstr "Atvērt lietotnes izvēlni" msgstr "Atvērt lietotnes izvēlni"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "GNOME čaula"
#: ../data/gnome-shell.desktop.in.in.h:2
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Logu pārvaldība un lietotņu palaišana"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "GNOME Shell paplašinājumu iestatījumi" msgstr "GNOME Shell paplašinājumu iestatījumi"
@ -64,9 +55,13 @@ msgstr "GNOME Shell paplašinājumu iestatījumi"
msgid "Configure GNOME Shell Extensions" msgid "Configure GNOME Shell Extensions"
msgstr "Konfigurēt GNOME Shell paplašinājumus" msgstr "Konfigurēt GNOME Shell paplašinājumus"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1 #: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)" msgid "GNOME Shell"
msgstr "GNOME čaula (wayland kompozitors)" msgstr "GNOME čaula"
#: ../data/org.gnome.Shell.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Logu pārvaldība un lietotņu palaišana"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1 #: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2" msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -171,75 +166,93 @@ msgstr ""
"noklusējuma stāvokli." "noklusējuma stāvokli."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18 #: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
"Vai noklusējuma Bluetooth adapteram ir iestatītas ar to asociētas ierīces"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
"powered, or if there were devices set up associated with the default "
"adapter. This will be reset if the default adapter is ever seen not to have "
"devices associated to it."
msgstr ""
"Čaula rādīs Bluetooth izvēlnes vienumu tikai tad, ja Bluetooth adapters ir "
"ieslēgts vai ja ir iestatītas ierīces, kas i saistītas ar noklusējuma "
"adapteri. Tas tiks atstatīts, ja noklusējuma adapters jebkad tiks redzēts "
"bez ar to saistītām ierīcēm."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar" msgid "Show the week date in the calendar"
msgstr "Kalendārā rādīt nedēļas datumu" msgstr "Kalendārā rādīt nedēļas datumu"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19 #: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "If true, display the ISO week date in the calendar." msgid "If true, display the ISO week date in the calendar."
msgstr "Ja patiess, kalendārā rādīt ISO nedēļas datumus." msgstr "Ja patiess, kalendārā rādīt ISO nedēļas datumus."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20 #: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the application menu" msgid "Keybinding to open the application menu"
msgstr "Taustiņu sasaiste, kas atver lietotnes izvēlni" msgstr "Taustiņu sasaiste, kas atver lietotnes izvēlni"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
msgid "Keybinding to open the application menu." msgid "Keybinding to open the application menu."
msgstr "Taustiņu sasaiste, kas atver lietotnes izvēlni." msgstr "Taustiņu sasaiste, kas atver lietotnes izvēlni."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the \"Show Applications\" view" msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Taustiņu sasaiste, kas atver “Rādīt lietotnes” skatu" msgstr "Taustiņu sasaiste, kas atver “Rādīt lietotnes” skatu"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "" msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview." "Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr "" msgstr ""
"Taustiņu sasaiste, kas atver “Rādīt lietotnes” aktivitāšu pārskata skatu." "Taustiņu sasaiste, kas atver “Rādīt lietotnes” aktivitāšu pārskata skatu."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "Taustiņu sasaiste, kas atver pārskatu" msgstr "Taustiņu sasaiste, kas atver pārskatu"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25 #: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "Taustiņu sasaiste, kas atver aktivitāšu pārskatu." msgstr "Taustiņu sasaiste, kas atver aktivitāšu pārskatu."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to toggle the visibility of the notification list" msgid "Keybinding to toggle the visibility of the notification list"
msgstr "Taustiņu sasaiste, kas pārslēdz paziņojumu saraksta redzamību" msgstr "Taustiņu sasaiste, kas pārslēdz paziņojumu saraksta redzamību"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27 #: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to toggle the visibility of the notification list." msgid "Keybinding to toggle the visibility of the notification list."
msgstr "Taustiņu sasaiste, kas pārslēdz paziņojumu saraksta redzamību." msgstr "Taustiņu sasaiste, kas pārslēdz paziņojumu saraksta redzamību."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "Taustiņu sasaiste, kas fokusē aktīvo paziņojumu" msgstr "Taustiņu sasaiste, kas fokusē aktīvo paziņojumu"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29 #: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "Taustiņu sasaiste, kas fokusē aktīvo paziņojumu." msgstr "Taustiņu sasaiste, kas fokusē aktīvo paziņojumu."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "" msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes" "Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr "" msgstr ""
"Taustiņu sasaiste, kas pauzē un turpina visus tvīnus (tweens) atkļūdošanas " "Taustiņu sasaiste, kas pauzē un turpina visus tvīnus (tweens) atkļūdošanas "
"nolūkiem" "nolūkiem"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31 #: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Which keyboard to use" msgid "Which keyboard to use"
msgstr "Kuru tastatūru izmantot" msgstr "Kuru tastatūru izmantot"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32 #: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid "The type of keyboard to use." msgid "The type of keyboard to use."
msgstr "Izmantojamās tastatūras tips." msgstr "Izmantojamās tastatūras tips."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33 #: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "Ierobežot pārslēdzēju uz pašreizējo darbvietu." msgstr "Ierobežot pārslēdzēju uz pašreizējo darbvietu."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34 #: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid "" msgid ""
"If true, only applications that have windows on the current workspace are " "If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included." "shown in the switcher. Otherwise, all applications are included."
@ -247,11 +260,11 @@ msgstr ""
"Ja patiess, pārslēdzējā tiek rādītas tikai lietotnes, kas ir pašreizējā " "Ja patiess, pārslēdzējā tiek rādītas tikai lietotnes, kas ir pašreizējā "
"darbvietā. Citāti tiek iekļautas visas lietotnes." "darbvietā. Citāti tiek iekļautas visas lietotnes."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35 #: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "The application icon mode." msgid "The application icon mode."
msgstr "Lietotnes ikonas režīms." msgstr "Lietotnes ikonas režīms."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36 #: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "" msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities " "Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-" "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
@ -261,7 +274,7 @@ msgstr ""
"only” (rāda loga sīktēlu), “app-icon-only” (rāda tikai lietotnes ikonu) vai " "only” (rāda loga sīktēlu), “app-icon-only” (rāda tikai lietotnes ikonu) vai "
"“both” (abi)." "“both” (abi)."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid "" msgid ""
"If true, only windows from the current workspace are shown in the switcher. " "If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included." "Otherwise, all windows are included."
@ -269,28 +282,28 @@ msgstr ""
"Ja patiess, pārslēdzējā tiek rādītas tikai lietotnes no pašreizējās " "Ja patiess, pārslēdzējā tiek rādītas tikai lietotnes no pašreizējās "
"darbvietas. Citāti tiek iekļautas visas lietotnes." "darbvietas. Citāti tiek iekļautas visas lietotnes."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
msgstr "Pievienot modālo dialoglodziņu vecāka logam" msgstr "Pievienot modālo dialoglodziņu vecāka logam"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39 #: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid "" msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "Šī atslēga pārraksta org.gnome.mutter atslēgu, darbinot GNOME čaulu." msgstr "Šī atslēga pārraksta org.gnome.mutter atslēgu, darbinot GNOME čaulu."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40 #: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Aktivēt logu sānisko izklāšanu, kad to nomet uz ekrāna malas" msgstr "Aktivēt logu sānisko izklāšanu, kad to nomet uz ekrāna malas"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41 #: ../data/org.gnome.shell.gschema.xml.in.in.h:43
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Darbvietas tiek pārvaldītas dinamiski" msgstr "Darbvietas tiek pārvaldītas dinamiski"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42 #: ../data/org.gnome.shell.gschema.xml.in.in.h:44
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Darbvietas tikai uz galvenā monitora" msgstr "Darbvietas tikai uz galvenā monitora"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43 #: ../data/org.gnome.shell.gschema.xml.in.in.h:45
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Peles režīmā aizkavēt fokusa izmaiņas, līdz rādītājs pārstāj kustēties" msgstr "Peles režīmā aizkavēt fokusa izmaiņas, līdz rādītājs pārstāj kustēties"
@ -298,51 +311,52 @@ msgstr "Peles režīmā aizkavēt fokusa izmaiņas, līdz rādītājs pārstāj
msgid "Network Login" msgid "Network Login"
msgstr "Tīkla ierakstīšanās" msgstr "Tīkla ierakstīšanās"
#: ../js/extensionPrefs/main.js:122 #: ../js/extensionPrefs/main.js:117
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "Ielādējot %s iestatījumu dialogu, gadījās kļūda:" msgstr "Ielādējot %s iestatījumu dialogu, gadījās kļūda:"
#: ../js/extensionPrefs/main.js:154 #: ../js/extensionPrefs/main.js:149
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "GNOME čaulas paplašinājumi" msgstr "GNOME čaulas paplašinājumi"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145 #: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452 #: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916 #: ../js/ui/status/network.js:916
msgid "Cancel" msgid "Cancel"
msgstr "Atcelt" msgstr "Atcelt"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215 #: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:447 #: ../js/gdm/authPrompt.js:448
msgid "Next" msgid "Next"
msgstr "Nākamais" msgstr "Nākamais"
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403 #: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59 #: ../js/ui/unlockDialog.js:59
msgid "Unlock" msgid "Unlock"
msgstr "Atbloķēt" msgstr "Atbloķēt"
#: ../js/gdm/authPrompt.js:213 #: ../js/gdm/authPrompt.js:214
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Ierakstīties" msgstr "Ierakstīties"
#: ../js/gdm/loginDialog.js:281 #: ../js/gdm/loginDialog.js:285
msgid "Choose Session" msgid "Choose Session"
msgstr "Izvēlieties sesiju" msgstr "Izvēlieties sesiju"
#. translators: this message is shown below the user list on the #. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for #. login screen. It can be activated to reveal an entry for
#. manually entering the username. #. manually entering the username.
#: ../js/gdm/loginDialog.js:431 #: ../js/gdm/loginDialog.js:435
msgid "Not listed?" msgid "Not listed?"
msgstr "Nav sarakstā?" msgstr "Nav sarakstā?"
#. Translators: this message is shown below the username entry field #. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm #. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:850 #: ../js/gdm/loginDialog.js:854
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(piemēram, lietotājs vai %s)" msgstr "(piemēram, lietotājs vai %s)"
@ -350,12 +364,12 @@ msgstr "(piemēram, lietotājs vai %s)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271 #: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289 #: ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
msgstr "Lietotājvārds: " msgstr "Lietotājvārds: "
#: ../js/gdm/loginDialog.js:1184 #: ../js/gdm/loginDialog.js:1196
msgid "Login Window" msgid "Login Window"
msgstr "Ierakstīšanās logs" msgstr "Ierakstīšanās logs"
@ -491,32 +505,50 @@ msgstr "Pievienot izlasei"
msgid "Show Details" msgid "Show Details"
msgstr "Rādīt sīkāku informāciju" msgstr "Rādīt sīkāku informāciju"
#: ../js/ui/appFavorites.js:132 #: ../js/ui/appFavorites.js:134
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "%s ir pievienots izlasei." msgstr "%s ir pievienots izlasei."
#: ../js/ui/appFavorites.js:166 #: ../js/ui/appFavorites.js:168
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s ir izņemts no izlases." msgstr "%s ir izņemts no izlases."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Izvēlieties audio ierīci"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "Skaņas Iestatījumi"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Austiņas"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Austiņas ar mikrofonu"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofons"
#: ../js/ui/backgroundMenu.js:19 #: ../js/ui/backgroundMenu.js:19
msgid "Change Background…" msgid "Change Background…"
msgstr "Mainīt fonu…" msgstr "Mainīt fonu…"
#: ../js/ui/backgroundMenu.js:21 #: ../js/ui/backgroundMenu.js:21
#| msgid "Privacy Settings"
msgid "Display Settings" msgid "Display Settings"
msgstr "Displeja iestatījumi" msgstr "Displeja iestatījumi"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "Iestatījumi" msgstr "Iestatījumi"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). #. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:55 #: ../js/ui/calendar.js:47
msgctxt "calendar-no-work" msgctxt "calendar-no-work"
msgid "06" msgid "06"
msgstr "06" msgstr "06"
@ -526,94 +558,96 @@ msgstr "06"
#. * NOTE: These grid abbreviations are always shown together #. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S". #. * and in order, e.g. "S M T W T F S".
#. #.
#: ../js/ui/calendar.js:84 #: ../js/ui/calendar.js:76
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "Sv" msgstr "Sv"
#. Translators: Calendar grid abbreviation for Monday #. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:86 #: ../js/ui/calendar.js:78
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "Pr" msgstr "Pr"
#. Translators: Calendar grid abbreviation for Tuesday #. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:88 #: ../js/ui/calendar.js:80
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "Ot" msgstr "Ot"
#. Translators: Calendar grid abbreviation for Wednesday #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:90 #: ../js/ui/calendar.js:82
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "Tr" msgstr "Tr"
#. Translators: Calendar grid abbreviation for Thursday #. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:92 #: ../js/ui/calendar.js:84
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "Ce" msgstr "Ce"
#. Translators: Calendar grid abbreviation for Friday #. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:94 #: ../js/ui/calendar.js:86
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "Pk" msgstr "Pk"
#. Translators: Calendar grid abbreviation for Saturday #. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:96 #: ../js/ui/calendar.js:88
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
msgstr "Se" msgstr "Se"
#: ../js/ui/calendar.js:566 #: ../js/ui/calendar.js:416
msgid "Previous month" msgid "Previous month"
msgstr "Iepriekšējais mēnesis" msgstr "Iepriekšējais mēnesis"
#: ../js/ui/calendar.js:576 #: ../js/ui/calendar.js:426
msgid "Next month" msgid "Next month"
msgstr "Nākamais mēnesis" msgstr "Nākamais mēnesis"
#: ../js/ui/calendar.js:783 #: ../js/ui/calendar.js:579
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:634
msgid "Week %V" msgid "Week %V"
msgstr "Nedēļa %V" msgstr "Nedēļa %V"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. #.
#: ../js/ui/calendar.js:1188 #: ../js/ui/calendar.js:695
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Visu dienu" msgstr "Visu dienu"
#: ../js/ui/calendar.js:1291 #: ../js/ui/calendar.js:821
msgid "Clear section"
msgstr "Attīrīt sadaļu"
#: ../js/ui/calendar.js:1518
msgid "Events" msgid "Events"
msgstr "Notikumi" msgstr "Notikumi"
#: ../js/ui/calendar.js:1527 #: ../js/ui/calendar.js:830
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d. %B" msgstr "%A, %d. %B"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:834
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A, %d. %B, %Y." msgstr "%A, %d. %B, %Y."
#: ../js/ui/calendar.js:1616 #: ../js/ui/calendar.js:919
msgid "Notifications" msgid "Notifications"
msgstr "Paziņojumi" msgstr "Paziņojumi"
#: ../js/ui/calendar.js:1767 #: ../js/ui/calendar.js:1070
msgid "No Notifications" msgid "No Notifications"
msgstr "Nav paziņojumu" msgstr "Nav paziņojumu"
#: ../js/ui/calendar.js:1770 #: ../js/ui/calendar.js:1073
msgid "No Events" msgid "No Events"
msgstr "Nav notikumu" msgstr "Nav notikumu"
@ -625,7 +659,7 @@ msgstr "Pievienots ārējs dzinis"
msgid "External drive disconnected" msgid "External drive disconnected"
msgstr "Atvienots ārējs dzinis" msgstr "Atvienots ārējs dzinis"
#: ../js/ui/components/autorunManager.js:354 #: ../js/ui/components/autorunManager.js:355
#, javascript-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
msgstr "Atvērt ar %s" msgstr "Atvērt ar %s"
@ -751,7 +785,7 @@ msgstr "Diemžēl tas nenostrādāja. Lūdzu, mēģiniet vēlreiz."
#. Translators: this is the other person changing their old IM name to their new #. Translators: this is the other person changing their old IM name to their new
#. IM name. #. IM name.
#: ../js/ui/components/telepathyClient.js:759 #: ../js/ui/components/telepathyClient.js:760
#, javascript-format #, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "%s tagad saucas %s" msgstr "%s tagad saucas %s"
@ -946,11 +980,11 @@ msgid "Keyboard"
msgstr "Tastatūra" msgstr "Tastatūra"
#. translators: 'Hide' is a verb #. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66 #: ../js/ui/legacyTray.js:65
msgid "Hide tray" msgid "Hide tray"
msgstr "Slēpt paplāti" msgstr "Slēpt paplāti"
#: ../js/ui/legacyTray.js:107 #: ../js/ui/legacyTray.js:106
msgid "Status Icons" msgid "Status Icons"
msgstr "Statusa ikonas" msgstr "Statusa ikonas"
@ -978,7 +1012,7 @@ msgstr "Aktivēta"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled" msgid "Disabled"
msgstr "Deaktivēta" msgstr "Deaktivēta"
@ -1002,10 +1036,26 @@ msgstr "Skatīt avotu"
msgid "Web Page" msgid "Web Page"
msgstr "Tīmekļa lapa" msgstr "Tīmekļa lapa"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Attīrīt sadaļu"
#: ../js/ui/messageTray.js:1486 #: ../js/ui/messageTray.js:1486
msgid "System Information" msgid "System Information"
msgstr "Sistēmas informācija" msgstr "Sistēmas informācija"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Nezināms izpildītājs"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "Nezināms nosaukums"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Datu nesējs"
#: ../js/ui/overview.js:84 #: ../js/ui/overview.js:84
msgid "Undo" msgid "Undo"
msgstr "Atsaukt" msgstr "Atsaukt"
@ -1022,17 +1072,22 @@ msgstr "Pārskats"
msgid "Type to search…" msgid "Type to search…"
msgstr "Rakstiet, lai meklētu…" msgstr "Rakstiet, lai meklētu…"
#: ../js/ui/panel.js:352 #: ../js/ui/panel.js:358
msgid "Quit" msgid "Quit"
msgstr "Iziet" msgstr "Iziet"
#. Translators: If there is no suitable word for "Activities" #. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". #. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:404 #: ../js/ui/panel.js:414
msgid "Activities" msgid "Activities"
msgstr "Aktivitātes" msgstr "Aktivitātes"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistēma"
#: ../js/ui/panel.js:807
msgid "Top Bar" msgid "Top Bar"
msgstr "Augšējā josla" msgstr "Augšējā josla"
@ -1045,15 +1100,15 @@ msgstr "Augšējā josla"
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:70 #: ../js/ui/runDialog.js:71
msgid "Enter a Command" msgid "Enter a Command"
msgstr "Ievadiet komandu" msgstr "Ievadiet komandu"
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162 #: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
msgid "Close" msgid "Close"
msgstr "Aizvērt" msgstr "Aizvērt"
#: ../js/ui/runDialog.js:281 #: ../js/ui/runDialog.js:282
msgid "Restarting…" msgid "Restarting…"
msgstr "Pārstartē…" msgstr "Pārstartē…"
@ -1178,32 +1233,42 @@ msgstr "Augsts kontrasts"
msgid "Large Text" msgid "Large Text"
msgstr "Liels teksts" msgstr "Liels teksts"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178 #: ../js/ui/status/bluetooth.js:47
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279 msgid "Bluetooth"
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90 msgstr "Bluetooth"
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Izslēgt"
#: ../js/ui/status/bluetooth.js:54 #: ../js/ui/status/bluetooth.js:56
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Bluetooth iestatījumi" msgstr "Bluetooth iestatījumi"
#. Translators: this is the number of connected bluetooth devices #. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:105 #: ../js/ui/status/bluetooth.js:136
#, javascript-format #, javascript-format
#| msgid "Connected"
msgid "%d Connected" msgid "%d Connected"
msgid_plural "%d Connected" msgid_plural "%d Connected"
msgstr[0] "%d savienots" msgstr[0] "%d savienots"
msgstr[1] "%d savienoti" msgstr[1] "%d savienoti"
msgstr[2] "%d savienotu" msgstr[2] "%d savienotu"
#: ../js/ui/status/bluetooth.js:107 #: ../js/ui/status/bluetooth.js:138
#| msgid "In Use" msgid "Off"
msgstr "Izslēgts"
#: ../js/ui/status/bluetooth.js:140
msgid "Not In Use" msgid "Not In Use"
msgstr "Netiek izmantots" msgstr "Netiek izmantots"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Ieslēgt"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Izslēgt"
#: ../js/ui/status/brightness.js:44 #: ../js/ui/status/brightness.js:44
msgid "Brightness" msgid "Brightness"
msgstr "Gaišums" msgstr "Gaišums"
@ -1212,33 +1277,49 @@ msgstr "Gaišums"
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Rādīt tastatūras izkārtojumu" msgstr "Rādīt tastatūras izkārtojumu"
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177 #: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
#| msgid "Location"
msgid "Location Enabled" msgid "Location Enabled"
msgstr "Atrašanās vieta ieslēgta" msgstr "Atrašanās vieta ieslēgta"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178 #: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
msgid "Disable" msgid "Disable"
msgstr "Izslēgt" msgstr "Izslēgt"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:109
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "Privātuma iestatījumi" msgstr "Privātuma iestatījumi"
#: ../js/ui/status/location.js:176 #: ../js/ui/status/location.js:214
#| msgid "Location"
msgid "Location In Use" msgid "Location In Use"
msgstr "Atrašanās vieta tiek izmantota" msgstr "Atrašanās vieta tiek izmantota"
#: ../js/ui/status/location.js:180 #: ../js/ui/status/location.js:218
#| msgid "Connection failed"
msgid "Location Disabled" msgid "Location Disabled"
msgstr "Atrašanās vieta ir izslēgta" msgstr "Atrašanās vieta ir izslēgta"
#: ../js/ui/status/location.js:181 #: ../js/ui/status/location.js:219
msgid "Enable" msgid "Enable"
msgstr "Ieslēgt" msgstr "Ieslēgt"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Liegt pieeju"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Piešķirt pieeju"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Dot %s pieeju jūsu atrašanās vietai?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"Pieeju atrašanās vietai var mainīt jebkurā brīdī privātuma iestatījumos."
#: ../js/ui/status/network.js:101 #: ../js/ui/status/network.js:101
msgid "<unknown>" msgid "<unknown>"
msgstr "<nezināms>" msgstr "<nezināms>"
@ -1252,7 +1333,6 @@ msgstr "%s ir izslēgta"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:454 #: ../js/ui/status/network.js:454
#, javascript-format #, javascript-format
#| msgid "Connected"
msgid "%s Connected" msgid "%s Connected"
msgstr "%s ir savienots" msgstr "%s ir savienots"
@ -1261,28 +1341,24 @@ msgstr "%s ir savienots"
#. %s is a network identifier #. %s is a network identifier
#: ../js/ui/status/network.js:459 #: ../js/ui/status/network.js:459
#, javascript-format #, javascript-format
#| msgid "Unmanaged"
msgid "%s Unmanaged" msgid "%s Unmanaged"
msgstr "%s nav pārvaldīts" msgstr "%s nav pārvaldīts"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:462 #: ../js/ui/status/network.js:462
#, javascript-format #, javascript-format
#| msgid "Disconnecting"
msgid "%s Disconnecting" msgid "%s Disconnecting"
msgstr "%s atvienojas" msgstr "%s atvienojas"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300 #: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
#, javascript-format #, javascript-format
#| msgid "Connecting"
msgid "%s Connecting" msgid "%s Connecting"
msgstr "%s savienojas" msgstr "%s savienojas"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier #. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: ../js/ui/status/network.js:472 #: ../js/ui/status/network.js:472
#, javascript-format #, javascript-format
#| msgid "Wired 802.1X authentication"
msgid "%s Requires Authentication" msgid "%s Requires Authentication"
msgstr "%s pieprasa autentificēšanos" msgstr "%s pieprasa autentificēšanos"
@ -1290,7 +1366,6 @@ msgstr "%s pieprasa autentificēšanos"
#. module, which is missing; %s is a network identifier #. module, which is missing; %s is a network identifier
#: ../js/ui/status/network.js:480 #: ../js/ui/status/network.js:480
#, javascript-format #, javascript-format
#| msgid "Firmware missing"
msgid "Firmware Missing For %s" msgid "Firmware Missing For %s"
msgstr "%s trūkst aparātprogrammatūras" msgstr "%s trūkst aparātprogrammatūras"
@ -1298,14 +1373,12 @@ msgstr "%s trūkst aparātprogrammatūras"
#. is disabled by rfkill, or it has no coverage; %s is a network identifier #. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: ../js/ui/status/network.js:484 #: ../js/ui/status/network.js:484
#, javascript-format #, javascript-format
#| msgid "Unavailable"
msgid "%s Unavailable" msgid "%s Unavailable"
msgstr "%s nav pieejams" msgstr "%s nav pieejams"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:487 #: ../js/ui/status/network.js:487
#, javascript-format #, javascript-format
#| msgid "Connection failed"
msgid "%s Connection Failed" msgid "%s Connection Failed"
msgstr "%s neizdevās savienoties" msgstr "%s neizdevās savienoties"
@ -1320,7 +1393,6 @@ msgstr "Mobilās platjoslas iestatījumi"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305 #: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
#, javascript-format #, javascript-format
#| msgid "Hardware Disabled"
msgid "%s Hardware Disabled" msgid "%s Hardware Disabled"
msgstr "%s ir izslēgts aparatūrā" msgstr "%s ir izslēgts aparatūrā"
@ -1328,7 +1400,6 @@ msgstr "%s ir izslēgts aparatūrā"
#. because it's disabled by rfkill (airplane mode); %s is a network identifier #. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: ../js/ui/status/network.js:592 #: ../js/ui/status/network.js:592
#, javascript-format #, javascript-format
#| msgid "Disabled"
msgid "%s Disabled" msgid "%s Disabled"
msgstr "%s ir izslēgts" msgstr "%s ir izslēgts"
@ -1384,21 +1455,15 @@ msgstr "Izvēlieties tīklu"
msgid "Wi-Fi Settings" msgid "Wi-Fi Settings"
msgstr "Wi-Fi iestatījumi" msgstr "Wi-Fi iestatījumi"
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Ieslēgt"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296 #: ../js/ui/status/network.js:1296
#, javascript-format #, javascript-format
#| msgid "Hotspot Active"
msgid "%s Hotspot Active" msgid "%s Hotspot Active"
msgstr "%s tīklājs ir aktīvs" msgstr "%s tīklājs ir aktīvs"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1311 #: ../js/ui/status/network.js:1311
#, javascript-format #, javascript-format
#| msgid "Not Connected"
msgid "%s Not Connected" msgid "%s Not Connected"
msgstr "%s nav savienots" msgstr "%s nav savienots"
@ -1428,7 +1493,6 @@ msgid "VPN"
msgstr "VPN" msgstr "VPN"
#: ../js/ui/status/network.js:1513 #: ../js/ui/status/network.js:1513
#| msgid "Power Off"
msgid "VPN Off" msgid "VPN Off"
msgstr "VPN ir izslēgts" msgstr "VPN ir izslēgts"
@ -1440,37 +1504,41 @@ msgstr "Neizdevās savienoties"
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Neizdevās tīkla savienojuma aktivēšana" msgstr "Neizdevās tīkla savienojuma aktivēšana"
#: ../js/ui/status/power.js:49 #: ../js/ui/status/power.js:61
msgid "Power Settings" msgid "Power Settings"
msgstr "Barošanas iestatījumi" msgstr "Barošanas iestatījumi"
#: ../js/ui/status/power.js:65 #: ../js/ui/status/power.js:77
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Pilnībā uzlādēta" msgstr "Pilnībā uzlādēta"
#. 0 is reported when UPower does not have enough data #. 0 is reported when UPower does not have enough data
#. to estimate battery life #. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78 #: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
msgid "Estimating…" msgid "Estimating…"
msgstr "Novērtē…" msgstr "Novērtē…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>) #. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:98
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "Atlicis %d.%02d (%d%%)" msgstr "Atlicis %d.%02d (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>) #. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91 #: ../js/ui/status/power.js:103
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "Līdz pilnai %d.%02d (%d%%)" msgstr "Līdz pilnai %d.%02d (%d%%)"
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
#, javascript-format
msgid "%d%%"
msgstr "%d%%"
#. The menu only appears when airplane mode is on, so just #. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically #. statically build it as if it was on, rather than dynamically
#. changing the menu contents. #. changing the menu contents.
#: ../js/ui/status/rfkill.js:88 #: ../js/ui/status/rfkill.js:88
#| msgid "Airplane Mode is On"
msgid "Airplane Mode On" msgid "Airplane Mode On"
msgstr "Lidmašīnas režīms ir ieslēgts" msgstr "Lidmašīnas režīms ir ieslēgts"
@ -1483,7 +1551,6 @@ msgid "Log Out"
msgstr "Izrakstīties" msgstr "Izrakstīties"
#: ../js/ui/status/system.js:353 #: ../js/ui/status/system.js:353
#| msgid "Power Settings"
msgid "Account Settings" msgid "Account Settings"
msgstr "Konta iestatījumi" msgstr "Konta iestatījumi"
@ -1507,10 +1574,6 @@ msgstr "Skaļums ir mainīts"
msgid "Volume" msgid "Volume"
msgstr "Skaļums" msgstr "Skaļums"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofons"
#: ../js/ui/unlockDialog.js:67 #: ../js/ui/unlockDialog.js:67
msgid "Log in as another user" msgid "Log in as another user"
msgstr "Ierakstīties kā citam lietotājam" msgstr "Ierakstīties kā citam lietotājam"
@ -1595,12 +1658,10 @@ msgid "Always on Visible Workspace"
msgstr "Vienmēr redzamajā darbvietā" msgstr "Vienmēr redzamajā darbvietā"
#: ../js/ui/windowMenu.js:105 #: ../js/ui/windowMenu.js:105
#| msgid "Move to Workspace Up"
msgid "Move to Workspace Left" msgid "Move to Workspace Left"
msgstr "Pārvietot uz darbvietu pa kreisi" msgstr "Pārvietot uz darbvietu pa kreisi"
#: ../js/ui/windowMenu.js:110 #: ../js/ui/windowMenu.js:110
#| msgid "Move to Workspace Up"
msgid "Move to Workspace Right" msgid "Move to Workspace Right"
msgstr "Pārvietot uz darbvietu pa labi" msgstr "Pārvietot uz darbvietu pa labi"
@ -1613,12 +1674,10 @@ msgid "Move to Workspace Down"
msgstr "Pārvietot uz zemāku darbvietu" msgstr "Pārvietot uz zemāku darbvietu"
#: ../js/ui/windowMenu.js:136 #: ../js/ui/windowMenu.js:136
#| msgid "Move to Workspace Up"
msgid "Move to Monitor Up" msgid "Move to Monitor Up"
msgstr "Pārvietot uz augstāku monitoru" msgstr "Pārvietot uz augstāku monitoru"
#: ../js/ui/windowMenu.js:142 #: ../js/ui/windowMenu.js:142
#| msgid "Move to Workspace Down"
msgid "Move to Monitor Down" msgid "Move to Monitor Down"
msgstr "Pārvietot uz zemāku monitoru" msgstr "Pārvietot uz zemāku monitoru"
@ -1636,7 +1695,7 @@ msgstr "Evolution kalendārs"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1837 #: ../src/gvc/gvc-mixer-control.c:1835
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1646,7 +1705,7 @@ msgstr[2] "%u izvadkanāli"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1847 #: ../src/gvc/gvc-mixer-control.c:1845
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
@ -1654,44 +1713,44 @@ msgstr[0] "%u ievadkanāls"
msgstr[1] "%u ievadkanāli" msgstr[1] "%u ievadkanāli"
msgstr[2] "%u ievadkanāli" msgstr[2] "%u ievadkanāli"
#: ../src/gvc/gvc-mixer-control.c:2373 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "Sistēmas skaņas" msgstr "Sistēmas skaņas"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Drukāt versiju" msgstr "Drukāt versiju"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Režīms, ko izmantot GDM pieteikšanās ekrānam" msgstr "Režīms, ko izmantot GDM pieteikšanās ekrānam"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Izmantot specifisku metodi, piemēram, “gdm” ierakstīšanās ekrānam" msgstr "Izmantot specifisku metodi, piemēram, “gdm” ierakstīšanās ekrānam"
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "Uzskaitīt iespējamās metodes" msgstr "Uzskaitīt iespējamās metodes"
#: ../src/shell-app.c:239 #: ../src/shell-app.c:246
msgctxt "program" msgctxt "program"
msgid "Unknown" msgid "Unknown"
msgstr "Nezināma" msgstr "Nezināma"
#: ../src/shell-app.c:480 #: ../src/shell-app.c:487
#, c-format #, c-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Neizdevās palaist “%s”" msgstr "Neizdevās palaist “%s”"
#: ../src/shell-keyring-prompt.c:742 #: ../src/shell-keyring-prompt.c:730
msgid "Passwords do not match." msgid "Passwords do not match."
msgstr "Paroles nesakrīt." msgstr "Paroles nesakrīt."
#: ../src/shell-keyring-prompt.c:750 #: ../src/shell-keyring-prompt.c:738
msgid "Password cannot be blank" msgid "Password cannot be blank"
msgstr "Parole nevar būt tukša" msgstr "Parole nevar būt tukša"
#: ../src/shell-polkit-authentication-agent.c:346 #: ../src/shell-polkit-authentication-agent.c:353
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "Lietotājs noraidīja autentifikācijas dialoglodziņu" msgstr "Lietotājs noraidīja autentifikācijas dialoglodziņu"

239
po/nb.po
View File

@ -7,10 +7,10 @@
# Torstein Adolf Winterseth <kvikende@fsfe.org>, 2010. # Torstein Adolf Winterseth <kvikende@fsfe.org>, 2010.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell 3.17.x\n" "Project-Id-Version: gnome-shell 3.19.x\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-07 19:22+0200\n" "POT-Creation-Date: 2016-01-07 22:59+0100\n"
"PO-Revision-Date: 2015-09-07 19:31+0200\n" "PO-Revision-Date: 2016-01-07 22:59+0100\n"
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n" "Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
"Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n" "Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n"
"Language: Norwegian bokmål\n" "Language: Norwegian bokmål\n"
@ -44,15 +44,6 @@ msgstr "Vis alle programmer"
msgid "Open the application menu" msgid "Open the application menu"
msgstr "Åpne programmenyen" msgstr "Åpne programmenyen"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "GNOME Shell"
#: ../data/gnome-shell.desktop.in.in.h:2
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Vindushåndtering og oppstart av programmer"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "Brukervalg for GNOME Shell-utvidelser" msgstr "Brukervalg for GNOME Shell-utvidelser"
@ -61,9 +52,13 @@ msgstr "Brukervalg for GNOME Shell-utvidelser"
msgid "Configure GNOME Shell Extensions" msgid "Configure GNOME Shell Extensions"
msgstr "Sett opp utvidelser for GNOME Shell" msgstr "Sett opp utvidelser for GNOME Shell"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1 #: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)" msgid "GNOME Shell"
msgstr "GNOME Shell (Wayland-kompositør)" msgstr "GNOME Shell"
#: ../data/org.gnome.Shell.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Vindushåndtering og oppstart av programmer"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1 #: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2" msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -166,75 +161,88 @@ msgstr ""
"standardverdien for avkryssingsboksen." "standardverdien for avkryssingsboksen."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18 #: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
"powered, or if there were devices set up associated with the default "
"adapter. This will be reset if the default adapter is ever seen not to have "
"devices associated to it."
msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar" msgid "Show the week date in the calendar"
msgstr "Vis ukedato/ukenummer i kalender" msgstr "Vis ukedato/ukenummer i kalender"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19 #: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "If true, display the ISO week date in the calendar." msgid "If true, display the ISO week date in the calendar."
msgstr "Viser ISO-ukedato i kalenderen hvis «true»." msgstr "Viser ISO-ukedato i kalenderen hvis «true»."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20 #: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the application menu" msgid "Keybinding to open the application menu"
msgstr "Tastaturbinding som åpner programmenyen" msgstr "Tastaturbinding som åpner programmenyen"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
msgid "Keybinding to open the application menu." msgid "Keybinding to open the application menu."
msgstr "Tastaturbinding som åpner programmenyen." msgstr "Tastaturbinding som åpner programmenyen."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the \"Show Applications\" view" msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Tastaturbinding som åpner visningen «Vis programmer»" msgstr "Tastaturbinding som åpner visningen «Vis programmer»"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "" msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview." "Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr "" msgstr ""
"Tastaturbinding som åpner visningen «Vis programmer» i aktivitetsoversikten." "Tastaturbinding som åpner visningen «Vis programmer» i aktivitetsoversikten."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "Tastaturbinding som åpner oversikten" msgstr "Tastaturbinding som åpner oversikten"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25 #: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "Tastaturbinding som åpner aktivitetsoversikten." msgstr "Tastaturbinding som åpner aktivitetsoversikten."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to toggle the visibility of the notification list" msgid "Keybinding to toggle the visibility of the notification list"
msgstr "Tastaturbinding som slår av/på visning av varslingsliste" msgstr "Tastaturbinding som slår av/på visning av varslingsliste"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27 #: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to toggle the visibility of the notification list." msgid "Keybinding to toggle the visibility of the notification list."
msgstr "Tastaturbinding som slår av/på visning av varslingsliste." msgstr "Tastaturbinding som slår av/på visning av varslingsliste."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "Tastaturbinding som fokuserer aktiv varsling" msgstr "Tastaturbinding som fokuserer aktiv varsling"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29 #: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "Tastaturbinding som fokuserer aktiv varsling." msgstr "Tastaturbinding som fokuserer aktiv varsling."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "" msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes" "Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr "" msgstr ""
"Hurtigtast som stanser og fortsetter pågående bevegelser til " "Hurtigtast som stanser og fortsetter pågående bevegelser til "
"feilsøkingsformål" "feilsøkingsformål"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31 #: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Which keyboard to use" msgid "Which keyboard to use"
msgstr "Tastatur som skal brukes" msgstr "Tastatur som skal brukes"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32 #: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid "The type of keyboard to use." msgid "The type of keyboard to use."
msgstr "Type tastatur som skal brukes." msgstr "Type tastatur som skal brukes."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33 #: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "Begrens programveksling til gjeldende arbeidsområde." msgstr "Begrens programveksling til gjeldende arbeidsområde."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34 #: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid "" msgid ""
"If true, only applications that have windows on the current workspace are " "If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included." "shown in the switcher. Otherwise, all applications are included."
@ -243,11 +251,11 @@ msgstr ""
"gjeldende arbeidsområder som vises i programveksleren. I motsatt fall kan du " "gjeldende arbeidsområder som vises i programveksleren. I motsatt fall kan du "
"veksle mellom programmer på tvers av arbeidsområder." "veksle mellom programmer på tvers av arbeidsområder."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35 #: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "The application icon mode." msgid "The application icon mode."
msgstr "Ikonmodus for programmet." msgstr "Ikonmodus for programmet."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36 #: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "" msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities " "Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-" "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
@ -257,7 +265,7 @@ msgstr ""
"valgalternativer er «thumbnail-only» (viser miniatyrbilde av vinduet), «app-" "valgalternativer er «thumbnail-only» (viser miniatyrbilde av vinduet), «app-"
"icon-only» (viser bare programikonet) og «both» (viser begge forannevnte)." "icon-only» (viser bare programikonet) og «both» (viser begge forannevnte)."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid "" msgid ""
"If true, only windows from the current workspace are shown in the switcher. " "If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included." "Otherwise, all windows are included."
@ -266,30 +274,30 @@ msgstr ""
"arbeidsområder som vises i programveksleren. I motsatt fall vises vinduer " "arbeidsområder som vises i programveksleren. I motsatt fall vises vinduer "
"fra alle arbeidsområder." "fra alle arbeidsområder."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
msgstr "Fest modal dialog til opphavsvinduet" msgstr "Fest modal dialog til opphavsvinduet"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39 #: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid "" msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "" msgstr ""
"Denne nøkkelen overstyrer nøkkelen i org.gnome.mutter når GNOME Shell kjøres." "Denne nøkkelen overstyrer nøkkelen i org.gnome.mutter når GNOME Shell kjøres."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40 #: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "" msgstr ""
"Del opp skjermkantene i fliser når brukeren drar og slipper vinduer på dem" "Del opp skjermkantene i fliser når brukeren drar og slipper vinduer på dem"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41 #: ../data/org.gnome.shell.gschema.xml.in.in.h:43
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Arbeidsområder håndteres dynamisk" msgstr "Arbeidsområder håndteres dynamisk"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42 #: ../data/org.gnome.shell.gschema.xml.in.in.h:44
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Arbeidsområder vises kun på hovedskjerm" msgstr "Arbeidsområder vises kun på hovedskjerm"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43 #: ../data/org.gnome.shell.gschema.xml.in.in.h:45
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Utsett fokusendringer i musmodus til peker slutter å bevege seg" msgstr "Utsett fokusendringer i musmodus til peker slutter å bevege seg"
@ -328,20 +336,20 @@ msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Logg inn" msgstr "Logg inn"
#: ../js/gdm/loginDialog.js:281 #: ../js/gdm/loginDialog.js:285
msgid "Choose Session" msgid "Choose Session"
msgstr "Velg økt" msgstr "Velg økt"
#. translators: this message is shown below the user list on the #. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for #. login screen. It can be activated to reveal an entry for
#. manually entering the username. #. manually entering the username.
#: ../js/gdm/loginDialog.js:431 #: ../js/gdm/loginDialog.js:435
msgid "Not listed?" msgid "Not listed?"
msgstr "Ikke listet?" msgstr "Ikke listet?"
#. Translators: this message is shown below the username entry field #. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm #. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:850 #: ../js/gdm/loginDialog.js:854
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(f.eks. bruker eller %s)" msgstr "(f.eks. bruker eller %s)"
@ -349,12 +357,12 @@ msgstr "(f.eks. bruker eller %s)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271 #: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289 #: ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
msgstr "Brukernavn: " msgstr "Brukernavn: "
#: ../js/gdm/loginDialog.js:1184 #: ../js/gdm/loginDialog.js:1196
msgid "Login Window" msgid "Login Window"
msgstr "Innloggingsvindu" msgstr "Innloggingsvindu"
@ -490,12 +498,12 @@ msgstr "Legg til i favoritter"
msgid "Show Details" msgid "Show Details"
msgstr "Vis detaljer" msgstr "Vis detaljer"
#: ../js/ui/appFavorites.js:132 #: ../js/ui/appFavorites.js:133
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "%s ble lagt til i favoritter." msgstr "%s ble lagt til i favoritter."
#: ../js/ui/appFavorites.js:166 #: ../js/ui/appFavorites.js:167
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s ble fjernet fra favoritter." msgstr "%s ble fjernet fra favoritter."
@ -508,8 +516,7 @@ msgstr "Bytt bakgrunn …"
msgid "Display Settings" msgid "Display Settings"
msgstr "Innstillinger for skjerm" msgstr "Innstillinger for skjerm"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "Innstillinger" msgstr "Innstillinger"
@ -573,45 +580,51 @@ msgstr "Forrige måned"
msgid "Next month" msgid "Next month"
msgstr "Neste måned" msgstr "Neste måned"
#: ../js/ui/calendar.js:783 #: ../js/ui/calendar.js:729
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:784
msgid "Week %V" msgid "Week %V"
msgstr "Uke %V" msgstr "Uke %V"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. #.
#: ../js/ui/calendar.js:1188 #: ../js/ui/calendar.js:1189
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Hele dagen" msgstr "Hele dagen"
#: ../js/ui/calendar.js:1291 #: ../js/ui/calendar.js:1296
msgid "Clear section" msgid "Clear section"
msgstr "Tøm seksjon" msgstr "Tøm seksjon"
#: ../js/ui/calendar.js:1518 #: ../js/ui/calendar.js:1523
msgid "Events" msgid "Events"
msgstr "Hendelser" msgstr "Hendelser"
#: ../js/ui/calendar.js:1527 #: ../js/ui/calendar.js:1532
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A %B %d" msgstr "%A %B %d"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:1536
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A %B %d, %Y" msgstr "%A %B %d, %Y"
#: ../js/ui/calendar.js:1616 #: ../js/ui/calendar.js:1621
msgid "Notifications" msgid "Notifications"
msgstr "Varslinger" msgstr "Varslinger"
#: ../js/ui/calendar.js:1767 #: ../js/ui/calendar.js:1772
msgid "No Notifications" msgid "No Notifications"
msgstr "Ingen varslinger" msgstr "Ingen varslinger"
#: ../js/ui/calendar.js:1770 #: ../js/ui/calendar.js:1775
msgid "No Events" msgid "No Events"
msgstr "Ingen hendelser" msgstr "Ingen hendelser"
@ -623,7 +636,7 @@ msgstr "Ekstern stasjon koblet til"
msgid "External drive disconnected" msgid "External drive disconnected"
msgstr "Ekstern stasjon koblet fra" msgstr "Ekstern stasjon koblet fra"
#: ../js/ui/components/autorunManager.js:354 #: ../js/ui/components/autorunManager.js:355
#, javascript-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
msgstr "Åpne med %s" msgstr "Åpne med %s"
@ -968,7 +981,7 @@ msgstr "Slått på"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled" msgid "Disabled"
msgstr "Slått av" msgstr "Slått av"
@ -1012,17 +1025,22 @@ msgstr "Oversikt"
msgid "Type to search…" msgid "Type to search…"
msgstr "Skriv for å søke …" msgstr "Skriv for å søke …"
#: ../js/ui/panel.js:352 #: ../js/ui/panel.js:358
msgid "Quit" msgid "Quit"
msgstr "Avslutt" msgstr "Avslutt"
#. Translators: If there is no suitable word for "Activities" #. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". #. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:404 #: ../js/ui/panel.js:414
msgid "Activities" msgid "Activities"
msgstr "Aktiviteter" msgstr "Aktiviteter"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "System"
#: ../js/ui/panel.js:807
msgid "Top Bar" msgid "Top Bar"
msgstr "Topp-panel" msgstr "Topp-panel"
@ -1035,15 +1053,15 @@ msgstr "Topp-panel"
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:70 #: ../js/ui/runDialog.js:71
msgid "Enter a Command" msgid "Enter a Command"
msgstr "Skriv inn en kommando" msgstr "Skriv inn en kommando"
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162 #: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
msgid "Close" msgid "Close"
msgstr "Lukk" msgstr "Lukk"
#: ../js/ui/runDialog.js:281 #: ../js/ui/runDialog.js:282
msgid "Restarting…" msgid "Restarting…"
msgstr "Starter på nytt …" msgstr "Starter på nytt …"
@ -1166,29 +1184,41 @@ msgstr "Høy kontrast"
msgid "Large Text" msgid "Large Text"
msgstr "Stor tekst" msgstr "Stor tekst"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178 #: ../js/ui/status/bluetooth.js:47
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279 msgid "Bluetooth"
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90 msgstr "Bluetooth"
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Slå av"
#: ../js/ui/status/bluetooth.js:54 #: ../js/ui/status/bluetooth.js:56
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Bluetooth-innstillinger" msgstr "Bluetooth-innstillinger"
#. Translators: this is the number of connected bluetooth devices #. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:105 #: ../js/ui/status/bluetooth.js:136
#, javascript-format #, javascript-format
msgid "%d Connected" msgid "%d Connected"
msgid_plural "%d Connected" msgid_plural "%d Connected"
msgstr[0] "%d koblet til" msgstr[0] "%d koblet til"
msgstr[1] "%d koblet til" msgstr[1] "%d koblet til"
#: ../js/ui/status/bluetooth.js:107 #: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "Av"
#: ../js/ui/status/bluetooth.js:140
msgid "Not In Use" msgid "Not In Use"
msgstr "Ikke i bruk" msgstr "Ikke i bruk"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Slå på"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Slå av"
#: ../js/ui/status/brightness.js:44 #: ../js/ui/status/brightness.js:44
msgid "Brightness" msgid "Brightness"
msgstr "Lysstyrke" msgstr "Lysstyrke"
@ -1356,10 +1386,6 @@ msgstr "Velg nettverk"
msgid "Wi-Fi Settings" msgid "Wi-Fi Settings"
msgstr "Innstillinger" msgstr "Innstillinger"
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Slå på"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296 #: ../js/ui/status/network.js:1296
#, javascript-format #, javascript-format
@ -1409,31 +1435,36 @@ msgstr "Tilkobling mislyktes"
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Aktivering av nettverkstilkobling mislyktes" msgstr "Aktivering av nettverkstilkobling mislyktes"
#: ../js/ui/status/power.js:49 #: ../js/ui/status/power.js:61
msgid "Power Settings" msgid "Power Settings"
msgstr "Innstillinger for strøm" msgstr "Innstillinger for strøm"
#: ../js/ui/status/power.js:65 #: ../js/ui/status/power.js:77
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Fullt oppladet" msgstr "Fullt oppladet"
#. 0 is reported when UPower does not have enough data #. 0 is reported when UPower does not have enough data
#. to estimate battery life #. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78 #: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
msgid "Estimating…" msgid "Estimating…"
msgstr "Estimerer …" msgstr "Estimerer …"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>) #. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:98
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "%d:%02d gjenstår (%d%%)" msgstr "%d:%02d gjenstår (%d %%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>) #. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91 #: ../js/ui/status/power.js:103
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "%d:%02d til batteriet er fullt (%d%%)" msgstr "%d:%02d til batteriet er fullt (%d %%)"
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
#, javascript-format
msgid "%d%%"
msgstr "%d %%"
#. The menu only appears when airplane mode is on, so just #. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically #. statically build it as if it was on, rather than dynamically
@ -1562,19 +1593,19 @@ msgstr "Alltid på synlig arbeidsområde"
#: ../js/ui/windowMenu.js:105 #: ../js/ui/windowMenu.js:105
msgid "Move to Workspace Left" msgid "Move to Workspace Left"
msgstr " til arbeidsområdet til venstre" msgstr "Flytt til arbeidsområdet til venstre"
#: ../js/ui/windowMenu.js:110 #: ../js/ui/windowMenu.js:110
msgid "Move to Workspace Right" msgid "Move to Workspace Right"
msgstr " til arbeidsområdet til høyre" msgstr "Flytt til arbeidsområdet til høyre"
#: ../js/ui/windowMenu.js:115 #: ../js/ui/windowMenu.js:115
msgid "Move to Workspace Up" msgid "Move to Workspace Up"
msgstr " til arbeidsområdet over" msgstr "Flytt til arbeidsområdet over"
#: ../js/ui/windowMenu.js:120 #: ../js/ui/windowMenu.js:120
msgid "Move to Workspace Down" msgid "Move to Workspace Down"
msgstr " til arbeidsområdet under" msgstr "Flytt til arbeidsområdet under"
#: ../js/ui/windowMenu.js:136 #: ../js/ui/windowMenu.js:136
msgid "Move to Monitor Up" msgid "Move to Monitor Up"
@ -1598,7 +1629,7 @@ msgstr "Evolution kalender"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1837 #: ../src/gvc/gvc-mixer-control.c:1835
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1607,51 +1638,51 @@ msgstr[1] "%u utganger"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1847 #: ../src/gvc/gvc-mixer-control.c:1845
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
msgstr[0] "%u inngang" msgstr[0] "%u inngang"
msgstr[1] "%u innganger" msgstr[1] "%u innganger"
#: ../src/gvc/gvc-mixer-control.c:2373 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "Systemlyder" msgstr "Systemlyder"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Vis versjon" msgstr "Vis versjon"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Modus som brukes av GDM for innloggingsskjermen" msgstr "Modus som brukes av GDM for innloggingsskjermen"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Bruk spesifikt modus, f.eks «gdm» for innloggingsskjerm" msgstr "Bruk spesifikt modus, f.eks «gdm» for innloggingsskjerm"
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "Vis mulige modi" msgstr "Vis mulige modi"
#: ../src/shell-app.c:239 #: ../src/shell-app.c:246
msgctxt "program" msgctxt "program"
msgid "Unknown" msgid "Unknown"
msgstr "Ukjent" msgstr "Ukjent"
#: ../src/shell-app.c:480 #: ../src/shell-app.c:487
#, c-format #, c-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Klarte ikke å starte «%s»" msgstr "Klarte ikke å starte «%s»"
#: ../src/shell-keyring-prompt.c:742 #: ../src/shell-keyring-prompt.c:730
msgid "Passwords do not match." msgid "Passwords do not match."
msgstr "Passordene er ikke like." msgstr "Passordene er ikke like."
#: ../src/shell-keyring-prompt.c:750 #: ../src/shell-keyring-prompt.c:738
msgid "Password cannot be blank" msgid "Password cannot be blank"
msgstr "Passordet kan ikke være tomt" msgstr "Passordet kan ikke være tomt"
#: ../src/shell-polkit-authentication-agent.c:346 #: ../src/shell-polkit-authentication-agent.c:353
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "Autentiseringsdialogen ble lukket av brukeren" msgstr "Autentiseringsdialogen ble lukket av brukeren"

605
po/nl.po

File diff suppressed because it is too large Load Diff

2876
po/oc.po

File diff suppressed because it is too large Load Diff

543
po/pa.po

File diff suppressed because it is too large Load Diff

361
po/pl.po
View File

@ -4,16 +4,16 @@
# pomóc w jego rozwijaniu i pielęgnowaniu, napisz do nas: # pomóc w jego rozwijaniu i pielęgnowaniu, napisz do nas:
# gnomepl@aviary.pl # gnomepl@aviary.pl
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Piotr Drąg <piotrdrag@gmail.com>, 2009-2015. # Piotr Drąg <piotrdrag@gmail.com>, 2009-2016.
# Tomasz Dominikowski <dominikowski@gmail.com>, 2009. # Tomasz Dominikowski <dominikowski@gmail.com>, 2009.
# Wojciech Szczęsny <wszczesny@aviary.pl>, 2013. # Wojciech Szczęsny <wszczesny@aviary.pl>, 2013.
# Aviary.pl <gnomepl@aviary.pl>, 2009-2015. # Aviary.pl <gnomepl@aviary.pl>, 2009-2016.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell\n" "Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-24 15:27+0200\n" "POT-Creation-Date: 2016-03-10 17:25+0100\n"
"PO-Revision-Date: 2015-08-24 15:28+0200\n" "PO-Revision-Date: 2016-03-10 17:27+0100\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n" "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <gnomepl@aviary.pl>\n" "Language-Team: Polish <gnomepl@aviary.pl>\n"
"Language: pl\n" "Language: pl\n"
@ -49,15 +49,6 @@ msgstr "Wyświetlenie wszystkich programów"
msgid "Open the application menu" msgid "Open the application menu"
msgstr "Otwarcie menu programu" msgstr "Otwarcie menu programu"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "Powłoka środowiska GNOME"
#: ../data/gnome-shell.desktop.in.in.h:2
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Zarządzanie oknami i uruchamianiem programów"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "Preferencje rozszerzenia powłoki GNOME" msgstr "Preferencje rozszerzenia powłoki GNOME"
@ -66,9 +57,13 @@ msgstr "Preferencje rozszerzenia powłoki GNOME"
msgid "Configure GNOME Shell Extensions" msgid "Configure GNOME Shell Extensions"
msgstr "Konfiguracja rozszerzeń powłoki GNOME" msgstr "Konfiguracja rozszerzeń powłoki GNOME"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1 #: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)" msgid "GNOME Shell"
msgstr "Powłoka środowiska GNOME (Wayland)" msgstr "Powłoka środowiska GNOME"
#: ../data/org.gnome.Shell.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Zarządzanie oknami i uruchamianiem programów"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1 #: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2" msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -171,82 +166,99 @@ msgid ""
"'Remember Password' checkbox will be present. This key sets the default " "'Remember Password' checkbox will be present. This key sets the default "
"state of the checkbox." "state of the checkbox."
msgstr "" msgstr ""
"Powłoka zażąda hasła po zamontowaniu zaszyfrowanego urządzenia lub zdalnego " "Powłoka poprosi o hasło podczas montowania zaszyfrowanego urządzenia lub "
"systemu plików. Jeśli hasło może zostać zapisane do późniejszego użycia, to " "zdalnego systemu plików. Jeśli hasło może zostać zapisane do późniejszego "
"obecne będzie pole wyboru „Zapamiętanie hasła”. Ten klucz ustawia domyślną " "użycia, to obecne będzie pole wyboru „Zapamiętanie hasła”. Ten klucz ustawia "
"wartość tego pola." "domyślną wartość tego pola."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18 #: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr "Czy domyślny adapter Bluetooth ma powiązane ustawione urządzenia"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
"powered, or if there were devices set up associated with the default "
"adapter. This will be reset if the default adapter is ever seen not to have "
"devices associated to it."
msgstr ""
"Powłoka będzie wyświetlała menu Bluetooth tylko, jeśli adapter Bluetooth "
"jest włączony lub są ustawione urządzenia powiązane z domyślnym adapterem. "
"Zostanie to przywrócone, kiedy tylko domyślny adapter nie będzie miał "
"żadnych powiązanych urządzeń."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar" msgid "Show the week date in the calendar"
msgstr "Wyświetlanie dnia tygodnia w kalendarzu" msgstr "Wyświetlanie dnia tygodnia w kalendarzu"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19 #: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "If true, display the ISO week date in the calendar." msgid "If true, display the ISO week date in the calendar."
msgstr "" msgstr ""
"Jeśli jest ustawione na „true”, to wyświetla w kalendarzu dzień tygodnia w " "Jeśli jest ustawione na „true”, to wyświetla w kalendarzu dzień tygodnia w "
"formacie ISO." "formacie ISO."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20 #: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the application menu" msgid "Keybinding to open the application menu"
msgstr "Skrót do otwarcia menu programu" msgstr "Skrót do otwarcia menu programu"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
msgid "Keybinding to open the application menu." msgid "Keybinding to open the application menu."
msgstr "Skrót do otwarcia menu programu." msgstr "Skrót do otwarcia menu programu."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the \"Show Applications\" view" msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Skrót do otwarcia widoku „Wyświetl programy”" msgstr "Skrót do otwarcia widoku „Wyświetl programy”"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "" msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview." "Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr "Skrót do otwarcia widoku „Wyświetl programy” ekranu podglądu." msgstr "Skrót do otwarcia widoku „Wyświetl programy” ekranu podglądu."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "Skrót do otwarcia ekranu podglądu" msgstr "Skrót do otwarcia ekranu podglądu"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25 #: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "Skrót do otwarcia ekranu podglądu." msgstr "Skrót do otwarcia ekranu podglądu."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to toggle the visibility of the notification list" msgid "Keybinding to toggle the visibility of the notification list"
msgstr "Skrót do przełączenia widoczności listy powiadomień" msgstr "Skrót do przełączenia widoczności listy powiadomień"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27 #: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to toggle the visibility of the notification list." msgid "Keybinding to toggle the visibility of the notification list."
msgstr "Skrót do przełączenia widoczności listy powiadomień." msgstr "Skrót do przełączenia widoczności listy powiadomień."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "Skrót do aktywacji bieżącego powiadomienia" msgstr "Skrót do aktywacji bieżącego powiadomienia"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29 #: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "Skrót do aktywacji bieżącego powiadomienia." msgstr "Skrót do aktywacji bieżącego powiadomienia."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "" msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes" "Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr "" msgstr ""
"Skrót wstrzymujący i wznawiający wszystkie działające klatki pośrednie (do " "Skrót wstrzymujący i wznawiający wszystkie działające klatki pośrednie (do "
"celów debugowania)" "celów debugowania)"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31 #: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Which keyboard to use" msgid "Which keyboard to use"
msgstr "Której klawiatury używać" msgstr "Której klawiatury używać"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32 #: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid "The type of keyboard to use." msgid "The type of keyboard to use."
msgstr "Typ używanej klawiatury." msgstr "Typ używanej klawiatury."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33 #: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "Ograniczenie przełącznika do bieżącego obszaru roboczego." msgstr "Ograniczenie przełącznika do bieżącego obszaru roboczego."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34 #: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid "" msgid ""
"If true, only applications that have windows on the current workspace are " "If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included." "shown in the switcher. Otherwise, all applications are included."
@ -255,11 +267,11 @@ msgstr ""
"obszarze roboczym są wyświetlane w przełączniku. W przeciwnym przypadku " "obszarze roboczym są wyświetlane w przełączniku. W przeciwnym przypadku "
"wszystkie programy są załączone." "wszystkie programy są załączone."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35 #: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "The application icon mode." msgid "The application icon mode."
msgstr "Tryb ikon programów." msgstr "Tryb ikon programów."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36 #: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "" msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities " "Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-" "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
@ -269,7 +281,7 @@ msgstr ""
"„thumbnail-only” (wyświetla miniaturę okna), „app-icon-only” (wyświetla " "„thumbnail-only” (wyświetla miniaturę okna), „app-icon-only” (wyświetla "
"tylko ikonę programu) lub „both” (wyświetla oba)." "tylko ikonę programu) lub „both” (wyświetla oba)."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid "" msgid ""
"If true, only windows from the current workspace are shown in the switcher. " "If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included." "Otherwise, all windows are included."
@ -278,32 +290,32 @@ msgstr ""
"wyświetlane w przełączniku. W przeciwnym przypadku wszystkie okna są " "wyświetlane w przełączniku. W przeciwnym przypadku wszystkie okna są "
"załączone." "załączone."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
msgstr "Dołączanie modalnych okien dialogowych do okien nadrzędnych" msgstr "Dołączanie modalnych okien dialogowych do okien nadrzędnych"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39 #: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid "" msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "" msgstr ""
"Ten klucz zastępuje klucz w „org.gnome.mutter”, kiedy uruchomiona jest " "Ten klucz zastępuje klucz w „org.gnome.mutter”, kiedy uruchomiona jest "
"powłoka GNOME." "powłoka GNOME."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40 #: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "" msgstr ""
"Włączenie kafelkowania przy krawędziach podczas przenoszenia okien do " "Włączenie kafelkowania przy krawędziach podczas przenoszenia okien do "
"krawędzi ekranu" "krawędzi ekranu"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41 #: ../data/org.gnome.shell.gschema.xml.in.in.h:43
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Dynamiczne zarządzanie obszarami roboczymi" msgstr "Dynamiczne zarządzanie obszarami roboczymi"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42 #: ../data/org.gnome.shell.gschema.xml.in.in.h:44
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Obszary robocze tylko na pierwszym monitorze" msgstr "Obszary robocze tylko na pierwszym monitorze"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43 #: ../data/org.gnome.shell.gschema.xml.in.in.h:45
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "" msgstr ""
"Opóźnienie zmiany aktywności w trybie myszy do momentu, w którym kursor się " "Opóźnienie zmiany aktywności w trybie myszy do momentu, w którym kursor się "
@ -313,52 +325,53 @@ msgstr ""
msgid "Network Login" msgid "Network Login"
msgstr "Logowanie do sieci" msgstr "Logowanie do sieci"
#: ../js/extensionPrefs/main.js:122 #: ../js/extensionPrefs/main.js:121
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "" msgstr ""
"Wystąpił błąd podczas wczytywania okna preferencji dla rozszerzenia „%s”:" "Wystąpił błąd podczas wczytywania okna preferencji dla rozszerzenia „%s”:"
#: ../js/extensionPrefs/main.js:154 #: ../js/extensionPrefs/main.js:153
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "Rozszerzenia powłoki GNOME" msgstr "Rozszerzenia powłoki GNOME"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145 #: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452 #: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916 #: ../js/ui/status/network.js:916
msgid "Cancel" msgid "Cancel"
msgstr "Anuluj" msgstr "Anuluj"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215 #: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:435 #: ../js/gdm/authPrompt.js:448
msgid "Next" msgid "Next"
msgstr "Dalej" msgstr "Dalej"
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403 #: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59 #: ../js/ui/unlockDialog.js:59
msgid "Unlock" msgid "Unlock"
msgstr "Odblokuj" msgstr "Odblokuj"
#: ../js/gdm/authPrompt.js:213 #: ../js/gdm/authPrompt.js:214
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Zaloguj" msgstr "Zaloguj"
#: ../js/gdm/loginDialog.js:281 #: ../js/gdm/loginDialog.js:285
msgid "Choose Session" msgid "Choose Session"
msgstr "Wybór sesji" msgstr "Wybór sesji"
#. translators: this message is shown below the user list on the #. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for #. login screen. It can be activated to reveal an entry for
#. manually entering the username. #. manually entering the username.
#: ../js/gdm/loginDialog.js:431 #: ../js/gdm/loginDialog.js:435
msgid "Not listed?" msgid "Not listed?"
msgstr "Inny użytkownik?" msgstr "Inny użytkownik?"
#. Translators: this message is shown below the username entry field #. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm #. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:847 #: ../js/gdm/loginDialog.js:854
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(np. użytkownik lub %s)" msgstr "(np. użytkownik lub %s)"
@ -366,12 +379,12 @@ msgstr "(np. użytkownik lub %s)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:852 ../js/ui/components/networkAgent.js:271 #: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289 #: ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
msgstr "Nazwa użytkownika: " msgstr "Nazwa użytkownika: "
#: ../js/gdm/loginDialog.js:1181 #: ../js/gdm/loginDialog.js:1196
msgid "Login Window" msgid "Login Window"
msgstr "Okno logowania" msgstr "Okno logowania"
@ -507,16 +520,36 @@ msgstr "Dodaj do ulubionych"
msgid "Show Details" msgid "Show Details"
msgstr "Wyświetl szczegóły" msgstr "Wyświetl szczegóły"
#: ../js/ui/appFavorites.js:132 #: ../js/ui/appFavorites.js:134
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "Program „%s” został dodany do ulubionych." msgstr "Program „%s” został dodany do ulubionych."
#: ../js/ui/appFavorites.js:166 #: ../js/ui/appFavorites.js:168
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "Program „%s” został usunięty z ulubionych." msgstr "Program „%s” został usunięty z ulubionych."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Wybór urządzenia dźwiękowego"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "Ustawienia dźwięku"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Słuchawki"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Słuchawki z mikrofonem"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/backgroundMenu.js:19 #: ../js/ui/backgroundMenu.js:19
msgid "Change Background…" msgid "Change Background…"
msgstr "Zmień tło…" msgstr "Zmień tło…"
@ -525,13 +558,12 @@ msgstr "Zmień tło…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Ustawienia ekranu" msgstr "Ustawienia ekranu"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "Ustawienia" msgstr "Ustawienia"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). #. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:55 #: ../js/ui/calendar.js:47
msgctxt "calendar-no-work" msgctxt "calendar-no-work"
msgid "06" msgid "06"
msgstr "06" msgstr "06"
@ -541,94 +573,96 @@ msgstr "06"
#. * NOTE: These grid abbreviations are always shown together #. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S". #. * and in order, e.g. "S M T W T F S".
#. #.
#: ../js/ui/calendar.js:84 #: ../js/ui/calendar.js:76
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "N" msgstr "N"
#. Translators: Calendar grid abbreviation for Monday #. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:86 #: ../js/ui/calendar.js:78
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "P" msgstr "P"
#. Translators: Calendar grid abbreviation for Tuesday #. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:88 #: ../js/ui/calendar.js:80
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "W" msgstr "W"
#. Translators: Calendar grid abbreviation for Wednesday #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:90 #: ../js/ui/calendar.js:82
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "Ś" msgstr "Ś"
#. Translators: Calendar grid abbreviation for Thursday #. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:92 #: ../js/ui/calendar.js:84
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "C" msgstr "C"
#. Translators: Calendar grid abbreviation for Friday #. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:94 #: ../js/ui/calendar.js:86
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "P" msgstr "P"
#. Translators: Calendar grid abbreviation for Saturday #. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:96 #: ../js/ui/calendar.js:88
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
msgstr "S" msgstr "S"
#: ../js/ui/calendar.js:566 #: ../js/ui/calendar.js:416
msgid "Previous month" msgid "Previous month"
msgstr "Poprzedni miesiąc" msgstr "Poprzedni miesiąc"
#: ../js/ui/calendar.js:576 #: ../js/ui/calendar.js:426
msgid "Next month" msgid "Next month"
msgstr "Następny miesiąc" msgstr "Następny miesiąc"
#: ../js/ui/calendar.js:783 #: ../js/ui/calendar.js:579
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:634
msgid "Week %V" msgid "Week %V"
msgstr "%V tydzień" msgstr "%V. tydzień"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. #.
#: ../js/ui/calendar.js:1188 #: ../js/ui/calendar.js:695
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Cały dzień" msgstr "Cały dzień"
#: ../js/ui/calendar.js:1291 #: ../js/ui/calendar.js:821
msgid "Clear section"
msgstr "Wyczyść"
#: ../js/ui/calendar.js:1518
msgid "Events" msgid "Events"
msgstr "Wydarzenia" msgstr "Wydarzenia"
#: ../js/ui/calendar.js:1527 #: ../js/ui/calendar.js:830
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %e %B" msgstr "%A, %e %B"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:834
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A, %e %B %Y" msgstr "%A, %e %B %Y"
#: ../js/ui/calendar.js:1616 #: ../js/ui/calendar.js:919
msgid "Notifications" msgid "Notifications"
msgstr "Powiadomienia" msgstr "Powiadomienia"
#: ../js/ui/calendar.js:1767 #: ../js/ui/calendar.js:1070
msgid "No Notifications" msgid "No Notifications"
msgstr "Brak powiadomień" msgstr "Brak powiadomień"
#: ../js/ui/calendar.js:1770 #: ../js/ui/calendar.js:1073
msgid "No Events" msgid "No Events"
msgstr "Brak wydarzeń" msgstr "Brak wydarzeń"
@ -640,7 +674,7 @@ msgstr "Podłączono dysk zewnętrzny"
msgid "External drive disconnected" msgid "External drive disconnected"
msgstr "Odłączono dysk zewnętrzny" msgstr "Odłączono dysk zewnętrzny"
#: ../js/ui/components/autorunManager.js:354 #: ../js/ui/components/autorunManager.js:355
#, javascript-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
msgstr "Otwórz za pomocą „%s”" msgstr "Otwórz za pomocą „%s”"
@ -959,11 +993,11 @@ msgid "Keyboard"
msgstr "Klawiatura" msgstr "Klawiatura"
#. translators: 'Hide' is a verb #. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66 #: ../js/ui/legacyTray.js:65
msgid "Hide tray" msgid "Hide tray"
msgstr "Ukryj obszar powiadamiania" msgstr "Ukryj obszar powiadamiania"
#: ../js/ui/legacyTray.js:107 #: ../js/ui/legacyTray.js:106
msgid "Status Icons" msgid "Status Icons"
msgstr "Ikony stanu" msgstr "Ikony stanu"
@ -991,7 +1025,7 @@ msgstr "Włączone"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled" msgid "Disabled"
msgstr "Wyłączone" msgstr "Wyłączone"
@ -1015,10 +1049,26 @@ msgstr "Wyświetl źródło"
msgid "Web Page" msgid "Web Page"
msgstr "Strona WWW" msgstr "Strona WWW"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Wyczyść"
#: ../js/ui/messageTray.js:1486 #: ../js/ui/messageTray.js:1486
msgid "System Information" msgid "System Information"
msgstr "Informacje systemowe" msgstr "Informacje systemowe"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Nieznany wykonawca"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "Nieznany tytuł"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Multimedia"
#: ../js/ui/overview.js:84 #: ../js/ui/overview.js:84
msgid "Undo" msgid "Undo"
msgstr "Cofnij" msgstr "Cofnij"
@ -1035,17 +1085,22 @@ msgstr "Podgląd"
msgid "Type to search…" msgid "Type to search…"
msgstr "Wyszukiwanie…" msgstr "Wyszukiwanie…"
#: ../js/ui/panel.js:352 #: ../js/ui/panel.js:358
msgid "Quit" msgid "Quit"
msgstr "Zakończ" msgstr "Zakończ"
#. Translators: If there is no suitable word for "Activities" #. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". #. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:404 #: ../js/ui/panel.js:414
msgid "Activities" msgid "Activities"
msgstr "Podgląd" msgstr "Podgląd"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Menu systemowe"
#: ../js/ui/panel.js:807
msgid "Top Bar" msgid "Top Bar"
msgstr "Górny pasek" msgstr "Górny pasek"
@ -1058,15 +1113,15 @@ msgstr "Górny pasek"
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:70 #: ../js/ui/runDialog.js:71
msgid "Enter a Command" msgid "Enter a Command"
msgstr "Proszę wprowadzić polecenie" msgstr "Proszę wprowadzić polecenie"
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162 #: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
msgid "Close" msgid "Close"
msgstr "Zamknij" msgstr "Zamknij"
#: ../js/ui/runDialog.js:281 #: ../js/ui/runDialog.js:282
msgid "Restarting…" msgid "Restarting…"
msgstr "Ponowne uruchamianie…" msgstr "Ponowne uruchamianie…"
@ -1191,19 +1246,16 @@ msgstr "Wysoki kontrast"
msgid "Large Text" msgid "Large Text"
msgstr "Duży tekst" msgstr "Duży tekst"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178 #: ../js/ui/status/bluetooth.js:47
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279 msgid "Bluetooth"
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90 msgstr "Bluetooth"
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Wyłącz"
#: ../js/ui/status/bluetooth.js:54 #: ../js/ui/status/bluetooth.js:56
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Ustawienia Bluetooth" msgstr "Ustawienia Bluetooth"
#. Translators: this is the number of connected bluetooth devices #. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:105 #: ../js/ui/status/bluetooth.js:136
#, javascript-format #, javascript-format
msgid "%d Connected" msgid "%d Connected"
msgid_plural "%d Connected" msgid_plural "%d Connected"
@ -1211,10 +1263,25 @@ msgstr[0] "%d połączone urządzenie"
msgstr[1] "%d połączone urządzenia" msgstr[1] "%d połączone urządzenia"
msgstr[2] "%d połączonych urządzeń" msgstr[2] "%d połączonych urządzeń"
#: ../js/ui/status/bluetooth.js:107 #: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "Wyłączono"
#: ../js/ui/status/bluetooth.js:140
msgid "Not In Use" msgid "Not In Use"
msgstr "Nieużywane" msgstr "Nieużywane"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Włącz"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Wyłącz"
#: ../js/ui/status/brightness.js:44 #: ../js/ui/status/brightness.js:44
msgid "Brightness" msgid "Brightness"
msgstr "Jasność" msgstr "Jasność"
@ -1223,30 +1290,49 @@ msgstr "Jasność"
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Wyświetl układ klawiatury" msgstr "Wyświetl układ klawiatury"
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177 #: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
msgid "Location Enabled" msgid "Location Enabled"
msgstr "Włączono położenie" msgstr "Włączono ustalanie położenia"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178 #: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
msgid "Disable" msgid "Disable"
msgstr "Wyłącz" msgstr "Wyłącz"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:109
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "Ustawienia prywatności" msgstr "Ustawienia prywatności"
#: ../js/ui/status/location.js:176 #: ../js/ui/status/location.js:214
msgid "Location In Use" msgid "Location In Use"
msgstr "Położenie jest używane" msgstr "Ustalanie położenia jest używane"
#: ../js/ui/status/location.js:180 #: ../js/ui/status/location.js:218
msgid "Location Disabled" msgid "Location Disabled"
msgstr "Wyłączono położenie" msgstr "Wyłączono ustalanie położenia"
#: ../js/ui/status/location.js:181 #: ../js/ui/status/location.js:219
msgid "Enable" msgid "Enable"
msgstr "Włącz" msgstr "Włącz"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Odmów dostępu"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Udziel dostępu"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Udzielić programowi „%s” dostępu do położenia użytkownika?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"W każdej chwili można zmienić dostęp do położenia w ustawieniach prywatności."
#: ../js/ui/status/network.js:101 #: ../js/ui/status/network.js:101
msgid "<unknown>" msgid "<unknown>"
msgstr "<nieznane>" msgstr "<nieznane>"
@ -1382,10 +1468,6 @@ msgstr "Wybierz sieć"
msgid "Wi-Fi Settings" msgid "Wi-Fi Settings"
msgstr "Ustawienia sieci Wi-Fi" msgstr "Ustawienia sieci Wi-Fi"
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Włącz"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296 #: ../js/ui/status/network.js:1296
#, javascript-format #, javascript-format
@ -1435,32 +1517,37 @@ msgstr "Połączenie się nie powiodło"
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Aktywacja połączenia sieciowego się nie powiodła" msgstr "Aktywacja połączenia sieciowego się nie powiodła"
#: ../js/ui/status/power.js:49 #: ../js/ui/status/power.js:61
msgid "Power Settings" msgid "Power Settings"
msgstr "Ustawienia zasilania" msgstr "Ustawienia zasilania"
#: ../js/ui/status/power.js:65 #: ../js/ui/status/power.js:77
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Naładowane" msgstr "Naładowane"
#. 0 is reported when UPower does not have enough data #. 0 is reported when UPower does not have enough data
#. to estimate battery life #. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78 #: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
msgid "Estimating…" msgid "Estimating…"
msgstr "Obliczanie…" msgstr "Obliczanie…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>) #. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:98
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "Pozostało: %d%02d (%d%%)" msgstr "Pozostało: %d%02d (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>) #. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91 #: ../js/ui/status/power.js:103
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "Do naładowania: %d%02d (%d%%)" msgstr "Do naładowania: %d%02d (%d%%)"
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
#, javascript-format
msgid "%d%%"
msgstr "%d%%"
#. The menu only appears when airplane mode is on, so just #. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically #. statically build it as if it was on, rather than dynamically
#. changing the menu contents. #. changing the menu contents.
@ -1500,10 +1587,6 @@ msgstr "Zmieniono głośność"
msgid "Volume" msgid "Volume"
msgstr "Głośność" msgstr "Głośność"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/unlockDialog.js:67 #: ../js/ui/unlockDialog.js:67
msgid "Log in as another user" msgid "Log in as another user"
msgstr "Zaloguj jako inny użytkownik" msgstr "Zaloguj jako inny użytkownik"
@ -1625,7 +1708,7 @@ msgstr "Kalendarz programu Evolution"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1837 #: ../src/gvc/gvc-mixer-control.c:1835
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1635,7 +1718,7 @@ msgstr[2] "%u wyjść"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1847 #: ../src/gvc/gvc-mixer-control.c:1845
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
@ -1643,44 +1726,44 @@ msgstr[0] "%u wejście"
msgstr[1] "%u wejścia" msgstr[1] "%u wejścia"
msgstr[2] "%u wejść" msgstr[2] "%u wejść"
#: ../src/gvc/gvc-mixer-control.c:2373 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "Dźwięki systemowe" msgstr "Dźwięki systemowe"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Wyświetla wersję" msgstr "Wyświetla wersję"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Tryb używany przez GDM dla ekranu logowania" msgstr "Tryb używany przez GDM dla ekranu logowania"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Używa podanego trybu, np. „gdm” dla ekranu logowania" msgstr "Używa podanego trybu, np. „gdm” dla ekranu logowania"
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "Wyświetla listę możliwych trybów" msgstr "Wyświetla listę możliwych trybów"
#: ../src/shell-app.c:239 #: ../src/shell-app.c:246
msgctxt "program" msgctxt "program"
msgid "Unknown" msgid "Unknown"
msgstr "Nieznany" msgstr "Nieznany"
#: ../src/shell-app.c:480 #: ../src/shell-app.c:487
#, c-format #, c-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Uruchomienie „%s” się nie powiodło" msgstr "Uruchomienie „%s” się nie powiodło"
#: ../src/shell-keyring-prompt.c:742 #: ../src/shell-keyring-prompt.c:730
msgid "Passwords do not match." msgid "Passwords do not match."
msgstr "Hasła się nie zgadzają." msgstr "Hasła się nie zgadzają."
#: ../src/shell-keyring-prompt.c:750 #: ../src/shell-keyring-prompt.c:738
msgid "Password cannot be blank" msgid "Password cannot be blank"
msgstr "Hasło nie może być puste" msgstr "Hasło nie może być puste"
#: ../src/shell-polkit-authentication-agent.c:346 #: ../src/shell-polkit-authentication-agent.c:353
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "Okno dialogowe uwierzytelnienia zostało odrzucone przez użytkownika" msgstr "Okno dialogowe uwierzytelnienia zostało odrzucone przez użytkownika"

411
po/pt.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1987
po/ro.po

File diff suppressed because it is too large Load Diff

529
po/ru.po

File diff suppressed because it is too large Load Diff

729
po/sk.po

File diff suppressed because it is too large Load Diff

788
po/sl.po

File diff suppressed because it is too large Load Diff

382
po/sr.po
View File

@ -1,28 +1,28 @@
# Serbian translation for gnome-shell. # Serbian translation for gnome-shell.
# Courtesy of Prevod.org team (http://prevod.org/) -- 2010—2015. # Courtesy of Prevod.org team (http://prevod.org/) -- 2010—2016.
# Copyright (C) 2010 gnome-shell's COPYRIGHT HOLDER # Copyright (C) 2010 gnome-shell's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell package. # This file is distributed under the same license as the gnome-shell package.
#
# Translators:
# Милош Поповић <gpopac@gmail.com>, 2010—2011. # Милош Поповић <gpopac@gmail.com>, 2010—2011.
# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011—2015. # Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011—2016.
# Марко М. Костић <marko.m.kostic@gmail.com>, 2016.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2015-09-22 08:38+0000\n" "POT-Creation-Date: 2016-03-10 22:19+0000\n"
"PO-Revision-Date: 2015-09-22 13:35+0200\n" "PO-Revision-Date: 2016-03-11 02:53+0200\n"
"Last-Translator: Марко М. Костић (Marko M. Kostić) <marko.m.kostic@gmail." "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
"com>\n" "Language-Team: Serbian <(gnom@prevod.org)>\n"
"Language-Team: Serbian <gnom@prevod.org>\n"
"Language: sr\n" "Language: sr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n" "Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : "
"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Project-Style: gnome\n" "X-Project-Style: gnome\n"
"X-Generator: Poedit 1.8.4\n"
"X-Poedit-Bookmarks: -1,224,-1,-1,-1,-1,-1,-1,-1,-1\n"
#: ../data/50-gnome-shell-system.xml.in.h:1 #: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System" msgid "System"
@ -48,15 +48,6 @@ msgstr "Прикажи све програме"
msgid "Open the application menu" msgid "Open the application menu"
msgstr "Отворите изборник програма" msgstr "Отворите изборник програма"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "Гномова шкољка"
#: ../data/gnome-shell.desktop.in.in.h:2
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Управник прозорима и покретач програма"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "Поставке проширења Гномове шкољке" msgstr "Поставке проширења Гномове шкољке"
@ -65,9 +56,13 @@ msgstr "Поставке проширења Гномове шкољке"
msgid "Configure GNOME Shell Extensions" msgid "Configure GNOME Shell Extensions"
msgstr "Подесите проширења Гномове шкољке" msgstr "Подесите проширења Гномове шкољке"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1 #: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)" msgid "GNOME Shell"
msgstr "Гномова шкољка (вајланд састављач)" msgstr "Гномова шкољка"
#: ../data/org.gnome.Shell.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Управник прозорима и покретач програма"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1 #: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2" msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -172,74 +167,91 @@ msgstr ""
"поља за избор." "поља за избор."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18 #: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr "Да ли је основни адаптер блутута подесио њему придружене уређаје"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
"powered, or if there were devices set up associated with the default "
"adapter. This will be reset if the default adapter is ever seen not to have "
"devices associated to it."
msgstr ""
"Шкољка ће приказати ставку изборника блутута само ако је адаптер блутута "
"упаљен, или ако има подешених уређаја придружених основном адаптеру. Ово ће "
"се вратити на почетно стање ако се установи да основни адаптер нема њему "
"придружених уређаја."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar" msgid "Show the week date in the calendar"
msgstr "Приказује дан у недељи у календару" msgstr "Приказује дан у недељи у календару"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19 #: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "If true, display the ISO week date in the calendar." msgid "If true, display the ISO week date in the calendar."
msgstr "Ако је изабрано, приказује ИСО дан у недељи у календару." msgstr "Ако је изабрано, приказује ИСО дан у недељи у календару."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20 #: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the application menu" msgid "Keybinding to open the application menu"
msgstr "Пречица за отварање изборника програма" msgstr "Пречица за отварање изборника програма"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
msgid "Keybinding to open the application menu." msgid "Keybinding to open the application menu."
msgstr "Пречица за отварање изборника програма." msgstr "Пречица за отварање изборника програма."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the \"Show Applications\" view" msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Пречица за отварање прегледа „Прикажи програме“" msgstr "Пречица за отварање прегледа „Прикажи програме“"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "" msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview." "Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr "Пречица за отварање прегледа „Прикажи програме“ у прегледу активности." msgstr "Пречица за отварање прегледа „Прикажи програме“ у прегледу активности."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "Пречица за отварање прегледа" msgstr "Пречица за отварање прегледа"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25 #: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "Пречица за отварање прегледа активности." msgstr "Пречица за отварање прегледа активности."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to toggle the visibility of the notification list" msgid "Keybinding to toggle the visibility of the notification list"
msgstr "Пречица за окидање видљивости списка обавештења" msgstr "Пречица за окидање видљивости списка обавештења"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27 #: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to toggle the visibility of the notification list." msgid "Keybinding to toggle the visibility of the notification list."
msgstr "Пречица за окидање видљивости списка обавештења." msgstr "Пречица за окидање видљивости списка обавештења."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "Пречица за постављање у жижу радног обавештења" msgstr "Пречица за постављање у жижу радног обавештења"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29 #: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "Пречица за постављање у жижу радног обавештења." msgstr "Пречица за постављање у жижу радног обавештења."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "" msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes" "Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr "" msgstr ""
"Свеза тастера која паузира и наставља све покренуте близанце, за сврхе " "Свеза тастера која паузира и наставља све покренуте близанце, за сврхе "
"прочишћавања" "прочишћавања"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31 #: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Which keyboard to use" msgid "Which keyboard to use"
msgstr "Која ће тастатура бити коришћена" msgstr "Која ће тастатура бити коришћена"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32 #: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid "The type of keyboard to use." msgid "The type of keyboard to use."
msgstr "Врста тастатуре за употребу." msgstr "Врста тастатуре за употребу."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33 #: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "Ограничава пребацивача на текући радни простор." msgstr "Ограничава пребацивача на текући радни простор."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34 #: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid "" msgid ""
"If true, only applications that have windows on the current workspace are " "If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included." "shown in the switcher. Otherwise, all applications are included."
@ -247,11 +259,11 @@ msgstr ""
"Ако је изабрано, само програми који имају прозоре на текућем радном простору " "Ако је изабрано, само програми који имају прозоре на текућем радном простору "
"се приказују у пребацивачу. У супротном, сви програми су укључени." "се приказују у пребацивачу. У супротном, сви програми су укључени."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35 #: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "The application icon mode." msgid "The application icon mode."
msgstr "Режим иконице програма." msgstr "Режим иконице програма."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36 #: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "" msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities " "Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-" "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
@ -261,7 +273,7 @@ msgstr ""
"„thumbnail-only“ (приказује сличицу прозора), „app-icon-only“ (приказује " "„thumbnail-only“ (приказује сличицу прозора), „app-icon-only“ (приказује "
"само иконицу програма) или „both“ (оба)." "само иконицу програма) или „both“ (оба)."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid "" msgid ""
"If true, only windows from the current workspace are shown in the switcher. " "If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included." "Otherwise, all windows are included."
@ -269,30 +281,30 @@ msgstr ""
"Ако је изабрано, само прозори са текућег радног простора се приказују у " "Ако је изабрано, само прозори са текућег радног простора се приказују у "
"пребацивачу. У супротном, сви прозори су укључени." "пребацивачу. У супротном, сви прозори су укључени."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
msgstr "Прикачиње прозорче родитељском прозору" msgstr "Прикачиње прозорче родитељском прозору"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39 #: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid "" msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "" msgstr ""
"Овај кључ превазилази кључ у „org.gnome.mutter“ када покреће Гномову шкољку." "Овај кључ превазилази кључ у „org.gnome.mutter“ када покреће Гномову шкољку."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40 #: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "" msgstr ""
"Укључује поплочавање ивице приликом отпуштања прозора на ивицама екрана" "Укључује поплочавање ивице приликом отпуштања прозора на ивицама екрана"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41 #: ../data/org.gnome.shell.gschema.xml.in.in.h:43
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Радним просторима се управља динамички" msgstr "Радним просторима се управља динамички"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42 #: ../data/org.gnome.shell.gschema.xml.in.in.h:44
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Радни простори само на примарном монитору" msgstr "Радни простори само на примарном монитору"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43 #: ../data/org.gnome.shell.gschema.xml.in.in.h:45
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Застој првог плана се мења у режиму миша док се показивач не заустави" msgstr "Застој првог плана се мења у режиму миша док се показивач не заустави"
@ -300,51 +312,52 @@ msgstr "Застој првог плана се мења у режиму миш
msgid "Network Login" msgid "Network Login"
msgstr "Мрежна пријава" msgstr "Мрежна пријава"
#: ../js/extensionPrefs/main.js:122 #: ../js/extensionPrefs/main.js:117
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "Дошло је до грешке при учитавању прозорчета поставки за „%s“:" msgstr "Дошло је до грешке при учитавању прозорчета поставки за „%s“:"
#: ../js/extensionPrefs/main.js:154 #: ../js/extensionPrefs/main.js:149
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "Проширења Гномове шкољке" msgstr "Проширења Гномове шкољке"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145 #: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452 #: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916 #: ../js/ui/status/network.js:916
msgid "Cancel" msgid "Cancel"
msgstr "Откажи" msgstr "Откажи"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215 #: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:447 #: ../js/gdm/authPrompt.js:448
msgid "Next" msgid "Next"
msgstr "Даље" msgstr "Даље"
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403 #: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59 #: ../js/ui/unlockDialog.js:59
msgid "Unlock" msgid "Unlock"
msgstr "Откључај" msgstr "Откључај"
#: ../js/gdm/authPrompt.js:213 #: ../js/gdm/authPrompt.js:214
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Пријави ме" msgstr "Пријави ме"
#: ../js/gdm/loginDialog.js:281 #: ../js/gdm/loginDialog.js:285
msgid "Choose Session" msgid "Choose Session"
msgstr "Изабери сесију" msgstr "Изабери сесију"
#. translators: this message is shown below the user list on the #. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for #. login screen. It can be activated to reveal an entry for
#. manually entering the username. #. manually entering the username.
#: ../js/gdm/loginDialog.js:431 #: ../js/gdm/loginDialog.js:435
msgid "Not listed?" msgid "Not listed?"
msgstr "Није на списку?" msgstr "Није на списку?"
#. Translators: this message is shown below the username entry field #. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm #. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:850 #: ../js/gdm/loginDialog.js:854
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(нпр., корисник или %s)" msgstr "(нпр., корисник или %s)"
@ -352,12 +365,12 @@ msgstr "(нпр., корисник или %s)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271 #: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289 #: ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
msgstr "Корисничко име: " msgstr "Корисничко име: "
#: ../js/gdm/loginDialog.js:1184 #: ../js/gdm/loginDialog.js:1196
msgid "Login Window" msgid "Login Window"
msgstr "Прозор за пријављивање" msgstr "Прозор за пријављивање"
@ -493,16 +506,36 @@ msgstr "Додај у омиљене"
msgid "Show Details" msgid "Show Details"
msgstr "Прикажи детаље" msgstr "Прикажи детаље"
#: ../js/ui/appFavorites.js:132 #: ../js/ui/appFavorites.js:134
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "„%s“ је додат међу омиљене." msgstr "„%s“ је додат међу омиљене."
#: ../js/ui/appFavorites.js:166 #: ../js/ui/appFavorites.js:168
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "„%s“ је уклоњен из омиљених." msgstr "„%s“ је уклоњен из омиљених."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Изаберите звучни уређај"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "Подешавања звука"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Слушалице"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Слушалице са микрофоном"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Микрофон"
#: ../js/ui/backgroundMenu.js:19 #: ../js/ui/backgroundMenu.js:19
msgid "Change Background…" msgid "Change Background…"
msgstr "Измени позадину…" msgstr "Измени позадину…"
@ -511,13 +544,12 @@ msgstr "Измени позадину…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Подешавања приказа" msgstr "Подешавања приказа"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "Подешавања" msgstr "Подешавања"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). #. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:55 #: ../js/ui/calendar.js:47
msgctxt "calendar-no-work" msgctxt "calendar-no-work"
msgid "06" msgid "06"
msgstr "06" msgstr "06"
@ -527,94 +559,96 @@ msgstr "06"
#. * NOTE: These grid abbreviations are always shown together #. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S". #. * and in order, e.g. "S M T W T F S".
#. #.
#: ../js/ui/calendar.js:84 #: ../js/ui/calendar.js:76
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "Н" msgstr "Н"
#. Translators: Calendar grid abbreviation for Monday #. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:86 #: ../js/ui/calendar.js:78
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "П" msgstr "П"
#. Translators: Calendar grid abbreviation for Tuesday #. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:88 #: ../js/ui/calendar.js:80
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "У" msgstr "У"
#. Translators: Calendar grid abbreviation for Wednesday #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:90 #: ../js/ui/calendar.js:82
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "С" msgstr "С"
#. Translators: Calendar grid abbreviation for Thursday #. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:92 #: ../js/ui/calendar.js:84
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "Ч" msgstr "Ч"
#. Translators: Calendar grid abbreviation for Friday #. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:94 #: ../js/ui/calendar.js:86
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "П" msgstr "П"
#. Translators: Calendar grid abbreviation for Saturday #. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:96 #: ../js/ui/calendar.js:88
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
msgstr "С" msgstr "С"
#: ../js/ui/calendar.js:566 #: ../js/ui/calendar.js:416
msgid "Previous month" msgid "Previous month"
msgstr "Претходни месец" msgstr "Претходни месец"
#: ../js/ui/calendar.js:576 #: ../js/ui/calendar.js:426
msgid "Next month" msgid "Next month"
msgstr "Следећи месец" msgstr "Следећи месец"
#: ../js/ui/calendar.js:783 #: ../js/ui/calendar.js:579
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:634
msgid "Week %V" msgid "Week %V"
msgstr "Седмица %V" msgstr "Седмица %V"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. #.
#: ../js/ui/calendar.js:1188 #: ../js/ui/calendar.js:695
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Цео дан" msgstr "Цео дан"
#: ../js/ui/calendar.js:1291 #: ../js/ui/calendar.js:821
msgid "Clear section"
msgstr "Очисти одељак"
#: ../js/ui/calendar.js:1518
msgid "Events" msgid "Events"
msgstr "Догађаји" msgstr "Догађаји"
#: ../js/ui/calendar.js:1527 #: ../js/ui/calendar.js:830
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d. %B" msgstr "%A, %d. %B"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:834
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A, %d. %B %Y." msgstr "%A, %d. %B %Y."
#: ../js/ui/calendar.js:1616 #: ../js/ui/calendar.js:919
msgid "Notifications" msgid "Notifications"
msgstr "Обавештења" msgstr "Обавештења"
#: ../js/ui/calendar.js:1767 #: ../js/ui/calendar.js:1070
msgid "No Notifications" msgid "No Notifications"
msgstr "Без обавештења" msgstr "Без обавештења"
#: ../js/ui/calendar.js:1770 #: ../js/ui/calendar.js:1073
msgid "No Events" msgid "No Events"
msgstr "Без догађаја" msgstr "Без догађаја"
@ -626,7 +660,7 @@ msgstr "Спољни уређај је прикључен"
msgid "External drive disconnected" msgid "External drive disconnected"
msgstr "Спољни уређај је искључен" msgstr "Спољни уређај је искључен"
#: ../js/ui/components/autorunManager.js:354 #: ../js/ui/components/autorunManager.js:355
#, javascript-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
msgstr "Отвори програмом %s" msgstr "Отвори програмом %s"
@ -948,11 +982,11 @@ msgid "Keyboard"
msgstr "Тастатура" msgstr "Тастатура"
#. translators: 'Hide' is a verb #. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66 #: ../js/ui/legacyTray.js:65
msgid "Hide tray" msgid "Hide tray"
msgstr "Сакриј касету" msgstr "Сакриј касету"
#: ../js/ui/legacyTray.js:107 #: ../js/ui/legacyTray.js:106
msgid "Status Icons" msgid "Status Icons"
msgstr "Иконице стања" msgstr "Иконице стања"
@ -980,7 +1014,7 @@ msgstr "Укључено"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled" msgid "Disabled"
msgstr "Искључено" msgstr "Искључено"
@ -1004,10 +1038,26 @@ msgstr "Прикажи код"
msgid "Web Page" msgid "Web Page"
msgstr "Веб страница" msgstr "Веб страница"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Очисти одељак"
#: ../js/ui/messageTray.js:1486 #: ../js/ui/messageTray.js:1486
msgid "System Information" msgid "System Information"
msgstr "Подаци о систему" msgstr "Подаци о систему"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Непознат извођач"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "Непознат наслов"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Медији"
#: ../js/ui/overview.js:84 #: ../js/ui/overview.js:84
msgid "Undo" msgid "Undo"
msgstr "Опозови" msgstr "Опозови"
@ -1024,17 +1074,22 @@ msgstr "Преглед"
msgid "Type to search…" msgid "Type to search…"
msgstr "Упишите текст за претрагу…" msgstr "Упишите текст за претрагу…"
#: ../js/ui/panel.js:352 #: ../js/ui/panel.js:358
msgid "Quit" msgid "Quit"
msgstr "Изађи" msgstr "Изађи"
#. Translators: If there is no suitable word for "Activities" #. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". #. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:404 #: ../js/ui/panel.js:414
msgid "Activities" msgid "Activities"
msgstr "Активности" msgstr "Активности"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Систем"
#: ../js/ui/panel.js:807
msgid "Top Bar" msgid "Top Bar"
msgstr "Горња трака" msgstr "Горња трака"
@ -1047,15 +1102,15 @@ msgstr "Горња трака"
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:70 #: ../js/ui/runDialog.js:71
msgid "Enter a Command" msgid "Enter a Command"
msgstr "Унесите наредбу" msgstr "Унесите наредбу"
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162 #: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
msgid "Close" msgid "Close"
msgstr "Затвори" msgstr "Затвори"
#: ../js/ui/runDialog.js:281 #: ../js/ui/runDialog.js:282
msgid "Restarting…" msgid "Restarting…"
msgstr "Поновно покрећем…" msgstr "Поновно покрећем…"
@ -1182,19 +1237,16 @@ msgstr "Велики контраст"
msgid "Large Text" msgid "Large Text"
msgstr "Велики текст" msgstr "Велики текст"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178 #: ../js/ui/status/bluetooth.js:47
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279 msgid "Bluetooth"
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90 msgstr "Блутут"
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Искључи"
#: ../js/ui/status/bluetooth.js:54 #: ../js/ui/status/bluetooth.js:56
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Подешавања Блутута" msgstr "Подешавања Блутута"
#. Translators: this is the number of connected bluetooth devices #. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:105 #: ../js/ui/status/bluetooth.js:136
#, javascript-format #, javascript-format
msgid "%d Connected" msgid "%d Connected"
msgid_plural "%d Connected" msgid_plural "%d Connected"
@ -1203,10 +1255,25 @@ msgstr[1] "%d повезана"
msgstr[2] "%d повезано" msgstr[2] "%d повезано"
msgstr[3] "%d повезан" msgstr[3] "%d повезан"
#: ../js/ui/status/bluetooth.js:107 #: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "Искљ."
#: ../js/ui/status/bluetooth.js:140
msgid "Not In Use" msgid "Not In Use"
msgstr "Није у употреби" msgstr "Није у употреби"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Укључи"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Искључи"
#: ../js/ui/status/brightness.js:44 #: ../js/ui/status/brightness.js:44
msgid "Brightness" msgid "Brightness"
msgstr "Осветљеност" msgstr "Осветљеност"
@ -1215,30 +1282,50 @@ msgstr "Осветљеност"
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Покажи распоред тастатуре" msgstr "Покажи распоред тастатуре"
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177 #: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
msgid "Location Enabled" msgid "Location Enabled"
msgstr "Одређивање места укључено" msgstr "Одређивање места укључено"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178 #: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
msgid "Disable" msgid "Disable"
msgstr "Искључи" msgstr "Искључи"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:109
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "Подешавања приватности" msgstr "Подешавања приватности"
#: ../js/ui/status/location.js:176 #: ../js/ui/status/location.js:214
msgid "Location In Use" msgid "Location In Use"
msgstr "Одређивање места се користи" msgstr "Одређивање места се користи"
#: ../js/ui/status/location.js:180 #: ../js/ui/status/location.js:218
msgid "Location Disabled" msgid "Location Disabled"
msgstr "Одређивање места искључено" msgstr "Одређивање места искључено"
#: ../js/ui/status/location.js:181 #: ../js/ui/status/location.js:219
msgid "Enable" msgid "Enable"
msgstr "Укључи" msgstr "Укључи"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Забрани приступ"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Дозволи приступ"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Да ли да „%s“ дам приступ вашем месту?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"Приступ месту можете да измените у било које време у подешавањима "
"приватности."
#: ../js/ui/status/network.js:101 #: ../js/ui/status/network.js:101
msgid "<unknown>" msgid "<unknown>"
msgstr "<непознато>" msgstr "<непознато>"
@ -1374,10 +1461,6 @@ msgstr "Изабери мрежу"
msgid "Wi-Fi Settings" msgid "Wi-Fi Settings"
msgstr "Подешавања бежичне везе" msgstr "Подешавања бежичне везе"
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Укључи"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296 #: ../js/ui/status/network.js:1296
#, javascript-format #, javascript-format
@ -1427,31 +1510,36 @@ msgstr "Повезивање није успело"
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Активирање мрежне везе није успело" msgstr "Активирање мрежне везе није успело"
#: ../js/ui/status/power.js:49 #: ../js/ui/status/power.js:61
msgid "Power Settings" msgid "Power Settings"
msgstr "Подешавања напајања" msgstr "Подешавања напајања"
#: ../js/ui/status/power.js:65 #: ../js/ui/status/power.js:77
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Потпуно пуна" msgstr "Потпуно пуна"
#. 0 is reported when UPower does not have enough data #. 0 is reported when UPower does not have enough data
#. to estimate battery life #. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78 #: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
msgid "Estimating…" msgid "Estimating…"
msgstr "Приближно…" msgstr "Приближно…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>) #. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:98
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "Преостаје %d:%02d (%d%%)" msgstr "Преостало време %d:%02d (%d %%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>) #. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91 #: ../js/ui/status/power.js:103
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "%d:%02d до краја пуњења (%d%%)" msgstr "%d:%02d до краја пуњења (%d %%)"
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
#, javascript-format
msgid "%d%%"
msgstr "%d%%"
#. The menu only appears when airplane mode is on, so just #. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically #. statically build it as if it was on, rather than dynamically
@ -1492,13 +1580,9 @@ msgstr "Промена јачине звука"
msgid "Volume" msgid "Volume"
msgstr "Јачина звука" msgstr "Јачина звука"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Микрофон"
#: ../js/ui/unlockDialog.js:67 #: ../js/ui/unlockDialog.js:67
msgid "Log in as another user" msgid "Log in as another user"
msgstr "Пријавите се као други корсник" msgstr "Пријавите се као други корисник"
#: ../js/ui/unlockDialog.js:84 #: ../js/ui/unlockDialog.js:84
msgid "Unlock Window" msgid "Unlock Window"
@ -1618,7 +1702,7 @@ msgstr "Календар Еволуције"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1837 #: ../src/gvc/gvc-mixer-control.c:1835
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1629,7 +1713,7 @@ msgstr[3] "%u излаз"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1847 #: ../src/gvc/gvc-mixer-control.c:1845
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
@ -1638,50 +1722,53 @@ msgstr[1] "%u улаза"
msgstr[2] "%u улаза" msgstr[2] "%u улаза"
msgstr[3] "%u улаз" msgstr[3] "%u улаз"
#: ../src/gvc/gvc-mixer-control.c:2373 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "Системски звуци" msgstr "Системски звуци"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Исписује издање" msgstr "Исписује издање"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Који режим користи ГДМ за екран пријављивања" msgstr "Који режим користи ГДМ за екран пријављивања"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Користи нарочит режим, нпр. „gdm“ за екран пријављивања" msgstr "Користи нарочит режим, нпр. „gdm“ за екран пријављивања"
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "Исписује могуће режиме" msgstr "Исписује могуће режиме"
#: ../src/shell-app.c:239 #: ../src/shell-app.c:246
msgctxt "program" msgctxt "program"
msgid "Unknown" msgid "Unknown"
msgstr "Непознат" msgstr "Непознат"
#: ../src/shell-app.c:480 #: ../src/shell-app.c:487
#, c-format #, c-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Нисам успео да покренем „%s“" msgstr "Нисам успео да покренем „%s“"
#: ../src/shell-keyring-prompt.c:742 #: ../src/shell-keyring-prompt.c:730
msgid "Passwords do not match." msgid "Passwords do not match."
msgstr "Лозинке се не подударају." msgstr "Лозинке се не подударају."
#: ../src/shell-keyring-prompt.c:750 #: ../src/shell-keyring-prompt.c:738
msgid "Password cannot be blank" msgid "Password cannot be blank"
msgstr "Лозинка не може бити празна" msgstr "Лозинка не може бити празна"
#: ../src/shell-polkit-authentication-agent.c:346 #: ../src/shell-polkit-authentication-agent.c:353
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "Корисник је одбацио прозорче за потврђивање идентитета" msgstr "Корисник је одбацио прозорче за потврђивање идентитета"
#~ msgid "Bluetooth" #~ msgid "%s is requesting access to your location."
#~ msgstr "Блутут" #~ msgstr "„%s“ захтева приступ вашем месту."
#~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "Гномова шкољка (вајланд састављач)"
#~ msgid "%d Connected Device" #~ msgid "%d Connected Device"
#~ msgid_plural "%d Connected Devices" #~ msgid_plural "%d Connected Devices"
@ -1690,9 +1777,6 @@ msgstr "Корисник је одбацио прозорче за потврђ
#~ msgstr[2] "%d прикључених уређаја" #~ msgstr[2] "%d прикључених уређаја"
#~ msgstr[3] "%d прикључени уређај" #~ msgstr[3] "%d прикључени уређај"
#~ msgid "Off"
#~ msgstr "Искљ."
#~ msgid "Authentication required" #~ msgid "Authentication required"
#~ msgstr "Потребно је потврђивање идентитета" #~ msgstr "Потребно је потврђивање идентитета"
@ -1898,9 +1982,6 @@ msgstr "Корисник је одбацио прозорче за потврђ
#~ msgid "View account" #~ msgid "View account"
#~ msgstr "Види налог" #~ msgstr "Види налог"
#~ msgid "Unknown reason"
#~ msgstr "Непознат разлог"
#~ msgid "Open Calendar" #~ msgid "Open Calendar"
#~ msgstr "Отвори календар" #~ msgstr "Отвори календар"
@ -2002,9 +2083,6 @@ msgstr "Корисник је одбацио прозорче за потврђ
#~ msgid "Device %s wants access to the service '%s'" #~ msgid "Device %s wants access to the service '%s'"
#~ msgstr "Уређај „%s“ жели приступ услузи „%s“" #~ msgstr "Уређај „%s“ жели приступ услузи „%s“"
#~ msgid "Always grant access"
#~ msgstr "Увек дозволи приступ"
#~ msgid "Grant this time only" #~ msgid "Grant this time only"
#~ msgstr "Одобри само овај пут" #~ msgstr "Одобри само овај пут"

View File

@ -1,28 +1,28 @@
# Serbian translation for gnome-shell. # Serbian translation for gnome-shell.
# Courtesy of Prevod.org team (http://prevod.org/) -- 2010—2015. # Courtesy of Prevod.org team (http://prevod.org/) -- 2010—2016.
# Copyright (C) 2010 gnome-shell's COPYRIGHT HOLDER # Copyright (C) 2010 gnome-shell's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell package. # This file is distributed under the same license as the gnome-shell package.
#
# Translators:
# Miloš Popović <gpopac@gmail.com>, 2010—2011. # Miloš Popović <gpopac@gmail.com>, 2010—2011.
# Miroslav Nikolić <miroslavnikolic@rocketmail.com>, 2011—2015. # Miroslav Nikolić <miroslavnikolic@rocketmail.com>, 2011—2016.
# Marko M. Kostić <marko.m.kostic@gmail.com>, 2016.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2015-09-22 08:38+0000\n" "POT-Creation-Date: 2016-03-10 22:19+0000\n"
"PO-Revision-Date: 2015-09-22 13:35+0200\n" "PO-Revision-Date: 2016-03-11 02:53+0200\n"
"Last-Translator: Marko M. Kostić (Marko M. Kost) <marko.m.kostic@gmail." "Last-Translator: Miroslav Nikolić <miroslavnikolic@rocketmail.com>\n"
"com>\n" "Language-Team: Serbian <(gnom@prevod.org)>\n"
"Language-Team: Serbian <gnom@prevod.org>\n"
"Language: sr\n" "Language: sr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n" "Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : "
"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Project-Style: gnome\n" "X-Project-Style: gnome\n"
"X-Generator: Poedit 1.8.4\n"
"X-Poedit-Bookmarks: -1,224,-1,-1,-1,-1,-1,-1,-1,-1\n"
#: ../data/50-gnome-shell-system.xml.in.h:1 #: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System" msgid "System"
@ -48,15 +48,6 @@ msgstr "Prikaži sve programe"
msgid "Open the application menu" msgid "Open the application menu"
msgstr "Otvorite izbornik programa" msgstr "Otvorite izbornik programa"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "Gnomova školjka"
#: ../data/gnome-shell.desktop.in.in.h:2
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Upravnik prozorima i pokretač programa"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "Postavke proširenja Gnomove školjke" msgstr "Postavke proširenja Gnomove školjke"
@ -65,9 +56,13 @@ msgstr "Postavke proširenja Gnomove školjke"
msgid "Configure GNOME Shell Extensions" msgid "Configure GNOME Shell Extensions"
msgstr "Podesite proširenja Gnomove školjke" msgstr "Podesite proširenja Gnomove školjke"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1 #: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)" msgid "GNOME Shell"
msgstr "Gnomova školjka (vajland sastavljač)" msgstr "Gnomova školjka"
#: ../data/org.gnome.Shell.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Upravnik prozorima i pokretač programa"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1 #: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2" msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -172,74 +167,91 @@ msgstr ""
"polja za izbor." "polja za izbor."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18 #: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr "Da li je osnovni adapter blututa podesio njemu pridružene uređaje"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
"powered, or if there were devices set up associated with the default "
"adapter. This will be reset if the default adapter is ever seen not to have "
"devices associated to it."
msgstr ""
"Školjka će prikazati stavku izbornika blututa samo ako je adapter blututa "
"upaljen, ili ako ima podešenih uređaja pridruženih osnovnom adapteru. Ovo će "
"se vratiti na početno stanje ako se ustanovi da osnovni adapter nema njemu "
"pridruženih uređaja."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar" msgid "Show the week date in the calendar"
msgstr "Prikazuje dan u nedelji u kalendaru" msgstr "Prikazuje dan u nedelji u kalendaru"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19 #: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "If true, display the ISO week date in the calendar." msgid "If true, display the ISO week date in the calendar."
msgstr "Ako je izabrano, prikazuje ISO dan u nedelji u kalendaru." msgstr "Ako je izabrano, prikazuje ISO dan u nedelji u kalendaru."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20 #: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the application menu" msgid "Keybinding to open the application menu"
msgstr "Prečica za otvaranje izbornika programa" msgstr "Prečica za otvaranje izbornika programa"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
msgid "Keybinding to open the application menu." msgid "Keybinding to open the application menu."
msgstr "Prečica za otvaranje izbornika programa." msgstr "Prečica za otvaranje izbornika programa."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the \"Show Applications\" view" msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Prečica za otvaranje pregleda „Prikaži programe“" msgstr "Prečica za otvaranje pregleda „Prikaži programe“"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "" msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview." "Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr "Prečica za otvaranje pregleda „Prikaži programe“ u pregledu aktivnosti." msgstr "Prečica za otvaranje pregleda „Prikaži programe“ u pregledu aktivnosti."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "Prečica za otvaranje pregleda" msgstr "Prečica za otvaranje pregleda"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25 #: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "Prečica za otvaranje pregleda aktivnosti." msgstr "Prečica za otvaranje pregleda aktivnosti."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to toggle the visibility of the notification list" msgid "Keybinding to toggle the visibility of the notification list"
msgstr "Prečica za okidanje vidljivosti spiska obaveštenja" msgstr "Prečica za okidanje vidljivosti spiska obaveštenja"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27 #: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to toggle the visibility of the notification list." msgid "Keybinding to toggle the visibility of the notification list."
msgstr "Prečica za okidanje vidljivosti spiska obaveštenja." msgstr "Prečica za okidanje vidljivosti spiska obaveštenja."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "Prečica za postavljanje u žižu radnog obaveštenja" msgstr "Prečica za postavljanje u žižu radnog obaveštenja"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29 #: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "Prečica za postavljanje u žižu radnog obaveštenja." msgstr "Prečica za postavljanje u žižu radnog obaveštenja."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "" msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes" "Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr "" msgstr ""
"Sveza tastera koja pauzira i nastavlja sve pokrenute blizance, za svrhe " "Sveza tastera koja pauzira i nastavlja sve pokrenute blizance, za svrhe "
"pročišćavanja" "pročišćavanja"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31 #: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Which keyboard to use" msgid "Which keyboard to use"
msgstr "Koja će tastatura biti korišćena" msgstr "Koja će tastatura biti korišćena"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32 #: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid "The type of keyboard to use." msgid "The type of keyboard to use."
msgstr "Vrsta tastature za upotrebu." msgstr "Vrsta tastature za upotrebu."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33 #: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "Ograničava prebacivača na tekući radni prostor." msgstr "Ograničava prebacivača na tekući radni prostor."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34 #: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid "" msgid ""
"If true, only applications that have windows on the current workspace are " "If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included." "shown in the switcher. Otherwise, all applications are included."
@ -247,11 +259,11 @@ msgstr ""
"Ako je izabrano, samo programi koji imaju prozore na tekućem radnom prostoru " "Ako je izabrano, samo programi koji imaju prozore na tekućem radnom prostoru "
"se prikazuju u prebacivaču. U suprotnom, svi programi su uključeni." "se prikazuju u prebacivaču. U suprotnom, svi programi su uključeni."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35 #: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "The application icon mode." msgid "The application icon mode."
msgstr "Režim ikonice programa." msgstr "Režim ikonice programa."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36 #: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "" msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities " "Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-" "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
@ -261,7 +273,7 @@ msgstr ""
"„thumbnail-only“ (prikazuje sličicu prozora), „app-icon-only“ (prikazuje " "„thumbnail-only“ (prikazuje sličicu prozora), „app-icon-only“ (prikazuje "
"samo ikonicu programa) ili „both“ (oba)." "samo ikonicu programa) ili „both“ (oba)."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid "" msgid ""
"If true, only windows from the current workspace are shown in the switcher. " "If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included." "Otherwise, all windows are included."
@ -269,30 +281,30 @@ msgstr ""
"Ako je izabrano, samo prozori sa tekućeg radnog prostora se prikazuju u " "Ako je izabrano, samo prozori sa tekućeg radnog prostora se prikazuju u "
"prebacivaču. U suprotnom, svi prozori su uključeni." "prebacivaču. U suprotnom, svi prozori su uključeni."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
msgstr "Prikačinje prozorče roditeljskom prozoru" msgstr "Prikačinje prozorče roditeljskom prozoru"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39 #: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid "" msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "" msgstr ""
"Ovaj ključ prevazilazi ključ u „org.gnome.mutter“ kada pokreće Gnomovu školjku." "Ovaj ključ prevazilazi ključ u „org.gnome.mutter“ kada pokreće Gnomovu školjku."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40 #: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "" msgstr ""
"Uključuje popločavanje ivice prilikom otpuštanja prozora na ivicama ekrana" "Uključuje popločavanje ivice prilikom otpuštanja prozora na ivicama ekrana"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41 #: ../data/org.gnome.shell.gschema.xml.in.in.h:43
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Radnim prostorima se upravlja dinamički" msgstr "Radnim prostorima se upravlja dinamički"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42 #: ../data/org.gnome.shell.gschema.xml.in.in.h:44
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Radni prostori samo na primarnom monitoru" msgstr "Radni prostori samo na primarnom monitoru"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43 #: ../data/org.gnome.shell.gschema.xml.in.in.h:45
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Zastoj prvog plana se menja u režimu miša dok se pokazivač ne zaustavi" msgstr "Zastoj prvog plana se menja u režimu miša dok se pokazivač ne zaustavi"
@ -300,51 +312,52 @@ msgstr "Zastoj prvog plana se menja u režimu miša dok se pokazivač ne zaustav
msgid "Network Login" msgid "Network Login"
msgstr "Mrežna prijava" msgstr "Mrežna prijava"
#: ../js/extensionPrefs/main.js:122 #: ../js/extensionPrefs/main.js:117
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "Došlo je do greške pri učitavanju prozorčeta postavki za „%s“:" msgstr "Došlo je do greške pri učitavanju prozorčeta postavki za „%s“:"
#: ../js/extensionPrefs/main.js:154 #: ../js/extensionPrefs/main.js:149
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "Proširenja Gnomove školjke" msgstr "Proširenja Gnomove školjke"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145 #: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452 #: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916 #: ../js/ui/status/network.js:916
msgid "Cancel" msgid "Cancel"
msgstr "Otkaži" msgstr "Otkaži"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215 #: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:447 #: ../js/gdm/authPrompt.js:448
msgid "Next" msgid "Next"
msgstr "Dalje" msgstr "Dalje"
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403 #: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59 #: ../js/ui/unlockDialog.js:59
msgid "Unlock" msgid "Unlock"
msgstr "Otključaj" msgstr "Otključaj"
#: ../js/gdm/authPrompt.js:213 #: ../js/gdm/authPrompt.js:214
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Prijavi me" msgstr "Prijavi me"
#: ../js/gdm/loginDialog.js:281 #: ../js/gdm/loginDialog.js:285
msgid "Choose Session" msgid "Choose Session"
msgstr "Izaberi sesiju" msgstr "Izaberi sesiju"
#. translators: this message is shown below the user list on the #. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for #. login screen. It can be activated to reveal an entry for
#. manually entering the username. #. manually entering the username.
#: ../js/gdm/loginDialog.js:431 #: ../js/gdm/loginDialog.js:435
msgid "Not listed?" msgid "Not listed?"
msgstr "Nije na spisku?" msgstr "Nije na spisku?"
#. Translators: this message is shown below the username entry field #. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm #. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:850 #: ../js/gdm/loginDialog.js:854
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(npr., korisnik ili %s)" msgstr "(npr., korisnik ili %s)"
@ -352,12 +365,12 @@ msgstr "(npr., korisnik ili %s)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271 #: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289 #: ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
msgstr "Korisničko ime: " msgstr "Korisničko ime: "
#: ../js/gdm/loginDialog.js:1184 #: ../js/gdm/loginDialog.js:1196
msgid "Login Window" msgid "Login Window"
msgstr "Prozor za prijavljivanje" msgstr "Prozor za prijavljivanje"
@ -493,16 +506,36 @@ msgstr "Dodaj u omiljene"
msgid "Show Details" msgid "Show Details"
msgstr "Prikaži detalje" msgstr "Prikaži detalje"
#: ../js/ui/appFavorites.js:132 #: ../js/ui/appFavorites.js:134
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "„%s“ je dodat među omiljene." msgstr "„%s“ je dodat među omiljene."
#: ../js/ui/appFavorites.js:166 #: ../js/ui/appFavorites.js:168
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "„%s“ je uklonjen iz omiljenih." msgstr "„%s“ je uklonjen iz omiljenih."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Izaberite zvučni uređaj"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "Podešavanja zvuka"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Slušalice"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Slušalice sa mikrofonom"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/backgroundMenu.js:19 #: ../js/ui/backgroundMenu.js:19
msgid "Change Background…" msgid "Change Background…"
msgstr "Izmeni pozadinu…" msgstr "Izmeni pozadinu…"
@ -511,13 +544,12 @@ msgstr "Izmeni pozadinu…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Podešavanja prikaza" msgstr "Podešavanja prikaza"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "Podešavanja" msgstr "Podešavanja"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). #. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:55 #: ../js/ui/calendar.js:47
msgctxt "calendar-no-work" msgctxt "calendar-no-work"
msgid "06" msgid "06"
msgstr "06" msgstr "06"
@ -527,94 +559,96 @@ msgstr "06"
#. * NOTE: These grid abbreviations are always shown together #. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S". #. * and in order, e.g. "S M T W T F S".
#. #.
#: ../js/ui/calendar.js:84 #: ../js/ui/calendar.js:76
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "N" msgstr "N"
#. Translators: Calendar grid abbreviation for Monday #. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:86 #: ../js/ui/calendar.js:78
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "P" msgstr "P"
#. Translators: Calendar grid abbreviation for Tuesday #. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:88 #: ../js/ui/calendar.js:80
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "U" msgstr "U"
#. Translators: Calendar grid abbreviation for Wednesday #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:90 #: ../js/ui/calendar.js:82
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "S" msgstr "S"
#. Translators: Calendar grid abbreviation for Thursday #. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:92 #: ../js/ui/calendar.js:84
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "Č" msgstr "Č"
#. Translators: Calendar grid abbreviation for Friday #. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:94 #: ../js/ui/calendar.js:86
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "P" msgstr "P"
#. Translators: Calendar grid abbreviation for Saturday #. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:96 #: ../js/ui/calendar.js:88
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
msgstr "S" msgstr "S"
#: ../js/ui/calendar.js:566 #: ../js/ui/calendar.js:416
msgid "Previous month" msgid "Previous month"
msgstr "Prethodni mesec" msgstr "Prethodni mesec"
#: ../js/ui/calendar.js:576 #: ../js/ui/calendar.js:426
msgid "Next month" msgid "Next month"
msgstr "Sledeći mesec" msgstr "Sledeći mesec"
#: ../js/ui/calendar.js:783 #: ../js/ui/calendar.js:579
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:634
msgid "Week %V" msgid "Week %V"
msgstr "Sedmica %V" msgstr "Sedmica %V"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. #.
#: ../js/ui/calendar.js:1188 #: ../js/ui/calendar.js:695
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Ceo dan" msgstr "Ceo dan"
#: ../js/ui/calendar.js:1291 #: ../js/ui/calendar.js:821
msgid "Clear section"
msgstr "Očisti odeljak"
#: ../js/ui/calendar.js:1518
msgid "Events" msgid "Events"
msgstr "Događaji" msgstr "Događaji"
#: ../js/ui/calendar.js:1527 #: ../js/ui/calendar.js:830
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d. %B" msgstr "%A, %d. %B"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:834
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A, %d. %B %Y." msgstr "%A, %d. %B %Y."
#: ../js/ui/calendar.js:1616 #: ../js/ui/calendar.js:919
msgid "Notifications" msgid "Notifications"
msgstr "Obaveštenja" msgstr "Obaveštenja"
#: ../js/ui/calendar.js:1767 #: ../js/ui/calendar.js:1070
msgid "No Notifications" msgid "No Notifications"
msgstr "Bez obaveštenja" msgstr "Bez obaveštenja"
#: ../js/ui/calendar.js:1770 #: ../js/ui/calendar.js:1073
msgid "No Events" msgid "No Events"
msgstr "Bez događaja" msgstr "Bez događaja"
@ -626,7 +660,7 @@ msgstr "Spoljni uređaj je priključen"
msgid "External drive disconnected" msgid "External drive disconnected"
msgstr "Spoljni uređaj je isključen" msgstr "Spoljni uređaj je isključen"
#: ../js/ui/components/autorunManager.js:354 #: ../js/ui/components/autorunManager.js:355
#, javascript-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
msgstr "Otvori programom %s" msgstr "Otvori programom %s"
@ -948,11 +982,11 @@ msgid "Keyboard"
msgstr "Tastatura" msgstr "Tastatura"
#. translators: 'Hide' is a verb #. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66 #: ../js/ui/legacyTray.js:65
msgid "Hide tray" msgid "Hide tray"
msgstr "Sakrij kasetu" msgstr "Sakrij kasetu"
#: ../js/ui/legacyTray.js:107 #: ../js/ui/legacyTray.js:106
msgid "Status Icons" msgid "Status Icons"
msgstr "Ikonice stanja" msgstr "Ikonice stanja"
@ -980,7 +1014,7 @@ msgstr "Uključeno"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled" msgid "Disabled"
msgstr "Isključeno" msgstr "Isključeno"
@ -1004,10 +1038,26 @@ msgstr "Prikaži kod"
msgid "Web Page" msgid "Web Page"
msgstr "Veb stranica" msgstr "Veb stranica"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Očisti odeljak"
#: ../js/ui/messageTray.js:1486 #: ../js/ui/messageTray.js:1486
msgid "System Information" msgid "System Information"
msgstr "Podaci o sistemu" msgstr "Podaci o sistemu"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Nepoznat izvođač"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "Nepoznat naslov"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Mediji"
#: ../js/ui/overview.js:84 #: ../js/ui/overview.js:84
msgid "Undo" msgid "Undo"
msgstr "Opozovi" msgstr "Opozovi"
@ -1024,17 +1074,22 @@ msgstr "Pregled"
msgid "Type to search…" msgid "Type to search…"
msgstr "Upišite tekst za pretragu…" msgstr "Upišite tekst za pretragu…"
#: ../js/ui/panel.js:352 #: ../js/ui/panel.js:358
msgid "Quit" msgid "Quit"
msgstr "Izađi" msgstr "Izađi"
#. Translators: If there is no suitable word for "Activities" #. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". #. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:404 #: ../js/ui/panel.js:414
msgid "Activities" msgid "Activities"
msgstr "Aktivnosti" msgstr "Aktivnosti"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistem"
#: ../js/ui/panel.js:807
msgid "Top Bar" msgid "Top Bar"
msgstr "Gornja traka" msgstr "Gornja traka"
@ -1047,15 +1102,15 @@ msgstr "Gornja traka"
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:70 #: ../js/ui/runDialog.js:71
msgid "Enter a Command" msgid "Enter a Command"
msgstr "Unesite naredbu" msgstr "Unesite naredbu"
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162 #: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
msgid "Close" msgid "Close"
msgstr "Zatvori" msgstr "Zatvori"
#: ../js/ui/runDialog.js:281 #: ../js/ui/runDialog.js:282
msgid "Restarting…" msgid "Restarting…"
msgstr "Ponovno pokrećem…" msgstr "Ponovno pokrećem…"
@ -1182,19 +1237,16 @@ msgstr "Veliki kontrast"
msgid "Large Text" msgid "Large Text"
msgstr "Veliki tekst" msgstr "Veliki tekst"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178 #: ../js/ui/status/bluetooth.js:47
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279 msgid "Bluetooth"
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90 msgstr "Blutut"
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Isključi"
#: ../js/ui/status/bluetooth.js:54 #: ../js/ui/status/bluetooth.js:56
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Podešavanja Blututa" msgstr "Podešavanja Blututa"
#. Translators: this is the number of connected bluetooth devices #. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:105 #: ../js/ui/status/bluetooth.js:136
#, javascript-format #, javascript-format
msgid "%d Connected" msgid "%d Connected"
msgid_plural "%d Connected" msgid_plural "%d Connected"
@ -1203,10 +1255,25 @@ msgstr[1] "%d povezana"
msgstr[2] "%d povezano" msgstr[2] "%d povezano"
msgstr[3] "%d povezan" msgstr[3] "%d povezan"
#: ../js/ui/status/bluetooth.js:107 #: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "Isklj."
#: ../js/ui/status/bluetooth.js:140
msgid "Not In Use" msgid "Not In Use"
msgstr "Nije u upotrebi" msgstr "Nije u upotrebi"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Uključi"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Isključi"
#: ../js/ui/status/brightness.js:44 #: ../js/ui/status/brightness.js:44
msgid "Brightness" msgid "Brightness"
msgstr "Osvetljenost" msgstr "Osvetljenost"
@ -1215,30 +1282,50 @@ msgstr "Osvetljenost"
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Pokaži raspored tastature" msgstr "Pokaži raspored tastature"
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177 #: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
msgid "Location Enabled" msgid "Location Enabled"
msgstr "Određivanje mesta uključeno" msgstr "Određivanje mesta uključeno"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178 #: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
msgid "Disable" msgid "Disable"
msgstr "Isključi" msgstr "Isključi"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:109
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "Podešavanja privatnosti" msgstr "Podešavanja privatnosti"
#: ../js/ui/status/location.js:176 #: ../js/ui/status/location.js:214
msgid "Location In Use" msgid "Location In Use"
msgstr "Određivanje mesta se koristi" msgstr "Određivanje mesta se koristi"
#: ../js/ui/status/location.js:180 #: ../js/ui/status/location.js:218
msgid "Location Disabled" msgid "Location Disabled"
msgstr "Određivanje mesta isključeno" msgstr "Određivanje mesta isključeno"
#: ../js/ui/status/location.js:181 #: ../js/ui/status/location.js:219
msgid "Enable" msgid "Enable"
msgstr "Uključi" msgstr "Uključi"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Zabrani pristup"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Dozvoli pristup"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Da li da „%s“ dam pristup vašem mestu?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"Pristup mestu možete da izmenite u bilo koje vreme u podešavanjima "
"privatnosti."
#: ../js/ui/status/network.js:101 #: ../js/ui/status/network.js:101
msgid "<unknown>" msgid "<unknown>"
msgstr "<nepoznato>" msgstr "<nepoznato>"
@ -1374,10 +1461,6 @@ msgstr "Izaberi mrežu"
msgid "Wi-Fi Settings" msgid "Wi-Fi Settings"
msgstr "Podešavanja bežične veze" msgstr "Podešavanja bežične veze"
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Uključi"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296 #: ../js/ui/status/network.js:1296
#, javascript-format #, javascript-format
@ -1427,31 +1510,36 @@ msgstr "Povezivanje nije uspelo"
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Aktiviranje mrežne veze nije uspelo" msgstr "Aktiviranje mrežne veze nije uspelo"
#: ../js/ui/status/power.js:49 #: ../js/ui/status/power.js:61
msgid "Power Settings" msgid "Power Settings"
msgstr "Podešavanja napajanja" msgstr "Podešavanja napajanja"
#: ../js/ui/status/power.js:65 #: ../js/ui/status/power.js:77
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Potpuno puna" msgstr "Potpuno puna"
#. 0 is reported when UPower does not have enough data #. 0 is reported when UPower does not have enough data
#. to estimate battery life #. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78 #: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
msgid "Estimating…" msgid "Estimating…"
msgstr "Približno…" msgstr "Približno…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>) #. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:98
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "Preostaje %d:%02d (%d%%)" msgstr "Preostalo vreme %d:%02d (%d %%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>) #. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91 #: ../js/ui/status/power.js:103
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "%d:%02d do kraja punjenja (%d%%)" msgstr "%d:%02d do kraja punjenja (%d %%)"
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
#, javascript-format
msgid "%d%%"
msgstr "%d%%"
#. The menu only appears when airplane mode is on, so just #. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically #. statically build it as if it was on, rather than dynamically
@ -1492,13 +1580,9 @@ msgstr "Promena jačine zvuka"
msgid "Volume" msgid "Volume"
msgstr "Jačina zvuka" msgstr "Jačina zvuka"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/unlockDialog.js:67 #: ../js/ui/unlockDialog.js:67
msgid "Log in as another user" msgid "Log in as another user"
msgstr "Prijavite se kao drugi korsnik" msgstr "Prijavite se kao drugi korisnik"
#: ../js/ui/unlockDialog.js:84 #: ../js/ui/unlockDialog.js:84
msgid "Unlock Window" msgid "Unlock Window"
@ -1618,7 +1702,7 @@ msgstr "Kalendar Evolucije"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1837 #: ../src/gvc/gvc-mixer-control.c:1835
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1629,7 +1713,7 @@ msgstr[3] "%u izlaz"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1847 #: ../src/gvc/gvc-mixer-control.c:1845
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
@ -1638,50 +1722,53 @@ msgstr[1] "%u ulaza"
msgstr[2] "%u ulaza" msgstr[2] "%u ulaza"
msgstr[3] "%u ulaz" msgstr[3] "%u ulaz"
#: ../src/gvc/gvc-mixer-control.c:2373 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "Sistemski zvuci" msgstr "Sistemski zvuci"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Ispisuje izdanje" msgstr "Ispisuje izdanje"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Koji režim koristi GDM za ekran prijavljivanja" msgstr "Koji režim koristi GDM za ekran prijavljivanja"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Koristi naročit režim, npr. „gdm“ za ekran prijavljivanja" msgstr "Koristi naročit režim, npr. „gdm“ za ekran prijavljivanja"
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "Ispisuje moguće režime" msgstr "Ispisuje moguće režime"
#: ../src/shell-app.c:239 #: ../src/shell-app.c:246
msgctxt "program" msgctxt "program"
msgid "Unknown" msgid "Unknown"
msgstr "Nepoznat" msgstr "Nepoznat"
#: ../src/shell-app.c:480 #: ../src/shell-app.c:487
#, c-format #, c-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Nisam uspeo da pokrenem „%s“" msgstr "Nisam uspeo da pokrenem „%s“"
#: ../src/shell-keyring-prompt.c:742 #: ../src/shell-keyring-prompt.c:730
msgid "Passwords do not match." msgid "Passwords do not match."
msgstr "Lozinke se ne podudaraju." msgstr "Lozinke se ne podudaraju."
#: ../src/shell-keyring-prompt.c:750 #: ../src/shell-keyring-prompt.c:738
msgid "Password cannot be blank" msgid "Password cannot be blank"
msgstr "Lozinka ne može biti prazna" msgstr "Lozinka ne može biti prazna"
#: ../src/shell-polkit-authentication-agent.c:346 #: ../src/shell-polkit-authentication-agent.c:353
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "Korisnik je odbacio prozorče za potvrđivanje identiteta" msgstr "Korisnik je odbacio prozorče za potvrđivanje identiteta"
#~ msgid "Bluetooth" #~ msgid "%s is requesting access to your location."
#~ msgstr "Blutut" #~ msgstr "„%s“ zahteva pristup vašem mestu."
#~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "Gnomova školjka (vajland sastavljač)"
#~ msgid "%d Connected Device" #~ msgid "%d Connected Device"
#~ msgid_plural "%d Connected Devices" #~ msgid_plural "%d Connected Devices"
@ -1690,9 +1777,6 @@ msgstr "Korisnik je odbacio prozorče za potvrđivanje identiteta"
#~ msgstr[2] "%d priključenih uređaja" #~ msgstr[2] "%d priključenih uređaja"
#~ msgstr[3] "%d priključeni uređaj" #~ msgstr[3] "%d priključeni uređaj"
#~ msgid "Off"
#~ msgstr "Isklj."
#~ msgid "Authentication required" #~ msgid "Authentication required"
#~ msgstr "Potrebno je potvrđivanje identiteta" #~ msgstr "Potrebno je potvrđivanje identiteta"
@ -1898,9 +1982,6 @@ msgstr "Korisnik je odbacio prozorče za potvrđivanje identiteta"
#~ msgid "View account" #~ msgid "View account"
#~ msgstr "Vidi nalog" #~ msgstr "Vidi nalog"
#~ msgid "Unknown reason"
#~ msgstr "Nepoznat razlog"
#~ msgid "Open Calendar" #~ msgid "Open Calendar"
#~ msgstr "Otvori kalendar" #~ msgstr "Otvori kalendar"
@ -2002,9 +2083,6 @@ msgstr "Korisnik je odbacio prozorče za potvrđivanje identiteta"
#~ msgid "Device %s wants access to the service '%s'" #~ msgid "Device %s wants access to the service '%s'"
#~ msgstr "Uređaj „%s“ želi pristup usluzi „%s“" #~ msgstr "Uređaj „%s“ želi pristup usluzi „%s“"
#~ msgid "Always grant access"
#~ msgstr "Uvek dozvoli pristup"
#~ msgid "Grant this time only" #~ msgid "Grant this time only"
#~ msgstr "Odobri samo ovaj put" #~ msgstr "Odobri samo ovaj put"

505
po/sv.po

File diff suppressed because it is too large Load Diff

542
po/tr.po

File diff suppressed because it is too large Load Diff

710
po/uk.po

File diff suppressed because it is too large Load Diff

387
po/vi.po
View File

@ -1,18 +1,18 @@
# Vietnamese translation for gnome-shell. # Vietnamese translation for gnome-shell.
# Bản dịch tiếng Việt dành cho gnome-shell. # Bản dịch tiếng Việt dành cho gnome-shell.
# Copyright (C) 2015 GNOME i18n Project for Vietnamese. # Copyright (C) 2016 GNOME i18n Project for Vietnamese.
# This file is distributed under the same license as the gnome-shell package. # This file is distributed under the same license as the gnome-shell package.
# Nguyễn Thái Ngọc Duy <pclouds@gmail.com>, 2010-2013. # Nguyễn Thái Ngọc Duy <pclouds@gmail.com>, 2010-2013.
# Ngô Chin <ndtrung4419@gmail.com>, 2011. # Ngô Chin <ndtrung4419@gmail.com>, 2011.
# Trần Ngọc Quân <vnwildman@gmail.com>, 2013-2014, 2015. # Trần Ngọc Quân <vnwildman@gmail.com>, 2013-2014, 2015, 2016.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2015-09-23 22:01+0000\n" "POT-Creation-Date: 2016-03-25 22:36+0000\n"
"PO-Revision-Date: 2015-09-24 15:14+0700\n" "PO-Revision-Date: 2016-03-26 13:42+0700\n"
"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n" "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
"Language-Team: Vietnamese <gnome-vi-list@gnome.org>\n" "Language-Team: Vietnamese <gnome-vi-list@gnome.org>\n"
"Language: vi\n" "Language: vi\n"
@ -46,15 +46,6 @@ msgstr "Hiện mọi ứng dụng"
msgid "Open the application menu" msgid "Open the application menu"
msgstr "Mở trình đơn ứng dụng" msgstr "Mở trình đơn ứng dụng"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "Hệ vỏ GNOME"
#: ../data/gnome-shell.desktop.in.in.h:2
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Quản lý cửa sổ và chạy ứng dụng"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "Cá nhân hóa phần mở rộng hệ vỏ GNOME" msgstr "Cá nhân hóa phần mở rộng hệ vỏ GNOME"
@ -63,9 +54,13 @@ msgstr "Cá nhân hóa phần mở rộng hệ vỏ GNOME"
msgid "Configure GNOME Shell Extensions" msgid "Configure GNOME Shell Extensions"
msgstr "Cấu hình phần mở rộng Hệ vỏ GNOME" msgstr "Cấu hình phần mở rộng Hệ vỏ GNOME"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1 #: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)" msgid "GNOME Shell"
msgstr "Hệ vỏ GNOME (wayland compositor)" msgstr "Hệ vỏ GNOME"
#: ../data/org.gnome.Shell.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Quản lý cửa sổ và chạy ứng dụng"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1 #: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2" msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -135,7 +130,7 @@ msgstr "Hộp thoại lịch sử lệnh (Alt-F2)"
#. Translators: looking glass is a debugger and inspector tool, see https://live.gnome.org/GnomeShell/LookingGlass #. Translators: looking glass is a debugger and inspector tool, see https://live.gnome.org/GnomeShell/LookingGlass
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13 #: ../data/org.gnome.shell.gschema.xml.in.in.h:13
msgid "History for the looking glass dialog" msgid "History for the looking glass dialog"
msgstr "Lịch sử hộp thoại looking glass" msgstr "Lịch sử hộp thoại kính tìm kiếm"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14 #: ../data/org.gnome.shell.gschema.xml.in.in.h:14
msgid "Always show the 'Log out' menu item in the user menu." msgid "Always show the 'Log out' menu item in the user menu."
@ -169,72 +164,90 @@ msgstr ""
"hộp dấu kiểm." "hộp dấu kiểm."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18 #: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
"Có nên để bộ điều hợp Bluetooth mặc định phải cài đặt thiết bị liên kết với "
"nó hay không"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
"powered, or if there were devices set up associated with the default "
"adapter. This will be reset if the default adapter is ever seen not to have "
"devices associated to it."
msgstr ""
"Hệ vỏ sẽ chỉ hiển thị mục tin trình đơn Bluetooth nếu nó được bật, hoặc là "
"có các thiết bị được cài đặt liên kết với bộ tiếp hợp mặc định. Cái này sẽ "
"được đặt lại nếu bộ tiếp hợp mặc định không còn được liên kết với nó nữa."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar" msgid "Show the week date in the calendar"
msgstr "Hiện tuần trên lịch" msgstr "Hiện tuần trên lịch"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19 #: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "If true, display the ISO week date in the calendar." msgid "If true, display the ISO week date in the calendar."
msgstr "Nếu được đặt, hiện tuần trong lịch theo chuẩn ISO." msgstr "Nếu được đặt, hiện tuần trong lịch theo chuẩn ISO."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20 #: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the application menu" msgid "Keybinding to open the application menu"
msgstr "Phím mở trình đơn ứng dụng" msgstr "Phím mở trình đơn ứng dụng"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
msgid "Keybinding to open the application menu." msgid "Keybinding to open the application menu."
msgstr "Phím mở trình đơn ứng dụng." msgstr "Phím mở trình đơn ứng dụng."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the \"Show Applications\" view" msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Phím hiện “Ứng dụng”" msgstr "Phím hiện “Ứng dụng”"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "" msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview." "Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr "Phím hiện “Ứng dụng” trong tổng quan “Hoạt động”." msgstr "Phím hiện “Ứng dụng” trong “Tổng quan hoạt động”."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "Phím mở tổng quan" msgstr "Phím mở tổng quan"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25 #: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "Phím mở tổng quan hoạt động." msgstr "Phím mở tổng quan hoạt động."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to toggle the visibility of the notification list" msgid "Keybinding to toggle the visibility of the notification list"
msgstr "Phím để bật/tắt hiển thị danh sách thông báo" msgstr "Phím để bật/tắt hiển thị danh sách thông báo"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27 #: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to toggle the visibility of the notification list." msgid "Keybinding to toggle the visibility of the notification list."
msgstr "Phím để bật/tắt hiển thị danh sách thông báo." msgstr "Phím để bật/tắt hiển thị danh sách thông báo."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "Phím để tập trung vào thông báo hoạt động" msgstr "Phím để tập trung vào thông báo hoạt động"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29 #: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "Phím để tập trung vào thông báo hoạt động." msgstr "Phím để tập trung vào thông báo hoạt động."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "" msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes" "Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr "Phím ràng buộc cái mà dừng hay tiếp tục chạy, dành cho mục đích gỡ lỗi" msgstr "Phím ràng buộc cái mà dừng hay tiếp tục chạy, dành cho mục đích gỡ lỗi"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31 #: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Which keyboard to use" msgid "Which keyboard to use"
msgstr "Bàn phím được dùng" msgstr "Bàn phím được dùng"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32 #: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid "The type of keyboard to use." msgid "The type of keyboard to use."
msgstr "Kiểu bàn phím được dùng." msgstr "Kiểu bàn phím được dùng."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33 #: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "Giới hạn bộ chuyển đổi cho không gian làm việc hiện tại." msgstr "Giới hạn bộ chuyển đổi cho không gian làm việc hiện tại."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34 #: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid "" msgid ""
"If true, only applications that have windows on the current workspace are " "If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included." "shown in the switcher. Otherwise, all applications are included."
@ -243,11 +256,11 @@ msgstr ""
"tại là hiện ra trên bộ chuyển. Nếu không, tất cả các ứng dụng sẽ được bao " "tại là hiện ra trên bộ chuyển. Nếu không, tất cả các ứng dụng sẽ được bao "
"gồm." "gồm."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35 #: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "The application icon mode." msgid "The application icon mode."
msgstr "Chế độ biểu tượng ứng dụng." msgstr "Chế độ biểu tượng ứng dụng."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36 #: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "" msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities " "Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-" "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
@ -257,7 +270,7 @@ msgstr ""
"“thumbnail-only” (hiển thị ảnh thu nhỏ của cửa sổ), “app-icon-only” (chỉ " "“thumbnail-only” (hiển thị ảnh thu nhỏ của cửa sổ), “app-icon-only” (chỉ "
"hiển thị biểu tượng của ứng dụng) hoặc “both” (cả hai)." "hiển thị biểu tượng của ứng dụng) hoặc “both” (cả hai)."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid "" msgid ""
"If true, only windows from the current workspace are shown in the switcher. " "If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included." "Otherwise, all windows are included."
@ -265,29 +278,29 @@ msgstr ""
"Nếu được đặt, chỉ những cửa sổ từ không gian làm việc hiện hành được hiện " "Nếu được đặt, chỉ những cửa sổ từ không gian làm việc hiện hành được hiện "
"thị ở bộ chuyển. Nếu không, tất cả các cửa sổ sẽ được gộp vào." "thị ở bộ chuyển. Nếu không, tất cả các cửa sổ sẽ được gộp vào."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
msgstr "Gắn hộp thoại dạng modal vào cửa sổ mẹ" msgstr "Gắn hộp thoại dạng modal vào cửa sổ mẹ"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39 #: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid "" msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "" msgstr ""
"Khóa này sẽ đè lên khóa có trong org.gnome.mutter khi chạy hệ vỏ GNOME." "Khóa này sẽ đè lên khóa có trong org.gnome.mutter khi chạy hệ vỏ GNOME."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40 #: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Bật xếp lớp ở cạnh khi thả cửa sổ vào cạnh màn hình" msgstr "Bật xếp lớp ở cạnh khi thả cửa sổ vào cạnh màn hình"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41 #: ../data/org.gnome.shell.gschema.xml.in.in.h:43
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Quản lý động vùng làm việc" msgstr "Quản lý động vùng làm việc"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42 #: ../data/org.gnome.shell.gschema.xml.in.in.h:44
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Vùng làm việc chỉ ở trên màn hình chính" msgstr "Vùng làm việc chỉ ở trên màn hình chính"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43 #: ../data/org.gnome.shell.gschema.xml.in.in.h:45
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Khoảng trễ chờ cho con chuột ngừng di chuyển" msgstr "Khoảng trễ chờ cho con chuột ngừng di chuyển"
@ -295,51 +308,52 @@ msgstr "Khoảng trễ chờ cho con chuột ngừng di chuyển"
msgid "Network Login" msgid "Network Login"
msgstr "Đăng nhập mạng" msgstr "Đăng nhập mạng"
#: ../js/extensionPrefs/main.js:122 #: ../js/extensionPrefs/main.js:117
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "Có lỗi khi đang nạp hộp thoại tùy thích cho %s:" msgstr "Có lỗi khi đang tải hộp thoại tùy thích cho %s:"
#: ../js/extensionPrefs/main.js:154 #: ../js/extensionPrefs/main.js:149
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "Phần mở rộng Hệ vỏ GNOME" msgstr "Phần mở rộng Hệ vỏ GNOME"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145 #: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452 #: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916 #: ../js/ui/status/network.js:916
msgid "Cancel" msgid "Cancel"
msgstr "Thôi" msgstr "Thôi"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215 #: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:447 #: ../js/gdm/authPrompt.js:448
msgid "Next" msgid "Next"
msgstr "Kế tiếp" msgstr "Kế tiếp"
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403 #: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59 #: ../js/ui/unlockDialog.js:59
msgid "Unlock" msgid "Unlock"
msgstr "Mở khóa" msgstr "Mở khóa"
#: ../js/gdm/authPrompt.js:213 #: ../js/gdm/authPrompt.js:214
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Đăng nhập" msgstr "Đăng nhập"
#: ../js/gdm/loginDialog.js:281 #: ../js/gdm/loginDialog.js:285
msgid "Choose Session" msgid "Choose Session"
msgstr "Chọn phiên làm việc" msgstr "Chọn phiên làm việc"
#. translators: this message is shown below the user list on the #. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for #. login screen. It can be activated to reveal an entry for
#. manually entering the username. #. manually entering the username.
#: ../js/gdm/loginDialog.js:431 #: ../js/gdm/loginDialog.js:435
msgid "Not listed?" msgid "Not listed?"
msgstr "Không có trong danh sách?" msgstr "Không có trong danh sách?"
#. Translators: this message is shown below the username entry field #. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm #. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:850 #: ../js/gdm/loginDialog.js:854
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(ví dụ: tài khoản hoặc %s)" msgstr "(ví dụ: tài khoản hoặc %s)"
@ -347,12 +361,12 @@ msgstr "(ví dụ: tài khoản hoặc %s)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271 #: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289 #: ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
msgstr "Tài khoản: " msgstr "Tài khoản: "
#: ../js/gdm/loginDialog.js:1184 #: ../js/gdm/loginDialog.js:1196
msgid "Login Window" msgid "Login Window"
msgstr "Cửa sổ đăng nhập" msgstr "Cửa sổ đăng nhập"
@ -488,16 +502,36 @@ msgstr "Đánh dấu ưa thích"
msgid "Show Details" msgid "Show Details"
msgstr "Hiện chi tiết" msgstr "Hiện chi tiết"
#: ../js/ui/appFavorites.js:132 #: ../js/ui/appFavorites.js:134
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "Đã đánh dấu ưa thích cho %s." msgstr "Đã đánh dấu ưa thích cho %s."
#: ../js/ui/appFavorites.js:166 #: ../js/ui/appFavorites.js:168
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s đã bị xóa khỏi danh sách ưa thích." msgstr "%s đã bị xóa khỏi danh sách ưa thích."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Chọn thiết bị âm thanh"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "Cài đặt âm thanh"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Tai nghe"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Bộ tai nghe + micrô"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Micrô"
#: ../js/ui/backgroundMenu.js:19 #: ../js/ui/backgroundMenu.js:19
msgid "Change Background…" msgid "Change Background…"
msgstr "Đổi ảnh nền…" msgstr "Đổi ảnh nền…"
@ -506,13 +540,12 @@ msgstr "Đổi ảnh nền…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Cài đặt hiển thị" msgstr "Cài đặt hiển thị"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "Cài đặt" msgstr "Cài đặt"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). #. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:55 #: ../js/ui/calendar.js:47
msgctxt "calendar-no-work" msgctxt "calendar-no-work"
msgid "06" msgid "06"
msgstr "06" msgstr "06"
@ -522,94 +555,96 @@ msgstr "06"
#. * NOTE: These grid abbreviations are always shown together #. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S". #. * and in order, e.g. "S M T W T F S".
#. #.
#: ../js/ui/calendar.js:84 #: ../js/ui/calendar.js:76
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "C" msgstr "C"
#. Translators: Calendar grid abbreviation for Monday #. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:86 #: ../js/ui/calendar.js:78
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "2" msgstr "2"
#. Translators: Calendar grid abbreviation for Tuesday #. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:88 #: ../js/ui/calendar.js:80
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "3" msgstr "3"
#. Translators: Calendar grid abbreviation for Wednesday #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:90 #: ../js/ui/calendar.js:82
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "4" msgstr "4"
#. Translators: Calendar grid abbreviation for Thursday #. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:92 #: ../js/ui/calendar.js:84
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "5" msgstr "5"
#. Translators: Calendar grid abbreviation for Friday #. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:94 #: ../js/ui/calendar.js:86
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "6" msgstr "6"
#. Translators: Calendar grid abbreviation for Saturday #. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:96 #: ../js/ui/calendar.js:88
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
msgstr "7" msgstr "7"
#: ../js/ui/calendar.js:566 #: ../js/ui/calendar.js:416
msgid "Previous month" msgid "Previous month"
msgstr "Tháng trước" msgstr "Tháng trước"
#: ../js/ui/calendar.js:576 #: ../js/ui/calendar.js:426
msgid "Next month" msgid "Next month"
msgstr "Tháng tới" msgstr "Tháng tới"
#: ../js/ui/calendar.js:783 #: ../js/ui/calendar.js:579
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:634
msgid "Week %V" msgid "Week %V"
msgstr "Tuần %V" msgstr "Tuần %V"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. #.
#: ../js/ui/calendar.js:1188 #: ../js/ui/calendar.js:695
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Cả ngày" msgstr "Cả ngày"
#: ../js/ui/calendar.js:1295 #: ../js/ui/calendar.js:821
msgid "Clear section"
msgstr "Xóa phần"
#: ../js/ui/calendar.js:1522
msgid "Events" msgid "Events"
msgstr "Sự kiện" msgstr "Sự kiện"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:830
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d %B" msgstr "%A, %d %B"
#: ../js/ui/calendar.js:1535 #: ../js/ui/calendar.js:834
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A, %d %B, %Y" msgstr "%A, %d %B, %Y"
#: ../js/ui/calendar.js:1620 #: ../js/ui/calendar.js:919
msgid "Notifications" msgid "Notifications"
msgstr "Thông báo" msgstr "Thông báo"
#: ../js/ui/calendar.js:1771 #: ../js/ui/calendar.js:1070
msgid "No Notifications" msgid "No Notifications"
msgstr "Không có thông báo nào" msgstr "Không có thông báo nào"
#: ../js/ui/calendar.js:1774 #: ../js/ui/calendar.js:1073
msgid "No Events" msgid "No Events"
msgstr "Không có sự kiện" msgstr "Không có sự kiện"
@ -621,7 +656,7 @@ msgstr "Ổ ngoài đã kết nối"
msgid "External drive disconnected" msgid "External drive disconnected"
msgstr "Ổ ngoài đã ngắt kết nối" msgstr "Ổ ngoài đã ngắt kết nối"
#: ../js/ui/components/autorunManager.js:354 #: ../js/ui/components/autorunManager.js:355
#, javascript-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
msgstr "Mở bằng %s" msgstr "Mở bằng %s"
@ -745,7 +780,7 @@ msgstr "Rất tiếc, không được. Vui lòng thử lại."
#. Translators: this is the other person changing their old IM name to their new #. Translators: this is the other person changing their old IM name to their new
#. IM name. #. IM name.
#: ../js/ui/components/telepathyClient.js:759 #: ../js/ui/components/telepathyClient.js:760
#, javascript-format #, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "%s bây giờ đổi thành %s" msgstr "%s bây giờ đổi thành %s"
@ -834,7 +869,7 @@ msgstr[0] "Hệ thống sẽ tự động tắt sau %d giây."
#: ../js/ui/endSessionDialog.js:91 #: ../js/ui/endSessionDialog.js:91
msgctxt "checkbox" msgctxt "checkbox"
msgid "Install pending software updates" msgid "Install pending software updates"
msgstr "Nâng cấp phần mềm còn treo" msgstr "Cài đặt các cập nhật phần mềm còn treo"
#: ../js/ui/endSessionDialog.js:94 ../js/ui/endSessionDialog.js:111 #: ../js/ui/endSessionDialog.js:94 ../js/ui/endSessionDialog.js:111
msgctxt "button" msgctxt "button"
@ -925,11 +960,11 @@ msgid "Keyboard"
msgstr "Bàn phím" msgstr "Bàn phím"
#. translators: 'Hide' is a verb #. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66 #: ../js/ui/legacyTray.js:65
msgid "Hide tray" msgid "Hide tray"
msgstr "Ẩn khay" msgstr "Ẩn khay"
#: ../js/ui/legacyTray.js:107 #: ../js/ui/legacyTray.js:106
msgid "Status Icons" msgid "Status Icons"
msgstr "Biểu tượng trạng thái" msgstr "Biểu tượng trạng thái"
@ -979,12 +1014,28 @@ msgstr "Xem mã nguồn"
#: ../js/ui/lookingGlass.js:758 #: ../js/ui/lookingGlass.js:758
msgid "Web Page" msgid "Web Page"
msgstr "Trang Web" msgstr "Trang thông tin điện tử"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Xóa một phần"
#: ../js/ui/messageTray.js:1486 #: ../js/ui/messageTray.js:1486
msgid "System Information" msgid "System Information"
msgstr "Thông tin hệ thống" msgstr "Thông tin hệ thống"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Không rõ nghệ sĩ"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "Chưa biết tiêu đề"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Đa phương tiện"
#: ../js/ui/overview.js:84 #: ../js/ui/overview.js:84
msgid "Undo" msgid "Undo"
msgstr "Hoàn lại" msgstr "Hoàn lại"
@ -1001,17 +1052,22 @@ msgstr "Tổng quan"
msgid "Type to search…" msgid "Type to search…"
msgstr "Gõ từ muốn tìm…" msgstr "Gõ từ muốn tìm…"
#: ../js/ui/panel.js:352 #: ../js/ui/panel.js:358
msgid "Quit" msgid "Quit"
msgstr "Thoát" msgstr "Thoát"
#. Translators: If there is no suitable word for "Activities" #. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". #. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:404 #: ../js/ui/panel.js:414
msgid "Activities" msgid "Activities"
msgstr "Hoạt động" msgstr "Hoạt động"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Hệ thống"
#: ../js/ui/panel.js:807
msgid "Top Bar" msgid "Top Bar"
msgstr "Thanh đỉnh" msgstr "Thanh đỉnh"
@ -1024,15 +1080,15 @@ msgstr "Thanh đỉnh"
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:70 #: ../js/ui/runDialog.js:71
msgid "Enter a Command" msgid "Enter a Command"
msgstr "Nhập lệnh" msgstr "Nhập lệnh"
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162 #: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
msgid "Close" msgid "Close"
msgstr "Đóng" msgstr "Đóng"
#: ../js/ui/runDialog.js:281 #: ../js/ui/runDialog.js:282
msgid "Restarting…" msgid "Restarting…"
msgstr "Đang khởi động lại…" msgstr "Đang khởi động lại…"
@ -1075,7 +1131,7 @@ msgstr "Không thể khóa"
#: ../js/ui/screenShield.js:806 ../js/ui/screenShield.js:1272 #: ../js/ui/screenShield.js:806 ../js/ui/screenShield.js:1272
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Một ứng dụng đã ngăn cản khóa" msgstr "Việc khóa bị ngăn cản bởi một ứng dụng"
#: ../js/ui/search.js:617 #: ../js/ui/search.js:617
msgid "Searching…" msgid "Searching…"
@ -1083,7 +1139,7 @@ msgstr "Đang tìm…"
#: ../js/ui/search.js:619 #: ../js/ui/search.js:619
msgid "No results." msgid "No results."
msgstr "Không kết quả." msgstr "Không tìm thấy kết quả nào."
#: ../js/ui/shellEntry.js:25 #: ../js/ui/shellEntry.js:25
msgid "Copy" msgid "Copy"
@ -1153,28 +1209,40 @@ msgstr "Tương phản cao"
msgid "Large Text" msgid "Large Text"
msgstr "Chữ lớn" msgstr "Chữ lớn"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178 #: ../js/ui/status/bluetooth.js:47
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279 msgid "Bluetooth"
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90 msgstr "Bluetooth"
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Tắt"
#: ../js/ui/status/bluetooth.js:54 #: ../js/ui/status/bluetooth.js:56
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Cài đặt Bluetooth" msgstr "Cài đặt Bluetooth"
#. Translators: this is the number of connected bluetooth devices #. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:105 #: ../js/ui/status/bluetooth.js:136
#, javascript-format #, javascript-format
msgid "%d Connected" msgid "%d Connected"
msgid_plural "%d Connected" msgid_plural "%d Connected"
msgstr[0] "%d Đã kết nối" msgstr[0] "%d Đã kết nối"
#: ../js/ui/status/bluetooth.js:107 #: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "Tắt"
#: ../js/ui/status/bluetooth.js:140
msgid "Not In Use" msgid "Not In Use"
msgstr "Không dùng" msgstr "Không dùng"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Bật"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Tắt"
#: ../js/ui/status/brightness.js:44 #: ../js/ui/status/brightness.js:44
msgid "Brightness" msgid "Brightness"
msgstr "Độ sáng" msgstr "Độ sáng"
@ -1183,30 +1251,50 @@ msgstr "Độ sáng"
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Hiện bố cục của bàn phím" msgstr "Hiện bố cục của bàn phím"
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177 #: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
msgid "Location Enabled" msgid "Location Enabled"
msgstr "Vị trí được bật" msgstr "Vị trí được bật"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178 #: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
msgid "Disable" msgid "Disable"
msgstr "Tắt" msgstr "Tắt"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:109
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "Cài đặt chính sách riêng tư" msgstr "Cài đặt chính sách riêng tư"
#: ../js/ui/status/location.js:176 #: ../js/ui/status/location.js:214
msgid "Location In Use" msgid "Location In Use"
msgstr "Vị trí đang dùng" msgstr "Vị trí đang dùng"
#: ../js/ui/status/location.js:180 #: ../js/ui/status/location.js:218
msgid "Location Disabled" msgid "Location Disabled"
msgstr "Vị trí bị tắt" msgstr "Vị trí bị tắt"
#: ../js/ui/status/location.js:181 #: ../js/ui/status/location.js:219
msgid "Enable" msgid "Enable"
msgstr "Bật" msgstr "Bật"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Từ chối truy cập"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Cấp quyền truy cập"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Cho %s truy cập vào vị trí của bạn?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"Truy cập vị trí có thể được thay đổi vào bất kỳ lúc nào từ các cài đặt riêng "
"tư."
#: ../js/ui/status/network.js:101 #: ../js/ui/status/network.js:101
msgid "<unknown>" msgid "<unknown>"
msgstr "<không rõ>" msgstr "<không rõ>"
@ -1342,10 +1430,6 @@ msgstr "Chọn mạng"
msgid "Wi-Fi Settings" msgid "Wi-Fi Settings"
msgstr "Cài đặt Wi-Fi" msgstr "Cài đặt Wi-Fi"
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Bật"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296 #: ../js/ui/status/network.js:1296
#, javascript-format #, javascript-format
@ -1395,31 +1479,36 @@ msgstr "Lỗi kết nối"
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Lỗi kích hoạt kết nối mạng" msgstr "Lỗi kích hoạt kết nối mạng"
#: ../js/ui/status/power.js:49 #: ../js/ui/status/power.js:61
msgid "Power Settings" msgid "Power Settings"
msgstr "Cài đặt nguồn điện" msgstr "Cài đặt nguồn điện"
#: ../js/ui/status/power.js:65 #: ../js/ui/status/power.js:77
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Đã sạc đầy" msgstr "Đã sạc đầy"
#. 0 is reported when UPower does not have enough data #. 0 is reported when UPower does not have enough data
#. to estimate battery life #. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78 #: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
msgid "Estimating…" msgid "Estimating…"
msgstr "Ước tính…" msgstr "Ước tính…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>) #. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:98
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "Còn %d%02d (%d%%)" msgstr "Còn %d%02d (%d %%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>) #. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91 #: ../js/ui/status/power.js:103
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "Cho đến lúc đầy cần %d%02d (%d%%)" msgstr "Cho đến lúc đầy cần %d%02d (%d %%)"
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
#, javascript-format
msgid "%d%%"
msgstr "%d%%"
#. The menu only appears when airplane mode is on, so just #. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically #. statically build it as if it was on, rather than dynamically
@ -1460,10 +1549,6 @@ msgstr "Âm lượng đã thay đổi"
msgid "Volume" msgid "Volume"
msgstr "Âm lượng" msgstr "Âm lượng"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Micrô"
#: ../js/ui/unlockDialog.js:67 #: ../js/ui/unlockDialog.js:67
msgid "Log in as another user" msgid "Log in as another user"
msgstr "Đăng nhập người dùng khác" msgstr "Đăng nhập người dùng khác"
@ -1565,19 +1650,19 @@ msgstr "Chuyển sang không gian làm việc Dưới"
#: ../js/ui/windowMenu.js:136 #: ../js/ui/windowMenu.js:136
msgid "Move to Monitor Up" msgid "Move to Monitor Up"
msgstr "Chuyển sang Màn hình Trên" msgstr "Chuyển sang màn hình Trên"
#: ../js/ui/windowMenu.js:142 #: ../js/ui/windowMenu.js:142
msgid "Move to Monitor Down" msgid "Move to Monitor Down"
msgstr "Chuyển sang Màn hình Dưới" msgstr "Chuyển sang màn hình Dưới"
#: ../js/ui/windowMenu.js:148 #: ../js/ui/windowMenu.js:148
msgid "Move to Monitor Left" msgid "Move to Monitor Left"
msgstr "Chuyển sang Màn hình Trái" msgstr "Chuyển sang màn hình Trái"
#: ../js/ui/windowMenu.js:154 #: ../js/ui/windowMenu.js:154
msgid "Move to Monitor Right" msgid "Move to Monitor Right"
msgstr "Chuyển sang Màn hình Phải" msgstr "Chuyển sang màn hình Phải"
#: ../src/calendar-server/evolution-calendar.desktop.in.in.h:1 #: ../src/calendar-server/evolution-calendar.desktop.in.in.h:1
msgid "Evolution Calendar" msgid "Evolution Calendar"
@ -1603,54 +1688,51 @@ msgstr[0] "%u đầu vào"
msgid "System Sounds" msgid "System Sounds"
msgstr "Âm thanh hệ thống" msgstr "Âm thanh hệ thống"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Hiển thị phiên bản" msgstr "Hiển thị phiên bản"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Chế độ được dùng bởi GDM cho màn hình đăng nhập" msgstr "Chế độ được dùng bởi GDM cho màn hình đăng nhập"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Dùng chế độ đặc biệt, ví dụ “gdm” cho màn hình đăng nhập" msgstr "Dùng chế độ đặc biệt, ví dụ “gdm” cho màn hình đăng nhập"
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "Danh sách chế độ có thể" msgstr "Danh sách chế độ có thể"
#: ../src/shell-app.c:239 #: ../src/shell-app.c:246
msgctxt "program" msgctxt "program"
msgid "Unknown" msgid "Unknown"
msgstr "Chưa biết" msgstr "Chưa biết"
#: ../src/shell-app.c:480 #: ../src/shell-app.c:487
#, c-format #, c-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Gặp lỗi khi khởi chạy “%s”" msgstr "Gặp lỗi khi khởi chạy “%s”"
#: ../src/shell-keyring-prompt.c:742 #: ../src/shell-keyring-prompt.c:730
msgid "Passwords do not match." msgid "Passwords do not match."
msgstr "Mật khẩu không đúng." msgstr "Mật khẩu không đúng."
#: ../src/shell-keyring-prompt.c:750 #: ../src/shell-keyring-prompt.c:738
msgid "Password cannot be blank" msgid "Password cannot be blank"
msgstr "Mật khẩu không thể để trống" msgstr "Mật khẩu không thể để trống"
#: ../src/shell-polkit-authentication-agent.c:346 #: ../src/shell-polkit-authentication-agent.c:353
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "Hộp thoại xác thực bị người dùng bỏ qua" msgstr "Hộp thoại xác thực bị người dùng bỏ qua"
#~ msgid "Bluetooth" #~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "Bluetooth" #~ msgstr "Hệ vỏ GNOME (wayland compositor)"
#~ msgid "%d Connected Device" #~ msgid "%d Connected Device"
#~ msgid_plural "%d Connected Devices" #~ msgid_plural "%d Connected Devices"
#~ msgstr[0] "%d thiết bị đã kết nối" #~ msgstr[0] "%d thiết bị đã kết nối"
#~ msgid "Off"
#~ msgstr "Tắt"
#~ msgid "Authentication required" #~ msgid "Authentication required"
#~ msgstr "Cần xác thực" #~ msgstr "Cần xác thực"
@ -1855,9 +1937,6 @@ msgstr "Hộp thoại xác thực bị người dùng bỏ qua"
#~ msgid "View account" #~ msgid "View account"
#~ msgstr "Xem tài khoản" #~ msgstr "Xem tài khoản"
#~ msgid "Unknown reason"
#~ msgstr "Không rõ nguyên nhân"
#~ msgid "Open Calendar" #~ msgid "Open Calendar"
#~ msgstr "Mở lịch" #~ msgstr "Mở lịch"
@ -2042,9 +2121,6 @@ msgstr "Hộp thoại xác thực bị người dùng bỏ qua"
#~ msgid "Visibility" #~ msgid "Visibility"
#~ msgstr "Tầm nhìn" #~ msgstr "Tầm nhìn"
#~ msgid "Send Files to Device…"
#~ msgstr "Gửi tập tin đến thiết bị…"
#~ msgid "Set Up a New Device…" #~ msgid "Set Up a New Device…"
#~ msgstr "Cài đặt thiết bị mới…" #~ msgstr "Cài đặt thiết bị mới…"
@ -2072,9 +2148,6 @@ msgstr "Hộp thoại xác thực bị người dùng bỏ qua"
#~ msgid "Device %s wants access to the service '%s'" #~ msgid "Device %s wants access to the service '%s'"
#~ msgstr "Thiết bị %s muốn truy cập dịch vụ “%s”" #~ msgstr "Thiết bị %s muốn truy cập dịch vụ “%s”"
#~ msgid "Always grant access"
#~ msgstr "Luôn cho phép"
#~ msgid "Grant this time only" #~ msgid "Grant this time only"
#~ msgstr "Chỉ cho phép lần này" #~ msgstr "Chỉ cho phép lần này"
@ -2147,10 +2220,6 @@ msgstr "Hộp thoại xác thực bị người dùng bỏ qua"
#~ msgid_plural "%d minutes remaining" #~ msgid_plural "%d minutes remaining"
#~ msgstr[0] "%d phút còn lại" #~ msgstr[0] "%d phút còn lại"
#~ msgctxt "percent of battery remaining"
#~ msgid "%d%%"
#~ msgstr "%d%%"
#~ msgid "AC Adapter" #~ msgid "AC Adapter"
#~ msgstr "Nguồn AC" #~ msgstr "Nguồn AC"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -41,8 +41,6 @@
#define N_(x) x #define N_(x) x
#endif #endif
#define CALENDAR_SOURCES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CALENDAR_TYPE_SOURCES, CalendarSourcesPrivate))
typedef struct _ClientData ClientData; typedef struct _ClientData ClientData;
typedef struct _CalendarSourceData CalendarSourceData; typedef struct _CalendarSourceData CalendarSourceData;
@ -66,6 +64,14 @@ struct _CalendarSourceData
guint loaded : 1; guint loaded : 1;
}; };
typedef struct _CalendarSourcesPrivate CalendarSourcesPrivate;
struct _CalendarSources
{
GObject parent;
CalendarSourcesPrivate *priv;
};
struct _CalendarSourcesPrivate struct _CalendarSourcesPrivate
{ {
ESourceRegistry *registry; ESourceRegistry *registry;
@ -77,8 +83,8 @@ struct _CalendarSourcesPrivate
CalendarSourceData task_sources; CalendarSourceData task_sources;
}; };
static void calendar_sources_class_init (CalendarSourcesClass *klass); G_DEFINE_TYPE_WITH_PRIVATE (CalendarSources, calendar_sources, G_TYPE_OBJECT)
static void calendar_sources_init (CalendarSources *sources);
static void calendar_sources_finalize (GObject *object); static void calendar_sources_finalize (GObject *object);
static void backend_died_cb (EClient *client, CalendarSourceData *source_data); static void backend_died_cb (EClient *client, CalendarSourceData *source_data);
@ -108,34 +114,6 @@ client_data_free (ClientData *data)
g_slice_free (ClientData, data); g_slice_free (ClientData, data);
} }
GType
calendar_sources_get_type (void)
{
static GType sources_type = 0;
if (!sources_type)
{
static const GTypeInfo sources_info =
{
sizeof (CalendarSourcesClass),
NULL, /* base_init */
NULL, /* base_finalize */
(GClassInitFunc) calendar_sources_class_init,
NULL, /* class_finalize */
NULL, /* class_data */
sizeof (CalendarSources),
0, /* n_preallocs */
(GInstanceInitFunc) calendar_sources_init,
};
sources_type = g_type_register_static (G_TYPE_OBJECT,
"CalendarSources",
&sources_info, 0);
}
return sources_type;
}
static void static void
calendar_sources_class_init (CalendarSourcesClass *klass) calendar_sources_class_init (CalendarSourcesClass *klass)
{ {
@ -145,14 +123,11 @@ calendar_sources_class_init (CalendarSourcesClass *klass)
gobject_class->finalize = calendar_sources_finalize; gobject_class->finalize = calendar_sources_finalize;
g_type_class_add_private (klass, sizeof (CalendarSourcesPrivate));
signals [APPOINTMENT_SOURCES_CHANGED] = signals [APPOINTMENT_SOURCES_CHANGED] =
g_signal_new ("appointment-sources-changed", g_signal_new ("appointment-sources-changed",
G_TYPE_FROM_CLASS (gobject_class), G_TYPE_FROM_CLASS (gobject_class),
G_SIGNAL_RUN_LAST, G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (CalendarSourcesClass, 0,
appointment_sources_changed),
NULL, NULL,
NULL, NULL,
NULL, NULL,
@ -163,8 +138,7 @@ calendar_sources_class_init (CalendarSourcesClass *klass)
g_signal_new ("task-sources-changed", g_signal_new ("task-sources-changed",
G_TYPE_FROM_CLASS (gobject_class), G_TYPE_FROM_CLASS (gobject_class),
G_SIGNAL_RUN_LAST, G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (CalendarSourcesClass, 0,
task_sources_changed),
NULL, NULL,
NULL, NULL,
NULL, NULL,
@ -179,7 +153,7 @@ calendar_sources_init (CalendarSources *sources)
GDBusConnection *session_bus; GDBusConnection *session_bus;
GVariant *result; GVariant *result;
sources->priv = CALENDAR_SOURCES_GET_PRIVATE (sources); sources->priv = calendar_sources_get_instance_private (sources);
/* WORKAROUND: the hardcoded timeout for e_source_registry_new_sync() /* WORKAROUND: the hardcoded timeout for e_source_registry_new_sync()
(and other library calls that eventually call g_dbus_proxy_new[_sync]()) (and other library calls that eventually call g_dbus_proxy_new[_sync]())

View File

@ -28,33 +28,10 @@
G_BEGIN_DECLS G_BEGIN_DECLS
#define CALENDAR_TYPE_SOURCES (calendar_sources_get_type ()) #define CALENDAR_TYPE_SOURCES (calendar_sources_get_type ())
#define CALENDAR_SOURCES(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CALENDAR_TYPE_SOURCES, CalendarSources)) G_DECLARE_FINAL_TYPE (CalendarSources, calendar_sources,
#define CALENDAR_SOURCES_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CALENDAR_TYPE_SOURCES, CalendarSourcesClass)) CALENDAR, SOURCES, GObject)
#define CALENDAR_IS_SOURCES(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CALENDAR_TYPE_SOURCES))
#define CALENDAR_IS_SOURCES_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CALENDAR_TYPE_SOURCES))
#define CALENDAR_SOURCES_GET_CLASS(o)(G_TYPE_INSTANCE_GET_CLASS ((o), CALENDAR_TYPE_SOURCES, CalendarSourcesClass))
typedef struct _CalendarSources CalendarSources;
typedef struct _CalendarSourcesClass CalendarSourcesClass;
typedef struct _CalendarSourcesPrivate CalendarSourcesPrivate;
struct _CalendarSources
{
GObject parent;
CalendarSourcesPrivate *priv;
};
struct _CalendarSourcesClass
{
GObjectClass parent_class;
void (* appointment_sources_changed) (CalendarSources *sources);
void (* task_sources_changed) (CalendarSources *sources);
};
GType calendar_sources_get_type (void) G_GNUC_CONST;
CalendarSources *calendar_sources_get (void); CalendarSources *calendar_sources_get (void);
GList *calendar_sources_get_appointment_clients (CalendarSources *sources); GList *calendar_sources_get_appointment_clients (CalendarSources *sources);
GList *calendar_sources_get_task_clients (CalendarSources *sources); GList *calendar_sources_get_task_clients (CalendarSources *sources);

View File

@ -45,8 +45,8 @@ static void gnome_shell_plugin_unminimize (MetaPlugin *plugin,
static void gnome_shell_plugin_size_change (MetaPlugin *plugin, static void gnome_shell_plugin_size_change (MetaPlugin *plugin,
MetaWindowActor *actor, MetaWindowActor *actor,
MetaSizeChange which_change, MetaSizeChange which_change,
MetaRectangle *old_rect, MetaRectangle *old_frame_rect,
MetaRectangle *new_rect); MetaRectangle *old_buffer_rect);
static void gnome_shell_plugin_map (MetaPlugin *plugin, static void gnome_shell_plugin_map (MetaPlugin *plugin,
MetaWindowActor *actor); MetaWindowActor *actor);
static void gnome_shell_plugin_destroy (MetaPlugin *plugin, static void gnome_shell_plugin_destroy (MetaPlugin *plugin,

View File

@ -139,7 +139,7 @@ gtk_action_muxer_list_actions (GActionGroup *action_group)
actions); actions);
} }
return (gchar **) g_array_free (actions, FALSE); return (gchar **)(void *) g_array_free (actions, FALSE);
} }
static Group * static Group *

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