Compare commits

..

173 Commits

Author SHA1 Message Date
11db28b216 tmp 2016-02-11 22:23:15 +00:00
614f37b116 location: dconf-based 2016-02-05 23:15:25 +00:00
779b1ae8e5 slider: Emit a 'drag-begin' signal when starting to drag
We are already emitting a 'drag-end' signal when no more dragging
is happening, so it makes sense to emit a 'drag-begin' too when
starting, so that apps interested in implementing different logic
between those two events can easily do it without needing to deal
with the underlying 'button-press-event' signal for the actor.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

This partly reverts 18b6f13395.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

This commit changes the wakeup to happen after 16ms.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

6
.gitignore vendored
View File

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

89
NEWS
View File

@ -1,3 +1,92 @@
3.19.4
======
* gdm: Do not allow bypassing disabled Sign In button [Michael; #746180]
* Style week numbers in calendar [Jakub; #683245]
* Misc. bug fixes [Christophe, Jakub, Rui; #759708, #760577, #760945]
Contributors:
Michael Catanzaro, Marek Černocký, Christophe Fergeau, Rui Matos,
Jakub Steiner
Translations:
Aurimas Černius [lt], Enrico Nicoletto [pt_BR], Andika Triwidada [id],
Mario Blättermann [de], Marek Černocký [cs], Kjartan Maraas [nb],
Muhammet Kara [tr], Stas Solovey [ru]
3.19.3
======
* Fix thumbnail scaling in window switcher on HiDPI [Florian; #758676]
* Update animated backgrounds on timezone changes [Florian; #758939]
* loginDialog: Update user list on user changes [Michael; #758568]
* Fix touch interaction on wayland [Carlos; #756748]
Contributors:
Michael Catanzaro, Carlos Garnacho, Kalev Lember, Florian Müllner
Translations:
Daniel Korostil [uk], Muhammet Kara [tr], Dušan Kazik [sk],
Baurzhan Muftakhidinov [kk], Marek Černocký [cs]
3.19.2
======
* Make gnome-shell DBus activatable [Ray; #741666]
* Fix browser plugin crash in Firefox [Carlos; #737932, #757940]
* Optionally show battery percentage in system status area [Bastien; #735771]
* Misc. bug fixes [Kalev, Florian, Bastien; #757418, #757668, #757779, #757816,
#745626, #758220]
Contributors:
Michael Biebl, Michael Catanzaro, Piotr Drąg, Carlos Garcia Campos,
Kalev Lember, Florian Müllner, Bastien Nocera, Ray Strode
Translations:
Pedro Albuquerque [pt], liushuyu [zh_CN], Yosef Or Boczko [he],
Jiri Grönroos [fi], Kjartan Maraas [nb], GNOME Translation Robot [gd],
Daniel Mustieles [es], Marek Černocký [cs], Kristjan SCHMIDT [eo],
Stas Solovey [ru]
3.19.1
======
* Respect text-scaling factor under wayland [Owen; #756447]
* Show the Bluetooth submenu when there were setup devices [Bastien; #723848]
* Misc. bug fixes [Florian, Cosimo, Rui, Ray, Owen, Jakub, Bastien;
#756697, #756714, #756605, #754814, #738942, #756983, #756925,
#757011, #673235, #757150]
Contributors:
Cosimo Cecchi, Rui Matos, Florian Müllner, Bastien Nocera, Jakub Steiner,
Ray Strode, Owen W. Taylor
Translations:
Kjartan Maraas [nb], Khaled Hosny [ar], Balázs Meskó [hu],
Daniel Șerbănescu [ro], Marek Černocký [cs]
3.18.1
======
* Fix screen freezes when a notification is pushed [Carlos; #755425]
* Fix overzealous ellipsization in system status menu [Adel, Florian; #708472]
* Hide app menu when disabled by setting [Florian; #745919]
* Fix lightbox effect when animations are disabled [Rui; #755827]
* Do not mark hotplug notifications as critical [Florian; #657923]
* Fix icons getting cut off in dash [Florian; #745649]
* Animate fullscreen/unfullscreen operations [Cosimo; #707248]
* Misc. bug fixes [Florian, Owen; #748919, #674799, #754581]
Contributors:
Emmanuele Bassi, Michael Catanzaro, Cosimo Cecchi, Matthias Clasen,
Adel Gadllah, Carlos Garnacho, Ekaterina Gerasimova, Rui Matos,
Florian Müllner, Owen W. Taylor
Translations:
Марко Костић [sr], Милош Поповић [sr@latin], Khaled Hosny [ar],
Trần Ngọc Quân [vi], Petr Kovar [cs], Alexandre Franke [fr],
Fran Dieguez [gl], Anders Jonsson [sv], Piotr Drąg [pl], Dušan Kazik [sk],
Milo Casagrande [it], Changwoo Ryu [ko], Stas Solovey [ru],
Rafael Fontenelle [pt_BR], Tom Tryfonidis [el], Aurimas Černius [lt],
Seán de Búrca [ga], Christian Kirbach [de], Jiri Grönroos [fi],
Pedro Albuquerque [pt], Baurzhan Muftakhidinov [kk], Daniel Mustieles [es],
Marek Černocký [cs], Ask Hjorth Larsen [da], Inaki Larranaga Murgoitio [eu]
3.18.0 3.18.0
====== ======

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -199,7 +199,7 @@ StScrollBar {
border-radius: 9px; border-radius: 9px;
color: #eeeeec; color: #eeeeec;
background-color: rgba(23, 25, 26, 0.95); background-color: rgba(23, 25, 26, 0.95);
border: 3px solid rgba(238, 238, 236, 0.5); } border: 1px solid rgba(238, 238, 236, 0.2); }
.modal-dialog .modal-dialog-content-box { .modal-dialog .modal-dialog-content-box {
padding: 24px; } padding: 24px; }
.modal-dialog .run-dialog-entry { .modal-dialog .run-dialog-entry {
@ -224,7 +224,7 @@ StScrollBar {
/* End Session Dialog */ /* End Session Dialog */
.end-session-dialog { .end-session-dialog {
spacing: 42px; spacing: 42px;
border: 3px solid rgba(238, 238, 236, 0.2); } border: 1px solid rgba(238, 238, 236, 0.2); }
.end-session-dialog-list { .end-session-dialog-list {
padding-top: 20px; } padding-top: 20px; }
@ -408,9 +408,9 @@ StScrollBar {
spacing-rows: 15px; spacing-rows: 15px;
spacing-columns: 1em; } spacing-columns: 1em; }
/* Popvers/Menus */ /* Popovers/Menus */
.popup-menu { .popup-menu {
min-width: 200px; } min-width: 15em; }
.popup-menu .popup-sub-menu { .popup-menu .popup-sub-menu {
background-color: black; background-color: black;
box-shadow: inset 0 -1px 0px #0d0d0d; } box-shadow: inset 0 -1px 0px #0d0d0d; }
@ -625,6 +625,8 @@ StScrollBar {
#panel .panel-status-indicators-box, #panel .panel-status-indicators-box,
#panel .panel-status-menu-box { #panel .panel-status-menu-box {
spacing: 2px; } spacing: 2px; }
#panel .power-status.panel-status-indicators-box {
spacing: 0; }
#panel .screencast-indicator { #panel .screencast-indicator {
color: #f57900; } color: #f57900; }
@ -750,9 +752,20 @@ StScrollBar {
color: rgba(255, 255, 255, 0.15); color: rgba(255, 255, 255, 0.15);
opacity: 0.5; } opacity: 0.5; }
.calendar-week-number {
font-size: 70%;
font-weight: bold;
width: 2.8em;
height: 2em;
border-radius: 2px 1em 2px 2px;
padding: 0.9em 0 0;
margin: 3px;
background-color: rgba(255, 255, 255, 0.1);
color: #000; }
/* Message list */ /* Message list */
.message-list { .message-list {
width: 420px; } width: 31.5em; }
.message-list-sections { .message-list-sections {
spacing: 1.5em; } spacing: 1.5em; }
@ -823,7 +836,7 @@ StScrollBar {
color: transparent; } color: transparent; }
.aggregate-menu { .aggregate-menu {
width: 360px; } min-width: 21em; }
.aggregate-menu .popup-menu-icon { .aggregate-menu .popup-menu-icon {
padding: 0 4px; } padding: 0 4px; }
@ -960,10 +973,14 @@ StScrollBar {
.search-entry { .search-entry {
width: 320px; width: 320px;
padding: 7px 9px; padding: 7px 9px;
border-radius: 6px; } border-radius: 6px;
border-color: #747467;
color: #eeeeec;
background-color: #2e3436; }
.search-entry:focus { .search-entry:focus {
padding: 6px 8px; padding: 6px 8px;
border-width: 2px; } border-width: 2px;
border-color: #215d9c; }
.search-entry .search-entry-icon { .search-entry .search-entry-icon {
icon-size: 1em; icon-size: 1em;
padding: 0 4px; padding: 0 4px;

View File

@ -199,7 +199,7 @@ StScrollBar {
border-radius: 9px; border-radius: 9px;
color: #eeeeec; color: #eeeeec;
background-color: rgba(23, 25, 26, 0.95); background-color: rgba(23, 25, 26, 0.95);
border: 3px solid rgba(238, 238, 236, 0.5); } border: 1px solid rgba(238, 238, 236, 0.2); }
.modal-dialog .modal-dialog-content-box { .modal-dialog .modal-dialog-content-box {
padding: 24px; } padding: 24px; }
.modal-dialog .run-dialog-entry { .modal-dialog .run-dialog-entry {
@ -224,7 +224,7 @@ StScrollBar {
/* End Session Dialog */ /* End Session Dialog */
.end-session-dialog { .end-session-dialog {
spacing: 42px; spacing: 42px;
border: 3px solid rgba(238, 238, 236, 0.2); } border: 1px solid rgba(238, 238, 236, 0.2); }
.end-session-dialog-list { .end-session-dialog-list {
padding-top: 20px; } padding-top: 20px; }
@ -408,9 +408,9 @@ StScrollBar {
spacing-rows: 15px; spacing-rows: 15px;
spacing-columns: 1em; } spacing-columns: 1em; }
/* Popvers/Menus */ /* Popovers/Menus */
.popup-menu { .popup-menu {
min-width: 200px; } min-width: 15em; }
.popup-menu .popup-sub-menu { .popup-menu .popup-sub-menu {
background-color: #343a3a; background-color: #343a3a;
box-shadow: inset 0 -1px 0px #282c2c; } box-shadow: inset 0 -1px 0px #282c2c; }
@ -625,6 +625,8 @@ StScrollBar {
#panel .panel-status-indicators-box, #panel .panel-status-indicators-box,
#panel .panel-status-menu-box { #panel .panel-status-menu-box {
spacing: 2px; } spacing: 2px; }
#panel .power-status.panel-status-indicators-box {
spacing: 0; }
#panel .screencast-indicator { #panel .screencast-indicator {
color: #f57900; } color: #f57900; }
@ -750,9 +752,20 @@ StScrollBar {
color: rgba(238, 238, 236, 0.15); color: rgba(238, 238, 236, 0.15);
opacity: 0.5; } opacity: 0.5; }
.calendar-week-number {
font-size: 70%;
font-weight: bold;
width: 2.8em;
height: 2em;
border-radius: 2px 1em 2px 2px;
padding: 0.9em 0 0;
margin: 3px;
background-color: rgba(238, 238, 236, 0.1);
color: #393f3f; }
/* Message list */ /* Message list */
.message-list { .message-list {
width: 420px; } width: 31.5em; }
.message-list-sections { .message-list-sections {
spacing: 1.5em; } spacing: 1.5em; }
@ -823,7 +836,7 @@ StScrollBar {
color: transparent; } color: transparent; }
.aggregate-menu { .aggregate-menu {
width: 280px; } min-width: 21em; }
.aggregate-menu .popup-menu-icon { .aggregate-menu .popup-menu-icon {
padding: 0 4px; } padding: 0 4px; }
@ -960,10 +973,14 @@ StScrollBar {
.search-entry { .search-entry {
width: 320px; width: 320px;
padding: 7px 9px; padding: 7px 9px;
border-radius: 6px; } border-radius: 6px;
border-color: #747467;
color: #eeeeec;
background-color: #2e3436; }
.search-entry:focus { .search-entry:focus {
padding: 6px 8px; padding: 6px 8px;
border-width: 2px; } border-width: 2px;
border-color: #215d9c; }
.search-entry .search-entry-icon { .search-entry .search-entry-icon {
icon-size: 1em; icon-size: 1em;
padding: 0 4px; padding: 0 4px;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -26,6 +26,7 @@ const RENAMED_DESKTOP_IDS = {
'gnome-photos.desktop': 'org.gnome.Photos.desktop', 'gnome-photos.desktop': 'org.gnome.Photos.desktop',
'gnome-screenshot.desktop': 'org.gnome.Screenshot.desktop', 'gnome-screenshot.desktop': 'org.gnome.Screenshot.desktop',
'gnome-software.desktop': 'org.gnome.Software.desktop', 'gnome-software.desktop': 'org.gnome.Software.desktop',
'gnome-terminal.desktop': 'org.gnome.Terminal.desktop',
'gnome-weather.desktop': 'org.gnome.Weather.Application.desktop', 'gnome-weather.desktop': 'org.gnome.Weather.Application.desktop',
'gnomine.desktop': 'gnome-mines.desktop', 'gnomine.desktop': 'gnome-mines.desktop',
'gnotravex.desktop': 'gnome-tetravex.desktop', 'gnotravex.desktop': 'gnome-tetravex.desktop',

View File

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

View File

@ -725,7 +725,8 @@ const Calendar = new Lang.Class({
// nRows here means 6 weeks + one header + one navbar // nRows here means 6 weeks + one header + one navbar
let nRows = 8; let nRows = 8;
while (row < 8) { while (row < 8) {
let button = new St.Button({ label: iter.getDate().toString(), // xgettext:no-javascript-format
let button = new St.Button({ label: iter.toLocaleFormat(C_("date day number format", "%d")),
can_focus: true }); can_focus: true });
let rtl = button.get_text_direction() == Clutter.TextDirection.RTL; let rtl = button.get_text_direction() == Clutter.TextDirection.RTL;

View File

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

View File

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

View File

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

View File

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

View File

@ -78,6 +78,7 @@ let _startDate;
let _defaultCssStylesheet = null; let _defaultCssStylesheet = null;
let _cssStylesheet = null; let _cssStylesheet = null;
let _a11ySettings = null; let _a11ySettings = null;
let _themeResource = null;
function _sessionUpdated() { function _sessionUpdated() {
if (sessionMode.isPrimary) if (sessionMode.isPrimary)
@ -137,9 +138,7 @@ function _initializeUI() {
Shell.WindowTracker.get_default(); Shell.WindowTracker.get_default();
Shell.AppUsage.get_default(); Shell.AppUsage.get_default();
let resource = Gio.Resource.load(global.datadir + '/gnome-shell-theme.gresource'); reloadThemeResource();
resource._register();
_loadDefaultStylesheet(); _loadDefaultStylesheet();
// Setup the stage hierarchy early // Setup the stage hierarchy early
@ -290,6 +289,14 @@ function setThemeStylesheet(cssStylesheet) {
_cssStylesheet = cssStylesheet ? Gio.File.new_for_path(cssStylesheet) : null; _cssStylesheet = cssStylesheet ? Gio.File.new_for_path(cssStylesheet) : null;
} }
function reloadThemeResource() {
if (_themeResource)
_themeResource._unregister();
_themeResource = Gio.Resource.load(global.datadir + '/gnome-shell-theme.gresource');
_themeResource._register();
}
/** /**
* loadTheme: * loadTheme:
* *

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -7,12 +7,17 @@ const Lang = imports.lang;
const Main = imports.ui.main; const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu; const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu; const PopupMenu = imports.ui.popupMenu;
const ModalDialog = imports.ui.modalDialog;
const Shell = imports.gi.Shell; const Shell = imports.gi.Shell;
const St = imports.gi.St;
const LOCATION_SCHEMA = 'org.gnome.system.location'; const LOCATION_SCHEMA = 'org.gnome.system.location';
const MAX_ACCURACY_LEVEL = 'max-accuracy-level'; const MAX_ACCURACY_LEVEL = 'max-accuracy-level';
const ENABLED = 'enabled'; const ENABLED = 'enabled';
const APP_PERMISSIONS_TABLE = 'desktop';
const APP_PERMISSIONS_ID = 'geolocation';
const GeoclueAccuracyLevel = { const GeoclueAccuracyLevel = {
NONE: 0, NONE: 0,
COUNTRY: 1, COUNTRY: 1,
@ -46,6 +51,26 @@ var AgentIface = '<node> \
</interface> \ </interface> \
</node>'; </node>';
var XdgAppIface = '<node> \
<interface name="org.freedesktop.XdgApp.PermissionStore"> \
<method name="Lookup"> \
<arg name="table" type="s" direction="in"/> \
<arg name="id" type="s" direction="in"/> \
<arg name="permissions" type="a{sas}" direction="out"/> \
<arg name="data" type="v" direction="out"/> \
</method> \
<method name="Set"> \
<arg name="table" type="s" direction="in"/> \
<arg name="create" type="b" direction="in"/> \
<arg name="id" type="s" direction="in"/> \
<arg name="app_permissions" type="a{sas}" direction="in"/> \
<arg name="data" type="v" direction="in"/> \
</method> \
</interface> \
</node>';
const PermissionStore = Gio.DBusProxy.makeProxyWrapper(XdgAppIface);
const Indicator = new Lang.Class({ const Indicator = new Lang.Class({
Name: 'LocationIndicator', Name: 'LocationIndicator',
Extends: PanelMenu.SystemIndicator, Extends: PanelMenu.SystemIndicator,
@ -83,64 +108,200 @@ const Indicator = new Lang.Class({
this._onSessionUpdated(); this._onSessionUpdated();
this._onMaxAccuracyLevelChanged(); this._onMaxAccuracyLevelChanged();
this._connectToGeoclue(); this._connectToGeoclue();
this._connectToPermissionStore();
}, },
get MaxAccuracyLevel() { get MaxAccuracyLevel() {
return this._getMaxAccuracyLevel(); return this._getMaxAccuracyLevel();
}, },
// We (and geoclue) have currently no way to reliably identifying apps so AuthorizeAppAsync: function(params, invocation) {
// for now, lets just authorize all apps as long as they provide a valid let [desktop_id, reqAccuracyLevel] = params;
// desktop ID. We also ensure they don't get more accuracy than global max. log("%s is requesting location".format(desktop_id));
AuthorizeApp: function(desktop_id, reqAccuracyLevel) {
let callback = function(level, timesAllowed) {
if (level >= GeoclueAccuracyLevel.NONE && timesAllowed > 2) {
log("%s is in store".format(desktop_id));
let accuracyLevel = clamp(reqAccuracyLevel, 0, level);
this._completeAuthorizeApp(desktop_id,
accuracyLevel,
timesAllowed,
invocation);
} else {
log("%s not in store".format(desktop_id));
this._userAuthorizeApp(desktop_id,
reqAccuracyLevel,
timesAllowed,
invocation);
}
}
this._fetchPermissionFromStore(desktop_id, Lang.bind(this, callback);
},
_userAuthorizeApp: function(desktopId, reqAccuracyLevel, timesAllowed, invocation) {
var appSystem = Shell.AppSystem.get_default(); var appSystem = Shell.AppSystem.get_default();
var app = appSystem.lookup_app(desktop_id + ".desktop"); var app = appSystem.lookup_app(desktopId + ".desktop");
if (app == null) { if (app == null) {
return [false, 0]; this._completeAuthorizeApp(desktopId,
GeoclueAccuracyLevel.NONE,
timesAllowed,
invocation);
return;
} }
let allowedAccuracyLevel = clamp(reqAccuracyLevel, 0, this._getMaxAccuracyLevel()); var name = app.get_name();
return [true, allowedAccuracyLevel]; var icon = app.get_app_info().get_icon();
var reason = app.get_string("X-Geoclue-Reason");
var allowCallback = function() {
this._completeAuthorizeApp(desktopId,
reqAccuracyLevel,
timesAllowed,
invocation);
};
var denyCallback = function() {
this._completeAuthorizeApp(desktopId,
GeoclueAccuracyLevel.NONE,
timesAllowed,
invocation);
};
this._showAppAuthDialog(name,
reason,
icon,
Lang.bind(this, allowCallback),
Lang.bind(this, denyCallback));
},
_showAppAuthDialog: function(name, reason, icon, allowCallback, denyCallback) {
if (this._dialog == null)
this._dialog = new GeolocationDialog(name, reason, icon);
else
this._dialog.update(name, reason, icon);
let closedId = this._dialog.connect('closed', function() {
this._dialog.disconnect(closedId);
if (this._dialog.allowed)
allowCallback ();
else
denyCallback ();
}.bind(this));
this._dialog.open(global.get_current_time ());
},
_completeAuthorizeApp: function(desktopId,
accuracyLevel,
timesAllowed,
invocation) {
if (accuracyLevel == GeoclueAccuracyLevel.NONE) {
invocation.return_value(GLib.Variant.new('(bu)',
[false, accuracyLevel]));
this._saveToPermissionStore(desktopId, accuracyLevel, 0);
return;
}
let allowedAccuracyLevel = clamp(accuracyLevel,
0,
this._getMaxAccuracyLevel());
invocation.return_value(GLib.Variant.new('(bu)',
[true, allowedAccuracyLevel]));
this._saveToPermissionStore(desktopId, allowedAccuracyLevel, timesAllowed + 1);
},
_fetchPermissionFromStore: function(desktopId, callback) {
if (this._permStoreProxy == null) {
callback (-1, 0);
return;
}
this._permStoreProxy.LookupRemote(APP_PERMISSIONS_TABLE,
APP_PERMISSIONS_ID,
function(result, error) {
if (error != null) {
log(error.message);
callback(-1, 0);
return;
}
let [permissions, data] = result;
let permission = permissions[desktopId];
if (permission == null) {
callback(-1, 0);
return;
}
let levelStr = permission[0];
let level = GeoclueAccuracyLevel[levelStr.toUpperCase()] ||
GeoclueAccuracyLevel.NONE;
let timesAllowed = data.get_byte();
callback(level, timesAllowed);
});
},
_saveToPermissionStore: function(desktopId,
allowedAccuracyLevel,
timesAllowed) {
if (timesAllowed > 2 || this._permStoreProxy == null)
return;
let levelStr = Object.keys(GeoclueAccuracyLevel)[allowedAccuracyLevel];
let permission = { desktopId: [levelStr] };
let permissions = GLib.Variant.new('a{sas}', [permission]));
let data = GLib.Variant.new('y', timesAllowed);
this._permStoreProxy.SetRemote(APP_PERMISSIONS_TABLE,
true,
APP_PERMISSIONS_ID,
permissions,
data,
function (result, error) {
log(error.message);
});
}, },
_syncIndicator: function() { _syncIndicator: function() {
if (this._proxy == null) { if (this._managerProxy == null) {
this._indicator.visible = false; this._indicator.visible = false;
this._item.actor.visible = false; this._item.actor.visible = false;
return; return;
} }
this._indicator.visible = this._proxy.InUse; this._indicator.visible = this._managerProxy.InUse;
this._item.actor.visible = this._indicator.visible; this._item.actor.visible = this._indicator.visible;
this._updateMenuLabels(); this._updateMenuLabels();
}, },
_connectToGeoclue: function() { _connectToGeoclue: function() {
if (this._proxy != null || this._connecting) if (this._managerProxy != null || this._connecting)
return false; return false;
this._connecting = true; this._connecting = true;
new GeoclueManager(Gio.DBus.system, new GeoclueManager(Gio.DBus.system,
'org.freedesktop.GeoClue2', 'org.freedesktop.GeoClue2',
'/org/freedesktop/GeoClue2/Manager', '/org/freedesktop/GeoClue2/Manager',
Lang.bind(this, this._onProxyReady)); Lang.bind(this, this._onManagerProxyReady));
return true; return true;
}, },
_onProxyReady: function(proxy, error) { _onManagerProxyReady: function(proxy, error) {
if (error != null) { if (error != null) {
log(error.message); log(error.message);
this._connecting = false; this._connecting = false;
return; return;
} }
this._proxy = proxy; this._managerProxy = proxy;
this._propertiesChangedId = this._proxy.connect('g-properties-changed', this._propertiesChangedId = this._managerProxy.connect('g-properties-changed',
Lang.bind(this, this._onGeocluePropsChanged)); Lang.bind(this, this._onGeocluePropsChanged));
this._syncIndicator(); this._syncIndicator();
this._proxy.AddAgentRemote('gnome-shell', Lang.bind(this, this._onAgentRegistered)); this._managerProxy.AddAgentRemote('gnome-shell', Lang.bind(this, this._onAgentRegistered));
}, },
_onAgentRegistered: function(result, error) { _onAgentRegistered: function(result, error) {
@ -153,10 +314,10 @@ const Indicator = new Lang.Class({
_onGeoclueVanished: function() { _onGeoclueVanished: function() {
if (this._propertiesChangedId) { if (this._propertiesChangedId) {
this._proxy.disconnect(this._propertiesChangedId); this._managerProxy.disconnect(this._propertiesChangedId);
this._propertiesChangedId = 0; this._propertiesChangedId = 0;
} }
this._proxy = null; this._managerProxy = null;
this._syncIndicator(); this._syncIndicator();
}, },
@ -211,9 +372,85 @@ const Indicator = new Lang.Class({
let unpacked = properties.deep_unpack(); let unpacked = properties.deep_unpack();
if ("InUse" in unpacked) if ("InUse" in unpacked)
this._syncIndicator(); this._syncIndicator();
},
_connectToPermissionStore: function() {
this._permStoreProxy = null;
new PermissionStore(Gio.DBus.session,
'org.freedesktop.XdgApp',
'/org/freedesktop/XdgApp/PermissionStore',
Lang.bind(this, this._onPermStoreProxyReady));
},
_onPermStoreProxyReady: function(proxy, error) {
if (error != null) {
log(error.message);
return;
} }
this._permStoreProxy = proxy;
},
}); });
function clamp(value, min, max) { function clamp(value, min, max) {
return Math.max(min, Math.min(max, value)); return Math.max(min, Math.min(max, value));
} }
const GeolocationDialog = new Lang.Class({
Name: 'GeolocationDialog',
Extends: ModalDialog.ModalDialog,
// FIXME: Would be nice to show the application icon too
_init: function(name, reason, icon) {
this.parent({ destroyOnClose: false });
let text = _("'%s' is requesting access to location data.").format (name);
this._label = new St.Label({ style_class: 'prompt-dialog-description',
text: text });
this.contentLayout.add(this._label, {});
if (reason != null) {
this._reasonLabel = new St.Label({ style_class: 'prompt-dialog-description',
text: reason });
this.contentLayout.add(this._reasonLabel, {});
} else {
this._reasonLabel = null;
}
this._allowButton = this.addButton({ label: _("Confirm"),
action: this._onAllowClicked.bind(this),
default: false },
{ expand: true, x_fill: false, x_align: St.Align.END });
this._denyButton = this.addButton({ label: _("Cancel"),
action: this._onDisallowClicked.bind(this),
default: true },
{ expand: true, x_fill: false, x_align: St.Align.START });
},
update: function(name, reason, icon) {
let text = _("'%s' is requesting access to location data.").format (name);
this._label.text = text;
if (this._reasonLabel != null) {
this.contentLayout.remove(this._reasonLabel, {});
this._reasonLabel = null;
}
if (reason != null) {
this._reasonLabel = new St.Label({ style_class: 'prompt-dialog-description',
text: reason });
this.contentLayout.add(this._reasonLabel, {});
}
},
_onAllowClicked: function() {
this.allowed = true;
this.close();
},
_onDisallowClicked: function() {
this.allowed = false;
this.close();
}
});

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -2,9 +2,8 @@
# Please keep this file sorted alphabetically. # Please keep this file sorted alphabetically.
[encoding: UTF-8] [encoding: UTF-8]
data/50-gnome-shell-system.xml.in data/50-gnome-shell-system.xml.in
data/gnome-shell.desktop.in.in
data/gnome-shell-extension-prefs.desktop.in.in data/gnome-shell-extension-prefs.desktop.in.in
data/gnome-shell-wayland.desktop.in.in data/org.gnome.Shell.desktop.in.in
data/org.gnome.shell.gschema.xml.in.in data/org.gnome.shell.gschema.xml.in.in
data/org.gnome.Shell.PortalHelper.desktop.in data/org.gnome.Shell.PortalHelper.desktop.in
js/extensionPrefs/main.js js/extensionPrefs/main.js

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-23 23:52+0200\n" "POT-Creation-Date: 2015-10-10 15:24+0400\n"
"PO-Revision-Date: 2015-09-23 23:52+0200\n" "PO-Revision-Date: 2015-09-23 23:52+0200\n"
"Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n" "Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n"
"Language-Team: Arabic <doc@arabeyes.org>\n" "Language-Team: Arabic <doc@arabeyes.org>\n"
@ -480,8 +480,7 @@ msgstr "غيّر الخلفية…"
msgid "Display Settings" msgid "Display Settings"
msgstr "إعدادات العرض" msgstr "إعدادات العرض"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "الإعدادات" msgstr "الإعدادات"
@ -595,7 +594,7 @@ msgstr "وُصّل قرص خارجي"
msgid "External drive disconnected" msgid "External drive disconnected"
msgstr "فُصل القرص الخارجي" msgstr "فُصل القرص الخارجي"
#: ../js/ui/components/autorunManager.js:354 #: ../js/ui/components/autorunManager.js:351
#, javascript-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
msgstr "افتح باستخدام %s" msgstr "افتح باستخدام %s"
@ -773,7 +772,6 @@ msgid "Log Out"
msgstr "خروج" msgstr "خروج"
#: ../js/ui/endSessionDialog.js:67 #: ../js/ui/endSessionDialog.js:67
#, 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 تلقائيا الآن."
@ -784,7 +782,6 @@ msgstr[4] "سيُخرج %s تلقائيا بعد %d ثانية."
msgstr[5] "سيُخرج %s تلقائيا بعد %d ثانية." msgstr[5] "سيُخرج %s تلقائيا بعد %d ثانية."
#: ../js/ui/endSessionDialog.js:72 #: ../js/ui/endSessionDialog.js:72
#, 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."
msgstr[0] "ستُخرج تلقائيا الآن." msgstr[0] "ستُخرج تلقائيا الآن."
@ -810,7 +807,6 @@ msgid "Install Updates & Power Off"
msgstr "ثبّت التحديثات ثم أطفئ" msgstr "ثبّت التحديثات ثم أطفئ"
#: ../js/ui/endSessionDialog.js:87 #: ../js/ui/endSessionDialog.js:87
#, 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."
msgstr[0] "سيُطفأ النظام تلقائيا الآن." msgstr[0] "سيُطفأ النظام تلقائيا الآن."
@ -841,7 +837,6 @@ msgid "Restart"
msgstr "إعادة التشغيل" msgstr "إعادة التشغيل"
#: ../js/ui/endSessionDialog.js:105 #: ../js/ui/endSessionDialog.js:105
#, 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."
msgstr[0] "سيُعاد تشغيل النظام تلقائيا الآن." msgstr[0] "سيُعاد تشغيل النظام تلقائيا الآن."
@ -857,7 +852,6 @@ msgid "Restart & Install Updates"
msgstr "أعد التشغيل و ثبّت التحديثات" msgstr "أعد التشغيل و ثبّت التحديثات"
#: ../js/ui/endSessionDialog.js:121 #: ../js/ui/endSessionDialog.js:121
#, 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."
@ -997,17 +991,22 @@ msgstr "نظرة عامة"
msgid "Type to search…" msgid "Type to search…"
msgstr "اكتب نصا للبحث عنه…" msgstr "اكتب نصا للبحث عنه…"
#: ../js/ui/panel.js:352 #: ../js/ui/panel.js:358
msgid "Quit" msgid "Quit"
msgstr "أنْهِ" msgstr "أنْهِ"
#. Translators: If there is no suitable word for "Activities" #. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". #. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:404 #: ../js/ui/panel.js:414
msgid "Activities" msgid "Activities"
msgstr "الأنشطة" msgstr "الأنشطة"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:660
msgctxt "System menu in the top bar"
msgid "System"
msgstr "النظام"
#: ../js/ui/panel.js:764
msgid "Top Bar" msgid "Top Bar"
msgstr "الشريط العلوي" msgstr "الشريط العلوي"
@ -1039,7 +1038,6 @@ msgid "%A, %B %d"
msgstr "%A، %d %B" msgstr "%A، %d %B"
#: ../js/ui/screenShield.js:144 #: ../js/ui/screenShield.js:144
#, javascript-format
msgid "%d new message" msgid "%d new message"
msgid_plural "%d new messages" msgid_plural "%d new messages"
msgstr[0] "لا رسائل جديدة" msgstr[0] "لا رسائل جديدة"
@ -1050,7 +1048,6 @@ msgstr[4] "%d رسالة جديدة"
msgstr[5] "%d رسالة جديدة" msgstr[5] "%d رسالة جديدة"
#: ../js/ui/screenShield.js:146 #: ../js/ui/screenShield.js:146
#, javascript-format
msgid "%d new notification" msgid "%d new notification"
msgid_plural "%d new notifications" msgid_plural "%d new notifications"
msgstr[0] "لا تنبيهات جديدة" msgstr[0] "لا تنبيهات جديدة"
@ -1226,13 +1223,13 @@ msgstr "<غير معروفة>"
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308 #: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
#, javascript-format #, javascript-format
msgid "%s Off" msgid "%s Off"
msgstr "%s مغلق" msgstr "%s مغلق"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:454 #: ../js/ui/status/network.js:454
#, javascript-format #, javascript-format
msgid "%s Connected" msgid "%s Connected"
msgstr "%s مُتصل" msgstr "%s مُتصل"
#. Translators: this is for network devices that are physically present but are not #. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu); #. under NetworkManager's control (and thus cannot be used in the menu);
@ -1240,19 +1237,19 @@ msgstr "%s مُتصل"
#: ../js/ui/status/network.js:459 #: ../js/ui/status/network.js:459
#, javascript-format #, javascript-format
msgid "%s Unmanaged" msgid "%s Unmanaged"
msgstr "%s غير مُدار" msgstr "%s غير مُدار"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:462 #: ../js/ui/status/network.js:462
#, javascript-format #, javascript-format
msgid "%s Disconnecting" msgid "%s Disconnecting"
msgstr "%s يقطع الاتّصال" msgstr "%s يقطع الاتّصال"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300 #: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
#, javascript-format #, javascript-format
msgid "%s Connecting" msgid "%s Connecting"
msgstr "%s يتّصل" msgstr "%s يتّصل"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier #. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: ../js/ui/status/network.js:472 #: ../js/ui/status/network.js:472
@ -1272,7 +1269,7 @@ msgstr "برمجيات %s المغروسة (Firmware) غير متاحة"
#: ../js/ui/status/network.js:484 #: ../js/ui/status/network.js:484
#, javascript-format #, javascript-format
msgid "%s Unavailable" msgid "%s Unavailable"
msgstr "%s غير متاح" msgstr "%s غير متاح"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:487 #: ../js/ui/status/network.js:487
@ -1299,7 +1296,7 @@ msgstr "عتاد %s مُعَطَّل"
#: ../js/ui/status/network.js:592 #: ../js/ui/status/network.js:592
#, javascript-format #, javascript-format
msgid "%s Disabled" msgid "%s Disabled"
msgstr "%s معطّل" msgstr "%s معطّل"
#: ../js/ui/status/network.js:632 #: ../js/ui/status/network.js:632
msgid "Use as Internet connection" msgid "Use as Internet connection"
@ -1367,7 +1364,7 @@ msgstr "نقطة اتصال %s نشطة"
#: ../js/ui/status/network.js:1311 #: ../js/ui/status/network.js:1311
#, javascript-format #, javascript-format
msgid "%s Not Connected" msgid "%s Not Connected"
msgstr "%s غير متّصل" msgstr "%s غير متّصل"
#: ../js/ui/status/network.js:1411 #: ../js/ui/status/network.js:1411
msgid "connecting..." msgid "connecting..."
@ -1395,9 +1392,8 @@ msgid "VPN"
msgstr "ش‌خ‌ف (VPN)" msgstr "ش‌خ‌ف (VPN)"
#: ../js/ui/status/network.js:1513 #: ../js/ui/status/network.js:1513
#, fuzzy
msgid "VPN Off" msgid "VPN Off"
msgstr "أطفئ الحاسوب" msgstr "أطفِئ ش‌خ‌ف (VPN) "
#: ../js/ui/status/network.js:1697 #: ../js/ui/status/network.js:1697
msgid "Connection failed" msgid "Connection failed"
@ -1513,7 +1509,6 @@ msgid "Keep Changes"
msgstr "أبق على التغييرات" msgstr "أبق على التغييرات"
#: ../js/ui/windowManager.js:103 #: ../js/ui/windowManager.js:103
#, 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"
msgstr[0] "سيُتراجع عن التغييرات الآن" msgstr[0] "سيُتراجع عن التغييرات الآن"
@ -1628,19 +1623,19 @@ msgstr[5] "%u مدخل"
msgid "System Sounds" msgid "System Sounds"
msgstr "أصوات النظام" msgstr "أصوات النظام"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "اطبع الإصدارة" msgstr "اطبع الإصدارة"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "الوضع الذي يستخدمه مدير ولوج جنوم لشاشة الولوج" msgstr "الوضع الذي يستخدمه مدير ولوج جنوم لشاشة الولوج"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "استخدم طورا معينا، مثلا: \"gdm\" لشاشة الولوج" msgstr "استخدم طورا معينا، مثلا: \"gdm\" لشاشة الولوج"
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "اسرد كل الأطوار الممكنة" msgstr "اسرد كل الأطوار الممكنة"

650
po/bg.po

File diff suppressed because it is too large Load Diff

447
po/cs.po

File diff suppressed because it is too large Load Diff

View File

@ -20,15 +20,15 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell\n" "Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-18 17:05+0200\n" "POT-Creation-Date: 2015-10-11 18:34+0200\n"
"PO-Revision-Date: 2015-09-04 21:21+0100\n" "PO-Revision-Date: 2015-10-11 18:33+0200\n"
"Last-Translator: Kris Thomsen <mail@kristhomsen.dk>\n" "Last-Translator: scootergrisen\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n" "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"Language: da\n" "Language: da\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../data/50-gnome-shell-system.xml.in.h:1 #: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System" msgid "System"
@ -522,8 +522,7 @@ msgstr "Skift baggrund…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Skærmindstillinger" msgstr "Skærmindstillinger"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "Indstillinger" msgstr "Indstillinger"
@ -599,33 +598,33 @@ msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Hele dagen" msgstr "Hele dagen"
#: ../js/ui/calendar.js:1291 #: ../js/ui/calendar.js:1295
msgid "Clear section" msgid "Clear section"
msgstr "Ryd afsnit" msgstr "Ryd afsnit"
#: ../js/ui/calendar.js:1518 #: ../js/ui/calendar.js:1522
msgid "Events" msgid "Events"
msgstr "Begivenheder" msgstr "Begivenheder"
#: ../js/ui/calendar.js:1527 #: ../js/ui/calendar.js:1531
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d. %B" msgstr "%A, %d. %B"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:1535
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A, %d. %B %Y" msgstr "%A, %d. %B %Y"
#: ../js/ui/calendar.js:1616 #: ../js/ui/calendar.js:1620
msgid "Notifications" msgid "Notifications"
msgstr "Beskeder" msgstr "Beskeder"
#: ../js/ui/calendar.js:1767 #: ../js/ui/calendar.js:1771
msgid "No Notifications" msgid "No Notifications"
msgstr "Ingen påmindelser" msgstr "Ingen påmindelser"
#: ../js/ui/calendar.js:1770 #: ../js/ui/calendar.js:1774
msgid "No Events" msgid "No Events"
msgstr "Ingen begivenheder" msgstr "Ingen begivenheder"
@ -637,7 +636,7 @@ msgstr "Eksternt drev tilkoblet"
msgid "External drive disconnected" msgid "External drive disconnected"
msgstr "Eksternt drev frakoblet" msgstr "Eksternt drev frakoblet"
#: ../js/ui/components/autorunManager.js:354 #: ../js/ui/components/autorunManager.js:351
#, javascript-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
msgstr "Åbn med %s" msgstr "Åbn med %s"
@ -980,7 +979,7 @@ msgstr "Aktiveret"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled" msgid "Disabled"
msgstr "Deaktiveret" msgstr "Deaktiveret"
@ -1024,17 +1023,22 @@ msgstr "Oversigt"
msgid "Type to search…" msgid "Type to search…"
msgstr "Skriv for at søge…" msgstr "Skriv for at søge…"
#: ../js/ui/panel.js:352 #: ../js/ui/panel.js:358
msgid "Quit" msgid "Quit"
msgstr "Afslut" msgstr "Afslut"
#. Translators: If there is no suitable word for "Activities" #. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". #. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:404 #: ../js/ui/panel.js:414
msgid "Activities" msgid "Activities"
msgstr "Aktiviteter" msgstr "Aktiviteter"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:660
msgctxt "System menu in the top bar"
msgid "System"
msgstr "System"
#: ../js/ui/panel.js:764
msgid "Top Bar" msgid "Top Bar"
msgstr "Toppanel" msgstr "Toppanel"
@ -1399,7 +1403,7 @@ msgstr "forbindelse mislykkedes"
#: ../js/ui/status/network.js:1482 ../js/ui/status/rfkill.js:93 #: ../js/ui/status/network.js:1482 ../js/ui/status/rfkill.js:93
msgid "Network Settings" msgid "Network Settings"
msgstr "Indstillinger for netværk" msgstr "Netværksindstillinger"
#: ../js/ui/status/network.js:1484 #: ../js/ui/status/network.js:1484
msgid "VPN Settings" msgid "VPN Settings"
@ -1610,7 +1614,7 @@ msgstr "Evolution kalender"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1837 #: ../src/gvc/gvc-mixer-control.c:1835
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1619,30 +1623,30 @@ msgstr[1] "%u outputs"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1847 #: ../src/gvc/gvc-mixer-control.c:1845
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
msgstr[0] "%u input" msgstr[0] "%u input"
msgstr[1] "%u inputs" msgstr[1] "%u inputs"
#: ../src/gvc/gvc-mixer-control.c:2373 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "Systemlyde" msgstr "Systemlyde"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Udskriv version" msgstr "Udskriv version"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Tilstand brugt af GDM til indlogningskærm" msgstr "Tilstand brugt af GDM til indlogningskærm"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Brug en specifik tilstand, f.eks. \"gdm\" til logind-skærm" msgstr "Brug en specifik tilstand, f.eks. \"gdm\" til logind-skærm"
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "Vis mulige tilstande" msgstr "Vis mulige tilstande"

381
po/de.po

File diff suppressed because it is too large Load Diff

194
po/el.po
View File

@ -7,8 +7,8 @@ msgstr ""
"Project-Id-Version: gnome-shell.po.master\n" "Project-Id-Version: gnome-shell.po.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-08-28 20:12+0000\n" "POT-Creation-Date: 2015-09-29 20:37+0000\n"
"PO-Revision-Date: 2015-08-29 01:20+0300\n" "PO-Revision-Date: 2015-09-30 10:37+0300\n"
"Last-Translator: Tom Tryfonidis <tomtryf@gmail.com>\n" "Last-Translator: Tom Tryfonidis <tomtryf@gmail.com>\n"
"Language-Team: www.gnome.gr\n" "Language-Team: www.gnome.gr\n"
"Language: el\n" "Language: el\n"
@ -332,7 +332,7 @@ msgid "Cancel"
msgstr "Ακύρωση" msgstr "Ακύρωση"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215 #: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:435 #: ../js/gdm/authPrompt.js:447
msgid "Next" msgid "Next"
msgstr "Επόμενο" msgstr "Επόμενο"
@ -350,21 +350,29 @@ msgstr "Σύνδεση"
msgid "Choose Session" msgid "Choose Session"
msgstr "Επιλογή συνεδρίας" msgstr "Επιλογή συνεδρίας"
#. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: ../js/gdm/loginDialog.js:431 #: ../js/gdm/loginDialog.js:431
msgid "Not listed?" msgid "Not listed?"
msgstr "Δεν είστε στη λίστα;" msgstr "Δεν είστε στη λίστα;"
#: ../js/gdm/loginDialog.js:847 #. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:850
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(π.χ, χρήστης ή %s)" msgstr "(π.χ, χρήστης ή %s)"
#: ../js/gdm/loginDialog.js:852 ../js/ui/components/networkAgent.js:271 #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289 #: ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
msgstr "Όνομα χρήστη: " msgstr "Όνομα χρήστη: "
#: ../js/gdm/loginDialog.js:1181 #: ../js/gdm/loginDialog.js:1184
msgid "Login Window" msgid "Login Window"
msgstr "Παράθυρο σύνδεσης" msgstr "Παράθυρο σύνδεσης"
@ -372,6 +380,11 @@ msgstr "Παράθυρο σύνδεσης"
msgid "Authentication error" msgid "Authentication error"
msgstr "Σφάλμα πιστοποίησης" msgstr "Σφάλμα πιστοποίησης"
#. We don't show fingerprint messages directly since it's
#. not the main auth service. Instead we use the messages
#. as a cue to display our own message.
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/util.js:473 #: ../js/gdm/util.js:473
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(ή περάστε το δάκτυλο σας)" msgstr "(ή περάστε το δάκτυλο σας)"
@ -380,6 +393,8 @@ msgstr "(ή περάστε το δάκτυλο σας)"
msgid "Command not found" msgid "Command not found"
msgstr "Δε βρέθηκε η εντολή" msgstr "Δε βρέθηκε η εντολή"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
#: ../js/misc/util.js:152 #: ../js/misc/util.js:152
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Δεν ήταν δυνατό να γίνει ανάλυση της εντολής:" msgstr "Δεν ήταν δυνατό να γίνει ανάλυση της εντολής:"
@ -389,70 +404,78 @@ msgstr "Δεν ήταν δυνατό να γίνει ανάλυση της εν
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "Απέτυχε η εκτέλεση του “%s”:" msgstr "Απέτυχε η εκτέλεση του “%s”:"
#. Translators: Time in 24h format */ #. Translators: Time in 24h format
#: ../js/misc/util.js:191 #: ../js/misc/util.js:191
msgid "%H%M" msgid "%H%M"
msgstr "%H%M" msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" */ #. time string in 24h format. i.e. "Yesterday, 14:30"
#: ../js/misc/util.js:197 #: ../js/misc/util.js:197
#, no-c-format
msgid "Yesterday, %H%M" msgid "Yesterday, %H%M"
msgstr "Χθες, %H%M" msgstr "Χθες, %H%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" */ #. string in 24h format. i.e. "Monday, 14:30"
#: ../js/misc/util.js:203 #: ../js/misc/util.js:203
#, no-c-format
msgid "%A, %H%M" msgid "%A, %H%M"
msgstr "%A, %H%M" msgstr "%A, %H%M"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 24h format. #. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" */ #. i.e. "May 25, 14:30"
#: ../js/misc/util.js:209 #: ../js/misc/util.js:209
#, no-c-format
msgid "%B %d, %H%M" msgid "%B %d, %H%M"
msgstr "%B %d, %H%M" msgstr "%B %d, %H%M"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format. #. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" */ #. i.e. "May 25 2012, 14:30"
#: ../js/misc/util.js:215 #: ../js/misc/util.js:215
#, no-c-format
msgid "%B %d %Y, %H%M" msgid "%B %d %Y, %H%M"
msgstr "%B %d %Y, %H%M" msgstr "%B %d %Y, %H%M"
#. Translators: Time in 12h format */ #. Translators: Time in 12h format
#: ../js/misc/util.js:220 #: ../js/misc/util.js:220
msgid "%l%M %p" msgid "%l%M %p"
msgstr "%l%M%p" msgstr "%l%M%p"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */ #. time string in 12h format. i.e. "Yesterday, 2:30 pm"
#: ../js/misc/util.js:226 #: ../js/misc/util.js:226
#, no-c-format
msgid "Yesterday, %l%M %p" msgid "Yesterday, %l%M %p"
msgstr "Χθες %l:%M %p" msgstr "Χθες %l:%M %p"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" */ #. string in 12h format. i.e. "Monday, 2:30 pm"
#: ../js/misc/util.js:232 #: ../js/misc/util.js:232
#, no-c-format
msgid "%A, %l%M %p" msgid "%A, %l%M %p"
msgstr "%A, %l%M %p" msgstr "%A, %l%M %p"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 12h format. #. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" */ #. i.e. "May 25, 2:30 pm"
#: ../js/misc/util.js:238 #: ../js/misc/util.js:238
#, no-c-format
msgid "%B %d, %l%M %p" msgid "%B %d, %l%M %p"
msgstr "%B %d, %l%M %p" msgstr "%B %d, %l%M %p"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format. #. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"*/ #. i.e. "May 25 2012, 2:30 pm"
#: ../js/misc/util.js:244 #: ../js/misc/util.js:244
#, no-c-format
msgid "%B %d %Y, %l%M %p" msgid "%B %d %Y, %l%M %p"
msgstr "%B %d %Y, %l%M %p" msgstr "%B %d %Y, %l%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login #. TRANSLATORS: this is the title of the wifi captive portal login
#. * window, until we know the title of the actual login page */ #. * window, until we know the title of the actual login page
#: ../js/portalHelper/main.js:85 #: ../js/portalHelper/main.js:85
msgid "Web Authentication Redirect" msgid "Web Authentication Redirect"
msgstr "Ανακατεύθυνση πιστοποίησης ιστού" msgstr "Ανακατεύθυνση πιστοποίησης ιστού"
@ -503,12 +526,11 @@ msgstr "Αλλαγή παρασκηνίου…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Ρυθμίσεις οθόνης" msgstr "Ρυθμίσεις οθόνης"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "Ρυθμίσεις" msgstr "Ρυθμίσεις"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). */ #. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:55 #: ../js/ui/calendar.js:55
msgctxt "calendar-no-work" msgctxt "calendar-no-work"
msgid "06" msgid "06"
@ -518,43 +540,43 @@ msgstr "06"
#. * #. *
#. * NOTE: These grid abbreviations are always shown together #. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S". #. * and in order, e.g. "S M T W T F S".
#. */ #.
#: ../js/ui/calendar.js:84 #: ../js/ui/calendar.js:84
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "Κυ" msgstr "Κυ"
#. Translators: Calendar grid abbreviation for Monday */ #. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:86 #: ../js/ui/calendar.js:86
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "Δε" msgstr "Δε"
#. Translators: Calendar grid abbreviation for Tuesday */ #. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:88 #: ../js/ui/calendar.js:88
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "Τρ" msgstr "Τρ"
#. Translators: Calendar grid abbreviation for Wednesday */ #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:90 #: ../js/ui/calendar.js:90
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "Τε" msgstr "Τε"
#. Translators: Calendar grid abbreviation for Thursday */ #. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:92 #: ../js/ui/calendar.js:92
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "Πε" msgstr "Πε"
#. Translators: Calendar grid abbreviation for Friday */ #. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:94 #: ../js/ui/calendar.js:94
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "Πα" msgstr "Πα"
#. Translators: Calendar grid abbreviation for Saturday */ #. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:96 #: ../js/ui/calendar.js:96
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
@ -574,39 +596,39 @@ msgstr "Εβδομάδα %V"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. */ #.
#: ../js/ui/calendar.js:1188 #: ../js/ui/calendar.js:1188
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Όλη μέρα" msgstr "Όλη μέρα"
#: ../js/ui/calendar.js:1291 #: ../js/ui/calendar.js:1295
msgid "Clear section" msgid "Clear section"
msgstr "Εκκαθάριση περιοχής" msgstr "Εκκαθάριση περιοχής"
#: ../js/ui/calendar.js:1518 #: ../js/ui/calendar.js:1522
msgid "Events" msgid "Events"
msgstr "Συμβάντα" msgstr "Συμβάντα"
#: ../js/ui/calendar.js:1527 #: ../js/ui/calendar.js:1531
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %B %d" msgstr "%A, %B %d"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:1535
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A, %d %B, %Y" msgstr "%A, %d %B, %Y"
#: ../js/ui/calendar.js:1616 #: ../js/ui/calendar.js:1620
msgid "Notifications" msgid "Notifications"
msgstr "Ειδοποιήσεις" msgstr "Ειδοποιήσεις"
#: ../js/ui/calendar.js:1767 #: ../js/ui/calendar.js:1771
msgid "No Notifications" msgid "No Notifications"
msgstr "Καμία ειδοποίηση" msgstr "Καμία ειδοποίηση"
#: ../js/ui/calendar.js:1770 #: ../js/ui/calendar.js:1774
msgid "No Events" msgid "No Events"
msgstr "Κανένα συμβάν" msgstr "Κανένα συμβάν"
@ -636,6 +658,7 @@ msgstr "Πληκτρολογήστε ξανά:"
msgid "Connect" msgid "Connect"
msgstr "Σύνδεση" msgstr "Σύνδεση"
#. Cisco LEAP
#: ../js/ui/components/networkAgent.js:233 #: ../js/ui/components/networkAgent.js:233
#: ../js/ui/components/networkAgent.js:245 #: ../js/ui/components/networkAgent.js:245
#: ../js/ui/components/networkAgent.js:273 #: ../js/ui/components/networkAgent.js:273
@ -644,6 +667,7 @@ msgstr "Σύνδεση"
msgid "Password: " msgid "Password: "
msgstr "Κωδικός πρόσβασης: " msgstr "Κωδικός πρόσβασης: "
#. static WEP
#: ../js/ui/components/networkAgent.js:238 #: ../js/ui/components/networkAgent.js:238
msgid "Key: " msgid "Key: "
msgstr "Κλειδί: " msgstr "Κλειδί: "
@ -735,13 +759,13 @@ msgstr "Πιστοποίηση"
#. Translators: "that didn't work" refers to the fact that the #. Translators: "that didn't work" refers to the fact that the
#. * requested authentication was not gained; this can happen #. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password), #. * because of an authentication error (like invalid password),
#. * for instance. */ #. * for instance.
#: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383 #: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again." msgid "Sorry, that didn't work. Please try again."
msgstr "Συγνώμη, αυτό δεν λειτούργησε. Παρακαλούμε προσπαθήστε ξανά." 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:759
#, javascript-format #, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
@ -755,13 +779,15 @@ msgstr "Παράθυρα"
msgid "Show Applications" msgid "Show Applications"
msgstr "Εμφάνιση εφαρμογών" msgstr "Εμφάνιση εφαρμογών"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:449 #: ../js/ui/dash.js:449
msgid "Dash" msgid "Dash"
msgstr "Ταμπλό" msgstr "Ταμπλό"
#. Translators: This is the date format to use when the calendar popup is #. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM"). #. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#. */ #.
#: ../js/ui/dateMenu.js:73 #: ../js/ui/dateMenu.js:73
msgid "%B %e %Y" msgid "%B %e %Y"
msgstr "%B %e %Y" msgstr "%B %e %Y"
@ -769,7 +795,7 @@ msgstr "%B %e %Y"
#. Translators: This is the accessible name of the date button shown #. Translators: This is the accessible name of the date button shown
#. * below the time in the shell; it should combine the weekday and the #. * below the time in the shell; it should combine the weekday and the
#. * date, e.g. "Tuesday February 17 2015". #. * date, e.g. "Tuesday February 17 2015".
#. */ #.
#: ../js/ui/dateMenu.js:80 #: ../js/ui/dateMenu.js:80
msgid "%A %B %e %Y" msgid "%A %B %e %Y"
msgstr "%A %e %B %Y" msgstr "%A %e %B %Y"
@ -903,13 +929,13 @@ msgstr ""
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:640 #: ../js/ui/endSessionDialog.js:640
#, 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:643 #: ../js/ui/endSessionDialog.js:643
#, javascript-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
@ -928,7 +954,7 @@ msgstr "Λήψη και εγκατάσταση του “%s” από το exten
msgid "Keyboard" msgid "Keyboard"
msgstr "Πληκτρολόγιο" msgstr "Πληκτρολόγιο"
#. translators: 'Hide' is a verb */ #. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66 #: ../js/ui/legacyTray.js:66
msgid "Hide tray" msgid "Hide tray"
msgstr "Απόκρυψη περιοχής ειδοποιήσεων" msgstr "Απόκρυψη περιοχής ειδοποιήσεων"
@ -941,7 +967,7 @@ msgstr "Εικονίδια κατάστασης"
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Δεν υπάρχουν εγκατεστημένες επεκτάσεις" msgstr "Δεν υπάρχουν εγκατεστημένες επεκτάσεις"
#. Translators: argument is an extension UUID. */ #. Translators: argument is an extension UUID.
#: ../js/ui/lookingGlass.js:697 #: ../js/ui/lookingGlass.js:697
#, javascript-format #, javascript-format
msgid "%s has not emitted any errors." msgid "%s has not emitted any errors."
@ -961,7 +987,7 @@ msgstr "Ενεργοποιημένο"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled" msgid "Disabled"
msgstr "Απενεργοποιημένο" msgstr "Απενεργοποιημένο"
@ -1000,7 +1026,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:244 #: ../js/ui/overview.js:244
msgid "Type to search…" msgid "Type to search…"
msgstr "Πληκτρολογήστε για αναζήτηση…" msgstr "Πληκτρολογήστε για αναζήτηση…"
@ -1010,15 +1036,25 @@ msgid "Quit"
msgstr "Έξοδος" msgstr "Έξοδος"
#. Translators: If there is no suitable word for "Activities" #. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". */ #. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:404 #: ../js/ui/panel.js:404
msgid "Activities" msgid "Activities"
msgstr "Δραστηριότητες" msgstr "Δραστηριότητες"
#: ../js/ui/panel.js:650
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Σύστημα"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:754
msgid "Top Bar" msgid "Top Bar"
msgstr "Πάνω μπάρα" msgstr "Πάνω μπάρα"
#. Translators: this MUST be either "toggle-switch-us"
#. (for toggle switches containing the English words
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:289 #: ../js/ui/popupMenu.js:289
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
@ -1036,7 +1072,7 @@ msgid "Restarting…"
msgstr "Επανεκκίνηση…" msgstr "Επανεκκίνηση…"
#. Translators: This is a time format for a date in #. Translators: This is a time format for a date in
#. long format */ #. long format
#: ../js/ui/screenShield.js:85 #: ../js/ui/screenShield.js:85
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %B %d" msgstr "%A, %B %d"
@ -1063,6 +1099,13 @@ msgstr "Κλείδωμα"
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "Το GNOME χρειάζεται να κλειδώσει την οθόνη" msgstr "Το GNOME χρειάζεται να κλειδώσει την οθόνη"
#. We could not become modal, so we can't activate the
#. screenshield. The user is probably very upset at this
#. point, but any application using global grabs is broken
#. Just tell him to stop using this app
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271 #: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271
msgid "Unable to lock" msgid "Unable to lock"
msgstr "Αδυναμία κλειδώματος" msgstr "Αδυναμία κλειδώματος"
@ -1158,7 +1201,7 @@ msgstr "Σβήσιμο"
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:105 #: ../js/ui/status/bluetooth.js:105
#, javascript-format #, javascript-format
msgid "%d Connected" msgid "%d Connected"
@ -1206,59 +1249,59 @@ msgstr "Ενεργοποίηση"
msgid "<unknown>" msgid "<unknown>"
msgstr "<άγνωστο>" msgstr "<άγνωστο>"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308 #: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
#, javascript-format #, javascript-format
msgid "%s Off" msgid "%s Off"
msgstr "Απενεργοποιημένο %s" msgstr "Απενεργοποιημένο %s"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:454 #: ../js/ui/status/network.js:454
#, javascript-format #, javascript-format
msgid "%s Connected" msgid "%s Connected"
msgstr "Συνδέθηκε το %s" msgstr "%s συνδεδεμένο"
#. Translators: this is for network devices that are physically present but are not #. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu); #. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier */ #. %s is a network identifier
#: ../js/ui/status/network.js:459 #: ../js/ui/status/network.js:459
#, javascript-format #, javascript-format
msgid "%s Unmanaged" msgid "%s Unmanaged"
msgstr "Χωρίς διαχείριση %s" msgstr "Χωρίς διαχείριση %s"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:462 #: ../js/ui/status/network.js:462
#, javascript-format #, javascript-format
msgid "%s Disconnecting" msgid "%s Disconnecting"
msgstr "Γίνεται αποσύνδεση %s" msgstr "Γίνεται αποσύνδεση %s"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300 #: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
#, javascript-format #, javascript-format
msgid "%s Connecting" msgid "%s Connecting"
msgstr "Γίνεται σύνδεση %s" msgstr "Γίνεται σύνδεση %s"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier */ #. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: ../js/ui/status/network.js:472 #: ../js/ui/status/network.js:472
#, javascript-format #, javascript-format
msgid "%s Requires Authentication" msgid "%s Requires Authentication"
msgstr "Το %s απαιτεί πιστοποίηση" msgstr "Το %s απαιτεί πιστοποίηση"
#. Translators: this is for devices that require some kind of firmware or kernel #. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier */ #. module, which is missing; %s is a network identifier
#: ../js/ui/status/network.js:480 #: ../js/ui/status/network.js:480
#, javascript-format #, javascript-format
msgid "Firmware Missing For %s" msgid "Firmware Missing For %s"
msgstr "Λείπει υλικολογισμικό για το %s" msgstr "Λείπει υλικολογισμικό για το %s"
#. Translators: this is for a network device that cannot be activated (for example it #. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier */ #. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: ../js/ui/status/network.js:484 #: ../js/ui/status/network.js:484
#, javascript-format #, javascript-format
msgid "%s Unavailable" msgid "%s Unavailable"
msgstr "Το %s δεν είναι διαθέσιμο" msgstr "Το %s δεν είναι διαθέσιμο"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:487 #: ../js/ui/status/network.js:487
#, javascript-format #, javascript-format
msgid "%s Connection Failed" msgid "%s Connection Failed"
@ -1272,14 +1315,14 @@ msgstr "Ενσύρματες ρυθμίσεις"
msgid "Mobile Broadband Settings" msgid "Mobile Broadband Settings"
msgstr "Ρυθμίσεις ευρυζωνικής σύνδεσης" msgstr "Ρυθμίσεις ευρυζωνικής σύνδεσης"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305 #: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
#, javascript-format #, javascript-format
msgid "%s Hardware Disabled" msgid "%s Hardware Disabled"
msgstr "Το υλικό απενεργοποιήθηκε για το %s" msgstr "Το υλικό απενεργοποιήθηκε για το %s"
#. Translators: this is for a network device that cannot be activated #. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier */ #. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: ../js/ui/status/network.js:592 #: ../js/ui/status/network.js:592
#, javascript-format #, javascript-format
msgid "%s Disabled" msgid "%s Disabled"
@ -1342,13 +1385,13 @@ msgstr "Ρυθμίσεις Wi-Fi"
msgid "Turn On" msgid "Turn On"
msgstr "Ενεργοποίηση" msgstr "Ενεργοποίηση"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296 #: ../js/ui/status/network.js:1296
#, javascript-format #, javascript-format
msgid "%s Hotspot Active" msgid "%s Hotspot Active"
msgstr "Ενεργό σημείο πρόσβασης %s" msgstr "Ενεργό σημείο πρόσβασης %s"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1311 #: ../js/ui/status/network.js:1311
#, javascript-format #, javascript-format
msgid "%s Not Connected" msgid "%s Not Connected"
@ -1358,7 +1401,7 @@ msgstr "Χωρίς σύνδεση το %s"
msgid "connecting..." msgid "connecting..."
msgstr "σύνδεση..." msgstr "σύνδεση..."
#. Translators: this is for network connections that require some kind of key or password */ #. Translators: this is for network connections that require some kind of key or password
#: ../js/ui/status/network.js:1414 #: ../js/ui/status/network.js:1414
msgid "authentication required" msgid "authentication required"
msgstr "απαιτείται πιστοποίηση" msgstr "απαιτείται πιστοποίηση"
@ -1399,20 +1442,27 @@ msgstr "Ρυθμίσεις τροφοδοσίας"
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Πλήρως φορτισμένη" msgstr "Πλήρως φορτισμένη"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78 #: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
msgid "Estimating…" msgid "Estimating…"
msgstr "Εκτίμηση…" msgstr "Εκτίμηση…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:86
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d Απομένει (%d%%)" msgstr "%d%02d Απομένει (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91 #: ../js/ui/status/power.js:91
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "%d%02d Πλήρης μέχρι (%d%%)" msgstr "%d%02d Πλήρης μέχρι (%d%%)"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
#. changing the menu contents.
#: ../js/ui/status/rfkill.js:88 #: ../js/ui/status/rfkill.js:88
msgid "Airplane Mode On" msgid "Airplane Mode On"
msgstr "Λειτουργία αεροπλάνου ενεργή" msgstr "Λειτουργία αεροπλάνου ενεργή"
@ -1480,7 +1530,7 @@ msgstr "Θέλετε να κρατήσετε αυτές τις ρυθμίσει
#. Translators: this and the following message should be limited in lenght, #. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels. #. to avoid ellipsizing the labels.
#. */ #.
#: ../js/ui/windowManager.js:82 #: ../js/ui/windowManager.js:82
msgid "Revert Settings" msgid "Revert Settings"
msgstr "Επαναφορά ρυθμίσεων" msgstr "Επαναφορά ρυθμίσεων"
@ -1497,7 +1547,7 @@ msgstr[0] "Οι αλλαγές ρυθμίσεων θα επανέλθουν σε
msgstr[1] "Οι αλλαγές ρυθμίσεων θα επανέλθουν σε %d δευτερόλεπτα" msgstr[1] "Οι αλλαγές ρυθμίσεων θα επανέλθουν σε %d δευτερόλεπτα"
#. Translators: This represents the size of a window. The first number is #. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height. */ #. * the width of the window and the second is the height.
#: ../js/ui/windowManager.js:658 #: ../js/ui/windowManager.js:658
#, javascript-format #, javascript-format
msgid "%d x %d" msgid "%d x %d"
@ -1573,7 +1623,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:1837 #: ../src/gvc/gvc-mixer-control.c:1835
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1582,31 +1632,31 @@ 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:1847 #: ../src/gvc/gvc-mixer-control.c:1845
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
msgstr[0] "%u είσοδος" msgstr[0] "%u είσοδος"
msgstr[1] "%u είσοδοι" msgstr[1] "%u είσοδοι"
#: ../src/gvc/gvc-mixer-control.c:2373 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "Ήχοι συστήματος" msgstr "Ήχοι συστήματος"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Εμφάνιση έκδοσης" msgstr "Εμφάνιση έκδοσης"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Λειτουργία που χρησιμοποιείται από το GDM για την οθόνη σύνδεσης" msgstr "Λειτουργία που χρησιμοποιείται από το GDM για την οθόνη σύνδεσης"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "" msgstr ""
"Χρήση μιας συγκεκριμένης λειτουργίας, π.χ. \"gdm\" για την οθόνη σύνδεσης" "Χρήση μιας συγκεκριμένης λειτουργίας, π.χ. \"gdm\" για την οθόνη σύνδεσης"
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "Λίστα πιθανών λειτουργιών" msgstr "Λίστα πιθανών λειτουργιών"

1591
po/eo.po

File diff suppressed because it is too large Load Diff

465
po/es.po

File diff suppressed because it is too large Load Diff

664
po/eu.po

File diff suppressed because it is too large Load Diff

388
po/fi.po

File diff suppressed because it is too large Load Diff

190
po/fr.po
View File

@ -19,8 +19,8 @@ msgstr ""
"Project-Id-Version: gnome-shell master fr\n" "Project-Id-Version: gnome-shell master fr\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-08-31 19:25+0000\n" "POT-Creation-Date: 2015-09-28 20:46+0000\n"
"PO-Revision-Date: 2015-09-01 11:03+0200\n" "PO-Revision-Date: 2015-09-28 23:39+0200\n"
"Last-Translator: Alexandre Franke <alexandre.franke@gmail.com>\n" "Last-Translator: Alexandre Franke <alexandre.franke@gmail.com>\n"
"Language-Team: français <gnomefr@traduc.org>\n" "Language-Team: français <gnomefr@traduc.org>\n"
"Language: French\n" "Language: French\n"
@ -362,21 +362,29 @@ msgstr "Se connecter"
msgid "Choose Session" msgid "Choose Session"
msgstr "Choisir une session" msgstr "Choisir une session"
#. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: ../js/gdm/loginDialog.js:431 #: ../js/gdm/loginDialog.js:431
msgid "Not listed?" msgid "Not listed?"
msgstr "Absent de la liste ?" msgstr "Absent de la liste ?"
#: ../js/gdm/loginDialog.js:847 #. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:850
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(par ex. utilisateur ou %s)" msgstr "(par ex. utilisateur ou %s)"
#: ../js/gdm/loginDialog.js:852 ../js/ui/components/networkAgent.js:271 #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289 #: ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
msgstr "Nom d'utilisateur : " msgstr "Nom d'utilisateur : "
#: ../js/gdm/loginDialog.js:1181 #: ../js/gdm/loginDialog.js:1184
msgid "Login Window" msgid "Login Window"
msgstr "Fenêtre de connexion" msgstr "Fenêtre de connexion"
@ -384,6 +392,11 @@ msgstr "Fenêtre de connexion"
msgid "Authentication error" msgid "Authentication error"
msgstr "Erreur d'authentification" msgstr "Erreur d'authentification"
#. We don't show fingerprint messages directly since it's
#. not the main auth service. Instead we use the messages
#. as a cue to display our own message.
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/util.js:473 #: ../js/gdm/util.js:473
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(ou faites glisser le doigt)" msgstr "(ou faites glisser le doigt)"
@ -392,6 +405,8 @@ msgstr "(ou faites glisser le doigt)"
msgid "Command not found" msgid "Command not found"
msgstr "Commande non trouvée" msgstr "Commande non trouvée"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
#: ../js/misc/util.js:152 #: ../js/misc/util.js:152
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Impossible d'analyser la commande :" msgstr "Impossible d'analyser la commande :"
@ -401,70 +416,78 @@ msgstr "Impossible d'analyser la commande :"
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "Exécution de « %s » impossible :" msgstr "Exécution de « %s » impossible :"
#. Translators: Time in 24h format */ #. Translators: Time in 24h format
#: ../js/misc/util.js:191 #: ../js/misc/util.js:191
msgid "%H%M" msgid "%H%M"
msgstr "%H%M" msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" */ #. time string in 24h format. i.e. "Yesterday, 14:30"
#: ../js/misc/util.js:197 #: ../js/misc/util.js:197
#, no-c-format
msgid "Yesterday, %H%M" msgid "Yesterday, %H%M"
msgstr "Hier, %H%M" msgstr "Hier, %H%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" */ #. string in 24h format. i.e. "Monday, 14:30"
#: ../js/misc/util.js:203 #: ../js/misc/util.js:203
#, no-c-format
msgid "%A, %H%M" msgid "%A, %H%M"
msgstr "%A, %H%M" msgstr "%A, %H%M"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 24h format. #. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" */ #. i.e. "May 25, 14:30"
#: ../js/misc/util.js:209 #: ../js/misc/util.js:209
#, no-c-format
msgid "%B %d, %H%M" msgid "%B %d, %H%M"
msgstr "%d %B, %H%M" msgstr "%d %B, %H%M"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format. #. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" */ #. i.e. "May 25 2012, 14:30"
#: ../js/misc/util.js:215 #: ../js/misc/util.js:215
#, no-c-format
msgid "%B %d %Y, %H%M" msgid "%B %d %Y, %H%M"
msgstr "%d %B %Y, %H%M" msgstr "%d %B %Y, %H%M"
#. Translators: Time in 12h format */ #. Translators: Time in 12h format
#: ../js/misc/util.js:220 #: ../js/misc/util.js:220
msgid "%l%M %p" msgid "%l%M %p"
msgstr "%l%M %p" msgstr "%l%M %p"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */ #. time string in 12h format. i.e. "Yesterday, 2:30 pm"
#: ../js/misc/util.js:226 #: ../js/misc/util.js:226
#, no-c-format
msgid "Yesterday, %l%M %p" msgid "Yesterday, %l%M %p"
msgstr "Hier, %l%M %p" msgstr "Hier, %l%M %p"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" */ #. string in 12h format. i.e. "Monday, 2:30 pm"
#: ../js/misc/util.js:232 #: ../js/misc/util.js:232
#, no-c-format
msgid "%A, %l%M %p" msgid "%A, %l%M %p"
msgstr "%A, %l%M %p" msgstr "%A, %l%M %p"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 12h format. #. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" */ #. i.e. "May 25, 2:30 pm"
#: ../js/misc/util.js:238 #: ../js/misc/util.js:238
#, no-c-format
msgid "%B %d, %l%M %p" msgid "%B %d, %l%M %p"
msgstr "%d %B, %l%M %p" msgstr "%d %B, %l%M %p"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format. #. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"*/ #. i.e. "May 25 2012, 2:30 pm"
#: ../js/misc/util.js:244 #: ../js/misc/util.js:244
#, no-c-format
msgid "%B %d %Y, %l%M %p" msgid "%B %d %Y, %l%M %p"
msgstr "%d %B %Y, %l%M %p" msgstr "%d %B %Y, %l%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login #. TRANSLATORS: this is the title of the wifi captive portal login
#. * window, until we know the title of the actual login page */ #. * window, until we know the title of the actual login page
#: ../js/portalHelper/main.js:85 #: ../js/portalHelper/main.js:85
msgid "Web Authentication Redirect" msgid "Web Authentication Redirect"
msgstr "Redirection de l'authentification Web" msgstr "Redirection de l'authentification Web"
@ -515,12 +538,11 @@ msgstr "Modifier l'arrière-plan…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Paramètres d'affichage" msgstr "Paramètres d'affichage"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "Paramètres" msgstr "Paramètres"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). */ #. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:55 #: ../js/ui/calendar.js:55
msgctxt "calendar-no-work" msgctxt "calendar-no-work"
msgid "06" msgid "06"
@ -530,43 +552,43 @@ msgstr "06"
#. * #. *
#. * NOTE: These grid abbreviations are always shown together #. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S". #. * and in order, e.g. "S M T W T F S".
#. */ #.
#: ../js/ui/calendar.js:84 #: ../js/ui/calendar.js:84
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "D" msgstr "D"
#. Translators: Calendar grid abbreviation for Monday */ #. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:86 #: ../js/ui/calendar.js:86
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "L" msgstr "L"
#. Translators: Calendar grid abbreviation for Tuesday */ #. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:88 #: ../js/ui/calendar.js:88
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "M" msgstr "M"
#. Translators: Calendar grid abbreviation for Wednesday */ #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:90 #: ../js/ui/calendar.js:90
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "M" msgstr "M"
#. Translators: Calendar grid abbreviation for Thursday */ #. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:92 #: ../js/ui/calendar.js:92
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "J" msgstr "J"
#. Translators: Calendar grid abbreviation for Friday */ #. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:94 #: ../js/ui/calendar.js:94
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "V" msgstr "V"
#. Translators: Calendar grid abbreviation for Saturday */ #. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:96 #: ../js/ui/calendar.js:96
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
@ -601,39 +623,39 @@ msgstr "Semaine %V"
# #
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. */ #.
#: ../js/ui/calendar.js:1188 #: ../js/ui/calendar.js:1188
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Journée" msgstr "Journée"
#: ../js/ui/calendar.js:1291 #: ../js/ui/calendar.js:1295
msgid "Clear section" msgid "Clear section"
msgstr "Effacer la section" msgstr "Effacer la section"
#: ../js/ui/calendar.js:1518 #: ../js/ui/calendar.js:1522
msgid "Events" msgid "Events"
msgstr "Évènements" msgstr "Évènements"
#: ../js/ui/calendar.js:1527 #: ../js/ui/calendar.js:1531
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A %d %B" msgstr "%A %d %B"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:1535
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A %d %B, %Y" msgstr "%A %d %B, %Y"
#: ../js/ui/calendar.js:1616 #: ../js/ui/calendar.js:1620
msgid "Notifications" msgid "Notifications"
msgstr "Notifications" msgstr "Notifications"
#: ../js/ui/calendar.js:1767 #: ../js/ui/calendar.js:1771
msgid "No Notifications" msgid "No Notifications"
msgstr "Aucune notification" msgstr "Aucune notification"
#: ../js/ui/calendar.js:1770 #: ../js/ui/calendar.js:1774
msgid "No Events" msgid "No Events"
msgstr "Aucun évènement" msgstr "Aucun évènement"
@ -663,6 +685,7 @@ msgstr "Saisissez à nouveau :"
msgid "Connect" msgid "Connect"
msgstr "Se connecter" msgstr "Se connecter"
#. Cisco LEAP
#: ../js/ui/components/networkAgent.js:233 #: ../js/ui/components/networkAgent.js:233
#: ../js/ui/components/networkAgent.js:245 #: ../js/ui/components/networkAgent.js:245
#: ../js/ui/components/networkAgent.js:273 #: ../js/ui/components/networkAgent.js:273
@ -671,6 +694,7 @@ msgstr "Se connecter"
msgid "Password: " msgid "Password: "
msgstr "Mot de passe : " msgstr "Mot de passe : "
#. static WEP
#: ../js/ui/components/networkAgent.js:238 #: ../js/ui/components/networkAgent.js:238
msgid "Key: " msgid "Key: "
msgstr "Clé : " msgstr "Clé : "
@ -762,13 +786,13 @@ msgstr "S'authentifier"
#. Translators: "that didn't work" refers to the fact that the #. Translators: "that didn't work" refers to the fact that the
#. * requested authentication was not gained; this can happen #. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password), #. * because of an authentication error (like invalid password),
#. * for instance. */ #. * for instance.
#: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383 #: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again." msgid "Sorry, that didn't work. Please try again."
msgstr "Échec de l'authentification. Essayez à nouveau." msgstr "Échec de l'authentification. Essayez à nouveau."
#. Translators: this is the other person changing their old IM name to their new #. Translators: this is the other person changing their old IM name to their new
#. IM name. */ #. IM name.
#: ../js/ui/components/telepathyClient.js:759 #: ../js/ui/components/telepathyClient.js:759
#, javascript-format #, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
@ -782,6 +806,8 @@ msgstr "Fenêtres"
msgid "Show Applications" msgid "Show Applications"
msgstr "Afficher les applications" msgstr "Afficher les applications"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:449 #: ../js/ui/dash.js:449
msgid "Dash" msgid "Dash"
msgstr "Dash" msgstr "Dash"
@ -794,7 +820,7 @@ msgstr "Dash"
# L M M J V S D # L M M J V S D
#. Translators: This is the date format to use when the calendar popup is #. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM"). #. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#. */ #.
#: ../js/ui/dateMenu.js:73 #: ../js/ui/dateMenu.js:73
msgid "%B %e %Y" msgid "%B %e %Y"
msgstr "%-e %B %Y" msgstr "%-e %B %Y"
@ -808,7 +834,7 @@ msgstr "%-e %B %Y"
#. Translators: This is the accessible name of the date button shown #. Translators: This is the accessible name of the date button shown
#. * below the time in the shell; it should combine the weekday and the #. * below the time in the shell; it should combine the weekday and the
#. * date, e.g. "Tuesday February 17 2015". #. * date, e.g. "Tuesday February 17 2015".
#. */ #.
#: ../js/ui/dateMenu.js:80 #: ../js/ui/dateMenu.js:80
msgid "%A %B %e %Y" msgid "%A %B %e %Y"
msgstr "%A %e %B %Y" msgstr "%A %e %B %Y"
@ -938,13 +964,13 @@ msgstr ""
msgid "Other users are logged in." msgid "Other users are logged in."
msgstr "D'autres utilisateurs sont connectés." msgstr "D'autres utilisateurs sont connectés."
#. Translators: Remote here refers to a remote session, like a ssh login */ #. Translators: Remote here refers to a remote session, like a ssh login
#: ../js/ui/endSessionDialog.js:640 #: ../js/ui/endSessionDialog.js:640
#, javascript-format #, javascript-format
msgid "%s (remote)" msgid "%s (remote)"
msgstr "%s (distant)" msgstr "%s (distant)"
#. Translators: Console here refers to a tty like a VT console */ #. Translators: Console here refers to a tty like a VT console
#: ../js/ui/endSessionDialog.js:643 #: ../js/ui/endSessionDialog.js:643
#, javascript-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
@ -963,7 +989,7 @@ msgstr "Télécharger et installer « %s » à partir de extensions.gnome.org
msgid "Keyboard" msgid "Keyboard"
msgstr "Clavier" msgstr "Clavier"
#. translators: 'Hide' is a verb */ #. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66 #: ../js/ui/legacyTray.js:66
msgid "Hide tray" msgid "Hide tray"
msgstr "Masquer le tiroir" msgstr "Masquer le tiroir"
@ -976,7 +1002,7 @@ msgstr "Icônes d'état"
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Aucune extension installée" msgstr "Aucune extension installée"
#. Translators: argument is an extension UUID. */ #. Translators: argument is an extension UUID.
#: ../js/ui/lookingGlass.js:697 #: ../js/ui/lookingGlass.js:697
#, javascript-format #, javascript-format
msgid "%s has not emitted any errors." msgid "%s has not emitted any errors."
@ -996,7 +1022,7 @@ msgstr "Activé"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled" msgid "Disabled"
msgstr "Désactivé" msgstr "Désactivé"
@ -1035,7 +1061,7 @@ msgstr "Vue d'ensemble"
#. Translators: this is the text displayed #. Translators: this is the text displayed
#. in the search entry when no search is #. in the search entry when no search is
#. active; it should not exceed ~30 #. active; it should not exceed ~30
#. characters. */ #. characters.
#: ../js/ui/overview.js:244 #: ../js/ui/overview.js:244
msgid "Type to search…" msgid "Type to search…"
msgstr "Rechercher…" msgstr "Rechercher…"
@ -1045,15 +1071,25 @@ msgid "Quit"
msgstr "Quitter" msgstr "Quitter"
#. Translators: If there is no suitable word for "Activities" #. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". */ #. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:404 #: ../js/ui/panel.js:404
msgid "Activities" msgid "Activities"
msgstr "Activités" msgstr "Activités"
#: ../js/ui/panel.js:650
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Système"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:754
msgid "Top Bar" msgid "Top Bar"
msgstr "Barre supérieure" msgstr "Barre supérieure"
#. Translators: this MUST be either "toggle-switch-us"
#. (for toggle switches containing the English words
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:289 #: ../js/ui/popupMenu.js:289
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
@ -1071,7 +1107,7 @@ msgid "Restarting…"
msgstr "Redémarrage en cours…" msgstr "Redémarrage en cours…"
#. Translators: This is a time format for a date in #. Translators: This is a time format for a date in
#. long format */ #. long format
#: ../js/ui/screenShield.js:85 #: ../js/ui/screenShield.js:85
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A %d %B" msgstr "%A %d %B"
@ -1098,6 +1134,13 @@ msgstr "Verrouiller"
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "GNOME a besoin de verrouiller l'écran" msgstr "GNOME a besoin de verrouiller l'écran"
#. We could not become modal, so we can't activate the
#. screenshield. The user is probably very upset at this
#. point, but any application using global grabs is broken
#. Just tell him to stop using this app
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271 #: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271
msgid "Unable to lock" msgid "Unable to lock"
msgstr "Impossible de verrouiller" msgstr "Impossible de verrouiller"
@ -1193,7 +1236,7 @@ msgstr "Éteindre"
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Paramètres Bluetooth" msgstr "Paramètres Bluetooth"
#. Translators: this is the number of connected bluetooth devices */ #. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:105 #: ../js/ui/status/bluetooth.js:105
#, javascript-format #, javascript-format
msgid "%d Connected" msgid "%d Connected"
@ -1241,13 +1284,13 @@ msgstr "Activer"
msgid "<unknown>" msgid "<unknown>"
msgstr "<inconnu>" msgstr "<inconnu>"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308 #: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
#, javascript-format #, javascript-format
msgid "%s Off" msgid "%s Off"
msgstr "%s éteint" msgstr "%s éteint"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:454 #: ../js/ui/status/network.js:454
#, javascript-format #, javascript-format
msgid "%s Connected" msgid "%s Connected"
@ -1255,45 +1298,45 @@ msgstr "%s connecté"
#. Translators: this is for network devices that are physically present but are not #. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu); #. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier */ #. %s is a network identifier
#: ../js/ui/status/network.js:459 #: ../js/ui/status/network.js:459
#, javascript-format #, javascript-format
msgid "%s Unmanaged" msgid "%s Unmanaged"
msgstr "%s non géré" msgstr "%s non géré"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:462 #: ../js/ui/status/network.js:462
#, javascript-format #, javascript-format
msgid "%s Disconnecting" msgid "%s Disconnecting"
msgstr "Déconnexion de %s en cours" msgstr "Déconnexion de %s en cours"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300 #: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
#, javascript-format #, javascript-format
msgid "%s Connecting" msgid "%s Connecting"
msgstr "Connexion de %s en cours" msgstr "Connexion de %s en cours"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier */ #. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: ../js/ui/status/network.js:472 #: ../js/ui/status/network.js:472
#, javascript-format #, javascript-format
msgid "%s Requires Authentication" msgid "%s Requires Authentication"
msgstr "Authentification nécessaire pour %s" msgstr "Authentification nécessaire pour %s"
#. Translators: this is for devices that require some kind of firmware or kernel #. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier */ #. module, which is missing; %s is a network identifier
#: ../js/ui/status/network.js:480 #: ../js/ui/status/network.js:480
#, javascript-format #, javascript-format
msgid "Firmware Missing For %s" msgid "Firmware Missing For %s"
msgstr "Micrologiciel manquant pour %s" msgstr "Micrologiciel manquant pour %s"
#. Translators: this is for a network device that cannot be activated (for example it #. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier */ #. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: ../js/ui/status/network.js:484 #: ../js/ui/status/network.js:484
#, javascript-format #, javascript-format
msgid "%s Unavailable" msgid "%s Unavailable"
msgstr "%s non disponible" msgstr "%s non disponible"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:487 #: ../js/ui/status/network.js:487
#, javascript-format #, javascript-format
msgid "%s Connection Failed" msgid "%s Connection Failed"
@ -1307,14 +1350,14 @@ msgstr "Paramètres filaire"
msgid "Mobile Broadband Settings" msgid "Mobile Broadband Settings"
msgstr "Paramètres connexion mobile" msgstr "Paramètres connexion mobile"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305 #: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
#, javascript-format #, javascript-format
msgid "%s Hardware Disabled" msgid "%s Hardware Disabled"
msgstr "Équipement %s désactivé" msgstr "Équipement %s désactivé"
#. Translators: this is for a network device that cannot be activated #. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier */ #. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: ../js/ui/status/network.js:592 #: ../js/ui/status/network.js:592
#, javascript-format #, javascript-format
msgid "%s Disabled" msgid "%s Disabled"
@ -1376,13 +1419,13 @@ msgstr "Paramètres Wi-Fi"
msgid "Turn On" msgid "Turn On"
msgstr "Activer" msgstr "Activer"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296 #: ../js/ui/status/network.js:1296
#, javascript-format #, javascript-format
msgid "%s Hotspot Active" msgid "%s Hotspot Active"
msgstr "Hotspot %s actif" msgstr "Hotspot %s actif"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1311 #: ../js/ui/status/network.js:1311
#, javascript-format #, javascript-format
msgid "%s Not Connected" msgid "%s Not Connected"
@ -1392,7 +1435,7 @@ msgstr "%s non connecté"
msgid "connecting..." msgid "connecting..."
msgstr "connexion..." msgstr "connexion..."
#. Translators: this is for network connections that require some kind of key or password */ #. Translators: this is for network connections that require some kind of key or password
#: ../js/ui/status/network.js:1414 #: ../js/ui/status/network.js:1414
msgid "authentication required" msgid "authentication required"
msgstr "authentification nécessaire" msgstr "authentification nécessaire"
@ -1433,20 +1476,27 @@ msgstr "Paramètres de gestion de l'énergie"
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Charge complète" msgstr "Charge complète"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78 #: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
msgid "Estimating…" msgid "Estimating…"
msgstr "Estimation en cours…" msgstr "Estimation en cours…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:86
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d restant (%d%%)" msgstr "%d%02d restant (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91 #: ../js/ui/status/power.js:91
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "%d%02d avant chargement complet (%d%%)" msgstr "%d%02d avant chargement complet (%d%%)"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
#. changing the menu contents.
#: ../js/ui/status/rfkill.js:88 #: ../js/ui/status/rfkill.js:88
msgid "Airplane Mode On" msgid "Airplane Mode On"
msgstr "Mode avion activé" msgstr "Mode avion activé"
@ -1514,7 +1564,7 @@ msgstr "Voulez-vous conserver ces paramètres d'affichage ?"
#. Translators: this and the following message should be limited in lenght, #. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels. #. to avoid ellipsizing the labels.
#. */ #.
#: ../js/ui/windowManager.js:82 #: ../js/ui/windowManager.js:82
msgid "Revert Settings" msgid "Revert Settings"
msgstr "Restaurer les paramètres" msgstr "Restaurer les paramètres"
@ -1531,7 +1581,7 @@ msgstr[0] "Les paramètres seront restaurés dans %d seconde"
msgstr[1] "Les paramètres seront restaurés dans %d secondes" msgstr[1] "Les paramètres seront restaurés dans %d secondes"
#. Translators: This represents the size of a window. The first number is #. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height. */ #. * the width of the window and the second is the height.
#: ../js/ui/windowManager.js:658 #: ../js/ui/windowManager.js:658
#, javascript-format #, javascript-format
msgid "%d x %d" msgid "%d x %d"
@ -1607,7 +1657,7 @@ msgstr "Agenda d'Evolution"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1837 #: ../src/gvc/gvc-mixer-control.c:1835
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1616,31 +1666,31 @@ msgstr[1] "%u sorties"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1847 #: ../src/gvc/gvc-mixer-control.c:1845
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
msgstr[0] "%u entrée" msgstr[0] "%u entrée"
msgstr[1] "%u entrées" msgstr[1] "%u entrées"
#: ../src/gvc/gvc-mixer-control.c:2373 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "Sons système" msgstr "Sons système"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Affiche la version" msgstr "Affiche la version"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Mode utilisé par GDM pour l'écran de connexion" msgstr "Mode utilisé par GDM pour l'écran de connexion"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "" msgstr ""
"Utiliser un mode particulier, par ex. « gdm » pour l'écran de connexion" "Utiliser un mode particulier, par ex. « gdm » pour l'écran de connexion"
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "Lister les modes possibles" msgstr "Lister les modes possibles"

160
po/ga.po
View File

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

1517
po/gd.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -10,9 +10,10 @@
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: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"POT-Creation-Date: 2015-08-26 00:05+0200\n" "shell&keywords=I18N+L10N&component=general\n"
"PO-Revision-Date: 2015-08-26 00:10+0200\n" "POT-Creation-Date: 2015-09-28 20:46+0000\n"
"PO-Revision-Date: 2015-09-29 00:34+0200\n"
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n" "Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
"Language-Team: gnome-l10n-gl@gnome.org\n" "Language-Team: gnome-l10n-gl@gnome.org\n"
"Language: gl\n" "Language: gl\n"
@ -320,7 +321,7 @@ 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:215
#: ../js/gdm/authPrompt.js:435 #: ../js/gdm/authPrompt.js:447
msgid "Next" msgid "Next"
msgstr "Seguinte" msgstr "Seguinte"
@ -347,7 +348,7 @@ msgstr "Non está na lista?"
#. Translators: this message is shown below the username entry field #. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm #. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:847 #: ../js/gdm/loginDialog.js:850
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(p.ex., usuario ou %s)" msgstr "(p.ex., usuario ou %s)"
@ -355,12 +356,12 @@ msgstr "(p.ex., usuario ou %s)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:852 ../js/ui/components/networkAgent.js:271 #: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289 #: ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
msgstr "Nome de usuario: " msgstr "Nome de usuario: "
#: ../js/gdm/loginDialog.js:1181 #: ../js/gdm/loginDialog.js:1184
msgid "Login Window" msgid "Login Window"
msgstr "Xanela de inicio de sesión" msgstr "Xanela de inicio de sesión"
@ -514,8 +515,7 @@ msgstr "Cambiar fondo de escritorio…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Preferencias da pantalla" msgstr "Preferencias da pantalla"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "Preferencias" msgstr "Preferencias"
@ -591,33 +591,33 @@ msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Todo o día" msgstr "Todo o día"
#: ../js/ui/calendar.js:1291 #: ../js/ui/calendar.js:1295
msgid "Clear section" msgid "Clear section"
msgstr "Limpar sección" msgstr "Limpar sección"
#: ../js/ui/calendar.js:1518 #: ../js/ui/calendar.js:1522
msgid "Events" msgid "Events"
msgstr "Eventos" msgstr "Eventos"
#: ../js/ui/calendar.js:1527 #: ../js/ui/calendar.js:1531
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d de %B" msgstr "%A, %d de %B"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:1535
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A, %d de %B de %Y" msgstr "%A, %d de %B de %Y"
#: ../js/ui/calendar.js:1616 #: ../js/ui/calendar.js:1620
msgid "Notifications" msgid "Notifications"
msgstr "Notificacións" msgstr "Notificacións"
#: ../js/ui/calendar.js:1767 #: ../js/ui/calendar.js:1771
msgid "No Notifications" msgid "No Notifications"
msgstr "Non hai notificacións" msgstr "Non hai notificacións"
#: ../js/ui/calendar.js:1770 #: ../js/ui/calendar.js:1774
msgid "No Events" msgid "No Events"
msgstr "Non hai eventos" msgstr "Non hai eventos"
@ -973,7 +973,7 @@ msgstr "Activado"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled" msgid "Disabled"
msgstr "Desactivado" msgstr "Desactivado"
@ -1027,6 +1027,12 @@ msgstr "Saír"
msgid "Activities" msgid "Activities"
msgstr "Actividades" msgstr "Actividades"
#: ../js/ui/panel.js:650
#| msgid "System"
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistema"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:754
msgid "Top Bar" msgid "Top Bar"
msgstr "Barra superior" msgstr "Barra superior"
@ -1603,7 +1609,7 @@ msgstr "Calendario de Evolution"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1837 #: ../src/gvc/gvc-mixer-control.c:1835
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1612,32 +1618,32 @@ msgstr[1] "%u saídas"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1847 #: ../src/gvc/gvc-mixer-control.c:1845
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
msgstr[0] "%u entrada" msgstr[0] "%u entrada"
msgstr[1] "%u entradas" msgstr[1] "%u entradas"
#: ../src/gvc/gvc-mixer-control.c:2373 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "Sons do sistema" msgstr "Sons do sistema"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Imprimir versión" msgstr "Imprimir versión"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Modo usado por GDM para a pantalla de inicio" msgstr "Modo usado por GDM para a pantalla de inicio"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "" msgstr ""
"Usar un modo específico, por exemplo, «gdm» para a pantalla de inicio de " "Usar un modo específico, por exemplo, «gdm» para a pantalla de inicio de "
"sesión" "sesión"
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "Listar os modos posíbeis" msgstr "Listar os modos posíbeis"

267
po/he.po
View File

@ -10,8 +10,8 @@ msgid ""
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-30 21:15+0300\n" "POT-Creation-Date: 2015-11-19 20:37+0200\n"
"PO-Revision-Date: 2015-11-19 20:37+0200\n" "PO-Revision-Date: 2015-11-19 20:37+0200\n"
"Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n" "Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n"
"Language-Team: עברית <>\n" "Language-Team: עברית <>\n"
@ -47,15 +47,6 @@ msgstr "הצגת כל היישומים"
#: ../data/50-gnome-shell-system.xml.in.h:6 #: ../data/50-gnome-shell-system.xml.in.h:6
msgid "Open the application menu" msgid "Open the application menu"
msgstr "פתיחת תפריט היישום" msgstr "פתיחת תפריט היישום"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "מעטפת GNOME"
#: ../data/gnome-shell.desktop.in.in.h:2
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "ניהול חלונות והרצת יישומים"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
@ -64,9 +55,13 @@ msgstr "העדפות ההרחבות של GNOME Shell"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:2 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:2
msgid "Configure GNOME Shell Extensions" msgid "Configure GNOME Shell Extensions"
msgstr "הגדרת הרחבות GNOME Shell" msgstr "הגדרת הרחבות GNOME Shell"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1 #: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)" msgid "GNOME Shell"
msgstr "מעטפת GNOME"
#: ../data/org.gnome.Shell.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "ניהול חלונות והרצת יישומים" msgstr "ניהול חלונות והרצת יישומים"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1 #: ../data/org.gnome.shell.gschema.xml.in.in.h:1
@ -170,74 +165,92 @@ msgstr ""
"'Remember Password' checkbox will be present. This key sets the default " "'Remember Password' checkbox will be present. This key sets the default "
"state of the checkbox." "state of the checkbox."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
"Whether the default Bluetooth adapter had set up devices associated to it"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
"powered, or if there were devices set up associated with the default "
"adapter. This will be reset if the default adapter is ever seen not to have "
"devices associated to it."
msgstr ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
"powered, or if there were devices set up associated with the default "
"adapter. This will be reset if the default adapter is ever seen not to have "
"devices associated to it."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20 #: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar" msgid "Show the week date in the calendar"
msgstr "Show the week date in the calendar" msgstr "Show the week date in the calendar"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21 #: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "If true, display the ISO week date in the calendar." msgid "If true, display the ISO week date in the calendar."
msgstr "If true, display the ISO week date in the calendar." msgstr "If true, display the ISO week date in the calendar."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the application menu" msgid "Keybinding to open the application menu"
msgstr "Keybinding to open the application menu" msgstr "Keybinding to open the application menu"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
msgid "Keybinding to open the application menu." msgid "Keybinding to open the application menu."
msgstr "Keybinding to open the application menu." msgstr "Keybinding to open the application menu."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the \"Show Applications\" view" msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Keybinding to open the \"Show Applications\" view" msgstr "Keybinding to open the \"Show Applications\" view"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25 #: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "" msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview." "Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr "" msgstr ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview." "Keybinding to open the \"Show Applications\" view of the Activities Overview."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "Keybinding to open the overview" msgstr "Keybinding to open the overview"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27 #: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "Keybinding to open the Activities Overview." msgstr "Keybinding to open the Activities Overview."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28 #: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to toggle the visibility of the notification list" msgid "Keybinding to toggle the visibility of the notification list"
msgstr "Keybinding to toggle the visibility of the notification list" msgstr "Keybinding to toggle the visibility of the notification list"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29 #: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to toggle the visibility of the notification list." msgid "Keybinding to toggle the visibility of the notification list."
msgstr "Keybinding to toggle the visibility of the notification list." msgstr "Keybinding to toggle the visibility of the notification list."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "Keybinding to focus the active notification" msgstr "Keybinding to focus the active notification"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31 #: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "Keybinding to focus the active notification." msgstr "Keybinding to focus the active notification."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32 #: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "" msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes" "Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr "" msgstr ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes" "Keybinding that pauses and resumes all running tweens, for debugging purposes"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33 #: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Which keyboard to use" msgid "Which keyboard to use"
msgstr "Which keyboard to use" msgstr "Which keyboard to use"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34 #: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid "The type of keyboard to use." msgid "The type of keyboard to use."
msgstr "The type of keyboard to use." msgstr "The type of keyboard to use."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35 #: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "Limit switcher to current workspace." msgstr "Limit switcher to current workspace."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36 #: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid "" msgid ""
"If true, only applications that have windows on the current workspace are " "If true, only applications that have windows on the current workspace are "
@ -245,51 +258,51 @@ msgstr ""
msgstr "" msgstr ""
"If true, only applications that have windows on the current workspace are " "If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included." "shown in the switcher. Otherwise, all applications are included."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "The application icon mode." msgid "The application icon mode."
msgstr "The application icon mode." msgstr "The application icon mode."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
"only' (shows only the application icon) or 'both'."
msgstr ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
"only' (shows only the application icon) or 'both'."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
msgstr ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "Attach modal dialog to the parent window" msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
"only' (shows only the application icon) or 'both'."
msgstr ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
"only' (shows only the application icon) or 'both'." "only' (shows only the application icon) or 'both'."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39 #: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
msgstr ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Attach modal dialog to the parent window"
msgstr "Attach modal dialog to the parent window"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid "" msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "" msgstr ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." "This key overrides the key in org.gnome.mutter when running GNOME Shell."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42 #: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Enable edge tiling when dropping windows on screen edges" msgstr "Enable edge tiling when dropping windows on screen edges"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43 #: ../data/org.gnome.shell.gschema.xml.in.in.h:43
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Workspaces are managed dynamically" msgstr "Workspaces are managed dynamically"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44 #: ../data/org.gnome.shell.gschema.xml.in.in.h:44
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Workspaces only on primary monitor" msgstr "Workspaces only on primary monitor"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45 #: ../data/org.gnome.shell.gschema.xml.in.in.h:45
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Delay focus changes in mouse mode until the pointer stops moving" msgstr "Delay focus changes in mouse mode until the pointer stops moving"
@ -314,7 +327,7 @@ msgid "Cancel"
msgid "Cancel" msgid "Cancel"
msgstr "ביטול" msgstr "ביטול"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215 #: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:447 #: ../js/gdm/authPrompt.js:447
msgid "Next" msgid "Next"
msgstr "הבא" msgstr "הבא"
@ -341,7 +354,7 @@ msgstr "לא רשום?"
msgstr "לא רשום?" msgstr "לא רשום?"
#. Translators: this message is shown below the username entry field #. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm #. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:850 #: ../js/gdm/loginDialog.js:850
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
@ -349,12 +362,12 @@ msgstr "(משתמש או %s לדוגמה)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271 #: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289 #: ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
msgstr "שם משתמש:" msgstr "שם משתמש:"
#: ../js/gdm/loginDialog.js:1180 #: ../js/gdm/loginDialog.js:1180
msgid "Login Window" msgid "Login Window"
msgstr "חלון כניסה" msgstr "חלון כניסה"
@ -490,12 +503,12 @@ msgstr "הוספה למועדפים"
#: ../js/ui/appDisplay.js:1897 #: ../js/ui/appDisplay.js:1897
msgid "Show Details" msgid "Show Details"
msgstr "הצגת פרטים" msgstr "הצגת פרטים"
#: ../js/ui/appFavorites.js:133 #: ../js/ui/appFavorites.js:133
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "%s נוסף למועדפים שלך." msgstr "%s נוסף למועדפים שלך."
#: ../js/ui/appFavorites.js:167 #: ../js/ui/appFavorites.js:167
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
@ -508,8 +521,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/panel.js:650
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "הגדרות" msgstr "הגדרות"
@ -573,6 +585,12 @@ msgstr "חודש קודם"
#: ../js/ui/calendar.js:576 #: ../js/ui/calendar.js:576
msgid "Next month" msgid "Next month"
msgstr "חודש הבא" msgstr "חודש הבא"
#: ../js/ui/calendar.js:728
#, javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:783 #: ../js/ui/calendar.js:783
msgid "Week %V" msgid "Week %V"
@ -585,33 +603,33 @@ msgctxt "event list time"
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "יום שלם" msgstr "יום שלם"
#: ../js/ui/calendar.js:1295 #: ../js/ui/calendar.js:1295
msgid "Clear section" msgid "Clear section"
msgstr "ניקוי מקטע" msgstr "ניקוי מקטע"
#: ../js/ui/calendar.js:1522 #: ../js/ui/calendar.js:1522
msgid "Events" msgid "Events"
msgstr "אירועים" msgstr "אירועים"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:1531
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:1535 #: ../js/ui/calendar.js:1535
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:1620 #: ../js/ui/calendar.js:1620
msgid "Notifications" msgid "Notifications"
msgstr "התרעות" msgstr "התרעות"
#: ../js/ui/calendar.js:1771 #: ../js/ui/calendar.js:1771
msgid "No Notifications" msgid "No Notifications"
msgstr "אין התרעות" msgstr "אין התרעות"
#: ../js/ui/calendar.js:1774 #: ../js/ui/calendar.js:1774
msgid "No Events" msgid "No Events"
msgstr "אין אירועים" msgstr "אין אירועים"
@ -623,7 +641,7 @@ msgstr "חובר כונן חיצוני"
#: ../js/ui/components/automountManager.js:102 #: ../js/ui/components/automountManager.js:102
msgid "External drive disconnected" msgid "External drive disconnected"
msgstr "נותק כונן חיצוני" msgstr "נותק כונן חיצוני"
#: ../js/ui/components/autorunManager.js:355 #: ../js/ui/components/autorunManager.js:355
#, javascript-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
@ -961,7 +979,7 @@ msgstr "פעיל"
msgstr "פעיל" msgstr "פעיל"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled" msgid "Disabled"
msgstr "מנוטרל" msgstr "מנוטרל"
@ -1005,17 +1023,22 @@ msgstr "סקירה"
#: ../js/ui/overview.js:244 #: ../js/ui/overview.js:244
msgid "Type to search…" msgid "Type to search…"
msgstr "יש להקליד כדי לחפש…" msgstr "יש להקליד כדי לחפש…"
#: ../js/ui/panel.js:358 #: ../js/ui/panel.js:358
msgid "Quit" msgid "Quit"
msgstr "יציאה" msgstr "יציאה"
#. Translators: If there is no suitable word for "Activities" #. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". #. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:414 #: ../js/ui/panel.js:414
msgid "Activities" msgid "Activities"
msgstr "פעילויות" msgstr "פעילויות"
#: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "מערכת"
#: ../js/ui/panel.js:807 #: ../js/ui/panel.js:807
msgid "Top Bar" msgid "Top Bar"
msgstr "הסרגל העליון" msgstr "הסרגל העליון"
@ -1028,15 +1051,15 @@ msgstr "הסרגל העליון"
#: ../js/ui/popupMenu.js:289 #: ../js/ui/popupMenu.js:289
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:71 #: ../js/ui/runDialog.js:71
msgid "Enter a Command" msgid "Enter a Command"
msgstr "נא להזין פקודה" msgstr "נא להזין פקודה"
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162 #: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
msgid "Close" msgid "Close"
msgstr "סגירה" msgstr "סגירה"
#: ../js/ui/runDialog.js:282 #: ../js/ui/runDialog.js:282
msgid "Restarting…" msgid "Restarting…"
msgstr "מופעל מחדש…" msgstr "מופעל מחדש…"
@ -1161,29 +1184,41 @@ msgstr "ניגודיות גבוהה"
#: ../js/ui/status/accessibility.js:202 #: ../js/ui/status/accessibility.js:202
msgid "Large Text" msgid "Large Text"
msgstr "טקסט גדול" msgstr "טקסט גדול"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178 #: ../js/ui/status/bluetooth.js:47
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279 msgid "Bluetooth"
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Bluetooth" msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:56 #: ../js/ui/status/bluetooth.js:56
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "הגדרות Bluetooth" msgstr "הגדרות Bluetooth"
#. Translators: this is the number of connected bluetooth devices #. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:136 #: ../js/ui/status/bluetooth.js:136
#, c-format #, c-format
msgid "%d Connected" msgid "%d Connected"
msgid_plural "%d Connected" msgid_plural "%d Connected"
msgstr[0] "אחד מחובר" msgstr[0] "אחד מחובר"
msgstr[1] "%d מחוברים" msgstr[1] "%d מחוברים"
#: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "כבוי"
#: ../js/ui/status/bluetooth.js:140 #: ../js/ui/status/bluetooth.js:140
msgid "Not In Use" msgid "Not In Use"
msgstr "לא בשימוש" msgstr "לא בשימוש"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "הפעלה"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "כיבוי"
#: ../js/ui/status/brightness.js:44 #: ../js/ui/status/brightness.js:44
msgid "Brightness" msgid "Brightness"
@ -1351,10 +1386,6 @@ msgstr "בחירת רשת"
#: ../js/ui/status/network.js:1177 #: ../js/ui/status/network.js:1177
msgid "Wi-Fi Settings" msgid "Wi-Fi Settings"
msgstr "הגדרות רשת אלחוטית" msgstr "הגדרות רשת אלחוטית"
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "הפעלה"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296 #: ../js/ui/status/network.js:1296
@ -1404,32 +1435,37 @@ msgstr "ההתחברות נכשלה"
#: ../js/ui/status/network.js:1698 #: ../js/ui/status/network.js:1698
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "הפעלת חיבור הרשת נכשלה" msgstr "הפעלת חיבור הרשת נכשלה"
#: ../js/ui/status/power.js:61 #: ../js/ui/status/power.js:61
msgid "Power Settings" msgid "Power Settings"
msgstr "הגדרות צריכת החשמל" msgstr "הגדרות צריכת החשמל"
#: ../js/ui/status/power.js:77 #: ../js/ui/status/power.js:77
msgid "Fully Charged" msgid "Fully Charged"
msgstr "בטעינה מלאה" msgstr "בטעינה מלאה"
#. 0 is reported when UPower does not have enough data #. 0 is reported when UPower does not have enough data
#. to estimate battery life #. to estimate battery life
#: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90 #: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
msgid "Estimating…" msgid "Estimating…"
msgstr "מתבצע שערוך…" msgstr "מתבצע שערוך…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>) #. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:98 #: ../js/ui/status/power.js:98
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d נותרו (%d%%)" msgstr "%d%02d נותרו (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>) #. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:103 #: ../js/ui/status/power.js:103
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "%d:%02d עד לטעינה מלאה (%d%%)" msgstr "%d:%02d עד לטעינה מלאה (%d%%)"
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
#, javascript-format
msgid "%d%%"
msgstr "%d%%"
#. The menu only appears when airplane mode is on, so just #. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically #. statically build it as if it was on, rather than dynamically
@ -1594,7 +1630,7 @@ msgstr "יומן אבולושן"
msgstr "יומן אבולושן" msgstr "יומן אבולושן"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1835 #: ../src/gvc/gvc-mixer-control.c:1835
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
@ -1603,57 +1639,57 @@ msgstr[1] "%u פלטים"
msgstr[1] "%u פלטים" msgstr[1] "%u פלטים"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1845 #: ../src/gvc/gvc-mixer-control.c:1845
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
msgstr[0] "קלט אחד" msgstr[0] "קלט אחד"
msgstr[1] "%u קלטים" msgstr[1] "%u קלטים"
#: ../src/gvc/gvc-mixer-control.c:2371 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "צלילי מערכת" msgstr "צלילי מערכת"
#: ../src/main.c:381 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Print version" msgstr "Print version"
#: ../src/main.c:387 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "המצב בו GDM יעשה שימוש לצורך מסך הכניסה" msgstr "המצב בו GDM יעשה שימוש לצורך מסך הכניסה"
#: ../src/main.c:393 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "שימוש במצב מסוים, לדוגמה: „gdm“ למסך הכניסה" msgstr "שימוש במצב מסוים, לדוגמה: „gdm“ למסך הכניסה"
#: ../src/main.c:399 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "הצגת המצבים האפשריים" msgstr "הצגת המצבים האפשריים"
#: ../src/shell-app.c:246 #: ../src/shell-app.c:246
msgctxt "program" msgctxt "program"
msgid "Unknown" msgid "Unknown"
msgstr "לא ידוע" msgstr "לא ידוע"
#: ../src/shell-app.c:487 #: ../src/shell-app.c:487
#, c-format #, c-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "אירע כשל בטעינת „%s”" msgstr "אירע כשל בטעינת „%s”"
#: ../src/shell-keyring-prompt.c:730 #: ../src/shell-keyring-prompt.c:730
msgid "Passwords do not match." msgid "Passwords do not match."
msgstr "הססמאות אינן תואמות." msgstr "הססמאות אינן תואמות."
#: ../src/shell-keyring-prompt.c:738 #: ../src/shell-keyring-prompt.c:738
msgid "Password cannot be blank" msgid "Password cannot be blank"
msgstr "הססמה אינה יכולה להישאר ריקה" msgstr "הססמה אינה יכולה להישאר ריקה"
#: ../src/shell-polkit-authentication-agent.c:353 #: ../src/shell-polkit-authentication-agent.c:353
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות" msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgid "Bluetooth" #~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "GNOME Shell (מסדר wayland)" #~ msgstr "GNOME Shell (מסדר wayland)"
# javascript-format # javascript-format
@ -1661,9 +1697,6 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgid_plural "%d Connected Devices" #~ msgid_plural "%d Connected Devices"
#~ msgstr[0] "התקן אחד מחובר" #~ msgstr[0] "התקן אחד מחובר"
#~ msgstr[1] "%d התקנים מחוברים" #~ msgstr[1] "%d התקנים מחוברים"
#~ msgid "Off"
#~ msgstr "כבוי"
#~ msgid "Authentication required" #~ msgid "Authentication required"
#~ msgstr "נדרש אימות" #~ msgstr "נדרש אימות"
@ -2257,10 +2290,6 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgstr[0] "דקה אחת נותרה" #~ msgstr[0] "דקה אחת נותרה"
#~ msgstr[1] "%d דקות נותרו" #~ msgstr[1] "%d דקות נותרו"
#~ msgstr[2] "שתי דקות נותרו" #~ msgstr[2] "שתי דקות נותרו"
#~ msgctxt "percent of battery remaining"
#~ msgid "%d%%"
#~ msgstr "%d%%"
#~ msgid "AC Adapter" #~ msgid "AC Adapter"
#~ msgstr "מתאם חשמל" #~ msgstr "מתאם חשמל"

419
po/hu.po

File diff suppressed because it is too large Load Diff

210
po/id.po
View File

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

186
po/it.po
View File

@ -11,8 +11,8 @@ 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: 2015-09-03 20:12+0000\n" "POT-Creation-Date: 2015-09-28 20:46+0000\n"
"PO-Revision-Date: 2015-09-04 10:15+0200\n" "PO-Revision-Date: 2015-09-29 09:02+0200\n"
"Last-Translator: Milo Casagrande <milo@milo.name>\n" "Last-Translator: Milo Casagrande <milo@milo.name>\n"
"Language-Team: Italiano <tp@lists.linux.it>\n" "Language-Team: Italiano <tp@lists.linux.it>\n"
"Language: it\n" "Language: it\n"
@ -21,7 +21,7 @@ msgstr ""
"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-DamnedLies-Scope: partial\n" "X-DamnedLies-Scope: partial\n"
"X-Generator: Poedit 1.8.4\n" "X-Generator: Poedit 1.8.5\n"
#: ../data/50-gnome-shell-system.xml.in.h:1 #: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System" msgid "System"
@ -350,15 +350,23 @@ msgstr "Accedi"
msgid "Choose Session" msgid "Choose Session"
msgstr "Scegli sessione" msgstr "Scegli sessione"
#. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: ../js/gdm/loginDialog.js:431 #: ../js/gdm/loginDialog.js:431
msgid "Not listed?" msgid "Not listed?"
msgstr "Non elencato?" msgstr "Non elencato?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:850 #: ../js/gdm/loginDialog.js:850
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(p.e. utente o %s)" msgstr "(p.e. utente o %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271 #: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289 #: ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
@ -372,6 +380,11 @@ msgstr "Finestra di accesso"
msgid "Authentication error" msgid "Authentication error"
msgstr "Errore di autenticazione" msgstr "Errore di autenticazione"
#. We don't show fingerprint messages directly since it's
#. not the main auth service. Instead we use the messages
#. as a cue to display our own message.
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/util.js:473 #: ../js/gdm/util.js:473
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(o passare il dito)" msgstr "(o passare il dito)"
@ -380,6 +393,8 @@ msgstr "(o passare il dito)"
msgid "Command not found" msgid "Command not found"
msgstr "Comando non trovato" msgstr "Comando non trovato"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
#: ../js/misc/util.js:152 #: ../js/misc/util.js:152
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Impossibile analizzare il comando:" msgstr "Impossibile analizzare il comando:"
@ -389,70 +404,78 @@ msgstr "Impossibile analizzare il comando:"
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "Esecuzione di «%s» non riuscita:" msgstr "Esecuzione di «%s» non riuscita:"
#. Translators: Time in 24h format */ #. Translators: Time in 24h format
#: ../js/misc/util.js:191 #: ../js/misc/util.js:191
msgid "%H%M" msgid "%H%M"
msgstr "%H%M" msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" */ #. time string in 24h format. i.e. "Yesterday, 14:30"
#: ../js/misc/util.js:197 #: ../js/misc/util.js:197
#, no-c-format
msgid "Yesterday, %H%M" msgid "Yesterday, %H%M"
msgstr "Ieri, %H%M" msgstr "Ieri, %H%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" */ #. string in 24h format. i.e. "Monday, 14:30"
#: ../js/misc/util.js:203 #: ../js/misc/util.js:203
#, no-c-format
msgid "%A, %H%M" msgid "%A, %H%M"
msgstr "%A, %H%M" msgstr "%A, %H%M"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 24h format. #. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" */ #. i.e. "May 25, 14:30"
#: ../js/misc/util.js:209 #: ../js/misc/util.js:209
#, no-c-format
msgid "%B %d, %H%M" msgid "%B %d, %H%M"
msgstr "%e %B, %H%M" msgstr "%e %B, %H%M"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format. #. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" */ #. i.e. "May 25 2012, 14:30"
#: ../js/misc/util.js:215 #: ../js/misc/util.js:215
#, no-c-format
msgid "%B %d %Y, %H%M" msgid "%B %d %Y, %H%M"
msgstr "%e %B %Y, %H%M" msgstr "%e %B %Y, %H%M"
#. Translators: Time in 12h format */ #. Translators: Time in 12h format
#: ../js/misc/util.js:220 #: ../js/misc/util.js:220
msgid "%l%M %p" msgid "%l%M %p"
msgstr "%I%M %p" msgstr "%I%M %p"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */ #. time string in 12h format. i.e. "Yesterday, 2:30 pm"
#: ../js/misc/util.js:226 #: ../js/misc/util.js:226
#, no-c-format
msgid "Yesterday, %l%M %p" msgid "Yesterday, %l%M %p"
msgstr "Ieri, %I%M %p" msgstr "Ieri, %I%M %p"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" */ #. string in 12h format. i.e. "Monday, 2:30 pm"
#: ../js/misc/util.js:232 #: ../js/misc/util.js:232
#, no-c-format
msgid "%A, %l%M %p" msgid "%A, %l%M %p"
msgstr "%A, %I%M %p" msgstr "%A, %I%M %p"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 12h format. #. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" */ #. i.e. "May 25, 2:30 pm"
#: ../js/misc/util.js:238 #: ../js/misc/util.js:238
#, no-c-format
msgid "%B %d, %l%M %p" msgid "%B %d, %l%M %p"
msgstr "%d %B, %I%M %p" msgstr "%d %B, %I%M %p"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format. #. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"*/ #. i.e. "May 25 2012, 2:30 pm"
#: ../js/misc/util.js:244 #: ../js/misc/util.js:244
#, no-c-format
msgid "%B %d %Y, %l%M %p" msgid "%B %d %Y, %l%M %p"
msgstr "%d %B %Y, %I%M %p" msgstr "%d %B %Y, %I%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login #. TRANSLATORS: this is the title of the wifi captive portal login
#. * window, until we know the title of the actual login page */ #. * window, until we know the title of the actual login page
#: ../js/portalHelper/main.js:85 #: ../js/portalHelper/main.js:85
msgid "Web Authentication Redirect" msgid "Web Authentication Redirect"
msgstr "Redirezione autenticazione web" msgstr "Redirezione autenticazione web"
@ -505,12 +528,11 @@ msgstr "Cambia sfondo…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Impostazioni monitor" msgstr "Impostazioni monitor"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "Impostazioni" msgstr "Impostazioni"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). */ #. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:55 #: ../js/ui/calendar.js:55
msgctxt "calendar-no-work" msgctxt "calendar-no-work"
msgid "06" msgid "06"
@ -520,43 +542,43 @@ msgstr "06"
#. * #. *
#. * NOTE: These grid abbreviations are always shown together #. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S". #. * and in order, e.g. "S M T W T F S".
#. */ #.
#: ../js/ui/calendar.js:84 #: ../js/ui/calendar.js:84
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "D" msgstr "D"
#. Translators: Calendar grid abbreviation for Monday */ #. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:86 #: ../js/ui/calendar.js:86
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "L" msgstr "L"
#. Translators: Calendar grid abbreviation for Tuesday */ #. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:88 #: ../js/ui/calendar.js:88
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "M" msgstr "M"
#. Translators: Calendar grid abbreviation for Wednesday */ #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:90 #: ../js/ui/calendar.js:90
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "M" msgstr "M"
#. Translators: Calendar grid abbreviation for Thursday */ #. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:92 #: ../js/ui/calendar.js:92
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "G" msgstr "G"
#. Translators: Calendar grid abbreviation for Friday */ #. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:94 #: ../js/ui/calendar.js:94
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "V" msgstr "V"
#. Translators: Calendar grid abbreviation for Saturday */ #. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:96 #: ../js/ui/calendar.js:96
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
@ -576,39 +598,39 @@ msgstr "Settimana %V"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. */ #.
#: ../js/ui/calendar.js:1188 #: ../js/ui/calendar.js:1188
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Giornata" msgstr "Giornata"
#: ../js/ui/calendar.js:1291 #: ../js/ui/calendar.js:1295
msgid "Clear section" msgid "Clear section"
msgstr "Annulla selezione" msgstr "Annulla selezione"
#: ../js/ui/calendar.js:1518 #: ../js/ui/calendar.js:1522
msgid "Events" msgid "Events"
msgstr "Eventi" msgstr "Eventi"
#: ../js/ui/calendar.js:1527 #: ../js/ui/calendar.js:1531
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %e %B" msgstr "%A, %e %B"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:1535
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A, %e %B %Y" msgstr "%A, %e %B %Y"
#: ../js/ui/calendar.js:1616 #: ../js/ui/calendar.js:1620
msgid "Notifications" msgid "Notifications"
msgstr "Notifiche" msgstr "Notifiche"
#: ../js/ui/calendar.js:1767 #: ../js/ui/calendar.js:1771
msgid "No Notifications" msgid "No Notifications"
msgstr "Nessuna notifica" msgstr "Nessuna notifica"
#: ../js/ui/calendar.js:1770 #: ../js/ui/calendar.js:1774
msgid "No Events" msgid "No Events"
msgstr "Nessun evento" msgstr "Nessun evento"
@ -638,6 +660,7 @@ msgstr "Inserire di nuovo:"
msgid "Connect" msgid "Connect"
msgstr "Connetti" msgstr "Connetti"
#. Cisco LEAP
#: ../js/ui/components/networkAgent.js:233 #: ../js/ui/components/networkAgent.js:233
#: ../js/ui/components/networkAgent.js:245 #: ../js/ui/components/networkAgent.js:245
#: ../js/ui/components/networkAgent.js:273 #: ../js/ui/components/networkAgent.js:273
@ -646,6 +669,7 @@ msgstr "Connetti"
msgid "Password: " msgid "Password: "
msgstr "Password: " msgstr "Password: "
#. static WEP
#: ../js/ui/components/networkAgent.js:238 #: ../js/ui/components/networkAgent.js:238
msgid "Key: " msgid "Key: "
msgstr "Chiave: " msgstr "Chiave: "
@ -737,13 +761,13 @@ msgstr "Autentica"
#. Translators: "that didn't work" refers to the fact that the #. Translators: "that didn't work" refers to the fact that the
#. * requested authentication was not gained; this can happen #. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password), #. * because of an authentication error (like invalid password),
#. * for instance. */ #. * for instance.
#: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383 #: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again." msgid "Sorry, that didn't work. Please try again."
msgstr "Errore nell'autenticazione. Provare di nuovo." msgstr "Errore nell'autenticazione. Provare di nuovo."
#. Translators: this is the other person changing their old IM name to their new #. Translators: this is the other person changing their old IM name to their new
#. IM name. */ #. IM name.
#: ../js/ui/components/telepathyClient.js:759 #: ../js/ui/components/telepathyClient.js:759
#, javascript-format #, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
@ -758,13 +782,15 @@ msgid "Show Applications"
msgstr "Mostra applicazioni" msgstr "Mostra applicazioni"
# cruscotto?!?!?!?!?!?!? # cruscotto?!?!?!?!?!?!?
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:449 #: ../js/ui/dash.js:449
msgid "Dash" msgid "Dash"
msgstr "Dash" msgstr "Dash"
#. Translators: This is the date format to use when the calendar popup is #. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM"). #. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#. */ #.
#: ../js/ui/dateMenu.js:73 #: ../js/ui/dateMenu.js:73
msgid "%B %e %Y" msgid "%B %e %Y"
msgstr "%e %B %Y" msgstr "%e %B %Y"
@ -772,7 +798,7 @@ msgstr "%e %B %Y"
#. Translators: This is the accessible name of the date button shown #. Translators: This is the accessible name of the date button shown
#. * below the time in the shell; it should combine the weekday and the #. * below the time in the shell; it should combine the weekday and the
#. * date, e.g. "Tuesday February 17 2015". #. * date, e.g. "Tuesday February 17 2015".
#. */ #.
#: ../js/ui/dateMenu.js:80 #: ../js/ui/dateMenu.js:80
msgid "%A %B %e %Y" msgid "%A %B %e %Y"
msgstr "%A %e %B %Y" msgstr "%A %e %B %Y"
@ -905,13 +931,13 @@ msgstr "Alcune applicazioni risultano occupate o con lavoro non salvato."
msgid "Other users are logged in." msgid "Other users are logged in."
msgstr "Altri utenti sono collegati." msgstr "Altri utenti sono collegati."
#. Translators: Remote here refers to a remote session, like a ssh login */ #. Translators: Remote here refers to a remote session, like a ssh login
#: ../js/ui/endSessionDialog.js:640 #: ../js/ui/endSessionDialog.js:640
#, javascript-format #, javascript-format
msgid "%s (remote)" msgid "%s (remote)"
msgstr "%s (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:643
#, javascript-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
@ -930,7 +956,7 @@ msgstr "Scaricare e installare «%s» da extensions.gnome.org?"
msgid "Keyboard" msgid "Keyboard"
msgstr "Tastiera" msgstr "Tastiera"
#. translators: 'Hide' is a verb */ #. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66 #: ../js/ui/legacyTray.js:66
msgid "Hide tray" msgid "Hide tray"
msgstr "Nascondi cassetto" msgstr "Nascondi cassetto"
@ -943,7 +969,7 @@ msgstr "Icone di stato"
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Nessuna estensione installata" msgstr "Nessuna estensione installata"
#. Translators: argument is an extension UUID. */ #. Translators: argument is an extension UUID.
#: ../js/ui/lookingGlass.js:697 #: ../js/ui/lookingGlass.js:697
#, javascript-format #, javascript-format
msgid "%s has not emitted any errors." msgid "%s has not emitted any errors."
@ -965,7 +991,7 @@ msgstr "Abilitato"
# (ndt) o disabilitata? # (ndt) o disabilitata?
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled" msgid "Disabled"
msgstr "Disabilitato" msgstr "Disabilitato"
@ -1004,7 +1030,7 @@ msgstr "Panoramica"
#. Translators: this is the text displayed #. Translators: this is the text displayed
#. in the search entry when no search is #. in the search entry when no search is
#. active; it should not exceed ~30 #. active; it should not exceed ~30
#. characters. */ #. characters.
#: ../js/ui/overview.js:244 #: ../js/ui/overview.js:244
msgid "Type to search…" msgid "Type to search…"
msgstr "Digita per cercare…" msgstr "Digita per cercare…"
@ -1014,15 +1040,25 @@ msgid "Quit"
msgstr "Esci" msgstr "Esci"
#. Translators: If there is no suitable word for "Activities" #. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". */ #. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:404 #: ../js/ui/panel.js:404
msgid "Activities" msgid "Activities"
msgstr "Attività" msgstr "Attività"
#: ../js/ui/panel.js:650
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistema"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:754
msgid "Top Bar" msgid "Top Bar"
msgstr "Barra superiore" msgstr "Barra superiore"
#. Translators: this MUST be either "toggle-switch-us"
#. (for toggle switches containing the English words
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:289 #: ../js/ui/popupMenu.js:289
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-us" msgstr "toggle-switch-us"
@ -1040,7 +1076,7 @@ msgid "Restarting…"
msgstr "Riavvio…" msgstr "Riavvio…"
#. Translators: This is a time format for a date in #. Translators: This is a time format for a date in
#. long format */ #. long format
#: ../js/ui/screenShield.js:85 #: ../js/ui/screenShield.js:85
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d %B" msgstr "%A, %d %B"
@ -1067,6 +1103,13 @@ msgstr "Blocca"
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "GNOME deve bloccare lo schermo" msgstr "GNOME deve bloccare lo schermo"
#. We could not become modal, so we can't activate the
#. screenshield. The user is probably very upset at this
#. point, but any application using global grabs is broken
#. Just tell him to stop using this app
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271 #: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271
msgid "Unable to lock" msgid "Unable to lock"
msgstr "Impossibile bloccare" msgstr "Impossibile bloccare"
@ -1163,7 +1206,7 @@ msgstr "Spegni"
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Impostazioni Bluetooth" msgstr "Impostazioni Bluetooth"
#. Translators: this is the number of connected bluetooth devices */ #. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:105 #: ../js/ui/status/bluetooth.js:105
#, javascript-format #, javascript-format
msgid "%d Connected" msgid "%d Connected"
@ -1212,13 +1255,13 @@ msgstr "Abilita"
msgid "<unknown>" msgid "<unknown>"
msgstr "<sconosciuto>" msgstr "<sconosciuto>"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308 #: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
#, javascript-format #, javascript-format
msgid "%s Off" msgid "%s Off"
msgstr "%s spento" msgstr "%s spento"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:454 #: ../js/ui/status/network.js:454
#, javascript-format #, javascript-format
msgid "%s Connected" msgid "%s Connected"
@ -1227,45 +1270,45 @@ msgstr "%s collegato"
# FIXME o femminile? boh # FIXME o femminile? boh
#. Translators: this is for network devices that are physically present but are not #. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu); #. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier */ #. %s is a network identifier
#: ../js/ui/status/network.js:459 #: ../js/ui/status/network.js:459
#, javascript-format #, javascript-format
msgid "%s Unmanaged" msgid "%s Unmanaged"
msgstr "%s non gestito" msgstr "%s non gestito"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:462 #: ../js/ui/status/network.js:462
#, javascript-format #, javascript-format
msgid "%s Disconnecting" msgid "%s Disconnecting"
msgstr "%s in disconnessione" msgstr "%s in disconnessione"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300 #: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
#, javascript-format #, javascript-format
msgid "%s Connecting" msgid "%s Connecting"
msgstr "%s in connessione" msgstr "%s in connessione"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier */ #. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: ../js/ui/status/network.js:472 #: ../js/ui/status/network.js:472
#, javascript-format #, javascript-format
msgid "%s Requires Authentication" msgid "%s Requires Authentication"
msgstr "%s richiede autenticazione" msgstr "%s richiede autenticazione"
#. Translators: this is for devices that require some kind of firmware or kernel #. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier */ #. module, which is missing; %s is a network identifier
#: ../js/ui/status/network.js:480 #: ../js/ui/status/network.js:480
#, javascript-format #, javascript-format
msgid "Firmware Missing For %s" msgid "Firmware Missing For %s"
msgstr "Firmware mancante per %s" msgstr "Firmware mancante per %s"
#. Translators: this is for a network device that cannot be activated (for example it #. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier */ #. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: ../js/ui/status/network.js:484 #: ../js/ui/status/network.js:484
#, javascript-format #, javascript-format
msgid "%s Unavailable" msgid "%s Unavailable"
msgstr "%s non disponibile" msgstr "%s non disponibile"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:487 #: ../js/ui/status/network.js:487
#, javascript-format #, javascript-format
msgid "%s Connection Failed" msgid "%s Connection Failed"
@ -1280,7 +1323,7 @@ msgid "Mobile Broadband Settings"
msgstr "Impostazioni banda larga mobile" msgstr "Impostazioni banda larga mobile"
# (ndt) o disabilitata? # (ndt) o disabilitata?
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305 #: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
#, javascript-format #, javascript-format
msgid "%s Hardware Disabled" msgid "%s Hardware Disabled"
@ -1288,7 +1331,7 @@ msgstr "%s disabilitato via hardware"
# (ndt) o disabilitata? # (ndt) o disabilitata?
#. Translators: this is for a network device that cannot be activated #. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier */ #. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: ../js/ui/status/network.js:592 #: ../js/ui/status/network.js:592
#, javascript-format #, javascript-format
msgid "%s Disabled" msgid "%s Disabled"
@ -1350,13 +1393,13 @@ msgstr "Impostazioni Wi-Fi"
msgid "Turn On" msgid "Turn On"
msgstr "Attiva" msgstr "Attiva"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296 #: ../js/ui/status/network.js:1296
#, javascript-format #, javascript-format
msgid "%s Hotspot Active" msgid "%s Hotspot Active"
msgstr "Hotspot %s attivo" msgstr "Hotspot %s attivo"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1311 #: ../js/ui/status/network.js:1311
#, javascript-format #, javascript-format
msgid "%s Not Connected" msgid "%s Not Connected"
@ -1366,7 +1409,7 @@ msgstr "%s non collegato"
msgid "connecting..." msgid "connecting..."
msgstr "connessione…" msgstr "connessione…"
#. Translators: this is for network connections that require some kind of key or password */ #. Translators: this is for network connections that require some kind of key or password
#: ../js/ui/status/network.js:1414 #: ../js/ui/status/network.js:1414
msgid "authentication required" msgid "authentication required"
msgstr "richiesta autenticazione" msgstr "richiesta autenticazione"
@ -1407,21 +1450,28 @@ msgstr "Impostazioni alimentazione"
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Carica" msgstr "Carica"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78 #: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
msgid "Estimating…" msgid "Estimating…"
msgstr "In stima…" msgstr "In stima…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:86
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d rimanente (%d%%)" msgstr "%d%02d rimanente (%d%%)"
# in stile MacOS sarebbe "al pieno" :P # in stile MacOS sarebbe "al pieno" :P
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91 #: ../js/ui/status/power.js:91
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "%d%02d alla carica (%d%%)" msgstr "%d%02d alla carica (%d%%)"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
#. changing the menu contents.
#: ../js/ui/status/rfkill.js:88 #: ../js/ui/status/rfkill.js:88
msgid "Airplane Mode On" msgid "Airplane Mode On"
msgstr "Modalità aereo attiva" msgstr "Modalità aereo attiva"
@ -1490,7 +1540,7 @@ msgstr "Mantenere queste impostazioni per il monitor?"
#. Translators: this and the following message should be limited in lenght, #. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels. #. to avoid ellipsizing the labels.
#. */ #.
#: ../js/ui/windowManager.js:82 #: ../js/ui/windowManager.js:82
msgid "Revert Settings" msgid "Revert Settings"
msgstr "Ripristina impostazioni" msgstr "Ripristina impostazioni"
@ -1507,7 +1557,7 @@ msgstr[0] "Le modifiche alle impostazioni saranno ripristinate tra %d secondo"
msgstr[1] "Le modifiche alle impostazioni saranno ripristinate tra %d secondi" msgstr[1] "Le modifiche alle impostazioni saranno ripristinate tra %d secondi"
#. Translators: This represents the size of a window. The first number is #. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height. */ #. * the width of the window and the second is the height.
#: ../js/ui/windowManager.js:658 #: ../js/ui/windowManager.js:658
#, javascript-format #, javascript-format
msgid "%d x %d" msgid "%d x %d"
@ -1583,7 +1633,7 @@ msgstr "Calendario di Evolution"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1837 #: ../src/gvc/gvc-mixer-control.c:1835
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1592,30 +1642,30 @@ msgstr[1] "%u uscite"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1847 #: ../src/gvc/gvc-mixer-control.c:1845
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
msgstr[0] "%u ingresso" msgstr[0] "%u ingresso"
msgstr[1] "%u ingressi" msgstr[1] "%u ingressi"
#: ../src/gvc/gvc-mixer-control.c:2373 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "Audio di sistema" msgstr "Audio di sistema"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Stampa la versione" msgstr "Stampa la versione"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Modalità usata da GDM per la schermata d'accesso" msgstr "Modalità usata da GDM per la schermata d'accesso"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Usa una modalità specifica, p.e. \"gdm\" per la schermata di accesso" msgstr "Usa una modalità specifica, p.e. \"gdm\" per la schermata di accesso"
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "Elenca le modalità possibili" msgstr "Elenca le modalità possibili"

383
po/kk.po
View File

@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: master\n" "Project-Id-Version: master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2015-09-12 08:19+0000\n" "POT-Creation-Date: 2015-12-06 10:12+0000\n"
"PO-Revision-Date: 2015-09-12 21:07+0500\n" "PO-Revision-Date: 2015-12-06 19:33+0500\n"
"Last-Translator: Baurzhan Muftakhidinov <baurthefirst@gmail.com>\n" "Last-Translator: Baurzhan Muftakhidinov <baurthefirst@gmail.com>\n"
"Language-Team: Kazakh <kk_KZ@googlegroups.com>\n" "Language-Team: Kazakh <kk_KZ@googlegroups.com>\n"
"Language: kk\n" "Language: kk\n"
@ -17,7 +17,7 @@ msgstr ""
"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: Poedit 1.8.4\n" "X-Generator: Poedit 1.8.5\n"
#: ../data/50-gnome-shell-system.xml.in.h:1 #: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System" msgid "System"
@ -43,15 +43,6 @@ msgstr "Барлық қолданбаларды көрсету"
msgid "Open the application menu" msgid "Open the application menu"
msgstr "Қолданбалар мәзірін ашу" msgstr "Қолданбалар мәзірін ашу"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "GNOME Shell"
#: ../data/gnome-shell.desktop.in.in.h:2
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Терезелерді басқару мен қолданбаларды жөнелту"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "GNOME Shell кеңейту баптаулары" msgstr "GNOME Shell кеңейту баптаулары"
@ -60,9 +51,13 @@ msgstr "GNOME Shell кеңейту баптаулары"
msgid "Configure GNOME Shell Extensions" msgid "Configure GNOME Shell Extensions"
msgstr "GNOME Shell кеңейтулерін баптау" msgstr "GNOME Shell кеңейтулерін баптау"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1 #: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)" msgid "GNOME Shell"
msgstr "GNOME Shell (wayland үйлестіргіші)" msgstr "GNOME Shell"
#: ../data/org.gnome.Shell.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Терезелерді басқару мен қолданбаларды жөнелту"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1 #: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2" msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -170,77 +165,95 @@ msgstr ""
"бастапқы күйін орнатады." "бастапқы күйін орнатады."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18 #: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
"Үнсіз келісім бойынша Bluetooth адаптерінде байланысқан құрылғылар бар ма"
#: ../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 ""
"Қоршам Bluetooth мәзірін тек Bluetooth адаптері іске қосылған болса және "
"үнсіз келісім бойынша адаптерінде байланысқан құрылғылар бар болса ғана "
"көрсетеді. Бұл үнсіз келісім адаптерінде байланысқан құрылғылар жоқ болса "
"тасталады."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar" msgid "Show the week date in the calendar"
msgstr "Күнтізбеде апта күнін көрсету" msgstr "Күнтізбеде апта күнін көрсету"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19 #: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "If true, display the ISO week date in the calendar." msgid "If true, display the ISO week date in the calendar."
msgstr "Ақиқат болса, күнтізбеде ISO апта күнін көрсетеді." msgstr "Ақиқат болса, күнтізбеде ISO апта күнін көрсетеді."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20 #: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the application menu" msgid "Keybinding to open the application menu"
msgstr "Қолданбалар мәзірін ашу үшін пернелер комбинациясы" msgstr "Қолданбалар мәзірін ашу үшін пернелер комбинациясы"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
msgid "Keybinding to open the application menu." msgid "Keybinding to open the application menu."
msgstr "Қолданбалар мәзірін ашу үшін пернелер комбинациясы." msgstr "Қолданбалар мәзірін ашу үшін пернелер комбинациясы."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the \"Show Applications\" view" msgid "Keybinding to open the \"Show Applications\" view"
msgstr "\"Қолданбаларды көрсету\" көрінісін ашу үшін пернелер комбинациясы" msgstr "\"Қолданбаларды көрсету\" көрінісін ашу үшін пернелер комбинациясы"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "" msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview." "Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr "" msgstr ""
"Көрініс ішінен \"Қолданбаларды көрсету\" ашу үшін пернелер комбинациясы" "Көрініс ішінен \"Қолданбаларды көрсету\" ашу үшін пернелер комбинациясы"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "Шолуды ашу үшін пернелер комбинациясы." msgstr "Шолуды ашу үшін пернелер комбинациясы."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25 #: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "Көріністі ашу үшін пернелер комбинациясы." msgstr "Көріністі ашу үшін пернелер комбинациясы."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to toggle the visibility of the notification list" msgid "Keybinding to toggle the visibility of the notification list"
msgstr "" msgstr ""
"Хабарламалар тізімінің көрінуін іске қосу/сөндіру үшін пернелер комбинациясы" "Хабарламалар тізімінің көрінуін іске қосу/сөндіру үшін пернелер комбинациясы"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27 #: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to toggle the visibility of the notification list." msgid "Keybinding to toggle the visibility of the notification list."
msgstr "" msgstr ""
"Хабарламалар тізімінің көрінуін іске қосу/сөндіру үшін пернелер комбинациясы." "Хабарламалар тізімінің көрінуін іске қосу/сөндіру үшін пернелер комбинациясы."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "Белсенді ескертуге фокусты ауыстыру пернелер комбинациясы" msgstr "Белсенді ескертуге фокусты ауыстыру пернелер комбинациясы"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29 #: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "Белсенді ескертуге фокусты ауыстыру пернелер комбинациясы." msgstr "Белсенді ескертуге фокусты ауыстыру пернелер комбинациясы."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "" msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes" "Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr "" msgstr ""
"Барлық орындалып тұрған анимацияларды тоқтататын не жалғастыратын пернелер " "Барлық орындалып тұрған анимацияларды тоқтататын не жалғастыратын пернелер "
"жарлығы (жөндеу үшін)" "жарлығы (жөндеу үшін)"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31 #: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Which keyboard to use" msgid "Which keyboard to use"
msgstr "Қолданылатын пернетақта" msgstr "Қолданылатын пернетақта"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32 #: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid "The type of keyboard to use." msgid "The type of keyboard to use."
msgstr "Қолданылатын пернетақта түрі." msgstr "Қолданылатын пернетақта түрі."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33 #: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "Ауыстырғышты ағымдағы жұмыс орнымен шектеу." msgstr "Ауыстырғышты ағымдағы жұмыс орнымен шектеу."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34 #: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid "" msgid ""
"If true, only applications that have windows on the current workspace are " "If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included." "shown in the switcher. Otherwise, all applications are included."
@ -248,11 +261,11 @@ msgstr ""
"Таңдалса, ауыстырғышта тек ағымдағы жұмыс орнындағы терезелері бар " "Таңдалса, ауыстырғышта тек ағымдағы жұмыс орнындағы терезелері бар "
"қолданбалар көрсетіледі. Болмаса, барлық қолданбалар болады." "қолданбалар көрсетіледі. Болмаса, барлық қолданбалар болады."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35 #: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "The application icon mode." msgid "The application icon mode."
msgstr "Қолданбаның таңбаша режимі." msgstr "Қолданбаның таңбаша режимі."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36 #: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "" msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities " "Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-" "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
@ -262,7 +275,7 @@ msgstr ""
"'thumbnail-only' (терезенің кіші көрінісі көрсетіледі), 'app-icon-only' (тек " "'thumbnail-only' (терезенің кіші көрінісі көрсетіледі), 'app-icon-only' (тек "
"қолданба таңбашасы көрсетіледі) немесе 'both' (екеуі де)." "қолданба таңбашасы көрсетіледі) немесе 'both' (екеуі де)."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid "" msgid ""
"If true, only windows from the current workspace are shown in the switcher. " "If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included." "Otherwise, all windows are included."
@ -270,32 +283,32 @@ msgstr ""
"Таңдалса, ауыстырғышта тек ағымдағы жұмыс орнындағы терезелер көрсетіледі. " "Таңдалса, ауыстырғышта тек ағымдағы жұмыс орнындағы терезелер көрсетіледі. "
"Болмаса, барлық терезелер болады." "Болмаса, барлық терезелер болады."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
msgstr "Модальды сұхбатты аталық терезесіне жалғау" msgstr "Модальды сұхбатты аталық терезесіне жалғау"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39 #: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid "" msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "" msgstr ""
"Бұл кілт GNOME Shell орындалған кезде org.gnome.mutter ішіндегі кілтті " "Бұл кілт GNOME Shell орындалған кезде org.gnome.mutter ішіндегі кілтті "
"үстінен жазады." "үстінен жазады."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40 #: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "" msgstr ""
"Терезелерді экран шеттеріне апарған кезде олардың өлшемдерін өзгертуді іске " "Терезелерді экран шеттеріне апарған кезде олардың өлшемдерін өзгертуді іске "
"қосу" "қосу"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41 #: ../data/org.gnome.shell.gschema.xml.in.in.h:43
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Жұмыс орындары динамикалы түрде басқарылады" msgstr "Жұмыс орындары динамикалы түрде басқарылады"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42 #: ../data/org.gnome.shell.gschema.xml.in.in.h:44
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Жұмыс орындар тек біріншілік мониторда" msgstr "Жұмыс орындар тек біріншілік мониторда"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43 #: ../data/org.gnome.shell.gschema.xml.in.in.h:45
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Тышқан режиміндегі фокусты ауыстыру курсор тоқтағанша дейін кідірту" msgstr "Тышқан режиміндегі фокусты ауыстыру курсор тоқтағанша дейін кідірту"
@ -334,25 +347,33 @@ msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Кіру" msgstr "Кіру"
#: ../js/gdm/loginDialog.js:281 #: ../js/gdm/loginDialog.js:285
msgid "Choose Session" msgid "Choose Session"
msgstr "Сессияны таңдау" msgstr "Сессияны таңдау"
#: ../js/gdm/loginDialog.js:431 #. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: ../js/gdm/loginDialog.js:435
msgid "Not listed?" msgid "Not listed?"
msgstr "Тізімде жоқсыз ба?" msgstr "Тізімде жоқсыз ба?"
#: ../js/gdm/loginDialog.js:850 #. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:854
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(мыс., пайдаланушы не %s)" msgstr "(мыс., пайдаланушы не %s)"
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271 #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289 #: ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
msgstr "Пайдаланушы аты:" msgstr "Пайдаланушы аты:"
#: ../js/gdm/loginDialog.js:1184 #: ../js/gdm/loginDialog.js:1196
msgid "Login Window" msgid "Login Window"
msgstr "Жүйеге кіру терезесі" msgstr "Жүйеге кіру терезесі"
@ -360,6 +381,11 @@ msgstr "Жүйеге кіру терезесі"
msgid "Authentication error" msgid "Authentication error"
msgstr "Аутентификация қатесі" msgstr "Аутентификация қатесі"
#. We don't show fingerprint messages directly since it's
#. not the main auth service. Instead we use the messages
#. as a cue to display our own message.
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/util.js:473 #: ../js/gdm/util.js:473
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(немесе саусағыңызды өткізіңіз)" msgstr "(немесе саусағыңызды өткізіңіз)"
@ -368,6 +394,8 @@ msgstr "(немесе саусағыңызды өткізіңіз)"
msgid "Command not found" msgid "Command not found"
msgstr "Команда табылмады" msgstr "Команда табылмады"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
#: ../js/misc/util.js:152 #: ../js/misc/util.js:152
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Команданы талдау мүмкін емес:" msgstr "Команданы талдау мүмкін емес:"
@ -377,70 +405,78 @@ msgstr "Команданы талдау мүмкін емес:"
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "\"%s\" жөнелту сәтсіз:" msgstr "\"%s\" жөнелту сәтсіз:"
#. Translators: Time in 24h format */ #. Translators: Time in 24h format
#: ../js/misc/util.js:191 #: ../js/misc/util.js:191
msgid "%H%M" msgid "%H%M"
msgstr "%H%M" msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" */ #. time string in 24h format. i.e. "Yesterday, 14:30"
#: ../js/misc/util.js:197 #: ../js/misc/util.js:197
#, no-c-format
msgid "Yesterday, %H%M" msgid "Yesterday, %H%M"
msgstr "Кеше, %H%M" msgstr "Кеше, %H%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" */ #. string in 24h format. i.e. "Monday, 14:30"
#: ../js/misc/util.js:203 #: ../js/misc/util.js:203
#, no-c-format
msgid "%A, %H%M" msgid "%A, %H%M"
msgstr "%A, %H%M" msgstr "%A, %H%M"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 24h format. #. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" */ #. i.e. "May 25, 14:30"
#: ../js/misc/util.js:209 #: ../js/misc/util.js:209
#, no-c-format
msgid "%B %d, %H%M" msgid "%B %d, %H%M"
msgstr "%B %d, %H%M" msgstr "%B %d, %H%M"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format. #. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" */ #. i.e. "May 25 2012, 14:30"
#: ../js/misc/util.js:215 #: ../js/misc/util.js:215
#, no-c-format
msgid "%B %d %Y, %H%M" msgid "%B %d %Y, %H%M"
msgstr "%B %d %Y, %H%M" msgstr "%B %d %Y, %H%M"
#. Translators: Time in 12h format */ #. Translators: Time in 12h format
#: ../js/misc/util.js:220 #: ../js/misc/util.js:220
msgid "%l%M %p" msgid "%l%M %p"
msgstr "%l%M %p" msgstr "%l%M %p"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */ #. time string in 12h format. i.e. "Yesterday, 2:30 pm"
#: ../js/misc/util.js:226 #: ../js/misc/util.js:226
#, no-c-format
msgid "Yesterday, %l%M %p" msgid "Yesterday, %l%M %p"
msgstr "Кеше, %l%M %p" msgstr "Кеше, %l%M %p"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" */ #. string in 12h format. i.e. "Monday, 2:30 pm"
#: ../js/misc/util.js:232 #: ../js/misc/util.js:232
#, no-c-format
msgid "%A, %l%M %p" msgid "%A, %l%M %p"
msgstr "%A, %l%M %p" msgstr "%A, %l%M %p"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 12h format. #. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" */ #. i.e. "May 25, 2:30 pm"
#: ../js/misc/util.js:238 #: ../js/misc/util.js:238
#, no-c-format
msgid "%B %d, %l%M %p" msgid "%B %d, %l%M %p"
msgstr "%B %d, %l%M %p" msgstr "%B %d, %l%M %p"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format. #. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"*/ #. i.e. "May 25 2012, 2:30 pm"
#: ../js/misc/util.js:244 #: ../js/misc/util.js:244
#, no-c-format
msgid "%B %d %Y, %l%M %p" msgid "%B %d %Y, %l%M %p"
msgstr "%B %d %Y, %l%M %p" msgstr "%B %d %Y, %l%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login #. TRANSLATORS: this is the title of the wifi captive portal login
#. * window, until we know the title of the actual login page */ #. * window, until we know the title of the actual login page
#: ../js/portalHelper/main.js:85 #: ../js/portalHelper/main.js:85
msgid "Web Authentication Redirect" msgid "Web Authentication Redirect"
msgstr "Веб аутентификацияның қайта бағдарлауы" msgstr "Веб аутентификацияның қайта бағдарлауы"
@ -473,12 +509,12 @@ msgstr "Таңдамалыларға қосу"
msgid "Show Details" msgid "Show Details"
msgstr "Деректерді көрсету" msgstr "Деректерді көрсету"
#: ../js/ui/appFavorites.js:132 #: ../js/ui/appFavorites.js:133
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "%s таңдамалыларыңызға қосылды." msgstr "%s таңдамалыларыңызға қосылды."
#: ../js/ui/appFavorites.js:166 #: ../js/ui/appFavorites.js:167
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s таңдамалыларыңыздан өшірілді." msgstr "%s таңдамалыларыңыздан өшірілді."
@ -491,12 +527,11 @@ msgstr "Фонды өзгерту..."
msgid "Display Settings" msgid "Display Settings"
msgstr "Экран баптаулары" msgstr "Экран баптаулары"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "Баптаулар" msgstr "Баптаулар"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). */ #. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:55 #: ../js/ui/calendar.js:55
msgctxt "calendar-no-work" msgctxt "calendar-no-work"
msgid "06" msgid "06"
@ -506,43 +541,43 @@ msgstr "06"
#. * #. *
#. * NOTE: These grid abbreviations are always shown together #. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S". #. * and in order, e.g. "S M T W T F S".
#. */ #.
#: ../js/ui/calendar.js:84 #: ../js/ui/calendar.js:84
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "Жк" msgstr "Жк"
#. Translators: Calendar grid abbreviation for Monday */ #. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:86 #: ../js/ui/calendar.js:86
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "Дс" msgstr "Дс"
#. Translators: Calendar grid abbreviation for Tuesday */ #. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:88 #: ../js/ui/calendar.js:88
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "Сс" msgstr "Сс"
#. Translators: Calendar grid abbreviation for Wednesday */ #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:90 #: ../js/ui/calendar.js:90
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "Ср" msgstr "Ср"
#. Translators: Calendar grid abbreviation for Thursday */ #. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:92 #: ../js/ui/calendar.js:92
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "Бс" msgstr "Бс"
#. Translators: Calendar grid abbreviation for Friday */ #. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:94 #: ../js/ui/calendar.js:94
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "Жм" msgstr "Жм"
#. Translators: Calendar grid abbreviation for Saturday */ #. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:96 #: ../js/ui/calendar.js:96
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
@ -556,45 +591,51 @@ msgstr "Өткен ай"
msgid "Next month" msgid "Next month"
msgstr "Келесі ай" msgstr "Келесі ай"
#: ../js/ui/calendar.js:728
#, javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:783 #: ../js/ui/calendar.js:783
msgid "Week %V" msgid "Week %V"
msgstr "Апта %V" msgstr "Апта %V"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. */ #.
#: ../js/ui/calendar.js:1188 #: ../js/ui/calendar.js:1188
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Толық күн" msgstr "Толық күн"
#: ../js/ui/calendar.js:1291 #: ../js/ui/calendar.js:1295
msgid "Clear section" msgid "Clear section"
msgstr "Санатты тазарту" msgstr "Санатты тазарту"
#: ../js/ui/calendar.js:1518 #: ../js/ui/calendar.js:1522
msgid "Events" msgid "Events"
msgstr "Оқиғалар" msgstr "Оқиғалар"
#: ../js/ui/calendar.js:1527 #: ../js/ui/calendar.js:1531
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %B %d" msgstr "%A, %B %d"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:1535
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A, %B %d, %Y" msgstr "%A, %B %d, %Y"
#: ../js/ui/calendar.js:1616 #: ../js/ui/calendar.js:1620
msgid "Notifications" msgid "Notifications"
msgstr "Хабарламалар" msgstr "Хабарламалар"
#: ../js/ui/calendar.js:1767 #: ../js/ui/calendar.js:1771
msgid "No Notifications" msgid "No Notifications"
msgstr "Хабарламалар жоқ" msgstr "Хабарламалар жоқ"
#: ../js/ui/calendar.js:1770 #: ../js/ui/calendar.js:1774
msgid "No Events" msgid "No Events"
msgstr "Оқиғалар жоқ" msgstr "Оқиғалар жоқ"
@ -606,7 +647,7 @@ msgstr "Сыртқы диск қосылды"
msgid "External drive disconnected" msgid "External drive disconnected"
msgstr "Сыртқы диск алынды" msgstr "Сыртқы диск алынды"
#: ../js/ui/components/autorunManager.js:354 #: ../js/ui/components/autorunManager.js:355
#, javascript-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
msgstr "%s көмегімен ашу" msgstr "%s көмегімен ашу"
@ -624,6 +665,7 @@ msgstr "Қайтадан енгізіңіз:"
msgid "Connect" msgid "Connect"
msgstr "Байланысу" msgstr "Байланысу"
#. Cisco LEAP
#: ../js/ui/components/networkAgent.js:233 #: ../js/ui/components/networkAgent.js:233
#: ../js/ui/components/networkAgent.js:245 #: ../js/ui/components/networkAgent.js:245
#: ../js/ui/components/networkAgent.js:273 #: ../js/ui/components/networkAgent.js:273
@ -632,6 +674,7 @@ msgstr "Байланысу"
msgid "Password: " msgid "Password: "
msgstr "Пароль:" msgstr "Пароль:"
#. static WEP
#: ../js/ui/components/networkAgent.js:238 #: ../js/ui/components/networkAgent.js:238
msgid "Key: " msgid "Key: "
msgstr "Кілт:" msgstr "Кілт:"
@ -722,13 +765,13 @@ msgstr "Аутентификация"
#. Translators: "that didn't work" refers to the fact that the #. Translators: "that didn't work" refers to the fact that the
#. * requested authentication was not gained; this can happen #. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password), #. * because of an authentication error (like invalid password),
#. * for instance. */ #. * for instance.
#: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383 #: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again." msgid "Sorry, that didn't work. Please try again."
msgstr "Кешіріңіз, талап сәтсіз. Қайтадан көріңіз." 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:759
#, javascript-format #, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
@ -742,13 +785,15 @@ msgstr "Терезелер"
msgid "Show Applications" msgid "Show Applications"
msgstr "Қолданбаларды көрсету" msgstr "Қолданбаларды көрсету"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:449 #: ../js/ui/dash.js:449
msgid "Dash" msgid "Dash"
msgstr "Dash" msgstr "Dash"
#. Translators: This is the date format to use when the calendar popup is #. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM"). #. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#. */ #.
#: ../js/ui/dateMenu.js:73 #: ../js/ui/dateMenu.js:73
msgid "%B %e %Y" msgid "%B %e %Y"
msgstr "%B %e %Y" msgstr "%B %e %Y"
@ -756,7 +801,7 @@ msgstr "%B %e %Y"
#. Translators: This is the accessible name of the date button shown #. Translators: This is the accessible name of the date button shown
#. * below the time in the shell; it should combine the weekday and the #. * below the time in the shell; it should combine the weekday and the
#. * date, e.g. "Tuesday February 17 2015". #. * date, e.g. "Tuesday February 17 2015".
#. */ #.
#: ../js/ui/dateMenu.js:80 #: ../js/ui/dateMenu.js:80
msgid "%A %B %e %Y" msgid "%A %B %e %Y"
msgstr "%A %B %e %Y" msgstr "%A %B %e %Y"
@ -882,13 +927,13 @@ msgstr "Кейбір қолданбалар бос емес не сақталм
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:640 #: ../js/ui/endSessionDialog.js:640
#, 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:643 #: ../js/ui/endSessionDialog.js:643
#, javascript-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
@ -907,7 +952,7 @@ msgstr "extensions.gnome.org адресінен “%s” жүктеп алып,
msgid "Keyboard" msgid "Keyboard"
msgstr "Пернетақта" msgstr "Пернетақта"
#. translators: 'Hide' is a verb */ #. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66 #: ../js/ui/legacyTray.js:66
msgid "Hide tray" msgid "Hide tray"
msgstr "Жүйелік трейді жасыру" msgstr "Жүйелік трейді жасыру"
@ -920,7 +965,7 @@ msgstr "Қалып-күй таңбашалары"
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Кеңейтулер орнатылмаған" msgstr "Кеңейтулер орнатылмаған"
#. Translators: argument is an extension UUID. */ #. Translators: argument is an extension UUID.
#: ../js/ui/lookingGlass.js:697 #: ../js/ui/lookingGlass.js:697
#, javascript-format #, javascript-format
msgid "%s has not emitted any errors." msgid "%s has not emitted any errors."
@ -940,7 +985,7 @@ msgstr "Іске қосылған"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled" msgid "Disabled"
msgstr "Сөндірулі" msgstr "Сөндірулі"
@ -979,43 +1024,53 @@ 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:244 #: ../js/ui/overview.js:244
msgid "Type to search…" msgid "Type to search…"
msgstr "Іздеу үшін теріңіз..." msgstr "Іздеу үшін теріңіз..."
#: ../js/ui/panel.js:352 #: ../js/ui/panel.js:358
msgid "Quit" msgid "Quit"
msgstr "Шығу" msgstr "Шығу"
#. Translators: If there is no suitable word for "Activities" #. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". */ #. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:404 #: ../js/ui/panel.js:414
msgid "Activities" msgid "Activities"
msgstr "Көрініс" msgstr "Көрініс"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Жүйелік"
#: ../js/ui/panel.js:807
msgid "Top Bar" msgid "Top Bar"
msgstr "Үстідегі панель" msgstr "Үстідегі панель"
#. Translators: this MUST be either "toggle-switch-us"
#. (for toggle switches containing the English words
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:289 #: ../js/ui/popupMenu.js:289
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:70 #: ../js/ui/runDialog.js:71
msgid "Enter a Command" msgid "Enter a Command"
msgstr "Команданы енгізу" msgstr "Команданы енгізу"
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162 #: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
msgid "Close" msgid "Close"
msgstr "Жабу" msgstr "Жабу"
#: ../js/ui/runDialog.js:281 #: ../js/ui/runDialog.js:282
msgid "Restarting…" msgid "Restarting…"
msgstr "Қайта қосу…" msgstr "Қайта қосу…"
#. Translators: This is a time format for a date in #. Translators: This is a time format for a date in
#. long format */ #. long format
#: ../js/ui/screenShield.js:85 #: ../js/ui/screenShield.js:85
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %B %d" msgstr "%A, %B %d"
@ -1040,6 +1095,13 @@ msgstr "Блоктау"
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "GNOME экранды блоктау керек" msgstr "GNOME экранды блоктау керек"
#. We could not become modal, so we can't activate the
#. screenshield. The user is probably very upset at this
#. point, but any application using global grabs is broken
#. Just tell him to stop using this app
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271 #: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271
msgid "Unable to lock" msgid "Unable to lock"
msgstr "Блоктау мүмкін емес" msgstr "Блоктау мүмкін емес"
@ -1124,28 +1186,40 @@ msgstr "Жоғары контраст"
msgid "Large Text" msgid "Large Text"
msgstr "Үлкен мәтін" msgstr "Үлкен мәтін"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178 #: ../js/ui/status/bluetooth.js:47
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279 msgid "Bluetooth"
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90 msgstr "Bluetooth"
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Сөндіру"
#: ../js/ui/status/bluetooth.js:54 #: ../js/ui/status/bluetooth.js:56
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "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:105 #: ../js/ui/status/bluetooth.js:136
#, javascript-format #, javascript-format
msgid "%d Connected" msgid "%d Connected"
msgid_plural "%d Connected" msgid_plural "%d Connected"
msgstr[0] "%d байланысқан" msgstr[0] "%d байланысқан"
#: ../js/ui/status/bluetooth.js:107 #: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "Сөнд."
#: ../js/ui/status/bluetooth.js:140
msgid "Not In Use" msgid "Not In Use"
msgstr "Қолданылуда емес" msgstr "Қолданылуда емес"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Іске қосу"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Сөндіру"
#: ../js/ui/status/brightness.js:44 #: ../js/ui/status/brightness.js:44
msgid "Brightness" msgid "Brightness"
msgstr "Жарықтылығы" msgstr "Жарықтылығы"
@ -1182,13 +1256,13 @@ msgstr "Іске қосу"
msgid "<unknown>" msgid "<unknown>"
msgstr "<белгісіз>" msgstr "<белгісіз>"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308 #: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
#, javascript-format #, javascript-format
msgid "%s Off" msgid "%s Off"
msgstr "%s сөндірулі" msgstr "%s сөндірулі"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:454 #: ../js/ui/status/network.js:454
#, javascript-format #, javascript-format
msgid "%s Connected" msgid "%s Connected"
@ -1196,45 +1270,45 @@ msgstr "%s байланысқан"
#. Translators: this is for network devices that are physically present but are not #. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu); #. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier */ #. %s is a network identifier
#: ../js/ui/status/network.js:459 #: ../js/ui/status/network.js:459
#, javascript-format #, javascript-format
msgid "%s Unmanaged" msgid "%s Unmanaged"
msgstr "%s басқарылмайтын" msgstr "%s басқарылмайтын"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:462 #: ../js/ui/status/network.js:462
#, javascript-format #, javascript-format
msgid "%s Disconnecting" msgid "%s Disconnecting"
msgstr "%s байланысты үзуде" msgstr "%s байланысты үзуде"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300 #: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
#, javascript-format #, javascript-format
msgid "%s Connecting" msgid "%s Connecting"
msgstr "%s байланысуда" msgstr "%s байланысуда"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier */ #. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: ../js/ui/status/network.js:472 #: ../js/ui/status/network.js:472
#, javascript-format #, javascript-format
msgid "%s Requires Authentication" msgid "%s Requires Authentication"
msgstr "%s аутентификацияны талап етеді" msgstr "%s аутентификацияны талап етеді"
#. Translators: this is for devices that require some kind of firmware or kernel #. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier */ #. module, which is missing; %s is a network identifier
#: ../js/ui/status/network.js:480 #: ../js/ui/status/network.js:480
#, javascript-format #, javascript-format
msgid "Firmware Missing For %s" msgid "Firmware Missing For %s"
msgstr "%s үшін бинарлы кодтары жоқ" msgstr "%s үшін бинарлы кодтары жоқ"
#. Translators: this is for a network device that cannot be activated (for example it #. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier */ #. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: ../js/ui/status/network.js:484 #: ../js/ui/status/network.js:484
#, javascript-format #, javascript-format
msgid "%s Unavailable" msgid "%s Unavailable"
msgstr "%s қолжетерсіз" msgstr "%s қолжетерсіз"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:487 #: ../js/ui/status/network.js:487
#, javascript-format #, javascript-format
msgid "%s Connection Failed" msgid "%s Connection Failed"
@ -1248,14 +1322,14 @@ msgstr "Сымды желі баптаулары"
msgid "Mobile Broadband Settings" msgid "Mobile Broadband Settings"
msgstr "Сымсыз кеңжолақты желісінің баптаулары" msgstr "Сымсыз кеңжолақты желісінің баптаулары"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305 #: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
#, javascript-format #, javascript-format
msgid "%s Hardware Disabled" msgid "%s Hardware Disabled"
msgstr "%s құрылғылық түрде сөндірулі тұр" msgstr "%s құрылғылық түрде сөндірулі тұр"
#. Translators: this is for a network device that cannot be activated #. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier */ #. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: ../js/ui/status/network.js:592 #: ../js/ui/status/network.js:592
#, javascript-format #, javascript-format
msgid "%s Disabled" msgid "%s Disabled"
@ -1313,17 +1387,13 @@ msgstr "Желіні таңдау"
msgid "Wi-Fi Settings" msgid "Wi-Fi Settings"
msgstr "Wi-Fi баптаулары" msgstr "Wi-Fi баптаулары"
#: ../js/ui/status/network.js:1279 #. Translators: %s is a network identifier
msgid "Turn On"
msgstr "Іске қосу"
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:1296 #: ../js/ui/status/network.js:1296
#, javascript-format #, javascript-format
msgid "%s Hotspot Active" msgid "%s Hotspot Active"
msgstr "%s қатынау нүктесі белсенді" msgstr "%s қатынау нүктесі белсенді"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1311 #: ../js/ui/status/network.js:1311
#, javascript-format #, javascript-format
msgid "%s Not Connected" msgid "%s Not Connected"
@ -1333,7 +1403,7 @@ msgstr "%s байланыспаған"
msgid "connecting..." msgid "connecting..."
msgstr "байланысты орнату..." msgstr "байланысты орнату..."
#. Translators: this is for network connections that require some kind of key or password */ #. Translators: this is for network connections that require some kind of key or password
#: ../js/ui/status/network.js:1414 #: ../js/ui/status/network.js:1414
msgid "authentication required" msgid "authentication required"
msgstr "аутентификация керек" msgstr "аутентификация керек"
@ -1366,28 +1436,42 @@ msgstr "Байланыс орнату сәтсіз"
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Желілік байланысты белсендіру сәтсіз" msgstr "Желілік байланысты белсендіру сәтсіз"
#: ../js/ui/status/power.js:49 #: ../js/ui/status/power.js:61
msgid "Power Settings" msgid "Power Settings"
msgstr "Қорек баптаулары" msgstr "Қорек баптаулары"
#: ../js/ui/status/power.js:65 #: ../js/ui/status/power.js:77
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Толығымен зарядталған" msgstr "Толығымен зарядталған"
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78 #. 0 is reported when UPower does not have enough data
#. to estimate battery life
#: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
msgid "Estimating…" msgid "Estimating…"
msgstr "Есептеу..." msgstr "Есептеу..."
#: ../js/ui/status/power.js:86 #. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:98
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" #| msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d қалды (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d қалды (%d%%)"
#: ../js/ui/status/power.js:91 #. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:103
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" #| msgid "%d%02d Until Full (%d%%)"
msgstr "%d%02d толық зарядқа дейін (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "%d%02d толық зарядқа дейін (%d%%)"
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
#, javascript-format
msgid "%d%%"
msgstr "%d%%"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
#. changing the menu contents.
#: ../js/ui/status/rfkill.js:88 #: ../js/ui/status/rfkill.js:88
msgid "Airplane Mode On" msgid "Airplane Mode On"
msgstr "Ұшақтағы режим іске қосулы" msgstr "Ұшақтағы режим іске қосулы"
@ -1455,7 +1539,7 @@ msgstr "Экранның бұл баптауларын сақтауды қала
#. Translators: this and the following message should be limited in lenght, #. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels. #. to avoid ellipsizing the labels.
#. */ #.
#: ../js/ui/windowManager.js:82 #: ../js/ui/windowManager.js:82
msgid "Revert Settings" msgid "Revert Settings"
msgstr "Баптауларды қалпына келтіру" msgstr "Баптауларды қалпына келтіру"
@ -1471,7 +1555,7 @@ msgid_plural "Settings changes will revert in %d seconds"
msgstr[0] "Өзгертілген баптаулар %d секундтан кейін қалпына келтіріледі" msgstr[0] "Өзгертілген баптаулар %d секундтан кейін қалпына келтіріледі"
#. Translators: This represents the size of a window. The first number is #. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height. */ #. * the width of the window and the second is the height.
#: ../js/ui/windowManager.js:658 #: ../js/ui/windowManager.js:658
#, javascript-format #, javascript-format
msgid "%d x %d" msgid "%d x %d"
@ -1547,7 +1631,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:1837 #: ../src/gvc/gvc-mixer-control.c:1835
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1555,64 +1639,61 @@ 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:1847 #: ../src/gvc/gvc-mixer-control.c:1845
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
msgstr[0] "%u кірісі" msgstr[0] "%u кірісі"
#: ../src/gvc/gvc-mixer-control.c:2373 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "Жүйелік дыбыстар" msgstr "Жүйелік дыбыстар"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Баспа нұсқасы" msgstr "Баспа нұсқасы"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "GDM жүйеге кіру экраны үшін қолданатын режимі" msgstr "GDM жүйеге кіру экраны үшін қолданатын режимі"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Жүйеге кіру экраны үшін арнайы режимді, мыс. \"gdm\", қолдану" msgstr "Жүйеге кіру экраны үшін арнайы режимді, мыс. \"gdm\", қолдану"
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "Қолжетерлік режимдерді тізіп шығу" msgstr "Қолжетерлік режимдерді тізіп шығу"
#: ../src/shell-app.c:239 #: ../src/shell-app.c:246
msgctxt "program" msgctxt "program"
msgid "Unknown" msgid "Unknown"
msgstr "Белгісіз" msgstr "Белгісіз"
#: ../src/shell-app.c:480 #: ../src/shell-app.c:487
#, c-format #, c-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "\"%s\" жөнелту сәтсіз" msgstr "\"%s\" жөнелту сәтсіз"
#: ../src/shell-keyring-prompt.c:742 #: ../src/shell-keyring-prompt.c:730
msgid "Passwords do not match." msgid "Passwords do not match."
msgstr "Парольдер өзара сәйкес емес." msgstr "Парольдер өзара сәйкес емес."
#: ../src/shell-keyring-prompt.c:750 #: ../src/shell-keyring-prompt.c:738
msgid "Password cannot be blank" msgid "Password cannot be blank"
msgstr "Пароль бос болуы мүмкін емес" msgstr "Пароль бос болуы мүмкін емес"
#: ../src/shell-polkit-authentication-agent.c:346 #: ../src/shell-polkit-authentication-agent.c:353
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "Аутентификация терезесін пайдаланушы тайдырды" msgstr "Аутентификация терезесін пайдаланушы тайдырды"
#~ msgid "Bluetooth" #~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "Bluetooth" #~ msgstr "GNOME Shell (wayland үйлестіргіші)"
#~ msgid "%d Connected Device" #~ msgid "%d Connected Device"
#~ msgid_plural "%d Connected Devices" #~ msgid_plural "%d Connected Devices"
#~ msgstr[0] "%d байланысқан құрылғы" #~ msgstr[0] "%d байланысқан құрылғы"
#~ msgid "Off"
#~ msgstr "Сөнд."
#~ msgid "Authentication required" #~ msgid "Authentication required"
#~ msgstr "Аутентификация керек" #~ msgstr "Аутентификация керек"

186
po/ko.po
View File

@ -20,8 +20,8 @@ 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: 2015-09-05 08:12+0000\n" "POT-Creation-Date: 2015-09-29 08:39+0000\n"
"PO-Revision-Date: 2015-09-06 02:06+0900\n" "PO-Revision-Date: 2015-09-29 19:14+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: Korean\n"
@ -331,15 +331,23 @@ msgstr "로그인"
msgid "Choose Session" msgid "Choose Session"
msgstr "세션 선택" msgstr "세션 선택"
#. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: ../js/gdm/loginDialog.js:431 #: ../js/gdm/loginDialog.js:431
msgid "Not listed?" msgid "Not listed?"
msgstr "목록에 없습니까?" msgstr "목록에 없습니까?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:850 #: ../js/gdm/loginDialog.js:850
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(예를 들어, 사용자 또는 %s)" msgstr "(예를 들어, 사용자 또는 %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271 #: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289 #: ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
@ -353,6 +361,11 @@ msgstr "로그인 창"
msgid "Authentication error" msgid "Authentication error"
msgstr "인증 오류" msgstr "인증 오류"
#. We don't show fingerprint messages directly since it's
#. not the main auth service. Instead we use the messages
#. as a cue to display our own message.
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/util.js:473 #: ../js/gdm/util.js:473
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(또는 지문을 문지르십시오)" msgstr "(또는 지문을 문지르십시오)"
@ -361,6 +374,8 @@ msgstr "(또는 지문을 문지르십시오)"
msgid "Command not found" msgid "Command not found"
msgstr "명령이 없습니다" msgstr "명령이 없습니다"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
#: ../js/misc/util.js:152 #: ../js/misc/util.js:152
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "명령어를 파싱할 수 없습니다:" msgstr "명령어를 파싱할 수 없습니다:"
@ -370,70 +385,78 @@ msgstr "명령어를 파싱할 수 없습니다:"
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "“%s” 실행이 실패했습니다:" msgstr "“%s” 실행이 실패했습니다:"
#. Translators: Time in 24h format */ #. Translators: Time in 24h format
#: ../js/misc/util.js:191 #: ../js/misc/util.js:191
msgid "%H%M" msgid "%H%M"
msgstr "%H%M" msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" */ #. time string in 24h format. i.e. "Yesterday, 14:30"
#: ../js/misc/util.js:197 #: ../js/misc/util.js:197
#, no-c-format
msgid "Yesterday, %H%M" msgid "Yesterday, %H%M"
msgstr "어제, %H:%M" msgstr "어제, %H:%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" */ #. string in 24h format. i.e. "Monday, 14:30"
#: ../js/misc/util.js:203 #: ../js/misc/util.js:203
#, no-c-format
msgid "%A, %H%M" msgid "%A, %H%M"
msgstr "%A, %H:%M" msgstr "%A, %H:%M"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 24h format. #. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" */ #. i.e. "May 25, 14:30"
#: ../js/misc/util.js:209 #: ../js/misc/util.js:209
#, no-c-format
msgid "%B %d, %H%M" msgid "%B %d, %H%M"
msgstr "%B %d일, %H%M" msgstr "%B %d일, %H%M"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format. #. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" */ #. i.e. "May 25 2012, 14:30"
#: ../js/misc/util.js:215 #: ../js/misc/util.js:215
#, no-c-format
msgid "%B %d %Y, %H%M" msgid "%B %d %Y, %H%M"
msgstr "%Y년 %B %d일, %H%M" msgstr "%Y년 %B %d일, %H%M"
#. Translators: Time in 12h format */ #. Translators: Time in 12h format
#: ../js/misc/util.js:220 #: ../js/misc/util.js:220
msgid "%l%M %p" msgid "%l%M %p"
msgstr "%p %l%M" msgstr "%p %l%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */ #. time string in 12h format. i.e. "Yesterday, 2:30 pm"
#: ../js/misc/util.js:226 #: ../js/misc/util.js:226
#, no-c-format
msgid "Yesterday, %l%M %p" msgid "Yesterday, %l%M %p"
msgstr "어제, %p %l%M" msgstr "어제, %p %l%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" */ #. string in 12h format. i.e. "Monday, 2:30 pm"
#: ../js/misc/util.js:232 #: ../js/misc/util.js:232
#, no-c-format
msgid "%A, %l%M %p" msgid "%A, %l%M %p"
msgstr "%A, %p %l%M" msgstr "%A, %p %l%M"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 12h format. #. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" */ #. i.e. "May 25, 2:30 pm"
#: ../js/misc/util.js:238 #: ../js/misc/util.js:238
#, no-c-format
msgid "%B %d, %l%M %p" msgid "%B %d, %l%M %p"
msgstr "%B %d일, %p %l%M" msgstr "%B %d일, %p %l%M"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format. #. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"*/ #. i.e. "May 25 2012, 2:30 pm"
#: ../js/misc/util.js:244 #: ../js/misc/util.js:244
#, no-c-format
msgid "%B %d %Y, %l%M %p" msgid "%B %d %Y, %l%M %p"
msgstr "%Y년 %B %d일, %p %l%M" msgstr "%Y년 %B %d일, %p %l%M"
#. TRANSLATORS: this is the title of the wifi captive portal login #. TRANSLATORS: this is the title of the wifi captive portal login
#. * window, until we know the title of the actual login page */ #. * window, until we know the title of the actual login page
#: ../js/portalHelper/main.js:85 #: ../js/portalHelper/main.js:85
msgid "Web Authentication Redirect" msgid "Web Authentication Redirect"
msgstr "웹 인증 리다이렉트" msgstr "웹 인증 리다이렉트"
@ -485,12 +508,11 @@ msgstr "배경 바꾸기…"
msgid "Display Settings" msgid "Display Settings"
msgstr "디스플레이 설정" msgstr "디스플레이 설정"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "설정" msgstr "설정"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). */ #. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:55 #: ../js/ui/calendar.js:55
msgctxt "calendar-no-work" msgctxt "calendar-no-work"
msgid "06" msgid "06"
@ -500,43 +522,43 @@ msgstr "06"
#. * #. *
#. * NOTE: These grid abbreviations are always shown together #. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S". #. * and in order, e.g. "S M T W T F S".
#. */ #.
#: ../js/ui/calendar.js:84 #: ../js/ui/calendar.js:84
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "일" msgstr "일"
#. Translators: Calendar grid abbreviation for Monday */ #. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:86 #: ../js/ui/calendar.js:86
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "월" msgstr "월"
#. Translators: Calendar grid abbreviation for Tuesday */ #. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:88 #: ../js/ui/calendar.js:88
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "화" msgstr "화"
#. Translators: Calendar grid abbreviation for Wednesday */ #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:90 #: ../js/ui/calendar.js:90
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "수" msgstr "수"
#. Translators: Calendar grid abbreviation for Thursday */ #. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:92 #: ../js/ui/calendar.js:92
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "목" msgstr "목"
#. Translators: Calendar grid abbreviation for Friday */ #. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:94 #: ../js/ui/calendar.js:94
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "금" msgstr "금"
#. Translators: Calendar grid abbreviation for Saturday */ #. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:96 #: ../js/ui/calendar.js:96
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
@ -556,39 +578,39 @@ msgstr "주 %V"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. */ #.
#: ../js/ui/calendar.js:1188 #: ../js/ui/calendar.js:1188
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "종일" msgstr "종일"
#: ../js/ui/calendar.js:1291 #: ../js/ui/calendar.js:1295
msgid "Clear section" msgid "Clear section"
msgstr "부분 지우기" msgstr "부분 지우기"
#: ../js/ui/calendar.js:1518 #: ../js/ui/calendar.js:1522
msgid "Events" msgid "Events"
msgstr "행사" msgstr "행사"
#: ../js/ui/calendar.js:1527 #: ../js/ui/calendar.js:1531
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%B %d일 %A" msgstr "%B %d일 %A"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:1535
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%Y년 %B %d일 %A" msgstr "%Y년 %B %d일 %A"
#: ../js/ui/calendar.js:1616 #: ../js/ui/calendar.js:1620
msgid "Notifications" msgid "Notifications"
msgstr "알림" msgstr "알림"
#: ../js/ui/calendar.js:1767 #: ../js/ui/calendar.js:1771
msgid "No Notifications" msgid "No Notifications"
msgstr "알림 없음" msgstr "알림 없음"
#: ../js/ui/calendar.js:1770 #: ../js/ui/calendar.js:1774
msgid "No Events" msgid "No Events"
msgstr "행사 없음" msgstr "행사 없음"
@ -618,6 +640,7 @@ msgstr "다시 입력하십시오:"
msgid "Connect" msgid "Connect"
msgstr "연결" msgstr "연결"
#. Cisco LEAP
#: ../js/ui/components/networkAgent.js:233 #: ../js/ui/components/networkAgent.js:233
#: ../js/ui/components/networkAgent.js:245 #: ../js/ui/components/networkAgent.js:245
#: ../js/ui/components/networkAgent.js:273 #: ../js/ui/components/networkAgent.js:273
@ -626,6 +649,7 @@ msgstr "연결"
msgid "Password: " msgid "Password: "
msgstr "암호: " msgstr "암호: "
#. static WEP
#: ../js/ui/components/networkAgent.js:238 #: ../js/ui/components/networkAgent.js:238
msgid "Key: " msgid "Key: "
msgstr "키: " msgstr "키: "
@ -715,13 +739,13 @@ msgstr "인증"
#. Translators: "that didn't work" refers to the fact that the #. Translators: "that didn't work" refers to the fact that the
#. * requested authentication was not gained; this can happen #. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password), #. * because of an authentication error (like invalid password),
#. * for instance. */ #. * for instance.
#: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383 #: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again." msgid "Sorry, that didn't work. Please try again."
msgstr "죄송합니다. 동작하지 않았습니다. 다시 시도하십시오." 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:759
#, javascript-format #, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
@ -735,13 +759,15 @@ msgstr "창"
msgid "Show Applications" msgid "Show Applications"
msgstr "프로그램 표시" msgstr "프로그램 표시"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:449 #: ../js/ui/dash.js:449
msgid "Dash" msgid "Dash"
msgstr "대시보드" msgstr "대시보드"
#. Translators: This is the date format to use when the calendar popup is #. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM"). #. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#. */ #.
#: ../js/ui/dateMenu.js:73 #: ../js/ui/dateMenu.js:73
msgid "%B %e %Y" msgid "%B %e %Y"
msgstr "%Y년 %B %e일" msgstr "%Y년 %B %e일"
@ -749,7 +775,7 @@ msgstr "%Y년 %B %e일"
#. Translators: This is the accessible name of the date button shown #. Translators: This is the accessible name of the date button shown
#. * below the time in the shell; it should combine the weekday and the #. * below the time in the shell; it should combine the weekday and the
#. * date, e.g. "Tuesday February 17 2015". #. * date, e.g. "Tuesday February 17 2015".
#. */ #.
#: ../js/ui/dateMenu.js:80 #: ../js/ui/dateMenu.js:80
msgid "%A %B %e %Y" msgid "%A %B %e %Y"
msgstr "%Y년 %B %e일 %A" msgstr "%Y년 %B %e일 %A"
@ -871,13 +897,13 @@ msgstr "일부 프로그램이 동작 중이거나 저장하지 않은 작업이
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:640 #: ../js/ui/endSessionDialog.js:640
#, 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:643 #: ../js/ui/endSessionDialog.js:643
#, javascript-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
@ -897,7 +923,7 @@ msgstr ""
msgid "Keyboard" msgid "Keyboard"
msgstr "키보드" msgstr "키보드"
#. translators: 'Hide' is a verb */ #. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66 #: ../js/ui/legacyTray.js:66
msgid "Hide tray" msgid "Hide tray"
msgstr "트레이 숨기기" msgstr "트레이 숨기기"
@ -910,7 +936,7 @@ msgstr "상태 아이콘"
msgid "No extensions installed" msgid "No extensions installed"
msgstr "확장을 설치하지 않았습니다" msgstr "확장을 설치하지 않았습니다"
#. Translators: argument is an extension UUID. */ #. Translators: argument is an extension UUID.
#: ../js/ui/lookingGlass.js:697 #: ../js/ui/lookingGlass.js:697
#, javascript-format #, javascript-format
msgid "%s has not emitted any errors." msgid "%s has not emitted any errors."
@ -930,7 +956,7 @@ msgstr "사용"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled" msgid "Disabled"
msgstr "사용 않음" msgstr "사용 않음"
@ -969,7 +995,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:244 #: ../js/ui/overview.js:244
msgid "Type to search…" msgid "Type to search…"
msgstr "검색하려면 입력하십시오…" msgstr "검색하려면 입력하십시오…"
@ -979,15 +1005,25 @@ msgid "Quit"
msgstr "끝내기" msgstr "끝내기"
#. Translators: If there is no suitable word for "Activities" #. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". */ #. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:404 #: ../js/ui/panel.js:404
msgid "Activities" msgid "Activities"
msgstr "현재 활동" msgstr "현재 활동"
#: ../js/ui/panel.js:650
msgctxt "System menu in the top bar"
msgid "System"
msgstr "시스템"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:754
msgid "Top Bar" msgid "Top Bar"
msgstr "위 막대" msgstr "위 막대"
#. Translators: this MUST be either "toggle-switch-us"
#. (for toggle switches containing the English words
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:289 #: ../js/ui/popupMenu.js:289
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
@ -1005,7 +1041,7 @@ msgid "Restarting…"
msgstr "다시 시작하는 중…" msgstr "다시 시작하는 중…"
#. Translators: This is a time format for a date in #. Translators: This is a time format for a date in
#. long format */ #. long format
#: ../js/ui/screenShield.js:85 #: ../js/ui/screenShield.js:85
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%B %d일 %A" msgstr "%B %d일 %A"
@ -1030,6 +1066,13 @@ msgstr "잠그기"
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "그놈에서 화면을 잠궈야 합니다" msgstr "그놈에서 화면을 잠궈야 합니다"
#. We could not become modal, so we can't activate the
#. screenshield. The user is probably very upset at this
#. point, but any application using global grabs is broken
#. Just tell him to stop using this app
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271 #: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271
msgid "Unable to lock" msgid "Unable to lock"
msgstr "잠글 수 없습니다" msgstr "잠글 수 없습니다"
@ -1125,7 +1168,7 @@ msgstr "끄기"
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "블루투스 설정" msgstr "블루투스 설정"
#. Translators: this is the number of connected bluetooth devices */ #. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:105 #: ../js/ui/status/bluetooth.js:105
#, javascript-format #, javascript-format
msgid "%d Connected" msgid "%d Connected"
@ -1172,13 +1215,13 @@ msgstr "사용"
msgid "<unknown>" msgid "<unknown>"
msgstr "<알 수 없음>" msgstr "<알 수 없음>"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308 #: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
#, javascript-format #, javascript-format
msgid "%s Off" msgid "%s Off"
msgstr "%s 꺼짐" msgstr "%s 꺼짐"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:454 #: ../js/ui/status/network.js:454
#, javascript-format #, javascript-format
msgid "%s Connected" msgid "%s Connected"
@ -1186,45 +1229,45 @@ msgstr "%s 연결됨"
#. Translators: this is for network devices that are physically present but are not #. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu); #. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier */ #. %s is a network identifier
#: ../js/ui/status/network.js:459 #: ../js/ui/status/network.js:459
#, javascript-format #, javascript-format
msgid "%s Unmanaged" msgid "%s Unmanaged"
msgstr "%s 관리되지 않음" msgstr "%s 관리되지 않음"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:462 #: ../js/ui/status/network.js:462
#, javascript-format #, javascript-format
msgid "%s Disconnecting" msgid "%s Disconnecting"
msgstr "%s 연결 끊는 중" msgstr "%s 연결 끊는 중"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300 #: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
#, javascript-format #, javascript-format
msgid "%s Connecting" msgid "%s Connecting"
msgstr "%s 연결하는 중" msgstr "%s 연결하는 중"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier */ #. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: ../js/ui/status/network.js:472 #: ../js/ui/status/network.js:472
#, javascript-format #, javascript-format
msgid "%s Requires Authentication" msgid "%s Requires Authentication"
msgstr "%s 인증 필요" msgstr "%s 인증 필요"
#. Translators: this is for devices that require some kind of firmware or kernel #. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier */ #. module, which is missing; %s is a network identifier
#: ../js/ui/status/network.js:480 #: ../js/ui/status/network.js:480
#, javascript-format #, javascript-format
msgid "Firmware Missing For %s" msgid "Firmware Missing For %s"
msgstr "%s에 필요한 펌웨어 없음" msgstr "%s에 필요한 펌웨어 없음"
#. Translators: this is for a network device that cannot be activated (for example it #. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier */ #. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: ../js/ui/status/network.js:484 #: ../js/ui/status/network.js:484
#, javascript-format #, javascript-format
msgid "%s Unavailable" msgid "%s Unavailable"
msgstr "%s 사용 불가" msgstr "%s 사용 불가"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:487 #: ../js/ui/status/network.js:487
#, javascript-format #, javascript-format
msgid "%s Connection Failed" msgid "%s Connection Failed"
@ -1238,14 +1281,14 @@ msgstr "유선 네트워크 설정"
msgid "Mobile Broadband Settings" msgid "Mobile Broadband Settings"
msgstr "휴대전화 네트워크 설정" msgstr "휴대전화 네트워크 설정"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305 #: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
#, javascript-format #, javascript-format
msgid "%s Hardware Disabled" msgid "%s Hardware Disabled"
msgstr "%s 하드웨어 사용 않음" msgstr "%s 하드웨어 사용 않음"
#. Translators: this is for a network device that cannot be activated #. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier */ #. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: ../js/ui/status/network.js:592 #: ../js/ui/status/network.js:592
#, javascript-format #, javascript-format
msgid "%s Disabled" msgid "%s Disabled"
@ -1307,13 +1350,13 @@ msgstr "와이파이 설정"
msgid "Turn On" msgid "Turn On"
msgstr "켜기" msgstr "켜기"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296 #: ../js/ui/status/network.js:1296
#, javascript-format #, javascript-format
msgid "%s Hotspot Active" msgid "%s Hotspot Active"
msgstr "%s 핫스팟 사용 중" msgstr "%s 핫스팟 사용 중"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1311 #: ../js/ui/status/network.js:1311
#, javascript-format #, javascript-format
msgid "%s Not Connected" msgid "%s Not Connected"
@ -1323,7 +1366,7 @@ msgstr "%s 연결되지 않음"
msgid "connecting..." msgid "connecting..."
msgstr "연결하는 중..." msgstr "연결하는 중..."
#. Translators: this is for network connections that require some kind of key or password */ #. Translators: this is for network connections that require some kind of key or password
#: ../js/ui/status/network.js:1414 #: ../js/ui/status/network.js:1414
msgid "authentication required" msgid "authentication required"
msgstr "인증 필요" msgstr "인증 필요"
@ -1346,7 +1389,7 @@ msgstr "가상사설망"
#: ../js/ui/status/network.js:1513 #: ../js/ui/status/network.js:1513
msgid "VPN Off" msgid "VPN Off"
msgstr "가상사설망 끄기" msgstr "가상사설망 꺼짐"
#: ../js/ui/status/network.js:1697 #: ../js/ui/status/network.js:1697
msgid "Connection failed" msgid "Connection failed"
@ -1364,20 +1407,27 @@ msgstr "전원 설정"
msgid "Fully Charged" msgid "Fully Charged"
msgstr "완전 충전" msgstr "완전 충전"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78 #: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
msgid "Estimating…" msgid "Estimating…"
msgstr "예상치 계산 중…" msgstr "예상치 계산 중…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:86
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d 남음(%d%%)" msgstr "%d%02d 남음(%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91 #: ../js/ui/status/power.js:91
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "충전까지 %d:%02d(%d%%)" msgstr "충전까지 %d:%02d(%d%%)"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
#. changing the menu contents.
#: ../js/ui/status/rfkill.js:88 #: ../js/ui/status/rfkill.js:88
msgid "Airplane Mode On" msgid "Airplane Mode On"
msgstr "비행기 모드 켜짐" msgstr "비행기 모드 켜짐"
@ -1447,7 +1497,7 @@ msgstr "이 디스플레이 설정을 유지하시겠습니까?"
#. Translators: this and the following message should be limited in lenght, #. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels. #. to avoid ellipsizing the labels.
#. */ #.
#: ../js/ui/windowManager.js:82 #: ../js/ui/windowManager.js:82
msgid "Revert Settings" msgid "Revert Settings"
msgstr "설정 되돌리기" msgstr "설정 되돌리기"
@ -1463,7 +1513,7 @@ msgid_plural "Settings changes will revert in %d seconds"
msgstr[0] "바뀐 설정을 %d초 후에 되돌립니다" msgstr[0] "바뀐 설정을 %d초 후에 되돌립니다"
#. Translators: This represents the size of a window. The first number is #. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height. */ #. * the width of the window and the second is the height.
#: ../js/ui/windowManager.js:658 #: ../js/ui/windowManager.js:658
#, javascript-format #, javascript-format
msgid "%d x %d" msgid "%d x %d"
@ -1539,7 +1589,7 @@ msgstr "에볼루션 달력"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1837 #: ../src/gvc/gvc-mixer-control.c:1835
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1547,30 +1597,30 @@ 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:1847 #: ../src/gvc/gvc-mixer-control.c:1845
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
msgstr[0] "%u개 입력" msgstr[0] "%u개 입력"
#: ../src/gvc/gvc-mixer-control.c:2373 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "시스템 소리" msgstr "시스템 소리"
# 커맨드라인 옵션 설명 # 커맨드라인 옵션 설명
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "버전을 표시합니다" msgstr "버전을 표시합니다"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "GDM에서 로그인 화면에 사용할 모드" msgstr "GDM에서 로그인 화면에 사용할 모드"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "특정 모드 사용. 예를 들어 로그인 화면에 대해 \"gdm\"" msgstr "특정 모드 사용. 예를 들어 로그인 화면에 대해 \"gdm\""
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "가능한 모드 목록 표시" msgstr "가능한 모드 목록 표시"

468
po/lt.po

File diff suppressed because it is too large Load Diff

239
po/nb.po
View File

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

View File

@ -12,8 +12,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell\n" "Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-24 15:27+0200\n" "POT-Creation-Date: 2015-09-29 00:50+0200\n"
"PO-Revision-Date: 2015-08-24 15:28+0200\n" "PO-Revision-Date: 2015-09-29 00:52+0200\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n" "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <gnomepl@aviary.pl>\n" "Language-Team: Polish <gnomepl@aviary.pl>\n"
"Language: pl\n" "Language: pl\n"
@ -331,7 +331,7 @@ msgid "Cancel"
msgstr "Anuluj" msgstr "Anuluj"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215 #: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:435 #: ../js/gdm/authPrompt.js:447
msgid "Next" msgid "Next"
msgstr "Dalej" msgstr "Dalej"
@ -358,7 +358,7 @@ msgstr "Inny użytkownik?"
#. Translators: this message is shown below the username entry field #. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm #. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:847 #: ../js/gdm/loginDialog.js:850
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(np. użytkownik lub %s)" msgstr "(np. użytkownik lub %s)"
@ -366,12 +366,12 @@ msgstr "(np. użytkownik lub %s)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:852 ../js/ui/components/networkAgent.js:271 #: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289 #: ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
msgstr "Nazwa użytkownika: " msgstr "Nazwa użytkownika: "
#: ../js/gdm/loginDialog.js:1181 #: ../js/gdm/loginDialog.js:1184
msgid "Login Window" msgid "Login Window"
msgstr "Okno logowania" msgstr "Okno logowania"
@ -525,8 +525,7 @@ msgstr "Zmień tło…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Ustawienia ekranu" msgstr "Ustawienia ekranu"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "Ustawienia" msgstr "Ustawienia"
@ -602,33 +601,33 @@ msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Cały dzień" msgstr "Cały dzień"
#: ../js/ui/calendar.js:1291 #: ../js/ui/calendar.js:1295
msgid "Clear section" msgid "Clear section"
msgstr "Wyczyść" msgstr "Wyczyść"
#: ../js/ui/calendar.js:1518 #: ../js/ui/calendar.js:1522
msgid "Events" msgid "Events"
msgstr "Wydarzenia" msgstr "Wydarzenia"
#: ../js/ui/calendar.js:1527 #: ../js/ui/calendar.js:1531
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %e %B" msgstr "%A, %e %B"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:1535
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A, %e %B %Y" msgstr "%A, %e %B %Y"
#: ../js/ui/calendar.js:1616 #: ../js/ui/calendar.js:1620
msgid "Notifications" msgid "Notifications"
msgstr "Powiadomienia" msgstr "Powiadomienia"
#: ../js/ui/calendar.js:1767 #: ../js/ui/calendar.js:1771
msgid "No Notifications" msgid "No Notifications"
msgstr "Brak powiadomień" msgstr "Brak powiadomień"
#: ../js/ui/calendar.js:1770 #: ../js/ui/calendar.js:1774
msgid "No Events" msgid "No Events"
msgstr "Brak wydarzeń" msgstr "Brak wydarzeń"
@ -991,7 +990,7 @@ msgstr "Włączone"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled" msgid "Disabled"
msgstr "Wyłączone" msgstr "Wyłączone"
@ -1045,6 +1044,11 @@ msgstr "Zakończ"
msgid "Activities" msgid "Activities"
msgstr "Podgląd" msgstr "Podgląd"
#: ../js/ui/panel.js:650
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Menu systemowe"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:754
msgid "Top Bar" msgid "Top Bar"
msgstr "Górny pasek" msgstr "Górny pasek"
@ -1625,7 +1629,7 @@ msgstr "Kalendarz programu Evolution"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1837 #: ../src/gvc/gvc-mixer-control.c:1835
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1635,7 +1639,7 @@ msgstr[2] "%u wyjść"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1847 #: ../src/gvc/gvc-mixer-control.c:1845
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
@ -1643,23 +1647,23 @@ msgstr[0] "%u wejście"
msgstr[1] "%u wejścia" msgstr[1] "%u wejścia"
msgstr[2] "%u wejść" msgstr[2] "%u wejść"
#: ../src/gvc/gvc-mixer-control.c:2373 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "Dźwięki systemowe" msgstr "Dźwięki systemowe"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Wyświetla wersję" msgstr "Wyświetla wersję"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Tryb używany przez GDM dla ekranu logowania" msgstr "Tryb używany przez GDM dla ekranu logowania"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Używa podanego trybu, np. „gdm” dla ekranu logowania" msgstr "Używa podanego trybu, np. „gdm” dla ekranu logowania"
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "Wyświetla listę możliwych trybów" msgstr "Wyświetla listę możliwych trybów"

411
po/pt.po

File diff suppressed because it is too large Load Diff

View File

@ -12,17 +12,17 @@
# Djavan Fagundes <djavan@comum.org>, 2012. # Djavan Fagundes <djavan@comum.org>, 2012.
# Juan Diego Martins da Costa Cruz <juan.martins@ifrn.edu.br>, 2013. # Juan Diego Martins da Costa Cruz <juan.martins@ifrn.edu.br>, 2013.
# Fábio Nogueira <fnogueira@gnome.org>, 2014. # Fábio Nogueira <fnogueira@gnome.org>, 2014.
# Rafael Ferreira <rafael.f.f1@gmail.com>, 2013, 2014. # Rafael Fontenelle <rffontenelle@gmail.com>, 2013, 2014,2015.
# Georges Basile Stavracas Neto <georges.stavracas@gmail.com>, 2014. # Georges Basile Stavracas Neto <georges.stavracas@gmail.com>, 2014.
# Enrico Nicoletto <liverig@gmail.com>, 2013, 2014, 2015.
# Felipe Braga <fbobraga@gmail.com>, 2015. # Felipe Braga <fbobraga@gmail.com>, 2015.
# Enrico Nicoletto <liverig@gmail.com>, 2013, 2014, 2015.
# #
msgid "" msgid ""
msgstr "" 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-shell&keywords=I18N+L10N&component=general\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2015-09-17 08:22+0000\n" "POT-Creation-Date: 2015-12-31 10:21+0000\n"
"PO-Revision-Date: 2015-09-18 15:33-0300\n" "PO-Revision-Date: 2015-12-31 16:37-0300\n"
"Last-Translator: Enrico Nicoletto <liverig@gmail.com>\n" "Last-Translator: Enrico Nicoletto <liverig@gmail.com>\n"
"Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\n" "Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\n"
"Language: pt_BR\n" "Language: pt_BR\n"
@ -57,14 +57,6 @@ msgstr "Mostrar todos os aplicativos"
msgid "Open the application menu" msgid "Open the application menu"
msgstr "Abre o menu do aplicativo" msgstr "Abre o menu do aplicativo"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "GNOME Shell"
#: ../data/gnome-shell.desktop.in.in.h:2 ../data/gnome-shell-wayland.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Gerenciamento de janelas e lançador de aplicativos"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "Preferências de extensões do Shell do GNOME" msgstr "Preferências de extensões do Shell do GNOME"
@ -73,10 +65,13 @@ msgstr "Preferências de extensões do Shell do GNOME"
msgid "Configure GNOME Shell Extensions" msgid "Configure GNOME Shell Extensions"
msgstr "Configurar extensões do Shell do GNOME" msgstr "Configurar extensões do Shell do GNOME"
# Traduções do Xfce e da Microsoft usam compositor --Enrico #: ../data/org.gnome.Shell.desktop.in.in.h:1
#: ../data/gnome-shell-wayland.desktop.in.in.h:1 msgid "GNOME Shell"
msgid "GNOME Shell (wayland compositor)" msgstr "GNOME Shell"
msgstr "GNOME Shell (compositor wayland)"
#: ../data/org.gnome.Shell.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Gerenciamento de janelas e lançador de aplicativos"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1 #: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2" msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -162,71 +157,85 @@ msgstr ""
"padrão da caixa de seleção." "padrão da caixa de seleção."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18 #: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid "Whether the default Bluetooth adapter had set up devices associated to it"
msgstr "Se o adaptador Bluetooth padrão configurou, ou não, dispositivos associados a ele"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is powered, or if there were devices set up "
"associated with the default adapter. This will be reset if the default adapter is ever seen not to have devices "
"associated to it."
msgstr ""
"O shell irá mostrar apenas um item de menu Bluetooth se um adaptador Bluetooth estiver ligado ou se existirem "
"dispositivos configurados associados ao adaptador padrão. Isto será redefinido caso o adaptador padrão sempre seja visto "
"sem possuir dispositivos associados a ele."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar" msgid "Show the week date in the calendar"
msgstr "Mostrar o número da semana na agenda" msgstr "Mostrar o número da semana na agenda"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19 #: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "If true, display the ISO week date in the calendar." msgid "If true, display the ISO week date in the calendar."
msgstr "Se verdadeiro, exibe o número da semana na agenda." msgstr "Se verdadeiro, exibe o número da semana na agenda."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20 #: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the application menu" msgid "Keybinding to open the application menu"
msgstr "Atalho de teclado para abrir um menu de aplicativo" msgstr "Atalho de teclado para abrir um menu de aplicativo"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
msgid "Keybinding to open the application menu." msgid "Keybinding to open the application menu."
msgstr "Atalho de teclado para abrir um menu de aplicativo." msgstr "Atalho de teclado para abrir um menu de aplicativo."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the \"Show Applications\" view" msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Atalho de teclado para abrir a visualização \"Mostrar aplicativos\"" msgstr "Atalho de teclado para abrir a visualização \"Mostrar aplicativos\""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../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 "Atalho de teclado para abrir a visualização \"Mostrar aplicativos\" do panorama de atividades." msgstr "Atalho de teclado para abrir a visualização \"Mostrar aplicativos\" do panorama de atividades."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "Atalho de teclado para abrir o panorama" msgstr "Atalho de teclado para abrir o panorama"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25 #: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "Atalho de teclado para abrir o panorama de atividades." msgstr "Atalho de teclado para abrir o panorama de atividades."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to toggle the visibility of the notification list" msgid "Keybinding to toggle the visibility of the notification list"
msgstr "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:27 #: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to toggle the visibility of the notification list." msgid "Keybinding to toggle the visibility of the notification list."
msgstr "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:28 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "Atalho de teclado para ativar a notificação ativa" msgstr "Atalho de teclado para ativar a notificação ativa"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29 #: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "Atalho de teclado para ativar a notificação ativa." msgstr "Atalho de teclado para ativar a notificação ativa."
# Tween pode significar uma contração de Between ou se referir a um termo "in-between" usado em animação gráfica. -- Enrico # Tween pode significar uma contração de Between ou se referir a um termo "in-between" usado em animação gráfica. -- Enrico
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "Keybinding that pauses and resumes all running tweens, for debugging purposes" msgid "Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr "Atalho de teclado que pausa e continua todos os intermediários em execução, a fim de depuração" msgstr "Atalho de teclado que pausa e continua todos os intermediários em execução, a fim de depuração"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31 #: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Which keyboard to use" msgid "Which keyboard to use"
msgstr "Qual teclado usar" msgstr "Qual teclado usar"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32 #: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid "The type of keyboard to use." msgid "The type of keyboard to use."
msgstr "O tipo do teclado para usar." msgstr "O tipo do teclado para usar."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33 #: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "Limitar o alternador ao espaço de trabalho atual." msgstr "Limitar o alternador ao espaço de trabalho atual."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34 #: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid "" msgid ""
"If true, only applications that have windows on the current workspace are shown in the switcher. Otherwise, all " "If true, only applications that have windows on the current workspace are shown in the switcher. Otherwise, all "
"applications are included." "applications are included."
@ -234,11 +243,11 @@ msgstr ""
"Se verdadeiro, o alternador mostrará somente os aplicativos que possuem janelas no espaço de trabalho atual. Caso " "Se verdadeiro, o alternador mostrará somente os aplicativos que possuem janelas no espaço de trabalho atual. Caso "
"contrário, todos os aplicativos serão incluídos." "contrário, todos os aplicativos serão incluídos."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35 #: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "The application icon mode." msgid "The application icon mode."
msgstr "O modo ícone do aplicativo." msgstr "O modo ícone do aplicativo."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36 #: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "" msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities are 'thumbnail-only' (shows a thumbnail of the " "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'." "window), 'app-icon-only' (shows only the application icon) or 'both'."
@ -246,33 +255,33 @@ msgstr ""
"Configura como as janelas são mostradas no alternador. As possibilidades válidas são 'thumbnail-only' (mostra uma " "Configura como as janelas são mostradas no alternador. As possibilidades válidas são 'thumbnail-only' (mostra uma "
"miniatura da janela), 'app-icon-only' (mostra apenas o ícone do aplicativo) ou 'both'." "miniatura da janela), 'app-icon-only' (mostra apenas o ícone do aplicativo) ou 'both'."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../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 "If true, only windows from the current workspace are shown in the switcher. Otherwise, all windows are included."
msgstr "" msgstr ""
"Se verdadeiro, o alternador mostrará somente as janelas do espaço de trabalho atual. Caso contrário, todos as janelas " "Se verdadeiro, o alternador mostrará somente as janelas do espaço de trabalho atual. Caso contrário, todos as janelas "
"serão incluídas." "serão incluídas."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
msgstr "Anexar diálogo modal à janela pai" msgstr "Anexar diálogo modal à janela pai"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39 #: ../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 "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "Esta chave sobrescreve a chave em org.gnome.mutter ao executar o Shell do GNOME." msgstr "Esta chave sobrescreve a chave em org.gnome.mutter ao executar o Shell do GNOME."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40 #: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Habilitar contorno ladrilhado ao arrastar janelas sobre as bordas da tela" msgstr "Habilitar contorno ladrilhado ao arrastar janelas sobre as bordas da tela"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41 #: ../data/org.gnome.shell.gschema.xml.in.in.h:43
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Espaços de trabalho são gerenciados dinamicamente" msgstr "Espaços de trabalho são gerenciados dinamicamente"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42 #: ../data/org.gnome.shell.gschema.xml.in.in.h:44
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Espaços de trabalho apenas no monitor primário" msgstr "Espaços de trabalho apenas no monitor primário"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43 #: ../data/org.gnome.shell.gschema.xml.in.in.h:45
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Atrasar foco altera o modo do mouse até o ponteiro parar de mover" msgstr "Atrasar foco altera o modo do mouse até o ponteiro parar de mover"
@ -308,24 +317,32 @@ msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Entrar" msgstr "Entrar"
#: ../js/gdm/loginDialog.js:281 #: ../js/gdm/loginDialog.js:285
msgid "Choose Session" msgid "Choose Session"
msgstr "Escolher sessão" msgstr "Escolher sessão"
#: ../js/gdm/loginDialog.js:431 #. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: ../js/gdm/loginDialog.js:435
msgid "Not listed?" msgid "Not listed?"
msgstr "Não está listado?" msgstr "Não está listado?"
#: ../js/gdm/loginDialog.js:850 #. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:854
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(ex.: usuário ou %s)" msgstr "(ex.: usuário ou %s)"
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271 ../js/ui/components/networkAgent.js:289 #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271 ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
msgstr "Nome de usuário: " msgstr "Nome de usuário: "
#: ../js/gdm/loginDialog.js:1184 #: ../js/gdm/loginDialog.js:1196
msgid "Login Window" msgid "Login Window"
msgstr "Janela de sessão" msgstr "Janela de sessão"
@ -333,6 +350,11 @@ msgstr "Janela de sessão"
msgid "Authentication error" msgid "Authentication error"
msgstr "Erro de autenticação" msgstr "Erro de autenticação"
#. We don't show fingerprint messages directly since it's
#. not the main auth service. Instead we use the messages
#. as a cue to display our own message.
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/util.js:473 #: ../js/gdm/util.js:473
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(ou deslize o dedo)" msgstr "(ou deslize o dedo)"
@ -341,6 +363,8 @@ msgstr "(ou deslize o dedo)"
msgid "Command not found" msgid "Command not found"
msgstr "Comando não encontrado" msgstr "Comando não encontrado"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
#: ../js/misc/util.js:152 #: ../js/misc/util.js:152
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Não foi possível analisar comando:" msgstr "Não foi possível analisar comando:"
@ -350,70 +374,78 @@ msgstr "Não foi possível analisar comando:"
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "A execução de \"%s\" falhou:" msgstr "A execução de \"%s\" falhou:"
#. Translators: Time in 24h format */ #. Translators: Time in 24h format
#: ../js/misc/util.js:191 #: ../js/misc/util.js:191
msgid "%H%M" msgid "%H%M"
msgstr "%H%M" msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" */ #. time string in 24h format. i.e. "Yesterday, 14:30"
#: ../js/misc/util.js:197 #: ../js/misc/util.js:197
#, no-c-format
msgid "Yesterday, %H%M" msgid "Yesterday, %H%M"
msgstr "Ontem, %H%M" msgstr "Ontem, %H%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" */ #. string in 24h format. i.e. "Monday, 14:30"
#: ../js/misc/util.js:203 #: ../js/misc/util.js:203
#, no-c-format
msgid "%A, %H%M" msgid "%A, %H%M"
msgstr "%A, %H%M" msgstr "%A, %H%M"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 24h format. #. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" */ #. i.e. "May 25, 14:30"
#: ../js/misc/util.js:209 #: ../js/misc/util.js:209
#, no-c-format
msgid "%B %d, %H%M" msgid "%B %d, %H%M"
msgstr "%d de %B, %H%M" msgstr "%d de %B, %H%M"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format. #. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" */ #. i.e. "May 25 2012, 14:30"
#: ../js/misc/util.js:215 #: ../js/misc/util.js:215
#, no-c-format
msgid "%B %d %Y, %H%M" msgid "%B %d %Y, %H%M"
msgstr "%d de %B de %Y, %H%M" msgstr "%d de %B de %Y, %H%M"
#. Translators: Time in 12h format */ #. Translators: Time in 12h format
#: ../js/misc/util.js:220 #: ../js/misc/util.js:220
msgid "%l%M %p" msgid "%l%M %p"
msgstr "%l%M %p" msgstr "%l%M %p"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */ #. time string in 12h format. i.e. "Yesterday, 2:30 pm"
#: ../js/misc/util.js:226 #: ../js/misc/util.js:226
#, no-c-format
msgid "Yesterday, %l%M %p" msgid "Yesterday, %l%M %p"
msgstr "Ontem, %l%M %p" msgstr "Ontem, %l%M %p"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" */ #. string in 12h format. i.e. "Monday, 2:30 pm"
#: ../js/misc/util.js:232 #: ../js/misc/util.js:232
#, no-c-format
msgid "%A, %l%M %p" msgid "%A, %l%M %p"
msgstr "%A, %l%M %p" msgstr "%A, %l%M %p"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 12h format. #. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" */ #. i.e. "May 25, 2:30 pm"
#: ../js/misc/util.js:238 #: ../js/misc/util.js:238
#, no-c-format
msgid "%B %d, %l%M %p" msgid "%B %d, %l%M %p"
msgstr "%d de %B, %l%M %p" msgstr "%d de %B, %l%M %p"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format. #. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"*/ #. i.e. "May 25 2012, 2:30 pm"
#: ../js/misc/util.js:244 #: ../js/misc/util.js:244
#, no-c-format
msgid "%B %d %Y, %l%M %p" msgid "%B %d %Y, %l%M %p"
msgstr "%d de %B de %Y, %l%M %p" msgstr "%d de %B de %Y, %l%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login #. TRANSLATORS: this is the title of the wifi captive portal login
#. * window, until we know the title of the actual login page */ #. * window, until we know the title of the actual login page
#: ../js/portalHelper/main.js:85 #: ../js/portalHelper/main.js:85
msgid "Web Authentication Redirect" msgid "Web Authentication Redirect"
msgstr "Redirecionamento para autenticação web" msgstr "Redirecionamento para autenticação web"
@ -446,12 +478,12 @@ msgstr "Adicionar aos favoritos"
msgid "Show Details" msgid "Show Details"
msgstr "Mostrar detalhes" msgstr "Mostrar detalhes"
#: ../js/ui/appFavorites.js:132 #: ../js/ui/appFavorites.js:133
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "%s foi adicionado aos seus favoritos." msgstr "%s foi adicionado aos seus favoritos."
#: ../js/ui/appFavorites.js:166 #: ../js/ui/appFavorites.js:167
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s foi removido dos seus favoritos." msgstr "%s foi removido dos seus favoritos."
@ -464,11 +496,11 @@ msgstr "Alterar plano de fundo…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Configurações de exibição" msgstr "Configurações de exibição"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 ../js/ui/status/system.js:366 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "Configurações" msgstr "Configuraçõ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:55
msgctxt "calendar-no-work" msgctxt "calendar-no-work"
msgid "06" msgid "06"
@ -478,43 +510,43 @@ msgstr "06"
#. * #. *
#. * NOTE: These grid abbreviations are always shown together #. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S". #. * and in order, e.g. "S M T W T F S".
#. */ #.
#: ../js/ui/calendar.js:84 #: ../js/ui/calendar.js:84
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "D" msgstr "D"
#. Translators: Calendar grid abbreviation for Monday */ #. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:86 #: ../js/ui/calendar.js:86
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "S" msgstr "S"
#. Translators: Calendar grid abbreviation for Tuesday */ #. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:88 #: ../js/ui/calendar.js:88
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "T" msgstr "T"
#. Translators: Calendar grid abbreviation for Wednesday */ #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:90 #: ../js/ui/calendar.js:90
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "Q" msgstr "Q"
#. Translators: Calendar grid abbreviation for Thursday */ #. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:92 #: ../js/ui/calendar.js:92
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "Q" msgstr "Q"
#. Translators: Calendar grid abbreviation for Friday */ #. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:94 #: ../js/ui/calendar.js:94
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "S" msgstr "S"
#. Translators: Calendar grid abbreviation for Saturday */ #. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:96 #: ../js/ui/calendar.js:96
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
@ -528,45 +560,51 @@ msgstr "Mês anterior"
msgid "Next month" msgid "Next month"
msgstr "Próximo mês" msgstr "Próximo mês"
#: ../js/ui/calendar.js:728
#, javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:783 #: ../js/ui/calendar.js:783
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:1188
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Dia todo" msgstr "Dia todo"
#: ../js/ui/calendar.js:1291 #: ../js/ui/calendar.js:1295
msgid "Clear section" msgid "Clear section"
msgstr "Limpar seção" msgstr "Limpar seção"
#: ../js/ui/calendar.js:1518 #: ../js/ui/calendar.js:1522
msgid "Events" msgid "Events"
msgstr "Eventos" msgstr "Eventos"
#: ../js/ui/calendar.js:1527 #: ../js/ui/calendar.js:1531
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d de %B" msgstr "%A, %d de %B"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:1535
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A, %d de %B de %Y" msgstr "%A, %d de %B de %Y"
#: ../js/ui/calendar.js:1616 #: ../js/ui/calendar.js:1620
msgid "Notifications" msgid "Notifications"
msgstr "Notificações" msgstr "Notificações"
#: ../js/ui/calendar.js:1767 #: ../js/ui/calendar.js:1771
msgid "No Notifications" msgid "No Notifications"
msgstr "Nenhuma notificação" msgstr "Nenhuma notificação"
#: ../js/ui/calendar.js:1770 #: ../js/ui/calendar.js:1774
msgid "No Events" msgid "No Events"
msgstr "Nenhum evento" msgstr "Nenhum evento"
@ -578,7 +616,7 @@ msgstr "Unidade externa conectada"
msgid "External drive disconnected" msgid "External drive disconnected"
msgstr "Unidade externa desconectada" msgstr "Unidade externa desconectada"
#: ../js/ui/components/autorunManager.js:354 #: ../js/ui/components/autorunManager.js:355
#, javascript-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
msgstr "Abrir com %s" msgstr "Abrir com %s"
@ -596,11 +634,13 @@ msgstr "Digite novamente:"
msgid "Connect" msgid "Connect"
msgstr "Conectar" msgstr "Conectar"
#. Cisco LEAP
#: ../js/ui/components/networkAgent.js:233 ../js/ui/components/networkAgent.js:245 ../js/ui/components/networkAgent.js:273 #: ../js/ui/components/networkAgent.js:233 ../js/ui/components/networkAgent.js:245 ../js/ui/components/networkAgent.js:273
#: ../js/ui/components/networkAgent.js:293 ../js/ui/components/networkAgent.js:303 #: ../js/ui/components/networkAgent.js:293 ../js/ui/components/networkAgent.js:303
msgid "Password: " msgid "Password: "
msgstr "Senha: " msgstr "Senha: "
#. static WEP
#: ../js/ui/components/networkAgent.js:238 #: ../js/ui/components/networkAgent.js:238
msgid "Key: " msgid "Key: "
msgstr "Chave: " msgstr "Chave: "
@ -679,13 +719,13 @@ msgstr "Autenticação"
#. Translators: "that didn't work" refers to the fact that the #. Translators: "that didn't work" refers to the fact that the
#. * requested authentication was not gained; this can happen #. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password), #. * because of an authentication error (like invalid password),
#. * for instance. */ #. * for instance.
#: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383 #: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again." msgid "Sorry, that didn't work. Please try again."
msgstr "Desculpe, isto não funcionou. Por favor, tente novamente." msgstr "Desculpe, isto não funcionou. 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:759
#, javascript-format #, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
@ -699,13 +739,15 @@ msgstr "Janelas"
msgid "Show Applications" msgid "Show Applications"
msgstr "Mostrar aplicativos" msgstr "Mostrar aplicativos"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:449 #: ../js/ui/dash.js:449
msgid "Dash" msgid "Dash"
msgstr "Dash" msgstr "Dash"
#. Translators: This is the date format to use when the calendar popup is #. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM"). #. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#. */ #.
#: ../js/ui/dateMenu.js:73 #: ../js/ui/dateMenu.js:73
msgid "%B %e %Y" msgid "%B %e %Y"
msgstr "%e de %B de %Y" msgstr "%e de %B de %Y"
@ -713,7 +755,7 @@ msgstr "%e de %B de %Y"
#. Translators: This is the accessible name of the date button shown #. Translators: This is the accessible name of the date button shown
#. * below the time in the shell; it should combine the weekday and the #. * below the time in the shell; it should combine the weekday and the
#. * date, e.g. "Tuesday February 17 2015". #. * date, e.g. "Tuesday February 17 2015".
#. */ #.
#: ../js/ui/dateMenu.js:80 #: ../js/ui/dateMenu.js:80
msgid "%A %B %e %Y" msgid "%A %B %e %Y"
msgstr "%A, %e de %B de %Y" msgstr "%A, %e de %B de %Y"
@ -839,13 +881,13 @@ msgstr "Alguns aplicativos estão ocupados ou possuem trabalhos não salvos."
msgid "Other users are logged in." msgid "Other users are logged in."
msgstr "Outros usuários estão com sessão aberta." msgstr "Outros usuários estão com sessão aberta."
#. Translators: Remote here refers to a remote session, like a ssh login */ #. Translators: Remote here refers to a remote session, like a ssh login
#: ../js/ui/endSessionDialog.js:640 #: ../js/ui/endSessionDialog.js:640
#, javascript-format #, javascript-format
msgid "%s (remote)" msgid "%s (remote)"
msgstr "%s (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:643
#, javascript-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
@ -864,7 +906,7 @@ msgstr "Baixar e instalar \"%s\" de extensions.gnome.org?"
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:66
msgid "Hide tray" msgid "Hide tray"
msgstr "Esconder bandeja" msgstr "Esconder bandeja"
@ -877,7 +919,7 @@ msgstr "Ícones de status"
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Nenhuma extensão instalada" msgstr "Nenhuma extensão instalada"
#. Translators: argument is an extension UUID. */ #. Translators: argument is an extension UUID.
#: ../js/ui/lookingGlass.js:697 #: ../js/ui/lookingGlass.js:697
#, javascript-format #, javascript-format
msgid "%s has not emitted any errors." msgid "%s has not emitted any errors."
@ -897,7 +939,7 @@ msgstr "Habilitado"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled" msgid "Disabled"
msgstr "Desabilitado" msgstr "Desabilitado"
@ -936,43 +978,53 @@ msgstr "Panorama"
#. Translators: this is the text displayed #. Translators: this is the text displayed
#. in the search entry when no search is #. in the search entry when no search is
#. active; it should not exceed ~30 #. active; it should not exceed ~30
#. characters. */ #. characters.
#: ../js/ui/overview.js:244 #: ../js/ui/overview.js:244
msgid "Type to search…" msgid "Type to search…"
msgstr "Digite para pesquisar…" msgstr "Digite para pesquisar…"
#: ../js/ui/panel.js:352 #: ../js/ui/panel.js:358
msgid "Quit" msgid "Quit"
msgstr "Sair" msgstr "Sair"
#. Translators: If there is no suitable word for "Activities" #. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". */ #. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:404 #: ../js/ui/panel.js:414
msgid "Activities" msgid "Activities"
msgstr "Atividades" msgstr "Atividades"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:695
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistema"
#: ../js/ui/panel.js:807
msgid "Top Bar" msgid "Top Bar"
msgstr "Barra superior" msgstr "Barra superior"
#. Translators: this MUST be either "toggle-switch-us"
#. (for toggle switches containing the English words
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:289 #: ../js/ui/popupMenu.js:289
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:70 #: ../js/ui/runDialog.js:71
msgid "Enter a Command" msgid "Enter a Command"
msgstr "Digite um comando" msgstr "Digite um comando"
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162 #: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
msgid "Close" msgid "Close"
msgstr "Fechar" msgstr "Fechar"
#: ../js/ui/runDialog.js:281 #: ../js/ui/runDialog.js:282
msgid "Restarting…" msgid "Restarting…"
msgstr "Reiniciando…" msgstr "Reiniciando…"
#. Translators: This is a time format for a date in #. Translators: This is a time format for a date in
#. long format */ #. long format
#: ../js/ui/screenShield.js:85 #: ../js/ui/screenShield.js:85
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d de %B" msgstr "%A, %d de %B"
@ -999,6 +1051,13 @@ msgstr "Bloquear"
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "GNOME precisa bloquear a tela" msgstr "GNOME precisa bloquear a tela"
#. We could not become modal, so we can't activate the
#. screenshield. The user is probably very upset at this
#. point, but any application using global grabs is broken
#. Just tell him to stop using this app
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271 #: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271
msgid "Unable to lock" msgid "Unable to lock"
msgstr "Não foi possível bloquear" msgstr "Não foi possível bloquear"
@ -1083,29 +1142,41 @@ msgstr "Alto contraste"
msgid "Large Text" msgid "Large Text"
msgstr "Texto grande" msgstr "Texto grande"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178 ../js/ui/status/network.js:353 #: ../js/ui/status/bluetooth.js:47
#: ../js/ui/status/network.js:1279 ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90 msgid "Bluetooth"
#: ../js/ui/status/rfkill.js:117 msgstr "Bluetooth"
msgid "Turn Off"
msgstr "Desligar"
#: ../js/ui/status/bluetooth.js:54 #: ../js/ui/status/bluetooth.js:56
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Configurações de Bluetooth" msgstr "Configurações de Bluetooth"
#. Translators: this is the number of connected bluetooth devices */ #. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:105 #: ../js/ui/status/bluetooth.js:136
#, javascript-format #, javascript-format
msgid "%d Connected" msgid "%d Connected"
msgid_plural "%d Connected" msgid_plural "%d Connected"
msgstr[0] "%d conectado" msgstr[0] "%d conectado"
msgstr[1] "%d conectados" msgstr[1] "%d conectados"
#: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "Off"
# Livre no sentido de disponível, ou seja, não estar em uso --Enrico # Livre no sentido de disponível, ou seja, não estar em uso --Enrico
#: ../js/ui/status/bluetooth.js:107 #: ../js/ui/status/bluetooth.js:140
msgid "Not In Use" msgid "Not In Use"
msgstr "Livre" msgstr "Livre"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Ligar"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178 ../js/ui/status/network.js:353
#: ../js/ui/status/network.js:1279 ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Desligar"
#: ../js/ui/status/brightness.js:44 #: ../js/ui/status/brightness.js:44
msgid "Brightness" msgid "Brightness"
msgstr "Brilho" msgstr "Brilho"
@ -1142,13 +1213,13 @@ msgstr "Habilitar"
msgid "<unknown>" msgid "<unknown>"
msgstr "<desconhecido>" msgstr "<desconhecido>"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308 #: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
#, javascript-format #, javascript-format
msgid "%s Off" msgid "%s Off"
msgstr "%s desligado" msgstr "%s desligado"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:454 #: ../js/ui/status/network.js:454
#, javascript-format #, javascript-format
msgid "%s Connected" msgid "%s Connected"
@ -1157,45 +1228,45 @@ msgstr "Conectado a %s"
# Não gerenciável para transmitir a idéia que o Networkmanager não consegue gerenciar o dispositivo --Enrico # Não gerenciável para transmitir a idéia que o Networkmanager não consegue gerenciar o dispositivo --Enrico
#. Translators: this is for network devices that are physically present but are not #. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu); #. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier */ #. %s is a network identifier
#: ../js/ui/status/network.js:459 #: ../js/ui/status/network.js:459
#, javascript-format #, javascript-format
msgid "%s Unmanaged" msgid "%s Unmanaged"
msgstr "%s não é gerenciável" msgstr "%s não é gerenciável"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:462 #: ../js/ui/status/network.js:462
#, javascript-format #, javascript-format
msgid "%s Disconnecting" msgid "%s Disconnecting"
msgstr "Desconectando de %s" msgstr "Desconectando de %s"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300 #: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
#, javascript-format #, javascript-format
msgid "%s Connecting" msgid "%s Connecting"
msgstr "Conectando a %s" msgstr "Conectando a %s"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier */ #. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: ../js/ui/status/network.js:472 #: ../js/ui/status/network.js:472
#, javascript-format #, javascript-format
msgid "%s Requires Authentication" msgid "%s Requires Authentication"
msgstr "%s requer autenticação" msgstr "%s requer autenticação"
#. Translators: this is for devices that require some kind of firmware or kernel #. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier */ #. module, which is missing; %s is a network identifier
#: ../js/ui/status/network.js:480 #: ../js/ui/status/network.js:480
#, javascript-format #, javascript-format
msgid "Firmware Missing For %s" msgid "Firmware Missing For %s"
msgstr "Firmware em falta para %s" msgstr "Firmware em falta para %s"
#. Translators: this is for a network device that cannot be activated (for example it #. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier */ #. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: ../js/ui/status/network.js:484 #: ../js/ui/status/network.js:484
#, javascript-format #, javascript-format
msgid "%s Unavailable" msgid "%s Unavailable"
msgstr "%s está indisponível" msgstr "%s está indisponível"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:487 #: ../js/ui/status/network.js:487
#, javascript-format #, javascript-format
msgid "%s Connection Failed" msgid "%s Connection Failed"
@ -1209,14 +1280,14 @@ msgstr "Configurações da rede cabeada"
msgid "Mobile Broadband Settings" msgid "Mobile Broadband Settings"
msgstr "Configurações de banda larga móvel" msgstr "Configurações de banda larga móvel"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305 #: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
#, javascript-format #, javascript-format
msgid "%s Hardware Disabled" msgid "%s Hardware Disabled"
msgstr "Hardware de %s desabilitado" msgstr "Hardware de %s desabilitado"
#. Translators: this is for a network device that cannot be activated #. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier */ #. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: ../js/ui/status/network.js:592 #: ../js/ui/status/network.js:592
#, javascript-format #, javascript-format
msgid "%s Disabled" msgid "%s Disabled"
@ -1274,17 +1345,13 @@ msgstr "Selecione a rede"
msgid "Wi-Fi Settings" msgid "Wi-Fi Settings"
msgstr "Configurações de Wi-Fi" msgstr "Configurações de Wi-Fi"
#: ../js/ui/status/network.js:1279 #. Translators: %s is a network identifier
msgid "Turn On"
msgstr "Ligar"
#. Translators: %s is a network identifier */
#: ../js/ui/status/network.js:1296 #: ../js/ui/status/network.js:1296
#, javascript-format #, javascript-format
msgid "%s Hotspot Active" msgid "%s Hotspot Active"
msgstr "Ponto de acesso %s está ativo" msgstr "Ponto de acesso %s está ativo"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1311 #: ../js/ui/status/network.js:1311
#, javascript-format #, javascript-format
msgid "%s Not Connected" msgid "%s Not Connected"
@ -1294,7 +1361,7 @@ msgstr "%s não está conectado"
msgid "connecting..." msgid "connecting..."
msgstr "conectando..." msgstr "conectando..."
#. Translators: this is for network connections that require some kind of key or password */ #. Translators: this is for network connections that require some kind of key or password
#: ../js/ui/status/network.js:1414 #: ../js/ui/status/network.js:1414
msgid "authentication required" msgid "authentication required"
msgstr "autenticação necessária" msgstr "autenticação necessária"
@ -1327,28 +1394,40 @@ msgstr "Falha de conexão"
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Falha ao ativar a conexão da rede" msgstr "Falha ao ativar a conexão da rede"
#: ../js/ui/status/power.js:49 #: ../js/ui/status/power.js:61
msgid "Power Settings" msgid "Power Settings"
msgstr "Configurações de energia" msgstr "Configurações de energia"
#: ../js/ui/status/power.js:65 #: ../js/ui/status/power.js:77
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Completamente carregada" msgstr "Completamente carregada"
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78 #. 0 is reported when UPower does not have enough data
#. to estimate battery life
#: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
msgid "Estimating…" msgid "Estimating…"
msgstr "Estimando…" msgstr "Estimando…"
#: ../js/ui/status/power.js:86 #. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:98
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "%d:%02d restante(s) (%d%%)" msgstr "%d:%02d restante(s) (%d%%)"
#: ../js/ui/status/power.js:91 #. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:103
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "%d:%02d até completamente carregada (%d%%)" msgstr "%d:%02d até completamente carregada (%d%%)"
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
#, javascript-format
msgid "%d%%"
msgstr "%d%%"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
#. changing the menu contents.
#: ../js/ui/status/rfkill.js:88 #: ../js/ui/status/rfkill.js:88
msgid "Airplane Mode On" msgid "Airplane Mode On"
msgstr "Modo avião ligado" msgstr "Modo avião ligado"
@ -1416,7 +1495,7 @@ msgstr "Você deseja manter essas configurações de exibição?"
#. Translators: this and the following message should be limited in lenght, #. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels. #. to avoid ellipsizing the labels.
#. */ #.
#: ../js/ui/windowManager.js:82 #: ../js/ui/windowManager.js:82
msgid "Revert Settings" msgid "Revert Settings"
msgstr "Reverter configurações" msgstr "Reverter configurações"
@ -1433,7 +1512,7 @@ msgstr[0] "Alterações nas configurações serão revertidas em %d segundo"
msgstr[1] "Alterações nas configurações serão revertidas em %d segundos" msgstr[1] "Alterações nas configurações serão revertidas em %d segundos"
#. Translators: This represents the size of a window. The first number is #. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height. */ #. * the width of the window and the second is the height.
#: ../js/ui/windowManager.js:658 #: ../js/ui/windowManager.js:658
#, javascript-format #, javascript-format
msgid "%d x %d" msgid "%d x %d"
@ -1509,7 +1588,7 @@ msgstr "Agenda 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:1837 #: ../src/gvc/gvc-mixer-control.c:1835
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1518,66 +1597,64 @@ msgstr[1] "%u saídas"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1847 #: ../src/gvc/gvc-mixer-control.c:1845
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
msgstr[0] "%u entrada" msgstr[0] "%u entrada"
msgstr[1] "%u entradas" msgstr[1] "%u entradas"
#: ../src/gvc/gvc-mixer-control.c:2373 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "Sons do sistema" msgstr "Sons do sistema"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Versão de impressão" msgstr "Versão de impressão"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Modo usado pelo GDM para a tela de início de sessão" msgstr "Modo usado pelo GDM para a tela de início de sessão"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Utilizar um modo específico, ex.: \"gdm\" para a tela de login" msgstr "Utilizar um modo específico, ex.: \"gdm\" para a tela de login"
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "Listar modos possíveis" msgstr "Listar modos possíveis"
#: ../src/shell-app.c:239 #: ../src/shell-app.c:246
msgctxt "program" msgctxt "program"
msgid "Unknown" msgid "Unknown"
msgstr "Desconhecido" msgstr "Desconhecido"
#: ../src/shell-app.c:480 #: ../src/shell-app.c:487
#, c-format #, c-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Erro ao lançar \"%s\"" msgstr "Erro ao lançar \"%s\""
#: ../src/shell-keyring-prompt.c:742 #: ../src/shell-keyring-prompt.c:730
msgid "Passwords do not match." msgid "Passwords do not match."
msgstr "As senhas não coincidem." msgstr "As senhas não coincidem."
#: ../src/shell-keyring-prompt.c:750 #: ../src/shell-keyring-prompt.c:738
msgid "Password cannot be blank" msgid "Password cannot be blank"
msgstr "A senha não pode estar em branco" msgstr "A senha não pode estar em branco"
#: ../src/shell-polkit-authentication-agent.c:346 #: ../src/shell-polkit-authentication-agent.c:353
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "O diálogo de autenticação foi descartado pelo usuário" msgstr "O diálogo de autenticação foi descartado pelo usuário"
#~ msgid "Bluetooth" # Traduções do Xfce e da Microsoft usam compositor --Enrico
#~ msgstr "Bluetooth" #~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "GNOME Shell (compositor wayland)"
#~ msgid "%d Connected Device" #~ msgid "%d Connected Device"
#~ msgid_plural "%d Connected Devices" #~ msgid_plural "%d Connected Devices"
#~ msgstr[0] "%d dispositivo conectado" #~ msgstr[0] "%d dispositivo conectado"
#~ msgstr[1] "%d dispositivos conectados" #~ msgstr[1] "%d dispositivos conectados"
#~ msgid "Off"
#~ msgstr "Off"
#~ msgid "Authentication required" #~ msgid "Authentication required"
#~ msgstr "Autenticação necessária" #~ msgstr "Autenticação necessária"

1987
po/ro.po

File diff suppressed because it is too large Load Diff

421
po/ru.po

File diff suppressed because it is too large Load Diff

614
po/sk.po

File diff suppressed because it is too large Load Diff

View File

@ -9,8 +9,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: 2015-09-22 08:38+0000\n" "POT-Creation-Date: 2015-09-29 08:39+0000\n"
"PO-Revision-Date: 2015-09-22 13:35+0200\n" "PO-Revision-Date: 2015-09-29 21:33+0200\n"
"Last-Translator: Марко М. Костић (Marko M. Kostić) <marko.m.kostic@gmail." "Last-Translator: Марко М. Костић (Marko M. Kostić) <marko.m.kostic@gmail."
"com>\n" "com>\n"
"Language-Team: Serbian <gnom@prevod.org>\n" "Language-Team: Serbian <gnom@prevod.org>\n"
@ -511,8 +511,7 @@ msgstr "Измени позадину…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Подешавања приказа" msgstr "Подешавања приказа"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "Подешавања" msgstr "Подешавања"
@ -588,33 +587,33 @@ msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Цео дан" msgstr "Цео дан"
#: ../js/ui/calendar.js:1291 #: ../js/ui/calendar.js:1295
msgid "Clear section" msgid "Clear section"
msgstr "Очисти одељак" msgstr "Очисти одељак"
#: ../js/ui/calendar.js:1518 #: ../js/ui/calendar.js:1522
msgid "Events" msgid "Events"
msgstr "Догађаји" msgstr "Догађаји"
#: ../js/ui/calendar.js:1527 #: ../js/ui/calendar.js:1531
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d. %B" msgstr "%A, %d. %B"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:1535
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A, %d. %B %Y." msgstr "%A, %d. %B %Y."
#: ../js/ui/calendar.js:1616 #: ../js/ui/calendar.js:1620
msgid "Notifications" msgid "Notifications"
msgstr "Обавештења" msgstr "Обавештења"
#: ../js/ui/calendar.js:1767 #: ../js/ui/calendar.js:1771
msgid "No Notifications" msgid "No Notifications"
msgstr "Без обавештења" msgstr "Без обавештења"
#: ../js/ui/calendar.js:1770 #: ../js/ui/calendar.js:1774
msgid "No Events" msgid "No Events"
msgstr "Без догађаја" msgstr "Без догађаја"
@ -980,7 +979,7 @@ msgstr "Укључено"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled" msgid "Disabled"
msgstr "Искључено" msgstr "Искључено"
@ -1034,6 +1033,11 @@ msgstr "Изађи"
msgid "Activities" msgid "Activities"
msgstr "Активности" msgstr "Активности"
#: ../js/ui/panel.js:650
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Систем"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:754
msgid "Top Bar" msgid "Top Bar"
msgstr "Горња трака" msgstr "Горња трака"
@ -1618,7 +1622,7 @@ msgstr "Календар Еволуције"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1837 #: ../src/gvc/gvc-mixer-control.c:1835
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1629,7 +1633,7 @@ msgstr[3] "%u излаз"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1847 #: ../src/gvc/gvc-mixer-control.c:1845
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
@ -1638,23 +1642,23 @@ msgstr[1] "%u улаза"
msgstr[2] "%u улаза" msgstr[2] "%u улаза"
msgstr[3] "%u улаз" msgstr[3] "%u улаз"
#: ../src/gvc/gvc-mixer-control.c:2373 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "Системски звуци" msgstr "Системски звуци"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Исписује издање" msgstr "Исписује издање"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Који режим користи ГДМ за екран пријављивања" msgstr "Који режим користи ГДМ за екран пријављивања"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Користи нарочит режим, нпр. „gdm“ за екран пријављивања" msgstr "Користи нарочит режим, нпр. „gdm“ за екран пријављивања"
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "Исписује могуће режиме" msgstr "Исписује могуће режиме"

View File

@ -9,8 +9,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: 2015-09-22 08:38+0000\n" "POT-Creation-Date: 2015-09-29 19:09+0000\n"
"PO-Revision-Date: 2015-09-22 13:35+0200\n" "PO-Revision-Date: 2015-09-29 21:33+0200\n"
"Last-Translator: Marko M. Kostić (Marko M. Kostić) <marko.m.kostic@gmail." "Last-Translator: Marko M. Kostić (Marko M. Kostić) <marko.m.kostic@gmail."
"com>\n" "com>\n"
"Language-Team: Serbian <gnom@prevod.org>\n" "Language-Team: Serbian <gnom@prevod.org>\n"
@ -511,8 +511,7 @@ msgstr "Izmeni pozadinu…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Podešavanja prikaza" msgstr "Podešavanja prikaza"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "Podešavanja" msgstr "Podešavanja"
@ -588,33 +587,33 @@ msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Ceo dan" msgstr "Ceo dan"
#: ../js/ui/calendar.js:1291 #: ../js/ui/calendar.js:1295
msgid "Clear section" msgid "Clear section"
msgstr "Očisti odeljak" msgstr "Očisti odeljak"
#: ../js/ui/calendar.js:1518 #: ../js/ui/calendar.js:1522
msgid "Events" msgid "Events"
msgstr "Događaji" msgstr "Događaji"
#: ../js/ui/calendar.js:1527 #: ../js/ui/calendar.js:1531
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d. %B" msgstr "%A, %d. %B"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:1535
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A, %d. %B %Y." msgstr "%A, %d. %B %Y."
#: ../js/ui/calendar.js:1616 #: ../js/ui/calendar.js:1620
msgid "Notifications" msgid "Notifications"
msgstr "Obaveštenja" msgstr "Obaveštenja"
#: ../js/ui/calendar.js:1767 #: ../js/ui/calendar.js:1771
msgid "No Notifications" msgid "No Notifications"
msgstr "Bez obaveštenja" msgstr "Bez obaveštenja"
#: ../js/ui/calendar.js:1770 #: ../js/ui/calendar.js:1774
msgid "No Events" msgid "No Events"
msgstr "Bez događaja" msgstr "Bez događaja"
@ -980,7 +979,7 @@ msgstr "Uključeno"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled" msgid "Disabled"
msgstr "Isključeno" msgstr "Isključeno"
@ -1034,6 +1033,11 @@ msgstr "Izađi"
msgid "Activities" msgid "Activities"
msgstr "Aktivnosti" msgstr "Aktivnosti"
#: ../js/ui/panel.js:650
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistem"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:754
msgid "Top Bar" msgid "Top Bar"
msgstr "Gornja traka" msgstr "Gornja traka"
@ -1618,7 +1622,7 @@ msgstr "Kalendar Evolucije"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1837 #: ../src/gvc/gvc-mixer-control.c:1835
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1629,7 +1633,7 @@ msgstr[3] "%u izlaz"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1847 #: ../src/gvc/gvc-mixer-control.c:1845
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
@ -1638,23 +1642,23 @@ msgstr[1] "%u ulaza"
msgstr[2] "%u ulaza" msgstr[2] "%u ulaza"
msgstr[3] "%u ulaz" msgstr[3] "%u ulaz"
#: ../src/gvc/gvc-mixer-control.c:2373 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "Sistemski zvuci" msgstr "Sistemski zvuci"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Ispisuje izdanje" msgstr "Ispisuje izdanje"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Koji režim koristi GDM za ekran prijavljivanja" msgstr "Koji režim koristi GDM za ekran prijavljivanja"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Koristi naročit režim, npr. „gdm“ za ekran prijavljivanja" msgstr "Koristi naročit režim, npr. „gdm“ za ekran prijavljivanja"
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "Ispisuje moguće režime" msgstr "Ispisuje moguće režime"

190
po/sv.po
View File

@ -12,8 +12,8 @@ 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: 2015-08-31 19:25+0000\n" "POT-Creation-Date: 2015-09-28 20:46+0000\n"
"PO-Revision-Date: 2015-09-20 13:30+0200\n" "PO-Revision-Date: 2015-09-29 00:39+0200\n"
"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n" "Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
"Language-Team: svenska <tp-sv@listor.tp-sv.se>\n" "Language-Team: svenska <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n" "Language: sv\n"
@ -334,21 +334,29 @@ msgstr "Logga in"
msgid "Choose Session" msgid "Choose Session"
msgstr "Välj session" msgstr "Välj session"
#. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: ../js/gdm/loginDialog.js:431 #: ../js/gdm/loginDialog.js:431
msgid "Not listed?" msgid "Not listed?"
msgstr "Inte listad?" msgstr "Inte listad?"
#: ../js/gdm/loginDialog.js:847 #. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:850
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(till exempel användare eller %s)" msgstr "(till exempel användare eller %s)"
#: ../js/gdm/loginDialog.js:852 ../js/ui/components/networkAgent.js:271 #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289 #: ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
msgstr "Användarnamn: " msgstr "Användarnamn: "
#: ../js/gdm/loginDialog.js:1181 #: ../js/gdm/loginDialog.js:1184
msgid "Login Window" msgid "Login Window"
msgstr "Inloggningsfönster" msgstr "Inloggningsfönster"
@ -356,6 +364,11 @@ msgstr "Inloggningsfönster"
msgid "Authentication error" msgid "Authentication error"
msgstr "Autentiseringsfel" msgstr "Autentiseringsfel"
#. We don't show fingerprint messages directly since it's
#. not the main auth service. Instead we use the messages
#. as a cue to display our own message.
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/util.js:473 #: ../js/gdm/util.js:473
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(eller dra fingret)" msgstr "(eller dra fingret)"
@ -364,6 +377,8 @@ msgstr "(eller dra fingret)"
msgid "Command not found" msgid "Command not found"
msgstr "Kommandot hittades inte" msgstr "Kommandot hittades inte"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
#: ../js/misc/util.js:152 #: ../js/misc/util.js:152
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Kunde inte tolka kommando:" msgstr "Kunde inte tolka kommando:"
@ -373,70 +388,78 @@ msgstr "Kunde inte tolka kommando:"
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "Körning av ”%s” misslyckades:" msgstr "Körning av ”%s” misslyckades:"
#. Translators: Time in 24h format */ #. Translators: Time in 24h format
#: ../js/misc/util.js:191 #: ../js/misc/util.js:191
msgid "%H%M" msgid "%H%M"
msgstr "%H%M" msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" */ #. time string in 24h format. i.e. "Yesterday, 14:30"
#: ../js/misc/util.js:197 #: ../js/misc/util.js:197
#, no-c-format
msgid "Yesterday, %H%M" msgid "Yesterday, %H%M"
msgstr "Igår, %H%M" msgstr "Igår, %H%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" */ #. string in 24h format. i.e. "Monday, 14:30"
#: ../js/misc/util.js:203 #: ../js/misc/util.js:203
#, no-c-format
msgid "%A, %H%M" msgid "%A, %H%M"
msgstr "%A, %H%M" msgstr "%A, %H%M"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 24h format. #. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" */ #. i.e. "May 25, 14:30"
#: ../js/misc/util.js:209 #: ../js/misc/util.js:209
#, no-c-format
msgid "%B %d, %H%M" msgid "%B %d, %H%M"
msgstr "%d %B, %H%M" msgstr "%d %B, %H%M"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format. #. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" */ #. i.e. "May 25 2012, 14:30"
#: ../js/misc/util.js:215 #: ../js/misc/util.js:215
#, no-c-format
msgid "%B %d %Y, %H%M" msgid "%B %d %Y, %H%M"
msgstr "%d %B %Y, %H%M" msgstr "%d %B %Y, %H%M"
#. Translators: Time in 12h format */ #. Translators: Time in 12h format
#: ../js/misc/util.js:220 #: ../js/misc/util.js:220
msgid "%l%M %p" msgid "%l%M %p"
msgstr "%l%M%p" msgstr "%l%M%p"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */ #. time string in 12h format. i.e. "Yesterday, 2:30 pm"
#: ../js/misc/util.js:226 #: ../js/misc/util.js:226
#, no-c-format
msgid "Yesterday, %l%M %p" msgid "Yesterday, %l%M %p"
msgstr "Igår, %l%M%p" msgstr "Igår, %l%M%p"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" */ #. string in 12h format. i.e. "Monday, 2:30 pm"
#: ../js/misc/util.js:232 #: ../js/misc/util.js:232
#, no-c-format
msgid "%A, %l%M %p" msgid "%A, %l%M %p"
msgstr "%A, %I%M%p" msgstr "%A, %I%M%p"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 12h format. #. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" */ #. i.e. "May 25, 2:30 pm"
#: ../js/misc/util.js:238 #: ../js/misc/util.js:238
#, no-c-format
msgid "%B %d, %l%M %p" msgid "%B %d, %l%M %p"
msgstr "%d %B, %l%M%p" msgstr "%d %B, %l%M%p"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format. #. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"*/ #. i.e. "May 25 2012, 2:30 pm"
#: ../js/misc/util.js:244 #: ../js/misc/util.js:244
#, no-c-format
msgid "%B %d %Y, %l%M %p" msgid "%B %d %Y, %l%M %p"
msgstr "%d %B %Y, %l%M%p" msgstr "%d %B %Y, %l%M%p"
#. TRANSLATORS: this is the title of the wifi captive portal login #. TRANSLATORS: this is the title of the wifi captive portal login
#. * window, until we know the title of the actual login page */ #. * window, until we know the title of the actual login page
#: ../js/portalHelper/main.js:85 #: ../js/portalHelper/main.js:85
msgid "Web Authentication Redirect" msgid "Web Authentication Redirect"
msgstr "Omdirigering för webbautentisering" msgstr "Omdirigering för webbautentisering"
@ -487,12 +510,11 @@ msgstr "Ändra bakgrund…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Skärminställningar" msgstr "Skärminställningar"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "Inställningar" msgstr "Inställningar"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). */ #. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:55 #: ../js/ui/calendar.js:55
msgctxt "calendar-no-work" msgctxt "calendar-no-work"
msgid "06" msgid "06"
@ -502,43 +524,43 @@ msgstr "06"
#. * #. *
#. * NOTE: These grid abbreviations are always shown together #. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S". #. * and in order, e.g. "S M T W T F S".
#. */ #.
#: ../js/ui/calendar.js:84 #: ../js/ui/calendar.js:84
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "S" msgstr "S"
#. Translators: Calendar grid abbreviation for Monday */ #. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:86 #: ../js/ui/calendar.js:86
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "M" msgstr "M"
#. Translators: Calendar grid abbreviation for Tuesday */ #. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:88 #: ../js/ui/calendar.js:88
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "T" msgstr "T"
#. Translators: Calendar grid abbreviation for Wednesday */ #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:90 #: ../js/ui/calendar.js:90
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "O" msgstr "O"
#. Translators: Calendar grid abbreviation for Thursday */ #. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:92 #: ../js/ui/calendar.js:92
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "T" msgstr "T"
#. Translators: Calendar grid abbreviation for Friday */ #. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:94 #: ../js/ui/calendar.js:94
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "F" msgstr "F"
#. Translators: Calendar grid abbreviation for Saturday */ #. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:96 #: ../js/ui/calendar.js:96
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
@ -558,39 +580,39 @@ msgstr "Vecka %V"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. */ #.
#: ../js/ui/calendar.js:1188 #: ../js/ui/calendar.js:1188
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Hela dagen" msgstr "Hela dagen"
#: ../js/ui/calendar.js:1291 #: ../js/ui/calendar.js:1295
msgid "Clear section" msgid "Clear section"
msgstr "Töm avsnitt" msgstr "Töm avsnitt"
#: ../js/ui/calendar.js:1518 #: ../js/ui/calendar.js:1522
msgid "Events" msgid "Events"
msgstr "Händelser" msgstr "Händelser"
#: ../js/ui/calendar.js:1527 #: ../js/ui/calendar.js:1531
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d %B" msgstr "%A, %d %B"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:1535
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A, %d %B, %Y" msgstr "%A, %d %B, %Y"
#: ../js/ui/calendar.js:1616 #: ../js/ui/calendar.js:1620
msgid "Notifications" msgid "Notifications"
msgstr "Aviseringar" msgstr "Aviseringar"
#: ../js/ui/calendar.js:1767 #: ../js/ui/calendar.js:1771
msgid "No Notifications" msgid "No Notifications"
msgstr "Inga aviseringar" msgstr "Inga aviseringar"
#: ../js/ui/calendar.js:1770 #: ../js/ui/calendar.js:1774
msgid "No Events" msgid "No Events"
msgstr "Inga händelser" msgstr "Inga händelser"
@ -620,6 +642,7 @@ msgstr "Skriv igen:"
msgid "Connect" msgid "Connect"
msgstr "Anslut" msgstr "Anslut"
#. Cisco LEAP
#: ../js/ui/components/networkAgent.js:233 #: ../js/ui/components/networkAgent.js:233
#: ../js/ui/components/networkAgent.js:245 #: ../js/ui/components/networkAgent.js:245
#: ../js/ui/components/networkAgent.js:273 #: ../js/ui/components/networkAgent.js:273
@ -628,6 +651,7 @@ msgstr "Anslut"
msgid "Password: " msgid "Password: "
msgstr "Lösenord: " msgstr "Lösenord: "
#. static WEP
#: ../js/ui/components/networkAgent.js:238 #: ../js/ui/components/networkAgent.js:238
msgid "Key: " msgid "Key: "
msgstr "Nyckel: " msgstr "Nyckel: "
@ -719,13 +743,13 @@ msgstr "Autentisera"
#. Translators: "that didn't work" refers to the fact that the #. Translators: "that didn't work" refers to the fact that the
#. * requested authentication was not gained; this can happen #. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password), #. * because of an authentication error (like invalid password),
#. * for instance. */ #. * for instance.
#: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383 #: ../js/ui/components/polkitAgent.js:301 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again." msgid "Sorry, that didn't work. Please try again."
msgstr "Tyvärr, det fungerade inte. Försök igen." msgstr "Tyvärr, det fungerade inte. Försök igen."
#. Translators: this is the other person changing their old IM name to their new #. Translators: this is the other person changing their old IM name to their new
#. IM name. */ #. IM name.
#: ../js/ui/components/telepathyClient.js:759 #: ../js/ui/components/telepathyClient.js:759
#, javascript-format #, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
@ -739,13 +763,15 @@ msgstr "Fönster"
msgid "Show Applications" msgid "Show Applications"
msgstr "Visa program" msgstr "Visa program"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:449 #: ../js/ui/dash.js:449
msgid "Dash" msgid "Dash"
msgstr "Snabbstartspanel" msgstr "Snabbstartspanel"
#. Translators: This is the date format to use when the calendar popup is #. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM"). #. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#. */ #.
#: ../js/ui/dateMenu.js:73 #: ../js/ui/dateMenu.js:73
msgid "%B %e %Y" msgid "%B %e %Y"
msgstr "%e %B %Y" msgstr "%e %B %Y"
@ -753,7 +779,7 @@ msgstr "%e %B %Y"
#. Translators: This is the accessible name of the date button shown #. Translators: This is the accessible name of the date button shown
#. * below the time in the shell; it should combine the weekday and the #. * below the time in the shell; it should combine the weekday and the
#. * date, e.g. "Tuesday February 17 2015". #. * date, e.g. "Tuesday February 17 2015".
#. */ #.
#: ../js/ui/dateMenu.js:80 #: ../js/ui/dateMenu.js:80
msgid "%A %B %e %Y" msgid "%A %B %e %Y"
msgstr "%A %e %B %Y" msgstr "%A %e %B %Y"
@ -886,13 +912,13 @@ msgstr "Några program är upptagna eller innehåller icke sparat arbete."
msgid "Other users are logged in." msgid "Other users are logged in."
msgstr "Andra användare är inloggade." msgstr "Andra användare är inloggade."
#. Translators: Remote here refers to a remote session, like a ssh login */ #. Translators: Remote here refers to a remote session, like a ssh login
#: ../js/ui/endSessionDialog.js:640 #: ../js/ui/endSessionDialog.js:640
#, javascript-format #, javascript-format
msgid "%s (remote)" msgid "%s (remote)"
msgstr "%s (fjärransluten)" msgstr "%s (fjärransluten)"
#. Translators: Console here refers to a tty like a VT console */ #. Translators: Console here refers to a tty like a VT console
#: ../js/ui/endSessionDialog.js:643 #: ../js/ui/endSessionDialog.js:643
#, javascript-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
@ -911,7 +937,7 @@ msgstr "Hämta och installera ”%s” från extensions.gnome.org?"
msgid "Keyboard" msgid "Keyboard"
msgstr "Tangentbord" msgstr "Tangentbord"
#. translators: 'Hide' is a verb */ #. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66 #: ../js/ui/legacyTray.js:66
msgid "Hide tray" msgid "Hide tray"
msgstr "Dölj aktivitetsfält" msgstr "Dölj aktivitetsfält"
@ -924,7 +950,7 @@ msgstr "Statusikoner"
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Inga tillägg installerade" msgstr "Inga tillägg installerade"
#. Translators: argument is an extension UUID. */ #. Translators: argument is an extension UUID.
#: ../js/ui/lookingGlass.js:697 #: ../js/ui/lookingGlass.js:697
#, javascript-format #, javascript-format
msgid "%s has not emitted any errors." msgid "%s has not emitted any errors."
@ -944,7 +970,7 @@ msgstr "Aktiverad"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled" msgid "Disabled"
msgstr "Inaktiverad" msgstr "Inaktiverad"
@ -983,7 +1009,7 @@ msgstr "Översikt"
#. Translators: this is the text displayed #. Translators: this is the text displayed
#. in the search entry when no search is #. in the search entry when no search is
#. active; it should not exceed ~30 #. active; it should not exceed ~30
#. characters. */ #. characters.
#: ../js/ui/overview.js:244 #: ../js/ui/overview.js:244
msgid "Type to search…" msgid "Type to search…"
msgstr "Skriv för att söka…" msgstr "Skriv för att söka…"
@ -993,15 +1019,25 @@ msgid "Quit"
msgstr "Avsluta" msgstr "Avsluta"
#. Translators: If there is no suitable word for "Activities" #. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". */ #. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:404 #: ../js/ui/panel.js:404
msgid "Activities" msgid "Activities"
msgstr "Aktiviteter" msgstr "Aktiviteter"
#: ../js/ui/panel.js:650
msgctxt "System menu in the top bar"
msgid "System"
msgstr "System"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:754
msgid "Top Bar" msgid "Top Bar"
msgstr "Systemrad" msgstr "Systemrad"
#. Translators: this MUST be either "toggle-switch-us"
#. (for toggle switches containing the English words
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:289 #: ../js/ui/popupMenu.js:289
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
@ -1019,7 +1055,7 @@ msgid "Restarting…"
msgstr "Startar om…" msgstr "Startar om…"
#. Translators: This is a time format for a date in #. Translators: This is a time format for a date in
#. long format */ #. long format
#: ../js/ui/screenShield.js:85 #: ../js/ui/screenShield.js:85
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d %B" msgstr "%A, %d %B"
@ -1046,6 +1082,13 @@ msgstr "Lås"
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "GNOME behöver låsa skärmen" msgstr "GNOME behöver låsa skärmen"
#. We could not become modal, so we can't activate the
#. screenshield. The user is probably very upset at this
#. point, but any application using global grabs is broken
#. Just tell him to stop using this app
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271 #: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271
msgid "Unable to lock" msgid "Unable to lock"
msgstr "Kunde inte låsa" msgstr "Kunde inte låsa"
@ -1141,7 +1184,7 @@ msgstr "Stäng av"
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Inställningar för Bluetooth" msgstr "Inställningar för Bluetooth"
#. Translators: this is the number of connected bluetooth devices */ #. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:105 #: ../js/ui/status/bluetooth.js:105
#, javascript-format #, javascript-format
msgid "%d Connected" msgid "%d Connected"
@ -1189,13 +1232,13 @@ msgstr "Aktivera"
msgid "<unknown>" msgid "<unknown>"
msgstr "<okänd>" msgstr "<okänd>"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308 #: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
#, javascript-format #, javascript-format
msgid "%s Off" msgid "%s Off"
msgstr "%s avslagen" msgstr "%s avslagen"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:454 #: ../js/ui/status/network.js:454
#, javascript-format #, javascript-format
msgid "%s Connected" msgid "%s Connected"
@ -1203,45 +1246,45 @@ msgstr "%s ansluten"
#. Translators: this is for network devices that are physically present but are not #. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu); #. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier */ #. %s is a network identifier
#: ../js/ui/status/network.js:459 #: ../js/ui/status/network.js:459
#, javascript-format #, javascript-format
msgid "%s Unmanaged" msgid "%s Unmanaged"
msgstr "%s ohanterad" msgstr "%s ohanterad"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:462 #: ../js/ui/status/network.js:462
#, javascript-format #, javascript-format
msgid "%s Disconnecting" msgid "%s Disconnecting"
msgstr "%s kopplar från" msgstr "%s kopplar från"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300 #: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
#, javascript-format #, javascript-format
msgid "%s Connecting" msgid "%s Connecting"
msgstr "%s ansluter" msgstr "%s ansluter"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier */ #. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: ../js/ui/status/network.js:472 #: ../js/ui/status/network.js:472
#, javascript-format #, javascript-format
msgid "%s Requires Authentication" msgid "%s Requires Authentication"
msgstr "%s kräver autentisering" msgstr "%s kräver autentisering"
#. Translators: this is for devices that require some kind of firmware or kernel #. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier */ #. module, which is missing; %s is a network identifier
#: ../js/ui/status/network.js:480 #: ../js/ui/status/network.js:480
#, javascript-format #, javascript-format
msgid "Firmware Missing For %s" msgid "Firmware Missing For %s"
msgstr "Fast programvara saknas för %s" msgstr "Fast programvara saknas för %s"
#. Translators: this is for a network device that cannot be activated (for example it #. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier */ #. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: ../js/ui/status/network.js:484 #: ../js/ui/status/network.js:484
#, javascript-format #, javascript-format
msgid "%s Unavailable" msgid "%s Unavailable"
msgstr "%s ej tillgänglig" msgstr "%s ej tillgänglig"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:487 #: ../js/ui/status/network.js:487
#, javascript-format #, javascript-format
msgid "%s Connection Failed" msgid "%s Connection Failed"
@ -1255,14 +1298,14 @@ msgstr "Trådbundna inställningar"
msgid "Mobile Broadband Settings" msgid "Mobile Broadband Settings"
msgstr "Inställningar för mobilt bredband" msgstr "Inställningar för mobilt bredband"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305 #: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
#, javascript-format #, javascript-format
msgid "%s Hardware Disabled" msgid "%s Hardware Disabled"
msgstr "Hårdvara för %s inaktiverad" msgstr "Hårdvara för %s inaktiverad"
#. Translators: this is for a network device that cannot be activated #. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier */ #. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: ../js/ui/status/network.js:592 #: ../js/ui/status/network.js:592
#, javascript-format #, javascript-format
msgid "%s Disabled" msgid "%s Disabled"
@ -1325,13 +1368,13 @@ msgstr "Inställningar för trådlösa nätverk"
msgid "Turn On" msgid "Turn On"
msgstr "Slå på" msgstr "Slå på"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296 #: ../js/ui/status/network.js:1296
#, javascript-format #, javascript-format
msgid "%s Hotspot Active" msgid "%s Hotspot Active"
msgstr "Surfzon för %s aktiv" msgstr "Surfzon för %s aktiv"
#. Translators: %s is a network identifier */ #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1311 #: ../js/ui/status/network.js:1311
#, javascript-format #, javascript-format
msgid "%s Not Connected" msgid "%s Not Connected"
@ -1341,7 +1384,7 @@ msgstr "%s ej ansluten"
msgid "connecting..." msgid "connecting..."
msgstr "ansluter..." msgstr "ansluter..."
#. Translators: this is for network connections that require some kind of key or password */ #. Translators: this is for network connections that require some kind of key or password
#: ../js/ui/status/network.js:1414 #: ../js/ui/status/network.js:1414
msgid "authentication required" msgid "authentication required"
msgstr "autentisering krävs" msgstr "autentisering krävs"
@ -1382,20 +1425,27 @@ msgstr "Ströminställningar"
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Fulladdad" msgstr "Fulladdad"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78 #: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
msgid "Estimating…" msgid "Estimating…"
msgstr "Beräknar…" msgstr "Beräknar…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:86
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d återstår (%d%%)" msgstr "%d%02d återstår (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91 #: ../js/ui/status/power.js:91
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "%d%02d tills fulladdad (%d%%)" msgstr "%d%02d tills fulladdad (%d%%)"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
#. changing the menu contents.
#: ../js/ui/status/rfkill.js:88 #: ../js/ui/status/rfkill.js:88
msgid "Airplane Mode On" msgid "Airplane Mode On"
msgstr "Flygplansläge påslaget" msgstr "Flygplansläge påslaget"
@ -1463,7 +1513,7 @@ msgstr "Vill du behålla dessa skärminställningar?"
#. Translators: this and the following message should be limited in lenght, #. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels. #. to avoid ellipsizing the labels.
#. */ #.
#: ../js/ui/windowManager.js:82 #: ../js/ui/windowManager.js:82
msgid "Revert Settings" msgid "Revert Settings"
msgstr "Återställ inställningar" msgstr "Återställ inställningar"
@ -1480,7 +1530,7 @@ msgstr[0] "Inställningarna kommer återställas om %d sekund"
msgstr[1] "Inställningarna kommer återställas om %d sekunder" msgstr[1] "Inställningarna kommer återställas om %d sekunder"
#. Translators: This represents the size of a window. The first number is #. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height. */ #. * the width of the window and the second is the height.
#: ../js/ui/windowManager.js:658 #: ../js/ui/windowManager.js:658
#, javascript-format #, javascript-format
msgid "%d x %d" msgid "%d x %d"
@ -1556,7 +1606,7 @@ msgstr "Evolution-kalender"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1837 #: ../src/gvc/gvc-mixer-control.c:1835
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1565,30 +1615,30 @@ msgstr[1] "%u utgångar"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1847 #: ../src/gvc/gvc-mixer-control.c:1845
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
msgstr[0] "%u ingång" msgstr[0] "%u ingång"
msgstr[1] "%u ingångar" msgstr[1] "%u ingångar"
#: ../src/gvc/gvc-mixer-control.c:2373 #: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds" msgid "System Sounds"
msgstr "Systemljud" msgstr "Systemljud"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Skriv ut version" msgstr "Skriv ut version"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Läge som används av GDM för inloggningsskärmen" msgstr "Läge som används av GDM för inloggningsskärmen"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Använd ett specifikt läge, t.ex. ”gdm” för inloggningsskärm" msgstr "Använd ett specifikt läge, t.ex. ”gdm” för inloggningsskärm"
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "Lista möjliga lägen" msgstr "Lista möjliga lägen"

426
po/tr.po

File diff suppressed because it is too large Load Diff

627
po/uk.po

File diff suppressed because it is too large Load Diff

View File

@ -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: 2015-09-23 22:01+0000\n" "POT-Creation-Date: 2015-09-28 22:53+0000\n"
"PO-Revision-Date: 2015-09-24 15:14+0700\n" "PO-Revision-Date: 2015-10-01 07:15+0700\n"
"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n" "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
"Language-Team: Vietnamese <gnome-vi-list@gnome.org>\n" "Language-Team: Vietnamese <gnome-vi-list@gnome.org>\n"
"Language: vi\n" "Language: vi\n"
@ -135,7 +135,7 @@ msgstr "Hộp thoại lịch sử lệnh (Alt-F2)"
#. Translators: looking glass is a debugger and inspector tool, see https://live.gnome.org/GnomeShell/LookingGlass #. Translators: looking glass is a debugger and inspector tool, see https://live.gnome.org/GnomeShell/LookingGlass
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13 #: ../data/org.gnome.shell.gschema.xml.in.in.h:13
msgid "History for the looking glass dialog" msgid "History for the looking glass dialog"
msgstr "Lịch sử hộp thoại looking glass" msgstr "Lịch sử hộp thoại kính tìm kiếm"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14 #: ../data/org.gnome.shell.gschema.xml.in.in.h:14
msgid "Always show the 'Log out' menu item in the user menu." msgid "Always show the 'Log out' menu item in the user menu."
@ -191,7 +191,7 @@ msgstr "Phím hiện “Ứng dụng”"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h: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 "Phím hiện “Ứng dụng” trong tổng quan “Hoạt động”." msgstr "Phím hiện “Ứng dụng” trong “Tổng quan hoạt động”."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
@ -298,7 +298,7 @@ msgstr "Đăng nhập mạng"
#: ../js/extensionPrefs/main.js:122 #: ../js/extensionPrefs/main.js:122
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "Có lỗi khi đang nạp hộp thoại tùy thích cho %s:" msgstr "Có lỗi khi đang tải hộp thoại tùy thích cho %s:"
#: ../js/extensionPrefs/main.js:154 #: ../js/extensionPrefs/main.js:154
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
@ -506,8 +506,7 @@ msgstr "Đổi ảnh nền…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Cài đặt hiển thị" msgstr "Cài đặt hiển thị"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/status/system.js:366
msgid "Settings" msgid "Settings"
msgstr "Cài đặt" msgstr "Cài đặt"
@ -585,7 +584,7 @@ msgstr "Cả ngày"
#: ../js/ui/calendar.js:1295 #: ../js/ui/calendar.js:1295
msgid "Clear section" msgid "Clear section"
msgstr "Xóa phần" msgstr "Xóa một phần"
#: ../js/ui/calendar.js:1522 #: ../js/ui/calendar.js:1522
msgid "Events" msgid "Events"
@ -834,7 +833,7 @@ msgstr[0] "Hệ thống sẽ tự động tắt sau %d giây."
#: ../js/ui/endSessionDialog.js:91 #: ../js/ui/endSessionDialog.js:91
msgctxt "checkbox" msgctxt "checkbox"
msgid "Install pending software updates" msgid "Install pending software updates"
msgstr "Nâng cấp phần mềm còn treo" msgstr "Cài đặt các cập nhật phần mềm còn treo"
#: ../js/ui/endSessionDialog.js:94 ../js/ui/endSessionDialog.js:111 #: ../js/ui/endSessionDialog.js:94 ../js/ui/endSessionDialog.js:111
msgctxt "button" msgctxt "button"
@ -979,7 +978,7 @@ msgstr "Xem mã nguồn"
#: ../js/ui/lookingGlass.js:758 #: ../js/ui/lookingGlass.js:758
msgid "Web Page" msgid "Web Page"
msgstr "Trang Web" msgstr "Trang thông tin điện tử"
#: ../js/ui/messageTray.js:1486 #: ../js/ui/messageTray.js:1486
msgid "System Information" msgid "System Information"
@ -1011,6 +1010,11 @@ msgstr "Thoát"
msgid "Activities" msgid "Activities"
msgstr "Hoạt động" msgstr "Hoạt động"
#: ../js/ui/panel.js:650
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Hệ thống"
#: ../js/ui/panel.js:754 #: ../js/ui/panel.js:754
msgid "Top Bar" msgid "Top Bar"
msgstr "Thanh đỉnh" msgstr "Thanh đỉnh"
@ -1075,7 +1079,7 @@ msgstr "Không thể khóa"
#: ../js/ui/screenShield.js:806 ../js/ui/screenShield.js:1272 #: ../js/ui/screenShield.js:806 ../js/ui/screenShield.js:1272
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Một ứng dụng đã ngăn cản khóa" msgstr "Việc khóa bị ngăn cản bởi một ứng dụng"
#: ../js/ui/search.js:617 #: ../js/ui/search.js:617
msgid "Searching…" msgid "Searching…"
@ -1083,7 +1087,7 @@ msgstr "Đang tìm…"
#: ../js/ui/search.js:619 #: ../js/ui/search.js:619
msgid "No results." msgid "No results."
msgstr "Không kết quả." msgstr "Không tìm thấy kết quả nào."
#: ../js/ui/shellEntry.js:25 #: ../js/ui/shellEntry.js:25
msgid "Copy" msgid "Copy"
@ -1565,19 +1569,19 @@ msgstr "Chuyển sang không gian làm việc Dưới"
#: ../js/ui/windowMenu.js:136 #: ../js/ui/windowMenu.js:136
msgid "Move to Monitor Up" msgid "Move to Monitor Up"
msgstr "Chuyển sang Màn hình Trên" msgstr "Chuyển sang màn hình Trên"
#: ../js/ui/windowMenu.js:142 #: ../js/ui/windowMenu.js:142
msgid "Move to Monitor Down" msgid "Move to Monitor Down"
msgstr "Chuyển sang Màn hình Dưới" msgstr "Chuyển sang màn hình Dưới"
#: ../js/ui/windowMenu.js:148 #: ../js/ui/windowMenu.js:148
msgid "Move to Monitor Left" msgid "Move to Monitor Left"
msgstr "Chuyển sang Màn hình Trái" msgstr "Chuyển sang màn hình Trái"
#: ../js/ui/windowMenu.js:154 #: ../js/ui/windowMenu.js:154
msgid "Move to Monitor Right" msgid "Move to Monitor Right"
msgstr "Chuyển sang Màn hình Phải" msgstr "Chuyển sang màn hình Phải"
#: ../src/calendar-server/evolution-calendar.desktop.in.in.h:1 #: ../src/calendar-server/evolution-calendar.desktop.in.in.h:1
msgid "Evolution Calendar" msgid "Evolution Calendar"
@ -1603,19 +1607,19 @@ msgstr[0] "%u đầu vào"
msgid "System Sounds" msgid "System Sounds"
msgstr "Âm thanh hệ thống" msgstr "Âm thanh hệ thống"
#: ../src/main.c:373 #: ../src/main.c:381
msgid "Print version" msgid "Print version"
msgstr "Hiển thị phiên bản" msgstr "Hiển thị phiên bản"
#: ../src/main.c:379 #: ../src/main.c:387
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Chế độ được dùng bởi GDM cho màn hình đăng nhập" msgstr "Chế độ được dùng bởi GDM cho màn hình đăng nhập"
#: ../src/main.c:385 #: ../src/main.c:393
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Dùng chế độ đặc biệt, ví dụ “gdm” cho màn hình đăng nhập" msgstr "Dùng chế độ đặc biệt, ví dụ “gdm” cho màn hình đăng nhập"
#: ../src/main.c:391 #: ../src/main.c:399
msgid "List possible modes" msgid "List possible modes"
msgstr "Danh sách chế độ có thể" msgstr "Danh sách chế độ có thể"

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

View File

@ -43,8 +43,6 @@
#define DIRECTORY_LOAD_ITEMS_PER_CALLBACK 100 #define DIRECTORY_LOAD_ITEMS_PER_CALLBACK 100
#define HIGH_SCORE_RATIO 0.10 #define HIGH_SCORE_RATIO 0.10
G_DEFINE_TYPE (ShellMimeSniffer, shell_mime_sniffer, G_TYPE_OBJECT);
enum { enum {
PROP_FILE = 1, PROP_FILE = 1,
NUM_PROPERTIES NUM_PROPERTIES
@ -72,16 +70,26 @@ typedef struct {
gint total_items; gint total_items;
} DeepCountState; } DeepCountState;
typedef struct _ShellMimeSnifferPrivate ShellMimeSnifferPrivate;
struct _ShellMimeSniffer
{
GObject parent_instance;
ShellMimeSnifferPrivate *priv;
};
struct _ShellMimeSnifferPrivate { struct _ShellMimeSnifferPrivate {
GFile *file; GFile *file;
GCancellable *cancellable; GCancellable *cancellable;
guint watchdog_id; guint watchdog_id;
GSimpleAsyncResult *async_result; GTask *task;
gchar **sniffed_mime;
}; };
G_DEFINE_TYPE_WITH_PRIVATE (ShellMimeSniffer, shell_mime_sniffer, G_TYPE_OBJECT);
static void deep_count_load (DeepCountState *state, static void deep_count_load (DeepCountState *state,
GFile *file); GFile *file);
@ -179,6 +187,7 @@ prepare_async_result (DeepCountState *state)
GArray *results; GArray *results;
GPtrArray *sniffed_mime; GPtrArray *sniffed_mime;
SniffedResult result; SniffedResult result;
char **mimes;
sniffed_mime = g_ptr_array_new (); sniffed_mime = g_ptr_array_new ();
results = g_array_new (TRUE, TRUE, sizeof (SniffedResult)); results = g_array_new (TRUE, TRUE, sizeof (SniffedResult));
@ -220,10 +229,10 @@ prepare_async_result (DeepCountState *state)
out: out:
g_ptr_array_add (sniffed_mime, NULL); g_ptr_array_add (sniffed_mime, NULL);
self->priv->sniffed_mime = (gchar **) g_ptr_array_free (sniffed_mime, FALSE); mimes = (gchar **) g_ptr_array_free (sniffed_mime, FALSE);
g_array_free (results, TRUE); g_array_free (results, TRUE);
g_simple_async_result_complete_in_idle (self->priv->async_result); g_task_return_pointer (self->priv->task, mimes, (GDestroyNotify)g_strfreev);
} }
/* adapted from nautilus/libnautilus-private/nautilus-directory-async.c */ /* adapted from nautilus/libnautilus-private/nautilus-directory-async.c */
@ -416,20 +425,17 @@ query_info_async_ready_cb (GObject *source,
if (error != NULL) if (error != NULL)
{ {
g_simple_async_result_take_error (self->priv->async_result, g_task_return_error (self->priv->task, error);
error);
g_simple_async_result_complete_in_idle (self->priv->async_result);
return; return;
} }
if (g_file_info_get_file_type (info) != G_FILE_TYPE_DIRECTORY) if (g_file_info_get_file_type (info) != G_FILE_TYPE_DIRECTORY)
{ {
g_simple_async_result_set_error (self->priv->async_result, g_task_return_new_error (self->priv->task,
G_IO_ERROR, G_IO_ERROR,
G_IO_ERROR_NOT_DIRECTORY, G_IO_ERROR_NOT_DIRECTORY,
"Not a directory"); "Not a directory");
g_simple_async_result_complete_in_idle (self->priv->async_result);
return; return;
} }
@ -475,7 +481,7 @@ shell_mime_sniffer_dispose (GObject *object)
g_clear_object (&self->priv->file); g_clear_object (&self->priv->file);
g_clear_object (&self->priv->cancellable); g_clear_object (&self->priv->cancellable);
g_clear_object (&self->priv->async_result); g_clear_object (&self->priv->task);
if (self->priv->watchdog_id != 0) if (self->priv->watchdog_id != 0)
{ {
@ -486,16 +492,6 @@ shell_mime_sniffer_dispose (GObject *object)
G_OBJECT_CLASS (shell_mime_sniffer_parent_class)->dispose (object); G_OBJECT_CLASS (shell_mime_sniffer_parent_class)->dispose (object);
} }
static void
shell_mime_sniffer_finalize (GObject *object)
{
ShellMimeSniffer *self = SHELL_MIME_SNIFFER (object);
g_strfreev (self->priv->sniffed_mime);
G_OBJECT_CLASS (shell_mime_sniffer_parent_class)->finalize (object);
}
static void static void
shell_mime_sniffer_get_property (GObject *object, shell_mime_sniffer_get_property (GObject *object,
guint prop_id, guint prop_id,
@ -539,7 +535,6 @@ shell_mime_sniffer_class_init (ShellMimeSnifferClass *klass)
oclass = G_OBJECT_CLASS (klass); oclass = G_OBJECT_CLASS (klass);
oclass->dispose = shell_mime_sniffer_dispose; oclass->dispose = shell_mime_sniffer_dispose;
oclass->finalize = shell_mime_sniffer_finalize;
oclass->get_property = shell_mime_sniffer_get_property; oclass->get_property = shell_mime_sniffer_get_property;
oclass->set_property = shell_mime_sniffer_set_property; oclass->set_property = shell_mime_sniffer_set_property;
@ -550,17 +545,13 @@ shell_mime_sniffer_class_init (ShellMimeSnifferClass *klass)
G_TYPE_FILE, G_TYPE_FILE,
G_PARAM_READWRITE); G_PARAM_READWRITE);
g_type_class_add_private (klass, sizeof (ShellMimeSnifferPrivate));
g_object_class_install_properties (oclass, NUM_PROPERTIES, properties); g_object_class_install_properties (oclass, NUM_PROPERTIES, properties);
} }
static void static void
shell_mime_sniffer_init (ShellMimeSniffer *self) shell_mime_sniffer_init (ShellMimeSniffer *self)
{ {
self->priv = self->priv = shell_mime_sniffer_get_instance_private (self);
G_TYPE_INSTANCE_GET_PRIVATE (self,
SHELL_TYPE_MIME_SNIFFER,
ShellMimeSnifferPrivate);
init_mimetypes (); init_mimetypes ();
} }
@ -578,14 +569,11 @@ shell_mime_sniffer_sniff_async (ShellMimeSniffer *self,
gpointer user_data) gpointer user_data)
{ {
g_assert (self->priv->watchdog_id == 0); g_assert (self->priv->watchdog_id == 0);
g_assert (self->priv->async_result == NULL); g_assert (self->priv->task == NULL);
self->priv->async_result =
g_simple_async_result_new (G_OBJECT (self),
callback, user_data,
shell_mime_sniffer_sniff_finish);
self->priv->cancellable = g_cancellable_new (); self->priv->cancellable = g_cancellable_new ();
self->priv->task = g_task_new (self, self->priv->cancellable,
callback, user_data);
self->priv->watchdog_id = self->priv->watchdog_id =
g_timeout_add (WATCHDOG_TIMEOUT, g_timeout_add (WATCHDOG_TIMEOUT,
@ -600,8 +588,5 @@ shell_mime_sniffer_sniff_finish (ShellMimeSniffer *self,
GAsyncResult *res, GAsyncResult *res,
GError **error) GError **error)
{ {
if (g_simple_async_result_propagate_error (self->priv->async_result, error)) return g_task_propagate_pointer (self->priv->task, error);
return NULL;
return g_strdupv (self->priv->sniffed_mime);
} }

View File

@ -28,29 +28,8 @@
G_BEGIN_DECLS G_BEGIN_DECLS
#define SHELL_TYPE_MIME_SNIFFER (shell_mime_sniffer_get_type ()) #define SHELL_TYPE_MIME_SNIFFER (shell_mime_sniffer_get_type ())
#define SHELL_MIME_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_MIME_SNIFFER, ShellMimeSniffer)) G_DECLARE_FINAL_TYPE (ShellMimeSniffer, shell_mime_sniffer,
#define SHELL_IS_MIME_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_MIME_SNIFFER)) SHELL, MIME_SNIFFER, GObject)
#define SHELL_MIME_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_MIME_SNIFFER, ShellMimeSnifferClass))
#define SHELL_IS_MIME_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_MIME_SNIFFER))
#define SHELL_MIME_SNIFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_MIME_SNIFFER, ShellMimeSnifferClass))
typedef struct _ShellMimeSniffer ShellMimeSniffer;
typedef struct _ShellMimeSnifferPrivate ShellMimeSnifferPrivate;
typedef struct _ShellMimeSnifferClass ShellMimeSnifferClass;
struct _ShellMimeSniffer
{
GObject parent_instance;
ShellMimeSnifferPrivate *priv;
};
struct _ShellMimeSnifferClass
{
GObjectClass parent_class;
};
GType shell_mime_sniffer_get_type (void) G_GNUC_CONST;
ShellMimeSniffer *shell_mime_sniffer_new (GFile *file); ShellMimeSniffer *shell_mime_sniffer_new (GFile *file);

View File

@ -68,7 +68,7 @@ shell_dbus_acquire_name (GDBusProxy *bus,
NULL, /* cancellable */ NULL, /* cancellable */
&error))) &error)))
{ {
g_printerr ("failed to acquire %s: %s\n", name, error ? error->message : ""); g_printerr ("failed to acquire %s: %s\n", name, error->message);
g_clear_error (&error); g_clear_error (&error);
if (!fatal) if (!fatal)
return; return;

View File

@ -37,6 +37,15 @@ enum {
static guint signals[LAST_SIGNAL] = { 0 }; static guint signals[LAST_SIGNAL] = { 0 };
typedef struct _ShellAppSystemPrivate ShellAppSystemPrivate;
struct _ShellAppSystem
{
GObject parent;
ShellAppSystemPrivate *priv;
};
struct _ShellAppSystemPrivate { struct _ShellAppSystemPrivate {
GHashTable *running_apps; GHashTable *running_apps;
GHashTable *id_to_app; GHashTable *id_to_app;
@ -45,7 +54,7 @@ struct _ShellAppSystemPrivate {
static void shell_app_system_finalize (GObject *object); static void shell_app_system_finalize (GObject *object);
G_DEFINE_TYPE(ShellAppSystem, shell_app_system, G_TYPE_OBJECT); G_DEFINE_TYPE_WITH_PRIVATE (ShellAppSystem, shell_app_system, G_TYPE_OBJECT);
static void shell_app_system_class_init(ShellAppSystemClass *klass) static void shell_app_system_class_init(ShellAppSystemClass *klass)
{ {
@ -64,11 +73,9 @@ static void shell_app_system_class_init(ShellAppSystemClass *klass)
g_signal_new ("installed-changed", g_signal_new ("installed-changed",
SHELL_TYPE_APP_SYSTEM, SHELL_TYPE_APP_SYSTEM,
G_SIGNAL_RUN_LAST, G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (ShellAppSystemClass, installed_changed), 0,
NULL, NULL, NULL, NULL, NULL, NULL,
G_TYPE_NONE, 0); G_TYPE_NONE, 0);
g_type_class_add_private (gobject_class, sizeof (ShellAppSystemPrivate));
} }
static void static void
@ -147,9 +154,7 @@ shell_app_system_init (ShellAppSystem *self)
ShellAppSystemPrivate *priv; ShellAppSystemPrivate *priv;
GAppInfoMonitor *monitor; GAppInfoMonitor *monitor;
self->priv = priv = G_TYPE_INSTANCE_GET_PRIVATE (self, self->priv = priv = shell_app_system_get_instance_private (self);
SHELL_TYPE_APP_SYSTEM,
ShellAppSystemPrivate);
priv->running_apps = g_hash_table_new_full (NULL, NULL, (GDestroyNotify) g_object_unref, NULL); priv->running_apps = g_hash_table_new_full (NULL, NULL, (GDestroyNotify) g_object_unref, NULL);
priv->id_to_app = g_hash_table_new_full (g_str_hash, g_str_equal, priv->id_to_app = g_hash_table_new_full (g_str_hash, g_str_equal,

View File

@ -9,32 +9,9 @@
#include "shell-app.h" #include "shell-app.h"
#define SHELL_TYPE_APP_SYSTEM (shell_app_system_get_type ()) #define SHELL_TYPE_APP_SYSTEM (shell_app_system_get_type ())
#define SHELL_APP_SYSTEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_APP_SYSTEM, ShellAppSystem)) G_DECLARE_FINAL_TYPE (ShellAppSystem, shell_app_system,
#define SHELL_APP_SYSTEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_APP_SYSTEM, ShellAppSystemClass)) SHELL, APP_SYSTEM, GObject)
#define SHELL_IS_APP_SYSTEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_APP_SYSTEM))
#define SHELL_IS_APP_SYSTEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_APP_SYSTEM))
#define SHELL_APP_SYSTEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_APP_SYSTEM, ShellAppSystemClass))
typedef struct _ShellAppSystem ShellAppSystem;
typedef struct _ShellAppSystemClass ShellAppSystemClass;
typedef struct _ShellAppSystemPrivate ShellAppSystemPrivate;
struct _ShellAppSystem
{
GObject parent;
ShellAppSystemPrivate *priv;
};
struct _ShellAppSystemClass
{
GObjectClass parent_class;
void (*installed_changed)(ShellAppSystem *appsys, gpointer user_data);
void (*favorites_changed)(ShellAppSystem *appsys, gpointer user_data);
};
GType shell_app_system_get_type (void) G_GNUC_CONST;
ShellAppSystem *shell_app_system_get_default (void); ShellAppSystem *shell_app_system_get_default (void);
ShellApp *shell_app_system_lookup_app (ShellAppSystem *system, ShellApp *shell_app_system_lookup_app (ShellAppSystem *system,

View File

@ -7,23 +7,9 @@
G_BEGIN_DECLS G_BEGIN_DECLS
typedef struct _ShellAppUsage ShellAppUsage;
typedef struct _ShellAppUsageClass ShellAppUsageClass;
typedef struct _ShellAppUsagePrivate ShellAppUsagePrivate;
#define SHELL_TYPE_APP_USAGE (shell_app_usage_get_type ()) #define SHELL_TYPE_APP_USAGE (shell_app_usage_get_type ())
#define SHELL_APP_USAGE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), SHELL_TYPE_APP_USAGE, ShellAppUsage)) G_DECLARE_FINAL_TYPE (ShellAppUsage, shell_app_usage,
#define SHELL_APP_USAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_APP_USAGE, ShellAppUsageClass)) SHELL, APP_USAGE, GObject)
#define SHELL_IS_APP_USAGE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), SHELL_TYPE_APP_USAGE))
#define SHELL_IS_APP_USAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_APP_USAGE))
#define SHELL_APP_USAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_APP_USAGE, ShellAppUsageClass))
struct _ShellAppUsageClass
{
GObjectClass parent_class;
};
GType shell_app_usage_get_type (void) G_GNUC_CONST;
ShellAppUsage* shell_app_usage_get_default(void); ShellAppUsage* shell_app_usage_get_default(void);

View File

@ -156,16 +156,20 @@ static MetaWindow *
window_backed_app_get_window (ShellApp *app) window_backed_app_get_window (ShellApp *app)
{ {
g_assert (app->info == NULL); g_assert (app->info == NULL);
g_assert (app->running_state); if (app->running_state)
{
g_assert (app->running_state->windows); g_assert (app->running_state->windows);
return app->running_state->windows->data; return app->running_state->windows->data;
}
else
return NULL;
} }
static ClutterActor * static ClutterActor *
window_backed_app_get_icon (ShellApp *app, window_backed_app_get_icon (ShellApp *app,
int size) int size)
{ {
MetaWindow *window; MetaWindow *window = NULL;
ClutterActor *actor; ClutterActor *actor;
gint scale; gint scale;
ShellGlobal *global; ShellGlobal *global;
@ -181,14 +185,16 @@ window_backed_app_get_icon (ShellApp *app,
* window-backend apps, it's possible we get a request for the icon. * window-backend apps, it's possible we get a request for the icon.
* Avoid asserting here and just return an empty image. * Avoid asserting here and just return an empty image.
*/ */
if (app->running_state == NULL) if (app->running_state != NULL)
window = window_backed_app_get_window (app);
if (window == NULL)
{ {
actor = clutter_texture_new (); actor = clutter_texture_new ();
g_object_set (actor, "opacity", 0, "width", (float) size, "height", (float) size, NULL); g_object_set (actor, "opacity", 0, "width", (float) size, "height", (float) size, NULL);
return actor; return actor;
} }
window = window_backed_app_get_window (app);
actor = st_texture_cache_bind_cairo_surface_property (st_texture_cache_get_default (), actor = st_texture_cache_bind_cairo_surface_property (st_texture_cache_get_default (),
G_OBJECT (window), G_OBJECT (window),
"icon"); "icon");
@ -232,8 +238,9 @@ shell_app_get_name (ShellApp *app)
else else
{ {
MetaWindow *window = window_backed_app_get_window (app); MetaWindow *window = window_backed_app_get_window (app);
const char *name; const char *name = NULL;
if (window)
name = meta_window_get_wm_class (window); name = meta_window_get_wm_class (window);
if (!name) if (!name)
name = C_("program", "Unknown"); name = C_("program", "Unknown");
@ -1154,6 +1161,12 @@ shell_app_launch (ShellApp *app,
if (app->info == NULL) if (app->info == NULL)
{ {
MetaWindow *window = window_backed_app_get_window (app); MetaWindow *window = window_backed_app_get_window (app);
/* We don't use an error return if there no longer any windows, because the
* user attempting to activate a stale window backed app isn't something
* we would expect the caller to meaningfully handle or display an error
* message to the user.
*/
if (window)
meta_window_activate (window, timestamp); meta_window_activate (window, timestamp);
return TRUE; return TRUE;
} }

View File

@ -9,23 +9,8 @@
G_BEGIN_DECLS G_BEGIN_DECLS
typedef struct _ShellApp ShellApp;
typedef struct _ShellAppClass ShellAppClass;
typedef struct _ShellAppPrivate ShellAppPrivate;
typedef struct _ShellAppAction ShellAppAction;
#define SHELL_TYPE_APP (shell_app_get_type ()) #define SHELL_TYPE_APP (shell_app_get_type ())
#define SHELL_APP(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), SHELL_TYPE_APP, ShellApp)) G_DECLARE_FINAL_TYPE (ShellApp, shell_app, SHELL, APP, GObject)
#define SHELL_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_APP, ShellAppClass))
#define SHELL_IS_APP(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), SHELL_TYPE_APP))
#define SHELL_IS_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_APP))
#define SHELL_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_APP, ShellAppClass))
struct _ShellAppClass
{
GObjectClass parent_class;
};
typedef enum { typedef enum {
SHELL_APP_STATE_STOPPED, SHELL_APP_STATE_STOPPED,
@ -33,8 +18,6 @@ typedef enum {
SHELL_APP_STATE_RUNNING SHELL_APP_STATE_RUNNING
} ShellAppState; } ShellAppState;
GType shell_app_get_type (void) G_GNUC_CONST;
const char *shell_app_get_id (ShellApp *app); const char *shell_app_get_id (ShellApp *app);
GDesktopAppInfo *shell_app_get_app_info (ShellApp *app); GDesktopAppInfo *shell_app_get_app_info (ShellApp *app);

View File

@ -23,18 +23,22 @@
* - Actor is mapped [actor and all parents visible, actor in stage] * - Actor is mapped [actor and all parents visible, actor in stage]
*/ */
G_DEFINE_TYPE (ShellEmbeddedWindow, shell_embedded_window, GTK_TYPE_WINDOW);
enum { enum {
PROP_0 PROP_0
}; };
typedef struct _ShellEmbeddedWindowPrivate ShellEmbeddedWindowPrivate;
struct _ShellEmbeddedWindowPrivate { struct _ShellEmbeddedWindowPrivate {
ShellGtkEmbed *actor; ShellGtkEmbed *actor;
GdkRectangle position; GdkRectangle position;
}; };
G_DEFINE_TYPE_WITH_PRIVATE (ShellEmbeddedWindow,
shell_embedded_window,
GTK_TYPE_WINDOW);
/* /*
* The normal gtk_window_show() starts all of the complicated asynchronous * The normal gtk_window_show() starts all of the complicated asynchronous
* window resizing code running; we don't want or need any of that. * window resizing code running; we don't want or need any of that.
@ -47,19 +51,22 @@ static void
shell_embedded_window_show (GtkWidget *widget) shell_embedded_window_show (GtkWidget *widget)
{ {
ShellEmbeddedWindow *window = SHELL_EMBEDDED_WINDOW (widget); ShellEmbeddedWindow *window = SHELL_EMBEDDED_WINDOW (widget);
ShellEmbeddedWindowPrivate *priv;
GtkWidgetClass *widget_class; GtkWidgetClass *widget_class;
priv = shell_embedded_window_get_instance_private (window);
/* Skip GtkWindow, but run the default GtkWidget handling which /* Skip GtkWindow, but run the default GtkWidget handling which
* marks the widget visible */ * marks the widget visible */
widget_class = g_type_class_peek (GTK_TYPE_WIDGET); widget_class = g_type_class_peek (GTK_TYPE_WIDGET);
widget_class->show (widget); widget_class->show (widget);
if (window->priv->actor) if (priv->actor)
{ {
/* Size is 0x0 if the GtkWindow is not shown */ /* Size is 0x0 if the GtkWindow is not shown */
clutter_actor_queue_relayout (CLUTTER_ACTOR (window->priv->actor)); clutter_actor_queue_relayout (CLUTTER_ACTOR (priv->actor));
if (clutter_actor_is_realized (CLUTTER_ACTOR (window->priv->actor))) if (clutter_actor_is_realized (CLUTTER_ACTOR (priv->actor)))
gtk_widget_map (widget); gtk_widget_map (widget);
} }
} }
@ -68,9 +75,12 @@ static void
shell_embedded_window_hide (GtkWidget *widget) shell_embedded_window_hide (GtkWidget *widget)
{ {
ShellEmbeddedWindow *window = SHELL_EMBEDDED_WINDOW (widget); ShellEmbeddedWindow *window = SHELL_EMBEDDED_WINDOW (widget);
ShellEmbeddedWindowPrivate *priv;
if (window->priv->actor) priv = shell_embedded_window_get_instance_private (window);
clutter_actor_queue_relayout (CLUTTER_ACTOR (window->priv->actor));
if (priv->actor)
clutter_actor_queue_relayout (CLUTTER_ACTOR (priv->actor));
GTK_WIDGET_CLASS (shell_embedded_window_parent_class)->hide (widget); GTK_WIDGET_CLASS (shell_embedded_window_parent_class)->hide (widget);
} }
@ -90,6 +100,9 @@ static void
shell_embedded_window_check_resize (GtkContainer *container) shell_embedded_window_check_resize (GtkContainer *container)
{ {
ShellEmbeddedWindow *window = SHELL_EMBEDDED_WINDOW (container); ShellEmbeddedWindow *window = SHELL_EMBEDDED_WINDOW (container);
ShellEmbeddedWindowPrivate *priv;
priv = shell_embedded_window_get_instance_private (window);
/* Check resize is called when a resize is queued on something /* Check resize is called when a resize is queued on something
* inside the GtkWindow; we need to make sure that in response * inside the GtkWindow; we need to make sure that in response
@ -97,8 +110,8 @@ shell_embedded_window_check_resize (GtkContainer *container)
* gtk_widget_size_allocate() are called; we defer to the Clutter * gtk_widget_size_allocate() are called; we defer to the Clutter
* logic and assume it will do the right thing. * logic and assume it will do the right thing.
*/ */
if (window->priv->actor) if (priv->actor)
clutter_actor_queue_relayout (CLUTTER_ACTOR (window->priv->actor)); clutter_actor_queue_relayout (CLUTTER_ACTOR (priv->actor));
} }
static GObject * static GObject *
@ -134,8 +147,6 @@ shell_embedded_window_class_init (ShellEmbeddedWindowClass *klass)
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass); GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass);
g_type_class_add_private (klass, sizeof (ShellEmbeddedWindowPrivate));
object_class->constructor = shell_embedded_window_constructor; object_class->constructor = shell_embedded_window_constructor;
widget_class->show = shell_embedded_window_show; widget_class->show = shell_embedded_window_show;
@ -148,8 +159,6 @@ shell_embedded_window_class_init (ShellEmbeddedWindowClass *klass)
static void static void
shell_embedded_window_init (ShellEmbeddedWindow *window) shell_embedded_window_init (ShellEmbeddedWindow *window)
{ {
window->priv = G_TYPE_INSTANCE_GET_PRIVATE (window, SHELL_TYPE_EMBEDDED_WINDOW,
ShellEmbeddedWindowPrivate);
} }
/* /*
@ -161,9 +170,12 @@ _shell_embedded_window_set_actor (ShellEmbeddedWindow *window,
ShellGtkEmbed *actor) ShellGtkEmbed *actor)
{ {
ShellEmbeddedWindowPrivate *priv;
g_return_if_fail (SHELL_IS_EMBEDDED_WINDOW (window)); g_return_if_fail (SHELL_IS_EMBEDDED_WINDOW (window));
window->priv->actor = actor; priv = shell_embedded_window_get_instance_private (window);
priv->actor = actor;
if (actor && if (actor &&
clutter_actor_is_mapped (CLUTTER_ACTOR (actor)) && clutter_actor_is_mapped (CLUTTER_ACTOR (actor)) &&
@ -178,20 +190,23 @@ _shell_embedded_window_allocate (ShellEmbeddedWindow *window,
int width, int width,
int height) int height)
{ {
ShellEmbeddedWindowPrivate *priv;
GtkAllocation allocation; GtkAllocation allocation;
g_return_if_fail (SHELL_IS_EMBEDDED_WINDOW (window)); g_return_if_fail (SHELL_IS_EMBEDDED_WINDOW (window));
if (window->priv->position.x == x && priv = shell_embedded_window_get_instance_private (window);
window->priv->position.y == y &&
window->priv->position.width == width && if (priv->position.x == x &&
window->priv->position.height == height) priv->position.y == y &&
priv->position.width == width &&
priv->position.height == height)
return; return;
window->priv->position.x = x; priv->position.x = x;
window->priv->position.y = y; priv->position.y = y;
window->priv->position.width = width; priv->position.width = width;
window->priv->position.height = height; priv->position.height = height;
if (gtk_widget_get_realized (GTK_WIDGET (window))) if (gtk_widget_get_realized (GTK_WIDGET (window)))
gdk_window_move_resize (gtk_widget_get_window (GTK_WIDGET (window)), gdk_window_move_resize (gtk_widget_get_window (GTK_WIDGET (window)),

View File

@ -6,30 +6,14 @@
#include <clutter/clutter.h> #include <clutter/clutter.h>
#define SHELL_TYPE_EMBEDDED_WINDOW (shell_embedded_window_get_type ()) #define SHELL_TYPE_EMBEDDED_WINDOW (shell_embedded_window_get_type ())
#define SHELL_EMBEDDED_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_EMBEDDED_WINDOW, ShellEmbeddedWindow)) G_DECLARE_DERIVABLE_TYPE (ShellEmbeddedWindow, shell_embedded_window,
#define SHELL_EMBEDDED_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_EMBEDDED_WINDOW, ShellEmbeddedWindowClass)) SHELL, EMBEDDED_WINDOW, GtkWindow)
#define SHELL_IS_EMBEDDED_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_EMBEDDED_WINDOW))
#define SHELL_IS_EMBEDDED_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_EMBEDDED_WINDOW))
#define SHELL_EMBEDDED_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_EMBEDDED_WINDOW, ShellEmbeddedWindowClass))
typedef struct _ShellEmbeddedWindow ShellEmbeddedWindow;
typedef struct _ShellEmbeddedWindowClass ShellEmbeddedWindowClass;
typedef struct _ShellEmbeddedWindowPrivate ShellEmbeddedWindowPrivate;
struct _ShellEmbeddedWindow
{
GtkWindow parent;
ShellEmbeddedWindowPrivate *priv;
};
struct _ShellEmbeddedWindowClass struct _ShellEmbeddedWindowClass
{ {
GtkWindowClass parent_class; GtkWindowClass parent_class;
}; };
GType shell_embedded_window_get_type (void) G_GNUC_CONST;
GtkWidget *shell_embedded_window_new (void); GtkWidget *shell_embedded_window_new (void);
#endif /* __SHELL_EMBEDDED_WINDOW_H__ */ #endif /* __SHELL_EMBEDDED_WINDOW_H__ */

View File

@ -23,16 +23,26 @@
static void shell_generic_container_iface_init (ClutterContainerIface *iface); static void shell_generic_container_iface_init (ClutterContainerIface *iface);
G_DEFINE_TYPE_WITH_CODE(ShellGenericContainer, typedef struct _ShellGenericContainerPrivate ShellGenericContainerPrivate;
shell_generic_container,
ST_TYPE_WIDGET, struct _ShellGenericContainer
G_IMPLEMENT_INTERFACE (CLUTTER_TYPE_CONTAINER, {
shell_generic_container_iface_init)); StWidget parent;
ShellGenericContainerPrivate *priv;
};
struct _ShellGenericContainerPrivate { struct _ShellGenericContainerPrivate {
GHashTable *skip_paint; GHashTable *skip_paint;
}; };
G_DEFINE_TYPE_WITH_CODE(ShellGenericContainer,
shell_generic_container,
ST_TYPE_WIDGET,
G_ADD_PRIVATE (ShellGenericContainer)
G_IMPLEMENT_INTERFACE (CLUTTER_TYPE_CONTAINER,
shell_generic_container_iface_init));
/* Signals */ /* Signals */
enum enum
{ {
@ -385,8 +395,6 @@ shell_generic_container_class_init (ShellGenericContainerClass *klass)
0, 0,
NULL, NULL, NULL, NULL, NULL, NULL,
G_TYPE_NONE, 2, CLUTTER_TYPE_ACTOR_BOX, CLUTTER_TYPE_ALLOCATION_FLAGS); G_TYPE_NONE, 2, CLUTTER_TYPE_ACTOR_BOX, CLUTTER_TYPE_ALLOCATION_FLAGS);
g_type_class_add_private (gobject_class, sizeof (ShellGenericContainerPrivate));
} }
static void static void
@ -407,8 +415,7 @@ shell_generic_container_iface_init (ClutterContainerIface *iface)
static void static void
shell_generic_container_init (ShellGenericContainer *area) shell_generic_container_init (ShellGenericContainer *area)
{ {
area->priv = G_TYPE_INSTANCE_GET_PRIVATE (area, SHELL_TYPE_GENERIC_CONTAINER, area->priv = shell_generic_container_get_instance_private (area);
ShellGenericContainerPrivate);
area->priv->skip_paint = g_hash_table_new (NULL, NULL); area->priv->skip_paint = g_hash_table_new (NULL, NULL);
} }

View File

@ -5,11 +5,8 @@
#include "st.h" #include "st.h"
#define SHELL_TYPE_GENERIC_CONTAINER (shell_generic_container_get_type ()) #define SHELL_TYPE_GENERIC_CONTAINER (shell_generic_container_get_type ())
#define SHELL_GENERIC_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_GENERIC_CONTAINER, ShellGenericContainer)) G_DECLARE_FINAL_TYPE (ShellGenericContainer, shell_generic_container,
#define SHELL_GENERIC_CONTAINER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_GENERIC_CONTAINER, ShellGenericContainerClass)) SHELL, GENERIC_CONTAINER, StWidget)
#define SHELL_IS_GENERIC_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_GENERIC_CONTAINER))
#define SHELL_IS_GENERIC_CONTAINER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_GENERIC_CONTAINER))
#define SHELL_GENERIC_CONTAINER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_GENERIC_CONTAINER, ShellGenericContainerClass))
typedef struct { typedef struct {
float min_size; float min_size;
@ -22,25 +19,6 @@ typedef struct {
#define SHELL_TYPE_GENERIC_CONTAINER_ALLOCATION (shell_generic_container_allocation_get_type ()) #define SHELL_TYPE_GENERIC_CONTAINER_ALLOCATION (shell_generic_container_allocation_get_type ())
GType shell_generic_container_allocation_get_type (void); GType shell_generic_container_allocation_get_type (void);
typedef struct _ShellGenericContainer ShellGenericContainer;
typedef struct _ShellGenericContainerClass ShellGenericContainerClass;
typedef struct _ShellGenericContainerPrivate ShellGenericContainerPrivate;
struct _ShellGenericContainer
{
StWidget parent;
ShellGenericContainerPrivate *priv;
};
struct _ShellGenericContainerClass
{
StWidgetClass parent_class;
};
GType shell_generic_container_get_type (void) G_GNUC_CONST;
guint shell_generic_container_get_n_skip_paint (ShellGenericContainer *self); guint shell_generic_container_get_n_skip_paint (ShellGenericContainer *self);
gboolean shell_generic_container_get_skip_paint (ShellGenericContainer *self, gboolean shell_generic_container_get_skip_paint (ShellGenericContainer *self,

View File

@ -867,7 +867,12 @@ update_scale_factor (GtkSettings *settings,
{ {
g_object_set (context, "scale-factor", g_value_get_int (&value), NULL); g_object_set (context, "scale-factor", g_value_get_int (&value), NULL);
if (meta_is_wayland_compositor ()) if (meta_is_wayland_compositor ())
g_object_set (clutter_settings_get_default (), "font-dpi", 96 * 1024 * g_value_get_int (&value), NULL); {
int xft_dpi;
g_object_get (settings, "gtk-xft-dpi", &xft_dpi, NULL);
g_object_set (clutter_settings_get_default (), "font-dpi", xft_dpi, NULL);
}
} }
/* Make sure clutter and gdk scaling stays disabled */ /* Make sure clutter and gdk scaling stays disabled */

View File

@ -10,22 +10,8 @@
G_BEGIN_DECLS G_BEGIN_DECLS
typedef struct _ShellGlobal ShellGlobal;
typedef struct _ShellGlobalClass ShellGlobalClass;
#define SHELL_TYPE_GLOBAL (shell_global_get_type ()) #define SHELL_TYPE_GLOBAL (shell_global_get_type ())
#define SHELL_GLOBAL(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), SHELL_TYPE_GLOBAL, ShellGlobal)) G_DECLARE_FINAL_TYPE (ShellGlobal, shell_global, SHELL, GLOBAL, GObject)
#define SHELL_GLOBAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_GLOBAL, ShellGlobalClass))
#define SHELL_IS_GLOBAL(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), SHELL_TYPE_GLOBAL))
#define SHELL_IS_GLOBAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_GLOBAL))
#define SHELL_GLOBAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_GLOBAL, ShellGlobalClass))
struct _ShellGlobalClass
{
GObjectClass parent_class;
};
GType shell_global_get_type (void) G_GNUC_CONST;
ShellGlobal *shell_global_get (void); ShellGlobal *shell_global_get (void);

View File

@ -16,13 +16,14 @@
#include <cogl/cogl.h> #include <cogl/cogl.h>
#include "shell-glsl-quad.h" #include "shell-glsl-quad.h"
G_DEFINE_TYPE (ShellGLSLQuad, shell_glsl_quad, CLUTTER_TYPE_ACTOR); typedef struct _ShellGLSLQuadPrivate ShellGLSLQuadPrivate;
struct _ShellGLSLQuadPrivate struct _ShellGLSLQuadPrivate
{ {
CoglPipeline *pipeline; CoglPipeline *pipeline;
}; };
G_DEFINE_TYPE_WITH_PRIVATE (ShellGLSLQuad, shell_glsl_quad, CLUTTER_TYPE_ACTOR);
static gboolean static gboolean
shell_glsl_quad_get_paint_volume (ClutterActor *actor, shell_glsl_quad_get_paint_volume (ClutterActor *actor,
ClutterPaintVolume *volume) ClutterPaintVolume *volume)
@ -38,7 +39,7 @@ shell_glsl_quad_paint (ClutterActor *actor)
guint8 paint_opacity; guint8 paint_opacity;
ClutterActorBox box; ClutterActorBox box;
priv = self->priv; priv = shell_glsl_quad_get_instance_private (self);
paint_opacity = clutter_actor_get_paint_opacity (actor); paint_opacity = clutter_actor_get_paint_opacity (actor);
clutter_actor_get_allocation_box (actor, &box); clutter_actor_get_allocation_box (actor, &box);
@ -106,7 +107,7 @@ shell_glsl_quad_dispose (GObject *gobject)
ShellGLSLQuad *self = SHELL_GLSL_QUAD (gobject); ShellGLSLQuad *self = SHELL_GLSL_QUAD (gobject);
ShellGLSLQuadPrivate *priv; ShellGLSLQuadPrivate *priv;
priv = self->priv; priv = shell_glsl_quad_get_instance_private (self);
g_clear_pointer (&priv->pipeline, cogl_object_unref); g_clear_pointer (&priv->pipeline, cogl_object_unref);
@ -116,7 +117,6 @@ shell_glsl_quad_dispose (GObject *gobject)
static void static void
shell_glsl_quad_init (ShellGLSLQuad *quad) shell_glsl_quad_init (ShellGLSLQuad *quad)
{ {
quad->priv = G_TYPE_INSTANCE_GET_PRIVATE (quad, SHELL_TYPE_GLSL_QUAD, ShellGLSLQuadPrivate);
} }
static void static void
@ -124,6 +124,7 @@ shell_glsl_quad_constructed (GObject *object)
{ {
ShellGLSLQuad *self; ShellGLSLQuad *self;
ShellGLSLQuadClass *klass; ShellGLSLQuadClass *klass;
ShellGLSLQuadPrivate *priv;
CoglContext *ctx = CoglContext *ctx =
clutter_backend_get_cogl_context (clutter_get_default_backend ()); clutter_backend_get_cogl_context (clutter_get_default_backend ());
@ -135,18 +136,20 @@ shell_glsl_quad_constructed (GObject *object)
*/ */
klass = SHELL_GLSL_QUAD_GET_CLASS (object); klass = SHELL_GLSL_QUAD_GET_CLASS (object);
self = SHELL_GLSL_QUAD (object); self = SHELL_GLSL_QUAD (object);
priv = shell_glsl_quad_get_instance_private (self);
if (G_UNLIKELY (klass->base_pipeline == NULL)) if (G_UNLIKELY (klass->base_pipeline == NULL))
{ {
klass->base_pipeline = cogl_pipeline_new (ctx); klass->base_pipeline = cogl_pipeline_new (ctx);
cogl_pipeline_set_blend (klass->base_pipeline, "RGBA = ADD (SRC_COLOR * (SRC_COLOR[A]), DST_COLOR * (1-SRC_COLOR[A]))", NULL);
if (klass->build_pipeline != NULL) if (klass->build_pipeline != NULL)
klass->build_pipeline (self); klass->build_pipeline (self);
} }
self->priv->pipeline = cogl_pipeline_copy (klass->base_pipeline); priv->pipeline = cogl_pipeline_copy (klass->base_pipeline);
cogl_pipeline_set_layer_null_texture (self->priv->pipeline, 0, COGL_TEXTURE_TYPE_2D); cogl_pipeline_set_layer_null_texture (priv->pipeline, 0, COGL_TEXTURE_TYPE_2D);
} }
static void static void
@ -160,8 +163,6 @@ shell_glsl_quad_class_init (ShellGLSLQuadClass *klass)
actor_class->get_paint_volume = shell_glsl_quad_get_paint_volume; actor_class->get_paint_volume = shell_glsl_quad_get_paint_volume;
actor_class->paint = shell_glsl_quad_paint; actor_class->paint = shell_glsl_quad_paint;
g_type_class_add_private (klass, sizeof (ShellGLSLQuadPrivate));
} }
/** /**
@ -176,7 +177,8 @@ int
shell_glsl_quad_get_uniform_location (ShellGLSLQuad *quad, shell_glsl_quad_get_uniform_location (ShellGLSLQuad *quad,
const char *name) const char *name)
{ {
return cogl_pipeline_get_uniform_location (quad->priv->pipeline, name); ShellGLSLQuadPrivate *priv = shell_glsl_quad_get_instance_private (quad);
return cogl_pipeline_get_uniform_location (priv->pipeline, name);
} }
/** /**
@ -194,7 +196,8 @@ shell_glsl_quad_set_uniform_float (ShellGLSLQuad *quad,
int total_count, int total_count,
const float *value) const float *value)
{ {
cogl_pipeline_set_uniform_float (quad->priv->pipeline, uniform, ShellGLSLQuadPrivate *priv = shell_glsl_quad_get_instance_private (quad);
cogl_pipeline_set_uniform_float (priv->pipeline, uniform,
n_components, total_count / n_components, n_components, total_count / n_components,
value); value);
} }

View File

@ -27,22 +27,8 @@ typedef enum {
} ShellSnippetHook; } ShellSnippetHook;
#define SHELL_TYPE_GLSL_QUAD (shell_glsl_quad_get_type ()) #define SHELL_TYPE_GLSL_QUAD (shell_glsl_quad_get_type ())
#define SHELL_GLSL_QUAD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_GLSL_QUAD, ShellGLSLQuad)) G_DECLARE_DERIVABLE_TYPE (ShellGLSLQuad, shell_glsl_quad,
#define SHELL_GLSL_QUAD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_GLSL_QUAD, ShellGLSLQuadClass)) SHELL, GLSL_QUAD, ClutterActor)
#define SHELL_IS_GLSL_QUAD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_GLSL_QUAD))
#define SHELL_IS_GLSL_QUAD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_GLSL_QUAD))
#define SHELL_GLSL_QUAD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_GLSL_QUAD, ShellGLSLQuadClass))
typedef struct _ShellGLSLQuad ShellGLSLQuad;
typedef struct _ShellGLSLQuadClass ShellGLSLQuadClass;
typedef struct _ShellGLSLQuadPrivate ShellGLSLQuadPrivate;
struct _ShellGLSLQuad
{
ClutterActor parent;
ShellGLSLQuadPrivate *priv;
};
struct _ShellGLSLQuadClass struct _ShellGLSLQuadClass
{ {
@ -53,8 +39,6 @@ struct _ShellGLSLQuadClass
void (*build_pipeline) (ShellGLSLQuad *effect); void (*build_pipeline) (ShellGLSLQuad *effect);
}; };
GType shell_glsl_quad_get_type (void) G_GNUC_CONST;
void shell_glsl_quad_add_glsl_snippet (ShellGLSLQuad *quad, void shell_glsl_quad_add_glsl_snippet (ShellGLSLQuad *quad,
ShellSnippetHook hook, ShellSnippetHook hook,
const char *declarations, const char *declarations,

View File

@ -15,6 +15,8 @@ enum {
PROP_WINDOW PROP_WINDOW
}; };
typedef struct _ShellGtkEmbedPrivate ShellGtkEmbedPrivate;
struct _ShellGtkEmbedPrivate struct _ShellGtkEmbedPrivate
{ {
ShellEmbeddedWindow *window; ShellEmbeddedWindow *window;
@ -25,7 +27,7 @@ struct _ShellGtkEmbedPrivate
guint window_created_handler; guint window_created_handler;
}; };
G_DEFINE_TYPE (ShellGtkEmbed, shell_gtk_embed, CLUTTER_TYPE_CLONE); G_DEFINE_TYPE_WITH_PRIVATE (ShellGtkEmbed, shell_gtk_embed, CLUTTER_TYPE_CLONE);
static void shell_gtk_embed_set_window (ShellGtkEmbed *embed, static void shell_gtk_embed_set_window (ShellGtkEmbed *embed,
ShellEmbeddedWindow *window); ShellEmbeddedWindow *window);
@ -40,7 +42,7 @@ shell_gtk_embed_on_window_destroy (GtkWidget *object,
static void static void
shell_gtk_embed_remove_window_actor (ShellGtkEmbed *embed) shell_gtk_embed_remove_window_actor (ShellGtkEmbed *embed)
{ {
ShellGtkEmbedPrivate *priv = embed->priv; ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
if (priv->window_actor) if (priv->window_actor)
{ {
@ -60,7 +62,7 @@ shell_gtk_embed_window_created_cb (MetaDisplay *display,
MetaWindow *window, MetaWindow *window,
ShellGtkEmbed *embed) ShellGtkEmbed *embed)
{ {
ShellGtkEmbedPrivate *priv = embed->priv; ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
Window xwindow = meta_window_get_xwindow (window); Window xwindow = meta_window_get_xwindow (window);
GdkWindow *gdk_window = gtk_widget_get_window (GTK_WIDGET (priv->window)); GdkWindow *gdk_window = gtk_widget_get_window (GTK_WIDGET (priv->window));
@ -119,11 +121,12 @@ static void
shell_gtk_embed_on_window_mapped (GtkWidget *object, shell_gtk_embed_on_window_mapped (GtkWidget *object,
ShellGtkEmbed *embed) ShellGtkEmbed *embed)
{ {
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
MetaDisplay *display = shell_global_get_display (shell_global_get ()); MetaDisplay *display = shell_global_get_display (shell_global_get ());
/* Listen for new windows so we can detect when Mutter has /* Listen for new windows so we can detect when Mutter has
created a MutterWindow for this window */ created a MutterWindow for this window */
embed->priv->window_created_handler = priv->window_created_handler =
g_signal_connect (display, g_signal_connect (display,
"window-created", "window-created",
G_CALLBACK (shell_gtk_embed_window_created_cb), G_CALLBACK (shell_gtk_embed_window_created_cb),
@ -134,44 +137,45 @@ static void
shell_gtk_embed_set_window (ShellGtkEmbed *embed, shell_gtk_embed_set_window (ShellGtkEmbed *embed,
ShellEmbeddedWindow *window) ShellEmbeddedWindow *window)
{ {
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
MetaDisplay *display = shell_global_get_display (shell_global_get ()); MetaDisplay *display = shell_global_get_display (shell_global_get ());
if (embed->priv->window) if (priv->window)
{ {
if (embed->priv->window_created_handler) if (priv->window_created_handler)
{ {
g_signal_handler_disconnect (display, g_signal_handler_disconnect (display,
embed->priv->window_created_handler); priv->window_created_handler);
embed->priv->window_created_handler = 0; priv->window_created_handler = 0;
} }
shell_gtk_embed_remove_window_actor (embed); shell_gtk_embed_remove_window_actor (embed);
_shell_embedded_window_set_actor (embed->priv->window, NULL); _shell_embedded_window_set_actor (priv->window, NULL);
g_object_unref (embed->priv->window); g_object_unref (priv->window);
g_signal_handlers_disconnect_by_func (embed->priv->window, g_signal_handlers_disconnect_by_func (priv->window,
(gpointer)shell_gtk_embed_on_window_destroy, (gpointer)shell_gtk_embed_on_window_destroy,
embed); embed);
g_signal_handlers_disconnect_by_func (embed->priv->window, g_signal_handlers_disconnect_by_func (priv->window,
(gpointer)shell_gtk_embed_on_window_mapped, (gpointer)shell_gtk_embed_on_window_mapped,
embed); embed);
} }
embed->priv->window = window; priv->window = window;
if (embed->priv->window) if (priv->window)
{ {
g_object_ref (embed->priv->window); g_object_ref (priv->window);
_shell_embedded_window_set_actor (embed->priv->window, embed); _shell_embedded_window_set_actor (priv->window, embed);
g_signal_connect (embed->priv->window, "destroy", g_signal_connect (priv->window, "destroy",
G_CALLBACK (shell_gtk_embed_on_window_destroy), embed); G_CALLBACK (shell_gtk_embed_on_window_destroy), embed);
g_signal_connect (embed->priv->window, "map", g_signal_connect (priv->window, "map",
G_CALLBACK (shell_gtk_embed_on_window_mapped), embed); G_CALLBACK (shell_gtk_embed_on_window_mapped), embed);
} }
@ -205,11 +209,12 @@ shell_gtk_embed_get_property (GObject *object,
GParamSpec *pspec) GParamSpec *pspec)
{ {
ShellGtkEmbed *embed = SHELL_GTK_EMBED (object); ShellGtkEmbed *embed = SHELL_GTK_EMBED (object);
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
switch (prop_id) switch (prop_id)
{ {
case PROP_WINDOW: case PROP_WINDOW:
g_value_set_object (value, embed->priv->window); g_value_set_object (value, priv->window);
break; break;
default: default:
@ -225,12 +230,13 @@ shell_gtk_embed_get_preferred_width (ClutterActor *actor,
float *natural_width_p) float *natural_width_p)
{ {
ShellGtkEmbed *embed = SHELL_GTK_EMBED (actor); ShellGtkEmbed *embed = SHELL_GTK_EMBED (actor);
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
if (embed->priv->window if (priv->window
&& gtk_widget_get_visible (GTK_WIDGET (embed->priv->window))) && gtk_widget_get_visible (GTK_WIDGET (priv->window)))
{ {
GtkRequisition min_req, natural_req; GtkRequisition min_req, natural_req;
gtk_widget_get_preferred_size (GTK_WIDGET (embed->priv->window), &min_req, &natural_req); gtk_widget_get_preferred_size (GTK_WIDGET (priv->window), &min_req, &natural_req);
*min_width_p = min_req.width; *min_width_p = min_req.width;
*natural_width_p = natural_req.width; *natural_width_p = natural_req.width;
@ -246,12 +252,13 @@ shell_gtk_embed_get_preferred_height (ClutterActor *actor,
float *natural_height_p) float *natural_height_p)
{ {
ShellGtkEmbed *embed = SHELL_GTK_EMBED (actor); ShellGtkEmbed *embed = SHELL_GTK_EMBED (actor);
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
if (embed->priv->window if (priv->window
&& gtk_widget_get_visible (GTK_WIDGET (embed->priv->window))) && gtk_widget_get_visible (GTK_WIDGET (priv->window)))
{ {
GtkRequisition min_req, natural_req; GtkRequisition min_req, natural_req;
gtk_widget_get_preferred_size (GTK_WIDGET (embed->priv->window), &min_req, &natural_req); gtk_widget_get_preferred_size (GTK_WIDGET (priv->window), &min_req, &natural_req);
*min_height_p = min_req.height; *min_height_p = min_req.height;
*natural_height_p = natural_req.height; *natural_height_p = natural_req.height;
@ -266,6 +273,7 @@ shell_gtk_embed_allocate (ClutterActor *actor,
ClutterAllocationFlags flags) ClutterAllocationFlags flags)
{ {
ShellGtkEmbed *embed = SHELL_GTK_EMBED (actor); ShellGtkEmbed *embed = SHELL_GTK_EMBED (actor);
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
float wx = 0.0, wy = 0.0, x, y, ax, ay; float wx = 0.0, wy = 0.0, x, y, ax, ay;
CLUTTER_ACTOR_CLASS (shell_gtk_embed_parent_class)-> CLUTTER_ACTOR_CLASS (shell_gtk_embed_parent_class)->
@ -285,7 +293,7 @@ shell_gtk_embed_allocate (ClutterActor *actor,
actor = clutter_actor_get_parent (actor); actor = clutter_actor_get_parent (actor);
} }
_shell_embedded_window_allocate (embed->priv->window, _shell_embedded_window_allocate (priv->window,
(int)(0.5 + wx), (int)(0.5 + wy), (int)(0.5 + wx), (int)(0.5 + wy),
box->x2 - box->x1, box->x2 - box->x1,
box->y2 - box->y1); box->y2 - box->y1);
@ -295,8 +303,9 @@ static void
shell_gtk_embed_map (ClutterActor *actor) shell_gtk_embed_map (ClutterActor *actor)
{ {
ShellGtkEmbed *embed = SHELL_GTK_EMBED (actor); ShellGtkEmbed *embed = SHELL_GTK_EMBED (actor);
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
_shell_embedded_window_map (embed->priv->window); _shell_embedded_window_map (priv->window);
CLUTTER_ACTOR_CLASS (shell_gtk_embed_parent_class)->map (actor); CLUTTER_ACTOR_CLASS (shell_gtk_embed_parent_class)->map (actor);
} }
@ -305,8 +314,9 @@ static void
shell_gtk_embed_unmap (ClutterActor *actor) shell_gtk_embed_unmap (ClutterActor *actor)
{ {
ShellGtkEmbed *embed = SHELL_GTK_EMBED (actor); ShellGtkEmbed *embed = SHELL_GTK_EMBED (actor);
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
_shell_embedded_window_unmap (embed->priv->window); _shell_embedded_window_unmap (priv->window);
CLUTTER_ACTOR_CLASS (shell_gtk_embed_parent_class)->unmap (actor); CLUTTER_ACTOR_CLASS (shell_gtk_embed_parent_class)->unmap (actor);
} }
@ -327,8 +337,6 @@ shell_gtk_embed_class_init (ShellGtkEmbedClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass); GObjectClass *object_class = G_OBJECT_CLASS (klass);
ClutterActorClass *actor_class = CLUTTER_ACTOR_CLASS (klass); ClutterActorClass *actor_class = CLUTTER_ACTOR_CLASS (klass);
g_type_class_add_private (klass, sizeof (ShellGtkEmbedPrivate));
object_class->get_property = shell_gtk_embed_get_property; object_class->get_property = shell_gtk_embed_get_property;
object_class->set_property = shell_gtk_embed_set_property; object_class->set_property = shell_gtk_embed_set_property;
object_class->dispose = shell_gtk_embed_dispose; object_class->dispose = shell_gtk_embed_dispose;
@ -351,8 +359,6 @@ shell_gtk_embed_class_init (ShellGtkEmbedClass *klass)
static void static void
shell_gtk_embed_init (ShellGtkEmbed *embed) shell_gtk_embed_init (ShellGtkEmbed *embed)
{ {
embed->priv = G_TYPE_INSTANCE_GET_PRIVATE (embed, SHELL_TYPE_GTK_EMBED,
ShellGtkEmbedPrivate);
} }
/* /*

View File

@ -7,29 +7,14 @@
#include "shell-embedded-window.h" #include "shell-embedded-window.h"
#define SHELL_TYPE_GTK_EMBED (shell_gtk_embed_get_type ()) #define SHELL_TYPE_GTK_EMBED (shell_gtk_embed_get_type ())
#define SHELL_GTK_EMBED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_GTK_EMBED, ShellGtkEmbed)) G_DECLARE_DERIVABLE_TYPE (ShellGtkEmbed, shell_gtk_embed,
#define SHELL_GTK_EMBED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_GTK_EMBED, ShellGtkEmbedClass)) SHELL, GTK_EMBED, ClutterClone)
#define SHELL_IS_GTK_EMBED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_GTK_EMBED))
#define SHELL_IS_GTK_EMBED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_GTK_EMBED))
#define SHELL_GTK_EMBED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_GTK_EMBED, ShellGtkEmbedClass))
typedef struct _ShellGtkEmbed ShellGtkEmbed;
typedef struct _ShellGtkEmbedClass ShellGtkEmbedClass;
typedef struct _ShellGtkEmbedPrivate ShellGtkEmbedPrivate;
struct _ShellGtkEmbed
{
ClutterClone parent;
ShellGtkEmbedPrivate *priv;
};
struct _ShellGtkEmbedClass struct _ShellGtkEmbedClass
{ {
ClutterCloneClass parent_class; ClutterCloneClass parent_class;
}; };
GType shell_gtk_embed_get_type (void) G_GNUC_CONST;
ClutterActor *shell_gtk_embed_new (ShellEmbeddedWindow *window); ClutterActor *shell_gtk_embed_new (ShellEmbeddedWindow *window);
#endif /* __SHELL_GTK_EMBED_H__ */ #endif /* __SHELL_GTK_EMBED_H__ */

View File

@ -32,7 +32,6 @@
#include <string.h> #include <string.h>
typedef struct _ShellPasswordPromptClass ShellPasswordPromptClass;
typedef struct _ShellPasswordPromptPrivate ShellPasswordPromptPrivate; typedef struct _ShellPasswordPromptPrivate ShellPasswordPromptPrivate;
typedef enum typedef enum
@ -57,19 +56,13 @@ struct _ShellKeyringPrompt
gchar *continue_label; gchar *continue_label;
gchar *cancel_label; gchar *cancel_label;
GcrPromptReply last_reply; GTask *task;
GSimpleAsyncResult *async_result;
ClutterText *password_actor; ClutterText *password_actor;
ClutterText *confirm_actor; ClutterText *confirm_actor;
PromptingMode mode; PromptingMode mode;
gboolean shown; gboolean shown;
}; };
typedef struct _ShellKeyringPromptClass
{
GObjectClass parent_class;
} ShellKeyringPromptClass;
enum { enum {
PROP_0, PROP_0,
PROP_TITLE, PROP_TITLE,
@ -288,9 +281,9 @@ shell_keyring_prompt_dispose (GObject *obj)
if (self->shown) if (self->shown)
gcr_prompt_close (GCR_PROMPT (self)); gcr_prompt_close (GCR_PROMPT (self));
if (self->async_result) if (self->task)
shell_keyring_prompt_cancel (self); shell_keyring_prompt_cancel (self);
g_assert (self->async_result == NULL); g_assert (self->task == NULL);
shell_keyring_prompt_set_password_actor (self, NULL); shell_keyring_prompt_set_password_actor (self, NULL);
shell_keyring_prompt_set_confirm_actor (self, NULL); shell_keyring_prompt_set_confirm_actor (self, NULL);
@ -420,14 +413,14 @@ shell_keyring_prompt_password_async (GcrPrompt *prompt,
ShellKeyringPrompt *self = SHELL_KEYRING_PROMPT (prompt); ShellKeyringPrompt *self = SHELL_KEYRING_PROMPT (prompt);
GObject *obj; GObject *obj;
if (self->async_result != NULL) { if (self->task != NULL) {
g_warning ("this prompt can only show one prompt at a time"); g_warning ("this prompt can only show one prompt at a time");
return; return;
} }
self->mode = PROMPTING_FOR_PASSWORD; self->mode = PROMPTING_FOR_PASSWORD;
self->async_result = g_simple_async_result_new (G_OBJECT (self), callback, user_data, self->task = g_task_new (self, NULL, callback, user_data);
shell_keyring_prompt_password_async); g_task_set_source_tag (self->task, shell_keyring_prompt_password_async);
obj = G_OBJECT (self); obj = G_OBJECT (self);
g_object_notify (obj, "password-visible"); g_object_notify (obj, "password-visible");
@ -444,18 +437,11 @@ shell_keyring_prompt_password_finish (GcrPrompt *prompt,
GAsyncResult *result, GAsyncResult *result,
GError **error) GError **error)
{ {
ShellKeyringPrompt *self = SHELL_KEYRING_PROMPT (prompt); g_return_val_if_fail (g_task_get_source_object (G_TASK (result)) == prompt, NULL);
g_return_val_if_fail (g_async_result_is_tagged (result,
g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (prompt),
shell_keyring_prompt_password_async), NULL); shell_keyring_prompt_password_async), NULL);
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error)) return g_task_propagate_pointer (G_TASK (result), error);
return NULL;
if (self->last_reply == GCR_PROMPT_REPLY_CONTINUE)
return clutter_text_get_text (self->password_actor);
return NULL;
} }
static void static void
@ -467,14 +453,14 @@ shell_keyring_prompt_confirm_async (GcrPrompt *prompt,
ShellKeyringPrompt *self = SHELL_KEYRING_PROMPT (prompt); ShellKeyringPrompt *self = SHELL_KEYRING_PROMPT (prompt);
GObject *obj; GObject *obj;
if (self->async_result != NULL) { if (self->task != NULL) {
g_warning ("this prompt is already prompting"); g_warning ("this prompt is already prompting");
return; return;
} }
self->mode = PROMPTING_FOR_CONFIRM; self->mode = PROMPTING_FOR_CONFIRM;
self->async_result = g_simple_async_result_new (G_OBJECT (self), callback, user_data, self->task = g_task_new (self, NULL, callback, user_data);
shell_keyring_prompt_confirm_async); g_task_set_source_tag (self->task, shell_keyring_prompt_confirm_async);
obj = G_OBJECT (self); obj = G_OBJECT (self);
g_object_notify (obj, "password-visible"); g_object_notify (obj, "password-visible");
@ -491,15 +477,16 @@ shell_keyring_prompt_confirm_finish (GcrPrompt *prompt,
GAsyncResult *result, GAsyncResult *result,
GError **error) GError **error)
{ {
ShellKeyringPrompt *self = SHELL_KEYRING_PROMPT (prompt); GTask *task = G_TASK (result);
gssize res;
g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (prompt), g_return_val_if_fail (g_task_get_source_object (task) == prompt,
GCR_PROMPT_REPLY_CANCEL);
g_return_val_if_fail (g_async_result_is_tagged (result,
shell_keyring_prompt_confirm_async), GCR_PROMPT_REPLY_CANCEL); shell_keyring_prompt_confirm_async), GCR_PROMPT_REPLY_CANCEL);
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error)) res = g_task_propagate_int (task, error);
return GCR_PROMPT_REPLY_CANCEL; return res == -1 ? GCR_PROMPT_REPLY_CANCEL : (GcrPromptReply)res;
return self->last_reply;
} }
static void static void
@ -718,19 +705,20 @@ shell_keyring_prompt_set_confirm_actor (ShellKeyringPrompt *self,
gboolean gboolean
shell_keyring_prompt_complete (ShellKeyringPrompt *self) shell_keyring_prompt_complete (ShellKeyringPrompt *self)
{ {
GSimpleAsyncResult *res; GTask *res;
PromptingMode mode;
const gchar *password; const gchar *password;
const gchar *confirm; const gchar *confirm;
const gchar *env; const gchar *env;
g_return_val_if_fail (SHELL_IS_KEYRING_PROMPT (self), FALSE); g_return_val_if_fail (SHELL_IS_KEYRING_PROMPT (self), FALSE);
g_return_val_if_fail (self->mode != PROMPTING_NONE, FALSE); g_return_val_if_fail (self->mode != PROMPTING_NONE, FALSE);
g_return_val_if_fail (self->async_result != NULL, FALSE); g_return_val_if_fail (self->task != NULL, FALSE);
password = clutter_text_get_text (self->password_actor);
if (self->mode == PROMPTING_FOR_PASSWORD) if (self->mode == PROMPTING_FOR_PASSWORD)
{ {
password = clutter_text_get_text (self->password_actor);
/* Is it a new password? */ /* Is it a new password? */
if (self->password_new) if (self->password_new)
{ {
@ -756,13 +744,15 @@ shell_keyring_prompt_complete (ShellKeyringPrompt *self)
g_object_notify (G_OBJECT (self), "password-strength"); g_object_notify (G_OBJECT (self), "password-strength");
} }
self->last_reply = GCR_PROMPT_REPLY_CONTINUE; res = self->task;
mode = self->mode;
res = self->async_result; self->task = NULL;
self->async_result = NULL;
self->mode = PROMPTING_NONE; self->mode = PROMPTING_NONE;
g_simple_async_result_complete (res); if (mode == PROMPTING_FOR_CONFIRM)
g_task_return_int (res, (gssize)GCR_PROMPT_REPLY_CONTINUE);
else
g_task_return_pointer (res, (gpointer)password, NULL);
g_object_unref (res); g_object_unref (res);
return TRUE; return TRUE;
@ -777,7 +767,8 @@ shell_keyring_prompt_complete (ShellKeyringPrompt *self)
void void
shell_keyring_prompt_cancel (ShellKeyringPrompt *self) shell_keyring_prompt_cancel (ShellKeyringPrompt *self)
{ {
GSimpleAsyncResult *res; GTask *res;
PromptingMode mode;
g_return_if_fail (SHELL_IS_KEYRING_PROMPT (self)); g_return_if_fail (SHELL_IS_KEYRING_PROMPT (self));
@ -792,13 +783,16 @@ shell_keyring_prompt_cancel (ShellKeyringPrompt *self)
return; return;
} }
g_return_if_fail (self->async_result != NULL); g_return_if_fail (self->task != NULL);
self->last_reply = GCR_PROMPT_REPLY_CANCEL;
res = self->async_result; res = self->task;
self->async_result = NULL; mode = self->mode;
self->task = NULL;
self->mode = PROMPTING_NONE; self->mode = PROMPTING_NONE;
g_simple_async_result_complete_in_idle (res); if (mode == PROMPTING_FOR_CONFIRM)
g_task_return_int (res, (gssize) GCR_PROMPT_REPLY_CANCEL);
else
g_task_return_pointer (res, NULL, NULL);
g_object_unref (res); g_object_unref (res);
} }

View File

@ -33,10 +33,8 @@ G_BEGIN_DECLS
typedef struct _ShellKeyringPrompt ShellKeyringPrompt; typedef struct _ShellKeyringPrompt ShellKeyringPrompt;
#define SHELL_TYPE_KEYRING_PROMPT (shell_keyring_prompt_get_type ()) #define SHELL_TYPE_KEYRING_PROMPT (shell_keyring_prompt_get_type ())
#define SHELL_KEYRING_PROMPT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_KEYRING_PROMPT, ShellKeyringPrompt)) G_DECLARE_FINAL_TYPE (ShellKeyringPrompt, shell_keyring_prompt,
#define SHELL_IS_KEYRING_PROMPT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_KEYRING_PROMPT)) SHELL, KEYRING_PROMPT, GObject)
GType shell_keyring_prompt_get_type (void) G_GNUC_CONST;
ShellKeyringPrompt * shell_keyring_prompt_new (void); ShellKeyringPrompt * shell_keyring_prompt_new (void);

View File

@ -33,7 +33,6 @@
* the GPid array to JS). * the GPid array to JS).
* See https://bugzilla.gnome.org/show_bug.cgi?id=645978 * See https://bugzilla.gnome.org/show_bug.cgi?id=645978
*/ */
G_DEFINE_TYPE (ShellMountOperation, shell_mount_operation, G_TYPE_MOUNT_OPERATION);
enum { enum {
SHOW_PROCESSES_2, SHOW_PROCESSES_2,
@ -42,17 +41,27 @@ enum {
static guint signals[NUM_SIGNALS] = { 0, }; static guint signals[NUM_SIGNALS] = { 0, };
typedef struct _ShellMountOperationPrivate ShellMountOperationPrivate;
struct _ShellMountOperation
{
GMountOperation parent_instance;
ShellMountOperationPrivate *priv;
};
struct _ShellMountOperationPrivate { struct _ShellMountOperationPrivate {
GArray *pids; GArray *pids;
gchar **choices; gchar **choices;
gchar *message; gchar *message;
}; };
G_DEFINE_TYPE_WITH_PRIVATE (ShellMountOperation, shell_mount_operation, G_TYPE_MOUNT_OPERATION);
static void static void
shell_mount_operation_init (ShellMountOperation *self) shell_mount_operation_init (ShellMountOperation *self)
{ {
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, SHELL_TYPE_MOUNT_OPERATION, self->priv = shell_mount_operation_get_instance_private (self);
ShellMountOperationPrivate);
} }
static void static void
@ -135,8 +144,6 @@ shell_mount_operation_class_init (ShellMountOperationClass *klass)
G_SIGNAL_RUN_LAST, G_SIGNAL_RUN_LAST,
0, NULL, NULL, NULL, 0, NULL, NULL, NULL,
G_TYPE_NONE, 0); G_TYPE_NONE, 0);
g_type_class_add_private (klass, sizeof (ShellMountOperationPrivate));
} }
GMountOperation * GMountOperation *

View File

@ -27,30 +27,9 @@
G_BEGIN_DECLS G_BEGIN_DECLS
#define SHELL_TYPE_MOUNT_OPERATION (shell_mount_operation_get_type ()) #define SHELL_TYPE_MOUNT_OPERATION (shell_mount_operation_get_type ())
#define SHELL_MOUNT_OPERATION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SHELL_TYPE_MOUNT_OPERATION, ShellMountOperation)) G_DECLARE_FINAL_TYPE (ShellMountOperation, shell_mount_operation,
#define SHELL_MOUNT_OPERATION_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), SHELL_TYPE_MOUNT_OPERATION, ShellMountOperationClass)) SHELL, MOUNT_OPERATION, GMountOperation)
#define SHELL_IS_MOUNT_OPERATION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SHELL_TYPE_MOUNT_OPERATION))
#define SHELL_IS_MOUNT_OPERATION_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), SHELL_TYPE_MOUNT_OPERATION))
#define SHELL_MOUNT_OPERATION_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), SHELL_TYPE_MOUNT_OPERATION, ShellMountOperationClass))
typedef struct _ShellMountOperation ShellMountOperation;
typedef struct _ShellMountOperationClass ShellMountOperationClass;
typedef struct _ShellMountOperationPrivate ShellMountOperationPrivate;
struct _ShellMountOperation
{
GMountOperation parent_instance;
ShellMountOperationPrivate *priv;
};
struct _ShellMountOperationClass
{
GMountOperationClass parent_class;
};
GType shell_mount_operation_get_type (void);
GMountOperation *shell_mount_operation_new (void); GMountOperation *shell_mount_operation_new (void);
GArray * shell_mount_operation_get_show_processes_pids (ShellMountOperation *self); GArray * shell_mount_operation_get_show_processes_pids (ShellMountOperation *self);

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