Compare commits

...

135 Commits

Author SHA1 Message Date
622e73c34c Bump version to 3.21.91
Update NEWS.
2016-08-30 00:26:31 +02:00
eb1c3d7045 Updated Serbian translation 2016-08-28 09:16:02 +02:00
fc26895f70 Updated Slovenian translation 2016-08-25 22:53:27 +02:00
ca224b379f Updated Brazilian Portuguese translation 2016-08-22 21:13:36 +00:00
42b609b852 Updated Friulian translation 2016-08-22 20:53:03 +00:00
a24169e2aa Updated Spanish translation 2016-08-22 20:44:47 +02:00
144d1dca88 Updated Indonesian translation 2016-08-22 09:47:46 +00:00
38ab6ba3ec Updated Slovak translation 2016-08-21 16:01:41 +00:00
bc6a0626c1 Updated Finnish translation 2016-08-21 09:45:31 +00:00
497f4f4a3c Updated German translation 2016-08-21 09:39:47 +00:00
8c8c89a5f1 Bump version to 3.21.90.1
The 3.21.90 tarball got corrupted, so do another point release.
2016-08-20 23:02:34 +02:00
d658a5148a recorder: Print absolute path if output file can't be opened 2016-08-20 16:03:31 +02:00
2c3e0dab0f Updated Polish translation 2016-08-20 10:26:50 +02:00
e2400e35bd Updated Hungarian translation 2016-08-19 22:01:16 +00:00
fc4562491b Updated Czech translation 2016-08-19 23:17:20 +02:00
6e3bedb888 Add translator comments to .desktop files 2016-08-19 23:15:20 +02:00
2b8332df5e Bump version to 3.21.90
Update NEWS.
2016-08-19 22:16:00 +02:00
795e7d4b59 build: Say good-bye to intltool
intltool is unmaintained nowadays while upstream gettext gained
support for formats like GSettings schemas and .desktop files,
and offers a mechanism to teach it about other XML formats not
yet supported out of the box which we can use for the rest.
So there's nothing stopping us, just make the switch ...

https://bugzilla.gnome.org/show_bug.cgi?id=769074
2016-08-19 22:13:14 +02:00
522d46a525 Updated Indonesian translation 2016-08-19 06:21:39 +00:00
dcecf5e350 Updated Brazilian Portuguese translation 2016-08-19 02:26:11 +00:00
a61c929450 Updated Turkish translation 2016-08-16 04:02:44 +00:00
5992e9f524 Updated Czech translation 2016-08-12 17:31:44 +02:00
ee4cd05ebd Updated Finnish translation 2016-08-12 12:42:53 +00:00
af5e65fd79 global: Make timestamp parameter unsigned
Negative values don't make sense to timestamps, and an unsigned
timestamp as returned by shell_global_get_current_time() or
Gdk/Clutter events may exceed the range of signed integers.

https://bugzilla.gnome.org/show_bug.cgi?id=769216
2016-08-11 09:04:22 +02:00
284cbf3ea7 shell: Remove shell_util_text_insert_keyval()
It is now unused.
2016-08-10 11:25:50 +02:00
c3e68955e3 keyboard: Implement more of the wayland caribou adapter
Have it notify properly of changes to the current input source, as
well as exposing those in get_groups().

The support for virtual keyboard events has been replaced by
ClutterVirtualInputDevice, which can be thought of as the equivalent
to the XTEST devices in X11.

https://bugzilla.gnome.org/show_bug.cgi?id=765009
2016-08-10 11:23:58 +02:00
ffa28e7ee7 Updated Hebrew translation 2016-08-07 15:42:02 +03:00
78d81f909c Updated Hungarian translation 2016-08-04 21:54:56 +00:00
34551bf48b Bump g-i requirement
We need commit bd475c00d9 to pick up mutter's clutter fork.
2016-08-03 21:46:54 +02:00
e02cd53ac5 Updated Lithuanian translation 2016-08-03 21:56:30 +03:00
b7f5154bd3 Updated German translation 2016-08-02 20:15:37 +00:00
d80247918c Updated Spanish translation 2016-08-02 16:50:47 +02:00
bb8c2d3e13 Updated Portuguese translation 2016-07-27 07:42:37 +00:00
6e0e37519d calendar-server: Add back missing return value
In commit 7e0e224e0, when moving from e_cal_recur_generate_instances()
to e_cal_client_generate_instances(), the return value of the
ECalRecurInstanceFn callback was accidentally removed; add it
back.

https://bugzilla.gnome.org/show_bug.cgi?id=769156
2016-07-25 18:55:22 +02:00
5c19ae5878 Updated Friulian translation 2016-07-23 15:51:45 +00:00
8713473c64 Add Language headers to po files
Future versions of gettext will fail if this header is missing.
2016-07-21 02:46:17 +02:00
a4b4f2f6fd Updated POTFILES.in 2016-07-21 00:50:20 +02:00
03f22135b5 Bump version to 3.21.4
Update NEWS.
2016-07-20 21:07:19 +02:00
5b79f657eb data: Dist portals keyfile
Whoops, forgot that in the previous commit :-(
2016-07-20 21:07:19 +02:00
4fc0c513af Provide org.freedesktop.impl.portal.access implementation
If a sandboxed app requests access to some system resource (camera,
microphone, location), the portal frontend needs to ask the user
for permission. In GNOME, we want this to be a system modal dialog,
so provide an org.freedesktop.impl.portal.access implementation
that exposes a generic system modal permission dialog on the bus.

https://bugzilla.gnome.org/show_bug.cgi?id=768669
2016-07-20 17:14:12 +02:00
f5c058a036 Use clutter_stage_capture instead of cogl's read_pixels
There is no longer any guarantee that there'll be one single
framebuffer to read pixels from. In order to still read pixels from the
stage, use the new clutter_stage_capture API.

https://bugzilla.gnome.org/show_bug.cgi?id=768979
2016-07-20 14:15:32 +08:00
0dac0ad516 build: Bump gsettings-desktop-schemas requirement
Require at least 3.21.3 for the MRU input source schema.

https://bugzilla.gnome.org/show_bug.cgi?id=768956
2016-07-19 17:18:56 +02:00
5d4d1e26fd Updated Chinese (Hong Kong) translation 2016-07-18 22:26:23 +00:00
2f0039e7dd app: Add a construct-only app-info property
This will allow us to create a ShellApp from JS code, for instance
for .desktop files that aren't known to the AppSystem.

https://bugzilla.gnome.org/show_bug.cgi?id=762206
2016-07-13 01:28:13 +02:00
9202309bed Updated Polish translation 2016-07-12 21:22:17 +02:00
7e0e224e0e calendar-server: Use the actual recurrence ID of events
Instead of querying the client for a list of objects and using
e_cal_recur_generate_instances() to get occurrences for each of
them, we can use e_cal_client_generate_instances_sync() which
combines the functionality of both functions. This doesn't only
save us some lines of code (yay!), but also gives us access to
the real recurrence ID of an event, so we can get rid of the hack
of faking one.

https://bugzilla.gnome.org/show_bug.cgi?id=748226
2016-07-08 18:05:58 +02:00
35825cf0c7 calendar-server: Get recurrence ID from occurrences
We use the triplet of source ID, UID and recurrence ID to create
an ID to unambiguously identify an event, which we use to implement
hiding dismissed events from the calendar. However we currently
try to fetch the recurrence ID from the objects returned by
e_cal_client_get_object_list_sync(), which are always the primary
events with no recurrence ID. Instead, we need a recurrence ID
associated with each occurrence.

https://bugzilla.gnome.org/show_bug.cgi?id=748226
2016-07-08 18:05:57 +02:00
b2d79b6362 calendar-server: Fetch default zone from client
We are already setting the default zone on the client, no need
to pass it around.

https://bugzilla.gnome.org/show_bug.cgi?id=748226
2016-07-08 18:05:57 +02:00
f5e1dc86cd calendar-server: Fix a memory leak
App will take ownership of the location string when the timezone
changes, but not when there was no change - free the memory in
that case.

https://bugzilla.gnome.org/show_bug.cgi?id=748226
2016-07-08 18:05:57 +02:00
8c51f0076f calendar-server: Minor optimization
We use the same query string for all sources, so no need to
allocate/free it on each loop iteration.

https://bugzilla.gnome.org/show_bug.cgi?id=748226
2016-07-08 16:11:43 +02:00
8347152730 calendar: Do not overload :active to mark selected day
We currently use the :active pseudo class to mark the selected day
in the calendar. Whenever the selected date changes, the class is
added to the corresponding button and removed from all others.
However when the selected date doesn't change (i.e. when clicking
the already selected date), the buttons are not updated and the
use of the :active class conflicts with StButton's builtin handling
of the class - the class is removed on the button up event and the
button is deselected.
Fix this by simply using a different pseudo class.

https://bugzilla.gnome.org/show_bug.cgi?id=746867
2016-07-08 16:11:43 +02:00
3d77dd8f51 calendar: Refresh calendar when ignored events changes
The last patch fixed marking days in the calendar where all
events are ignored, but it doesn't pick up the change when
an event is hidden. Emit an appropriate change notification
to fix this issue.

https://bugzilla.gnome.org/show_bug.cgi?id=768538
2016-07-08 15:01:32 +02:00
82e6935281 calendar: Move handling of ignored events to event source
Ignoring events is currently implemented in the message list's
event section, which means that the calendar does not consider
ignored events when marking days with events. In order to fix
this, move the handling of ignored events to the event source,
which is shared between both components.

https://bugzilla.gnome.org/show_bug.cgi?id=768538
2016-07-08 15:01:32 +02:00
61070e6ec0 calendar-server: Remove an unnecessary check
calendar_appointment_new() never returns %NULL, so no need to check
for it.
2016-07-07 15:54:57 +02:00
128697d6a7 osdWindow: Use a constraint to enforce ratio
Commit 9b07ce1d0d broke the code that keeps the OSD window square.
Use that opportunity to move away from the hack of setting the
min-height style property from code and adjusting the width on
allocate, and implement a proper constraint instead.

https://bugzilla.gnome.org/show_bug.cgi?id=768317
2016-07-05 20:46:57 +02:00
424fa01eca osdWindow: Fix blurry level bar
ClutterActor:width is a floating point property, so it will not be
automatically rounded to non-fractional values that properly align
to pixels. To fix the resulting blurriness, add explicit rounding.

https://bugzilla.gnome.org/show_bug.cgi?id=768317
2016-07-05 20:41:13 +02:00
775187b2e4 osdWindow: Fix level bar width
Commit 9b07ce1d0d changed the OSD window's level bar to be a regular
actor instead of a custom drawn bar. The bar actor's width depends on
both the configured level (e.g. 40%) and the available width, however
the width is currently only updated when the configured level changes.
Fix that by properly considering changes to the parent's width as well.

https://bugzilla.gnome.org/show_bug.cgi?id=768317
2016-07-05 17:47:44 +02:00
99b5e10acf overview: Move ::scroll-event signal handling (again)
Commit c39ffa111 moved the signal handling from the controls- to the
background-group to enable scrolling on non-primary monitors.
However this broke scrolling on reactive overview elements as the
workspace switcher, as they're not descendants of the background.
To fix, move scroll-event handling to the overview group itself,
which is the common ancestor of all overview elements.

https://bugzilla.gnome.org/show_bug.cgi?id=768316
2016-07-05 17:47:44 +02:00
208ed6e90d Updated Slovak translation 2016-07-05 14:53:34 +00:00
de8d4c4cd8 Update URL in a translator comment 2016-07-01 18:46:22 +02:00
3ae591434d Updated British English translation 2016-07-01 17:27:42 +01:00
61fb62f969 Restart: fix maximized windows flickering to the wrong struts
When we restart, we need to update the struts for the screen before
we enter the main loop, or maximized windows will get resized to the
size of the screen without struts, then resized back.

A workaround is needed for a Clutter bug that occurs when we get
the size of an actor before the first paint of the stage.

https://bugzilla.gnome.org/show_bug.cgi?id=761566
2016-06-30 14:17:19 -04:00
c4584c20dc run-js-test: fix running in hi-dpi mode 2016-06-30 14:17:19 -04:00
c6eb95ff3a Updated Spanish translation 2016-06-30 14:02:07 +00:00
ab68360d53 endSessionDialog: Add support for system upgrades
https://bugzilla.gnome.org/show_bug.cgi?id=763611
2016-06-30 11:42:11 +02:00
58a733dc93 endSessionDialog: Use new PackageKit DBus API
https://bugzilla.gnome.org/show_bug.cgi?id=763611
2016-06-30 11:33:07 +02:00
db8f6b4848 endSessionDialog: Rename a variable
https://bugzilla.gnome.org/show_bug.cgi?id=763611
2016-06-30 11:33:06 +02:00
e72d388a67 background: free MetaBackground explicitly when its MetaBackgroundActor is destroyed
The memory which MetaBackground resides is freed automatically, when its
wrapper object Background is freed by garbage collection. But because the
memory for MetaBackground is huge, changing the background or changing the
background mode repeatedly makes a lot of memory to be in use until garbage
collection runs.

This patch frees the MetaBackground object explicitly when its
MetaBackgroundActor is destroyed which is the moment that the memory in the
object is not used anymore.

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

Signed-off-by: Hyungwon Hwang <hyungwon.hwang7@gmail.com>
2016-06-29 13:27:10 +02:00
b5dd4d1456 screenShield: Chain up Arrow's style_changed vfunc
This makes style changes propagate to our child widget as they
should.

https://bugzilla.gnome.org/show_bug.cgi?id=739178
2016-06-28 19:53:17 +02:00
a7562b4148 screenShield: Stop using an offscreen buffer for the arrow actor
This isn't a performance critical actor and the NVIDIA driver discards
offscreen buffers in some cases which would require us to go through
extra hoops to handle here which isn't worth it.

https://bugzilla.gnome.org/show_bug.cgi?id=739178
2016-06-28 19:53:17 +02:00
358f64d66b main: Reload theme on video memory purge errors
The theme machinery uses FBOs in some cases (mainly for shadows) which
need to be reloaded if we get a video memory purged error.

https://bugzilla.gnome.org/show_bug.cgi?id=739178
2016-06-28 19:53:17 +02:00
2a7f9f70b8 shell-recorder: Avoid a crash when the cursor texture is NULL
When running as a wayland compositor, MetaCursorTracker might
legitimately not have a displayed cursor because e.g. a client unsets
the cursor surface.

Note that, under an X session, the assumption that the tracker always
has a cursor texture is true because XFixesGetCursorImage() always
returns data even if the cursor isn't visible.

https://bugzilla.gnome.org/show_bug.cgi?id=767001
2016-06-28 19:03:33 +02:00
c91085caf7 shell-recorder: Ensure we remove the redraw timeout on finalize
Otherwise we may end up using freed memory and crashing

https://bugzilla.gnome.org/show_bug.cgi?id=767001
2016-06-28 19:03:32 +02:00
21ddbf0b8f workspacesView: Consider workspaces-only-on-primary when panning
It is odd to switch workspaces on the primary monitor when panning on
a monitor without workspaces, so reject the gesture on non-primary
monitors when workspaces-only-on-primary is disabled.

https://bugzilla.gnome.org/show_bug.cgi?id=766883
2016-06-27 16:31:00 +02:00
2ad2853278 workspacesView: Consider workspaces-only-on-primary when scrolling
It is odd to switch workspaces using the scroll wheel when the pointer
is on a monitor without workspaces, so only handle scroll events on
non-primary monitors when workspaces-only-on-primary is disabled.

https://bugzilla.gnome.org/show_bug.cgi?id=766883
2016-06-27 16:31:00 +02:00
e16f63a8e4 workspacesView: Allow activating empty workspaces on any monitor
We allow activating a workspace by clicking it when we know that
the user did not try to select a window and missed (namely: the
workspace is empty). However we currently always check for an
empty workspace on the primary monitor, which doesn't make sense
when the click happened on a different monitor.

https://bugzilla.gnome.org/show_bug.cgi?id=766883
2016-06-27 16:31:00 +02:00
c39ffa111f overview: Move overview actions and scrolling to background group
Both the Overview::scroll-event and actions added via addAction()
are meant to work anywhere in the overview, but for now only work
on the primary monitor. Move the handling to the background group
that is known to span all outputs to fix.

https://bugzilla.gnome.org/show_bug.cgi?id=766883
2016-06-27 16:31:00 +02:00
5182129196 overview: Remove stack actor
The stack was used to overlay a message indicator over the overview
group. That indicator is long gone, so there's no longer a need for
an intermediate actor in the hierarchy.

https://bugzilla.gnome.org/show_bug.cgi?id=766883
2016-06-27 16:31:00 +02:00
02bad8e92b workspacesDisplay: Cancel click when panning
When switching between workspaces via panning, we don't want to
leave the overview when we end up on an empty workspace.

https://bugzilla.gnome.org/show_bug.cgi?id=766883
2016-06-27 16:31:00 +02:00
500ea13155 workspacesView: Initialize the adjustment's upper bound
Initializing the upper bound to zero means that on panning we'd start
scrolling from the first workspace even if the current workspace when
entering the overview was different since StAdjustment clamps the
value to be inside bounds.

https://bugzilla.gnome.org/show_bug.cgi?id=766883
2016-06-27 14:43:17 +02:00
ce8e7481e7 Updated Indonesian translation 2016-06-24 10:55:24 +00:00
528f2e3cdc Updated Indonesian translation
(cherry picked from commit 23788b9e7d)
2016-06-24 10:52:54 +00:00
408211ba73 Arrow: compute a paint volume that accounts for the shadow
Otherwise the shadow gets clipped to the actor's allocation.

https://bugzilla.gnome.org/show_bug.cgi?id=767954
2016-06-23 18:57:05 +02:00
e02467eada ScreenShield: fix setting each arrow's opacity on _animateArrows()
https://bugzilla.gnome.org/show_bug.cgi?id=767954
2016-06-23 18:57:04 +02:00
3e93a1bdd6 StShadowHelper: properly use the actor's box to paint the shadow
We're using an unitialized box resulting in an undefined shadow box
size.

_st_paint_shadow_with_opacity() already computes the shadow's bounding
box from the source actor's box so we just need to pass that along.

https://bugzilla.gnome.org/show_bug.cgi?id=767954
2016-06-23 18:57:02 +02:00
a69a9ba51a Bump version to 3.21.3
Update NEWS.
2016-06-21 21:55:26 +02:00
1c0e0191e0 build: Fix check-for-missing for srcdir != builddir 2016-06-21 21:55:26 +02:00
f233122d4d Updated Brazilian Portuguese translation 2016-06-14 00:53:53 +00:00
72bfa91259 theme-node: Fix leak on stylesheet change.
on_custom_stylesheet_changed() would set properties_computed to FALSE
without freeing the old properties, then the properties pointer would
be overwritten in ensure_properties().

https://bugzilla.gnome.org/show_bug.cgi?id=710230
2016-06-12 00:57:18 +02:00
ef195f0185 Updated Spanish translation 2016-06-06 07:10:55 +00:00
47da6b139e Updated Turkish translation 2016-06-04 21:13:45 +00:00
2705434955 NetworkAgent: Handle VPN service aliases
A VPN plugin can support multiple services, indicated by an 'aliases' key.

We need to be able to spawn the appropriate auth-dialog for these aliases,
as well as the base service.

Covered as an afterthought (from comment 57) in
https://bugzilla.gnome.org/show_bug.cgi?id=658484

See also https://bugzilla.gnome.org/show_bug.cgi?id=746664 and
https://bugzilla.gnome.org/show_bug.cgi?id=767197
2016-06-03 18:27:46 +01:00
a7e030d0f9 Updated Occitan translation 2016-05-30 18:45:39 +00:00
8a44170f83 Updated Portuguese translation 2016-05-30 14:31:38 +00:00
2ea6ae05e5 keyboard: save the MRU input sources list when switching
And restore it when reloading the current list of sources, if
appropriate.

https://bugzilla.gnome.org/show_bug.cgi?id=766826
2016-05-27 10:46:58 -07:00
5c0eba7d3b keyboard: add an interactive argument to input source activation
This is useful to differentiate between a change due to user interaction
or automatic loading.

https://bugzilla.gnome.org/show_bug.cgi?id=766826
2016-05-27 10:46:58 -07:00
f81887772a keyboard: split out a function to udpate the MRU list
We're going to add saving of the MRU list in the function in a later
commit.

https://bugzilla.gnome.org/show_bug.cgi?id=766826
2016-05-27 10:46:58 -07:00
9aa3d864dc keyboard: split out a function
We're going to use this in a later commit.

https://bugzilla.gnome.org/show_bug.cgi?id=766826
2016-05-27 10:46:58 -07:00
2425b11df6 system: Do not disable suspend action when locked
gnome-settings-daemon now allows the corresponding keybinding, so
for consistency it makes sense to show the button as well.

https://bugzilla.gnome.org/show_bug.cgi?id=725960
2016-05-27 17:04:47 +02:00
1cb644529f loginManager: Extend canSuspend() callback
The underlying logind API does not only indicate whether suspend is
available, but also whether the user is eligible for executing the
operation without further authentication. This information can be
relevant, so pass it to the callback.

https://bugzilla.gnome.org/show_bug.cgi?id=725960
2016-05-27 17:04:46 +02:00
6cff0fd994 Bump version to 3.21.2
Update NEWS.
2016-05-27 15:57:07 +02:00
437256e0f1 location: Update for PermissionStore DBus API changes
As xdg-app has been renamed to Flatpak, the permission store's
bus name and interface name have been changes as well.

https://bugzilla.gnome.org/show_bug.cgi?id=766598
2016-05-27 15:31:50 +02:00
841e0132e9 network: Improve labels for Bluetooth devices
Bluetooth is not "Mobile Broadband", so rename the settings link
accordingly. Also use a more assertive connect label.

https://bugzilla.gnome.org/show_bug.cgi?id=757019
2016-05-27 01:03:25 +02:00
1545596c7e AppIconMenu: properly destroy on source destroy.
If the source actor is destroyed while the popupMenu is shown -- this
can happen if a non favorite application was closing or crashes -- the
menu actor is improperly destroyed.

This makes the popupMenu close first and does a clean ungrab instead.

https://bugzilla.gnome.org/show_bug.cgi?id=757556
2016-05-27 01:03:25 +02:00
38406e070c Use the org.gnome.desktop.calendar schema instead of our own
This setting is now shared by Shell and Calendar.

https://bugzilla.gnome.org/show_bug.cgi?id=766318
2016-05-26 23:05:24 +02:00
9b07ce1d0d osdWindow: don't use custom cairo drawing
We can just set the width on a regular actor inside the StBin.

https://bugzilla.gnome.org/show_bug.cgi?id=758471
2016-05-20 17:28:06 -07:00
bf8d30603e windowManager: Avoid code duplication
The various switcher keybindings are handled identically, except for
the popup that is shown; update the code to reflect that instead of
duplicating the code again and again.

https://bugzilla.gnome.org/show_bug.cgi?id=730739
2016-05-19 17:34:00 +02:00
bd6e7f14d1 altTab: Take over cycle-windows/cycle-group keybindings
The code to handle cycling through windows without showing a popup
was removed from mutter a while ago, which left the corresponding
keybindings mostly broken (i.e. they now only switch between two
windows). With the various switch-foo keybindings handled by the
shell, it is now easier to take over the cycle-foo keybindings as
well.

https://bugzilla.gnome.org/show_bug.cgi?id=730739
2016-05-19 17:34:00 +02:00
5226d8b086 st: Init framebuffer early to fix gnome-shell crash on NVIDIA drivers
Checking offscreen for COGL_INVALID_HANDLE is not sufficient,
as cogl_offscreen_new_with_texture doesn't initialize framebuffer
objects but lets Cogl solve this the lazy way.
cogl_offscreen_new_with_texture will never return COGL_INVALID_HANDLE
anyways.

https://bugzilla.gnome.org/show_bug.cgi?id=764898
2016-05-17 15:00:04 +02:00
bd92331780 Updated Icelandic translation
(cherry picked from commit 3bbf681385)
2016-05-14 22:23:59 +00:00
387f5143f0 st: Use case-insensitive shortcuts
For shortcuts that involve a letter (like <ctrl>c), we currently only
accept the lower-case variant. This makes shortcuts awkward to use when
caps-lock is active, and is inconsistent with GTK+, so accept upper-case
variants as well.

https://bugzilla.gnome.org/show_bug.cgi?id=766325
2016-05-12 18:10:04 +02:00
b7867fe44c build: Set rpath on more executables
We need to point executables to our private cogl/clutter forks.
Commit 093fd54e2 did this for the main executable, but forgot
the extension-prefs tool and other helpers.
2016-05-12 18:10:04 +02:00
ddea54a539 ScreenShield: set LockedHint property from systemd
Logind recently got support for a hint property in Session Object to
inform if session is Locked or not. It is up to desktop environments
to keep this property up to date.

https://bugzilla.gnome.org/show_bug.cgi?id=764773
2016-05-12 15:24:06 +02:00
84da49c715 app: Consider minimized windows for app comparisons
We used to take window visibility into account when comparing apps
until commit 1dfc38d078, following changes in the window switcher
due to auto-minimization. However auto-minimization was abolished
and the window switcher changes reverted, so it makes sense again
to sort apps without non-minimized windows last again.

https://bugzilla.gnome.org/show_bug.cgi?id=766238
2016-05-10 21:36:33 +02:00
513dff45c1 Updated Occitan translation 2016-05-09 19:07:49 +00:00
3d697baa26 Updated Japanese translation 2016-05-08 06:16:50 +00:00
9eda10d091 Updated Norwegian bokmål translation. 2016-05-01 14:21:21 +02:00
0f82da8735 Updated Portuguese translation 2016-04-30 15:47:20 +00:00
296b61b61c Bump version to 3.21.1
Update NEWS.
2016-04-29 12:22:01 +02:00
974a896dbc Updated Scottish Gaelic translation 2016-04-29 09:57:17 +00:00
093fd54e2b build: Point executables to our private lib path
We now link to cogl/clutter forks in a private location, so make
sure we set the rpath of executables to point the runtime linker
to the correct location.
2016-04-28 19:35:05 +02:00
5ae3e5aeb7 build: Explicitly add mutter-cogl-pango dependency 2016-04-28 14:11:04 +02:00
af28a219be Build with merged mutter/clutter/cogl
https://bugzilla.gnome.org/show_bug.cgi?id=760439
2016-04-27 20:19:59 +02:00
1883df2927 dnd: Cancel the animation on drag actor destruction
If the drag actor is destroyed before the animation
callback is called, the callback is never called and
we're sticked with dnd grabing the events after we
dropped the target.

https://bugzilla.gnome.org/show_bug.cgi?id=757676
2016-04-27 18:22:00 +02:00
3274f270e3 Updated Esperanto translation 2016-04-27 00:08:10 +02:00
c97626e516 Update gvc submodule
https://bugzilla.gnome.org/show_bug.cgi?id=765607
2016-04-26 15:47:29 +02:00
9c483dd9a6 system: Only show rotation lock when a builtin output is present
We currently show the orientation lock button when an accelerometer
is present, however gnome-settings-daemon's xrandr plugin only applies
rotation when a builtin monitor is present. Update the button's
visibility to match gnome-settings-daemon.

https://bugzilla.gnome.org/show_bug.cgi?id=765267
2016-04-21 21:16:50 +02:00
8fd6e93fbe workspaceThumbnail: Fix size request signatures
ClutterLayoutManager's size request methods have an additional container
argument before the for-width/height parameters compared to ClutterActor.

https://bugzilla.gnome.org/show_bug.cgi?id=763068
2016-04-21 16:04:04 +02:00
8416ba25de st: Don't assert when corner texture creation fails 2016-04-15 19:05:04 +02:00
63f6ff9151 Do not skip CoglError parameters
While CoglError is a define to GError, it doesn't follow the convention
of ignoring errors when NULL is passed, but rather treats the error as
fatal :-(
That's clearly unwanted for a compositor, so make sure to always pass
an error parameter where a runtime error is possible

https://bugzilla.gnome.org/show_bug.cgi?id=765061
2016-04-15 18:22:18 +02:00
59c2ace98c st: Do not try to unref NULL CoglObjects
https://bugzilla.gnome.org/show_bug.cgi?id=765061
2016-04-15 18:22:18 +02:00
cf4465027a [l10n][fa] Fix weekday translation string 2016-04-14 23:05:11 +04:30
a23b293fe2 modalDialog: Fix invalid argument 'timestamp' for pushModal
https://bugzilla.gnome.org/show_bug.cgi?id=722752
2016-04-14 11:10:51 +02:00
c039a3ddda recorder: Fall back to ~ if XDG_VIDEOS_DIR doesn't exist
Unlike screenshots, recordings fail when the default directory doesn't
exist. Fall back to home instead.

https://bugzilla.gnome.org/show_bug.cgi?id=765015
2016-04-13 21:25:31 +02:00
ebe071bd50 Bump version to 3.20.1
Update NEWS.
2016-04-13 18:46:38 +02:00
101 changed files with 11409 additions and 9144 deletions

4
.gitignore vendored

@ -16,7 +16,6 @@ config.log
config.status config.status
config config
configure configure
data/50-gnome-shell-*.xml
data/org.gnome.Shell.desktop data/org.gnome.Shell.desktop
data/org.gnome.Shell.desktop.in data/org.gnome.Shell.desktop.in
data/gnome-shell-extension-prefs.desktop data/gnome-shell-extension-prefs.desktop
@ -26,8 +25,6 @@ data/gschemas.compiled
data/perf-background.xml data/perf-background.xml
data/org.gnome.shell.gschema.xml data/org.gnome.shell.gschema.xml
data/org.gnome.shell.gschema.valid data/org.gnome.shell.gschema.valid
data/org.gnome.shell.evolution.calendar.gschema.xml
data/org.gnome.shell.evolution.calendar.gschema.valid
data/org.gnome.Shell.PortalHelper.desktop data/org.gnome.Shell.PortalHelper.desktop
data/org.gnome.Shell.PortalHelper.service data/org.gnome.Shell.PortalHelper.service
data/theme/.sass-cache data/theme/.sass-cache
@ -74,7 +71,6 @@ src/*-marshal.[ch]
src/Makefile src/Makefile
src/Makefile.in src/Makefile.in
src/calendar-server/evolution-calendar.desktop src/calendar-server/evolution-calendar.desktop
src/calendar-server/evolution-calendar.desktop.in
src/calendar-server/org.gnome.Shell.CalendarServer.service src/calendar-server/org.gnome.Shell.CalendarServer.service
src/gnome-shell src/gnome-shell
src/gnome-shell-calendar-server src/gnome-shell-calendar-server

110
NEWS

@ -1,3 +1,113 @@
3.21.91
=======
Translations:
Mario Blättermann [de], Jiri Grönroos [fi], Dušan Kazik [sk],
Andika Triwidada [id], Daniel Mustieles [es], Fabio Tomat [fur],
Enrico Nicoletto [pt_BR], Matej Urbančič [sl], Мирослав Николић [sr, sr@latin]
3.21.90.1
=========
Contributors:
Piotr Drąg
Translations:
Marek Černocký [cs], Balázs Úr [hu]
3.21.90
=======
* Improve on-screen keyboard on wayland [Carlos; #765009]
* Misc. bug fixes [Florian; #769156, #769216, #769074]
Contributors:
Carlos Garnacho, Florian Müllner
Translations:
Fabio Tomat [fur], Tiago Santos [pt], Daniel Mustieles [es],
Bernd Homuth [de], Aurimas Černius [lt], Balázs Úr [hu],
Yosef Or Boczko [he], Jiri Grönroos [fi], Marek Cernocky [cs],
Muhammet Kara [tr], Enrico Nicoletto [pt_BR], Andika Triwidada [id]
3.21.4
======
* overview: Fix switching workspaces when scrolling on non-primary monitors
[Florian; #766883, #768316]
* Fix crash when using screen recorder under wayland [Rui; #767001]
* Update theme on video memory purge errors [Rui; #739178]
* Free old backgrounds immediately [Hyungwon; #766353]
* Add support for system upgrades to end session dialog [Kalev; #763611]
* Fix maximized windows flickering to the wrong size on restart [Owen; #761566]
* Hide ignored events in calendar as well [Florian; #768538]
* calendar: Only hide dismissed occurrence of recurring event [Florian; #748226]
* Provide org.freedesktop.impl.portal.access implementation [Florian; #768669]
* Misc. bug fixes and cleanups [Rui, Florian, Marinus, Jonas; #767954, #768317,
#746867, #762206, #768956, #768979]
Contributors:
Jonas Ådahl, Piotr Drąg, Hyungwon Hwang, Kalev Lember, Rui Matos,
Florian Müllner, Marinus Schraal, Owen W. Taylor
Translations:
Andika Triwidada [id], Daniel Mustieles [es], Bruce Cowan [en_GB],
Dušan Kazik [sk], Piotr Drąg [pl], Chao-Hsiung Liao [zh_HK]
3.21.3
======
* Do not disable suspend action when locked [Florian; #725960]
* Remember input sources MRU list [Cosimo; #766826]
* networkAgent: Handle VPN service aliases [David; #658484]
* Plug a memory leak [Hans; #710230]
Contributors:
Cosimo Cecchi, Florian Müllner, Hans Petter Jansson, David Woodhouse
Translations:
Tiago Santos [pt], Cédric Valmary [oc], Muhammet Kara [tr],
Daniel Mustieles [es], Rafael Fontenelle [pt_BR]
3.21.2
======
* Fix sorting of hidden apps in app switcher [Florian; #766238]
* Set logind's LockedHint property when locked [Victor; #764773]
* Allocate framebuffers early to fix a crash on NVIDIA [Martin; #764898]
* Fix cycle-windows/cycle-group keybindings [Florian; #730739]
* Switch to shared desktop schema for calendar settings [Iain; #766318]
* Misc. bug fixes [Florian, Cosimo, Michele; #766325, #758471, #757556,
#757019, #766598]
Contributors:
Cosimo Cecchi, Michele Gaio, Iain Lane, Florian Müllner, Martin Szulecki,
Victor Toso
Translations:
Tiago Santos [pt], Kjartan Maraas [nb], Jiro Matsuzawa [ja],
Cédric Valmary [oc], Sveinn í Felli [is]
3.21.1
======
* Save screencasts in HOME if XDG_VIDEO_DIR doesn't exist [Florian; #765015]
* Don't show orientation lock when g-s-d won't rotate [Florian; #765267]
* Misc. bug fixes [Heiher, Florian, Marek, Rui; #722752, #765061, #763068,
#765607, #757676, #760439]
Contributors:
Heiher, Marek Chalupa, Rui Matos, Florian Müllner
Translations:
Arash Mousavi [fa], Kristjan SCHMIDT [eo], GNOME Translation Robot [gd]
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 3.20.0
====== ======

@ -1,5 +1,5 @@
AC_PREREQ(2.63) AC_PREREQ(2.63)
AC_INIT([gnome-shell],[3.20.0],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell]) AC_INIT([gnome-shell],[3.21.91],[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])
@ -24,13 +24,14 @@ LT_PREREQ([2.2.6])
LT_INIT([disable-static]) LT_INIT([disable-static])
# i18n # i18n
IT_PROG_INTLTOOL([0.40])
GETTEXT_PACKAGE=gnome-shell GETTEXT_PACKAGE=gnome-shell
AC_SUBST(GETTEXT_PACKAGE) AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
[The prefix for our gettext translation domains.]) [The prefix for our gettext translation domains.])
AM_GNU_GETTEXT_VERSION([0.19.6])
AM_GNU_GETTEXT([external])
PKG_PROG_PKG_CONFIG([0.22]) PKG_PROG_PKG_CONFIG([0.22])
AC_PATH_PROG([XSLTPROC], [xsltproc]) AC_PATH_PROG([XSLTPROC], [xsltproc])
@ -52,7 +53,7 @@ if $PKG_CONFIG --exists gstreamer-1.0 '>=' $GSTREAMER_MIN_VERSION ; then
AC_MSG_RESULT(yes) AC_MSG_RESULT(yes)
build_recorder=true build_recorder=true
recorder_modules="gstreamer-1.0 gstreamer-base-1.0 x11 gtk+-3.0" recorder_modules="gstreamer-1.0 gstreamer-base-1.0 x11 gtk+-3.0"
PKG_CHECK_MODULES(TEST_SHELL_RECORDER, $recorder_modules clutter-1.0) PKG_CHECK_MODULES(TEST_SHELL_RECORDER, $recorder_modules mutter-clutter-1.0)
else else
AC_MSG_RESULT(no) AC_MSG_RESULT(no)
fi fi
@ -75,9 +76,9 @@ AS_IF([test x$enable_systemd != xno], [
AC_MSG_RESULT($enable_systemd) 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.49.1
GJS_MIN_VERSION=1.39.0 GJS_MIN_VERSION=1.39.0
MUTTER_MIN_VERSION=3.20.0 MUTTER_MIN_VERSION=3.21.91
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
@ -98,8 +99,8 @@ SHARED_PCS="gio-unix-2.0 >= $GIO_MIN_VERSION
gjs-internals-1.0 >= $GJS_MIN_VERSION gjs-internals-1.0 >= $GJS_MIN_VERSION
$recorder_modules $recorder_modules
gdk-x11-3.0 libsoup-2.4 gdk-x11-3.0 libsoup-2.4
clutter-x11-1.0 >= $CLUTTER_MIN_VERSION mutter-clutter-1.0 >= $CLUTTER_MIN_VERSION
clutter-glx-1.0 >= $CLUTTER_MIN_VERSION mutter-cogl-pango-1.0
libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_MIN_VERSION libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_MIN_VERSION
gobject-introspection-1.0 >= $GOBJECT_INTROSPECTION_MIN_VERSION gobject-introspection-1.0 >= $GOBJECT_INTROSPECTION_MIN_VERSION
libcanberra libcanberra-gtk3 libcanberra libcanberra-gtk3
@ -114,12 +115,12 @@ PKG_CHECK_MODULES(GNOME_SHELL, $SHARED_PCS)
PKG_CHECK_MODULES(MUTTER, libmutter >= $MUTTER_MIN_VERSION) PKG_CHECK_MODULES(MUTTER, libmutter >= $MUTTER_MIN_VERSION)
PKG_CHECK_MODULES(GNOME_SHELL_JS, gio-2.0 gjs-internals-1.0 >= $GJS_MIN_VERSION) 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, mutter-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, clutter-1.0 gtk+-3.0) PKG_CHECK_MODULES(TRAY, mutter-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.19.2) PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.21.3)
AC_ARG_ENABLE(browser-plugin, AC_ARG_ENABLE(browser-plugin,
[AS_HELP_STRING([--enable-browser-plugin], [AS_HELP_STRING([--enable-browser-plugin],
@ -254,7 +255,6 @@ AC_CONFIG_FILES([
docs/reference/st/Makefile docs/reference/st/Makefile
docs/reference/st/st-docs.sgml docs/reference/st/st-docs.sgml
js/Makefile js/Makefile
src/calendar-server/evolution-calendar.desktop.in
src/Makefile src/Makefile
src/gvc/Makefile src/gvc/Makefile
browser-plugin/Makefile browser-plugin/Makefile

@ -1,24 +1,24 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<KeyListEntries schema="org.gnome.shell.keybindings" <KeyListEntries schema="org.gnome.shell.keybindings"
group="system" group="system"
_name="System" name="System"
wm_name="GNOME Shell" wm_name="GNOME Shell"
package="gnome-shell"> package="gnome-shell">
<KeyListEntry name="toggle-message-tray" <KeyListEntry name="toggle-message-tray"
_description="Show the notification list"/> description="Show the notification list"/>
<KeyListEntry name="focus-active-notification" <KeyListEntry name="focus-active-notification"
_description="Focus the active notification"/> description="Focus the active notification"/>
<KeyListEntry name="toggle-overview" <KeyListEntry name="toggle-overview"
_description="Show the overview"/> description="Show the overview"/>
<KeyListEntry name="toggle-application-view" <KeyListEntry name="toggle-application-view"
_description="Show all applications"/> description="Show all applications"/>
<KeyListEntry name="open-application-menu" <KeyListEntry name="open-application-menu"
_description="Open the application menu"/> description="Open the application menu"/>
</KeyListEntries> </KeyListEntries>

@ -7,12 +7,16 @@ 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
portaldir = $(datadir)/xdg-desktop-portal/portals
portal_DATA = gnome-shell.portal
servicedir = $(datadir)/dbus-1/services servicedir = $(datadir)/dbus-1/services
service_DATA = org.gnome.Shell.PortalHelper.service service_DATA = org.gnome.Shell.PortalHelper.service
CLEANFILES += \ CLEANFILES += \
org.gnome.Shell.PortalHelper.service \ org.gnome.Shell.PortalHelper.service \
org.gnome.Shell.PortalHelper.desktop \ org.gnome.Shell.PortalHelper.desktop \
org.gnome.Shell.PortalHelper.desktop.in \
$(NULL) $(NULL)
endif endif
@ -28,7 +32,9 @@ endif
-e "s|@VERSION[@]|$(VERSION)|" \ -e "s|@VERSION[@]|$(VERSION)|" \
$< > $@ || rm $@ $< > $@ || rm $@
@INTLTOOL_DESKTOP_RULE@ %.desktop:%.desktop.in
$(AM_V_GEN) $(MSGFMT) --desktop --template $(builddir)/$< \
-d $(top_srcdir)/po -o $@
introspectiondir = $(datadir)/dbus-1/interfaces introspectiondir = $(datadir)/dbus-1/interfaces
introspection_DATA = \ introspection_DATA = \
@ -80,14 +86,11 @@ perf-background.xml: perf-background.xml.in
$< > $@ || rm $@ $< > $@ || rm $@
keysdir = @GNOME_KEYBINDINGS_KEYSDIR@ keysdir = @GNOME_KEYBINDINGS_KEYSDIR@
keys_in_files = 50-gnome-shell-system.xml.in keys_DATA = 50-gnome-shell-system.xml
keys_DATA = $(keys_in_files:.xml.in=.xml)
gsettings_SCHEMAS = org.gnome.shell.gschema.xml gsettings_SCHEMAS = org.gnome.shell.gschema.xml
@INTLTOOL_XML_NOMERGE_RULE@ %.gschema.xml: %.gschema.xml.in Makefile
%.gschema.xml.in: %.gschema.xml.in.in Makefile
$(AM_V_GEN) sed -e 's|@GETTEXT_PACKAGE[@]|$(GETTEXT_PACKAGE)|g' \ $(AM_V_GEN) sed -e 's|@GETTEXT_PACKAGE[@]|$(GETTEXT_PACKAGE)|g' \
$< > $@ || rm $@ $< > $@ || rm $@
@ -106,15 +109,16 @@ convert_DATA = gnome-shell-overrides.convert
EXTRA_DIST = \ EXTRA_DIST = \
org.gnome.Shell.desktop.in.in \ org.gnome.Shell.desktop.in.in \
gnome-shell-extension-prefs.desktop.in.in \ gnome-shell-extension-prefs.desktop.in.in \
$(portal_DATA) \
$(introspection_DATA) \ $(introspection_DATA) \
$(menu_DATA) \ $(menu_DATA) \
$(convert_DATA) \ $(convert_DATA) \
$(keys_in_files) \ $(keys_DATA) \
$(dist_theme_files) \ $(dist_theme_files) \
perf-background.xml.in \ perf-background.xml.in \
org.gnome.Shell.PortalHelper.desktop.in \ org.gnome.Shell.PortalHelper.desktop.in.in \
org.gnome.Shell.PortalHelper.service.in \ org.gnome.Shell.PortalHelper.service.in \
org.gnome.shell.gschema.xml.in.in \ org.gnome.shell.gschema.xml.in \
gnome-shell-theme.gresource.xml \ gnome-shell-theme.gresource.xml \
$(resource_files) \ $(resource_files) \
$(NULL) $(NULL)
@ -123,11 +127,9 @@ CLEANFILES += \
org.gnome.Shell.desktop.in \ org.gnome.Shell.desktop.in \
gnome-shell-extension-prefs.in \ gnome-shell-extension-prefs.in \
$(desktop_DATA) \ $(desktop_DATA) \
$(keys_DATA) \
$(gsettings_SCHEMAS) \ $(gsettings_SCHEMAS) \
perf-background.xml \ perf-background.xml \
gschemas.compiled \ gschemas.compiled \
org.gnome.shell.gschema.valid \ org.gnome.shell.gschema.valid \
org.gnome.shell.gschema.xml.in \
gnome-shell-theme.gresource \ gnome-shell-theme.gresource \
$(NULL) $(NULL)

@ -1,7 +1,7 @@
[Desktop Entry] [Desktop Entry]
Type=Application Type=Application
_Name=GNOME Shell Extension Preferences Name=GNOME Shell Extension Preferences
_Comment=Configure GNOME Shell Extensions Comment=Configure GNOME Shell Extensions
Exec=@bindir@/gnome-shell-extension-prefs %u Exec=@bindir@/gnome-shell-extension-prefs %u
X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gnome-shell X-GNOME-Bugzilla-Product=gnome-shell

4
data/gnome-shell.portal Normal file

@ -0,0 +1,4 @@
[portal]
DBusName=org.freedesktop.impl.portal.desktop.gnome
Interfaces=org.freedesktop.impl.portal.Access
UseIn=gnome

@ -1,9 +1,10 @@
[Desktop Entry] [Desktop Entry]
_Name=Network Login Name=Network Login
Type=Application Type=Application
Exec=gapplication launch org.gnome.Shell.PortalHelper Exec=gapplication launch org.gnome.Shell.PortalHelper
DBusActivatable=true DBusActivatable=true
NoDisplay=true NoDisplay=true
# Translators: Do NOT translate or transliterate this text (this is an icon file name)!
Icon=network-workgroup Icon=network-workgroup
StartupNotify=true StartupNotify=true
OnlyShowIn=GNOME; OnlyShowIn=GNOME;

@ -1,7 +1,7 @@
[Desktop Entry] [Desktop Entry]
Type=Application Type=Application
_Name=GNOME Shell Name=GNOME Shell
_Comment=Window management and application launching Comment=Window management and application launching
Exec=@bindir@/gnome-shell Exec=@bindir@/gnome-shell
X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gnome-shell X-GNOME-Bugzilla-Product=gnome-shell

@ -3,143 +3,131 @@
gettext-domain="@GETTEXT_PACKAGE@"> gettext-domain="@GETTEXT_PACKAGE@">
<key name="development-tools" type="b"> <key name="development-tools" type="b">
<default>true</default> <default>true</default>
<_summary> <summary>
Enable internal tools useful for developers and testers from Alt-F2 Enable internal tools useful for developers and testers from Alt-F2
</_summary> </summary>
<_description> <description>
Allows access to internal debugging and monitoring tools Allows access to internal debugging and monitoring tools
using the Alt-F2 dialog. using the Alt-F2 dialog.
</_description> </description>
</key> </key>
<key name="enabled-extensions" type="as"> <key name="enabled-extensions" type="as">
<default>[]</default> <default>[]</default>
<_summary>UUIDs of extensions to enable</_summary> <summary>UUIDs of extensions to enable</summary>
<_description> <description>
GNOME Shell extensions have a UUID property; this key lists extensions GNOME Shell extensions have a UUID property; this key lists extensions
which should be loaded. Any extension that wants to be loaded needs which should be loaded. Any extension that wants to be loaded needs
to be in this list. You can also manipulate this list with the to be in this list. You can also manipulate this list with the
EnableExtension and DisableExtension D-Bus methods on org.gnome.Shell. EnableExtension and DisableExtension D-Bus methods on org.gnome.Shell.
</_description> </description>
</key> </key>
<key name="disable-extension-version-validation" type="b"> <key name="disable-extension-version-validation" type="b">
<default>false</default> <default>false</default>
<_summary>Disables the validation of extension version compatibility</_summary> <summary>Disables the validation of extension version compatibility</summary>
<_description> <description>
GNOME Shell will only load extensions that claim to support the current GNOME Shell will only load extensions that claim to support the current
running version. Enabling this option will disable this check and try to running version. Enabling this option will disable this check and try to
load all extensions regardless of the versions they claim to support. load all extensions regardless of the versions they claim to support.
</_description> </description>
</key> </key>
<key name="favorite-apps" type="as"> <key name="favorite-apps" type="as">
<default>[ 'epiphany.desktop', 'evolution.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop' ]</default> <default>[ 'epiphany.desktop', 'evolution.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop' ]</default>
<_summary>List of desktop file IDs for favorite applications</_summary> <summary>List of desktop file IDs for favorite applications</summary>
<_description> <description>
The applications corresponding to these identifiers The applications corresponding to these identifiers
will be displayed in the favorites area. will be displayed in the favorites area.
</_description> </description>
</key> </key>
<key name="app-picker-view" type="u"> <key name="app-picker-view" type="u">
<default>0</default> <default>0</default>
<_summary>App Picker View</_summary> <summary>App Picker View</summary>
<_description> <description>
Index of the currently selected view in the application picker. Index of the currently selected view in the application picker.
</_description> </description>
</key> </key>
<key name="command-history" type="as"> <key name="command-history" type="as">
<default>[]</default> <default>[]</default>
<_summary>History for command (Alt-F2) dialog</_summary> <summary>History for command (Alt-F2) dialog</summary>
</key> </key>
<key name="looking-glass-history" type="as"> <key name="looking-glass-history" type="as">
<default>[]</default> <default>[]</default>
<!-- 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://wiki.gnome.org/Projects/GnomeShell/LookingGlass -->
<_summary>History for the looking glass dialog</_summary> <summary>History for the looking glass dialog</summary>
</key> </key>
<key name="always-show-log-out" type="b"> <key name="always-show-log-out" type="b">
<default>false</default> <default>false</default>
<_summary>Always show the 'Log out' menu item in the user menu.</_summary> <summary>Always show the 'Log out' menu item in the user menu.</summary>
<_description> <description>
This key overrides the automatic hiding of the 'Log out' This key overrides the automatic hiding of the 'Log out'
menu item in single-user, single-session situations. menu item in single-user, single-session situations.
</_description> </description>
</key> </key>
<key name="remember-mount-password" type="b"> <key name="remember-mount-password" type="b">
<default>false</default> <default>false</default>
<_summary>Whether to remember password for mounting encrypted or remote filesystems</_summary> <summary>Whether to remember password for mounting encrypted or remote filesystems</summary>
<_description> <description>
The shell will request a password when an encrypted device or a The shell will request a password when an encrypted device or a
remote filesystem is mounted. If the password can be saved for remote filesystem is mounted. If the password can be saved for
future use a 'Remember Password' checkbox will be present. future use a 'Remember Password' checkbox will be present.
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"> <key name="had-bluetooth-devices-setup" type="b">
<default>false</default> <default>false</default>
<_summary>Whether the default Bluetooth adapter had set up devices associated to it</_summary> <summary>Whether the default Bluetooth adapter had set up devices associated to it</summary>
<_description> <description>
The shell will only show a Bluetooth menu item if a Bluetooth The shell will only show a Bluetooth menu item if a Bluetooth
adapter is powered, or if there were devices set up associated adapter is powered, or if there were devices set up associated
with the default adapter. This will be reset if the default with the default adapter. This will be reset if the default
adapter is ever seen not to have devices associated to it. adapter is ever seen not to have devices associated to it.
</_description> </description>
</key> </key>
<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"/>
</schema> </schema>
<schema id="org.gnome.shell.calendar" path="/org/gnome/shell/calendar/"
gettext-domain="@GETTEXT_PACKAGE@">
<key name="show-weekdate" type="b">
<default>false</default>
<_summary>Show the week date in the calendar</_summary>
<_description>
If true, display the ISO week date in the calendar.
</_description>
</key>
</schema>
<schema id="org.gnome.shell.keybindings" path="/org/gnome/shell/keybindings/" <schema id="org.gnome.shell.keybindings" path="/org/gnome/shell/keybindings/"
gettext-domain="@GETTEXT_PACKAGE@"> gettext-domain="@GETTEXT_PACKAGE@">
<key name="open-application-menu" type="as"> <key name="open-application-menu" type="as">
<default>["&lt;Super&gt;F10"]</default> <default>["&lt;Super&gt;F10"]</default>
<_summary>Keybinding to open the application menu</_summary> <summary>Keybinding to open the application menu</summary>
<_description> <description>
Keybinding to open the application menu. Keybinding to open the application menu.
</_description> </description>
</key> </key>
<key name="toggle-application-view" type="as"> <key name="toggle-application-view" type="as">
<default>["&lt;Super&gt;a"]</default> <default>["&lt;Super&gt;a"]</default>
<_summary>Keybinding to open the "Show Applications" view</_summary> <summary>Keybinding to open the "Show Applications" view</summary>
<_description> <description>
Keybinding to open the "Show Applications" view of the Activities Keybinding to open the "Show Applications" view of the Activities
Overview. Overview.
</_description> </description>
</key> </key>
<key name="toggle-overview" type="as"> <key name="toggle-overview" type="as">
<default>["&lt;Super&gt;s"]</default> <default>["&lt;Super&gt;s"]</default>
<_summary>Keybinding to open the overview</_summary> <summary>Keybinding to open the overview</summary>
<_description> <description>
Keybinding to open the Activities Overview. Keybinding to open the Activities Overview.
</_description> </description>
</key> </key>
<key name="toggle-message-tray" type="as"> <key name="toggle-message-tray" type="as">
<default>["&lt;Super&gt;v","&lt;Super&gt;m"]</default> <default>["&lt;Super&gt;v","&lt;Super&gt;m"]</default>
<_summary>Keybinding to toggle the visibility of the notification list</_summary> <summary>Keybinding to toggle the visibility of the notification list</summary>
<_description> <description>
Keybinding to toggle the visibility of the notification list. Keybinding to toggle the visibility of the notification list.
</_description> </description>
</key> </key>
<key name="focus-active-notification" type="as"> <key name="focus-active-notification" type="as">
<default>["&lt;Super&gt;n"]</default> <default>["&lt;Super&gt;n"]</default>
<_summary>Keybinding to focus the active notification</_summary> <summary>Keybinding to focus the active notification</summary>
<_description> <description>
Keybinding to focus the active notification. Keybinding to focus the active notification.
</_description> </description>
</key> </key>
<key name="pause-resume-tweens" type="as"> <key name="pause-resume-tweens" type="as">
<default>[]</default> <default>[]</default>
<_summary>Keybinding that pauses and resumes all running tweens, for debugging purposes</_summary> <summary>Keybinding that pauses and resumes all running tweens, for debugging purposes</summary>
<_description></_description> <description></description>
</key> </key>
</schema> </schema>
@ -147,10 +135,10 @@
gettext-domain="@GETTEXT_PACKAGE@"> gettext-domain="@GETTEXT_PACKAGE@">
<key name="keyboard-type" type="s"> <key name="keyboard-type" type="s">
<default>'touch'</default> <default>'touch'</default>
<_summary>Which keyboard to use</_summary> <summary>Which keyboard to use</summary>
<_description> <description>
The type of keyboard to use. The type of keyboard to use.
</_description> </description>
</key> </key>
</schema> </schema>
@ -159,11 +147,11 @@
gettext-domain="@GETTEXT_PACKAGE@"> gettext-domain="@GETTEXT_PACKAGE@">
<key type="b" name="current-workspace-only"> <key type="b" name="current-workspace-only">
<default>false</default> <default>false</default>
<_summary>Limit switcher to current workspace.</_summary> <summary>Limit switcher to current workspace.</summary>
<_description> <description>
If true, only applications that have windows on the current workspace are shown in the switcher. If true, only applications that have windows on the current workspace are shown in the switcher.
Otherwise, all applications are included. Otherwise, all applications are included.
</_description> </description>
</key> </key>
</schema> </schema>
@ -177,20 +165,20 @@
gettext-domain="@GETTEXT_PACKAGE@"> gettext-domain="@GETTEXT_PACKAGE@">
<key name="app-icon-mode" enum="org.gnome.shell.window-switcher.AppIconMode"> <key name="app-icon-mode" enum="org.gnome.shell.window-switcher.AppIconMode">
<default>'both'</default> <default>'both'</default>
<_summary>The application icon mode.</_summary> <summary>The application icon mode.</summary>
<_description> <description>
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-only' are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-only'
(shows only the application icon) or 'both'. (shows only the application icon) or 'both'.
</_description> </description>
</key> </key>
<key type="b" name="current-workspace-only"> <key type="b" name="current-workspace-only">
<default>true</default> <default>true</default>
<_summary>Limit switcher to current workspace.</_summary> <summary>Limit switcher to current workspace.</summary>
<_description> <description>
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.
</_description> </description>
</key> </key>
</schema> </schema>
@ -198,43 +186,43 @@
gettext-domain="@GETTEXT_PACKAGE@"> gettext-domain="@GETTEXT_PACKAGE@">
<key name="attach-modal-dialogs" type="b"> <key name="attach-modal-dialogs" type="b">
<default>true</default> <default>true</default>
<_summary>Attach modal dialog to the parent window</_summary> <summary>Attach modal dialog to the parent window</summary>
<_description> <description>
This key overrides the key in org.gnome.mutter when running This key overrides the key in org.gnome.mutter when running
GNOME Shell. GNOME Shell.
</_description> </description>
</key> </key>
<key name="edge-tiling" type="b"> <key name="edge-tiling" type="b">
<default>true</default> <default>true</default>
<_summary>Enable edge tiling when dropping windows on screen edges</_summary> <summary>Enable edge tiling when dropping windows on screen edges</summary>
<_description> <description>
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.
</_description> </description>
</key> </key>
<key name="dynamic-workspaces" type="b"> <key name="dynamic-workspaces" type="b">
<default>true</default> <default>true</default>
<_summary>Workspaces are managed dynamically</_summary> <summary>Workspaces are managed dynamically</summary>
<_description> <description>
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.
</_description> </description>
</key> </key>
<key name="workspaces-only-on-primary" type="b"> <key name="workspaces-only-on-primary" type="b">
<default>true</default> <default>true</default>
<_summary>Workspaces only on primary monitor</_summary> <summary>Workspaces only on primary monitor</summary>
<_description> <description>
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.
</_description> </description>
</key> </key>
<key name="focus-change-on-pointer-rest" type="b"> <key name="focus-change-on-pointer-rest" type="b">
<default>true</default> <default>true</default>
<_summary>Delay focus changes in mouse mode until the pointer stops moving</_summary> <summary>Delay focus changes in mouse mode until the pointer stops moving</summary>
<_description> <description>
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.
</_description> </description>
</key> </key>
</schema> </schema>
</schemalist> </schemalist>

@ -427,6 +427,29 @@ StScrollBar {
.audio-selection-device-icon { .audio-selection-device-icon {
icon-size: 64px; } icon-size: 64px; }
/* Access Dialog */
.access-dialog {
spacing: 30px; }
.access-dialog-main-layout {
padding: 12px 20px 0;
spacing: 12px; }
.access-dialog-content {
max-width: 28em;
spacing: 20px; }
.access-dialog-icon {
min-width: 48px;
icon-size: 48px; }
.access-dialog-title {
font-weight: bold; }
.access-dialog-subtitle {
color: #999999;
font-weight: bold; }
/* Geolocation Dialog */ /* Geolocation Dialog */
.geolocation-dialog { .geolocation-dialog {
spacing: 30px; } spacing: 30px; }
@ -535,6 +558,9 @@ StScrollBar {
border-radius: 0.3em; border-radius: 0.3em;
background-color: rgba(11, 12, 13, 0.5); background-color: rgba(11, 12, 13, 0.5);
color: #eeeeec; } color: #eeeeec; }
.osd-window .level-bar {
background-color: #eeeeec;
border-radius: 0.3em; }
/* App Switcher */ /* App Switcher */
.switcher-popup { .switcher-popup {
@ -766,7 +792,7 @@ StScrollBar {
border-radius: 1.4em; } border-radius: 1.4em; }
.calendar-day-base:hover, .calendar-day-base:focus { .calendar-day-base:hover, .calendar-day-base:focus {
background-color: #0d0d0d; } background-color: #0d0d0d; }
.calendar-day-base:active { .calendar-day-base:active, .calendar-day-base:selected {
color: white; color: white;
background-color: #215d9c; background-color: #215d9c;
border-color: transparent; } border-color: transparent; }

@ -427,6 +427,29 @@ StScrollBar {
.audio-selection-device-icon { .audio-selection-device-icon {
icon-size: 64px; } icon-size: 64px; }
/* Access Dialog */
.access-dialog {
spacing: 30px; }
.access-dialog-main-layout {
padding: 12px 20px 0;
spacing: 12px; }
.access-dialog-content {
max-width: 28em;
spacing: 20px; }
.access-dialog-icon {
min-width: 48px;
icon-size: 48px; }
.access-dialog-title {
font-weight: bold; }
.access-dialog-subtitle {
color: #8e8e80;
font-weight: bold; }
/* Geolocation Dialog */ /* Geolocation Dialog */
.geolocation-dialog { .geolocation-dialog {
spacing: 30px; } spacing: 30px; }
@ -535,6 +558,9 @@ StScrollBar {
border-radius: 0.3em; border-radius: 0.3em;
background-color: rgba(11, 12, 13, 0.5); background-color: rgba(11, 12, 13, 0.5);
color: #eeeeec; } color: #eeeeec; }
.osd-window .level-bar {
background-color: #eeeeec;
border-radius: 0.3em; }
/* App Switcher */ /* App Switcher */
.switcher-popup { .switcher-popup {
@ -766,7 +792,7 @@ StScrollBar {
border-radius: 1.4em; } border-radius: 1.4em; }
.calendar-day-base:hover, .calendar-day-base:focus { .calendar-day-base:hover, .calendar-day-base:focus {
background-color: #454c4c; } background-color: #454c4c; }
.calendar-day-base:active { .calendar-day-base:active, .calendar-day-base:selected {
color: white; color: white;
background-color: #215d9c; background-color: #215d9c;
border-color: transparent; } border-color: transparent; }

@ -113,7 +113,7 @@ expand_content_files=
# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) # e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) # e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
GTKDOC_CFLAGS=$(GNOME_SHELL_CFLAGS) GTKDOC_CFLAGS=$(GNOME_SHELL_CFLAGS)
GTKDOC_LIBS=$(GNOME_SHELL_LIBS) $(top_builddir)/src/libgnome-shell-menu.la $(top_builddir)/src/libgnome-shell-base.la $(top_builddir)/src/libgnome-shell.la GTKDOC_LIBS=$(GNOME_SHELL_LIBS) $(top_builddir)/src/libgnome-shell-menu.la $(top_builddir)/src/libgnome-shell-base.la $(top_builddir)/src/libgnome-shell.la -rpath $(MUTTER_TYPELIB_DIR)
# This includes the standard gtk-doc make rules, copied by gtkdocize. # This includes the standard gtk-doc make rules, copied by gtkdocize.
include $(top_srcdir)/gtk-doc.make include $(top_srcdir)/gtk-doc.make

@ -78,7 +78,7 @@ expand_content_files=
# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) # e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) # e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
GTKDOC_CFLAGS= GTKDOC_CFLAGS=
GTKDOC_LIBS=$(top_builddir)/src/libst-1.0.la GTKDOC_LIBS=$(top_builddir)/src/libst-1.0.la -rpath $(MUTTER_TYPELIB_DIR)
# This includes the standard gtk-doc make rules, copied by gtkdocize. # This includes the standard gtk-doc make rules, copied by gtkdocize.
include $(top_srcdir)/gtk-doc.make include $(top_srcdir)/gtk-doc.make

@ -31,6 +31,7 @@
<file>portalHelper/main.js</file> <file>portalHelper/main.js</file>
<file>ui/accessDialog.js</file>
<file>ui/altTab.js</file> <file>ui/altTab.js</file>
<file>ui/animation.js</file> <file>ui/animation.js</file>
<file>ui/appDisplay.js</file> <file>ui/appDisplay.js</file>

@ -40,6 +40,9 @@ const SystemdLoginSessionIface = '<node> \
<signal name="Lock" /> \ <signal name="Lock" /> \
<signal name="Unlock" /> \ <signal name="Unlock" /> \
<property name="Active" type="b" access="read" /> \ <property name="Active" type="b" access="read" /> \
<method name="SetLockedHint"> \
<arg type="b" direction="in"/> \
</method> \
</interface> \ </interface> \
</node>'; </node>';
@ -131,10 +134,13 @@ const LoginManagerSystemd = new Lang.Class({
canSuspend: function(asyncCallback) { canSuspend: function(asyncCallback) {
this._proxy.CanSuspendRemote(function(result, error) { this._proxy.CanSuspendRemote(function(result, error) {
if (error) if (error) {
asyncCallback(false); asyncCallback(false, false);
else } else {
asyncCallback(result[0] != 'no' && result[0] != 'na'); let needsAuth = result[0] == 'challenge';
let canSuspend = needsAuth || result[0] == 'yes';
asyncCallback(canSuspend, needsAuth);
}
}); });
}, },
@ -187,7 +193,7 @@ const LoginManagerDummy = new Lang.Class({
}, },
canSuspend: function(asyncCallback) { canSuspend: function(asyncCallback) {
asyncCallback(false); asyncCallback(false, false);
}, },
listSessions: function(asyncCallback) { listSessions: function(asyncCallback) {

202
js/ui/accessDialog.js Normal file

@ -0,0 +1,202 @@
const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Lang = imports.lang;
const Pango = imports.gi.Pango;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const CheckBox = imports.ui.checkBox;
const ModalDialog = imports.ui.modalDialog;
const RequestIface = '<node> \
<interface name="org.freedesktop.impl.portal.Request"> \
<method name="Close"/> \
</interface> \
</node>';
const AccessIface = '<node> \
<interface name="org.freedesktop.impl.portal.Access"> \
<method name="AccessDialog"> \
<arg type="o" name="handle" direction="in"/> \
<arg type="s" name="app_id" direction="in"/> \
<arg type="s" name="parent_window" direction="in"/> \
<arg type="s" name="title" direction="in"/> \
<arg type="s" name="subtitle" direction="in"/> \
<arg type="s" name="body" direction="in"/> \
<arg type="a{sv}" name="options" direction="in"/> \
<arg type="u" name="response" direction="out"/> \
<arg type="a{sv}" name="results" direction="out"/> \
</method> \
</interface> \
</node>';
const DialogResponse = {
OK: 0,
CANCEL: 1,
CLOSED: 2
};
const AccessDialog = new Lang.Class({
Name: 'AccessDialog',
Extends: ModalDialog.ModalDialog,
_init: function(invocation, handle, title, subtitle, body, options) {
this.parent({ styleClass: 'access-dialog' });
this._invocation = invocation;
this._handle = handle;
this._requestExported = false;
this._request = Gio.DBusExportedObject.wrapJSObject(RequestIface, this);
for (let option in options)
options[option] = options[option].deep_unpack();
this._buildLayout(title, subtitle, body, options);
},
_buildLayout: function(title, subtitle, body, options) {
// No support for non-modal system dialogs, so ignore the option
//let modal = options['modal'] || true;
let denyLabel = options['deny_label'] || _("Deny Access");
let grantLabel = options['grant_label'] || _("Grant Access");
let iconName = options['icon'] || null;
let choices = options['choices'] || [];
let mainContentBox = new St.BoxLayout();
mainContentBox.style_class = 'access-dialog-main-layout';
this.contentLayout.add_actor(mainContentBox);
let icon = new St.Icon({ style_class: 'access-dialog-icon',
icon_name: iconName,
y_align: Clutter.ActorAlign.START });
mainContentBox.add_actor(icon);
let messageBox = new St.BoxLayout({ vertical: true });
messageBox.style_class = 'access-dialog-content',
mainContentBox.add_actor(messageBox);
let label;
label = new St.Label({ style_class: 'access-dialog-title headline',
text: title });
messageBox.add_actor(label);
label = new St.Label({ style_class: 'access-dialog-subtitle',
text: subtitle });
label.clutter_text.ellipsize = Pango.EllipsizeMode.NONE;
label.clutter_text.line_wrap = true;
messageBox.add_actor(label);
this._choices = new Map();
for (let i = 0; i < choices.length; i++) {
let [id, name, opts, selected] = choices[i];
if (opts.length > 0)
continue; // radio buttons, not implemented
let check = new CheckBox.CheckBox();
check.getLabelActor().text = name;
check.actor.checked = selected == "true";
messageBox.add_actor(check.actor);
this._choices.set(id, check);
}
label = new St.Label({ text: body });
label.clutter_text.ellipsize = Pango.EllipsizeMode.NONE;
label.clutter_text.line_wrap = true;
messageBox.add_actor(label);
this.addButton({ label: denyLabel,
action: () => {
this._sendResponse(DialogResponse.CANCEL);
},
key: Clutter.KEY_Escape });
this.addButton({ label: grantLabel,
action: () => {
this._sendResponse(DialogResponse.OK);
}});
},
open: function() {
this.parent();
let connection = this._invocation.get_connection();
this._requestExported = this._request.export(connection, this._handle);
},
CloseAsync: function(invocation, params) {
if (this._invocation.get_sender() != invocation.get_sender()) {
invocation.return_error_literal(Gio.DBusError,
Gio.DBusError.ACCESS_DENIED,
'');
return;
}
this._sendResponse(DialogResponse.CLOSED);
},
_sendResponse: function(response) {
if (this._requestExported)
this._request.unexport();
this._requestExported = false;
let results = {};
if (response == DialogResponse.OK) {
for (let [id, check] of this._choices) {
let checked = check.actor.checked ? 'true' : 'false';
results[id] = new GLib.Variant('s', checked);
}
}
// Delay actual response until the end of the close animation (if any)
this.connect('closed', () => {
this._invocation.return_value(new GLib.Variant('(ua{sv})',
[response, results]));
});
this.close();
}
});
const AccessDialogDBus = new Lang.Class({
Name: 'AccessDialogDBus',
_init: function() {
this._accessDialog = null;
this._windowTracker = Shell.WindowTracker.get_default();
this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(AccessIface, this);
this._dbusImpl.export(Gio.DBus.session, '/org/freedesktop/portal/desktop');
Gio.DBus.session.own_name('org.freedesktop.impl.portal.desktop.gnome', Gio.BusNameOwnerFlags.REPLACE, null, null);
},
AccessDialogAsync: function(params, invocation) {
if (this._accessDialog) {
invocation.return_error_literal(Gio.DBusError,
Gio.DBusError.LIMITS_EXCEEDED,
'Already showing a system access dialog');
return;
}
let [handle, appId, parentWindow, title, subtitle, body, options] = params;
// We probably want to use parentWindow and global.display.focus_window
// for this check in the future
if (appId && appId + '.desktop' != this._windowTracker.focus_app.id) {
invocation.return_error_literal(Gio.DBusError,
Gio.DBusError.ACCESS_DENIED,
'Only the focused app is allowed to show a system access dialog');
return;
}
let dialog = new AccessDialog(invocation, handle, title,
subtitle, body, options);
dialog.open();
dialog.connect('closed', () => { this._accessDialog = null; });
this._accessDialog = dialog;
}
});

@ -354,6 +354,59 @@ const AppSwitcherPopup = new Lang.Class({
} }
}); });
const CyclerPopup = new Lang.Class({
Name: 'CyclerPopup',
Extends: SwitcherPopup.SwitcherPopup,
Abstract: true,
_init : function() {
this.parent();
this._items = this._getWindows();
if (this._items.length == 0)
return;
// We don't show an actual popup, so just provide what SwitcherPopup
// expects instead of inheriting from SwitcherList
this._switcherList = { actor: new St.Widget(),
highlight: Lang.bind(this, this._highlightItem),
connect: function() {} };
},
_highlightItem: function(index, justOutline) {
Main.activateWindow(this._items[index]);
},
_finish: function() {
this._highlightItem(this._selectedIndex);
this.parent();
}
});
const GroupCyclerPopup = new Lang.Class({
Name: 'GroupCyclerPopup',
Extends: CyclerPopup,
_getWindows: function() {
let app = Shell.WindowTracker.get_default().focus_app;
return app ? app.get_windows() : [];
},
_keyPressHandler: function(keysym, action) {
if (action == Meta.KeyBindingAction.CYCLE_GROUP)
this._select(this._next());
else if (action == Meta.KeyBindingAction.CYCLE_GROUP_BACKWARD)
this._select(this._previous());
else
return Clutter.EVENT_PROPAGATE;
return Clutter.EVENT_STOP;
}
});
const WindowSwitcherPopup = new Lang.Class({ const WindowSwitcherPopup = new Lang.Class({
Name: 'WindowSwitcherPopup', Name: 'WindowSwitcherPopup',
Extends: SwitcherPopup.SwitcherPopup, Extends: SwitcherPopup.SwitcherPopup,
@ -401,6 +454,32 @@ const WindowSwitcherPopup = new Lang.Class({
} }
}); });
const WindowCyclerPopup = new Lang.Class({
Name: 'WindowCyclerPopup',
Extends: CyclerPopup,
_init: function() {
this._settings = new Gio.Settings({ schema_id: 'org.gnome.shell.window-switcher' });
this.parent();
},
_getWindows: function() {
let workspace = this._settings.get_boolean('current-workspace-only') ? global.screen.get_active_workspace() : null;
return global.display.get_tab_list(Meta.TabList.NORMAL, workspace);
},
_keyPressHandler: function(keysym, action) {
if (action == Meta.KeyBindingAction.CYCLE_WINDOWS)
this._select(this._next());
else if (action == Meta.KeyBindingAction.CYCLE_WINDOWS_BACKWARD)
this._select(this._previous());
else
return Clutter.EVENT_PROPAGATE;
return Clutter.EVENT_STOP;
}
});
const AppIcon = new Lang.Class({ const AppIcon = new Lang.Class({
Name: 'AppIcon', Name: 'AppIcon',

@ -1814,7 +1814,7 @@ const AppIconMenu = new Lang.Class({
if (!source.actor.mapped) if (!source.actor.mapped)
this.close(); this.close();
})); }));
source.actor.connect('destroy', Lang.bind(this, function () { this.actor.destroy(); })); source.actor.connect('destroy', Lang.bind(this, this.destroy));
Main.uiGroup.add_actor(this.actor); Main.uiGroup.add_actor(this.actor);
}, },

@ -696,6 +696,7 @@ const BackgroundManager = new Lang.Class({
time: FADE_ANIMATION_TIME, time: FADE_ANIMATION_TIME,
transition: 'easeOutQuad', transition: 'easeOutQuad',
onComplete: function() { onComplete: function() {
oldBackgroundActor.background.run_dispose();
oldBackgroundActor.destroy(); oldBackgroundActor.destroy();
} }
}); });

@ -120,6 +120,9 @@ const EmptyEventSource = new Lang.Class({
destroy: function() { destroy: function() {
}, },
ignoreEvent: function(event) {
},
requestRange: function(begin, end) { requestRange: function(begin, end) {
}, },
@ -184,6 +187,15 @@ const DBusEventSource = new Lang.Class({
this.isLoading = false; this.isLoading = false;
this.isDummy = false; this.isDummy = false;
this._ignoredEvents = new Map();
let savedState = global.get_persistent_state('as', 'ignored_events');
if (savedState)
savedState.deep_unpack().forEach(Lang.bind(this,
function(eventId) {
this._ignoredEvents.set(eventId, true);
}));
this._initialized = false; this._initialized = false;
this._dbusProxy = new CalendarServer(); this._dbusProxy = new CalendarServer();
this._dbusProxy.init_async(GLib.PRIORITY_DEFAULT, null, Lang.bind(this, function(object, result) { this._dbusProxy.init_async(GLib.PRIORITY_DEFAULT, null, Lang.bind(this, function(object, result) {
@ -298,6 +310,16 @@ const DBusEventSource = new Lang.Class({
} }
}, },
ignoreEvent: function(event) {
if (this._ignoredEvents.get(event.id))
return;
this._ignoredEvents.set(event.id, true);
let savedState = new GLib.Variant('as', [...this._ignoredEvents.keys()]);
global.set_persistent_state('ignored_events', savedState);
this.emit('changed');
},
requestRange: function(begin, end) { requestRange: function(begin, end) {
if (!(_datesEqual(begin, this._lastRequestBegin) && _datesEqual(end, this._lastRequestEnd))) { if (!(_datesEqual(begin, this._lastRequestBegin) && _datesEqual(end, this._lastRequestEnd))) {
this.isLoading = true; this.isLoading = true;
@ -313,6 +335,10 @@ const DBusEventSource = new Lang.Class({
let result = []; let result = [];
for(let n = 0; n < this._events.length; n++) { for(let n = 0; n < this._events.length; n++) {
let event = this._events[n]; let event = this._events[n];
if (this._ignoredEvents.has(event.id))
continue;
if (_dateIntervalsOverlap (event.date, event.end, begin, end)) { if (_dateIntervalsOverlap (event.date, event.end, begin, end)) {
result.push(event); result.push(event);
} }
@ -345,7 +371,7 @@ const Calendar = new Lang.Class({
_init: function() { _init: function() {
this._weekStart = Shell.util_get_week_start(); this._weekStart = Shell.util_get_week_start();
this._settings = new Gio.Settings({ schema_id: 'org.gnome.shell.calendar' }); this._settings = new Gio.Settings({ schema_id: 'org.gnome.desktop.calendar' });
this._settings.connect('changed::' + SHOW_WEEKDATE_KEY, Lang.bind(this, this._onSettingsChange)); this._settings.connect('changed::' + SHOW_WEEKDATE_KEY, Lang.bind(this, this._onSettingsChange));
this._useWeekdate = this._settings.get_boolean(SHOW_WEEKDATE_KEY); this._useWeekdate = this._settings.get_boolean(SHOW_WEEKDATE_KEY);
@ -660,12 +686,12 @@ const Calendar = new Lang.Class({
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('selected');
if (this._shouldDateGrabFocus) if (this._shouldDateGrabFocus)
button.grab_key_focus(); button.grab_key_focus();
} }
else else
button.remove_style_pseudo_class('active'); button.remove_style_pseudo_class('selected');
})); }));
} }
}); });
@ -785,15 +811,6 @@ const EventsSection = new Lang.Class({
this._desktopSettings.connect('changed', Lang.bind(this, this._reloadEvents)); this._desktopSettings.connect('changed', Lang.bind(this, this._reloadEvents));
this._eventSource = new EmptyEventSource(); this._eventSource = new EmptyEventSource();
this._ignoredEvents = new Map();
let savedState = global.get_persistent_state('as', 'ignored_events');
if (savedState)
savedState.deep_unpack().forEach(Lang.bind(this,
function(eventId) {
this._ignoredEvents.set(eventId, true);
}));
this.parent(''); this.parent('');
Shell.AppSystem.get_default().connect('installed-changed', Shell.AppSystem.get_default().connect('installed-changed',
@ -802,9 +819,7 @@ const EventsSection = new Lang.Class({
}, },
_ignoreEvent: function(event) { _ignoreEvent: function(event) {
this._ignoredEvents.set(event.id, true); this._eventSource.ignoreEvent(event);
let savedState = new GLib.Variant('as', [...this._ignoredEvents.keys()]);
global.set_persistent_state('ignored_events', savedState);
}, },
setEventSource: function(eventSource) { setEventSource: function(eventSource) {
@ -850,9 +865,6 @@ const EventsSection = new Lang.Class({
for (let i = 0; i < events.length; i++) { for (let i = 0; i < events.length; i++) {
let event = events[i]; let event = events[i];
if (this._ignoredEvents.has(event.id))
continue;
let message = new EventMessage(event, this._date); let message = new EventMessage(event, this._date);
message.connect('close', Lang.bind(this, function() { message.connect('close', Lang.bind(this, function() {
this._ignoreEvent(event); this._ignoreEvent(event);

@ -796,10 +796,18 @@ const NetworkAgent = new Lang.Class({
path = GLib.build_filenamev([Config.LIBEXECDIR, path]); path = GLib.build_filenamev([Config.LIBEXECDIR, path]);
} }
if (GLib.file_test(path, GLib.FileTest.IS_EXECUTABLE)) if (GLib.file_test(path, GLib.FileTest.IS_EXECUTABLE)) {
this._vpnBinaries[service] = { fileName: path, externalUIMode: externalUIMode, supportsHints: hints }; this._vpnBinaries[service] = { fileName: path, externalUIMode: externalUIMode, supportsHints: hints };
else try {
let aliases = keyfile.get_string_list('VPN Connection', 'aliases');
for (let alias of aliases) {
this._vpnBinaries[alias] = { fileName: path, externalUIMode: externalUIMode, supportsHints: hints };
}
} catch(e) { } // ignore errors if key does not exist
} else {
throw new Error('VPN plugin at %s is not executable'.format(path)); throw new Error('VPN plugin at %s is not executable'.format(path));
}
} catch(e) { } catch(e) {
log('Error \'%s\' while processing VPN keyfile \'%s\''. log('Error \'%s\' while processing VPN keyfile \'%s\''.
format(e.message, dir.get_child(name).get_path())); format(e.message, dir.get_child(name).get_path()));

@ -571,20 +571,13 @@ const _Draggable = new Lang.Class({
return; return;
} }
this._animationInProgress = true; this._animateDragEnd(eventTime,
// No target, so snap back { x: snapBackX,
Tweener.addTween(this._dragActor, y: snapBackY,
{ x: snapBackX, scale_x: snapBackScale,
y: snapBackY, scale_y: snapBackScale,
scale_x: snapBackScale, time: SNAP_BACK_ANIMATION_TIME,
scale_y: snapBackScale, });
opacity: this._dragOrigOpacity,
time: SNAP_BACK_ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: this._onAnimationComplete,
onCompleteScope: this,
onCompleteParams: [this._dragActor, eventTime]
});
}, },
_restoreDragActor: function(eventTime) { _restoreDragActor: function(eventTime) {
@ -596,18 +589,44 @@ const _Draggable = new Lang.Class({
this._dragActor.set_scale(restoreScale, restoreScale); this._dragActor.set_scale(restoreScale, restoreScale);
this._dragActor.opacity = 0; this._dragActor.opacity = 0;
this._animateDragEnd(eventTime,
{ time: REVERT_ANIMATION_TIME });
},
_animateDragEnd: function (eventTime, params) {
this._animationInProgress = true; this._animationInProgress = true;
Tweener.addTween(this._dragActor,
{ opacity: this._dragOrigOpacity, // finish animation if the actor gets destroyed
time: REVERT_ANIMATION_TIME, // during it
transition: 'easeOutQuad', this._dragActorDestroyId =
onComplete: this._onAnimationComplete, this._dragActor.connect('destroy',
onCompleteScope: this, Lang.bind(this, this._finishAnimation));
onCompleteParams: [this._dragActor, eventTime]
}); params['opacity'] = this._dragOrigOpacity;
params['transition'] = 'easeOutQuad';
params['onComplete'] = this._onAnimationComplete;
params['onCompleteScope'] = this;
params['onCompleteParams'] = [this._dragActor, eventTime];
// start the animation
Tweener.addTween(this._dragActor, params)
},
_finishAnimation : function () {
if (!this._animationInProgress)
return
this._animationInProgress = false;
if (!this._buttonDown)
this._dragComplete();
global.screen.set_cursor(Meta.Cursor.DEFAULT);
}, },
_onAnimationComplete : function (dragActor, eventTime) { _onAnimationComplete : function (dragActor, eventTime) {
dragActor.disconnect(this._dragActorDestroyId);
this._dragActorDestroyId = 0;
if (this._dragOrigParent) { if (this._dragOrigParent) {
Main.uiGroup.remove_child(this._dragActor); Main.uiGroup.remove_child(this._dragActor);
this._dragOrigParent.add_actor(this._dragActor); this._dragOrigParent.add_actor(this._dragActor);
@ -616,12 +635,9 @@ const _Draggable = new Lang.Class({
} else { } else {
dragActor.destroy(); dragActor.destroy();
} }
global.screen.set_cursor(Meta.Cursor.DEFAULT);
this.emit('drag-end', eventTime, false);
this._animationInProgress = false; this.emit('drag-end', eventTime, false);
if (!this._buttonDown) this._finishAnimation();
this._dragComplete();
}, },
_dragComplete: function() { _dragComplete: function() {

@ -1,6 +1,6 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/* /*
* Copyright 2010 Red Hat, Inc * Copyright 2010-2016 Red Hat, Inc
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -114,7 +114,7 @@ const restartDialogContent = {
showOtherSessions: true, showOtherSessions: true,
}; };
const restartInstallDialogContent = { const restartUpdateDialogContent = {
subject: C_("title", "Restart & Install Updates"), subject: C_("title", "Restart & Install Updates"),
description: function(seconds) { description: function(seconds) {
@ -132,18 +132,38 @@ const restartInstallDialogContent = {
showOtherSessions: true, showOtherSessions: true,
}; };
const restartUpgradeDialogContent = {
subject: C_("title", "Restart & Install Upgrade"),
upgradeDescription: function(distroName, distroVersion) {
/* Translators: This is the text displayed for system upgrades in the
shut down dialog. First %s gets replaced with the distro name and
second %s with the distro version to upgrade to */
return _("%s %s will be installed after restart. Upgrade installation can take a long time: ensure that you have backed up and that the computer is plugged in.").format(distroName, distroVersion);
},
disableTimer: true,
showBatteryWarning: false,
confirmButtons: [{ signal: 'ConfirmedReboot',
label: C_("button", "Restart &amp; Install") }],
iconName: 'view-refresh-symbolic',
iconStyleClass: 'end-session-dialog-shutdown-icon',
showOtherSessions: true,
};
const DialogType = { const DialogType = {
LOGOUT: 0 /* GSM_SHELL_END_SESSION_DIALOG_TYPE_LOGOUT */, LOGOUT: 0 /* GSM_SHELL_END_SESSION_DIALOG_TYPE_LOGOUT */,
SHUTDOWN: 1 /* GSM_SHELL_END_SESSION_DIALOG_TYPE_SHUTDOWN */, SHUTDOWN: 1 /* GSM_SHELL_END_SESSION_DIALOG_TYPE_SHUTDOWN */,
RESTART: 2 /* GSM_SHELL_END_SESSION_DIALOG_TYPE_RESTART */, RESTART: 2 /* GSM_SHELL_END_SESSION_DIALOG_TYPE_RESTART */,
UPDATE_RESTART: 3 UPDATE_RESTART: 3,
UPGRADE_RESTART: 4
}; };
const DialogContent = { const DialogContent = {
0 /* DialogType.LOGOUT */: logoutDialogContent, 0 /* DialogType.LOGOUT */: logoutDialogContent,
1 /* DialogType.SHUTDOWN */: shutdownDialogContent, 1 /* DialogType.SHUTDOWN */: shutdownDialogContent,
2 /* DialogType.RESTART */: restartDialogContent, 2 /* DialogType.RESTART */: restartDialogContent,
3 /* DialogType.UPDATE_RESTART */: restartInstallDialogContent 3 /* DialogType.UPDATE_RESTART */: restartUpdateDialogContent,
4 /* DialogType.UPGRADE_RESTART */: restartUpgradeDialogContent
}; };
const MAX_USERS_IN_SESSION_DIALOG = 5; const MAX_USERS_IN_SESSION_DIALOG = 5;
@ -163,7 +183,10 @@ const LogindSession = Gio.DBusProxy.makeProxyWrapper(LogindSessionIface);
const PkOfflineIface = '<node> \ const PkOfflineIface = '<node> \
<interface name="org.freedesktop.PackageKit.Offline"> \ <interface name="org.freedesktop.PackageKit.Offline"> \
<property name="UpdatePrepared" type="b" access="read"/> \ <property name="UpdatePrepared" type="b" access="read"/> \
<property name="TriggerAction" type="s" access="read"/> \ <property name="UpdateTriggered" type="b" access="read"/> \
<property name="UpgradePrepared" type="b" access="read"/> \
<property name="UpgradeTriggered" type="b" access="read"/> \
<property name="PreparedUpgrade" type="a{sv}" access="read"/> \
<method name="Trigger"> \ <method name="Trigger"> \
<arg type="s" name="action" direction="in"/> \ <arg type="s" name="action" direction="in"/> \
</method> \ </method> \
@ -415,11 +438,19 @@ const EndSessionDialog = new Lang.Class({
if (dialogContent.descriptionWithUser) if (dialogContent.descriptionWithUser)
description = dialogContent.descriptionWithUser(realName, displayTime); description = dialogContent.descriptionWithUser(realName, displayTime);
else
description = dialogContent.description(displayTime);
} }
} }
// Use a different description when we are installing a system upgrade
if (dialogContent.upgradeDescription) {
let name = this._pkOfflineProxy.PreparedUpgrade['name'].deep_unpack();
let version = this._pkOfflineProxy.PreparedUpgrade['version'].deep_unpack();
if (name != null && version != null)
description = dialogContent.upgradeDescription(name, version);
}
// Fall back to regular description
if (!description) if (!description)
description = dialogContent.description(displayTime); description = dialogContent.description(displayTime);
@ -698,9 +729,12 @@ const EndSessionDialog = new Lang.Class({
this._totalSecondsToStayOpen = totalSecondsToStayOpen; this._totalSecondsToStayOpen = totalSecondsToStayOpen;
this._type = type; this._type = type;
if (this._type == DialogType.RESTART && if (this._type == DialogType.RESTART) {
this._pkOfflineProxy.TriggerAction == 'reboot') if (this._pkOfflineProxy.UpdateTriggered)
this._type = DialogType.UPDATE_RESTART; this._type = DialogType.UPDATE_RESTART;
else if (this._pkOfflineProxy.UpgradeTriggered)
this._type = DialogType.UPGRADE_RESTART;
}
this._applications = []; this._applications = [];
this._applicationList.destroy_all_children(); this._applicationList.destroy_all_children();
@ -727,19 +761,19 @@ const EndSessionDialog = new Lang.Class({
if (dialogContent.showOtherSessions) if (dialogContent.showOtherSessions)
this._loadSessions(); this._loadSessions();
let updateAlreadyTriggered = this._pkOfflineProxy.TriggerAction == 'power-off' || this._pkOfflineProxy.TriggerAction == 'reboot'; let updateTriggered = this._pkOfflineProxy.UpdateTriggered;
let updatePrepared = this._pkOfflineProxy.UpdatePrepared; let updatePrepared = this._pkOfflineProxy.UpdatePrepared;
let updatesAllowed = this._updatesPermission && this._updatesPermission.allowed; let updatesAllowed = this._updatesPermission && this._updatesPermission.allowed;
_setCheckBoxLabel(this._checkBox, dialogContent.checkBoxText); _setCheckBoxLabel(this._checkBox, dialogContent.checkBoxText);
this._checkBox.actor.visible = (dialogContent.checkBoxText && updatePrepared && updatesAllowed); this._checkBox.actor.visible = (dialogContent.checkBoxText && updatePrepared && updatesAllowed);
this._checkBox.actor.checked = (updatePrepared && updateAlreadyTriggered); this._checkBox.actor.checked = (updatePrepared && updateTriggered);
// We show the warning either together with the checkbox, or when // We show the warning either together with the checkbox, or when
// updates have already been triggered, but the user doesn't have // updates have already been triggered, but the user doesn't have
// enough permissions to cancel them. // enough permissions to cancel them.
this._batteryWarning.visible = (dialogContent.showBatteryWarning && this._batteryWarning.visible = (dialogContent.showBatteryWarning &&
(this._checkBox.actor.visible || updatePrepared && updateAlreadyTriggered && !updatesAllowed)); (this._checkBox.actor.visible || updatePrepared && updateTriggered && !updatesAllowed));
this._updateButtons(); this._updateButtons();
@ -749,7 +783,9 @@ const EndSessionDialog = new Lang.Class({
return; return;
} }
this._startTimer(); if (!dialogContent.disableTimer)
this._startTimer();
this._sync(); this._sync();
let signalId = this.connect('opened', let signalId = this.connect('opened',

@ -10,6 +10,7 @@ const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell; const Shell = imports.gi.Shell;
const Signals = imports.signals; const Signals = imports.signals;
const St = imports.gi.St; const St = imports.gi.St;
const InputSourceManager = imports.ui.status.keyboard;
const BoxPointer = imports.ui.boxpointer; const BoxPointer = imports.ui.boxpointer;
const Layout = imports.ui.layout; const Layout = imports.ui.layout;
@ -757,19 +758,48 @@ const ShellWaylandAdapter = new Lang.Class({
Name: 'ShellWaylandAdapter', Name: 'ShellWaylandAdapter',
Extends: Caribou.XAdapter, Extends: Caribou.XAdapter,
_init: function () {
this.parent();
let deviceManager = Clutter.DeviceManager.get_default();
this._virtualDevice = deviceManager.create_virtual_device(Clutter.InputDeviceType.KEYBOARD_DEVICE);
this._inputSourceManager = InputSourceManager.getInputSourceManager();
this._sourceChangedId = this._inputSourceManager.connect('current-source-changed',
Lang.bind(this, this._onSourceChanged));
this._sourcesModifiedId = this._inputSourceManager.connect ('sources-changed',
Lang.bind(this, this._onSourcesModified));
},
_onSourcesModified: function () {
this.emit('config-changed');
},
_onSourceChanged: function (inputSourceManager, oldSource) {
let source = inputSourceManager.currentSource;
this.emit('group-changed', source.index, source.id, '');
},
vfunc_get_groups: function () {
let inputSources = this._inputSourceManager.inputSources;
let groups = []
let variants = [];
for (let i in inputSources) {
let is = inputSources[i];
groups[is.index] = is.id;
variants[is.index] = '';
}
return [groups, groups.length, variants, variants.length];
},
vfunc_keyval_press: function(keyval) { vfunc_keyval_press: function(keyval) {
let focus = global.stage.get_key_focus(); this._virtualDevice.notify_keyval(Clutter.get_current_event_time(),
if (focus instanceof Clutter.Text) keyval, Clutter.KeyState.PRESSED);
Shell.util_text_insert_keyval(focus, keyval);
else
this.parent(keyval);
}, },
vfunc_keyval_release: function(keyval) { vfunc_keyval_release: function(keyval) {
let focus = global.stage.get_key_focus(); this._virtualDevice.notify_keyval(Clutter.get_current_event_time(),
if (focus instanceof Clutter.Text) keyval, Clutter.KeyState.RELEASED);
return; // do nothing
else
this.parent(keyval);
}, },
}); });

@ -220,7 +220,8 @@ const LayoutManager = new Lang.Class({
global.stage.add_child(this.uiGroup); global.stage.add_child(this.uiGroup);
this.overviewGroup = new St.Widget({ name: 'overviewGroup', this.overviewGroup = new St.Widget({ name: 'overviewGroup',
visible: false }); visible: false,
reactive: true });
this.addChrome(this.overviewGroup); this.addChrome(this.overviewGroup);
this.screenShieldGroup = new St.Widget({ name: 'screenShieldGroup', this.screenShieldGroup = new St.Widget({ name: 'screenShieldGroup',
@ -591,7 +592,10 @@ const LayoutManager = new Lang.Class({
this.addChrome(this._coverPane); this.addChrome(this._coverPane);
if (Meta.is_restart()) { if (Meta.is_restart()) {
// On restart, we don't do an animation // On restart, we don't do an animation. Force an update of the
// regions immediately so that maximized windows restore to the
// right size taking struts into account.
this._updateRegions();
} else if (Main.sessionMode.isGreeter) { } else if (Main.sessionMode.isGreeter) {
this.panelBox.translation_y = -this.panelBox.height; this.panelBox.translation_y = -this.panelBox.height;
} else { } else {
@ -938,6 +942,11 @@ const LayoutManager = new Lang.Class({
if (Main.modalCount > 0) if (Main.modalCount > 0)
return GLib.SOURCE_REMOVE; return GLib.SOURCE_REMOVE;
// Bug workaround - get_transformed_position()/get_transformed_size() don't work after
// a change in stage size until the first pick or paint.
// https://bugzilla.gnome.org/show_bug.cgi?id=761565
global.stage.get_actor_at_pos(Clutter.PickMode.ALL, 0, 0);
let rects = [], struts = [], i; let rects = [], struts = [], i;
let isPopupMenuVisible = global.top_window_group.get_children().some(isPopupMetaWindow); let isPopupMenuVisible = global.top_window_group.get_children().some(isPopupMetaWindow);
let wantsInputRegion = !isPopupMenuVisible; let wantsInputRegion = !isPopupMenuVisible;

@ -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 AccessDialog = imports.ui.accessDialog;
const AudioDeviceSelection = imports.ui.audioDeviceSelection; 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;
@ -63,6 +64,7 @@ let ctrlAltTabManager = null;
let osdWindowManager = null; let osdWindowManager = null;
let osdMonitorLabeler = null; let osdMonitorLabeler = null;
let sessionMode = null; let sessionMode = null;
let shellAccessDialogDBusService = null;
let shellAudioSelectionDBusService = null; let shellAudioSelectionDBusService = null;
let shellDBusService = null; let shellDBusService = null;
let shellMountOpDBusService = null; let shellMountOpDBusService = null;
@ -122,6 +124,7 @@ function start() {
_loadDefaultStylesheet); _loadDefaultStylesheet);
_initializeUI(); _initializeUI();
shellAccessDialogDBusService = new AccessDialog.AccessDialogDBus();
shellAudioSelectionDBusService = new AudioDeviceSelection.AudioDeviceSelectionDBus(); shellAudioSelectionDBusService = new AudioDeviceSelection.AudioDeviceSelectionDBus();
shellDBusService = new ShellDBus.GnomeShell(); shellDBusService = new ShellDBus.GnomeShell();
shellMountOpDBusService = new ShellMountOperation.GnomeShellMountOpHandler(); shellMountOpDBusService = new ShellMountOperation.GnomeShellMountOpHandler();
@ -191,6 +194,8 @@ function _initializeUI() {
return true; return true;
}); });
global.display.connect('gl-video-memory-purged', loadTheme);
// Provide the bus object for gnome-session to // Provide the bus object for gnome-session to
// initiate logouts. // initiate logouts.
EndSessionDialog.init(); EndSessionDialog.init();

@ -259,7 +259,7 @@ const ModalDialog = new Lang.Class({
if (this.state == State.OPENED || this.state == State.OPENING) if (this.state == State.OPENED || this.state == State.OPENING)
return true; return true;
if (!this.pushModal({ timestamp: timestamp })) if (!this.pushModal(timestamp))
return false; return false;
this._fadeOpen(onPrimary); this._fadeOpen(onPrimary);
@ -318,8 +318,11 @@ const ModalDialog = new Lang.Class({
pushModal: function (timestamp) { pushModal: function (timestamp) {
if (this._hasModal) if (this._hasModal)
return true; return true;
if (!Main.pushModal(this._group, { timestamp: timestamp,
actionMode: this._actionMode })) let params = { actionMode: this._actionMode };
if (timestamp)
params['timestamp'] = timestamp;
if (!Main.pushModal(this._group, params))
return false; return false;
this._hasModal = true; this._hasModal = true;

@ -22,11 +22,13 @@ const LevelBar = new Lang.Class({
this._level = 0; this._level = 0;
this.actor = new St.Bin({ style_class: 'level', this.actor = new St.Bin({ style_class: 'level',
x_fill: true, y_fill: true }); x_align: St.Align.START,
this._bar = new St.DrawingArea(); y_fill: true });
this._bar.connect('repaint', Lang.bind(this, this._repaint)); this._bar = new St.Widget({ style_class: 'level-bar' });
this.actor.set_child(this._bar); this.actor.set_child(this._bar);
this.actor.connect('notify::width', () => { this.level = this.level; });
}, },
get level() { get level() {
@ -34,39 +36,44 @@ const LevelBar = new Lang.Class({
}, },
set level(value) { set level(value) {
let newValue = Math.max(0, Math.min(value, 100)); this._level = Math.max(0, Math.min(value, 100));
if (newValue == this._level)
return; let alloc = this.actor.get_allocation_box();
this._level = newValue; let newWidth = Math.round((alloc.x2 - alloc.x1) * this._level / 100);
this._bar.queue_repaint(); if (newWidth != this._bar.width)
this._bar.width = newWidth;
}
});
const OsdWindowConstraint = new Lang.Class({
Name: 'OsdWindowConstraint',
Extends: Clutter.Constraint,
_init: function(props) {
this._minSize = 0;
this.parent(props);
}, },
_repaint: function() { set minSize(v) {
let cr = this._bar.get_context(); this._minSize = v;
if (this.actor)
this.actor.queue_relayout();
},
let node = this.actor.get_theme_node(); vfunc_update_allocation: function(actor, actorBox) {
let radius = node.get_border_radius(0); // assume same radius for all corners // Clutter will adjust the allocation for margins,
Clutter.cairo_set_source_color(cr, node.get_foreground_color()); // so add it to our minimum size
let minSize = this._minSize + actor.margin_top + actor.margin_bottom;
let [width, height] = actorBox.get_size();
let [w, h] = this._bar.get_surface_size(); // Enforce a ratio of 1
w *= (this._level / 100.); let size = Math.ceil(Math.max(minSize, height));
actorBox.set_size(size, size);
if (w == 0) // Recenter
return; let [x, y] = actorBox.get_origin();
actorBox.set_origin(Math.floor(x + width / 2 - size / 2),
cr.moveTo(radius, 0); Math.floor(y + height / 2 - size / 2));
if (w >= radius)
cr.arc(w - radius, radius, radius, 1.5 * Math.PI, 2. * Math.PI);
else
cr.lineTo(w, 0);
if (w >= radius)
cr.arc(w - radius, h - radius, radius, 0, 0.5 * Math.PI);
else
cr.lineTo(w, h);
cr.arc(radius, h - radius, radius, 0.5 * Math.PI, Math.PI);
cr.arc(radius, radius, radius, Math.PI, 1.5 * Math.PI);
cr.fill();
cr.$dispose();
} }
}); });
@ -74,7 +81,6 @@ const OsdWindow = new Lang.Class({
Name: 'OsdWindow', Name: 'OsdWindow',
_init: function(monitorIndex) { _init: function(monitorIndex) {
this._popupSize = 0;
this.actor = new St.Widget({ x_expand: true, this.actor = new St.Widget({ x_expand: true,
y_expand: true, y_expand: true,
x_align: Clutter.ActorAlign.CENTER, x_align: Clutter.ActorAlign.CENTER,
@ -84,19 +90,12 @@ const OsdWindow = new Lang.Class({
let constraint = new Layout.MonitorConstraint({ index: monitorIndex }); let constraint = new Layout.MonitorConstraint({ index: monitorIndex });
this.actor.add_constraint(constraint); this.actor.add_constraint(constraint);
this._boxConstraint = new OsdWindowConstraint();
this._box = new St.BoxLayout({ style_class: 'osd-window', this._box = new St.BoxLayout({ style_class: 'osd-window',
vertical: true }); vertical: true });
this._box.add_constraint(this._boxConstraint);
this.actor.add_actor(this._box); this.actor.add_actor(this._box);
this._box.connect('style-changed', Lang.bind(this, this._onStyleChanged));
this._box.connect('notify::height', Lang.bind(this,
function() {
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this,
function() {
this._box.width = this._box.height;
}));
}));
this._icon = new St.Icon(); this._icon = new St.Icon();
this._box.add(this._icon, { expand: true }); this._box.add(this._icon, { expand: true });
@ -198,30 +197,12 @@ const OsdWindow = new Lang.Class({
let scalew = monitor.width / 640.0; let scalew = monitor.width / 640.0;
let scaleh = monitor.height / 480.0; let scaleh = monitor.height / 480.0;
let scale = Math.min(scalew, scaleh); let scale = Math.min(scalew, scaleh);
this._popupSize = 110 * Math.max(1, scale); let popupSize = 110 * Math.max(1, scale);
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor; let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
this._icon.icon_size = this._popupSize / (2 * scaleFactor); this._icon.icon_size = popupSize / (2 * scaleFactor);
this._box.translation_y = monitor.height / 4; this._box.translation_y = monitor.height / 4;
this._box.style_changed(); this._boxConstraint.minSize = popupSize;
},
_onStyleChanged: function() {
let themeNode = this._box.get_theme_node();
let horizontalPadding = themeNode.get_horizontal_padding();
let verticalPadding = themeNode.get_vertical_padding();
let topBorder = themeNode.get_border_width(St.Side.TOP);
let bottomBorder = themeNode.get_border_width(St.Side.BOTTOM);
let leftBorder = themeNode.get_border_width(St.Side.LEFT);
let rightBorder = themeNode.get_border_width(St.Side.RIGHT);
let minWidth = this._popupSize - verticalPadding - leftBorder - rightBorder;
let minHeight = this._popupSize - horizontalPadding - topBorder - bottomBorder;
// minWidth/minHeight here are in real pixels,
// but the theme takes measures in unscaled dimensions
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
this._box.style = 'min-height: %dpx;'.format(Math.max(minWidth, minHeight) / scaleFactor);
} }
}); });

@ -107,18 +107,12 @@ const Overview = new Lang.Class({
this._overviewCreated = true; this._overviewCreated = true;
let layout = new Clutter.BinLayout();
this._stack = new Clutter.Actor({ layout_manager: layout });
this._stack.add_constraint(new LayoutManager.MonitorConstraint({ primary: true }));
/* Translators: This is the main view to select /* Translators: This is the main view to select
activities. See also note for "Activities" string. */ activities. See also note for "Activities" string. */
this._overview = new St.BoxLayout({ name: 'overview', this._overview = new St.BoxLayout({ name: 'overview',
accessible_name: _("Overview"), accessible_name: _("Overview"),
reactive: true, vertical: true });
vertical: true, this._overview.add_constraint(new LayoutManager.MonitorConstraint({ primary: true }));
x_expand: true,
y_expand: true });
this._overview._delegate = this; this._overview._delegate = this;
// The main Background actors are inside global.window_group which are // The main Background actors are inside global.window_group which are
@ -126,7 +120,7 @@ const Overview = new Lang.Class({
// one. Instances of this class share a single CoglTexture behind the // one. Instances of this class share a single CoglTexture behind the
// scenes which allows us to show the background with different // scenes which allows us to show the background with different
// rendering options without duplicating the texture data. // rendering options without duplicating the texture data.
this._backgroundGroup = new Meta.BackgroundGroup(); this._backgroundGroup = new Meta.BackgroundGroup({ reactive: true });
Main.layoutManager.overviewGroup.add_child(this._backgroundGroup); Main.layoutManager.overviewGroup.add_child(this._backgroundGroup);
this._bgManagers = []; this._bgManagers = [];
@ -149,8 +143,7 @@ const Overview = new Lang.Class({
Main.layoutManager.overviewGroup.add_child(this._coverPane); Main.layoutManager.overviewGroup.add_child(this._coverPane);
this._coverPane.connect('event', Lang.bind(this, function (actor, event) { return Clutter.EVENT_STOP; })); this._coverPane.connect('event', Lang.bind(this, function (actor, event) { return Clutter.EVENT_STOP; }));
this._stack.add_actor(this._overview); Main.layoutManager.overviewGroup.add_child(this._overview);
Main.layoutManager.overviewGroup.add_child(this._stack);
this._coverPane.hide(); this._coverPane.hide();
@ -159,6 +152,9 @@ const Overview = new Lang.Class({
dragMotion: Lang.bind(this, this._onDragMotion) dragMotion: Lang.bind(this, this._onDragMotion)
}; };
Main.layoutManager.overviewGroup.connect('scroll-event',
Lang.bind(this, this._onScrollEvent));
Main.xdndHandler.connect('drag-begin', Lang.bind(this, this._onDragBegin)); Main.xdndHandler.connect('drag-begin', Lang.bind(this, this._onDragBegin));
Main.xdndHandler.connect('drag-end', Lang.bind(this, this._onDragEnd)); Main.xdndHandler.connect('drag-end', Lang.bind(this, this._onDragEnd));
@ -255,7 +251,6 @@ const Overview = new Lang.Class({
// Add our same-line elements after the search entry // Add our same-line elements after the search entry
this._overview.add(this._controls.actor, { y_fill: true, expand: true }); this._overview.add(this._controls.actor, { y_fill: true, expand: true });
this._controls.actor.connect('scroll-event', Lang.bind(this, this._onScrollEvent));
// TODO - recalculate everything when desktop size changes // TODO - recalculate everything when desktop size changes
this.dashIconSize = this._dash.iconSize; this.dashIconSize = this._dash.iconSize;
@ -372,7 +367,7 @@ const Overview = new Lang.Class({
if (this.isDummy) if (this.isDummy)
return; return;
this._overview.add_action(action); this._backgroundGroup.add_action(action);
}, },
_getDesktopClone: function() { _getDesktopClone: function() {
@ -552,8 +547,8 @@ const Overview = new Lang.Class({
Meta.disable_unredirect_for_screen(global.screen); Meta.disable_unredirect_for_screen(global.screen);
this.viewSelector.show(); this.viewSelector.show();
this._stack.opacity = 0; this._overview.opacity = 0;
Tweener.addTween(this._stack, Tweener.addTween(this._overview,
{ opacity: 255, { opacity: 255,
transition: 'easeOutQuad', transition: 'easeOutQuad',
time: ANIMATION_TIME, time: ANIMATION_TIME,
@ -618,7 +613,7 @@ const Overview = new Lang.Class({
this.viewSelector.animateFromOverview(); this.viewSelector.animateFromOverview();
// Make other elements fade out. // Make other elements fade out.
Tweener.addTween(this._stack, Tweener.addTween(this._overview,
{ opacity: 0, { opacity: 0,
transition: 'easeOutQuad', transition: 'easeOutQuad',
time: ANIMATION_TIME, time: ANIMATION_TIME,

@ -421,7 +421,6 @@ const ControlsManager = new Lang.Class({
let layout = new ControlsLayout(); let layout = new ControlsLayout();
this.actor = new St.Widget({ layout_manager: layout, this.actor = new St.Widget({ layout_manager: layout,
reactive: true,
x_expand: true, y_expand: true, x_expand: true, y_expand: true,
clip_to_allocation: true }); clip_to_allocation: true });
this._group = new St.BoxLayout({ name: 'overview-group', this._group = new St.BoxLayout({ name: 'overview-group',

@ -349,7 +349,6 @@ const Arrow = new Lang.Class({
_init: function(params) { _init: function(params) {
this.parent(params); this.parent(params);
this.x_fill = this.y_fill = true; this.x_fill = this.y_fill = true;
this.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
this._drawingArea = new St.DrawingArea(); this._drawingArea = new St.DrawingArea();
this._drawingArea.connect('repaint', Lang.bind(this, this._drawArrow)); this._drawingArea.connect('repaint', Lang.bind(this, this._drawArrow));
@ -377,6 +376,22 @@ const Arrow = new Lang.Class({
cr.$dispose(); cr.$dispose();
}, },
vfunc_get_paint_volume: function(volume) {
if (!this.parent(volume))
return false;
if (!this._shadow)
return true;
let shadow_box = new Clutter.ActorBox();
this._shadow.get_box(this._drawingArea.get_allocation_box(), shadow_box);
volume.set_width(Math.max(shadow_box.x2 - shadow_box.x1, volume.get_width()));
volume.set_height(Math.max(shadow_box.y2 - shadow_box.y1, volume.get_height()));
return true;
},
vfunc_style_changed: function() { vfunc_style_changed: function() {
let node = this.get_theme_node(); let node = this.get_theme_node();
this._shadow = node.get_shadow('-arrow-shadow'); this._shadow = node.get_shadow('-arrow-shadow');
@ -384,6 +399,8 @@ const Arrow = new Lang.Class({
this._shadowHelper = St.ShadowHelper.new(this._shadow); this._shadowHelper = St.ShadowHelper.new(this._shadow);
else else
this._shadowHelper = null; this._shadowHelper = null;
this.parent();
}, },
vfunc_paint: function() { vfunc_paint: function() {
@ -559,6 +576,9 @@ const ScreenShield = new Lang.Class({
if (prevIsActive != this._isActive) if (prevIsActive != this._isActive)
this.emit('active-changed'); this.emit('active-changed');
if (this._loginSession)
this._loginSession.SetLockedHintRemote(active);
this._syncInhibitor(); this._syncInhibitor();
}, },
@ -708,7 +728,7 @@ const ScreenShield = new Lang.Class({
let unitaryDelay = ARROW_ANIMATION_TIME / (arrows.length + 1); let unitaryDelay = ARROW_ANIMATION_TIME / (arrows.length + 1);
let maxOpacity = 255 * ARROW_ANIMATION_PEAK_OPACITY; let maxOpacity = 255 * ARROW_ANIMATION_PEAK_OPACITY;
for (let i = 0; i < arrows.length; i++) { for (let i = 0; i < arrows.length; i++) {
arrows.opacity = 0; arrows[i].opacity = 0;
Tweener.addTween(arrows[i], Tweener.addTween(arrows[i],
{ opacity: 0, { opacity: 0,
delay: unitaryDelay * (N_ARROWS - (i + 1)), delay: unitaryDelay * (N_ARROWS - (i + 1)),

@ -61,8 +61,8 @@ const InputSource = new Lang.Class({
this.emit('changed'); this.emit('changed');
}, },
activate: function() { activate: function(interactive) {
this.emit('activate'); this.emit('activate', !!interactive);
}, },
_getXkbId: function() { _getXkbId: function() {
@ -109,7 +109,7 @@ const InputSourcePopup = new Lang.Class({
_finish : function() { _finish : function() {
this.parent(); this.parent();
this._items[this._selectedIndex].activate(); this._items[this._selectedIndex].activate(true);
}, },
}); });
@ -159,6 +159,14 @@ const InputSourceSettings = new Lang.Class({
return []; return [];
}, },
get mruSources() {
return [];
},
set mruSources(sourcesList) {
// do nothing
},
get keyboardOptions() { get keyboardOptions() {
return []; return [];
}, },
@ -251,6 +259,7 @@ const InputSourceSessionSettings = new Lang.Class({
_DESKTOP_INPUT_SOURCES_SCHEMA: 'org.gnome.desktop.input-sources', _DESKTOP_INPUT_SOURCES_SCHEMA: 'org.gnome.desktop.input-sources',
_KEY_INPUT_SOURCES: 'sources', _KEY_INPUT_SOURCES: 'sources',
_KEY_MRU_SOURCES: 'mru-sources',
_KEY_KEYBOARD_OPTIONS: 'xkb-options', _KEY_KEYBOARD_OPTIONS: 'xkb-options',
_KEY_PER_WINDOW: 'per-window', _KEY_PER_WINDOW: 'per-window',
@ -261,9 +270,9 @@ const InputSourceSessionSettings = new Lang.Class({
this._settings.connect('changed::' + this._KEY_PER_WINDOW, Lang.bind(this, this._emitPerWindowChanged)); this._settings.connect('changed::' + this._KEY_PER_WINDOW, Lang.bind(this, this._emitPerWindowChanged));
}, },
get inputSources() { _getSourcesList: function(key) {
let sourcesList = []; let sourcesList = [];
let sources = this._settings.get_value(this._KEY_INPUT_SOURCES); let sources = this._settings.get_value(key);
let nSources = sources.n_children(); let nSources = sources.n_children();
for (let i = 0; i < nSources; i++) { for (let i = 0; i < nSources; i++) {
@ -273,6 +282,19 @@ const InputSourceSessionSettings = new Lang.Class({
return sourcesList; return sourcesList;
}, },
get inputSources() {
return this._getSourcesList(this._KEY_INPUT_SOURCES);
},
get mruSources() {
return this._getSourcesList(this._KEY_MRU_SOURCES);
},
set mruSources(sourcesList) {
let sources = GLib.Variant.new('a(ss)', sourcesList);
this._settings.set_value(this._KEY_MRU_SOURCES, sources);
},
get keyboardOptions() { get keyboardOptions() {
return this._settings.get_strv(this._KEY_KEYBOARD_OPTIONS); return this._settings.get_strv(this._KEY_KEYBOARD_OPTIONS);
}, },
@ -372,7 +394,7 @@ const InputSourceManager = new Lang.Class({
while (!(is = this._inputSources[nextIndex])) while (!(is = this._inputSources[nextIndex]))
nextIndex += 1; nextIndex += 1;
is.activate(); is.activate(true);
return true; return true;
}, },
@ -400,6 +422,25 @@ const InputSourceManager = new Lang.Class({
this._keyboardManager.reapply(); this._keyboardManager.reapply();
}, },
_updateMruSettings: function() {
// If IBus is not ready we don't have a full picture of all
// the available sources, so don't update the setting
if (!this._ibusReady)
return;
// If IBus is temporarily disabled, don't update the setting
if (this._disableIBus)
return;
let sourcesList = [];
for (let i = 0; i < this._mruSources.length; ++i) {
let source = this._mruSources[i];
sourcesList.push([source.type, source.id]);
}
this._settings.mruSources = sourcesList;
},
_currentInputSourceChanged: function(newSource) { _currentInputSourceChanged: function(newSource) {
let oldSource; let oldSource;
[oldSource, this._currentSource] = [this._currentSource, newSource]; [oldSource, this._currentSource] = [this._currentSource, newSource];
@ -416,7 +457,7 @@ const InputSourceManager = new Lang.Class({
this._changePerWindowSource(); this._changePerWindowSource();
}, },
_activateInputSource: function(is) { _activateInputSource: function(is, interactive) {
KeyboardManager.holdKeyboard(); KeyboardManager.holdKeyboard();
this._keyboardManager.apply(is.xkbId); this._keyboardManager.apply(is.xkbId);
@ -434,6 +475,54 @@ const InputSourceManager = new Lang.Class({
this._ibusManager.setEngine(engine, KeyboardManager.releaseKeyboard); this._ibusManager.setEngine(engine, KeyboardManager.releaseKeyboard);
this._currentInputSourceChanged(is); this._currentInputSourceChanged(is);
if (interactive)
this._updateMruSettings();
},
_updateMruSources: function() {
let sourcesList = [];
for (let i in this._inputSources)
sourcesList.push(this._inputSources[i]);
this._keyboardManager.setUserLayouts(sourcesList.map(function(x) { return x.xkbId; }));
if (!this._disableIBus && this._mruSourcesBackup) {
this._mruSources = this._mruSourcesBackup;
this._mruSourcesBackup = null;
}
// Initialize from settings when we have no MRU sources list
if (this._mruSources.length == 0) {
let mruSettings = this._settings.mruSources;
for (let i = 0; i < mruSettings.length; i++) {
let mruSettingSource = mruSettings[i];
let mruSource = null;
for (let j = 0; j < sourcesList.length; j++) {
let source = sourcesList[j];
if (source.type == mruSettingSource.type &&
source.id == mruSettingSource.id) {
mruSource = source;
break;
}
}
if (mruSource)
this._mruSources.push(mruSource);
}
}
let mruSources = [];
for (let i = 0; i < this._mruSources.length; i++) {
for (let j = 0; j < sourcesList.length; j++)
if (this._mruSources[i].type == sourcesList[j].type &&
this._mruSources[i].id == sourcesList[j].id) {
mruSources = mruSources.concat(sourcesList.splice(j, 1));
break;
}
}
this._mruSources = mruSources.concat(sourcesList);
}, },
_inputSourcesChanged: function() { _inputSourcesChanged: function() {
@ -510,30 +599,10 @@ const InputSourceManager = new Lang.Class({
this.emit('sources-changed'); this.emit('sources-changed');
let sourcesList = []; this._updateMruSources();
for (let i in this._inputSources)
sourcesList.push(this._inputSources[i]);
this._keyboardManager.setUserLayouts(sourcesList.map(function(x) { return x.xkbId; }));
if (!this._disableIBus && this._mruSourcesBackup) {
this._mruSources = this._mruSourcesBackup;
this._mruSourcesBackup = null;
}
let mruSources = [];
for (let i = 0; i < this._mruSources.length; i++) {
for (let j = 0; j < sourcesList.length; j++)
if (this._mruSources[i].type == sourcesList[j].type &&
this._mruSources[i].id == sourcesList[j].id) {
mruSources = mruSources.concat(sourcesList.splice(j, 1));
break;
}
}
this._mruSources = mruSources.concat(sourcesList);
if (this._mruSources.length > 0) if (this._mruSources.length > 0)
this._mruSources[0].activate(); this._mruSources[0].activate(false);
// All ibus engines are preloaded here to reduce the launching time // All ibus engines are preloaded here to reduce the launching time
// when users switch the input sources. // when users switch the input sources.
@ -642,7 +711,7 @@ const InputSourceManager = new Lang.Class({
} }
if (window._currentSource) if (window._currentSource)
window._currentSource.activate(); window._currentSource.activate(false);
}, },
_sourcesPerWindowChanged: function() { _sourcesPerWindowChanged: function() {
@ -763,7 +832,10 @@ const InputSourceIndicator = new Lang.Class({
let is = this._inputSourceManager.inputSources[i]; let is = this._inputSourceManager.inputSources[i];
let menuItem = new LayoutMenuItem(is.displayName, is.shortName); let menuItem = new LayoutMenuItem(is.displayName, is.shortName);
menuItem.connect('activate', Lang.bind(is, is.activate)); menuItem.connect('activate', function() {
is.activate(true);
});
let indicatorLabel = new St.Label({ text: is.shortName, let indicatorLabel = new St.Label({ text: is.shortName,
visible: false }); visible: false });

@ -62,8 +62,8 @@ var AgentIface = '<node> \
</interface> \ </interface> \
</node>'; </node>';
var XdgAppIface = '<node> \ var PermissionStoreIface = '<node> \
<interface name="org.freedesktop.XdgApp.PermissionStore"> \ <interface name="org.freedesktop.impl.portal.PermissionStore"> \
<method name="Lookup"> \ <method name="Lookup"> \
<arg name="table" type="s" direction="in"/> \ <arg name="table" type="s" direction="in"/> \
<arg name="id" type="s" direction="in"/> \ <arg name="id" type="s" direction="in"/> \
@ -80,7 +80,7 @@ var XdgAppIface = '<node> \
</interface> \ </interface> \
</node>'; </node>';
const PermissionStore = Gio.DBusProxy.makeProxyWrapper(XdgAppIface); const PermissionStore = Gio.DBusProxy.makeProxyWrapper(PermissionStoreIface);
const Indicator = new Lang.Class({ const Indicator = new Lang.Class({
Name: 'LocationIndicator', Name: 'LocationIndicator',
@ -254,8 +254,8 @@ const Indicator = new Lang.Class({
_connectToPermissionStore: function() { _connectToPermissionStore: function() {
this._permStoreProxy = null; this._permStoreProxy = null;
new PermissionStore(Gio.DBus.session, new PermissionStore(Gio.DBus.session,
'org.freedesktop.XdgApp', 'org.freedesktop.impl.portal.PermissionStore',
'/org/freedesktop/XdgApp/PermissionStore', '/org/freedesktop/impl/portal/PermissionStore',
Lang.bind(this, this._onPermStoreProxyReady)); Lang.bind(this, this._onPermStoreProxyReady));
}, },

@ -621,7 +621,7 @@ const NMDeviceBluetooth = new Lang.Class({
_init: function(client, device, settings) { _init: function(client, device, settings) {
this.parent(client, device, settings); this.parent(client, device, settings);
this.item.menu.addMenuItem(createSettingsAction(_("Mobile Broadband Settings"), device)); this.item.menu.addMenuItem(createSettingsAction(_("Bluetooth Settings"), device));
}, },
_getDescription: function() { _getDescription: function() {
@ -629,7 +629,7 @@ const NMDeviceBluetooth = new Lang.Class({
}, },
getConnectLabel: function() { getConnectLabel: function() {
return _("Use as Internet connection"); return _("Connect to Internet");
}, },
getIndicatorIcon: function() { getIndicatorIcon: function() {

@ -6,6 +6,7 @@ const Gdm = imports.gi.Gdm;
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib; const GLib = imports.gi.GLib;
const Lang = imports.lang; const Lang = imports.lang;
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;
@ -110,6 +111,7 @@ const Indicator = new Lang.Class({
this._session = new GnomeSession.SessionManager(); this._session = new GnomeSession.SessionManager();
this._loginManager = LoginManager.getLoginManager(); this._loginManager = LoginManager.getLoginManager();
this._monitorManager = Meta.MonitorManager.get();
this._haveShutdown = true; this._haveShutdown = true;
this._haveSuspend = true; this._haveSuspend = true;
@ -155,6 +157,8 @@ const Indicator = new Lang.Class({
this._orientationSettings.connect('changed::orientation-lock', this._orientationSettings.connect('changed::orientation-lock',
Lang.bind(this, this._updateOrientationLock)); Lang.bind(this, this._updateOrientationLock));
Main.layoutManager.connect('monitors-changed',
Lang.bind(this, this._updateOrientationLock));
Gio.DBus.system.watch_name(SENSOR_BUS_NAME, Gio.DBus.system.watch_name(SENSOR_BUS_NAME,
Gio.BusNameWatcherFlags.NONE, Gio.BusNameWatcherFlags.NONE,
Lang.bind(this, this._sensorProxyAppeared), Lang.bind(this, this._sensorProxyAppeared),
@ -264,7 +268,8 @@ const Indicator = new Lang.Class({
_updateOrientationLock: function() { _updateOrientationLock: function() {
if (this._sensorProxy) if (this._sensorProxy)
this._orientationLockAction.visible = this._sensorProxy.HasAccelerometer; this._orientationLockAction.visible = this._sensorProxy.HasAccelerometer &&
this._monitorManager.get_is_builtin_display_on();
else else
this._orientationLockAction.visible = false; this._orientationLockAction.visible = false;
@ -301,14 +306,17 @@ const Indicator = new Lang.Class({
}, },
_updateHaveSuspend: function() { _updateHaveSuspend: function() {
this._loginManager.canSuspend(Lang.bind(this, function(result) { this._loginManager.canSuspend(Lang.bind(this,
this._haveSuspend = result; function(canSuspend, needsAuth) {
this._updateSuspend(); this._haveSuspend = canSuspend;
})); this._suspendNeedsAuth = needsAuth;
this._updateSuspend();
}));
}, },
_updateSuspend: function() { _updateSuspend: function() {
let disabled = Main.sessionMode.isLocked || let disabled = (Main.sessionMode.isLocked &&
this._suspendNeedsAuth) ||
(Main.sessionMode.isGreeter && (Main.sessionMode.isGreeter &&
this._loginScreenSettings.get_boolean(DISABLE_RESTART_KEY)); this._loginScreenSettings.get_boolean(DISABLE_RESTART_KEY));
this._suspendAction.visible = this._haveSuspend && !disabled; this._suspendAction.visible = this._haveSuspend && !disabled;

@ -850,22 +850,34 @@ const WindowManager = new Lang.Class({
Lang.bind(this, this._showWorkspaceSwitcher)); Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('switch-applications', this.setCustomKeybindingHandler('switch-applications',
Shell.ActionMode.NORMAL, Shell.ActionMode.NORMAL,
Lang.bind(this, this._startAppSwitcher)); Lang.bind(this, this._startSwitcher));
this.setCustomKeybindingHandler('switch-group', this.setCustomKeybindingHandler('switch-group',
Shell.ActionMode.NORMAL, Shell.ActionMode.NORMAL,
Lang.bind(this, this._startAppSwitcher)); Lang.bind(this, this._startSwitcher));
this.setCustomKeybindingHandler('switch-applications-backward', this.setCustomKeybindingHandler('switch-applications-backward',
Shell.ActionMode.NORMAL, Shell.ActionMode.NORMAL,
Lang.bind(this, this._startAppSwitcher)); Lang.bind(this, this._startSwitcher));
this.setCustomKeybindingHandler('switch-group-backward', this.setCustomKeybindingHandler('switch-group-backward',
Shell.ActionMode.NORMAL, Shell.ActionMode.NORMAL,
Lang.bind(this, this._startAppSwitcher)); Lang.bind(this, this._startSwitcher));
this.setCustomKeybindingHandler('switch-windows', this.setCustomKeybindingHandler('switch-windows',
Shell.ActionMode.NORMAL, Shell.ActionMode.NORMAL,
Lang.bind(this, this._startWindowSwitcher)); Lang.bind(this, this._startSwitcher));
this.setCustomKeybindingHandler('switch-windows-backward', this.setCustomKeybindingHandler('switch-windows-backward',
Shell.ActionMode.NORMAL, Shell.ActionMode.NORMAL,
Lang.bind(this, this._startWindowSwitcher)); Lang.bind(this, this._startSwitcher));
this.setCustomKeybindingHandler('cycle-windows',
Shell.ActionMode.NORMAL,
Lang.bind(this, this._startSwitcher));
this.setCustomKeybindingHandler('cycle-windows-backward',
Shell.ActionMode.NORMAL,
Lang.bind(this, this._startSwitcher));
this.setCustomKeybindingHandler('cycle-group',
Shell.ActionMode.NORMAL,
Lang.bind(this, this._startSwitcher));
this.setCustomKeybindingHandler('cycle-group-backward',
Shell.ActionMode.NORMAL,
Lang.bind(this, this._startSwitcher));
this.setCustomKeybindingHandler('switch-panels', this.setCustomKeybindingHandler('switch-panels',
Shell.ActionMode.NORMAL | Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW | Shell.ActionMode.OVERVIEW |
@ -1744,23 +1756,37 @@ const WindowManager = new Lang.Class({
this._windowMenuManager.showWindowMenuForWindow(window, menu, rect); this._windowMenuManager.showWindowMenuForWindow(window, menu, rect);
}, },
_startAppSwitcher : function(display, screen, window, binding) { _startSwitcher: function(display, screen, window, binding) {
let constructor = null;
switch (binding.get_name()) {
case 'switch-applications':
case 'switch-applications-backward':
case 'switch-group':
case 'switch-group-backward':
constructor = AltTab.AppSwitcherPopup;
break;
case 'switch-windows':
case 'switch-windows-backward':
constructor = AltTab.WindowSwitcherPopup;
break;
case 'cycle-windows':
case 'cycle-windows-backward':
constructor = AltTab.WindowCyclerPopup;
break;
case 'cycle-group':
case 'cycle-group-backward':
constructor = AltTab.GroupCyclerPopup;
break;
}
if (!constructor)
return;
/* prevent a corner case where both popups show up at once */ /* prevent a corner case where both popups show up at once */
if (this._workspaceSwitcherPopup != null) if (this._workspaceSwitcherPopup != null)
this._workspaceSwitcherPopup.destroy(); this._workspaceSwitcherPopup.destroy();
let tabPopup = new AltTab.AppSwitcherPopup(); let tabPopup = new constructor();
if (!tabPopup.show(binding.is_reversed(), binding.get_name(), binding.get_mask()))
tabPopup.destroy();
},
_startWindowSwitcher : function(display, screen, window, binding) {
/* prevent a corner case where both popups show up at once */
if (this._workspaceSwitcherPopup != null)
this._workspaceSwitcherPopup.destroy();
let tabPopup = new AltTab.WindowSwitcherPopup();
if (!tabPopup.show(binding.is_reversed(), binding.get_name(), binding.get_mask())) if (!tabPopup.show(binding.is_reversed(), binding.get_name(), binding.get_mask()))
tabPopup.destroy(); tabPopup.destroy();

@ -45,11 +45,11 @@ const PrimaryActorLayout = new Lang.Class({
this.primaryActor = primaryActor; this.primaryActor = primaryActor;
}, },
vfunc_get_preferred_width: function(forHeight) { vfunc_get_preferred_width: function(container, forHeight) {
return this.primaryActor.get_preferred_width(forHeight); return this.primaryActor.get_preferred_width(forHeight);
}, },
vfunc_get_preferred_height: function(forWidth) { vfunc_get_preferred_height: function(container, forWidth) {
return this.primaryActor.get_preferred_height(forWidth); return this.primaryActor.get_preferred_height(forWidth);
}, },
}); });

@ -103,7 +103,7 @@ const WorkspacesView = new Lang.Class({
page_increment: 1, page_increment: 1,
page_size: 1, page_size: 1,
step_increment: 0, step_increment: 0,
upper: 0 }); upper: global.screen.n_workspaces });
this.scrollAdjustment.connect('notify::value', this.scrollAdjustment.connect('notify::value',
Lang.bind(this, this._onScroll)); Lang.bind(this, this._onScroll));
@ -374,6 +374,10 @@ const ExtraWorkspaceView = new Lang.Class({
this._workspace.setActualGeometry(this._actualGeometry); this._workspace.setActualGeometry(this._actualGeometry);
}, },
getActiveWorkspace: function() {
return this._workspace;
},
animateToOverview: function(animationType) { animateToOverview: function(animationType) {
if (animationType == AnimationType.ZOOM) if (animationType == AnimationType.ZOOM)
this._workspace.zoomToOverview(); this._workspace.zoomToOverview();
@ -421,8 +425,10 @@ 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.
let event = Clutter.get_current_event();
let index = this._getMonitorIndexForEvent(event);
if ((action.get_button() == 1 || action.get_button() == 0) && if ((action.get_button() == 1 || action.get_button() == 0) &&
this._getPrimaryView().getActiveWorkspace().isEmpty()) this._workspacesViews[index].getActiveWorkspace().isEmpty())
Main.overview.hide(); Main.overview.hide();
})); }));
Main.overview.addAction(clickAction); Main.overview.addAction(clickAction);
@ -431,11 +437,18 @@ const WorkspacesDisplay = new Lang.Class({
let panAction = new Clutter.PanAction({ threshold_trigger_edge: Clutter.GestureTriggerEdge.AFTER }); let panAction = new Clutter.PanAction({ threshold_trigger_edge: Clutter.GestureTriggerEdge.AFTER });
panAction.connect('pan', Lang.bind(this, this._onPan)); panAction.connect('pan', Lang.bind(this, this._onPan));
panAction.connect('gesture-begin', Lang.bind(this, function() { panAction.connect('gesture-begin', Lang.bind(this, function() {
if (this._workspacesOnlyOnPrimary) {
let event = Clutter.get_current_event();
if (this._getMonitorIndexForEvent(event) != this._primaryIndex)
return false;
}
for (let i = 0; i < this._workspacesViews.length; i++) for (let i = 0; i < this._workspacesViews.length; i++)
this._workspacesViews[i].startSwipeScroll(); this._workspacesViews[i].startSwipeScroll();
return true; return true;
})); }));
panAction.connect('gesture-cancel', Lang.bind(this, function() { panAction.connect('gesture-cancel', Lang.bind(this, function() {
clickAction.release();
for (let i = 0; i < this._workspacesViews.length; i++) for (let i = 0; i < this._workspacesViews.length; i++)
this._workspacesViews[i].endSwipeScroll(); this._workspacesViews[i].endSwipeScroll();
})); }));
@ -581,6 +594,12 @@ const WorkspacesDisplay = new Lang.Class({
} }
}, },
_getMonitorIndexForEvent: function(event) {
let [x, y] = event.get_coords();
let rect = new Meta.Rectangle({ x: x, y: y, width: 1, height: 1 });
return global.screen.get_monitor_index_for_rect(rect);
},
_getPrimaryView: function() { _getPrimaryView: function() {
if (!this._workspacesViews.length) if (!this._workspacesViews.length)
return null; return null;
@ -661,6 +680,11 @@ const WorkspacesDisplay = new Lang.Class({
_onScrollEvent: function(actor, event) { _onScrollEvent: function(actor, event) {
if (!this.actor.mapped) if (!this.actor.mapped)
return Clutter.EVENT_PROPAGATE; return Clutter.EVENT_PROPAGATE;
if (this._workspacesOnlyOnPrimary &&
this._getMonitorIndexForEvent(event) != this._primaryIndex)
return Clutter.EVENT_PROPAGATE;
let activeWs = global.screen.get_active_workspace(); let activeWs = global.screen.get_active_workspace();
let ws; let ws;
switch (event.get_scroll_direction()) { switch (event.get_scroll_direction()) {

68
po/Makevars Normal file

@ -0,0 +1,68 @@
# Makefile variables for PO directory in any package using GNU gettext.
# Usually the message domain is the same as the package name.
DOMAIN = $(PACKAGE)
# These two variables depend on the location of this directory.
subdir = po
top_builddir = ..
# These options get passed to xgettext.
XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ \
--keyword=C_:1c,2 --keyword=NC_:1c,2 \
--keyword=g_dngettext:2,3 \
--flag=g_dngettext:2:pass-c-format \
--flag=g_strdup_printf:1:c-format \
--flag=g_string_printf:2:c-format \
--flag=g_string_append_printf:2:c-format \
--flag=g_error_new:3:c-format \
--flag=g_set_error:4:c-format \
--flag=g_markup_printf_escaped:1:c-format \
--flag=g_log:3:c-format \
--flag=g_print:1:c-format \
--flag=g_printerr:1:c-format \
--flag=g_printf:1:c-format \
--flag=g_fprintf:2:c-format \
--flag=g_sprintf:2:c-format \
--flag=g_snprintf:3:c-format
# This is the copyright holder that gets inserted into the header of the
# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
# package. (Note that the msgstr strings, extracted from the package's
# sources, belong to the copyright holder of the package.) Translators are
# expected to transfer the copyright for their translations to this person
# or entity, or to disclaim their copyright. The empty string stands for
# the public domain; in this case the translators are expected to disclaim
# their copyright.
COPYRIGHT_HOLDER = Translation copyright holder
# This is the email address or URL to which the translators shall report
# bugs in the untranslated strings:
# - Strings which are not entire sentences, see the maintainer guidelines
# in the GNU gettext documentation, section 'Preparing Strings'.
# - Strings which use unclear terms or require additional context to be
# understood.
# - Strings which make invalid assumptions about notation of date, time or
# money.
# - Pluralisation problems.
# - Incorrect English spelling.
# - Incorrect formatting.
# It can be your email address, or a mailing list address where translators
# can write to without being subscribed, or the URL of a web page through
# which the translators can contact you.
MSGID_BUGS_ADDRESS = http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=general
# This is the list of locale categories, beyond LC_MESSAGES, for which the
# message catalogs shall be used. It is usually empty.
EXTRA_LOCALE_CATEGORIES =
# Ignore the timestamp of the .pot file, as git clones do not have
# deterministic timestamps, and .po files are updated by translators
# (only) in GNOME projects.
PO_DEPENDS_ON_POT = no
# This tells whether or not to forcibly update $(DOMAIN).pot and
# regenerate PO files on "make dist". Possible values are "yes" and
# "no". Set this to no if the POT file and PO files are maintained
# externally.
DIST_DEPENDS_ON_UPDATE_PO = no

@ -1,17 +1,17 @@
# List of source files containing translatable strings. # List of source files containing translatable strings.
# Please keep this file sorted alphabetically. # Please keep this file sorted alphabetically.
[encoding: UTF-8] data/50-gnome-shell-system.xml
data/50-gnome-shell-system.xml.in
data/gnome-shell-extension-prefs.desktop.in.in data/gnome-shell-extension-prefs.desktop.in.in
data/org.gnome.Shell.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
data/org.gnome.Shell.PortalHelper.desktop.in data/org.gnome.Shell.PortalHelper.desktop.in.in
js/extensionPrefs/main.js js/extensionPrefs/main.js
js/gdm/authPrompt.js js/gdm/authPrompt.js
js/gdm/loginDialog.js js/gdm/loginDialog.js
js/gdm/util.js js/gdm/util.js
js/misc/util.js js/misc/util.js
js/portalHelper/main.js js/portalHelper/main.js
js/ui/accessDialog.js
js/ui/appDisplay.js js/ui/appDisplay.js
js/ui/appFavorites.js js/ui/appFavorites.js
js/ui/audioDeviceSelection.js js/ui/audioDeviceSelection.js
@ -61,7 +61,7 @@ js/ui/viewSelector.js
js/ui/windowAttentionHandler.js js/ui/windowAttentionHandler.js
js/ui/windowManager.js js/ui/windowManager.js
js/ui/windowMenu.js js/ui/windowMenu.js
src/calendar-server/evolution-calendar.desktop.in.in src/calendar-server/evolution-calendar.desktop.in
# Please do not remove this file from POTFILES.in. Run "git submodule init && git submodule update" to get it. # Please do not remove this file from POTFILES.in. Run "git submodule init && git submodule update" to get it.
src/gvc/gvc-mixer-control.c src/gvc/gvc-mixer-control.c
src/main.c src/main.c

@ -1,4 +0,0 @@
data/org.gnome.shell.evolution.calendar.gschema.xml.in
src/calendar-server/evolution-calendar.desktop.in
# Meh, autofools :-(
sub/src/calendar-server/evolution-calendar.desktop.in

@ -13,7 +13,7 @@ msgstr ""
"PO-Revision-Date: 2014-09-15 14:59+0530\n" "PO-Revision-Date: 2014-09-15 14:59+0530\n"
"Last-Translator: Nilamdyuti Goswami <ngoswami@redhat.com>\n" "Last-Translator: Nilamdyuti Goswami <ngoswami@redhat.com>\n"
"Language-Team: Assamese <kde-i18n-doc@kde.org>\n" "Language-Team: Assamese <kde-i18n-doc@kde.org>\n"
"Language: as_IN\n" "Language: as\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"

@ -7,6 +7,7 @@ msgstr ""
"PO-Revision-Date: 2011-04-04 11:04+0600\n" "PO-Revision-Date: 2011-04-04 11:04+0600\n"
"Last-Translator: Israt Jahan <israt@ankur.org.bd>\n" "Last-Translator: Israt Jahan <israt@ankur.org.bd>\n"
"Language-Team: Bengali <ankur-bd-l10n@googlegroups.com>\n" "Language-Team: Bengali <ankur-bd-l10n@googlegroups.com>\n"
"Language: bn\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"

@ -11,7 +11,7 @@ msgstr ""
"PO-Revision-Date: 2014-12-30 16:45+0000\n" "PO-Revision-Date: 2014-12-30 16:45+0000\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: American English <kde-i18n-doc@kde.org>\n" "Language-Team: American English <kde-i18n-doc@kde.org>\n"
"Language: en_US\n" "Language: bn_IN\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"

@ -14,7 +14,7 @@ msgstr ""
"PO-Revision-Date: 2014-09-14 23:32+0200\n" "PO-Revision-Date: 2014-09-14 23:32+0200\n"
"Last-Translator: Gil Forcada <gilforcada@guifi.net>\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-XV\n" "Language: ca@valencia\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: 8bits\n" "Content-Transfer-Encoding: 8bits\n"

825
po/cs.po

File diff suppressed because it is too large Load Diff

838
po/de.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

423
po/eo.po

File diff suppressed because it is too large Load Diff

842
po/es.po

File diff suppressed because it is too large Load Diff

246
po/fa.po

@ -10,7 +10,7 @@ msgstr ""
"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: 2016-04-08 09:40+0000\n" "POT-Creation-Date: 2016-04-08 09:40+0000\n"
"PO-Revision-Date: 2016-04-08 20:41+0430\n" "PO-Revision-Date: 2016-04-14 22:53+0430\n"
"Last-Translator: Arash Mousavi <mousavi.arash@gmail.com>\n" "Last-Translator: Arash Mousavi <mousavi.arash@gmail.com>\n"
"Language-Team: Persian <>\n" "Language-Team: Persian <>\n"
"Language: fa\n" "Language: fa\n"
@ -69,8 +69,7 @@ msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:2 #: ../data/org.gnome.shell.gschema.xml.in.in.h:2
msgid "" msgid ""
"Allows access to internal debugging and monitoring tools using the Alt-F2 dialog." "Allows access to internal debugging and monitoring tools using the Alt-F2 dialog."
msgstr "" msgstr "اجازه دسترسی به ابزارهای اشکال‌زدا و پایشگر داخلی با استفاده از محاوره‌ی Alt-F2."
"اجازه دسترسی به ابزارهای اشکال‌زدا و پایشگر داخلی با استفاده از محاوره‌ی Alt-F2."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:3 #: ../data/org.gnome.shell.gschema.xml.in.in.h:3
msgid "UUIDs of extensions to enable" msgid "UUIDs of extensions to enable"
@ -78,15 +77,15 @@ msgstr "شناسه‌های UUID افزونه‌ها جهت فعال‌سازی"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:4 #: ../data/org.gnome.shell.gschema.xml.in.in.h:4
msgid "" msgid ""
"GNOME Shell extensions have a UUID property; this key lists extensions which " "GNOME Shell extensions have a UUID property; this key lists extensions which should "
"should be loaded. Any extension that wants to be loaded needs to be in this " "be loaded. Any extension that wants to be loaded needs to be in this list. You can "
"list. You can also manipulate this list with the EnableExtension and " "also manipulate this list with the EnableExtension and DisableExtension D-Bus methods "
"DisableExtension D-Bus methods on org.gnome.Shell." "on org.gnome.Shell."
msgstr "" msgstr ""
"افزونه‌های گنوم‌شل مشخصه‌ی UUID دارند؛ این کلید، افزونه‌هایی که باید بار شوند را " "افزونه‌های گنوم‌شل مشخصه‌ی UUID دارند؛ این کلید، افزونه‌هایی که باید بار شوند را فهرست "
"فهرست می‌کند. هر افزونه‌ای که می‌خواهد بار شود، باید در این فهرست باشد. شما همچنین " "می‌کند. هر افزونه‌ای که می‌خواهد بار شود، باید در این فهرست باشد. شما همچنین می‌توانید "
"می‌توانید این فهرست را از طریق EnableExtension و DisableExtension (روش‌های D-Bus) " "این فهرست را از طریق EnableExtension و DisableExtension (روش‌های D-Bus) در org.gnome."
"در org.gnome.Shell نیز بسازید." "Shell نیز بسازید."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:5 #: ../data/org.gnome.shell.gschema.xml.in.in.h:5
msgid "Disables the validation of extension version compatibility" msgid "Disables the validation of extension version compatibility"
@ -95,12 +94,12 @@ msgstr "غیرفعال‌سازی بررسی سازگاری نسخه‌ی افز
#: ../data/org.gnome.shell.gschema.xml.in.in.h:6 #: ../data/org.gnome.shell.gschema.xml.in.in.h:6
msgid "" msgid ""
"GNOME Shell will only load extensions that claim to support the current running " "GNOME Shell will only load extensions that claim to support the current running "
"version. Enabling this option will disable this check and try to load all " "version. Enabling this option will disable this check and try to load all extensions "
"extensions regardless of the versions they claim to support." "regardless of the versions they claim to support."
msgstr "" msgstr ""
"گنوم‌شل تنها نسخه‌هایی از افزونه‌ها رو بارگیری می‌کند که ادعا می‌کنند از نسخه فعلی " "گنوم‌شل تنها نسخه‌هایی از افزونه‌ها رو بارگیری می‌کند که ادعا می‌کنند از نسخه فعلی "
"پشتیبانی می‌کند. فعال‌سازی این گزینه، بررسی این مورد را غیرفعال می‌کند و سعی خواهد " "پشتیبانی می‌کند. فعال‌سازی این گزینه، بررسی این مورد را غیرفعال می‌کند و سعی خواهد شد که "
"شد که تمام افزنه‌ها، بدون درنظر گرفتن سازگاری آنها بارگیری شوند." "تمام افزنه‌ها، بدون درنظر گرفتن سازگاری آنها بارگیری شوند."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:7 #: ../data/org.gnome.shell.gschema.xml.in.in.h:7
msgid "List of desktop file IDs for favorite applications" msgid "List of desktop file IDs for favorite applications"
@ -135,8 +134,8 @@ msgstr "همیشه «خروج از سیستم» را در منو کاربر نم
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15 #: ../data/org.gnome.shell.gschema.xml.in.in.h:15
msgid "" msgid ""
"This key overrides the automatic hiding of the 'Log out' menu item in single-" "This key overrides the automatic hiding of the 'Log out' menu item in single-user, "
"user, single-session situations." "single-session situations."
msgstr "" msgstr ""
"این کلید مخفی‌سازی خودکار «خروج از سیستم» در منو را در حالت‌های یک-کاربر، یک-نشست " "این کلید مخفی‌سازی خودکار «خروج از سیستم» در منو را در حالت‌های یک-کاربر، یک-نشست "
"بازنویسی می‌کند." "بازنویسی می‌کند."
@ -149,15 +148,13 @@ msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17 #: ../data/org.gnome.shell.gschema.xml.in.in.h:17
msgid "" msgid ""
"The shell will request a password when an encrypted device or a remote " "The shell will request a password when an encrypted device or a remote filesystem is "
"filesystem is mounted. If the password can be saved for future use a 'Remember " "mounted. If the password can be saved for future use a 'Remember Password' checkbox "
"Password' checkbox will be present. This key sets the default state of the " "will be present. This key sets the default state of the checkbox."
"checkbox."
msgstr "" 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" msgid "Whether the default Bluetooth adapter had set up devices associated to it"
@ -165,13 +162,12 @@ msgstr "اینکه آداپتور بلوتوث پیش‌فرض دستگاه‌ه
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19 #: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid "" msgid ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is " "The shell will only show a Bluetooth menu item if a Bluetooth adapter is powered, or "
"powered, or if there were devices set up associated with the default adapter. " "if there were devices set up associated with the default adapter. This will be reset "
"This will be reset if the default adapter is ever seen not to have devices " "if the default adapter is ever seen not to have devices associated to it."
"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 "Show the week date in the calendar" msgid "Show the week date in the calendar"
@ -194,8 +190,7 @@ msgid "Keybinding to open the \"Show Applications\" view"
msgstr "کلید مقید برای باز کردن نمای «نمایش برنامه‌ها»" msgstr "کلید مقید برای باز کردن نمای «نمایش برنامه‌ها»"
#: ../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 "کلید مقید برای باز کردن نمای «نمایش برنامه‌ها» در نمای‌کلی فعالیت‌ها."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.in.h:26
@ -223,11 +218,9 @@ msgid "Keybinding to focus the active notification."
msgstr "کلید مقید برای متمرکز کردن اعلان فعال." msgstr "کلید مقید برای متمرکز کردن اعلان فعال."
#: ../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 ""
"کلیدهای مقید برای مکث کردن و اجرا کردن تمام دوغلوهای در حال اجرا، برای مصارف رفع " "کلیدهای مقید برای مکث کردن و اجرا کردن تمام دوغلوهای در حال اجرا، برای مصارف رفع اشکال"
"اشکال"
#: ../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"
@ -243,11 +236,11 @@ msgstr "محدود کردن تعویض‌گر به فضای‌کاری فعلی.
#: ../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 shown " "If true, only applications that have windows on the current workspace are shown in "
"in the switcher. Otherwise, all applications are included." "the switcher. Otherwise, all applications are included."
msgstr "" msgstr ""
"اگر درست باشد، تنها برنامه‌هایی که در فضای‌کاری فعلی پنجره دارند در تعویض‌گر نشان " "اگر درست باشد، تنها برنامه‌هایی که در فضای‌کاری فعلی پنجره دارند در تعویض‌گر نشان داده "
"داده می‌شوند. در غیر این صورت، تمام برنامه‌ها نشان داده می‌شوند." "می‌شوند. در غیر این صورت، تمام برنامه‌ها نشان داده می‌شوند."
#: ../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."
@ -256,20 +249,20 @@ msgstr "حالت شمایلی برنامه."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "" msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities are " "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 " "'thumbnail-only' (shows a thumbnail of the window), 'app-icon-only' (shows only the "
"the application icon) or 'both'." "application icon) or 'both'."
msgstr "" msgstr ""
"نحوه نمایش پنجره‌ها را در تعویض‌کننده پیکربندی می‌کند. مقدار ممکن عبارتند از " "نحوه نمایش پنجره‌ها را در تعویض‌کننده پیکربندی می‌کند. مقدار ممکن عبارتند از «thumbnail-"
"«thumbnail-only» (نمایش تصویر بندانگشتی از پنجره)، «app-icon-only» (نمایش تنها " "only» (نمایش تصویر بندانگشتی از پنجره)، «app-icon-only» (نمایش تنها شمایل برنامه) یا "
"شمایل برنامه) یا «both»." "«both»."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39 #: ../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:40 #: ../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"
@ -293,8 +286,7 @@ msgstr "فضاهای کاری تنها در صفحه‌نمایش اصلی"
#: ../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 "" msgstr "به تاخیر انداختن تغییر تمرکز در حالت موشی تا زمانی که نشانگر از حرکت باز ایستد"
"به تاخیر انداختن تغییر تمرکز در حالت موشی تا زمانی که نشانگر از حرکت باز ایستد"
#: ../data/org.gnome.Shell.PortalHelper.desktop.in.h:1 #: ../data/org.gnome.Shell.PortalHelper.desktop.in.h:1
msgid "Network Login" msgid "Network Login"
@ -316,8 +308,7 @@ msgstr "افزونه‌های گنوم‌شل"
msgid "Cancel" msgid "Cancel"
msgstr "لغو" msgstr "لغو"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216 #: ../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 "بعدی"
@ -599,7 +590,7 @@ msgstr "ماه بعد"
#, no-javascript-format #, no-javascript-format
msgctxt "date day number format" msgctxt "date day number format"
msgid "%d" msgid "%d"
msgstr "%Id" msgstr "%Od"
#: ../js/ui/calendar.js:634 #: ../js/ui/calendar.js:634
msgid "Week %V" msgid "Week %V"
@ -695,8 +686,7 @@ msgstr "تایید هویت برای شبکه بی‌سیم لازم است"
#: ../js/ui/components/networkAgent.js:321 ../js/ui/components/networkAgent.js:659 #: ../js/ui/components/networkAgent.js:321 ../js/ui/components/networkAgent.js:659
#, javascript-format #, javascript-format
msgid "" msgid "Passwords or encryption keys are required to access the wireless network “%s”."
"Passwords or encryption keys are required to access the wireless network “%s”."
msgstr "گذرواژه یا کلیدهای رمزنگاری برای دسترسی به شبکه «%s» لازم است." msgstr "گذرواژه یا کلیدهای رمزنگاری برای دسترسی به شبکه «%s» لازم است."
#: ../js/ui/components/networkAgent.js:325 ../js/ui/components/networkAgent.js:662 #: ../js/ui/components/networkAgent.js:325 ../js/ui/components/networkAgent.js:662
@ -883,14 +873,11 @@ msgstr "راه‌اندازی مجدد و نصب بروزرسانی‌ها"
#: ../js/ui/endSessionDialog.js:121 #: ../js/ui/endSessionDialog.js:121
#, javascript-format #, javascript-format
msgid "The system will automatically restart and install updates in %d second." msgid "The system will automatically restart and install updates in %d second."
msgid_plural "" msgid_plural "The system will automatically restart and install updates in %d seconds."
"The system will automatically restart and install updates in %d seconds."
msgstr[0] "" msgstr[0] ""
"سیستم پس از %Id ثانیه به طور خودکار مجددا راه‌اندازی می‌شود و بروزرسانی‌های را نصب " "سیستم پس از %Id ثانیه به طور خودکار مجددا راه‌اندازی می‌شود و بروزرسانی‌های را نصب می‌کند."
"می‌کند."
msgstr[1] "" msgstr[1] ""
"سیستم پس از %Id ثانیه به طور خودکار مجددا راه‌اندازی می‌شود و بروزرسانی‌های را نصب " "سیستم پس از %Id ثانیه به طور خودکار مجددا راه‌اندازی می‌شود و بروزرسانی‌های را نصب می‌کند."
"می‌کند."
#: ../js/ui/endSessionDialog.js:127 #: ../js/ui/endSessionDialog.js:127
msgctxt "button" msgctxt "button"
@ -909,8 +896,7 @@ msgstr "خاموش کردن بعد از نصب بروزرسانی‌ها"
#: ../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."
msgstr "" msgstr "درحال اجرا بر روی انرژی باتری: لطفا قبل از نصب بروزرسانی‌ها، به برق وصل کنید."
"درحال اجرا بر روی انرژی باتری: لطفا قبل از نصب بروزرسانی‌ها، به برق وصل کنید."
#: ../js/ui/endSessionDialog.js:355 #: ../js/ui/endSessionDialog.js:355
msgid "Some applications are busy or have unsaved work." msgid "Some applications are busy or have unsaved work."
@ -1874,8 +1860,7 @@ msgstr "محاوره تایید هویت از طرف کاربر رد شد"
#~ msgstr "این حساب قبلا به کارگزار متصل شده است" #~ msgstr "این حساب قبلا به کارگزار متصل شده است"
#~ msgid "Connection has been replaced by a new connection using the same resource" #~ msgid "Connection has been replaced by a new connection using the same resource"
#~ msgstr "" #~ msgstr "اتصال توسط یک اتصال جدید که از منبع مشابه استفاده می‌کند، جایگزین شده است"
#~ "اتصال توسط یک اتصال جدید که از منبع مشابه استفاده می‌کند، جایگزین شده است"
#~ msgid "The account already exists on the server" #~ msgid "The account already exists on the server"
#~ msgstr "حساب از قبل بر روی کارگزار وجود دارد" #~ msgstr "حساب از قبل بر روی کارگزار وجود دارد"
@ -1886,18 +1871,16 @@ msgstr "محاوره تایید هویت از طرف کاربر رد شد"
#~ msgid "Certificate has been revoked" #~ msgid "Certificate has been revoked"
#~ msgstr "گواهینامه لغو شده است" #~ msgstr "گواهینامه لغو شده است"
#~ msgid "" #~ msgid "Certificate uses an insecure cipher algorithm or is cryptographically weak"
#~ "Certificate uses an insecure cipher algorithm or is cryptographically weak"
#~ msgstr "" #~ msgstr ""
#~ "گواهینامه از الگوریتم رمزی نامطمئنی استفاده می‌کند یا از نظر cryptography ضعیف " #~ "گواهینامه از الگوریتم رمزی نامطمئنی استفاده می‌کند یا از نظر cryptography ضعیف است"
#~ "است"
#~ msgid "" #~ msgid ""
#~ "The length of the server certificate, or the depth of the server certificate " #~ "The length of the server certificate, or the depth of the server certificate "
#~ "chain, exceed the limits imposed by the cryptography library" #~ "chain, exceed the limits imposed by the cryptography library"
#~ msgstr "" #~ msgstr ""
#~ "اندازه گواهینامه کارگزار، یا عمق حلقه‌ی گواهینامه کارگزار، از محدودیت اعمال " #~ "اندازه گواهینامه کارگزار، یا عمق حلقه‌ی گواهینامه کارگزار، از محدودیت اعمال شده "
#~ "شده توسط کتابخانه cryptography تجاوز کرد" #~ "توسط کتابخانه cryptography تجاوز کرد"
#~ msgid "Internal error" #~ msgid "Internal error"
#~ msgstr "خطای داخلی" #~ msgstr "خطای داخلی"
@ -1959,8 +1942,8 @@ msgstr "محاوره تایید هویت از طرف کاربر رد شد"
#~ msgstr "فهرست دسته‌هایی که باید به شکل پوشه نمایش داده شوند" #~ msgstr "فهرست دسته‌هایی که باید به شکل پوشه نمایش داده شوند"
#~ msgid "" #~ msgid ""
#~ "Each category name in this list will be represented as folder in the " #~ "Each category name in this list will be represented as folder in the application "
#~ "application view, rather than being displayed inline in the main view." #~ "view, rather than being displayed inline in the main view."
#~ msgstr "" #~ msgstr ""
#~ "هر نام دسته در این فهرست، بجای اینکه پشت سر هم در نمای اصلی نمایش داده شود، " #~ "هر نام دسته در این فهرست، بجای اینکه پشت سر هم در نمای اصلی نمایش داده شود، "
#~ "به‌عنوان پوشه در نمای برنامه‌ها نشان داده می‌شود." #~ "به‌عنوان پوشه در نمای برنامه‌ها نشان داده می‌شود."
@ -1969,11 +1952,11 @@ msgstr "محاوره تایید هویت از طرف کاربر رد شد"
#~ msgstr "چیدمان دکمه‌ها در نوار عنوان" #~ msgstr "چیدمان دکمه‌ها در نوار عنوان"
#~ msgid "" #~ msgid ""
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when running " #~ "This key overrides the key in org.gnome.desktop.wm.preferences when running GNOME "
#~ "GNOME Shell." #~ "Shell."
#~ msgstr "" #~ msgstr ""
#~ "این کلید، کلید org.gnome.desktop.wm.preferences را در زمان اجرای گنوم‌شل " #~ "این کلید، کلید org.gnome.desktop.wm.preferences را در زمان اجرای گنوم‌شل بازنویسی "
#~ "بازنویسی می‌کند." #~ "می‌کند."
#~ msgid "Select an extension to configure using the combobox above." #~ msgid "Select an extension to configure using the combobox above."
#~ msgstr "با استفاده از جعبه‌ی بالا یک افزونه برای پیکربندی انتخاب کنید." #~ msgstr "با استفاده از جعبه‌ی بالا یک افزونه برای پیکربندی انتخاب کنید."
@ -2016,8 +1999,8 @@ msgstr "محاوره تایید هویت از طرف کاربر رد شد"
#~ msgid "Please confirm whether the Passkey '%06d' matches the one on the device." #~ msgid "Please confirm whether the Passkey '%06d' matches the one on the device."
#~ msgstr "" #~ msgstr ""
#~ "لطفا تایید کنید که آیا کلید عبور مربوط به «%I06d» با همتای آن در دستگاه " #~ "لطفا تایید کنید که آیا کلید عبور مربوط به «%I06d» با همتای آن در دستگاه مطابقت "
#~ "مطابقت دارد یا خیر." #~ "دارد یا خیر."
#~ msgid "Matches" #~ msgid "Matches"
#~ msgstr "منطبق شد" #~ msgstr "منطبق شد"
@ -2054,34 +2037,32 @@ msgstr "محاوره تایید هویت از طرف کاربر رد شد"
#~ msgstr "ضبط یک تصویربرداری از صفحه‌نمایش" #~ msgstr "ضبط یک تصویربرداری از صفحه‌نمایش"
#~ msgid "Whether to collect stats about applications usage" #~ msgid "Whether to collect stats about applications usage"
#~ msgstr "" #~ msgstr "اینکه اطلاعات برنامه‌ها درباره‌ی میزان استفاده از منابع جمع‌آوری شود یا خیر"
#~ "اینکه اطلاعات برنامه‌ها درباره‌ی میزان استفاده از منابع جمع‌آوری شود یا خیر"
#~ msgid "" #~ msgid ""
#~ "The shell normally monitors active applications in order to present the most " #~ "The shell normally monitors active applications in order to present the most used "
#~ "used ones (e.g. in launchers). While this data will be kept private, you may " #~ "ones (e.g. in launchers). While this data will be kept private, you may want to "
#~ "want to disable this for privacy reasons. Please note that doing so won't " #~ "disable this for privacy reasons. Please note that doing so won't remove already "
#~ "remove already saved data." #~ "saved data."
#~ msgstr "" #~ msgstr ""
#~ "پوسته گنوم در حالت عادی برنامه‌های فعال را جهت ارائه برنامه‌های بیشتر استفاده " #~ "پوسته گنوم در حالت عادی برنامه‌های فعال را جهت ارائه برنامه‌های بیشتر استفاده شده "
#~ "شده پایش می کند. (برای مثال در اجرا کننده‌ها). با اینکه که این اطلاعات به صورت " #~ "پایش می کند. (برای مثال در اجرا کننده‌ها). با اینکه که این اطلاعات به صورت خصوصی "
#~ "خصوصی نگاه‌داری می‌شود، ممکن است شما بخواهید این امکان را به دلایل امنیتی " #~ "نگاه‌داری می‌شود، ممکن است شما بخواهید این امکان را به دلایل امنیتی غیرفعال کنید. "
#~ "غیرفعال کنید. لطفا توجه کنید این کار باعث پاک شدن اطلاعاتی که تاکنون ذخیره " #~ "لطفا توجه کنید این کار باعث پاک شدن اطلاعاتی که تاکنون ذخیره شده‌اند نمی‌شود."
#~ "شده‌اند نمی‌شود."
#~ msgid "" #~ msgid ""
#~ "Internally used to store the last IM presence explicitly set by the user. The " #~ "Internally used to store the last IM presence explicitly set by the user. The "
#~ "value here is from the TpConnectionPresenceType enumeration." #~ "value here is from the TpConnectionPresenceType enumeration."
#~ msgstr "" #~ msgstr ""
#~ "به‌طور داخلی جهت ذخیره‌ی آخرین وضعیتِ حاضرِ ثبت شده‌ی توسط کاربر استفاده می‌شود. " #~ "به‌طور داخلی جهت ذخیره‌ی آخرین وضعیتِ حاضرِ ثبت شده‌ی توسط کاربر استفاده می‌شود. مقدار "
#~ "مقدار اینجا از محل محاسبه‌ی TpConnectionPresenceType است." #~ "اینجا از محل محاسبه‌ی TpConnectionPresenceType است."
#~ msgid "" #~ msgid ""
#~ "Internally used to store the last session presence status for the user. The " #~ "Internally used to store the last session presence status for the user. The value "
#~ "value here is from the GsmPresenceStatus enumeration." #~ "here is from the GsmPresenceStatus enumeration."
#~ msgstr "" #~ msgstr ""
#~ "به‌طور داخلی برای ذخیره آخرین نشستی که کاربر در آن وضعیت حاضر داشته است " #~ "به‌طور داخلی برای ذخیره آخرین نشستی که کاربر در آن وضعیت حاضر داشته است استفاده "
#~ "استفاده می‌شود. مقدار اینجا از محاسبه GsmPresenceStatus است." #~ "می‌شود. مقدار اینجا از محاسبه GsmPresenceStatus است."
#~ msgid "Keybinding to toggle the screen recorder" #~ msgid "Keybinding to toggle the screen recorder"
#~ msgstr "کلید مقید برای تغییر وضعیت ضبط کننده‌ی صفحه" #~ msgstr "کلید مقید برای تغییر وضعیت ضبط کننده‌ی صفحه"
@ -2093,49 +2074,49 @@ msgstr "محاوره تایید هویت از طرف کاربر رد شد"
#~ msgstr "سرعت فریم استفاده شده در تصویربرداری از صفحه‌نمایش." #~ msgstr "سرعت فریم استفاده شده در تصویربرداری از صفحه‌نمایش."
#~ msgid "" #~ msgid ""
#~ "The framerate of the resulting screencast recordered by GNOME Shell's " #~ "The framerate of the resulting screencast recordered by GNOME Shell's screencast "
#~ "screencast recorder in frames-per-second." #~ "recorder in frames-per-second."
#~ msgstr "" #~ msgstr ""
#~ "سرعت فریم حاصل از تصویربرداری از صفحه نمایش با استفاده از ضبط کننده نمایشگر " #~ "سرعت فریم حاصل از تصویربرداری از صفحه نمایش با استفاده از ضبط کننده نمایشگر پوسته‌ی "
#~ "پوسته‌ی گنوم بر اساس فریم بر ثانیه" #~ "گنوم بر اساس فریم بر ثانیه"
#~ msgid "The gstreamer pipeline used to encode the screencast" #~ msgid "The gstreamer pipeline used to encode the screencast"
#~ msgstr "مجرای ارتباطی gstreamer برای کدگذاری تصویربرداری از صفحه نمایش" #~ msgstr "مجرای ارتباطی gstreamer برای کدگذاری تصویربرداری از صفحه نمایش"
#~ msgid "" #~ msgid ""
#~ "Sets the GStreamer pipeline used to encode recordings. It follows the syntax " #~ "Sets the GStreamer pipeline used to encode recordings. It follows the syntax used "
#~ "used for gst-launch. The pipeline should have an unconnected sink pad where " #~ "for gst-launch. The pipeline should have an unconnected sink pad where the "
#~ "the recorded video is recorded. It will normally have a unconnected source " #~ "recorded video is recorded. It will normally have a unconnected source pad; output "
#~ "pad; output from that pad will be written into the output file. However the " #~ "from that pad will be written into the output file. However the pipeline can also "
#~ "pipeline can also take care of its own output - this might be used to send " #~ "take care of its own output - this might be used to send the output to an icecast "
#~ "the output to an icecast server via shout2send or similar. When unset or set " #~ "server via shout2send or similar. When unset or set to an empty value, the default "
#~ "to an empty value, the default pipeline will be used. This is currently " #~ "pipeline will be used. This is currently 'vp8enc min_quantizer=13 max_quantizer=13 "
#~ "'vp8enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=" #~ "cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux' and records to WEBM "
#~ "%T ! queue ! webmmux' and records to WEBM using the VP8 codec. %T is used as " #~ "using the VP8 codec. %T is used as a placeholder for a guess at the optimal thread "
#~ "a placeholder for a guess at the optimal thread count on the system." #~ "count on the system."
#~ msgstr "" #~ msgstr ""
#~ "Sets the GStreamer pipeline used to encode recordings. It follows the syntax " #~ "Sets the GStreamer pipeline used to encode recordings. It follows the syntax used "
#~ "used for gst-launch. The pipeline should have an unconnected sink pad where " #~ "for gst-launch. The pipeline should have an unconnected sink pad where the "
#~ "the recorded video is recorded. It will normally have a unconnected source " #~ "recorded video is recorded. It will normally have a unconnected source pad; output "
#~ "pad; output from that pad will be written into the output file. However the " #~ "from that pad will be written into the output file. However the pipeline can also "
#~ "pipeline can also take care of its own output - this might be used to send " #~ "take care of its own output - this might be used to send the output to an icecast "
#~ "the output to an icecast server via shout2send or similar. When unset or set " #~ "server via shout2send or similar. When unset or set to an empty value, the default "
#~ "to an empty value, the default pipeline will be used. This is currently " #~ "pipeline will be used. This is currently 'vp8enc min_quantizer=13 max_quantizer=13 "
#~ "'vp8enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=" #~ "cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux' and records to WEBM "
#~ "%T ! queue ! webmmux' and records to WEBM using the VP8 codec. %T is used as " #~ "using the VP8 codec. %T is used as a placeholder for a guess at the optimal thread "
#~ "a placeholder for a guess at the optimal thread count on the system." #~ "count on the system."
#~ msgid "File extension used for storing the screencast" #~ msgid "File extension used for storing the screencast"
#~ msgstr "پسوند پرونده‌ی قابل استفاده برای ذخیره تصویربرداری از صفحه‌نمایش" #~ msgstr "پسوند پرونده‌ی قابل استفاده برای ذخیره تصویربرداری از صفحه‌نمایش"
#~ msgid "" #~ msgid ""
#~ "The filename for recorded screencasts will be a unique filename based on the " #~ "The filename for recorded screencasts will be a unique filename based on the "
#~ "current date, and use this extension. It should be changed when recording to " #~ "current date, and use this extension. It should be changed when recording to a "
#~ "a different container format." #~ "different container format."
#~ msgstr "" #~ msgstr ""
#~ "نام پرونده‌ی ضبط شده برای تصویربرداری از صفحه‌نمایش یکتا و براساس تاریخ جاری " #~ "نام پرونده‌ی ضبط شده برای تصویربرداری از صفحه‌نمایش یکتا و براساس تاریخ جاری خواهد "
#~ "خواهد بود و از این افزونه استفاده خواهد کرد. اگر در زمان ضبط از قالب دیگری " #~ "بود و از این افزونه استفاده خواهد کرد. اگر در زمان ضبط از قالب دیگری استفاده کنید "
#~ "استفاده کنید باید تغییر کند." #~ "باید تغییر کند."
#~ msgid "Extension" #~ msgid "Extension"
#~ msgstr "افزونه" #~ msgstr "افزونه"
@ -2162,8 +2143,7 @@ msgstr "محاوره تایید هویت از طرف کاربر رد شد"
#~ msgstr "ویدئو صفحه‌نمایش %Id %t" #~ msgstr "ویدئو صفحه‌نمایش %Id %t"
#~ msgid "Click Log Out to quit these applications and log out of the system." #~ msgid "Click Log Out to quit these applications and log out of the system."
#~ msgstr "" #~ msgstr "بر روی خروج از سیستم کلیک کنید تا از این برنامه‌ها خارج و از سیستم خارج شوید."
#~ "بر روی خروج از سیستم کلیک کنید تا از این برنامه‌ها خارج و از سیستم خارج شوید."
#~ msgid "Logging out of the system." #~ msgid "Logging out of the system."
#~ msgstr "درحال خروج از سیستم." #~ msgstr "درحال خروج از سیستم."
@ -2176,8 +2156,8 @@ msgstr "محاوره تایید هویت از طرف کاربر رد شد"
#~ msgid "Click Restart to quit these applications and restart the system." #~ msgid "Click Restart to quit these applications and restart the system."
#~ msgstr "" #~ msgstr ""
#~ "بر روی راه‌اندازی مجدد کلیک کنید تا از این برنامه‌ها خارج و سیستم مجددا " #~ "بر روی راه‌اندازی مجدد کلیک کنید تا از این برنامه‌ها خارج و سیستم مجددا راه‌اندازی "
#~ "راه‌اندازی گردد." #~ "گردد."
#~ msgid "Restarting the system." #~ msgid "Restarting the system."
#~ msgstr "درحال راه‌اندازی مجدد سیستم." #~ msgstr "درحال راه‌اندازی مجدد سیستم."
@ -2322,11 +2302,11 @@ msgstr "محاوره تایید هویت از طرف کاربر رد شد"
#~ msgstr "وضعیت گپ شما «مشغول» تنظیم می‌شود" #~ msgstr "وضعیت گپ شما «مشغول» تنظیم می‌شود"
#~ msgid "" #~ msgid ""
#~ "Notifications are now disabled, including chat messages. Your online status " #~ "Notifications are now disabled, including chat messages. Your online status has "
#~ "has been adjusted to let others know that you might not see their messages." #~ "been adjusted to let others know that you might not see their messages."
#~ msgstr "" #~ msgstr ""
#~ "هم‌اکنون اعلان‌ها، از جمله پیام‌های گپ، غیرفعال هستند. وضعیتِ برخطِ شما به گونه‌ای " #~ "هم‌اکنون اعلان‌ها، از جمله پیام‌های گپ، غیرفعال هستند. وضعیتِ برخطِ شما به گونه‌ای تنظیم "
#~ "تنظیم شده است که به دیگران نشان دهد ممکن است شما پیام‌هایشان را نبینید." #~ "شده است که به دیگران نشان دهد ممکن است شما پیام‌هایشان را نبینید."
#~ msgid "Shutting down might cause them to lose unsaved work." #~ msgid "Shutting down might cause them to lose unsaved work."
#~ msgstr "خاموش‌کردن ممکن است باعث شود که کارهای ذخیره نشده خود را از دست بدهند." #~ msgstr "خاموش‌کردن ممکن است باعث شود که کارهای ذخیره نشده خود را از دست بدهند."

844
po/fi.po

File diff suppressed because it is too large Load Diff

911
po/fur.po

File diff suppressed because it is too large Load Diff

458
po/gd.po

@ -1,14 +1,14 @@
# Scottish Gaelic translation for gnome-shell. # Scottish Gaelic translation for gnome-shell.
# Copyright (C) 2015 gnome-shell's COPYRIGHT HOLDER # Copyright (C) 2015 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.
# GunChleoc <fios@foramnagaidhlig.net>, 2015. # GunChleoc <fios@foramnagaidhlig.net>, 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-11-17 16:10+0000\n" "POT-Creation-Date: 2016-04-28 21:52+0000\n"
"PO-Revision-Date: 2015-11-17 17:10+0100\n" "PO-Revision-Date: 2016-04-29 10:56+0100\n"
"Last-Translator: GunChleoc <fios@foramnagaidhlig.net>\n" "Last-Translator: GunChleoc <fios@foramnagaidhlig.net>\n"
"Language-Team: Fòram na Gàidhlig\n" "Language-Team: Fòram na Gàidhlig\n"
"Language: gd\n" "Language: gd\n"
@ -61,85 +61,329 @@ msgstr "Slige GNOME"
msgid "Window management and application launching" msgid "Window management and application launching"
msgstr "Stiùireadh uinneagan is tòiseachadh aplacaidean" msgstr "Stiùireadh uinneagan is tòiseachadh aplacaidean"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2"
msgstr ""
"Cuir an comas innealan airson luchd-leasachaidh 's luchd-deuchainn o Alt-F2"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:2
msgid ""
"Allows access to internal debugging and monitoring tools using the Alt-F2 "
"dialog."
msgstr ""
"Ceadaich inntrigeadh dha na h-innealan a chum dì-bhugachaidh 's sgrùdaidh le "
"còmhradh Alt-F2."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:3 #: ../data/org.gnome.shell.gschema.xml.in.in.h:3
#| msgid "No extensions installed"
msgid "UUIDs of extensions to enable" msgid "UUIDs of extensions to enable"
msgstr "UUIDs nan leudachan ri an cur an comas" msgstr "UUIDs nan leudachan ri an cur an comas"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:4
msgid ""
"GNOME Shell extensions have a UUID property; this key lists extensions which "
"should be loaded. Any extension that wants to be loaded needs to be in this "
"list. You can also manipulate this list with the EnableExtension and "
"DisableExtension D-Bus methods on org.gnome.Shell."
msgstr ""
"Tha buadh UUID aig leudachain na Slige GNOME; seallaidh an iuchair sin na "
"leudachain a bu chòir luchdadh. Feumaidh gach leudachan a tha ag iarraidh "
"luchdadh a bhith air an liosta seo. 'S urrainn dhut an liosta seo "
"atharrachadh cuideachd leis na modhan D-Bus EnableExtension agus "
"DisableExtension air org.gnome.Shell."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:5
msgid "Disables the validation of extension version compatibility"
msgstr ""
"Cuiridh seo à comas dearbhadh na co-chòrdalachd airson tionndadh nan "
"leudachan"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:6
msgid ""
"GNOME Shell will only load extensions that claim to support the current "
"running version. Enabling this option will disable this check and try to "
"load all extensions regardless of the versions they claim to support."
msgstr ""
"Cha luchdaich an t-Slige GNOME ach leudachain a dh'innseas gu bheil iar co-"
"chòrdail leis an tionndadh a tha 'ga ruith. Ma chuireas tu an roghainn seo "
"an comas, thèid an dearbhadh a chur à comas agus feuchaidh sinn ris a h-uile "
"leudachan a luchdadh ge b' e dè na tionndaidhean ris an cuir iad taic dhan "
"rèir-san."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:7
msgid "List of desktop file IDs for favorite applications"
msgstr ""
"Liosta dhe IDan nam faidhlichean desktop airson nan aplacaidean as annsa "
"leat"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:8
msgid ""
"The applications corresponding to these identifiers will be displayed in the "
"favorites area."
msgstr ""
"Thèid na h-aplacaidean a fhreagras ris na h-aithnichearan seo a shealltainn "
"air raon nan annsachdan."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:9
msgid "App Picker View"
msgstr "Sealladh roghnaichear nan aplacaid"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:10
msgid "Index of the currently selected view in the application picker."
msgstr "Inneacs an t-seallaidh làithrich ann an roghnaichear nan aplacaid."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:11
msgid "History for command (Alt-F2) dialog"
msgstr "Eachdraidh a' chòmhraidh-àithne (Alt-F2)"
#. 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
msgid "History for the looking glass dialog"
msgstr "Eachdraidh a' chomhraidh aig looking glass"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
msgid "Always show the 'Log out' menu item in the user menu."
msgstr ""
"Seall nì \"Clàraich a-mach\" air clàr-taice a' chleachdaiche an-còmhnaidh."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
msgid ""
"This key overrides the automatic hiding of the 'Log out' menu item in single-"
"user, single-session situations."
msgstr ""
"Tar-àithnidh an iuchair seo am falach fèin-obrachail aig \"Clàraich a-mach\" "
"air a' chlar-taice ann an suidheachaidhean le aon chleachdaiche 's aon "
"seisean a-mhàin."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
msgid ""
"Whether to remember password for mounting encrypted or remote filesystems"
msgstr ""
"Co-dhiù an dèid am facal-faire a chuimhneachadh airson munntachadh "
"shiostaman-fhaidhlichean crioptaichte no cèine"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
msgid ""
"The shell will request a password when an encrypted device or a remote "
"filesystem is mounted. If the password can be saved for future use a "
"'Remember Password' checkbox will be present. This key sets the default "
"state of the checkbox."
msgstr ""
"Iarraidh an t-slige facal-fàire ort nuair a thèid siostam-fhaidhlichean "
"crioptaichte no cèin a mhunntachadh. Ma ghabhas am facal-faire sàbhaladh "
"airson na h-ama ri teachd, bidh bogsa-còmhraige \"Cuimhnich am facal-fàire\" "
"ann. Suidhichidh an iuchair seo staid tùsail na bogsa-còmhraige ud."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
"Co-dhiù an robh uidheaman co-cheangailte ris an adaptar Bluetooth gus nach "
"robh"
#: ../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 ""
"Cha seall an t-slige nì clàir-taice \"Bluetooth\" ach ma tha cumhachd aig "
"adaptar Bluetooth na ma chaidh uidheaman co-cheangailte ris an adaptar "
"tùsail roimhe. Thèid seo ath-shuidheachadh ma chithear an t-adaptar tùsail "
"gun uidheam co-cheangailte ris."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar"
msgstr "Seall latha na seachdaine air a' mhìosachan"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "If true, display the ISO week date in the calendar."
msgstr "Mas e true a th' ann, seall latha na seachdaine ISO air a' mhìosachan."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.in.h:22
#| msgid "Open the application menu"
msgid "Keybinding to open the application menu" msgid "Keybinding to open the application menu"
msgstr "Nasgadh iuchrach gus clàr-taice na h-aplacaid fhosgladh" msgstr "Nasgadh iuchrach gus clàr-taice na h-aplacaid fhosgladh"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
#| msgid "Open the application menu"
msgid "Keybinding to open the application menu." msgid "Keybinding to open the application menu."
msgstr "Nasgadh iuchrach gus clàr-taice na h-aplacaid fhosgladh." msgstr "Nasgadh iuchrach gus clàr-taice na h-aplacaid fhosgladh."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
#| msgid "Keybinding to open the application menu"
msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Nasgadh iuchrach gus an sealladh \"Seall aplacaidean\" fhosgladh"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
#| msgid "Keybinding to open the application menu."
msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr ""
"Nasgadh iuchrach gus an sealladh \"Seall aplacaidean\" aig foir-shealladh na "
"gnìomhachd fhosgladh."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
#| msgid "Keybinding to open the application menu"
msgid "Keybinding to open the overview"
msgstr "Nasgadh iuchrach gus am foir-shealladh fhosgladh"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
#| msgid "Keybinding to open the application menu."
msgid "Keybinding to open the Activities Overview."
msgstr "Nasgadh iuchrach gus foir-shealladh na gnìomhachd fhosgladh."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
#| msgid "Keybinding to focus the active notification"
msgid "Keybinding to toggle the visibility of the notification list"
msgstr ""
"Nasgadh iuchrach gus an fhaicsinneachd air liosta nam brathan a thoglachadh"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
#| msgid "Keybinding to focus the active notification."
msgid "Keybinding to toggle the visibility of the notification list."
msgstr ""
"Nasgadh iuchrach gus an fhaicsinneachd air liosta nam brathan a thoglachadh."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
#| msgid "Focus the active notification"
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "Nasgadh iuchrach gus am fòcas a chur air a' bhrath ghnìomhach" msgstr "Nasgadh iuchrach gus am fòcas a chur air a' bhrath ghnìomhach"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31 #: ../data/org.gnome.shell.gschema.xml.in.in.h:31
#| msgid "Focus the active notification"
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "Nasgadh iuchrach gus am fòcas a chur air a' bhrath ghnìomhach." msgstr "Nasgadh iuchrach gus am fòcas a chur air a' bhrath ghnìomhach."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr ""
"Nasgadh iuchrach a chuir gach tween a tha 'ga ruith 'na stad 's a "
"thòisicheas orra a-rithist a chum dì-bhugachaidh"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Which keyboard to use"
msgstr "Am meur-chlàr ri chleachdadh"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid "The type of keyboard to use."
msgstr "An seòrsa de mheur-chlàr a thèid a chleachdadh."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "Limit switcher to current workspace."
msgstr "Cuingich an t-suidsear air an rum-obrach làithreach."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid ""
"If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included."
msgstr ""
"Mas e true a th' ann, cha dèid a shealltainn san t-suidsear ach na "
"h-aplacaidean aig a bheil uinneag san rum-obrach làithreach. Mur e, thèid a "
"h-uile aplacaid a ghabhail a-steach."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:37
#| msgid "Open the application menu"
msgid "The application icon mode." msgid "The application icon mode."
msgstr "Modh ìomhaigheag na h-aplacaid." msgstr "Modh ìomhaigheag na h-aplacaid."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
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 ""
"Rèitichidh seo an dòigh sa thèid na h-uinneagan a shealltainn san "
"t-suidsear. 'S e \"thumbnail-only\" (seallaidh seo dealbhag na h-uinneige), "
"\"app-icon-only\" (seallaidh seo ìomhaigheag na h-aplacaid) no \"both\" "
"(seallaidh seo an dà chuid dhiubh) a tha sna luachan dligheach."
#: ../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 ""
"Mas e true a th' ann, cha dèid a shealltainn san t-suidsear ach na "
"h-uinneagan a tha san rum-obrach làithreach. Mur e, thèid a h-uile uinneag a "
"ghabhail a-steach."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Attach modal dialog to the parent window"
msgstr "Ceangail còmhradh mòdach ris an uinneag-pàraint"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Tar-àithnidh an iuchair seo an iuchair ann an org.gnome.mutter nuair a thèid "
"Slige GNOME a ruith."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
"Cuir leacadh nan oirean an comas nuair a thèid uinneagan a leigeil às aig "
"oir na sgrìn"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
msgid "Workspaces are managed dynamically"
msgstr "Thèid na rumannan-obrach a stiùireadh a làimh"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
msgid "Workspaces only on primary monitor"
msgstr "Rumannan-obrach air a' phrìomh-sgrìn a-mhàin"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr ""
"Cuir dàil air atharraichean an fòcais ann am modh luchaige gus an sguir an "
"tomhaire air gluasad"
#: ../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 "Clàradh a-steach lìonraidh" msgstr "Clàradh a-steach lìonraidh"
#: ../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 "Thachair mearachd le luchdadh còmhradh nan roghainnean airson %s:" msgstr "Thachair mearachd le luchdadh còmhradh nan roghainnean airson %s:"
#: ../js/extensionPrefs/main.js:154 #: ../js/extensionPrefs/main.js:149
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "Leudachain na Slige GNOME" msgstr "Leudachain na Slige 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 "Sguir dheth" msgstr "Sguir dheth"
#: ../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 "Air adhart" msgstr "Air adhart"
#: ../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 "Neo-ghlais" msgstr "Neo-ghlais"
#: ../js/gdm/authPrompt.js:213 #: ../js/gdm/authPrompt.js:214
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Clàraich a-steach" msgstr "Clàraich a-steach"
#: ../js/gdm/loginDialog.js:281 #: ../js/gdm/loginDialog.js:285
msgid "Choose Session" msgid "Choose Session"
msgstr "Tagh seisean" msgstr "Tagh seisean"
#. 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 "Nach eil e air an liosta?" msgstr "Nach eil e air an liosta?"
#. 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 "(m.e., cleachdaiche no %s)" msgstr "(m.e., cleachdaiche no %s)"
@ -147,12 +391,12 @@ msgstr "(m.e., cleachdaiche no %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 "Ainm-cleachdaiche:" msgstr "Ainm-cleachdaiche:"
#: ../js/gdm/loginDialog.js:1180 #: ../js/gdm/loginDialog.js:1196
msgid "Login Window" msgid "Login Window"
msgstr "Uinneag a' chlàraidh a-steach" msgstr "Uinneag a' chlàraidh a-steach"
@ -288,16 +532,37 @@ msgstr "Cuir ris na h-annsachdan"
msgid "Show Details" msgid "Show Details"
msgstr "Seall am mion-fhiosrachadh" msgstr "Seall am mion-fhiosrachadh"
#: ../js/ui/appFavorites.js:133 #: ../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 "Chaidh %s a chur ris na h-annsachdan agad." msgstr "Chaidh %s a chur ris na h-annsachdan agad."
#: ../js/ui/appFavorites.js:167 #: ../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 "Chaidh %s a toirt air falbh o na h-annsachdan agad." msgstr "Chaidh %s a toirt air falbh o na h-annsachdan agad."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Tagh uidheam fuaime"
#: ../js/ui/audioDeviceSelection.js:69
#| msgid "Account Settings"
msgid "Sound Settings"
msgstr "Roghainnean fuaime"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Headphones"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Headset"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Micreofon"
#: ../js/ui/backgroundMenu.js:19 #: ../js/ui/backgroundMenu.js:19
msgid "Change Background…" msgid "Change Background…"
msgstr "Atharraich an cùlaibh…" msgstr "Atharraich an cùlaibh…"
@ -306,12 +571,12 @@ msgstr "Atharraich an cùlaibh…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Roghainnean an t-seallaidh" msgstr "Roghainnean an t-seallaidh"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:371
msgid "Settings" msgid "Settings"
msgstr "Roghainnean" msgstr "Roghainnean"
#. 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"
@ -321,100 +586,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 "Lu" msgstr "Lu"
#. 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 "Ci" msgstr "Ci"
#. 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 "Da" msgstr "Da"
#. 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 "hA" msgstr "hA"
#. 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 "Sa" msgstr "Sa"
#: ../js/ui/calendar.js:566 #: ../js/ui/calendar.js:416
msgid "Previous month" msgid "Previous month"
msgstr "Am mìos roimhe" msgstr "Am mìos roimhe"
#: ../js/ui/calendar.js:576 #: ../js/ui/calendar.js:426
msgid "Next month" msgid "Next month"
msgstr "An ath mhìos" msgstr "An ath mhìos"
#: ../js/ui/calendar.js:728 #: ../js/ui/calendar.js:579
#, javascript-format #, no-javascript-format
msgctxt "date day number format" msgctxt "date day number format"
msgid "%d" msgid "%d"
msgstr "%d" msgstr "%d"
#: ../js/ui/calendar.js:783 #: ../js/ui/calendar.js:634
msgid "Week %V" msgid "Week %V"
msgstr "Seachdain %V" msgstr "Seachdain %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 "Fad an latha" msgstr "Fad an latha"
#: ../js/ui/calendar.js:1295 #: ../js/ui/calendar.js:821
msgid "Clear section"
msgstr "Falamhaich an earrann"
#: ../js/ui/calendar.js:1522
msgid "Events" msgid "Events"
msgstr "Tachartasan" msgstr "Tachartasan"
#: ../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 "Brathan" msgstr "Brathan"
#: ../js/ui/calendar.js:1771 #: ../js/ui/calendar.js:1070
msgid "No Notifications" msgid "No Notifications"
msgstr "Chan eil brath ann" msgstr "Chan eil brath ann"
#: ../js/ui/calendar.js:1774 #: ../js/ui/calendar.js:1073
msgid "No Events" msgid "No Events"
msgstr "Chan eil tachartas ann" msgstr "Chan eil tachartas ann"
@ -553,7 +814,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 "thug %s %s air" msgstr "thug %s %s air"
@ -762,11 +1023,11 @@ msgid "Keyboard"
msgstr "Am meur-chlàr" msgstr "Am meur-chlàr"
#. 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 "Falaich an treidhe" msgstr "Falaich an treidhe"
#: ../js/ui/legacyTray.js:107 #: ../js/ui/legacyTray.js:106
msgid "Status Icons" msgid "Status Icons"
msgstr "Ìomhaigheagan staide" msgstr "Ìomhaigheagan staide"
@ -794,7 +1055,7 @@ msgstr "An comas"
#. 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:1866
msgid "Disabled" msgid "Disabled"
msgstr "À comas" msgstr "À comas"
@ -818,10 +1079,30 @@ msgstr "Seall am bun-tùs"
msgid "Web Page" msgid "Web Page"
msgstr "Duilleag-lìn" msgstr "Duilleag-lìn"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Falamhaich an earrann"
#: ../js/ui/messageTray.js:1486 #: ../js/ui/messageTray.js:1486
msgid "System Information" msgid "System Information"
msgstr "Fiosrachadh an t-siostaim" msgstr "Fiosrachadh an t-siostaim"
#: ../js/ui/mpris.js:194
#| msgctxt "program"
#| msgid "Unknown"
msgid "Unknown artist"
msgstr "Neach-ciùil nach aithne dhuinn"
#: ../js/ui/mpris.js:195
#| msgctxt "program"
#| msgid "Unknown"
msgid "Unknown title"
msgstr "Tiotal nach aithne dhuinn"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Meadhanan"
#: ../js/ui/overview.js:84 #: ../js/ui/overview.js:84
msgid "Undo" msgid "Undo"
msgstr "Neo-dhèan" msgstr "Neo-dhèan"
@ -902,7 +1183,7 @@ msgstr[1] "%d bhrath ùr"
msgstr[2] "%d brathan ùra" msgstr[2] "%d brathan ùra"
msgstr[3] "%d brath ùr" msgstr[3] "%d brath ùr"
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:374 #: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:379
msgid "Lock" msgid "Lock"
msgstr "Glais" msgstr "Glais"
@ -1046,30 +1327,50 @@ msgstr "Soilleireachd"
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Seall co-dhealbhachd a' mheur-chlàir" msgstr "Seall co-dhealbhachd a' mheur-chlàir"
#: ../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 "Tha an t-ionad an comas" msgstr "Tha an t-ionad an comas"
#: ../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 "Cuir à comas" msgstr "Cuir à comas"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:109
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "Roghainnean na prìobhaideachd" msgstr "Roghainnean na prìobhaideachd"
#: ../js/ui/status/location.js:176 #: ../js/ui/status/location.js:214
msgid "Location In Use" msgid "Location In Use"
msgstr "Tha an t-ionad 'ga chleachdadh" msgstr "Tha an t-ionad 'ga chleachdadh"
#: ../js/ui/status/location.js:180 #: ../js/ui/status/location.js:218
msgid "Location Disabled" msgid "Location Disabled"
msgstr "Tha an t-ionad à comas" msgstr "Tha an t-ionad à comas"
#: ../js/ui/status/location.js:181 #: ../js/ui/status/location.js:219
msgid "Enable" msgid "Enable"
msgstr "Cuir an comas" msgstr "Cuir an comas"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Diùlt an t-inntrigeadh"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Ceadaich an t-inntrigeadh"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "A bheil thu airson inntrigeadh dhan ionad agad a thoirt dha %s?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"'S urrainn dhut inntrigeadh an ionaid atharrachadh uair sam bith ann an "
"roghainnean na prìobhaideachd."
#: ../js/ui/status/network.js:101 #: ../js/ui/status/network.js:101
msgid "<unknown>" msgid "<unknown>"
msgstr "<neo-aithnichte>" msgstr "<neo-aithnichte>"
@ -1254,34 +1555,37 @@ msgstr "Dh'fhàillig leis a' cheangal"
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Dh'fhàillig gnìomhachadh a' cheangail ris an lìonra" msgstr "Dh'fhàillig gnìomhachadh a' cheangail ris an lìonra"
#: ../js/ui/status/power.js:49 #: ../js/ui/status/power.js:61
msgid "Power Settings" msgid "Power Settings"
msgstr "Roghainnean na cumhachd" msgstr "Roghainnean na cumhachd"
#: ../js/ui/status/power.js:65 #: ../js/ui/status/power.js:77
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Air a làn-teairrdseadh" msgstr "Air a làn-teairrdseadh"
#. 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 "'Ga thuairmeas…" msgstr "'Ga thuairmeas…"
#. 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%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d air fhàgail (%d%%)" msgstr "%d%02d air fhàgail (%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%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "%d%02d gus am bi e làn (%d%%)" msgstr "%d%02d gus am bi e làn (%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.
@ -1289,27 +1593,27 @@ msgstr "%d%02d gus am bi e làn (%d%%)"
msgid "Airplane Mode On" msgid "Airplane Mode On"
msgstr "Modh itealain air" msgstr "Modh itealain air"
#: ../js/ui/status/system.js:343 #: ../js/ui/status/system.js:348
msgid "Switch User" msgid "Switch User"
msgstr "Leum gu cleachdaiche eile" msgstr "Leum gu cleachdaiche eile"
#: ../js/ui/status/system.js:348 #: ../js/ui/status/system.js:353
msgid "Log Out" msgid "Log Out"
msgstr "Clàraich a-mach" msgstr "Clàraich a-mach"
#: ../js/ui/status/system.js:353 #: ../js/ui/status/system.js:358
msgid "Account Settings" msgid "Account Settings"
msgstr "Roghainnean a' chunntais" msgstr "Roghainnean a' chunntais"
#: ../js/ui/status/system.js:370 #: ../js/ui/status/system.js:375
msgid "Orientation Lock" msgid "Orientation Lock"
msgstr "Glais na comhair" msgstr "Glais na comhair"
#: ../js/ui/status/system.js:378 #: ../js/ui/status/system.js:383
msgid "Suspend" msgid "Suspend"
msgstr "Cuir 'na dhàil" msgstr "Cuir 'na dhàil"
#: ../js/ui/status/system.js:381 #: ../js/ui/status/system.js:386
msgid "Power Off" msgid "Power Off"
msgstr "Cuir a' chumhachd dheth" msgstr "Cuir a' chumhachd dheth"
@ -1321,10 +1625,6 @@ msgstr "Dh'atharraich àirde na fuaime"
msgid "Volume" msgid "Volume"
msgstr "Àirde na fuaime" msgstr "Àirde na fuaime"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Micreofon"
#: ../js/ui/unlockDialog.js:67 #: ../js/ui/unlockDialog.js:67
msgid "Log in as another user" msgid "Log in as another user"
msgstr "Clàraich an-steach mar chleachdaiche eile" msgstr "Clàraich an-steach mar chleachdaiche eile"
@ -1451,7 +1751,7 @@ msgstr "Mìosachan 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:1835 #: ../src/gvc/gvc-mixer-control.c:1873
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1462,7 +1762,7 @@ msgstr[3] "%u às-chur"
#. 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:1883
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
@ -1471,7 +1771,7 @@ msgstr[1] "%u ion-chur"
msgstr[2] "%u ion-chuir" msgstr[2] "%u ion-chuir"
msgstr[3] "%u ion-chur" msgstr[3] "%u ion-chur"
#: ../src/gvc/gvc-mixer-control.c:2371 #: ../src/gvc/gvc-mixer-control.c:2738
msgid "System Sounds" msgid "System Sounds"
msgstr "Fuaimean an t-siostaim" msgstr "Fuaimean an t-siostaim"

@ -13,7 +13,7 @@ msgstr ""
"PO-Revision-Date: 2014-10-01 15:51+0530\n" "PO-Revision-Date: 2014-10-01 15:51+0530\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: American English <kde-i18n-doc@kde.org>\n" "Language-Team: American English <kde-i18n-doc@kde.org>\n"
"Language: \n" "Language: gu\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"

242
po/he.po

@ -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: 2016-03-11 14:49+0200\n" "POT-Creation-Date: 2016-08-07 15:33+0300\n"
"PO-Revision-Date: 2016-08-07 15:40+0300\n" "PO-Revision-Date: 2016-08-07 15:40+0300\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"
@ -129,7 +129,7 @@ msgstr "Index of the currently selected view in the application picker."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:11 #: ../data/org.gnome.shell.gschema.xml.in.in.h:11
msgid "History for command (Alt-F2) dialog" msgid "History for command (Alt-F2) dialog"
msgstr "History for command (Alt-F2) dialog" msgstr "History for command (Alt-F2) dialog"
#. Translators: looking glass is a debugger and inspector tool, see https://wiki.gnome.org/Projects/GnomeShell/LookingGlass #. Translators: looking glass is a debugger and inspector tool, see https://wiki.gnome.org/Projects/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"
@ -183,74 +183,66 @@ msgstr ""
"adapter. This will be reset if the default adapter is ever seen not to have " "adapter. This will be reset if the default adapter is ever seen not to have "
"devices associated to it." "devices associated to it."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "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
msgid "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:20 #: ../data/org.gnome.shell.gschema.xml.in.in.h:20
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:21 #: ../data/org.gnome.shell.gschema.xml.in.in.h:21
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:22 #: ../data/org.gnome.shell.gschema.xml.in.in.h:22
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:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
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:24 #: ../data/org.gnome.shell.gschema.xml.in.in.h:24
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:25 #: ../data/org.gnome.shell.gschema.xml.in.in.h:25
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:26 #: ../data/org.gnome.shell.gschema.xml.in.in.h:26
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:27 #: ../data/org.gnome.shell.gschema.xml.in.in.h:27
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:28 #: ../data/org.gnome.shell.gschema.xml.in.in.h:28
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:29 #: ../data/org.gnome.shell.gschema.xml.in.in.h:29
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:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
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:31 #: ../data/org.gnome.shell.gschema.xml.in.in.h:31
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:32 #: ../data/org.gnome.shell.gschema.xml.in.in.h:32
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:33 #: ../data/org.gnome.shell.gschema.xml.in.in.h:33
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:34 #: ../data/org.gnome.shell.gschema.xml.in.in.h:34
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 "
@ -258,51 +250,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:35 #: ../data/org.gnome.shell.gschema.xml.in.in.h:35
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
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: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:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
msgstr "Attach modal dialog to the parent window" msgstr "Attach modal dialog to the parent window"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39 #: ../data/org.gnome.shell.gschema.xml.in.in.h:39
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:40 #: ../data/org.gnome.shell.gschema.xml.in.in.h:40
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:41 #: ../data/org.gnome.shell.gschema.xml.in.in.h:41
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:42 #: ../data/org.gnome.shell.gschema.xml.in.in.h:42
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:43 #: ../data/org.gnome.shell.gschema.xml.in.in.h:43
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"
@ -321,7 +313,7 @@ msgstr "הרחבות GNOME Shell"
msgstr "הרחבות GNOME Shell" msgstr "הרחבות GNOME Shell"
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71 #: ../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:483 #: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:483
#: ../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
@ -476,6 +468,16 @@ msgstr "%d ב%B %Y, %l%M %p"
#: ../js/portalHelper/main.js:85 #: ../js/portalHelper/main.js:85
msgid "Web Authentication Redirect" msgid "Web Authentication Redirect"
msgstr "אימות ניתוב הרשת" msgstr "אימות ניתוב הרשת"
#. No support for non-modal system dialogs, so ignore the option
#. let modal = options['modal'] || true;
#: ../js/ui/accessDialog.js:62 ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "מניעת גישה"
#: ../js/ui/accessDialog.js:63 ../js/ui/status/location.js:429
msgid "Grant Access"
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"
@ -542,7 +544,7 @@ 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/status/system.js:374 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:374
msgid "Settings" msgid "Settings"
msgstr "הגדרות" msgstr "הגדרות"
@ -598,55 +600,55 @@ msgctxt "grid saturday"
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
msgstr "ש" msgstr "ש"
#: ../js/ui/calendar.js:442 #: ../js/ui/calendar.js:442
msgid "Previous month" msgid "Previous month"
msgstr "חודש קודם" msgstr "חודש קודם"
#: ../js/ui/calendar.js:452 #: ../js/ui/calendar.js:452
msgid "Next month" msgid "Next month"
msgstr "חודש הבא" msgstr "חודש הבא"
#: ../js/ui/calendar.js:605 #: ../js/ui/calendar.js:605
#, no-javascript-format #, no-javascript-format
msgctxt "date day number format" msgctxt "date day number format"
msgid "%d" msgid "%d"
msgstr "%d" msgstr "%d"
#: ../js/ui/calendar.js:660 #: ../js/ui/calendar.js:660
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:721 #: ../js/ui/calendar.js:721
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "יום שלם" msgstr "יום שלם"
#: ../js/ui/calendar.js:836 #: ../js/ui/calendar.js:836
msgid "Events" msgid "Events"
msgstr "אירועים" msgstr "אירועים"
#: ../js/ui/calendar.js:845 #: ../js/ui/calendar.js:845
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:849 #: ../js/ui/calendar.js:849
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:931 #: ../js/ui/calendar.js:931
msgid "Notifications" msgid "Notifications"
msgstr "התרעות" msgstr "התרעות"
#: ../js/ui/calendar.js:1082 #: ../js/ui/calendar.js:1082
msgid "No Notifications" msgid "No Notifications"
msgstr "אין התרעות" msgstr "אין התרעות"
#: ../js/ui/calendar.js:1085 #: ../js/ui/calendar.js:1085
msgid "No Events" msgid "No Events"
msgstr "אין אירועים" msgstr "אין אירועים"
@ -782,7 +784,7 @@ msgstr "פעולה זו לא הצליחה, נא לנסות שוב. עמך הסל
msgstr "פעולה זו לא הצליחה, נא לנסות שוב. עמך הסליחה." 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:760 #: ../js/ui/components/telepathyClient.js:760
#, javascript-format #, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
@ -836,14 +838,14 @@ msgid "Log Out"
msgid "Log Out" msgid "Log Out"
msgstr "יציאה" msgstr "יציאה"
#: ../js/ui/endSessionDialog.js:67 #: ../js/ui/endSessionDialog.js:67
#, javascript-format #, javascript-format
msgid "%s will be logged out automatically in %d second." msgid "%s will be logged out automatically in %d second."
msgid_plural "%s will be logged out automatically in %d seconds." msgid_plural "%s will be logged out automatically in %d seconds."
msgstr[0] "המשתמש %s ייצא אוטומטית בעוד שנייה." msgstr[0] "המשתמש %s ייצא אוטומטית בעוד שנייה."
msgstr[1] "המשתמש %s ייצא אוטומטית בעוד %d שניות." msgstr[1] "המשתמש %s ייצא אוטומטית בעוד %d שניות."
#: ../js/ui/endSessionDialog.js:72 #: ../js/ui/endSessionDialog.js:72
#, javascript-format #, javascript-format
msgid "You will be logged out automatically in %d second." msgid "You will be logged out automatically in %d second."
msgid_plural "You will be logged out automatically in %d seconds." msgid_plural "You will be logged out automatically in %d seconds."
@ -865,7 +867,7 @@ msgid "Install Updates & Power Off"
msgid "Install Updates & Power Off" msgid "Install Updates & Power Off"
msgstr "התקנת עדכונים וכיבוי" msgstr "התקנת עדכונים וכיבוי"
#: ../js/ui/endSessionDialog.js:87 #: ../js/ui/endSessionDialog.js:87
#, javascript-format #, javascript-format
msgid "The system will power off automatically in %d second." msgid "The system will power off automatically in %d second."
msgid_plural "The system will power off automatically in %d seconds." msgid_plural "The system will power off automatically in %d seconds."
@ -892,7 +894,7 @@ msgid "Restart"
msgid "Restart" msgid "Restart"
msgstr "הפעלה מחדש" msgstr "הפעלה מחדש"
#: ../js/ui/endSessionDialog.js:105 #: ../js/ui/endSessionDialog.js:105
#, javascript-format #, javascript-format
msgid "The system will restart automatically in %d second." msgid "The system will restart automatically in %d second."
msgid_plural "The system will restart automatically in %d seconds." msgid_plural "The system will restart automatically in %d seconds."
@ -904,14 +906,14 @@ msgid "Restart & Install Updates"
msgid "Restart & Install Updates" msgid "Restart & Install Updates"
msgstr "הפעלה מחדש והתקנת עדכונים" msgstr "הפעלה מחדש והתקנת עדכונים"
#: ../js/ui/endSessionDialog.js:121 #: ../js/ui/endSessionDialog.js:121
#, javascript-format #, javascript-format
msgid "The system will automatically restart and install updates in %d second." msgid "The system will automatically restart and install updates in %d second."
msgid_plural "" msgid_plural ""
"The system will automatically restart and install updates in %d seconds." "The system will automatically restart and install updates in %d seconds."
msgstr[0] "המערכת תופעל מחדש ותתקין עדכונים בעוד שנייה." msgstr[0] "המערכת תופעל מחדש ותתקין עדכונים בעוד שנייה."
msgstr[1] "המערכת תופעל מחדש ותקין עדכונים בעוד %d שניות." msgstr[1] "המערכת תופעל מחדש ותקין עדכונים בעוד %d שניות."
#: ../js/ui/endSessionDialog.js:127 ../js/ui/endSessionDialog.js:147 #: ../js/ui/endSessionDialog.js:127 ../js/ui/endSessionDialog.js:147
msgctxt "button" msgctxt "button"
msgid "Restart &amp; Install" msgid "Restart &amp; Install"
@ -926,26 +928,42 @@ msgctxt "checkbox"
msgctxt "checkbox" msgctxt "checkbox"
msgid "Power off after updates are installed" msgid "Power off after updates are installed"
msgstr "כיבוי לאחר התקנת עדכונים" msgstr "כיבוי לאחר התקנת עדכונים"
#: ../js/ui/endSessionDialog.js:137
msgctxt "title"
msgid "Restart & Install Upgrade"
msgstr "הפעלה מחדש ושדרוג התקנה"
#. Translators: This is the text displayed for system upgrades in the
#. shut down dialog. First %s gets replaced with the distro name and
#. second %s with the distro version to upgrade to
#: ../js/ui/endSessionDialog.js:142
#, javascript-format
msgid ""
"%s %s will be installed after restart. Upgrade installation can take a long "
"time: ensure that you have backed up and that the computer is plugged in."
msgstr "%s %s יותקן לאחר הפעלה מחדש. שדרוג ההתקנה עשוי לקחת זמר רב: יש לוודא"
"שגִבית ושהמחשב מחובר למקור חשמל."
#: ../js/ui/endSessionDialog.js:361 #: ../js/ui/endSessionDialog.js:361
msgid "Running on battery power: please plug in before installing updates." msgid "Running on battery power: please plug in before installing updates."
msgstr "פועל על סוללה: נא לחבר לפני התקנת עדכונים." msgstr "פועל על סוללה: נא לחבר לפני התקנת עדכונים."
#: ../js/ui/endSessionDialog.js:378 #: ../js/ui/endSessionDialog.js:378
msgid "Some applications are busy or have unsaved work." msgid "Some applications are busy or have unsaved work."
msgstr "כמה יישומים עסוקים או שיש עבודה שלא נשמרה." msgstr "כמה יישומים עסוקים או שיש עבודה שלא נשמרה."
#: ../js/ui/endSessionDialog.js:385 #: ../js/ui/endSessionDialog.js:385
msgid "Other users are logged in." msgid "Other users are logged in."
msgstr "משתמשים נוספים מחוברים." msgstr "משתמשים נוספים מחוברים."
#. 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:671 #: ../js/ui/endSessionDialog.js:671
#, javascript-format #, javascript-format
msgid "%s (remote)" msgid "%s (remote)"
msgstr "%s (מרוחק)" msgstr "%s (מרוחק)"
#. 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:674 #: ../js/ui/endSessionDialog.js:674
#, javascript-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
@ -959,7 +977,7 @@ msgstr "התקנה"
#, javascript-format #, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "הורדה והתקנה של „%s” מ־extensions.gnome.org?" msgstr "הורדה והתקנה של „%s” מ־extensions.gnome.org?"
#: ../js/ui/keyboard.js:741 ../js/ui/status/keyboard.js:782 #: ../js/ui/keyboard.js:741 ../js/ui/status/keyboard.js:782
msgid "Keyboard" msgid "Keyboard"
msgstr "מקלדת" msgstr "מקלדת"
@ -996,7 +1014,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:1866 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1866
msgid "Disabled" msgid "Disabled"
msgstr "מנוטרל" msgstr "מנוטרל"
@ -1044,7 +1062,7 @@ msgstr "מדיה"
#: ../js/ui/overview.js:84 #: ../js/ui/overview.js:84
msgid "Undo" msgid "Undo"
msgstr "ביטול" msgstr "ביטול"
#: ../js/ui/overview.js:113 #: ../js/ui/overview.js:113
msgid "Overview" msgid "Overview"
msgstr "סקירה" msgstr "סקירה"
@ -1052,7 +1070,7 @@ msgstr "סקירה"
#. 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:240 #: ../js/ui/overview.js:240
msgid "Type to search…" msgid "Type to search…"
msgstr "יש להקליד כדי לחפש…" msgstr "יש להקליד כדי לחפש…"
@ -1104,7 +1122,7 @@ msgstr "%A, ה־%d ב%B"
msgstr "%A, ה־%d ב%B" msgstr "%A, ה־%d ב%B"
# javascript-format # javascript-format
#: ../js/ui/screenShield.js:144 #: ../js/ui/screenShield.js:144
#, javascript-format #, javascript-format
msgid "%d new message" msgid "%d new message"
msgid_plural "%d new messages" msgid_plural "%d new messages"
@ -1112,17 +1130,17 @@ msgstr[1] "%d הודעות חדשות"
msgstr[1] "%d הודעות חדשות" msgstr[1] "%d הודעות חדשות"
# javascript-format # javascript-format
#: ../js/ui/screenShield.js:146 #: ../js/ui/screenShield.js:146
#, javascript-format #, javascript-format
msgid "%d new notification" msgid "%d new notification"
msgid_plural "%d new notifications" msgid_plural "%d new notifications"
msgstr[0] "התרעה חדשה אחת" msgstr[0] "התרעה חדשה אחת"
msgstr[1] "%d התרעות חדשות" msgstr[1] "%d התרעות חדשות"
#: ../js/ui/screenShield.js:449 ../js/ui/status/system.js:382 #: ../js/ui/screenShield.js:449 ../js/ui/status/system.js:382
msgid "Lock" msgid "Lock"
msgstr "נעילה" msgstr "נעילה"
#: ../js/ui/screenShield.js:704 #: ../js/ui/screenShield.js:704
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "על GNOME לנעול את המסך" msgstr "על GNOME לנעול את המסך"
@ -1133,11 +1151,11 @@ msgstr "על GNOME לנעול את המסך"
#. Just tell him to stop using this app #. Just tell him to stop using this app
#. #.
#. XXX: another option is to kick the user into the gdm login #. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs #. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:825 ../js/ui/screenShield.js:1291 #: ../js/ui/screenShield.js:825 ../js/ui/screenShield.js:1291
msgid "Unable to lock" msgid "Unable to lock"
msgstr "לא ניתן לנעול" msgstr "לא ניתן לנעול"
#: ../js/ui/screenShield.js:826 ../js/ui/screenShield.js:1292 #: ../js/ui/screenShield.js:826 ../js/ui/screenShield.js:1292
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "הנעילה נחסמה ע״י היישום" msgstr "הנעילה נחסמה ע״י היישום"
@ -1221,13 +1239,13 @@ msgstr "טקסט גדול"
#: ../js/ui/status/bluetooth.js:47 #: ../js/ui/status/bluetooth.js:47
msgid "Bluetooth" msgid "Bluetooth"
msgstr "Bluetooth" msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:56 ../js/ui/status/network.js:624 #: ../js/ui/status/bluetooth.js:56 ../js/ui/status/network.js:624
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
#, javascript-format #, javascript-format
msgid "%d Connected" msgid "%d Connected"
msgid_plural "%d Connected" msgid_plural "%d Connected"
@ -1256,7 +1274,7 @@ msgstr "כיבוי"
#: ../js/ui/status/brightness.js:44 #: ../js/ui/status/brightness.js:44
msgid "Brightness" msgid "Brightness"
msgstr "בהירות" msgstr "בהירות"
#: ../js/ui/status/keyboard.js:805 #: ../js/ui/status/keyboard.js:805
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "הצגת פריסת המקלדת" msgstr "הצגת פריסת המקלדת"
@ -1284,14 +1302,6 @@ 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 #. Translators: %s is an application name
#: ../js/ui/status/location.js:435 #: ../js/ui/status/location.js:435
@ -1368,7 +1378,7 @@ msgstr "נכשלה ההתחברות אל %s"
#: ../js/ui/status/network.js:503 #: ../js/ui/status/network.js:503
msgid "Wired Settings" msgid "Wired Settings"
msgstr "הגדרות רשת קווית" msgstr "הגדרות רשת קווית"
#: ../js/ui/status/network.js:545 #: ../js/ui/status/network.js:545
msgid "Mobile Broadband Settings" msgid "Mobile Broadband Settings"
msgstr "הגדרות פס־רחב נייד" msgstr "הגדרות פס־רחב נייד"
@ -1386,8 +1396,8 @@ msgid "%s Disabled"
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 "Connect to Internet"
msgstr "התחברות לאינטרנט" msgstr "התחברות לאינטרנט"
#: ../js/ui/status/network.js:813 #: ../js/ui/status/network.js:813
@ -1524,27 +1534,27 @@ msgstr "%d%%"
#: ../js/ui/status/rfkill.js:88 #: ../js/ui/status/rfkill.js:88
msgid "Airplane Mode On" msgid "Airplane Mode On"
msgstr "מצב טיסה מופעל" msgstr "מצב טיסה מופעל"
#: ../js/ui/status/system.js:351 #: ../js/ui/status/system.js:351
msgid "Switch User" msgid "Switch User"
msgstr "החלפת משתמש" msgstr "החלפת משתמש"
#: ../js/ui/status/system.js:356 #: ../js/ui/status/system.js:356
msgid "Log Out" msgid "Log Out"
msgstr "יציאה" msgstr "יציאה"
#: ../js/ui/status/system.js:361 #: ../js/ui/status/system.js:361
msgid "Account Settings" msgid "Account Settings"
msgstr "הגדרות חשבון" msgstr "הגדרות חשבון"
#: ../js/ui/status/system.js:378 #: ../js/ui/status/system.js:378
msgid "Orientation Lock" msgid "Orientation Lock"
msgstr "נעילת כיוון" msgstr "נעילת כיוון"
#: ../js/ui/status/system.js:386 #: ../js/ui/status/system.js:386
msgid "Suspend" msgid "Suspend"
msgstr "השהיה" msgstr "השהיה"
#: ../js/ui/status/system.js:389 #: ../js/ui/status/system.js:389
msgid "Power Off" msgid "Power Off"
msgstr "כיבוי" msgstr "כיבוי"
@ -1594,7 +1604,7 @@ msgstr "שמירת שינויים"
msgstr "שמירת שינויים" msgstr "שמירת שינויים"
# javascript-format # javascript-format
#: ../js/ui/windowManager.js:103 #: ../js/ui/windowManager.js:103
#, javascript-format #, javascript-format
msgid "Settings changes will revert in %d second" msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds" msgid_plural "Settings changes will revert in %d seconds"
@ -1677,7 +1687,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:1873 #: ../src/gvc/gvc-mixer-control.c:1873
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
@ -1686,14 +1696,14 @@ 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:1883 #: ../src/gvc/gvc-mixer-control.c:1883
#, 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:2738 #: ../src/gvc/gvc-mixer-control.c:2738
msgid "System Sounds" msgid "System Sounds"
msgstr "צלילי מערכת" msgstr "צלילי מערכת"
@ -1713,12 +1723,12 @@ msgstr "שימוש במצב מסוים, לדוגמה: „gdm“ למסך הכנ
#: ../src/main.c:399 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "הצגת המצבים האפשריים" msgstr "הצגת המצבים האפשריים"
#: ../src/shell-app.c:270 #: ../src/shell-app.c:270
msgctxt "program" msgctxt "program"
msgid "Unknown" msgid "Unknown"
msgstr "לא ידוע" msgstr "לא ידוע"
#: ../src/shell-app.c:511 #: ../src/shell-app.c:511
#, c-format #, c-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
@ -1735,6 +1745,15 @@ 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 "Show the week date in the calendar"
#~ msgstr "Show the 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."
#~ msgid "Use as Internet connection"
#~ msgstr "שימוש כחיבור לאינטרנט"
#~ msgid "%s is requesting access to your location." #~ msgid "%s is requesting access to your location."
#~ msgstr "%s דורש גישה למיקום שלך." #~ msgstr "%s דורש גישה למיקום שלך."
@ -2427,9 +2446,6 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgid "Subscription request" #~ msgid "Subscription request"
#~ msgstr "בקשת הרשמה" #~ msgstr "בקשת הרשמה"
#~ msgid "Connection error"
#~ msgstr "שגיאת התחברות"
#~ msgid "<b>%H:%M</b> on Yesterday" #~ msgid "<b>%H:%M</b> on Yesterday"
#~ msgstr "אתמול ב־<b>%H:%M</b>" #~ msgstr "אתמול ב־<b>%H:%M</b>"

836
po/hu.po

File diff suppressed because it is too large Load Diff

894
po/id.po

File diff suppressed because it is too large Load Diff

866
po/is.po

File diff suppressed because it is too large Load Diff

176
po/ja.po

@ -14,9 +14,10 @@
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-shell&keywords=I18N+L10N&component=general\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"POT-Creation-Date: 2016-03-11 22:17+0000\n" "shell&keywords=I18N+L10N&component=general\n"
"PO-Revision-Date: 2016-03-12 14:12+0900\n" "POT-Creation-Date: 2016-05-02 22:01+0000\n"
"PO-Revision-Date: 2016-05-08 15:12+0900\n"
"Last-Translator: Jiro Matsuzawa <jmatsuzawa@gnome.org>\n" "Last-Translator: Jiro Matsuzawa <jmatsuzawa@gnome.org>\n"
"Language-Team: Japanese <gnome-translation@gnome.gr.jp>\n" "Language-Team: Japanese <gnome-translation@gnome.gr.jp>\n"
"Language: ja\n" "Language: ja\n"
@ -70,31 +71,51 @@ msgid "Enable internal tools useful for developers and testers from Alt-F2"
msgstr "Alt-F2 から開発・テスト用の内部ツールを利用可能にする" msgstr "Alt-F2 から開発・テスト用の内部ツールを利用可能にする"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:2 #: ../data/org.gnome.shell.gschema.xml.in.in.h:2
msgid "Allows access to internal debugging and monitoring tools using the Alt-F2 dialog." msgid ""
msgstr "Alt-F2 ダイアログを利用した内部のデバッグツールとモニターツールへのアクセスを許可します。" "Allows access to internal debugging and monitoring tools using the Alt-F2 "
"dialog."
msgstr ""
"Alt-F2 ダイアログを利用した内部のデバッグツールとモニターツールへのアクセスを"
"許可します。"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:3 #: ../data/org.gnome.shell.gschema.xml.in.in.h:3
msgid "UUIDs of extensions to enable" msgid "UUIDs of extensions to enable"
msgstr "有効にする拡張機能の UUID" msgstr "有効にする拡張機能の UUID"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:4 #: ../data/org.gnome.shell.gschema.xml.in.in.h:4
msgid "GNOME Shell extensions have a UUID property; this key lists extensions which should be loaded. Any extension that wants to be loaded needs to be in this list. You can also manipulate this list with the EnableExtension and DisableExtension D-Bus methods on org.gnome.Shell." msgid ""
msgstr "GNOME Shell の拡張機能には UUID プロパティがあり、このキーは、ロードしたい拡張機能の UUID のリストです。ロードしたい拡張機能はこのリストに含めなければなりません。このリストは org.gnome.Shell の EnableExtensions や DisableExtensions といった DBus メソッドでも操作できます。" "GNOME Shell extensions have a UUID property; this key lists extensions which "
"should be loaded. Any extension that wants to be loaded needs to be in this "
"list. You can also manipulate this list with the EnableExtension and "
"DisableExtension D-Bus methods on org.gnome.Shell."
msgstr ""
"GNOME Shell の拡張機能には UUID プロパティがあり、このキーは、ロードしたい拡"
"張機能の UUID のリストです。ロードしたい拡張機能はこのリストに含めなければな"
"りません。このリストは org.gnome.Shell の EnableExtensions や "
"DisableExtensions といった DBus メソッドでも操作できます。"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:5 #: ../data/org.gnome.shell.gschema.xml.in.in.h:5
msgid "Disables the validation of extension version compatibility" msgid "Disables the validation of extension version compatibility"
msgstr "拡張機能のバージョン互換の検証を無効にする" msgstr "拡張機能のバージョン互換の検証を無効にする"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:6 #: ../data/org.gnome.shell.gschema.xml.in.in.h:6
msgid "GNOME Shell will only load extensions that claim to support the current running version. Enabling this option will disable this check and try to load all extensions regardless of the versions they claim to support." msgid ""
msgstr "通常では、現在起動中の GNOME Shell のバージョンをサポートする拡張機能だけがロードされます。この設定を true にした場合、バージョンチェック機能が無効になり、拡張機能のサポートバージョンに関係なくすべての拡張機能をロードします。" "GNOME Shell will only load extensions that claim to support the current "
"running version. Enabling this option will disable this check and try to "
"load all extensions regardless of the versions they claim to support."
msgstr ""
"通常では、現在起動中の GNOME Shell のバージョンをサポートする拡張機能だけが"
"ロードされます。この設定を true にした場合、バージョンチェック機能が無効にな"
"り、拡張機能のサポートバージョンに関係なくすべての拡張機能をロードします。"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:7 #: ../data/org.gnome.shell.gschema.xml.in.in.h:7
msgid "List of desktop file IDs for favorite applications" msgid "List of desktop file IDs for favorite applications"
msgstr "お気に入りのアプリケーションの .desktop ファイル ID の一覧" msgstr "お気に入りのアプリケーションの .desktop ファイル ID の一覧"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:8 #: ../data/org.gnome.shell.gschema.xml.in.in.h:8
msgid "The applications corresponding to these identifiers will be displayed in the favorites area." msgid ""
"The applications corresponding to these identifiers will be displayed in the "
"favorites area."
msgstr "これらの ID で示されるアプリケーションは「お気に入り」に表示されます。" msgstr "これらの ID で示されるアプリケーションは「お気に入り」に表示されます。"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:9 #: ../data/org.gnome.shell.gschema.xml.in.in.h:9
@ -119,24 +140,49 @@ msgid "Always show the 'Log out' menu item in the user menu."
msgstr "ユーザーメニューに「ログアウト」を常に表示する" msgstr "ユーザーメニューに「ログアウト」を常に表示する"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15 #: ../data/org.gnome.shell.gschema.xml.in.in.h:15
msgid "This key overrides the automatic hiding of the 'Log out' menu item in single-user, single-session situations." msgid ""
msgstr "このキーは、単一ユーザー、単一セッション状況で「ログアウト」メニューアイテムを自動的に非表示にする機能よりも優先します。" "This key overrides the automatic hiding of the 'Log out' menu item in single-"
"user, single-session situations."
msgstr ""
"このキーは、単一ユーザー、単一セッション状況で「ログアウト」メニューアイテム"
"を自動的に非表示にする機能よりも優先します。"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16 #: ../data/org.gnome.shell.gschema.xml.in.in.h:16
msgid "Whether to remember password for mounting encrypted or remote filesystems" msgid ""
msgstr "マウント対象の暗号化されたファイルシステムやリモートファイルシステムのパスワードを記憶する" "Whether to remember password for mounting encrypted or remote filesystems"
msgstr ""
"マウント対象の暗号化されたファイルシステムやリモートファイルシステムのパス"
"ワードを記憶する"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17 #: ../data/org.gnome.shell.gschema.xml.in.in.h:17
msgid "The shell will request a password when an encrypted device or a remote filesystem is mounted. If the password can be saved for future use a 'Remember Password' checkbox will be present. This key sets the default state of the checkbox." msgid ""
msgstr "GNOME Shell は、暗号化されたデバイスやリモートファイルシステムのマウント時にパスワードを要求します。パスワードを保存できる場合は、「パスワードを保存」チェックボックスが表示されます。このキーは、チェックボックスのデフォルト値となります。" "The shell will request a password when an encrypted device or a remote "
"filesystem is mounted. If the password can be saved for future use a "
"'Remember Password' checkbox will be present. This key sets the default "
"state of the checkbox."
msgstr ""
"GNOME Shell は、暗号化されたデバイスやリモートファイルシステムのマウント時に"
"パスワードを要求します。パスワードを保存できる場合は、「パスワードを保存」"
"チェックボックスが表示されます。このキーは、チェックボックスのデフォルト値と"
"なります。"
#: ../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" msgid ""
msgstr "デフォルトの Bluetooth アダプターにデバイスが関連付けられているかどうか" "Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
"デフォルトの Bluetooth アダプターにデバイスが関連付けられているかどうか"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19 #: ../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." msgid ""
msgstr "Bluetooth アダプターの電源がオンになっているか、あるいはデフォルトのアダプターに関連付けられたデバイスがある場合にのみ、GNOME Shell は Bluetooth メニューを表示します。デフォルトのアダプターに関連付けられたデバイスがなくなった場合に、この値はリセットされます。" "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 ""
"Bluetooth アダプターの電源がオンになっているか、あるいはデフォルトのアダプ"
"ターに関連付けられたデバイスがある場合にのみ、GNOME Shell は Bluetooth メ"
"ニューを表示します。デフォルトのアダプターに関連付けられたデバイスがなくなっ"
"た場合に、この値はリセットされます。"
#: ../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"
@ -159,7 +205,8 @@ msgid "Keybinding to open the \"Show Applications\" view"
msgstr "アプリケーション一覧を開くキーバインド" msgstr "アプリケーション一覧を開くキーバインド"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25 #: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "Keybinding to open the \"Show Applications\" view of the Activities Overview." msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr "アプリケーション一覧を開くキーバインドです。" msgstr "アプリケーション一覧を開くキーバインドです。"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.in.h:26
@ -187,8 +234,10 @@ msgid "Keybinding to focus the active notification."
msgstr "アクティブな通知にフォーカスを当てるキーバインドです。" msgstr "アクティブな通知にフォーカスを当てるキーバインドです。"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32 #: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "Keybinding that pauses and resumes all running tweens, for debugging purposes" msgid ""
msgstr "Tween の一時停止および再開を行うキーバインドです。デバッグ用途で使用します。" "Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr ""
"Tween の一時停止および再開を行うキーバインドです。デバッグ用途で使用します。"
#: ../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"
@ -203,28 +252,46 @@ msgid "Limit switcher to current workspace."
msgstr "スイッチャーを現在のワークスペース内に制限する" msgstr "スイッチャーを現在のワークスペース内に制限する"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36 #: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid "If true, only applications that have windows on the current workspace are shown in the switcher. Otherwise, all applications are included." msgid ""
msgstr "true に設定した場合、現在のワークスペースにウィンドウのあるアプリケーションだけをスイッチャーに表示します。false に設定した場合はすべてのアプリケーションを表示します。" "If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included."
msgstr ""
"true に設定した場合、現在のワークスペースにウィンドウのあるアプリケーションだ"
"けをスイッチャーに表示します。false に設定した場合はすべてのアプリケーション"
"を表示します。"
#: ../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 "アプリケーションアイコンモード" msgstr "アプリケーションアイコンモード"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:38
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'." msgid ""
msgstr "ウィンドウスイッチャーでのウィンドウの表示方法を設定します。指定可能な値は、'thumbnail-only' (ウィンドウのサムネイルを表示します)、'app-icon-only' (アプリケーションアイコンを表示します)、あるいは 'both' です。" "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 ""
"ウィンドウスイッチャーでのウィンドウの表示方法を設定します。指定可能な値"
"は、'thumbnail-only' (ウィンドウのサムネイルを表示します)、'app-icon-"
"only' (アプリケーションアイコンを表示します)、あるいは '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." msgid ""
msgstr "true に設定した場合、現在のワークスペースのウィンドウだけをスイッチャーに表示します。false に設定した場合はすべてのアプリケーションを表示します。" "If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
msgstr ""
"true に設定した場合、現在のワークスペースのウィンドウだけをスイッチャーに表示"
"します。false に設定した場合はすべてのアプリケーションを表示します。"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40 #: ../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:41 #: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid "This key overrides the key in org.gnome.mutter when running GNOME Shell." msgid ""
msgstr "GNOME Shell 使用時は、 このキーが、org.gnome.mutter の同じキーよりも優先します。" "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"GNOME Shell 使用時は、 このキーが、org.gnome.mutter の同じキーよりも優先しま"
"す。"
#: ../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"
@ -478,7 +545,7 @@ msgstr "背景の変更…"
msgid "Display Settings" msgid "Display Settings"
msgstr "ディスプレイ設定" msgstr "ディスプレイ設定"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:371
msgid "Settings" msgid "Settings"
msgstr "設定" msgstr "設定"
@ -646,8 +713,12 @@ msgstr "無線ネットワークでは認証が要求されます"
#: ../js/ui/components/networkAgent.js:321 #: ../js/ui/components/networkAgent.js:321
#: ../js/ui/components/networkAgent.js:659 #: ../js/ui/components/networkAgent.js:659
#, javascript-format #, javascript-format
msgid "Passwords or encryption keys are required to access the wireless network “%s”." msgid ""
msgstr "無線ネットワーク ”%s” にアクセスするにはパスワードか、または暗号化キーが必要です。" "Passwords or encryption keys are required to access the wireless network "
"“%s”."
msgstr ""
"無線ネットワーク ”%s” にアクセスするにはパスワードか、または暗号化キーが必要"
"です。"
#: ../js/ui/components/networkAgent.js:325 #: ../js/ui/components/networkAgent.js:325
#: ../js/ui/components/networkAgent.js:662 #: ../js/ui/components/networkAgent.js:662
@ -716,7 +787,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 になりました"
@ -836,7 +907,8 @@ msgstr "再起動して更新をインストールする"
#: ../js/ui/endSessionDialog.js:121 #: ../js/ui/endSessionDialog.js:121
#, javascript-format #, javascript-format
msgid "The system will automatically restart and install updates in %d second." msgid "The system will automatically restart and install updates in %d second."
msgid_plural "The system will automatically restart and install updates in %d seconds." msgid_plural ""
"The system will automatically restart and install updates in %d seconds."
msgstr[0] "%d 秒後にシステムを再起動して更新をインストールします。" msgstr[0] "%d 秒後にシステムを再起動して更新をインストールします。"
#: ../js/ui/endSessionDialog.js:127 #: ../js/ui/endSessionDialog.js:127
@ -856,7 +928,8 @@ msgstr "更新をインストール後電源をオフにする"
#: ../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."
msgstr "バッテリーで動作中です: 更新をインストールする前に電源に接続してください。" msgstr ""
"バッテリーで動作中です: 更新をインストールする前に電源に接続してください。"
#: ../js/ui/endSessionDialog.js:355 #: ../js/ui/endSessionDialog.js:355
msgid "Some applications are busy or have unsaved work." msgid "Some applications are busy or have unsaved work."
@ -924,7 +997,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:1828 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1866
msgid "Disabled" msgid "Disabled"
msgstr "無効" msgstr "無効"
@ -1042,7 +1115,7 @@ msgid "%d new notification"
msgid_plural "%d new notifications" msgid_plural "%d new notifications"
msgstr[0] "%d 件の新しい通知" msgstr[0] "%d 件の新しい通知"
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:374 #: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:379
msgid "Lock" msgid "Lock"
msgstr "ロック" msgstr "ロック"
@ -1223,7 +1296,8 @@ msgstr "%s が現在の位置情報を取得することを許可しますか?"
#: ../js/ui/status/location.js:437 #: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings." msgid "Location access can be changed at any time from the privacy settings."
msgstr "位置情報のアクセス許可設定は、プライバシー設定からいつでも変更できます。" msgstr ""
"位置情報のアクセス許可設定は、プライバシー設定からいつでも変更できます。"
#: ../js/ui/status/network.js:101 #: ../js/ui/status/network.js:101
msgid "<unknown>" msgid "<unknown>"
@ -1447,27 +1521,27 @@ msgstr "%d%%"
msgid "Airplane Mode On" msgid "Airplane Mode On"
msgstr "機内モードオン" msgstr "機内モードオン"
#: ../js/ui/status/system.js:343 #: ../js/ui/status/system.js:348
msgid "Switch User" msgid "Switch User"
msgstr "ユーザーの切り替え" msgstr "ユーザーの切り替え"
#: ../js/ui/status/system.js:348 #: ../js/ui/status/system.js:353
msgid "Log Out" msgid "Log Out"
msgstr "ログアウト" msgstr "ログアウト"
#: ../js/ui/status/system.js:353 #: ../js/ui/status/system.js:358
msgid "Account Settings" msgid "Account Settings"
msgstr "アカウント設定" msgstr "アカウント設定"
#: ../js/ui/status/system.js:370 #: ../js/ui/status/system.js:375
msgid "Orientation Lock" msgid "Orientation Lock"
msgstr "画面方向ロック" msgstr "画面方向ロック"
#: ../js/ui/status/system.js:378 #: ../js/ui/status/system.js:383
msgid "Suspend" msgid "Suspend"
msgstr "サスペンド" msgstr "サスペンド"
#: ../js/ui/status/system.js:381 #: ../js/ui/status/system.js:386
msgid "Power Off" msgid "Power Off"
msgstr "電源オフ" msgstr "電源オフ"
@ -1554,11 +1628,11 @@ msgstr "画面上でタイトルバーを移動する"
#: ../js/ui/windowMenu.js:70 #: ../js/ui/windowMenu.js:70
msgid "Always on Top" msgid "Always on Top"
msgstr "最前面に配置する" msgstr "最前面に維持する"
#: ../js/ui/windowMenu.js:89 #: ../js/ui/windowMenu.js:89
msgid "Always on Visible Workspace" msgid "Always on Visible Workspace"
msgstr "すべてのワークスペースに配置する" msgstr "すべてのワークスペースに表示する"
#: ../js/ui/windowMenu.js:105 #: ../js/ui/windowMenu.js:105
msgid "Move to Workspace Left" msgid "Move to Workspace Left"
@ -1598,7 +1672,7 @@ msgstr "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:1835 #: ../src/gvc/gvc-mixer-control.c:1873
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1606,13 +1680,13 @@ msgstr[0] "出力数: %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:1883
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
msgstr[0] "入力数: %u" msgstr[0] "入力数: %u"
#: ../src/gvc/gvc-mixer-control.c:2371 #: ../src/gvc/gvc-mixer-control.c:2738
msgid "System Sounds" msgid "System Sounds"
msgstr "システムのサウンド" msgstr "システムのサウンド"

@ -24,7 +24,7 @@ msgstr ""
"PO-Revision-Date: 2016-03-16 21:46+0900\n" "PO-Revision-Date: 2016-03-16 21:46+0900\n"
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n" "Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
"Language-Team: GNOME Korea <gnome-kr@googlegroups.com>\n" "Language-Team: GNOME Korea <gnome-kr@googlegroups.com>\n"
"Language: Korean\n" "Language: ko\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"

@ -14,7 +14,7 @@ msgstr ""
"PO-Revision-Date: 2012-09-24 14:29+0600\n" "PO-Revision-Date: 2012-09-24 14:29+0600\n"
"Last-Translator: Timur Zhamakeev <ztimur@gmail.com>\n" "Last-Translator: Timur Zhamakeev <ztimur@gmail.com>\n"
"Language-Team: Kirghiz <gnome-i18n@gnome.org>\n" "Language-Team: Kirghiz <gnome-i18n@gnome.org>\n"
"Language: ky_KG\n" "Language: ky\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"

195
po/lt.po

@ -11,8 +11,8 @@ 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: 2016-03-13 10:20+0000\n" "POT-Creation-Date: 2016-07-20 22:51+0000\n"
"PO-Revision-Date: 2016-03-13 21:20+0200\n" "PO-Revision-Date: 2016-08-03 21:55+0300\n"
"Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n" "Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n"
"Language-Team: Lietuvių <gnome-lt@lists.akl.lt>\n" "Language-Team: Lietuvių <gnome-lt@lists.akl.lt>\n"
"Language: lt\n" "Language: lt\n"
@ -132,7 +132,7 @@ msgstr "Šiuo metu pasirinkto vaizdo programų vaizde indeksas."
msgid "History for command (Alt-F2) dialog" msgid "History for command (Alt-F2) dialog"
msgstr "Komandų (Alt-F2) dialogo retrospektyva" msgstr "Komandų (Alt-F2) dialogo retrospektyva"
#. 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://wiki.gnome.org/Projects/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 "Didinamojo stiklo dialogo retrospektyva" msgstr "Didinamojo stiklo dialogo retrospektyva"
@ -186,76 +186,68 @@ msgstr ""
"numatytasis adapteris neturi su juo susietų įrenginių." "numatytasis adapteris neturi su juo susietų įrenginių."
#: ../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"
msgstr "Rodyti savaitės dienas kalendoriuje"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "If true, display the ISO week date in the calendar."
msgstr "Jeigu reikšmė teigiama, kalendoriuje rodyti ISO savaičių datą."
#: ../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 "Klavišų susiejimas, kuriuo atveriamas programų meniu" msgstr "Klavišų susiejimas, kuriuo atveriamas programų meniu"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "Keybinding to open the application menu." msgid "Keybinding to open the application menu."
msgstr "Klavišų susiejimas, kuriuo atveriamas programų meniu." msgstr "Klavišų susiejimas, kuriuo atveriamas programų meniu."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the \"Show Applications\" view" msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Klavišų susiejimas, kuriuo atveriamas programų paleidimo vaizdas" msgstr "Klavišų susiejimas, kuriuo atveriamas programų paleidimo vaizdas"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
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 ""
"Klavišų susiejimas, kuriuo atveriamas „Programų paleidimas“ veiklų " "Klavišų susiejimas, kuriuo atveriamas „Programų paleidimas“ veiklų "
"apžvalgoje." "apžvalgoje."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "Klavišų susiejimas, kuriuo atveriama apžvalga" msgstr "Klavišų susiejimas, kuriuo atveriama apžvalga"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27 #: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "Klavišų susiejimas, kuriuo atveriama veiklų apžvalga." msgstr "Klavišų susiejimas, kuriuo atveriama veiklų apžvalga."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28 #: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to toggle the visibility of the notification list" msgid "Keybinding to toggle the visibility of the notification list"
msgstr "Klavišų susiejimas pranešimų juostos matomumui perjungti" msgstr "Klavišų susiejimas pranešimų juostos matomumui perjungti"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29 #: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to toggle the visibility of the notification list." msgid "Keybinding to toggle the visibility of the notification list."
msgstr "Klavišų susiejimas pranešimų juostos matomumui perjungti." msgstr "Klavišų susiejimas pranešimų juostos matomumui perjungti."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "Klavišų susiejimas, kuriuo fokusuojamas aktyvus pranešimas" msgstr "Klavišų susiejimas, kuriuo fokusuojamas aktyvus pranešimas"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31 #: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "Klavišų susiejimas, kuriuo fokusuojamas aktyvus pranešimas." msgstr "Klavišų susiejimas, kuriuo fokusuojamas aktyvus pranešimas."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
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 ""
"Klavišų susiejimas, kuris sustabdo ir pratęsia visus veikiančius elementus, " "Klavišų susiejimas, kuris sustabdo ir pratęsia visus veikiančius elementus, "
"derinimui" "derinimui"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33 #: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Which keyboard to use" msgid "Which keyboard to use"
msgstr "Kurią klaviatūrą naudoti" msgstr "Kurią klaviatūrą naudoti"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34 #: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "The type of keyboard to use." msgid "The type of keyboard to use."
msgstr "Naudotinas klaviatūros tipas." msgstr "Naudotinas klaviatūros tipas."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35 #: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "Apriboti perjungėją dabartine darbo sritimi." msgstr "Apriboti perjungėją dabartine darbo sritimi."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36 #: ../data/org.gnome.shell.gschema.xml.in.in.h:34
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."
@ -263,11 +255,11 @@ msgstr ""
"Jei teigiama, perjungimo lange bus rodomos tik programos, turinčios langų " "Jei teigiama, perjungimo lange bus rodomos tik programos, turinčios langų "
"dabartinėje darbo srityje. Priešingu atveju įtraukiamos visos programos." "dabartinėje darbo srityje. Priešingu atveju įtraukiamos visos programos."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "The application icon mode." msgid "The application icon mode."
msgstr "Programos piktogramos veiksena." msgstr "Programos piktogramos veiksena."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:36
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-"
@ -277,7 +269,7 @@ msgstr ""
"„thumbnail-only“ (rodo lango miniatiūrą), „app-icon-only“ (rodo tik " "„thumbnail-only“ (rodo lango miniatiūrą), „app-icon-only“ (rodo tik "
"programos piktogramą) arba „both“ (abu)." "programos piktogramą) arba „both“ (abu)."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39 #: ../data/org.gnome.shell.gschema.xml.in.in.h:37
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."
@ -285,28 +277,28 @@ msgstr ""
"Jei teigiama, perjungimo lange rodomi tik langai iš dabartinės darbo " "Jei teigiama, perjungimo lange rodomi tik langai iš dabartinės darbo "
"srities. Priešingu atveju įtraukiami visi langai." "srities. Priešingu atveju įtraukiami visi langai."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40 #: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
msgstr "Prikabinti modalinį dialogą prie tėvinio lango" msgstr "Prikabinti modalinį dialogą prie tėvinio lango"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41 #: ../data/org.gnome.shell.gschema.xml.in.in.h:39
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 "Šis raktas perrašo org.gnome.mutter raktą, kai vykdoma GNOME Shell." msgstr "Šis raktas perrašo org.gnome.mutter raktą, kai vykdoma GNOME Shell."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42 #: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Įjungti kraštų išplėtimą, kai langai numetami ekrano kraštuose" msgstr "Įjungti kraštų išplėtimą, kai langai numetami ekrano kraštuose"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43 #: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Darbo sritys yra tvarkomos dinamiškai" msgstr "Darbo sritys yra tvarkomos dinamiškai"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44 #: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Darbo sritys tik pagrindiniame monitoriuje" msgstr "Darbo sritys tik pagrindiniame monitoriuje"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45 #: ../data/org.gnome.shell.gschema.xml.in.in.h:43
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 "Atidėti fokuso pakeitimus pelei iki žymiklis nustos judėti" msgstr "Atidėti fokuso pakeitimus pelei iki žymiklis nustos judėti"
@ -325,7 +317,7 @@ msgstr "GNOME Shell plėtiniai"
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71 #: ../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:483
#: ../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"
@ -480,6 +472,16 @@ msgstr "%Y %B %d, %l%M %p"
msgid "Web Authentication Redirect" msgid "Web Authentication Redirect"
msgstr "Reikia patvirtinti tapatybę internete" msgstr "Reikia patvirtinti tapatybę internete"
#. No support for non-modal system dialogs, so ignore the option
#. let modal = options['modal'] || true;
#: ../js/ui/accessDialog.js:62 ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Atmesti prieigą"
#: ../js/ui/accessDialog.js:63 ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Suteikti prieigą"
#: ../js/ui/appDisplay.js:794 #: ../js/ui/appDisplay.js:794
msgid "Frequently used applications will appear here" msgid "Frequently used applications will appear here"
msgstr "Čia bus matomos dažnai naudojamos programos" msgstr "Čia bus matomos dažnai naudojamos programos"
@ -546,7 +548,7 @@ msgstr "Keisti foną…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Ekrano nustatymai" msgstr "Ekrano nustatymai"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:374
msgid "Settings" msgid "Settings"
msgstr "Nustatymai" msgstr "Nustatymai"
@ -602,55 +604,55 @@ msgctxt "grid saturday"
msgid "S" msgid "S"
msgstr "Š" msgstr "Š"
#: ../js/ui/calendar.js:416 #: ../js/ui/calendar.js:442
msgid "Previous month" msgid "Previous month"
msgstr "Ankstesnis mėnuo" msgstr "Ankstesnis mėnuo"
#: ../js/ui/calendar.js:426 #: ../js/ui/calendar.js:452
msgid "Next month" msgid "Next month"
msgstr "Kitas mėnuo" msgstr "Kitas mėnuo"
#: ../js/ui/calendar.js:579 #: ../js/ui/calendar.js:605
#, no-javascript-format #, no-javascript-format
msgctxt "date day number format" msgctxt "date day number format"
msgid "%d" msgid "%d"
msgstr "%d" msgstr "%d"
#: ../js/ui/calendar.js:634 #: ../js/ui/calendar.js:660
msgid "Week %V" msgid "Week %V"
msgstr "Savaitė %V" msgstr "Savaitė %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:721
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Visa diena" msgstr "Visa diena"
#: ../js/ui/calendar.js:821 #: ../js/ui/calendar.js:836
msgid "Events" msgid "Events"
msgstr "Įvykiai" msgstr "Įvykiai"
#: ../js/ui/calendar.js:830 #: ../js/ui/calendar.js:845
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %B %d d." msgstr "%A, %B %d d."
#: ../js/ui/calendar.js:834 #: ../js/ui/calendar.js:849
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A, %Y m. %B %d d." msgstr "%A, %Y m. %B %d d."
#: ../js/ui/calendar.js:919 #: ../js/ui/calendar.js:931
msgid "Notifications" msgid "Notifications"
msgstr "Pranešimai" msgstr "Pranešimai"
#: ../js/ui/calendar.js:1070 #: ../js/ui/calendar.js:1082
msgid "No Notifications" msgid "No Notifications"
msgstr "Nėra pranešimų" msgstr "Nėra pranešimų"
#: ../js/ui/calendar.js:1073 #: ../js/ui/calendar.js:1085
msgid "No Events" msgid "No Events"
msgstr "Nėra įvykių" msgstr "Nėra įvykių"
@ -788,7 +790,7 @@ msgstr "Atsiprašome, tai nesuveikė. Bandykite dar kartą."
#. 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 nuo šiol vadinasi %s" msgstr "%s nuo šiol vadinasi %s"
@ -925,7 +927,7 @@ msgstr[1] ""
msgstr[2] "" msgstr[2] ""
"Sistema bus paleista iš naujo ir įdiegs atnaujinimus po %d sekundžių." "Sistema bus paleista iš naujo ir įdiegs atnaujinimus po %d sekundžių."
#: ../js/ui/endSessionDialog.js:127 #: ../js/ui/endSessionDialog.js:127 ../js/ui/endSessionDialog.js:147
msgctxt "button" msgctxt "button"
msgid "Restart &amp; Install" msgid "Restart &amp; Install"
msgstr "Perleisti ir įdiegti" msgstr "Perleisti ir įdiegti"
@ -940,28 +942,48 @@ msgctxt "checkbox"
msgid "Power off after updates are installed" msgid "Power off after updates are installed"
msgstr "Išjungti baigus diegti atnaujinimus" msgstr "Išjungti baigus diegti atnaujinimus"
#: ../js/ui/endSessionDialog.js:338 #: ../js/ui/endSessionDialog.js:137
#| msgctxt "title"
#| msgid "Restart & Install Updates"
msgctxt "title"
msgid "Restart & Install Upgrade"
msgstr "Perleisti ir įdiegti atnaujinimą"
#. Translators: This is the text displayed for system upgrades in the
#. shut down dialog. First %s gets replaced with the distro name and
#. second %s with the distro version to upgrade to
#: ../js/ui/endSessionDialog.js:142
#, javascript-format
msgid ""
"%s %s will be installed after restart. Upgrade installation can take a long "
"time: ensure that you have backed up and that the computer is plugged in."
msgstr ""
"%s %s bus įdiegta po perleidimo. Sistemos atnaujinimas gali ilgai užtrukti: "
"įsitikinkite, kad pasidarėte atsarginę duomenų kopiją, ir kad kompiuteris "
"yra įjungtas į elektros tinklą."
#: ../js/ui/endSessionDialog.js:361
msgid "Running on battery power: please plug in before installing updates." msgid "Running on battery power: please plug in before installing updates."
msgstr "" msgstr ""
"Veikia naudojant baterijos energiją: įjunkite į elektros tinklą prieš " "Veikia naudojant baterijos energiją: įjunkite į elektros tinklą prieš "
"įdiegdami atnaujinimus." "įdiegdami atnaujinimus."
#: ../js/ui/endSessionDialog.js:355 #: ../js/ui/endSessionDialog.js:378
msgid "Some applications are busy or have unsaved work." msgid "Some applications are busy or have unsaved work."
msgstr "Kai kurios programos dirba arba turi neįrašyto darbo." msgstr "Kai kurios programos dirba arba turi neįrašyto darbo."
#: ../js/ui/endSessionDialog.js:362 #: ../js/ui/endSessionDialog.js:385
msgid "Other users are logged in." msgid "Other users are logged in."
msgstr "Yra prisijungusių kitų naudotojų" msgstr "Yra prisijungusių kitų naudotojų"
#. 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:671
#, javascript-format #, javascript-format
msgid "%s (remote)" msgid "%s (remote)"
msgstr "%s (nutolęs)" msgstr "%s (nutolęs)"
#. 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:674
#, javascript-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (komandų eilutė)" msgstr "%s (komandų eilutė)"
@ -975,7 +997,7 @@ msgstr "Įdiegti"
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Parsiųsti ir įdiegti „%s“ iš extensions.gnome.org?" msgstr "Parsiųsti ir įdiegti „%s“ iš extensions.gnome.org?"
#: ../js/ui/keyboard.js:741 ../js/ui/status/keyboard.js:713 #: ../js/ui/keyboard.js:741 ../js/ui/status/keyboard.js:782
msgid "Keyboard" msgid "Keyboard"
msgstr "Klaviatūra" msgstr "Klaviatūra"
@ -1012,7 +1034,7 @@ msgstr "Įjungta"
#. 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:1866
msgid "Disabled" msgid "Disabled"
msgstr "Išjungta" msgstr "Išjungta"
@ -1060,7 +1082,7 @@ msgstr "Medija"
msgid "Undo" msgid "Undo"
msgstr "Atšaukti" msgstr "Atšaukti"
#: ../js/ui/overview.js:117 #: ../js/ui/overview.js:113
msgid "Overview" msgid "Overview"
msgstr "Apžvalga" msgstr "Apžvalga"
@ -1068,7 +1090,7 @@ msgstr "Apžvalga"
#. 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:240
msgid "Type to search…" msgid "Type to search…"
msgstr "Rašykite, ko ieškote…" msgstr "Rašykite, ko ieškote…"
@ -1134,11 +1156,11 @@ msgstr[0] "%d naujas pranešimas"
msgstr[1] "%d nauji pranešimai" msgstr[1] "%d nauji pranešimai"
msgstr[2] "%d naujų pranešimų" msgstr[2] "%d naujų pranešimų"
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:374 #: ../js/ui/screenShield.js:449 ../js/ui/status/system.js:382
msgid "Lock" msgid "Lock"
msgstr "Užrakinti" msgstr "Užrakinti"
#: ../js/ui/screenShield.js:684 #: ../js/ui/screenShield.js:704
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "GNOME aplinkai reikia užrakinti ekraną" msgstr "GNOME aplinkai reikia užrakinti ekraną"
@ -1149,11 +1171,11 @@ msgstr "GNOME aplinkai reikia užrakinti ekraną"
#. #.
#. XXX: another option is to kick the user into the gdm login #. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs #. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271 #: ../js/ui/screenShield.js:825 ../js/ui/screenShield.js:1291
msgid "Unable to lock" msgid "Unable to lock"
msgstr "Nepavyksta užrakinti" msgstr "Nepavyksta užrakinti"
#: ../js/ui/screenShield.js:806 ../js/ui/screenShield.js:1272 #: ../js/ui/screenShield.js:826 ../js/ui/screenShield.js:1292
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Programa užblokavo užrakinimą" msgstr "Programa užblokavo užrakinimą"
@ -1237,7 +1259,7 @@ msgstr "Didelis tekstas"
msgid "Bluetooth" msgid "Bluetooth"
msgstr "Bluetooth" msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:56 #: ../js/ui/status/bluetooth.js:56 ../js/ui/status/network.js:624
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Bluetooth nustatymai" msgstr "Bluetooth nustatymai"
@ -1273,7 +1295,7 @@ msgstr "Išjungti"
msgid "Brightness" msgid "Brightness"
msgstr "Ryškumas" msgstr "Ryškumas"
#: ../js/ui/status/keyboard.js:736 #: ../js/ui/status/keyboard.js:805
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Rodyti klaviatūros išdėstymą" msgstr "Rodyti klaviatūros išdėstymą"
@ -1301,14 +1323,6 @@ msgstr "Vietos nustatymas išjungtas"
msgid "Enable" msgid "Enable"
msgstr "Įjungti" msgstr "Įjungti"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Atmesti prieigą"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Suteikti prieigą"
#. Translators: %s is an application name #. Translators: %s is an application name
#: ../js/ui/status/location.js:435 #: ../js/ui/status/location.js:435
#, javascript-format #, javascript-format
@ -1385,7 +1399,7 @@ msgstr "Nepavyko prisijungti prie %s"
msgid "Wired Settings" msgid "Wired Settings"
msgstr "Laidinio ryšio nustatymai" msgstr "Laidinio ryšio nustatymai"
#: ../js/ui/status/network.js:545 ../js/ui/status/network.js:624 #: ../js/ui/status/network.js:545
msgid "Mobile Broadband Settings" msgid "Mobile Broadband Settings"
msgstr "Mobiliojo plačiajuosčio tinklo nustatymai" msgstr "Mobiliojo plačiajuosčio tinklo nustatymai"
@ -1403,8 +1417,8 @@ msgid "%s Disabled"
msgstr "%s išjungtas" msgstr "%s išjungtas"
#: ../js/ui/status/network.js:632 #: ../js/ui/status/network.js:632
msgid "Use as Internet connection" msgid "Connect to Internet"
msgstr "Naudoti kaip interneto ryšį" msgstr "Prisijungti prie interneto"
#: ../js/ui/status/network.js:813 #: ../js/ui/status/network.js:813
msgid "Airplane Mode is On" msgid "Airplane Mode is On"
@ -1541,27 +1555,27 @@ msgstr "%d%%"
msgid "Airplane Mode On" msgid "Airplane Mode On"
msgstr "Skrydžio veiksena įjungta" msgstr "Skrydžio veiksena įjungta"
#: ../js/ui/status/system.js:343 #: ../js/ui/status/system.js:351
msgid "Switch User" msgid "Switch User"
msgstr "Keisti naudotoją" msgstr "Keisti naudotoją"
#: ../js/ui/status/system.js:348 #: ../js/ui/status/system.js:356
msgid "Log Out" msgid "Log Out"
msgstr "Atsijungti" msgstr "Atsijungti"
#: ../js/ui/status/system.js:353 #: ../js/ui/status/system.js:361
msgid "Account Settings" msgid "Account Settings"
msgstr "Paskyros nustatymai" msgstr "Paskyros nustatymai"
#: ../js/ui/status/system.js:370 #: ../js/ui/status/system.js:378
msgid "Orientation Lock" msgid "Orientation Lock"
msgstr "Padėties užrakinimas" msgstr "Padėties užrakinimas"
#: ../js/ui/status/system.js:378 #: ../js/ui/status/system.js:386
msgid "Suspend" msgid "Suspend"
msgstr "Pristabdyti" msgstr "Pristabdyti"
#: ../js/ui/status/system.js:381 #: ../js/ui/status/system.js:389
msgid "Power Off" msgid "Power Off"
msgstr "Išjungti" msgstr "Išjungti"
@ -1694,7 +1708,7 @@ msgstr "Evolution kalendorius"
#. 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:1873
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1704,7 +1718,7 @@ msgstr[2] "%u išvesčių"
#. 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:1883
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
@ -1712,7 +1726,7 @@ msgstr[0] "%u įvestis"
msgstr[1] "%u įvestys" msgstr[1] "%u įvestys"
msgstr[2] "%u įvesčių" msgstr[2] "%u įvesčių"
#: ../src/gvc/gvc-mixer-control.c:2371 #: ../src/gvc/gvc-mixer-control.c:2738
msgid "System Sounds" msgid "System Sounds"
msgstr "Sistemos garsai" msgstr "Sistemos garsai"
@ -1732,12 +1746,12 @@ msgstr "Naudoti konkrečią veikseną, pvz., „gdm“ prisijungimo ekranui"
msgid "List possible modes" msgid "List possible modes"
msgstr "Išvardinti galimas veiksenas" msgstr "Išvardinti galimas veiksenas"
#: ../src/shell-app.c:246 #: ../src/shell-app.c:270
msgctxt "program" msgctxt "program"
msgid "Unknown" msgid "Unknown"
msgstr "Nežinoma" msgstr "Nežinoma"
#: ../src/shell-app.c:487 #: ../src/shell-app.c:511
#, c-format #, c-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Nepavyko paleisti „%s“" msgstr "Nepavyko paleisti „%s“"
@ -1754,6 +1768,15 @@ msgstr "Slaptažodis negali būti tuščias"
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "Naudotojas užvėrė tapatybės patvirtinimo dialogą" msgstr "Naudotojas užvėrė tapatybės patvirtinimo dialogą"
#~ msgid "Show the week date in the calendar"
#~ msgstr "Rodyti savaitės dienas kalendoriuje"
#~ msgid "If true, display the ISO week date in the calendar."
#~ msgstr "Jeigu reikšmė teigiama, kalendoriuje rodyti ISO savaičių datą."
#~ msgid "Use as Internet connection"
#~ msgstr "Naudoti kaip interneto ryšį"
#~ msgid "%s is requesting access to your location." #~ msgid "%s is requesting access to your location."
#~ msgstr "%s prašo prieigos prie jūsų buvimo vietos." #~ msgstr "%s prašo prieigos prie jūsų buvimo vietos."

@ -11,6 +11,7 @@ msgstr ""
"PO-Revision-Date: 2011-12-08 22:37+0100\n" "PO-Revision-Date: 2011-12-08 22:37+0100\n"
"Last-Translator: Jovan N\n" "Last-Translator: Jovan N\n"
"Language-Team: mk_MK <jovan@lugola.net>\n" "Language-Team: mk_MK <jovan@lugola.net>\n"
"Language: mk\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"

@ -11,7 +11,7 @@ msgstr ""
"PO-Revision-Date: 2014-09-15 19:21+0730\n" "PO-Revision-Date: 2014-09-15 19:21+0730\n"
"Last-Translator: Umarzuki Mochlis Moktar <umar@umarzuki.org>\n" "Last-Translator: Umarzuki Mochlis Moktar <umar@umarzuki.org>\n"
"Language-Team: GNOME Malay Team <gnome-ms@googlegroups.com>\n" "Language-Team: GNOME Malay Team <gnome-ms@googlegroups.com>\n"
"Language: \n" "Language: ms\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"

159
po/nb.po

@ -9,11 +9,11 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell 3.19.x\n" "Project-Id-Version: gnome-shell 3.19.x\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-01-07 22:59+0100\n" "POT-Creation-Date: 2016-05-01 14:12+0200\n"
"PO-Revision-Date: 2016-01-07 22:59+0100\n" "PO-Revision-Date: 2016-05-01 14:21+0200\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: nb\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"
@ -305,33 +305,34 @@ msgstr "Utsett fokusendringer i musmodus til peker slutter å bevege seg"
msgid "Network Login" msgid "Network Login"
msgstr "Nettverkspålogging" msgstr "Nettverkspålogging"
#: ../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 "Det oppsto en feil ved lasting av brukervalgdialog for %s:" msgstr "Det oppsto en feil ved lasting av brukervalgdialog for %s:"
#: ../js/extensionPrefs/main.js:154 #: ../js/extensionPrefs/main.js:149
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "Utvidelser for GNOME Shell" msgstr "Utvidelser for 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 "Avbryt" msgstr "Avbryt"
#: ../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 "Neste" msgstr "Neste"
#: ../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 opp" msgstr "Lås opp"
#: ../js/gdm/authPrompt.js:213 #: ../js/gdm/authPrompt.js:214
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Logg inn" msgstr "Logg inn"
@ -498,16 +499,36 @@ msgstr "Legg til i favoritter"
msgid "Show Details" msgid "Show Details"
msgstr "Vis detaljer" msgstr "Vis detaljer"
#: ../js/ui/appFavorites.js:133 #: ../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 ble lagt til i favoritter." msgstr "%s ble lagt til i favoritter."
#: ../js/ui/appFavorites.js:167 #: ../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 ble fjernet fra favoritter." msgstr "%s ble fjernet fra favoritter."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Velg lydenhet"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "Innstillinger for lyd"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Hodetelefoner"
#: ../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 "Bytt bakgrunn …" msgstr "Bytt bakgrunn …"
@ -516,12 +537,12 @@ msgstr "Bytt bakgrunn …"
msgid "Display Settings" msgid "Display Settings"
msgstr "Innstillinger for skjerm" msgstr "Innstillinger for skjerm"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:371
msgid "Settings" msgid "Settings"
msgstr "Innstillinger" msgstr "Innstillinger"
#. 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"
@ -531,100 +552,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 "Neste måned" msgstr "Neste måned"
#: ../js/ui/calendar.js:729 #: ../js/ui/calendar.js:579
#, no-javascript-format #, no-javascript-format
msgctxt "date day number format" msgctxt "date day number format"
msgid "%d" msgid "%d"
msgstr "%d" msgstr "%d"
#: ../js/ui/calendar.js:784 #: ../js/ui/calendar.js:634
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:1189 #: ../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:1296 #: ../js/ui/calendar.js:821
msgid "Clear section"
msgstr "Tøm seksjon"
#: ../js/ui/calendar.js:1523
msgid "Events" msgid "Events"
msgstr "Hendelser" msgstr "Hendelser"
#: ../js/ui/calendar.js:1532 #: ../js/ui/calendar.js:830
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:1536 #: ../js/ui/calendar.js:834
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:1621 #: ../js/ui/calendar.js:919
msgid "Notifications" msgid "Notifications"
msgstr "Varslinger" msgstr "Varslinger"
#: ../js/ui/calendar.js:1772 #: ../js/ui/calendar.js:1070
msgid "No Notifications" msgid "No Notifications"
msgstr "Ingen varslinger" msgstr "Ingen varslinger"
#: ../js/ui/calendar.js:1775 #: ../js/ui/calendar.js:1073
msgid "No Events" msgid "No Events"
msgstr "Ingen hendelser" msgstr "Ingen hendelser"
@ -762,7 +779,7 @@ msgstr "Beklager, det virket ikke. Prøv igjen."
#. 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 er nå kjent som %s" msgstr "%s er nå kjent som %s"
@ -949,11 +966,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 statusområde" msgstr "Skjul statusområde"
#: ../js/ui/legacyTray.js:107 #: ../js/ui/legacyTray.js:106
msgid "Status Icons" msgid "Status Icons"
msgstr "Statusikoner" msgstr "Statusikoner"
@ -1005,10 +1022,26 @@ msgstr "Vis kildekode"
msgid "Web Page" msgid "Web Page"
msgstr "Nettside" msgstr "Nettside"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Tøm seksjon"
#: ../js/ui/messageTray.js:1486 #: ../js/ui/messageTray.js:1486
msgid "System Information" msgid "System Information"
msgstr "Systeminformasjon" msgstr "Systeminformasjon"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Ukjent artist"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "Ukjent tittel"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Media"
#: ../js/ui/overview.js:84 #: ../js/ui/overview.js:84
msgid "Undo" msgid "Undo"
msgstr "Angre" msgstr "Angre"
@ -1085,7 +1118,7 @@ msgid_plural "%d new notifications"
msgstr[0] "%d ny varsling" msgstr[0] "%d ny varsling"
msgstr[1] "%d nye varslinger" msgstr[1] "%d nye varslinger"
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:374 #: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:379
msgid "Lock" msgid "Lock"
msgstr "Lås" msgstr "Lås"
@ -1227,30 +1260,48 @@ msgstr "Lysstyrke"
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Vis tastaturutforming" msgstr "Vis tastaturutforming"
#: ../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 "Plassering slått på" msgstr "Plassering slått på"
#: ../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å av" msgstr "Slå av"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:109
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "Innstillinger for personvern" msgstr "Innstillinger for personvern"
#: ../js/ui/status/location.js:176 #: ../js/ui/status/location.js:214
msgid "Location In Use" msgid "Location In Use"
msgstr "Plassering i bruk" msgstr "Plassering i bruk"
#: ../js/ui/status/location.js:180 #: ../js/ui/status/location.js:218
msgid "Location Disabled" msgid "Location Disabled"
msgstr "Plassering slått av" msgstr "Plassering slått av"
#: ../js/ui/status/location.js:181 #: ../js/ui/status/location.js:219
msgid "Enable" msgid "Enable"
msgstr "Slå på" msgstr "Slå på"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Nekt tilgang"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Gi tilgang"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Gi %s tilgang til din plassering?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr "Tilgang til plassering kan endres når som helst fra innstillinger for personvern."
#: ../js/ui/status/network.js:101 #: ../js/ui/status/network.js:101
msgid "<unknown>" msgid "<unknown>"
msgstr "<ukjent>" msgstr "<ukjent>"
@ -1473,27 +1524,27 @@ msgstr "%d %%"
msgid "Airplane Mode On" msgid "Airplane Mode On"
msgstr "Flymodus er slått på" msgstr "Flymodus er slått på"
#: ../js/ui/status/system.js:343 #: ../js/ui/status/system.js:348
msgid "Switch User" msgid "Switch User"
msgstr "Bytt bruker" msgstr "Bytt bruker"
#: ../js/ui/status/system.js:348 #: ../js/ui/status/system.js:353
msgid "Log Out" msgid "Log Out"
msgstr "Logg ut" msgstr "Logg ut"
#: ../js/ui/status/system.js:353 #: ../js/ui/status/system.js:358
msgid "Account Settings" msgid "Account Settings"
msgstr "Innstillinger for konto" msgstr "Innstillinger for konto"
#: ../js/ui/status/system.js:370 #: ../js/ui/status/system.js:375
msgid "Orientation Lock" msgid "Orientation Lock"
msgstr "Lås for orientering" msgstr "Lås for orientering"
#: ../js/ui/status/system.js:378 #: ../js/ui/status/system.js:383
msgid "Suspend" msgid "Suspend"
msgstr "Hvilemodus" msgstr "Hvilemodus"
#: ../js/ui/status/system.js:381 #: ../js/ui/status/system.js:386
msgid "Power Off" msgid "Power Off"
msgstr "Slå av" msgstr "Slå av"
@ -1505,10 +1556,6 @@ msgstr "Volum endret"
msgid "Volume" msgid "Volume"
msgstr "Volum" msgstr "Volum"
#: ../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 "Logg inn som en annen bruker" msgstr "Logg inn som en annen bruker"

374
po/oc.po

File diff suppressed because it is too large Load Diff

894
po/pl.po

File diff suppressed because it is too large Load Diff

325
po/pt.po

@ -4,24 +4,26 @@
# Duarte Loreto <happyguy_pt@hotmail.com>, 2010, 2011, 2012, 2013, 2014. # Duarte Loreto <happyguy_pt@hotmail.com>, 2010, 2011, 2012, 2013, 2014.
# Rui Gouveia <rui.gouveia@gmail.com>, 2011. # Rui Gouveia <rui.gouveia@gmail.com>, 2011.
# António Lima <amrlima@gmail.com>, 2013. # António Lima <amrlima@gmail.com>, 2013.
# Tiago S. <almosthumane@portugalmail.pt>, 2014. # Tiago Santos <tiagofsantos81@sapo.pt>, 2014 - 2016.
# Bruno Ramalhete <bram.512@gmail.com>, 2015. # Bruno Ramalhete <bram.512@gmail.com>, 2015.
# Pedro Albuquerque <palbuquerque73@gmail.com>, 2014, 2015. # Pedro Albuquerque <palbuquerque73@gmail.com>, 2014, 2015.
# Sérgio Cardeira <cardeira dot sergio at gmail dot com>, 2016.
#
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 3.14\n" "Project-Id-Version: 3.14\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-11-20 22:14+0000\n" "POT-Creation-Date: 2016-07-20 22:51+0000\n"
"PO-Revision-Date: 2015-11-21 09:02+0100\n" "PO-Revision-Date: 2016-07-27 08:41+0100\n"
"Last-Translator: Pedro Albuquerque <palbuquerque73@gmail.com>\n" "Last-Translator: Tiago Santos <tiagofsantos81@sapo.pt>\n"
"Language-Team: Pedro Albuquerque\n" "Language-Team: Português <>\n"
"Language: pt\n" "Language: pt\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: Poedit 1.8.7.1\n"
"X-Project-Style: gnome\n" "X-Project-Style: gnome\n"
"X-Language: pt_PT\n" "X-Language: pt_PT\n"
"X-Source-Language: C\n" "X-Source-Language: C\n"
@ -135,7 +137,7 @@ msgstr "Índice da vista atualmente selecionada na escolha de aplicações."
msgid "History for command (Alt-F2) dialog" msgid "History for command (Alt-F2) dialog"
msgstr "Histórico do diálogo de comando (Alt-F2)" msgstr "Histórico do diálogo de comando (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://wiki.gnome.org/Projects/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 "Histórico do diálogo de pesquisa" msgstr "Histórico do diálogo de pesquisa"
@ -191,77 +193,69 @@ msgstr ""
"predefinido não tem dispositivos associados a ele." "predefinido não tem dispositivos associados a ele."
#: ../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"
msgstr "Mostrar o número da semana no calendário"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "If true, display the ISO week date in the calendar."
msgstr "Se verdadeiro, mostra o número ISO da semana no calendário."
#: ../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 "Atalho de teclado para abrir o menu de aplicações" msgstr "Atalho de teclado para abrir o menu de aplicações"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "Keybinding to open the application menu." msgid "Keybinding to open the application menu."
msgstr "Atalho de teclado para abrir o menu de aplicações." msgstr "Atalho de teclado para abrir o menu de aplicações."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the \"Show Applications\" view" msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Atalho de teclado para abrir a vista \"Mostrar aplicações\"" msgstr "Atalho de teclado para abrir a vista \"Mostrar aplicações\""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
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 ""
"Atalho de teclado para abrir a vista \"Mostrar aplicações\" da vista geral " "Atalho de teclado para abrir a vista \"Mostrar aplicações\" da vista geral "
"de atividades." "de atividades."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "Atalho de teclado para abrir a vista geral" msgstr "Atalho de teclado para abrir a vista geral"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27 #: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "Atalho de teclado para abrir a vista geral de atividades." msgstr "Atalho de teclado para abrir a vista geral de atividades."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28 #: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to toggle the visibility of the notification list" msgid "Keybinding to toggle the visibility of the notification list"
msgstr "Atalho de teclado para alternar a visibilidade da lista de notificação" msgstr "Atalho de teclado para alternar a visibilidade da lista de notificação"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29 #: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to toggle the visibility of the notification list." msgid "Keybinding to toggle the visibility of the notification list."
msgstr "" msgstr ""
"Atalho de teclado para alternar a visibilidade da lista de notificação." "Atalho de teclado para alternar a visibilidade da lista de notificação."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "Atalho de teclado para focar a notificação ativa" msgstr "Atalho de teclado para focar a notificação ativa"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31 #: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "Atalho de teclado para focar a notificação ativa." msgstr "Atalho de teclado para focar a notificação ativa."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
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 ""
"Atalho de teclado que pausa e retoma todos os tweens em execução, para " "Atalho de teclado que pausa e retoma todos os tweens em execução, para "
"depuração de erros" "depuração de erros"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33 #: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Which keyboard to use" msgid "Which keyboard to use"
msgstr "Que teclado utilizar" msgstr "Que teclado utilizar"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34 #: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "The type of keyboard to use." msgid "The type of keyboard to use."
msgstr "O tipo de teclado a utilizar." msgstr "O tipo de teclado a utilizar."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35 #: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "Limitar troca à área de trabalho atual." msgstr "Limitar troca à área de trabalho atual."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36 #: ../data/org.gnome.shell.gschema.xml.in.in.h:34
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."
@ -269,11 +263,11 @@ msgstr ""
"Se verdadeiro, só as aplicações com janelas na área de trabalho atual são " "Se verdadeiro, só as aplicações com janelas na área de trabalho atual são "
"mostradas para troca. Senão, são incluídas todas as aplicações." "mostradas para troca. Senão, são incluídas todas as aplicações."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "The application icon mode." msgid "The application icon mode."
msgstr "O modo do ícone da aplicação." msgstr "O modo do ícone da aplicação."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:36
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-"
@ -283,7 +277,7 @@ msgstr ""
"válidas são 'thumbnail-only' (mostra uma miniatura da janela), 'app-icon-" "válidas são 'thumbnail-only' (mostra uma miniatura da janela), 'app-icon-"
"only' (mostra só o ícone da aplicação) ou 'both' (ambas)." "only' (mostra só o ícone da aplicação) ou 'both' (ambas)."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39 #: ../data/org.gnome.shell.gschema.xml.in.in.h:37
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."
@ -291,29 +285,29 @@ msgstr ""
"Se verdadeiro, só janelas da área de trabalho atual são apresentadas para " "Se verdadeiro, só janelas da área de trabalho atual são apresentadas para "
"troca. Senão, são incluídas todas as janelas." "troca. Senão, são incluídas todas as janelas."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40 #: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
msgstr "Anexar diálogo modal à janela mãe" msgstr "Anexar diálogo modal à janela mãe"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41 #: ../data/org.gnome.shell.gschema.xml.in.in.h:39
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 ignora a chave em org.gnome.mutter ao executar a interface GNOME." "Esta chave ignora a chave em org.gnome.mutter ao executar a interface GNOME."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42 #: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Ativar anexar nas margens ao largar janelas junto às margens do ecrã" msgstr "Ativar anexar nas margens ao largar janelas junto às margens do ecrã"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43 #: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Áreas de trabalho são geridas dinamicamente" msgstr "Áreas de trabalho são geridas dinamicamente"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44 #: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Áreas de trabalho só no monitor principal" msgstr "Áreas de trabalho só no monitor principal"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45 #: ../data/org.gnome.shell.gschema.xml.in.in.h:43
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 ""
"Atrasar alterações de foco nos modos de rato até que o ponteiro pare de se " "Atrasar alterações de foco nos modos de rato até que o ponteiro pare de se "
@ -323,51 +317,52 @@ msgstr ""
msgid "Network Login" msgid "Network Login"
msgstr "Sessão na rede" msgstr "Sessão na 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 "Ocorreu um erro ao ler o diálogo de preferências de %s:" msgstr "Ocorreu um erro ao ler o diálogo de preferências de %s:"
#: ../js/extensionPrefs/main.js:154 #: ../js/extensionPrefs/main.js:149
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "Extensões da interface do GNOME" msgstr "Extensões da interface do 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/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452 #: ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:483
#: ../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:447 #: ../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 sessão" msgstr "Iniciar sessão"
#: ../js/gdm/loginDialog.js:281 #: ../js/gdm/loginDialog.js:285
msgid "Choose Session" msgid "Choose Session"
msgstr "Escolher sessão" msgstr "Escolher sessão"
#. 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 "Não está listada?" msgstr "Não está listada?"
#. 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 "(por ex., utilizador ou %s)" msgstr "(por ex., utilizador ou %s)"
@ -375,12 +370,12 @@ msgstr "(por ex., utilizador 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: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 "Utilizador: " msgstr "Utilizador: "
#: ../js/gdm/loginDialog.js:1180 #: ../js/gdm/loginDialog.js:1196
msgid "Login Window" msgid "Login Window"
msgstr "Janela de início de sessão" msgstr "Janela de início de sessão"
@ -488,6 +483,16 @@ msgstr "%B %d %Y, %l%M %p"
msgid "Web Authentication Redirect" msgid "Web Authentication Redirect"
msgstr "Autenticação Web redirecionada" msgstr "Autenticação Web redirecionada"
#. No support for non-modal system dialogs, so ignore the option
#. let modal = options['modal'] || true;
#: ../js/ui/accessDialog.js:62 ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Negar acesso"
#: ../js/ui/accessDialog.js:63 ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Conceder acesso"
#: ../js/ui/appDisplay.js:794 #: ../js/ui/appDisplay.js:794
msgid "Frequently used applications will appear here" msgid "Frequently used applications will appear here"
msgstr "As aplicações frequentemente utilizadas aparecem aqui" msgstr "As aplicações frequentemente utilizadas aparecem aqui"
@ -516,16 +521,36 @@ msgstr "Adicionar aos favoritos"
msgid "Show Details" msgid "Show Details"
msgstr "Mostrar detalhes" msgstr "Mostrar detalhes"
#: ../js/ui/appFavorites.js:133 #: ../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 adicionada aos seus favoritos." msgstr "%s foi adicionada aos seus favoritos."
#: ../js/ui/appFavorites.js:167 #: ../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 foi removida dos seus favoritos." msgstr "%s foi removida dos seus favoritos."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Selecione o dispositivo de áudio"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "Definições de som"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Auscultadores"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Auscultadores com microfone"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Microfone"
#: ../js/ui/backgroundMenu.js:19 #: ../js/ui/backgroundMenu.js:19
msgid "Change Background…" msgid "Change Background…"
msgstr "Alterar o fundo…" msgstr "Alterar o fundo…"
@ -534,12 +559,12 @@ msgstr "Alterar o fundo…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Definições de ecrã" msgstr "Definições de ecrã"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:374
msgid "Settings" msgid "Settings"
msgstr "Definições" msgstr "Definições"
#. 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"
@ -549,100 +574,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 "S" msgstr "S"
#. 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 "Q" msgstr "Q"
#. 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 "Q" msgstr "Q"
#. 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 "S" msgstr "S"
#. 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:442
msgid "Previous month" msgid "Previous month"
msgstr "Mês anterior" msgstr "Mês anterior"
#: ../js/ui/calendar.js:576 #: ../js/ui/calendar.js:452
msgid "Next month" msgid "Next month"
msgstr "Mês seguinte" msgstr "Mês seguinte"
#: ../js/ui/calendar.js:728 #: ../js/ui/calendar.js:605
#, javascript-format #, no-javascript-format
msgctxt "date day number format" msgctxt "date day number format"
msgid "%d" msgid "%d"
msgstr "%d" msgstr "%d"
#: ../js/ui/calendar.js:783 #: ../js/ui/calendar.js:660
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:721
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Dia completo" msgstr "Dia completo"
#: ../js/ui/calendar.js:1295 #: ../js/ui/calendar.js:836
msgid "Clear section"
msgstr "Limpar secção"
#: ../js/ui/calendar.js:1522
msgid "Events" msgid "Events"
msgstr "Eventos" msgstr "Eventos"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:845
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:1535 #: ../js/ui/calendar.js:849
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:1620 #: ../js/ui/calendar.js:931
msgid "Notifications" msgid "Notifications"
msgstr "Notificações" msgstr "Notificações"
#: ../js/ui/calendar.js:1771 #: ../js/ui/calendar.js:1082
msgid "No Notifications" msgid "No Notifications"
msgstr "Sem notificações" msgstr "Sem notificações"
#: ../js/ui/calendar.js:1774 #: ../js/ui/calendar.js:1085
msgid "No Events" msgid "No Events"
msgstr "Sem eventos" msgstr "Sem eventos"
@ -780,7 +801,7 @@ msgstr "Desculpe, não resultou. Por favor, tente novamente."
#. 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 é agora conhecido como %s" msgstr "%s é agora conhecido como %s"
@ -899,7 +920,7 @@ msgstr[1] "O sistema reiniciar-se-á automaticamente dentro de %d segundos."
#: ../js/ui/endSessionDialog.js:119 #: ../js/ui/endSessionDialog.js:119
msgctxt "title" msgctxt "title"
msgid "Restart & Install Updates" msgid "Restart & Install Updates"
msgstr "Reiniciar & instalar atualizações" msgstr "Reiniciar e instalar atualizações"
#: ../js/ui/endSessionDialog.js:121 #: ../js/ui/endSessionDialog.js:121
#, javascript-format #, javascript-format
@ -913,7 +934,7 @@ msgstr[1] ""
"O sistema reiniciar-se-á automaticamente e instalar atualizações dentro de " "O sistema reiniciar-se-á automaticamente e instalar atualizações dentro de "
"%d segundos." "%d segundos."
#: ../js/ui/endSessionDialog.js:127 #: ../js/ui/endSessionDialog.js:127 ../js/ui/endSessionDialog.js:147
msgctxt "button" msgctxt "button"
msgid "Restart &amp; Install" msgid "Restart &amp; Install"
msgstr "Reiniciar &amp; Instalar" msgstr "Reiniciar &amp; Instalar"
@ -928,28 +949,46 @@ msgctxt "checkbox"
msgid "Power off after updates are installed" msgid "Power off after updates are installed"
msgstr "Desligar depois das atualizações serem instaladas" msgstr "Desligar depois das atualizações serem instaladas"
#: ../js/ui/endSessionDialog.js:338 #: ../js/ui/endSessionDialog.js:137
msgctxt "title"
msgid "Restart & Install Upgrade"
msgstr "Reiniciar e instalar novas versões"
#. Translators: This is the text displayed for system upgrades in the
#. shut down dialog. First %s gets replaced with the distro name and
#. second %s with the distro version to upgrade to
#: ../js/ui/endSessionDialog.js:142
#, javascript-format
msgid ""
"%s %s will be installed after restart. Upgrade installation can take a long "
"time: ensure that you have backed up and that the computer is plugged in."
msgstr ""
"%s %s será instalado após o reiniciar. Atualizar instalação pode demorar "
"muito tempo: assegure-se que criou cópias de segurança e que o seu "
"computador está ligado à corrente."
#: ../js/ui/endSessionDialog.js:361
msgid "Running on battery power: please plug in before installing updates." msgid "Running on battery power: please plug in before installing updates."
msgstr "" msgstr ""
"A funcionar com bateria: por favor, ligue à corrente antes de instalar " "A funcionar com bateria: por favor, ligue à corrente antes de instalar "
"atualizações." "atualizações."
#: ../js/ui/endSessionDialog.js:355 #: ../js/ui/endSessionDialog.js:378
msgid "Some applications are busy or have unsaved work." msgid "Some applications are busy or have unsaved work."
msgstr "Algumas aplicações estão ocupadas ou têm trabalho não gravado." msgstr "Algumas aplicações estão ocupadas ou têm trabalho não gravado."
#: ../js/ui/endSessionDialog.js:362 #: ../js/ui/endSessionDialog.js:385
msgid "Other users are logged in." msgid "Other users are logged in."
msgstr "Existem outros utilizadores com sessões ativas." msgstr "Existem outros utilizadores com sessões ativas."
#. 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:671
#, javascript-format #, javascript-format
msgid "%s (remote)" msgid "%s (remote)"
msgstr "%s (remoto)" msgstr "%s (remoto)"
#. 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:674
#, javascript-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (consola)" msgstr "%s (consola)"
@ -963,16 +1002,16 @@ msgstr "Instalar"
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Transferir e instalar \"%s\" de extensions.gnome.org?" msgstr "Transferir e instalar \"%s\" de extensions.gnome.org?"
#: ../js/ui/keyboard.js:741 ../js/ui/status/keyboard.js:713 #: ../js/ui/keyboard.js:741 ../js/ui/status/keyboard.js:782
msgid "Keyboard" 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 tabuleiro" msgstr "Ocultar tabuleiro"
#: ../js/ui/legacyTray.js:107 #: ../js/ui/legacyTray.js:106
msgid "Status Icons" msgid "Status Icons"
msgstr "Ícones de estado" msgstr "Ícones de estado"
@ -1000,7 +1039,7 @@ msgstr "Ativo"
#. 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:1866
msgid "Disabled" msgid "Disabled"
msgstr "Inativo" msgstr "Inativo"
@ -1024,15 +1063,31 @@ msgstr "Ver fonte"
msgid "Web Page" msgid "Web Page"
msgstr "Página Web" msgstr "Página Web"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Limpar secção"
#: ../js/ui/messageTray.js:1486 #: ../js/ui/messageTray.js:1486
msgid "System Information" msgid "System Information"
msgstr "Informação do sistema" msgstr "Informação do sistema"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Artista desconhecido"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "Titulo desconhecido"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Média"
#: ../js/ui/overview.js:84 #: ../js/ui/overview.js:84
msgid "Undo" msgid "Undo"
msgstr "Desfazer" msgstr "Desfazer"
#: ../js/ui/overview.js:117 #: ../js/ui/overview.js:113
msgid "Overview" msgid "Overview"
msgstr "Visão geral" msgstr "Visão geral"
@ -1040,7 +1095,7 @@ msgstr "Visão geral"
#. 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:240
msgid "Type to search…" msgid "Type to search…"
msgstr "Escreva para procurar…" msgstr "Escreva para procurar…"
@ -1104,11 +1159,11 @@ msgid_plural "%d new notifications"
msgstr[0] "%d nova notificação" msgstr[0] "%d nova notificação"
msgstr[1] "%d novas notificações" msgstr[1] "%d novas notificações"
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:374 #: ../js/ui/screenShield.js:449 ../js/ui/status/system.js:382
msgid "Lock" msgid "Lock"
msgstr "Bloquear" msgstr "Bloquear"
#: ../js/ui/screenShield.js:684 #: ../js/ui/screenShield.js:704
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "O GNOME precisa de bloquear o ecrã" msgstr "O GNOME precisa de bloquear o ecrã"
@ -1119,11 +1174,11 @@ msgstr "O GNOME precisa de bloquear o ecrã"
#. #.
#. XXX: another option is to kick the user into the gdm login #. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs #. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271 #: ../js/ui/screenShield.js:825 ../js/ui/screenShield.js:1291
msgid "Unable to lock" msgid "Unable to lock"
msgstr "Impossível bloquear" msgstr "Impossível bloquear"
#: ../js/ui/screenShield.js:806 ../js/ui/screenShield.js:1272 #: ../js/ui/screenShield.js:826 ../js/ui/screenShield.js:1292
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Bloquear foi bloqueado por uma aplicação" msgstr "Bloquear foi bloqueado por uma aplicação"
@ -1207,7 +1262,7 @@ msgstr "Texto grande"
msgid "Bluetooth" msgid "Bluetooth"
msgstr "Bluetooth" msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:56 #: ../js/ui/status/bluetooth.js:56 ../js/ui/status/network.js:624
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Definições Bluetooth" msgstr "Definições Bluetooth"
@ -1242,34 +1297,46 @@ msgstr "Desligar"
msgid "Brightness" msgid "Brightness"
msgstr "Luminosidade" msgstr "Luminosidade"
#: ../js/ui/status/keyboard.js:736 #: ../js/ui/status/keyboard.js:805
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Mostrar a disposição de teclado" msgstr "Mostrar a disposição de 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 "Localização ativada" msgstr "Localização ativada"
#: ../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 "Desativar" msgstr "Desativar"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:109
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "Definições de privacidade" msgstr "Definições de privacidade"
#: ../js/ui/status/location.js:176 #: ../js/ui/status/location.js:214
msgid "Location In Use" msgid "Location In Use"
msgstr "Localização em uso" msgstr "Localização em uso"
#: ../js/ui/status/location.js:180 #: ../js/ui/status/location.js:218
msgid "Location Disabled" msgid "Location Disabled"
msgstr "Localização desativada" msgstr "Localização desativada"
#: ../js/ui/status/location.js:181 #: ../js/ui/status/location.js:219
msgid "Enable" msgid "Enable"
msgstr "Ativar" msgstr "Ativar"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Dar a %s permissão para usar a localização?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"Acesso à localização pode ser alterado a qualquer altura a partir das "
"definições de privacidade."
#: ../js/ui/status/network.js:101 #: ../js/ui/status/network.js:101
msgid "<unknown>" msgid "<unknown>"
msgstr "<desconhecido>" msgstr "<desconhecido>"
@ -1336,7 +1403,7 @@ msgstr "Falha na ligação a %s"
msgid "Wired Settings" msgid "Wired Settings"
msgstr "Definições de ligação com fios" msgstr "Definições de ligação com fios"
#: ../js/ui/status/network.js:545 ../js/ui/status/network.js:624 #: ../js/ui/status/network.js:545
msgid "Mobile Broadband Settings" msgid "Mobile Broadband Settings"
msgstr "Definições da banda larga móvel" msgstr "Definições da banda larga móvel"
@ -1354,8 +1421,8 @@ msgid "%s Disabled"
msgstr "%s desativado" msgstr "%s desativado"
#: ../js/ui/status/network.js:632 #: ../js/ui/status/network.js:632
msgid "Use as Internet connection" msgid "Connect to Internet"
msgstr "Utilizar como ligação à Internet" msgstr "Ligar à Internet"
#: ../js/ui/status/network.js:813 #: ../js/ui/status/network.js:813
msgid "Airplane Mode is On" msgid "Airplane Mode is On"
@ -1492,27 +1559,27 @@ msgstr "%d %%"
msgid "Airplane Mode On" msgid "Airplane Mode On"
msgstr "Modo Avião ligado" msgstr "Modo Avião ligado"
#: ../js/ui/status/system.js:343 #: ../js/ui/status/system.js:351
msgid "Switch User" msgid "Switch User"
msgstr "Alternar utilizador" msgstr "Alternar utilizador"
#: ../js/ui/status/system.js:348 #: ../js/ui/status/system.js:356
msgid "Log Out" msgid "Log Out"
msgstr "Terminar sessão" msgstr "Terminar sessão"
#: ../js/ui/status/system.js:353 #: ../js/ui/status/system.js:361
msgid "Account Settings" msgid "Account Settings"
msgstr "Definições de conta" msgstr "Definições de conta"
#: ../js/ui/status/system.js:370 #: ../js/ui/status/system.js:378
msgid "Orientation Lock" msgid "Orientation Lock"
msgstr "Orientação de bloqueio" msgstr "Orientação de bloqueio"
#: ../js/ui/status/system.js:378 #: ../js/ui/status/system.js:386
msgid "Suspend" msgid "Suspend"
msgstr "Suspender" msgstr "Suspender"
#: ../js/ui/status/system.js:381 #: ../js/ui/status/system.js:389
msgid "Power Off" msgid "Power Off"
msgstr "Desligar" msgstr "Desligar"
@ -1524,10 +1591,6 @@ msgstr "Volume alterado"
msgid "Volume" msgid "Volume"
msgstr "Volume" msgstr "Volume"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Microfone"
#: ../js/ui/unlockDialog.js:67 #: ../js/ui/unlockDialog.js:67
msgid "Log in as another user" msgid "Log in as another user"
msgstr "Iniciar sessão como outro utilizador" msgstr "Iniciar sessão como outro utilizador"
@ -1648,7 +1711,7 @@ msgstr "Calendário do 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:1835 #: ../src/gvc/gvc-mixer-control.c:1873
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1657,14 +1720,14 @@ 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:1845 #: ../src/gvc/gvc-mixer-control.c:1883
#, 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:2371 #: ../src/gvc/gvc-mixer-control.c:2738
msgid "System Sounds" msgid "System Sounds"
msgstr "Sons de sistema" msgstr "Sons de sistema"
@ -1685,12 +1748,12 @@ msgstr ""
msgid "List possible modes" msgid "List possible modes"
msgstr "Listar modos possíveis" msgstr "Listar modos possíveis"
#: ../src/shell-app.c:246 #: ../src/shell-app.c:270
msgctxt "program" msgctxt "program"
msgid "Unknown" msgid "Unknown"
msgstr "Desconhecida" msgstr "Desconhecida"
#: ../src/shell-app.c:487 #: ../src/shell-app.c:511
#, c-format #, c-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Falha ao iniciar “%s”" msgstr "Falha ao iniciar “%s”"
@ -1707,6 +1770,18 @@ msgstr "A senha não pode estar vazia"
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "O diálogo de autenticação foi fechado pelo utilizador" msgstr "O diálogo de autenticação foi fechado pelo utilizador"
#~ msgid "Show the week date in the calendar"
#~ msgstr "Mostrar o número da semana no calendário"
#~ msgid "If true, display the ISO week date in the calendar."
#~ msgstr "Se verdadeiro, mostra o número ISO da semana no calendário."
#~ msgid "Use as Internet connection"
#~ msgstr "Utilizar como ligação à Internet"
#~ msgid "%s is requesting access to your location."
#~ msgstr "%s está a pedir acesso à sua localização."
#~ msgid "GNOME Shell (wayland compositor)" #~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "Interface GNOME (compositor wayland)" #~ msgstr "Interface GNOME (compositor wayland)"
@ -1923,9 +1998,6 @@ msgstr "O diálogo de autenticação foi fechado pelo utilizador"
#~ msgid "View account" #~ msgid "View account"
#~ msgstr "Visualizar a conta" #~ msgstr "Visualizar a conta"
#~ msgid "Unknown reason"
#~ msgstr "Motivo desconhecido"
#~ msgid "Open Calendar" #~ msgid "Open Calendar"
#~ msgstr "Abrir o Calendário" #~ msgstr "Abrir o Calendário"
@ -2031,9 +2103,6 @@ msgstr "O diálogo de autenticação foi fechado pelo utilizador"
#~ msgid "Device %s wants access to the service '%s'" #~ msgid "Device %s wants access to the service '%s'"
#~ msgstr "O dispositivo %s deseja aceder ao serviço '%s'" #~ msgstr "O dispositivo %s deseja aceder ao serviço '%s'"
#~ msgid "Always grant access"
#~ msgstr "Conceder sempre o acesso"
#~ msgid "Grant this time only" #~ msgid "Grant this time only"
#~ msgstr "Conceder apenas desta vez" #~ msgstr "Conceder apenas desta vez"

File diff suppressed because it is too large Load Diff

841
po/sk.po

File diff suppressed because it is too large Load Diff

827
po/sl.po

File diff suppressed because it is too large Load Diff

836
po/sr.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

201
po/tr.po

@ -14,16 +14,16 @@ msgstr ""
"Project-Id-Version: gnome-shell\n" "Project-Id-Version: gnome-shell\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: 2016-03-19 10:22+0000\n" "POT-Creation-Date: 2016-07-20 22:51+0000\n"
"PO-Revision-Date: 2016-03-19 20:56+0200\n" "PO-Revision-Date: 2016-08-16 07:01+0300\n"
"Last-Translator: Muhammet Kara <muhammetk@gmail.com>\n" "Last-Translator: Muhammet Kara <muhammetk@gmail.com>\n"
"Language-Team: Turkish <gnome-turk@gnome.org>\n" "Language-Team: Türkçe <gnome-turk@gnome.org>\n"
"Language: tr\n" "Language: tr\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=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Gtranslator 2.91.6\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
@ -134,7 +134,7 @@ msgstr "Uygulama seçicide şu anda seçili olan görünümün dizini."
msgid "History for command (Alt-F2) dialog" msgid "History for command (Alt-F2) dialog"
msgstr "Komut kutucuğu (Alt-F2) geçmişi" msgstr "Komut kutucuğu (Alt-F2) geçmişi"
#. 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://wiki.gnome.org/Projects/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 "Ayna iletişim penceresinin geçmişi" msgstr "Ayna iletişim penceresinin geçmişi"
@ -189,76 +189,68 @@ msgstr ""
"olmadığı görülecek olursa bu durum sıfırlanacaktır." "olmadığı görülecek olursa bu durum sıfırlanacaktır."
#: ../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"
msgstr "Hafta tarihini takvimde göster"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "If true, display the ISO week date in the calendar."
msgstr "Doğru ise ISO hafta tarihini takvimde göster."
#: ../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 "Uygulama menüsünü açmak için klavye kısayolu" msgstr "Uygulama menüsünü açmak için klavye kısayolu"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "Keybinding to open the application menu." msgid "Keybinding to open the application menu."
msgstr "Uygulama menüsünü açmak için klavye kısayolu." msgstr "Uygulama menüsünü açmak için klavye kısayolu."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the \"Show Applications\" view" msgid "Keybinding to open the \"Show Applications\" view"
msgstr "\"Uygulamaları Göster\" görünümünü açmak için klavye kısayolu" msgstr "\"Uygulamaları Göster\" görünümünü açmak için klavye kısayolu"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
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 ""
"Etkinlikler Genel Görünümünün \"Uygulamaları Göster\" görünümünü açmak için " "Etkinlikler Genel Görünümünün \"Uygulamaları Göster\" görünümünü açmak için "
"klavye kısayolu." "klavye kısayolu."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "Genel görünümü açmak için klavye kısayolu" msgstr "Genel görünümü açmak için klavye kısayolu"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27 #: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "Etkinlikler Genel Görünümünü açmak için klavye kısayolu" msgstr "Etkinlikler Genel Görünümünü açmak için klavye kısayolu"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28 #: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to toggle the visibility of the notification list" msgid "Keybinding to toggle the visibility of the notification list"
msgstr "Bildirim listesinin görünürlüğünü değiştirmek için klavye kısayolu" msgstr "Bildirim listesinin görünürlüğünü değiştirmek için klavye kısayolu"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29 #: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to toggle the visibility of the notification list." msgid "Keybinding to toggle the visibility of the notification list."
msgstr "Bildirim listesinin görünürlüğünü değiştirmek için klavye kısayolu." msgstr "Bildirim listesinin görünürlüğünü değiştirmek için klavye kısayolu."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "Etkin bildirime odaklanmak için klavye kısayolu" msgstr "Etkin bildirime odaklanmak için klavye kısayolu"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31 #: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "Etkin bildirime odaklanmak için klavye kısayolu." msgstr "Etkin bildirime odaklanmak için klavye kısayolu."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
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 ""
"Hata ayıklama amacıyla, çalışmakta olan tüm ara çerçeveleri duraklatan ve " "Hata ayıklama amacıyla, çalışmakta olan tüm ara çerçeveleri duraklatan ve "
"devam ettiren tuş bağı." "devam ettiren tuş bağı."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33 #: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Which keyboard to use" msgid "Which keyboard to use"
msgstr "Hangi klavyenin kullanılacağı" msgstr "Hangi klavyenin kullanılacağı"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34 #: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "The type of keyboard to use." msgid "The type of keyboard to use."
msgstr "Kullanılacak klavye türü." msgstr "Kullanılacak klavye türü."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35 #: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "Geçiş menüsünü geçerli çalışma alanıyla sınırla." msgstr "Geçiş menüsünü geçerli çalışma alanıyla sınırla."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36 #: ../data/org.gnome.shell.gschema.xml.in.in.h:34
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."
@ -267,11 +259,11 @@ msgstr ""
"uygulamalar geçiş menüsünde gösterilir. Aksi halde, tüm uygulamalar " "uygulamalar geçiş menüsünde gösterilir. Aksi halde, tüm uygulamalar "
"görünecektir." "görünecektir."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "The application icon mode." msgid "The application icon mode."
msgstr "Uygulama simge kipi." msgstr "Uygulama simge kipi."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:36
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-"
@ -282,7 +274,7 @@ msgstr ""
"icon-only' (sadece uygulama simgesini gösterir) ya da 'both' (her ikisi) " "icon-only' (sadece uygulama simgesini gösterir) ya da 'both' (her ikisi) "
"değerleridir." "değerleridir."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39 #: ../data/org.gnome.shell.gschema.xml.in.in.h:37
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."
@ -290,31 +282,31 @@ msgstr ""
"Eğer bu seçenek etkinse, sadece geçerli çalışma alanındaki pencereler geçiş " "Eğer bu seçenek etkinse, sadece geçerli çalışma alanındaki pencereler geçiş "
"menüsünde gösterilir. Aksi halde, tüm pencereler görünecektir." "menüsünde gösterilir. Aksi halde, tüm pencereler görünecektir."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40 #: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
msgstr "Yardımcı iletişim penceresini üst pencereye iliştir" msgstr "Yardımcı iletişim penceresini üst pencereye iliştir"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41 #: ../data/org.gnome.shell.gschema.xml.in.in.h:39
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 ""
"Bu anahtar, GNOME Shell çalışırken org.gnome.mutter içindeki anahtarı " "Bu anahtar, GNOME Shell çalışırken org.gnome.mutter içindeki anahtarı "
"geçersiz kılar." "geçersiz kılar."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42 #: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "" msgstr ""
"Pencereler ekran kenarlarında bırakıldığında kenar döşemeyi etkinleştir." "Pencereler ekran kenarlarında bırakıldığında kenar döşemeyi etkinleştir."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43 #: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Çalışma alanları dinamik olarak yönetilir" msgstr "Çalışma alanları dinamik olarak yönetilir"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44 #: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Çalışma alanları sadece birincil ekranda" msgstr "Çalışma alanları sadece birincil ekranda"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45 #: ../data/org.gnome.shell.gschema.xml.in.in.h:43
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 ""
"Fare kipinde odak değişikliklerini işaretçi hareketi durana kadar beklet" "Fare kipinde odak değişikliklerini işaretçi hareketi durana kadar beklet"
@ -334,7 +326,7 @@ msgstr "GNOME Kabuğu Uzantıları"
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71 #: ../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:483
#: ../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"
@ -489,6 +481,16 @@ msgstr "%d %B %Y, %l%M %p"
msgid "Web Authentication Redirect" msgid "Web Authentication Redirect"
msgstr "Web Kimlik Doğrulama Yönlendirmesi" msgstr "Web Kimlik Doğrulama Yönlendirmesi"
#. No support for non-modal system dialogs, so ignore the option
#. let modal = options['modal'] || true;
#: ../js/ui/accessDialog.js:62 ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Erişimi Reddet"
#: ../js/ui/accessDialog.js:63 ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Erişime İzin Ver"
#: ../js/ui/appDisplay.js:794 #: ../js/ui/appDisplay.js:794
msgid "Frequently used applications will appear here" msgid "Frequently used applications will appear here"
msgstr "Sık kullanılan uygulamalar burada yer alacak" msgstr "Sık kullanılan uygulamalar burada yer alacak"
@ -532,7 +534,6 @@ msgid "Select Audio Device"
msgstr "Ses Aygıtı Seç" msgstr "Ses Aygıtı Seç"
#: ../js/ui/audioDeviceSelection.js:69 #: ../js/ui/audioDeviceSelection.js:69
#| msgid "Account Settings"
msgid "Sound Settings" msgid "Sound Settings"
msgstr "Ses Ayarları" msgstr "Ses Ayarları"
@ -556,7 +557,7 @@ msgstr "Arkaplanı Değiştir…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Görüntü Ayarları" msgstr "Görüntü Ayarları"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:374
msgid "Settings" msgid "Settings"
msgstr "Ayarlar" msgstr "Ayarlar"
@ -612,55 +613,55 @@ msgctxt "grid saturday"
msgid "S" msgid "S"
msgstr "C" msgstr "C"
#: ../js/ui/calendar.js:416 #: ../js/ui/calendar.js:442
msgid "Previous month" msgid "Previous month"
msgstr "Önceki ay" msgstr "Önceki ay"
#: ../js/ui/calendar.js:426 #: ../js/ui/calendar.js:452
msgid "Next month" msgid "Next month"
msgstr "Gelecek ay" msgstr "Gelecek ay"
#: ../js/ui/calendar.js:579 #: ../js/ui/calendar.js:605
#, no-javascript-format #, no-javascript-format
msgctxt "date day number format" msgctxt "date day number format"
msgid "%d" msgid "%d"
msgstr "%d" msgstr "%d"
#: ../js/ui/calendar.js:634 #: ../js/ui/calendar.js:660
msgid "Week %V" msgid "Week %V"
msgstr "%V. Hafta" msgstr "%V. Hafta"
#. 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:721
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Tüm Gün" msgstr "Tüm Gün"
#: ../js/ui/calendar.js:821 #: ../js/ui/calendar.js:836
msgid "Events" msgid "Events"
msgstr "Olaylar" msgstr "Olaylar"
#: ../js/ui/calendar.js:830 #: ../js/ui/calendar.js:845
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:834 #: ../js/ui/calendar.js:849
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:919 #: ../js/ui/calendar.js:931
msgid "Notifications" msgid "Notifications"
msgstr "Bildirimler" msgstr "Bildirimler"
#: ../js/ui/calendar.js:1070 #: ../js/ui/calendar.js:1082
msgid "No Notifications" msgid "No Notifications"
msgstr "Bildirim Yok" msgstr "Bildirim Yok"
#: ../js/ui/calendar.js:1073 #: ../js/ui/calendar.js:1085
msgid "No Events" msgid "No Events"
msgstr "Olay Yok" msgstr "Olay Yok"
@ -924,7 +925,7 @@ msgstr[0] ""
"Sistem %d saniye içinde kendiliğinden yeniden başlayacak ve " "Sistem %d saniye içinde kendiliğinden yeniden başlayacak ve "
"güncelleştirmeleri kuracak." "güncelleştirmeleri kuracak."
#: ../js/ui/endSessionDialog.js:127 #: ../js/ui/endSessionDialog.js:127 ../js/ui/endSessionDialog.js:147
msgctxt "button" msgctxt "button"
msgid "Restart &amp; Install" msgid "Restart &amp; Install"
msgstr "Yeniden Başlat ve Kur" msgstr "Yeniden Başlat ve Kur"
@ -939,27 +940,47 @@ msgctxt "checkbox"
msgid "Power off after updates are installed" msgid "Power off after updates are installed"
msgstr "Güncelleştirmeler kurulduktan sonra kapat" msgstr "Güncelleştirmeler kurulduktan sonra kapat"
#: ../js/ui/endSessionDialog.js:338 #: ../js/ui/endSessionDialog.js:137
#| msgctxt "title"
#| msgid "Restart & Install Updates"
msgctxt "title"
msgid "Restart & Install Upgrade"
msgstr "Yeniden Başlat ve Yükseltmeyi Kur"
#. Translators: This is the text displayed for system upgrades in the
#. shut down dialog. First %s gets replaced with the distro name and
#. second %s with the distro version to upgrade to
#: ../js/ui/endSessionDialog.js:142
#, javascript-format
msgid ""
"%s %s will be installed after restart. Upgrade installation can take a long "
"time: ensure that you have backed up and that the computer is plugged in."
msgstr ""
"Bilgisayarınız yeniden başladıktan sonra %s %s kurulacak. Yükseltme kurulumu "
"uzun sürebilir: verilerinizi yedeklediğinizden ve bilgisayarınızın prize "
"takılı olduğundan emin olun."
#: ../js/ui/endSessionDialog.js:361
msgid "Running on battery power: please plug in before installing updates." msgid "Running on battery power: please plug in before installing updates."
msgstr "" msgstr ""
"Pil gücünde çalışıyor: Lütfen güncelleştirmeleri kurmadan önce fişi takın." "Pil gücünde çalışıyor: Lütfen güncelleştirmeleri kurmadan önce fişi takın."
#: ../js/ui/endSessionDialog.js:355 #: ../js/ui/endSessionDialog.js:378
msgid "Some applications are busy or have unsaved work." msgid "Some applications are busy or have unsaved work."
msgstr "Bazı uygulamalar meşgul ya da kaydedilmemiş verilere sahip." msgstr "Bazı uygulamalar meşgul ya da kaydedilmemiş verilere sahip."
#: ../js/ui/endSessionDialog.js:362 #: ../js/ui/endSessionDialog.js:385
msgid "Other users are logged in." msgid "Other users are logged in."
msgstr "Diğer kullanıcılar oturum açmış" msgstr "Diğer kullanıcılar oturum açmış"
#. 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:671
#, javascript-format #, javascript-format
msgid "%s (remote)" msgid "%s (remote)"
msgstr "%s (uzak)" msgstr "%s (uzak)"
#. 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:674
#, javascript-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (uçbirim)" msgstr "%s (uçbirim)"
@ -973,7 +994,7 @@ msgstr "Kur"
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "extensions.gnome.org adresinden “%s” indirilip kurulsun mu?" msgstr "extensions.gnome.org adresinden “%s” indirilip kurulsun mu?"
#: ../js/ui/keyboard.js:741 ../js/ui/status/keyboard.js:713 #: ../js/ui/keyboard.js:741 ../js/ui/status/keyboard.js:782
msgid "Keyboard" msgid "Keyboard"
msgstr "Klavye" msgstr "Klavye"
@ -1010,7 +1031,7 @@ msgstr "Etkin"
#. 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:1866
msgid "Disabled" msgid "Disabled"
msgstr "Devre dışı" msgstr "Devre dışı"
@ -1043,13 +1064,10 @@ msgid "System Information"
msgstr "Sistem Bilgisi" msgstr "Sistem Bilgisi"
#: ../js/ui/mpris.js:194 #: ../js/ui/mpris.js:194
#| msgid "Unknown reason"
msgid "Unknown artist" msgid "Unknown artist"
msgstr "Bilinmeyen sanatçı" msgstr "Bilinmeyen sanatçı"
#: ../js/ui/mpris.js:195 #: ../js/ui/mpris.js:195
#| msgctxt "program"
#| msgid "Unknown"
msgid "Unknown title" msgid "Unknown title"
msgstr "Bilinmeyen başlık" msgstr "Bilinmeyen başlık"
@ -1061,7 +1079,7 @@ msgstr "Ortam"
msgid "Undo" msgid "Undo"
msgstr "Geri Al" msgstr "Geri Al"
#: ../js/ui/overview.js:117 #: ../js/ui/overview.js:113
msgid "Overview" msgid "Overview"
msgstr "Genel Görünüm" msgstr "Genel Görünüm"
@ -1069,7 +1087,7 @@ msgstr "Genel Görünüm"
#. 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:240
msgid "Type to search…" msgid "Type to search…"
msgstr "Aramak için buraya yazın..." msgstr "Aramak için buraya yazın..."
@ -1131,11 +1149,11 @@ msgid "%d new notification"
msgid_plural "%d new notifications" msgid_plural "%d new notifications"
msgstr[0] "%d yeni bildirim" msgstr[0] "%d yeni bildirim"
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:374 #: ../js/ui/screenShield.js:449 ../js/ui/status/system.js:382
msgid "Lock" msgid "Lock"
msgstr "Kilitle" msgstr "Kilitle"
#: ../js/ui/screenShield.js:684 #: ../js/ui/screenShield.js:704
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "GNOME'un ekranı kilitlemesi gerekiyor" msgstr "GNOME'un ekranı kilitlemesi gerekiyor"
@ -1146,11 +1164,11 @@ msgstr "GNOME'un ekranı kilitlemesi gerekiyor"
#. #.
#. XXX: another option is to kick the user into the gdm login #. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs #. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271 #: ../js/ui/screenShield.js:825 ../js/ui/screenShield.js:1291
msgid "Unable to lock" msgid "Unable to lock"
msgstr "Kilitlenemedi" msgstr "Kilitlenemedi"
#: ../js/ui/screenShield.js:806 ../js/ui/screenShield.js:1272 #: ../js/ui/screenShield.js:826 ../js/ui/screenShield.js:1292
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Kilitleme bir uygulama tarafından engellendi" msgstr "Kilitleme bir uygulama tarafından engellendi"
@ -1234,7 +1252,7 @@ msgstr "Büyük Yazı"
msgid "Bluetooth" msgid "Bluetooth"
msgstr "Bluetooth" msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:56 #: ../js/ui/status/bluetooth.js:56 ../js/ui/status/network.js:624
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Bluetooth Ayarları" msgstr "Bluetooth Ayarları"
@ -1268,7 +1286,7 @@ msgstr "Kapat"
msgid "Brightness" msgid "Brightness"
msgstr "Parlaklık" msgstr "Parlaklık"
#: ../js/ui/status/keyboard.js:736 #: ../js/ui/status/keyboard.js:805
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Klavye Düzenini Göster" msgstr "Klavye Düzenini Göster"
@ -1296,14 +1314,6 @@ msgstr "Konum Devre Dışı"
msgid "Enable" msgid "Enable"
msgstr "Etkinleştir" msgstr "Etkinleştir"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Erişimi Reddet"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Erişime İzin Ver"
#. Translators: %s is an application name #. Translators: %s is an application name
#: ../js/ui/status/location.js:435 #: ../js/ui/status/location.js:435
#, javascript-format #, javascript-format
@ -1380,7 +1390,7 @@ msgstr "%s Bağlantısı Başarısız Oldu"
msgid "Wired Settings" msgid "Wired Settings"
msgstr "Kablolu Ağ Ayarları" msgstr "Kablolu Ağ Ayarları"
#: ../js/ui/status/network.js:545 ../js/ui/status/network.js:624 #: ../js/ui/status/network.js:545
msgid "Mobile Broadband Settings" msgid "Mobile Broadband Settings"
msgstr "Mobil Geniş Bant Ayarları" msgstr "Mobil Geniş Bant Ayarları"
@ -1398,8 +1408,8 @@ msgid "%s Disabled"
msgstr "%s Devre Dışı" msgstr "%s Devre Dışı"
#: ../js/ui/status/network.js:632 #: ../js/ui/status/network.js:632
msgid "Use as Internet connection" msgid "Connect to Internet"
msgstr "İnternet bağlantısı olarak kullan" msgstr "İnternet'e Bağlan"
#: ../js/ui/status/network.js:813 #: ../js/ui/status/network.js:813
msgid "Airplane Mode is On" msgid "Airplane Mode is On"
@ -1536,27 +1546,27 @@ msgstr "%% %d"
msgid "Airplane Mode On" msgid "Airplane Mode On"
msgstr "Uçak Kipi Açık" msgstr "Uçak Kipi Açık"
#: ../js/ui/status/system.js:343 #: ../js/ui/status/system.js:351
msgid "Switch User" msgid "Switch User"
msgstr "Kullanıcı Değiştir" msgstr "Kullanıcı Değiştir"
#: ../js/ui/status/system.js:348 #: ../js/ui/status/system.js:356
msgid "Log Out" msgid "Log Out"
msgstr "Oturumu Kapat" msgstr "Oturumu Kapat"
#: ../js/ui/status/system.js:353 #: ../js/ui/status/system.js:361
msgid "Account Settings" msgid "Account Settings"
msgstr "Hesap Ayarları" msgstr "Hesap Ayarları"
#: ../js/ui/status/system.js:370 #: ../js/ui/status/system.js:378
msgid "Orientation Lock" msgid "Orientation Lock"
msgstr "Yönelim Kilidi" msgstr "Yönelim Kilidi"
#: ../js/ui/status/system.js:378 #: ../js/ui/status/system.js:386
msgid "Suspend" msgid "Suspend"
msgstr "Beklet" msgstr "Beklet"
#: ../js/ui/status/system.js:381 #: ../js/ui/status/system.js:389
msgid "Power Off" msgid "Power Off"
msgstr "Kapat" msgstr "Kapat"
@ -1687,7 +1697,7 @@ msgstr "Evolution Takvim"
#. 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:1873
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1695,13 +1705,13 @@ msgstr[0] "%u Çıktı"
#. 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:1883
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
msgstr[0] "%u Girdi" msgstr[0] "%u Girdi"
#: ../src/gvc/gvc-mixer-control.c:2371 #: ../src/gvc/gvc-mixer-control.c:2738
msgid "System Sounds" msgid "System Sounds"
msgstr "Sistem Sesleri" msgstr "Sistem Sesleri"
@ -1721,12 +1731,12 @@ msgstr "Oturum açma için -\"gdm\" gibi- özel bir kip kullan"
msgid "List possible modes" msgid "List possible modes"
msgstr "Mevcut kipleri listele" msgstr "Mevcut kipleri listele"
#: ../src/shell-app.c:246 #: ../src/shell-app.c:270
msgctxt "program" msgctxt "program"
msgid "Unknown" msgid "Unknown"
msgstr "Bilinmeyen" msgstr "Bilinmeyen"
#: ../src/shell-app.c:487 #: ../src/shell-app.c:511
#, c-format #, c-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "“%s” başlatılamadı" msgstr "“%s” başlatılamadı"
@ -1743,6 +1753,15 @@ msgstr "Parola boş bırakılamaz"
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "Kimlik doğrulama penceresi kullanıcı tarafından kapatıldı" msgstr "Kimlik doğrulama penceresi kullanıcı tarafından kapatıldı"
#~ msgid "Show the week date in the calendar"
#~ msgstr "Hafta tarihini takvimde göster"
#~ msgid "If true, display the ISO week date in the calendar."
#~ msgstr "Doğru ise ISO hafta tarihini takvimde göster."
#~ msgid "Use as Internet connection"
#~ msgstr "İnternet bağlantısı olarak kullan"
#~ msgid "GNOME Shell (wayland compositor)" #~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "GNOME Kabuğu (wayland bestecisi)" #~ msgstr "GNOME Kabuğu (wayland bestecisi)"

@ -15,7 +15,7 @@ msgstr ""
"PO-Revision-Date: 2013-03-07 21:01+0900\n" "PO-Revision-Date: 2013-03-07 21:01+0900\n"
"Last-Translator: Gheyret Kenji <gheyret@gmail.com>\n" "Last-Translator: Gheyret Kenji <gheyret@gmail.com>\n"
"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n" "Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
"Language: \n" "Language: ug\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"

File diff suppressed because it is too large Load Diff

@ -12,7 +12,9 @@ desktopdir=$(datadir)/applications
desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
desktop_in_files = calendar-server/evolution-calendar.desktop.in desktop_in_files = calendar-server/evolution-calendar.desktop.in
@INTLTOOL_DESKTOP_RULE@ %.desktop:%.desktop.in
@$(MKDIR_P) $(builddir)/calendar-server
$(AM_V_GEN) $(MSGFMT) --desktop --template $< -d $(top_srcdir)/po -o $@
gnome_shell_calendar_server_CFLAGS = \ gnome_shell_calendar_server_CFLAGS = \
-I$(top_srcdir)/src \ -I$(top_srcdir)/src \
@ -30,6 +32,7 @@ gnome_shell_calendar_server_LDADD = \
EXTRA_DIST += \ EXTRA_DIST += \
calendar-server/README \ calendar-server/README \
calendar-server/org.gnome.Shell.CalendarServer.service.in \ calendar-server/org.gnome.Shell.CalendarServer.service.in \
$(desktop_in_files) \
$(NULL) $(NULL)
CLEANFILES += \ CLEANFILES += \

@ -12,7 +12,7 @@ SUBDIRS = gvc
-include $(INTROSPECTION_MAKEFILE) -include $(INTROSPECTION_MAKEFILE)
INTROSPECTION_GIRS = INTROSPECTION_GIRS =
INTROSPECTION_SCANNER_ARGS = --warn-all --warn-error --add-include-path=$(srcdir) INTROSPECTION_SCANNER_ARGS = --warn-all --warn-error --add-include-path=$(srcdir) --add-include-path=$(MUTTER_GIR_DIR) -L$(MUTTER_TYPELIB_DIR)
INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir) --includedir=$(MUTTER_TYPELIB_DIR) INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir) --includedir=$(MUTTER_TYPELIB_DIR)
typelibdir = $(pkglibdir) typelibdir = $(pkglibdir)
@ -201,6 +201,7 @@ gnome_shell_CPPFLAGS = \
# Here, and after, we repeat mutter and bluetooth libraries just for the rpath # Here, and after, we repeat mutter and bluetooth libraries just for the rpath
# The dependency is already pulled in by libtool # The dependency is already pulled in by libtool
gnome_shell_LDADD = libgnome-shell.la libgnome-shell-js.la $(GNOME_SHELL_LIBS) $(MUTTER_LIBS) gnome_shell_LDADD = libgnome-shell.la libgnome-shell-js.la $(GNOME_SHELL_LIBS) $(MUTTER_LIBS)
gnome_shell_LDFLAGS = -rpath $(MUTTER_TYPELIB_DIR)
gnome_shell_DEPENDENCIES = libgnome-shell.la gnome_shell_DEPENDENCIES = libgnome-shell.la
gnome_shell_extension_prefs_SOURCES = \ gnome_shell_extension_prefs_SOURCES = \
@ -212,6 +213,7 @@ nodist_gnome_shell_extension_prefs_SOURCES = \
$(NULL) $(NULL)
gnome_shell_extension_prefs_CPPFLAGS = $(gnome_shell_cflags) gnome_shell_extension_prefs_CPPFLAGS = $(gnome_shell_cflags)
gnome_shell_extension_prefs_LDADD = libgnome-shell-js.la $(GNOME_SHELL_LIBS) gnome_shell_extension_prefs_LDADD = libgnome-shell-js.la $(GNOME_SHELL_LIBS)
gnome_shell_extension_prefs_LDFLAGS = -rpath $(MUTTER_TYPELIB_DIR)
if HAVE_NETWORKMANAGER if HAVE_NETWORKMANAGER
@ -225,6 +227,7 @@ nodist_gnome_shell_portal_helper_SOURCES = \
$(NULL) $(NULL)
gnome_shell_portal_helper_CPPFLAGS = $(gnome_shell_cflags) gnome_shell_portal_helper_CPPFLAGS = $(gnome_shell_cflags)
gnome_shell_portal_helper_LDADD = libgnome-shell-js.la $(GNOME_SHELL_LIBS) gnome_shell_portal_helper_LDADD = libgnome-shell-js.la $(GNOME_SHELL_LIBS)
gnome_shell_portal_helper_LDFLAGS = -rpath $(MUTTER_TYPELIB_DIR)
endif endif
@ -279,7 +282,7 @@ noinst_PROGRAMS += run-js-test
run_js_test_CPPFLAGS = $(MUTTER_CFLAGS) $(gnome_shell_cflags) run_js_test_CPPFLAGS = $(MUTTER_CFLAGS) $(gnome_shell_cflags)
run_js_test_LDADD = libgnome-shell.la $(GNOME_SHELL_JS_LIBS) $(MUTTER_LIBS) run_js_test_LDADD = libgnome-shell.la $(GNOME_SHELL_JS_LIBS) $(MUTTER_LIBS)
run_js_test_LDFLAGS = -export-dynamic run_js_test_LDFLAGS = -export-dynamic -rpath $(MUTTER_TYPELIB_DIR)
run_js_test_SOURCES = \ run_js_test_SOURCES = \
run-js-test.c run-js-test.c

@ -0,0 +1,8 @@
[Desktop Entry]
Name=Evolution Calendar
Exec=evolution -c calendar
# Translators: Do NOT translate or transliterate this text (this is an icon file name)!
Icon=evolution
NoDisplay=true
Type=Application
StartupNotify=true

@ -1,7 +0,0 @@
[Desktop Entry]
_Name=Evolution Calendar
Exec=evolution -c calendar
Icon=evolution
NoDisplay=true
Type=Application
StartupNotify=true

@ -74,15 +74,15 @@ static App *_global_app = NULL;
typedef struct typedef struct
{ {
char *rid;
time_t start_time; time_t start_time;
time_t end_time; time_t end_time;
} CalendarOccurrence; } CalendarOccurrence;
typedef struct typedef struct
{ {
char *id;
char *uid; char *uid;
char *rid; char *source_id;
char *backend_name; char *backend_name;
char *summary; char *summary;
char *description; char *description;
@ -95,6 +95,12 @@ typedef struct
GSList *occurrences; GSList *occurrences;
} CalendarAppointment; } CalendarAppointment;
typedef struct
{
ECalClient *client;
GHashTable *appointments;
} CollectAppointmentsData;
static time_t static time_t
get_time_from_property (icalcomponent *ical, get_time_from_property (icalcomponent *ical,
icalproperty_kind prop_kind, icalproperty_kind prop_kind,
@ -129,22 +135,6 @@ get_ical_uid (icalcomponent *ical)
return g_strdup (icalcomponent_get_uid (ical)); return g_strdup (icalcomponent_get_uid (ical));
} }
static char *
get_ical_rid (icalcomponent *ical)
{
icalproperty *prop;
struct icaltimetype ical_time;
prop = icalcomponent_get_first_property (ical, ICAL_RECURRENCEID_PROPERTY);
if (!prop)
return NULL;
ical_time = icalproperty_get_recurrenceid (prop);
return icaltime_is_valid_time (ical_time) && !icaltime_is_null_time (ical_time) ?
g_strdup (icaltime_as_ical_string (ical_time)) : NULL;
}
static char * static char *
get_ical_summary (icalcomponent *ical) get_ical_summary (icalcomponent *ical)
{ {
@ -324,12 +314,14 @@ calendar_appointment_equal (CalendarAppointment *a,
CalendarOccurrence *ob = lb->data; CalendarOccurrence *ob = lb->data;
if (oa->start_time != ob->start_time || if (oa->start_time != ob->start_time ||
oa->end_time != ob->end_time) oa->end_time != ob->end_time ||
null_safe_strcmp (oa->rid, ob->rid) != 0)
return FALSE; return FALSE;
} }
return return
null_safe_strcmp (a->uid, b->uid) == 0 && null_safe_strcmp (a->uid, b->uid) == 0 &&
null_safe_strcmp (a->source_id, b->source_id) == 0 &&
null_safe_strcmp (a->backend_name, b->backend_name) == 0 && null_safe_strcmp (a->backend_name, b->backend_name) == 0 &&
null_safe_strcmp (a->summary, b->summary) == 0 && null_safe_strcmp (a->summary, b->summary) == 0 &&
null_safe_strcmp (a->description, b->description) == 0 && null_safe_strcmp (a->description, b->description) == 0 &&
@ -345,18 +337,15 @@ calendar_appointment_free (CalendarAppointment *appointment)
GSList *l; GSList *l;
for (l = appointment->occurrences; l; l = l->next) for (l = appointment->occurrences; l; l = l->next)
g_free (l->data); g_free (((CalendarOccurrence *)l->data)->rid);
g_slist_free (appointment->occurrences); g_slist_free_full (appointment->occurrences, g_free);
appointment->occurrences = NULL; appointment->occurrences = NULL;
g_free (appointment->id);
appointment->id = NULL;
g_free (appointment->uid); g_free (appointment->uid);
appointment->uid = NULL; appointment->uid = NULL;
g_free (appointment->rid); g_free (appointment->source_id);
appointment->rid = NULL; appointment->source_id = NULL;
g_free (appointment->backend_name); g_free (appointment->backend_name);
appointment->backend_name = NULL; appointment->backend_name = NULL;
@ -377,13 +366,16 @@ calendar_appointment_free (CalendarAppointment *appointment)
static void static void
calendar_appointment_init (CalendarAppointment *appointment, calendar_appointment_init (CalendarAppointment *appointment,
icalcomponent *ical, icalcomponent *ical,
ECalClient *cal, ECalClient *cal)
icaltimezone *default_zone)
{ {
const char *source_uid; icaltimezone *default_zone;
const char *source_id;
source_id = e_source_get_uid (e_client_get_source (E_CLIENT (cal)));
default_zone = e_cal_client_get_default_timezone (cal);
appointment->uid = get_ical_uid (ical); appointment->uid = get_ical_uid (ical);
appointment->rid = get_ical_rid (ical); appointment->source_id = g_strdup (source_id);
appointment->backend_name = get_source_backend_name (cal); appointment->backend_name = get_source_backend_name (cal);
appointment->summary = get_ical_summary (ical); appointment->summary = get_ical_summary (ical);
appointment->description = get_ical_description (ical); appointment->description = get_ical_description (ical);
@ -393,16 +385,6 @@ calendar_appointment_init (CalendarAppointment *appointment,
appointment->is_all_day = get_ical_is_all_day (ical, appointment->is_all_day = get_ical_is_all_day (ical,
appointment->start_time, appointment->start_time,
default_zone); default_zone);
/* While the UID is usually enough to identify an event, only the triple
* of (source,UID,RID) is fully unambiguous; neither may contain '\n',
* so we can safely use it to create a unique ID from the triple
*/
source_uid = e_source_get_uid (e_client_get_source (E_CLIENT (cal)));
appointment->id = g_strdup_printf ("%s\n%s\n%s",
source_uid,
appointment->uid,
appointment->rid ? appointment->rid : "");
} }
static icaltimezone * static icaltimezone *
@ -420,70 +402,52 @@ resolve_timezone_id (const char *tzid,
return retval; return retval;
} }
static gboolean
calendar_appointment_collect_occurrence (ECalComponent *component,
time_t occurrence_start,
time_t occurrence_end,
gpointer data)
{
CalendarOccurrence *occurrence;
GSList **collect_loc = data;
occurrence = g_new0 (CalendarOccurrence, 1);
occurrence->start_time = occurrence_start;
occurrence->end_time = occurrence_end;
*collect_loc = g_slist_prepend (*collect_loc, occurrence);
return TRUE;
}
static void
calendar_appointment_generate_occurrences (CalendarAppointment *appointment,
icalcomponent *ical,
ECalClient *cal,
time_t start,
time_t end,
icaltimezone *default_zone)
{
ECalComponent *ecal;
g_assert (appointment->occurrences == NULL);
ecal = e_cal_component_new ();
e_cal_component_set_icalcomponent (ecal,
icalcomponent_new_clone (ical));
e_cal_recur_generate_instances (ecal,
start,
end,
calendar_appointment_collect_occurrence,
&appointment->occurrences,
(ECalRecurResolveTimezoneFn) resolve_timezone_id,
cal,
default_zone);
g_object_unref (ecal);
appointment->occurrences = g_slist_reverse (appointment->occurrences);
}
static CalendarAppointment * static CalendarAppointment *
calendar_appointment_new (icalcomponent *ical, calendar_appointment_new (icalcomponent *ical,
ECalClient *cal, ECalClient *cal)
icaltimezone *default_zone)
{ {
CalendarAppointment *appointment; CalendarAppointment *appointment;
appointment = g_new0 (CalendarAppointment, 1); appointment = g_new0 (CalendarAppointment, 1);
calendar_appointment_init (appointment, calendar_appointment_init (appointment, ical, cal);
ical,
cal,
default_zone);
return appointment; return appointment;
} }
static gboolean
generate_instances_cb (ECalComponent *comp,
time_t start,
time_t end,
gpointer data)
{
ECalClient *cal = ((CollectAppointmentsData *)data)->client;
GHashTable *appointments = ((CollectAppointmentsData *)data)->appointments;
CalendarAppointment *appointment;
CalendarOccurrence *occurrence;
const char *uid;
e_cal_component_get_uid (comp, &uid);
appointment = g_hash_table_lookup (appointments, uid);
if (appointment == NULL)
{
icalcomponent *ical = e_cal_component_get_icalcomponent (comp);
appointment = calendar_appointment_new (ical, cal);
g_hash_table_insert (appointments, g_strdup (uid), appointment);
}
occurrence = g_new0 (CalendarOccurrence, 1);
occurrence->start_time = start;
occurrence->end_time = end;
occurrence->rid = e_cal_component_get_recurid_as_string (comp);
appointment->occurrences = g_slist_append (appointment->occurrences, occurrence);
return TRUE;
}
/* ---------------------------------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------------------------------------- */
struct _App struct _App
@ -526,6 +490,10 @@ app_update_timezone (App *app)
app->timezone_location = location; app->timezone_location = location;
print_debug ("Using timezone %s", app->timezone_location); print_debug ("Using timezone %s", app->timezone_location);
} }
else
{
g_free (location);
}
} }
static gboolean static gboolean
@ -619,6 +587,7 @@ app_load_events (App *app)
GList *ll; GList *ll;
gchar *since_iso8601; gchar *since_iso8601;
gchar *until_iso8601; gchar *until_iso8601;
gchar *query;
/* out with the old */ /* out with the old */
g_hash_table_remove_all (app->appointments); g_hash_table_remove_all (app->appointments);
@ -645,14 +614,19 @@ app_load_events (App *app)
since_iso8601, since_iso8601,
until_iso8601); until_iso8601);
query = g_strdup_printf ("occur-in-time-range? (make-time \"%s\") "
"(make-time \"%s\")",
since_iso8601,
until_iso8601);
clients = calendar_sources_get_appointment_clients (app->sources); clients = calendar_sources_get_appointment_clients (app->sources);
for (l = clients; l != NULL; l = l->next) for (l = clients; l != NULL; l = l->next)
{ {
ECalClient *cal = E_CAL_CLIENT (l->data); ECalClient *cal = E_CAL_CLIENT (l->data);
GError *error; GError *error;
gchar *query;
GSList *objects, *j; GSList *objects, *j;
ECalClientView *view; ECalClientView *view;
CollectAppointmentsData data;
e_cal_client_set_default_timezone (cal, app->zone); e_cal_client_set_default_timezone (cal, app->zone);
@ -666,45 +640,13 @@ app_load_events (App *app)
continue; continue;
} }
query = g_strdup_printf ("occur-in-time-range? (make-time \"%s\") " data.client = cal;
"(make-time \"%s\")", data.appointments = app->appointments;
since_iso8601, e_cal_client_generate_instances_sync (cal,
until_iso8601); app->since,
error = NULL; app->until,
objects = NULL; generate_instances_cb,
if (!e_cal_client_get_object_list_sync (cal, &data);
query,
&objects,
NULL, /* cancellable */
&error))
{
ESource *source = e_client_get_source (E_CLIENT (cal));
g_warning ("Error querying calendar %s: %s\n",
e_source_get_uid (source), error->message);
g_error_free (error);
g_free (query);
continue;
}
for (j = objects; j != NULL; j = j->next)
{
icalcomponent *ical = j->data;
CalendarAppointment *appointment;
appointment = calendar_appointment_new (ical, cal, app->zone);
if (appointment == NULL)
continue;
calendar_appointment_generate_occurrences (appointment,
ical,
cal,
app->since,
app->until,
app->zone);
g_hash_table_insert (app->appointments, g_strdup (appointment->uid), appointment);
}
e_cal_client_free_icalcomp_slist (objects);
error = NULL; error = NULL;
if (!e_cal_client_get_view_sync (cal, if (!e_cal_client_get_view_sync (cal,
@ -733,12 +675,11 @@ app_load_events (App *app)
e_cal_client_view_start (view, NULL); e_cal_client_view_start (view, NULL);
app->live_views = g_list_prepend (app->live_views, view); app->live_views = g_list_prepend (app->live_views, view);
} }
g_free (query);
} }
g_list_free (clients); g_list_free (clients);
g_free (since_iso8601); g_free (since_iso8601);
g_free (until_iso8601); g_free (until_iso8601);
g_free (query);
app->cache_invalid = FALSE; app->cache_invalid = FALSE;
} }
@ -929,16 +870,27 @@ handle_method_call (GDBusConnection *connection,
(start_time <= app->since && (start_time <= app->since &&
(end_time - 1) > app->since)) (end_time - 1) > app->since))
{ {
/* While the UID is usually enough to identify an event,
* only the triple of (source,UID,RID) is fully unambiguous;
* neither may contain '\n', so we can safely use it to
* create a unique ID from the triple
*/
char *id = g_strdup_printf ("%s\n%s\n%s",
a->source_id,
a->uid,
o->rid ? o->rid : "");
g_variant_builder_init (&extras_builder, G_VARIANT_TYPE ("a{sv}")); g_variant_builder_init (&extras_builder, G_VARIANT_TYPE ("a{sv}"));
g_variant_builder_add (&builder, g_variant_builder_add (&builder,
"(sssbxxa{sv})", "(sssbxxa{sv})",
a->id, id,
a->summary != NULL ? a->summary : "", a->summary != NULL ? a->summary : "",
a->description != NULL ? a->description : "", a->description != NULL ? a->description : "",
(gboolean) a->is_all_day, (gboolean) a->is_all_day,
(gint64) start_time, (gint64) start_time,
(gint64) end_time, (gint64) end_time,
extras_builder); extras_builder);
g_free (id);
} }
} }
} }

Submodule src/gvc updated: 0a79019088...25bf3ed75f

@ -59,6 +59,8 @@ main(int argc, char **argv)
gsize len; gsize len;
int code; int code;
gdk_set_allowed_backends("x11");
gtk_init (&argc, &argv); gtk_init (&argc, &argv);
clutter_x11_set_display (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ())); clutter_x11_set_display (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()));
@ -66,6 +68,9 @@ main(int argc, char **argv)
if (clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS) if (clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS)
return 1; return 1;
g_object_set (clutter_settings_get_default (), "window-scaling-factor", 1, NULL);
gdk_x11_display_set_window_scale (gdk_display_get_default (), 1);
context = g_option_context_new (NULL); context = g_option_context_new (NULL);
/* pass unknown through to the JS script */ /* pass unknown through to the JS script */

@ -96,7 +96,8 @@ enum {
PROP_ID, PROP_ID,
PROP_DBUS_ID, PROP_DBUS_ID,
PROP_ACTION_GROUP, PROP_ACTION_GROUP,
PROP_MENU PROP_MENU,
PROP_APP_INFO
}; };
enum { enum {
@ -138,6 +139,29 @@ shell_app_get_property (GObject *gobject,
if (app->running_state) if (app->running_state)
g_value_set_object (value, app->running_state->remote_menu); g_value_set_object (value, app->running_state->remote_menu);
break; break;
case PROP_APP_INFO:
if (app->info)
g_value_set_object (value, app->info);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
break;
}
}
static void
shell_app_set_property (GObject *gobject,
guint prop_id,
const GValue *value,
GParamSpec *pspec)
{
ShellApp *app = SHELL_APP (gobject);
switch (prop_id)
{
case PROP_APP_INFO:
_shell_app_set_app_info (app, g_value_get_object (value));
break;
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
break; break;
@ -722,6 +746,23 @@ shell_app_get_last_user_time (ShellApp *app)
return (int)last_user_time; return (int)last_user_time;
} }
static gboolean
shell_app_is_minimized (ShellApp *app)
{
GSList *iter;
if (app->running_state == NULL)
return FALSE;
for (iter = app->running_state->windows; iter; iter = iter->next)
{
if (meta_window_showing_on_its_workspace (iter->data))
return FALSE;
}
return TRUE;
}
/** /**
* shell_app_compare: * shell_app_compare:
* @app: * @app:
@ -729,13 +770,17 @@ shell_app_get_last_user_time (ShellApp *app)
* *
* Compare one #ShellApp instance to another, in the following way: * Compare one #ShellApp instance to another, in the following way:
* - Running applications sort before not-running applications. * - Running applications sort before not-running applications.
* - The application which the user interacted with most recently * - If one of them has non-minimized windows and the other does not,
* the one with visible windows is first.
* - Finally, the application which the user interacted with most recently
* compares earlier. * compares earlier.
*/ */
int int
shell_app_compare (ShellApp *app, shell_app_compare (ShellApp *app,
ShellApp *other) ShellApp *other)
{ {
gboolean min_app, min_other;
if (app->state != other->state) if (app->state != other->state)
{ {
if (app->state == SHELL_APP_STATE_RUNNING) if (app->state == SHELL_APP_STATE_RUNNING)
@ -743,6 +788,16 @@ shell_app_compare (ShellApp *app,
return 1; return 1;
} }
min_app = shell_app_is_minimized (app);
min_other = shell_app_is_minimized (other);
if (min_app != min_other)
{
if (min_other)
return -1;
return 1;
}
if (app->state == SHELL_APP_STATE_RUNNING) if (app->state == SHELL_APP_STATE_RUNNING)
{ {
if (app->running_state->windows && !other->running_state->windows) if (app->running_state->windows && !other->running_state->windows)
@ -775,9 +830,9 @@ _shell_app_new (GDesktopAppInfo *info)
{ {
ShellApp *app; ShellApp *app;
app = g_object_new (SHELL_TYPE_APP, NULL); app = g_object_new (SHELL_TYPE_APP,
"app-info", info,
_shell_app_set_app_info (app, info); NULL);
return app; return app;
} }
@ -786,12 +841,11 @@ void
_shell_app_set_app_info (ShellApp *app, _shell_app_set_app_info (ShellApp *app,
GDesktopAppInfo *info) GDesktopAppInfo *info)
{ {
g_clear_object (&app->info); g_set_object (&app->info, info);
app->info = g_object_ref (info);
if (app->name_collation_key != NULL) g_clear_pointer (&app->name_collation_key, g_free);
g_free (app->name_collation_key); if (app->info)
app->name_collation_key = g_utf8_collate_key (shell_app_get_name (app), -1); app->name_collation_key = g_utf8_collate_key (shell_app_get_name (app), -1);
} }
static void static void
@ -1374,6 +1428,7 @@ shell_app_class_init(ShellAppClass *klass)
GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
gobject_class->get_property = shell_app_get_property; gobject_class->get_property = shell_app_get_property;
gobject_class->set_property = shell_app_set_property;
gobject_class->dispose = shell_app_dispose; gobject_class->dispose = shell_app_dispose;
gobject_class->finalize = shell_app_finalize; gobject_class->finalize = shell_app_finalize;
@ -1452,5 +1507,17 @@ shell_app_class_init(ShellAppClass *klass)
"The primary menu exported by the remote application", "The primary menu exported by the remote application",
G_TYPE_MENU_MODEL, G_TYPE_MENU_MODEL,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
/**
* ShellApp:app-info:
*
* The #GDesktopAppInfo associated with this ShellApp, if any.
*/
g_object_class_install_property (gobject_class,
PROP_APP_INFO,
g_param_spec_object ("app-info",
"DesktopAppInfo",
"The DesktopAppInfo associated with this app",
G_TYPE_DESKTOP_APP_INFO,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
} }

@ -18,7 +18,6 @@
#include <X11/extensions/Xfixes.h> #include <X11/extensions/Xfixes.h>
#include <canberra.h> #include <canberra.h>
#include <canberra-gtk.h> #include <canberra-gtk.h>
#include <clutter/glx/clutter-glx.h>
#include <clutter/x11/clutter-x11.h> #include <clutter/x11/clutter-x11.h>
#include <gdk/gdkx.h> #include <gdk/gdkx.h>
#include <gio/gio.h> #include <gio/gio.h>
@ -1584,7 +1583,7 @@ shell_global_get_current_time (ShellGlobal *global)
*/ */
GAppLaunchContext * GAppLaunchContext *
shell_global_create_app_launch_context (ShellGlobal *global, shell_global_create_app_launch_context (ShellGlobal *global,
int timestamp, guint32 timestamp,
int workspace) int workspace)
{ {
GdkAppLaunchContext *context; GdkAppLaunchContext *context;

@ -71,7 +71,7 @@ void shell_global_sync_pointer (ShellGlobal *global);
GAppLaunchContext * GAppLaunchContext *
shell_global_create_app_launch_context (ShellGlobal *global, shell_global_create_app_launch_context (ShellGlobal *global,
int timestamp, guint32 timestamp,
int workspace); int workspace);
void shell_global_play_theme_sound (ShellGlobal *global, void shell_global_play_theme_sound (ShellGlobal *global,

@ -107,6 +107,8 @@ static void recorder_set_draw_cursor (ShellRecorder *recorder,
static void recorder_pipeline_set_caps (RecorderPipeline *pipeline); static void recorder_pipeline_set_caps (RecorderPipeline *pipeline);
static void recorder_pipeline_closed (RecorderPipeline *pipeline); static void recorder_pipeline_closed (RecorderPipeline *pipeline);
static void recorder_remove_redraw_timeout (ShellRecorder *recorder);
enum { enum {
PROP_0, PROP_0,
PROP_SCREEN, PROP_SCREEN,
@ -235,6 +237,8 @@ shell_recorder_finalize (GObject *object)
recorder_set_pipeline (recorder, NULL); recorder_set_pipeline (recorder, NULL);
recorder_set_file_template (recorder, NULL); recorder_set_file_template (recorder, NULL);
recorder_remove_redraw_timeout (recorder);
g_clear_object (&recorder->a11y_settings); g_clear_object (&recorder->a11y_settings);
G_OBJECT_CLASS (shell_recorder_parent_class)->finalize (object); G_OBJECT_CLASS (shell_recorder_parent_class)->finalize (object);
@ -317,6 +321,9 @@ recorder_fetch_cursor_image (ShellRecorder *recorder)
guint8 *data; guint8 *data;
texture = meta_cursor_tracker_get_sprite (recorder->cursor_tracker); texture = meta_cursor_tracker_get_sprite (recorder->cursor_tracker);
if (!texture)
return;
width = cogl_texture_get_width (texture); width = cogl_texture_get_width (texture);
height = cogl_texture_get_height (texture); height = cogl_texture_get_height (texture);
stride = 4 * width; stride = 4 * width;
@ -382,11 +389,17 @@ recorder_draw_cursor (ShellRecorder *recorder,
/* Retrieve a frame and feed it into the pipeline /* Retrieve a frame and feed it into the pipeline
*/ */
static void static void
recorder_record_frame (ShellRecorder *recorder) recorder_record_frame (ShellRecorder *recorder,
gboolean paint)
{ {
GstBuffer *buffer; GstBuffer *buffer;
guint8 *data; ClutterCapture *captures;
int n_captures;
cairo_surface_t *image;
guint size; guint size;
uint8_t *data;
GstMemory *memory;
int i;
GstClock *clock; GstClock *clock;
GstClockTime now, base_time; GstClockTime now, base_time;
@ -418,21 +431,31 @@ recorder_record_frame (ShellRecorder *recorder)
return; return;
recorder->last_frame_time = now; recorder->last_frame_time = now;
size = recorder->area.width * recorder->area.height * 4; clutter_stage_capture (recorder->stage, paint, &recorder->area,
&captures, &n_captures);
data = g_malloc (size); if (n_captures == 0)
cogl_framebuffer_read_pixels (cogl_get_draw_framebuffer (), return;
recorder->area.x,
recorder->area.y, /*
recorder->area.width, * TODO: Deal with each capture region separately, instead of dropping
recorder->area.height, * anything except the first one.
CLUTTER_CAIRO_FORMAT_ARGB32, */
data);
image = captures[0].image;
data = cairo_image_surface_get_data (image);
size = captures[0].rect.width * captures[0].rect.height * 4;
/* TODO: Capture more than the first framebuffer. */
for (i = 1; i < n_captures; i++)
cairo_surface_destroy (captures[i].image);
g_free (captures);
buffer = gst_buffer_new(); buffer = gst_buffer_new();
gst_buffer_insert_memory (buffer, -1, memory = gst_memory_new_wrapped (0, data, size, 0, size,
gst_memory_new_wrapped (0, data, size, 0, image,
size, data, g_free)); (GDestroyNotify) cairo_surface_destroy);
gst_buffer_insert_memory (buffer, -1, memory);
GST_BUFFER_PTS(buffer) = now; GST_BUFFER_PTS(buffer) = now;
@ -456,7 +479,7 @@ recorder_on_stage_paint (ClutterActor *actor,
ShellRecorder *recorder) ShellRecorder *recorder)
{ {
if (recorder->state == RECORDER_STATE_RECORDING) if (recorder->state == RECORDER_STATE_RECORDING)
recorder_record_frame (recorder); recorder_record_frame (recorder, FALSE);
} }
static void static void
@ -944,6 +967,9 @@ get_absolute_path (char *maybe_relative)
else else
{ {
const char *video_dir = g_get_user_special_dir (G_USER_DIRECTORY_VIDEOS); const char *video_dir = g_get_user_special_dir (G_USER_DIRECTORY_VIDEOS);
if (!g_file_test (video_dir, G_FILE_TEST_EXISTS))
video_dir = g_get_home_dir ();
path = g_build_filename (video_dir, maybe_relative, NULL); path = g_build_filename (video_dir, maybe_relative, NULL);
} }
@ -1049,7 +1075,7 @@ recorder_open_outfile (ShellRecorder *recorder,
if (outfile == -1 && errno != EEXIST) if (outfile == -1 && errno != EEXIST)
{ {
g_warning ("Cannot open output file '%s': %s", filename->str, g_strerror (errno)); g_warning ("Cannot open output file '%s': %s", path, g_strerror (errno));
g_string_free (filename, TRUE); g_string_free (filename, TRUE);
g_free (path); g_free (path);
goto out; goto out;
@ -1551,7 +1577,7 @@ shell_recorder_close (ShellRecorder *recorder)
/* We want to record one more frame since some time may have /* We want to record one more frame since some time may have
* elapsed since the last frame * elapsed since the last frame
*/ */
clutter_actor_paint (CLUTTER_ACTOR (recorder->stage)); recorder_record_frame (recorder, TRUE);
recorder_remove_update_pointer_timeout (recorder); recorder_remove_update_pointer_timeout (recorder);
recorder_close_pipeline (recorder); recorder_close_pipeline (recorder);

@ -210,41 +210,40 @@ write_screenshot_thread (GTask *result,
static void static void
do_grab_screenshot (ShellScreenshot *screenshot, do_grab_screenshot (ShellScreenshot *screenshot,
ClutterStage *stage,
int x, int x,
int y, int y,
int width, int width,
int height) int height)
{ {
CoglBitmap *bitmap;
ClutterBackend *backend;
CoglContext *context;
int stride;
guchar *data;
ShellScreenshotPrivate *priv = screenshot->priv; ShellScreenshotPrivate *priv = screenshot->priv;
ClutterCapture *captures;
int n_captures;
int i;
backend = clutter_get_default_backend (); clutter_stage_capture (stage, FALSE,
context = clutter_backend_get_cogl_context (backend); &(cairo_rectangle_int_t) {
.x = x,
.y = y,
.width = width,
.height = height
},
&captures,
&n_captures);
priv->image = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, if (n_captures == 0)
width, height); return;
/*
* TODO: Deal with each capture region separately, instead of dropping
* anything except the first one.
*/
priv->image = captures[0].image;
data = cairo_image_surface_get_data (priv->image); for (i = 1; i < n_captures; i++)
stride = cairo_image_surface_get_stride (priv->image); cairo_surface_destroy (captures[i].image);
bitmap = cogl_bitmap_new_for_data (context, g_free (captures);
width,
height,
CLUTTER_CAIRO_FORMAT_ARGB32,
stride,
data);
cogl_framebuffer_read_pixels_into_bitmap (cogl_get_draw_framebuffer (),
x, y,
COGL_READ_PIXELS_COLOR_BUFFER,
bitmap);
cairo_surface_mark_dirty (priv->image);
cogl_object_unref (bitmap);
} }
static void static void
@ -312,7 +311,7 @@ grab_screenshot (ClutterActor *stage,
screen = shell_global_get_screen (priv->global); screen = shell_global_get_screen (priv->global);
meta_screen_get_size (screen, &width, &height); meta_screen_get_size (screen, &width, &height);
do_grab_screenshot (screenshot, 0, 0, width, height); do_grab_screenshot (screenshot, CLUTTER_STAGE (stage), 0, 0, width, height);
if (meta_screen_get_n_monitors (screen) > 1) if (meta_screen_get_n_monitors (screen) > 1)
{ {
@ -381,6 +380,7 @@ grab_area_screenshot (ClutterActor *stage,
ShellScreenshotPrivate *priv = screenshot->priv; ShellScreenshotPrivate *priv = screenshot->priv;
do_grab_screenshot (screenshot, do_grab_screenshot (screenshot,
CLUTTER_STAGE (stage),
priv->screenshot_area.x, priv->screenshot_area.x,
priv->screenshot_area.y, priv->screenshot_area.y,
priv->screenshot_area.width, priv->screenshot_area.width,

@ -393,18 +393,6 @@ shell_util_need_background_refresh (void)
return FALSE; return FALSE;
} }
void
shell_util_text_insert_keyval (ClutterActor *actor,
guint keyval)
{
ClutterEvent event = { 0 };
event.type = CLUTTER_KEY_PRESS;
event.key.keyval = keyval;
clutter_actor_event (actor, &event, FALSE);
}
static gboolean static gboolean
canvas_draw_cb (ClutterContent *content, canvas_draw_cb (ClutterContent *content,
cairo_t *cr, cairo_t *cr,

@ -48,9 +48,6 @@ void shell_util_cursor_tracker_to_clutter (MetaCursorTracker *tracker,
gboolean shell_util_need_background_refresh (void); gboolean shell_util_need_background_refresh (void);
void shell_util_text_insert_keyval (ClutterActor *actor,
guint keyval);
ClutterContent * shell_util_get_content_for_window_actor (MetaWindowActor *window_actor, ClutterContent * shell_util_get_content_for_window_actor (MetaWindowActor *window_actor,
MetaRectangle *window_rect); MetaRectangle *window_rect);

@ -608,6 +608,8 @@ st_entry_key_press_event (ClutterActor *actor,
/* paste */ /* paste */
if (((event->modifier_state & CLUTTER_CONTROL_MASK) if (((event->modifier_state & CLUTTER_CONTROL_MASK)
&& event->keyval == CLUTTER_KEY_v) || && event->keyval == CLUTTER_KEY_v) ||
((event->modifier_state & CLUTTER_CONTROL_MASK)
&& event->keyval == CLUTTER_KEY_V) ||
((event->modifier_state & CLUTTER_SHIFT_MASK) ((event->modifier_state & CLUTTER_SHIFT_MASK)
&& event->keyval == CLUTTER_KEY_Insert)) && event->keyval == CLUTTER_KEY_Insert))
{ {
@ -625,7 +627,7 @@ st_entry_key_press_event (ClutterActor *actor,
/* copy */ /* copy */
if ((event->modifier_state & CLUTTER_CONTROL_MASK) if ((event->modifier_state & CLUTTER_CONTROL_MASK)
&& event->keyval == CLUTTER_KEY_c && && (event->keyval == CLUTTER_KEY_c || event->keyval == CLUTTER_KEY_C) &&
clutter_text_get_password_char ((ClutterText*) priv->entry) == 0) clutter_text_get_password_char ((ClutterText*) priv->entry) == 0)
{ {
StClipboard *clipboard; StClipboard *clipboard;
@ -646,7 +648,7 @@ st_entry_key_press_event (ClutterActor *actor,
/* cut */ /* cut */
if ((event->modifier_state & CLUTTER_CONTROL_MASK) if ((event->modifier_state & CLUTTER_CONTROL_MASK)
&& event->keyval == CLUTTER_KEY_x && && (event->keyval == CLUTTER_KEY_x || event->keyval == CLUTTER_KEY_X) &&
clutter_text_get_password_char ((ClutterText*) priv->entry) == 0) clutter_text_get_password_char ((ClutterText*) priv->entry) == 0)
{ {
StClipboard *clipboard; StClipboard *clipboard;
@ -671,8 +673,8 @@ st_entry_key_press_event (ClutterActor *actor,
/* delete to beginning of line */ /* delete to beginning of line */
if ((event->modifier_state & CLUTTER_CONTROL_MASK) if ((event->modifier_state & CLUTTER_CONTROL_MASK) &&
&& event->keyval == CLUTTER_KEY_u) (event->keyval == CLUTTER_KEY_u || event->keyval == CLUTTER_KEY_U))
{ {
int pos = clutter_text_get_cursor_position ((ClutterText *)priv->entry); int pos = clutter_text_get_cursor_position ((ClutterText *)priv->entry);
clutter_text_delete_text ((ClutterText *)priv->entry, 0, pos); clutter_text_delete_text ((ClutterText *)priv->entry, 0, pos);
@ -682,8 +684,8 @@ st_entry_key_press_event (ClutterActor *actor,
/* delete to end of line */ /* delete to end of line */
if ((event->modifier_state & CLUTTER_CONTROL_MASK) if ((event->modifier_state & CLUTTER_CONTROL_MASK) &&
&& event->keyval == CLUTTER_KEY_k) (event->keyval == CLUTTER_KEY_k || event->keyval == CLUTTER_KEY_K))
{ {
ClutterTextBuffer *buffer = clutter_text_get_buffer ((ClutterText *)priv->entry); ClutterTextBuffer *buffer = clutter_text_get_buffer ((ClutterText *)priv->entry);
int pos = clutter_text_get_cursor_position ((ClutterText *)priv->entry); int pos = clutter_text_get_cursor_position ((ClutterText *)priv->entry);

@ -347,6 +347,7 @@ _st_create_shadow_pipeline (StShadow *shadow_spec,
{ {
ClutterBackend *backend = clutter_get_default_backend (); ClutterBackend *backend = clutter_get_default_backend ();
CoglContext *ctx = clutter_backend_get_cogl_context (backend); CoglContext *ctx = clutter_backend_get_cogl_context (backend);
CoglError *error = NULL;
static CoglPipeline *shadow_pipeline_template = NULL; static CoglPipeline *shadow_pipeline_template = NULL;
@ -377,7 +378,13 @@ _st_create_shadow_pipeline (StShadow *shadow_spec,
COGL_PIXEL_FORMAT_A_8, COGL_PIXEL_FORMAT_A_8,
rowstride_out, rowstride_out,
pixels_out, pixels_out,
NULL)); &error));
if (error)
{
g_warning ("Failed to allocate texture: %s", error->message);
cogl_error_free (error);
}
g_free (pixels_out); g_free (pixels_out);
@ -395,7 +402,10 @@ _st_create_shadow_pipeline (StShadow *shadow_spec,
pipeline = cogl_pipeline_copy (shadow_pipeline_template); pipeline = cogl_pipeline_copy (shadow_pipeline_template);
cogl_pipeline_set_layer_texture (pipeline, 0, texture); cogl_pipeline_set_layer_texture (pipeline, 0, texture);
cogl_object_unref (texture);
if (texture)
cogl_object_unref (texture);
return pipeline; return pipeline;
} }

@ -287,13 +287,8 @@ st_shadow_helper_paint (StShadowHelper *helper,
ClutterActorBox *actor_box, ClutterActorBox *actor_box,
guint8 paint_opacity) guint8 paint_opacity)
{ {
ClutterActorBox allocation;
float width, height;
clutter_actor_box_get_size (actor_box, &width, &height);
_st_paint_shadow_with_opacity (helper->shadow, _st_paint_shadow_with_opacity (helper->shadow,
helper->pipeline, helper->pipeline,
&allocation, actor_box,
paint_opacity); paint_opacity);
} }

@ -461,14 +461,24 @@ pixbuf_to_cogl_texture (GdkPixbuf *pixbuf)
{ {
ClutterBackend *backend = clutter_get_default_backend (); ClutterBackend *backend = clutter_get_default_backend ();
CoglContext *ctx = clutter_backend_get_cogl_context (backend); CoglContext *ctx = clutter_backend_get_cogl_context (backend);
CoglError *error = NULL;
CoglTexture2D *texture;
return COGL_TEXTURE (cogl_texture_2d_new_from_data (ctx, texture = cogl_texture_2d_new_from_data (ctx,
gdk_pixbuf_get_width (pixbuf), gdk_pixbuf_get_width (pixbuf),
gdk_pixbuf_get_height (pixbuf), gdk_pixbuf_get_height (pixbuf),
gdk_pixbuf_get_has_alpha (pixbuf) ? COGL_PIXEL_FORMAT_RGBA_8888 : COGL_PIXEL_FORMAT_RGB_888, gdk_pixbuf_get_has_alpha (pixbuf) ? COGL_PIXEL_FORMAT_RGBA_8888 : COGL_PIXEL_FORMAT_RGB_888,
gdk_pixbuf_get_rowstride (pixbuf), gdk_pixbuf_get_rowstride (pixbuf),
gdk_pixbuf_get_pixels (pixbuf), gdk_pixbuf_get_pixels (pixbuf),
NULL)); &error);
if (error)
{
g_warning ("Failed to allocate texture: %s", error->message);
cogl_error_free (error);
}
return texture ? COGL_TEXTURE (texture) : NULL;
} }
static cairo_surface_t * static cairo_surface_t *
@ -632,6 +642,8 @@ st_texture_cache_reset_texture (StTextureCachePropertyBind *bind,
(cairo_image_surface_get_format (surface) == CAIRO_FORMAT_ARGB32 || (cairo_image_surface_get_format (surface) == CAIRO_FORMAT_ARGB32 ||
cairo_image_surface_get_format (surface) == CAIRO_FORMAT_RGB24)) cairo_image_surface_get_format (surface) == CAIRO_FORMAT_RGB24))
{ {
CoglError *error = NULL;
texdata = COGL_TEXTURE (cogl_texture_2d_new_from_data (ctx, texdata = COGL_TEXTURE (cogl_texture_2d_new_from_data (ctx,
cairo_image_surface_get_width (surface), cairo_image_surface_get_width (surface),
cairo_image_surface_get_height (surface), cairo_image_surface_get_height (surface),
@ -639,9 +651,18 @@ st_texture_cache_reset_texture (StTextureCachePropertyBind *bind,
COGL_PIXEL_FORMAT_BGRA_8888 : COGL_PIXEL_FORMAT_BGR_888, COGL_PIXEL_FORMAT_BGRA_8888 : COGL_PIXEL_FORMAT_BGR_888,
cairo_image_surface_get_stride (surface), cairo_image_surface_get_stride (surface),
cairo_image_surface_get_data (surface), cairo_image_surface_get_data (surface),
NULL)); &error));
clutter_texture_set_cogl_texture (bind->texture, texdata);
cogl_object_unref (texdata); if (texdata)
{
clutter_texture_set_cogl_texture (bind->texture, texdata);
cogl_object_unref (texdata);
}
else if (error)
{
g_warning ("Failed to allocate texture: %s", error->message);
cogl_error_free (error);
}
clutter_actor_set_opacity (CLUTTER_ACTOR (bind->texture), 255); clutter_actor_set_opacity (CLUTTER_ACTOR (bind->texture), 255);
} }

@ -71,6 +71,7 @@ create_corner_material (StCornerSpec *corner)
{ {
ClutterBackend *backend = clutter_get_default_backend (); ClutterBackend *backend = clutter_get_default_backend ();
CoglContext *ctx = clutter_backend_get_cogl_context (backend); CoglContext *ctx = clutter_backend_get_cogl_context (backend);
CoglError *error = NULL;
CoglHandle texture; CoglHandle texture;
cairo_t *cr; cairo_t *cr;
cairo_surface_t *surface; cairo_surface_t *surface;
@ -172,9 +173,15 @@ create_corner_material (StCornerSpec *corner)
CLUTTER_CAIRO_FORMAT_ARGB32, CLUTTER_CAIRO_FORMAT_ARGB32,
rowstride, rowstride,
data, data,
NULL)); &error));
if (error)
{
g_warning ("Failed to allocate texture: %s", error->message);
cogl_error_free (error);
}
g_free (data); g_free (data);
g_assert (texture != COGL_INVALID_HANDLE);
return texture; return texture;
} }
@ -347,7 +354,7 @@ st_theme_node_lookup_corner (StThemeNode *node,
float height, float height,
StCorner corner_id) StCorner corner_id)
{ {
CoglHandle texture, material; CoglHandle texture, material = COGL_INVALID_HANDLE;
char *key; char *key;
StTextureCache *cache; StTextureCache *cache;
StCornerSpec corner; StCornerSpec corner;
@ -396,8 +403,12 @@ st_theme_node_lookup_corner (StThemeNode *node,
key = corner_to_string (&corner); key = corner_to_string (&corner);
texture = st_texture_cache_load (cache, key, ST_TEXTURE_CACHE_POLICY_NONE, load_corner, &corner, NULL); texture = st_texture_cache_load (cache, key, ST_TEXTURE_CACHE_POLICY_NONE, load_corner, &corner, NULL);
material = _st_create_texture_pipeline (texture);
cogl_handle_unref (texture); if (texture)
{
material = _st_create_texture_pipeline (texture);
cogl_handle_unref (texture);
}
g_free (key); g_free (key);
@ -958,6 +969,7 @@ st_theme_node_prerender_background (StThemeNode *node,
{ {
ClutterBackend *backend = clutter_get_default_backend (); ClutterBackend *backend = clutter_get_default_backend ();
CoglContext *ctx = clutter_backend_get_cogl_context (backend); CoglContext *ctx = clutter_backend_get_cogl_context (backend);
CoglError *error = NULL;
StBorderImage *border_image; StBorderImage *border_image;
CoglHandle texture; CoglHandle texture;
guint radius[4]; guint radius[4];
@ -1277,7 +1289,13 @@ st_theme_node_prerender_background (StThemeNode *node,
CLUTTER_CAIRO_FORMAT_ARGB32, CLUTTER_CAIRO_FORMAT_ARGB32,
rowstride, rowstride,
data, data,
NULL)); &error));
if (error)
{
g_warning ("Failed to allocate texture: %s", error->message);
cogl_error_free (error);
}
cairo_destroy (cr); cairo_destroy (cr);
cairo_surface_destroy (surface); cairo_surface_destroy (surface);
@ -2206,6 +2224,7 @@ st_theme_node_prerender_shadow (StThemeNodePaintState *state)
int max_borders[4]; int max_borders[4];
int center_radius, corner_id; int center_radius, corner_id;
CoglHandle buffer, offscreen = COGL_INVALID_HANDLE; CoglHandle buffer, offscreen = COGL_INVALID_HANDLE;
CoglError *error = NULL;
/* Get infos from the node */ /* Get infos from the node */
if (state->alloc_width < node->box_shadow_min_width || if (state->alloc_width < node->box_shadow_min_width ||
@ -2246,10 +2265,12 @@ st_theme_node_prerender_shadow (StThemeNodePaintState *state)
state->box_shadow_height, state->box_shadow_height,
COGL_TEXTURE_NO_SLICING, COGL_TEXTURE_NO_SLICING,
COGL_PIXEL_FORMAT_ANY); COGL_PIXEL_FORMAT_ANY);
if (buffer != COGL_INVALID_HANDLE) if (buffer == NULL)
offscreen = cogl_offscreen_new_with_texture (buffer); return;
if (offscreen != COGL_INVALID_HANDLE) offscreen = cogl_offscreen_new_with_texture (buffer);
if (cogl_framebuffer_allocate (COGL_FRAMEBUFFER (offscreen), &error))
{ {
ClutterActorBox box = { 0, 0, state->box_shadow_width, state->box_shadow_height}; ClutterActorBox box = { 0, 0, state->box_shadow_width, state->box_shadow_height};
@ -2259,14 +2280,17 @@ st_theme_node_prerender_shadow (StThemeNodePaintState *state)
cogl_framebuffer_clear4f (offscreen, COGL_BUFFER_BIT_COLOR, 0, 0, 0, 0); cogl_framebuffer_clear4f (offscreen, COGL_BUFFER_BIT_COLOR, 0, 0, 0, 0);
st_theme_node_paint_borders (state, offscreen, &box, 0xFF); st_theme_node_paint_borders (state, offscreen, &box, 0xFF);
cogl_handle_unref (offscreen);
state->box_shadow_pipeline = _st_create_shadow_pipeline (st_theme_node_get_box_shadow (node), state->box_shadow_pipeline = _st_create_shadow_pipeline (st_theme_node_get_box_shadow (node),
buffer); buffer);
} }
else
{
cogl_error_free (error);
}
if (buffer != COGL_INVALID_HANDLE) cogl_handle_unref (offscreen);
cogl_handle_unref (buffer); cogl_handle_unref (buffer);
} }
static void static void

@ -241,6 +241,7 @@ setup_framebuffers (StThemeNodeTransition *transition,
{ {
StThemeNodeTransitionPrivate *priv = transition->priv; StThemeNodeTransitionPrivate *priv = transition->priv;
guint width, height; guint width, height;
CoglError *catch_error = NULL;
/* template material to avoid unnecessary shader compilation */ /* template material to avoid unnecessary shader compilation */
static CoglHandle material_template = COGL_INVALID_HANDLE; static CoglHandle material_template = COGL_INVALID_HANDLE;
@ -263,19 +264,33 @@ setup_framebuffers (StThemeNodeTransition *transition,
COGL_TEXTURE_NO_SLICING, COGL_TEXTURE_NO_SLICING,
COGL_PIXEL_FORMAT_ANY); COGL_PIXEL_FORMAT_ANY);
g_return_val_if_fail (priv->old_texture != COGL_INVALID_HANDLE, FALSE); if (priv->old_texture == COGL_INVALID_HANDLE)
g_return_val_if_fail (priv->new_texture != COGL_INVALID_HANDLE, FALSE); return FALSE;
if (priv->new_texture == COGL_INVALID_HANDLE)
return FALSE;
if (priv->old_offscreen) if (priv->old_offscreen)
cogl_handle_unref (priv->old_offscreen); cogl_handle_unref (priv->old_offscreen);
priv->old_offscreen = cogl_offscreen_new_with_texture (priv->old_texture); priv->old_offscreen = cogl_offscreen_new_with_texture (priv->old_texture);
if (!cogl_framebuffer_allocate (COGL_FRAMEBUFFER (priv->old_offscreen), &catch_error))
{
cogl_object_unref (priv->old_offscreen);
cogl_error_free (catch_error);
priv->old_offscreen = COGL_INVALID_HANDLE;
return FALSE;
}
if (priv->new_offscreen) if (priv->new_offscreen)
cogl_handle_unref (priv->new_offscreen); cogl_handle_unref (priv->new_offscreen);
priv->new_offscreen = cogl_offscreen_new_with_texture (priv->new_texture); priv->new_offscreen = cogl_offscreen_new_with_texture (priv->new_texture);
if (!cogl_framebuffer_allocate (COGL_FRAMEBUFFER (priv->new_offscreen), &catch_error))
g_return_val_if_fail (priv->old_offscreen != COGL_INVALID_HANDLE, FALSE); {
g_return_val_if_fail (priv->new_offscreen != COGL_INVALID_HANDLE, FALSE); cogl_object_unref (priv->new_offscreen);
cogl_error_free (catch_error);
priv->new_offscreen = COGL_INVALID_HANDLE;
return FALSE;
}
if (priv->material == NULL) if (priv->material == NULL)
{ {

@ -66,11 +66,30 @@ st_theme_node_class_init (StThemeNodeClass *klass)
object_class->finalize = st_theme_node_finalize; object_class->finalize = st_theme_node_finalize;
} }
static void
maybe_free_properties (StThemeNode *node)
{
if (node->properties)
{
g_free (node->properties);
node->properties = NULL;
node->n_properties = 0;
}
if (node->inline_properties)
{
/* This destroys the list, not just the head of the list */
cr_declaration_destroy (node->inline_properties);
node->inline_properties = NULL;
}
}
static void static void
on_custom_stylesheets_changed (StTheme *theme, on_custom_stylesheets_changed (StTheme *theme,
gpointer data) gpointer data)
{ {
StThemeNode *node = data; StThemeNode *node = data;
maybe_free_properties (node);
node->properties_computed = FALSE; node->properties_computed = FALSE;
} }
@ -119,18 +138,7 @@ st_theme_node_finalize (GObject *object)
g_strfreev (node->pseudo_classes); g_strfreev (node->pseudo_classes);
g_free (node->inline_style); g_free (node->inline_style);
if (node->properties) maybe_free_properties (node);
{
g_free (node->properties);
node->properties = NULL;
node->n_properties = 0;
}
if (node->inline_properties)
{
/* This destroys the list, not just the head of the list */
cr_declaration_destroy (node->inline_properties);
}
if (node->font_desc) if (node->font_desc)
{ {

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