Compare commits

...

53 Commits

Author SHA1 Message Date
d4802861ed status/keyboard: Adapt to changes in the settings schema 2012-05-15 02:24:23 +02:00
a8fa0b8146 candidatePanel: Use the Lang.Class framework 2012-05-03 13:20:01 +02:00
cf0bb62f40 candidatePanel: Remove the PopupSeparatorMenuItem copy
No reason to not use the real deal.
2012-05-03 13:20:01 +02:00
de8106967d candidatePanel: Remove hardcoded styling
The styling should be done in the CSS file.
2012-05-03 13:19:58 +02:00
1a24f061cf candidatePanel: A candidate popup for IBus input methods
This is an implementation of the org.freedesktop.IBus.Panel API which
shows a shell style popup (BoxPointer) when using an IBus input
method.

The original code is from the ibus-gjs project[1] with minor
modifications.

[1] https://github.com/fujiwarat/ibus-gjs
2012-05-03 13:19:53 +02:00
e038845458 status/keyboard: Add the input source switcher keybindings 2012-05-03 13:19:53 +02:00
b03273c765 status/keyboard: Initial port to the new input sources settings 2012-05-03 13:19:53 +02:00
915524e1ab main: Close the recorder instead of pausing it
Pausing means that we will continue to use the same output file when
the keybinding is activated again. While useful to record a single
video in chunks, it doesn't seem to be how most users understand the
keybinding. Closing the recorder will close the file and create a new
one the next time the keybinding is pressed.

https://bugzilla.gnome.org/show_bug.cgi?id=675128
2012-05-03 09:27:53 +02:00
d579cd1605 test-recorder: Create the recorder only after the stage is realized
The recorder needs the stage's XID so it can only be created after the
stage is realized.

https://bugzilla.gnome.org/show_bug.cgi?id=675301
2012-05-03 09:27:53 +02:00
cb5941ec55 test-recorder: Explicitly make the clutter API coordinates doubles
That's what clutter expects and it would crash otherwise.

https://bugzilla.gnome.org/show_bug.cgi?id=675301
2012-05-03 09:27:53 +02:00
a5ac183d86 network: Fix an accidental copy-paste error
Logic swap accidentally introduced in commit 723a1c843.

https://bugzilla.gnome.org/show_bug.cgi?id=672272
2012-05-02 16:31:29 -04:00
a36de92bb9 gactionmuxer: Fix list_actions
The code there before was just completely wrong

https://bugzilla.gnome.org/show_bug.cgi?id=673177
2012-05-02 16:26:07 -04:00
01f9d551f1 messageTray: Fix scroll bugginess in summary items
Two nested scroll views were fighing with each other. The reason isn't
particularly important and has to do with some silliness involving
StAdjustment. The visible effect was that scrolling up and down when
in a summary item view would appear to be glitchy, and sometimes not
work at all.

To fix, make sure that the scroll view we don't care about is disabled
when in a summary mode.

https://bugzilla.gnome.org/show_bug.cgi?id=661615
2012-05-02 16:04:46 -04:00
399df66b18 messageTray: notification should be a style class name, not a global name
There have been multiple notifications ever since we had a notification stack
per source, so the idea of one notification being on screen at a time has long
been dead.

https://bugzilla.gnome.org/show_bug.cgi?id=661615
2012-05-02 16:04:05 -04:00
723a1c843a Refactor show()/hide() sequences
We seem to have a lot of code that does something along the lines of:

    if (condition)
        actor.show();
    else
        actor.hide();

ClutterActor already has such a thing for exactly this purpose: the 'visible'
property. Use it instead of the mess above.

https://bugzilla.gnome.org/show_bug.cgi?id=672272
2012-05-02 12:43:58 -04:00
e333263fd6 gdm: don't fail if fprintd unavailable
fingerprint support is optional so we shouldn't try to start
fprintd upfront and croak if it fails.

https://bugzilla.gnome.org/show_bug.cgi?id=675006
2012-05-02 11:44:29 -04:00
507df9eea1 gnome-shell-plugin: Remove useless dispose/finalize handlers
https://bugzilla.gnome.org/show_bug.cgi?id=672807
2012-05-02 10:20:22 -04:00
a9a3687ea0 st-bin: Remove unnecessary foreach implementation
https://bugzilla.gnome.org/show_bug.cgi?id=672807
2012-05-02 10:20:22 -04:00
f05c649c61 Updated Greek translation 2012-05-02 13:53:42 +03:00
a2dfba1842 l10n: Updated Italian translation 2012-04-30 15:34:24 +02:00
c199da4dfa Updated Norwegian bokmål translation 2012-04-30 11:13:44 +02:00
ee9033e12f gitignore: Update to ignore calendar schemas 2012-04-29 19:20:04 -04:00
54788d750e searchDisplay: Reset the keyboard focus after displaying async results
We hide the content around displaying new search results to prevent
flickering, unfortunately, one side effect of hiding an actor is
losing key focus if it currently is on the that actor or any
child. This could happen in the case of async results showing up after
the user had moved focus to the search results.

This patch works around that issue by saving the key focus and
resetting it back after displaying the new async results.

https://bugzilla.gnome.org/show_bug.cgi?id=675078
2012-04-30 01:10:08 +02:00
78e894c6f2 lookingGlass: Remove the "Errors" tab
We already have one too many logging systems. Remove the errors tab
and make global.log/global.logError point to window.log/window.logError
instead.

https://bugzilla.gnome.org/show_bug.cgi?id=675104
2012-04-29 17:12:07 -04:00
32107ba8b5 environment: Allow window.log to take multiple arguments
https://bugzilla.gnome.org/show_bug.cgi?id=675104
2012-04-29 17:12:05 -04:00
6122f65e7a NetworkMenu: use network-offline while loading
network-error is partially red and thus can be distracting at
login. Use network-offline instead.

https://bugzilla.gnome.org/show_bug.cgi?id=674426
2012-04-29 18:40:03 +02:00
43fd29f9bf Revert "popupMenu: Fix RemoteMenu items with boolean state action"
This reverts commit 7293ddb22c.
2012-04-29 10:38:52 +02:00
54c624b356 Updated Brazilian Portuguese translation 2012-04-28 10:46:58 -03:00
8c33adfd29 dash: Destroy tooltip label when item is removed 2012-04-27 15:50:48 -04:00
2e8881b77c notificationDaemon: Match app based on WM_CLASS
Most tray applets won't have an associated window in the same PID. We
need to fall back to the WM_CLASS in this case.

https://bugzilla.gnome.org/show_bug.cgi?id=673761
2012-04-27 15:49:18 -04:00
64aa729edd jhbuild wrapper: Clean up environment variable logic
Lots of things here were unused. First, we don't need to calculate
the js_dir when not running from the source tree, which makes the
branch mostly empty, meaning we can merge the two branches.
2012-04-27 15:48:53 -04:00
ccf95b738d jhbuild wrapper: Re-set typelib path to the src dir
This allows us running uninstalled. While we're at it, though, remove
JHBUILD_TYPELIBDIR. jhbuild shell should add its own stuff to GI_TYPELIB_PATH,
and we don't want to half reimplement jhbuild. The wrapper script should be
solely for the case of running from the source directory, and not care about
jhbuild at all.
2012-04-27 15:48:53 -04:00
b2847fedd3 jhbuild wrapper: Don't crash if we can't start the shell
If start_shell throws an exception for whatever reason, the finally
handler will run before shell has been set, leading to a "referencing
an undefined local variable" error.
2012-04-27 15:48:53 -04:00
8befcb9bba shell-network-agent: don't crash if a request isn't found
If a request isn't found in shell_network_agent_set_password() or
shell_network_agent_respond(), then g_return_if_fail() rather than
crashing. OTOH, if a request is not found in
shell_network_agent_cancel_get_secrets(), then just ignore it
silently, since that could legitimately happen.

https://bugzilla.gnome.org/show_bug.cgi?id=674961
2012-04-27 15:47:53 -04:00
988fc52303 Updated Galician translations 2012-04-27 17:07:47 +02:00
7293ddb22c popupMenu: Fix RemoteMenu items with boolean state action
Stateful actions are expected to pass their state when activated,
but we currently only do this for actions with a string state.

https://bugzilla.gnome.org/show_bug.cgi?id=674932
2012-04-27 12:30:16 +02:00
f23c118e81 Updated Hebrew translation. 2012-04-26 15:30:48 +03:00
f68b3be35a data: Add Evolution calendar settings gschema to EXTRA_DIST
3d95e7bb11 forgot to add this
gschema file to dist
2012-04-26 08:40:01 +02:00
3d95e7bb11 Mirror Evolution calendar settings into our own schema
Right now, we are hard-depending on the presence of Evolution by
using its settings schemas. This is likely to be unpopular, and
also causes instability if someone happens not to have Evolution
installed, so install a schema that has the same data path as
the Evolution schema, but a different name and install that
for the keys we need.

To avoid a string-freeze break, we rely on the translations in
Evolution - if Evolution isn't installed, the key descriptions
will be untranslated in dconf-editor.

https://bugzilla.gnome.org/show_bug.cgi?id=674424
2012-04-25 14:39:02 -04:00
337c484f01 Updated Korean translation 2012-04-26 01:08:27 +09:00
5d98e2bf04 st-theme-node-drawing: Don't use GL types
This swaps a use of GLfloat for a regular float. Cogl might stop
including a GL header in its public headers soon so this would fix a
compilation error.

https://bugzilla.gnome.org/show_bug.cgi?id=672711
2012-04-25 15:47:04 +01:00
6f300d0cc6 Updated Spanish translation 2012-04-25 12:17:17 +02:00
3422e1dca7 popupMenu: make sure to break the grab when the slider is not visible
Otherwise the grab will persist for example after closing the PopupMenu
with Escape.

https://bugzilla.gnome.org/show_bug.cgi?id=672713
2012-04-24 22:37:19 +02:00
963c6ae567 workspace: Use the position hints when available also for the window overlay
Otherwise when dropping a window in the current workspace the overlay will
appear from the top left corner.

https://bugzilla.gnome.org/show_bug.cgi?id=674323
2012-04-24 22:37:19 +02:00
6304169926 workspace: hide the overlay for a zoomed window when exiting the overivew
Otherwise it remains visible until the overview animation is completed.

https://bugzilla.gnome.org/show_bug.cgi?id=674323
2012-04-24 22:37:19 +02:00
221afde55e jhbuild wrapper: clean up imports
Final commit in the series, remove imports that were only used
by moved or deleted functionality.
2012-04-24 21:20:49 +02:00
0ae87270ad jhbuild wrapper: don't try to "restore GNOME"
If run under jhbuild, gnome-shell is in PATH, so trying to restore
is just running it again, likely failing in the same way (with the
additional problem of detaching the shell from the terminal). Also,
this is using deprecated GConf keys, and deprecated pygobject
bindings.
2012-04-24 21:20:49 +02:00
9d33baec70 jhbuild wrapper: don't set unneeded environment variables
The jhbuild wrapper is expected to be run through jhbuild run, or
in the uninstalled case inside a jhbuild shell, so there should
be no need to set XDG_DATA_DIRS and friends.
2012-04-24 21:20:49 +02:00
0f37b22cdb jhbuild wrapper: don't muck with session activated services
dconf-daemon is available since 2.32, so there is no need to
start it manually (and in fact, it should not be running normally).
Similarly, notify-osd and notification-daemon should not be
dbus activated, but rather autostarted by gnome-session, and
therefore not running in a gnome-shell session.
2012-04-24 21:20:49 +02:00
47afd87e84 jhbuild wrapper: move performance measurement to a separate tool
Introduce a new gnome-shell-perf-tool, which can be used instead
of the old gnome-shell-jhbuild wrapper to gather data about gnome-shell
performance and submit to shell-perf.gnome.org. This runs the
shell with no extra setup beyond the WM_CLASS filter, so it can
be used for a jhbuild setup or for an installed shell.
2012-04-24 21:20:49 +02:00
700c06023e st: Clean up scroll event code
Currently the scroll event code only handles scroll events if the
adjustment's value is within the "lower" and "upper" limits. The
likely intent was to pass events to a parent scroll view when
reaching the bounds (uh, nested scroll views!), but apparently
we never made use of this, as the upper bound is actually wrong
(an adjustment's maximum value is upper - page_size, not upper).
Just handle all scroll events unconditionally and rely on the
bound checks in StAdjustment.

https://bugzilla.gnome.org/show_bug.cgi?id=672413
2012-04-24 20:45:01 +02:00
4fea5b5ca3 main: Move 'toggle-recording' binding into the shell
The keybinding to toggle the screen recorder was implemented as a
signal on MetaScreen, as keybindings could only be defined in mutter
core. As this is no longer the case, we can move the binding into the
shell where it belongs.

https://bugzilla.gnome.org/show_bug.cgi?id=674377
2012-04-24 17:37:44 +02:00
521bddc1cc [l10n] Update Japanese translation
Fix a typo
2012-04-21 22:42:20 +09:00
52 changed files with 2854 additions and 2109 deletions

3
.gitignore vendored

@ -23,6 +23,8 @@ data/gnome-shell-extension-prefs.desktop.in
data/gschemas.compiled data/gschemas.compiled
data/org.gnome.shell.gschema.xml data/org.gnome.shell.gschema.xml
data/org.gnome.shell.gschema.valid data/org.gnome.shell.gschema.valid
data/org.gnome.shell.evolution.calendar.gschema.xml
data/org.gnome.shell.evolution.calendar.gschema.valid
docs/reference/*/*.args docs/reference/*/*.args
docs/reference/*/*.bak docs/reference/*/*.bak
docs/reference/*/*.hierarchy docs/reference/*/*.hierarchy
@ -68,6 +70,7 @@ src/gnome-shell-extension-prefs
src/gnome-shell-hotplug-sniffer src/gnome-shell-hotplug-sniffer
src/gnome-shell-jhbuild src/gnome-shell-jhbuild
src/gnome-shell-perf-helper src/gnome-shell-perf-helper
src/gnome-shell-perf-tool
src/gnome-shell-real src/gnome-shell-real
src/hotplug-sniffer/org.gnome.Shell.HotplugSniffer.service src/hotplug-sniffer/org.gnome.Shell.HotplugSniffer.service
src/run-js-test src/run-js-test

@ -108,8 +108,6 @@ AC_DEFINE_UNQUOTED([GJS_VERSION], ["$GJS_VERSION"], [The version of GJS we're li
AC_SUBST([GJS_VERSION], ["$GJS_VERSION"]) AC_SUBST([GJS_VERSION], ["$GJS_VERSION"])
GOBJECT_INTROSPECTION_CHECK([$GOBJECT_INTROSPECTION_MIN_VERSION]) GOBJECT_INTROSPECTION_CHECK([$GOBJECT_INTROSPECTION_MIN_VERSION])
JHBUILD_TYPELIBDIR="$INTROSPECTION_TYPELIBDIR"
AC_SUBST(JHBUILD_TYPELIBDIR)
saved_CFLAGS=$CFLAGS saved_CFLAGS=$CFLAGS
saved_LIBS=$LIBS saved_LIBS=$LIBS

@ -53,7 +53,7 @@ dist_theme_DATA = \
theme/ws-switch-arrow-up.svg \ theme/ws-switch-arrow-up.svg \
theme/ws-switch-arrow-down.svg theme/ws-switch-arrow-down.svg
gsettings_SCHEMAS = org.gnome.shell.gschema.xml gsettings_SCHEMAS = org.gnome.shell.gschema.xml org.gnome.shell.evolution.calendar.gschema.xml
@INTLTOOL_XML_NOMERGE_RULE@ @INTLTOOL_XML_NOMERGE_RULE@
@GSETTINGS_RULES@ @GSETTINGS_RULES@
@ -80,6 +80,7 @@ EXTRA_DIST = \
$(menu_DATA) \ $(menu_DATA) \
$(shaders_DATA) \ $(shaders_DATA) \
$(convert_DATA) \ $(convert_DATA) \
org.gnome.shell.evolution.calendar.gschema.xml.in \
org.gnome.shell.gschema.xml.in org.gnome.shell.gschema.xml.in
CLEANFILES = \ CLEANFILES = \

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- NOTE: This schema is a GNOME 3.4 workaround - it uses the same path
as org.gnome.evolution.calendar, but avoids us requiring Evolution
be installed. In GNOME 3.6 the selected state will become a flag
on the calendar. Because the translations are in Evolution,
this is untranslated and in POTFILES.skip.
-->
<schemalist>
<schema path="/org/gnome/evolution/calendar/" id="org.gnome.shell.evolution.calendar" gettext-domain="evolution">
<key type="as" name="selected-calendars">
<default>[]</default>
<summary>List of selected calendars</summary>
<description>List of calendars to load</description>
</key>
<key type="as" name="selected-tasks">
<default>[]</default>
<summary>List of selected task lists</summary>
<description>List of task lists to load</description>
</key>
</schema>
</schemalist>

@ -88,6 +88,13 @@ value here is from the GsmPresenceStatus enumeration.</_summary>
Keybinding to open the application menu. Keybinding to open the application menu.
</_description> </_description>
</key> </key>
<key name="toggle-recording" type="as">
<default><![CDATA[['<Control><Shift><Alt>r']]]></default>
<_summary>Keybinding to toggle the screen recorder</_summary>
<_description>
Keybinding to start/stop the builtin screen recorder.
</_description>
</key>
</schema> </schema>
<schema id="org.gnome.shell.keyboard" path="/org/gnome/shell/keyboard/" <schema id="org.gnome.shell.keyboard" path="/org/gnome/shell/keyboard/"

@ -1203,7 +1203,8 @@ StScrollBar StButton#vhandle:hover
height: 36px; height: 36px;
} }
#notification { .notification {
font-size: 11pt;
border-radius: 10px 10px 0px 0px; border-radius: 10px 10px 0px 0px;
background: rgba(0,0,0,0.8); background: rgba(0,0,0,0.8);
padding: 8px 8px 4px 8px; padding: 8px 8px 4px 8px;
@ -1212,7 +1213,7 @@ StScrollBar StButton#vhandle:hover
width: 34em; width: 34em;
} }
#notification.multi-line-notification { .notification.multi-line-notification {
padding-bottom: 8px; padding-bottom: 8px;
} }
@ -1234,7 +1235,7 @@ StScrollBar StButton#vhandle:hover
color: white; color: white;
} }
.summary-boxpointer #notification { .summary-boxpointer .notification {
border-radius: 9px; border-radius: 9px;
background: rgba(0,0,0,0) !important; background: rgba(0,0,0,0) !important;
padding-bottom: 12px; padding-bottom: 12px;
@ -1251,10 +1252,6 @@ StScrollBar StButton#vhandle:hover
padding-bottom: 6px; padding-bottom: 6px;
} }
#summary-notification-stack-scrollview > .top-shadow, #summary-notification-stack-scrollview > .bottom-shadow {
height: 1em;
}
#summary-notification-stack-scrollview:ltr { #summary-notification-stack-scrollview:ltr {
padding-right: 8px; padding-right: 8px;
} }
@ -1263,28 +1260,24 @@ StScrollBar StButton#vhandle:hover
padding-left: 8px; padding-left: 8px;
} }
#notification-scrollview { .notification-scrollview {
max-height: 10em; max-height: 10em;
-st-vfade-offset: 24px; -st-vfade-offset: 24px;
} }
#notification-scrollview > .top-shadow, #notification-scrollview > .bottom-shadow { .notification-scrollview:ltr > StScrollBar {
height: 1em;
}
#notification-scrollview:ltr > StScrollBar {
padding-left: 6px; padding-left: 6px;
} }
#notification-scrollview:rtl > StScrollBar { .notification-scrollview:rtl > StScrollBar {
padding-right: 6px; padding-right: 6px;
} }
#notification-body { .notification-body {
spacing: 5px; spacing: 5px;
} }
#notification-actions { .notification-actions {
spacing: 10px; spacing: 10px;
} }
@ -1411,7 +1404,7 @@ StScrollBar StButton#vhandle:hover
font-style: italic; font-style: italic;
} }
#notification StEntry { .notification StEntry {
padding: 4px; padding: 4px;
border-radius: 4px; border-radius: 4px;
color: #a8a8a8; color: #a8a8a8;
@ -1427,7 +1420,7 @@ StScrollBar StButton#vhandle:hover
caret-size: 1px; caret-size: 1px;
} }
#notification StEntry:focus { .notification StEntry:focus {
border: 1px solid #8b8b8b; border: 1px solid #8b8b8b;
color: #333333; color: #333333;
background-gradient-direction: vertical; background-gradient-direction: vertical;
@ -2047,3 +2040,30 @@ StScrollBar StButton#vhandle:hover
-arrow-rise: 10px; -arrow-rise: 10px;
-boxpointer-gap: 5px; -boxpointer-gap: 5px;
} }
/* Candidate Window */
.candidate-panel {
min-width: 100px;
padding: .5em;
spacing: 0;
}
.candidate-area {
padding-top: 5px;
}
.candidate-label {
cursor: pointer;
}
.candidate-hlabel-content {
padding: 0em .5em 0em 0em;
}
.candidate-htext-content {
padding: 0em;
}
.candidate-vcontent {
padding: 0em .5em 0em 0em;
}

@ -84,6 +84,7 @@ nobase_dist_js_DATA = \
ui/shellDBus.js \ ui/shellDBus.js \
ui/statusIconDispatcher.js \ ui/statusIconDispatcher.js \
ui/status/accessibility.js \ ui/status/accessibility.js \
ui/status/candidatePanel.js \
ui/status/keyboard.js \ ui/status/keyboard.js \
ui/status/network.js \ ui/status/network.js \
ui/status/power.js \ ui/status/power.js \

@ -11,10 +11,17 @@ const FprintManagerIface = <interface name='net.reactivated.Fprint.Manager'>
</method> </method>
</interface>; </interface>;
const FprintManagerProxy = Gio.DBusProxy.makeProxyWrapper(FprintManagerIface); const FprintManagerInfo = Gio.DBusInterfaceInfo.new_for_xml(FprintManagerIface);
function FprintManager() { function FprintManager() {
return new FprintManagerProxy(Gio.DBus.system, var self = new Gio.DBusProxy({ g_connection: Gio.DBus.system,
'net.reactivated.Fprint', g_interface_name: FprintManagerInfo.name,
'/net/reactivated/Fprint/Manager'); g_interface_info: FprintManagerInfo,
}; g_name: 'net.reactivated.Fprint',
g_object_path: '/net/reactivated/Fprint/Manager',
g_flags: (Gio.DBusProxyFlags.DO_NOT_AUTO_START |
Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES) });
self.init(null);
return self;
}

@ -60,10 +60,8 @@ const PowerMenuButton = new Lang.Class({
}, },
_updateVisibility: function() { _updateVisibility: function() {
if (!this._haveSuspend && !this._haveShutdown && !this._haveRestart) let shouldBeVisible = (this._haveSuspend || this._haveShutdown || this._haveRestart);
this.actor.hide(); this.actor.visible = shouldBeVisible;
else
this.actor.show();
}, },
_updateHaveShutdown: function() { _updateHaveShutdown: function() {
@ -76,11 +74,7 @@ const PowerMenuButton = new Lang.Class({
else else
this._haveShutdown = false; this._haveShutdown = false;
if (this._haveShutdown) this._powerOffItem.actor.visible = this._haveShutdown;
this._powerOffItem.actor.show();
else
this._powerOffItem.actor.hide();
this._updateVisibility(); this._updateVisibility();
})); }));
} else { } else {
@ -91,12 +85,7 @@ const PowerMenuButton = new Lang.Class({
else else
this._haveShutdown = false; this._haveShutdown = false;
if (this._haveShutdown) { this._powerOffItem.actor.visible = this._haveShutdown;
this._powerOffItem.actor.show();
} else {
this._powerOffItem.actor.hide();
}
this._updateVisibility(); this._updateVisibility();
})); }));
} }
@ -112,11 +101,7 @@ const PowerMenuButton = new Lang.Class({
else else
this._haveRestart = false; this._haveRestart = false;
if (this._haveRestart) this._restartItem.actor.visible = this._haveRestart;
this._restartItem.actor.show();
else
this._restartItem.actor.hide();
this._updateVisibility(); this._updateVisibility();
})); }));
} else { } else {
@ -127,12 +112,7 @@ const PowerMenuButton = new Lang.Class({
else else
this._haveRestart = false; this._haveRestart = false;
if (this._haveRestart) { this._restartItem.actor.visible = this._haveRestart;
this._restartItem.actor.show();
} else {
this._restartItem.actor.hide();
}
this._updateVisibility(); this._updateVisibility();
})); }));
} }
@ -140,12 +120,7 @@ const PowerMenuButton = new Lang.Class({
_updateHaveSuspend: function() { _updateHaveSuspend: function() {
this._haveSuspend = this._upClient.get_can_suspend(); this._haveSuspend = this._upClient.get_can_suspend();
this._suspendItem.actor.visible = this._haveSuspend;
if (this._haveSuspend)
this._suspendItem.actor.show();
else
this._suspendItem.actor.hide();
this._updateVisibility(); this._updateVisibility();
}, },

@ -168,7 +168,17 @@ const DashItemContainer = new Lang.Class({
}); });
}, },
destroy: function() {
if (this.label)
this.label.destroy();
this.actor.destroy();
},
animateOutAndDestroy: function() { animateOutAndDestroy: function() {
if (this.label)
this.label.destroy();
if (this.child == null) { if (this.child == null) {
this.actor.destroy(); this.actor.destroy();
return; return;
@ -691,7 +701,7 @@ const Dash = new Lang.Class({
if (Main.overview.visible) if (Main.overview.visible)
item.animateOutAndDestroy(); item.animateOutAndDestroy();
else else
item.actor.destroy(); item.destroy();
} }
this._adjustIconSize(); this._adjustIconSize();

@ -39,11 +39,19 @@ function _patchContainerClass(containerClass) {
}; };
} }
function _makeLoggingFunc(func) {
return function() {
return func([].join.call(arguments, ', '));
};
}
function init() { function init() {
// Add some bindings to the global JS namespace; (gjs keeps the web // Add some bindings to the global JS namespace; (gjs keeps the web
// browser convention of having that namespace be called 'window'.) // browser convention of having that namespace be called 'window'.)
window.global = Shell.Global.get(); window.global = Shell.Global.get();
window.log = _makeLoggingFunc(window.log);
window._ = Gettext.gettext; window._ = Gettext.gettext;
window.C_ = Gettext.pgettext; window.C_ = Gettext.pgettext;
window.ngettext = Gettext.ngettext; window.ngettext = Gettext.ngettext;

@ -634,45 +634,6 @@ const Inspector = new Lang.Class({
Signals.addSignalMethods(Inspector.prototype); Signals.addSignalMethods(Inspector.prototype);
const ErrorLog = new Lang.Class({
Name: 'ErrorLog',
_init: function() {
this.actor = new St.BoxLayout();
this.text = new St.Label();
this.actor.add(this.text);
// We need to override StLabel's default ellipsization when
// using line_wrap; otherwise ClutterText's layout is going
// to constrain both the width and height, which prevents
// scrolling.
this.text.clutter_text.ellipsize = Pango.EllipsizeMode.NONE;
this.text.clutter_text.line_wrap = true;
this.actor.connect('notify::mapped', Lang.bind(this, this._renderText));
},
_formatTime: function(d){
function pad(n) { return n < 10 ? '0' + n : n; }
return d.getUTCFullYear()+'-'
+ pad(d.getUTCMonth()+1)+'-'
+ pad(d.getUTCDate())+'T'
+ pad(d.getUTCHours())+':'
+ pad(d.getUTCMinutes())+':'
+ pad(d.getUTCSeconds())+'Z';
},
_renderText: function() {
if (!this.actor.mapped)
return;
let text = this.text.text;
let stack = Main._getAndClearErrorStack();
for (let i = 0; i < stack.length; i++) {
let logItem = stack[i];
text += logItem.category + ' t=' + this._formatTime(new Date(logItem.timestamp)) + ' ' + logItem.message + '\n';
}
this.text.text = text;
}
});
const Memory = new Lang.Class({ const Memory = new Lang.Class({
Name: 'Memory', Name: 'Memory',
@ -947,9 +908,6 @@ const LookingGlass = new Lang.Class({
})); }));
notebook.appendPage('Windows', this._windowList.actor); notebook.appendPage('Windows', this._windowList.actor);
this._errorLog = new ErrorLog();
notebook.appendPage('Errors', this._errorLog.actor);
this._memory = new Memory(); this._memory = new Memory();
notebook.appendPage('Memory', this._memory.actor); notebook.appendPage('Memory', this._memory.actor);

@ -1228,10 +1228,7 @@ const Crosshairs = new Lang.Class({
crosshairsActor = new Clutter.Clone({ source: this._actor }); crosshairsActor = new Clutter.Clone({ source: this._actor });
this._clones.push(crosshairsActor); this._clones.push(crosshairsActor);
} }
if (this._actor.visible) crosshairsActor.visible = this._actor.visible;
crosshairsActor.show();
else
crosshairsActor.hide();
container.add_actor(crosshairsActor); container.add_actor(crosshairsActor);
container.raise_child(magnifiedMouse, crosshairsActor); container.raise_child(magnifiedMouse, crosshairsActor);

@ -67,7 +67,6 @@ let statusIconDispatcher = null;
let keyboard = null; let keyboard = null;
let layoutManager = null; let layoutManager = null;
let networkAgent = null; let networkAgent = null;
let _errorLogStack = [];
let _startDate; let _startDate;
let _defaultCssStylesheet = null; let _defaultCssStylesheet = null;
let _cssStylesheet = null; let _cssStylesheet = null;
@ -101,14 +100,17 @@ function _createGDMSession() {
function _initRecorder() { function _initRecorder() {
let recorderSettings = new Gio.Settings({ schema: 'org.gnome.shell.recorder' }); let recorderSettings = new Gio.Settings({ schema: 'org.gnome.shell.recorder' });
let bindingSettings = new Gio.Settings({ schema: 'org.gnome.shell.keybindings' });
global.screen.connect('toggle-recording', function() { global.display.add_keybinding('toggle-recording',
bindingSettings,
Meta.KeyBindingFlags.NONE, function() {
if (recorder == null) { if (recorder == null) {
recorder = new Shell.Recorder({ stage: global.stage }); recorder = new Shell.Recorder({ stage: global.stage });
} }
if (recorder.is_recording()) { if (recorder.is_recording()) {
recorder.pause(); recorder.close();
Meta.enable_unredirect_for_screen(global.screen); Meta.enable_unredirect_for_screen(global.screen);
} else { } else {
// read the parameters from GSettings always in case they have changed // read the parameters from GSettings always in case they have changed
@ -150,11 +152,9 @@ function _initUserSession() {
} }
function start() { function start() {
// Monkey patch utility functions into the global proxy; // These are here so we don't break compatibility.
// This is easier and faster than indirecting down into global global.logError = window.log;
// if we want to call back up into JS. global.log = window.log;
global.logError = _logError;
global.log = _logDebug;
// Chain up async errors reported from C // Chain up async errors reported from C
global.connect('notify-error', function (global, msg, detail) { notifyError(msg, detail); }); global.connect('notify-error', function (global, msg, detail) { notifyError(msg, detail); });
@ -251,7 +251,6 @@ function start() {
global.stage.connect('captured-event', _globalKeyPressHandler); global.stage.connect('captured-event', _globalKeyPressHandler);
_log('info', 'loaded at ' + _startDate);
log('GNOME Shell started at ' + _startDate); log('GNOME Shell started at ' + _startDate);
let perfModuleName = GLib.getenv("SHELL_PERF_MODULE"); let perfModuleName = GLib.getenv("SHELL_PERF_MODULE");
@ -537,59 +536,6 @@ function notifyError(msg, details) {
notify(msg, details); notify(msg, details);
} }
/**
* _log:
* @category: string message type ('info', 'error')
* @msg: A message string
* ...: Any further arguments are converted into JSON notation,
* and appended to the log message, separated by spaces.
*
* Log a message into the LookingGlass error
* stream. This is primarily intended for use by the
* extension system as well as debugging.
*/
function _log(category, msg) {
let text = msg;
if (arguments.length > 2) {
text += ': ';
for (let i = 2; i < arguments.length; i++) {
text += JSON.stringify(arguments[i]);
if (i < arguments.length - 1)
text += ' ';
}
}
_errorLogStack.push({timestamp: new Date().getTime(),
category: category,
message: text });
}
function _logError(msg) {
return _log('error', msg);
}
function _logDebug(msg) {
return _log('debug', msg);
}
// Used by the error display in lookingGlass.js
function _getAndClearErrorStack() {
let errors = _errorLogStack;
_errorLogStack = [];
return errors;
}
function logStackTrace(msg) {
try {
throw new Error();
} catch (e) {
// e.stack must have at least two lines, with the first being
// logStackTrace() (which we strip off), and the second being
// our caller.
let trace = e.stack.substr(e.stack.indexOf('\n') + 1);
log(msg ? (msg + '\n' + trace) : trace);
}
}
function isWindowActorDisplayedOnWorkspace(win, workspaceIndex) { function isWindowActorDisplayedOnWorkspace(win, workspaceIndex) {
return win.get_workspace() == workspaceIndex || return win.get_workspace() == workspaceIndex ||
(win.get_meta_window() && win.get_meta_window().is_on_all_workspaces()); (win.get_meta_window() && win.get_meta_window().is_on_all_workspaces());

@ -441,7 +441,7 @@ const Notification = new Lang.Class({
this.actor.connect('clicked', Lang.bind(this, this._onClicked)); this.actor.connect('clicked', Lang.bind(this, this._onClicked));
this.actor.connect('destroy', Lang.bind(this, this._onDestroy)); this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
this._table = new St.Table({ name: 'notification', this._table = new St.Table({ style_class: 'notification',
reactive: true }); reactive: true });
this._table.connect('style-changed', Lang.bind(this, this._styleChanged)); this._table.connect('style-changed', Lang.bind(this, this._styleChanged));
this.actor.set_child(this._table); this.actor.set_child(this._table);
@ -586,19 +586,21 @@ const Notification = new Lang.Class({
enableScrolling: function(enableScrolling) { enableScrolling: function(enableScrolling) {
this._scrollPolicy = enableScrolling ? Gtk.PolicyType.AUTOMATIC : Gtk.PolicyType.NEVER; this._scrollPolicy = enableScrolling ? Gtk.PolicyType.AUTOMATIC : Gtk.PolicyType.NEVER;
if (this._scrollArea) if (this._scrollArea) {
this._scrollArea.vscrollbar_policy = this._scrollPolicy; this._scrollArea.vscrollbar_policy = this._scrollPolicy;
this._scrollArea.enable_mouse_scrolling = enableScrolling;
}
}, },
_createScrollArea: function() { _createScrollArea: function() {
this._table.add_style_class_name('multi-line-notification'); this._table.add_style_class_name('multi-line-notification');
this._scrollArea = new St.ScrollView({ name: 'notification-scrollview', this._scrollArea = new St.ScrollView({ style_class: 'notification-scrollview',
vscrollbar_policy: this._scrollPolicy, vscrollbar_policy: this._scrollPolicy,
hscrollbar_policy: Gtk.PolicyType.NEVER }); hscrollbar_policy: Gtk.PolicyType.NEVER });
this._table.add(this._scrollArea, { row: 1, this._table.add(this._scrollArea, { row: 1,
col: 2 }); col: 2 });
this._updateLastColumnSettings(); this._updateLastColumnSettings();
this._contentArea = new St.BoxLayout({ name: 'notification-body', this._contentArea = new St.BoxLayout({ style_class: 'notification-body',
vertical: true }); vertical: true });
this._scrollArea.add_actor(this._contentArea); this._scrollArea.add_actor(this._contentArea);
// If we know the notification will be expandable, we need to add // If we know the notification will be expandable, we need to add
@ -734,7 +736,7 @@ const Notification = new Lang.Class({
addButton: function(id, label) { addButton: function(id, label) {
if (!this._buttonBox) { if (!this._buttonBox) {
let box = new St.BoxLayout({ name: 'notification-actions' }); let box = new St.BoxLayout({ style_class: 'notification-actions' });
this.setActionArea(box, { x_expand: false, this.setActionArea(box, { x_expand: false,
y_expand: false, y_expand: false,
x_fill: false, x_fill: false,

@ -578,11 +578,27 @@ const Source = new Lang.Class({
return true; return true;
}, },
_getApp: function() {
let app;
app = Shell.WindowTracker.get_default().get_app_from_pid(this.pid);
if (app != null)
return app;
if (this.trayIcon) {
app = Shell.AppSystem.get_default().lookup_wmclass(this.trayIcon.wmclass);
if (app != null)
return app;
}
return null;
},
_setApp: function() { _setApp: function() {
if (this.app) if (this.app)
return; return;
this.app = Shell.WindowTracker.get_default().get_app_from_pid(this.pid); this.app = this._getApp();
if (!this.app) if (!this.app)
return; return;

@ -37,7 +37,7 @@ const STANDARD_STATUS_AREA_SHELL_IMPLEMENTATION = {
'a11y': imports.ui.status.accessibility.ATIndicator, 'a11y': imports.ui.status.accessibility.ATIndicator,
'volume': imports.ui.status.volume.Indicator, 'volume': imports.ui.status.volume.Indicator,
'battery': imports.ui.status.power.Indicator, 'battery': imports.ui.status.power.Indicator,
'keyboard': imports.ui.status.keyboard.XKBIndicator, 'keyboard': imports.ui.status.keyboard.InputSourceIndicator,
'userMenu': imports.ui.userMenu.UserMenuButton 'userMenu': imports.ui.userMenu.UserMenuButton
}; };
@ -55,7 +55,7 @@ const GDM_STATUS_AREA_SHELL_IMPLEMENTATION = {
'a11y': imports.ui.status.accessibility.ATIndicator, 'a11y': imports.ui.status.accessibility.ATIndicator,
'volume': imports.ui.status.volume.Indicator, 'volume': imports.ui.status.volume.Indicator,
'battery': imports.ui.status.power.Indicator, 'battery': imports.ui.status.power.Indicator,
'keyboard': imports.ui.status.keyboard.XKBIndicator, 'keyboard': imports.ui.status.keyboard.InputSourceIndicator,
'powerMenu': imports.gdm.powerMenu.PowerMenuButton 'powerMenu': imports.gdm.powerMenu.PowerMenuButton
}; };

@ -546,6 +546,10 @@ const PopupSliderMenuItem = new Lang.Class({
this._slider.connect('repaint', Lang.bind(this, this._sliderRepaint)); this._slider.connect('repaint', Lang.bind(this, this._sliderRepaint));
this.actor.connect('button-press-event', Lang.bind(this, this._startDragging)); this.actor.connect('button-press-event', Lang.bind(this, this._startDragging));
this.actor.connect('scroll-event', Lang.bind(this, this._onScrollEvent)); this.actor.connect('scroll-event', Lang.bind(this, this._onScrollEvent));
this.actor.connect('notify::mapped', Lang.bind(this, function() {
if (!this.actor.mapped)
this._endDragging();
}));
this._releaseId = this._motionId = 0; this._releaseId = this._motionId = 0;
this._dragging = false; this._dragging = false;

@ -395,10 +395,17 @@ const SearchResults = new Lang.Class({
function(metas) { function(metas) {
this._clearDisplayForProvider(provider); this._clearDisplayForProvider(provider);
meta.actor.show(); meta.actor.show();
// Hinding drops the key focus if we have it
let focus = global.stage.get_key_focus();
this._content.hide(); this._content.hide();
meta.resultDisplay.renderResults(metas); meta.resultDisplay.renderResults(metas);
this._maybeSetInitialSelection(); this._maybeSetInitialSelection();
this._content.show(); this._content.show();
if (this._content.contains(focus))
global.stage.set_key_focus(focus);
})); }));
} else { } else {
let metas = provider.getResultMetas(results); let metas = provider.getResultMetas(results);

@ -106,10 +106,7 @@ const Indicator = new Lang.Class({
/* TRANSLATORS: this means that bluetooth was disabled by hardware rfkill */ /* TRANSLATORS: this means that bluetooth was disabled by hardware rfkill */
this._killswitch.setStatus(_("hardware disabled")); this._killswitch.setStatus(_("hardware disabled"));
if (has_adapter) this.actor.visible = has_adapter;
this.actor.show();
else
this.actor.hide();
if (on) { if (on) {
this._discoverable.actor.show(); this._discoverable.actor.show();

@ -0,0 +1,584 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/*
* Copyright 2012 Red Hat, Inc.
* Copyright 2012 Peng Huang <shawn.p.huang@gmail.com>
* Copyright 2012 Takao Fujiwara <tfujiwar@redhat.com>
* Copyright 2012 Tiger Soldier <tigersoldi@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 2.1 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
* more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
const St = imports.gi.St;
const GLib = imports.gi.GLib;
const IBus = imports.gi.IBus;
const Lang = imports.lang;
const Signals = imports.signals;
const Shell = imports.gi.Shell;
const BoxPointer = imports.ui.boxpointer;
const Main = imports.ui.main;
const PopupMenu = imports.ui.popupMenu;
const ORIENTATION_HORIZONTAL = 0;
const ORIENTATION_VERTICAL = 1;
const ORIENTATION_SYSTEM = 2;
const StCandidateArea = new Lang.Class({
Name: 'StCandidateArea',
_init: function(orientation) {
this.actor = new St.BoxLayout({ style_class: 'candidate-area' });
this._orientation = orientation;
this._labels = [];
this._labelBoxes = [];
this._createUI();
},
_removeOldWidgets: function() {
this.actor.destroy_all_children();
this._labels = [];
this._labelBoxes = [];
},
_createUI: function() {
let vbox = null;
let hbox = null;
if (this._orientation == ORIENTATION_VERTICAL) {
vbox = new St.BoxLayout({ vertical: true,
style_class: 'candidate-vertical' });
this.actor.add_child(vbox,
{ expand: true,
x_fill: true,
y_fill: true
});
} else {
hbox = new St.BoxLayout({ vertical: false,
style_class: 'candidate-horizontal' });
this.actor.add_child(hbox,
{ expand: true,
x_fill: true,
y_fill: true
});
}
for (let i = 0; i < 16; i++) {
let label1 = new St.Label({ text: '1234567890abcdef'.charAt(i) + '.',
style_class: 'popup-menu-item',
reactive: true });
let label2 = new St.Label({ text: '' ,
style_class: 'popup-menu-item',
reactive: true });
if (this._orientation == ORIENTATION_VERTICAL) {
let candidateHBox = new St.BoxLayout({vertical: false});
let labelBox = new St.Bin({ style_class: 'candidate-hlabel-content' });
labelBox.set_child(label1);
labelBox.set_fill(true, true);
let textBox = new St.Bin({ style_class: 'candidate-htext-content' });
textBox.set_child(label2);
textBox.set_fill(true, true);
candidateHBox.add_child(labelBox,
{ expand: false,
x_fill: false,
y_fill: true
});
candidateHBox.add_child(textBox,
{ expand: true,
x_fill: true,
y_fill: true
});
vbox.add_child(candidateHBox);
this._labelBoxes.push(candidateHBox);
} else {
let candidateHBox = new St.BoxLayout({ style_class: 'candidate-vcontent',
vertical: false });
candidateHBox.add_child(label1);
candidateHBox.add_child(label2);
hbox.add_child(candidateHBox);
this._labelBoxes.push(candidateHBox);
}
this._labels.push([label1, label2]);
}
for (let i = 0; i < this._labels.length; i++) {
for(let j = 0; j < this._labels[i].length; j++) {
let widget = this._labels[i][j];
widget.candidateIndex = i;
widget.connect('button-press-event',
Lang.bind(this, function (widget, event) {
this._candidateClickedCB(widget, event);
}));
widget.connect('enter-event',
function(widget, event) {
widget.add_style_pseudo_class('hover');
});
widget.connect('leave-event',
function(widget, event) {
widget.remove_style_pseudo_class('hover');
});
}
}
},
_recreateUI: function() {
this._removeOldWidgets();
this._createUI();
},
_candidateClickedCB: function(widget, event) {
this.emit('candidate-clicked',
widget.candidateIndex,
event.get_button(),
event.get_state());
},
setLabels: function(labels) {
if (!labels || labels.length == 0) {
for (let i = 0; i < 16; i++) {
this._labels[i][0].set_text('1234567890abcdef'.charAt(i) + '.');
}
return;
}
for (let i = 0; i < labels.length && i < this._labels.length; i++) {
/* Use a ClutterActor attribute of Shell's theme instead of
* Pango.AttrList for the lookup window GUI and
* can ignore 'attrs' simply from IBus engines?
*/
let [text, attrs] = labels[i];
this._labels[i][0].set_text(text);
}
},
setCandidates: function(candidates, focusCandidate, showCursor) {
if (focusCandidate == undefined) {
focusCandidate = 0;
}
if (showCursor == undefined) {
showCursor = true;
}
if (candidates.length > this._labels.length) {
assert();
}
for (let i = 0; i < candidates.length; i++) {
/* Use a ClutterActor attribute of Shell's theme instead of
* Pango.AttrList for the lookup window GUI and
* can ignore 'attrs' simply from IBus engines?
*/
let [text, attrs] = candidates[i];
if (i == focusCandidate && showCursor) {
this._labels[i][1].add_style_pseudo_class('active');
} else {
this._labels[i][1].remove_style_pseudo_class('active');
}
this._labels[i][1].set_text(text);
this._labelBoxes[i].show();
}
for (let i = this._labelBoxes.length - 1; i >= candidates.length; i--) {
this._labelBoxes[i].hide();
}
},
setOrientation: function(orientation) {
if (orientation == this._orientation)
return;
this._orientation = orientation;
this._recreateUI();
},
showAll: function() {
this.actor.show();
},
hideAll: function() {
this.actor.hide();
},
});
Signals.addSignalMethods(StCandidateArea.prototype);
const CandidatePanel = new Lang.Class({
Name: 'CandidatePanel',
_init: function() {
this._orientation = ORIENTATION_VERTICAL;
this._currentOrientation = this._orientation;
this._preeditVisible = false;
this._auxStringVisible = false;
this._lookupTableVisible = false;
this._lookupTable = null;
this._cursorLocation = [0, 0, 0, 0];
this._movedCursorLocation = null;
this._initSt();
},
_initSt: function() {
this._arrowSide = St.Side.TOP;
this._arrowAlignment = 0.0;
this._boxPointer = new BoxPointer.BoxPointer(this._arrowSide,
{ x_fill: true,
y_fill: true,
x_align: St.Align.START });
this.actor = this._boxPointer.actor;
this.actor._delegate = this;
this.actor.style_class = 'popup-menu-boxpointer';
this.actor.add_style_class_name('popup-menu');
this.actor.add_style_class_name('candidate-panel');
this._cursorActor = new Shell.GenericContainer();
Main.uiGroup.add_actor(this.actor);
Main.uiGroup.add_actor(this._cursorActor);
this._stCandidatePanel = new St.BoxLayout({ style_class: 'candidate-panel',
vertical: true });
this._boxPointer.bin.set_child(this._stCandidatePanel);
this._stPreeditLabel = new St.Label({ style_class: 'popup-menu-item',
text: '' });
if (!this._preeditVisible) {
this._stPreeditLabel.hide();
}
this._stAuxLabel = new St.Label({ style_class: 'popup-menu-item',
text: '' });
if (!this._auxVisible) {
this._stAuxLabel.hide();
}
this._separator = new PopupMenu.PopupSeparatorMenuItem();
if (!this._preeditVisible && !this._auxVisible) {
this._separator.actor.hide();
}
// create candidates area
this._stCandidateArea = new StCandidateArea(this._currentOrientation);
this._stCandidateArea.connect('candidate-clicked',
Lang.bind(this, function(x, i, b, s) {
this.emit('candidate-clicked', i, b, s);}));
this.updateLookupTable(this._lookupTable, this._lookupTableVisible);
// TODO: page up/down GUI
this._packAllStWidgets();
this._isVisible = true;
this.hideAll();
this._checkShowStates();
},
_packAllStWidgets: function() {
this._stCandidatePanel.add_child(this._stPreeditLabel,
{ x_fill: true,
y_fill: false,
x_align: St.Align.MIDDLE,
y_align: St.Align.START });
this._stCandidatePanel.add_child(this._stAuxLabel,
{ x_fill: true,
y_fill: false,
x_align: St.Align.MIDDLE,
y_align: St.Align.MIDDLE });
this._stCandidatePanel.add_child(this._separator.actor,
{ x_fill: true,
y_fill: false,
x_align: St.Align.MIDDLE,
y_align: St.Align.MIDDLE });
this._stCandidatePanel.add_child(this._stCandidateArea.actor,
{ x_fill: true,
y_fill: false,
x_align: St.Align.MIDDLE,
y_align: St.Align.END });
},
showPreeditText: function() {
this._preeditVisible = true;
this._stPreeditLabel.show();
this._checkShowStates();
},
hidePreeditText: function() {
this._preeditVisible = false;
this._checkShowStates();
this._stPreeditLabel.hide();
},
updatePreeditText: function(text, cursorPos, visible) {
if (visible) {
this.showPreeditText();
} else {
this.hidePreeditText();
}
let str = text.get_text();
this._stPreeditLabel.set_text(str);
let attrs = text.get_attributes();
for (let i = 0; attrs != null && attrs.get(i) != null; i++) {
let attr = attrs.get(i);
if (attr.get_attr_type() == IBus.AttrType.BACKGROUND) {
let startIndex = attr.get_start_index();
let endIndex = attr.get_end_index();
let len = GLib.utf8_strlen(str, -1);
let markup = '';
if (startIndex == 0 &&
endIndex == GLib.utf8_strlen(str, -1)) {
markup = markup.concat(str);
} else {
if (startIndex > 0) {
markup = markup.concat(GLib.utf8_substring(str,
0,
startIndex));
}
if (startIndex != endIndex) {
markup = markup.concat('<span background=\"#555555\">');
markup = markup.concat(GLib.utf8_substring(str,
startIndex,
endIndex));
markup = markup.concat('</span>');
}
if (endIndex < len) {
markup = markup.concat(GLib.utf8_substring(str,
endIndex,
len));
}
}
let clutter_text = this._stPreeditLabel.get_clutter_text();
clutter_text.set_markup(markup);
clutter_text.queue_redraw();
}
}
},
showAuxiliaryText: function() {
this._auxStringVisible = true;
this._stAuxLabel.show();
this._checkShowStates();
},
hideAuxiliaryText: function() {
this._auxStringVisible = false;
this._checkShowStates();
this._stAuxLabel.hide();
},
updateAuxiliaryText: function(text, show) {
if (show) {
this.showAuxiliaryText();
} else {
this.hideAuxiliaryText();
}
this._stAuxLabel.set_text(text.get_text());
},
_refreshLabels: function() {
let newLabels = [];
for (let i = 0; this._lookupTable.get_label(i) != null; i++) {
let label = this._lookupTable.get_label(i);
newLabels.push([label.get_text(), label.get_attributes()]);
}
this._stCandidateArea.setLabels(newLabels);
},
_getCandidatesInCurrentPage: function() {
let cursorPos = this._lookupTable.get_cursor_pos();
let pageSize = this._lookupTable.get_page_size();
let page = ((cursorPos == 0) ? 0 : Math.floor(cursorPos / pageSize));
let startIndex = page * pageSize;
let endIndex = Math.min((page + 1) * pageSize,
this._lookupTable.get_number_of_candidates());
let candidates = [];
for (let i = startIndex; i < endIndex; i++) {
candidates.push(this._lookupTable.get_candidate(i));
}
return candidates;
},
_getCursorPosInCurrentPage: function() {
let cursorPos = this._lookupTable.get_cursor_pos();
let pageSize = this._lookupTable.get_page_size();
let posInPage = cursorPos % pageSize;
return posInPage;
},
_refreshCandidates: function() {
let candidates = this._getCandidatesInCurrentPage();
let newCandidates = [];
for (let i = 0; i < candidates.length; i++) {
let candidate = candidates[i];
newCandidates.push([candidate.get_text(),
candidate.get_attributes()]);
}
this._stCandidateArea.setCandidates(newCandidates,
this._getCursorPosInCurrentPage(),
this._lookupTable.is_cursor_visible());
},
updateLookupTable: function(lookupTable, visible) {
// hide lookup table
if (!visible) {
this.hideLookupTable();
}
this._lookupTable = lookupTable || new IBus.LookupTable();
let orientation = this._lookupTable.get_orientation();
if (orientation != ORIENTATION_HORIZONTAL &&
orientation != ORIENTATION_VERTICAL) {
orientation = this._orientation;
}
this.setCurrentOrientation(orientation);
this._refreshCandidates();
this._refreshLabels();
// show lookup table
if (visible) {
this.showLookupTable();
}
},
showLookupTable: function() {
this._lookupTableVisible = true;
this._stCandidateArea.showAll();
this._checkShowStates();
},
hideLookupTable: function() {
this._lookupTableVisible = false;
this._checkShowStates();
this._stCandidateArea.hideAll();
},
pageUpLookupTable: function() {
this._lookupTable.page_up();
this._refreshCandidates();
},
pageDownLookup_table: function() {
this._lookupTable.page_down();
this._refreshCandidates();
},
cursorUpLookupTable: function() {
this._lookupTable.cursor_up();
this._refreshCandidates();
},
cursorDownLookupTable: function() {
this._lookupTable.cursor_down();
this._refreshCandidates();
},
setCursorLocation: function(x, y, w, h) {
// if cursor location is changed, we reset the moved cursor location
if (this._cursorLocation.join() != [x, y, w, h].join()) {
this._cursorLocation = [x, y, w, h];
this._movedCursorLocation = null;
this._checkPosition();
}
},
_checkShowStates: function() {
this._checkSeparatorShowStates();
if (this._preeditVisible ||
this._auxStringVisible ||
this._lookupTableVisible) {
this._checkPosition();
this.showAll();
this.emit('show');
} else {
this.hideAll();
this.emit('hide');
}
},
_checkSeparatorShowStates: function() {
if (this._preeditVisible || this._auxStringVisible) {
this._separator.actor.show();
}
else
this._separator.actor.hide();
},
reset: function() {
let text = IBus.Text.new_from_string('');
this.updatePreeditText(text, 0, false);
text = IBus.Text.new_from_string('');
this.updateAuxiliaryText(text, false);
this.updateLookupTable(null, false);
this.hideAll();
},
setCurrentOrientation: function(orientation) {
if (this._currentOrientation == orientation) {
return;
}
this._currentOrientation = orientation;
this._stCandidateArea.setOrientation(orientation);
},
setOrientation: function(orientation) {
this._orientation = orientation;
this.updateLookupTable(this._lookupTable, this._lookupTableVisible);
},
getCurrentOrientation: function() {
return this._currentOrientation;
},
_checkPosition: function() {
let cursorLocation = this._movedCursorLocation || this._cursorLocation;
let [cursorX, cursorY, cursorWidth, cursorHeight] = cursorLocation;
let windowRight = cursorX + cursorWidth + this.actor.get_width();
let windowBottom = cursorY + cursorHeight + this.actor.get_height();
this._cursorActor.set_position(cursorX, cursorY);
this._cursorActor.set_size(cursorWidth, cursorHeight);
let monitor = Main.layoutManager.findMonitorForActor(this._cursorActor);
let [sx, sy] = [monitor.x + monitor.width, monitor.y + monitor.height];
if (windowBottom > sy) {
this._arrowSide = St.Side.BOTTOM;
} else {
this._arrowSide = St.Side.TOP;
}
this._boxPointer._arrowSide = this._arrowSide;
this._boxPointer.setArrowOrigin(this._arrowSide);
this._boxPointer.setPosition(this._cursorActor, this._arrowAlignment);
},
showAll: function() {
if (!this._isVisible) {
this.actor.opacity = 255;
this.actor.show();
this._isVisible = true;
}
},
hideAll: function() {
if (this._isVisible) {
this.actor.opacity = 0;
this.actor.hide();
this._isVisible = false;
}
},
move: function(x, y) {
this.actor.set_position(x, y);
}
});
Signals.addSignalMethods(CandidatePanel.prototype);

@ -2,42 +2,52 @@
const Clutter = imports.gi.Clutter; const Clutter = imports.gi.Clutter;
const GdkPixbuf = imports.gi.GdkPixbuf; const GdkPixbuf = imports.gi.GdkPixbuf;
const Gkbd = imports.gi.Gkbd;
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib; const GLib = imports.gi.GLib;
const Lang = imports.lang; const Lang = imports.lang;
const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell; const Shell = imports.gi.Shell;
const St = imports.gi.St; const St = imports.gi.St;
try {
var IBus = imports.gi.IBus;
const CandidatePanel = imports.ui.status.candidatePanel;
} catch (e) {
var IBus = null;
}
const Main = imports.ui.main; const Main = imports.ui.main;
const PopupMenu = imports.ui.popupMenu; const PopupMenu = imports.ui.popupMenu;
const PanelMenu = imports.ui.panelMenu; const PanelMenu = imports.ui.panelMenu;
const Util = imports.misc.util; const Util = imports.misc.util;
const DESKTOP_INPUT_SOURCES_KEYBINDINGS_SCHEMA = 'org.gnome.desktop.input-sources.keybindings';
const DESKTOP_INPUT_SOURCES_SCHEMA = 'org.gnome.desktop.input-sources';
const KEY_CURRENT_IS = 'current';
const KEY_INPUT_SOURCES = 'sources';
const LayoutMenuItem = new Lang.Class({ const LayoutMenuItem = new Lang.Class({
Name: 'LayoutMenuItem', Name: 'LayoutMenuItem',
Extends: PopupMenu.PopupBaseMenuItem, Extends: PopupMenu.PopupBaseMenuItem,
_init: function(config, id, indicator, long_name) { _init: function(name, shortName, xkbLayout, xkbVariant, ibusEngine) {
this.parent(); this.parent();
this._config = config; this.label = new St.Label({ text: name });
this._id = id; this.indicator = new St.Label({ text: shortName });
this.label = new St.Label({ text: long_name });
this.indicator = indicator;
this.addActor(this.label); this.addActor(this.label);
this.addActor(this.indicator); this.addActor(this.indicator);
},
activate: function(event) { this.sourceName = name;
this.parent(event); this.shortName = shortName;
this.xkbLayout = xkbLayout;
this._config.lock_group(this._id); this.xkbVariant = xkbVariant;
this.ibusEngine = ibusEngine;
} }
}); });
const XKBIndicator = new Lang.Class({ const InputSourceIndicator = new Lang.Class({
Name: 'XKBIndicator', Name: 'InputSourceIndicator',
Extends: PanelMenu.Button, Extends: PanelMenu.Button,
_init: function() { _init: function() {
@ -50,61 +60,237 @@ const XKBIndicator = new Lang.Class({
this.actor.add_actor(this._container); this.actor.add_actor(this._container);
this.actor.add_style_class_name('panel-status-button'); this.actor.add_style_class_name('panel-status-button');
this._iconActor = new St.Icon({ icon_name: 'keyboard', icon_type: St.IconType.SYMBOLIC, style_class: 'system-status-icon' });
this._container.add_actor(this._iconActor);
this._labelActors = [ ]; this._labelActors = [ ];
this._layoutItems = [ ]; this._layoutItems = [ ];
this._showFlags = false; this._settings = new Gio.Settings({ schema: DESKTOP_INPUT_SOURCES_SCHEMA });
this._config = Gkbd.Configuration.get(); this._settings.connect('changed::' + KEY_CURRENT_IS, Lang.bind(this, this._currentISChanged));
this._config.connect('changed', Lang.bind(this, this._syncConfig)); this._settings.connect('changed::' + KEY_INPUT_SOURCES, Lang.bind(this, this._inputSourcesChanged));
this._config.connect('group-changed', Lang.bind(this, this._syncGroup));
this._config.start_listen();
this._syncConfig(); if (IBus)
this._ibusInit();
this._inputSourcesChanged();
if (global.session_type == Shell.SessionType.USER) { if (global.session_type == Shell.SessionType.USER) {
this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem()); this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
this.menu.addAction(_("Show Keyboard Layout"), Lang.bind(this, function() { this.menu.addAction(_("Show Keyboard Layout"), Lang.bind(this, function() {
Main.overview.hide(); Main.overview.hide();
Util.spawn(['gkbd-keyboard-display', '-g', String(this._config.get_current_group() + 1)]); let description = this._selectedLayout.xkbLayout;
if (this._selectedLayout.xkbVariant.length > 0)
description = description + '\t' + this._selectedLayout.xkbVariant;
Util.spawn(['gkbd-keyboard-display', '-l', description]);
})); }));
} }
this.menu.addSettingsAction(_("Region and Language Settings"), 'gnome-region-panel.desktop'); this.menu.addSettingsAction(_("Region and Language Settings"), 'gnome-region-panel.desktop');
global.display.add_keybinding('switch-next',
new Gio.Settings({ schema: DESKTOP_INPUT_SOURCES_KEYBINDINGS_SCHEMA }),
Meta.KeyBindingFlags.NONE,
Lang.bind(this, this._switchNext));
global.display.add_keybinding('switch-previous',
new Gio.Settings({ schema: DESKTOP_INPUT_SOURCES_KEYBINDINGS_SCHEMA }),
Meta.KeyBindingFlags.NONE,
Lang.bind(this, this._switchPrevious));
}, },
_adjustGroupNames: function(names) { _ibusInit: function() {
// Disambiguate duplicate names with a subscript IBus.init();
// This is O(N^2) to avoid sorting names this._ibus = new IBus.Bus();
// but N <= 4 so who cares? if (!this._ibus.is_connected()) {
log('ibus-daemon is not running');
return;
}
for (let i = 0; i < names.length; i++) { this._ibus.request_name(IBus.SERVICE_PANEL,
let name = names[i]; IBus.BusNameFlag.ALLOW_REPLACEMENT |
let cnt = 0; IBus.BusNameFlag.REPLACE_EXISTING);
for (let j = i + 1; j < names.length; j++) { this._panel = new IBus.PanelService({ connection: this._ibus.get_connection(),
if (names[j] == name) { object_path: IBus.PATH_PANEL });
cnt++; this._ibusInitPanelService();
// U+2081 SUBSCRIPT ONE
names[j] = name + String.fromCharCode(0x2081 + cnt); this._candidatePanel = new CandidatePanel.CandidatePanel();
} this._ibusInitCandidatePanel();
},
_ibusInitCandidatePanel: function() {
this._candidatePanel.connect('cursor-up',
Lang.bind(this, function(widget) {
this.cursorUp();
}));
this._candidatePanel.connect('cursor-down',
Lang.bind(this, function(widget) {
this.cursorDown();
}));
this._candidatePanel.connect('page-up',
Lang.bind(this, function(widget) {
this.pageUp();
}));
this._candidatePanel.connect('page-down',
Lang.bind(this, function(widget) {
this.pageDown();
}));
this._candidatePanel.connect('candidate-clicked',
Lang.bind(this, function(widget, index, button, state) {
this.candidateClicked(index, button, state);
}));
},
_ibusInitPanelService: function() {
this._panel.connect('set-cursor-location',
Lang.bind(this, this.setCursorLocation));
this._panel.connect('update-preedit-text',
Lang.bind(this, this.updatePreeditText));
this._panel.connect('show-preedit-text',
Lang.bind(this, this.showPreeditText));
this._panel.connect('hide-preedit-text',
Lang.bind(this, this.hidePreeditText));
this._panel.connect('update-auxiliary-text',
Lang.bind(this, this.updateAuxiliaryText));
this._panel.connect('show-auxiliary-text',
Lang.bind(this, this.showAuxiliaryText));
this._panel.connect('hide-auxiliary-text',
Lang.bind(this, this.hideAuxiliaryText));
this._panel.connect('update-lookup-table',
Lang.bind(this, this.updateLookupTable));
this._panel.connect('show-lookup-table',
Lang.bind(this, this.showLookupTable));
this._panel.connect('hide-lookup-table',
Lang.bind(this, this.hideLookupTable));
this._panel.connect('page-up-lookup-table',
Lang.bind(this, this.pageUpLookupTable));
this._panel.connect('page-down-lookup-table',
Lang.bind(this, this.pageDownLookupTable));
this._panel.connect('cursor-up-lookup-table',
Lang.bind(this, this.cursorUpLookupTable));
this._panel.connect('cursor-down-lookup-table',
Lang.bind(this, this.cursorDownLookupTable));
this._panel.connect('focus-in', Lang.bind(this, this.focusIn));
this._panel.connect('focus-out', Lang.bind(this, this.focusOut));
},
setCursorLocation: function(panel, x, y, w, h) {
this._candidatePanel.setCursorLocation(x, y, w, h);
},
updatePreeditText: function(panel, text, cursorPos, visible) {
this._candidatePanel.updatePreeditText(text, cursorPos, visible);
},
showPreeditText: function(panel) {
this._candidatePanel.showPreeditText();
},
hidePreeditText: function(panel) {
this._candidatePanel.hidePreeditText();
},
updateAuxiliaryText: function(panel, text, visible) {
this._candidatePanel.updateAuxiliaryText(text, visible);
},
showAuxiliaryText: function(panel) {
this._candidatePanel.showAuxiliaryText();
},
hideAuxiliaryText: function(panel) {
this._candidatePanel.hideAuxiliaryText();
},
updateLookupTable: function(panel, lookupTable, visible) {
this._candidatePanel.updateLookupTable(lookupTable, visible);
},
showLookupTable: function(panel) {
this._candidatePanel.showLookupTable();
},
hideLookupTable: function(panel) {
this._candidatePanel.hideLookupTable();
},
pageUpLookupTable: function(panel) {
this._candidatePanel.pageUpLookupTable();
},
pageDownLookupTable: function(panel) {
this._candidatePanel.pageDownLookupTable();
},
cursorUpLookupTable: function(panel) {
this._candidatePanel.cursorUpLookupTable();
},
cursorDownLookupTable: function(panel) {
this._candidatePanel.cursorDownLookupTable();
},
focusIn: function(panel, path) {
},
focusOut: function(panel, path) {
this._candidatePanel.reset();
},
cursorUp: function() {
this._panel.cursor_up();
},
cursorDown: function() {
this._panel.cursor_down();
},
pageUp: function() {
this._panel.page_up();
},
pageDown: function() {
this._panel.page_down();
},
candidateClicked: function(index, button, state) {
this._panel.candidate_clicked(index, button, state);
},
_currentISChanged: function() {
let source = this._settings.get_value(KEY_CURRENT_IS);
let name = source.get_child_value(0).get_string()[0];
if (this._selectedLayout) {
this._selectedLayout.setShowDot(false);
this._selectedLayout = null;
}
if (this._selectedLabel) {
this._container.set_skip_paint(this._selectedLabel, true);
this._selectedLabel = null;
}
for (let i = 0; i < this._layoutItems.length; ++i) {
let item = this._layoutItems[i];
if (item.sourceName == name) {
item.setShowDot(true);
this._selectedLayout = item;
break;
} }
if (cnt != 0)
names[i] = name + '\u2081';
} }
return names; for (let i = 0; i < this._labelActors.length; ++i) {
let actor = this._labelActors[i];
if (actor.sourceName == name) {
this._selectedLabel = actor;
this._container.set_skip_paint(actor, false);
break;
}
}
if (!this._selectedLayout || !this._selectedLabel)
this._layoutItems[0].activate();
}, },
_syncConfig: function() { _inputSourcesChanged: function() {
this._showFlags = this._config.if_flags_shown(); let sources = this._settings.get_value(KEY_INPUT_SOURCES);
if (this._showFlags) { if (sources.n_children() > 1) {
this._container.set_skip_paint(this._iconActor, false);
} else {
this._container.set_skip_paint(this._iconActor, true);
}
let groups = this._config.get_group_names();
if (groups.length > 1) {
this.actor.show(); this.actor.show();
} else { } else {
this.menu.close(); this.menu.close();
@ -117,55 +303,69 @@ const XKBIndicator = new Lang.Class({
for (let i = 0; i < this._labelActors.length; i++) for (let i = 0; i < this._labelActors.length; i++)
this._labelActors[i].destroy(); this._labelActors[i].destroy();
let short_names = this._adjustGroupNames(this._config.get_short_group_names());
this._selectedLayout = null; this._selectedLayout = null;
this._layoutItems = [ ]; this._layoutItems = [ ];
this._selectedLabel = null; this._selectedLabel = null;
this._labelActors = [ ]; this._labelActors = [ ];
for (let i = 0; i < groups.length; i++) {
let icon_name = this._config.get_group_name(i); for (let i = 0; i < sources.n_children(); ++i) {
let actor; let name = sources.get_child_value(i).get_child_value(0).get_string()[0];
if (this._showFlags) let shortName = sources.get_child_value(i).get_child_value(1).get_string()[0];
actor = new St.Icon({ icon_name: icon_name, icon_type: St.IconType.SYMBOLIC, style_class: 'popup-menu-icon' }); let xkbLayout = sources.get_child_value(i).get_child_value(2).get_string()[0];
else let xkbVariant = sources.get_child_value(i).get_child_value(3).get_string()[0];
actor = new St.Label({ text: short_names[i] }); let ibusEngine = sources.get_child_value(i).get_child_value(4).get_string()[0];
let item = new LayoutMenuItem(this._config, i, actor, groups[i]);
item._short_group_name = short_names[i]; let item = new LayoutMenuItem(name, shortName, xkbLayout, xkbVariant, ibusEngine);
item._icon_name = icon_name;
this._layoutItems.push(item); this._layoutItems.push(item);
this.menu.addMenuItem(item, i); this.menu.addMenuItem(item, i);
item.connect('activate', Lang.bind(this, function() {
if (this._selectedLayout == null || item.sourceName != this._selectedLayout.sourceName) {
let name = GLib.Variant.new_string(item.sourceName);
let shortName = GLib.Variant.new_string(item.shortName);
let xkbLayout = GLib.Variant.new_string(item.xkbLayout);
let xkbVariant = GLib.Variant.new_string(item.xkbVariant);
let ibusEngine = GLib.Variant.new_string(item.ibusEngine);
let tuple = GLib.Variant.new_tuple([name, shortName, xkbLayout, xkbVariant, ibusEngine], 5);
this._settings.set_value(KEY_CURRENT_IS, tuple);
}
}));
let shortLabel = new St.Label({ text: short_names[i] }); let shortLabel = new St.Label({ text: shortName });
shortLabel.sourceName = name;
this._labelActors.push(shortLabel); this._labelActors.push(shortLabel);
this._container.add_actor(shortLabel); this._container.add_actor(shortLabel);
this._container.set_skip_paint(shortLabel, true); this._container.set_skip_paint(shortLabel, true);
} }
this._syncGroup(); this._currentISChanged();
}, },
_syncGroup: function() { _switchNext: function() {
let selected = this._config.get_current_group(); if (!this._selectedLayout || !this._selectedLabel) {
this._layoutItems[0].activate();
if (this._selectedLayout) { return;
this._selectedLayout.setShowDot(false); }
this._selectedLayout = null; for (let i = 0; i < this._layoutItems.length; ++i) {
let item = this._layoutItems[i];
if (item.sourceName == this._selectedLayout.sourceName) {
this._layoutItems[(++i == this._layoutItems.length) ? 0 : i].activate();
break;
}
} }
},
if (this._selectedLabel) { _switchPrevious: function() {
this._container.set_skip_paint(this._selectedLabel, true); if (!this._selectedLayout || !this._selectedLabel) {
this._selectedLabel = null; this._layoutItems[0].activate();
return;
}
for (let i = 0; i < this._layoutItems.length; ++i) {
let item = this._layoutItems[i];
if (item.sourceName == this._selectedLayout.sourceName) {
this._layoutItems[(--i == -1) ? (this._layoutItems.length - 1) : i].activate();
break;
}
} }
let item = this._layoutItems[selected];
item.setShowDot(true);
this._iconActor.icon_name = item._icon_name;
this._selectedLabel = this._labelActors[selected];
this._container.set_skip_paint(this._selectedLabel, this._showFlags);
this._selectedLayout = item;
}, },
_containerGetPreferredWidth: function(container, for_height, alloc) { _containerGetPreferredWidth: function(container, for_height, alloc) {
@ -173,15 +373,11 @@ const XKBIndicator = new Lang.Class({
// for the height of all children, but we ignore the results // for the height of all children, but we ignore the results
// for those we don't actually display. // for those we don't actually display.
let max_min_width = 0, max_natural_width = 0; let max_min_width = 0, max_natural_width = 0;
if (this._showFlags)
[max_min_width, max_natural_width] = this._iconActor.get_preferred_width(for_height);
for (let i = 0; i < this._labelActors.length; i++) { for (let i = 0; i < this._labelActors.length; i++) {
let [min_width, natural_width] = this._labelActors[i].get_preferred_width(for_height); let [min_width, natural_width] = this._labelActors[i].get_preferred_width(for_height);
if (!this._showFlags) { max_min_width = Math.max(max_min_width, min_width);
max_min_width = Math.max(max_min_width, min_width); max_natural_width = Math.max(max_natural_width, natural_width);
max_natural_width = Math.max(max_natural_width, natural_width);
}
} }
alloc.min_size = max_min_width; alloc.min_size = max_min_width;
@ -190,15 +386,11 @@ const XKBIndicator = new Lang.Class({
_containerGetPreferredHeight: function(container, for_width, alloc) { _containerGetPreferredHeight: function(container, for_width, alloc) {
let max_min_height = 0, max_natural_height = 0; let max_min_height = 0, max_natural_height = 0;
if (this._showFlags)
[max_min_height, max_natural_height] = this._iconActor.get_preferred_height(for_width);
for (let i = 0; i < this._labelActors.length; i++) { for (let i = 0; i < this._labelActors.length; i++) {
let [min_height, natural_height] = this._labelActors[i].get_preferred_height(for_width); let [min_height, natural_height] = this._labelActors[i].get_preferred_height(for_width);
if (!this._showFlags) { max_min_height = Math.max(max_min_height, min_height);
max_min_height = Math.max(max_min_height, min_height); max_natural_height = Math.max(max_natural_height, natural_height);
max_natural_height = Math.max(max_natural_height, natural_height);
}
} }
alloc.min_size = max_min_height; alloc.min_size = max_min_height;
@ -212,7 +404,6 @@ const XKBIndicator = new Lang.Class({
box.y2 -= box.y1; box.y2 -= box.y1;
box.y1 = 0; box.y1 = 0;
this._iconActor.allocate_align_fill(box, 0.5, 0, false, false, flags);
for (let i = 0; i < this._labelActors.length; i++) for (let i = 0; i < this._labelActors.length; i++)
this._labelActors[i].allocate_align_fill(box, 0.5, 0, false, false, flags); this._labelActors[i].allocate_align_fill(box, 0.5, 0, false, false, flags);
} }

@ -707,10 +707,7 @@ const NMDeviceWired = new Lang.Class({
// the device // the device
// we can do it here because addConnection and removeConnection // we can do it here because addConnection and removeConnection
// both call _createSection at some point // both call _createSection at some point
if (this._connections.length <= 1) this.section.actor.visible = this._connections.length > 1;
this.section.actor.hide();
else
this.section.actor.show();
}, },
_createAutomaticConnection: function() { _createAutomaticConnection: function() {
@ -1038,13 +1035,8 @@ const NMDeviceWireless = new Lang.Class({
}, },
setEnabled: function(enabled) { setEnabled: function(enabled) {
if (enabled) { this.statusItem.actor.visible = enabled;
this.statusItem.actor.show(); this.section.actor.visible = enabled;
this.section.actor.show();
} else {
this.statusItem.actor.hide();
this.section.actor.hide();
}
}, },
activate: function() { activate: function() {
@ -1538,7 +1530,7 @@ const NMApplet = new Lang.Class({
Extends: PanelMenu.SystemStatusButton, Extends: PanelMenu.SystemStatusButton,
_init: function() { _init: function() {
this.parent('network-error', _("Network")); this.parent('network-offline', _("Network"));
this._client = NMClient.Client.new(); this._client = NMClient.Client.new();

@ -149,13 +149,9 @@ const Indicator = new Lang.Class({
} }
} }
} }
if (showInput) {
this._inputTitle.actor.show(); this._inputTitle.actor.visible = showInput;
this._inputSlider.actor.show(); this._inputSlider.actor.visible = showInput;
} else {
this._inputTitle.actor.hide();
this._inputSlider.actor.hide();
}
}, },
_volumeToIcon: function(volume) { _volumeToIcon: function(volume) {

@ -554,18 +554,12 @@ const UserMenuButton = new Lang.Class({
_updateLogout: function() { _updateLogout: function() {
let allowLogout = !this._lockdownSettings.get_boolean(DISABLE_LOG_OUT_KEY); let allowLogout = !this._lockdownSettings.get_boolean(DISABLE_LOG_OUT_KEY);
if (allowLogout) this._logoutItem.actor.visible = allowLogout;
this._logoutItem.actor.show();
else
this._logoutItem.actor.hide();
}, },
_updateLockScreen: function() { _updateLockScreen: function() {
let allowLockScreen = !this._lockdownSettings.get_boolean(DISABLE_LOCK_SCREEN_KEY); let allowLockScreen = !this._lockdownSettings.get_boolean(DISABLE_LOCK_SCREEN_KEY);
if (allowLockScreen) this._logoutItem.actor.visible = allowLockScreen;
this._lockScreenItem.actor.show();
else
this._lockScreenItem.actor.hide();
}, },
_updateHaveShutdown: function() { _updateHaveShutdown: function() {
@ -584,10 +578,7 @@ const UserMenuButton = new Lang.Class({
if (!this._suspendOrPowerOffItem) if (!this._suspendOrPowerOffItem)
return; return;
if (!this._haveShutdown && !this._haveSuspend) this._suspendOrPowerOffItem.actor.visible = this._haveShutdown || this._haveSuspend;
this._suspendOrPowerOffItem.actor.hide();
else
this._suspendOrPowerOffItem.actor.show();
// If we can't suspend show Power Off... instead // If we can't suspend show Power Off... instead
// and disable the alt key // and disable the alt key

@ -1134,7 +1134,6 @@ const Workspace = new Lang.Class({
_hideAllOverlays: function() { _hideAllOverlays: function() {
for (let i = 0; i < this._windows.length; i++) { for (let i = 0; i < this._windows.length; i++) {
let clone = this._windows[i]; let clone = this._windows[i];
Tweener.removeTweens(clone.actor);
let overlay = this._windowOverlays[i]; let overlay = this._windowOverlays[i];
if (overlay) if (overlay)
overlay.hide(); overlay.hide();
@ -1252,7 +1251,7 @@ const Workspace = new Lang.Class({
if (!this._isMyWindow(win) || !this._isOverviewWindow(win)) if (!this._isMyWindow(win) || !this._isOverviewWindow(win))
return; return;
let clone = this._addWindowClone(win); let [clone, overlay] = this._addWindowClone(win);
if (win._overviewHint) { if (win._overviewHint) {
let x = win._overviewHint.x - this.actor.x; let x = win._overviewHint.x - this.actor.x;
@ -1262,6 +1261,7 @@ const Workspace = new Lang.Class({
clone.actor.set_position (x, y); clone.actor.set_position (x, y);
clone.actor.set_scale (scale, scale); clone.actor.set_scale (scale, scale);
this._updateWindowOverlayPositions(clone, overlay, x, y, scale, false);
} else { } else {
// Position new windows at the top corner of the workspace rather // Position new windows at the top corner of the workspace rather
// than where they were placed for real to avoid the window // than where they were placed for real to avoid the window
@ -1321,7 +1321,10 @@ const Workspace = new Lang.Class({
this.leavingOverview = true; this.leavingOverview = true;
this._hideAllOverlays(); for (let i = 0; i < this._windows.length; i++) {
let clone = this._windows[i];
Tweener.removeTweens(clone.actor);
}
if (this._repositionWindowsId > 0) { if (this._repositionWindowsId > 0) {
Mainloop.source_remove(this._repositionWindowsId); Mainloop.source_remove(this._repositionWindowsId);
@ -1361,6 +1364,7 @@ const Workspace = new Lang.Class({
} }
} }
this._hideAllOverlays();
}, },
destroy : function() { destroy : function() {
@ -1451,7 +1455,7 @@ const Workspace = new Lang.Class({
this._windows.push(clone); this._windows.push(clone);
this._windowOverlays.push(overlay); this._windowOverlays.push(overlay);
return clone; return [clone, overlay];
}, },
_onShowOverlayClose: function (windowOverlay) { _onShowOverlayClose: function (windowOverlay) {

@ -844,10 +844,7 @@ const WorkspacesDisplay = new Lang.Class({
if (!primaryView) if (!primaryView)
return; return;
primaryView.actor.opacity = opacity; primaryView.actor.opacity = opacity;
if (opacity == 0) primaryView.actor.visible = opacity != 0;
primaryView.actor.hide();
else
primaryView.actor.show();
})); }));
})); }));
}, },

@ -1,2 +1,3 @@
data/gnome-shell.desktop.in data/gnome-shell.desktop.in
data/gnome-shell-extension-prefs.desktop.in data/gnome-shell-extension-prefs.desktop.in
data/org.gnome.shell.evolution.calendar.gschema.xml.in

746
po/el.po

File diff suppressed because it is too large Load Diff

208
po/es.po

@ -10,8 +10,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: 2012-03-30 17:59+0000\n" "POT-Creation-Date: 2012-04-24 15:39+0000\n"
"PO-Revision-Date: 2012-04-01 19:11+0200\n" "PO-Revision-Date: 2012-04-25 12:09+0200\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n" "Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Español <gnome-es-list@gnome.org>\n" "Language-Team: Español <gnome-es-list@gnome.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -141,34 +141,44 @@ msgid "Keybinding to open the application menu."
msgstr "Asociación de teclas para abrir el menú de la aplicación." msgstr "Asociación de teclas para abrir el menú de la aplicación."
#: ../data/org.gnome.shell.gschema.xml.in.h:18 #: ../data/org.gnome.shell.gschema.xml.in.h:18
#| msgid "Keybinding to open the application menu"
msgid "Keybinding to toggle the screen recorder"
msgstr "Asociación de teclas cambiar el grabador de pantalla"
#: ../data/org.gnome.shell.gschema.xml.in.h:19
#| msgid "Keybinding to open the application menu."
msgid "Keybinding to start/stop the builtin screen recorder."
msgstr "Asociación de teclas para iniciar/detener el grabador de pantalla."
#: ../data/org.gnome.shell.gschema.xml.in.h:20
msgid "Which keyboard to use" msgid "Which keyboard to use"
msgstr "Qué teclado usar" msgstr "Qué teclado usar"
#: ../data/org.gnome.shell.gschema.xml.in.h:19 #: ../data/org.gnome.shell.gschema.xml.in.h:21
msgid "The type of keyboard to use." msgid "The type of keyboard to use."
msgstr "El tipo de teclado que usar." msgstr "El tipo de teclado que usar."
#: ../data/org.gnome.shell.gschema.xml.in.h:20 #: ../data/org.gnome.shell.gschema.xml.in.h:22
msgid "Show time with seconds" msgid "Show time with seconds"
msgstr "Mostrar la hora con segundos" msgstr "Mostrar la hora con segundos"
#: ../data/org.gnome.shell.gschema.xml.in.h:21 #: ../data/org.gnome.shell.gschema.xml.in.h:23
msgid "If true, display seconds in time." msgid "If true, display seconds in time."
msgstr "Si es cierta, muestra los segundos en la hora." msgstr "Si es cierta, muestra los segundos en la hora."
#: ../data/org.gnome.shell.gschema.xml.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.h:24
msgid "Show date in clock" msgid "Show date in clock"
msgstr "Mostrar la fecha en el reloj" msgstr "Mostrar la fecha en el reloj"
#: ../data/org.gnome.shell.gschema.xml.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.h:25
msgid "If true, display date in the clock, in addition to time." msgid "If true, display date in the clock, in addition to time."
msgstr "Si es cierta, muestra la fecha en el reloj, además de la hora." msgstr "Si es cierta, muestra la fecha en el reloj, además de la hora."
#: ../data/org.gnome.shell.gschema.xml.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.h:26
msgid "Framerate used for recording screencasts." msgid "Framerate used for recording screencasts."
msgstr "Tasa de fotogramas usada para grabar «screencast»." msgstr "Tasa de fotogramas usada para grabar «screencast»."
#: ../data/org.gnome.shell.gschema.xml.in.h:25 #: ../data/org.gnome.shell.gschema.xml.in.h:27
msgid "" msgid ""
"The framerate of the resulting screencast recordered by GNOME Shell's " "The framerate of the resulting screencast recordered by GNOME Shell's "
"screencast recorder in frames-per-second." "screencast recorder in frames-per-second."
@ -176,11 +186,11 @@ msgstr ""
"La tasa de fotogramas de la grabación resultante grabada por el grabador de " "La tasa de fotogramas de la grabación resultante grabada por el grabador de "
"«screencast» de GNOME Shell, en fotogramas por segundo." "«screencast» de GNOME Shell, en fotogramas por segundo."
#: ../data/org.gnome.shell.gschema.xml.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.h:28
msgid "The gstreamer pipeline used to encode the screencast" msgid "The gstreamer pipeline used to encode the screencast"
msgstr "La tubería de gstreamer usada para codificar el «screencast»" msgstr "La tubería de gstreamer usada para codificar el «screencast»"
#: ../data/org.gnome.shell.gschema.xml.in.h:28 #: ../data/org.gnome.shell.gschema.xml.in.h:30
#, no-c-format #, no-c-format
msgid "" msgid ""
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax " "Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
@ -195,22 +205,22 @@ msgid ""
"thread count on the system." "thread count on the system."
msgstr "" msgstr ""
"Establece la tubería GStreamer usada para codificar grabaciones. Sigue la " "Establece la tubería GStreamer usada para codificar grabaciones. Sigue la "
"sintaxis usada para gst-launch. La tubería debería tener un sumidero " "sintaxis usada para gst-launch. La tubería debería tener un sumidero («sink») "
"(«sink») desconectado donde grabar el vídeo que se está grabando. " "desconectado donde grabar el vídeo que se está grabando. Generalmente tendrá "
"Generalmente tendrá un punto de origen desconectado; la salida de ese punto " "un punto de origen desconectado; la salida de ese punto se escribirá en el "
"se escribirá en el archivo de salida. Sin embargo, la tubería también puede " "archivo de salida. Sin embargo, la tubería también puede tomar parte en su "
"tomar parte en su propia salida; esto se puede usar para enviar la salida a " "propia salida; esto se puede usar para enviar la salida a un servidor "
"un servidor «icecast» a través de shout2send o similar. Cuando no está " "«icecast» a través de shout2send o similar. Cuando no está establecido o lo "
"establecido o lo está a un valor vacío, se usará la tubería predeterminada. " "está a un valor vacío, se usará la tubería predeterminada. Actualmente es "
"Actualmente es «'vp8enc quality=8 speed=6 threads=%T ! queue ! webmmux» y " "«'vp8enc quality=8 speed=6 threads=%T ! queue ! webmmux» y graba en WEBM "
"graba en WEBM usando el códec VP8. Se usa %T como marcador de posición para " "usando el códec VP8. Se usa %T como marcador de posición para el número de "
"el número de hilos óptimos en el sistema." "hilos óptimos en el sistema."
#: ../data/org.gnome.shell.gschema.xml.in.h:29 #: ../data/org.gnome.shell.gschema.xml.in.h:31
msgid "File extension used for storing the screencast" msgid "File extension used for storing the screencast"
msgstr "Extensión de archivo que usar para almacenar los «screencast»" msgstr "Extensión de archivo que usar para almacenar los «screencast»"
#: ../data/org.gnome.shell.gschema.xml.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.h:32
msgid "" msgid ""
"The filename for recorded screencasts will be a unique filename based on the " "The filename for recorded screencasts will be a unique filename based on the "
"current date, and use this extension. It should be changed when recording to " "current date, and use this extension. It should be changed when recording to "
@ -234,40 +244,40 @@ msgid "Select an extension to configure using the combobox above."
msgstr "" msgstr ""
"Seleccione una extensión que configurar usando la caja combinada de arriba." "Seleccione una extensión que configurar usando la caja combinada de arriba."
#: ../js/gdm/loginDialog.js:624 #: ../js/gdm/loginDialog.js:627
msgid "Session..." msgid "Session..."
msgstr "Sesión…" msgstr "Sesión…"
#: ../js/gdm/loginDialog.js:786 #: ../js/gdm/loginDialog.js:789
msgctxt "title" msgctxt "title"
msgid "Sign In" msgid "Sign In"
msgstr "Iniciar sesión" msgstr "Iniciar sesión"
#. Translators: this message is shown below the password entry field #. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead #. to indicate the user can swipe their finger instead
#: ../js/gdm/loginDialog.js:831 #: ../js/gdm/loginDialog.js:834
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(o pase el dedo)" msgstr "(o pase el dedo)"
#. 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:852 #: ../js/gdm/loginDialog.js:855
msgid "Not listed?" msgid "Not listed?"
msgstr "¿No está en la lista?" msgstr "¿No está en la lista?"
#: ../js/gdm/loginDialog.js:1020 ../js/ui/endSessionDialog.js:401 #: ../js/gdm/loginDialog.js:1023 ../js/ui/endSessionDialog.js:401
#: ../js/ui/extensionSystem.js:399 ../js/ui/networkAgent.js:153 #: ../js/ui/extensionSystem.js:400 ../js/ui/networkAgent.js:153
#: ../js/ui/polkitAuthenticationAgent.js:175 ../js/ui/status/bluetooth.js:462 #: ../js/ui/polkitAuthenticationAgent.js:175 ../js/ui/status/bluetooth.js:462
msgid "Cancel" msgid "Cancel"
msgstr "Cancelar" msgstr "Cancelar"
#: ../js/gdm/loginDialog.js:1025 #: ../js/gdm/loginDialog.js:1028
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Iniciar sesión" msgstr "Iniciar sesión"
#: ../js/gdm/loginDialog.js:1377 #: ../js/gdm/loginDialog.js:1380
msgid "Login Window" msgid "Login Window"
msgstr "Ventana de inicio de sesión" msgstr "Ventana de inicio de sesión"
@ -668,11 +678,11 @@ msgstr[1] "El sistema se reiniciará automáticamente en %d segundos."
msgid "Restarting the system." msgid "Restarting the system."
msgstr "Reiniciando el sistema." msgstr "Reiniciando el sistema."
#: ../js/ui/extensionSystem.js:403 #: ../js/ui/extensionSystem.js:404
msgid "Install" msgid "Install"
msgstr "Instalar" msgstr "Instalar"
#: ../js/ui/extensionSystem.js:407 #: ../js/ui/extensionSystem.js:408
#, c-format #, c-format
msgid "Download and install '%s' from extensions.gnome.org?" msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "¿Descargar e instalar «%s» desde extensions.gnome.org?" msgstr "¿Descargar e instalar «%s» desde extensions.gnome.org?"
@ -681,7 +691,8 @@ msgstr "¿Descargar e instalar «%s» desde extensions.gnome.org?"
msgid "tray" msgid "tray"
msgstr "bandeja" msgstr "bandeja"
#: ../js/ui/keyboard.js:544 ../js/ui/status/power.js:203 #: ../js/ui/keyboard.js:544 ../js/ui/status/keyboard.js:44
#: ../js/ui/status/power.js:203
msgid "Keyboard" msgid "Keyboard"
msgstr "Teclado" msgstr "Teclado"
@ -717,7 +728,7 @@ msgstr "Activado"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:808 ../src/gvc/gvc-mixer-control.c:1093 #: ../js/ui/lookingGlass.js:808 ../src/gvc/gvc-mixer-control.c:1082
msgid "Disabled" msgid "Disabled"
msgstr "Desactivado" msgstr "Desactivado"
@ -742,7 +753,7 @@ msgid "Web Page"
msgstr "Página web" msgstr "Página web"
#. Translators: this is a filename used for screencast recording #. Translators: this is a filename used for screencast recording
#: ../js/ui/main.js:118 #: ../js/ui/main.js:121
#, no-c-format #, no-c-format
msgid "Screencast from %d %t" msgid "Screencast from %d %t"
msgstr "Screencast desde %d %t" msgstr "Screencast desde %d %t"
@ -805,8 +816,8 @@ msgstr "La red inalámbrica requiere autenticación"
#: ../js/ui/networkAgent.js:330 #: ../js/ui/networkAgent.js:330
#, c-format #, c-format
msgid "" msgid ""
"Passwords or encryption keys are required to access the wireless network " "Passwords or encryption keys are required to access the wireless network '%"
"'%s'." "s'."
msgstr "" msgstr ""
"Se necesitan contraseñas o claves de cifrado para acceder a la red " "Se necesitan contraseñas o claves de cifrado para acceder a la red "
"inalámbrica «%s»." "inalámbrica «%s»."
@ -934,7 +945,7 @@ msgstr "Introduzca un comando:"
msgid "Searching..." msgid "Searching..."
msgstr "Buscando…" msgstr "Buscando…"
#: ../js/ui/searchDisplay.js:414 #: ../js/ui/searchDisplay.js:415
msgid "No matching results." msgid "No matching results."
msgstr "No se encontró ningún resultado coincidente." msgstr "No se encontró ningún resultado coincidente."
@ -1092,7 +1103,7 @@ msgstr "Conceder acceso siempre"
msgid "Grant this time only" msgid "Grant this time only"
msgstr "Conceder sólo esta vez" msgstr "Conceder sólo esta vez"
#: ../js/ui/status/bluetooth.js:382 ../js/ui/telepathyClient.js:1091 #: ../js/ui/status/bluetooth.js:382 ../js/ui/telepathyClient.js:1093
msgid "Reject" msgid "Reject"
msgstr "Rechazar" msgstr "Rechazar"
@ -1409,35 +1420,35 @@ msgstr "%s está ocupado/a."
#. Translators: this is a time format string followed by a date. #. Translators: this is a time format string followed by a date.
#. If applicable, replace %X with a strftime format valid for your #. If applicable, replace %X with a strftime format valid for your
#. locale, without seconds. #. locale, without seconds.
#: ../js/ui/telepathyClient.js:887 #: ../js/ui/telepathyClient.js:889
#, no-c-format #, no-c-format
msgid "Sent at <b>%X</b> on <b>%A</b>" msgid "Sent at <b>%X</b> on <b>%A</b>"
msgstr "Enviado el <b>%A</b> a las <b>%H:%M</b>" msgstr "Enviado el <b>%A</b> a las <b>%H:%M</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25", #. Translators: this is a time format in the style of "Wednesday, May 25",
#. shown when you get a chat message in the same year. #. shown when you get a chat message in the same year.
#: ../js/ui/telepathyClient.js:893 #: ../js/ui/telepathyClient.js:895
#, no-c-format #, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>" msgid "Sent on <b>%A</b>, <b>%B %d</b>"
msgstr "Enviado el <b>%A</b>, <b>%d de %B</b>" msgstr "Enviado el <b>%A</b>, <b>%d de %B</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012", #. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
#. shown when you get a chat message in a different year. #. shown when you get a chat message in a different year.
#: ../js/ui/telepathyClient.js:898 #: ../js/ui/telepathyClient.js:900
#, no-c-format #, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y" msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
msgstr "Enviado el <b>%A</b>, <b>%d de %B</b> de %Y" msgstr "Enviado el <b>%A</b>, <b>%d de %B</b> de %Y"
#. 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/telepathyClient.js:940 #: ../js/ui/telepathyClient.js:942
#, c-format #, c-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "Ahora %s se llama %s" msgstr "Ahora %s se llama %s"
#. translators: argument is a room name like #. translators: argument is a room name like
#. * room@jabber.org for example. #. * room@jabber.org for example.
#: ../js/ui/telepathyClient.js:1042 #: ../js/ui/telepathyClient.js:1044
#, c-format #, c-format
msgid "Invitation to %s" msgid "Invitation to %s"
msgstr "Invitación a %s" msgstr "Invitación a %s"
@ -1445,35 +1456,35 @@ msgstr "Invitación a %s"
#. translators: first argument is the name of a contact and the second #. translators: first argument is the name of a contact and the second
#. * one the name of a room. "Alice is inviting you to join room@jabber.org #. * one the name of a room. "Alice is inviting you to join room@jabber.org
#. * for example. #. * for example.
#: ../js/ui/telepathyClient.js:1050 #: ../js/ui/telepathyClient.js:1052
#, c-format #, c-format
msgid "%s is inviting you to join %s" msgid "%s is inviting you to join %s"
msgstr "%s le está invitando a unirse a %s" msgstr "%s le está invitando a unirse a %s"
#: ../js/ui/telepathyClient.js:1052 ../js/ui/telepathyClient.js:1131 #: ../js/ui/telepathyClient.js:1054 ../js/ui/telepathyClient.js:1133
#: ../js/ui/telepathyClient.js:1229 #: ../js/ui/telepathyClient.js:1231
msgid "Decline" msgid "Decline"
msgstr "Rechazar" msgstr "Rechazar"
#: ../js/ui/telepathyClient.js:1053 ../js/ui/telepathyClient.js:1132 #: ../js/ui/telepathyClient.js:1055 ../js/ui/telepathyClient.js:1134
#: ../js/ui/telepathyClient.js:1230 #: ../js/ui/telepathyClient.js:1232
msgid "Accept" msgid "Accept"
msgstr "Aceptar" msgstr "Aceptar"
#. translators: argument is a contact name like Alice for example. #. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1083 #: ../js/ui/telepathyClient.js:1085
#, c-format #, c-format
msgid "Video call from %s" msgid "Video call from %s"
msgstr "Videollamada de %s" msgstr "Videollamada de %s"
#. translators: argument is a contact name like Alice for example. #. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1086 #: ../js/ui/telepathyClient.js:1088
#, c-format #, c-format
msgid "Call from %s" msgid "Call from %s"
msgstr "Llamada de %s" msgstr "Llamada de %s"
#. translators: this is a button label (verb), not a noun #. translators: this is a button label (verb), not a noun
#: ../js/ui/telepathyClient.js:1093 #: ../js/ui/telepathyClient.js:1095
msgid "Answer" msgid "Answer"
msgstr "Responder" msgstr "Responder"
@ -1482,112 +1493,112 @@ msgstr "Responder"
#. * file name. The string will be something #. * file name. The string will be something
#. * like: "Alice is sending you test.ogg" #. * like: "Alice is sending you test.ogg"
#. #.
#: ../js/ui/telepathyClient.js:1125 #: ../js/ui/telepathyClient.js:1127
#, c-format #, c-format
msgid "%s is sending you %s" msgid "%s is sending you %s"
msgstr "%s le está enviando %s" msgstr "%s le está enviando %s"
#. To translators: The parameter is the contact's alias #. To translators: The parameter is the contact's alias
#: ../js/ui/telepathyClient.js:1194 #: ../js/ui/telepathyClient.js:1196
#, c-format #, c-format
msgid "%s would like permission to see when you are online" msgid "%s would like permission to see when you are online"
msgstr "%s solicita permiso para ver cuándo está en línea" msgstr "%s solicita permiso para ver cuándo está en línea"
#: ../js/ui/telepathyClient.js:1287 #: ../js/ui/telepathyClient.js:1289
msgid "Network error" msgid "Network error"
msgstr "Error de la red" msgstr "Error de la red"
#: ../js/ui/telepathyClient.js:1289 #: ../js/ui/telepathyClient.js:1291
msgid "Authentication failed" msgid "Authentication failed"
msgstr "Falló la autenticación" msgstr "Falló la autenticación"
#: ../js/ui/telepathyClient.js:1291 #: ../js/ui/telepathyClient.js:1293
msgid "Encryption error" msgid "Encryption error"
msgstr "Error de cifrado" msgstr "Error de cifrado"
#: ../js/ui/telepathyClient.js:1293 #: ../js/ui/telepathyClient.js:1295
msgid "Certificate not provided" msgid "Certificate not provided"
msgstr "Certificado no proporcionado" msgstr "Certificado no proporcionado"
#: ../js/ui/telepathyClient.js:1295 #: ../js/ui/telepathyClient.js:1297
msgid "Certificate untrusted" msgid "Certificate untrusted"
msgstr "No se confía en el certificado" msgstr "No se confía en el certificado"
#: ../js/ui/telepathyClient.js:1297 #: ../js/ui/telepathyClient.js:1299
msgid "Certificate expired" msgid "Certificate expired"
msgstr "Certificado caducado" msgstr "Certificado caducado"
#: ../js/ui/telepathyClient.js:1299 #: ../js/ui/telepathyClient.js:1301
msgid "Certificate not activated" msgid "Certificate not activated"
msgstr "Certificado no activado" msgstr "Certificado no activado"
#: ../js/ui/telepathyClient.js:1301 #: ../js/ui/telepathyClient.js:1303
msgid "Certificate hostname mismatch" msgid "Certificate hostname mismatch"
msgstr "El nombre del servidor dle certificado no coincide" msgstr "El nombre del servidor dle certificado no coincide"
#: ../js/ui/telepathyClient.js:1303 #: ../js/ui/telepathyClient.js:1305
msgid "Certificate fingerprint mismatch" msgid "Certificate fingerprint mismatch"
msgstr "La huella del certificado no coincide" msgstr "La huella del certificado no coincide"
#: ../js/ui/telepathyClient.js:1305 #: ../js/ui/telepathyClient.js:1307
msgid "Certificate self-signed" msgid "Certificate self-signed"
msgstr "Certificado autofirmado" msgstr "Certificado autofirmado"
#: ../js/ui/telepathyClient.js:1307 #: ../js/ui/telepathyClient.js:1309
msgid "Status is set to offline" msgid "Status is set to offline"
msgstr "El estado está establecido a «desconectado»" msgstr "El estado está establecido a «desconectado»"
#: ../js/ui/telepathyClient.js:1309 #: ../js/ui/telepathyClient.js:1311
msgid "Encryption is not available" msgid "Encryption is not available"
msgstr "El cifrado no está disponible" msgstr "El cifrado no está disponible"
#: ../js/ui/telepathyClient.js:1311 #: ../js/ui/telepathyClient.js:1313
msgid "Certificate is invalid" msgid "Certificate is invalid"
msgstr "El certificado no es válido" msgstr "El certificado no es válido"
#: ../js/ui/telepathyClient.js:1313 #: ../js/ui/telepathyClient.js:1315
msgid "Connection has been refused" msgid "Connection has been refused"
msgstr "Se ha rechazado la conexión" msgstr "Se ha rechazado la conexión"
#: ../js/ui/telepathyClient.js:1315 #: ../js/ui/telepathyClient.js:1317
msgid "Connection can't be established" msgid "Connection can't be established"
msgstr "No se puede establecer la conexión" msgstr "No se puede establecer la conexión"
#: ../js/ui/telepathyClient.js:1317 #: ../js/ui/telepathyClient.js:1319
msgid "Connection has been lost" msgid "Connection has been lost"
msgstr "Se ha perdido la conexión" msgstr "Se ha perdido la conexión"
#: ../js/ui/telepathyClient.js:1319 #: ../js/ui/telepathyClient.js:1321
msgid "This account is already connected to the server" msgid "This account is already connected to the server"
msgstr "Esta cuenta ya está conectada al servidor" msgstr "Esta cuenta ya está conectada al servidor"
#: ../js/ui/telepathyClient.js:1321 #: ../js/ui/telepathyClient.js:1323
msgid "" msgid ""
"Connection has been replaced by a new connection using the same resource" "Connection has been replaced by a new connection using the same resource"
msgstr "" msgstr ""
"Se ha sustituido la conexión por una nueva conexión usando el mismo recurso" "Se ha sustituido la conexión por una nueva conexión usando el mismo recurso"
#: ../js/ui/telepathyClient.js:1323 #: ../js/ui/telepathyClient.js:1325
msgid "The account already exists on the server" msgid "The account already exists on the server"
msgstr "La cuenta ya existe en el servidor" msgstr "La cuenta ya existe en el servidor"
#: ../js/ui/telepathyClient.js:1325 #: ../js/ui/telepathyClient.js:1327
msgid "Server is currently too busy to handle the connection" msgid "Server is currently too busy to handle the connection"
msgstr "" msgstr ""
"Actualmente el servidor está muy ocupado intentando gestionar la conexión" "Actualmente el servidor está muy ocupado intentando gestionar la conexión"
#: ../js/ui/telepathyClient.js:1327 #: ../js/ui/telepathyClient.js:1329
msgid "Certificate has been revoked" msgid "Certificate has been revoked"
msgstr "Se ha revocado el certificado" msgstr "Se ha revocado el certificado"
#: ../js/ui/telepathyClient.js:1329 #: ../js/ui/telepathyClient.js:1331
msgid "" msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak" "Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr "" msgstr ""
"El certificado usa un algoritmo de cifrado inseguro o es criptográficamente " "El certificado usa un algoritmo de cifrado inseguro o es criptográficamente "
"débil" "débil"
#: ../js/ui/telepathyClient.js:1331 #: ../js/ui/telepathyClient.js:1333
msgid "" msgid ""
"The length of the server certificate, or the depth of the server certificate " "The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library" "chain, exceed the limits imposed by the cryptography library"
@ -1596,26 +1607,26 @@ msgstr ""
"certificado del servidor exceden los límites impuestos por la biblioteca de " "certificado del servidor exceden los límites impuestos por la biblioteca de "
"criptografía" "criptografía"
#: ../js/ui/telepathyClient.js:1333 #: ../js/ui/telepathyClient.js:1335
msgid "Internal error" msgid "Internal error"
msgstr "Error interno" msgstr "Error interno"
#. translators: argument is the account name, like #. translators: argument is the account name, like
#. * name@jabber.org for example. #. * name@jabber.org for example.
#: ../js/ui/telepathyClient.js:1343 #: ../js/ui/telepathyClient.js:1345
#, c-format #, c-format
msgid "Connection to %s failed" msgid "Connection to %s failed"
msgstr "Falló la conexión a %s" msgstr "Falló la conexión a %s"
#: ../js/ui/telepathyClient.js:1352 #: ../js/ui/telepathyClient.js:1354
msgid "Reconnect" msgid "Reconnect"
msgstr "Reconectar" msgstr "Reconectar"
#: ../js/ui/telepathyClient.js:1353 #: ../js/ui/telepathyClient.js:1355
msgid "Edit account" msgid "Edit account"
msgstr "Editar cuenta" msgstr "Editar cuenta"
#: ../js/ui/telepathyClient.js:1399 #: ../js/ui/telepathyClient.js:1401
msgid "Unknown reason" msgid "Unknown reason"
msgstr "Razón desconocida" msgstr "Razón desconocida"
@ -1709,7 +1720,7 @@ msgstr "«%s» está preparado"
#. 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:1100 #: ../src/gvc/gvc-mixer-control.c:1089
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1718,14 +1729,14 @@ msgstr[1] "%u salidas"
#. 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:1110 #: ../src/gvc/gvc-mixer-control.c:1099
#, 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:1408 #: ../src/gvc/gvc-mixer-control.c:1397
msgid "System Sounds" msgid "System Sounds"
msgstr "Sonidos del sistema" msgstr "Sonidos del sistema"
@ -2059,8 +2070,8 @@ msgstr "%1$s: %2$s"
#~ "If true and format is either \"12-hour\" or \"24-hour\", display seconds " #~ "If true and format is either \"12-hour\" or \"24-hour\", display seconds "
#~ "in time." #~ "in time."
#~ msgstr "" #~ msgstr ""
#~ "Si es cierta y el formato es «12-horas» o «24-horas», muestra los " #~ "Si es cierta y el formato es «12-horas» o «24-horas», muestra los segundos "
#~ "segundos en la hora." #~ "en la hora."
#~ msgid "" #~ msgid ""
#~ "This key specifies the format used by the panel clock when the format key " #~ "This key specifies the format used by the panel clock when the format key "
@ -2077,19 +2088,18 @@ msgstr "%1$s: %2$s"
#~ msgid "" #~ msgid ""
#~ "This key specifies the hour format used by the panel clock. Possible " #~ "This key specifies the hour format used by the panel clock. Possible "
#~ "values are \"12-hour\", \"24-hour\", \"unix\" and \"custom\". If set to " #~ "values are \"12-hour\", \"24-hour\", \"unix\" and \"custom\". If set to "
#~ "\"unix\", the clock will display time in seconds since Epoch, i.e. " #~ "\"unix\", the clock will display time in seconds since Epoch, i.e. 1970-"
#~ "1970-01-01. If set to \"custom\", the clock will display time according " #~ "01-01. If set to \"custom\", the clock will display time according to the "
#~ "to the format specified in the custom_format key. Note that if set to " #~ "format specified in the custom_format key. Note that if set to either "
#~ "either \"unix\" or \"custom\", the show_date and show_seconds keys are " #~ "\"unix\" or \"custom\", the show_date and show_seconds keys are ignored."
#~ "ignored."
#~ msgstr "" #~ msgstr ""
#~ "Esta clave especifica el formato de la hora especificado por el reloj del " #~ "Esta clave especifica el formato de la hora especificado por el reloj del "
#~ "panel. Los valores posibles son «12-hour» (12 horas), «24-hour» (24 " #~ "panel. Los valores posibles son «12-hour» (12 horas), «24-hour» (24 horas), "
#~ "horas), «unix» y «custom» (personalizado).Si se establece a «unix» el " #~ "«unix» y «custom» (personalizado).Si se establece a «unix» el reloj mostrará "
#~ "reloj mostrará la hora en segundos desde la época (1 de enero de 1970). " #~ "la hora en segundos desde la época (1 de enero de 1970). Si se establece "
#~ "Si se establece a «custom» el reloj mostrará la hora según el formato " #~ "a «custom» el reloj mostrará la hora según el formato especificado en la "
#~ "especificado en la clave «custom_format». Note que si se establece a " #~ "clave «custom_format». Note que si se establece a «unix» o «custom» se "
#~ "«unix» o «custom» se ignoran las claves «show_date» y «show_seconds»." #~ "ignoran las claves «show_date» y «show_seconds»."
#~ msgid "Clock Format" #~ msgid "Clock Format"
#~ msgstr "Formato del reloj" #~ msgstr "Formato del reloj"

160
po/gl.po

@ -12,8 +12,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: 2012-03-31 00:07+0200\n" "POT-Creation-Date: 2012-04-27 17:06+0200\n"
"PO-Revision-Date: 2012-03-31 00:08+0200\n" "PO-Revision-Date: 2012-04-27 17:07+0200\n"
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n" "Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
"Language-Team: Galician <gnome-l10n-gl@gnome.org>\n" "Language-Team: Galician <gnome-l10n-gl@gnome.org>\n"
"Language: gl\n" "Language: gl\n"
@ -144,34 +144,43 @@ msgid "Keybinding to open the application menu."
msgstr "Combinación de teclas para abrir o menú de aplicativo." msgstr "Combinación de teclas para abrir o menú de aplicativo."
#: ../data/org.gnome.shell.gschema.xml.in.h:18 #: ../data/org.gnome.shell.gschema.xml.in.h:18
msgid "Keybinding to toggle the screen recorder"
msgstr "Combinación de teclas para trocar a gravadora de pantalla"
#: ../data/org.gnome.shell.gschema.xml.in.h:19
msgid "Keybinding to start/stop the builtin screen recorder."
msgstr ""
"Combinación de teclas para iniciar/deter a gravadora de pantalla incrustada."
#: ../data/org.gnome.shell.gschema.xml.in.h:20
msgid "Which keyboard to use" msgid "Which keyboard to use"
msgstr "Que teclado usar" msgstr "Que teclado usar"
#: ../data/org.gnome.shell.gschema.xml.in.h:19 #: ../data/org.gnome.shell.gschema.xml.in.h:21
msgid "The type of keyboard to use." msgid "The type of keyboard to use."
msgstr "O tipo de teclado a usar." msgstr "O tipo de teclado a usar."
#: ../data/org.gnome.shell.gschema.xml.in.h:20 #: ../data/org.gnome.shell.gschema.xml.in.h:22
msgid "Show time with seconds" msgid "Show time with seconds"
msgstr "Mostrar a hora con segundos" msgstr "Mostrar a hora con segundos"
#: ../data/org.gnome.shell.gschema.xml.in.h:21 #: ../data/org.gnome.shell.gschema.xml.in.h:23
msgid "If true, display seconds in time." msgid "If true, display seconds in time."
msgstr "Se é certa, móstranse os segundos na hora." msgstr "Se é certa, móstranse os segundos na hora."
#: ../data/org.gnome.shell.gschema.xml.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.h:24
msgid "Show date in clock" msgid "Show date in clock"
msgstr "Mostrar a data no reloxo" msgstr "Mostrar a data no reloxo"
#: ../data/org.gnome.shell.gschema.xml.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.h:25
msgid "If true, display date in the clock, in addition to time." msgid "If true, display date in the clock, in addition to time."
msgstr "Se é certa, móstrase a data no reloxo, ademais da hora." msgstr "Se é certa, móstrase a data no reloxo, ademais da hora."
#: ../data/org.gnome.shell.gschema.xml.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.h:26
msgid "Framerate used for recording screencasts." msgid "Framerate used for recording screencasts."
msgstr "Taxa de marcos usada para gravar «screencast»." msgstr "Taxa de marcos usada para gravar «screencast»."
#: ../data/org.gnome.shell.gschema.xml.in.h:25 #: ../data/org.gnome.shell.gschema.xml.in.h:27
msgid "" msgid ""
"The framerate of the resulting screencast recordered by GNOME Shell's " "The framerate of the resulting screencast recordered by GNOME Shell's "
"screencast recorder in frames-per-second." "screencast recorder in frames-per-second."
@ -179,11 +188,11 @@ msgstr ""
"A taxa de marcos da grabación resultante grabada polo grabador de " "A taxa de marcos da grabación resultante grabada polo grabador de "
"«screencast» de GNOME Shell, en marcos por segundo." "«screencast» de GNOME Shell, en marcos por segundo."
#: ../data/org.gnome.shell.gschema.xml.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.h:28
msgid "The gstreamer pipeline used to encode the screencast" msgid "The gstreamer pipeline used to encode the screencast"
msgstr "A tubería de gstreamer usada para codificar o «screenast»." msgstr "A tubería de gstreamer usada para codificar o «screenast»."
#: ../data/org.gnome.shell.gschema.xml.in.h:28 #: ../data/org.gnome.shell.gschema.xml.in.h:30
#, no-c-format #, no-c-format
msgid "" msgid ""
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax " "Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
@ -209,11 +218,11 @@ msgstr ""
"códec VP8. Úsase %T como marcador de posición para o número de fillos " "códec VP8. Úsase %T como marcador de posición para o número de fillos "
"óptimos no sistema." "óptimos no sistema."
#: ../data/org.gnome.shell.gschema.xml.in.h:29 #: ../data/org.gnome.shell.gschema.xml.in.h:31
msgid "File extension used for storing the screencast" msgid "File extension used for storing the screencast"
msgstr "Extensión de ficheiro que usar para almacenar os «screencast»" msgstr "Extensión de ficheiro que usar para almacenar os «screencast»"
#: ../data/org.gnome.shell.gschema.xml.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.h:32
msgid "" msgid ""
"The filename for recorded screencasts will be a unique filename based on the " "The filename for recorded screencasts will be a unique filename based on the "
"current date, and use this extension. It should be changed when recording to " "current date, and use this extension. It should be changed when recording to "
@ -237,40 +246,40 @@ msgid "Select an extension to configure using the combobox above."
msgstr "" msgstr ""
"Seleccione unha extensión que configurar usando a caixa combinada de arriba." "Seleccione unha extensión que configurar usando a caixa combinada de arriba."
#: ../js/gdm/loginDialog.js:624 #: ../js/gdm/loginDialog.js:627
msgid "Session..." msgid "Session..."
msgstr "Sesión…" msgstr "Sesión…"
#: ../js/gdm/loginDialog.js:786 #: ../js/gdm/loginDialog.js:789
msgctxt "title" msgctxt "title"
msgid "Sign In" msgid "Sign In"
msgstr "Iniciar sesión" msgstr "Iniciar sesión"
#. Translators: this message is shown below the password entry field #. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead #. to indicate the user can swipe their finger instead
#: ../js/gdm/loginDialog.js:831 #: ../js/gdm/loginDialog.js:834
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(ou pase o dedo)" msgstr "(ou pase o dedo)"
#. 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:852 #: ../js/gdm/loginDialog.js:855
msgid "Not listed?" msgid "Not listed?"
msgstr "Non está na lista?" msgstr "Non está na lista?"
#: ../js/gdm/loginDialog.js:1020 ../js/ui/endSessionDialog.js:401 #: ../js/gdm/loginDialog.js:1023 ../js/ui/endSessionDialog.js:401
#: ../js/ui/extensionSystem.js:399 ../js/ui/networkAgent.js:153 #: ../js/ui/extensionSystem.js:400 ../js/ui/networkAgent.js:153
#: ../js/ui/polkitAuthenticationAgent.js:175 ../js/ui/status/bluetooth.js:462 #: ../js/ui/polkitAuthenticationAgent.js:175 ../js/ui/status/bluetooth.js:462
msgid "Cancel" msgid "Cancel"
msgstr "Cancelar" msgstr "Cancelar"
#: ../js/gdm/loginDialog.js:1025 #: ../js/gdm/loginDialog.js:1028
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Iniciar sesión" msgstr "Iniciar sesión"
#: ../js/gdm/loginDialog.js:1377 #: ../js/gdm/loginDialog.js:1380
msgid "Login Window" msgid "Login Window"
msgstr "Xanela de inicio de sesión" msgstr "Xanela de inicio de sesión"
@ -670,11 +679,11 @@ msgstr[1] "O seu computador reiniciarase automaticamente en %d segundos."
msgid "Restarting the system." msgid "Restarting the system."
msgstr "Reiniciando o sistema." msgstr "Reiniciando o sistema."
#: ../js/ui/extensionSystem.js:403 #: ../js/ui/extensionSystem.js:404
msgid "Install" msgid "Install"
msgstr "Instalar" msgstr "Instalar"
#: ../js/ui/extensionSystem.js:407 #: ../js/ui/extensionSystem.js:408
#, c-format #, c-format
msgid "Download and install '%s' from extensions.gnome.org?" msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Desexa descargar e instalar «%s» desde extensions.gnome.org?" msgstr "Desexa descargar e instalar «%s» desde extensions.gnome.org?"
@ -683,7 +692,8 @@ msgstr "Desexa descargar e instalar «%s» desde extensions.gnome.org?"
msgid "tray" msgid "tray"
msgstr "área de notificación" msgstr "área de notificación"
#: ../js/ui/keyboard.js:544 ../js/ui/status/power.js:203 #: ../js/ui/keyboard.js:544 ../js/ui/status/keyboard.js:44
#: ../js/ui/status/power.js:203
msgid "Keyboard" msgid "Keyboard"
msgstr "Teclado" msgstr "Teclado"
@ -719,7 +729,7 @@ msgstr "Activado"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:808 ../src/gvc/gvc-mixer-control.c:1093 #: ../js/ui/lookingGlass.js:808 ../src/gvc/gvc-mixer-control.c:1082
msgid "Disabled" msgid "Disabled"
msgstr "Desactivado" msgstr "Desactivado"
@ -744,7 +754,7 @@ msgid "Web Page"
msgstr "Páxina web" msgstr "Páxina web"
#. Translators: this is a filename used for screencast recording #. Translators: this is a filename used for screencast recording
#: ../js/ui/main.js:118 #: ../js/ui/main.js:121
#, no-c-format #, no-c-format
msgid "Screencast from %d %t" msgid "Screencast from %d %t"
msgstr "Screencast desde %d %t" msgstr "Screencast desde %d %t"
@ -924,7 +934,7 @@ msgstr "Desculpe, iso non funcionou. Ténteo de novo."
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle #. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will #. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches. #. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:724 #: ../js/ui/popupMenu.js:728
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
@ -936,7 +946,7 @@ msgstr "Escriba unha orde:"
msgid "Searching..." msgid "Searching..."
msgstr "Buscando…" msgstr "Buscando…"
#: ../js/ui/searchDisplay.js:414 #: ../js/ui/searchDisplay.js:415
msgid "No matching results." msgid "No matching results."
msgstr "Non hai resultados que coincidan." msgstr "Non hai resultados que coincidan."
@ -1094,7 +1104,7 @@ msgstr "Conceder acceso sempre"
msgid "Grant this time only" msgid "Grant this time only"
msgstr "Conceder só esta vez" msgstr "Conceder só esta vez"
#: ../js/ui/status/bluetooth.js:382 ../js/ui/telepathyClient.js:1091 #: ../js/ui/status/bluetooth.js:382 ../js/ui/telepathyClient.js:1093
msgid "Reject" msgid "Reject"
msgstr "Rexeitar" msgstr "Rexeitar"
@ -1411,35 +1421,35 @@ msgstr "%s está ocupado/a."
#. Translators: this is a time format string followed by a date. #. Translators: this is a time format string followed by a date.
#. If applicable, replace %X with a strftime format valid for your #. If applicable, replace %X with a strftime format valid for your
#. locale, without seconds. #. locale, without seconds.
#: ../js/ui/telepathyClient.js:887 #: ../js/ui/telepathyClient.js:889
#, no-c-format #, no-c-format
msgid "Sent at <b>%X</b> on <b>%A</b>" msgid "Sent at <b>%X</b> on <b>%A</b>"
msgstr "Enviado ás <b>%X</b> o <b>%A</b>" msgstr "Enviado ás <b>%X</b> o <b>%A</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25", #. Translators: this is a time format in the style of "Wednesday, May 25",
#. shown when you get a chat message in the same year. #. shown when you get a chat message in the same year.
#: ../js/ui/telepathyClient.js:893 #: ../js/ui/telepathyClient.js:895
#, no-c-format #, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>" msgid "Sent on <b>%A</b>, <b>%B %d</b>"
msgstr "Enviado ás <b>%X</b> o <b>%B %d</b>" msgstr "Enviado ás <b>%X</b> o <b>%B %d</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012", #. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
#. shown when you get a chat message in a different year. #. shown when you get a chat message in a different year.
#: ../js/ui/telepathyClient.js:898 #: ../js/ui/telepathyClient.js:900
#, no-c-format #, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y" msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
msgstr "Enviado ás <b>%X</b> o <b>%B %d</b>, %Y" msgstr "Enviado ás <b>%X</b> o <b>%B %d</b>, %Y"
#. 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/telepathyClient.js:940 #: ../js/ui/telepathyClient.js:942
#, c-format #, c-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "Agora %s chámase %s" msgstr "Agora %s chámase %s"
#. translators: argument is a room name like #. translators: argument is a room name like
#. * room@jabber.org for example. #. * room@jabber.org for example.
#: ../js/ui/telepathyClient.js:1042 #: ../js/ui/telepathyClient.js:1044
#, c-format #, c-format
msgid "Invitation to %s" msgid "Invitation to %s"
msgstr "Convite a %s" msgstr "Convite a %s"
@ -1447,35 +1457,35 @@ msgstr "Convite a %s"
#. translators: first argument is the name of a contact and the second #. translators: first argument is the name of a contact and the second
#. * one the name of a room. "Alice is inviting you to join room@jabber.org #. * one the name of a room. "Alice is inviting you to join room@jabber.org
#. * for example. #. * for example.
#: ../js/ui/telepathyClient.js:1050 #: ../js/ui/telepathyClient.js:1052
#, c-format #, c-format
msgid "%s is inviting you to join %s" msgid "%s is inviting you to join %s"
msgstr "%s estalle convidando a unirse a %s" msgstr "%s estalle convidando a unirse a %s"
#: ../js/ui/telepathyClient.js:1052 ../js/ui/telepathyClient.js:1131 #: ../js/ui/telepathyClient.js:1054 ../js/ui/telepathyClient.js:1133
#: ../js/ui/telepathyClient.js:1229 #: ../js/ui/telepathyClient.js:1231
msgid "Decline" msgid "Decline"
msgstr "Rexeitar" msgstr "Rexeitar"
#: ../js/ui/telepathyClient.js:1053 ../js/ui/telepathyClient.js:1132 #: ../js/ui/telepathyClient.js:1055 ../js/ui/telepathyClient.js:1134
#: ../js/ui/telepathyClient.js:1230 #: ../js/ui/telepathyClient.js:1232
msgid "Accept" msgid "Accept"
msgstr "Aceptar" msgstr "Aceptar"
#. translators: argument is a contact name like Alice for example. #. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1083 #: ../js/ui/telepathyClient.js:1085
#, c-format #, c-format
msgid "Video call from %s" msgid "Video call from %s"
msgstr "Videochamada de %s" msgstr "Videochamada de %s"
#. translators: argument is a contact name like Alice for example. #. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1086 #: ../js/ui/telepathyClient.js:1088
#, c-format #, c-format
msgid "Call from %s" msgid "Call from %s"
msgstr "Chamada de %s" msgstr "Chamada de %s"
#. translators: this is a button label (verb), not a noun #. translators: this is a button label (verb), not a noun
#: ../js/ui/telepathyClient.js:1093 #: ../js/ui/telepathyClient.js:1095
msgid "Answer" msgid "Answer"
msgstr "Responder" msgstr "Responder"
@ -1484,112 +1494,112 @@ msgstr "Responder"
#. * file name. The string will be something #. * file name. The string will be something
#. * like: "Alice is sending you test.ogg" #. * like: "Alice is sending you test.ogg"
#. #.
#: ../js/ui/telepathyClient.js:1125 #: ../js/ui/telepathyClient.js:1127
#, c-format #, c-format
msgid "%s is sending you %s" msgid "%s is sending you %s"
msgstr "%s esta enviándolle %s" msgstr "%s esta enviándolle %s"
#. To translators: The parameter is the contact's alias #. To translators: The parameter is the contact's alias
#: ../js/ui/telepathyClient.js:1194 #: ../js/ui/telepathyClient.js:1196
#, c-format #, c-format
msgid "%s would like permission to see when you are online" msgid "%s would like permission to see when you are online"
msgstr "%s solicítalle permiso para ver cando está en liña" msgstr "%s solicítalle permiso para ver cando está en liña"
#: ../js/ui/telepathyClient.js:1287 #: ../js/ui/telepathyClient.js:1289
msgid "Network error" msgid "Network error"
msgstr "Erro da rede" msgstr "Erro da rede"
#: ../js/ui/telepathyClient.js:1289 #: ../js/ui/telepathyClient.js:1291
msgid "Authentication failed" msgid "Authentication failed"
msgstr "Fallou a autenticación" msgstr "Fallou a autenticación"
#: ../js/ui/telepathyClient.js:1291 #: ../js/ui/telepathyClient.js:1293
msgid "Encryption error" msgid "Encryption error"
msgstr "Erro de cifrado" msgstr "Erro de cifrado"
#: ../js/ui/telepathyClient.js:1293 #: ../js/ui/telepathyClient.js:1295
msgid "Certificate not provided" msgid "Certificate not provided"
msgstr "Certificado non fornecido" msgstr "Certificado non fornecido"
#: ../js/ui/telepathyClient.js:1295 #: ../js/ui/telepathyClient.js:1297
msgid "Certificate untrusted" msgid "Certificate untrusted"
msgstr "Non se confía no certificado" msgstr "Non se confía no certificado"
#: ../js/ui/telepathyClient.js:1297 #: ../js/ui/telepathyClient.js:1299
msgid "Certificate expired" msgid "Certificate expired"
msgstr "Certificado caducado" msgstr "Certificado caducado"
#: ../js/ui/telepathyClient.js:1299 #: ../js/ui/telepathyClient.js:1301
msgid "Certificate not activated" msgid "Certificate not activated"
msgstr "Certificado non activado" msgstr "Certificado non activado"
#: ../js/ui/telepathyClient.js:1301 #: ../js/ui/telepathyClient.js:1303
msgid "Certificate hostname mismatch" msgid "Certificate hostname mismatch"
msgstr "O nome do servidor do certificado non coincide" msgstr "O nome do servidor do certificado non coincide"
#: ../js/ui/telepathyClient.js:1303 #: ../js/ui/telepathyClient.js:1305
msgid "Certificate fingerprint mismatch" msgid "Certificate fingerprint mismatch"
msgstr "A pegada do certificado non coincide" msgstr "A pegada do certificado non coincide"
#: ../js/ui/telepathyClient.js:1305 #: ../js/ui/telepathyClient.js:1307
msgid "Certificate self-signed" msgid "Certificate self-signed"
msgstr "Certificado autoasinado" msgstr "Certificado autoasinado"
#: ../js/ui/telepathyClient.js:1307 #: ../js/ui/telepathyClient.js:1309
msgid "Status is set to offline" msgid "Status is set to offline"
msgstr "O estado está definido a «desconectado»" msgstr "O estado está definido a «desconectado»"
#: ../js/ui/telepathyClient.js:1309 #: ../js/ui/telepathyClient.js:1311
msgid "Encryption is not available" msgid "Encryption is not available"
msgstr "O cifrado non está dispoñíbel" msgstr "O cifrado non está dispoñíbel"
#: ../js/ui/telepathyClient.js:1311 #: ../js/ui/telepathyClient.js:1313
msgid "Certificate is invalid" msgid "Certificate is invalid"
msgstr "O certificado non é válido" msgstr "O certificado non é válido"
#: ../js/ui/telepathyClient.js:1313 #: ../js/ui/telepathyClient.js:1315
msgid "Connection has been refused" msgid "Connection has been refused"
msgstr "Rexeitouse a conexión" msgstr "Rexeitouse a conexión"
#: ../js/ui/telepathyClient.js:1315 #: ../js/ui/telepathyClient.js:1317
msgid "Connection can't be established" msgid "Connection can't be established"
msgstr "Non é posíbel estabelecer a conexión" msgstr "Non é posíbel estabelecer a conexión"
#: ../js/ui/telepathyClient.js:1317 #: ../js/ui/telepathyClient.js:1319
msgid "Connection has been lost" msgid "Connection has been lost"
msgstr "Perdeuse a conexión" msgstr "Perdeuse a conexión"
#: ../js/ui/telepathyClient.js:1319 #: ../js/ui/telepathyClient.js:1321
msgid "This account is already connected to the server" msgid "This account is already connected to the server"
msgstr "Esta cuenta xa está conectada ao servidor" msgstr "Esta cuenta xa está conectada ao servidor"
#: ../js/ui/telepathyClient.js:1321 #: ../js/ui/telepathyClient.js:1323
msgid "" msgid ""
"Connection has been replaced by a new connection using the same resource" "Connection has been replaced by a new connection using the same resource"
msgstr "" msgstr ""
"Substituíuse a conexión por unha nova conexión empregando o mesmo recurso" "Substituíuse a conexión por unha nova conexión empregando o mesmo recurso"
#: ../js/ui/telepathyClient.js:1323 #: ../js/ui/telepathyClient.js:1325
msgid "The account already exists on the server" msgid "The account already exists on the server"
msgstr "Esta conta xa existe no servidor" msgstr "Esta conta xa existe no servidor"
#: ../js/ui/telepathyClient.js:1325 #: ../js/ui/telepathyClient.js:1327
msgid "Server is currently too busy to handle the connection" msgid "Server is currently too busy to handle the connection"
msgstr "" msgstr ""
"Nestes intres o servidor está moi ocupado tentando xestionar a conexión" "Nestes intres o servidor está moi ocupado tentando xestionar a conexión"
#: ../js/ui/telepathyClient.js:1327 #: ../js/ui/telepathyClient.js:1329
msgid "Certificate has been revoked" msgid "Certificate has been revoked"
msgstr "Revogouse o certificado" msgstr "Revogouse o certificado"
#: ../js/ui/telepathyClient.js:1329 #: ../js/ui/telepathyClient.js:1331
msgid "" msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak" "Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr "" msgstr ""
"O certificado usa un algoritmo de cifrado inseguro ou é criptográficamente " "O certificado usa un algoritmo de cifrado inseguro ou é criptográficamente "
"débil" "débil"
#: ../js/ui/telepathyClient.js:1331 #: ../js/ui/telepathyClient.js:1333
msgid "" msgid ""
"The length of the server certificate, or the depth of the server certificate " "The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library" "chain, exceed the limits imposed by the cryptography library"
@ -1598,26 +1608,26 @@ msgstr ""
"certificado do servidor excede os límites impostos pola biblioteca de " "certificado do servidor excede os límites impostos pola biblioteca de "
"criptografía." "criptografía."
#: ../js/ui/telepathyClient.js:1333 #: ../js/ui/telepathyClient.js:1335
msgid "Internal error" msgid "Internal error"
msgstr "Erro interno" msgstr "Erro interno"
#. translators: argument is the account name, like #. translators: argument is the account name, like
#. * name@jabber.org for example. #. * name@jabber.org for example.
#: ../js/ui/telepathyClient.js:1343 #: ../js/ui/telepathyClient.js:1345
#, c-format #, c-format
msgid "Connection to %s failed" msgid "Connection to %s failed"
msgstr "Fallou a conexión a %s" msgstr "Fallou a conexión a %s"
#: ../js/ui/telepathyClient.js:1352 #: ../js/ui/telepathyClient.js:1354
msgid "Reconnect" msgid "Reconnect"
msgstr "Reconectar" msgstr "Reconectar"
#: ../js/ui/telepathyClient.js:1353 #: ../js/ui/telepathyClient.js:1355
msgid "Edit account" msgid "Edit account"
msgstr "Editar conta" msgstr "Editar conta"
#: ../js/ui/telepathyClient.js:1399 #: ../js/ui/telepathyClient.js:1401
msgid "Unknown reason" msgid "Unknown reason"
msgstr "Razón descoñecida" msgstr "Razón descoñecida"
@ -1711,7 +1721,7 @@ msgstr "«%s» está preparado"
#. 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:1100 #: ../src/gvc/gvc-mixer-control.c:1089
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1720,14 +1730,14 @@ msgstr[1] "%u saídas"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1110 #: ../src/gvc/gvc-mixer-control.c:1099
#, 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:1408 #: ../src/gvc/gvc-mixer-control.c:1397
msgid "System Sounds" msgid "System Sounds"
msgstr "Sons do sistema" msgstr "Sons do sistema"

301
po/he.po

@ -8,8 +8,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-04-09 22:48+0300\n" "POT-Creation-Date: 2012-04-26 15:30+0300\n"
"PO-Revision-Date: 2012-04-09 22:48+0200\n" "PO-Revision-Date: 2012-04-26 15:30+0200\n"
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n" "Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
"Language-Team: Hebrew <sh.yaron@gmail.com>\n" "Language-Team: Hebrew <sh.yaron@gmail.com>\n"
"Language: he\n" "Language: he\n"
@ -30,131 +30,139 @@ msgid "Window management and application launching"
msgstr "ניהול חלונות והרצת יישומים" msgstr "ניהול חלונות והרצת יישומים"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "Configure GNOME Shell Extensions"
msgstr "הגדרת הרחבות GNOME Shell"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:2
#: ../js/extensionPrefs/main.js:153 #: ../js/extensionPrefs/main.js:153
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "העדפות ההרחבות של GNOME Shell" msgstr "העדפות ההרחבות של GNOME Shell"
#: ../data/org.gnome.shell.gschema.xml.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:2
msgid "Allows access to internal debugging and monitoring tools using the Alt-F2 dialog." msgid "Configure GNOME Shell Extensions"
msgstr "Allows access to internal debugging and monitoring tools using the Alt-F2 dialog." msgstr "הגדרת הרחבות GNOME Shell"
#: ../data/org.gnome.shell.gschema.xml.in.h:2 #: ../data/org.gnome.shell.gschema.xml.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"
msgstr "Enable internal tools useful for developers and testers from Alt-F2" msgstr "Enable internal tools useful for developers and testers from Alt-F2"
#: ../data/org.gnome.shell.gschema.xml.in.h:2
msgid "Allows access to internal debugging and monitoring tools using the Alt-F2 dialog."
msgstr "Allows access to internal debugging and monitoring tools using the Alt-F2 dialog."
#: ../data/org.gnome.shell.gschema.xml.in.h:3 #: ../data/org.gnome.shell.gschema.xml.in.h:3
msgid "File extension used for storing the screencast" msgid "Uuids of extensions to enable"
msgstr "File extension used for storing the screencast" msgstr "Uuids of extensions to enable"
#: ../data/org.gnome.shell.gschema.xml.in.h:4 #: ../data/org.gnome.shell.gschema.xml.in.h:4
msgid "Framerate used for recording screencasts."
msgstr "Framerate used for recording screencasts."
#: ../data/org.gnome.shell.gschema.xml.in.h:5
msgid "GNOME Shell extensions have a uuid property; this key lists extensions which should be loaded. Any extension that wants to be loaded needs to be in this list. You can also manipulate this list with the EnableExtension and DisableExtension DBus methods on org.gnome.Shell." msgid "GNOME Shell extensions have a uuid property; this key lists extensions which should be loaded. Any extension that wants to be loaded needs to be in this list. You can also manipulate this list with the EnableExtension and DisableExtension DBus methods on org.gnome.Shell."
msgstr "GNOME Shell extensions have a uuid property; this key lists extensions which should be loaded. Any extension that wants to be loaded needs to be in this list. You can also manipulate this list with the EnableExtension and DisableExtension DBus methods on org.gnome.Shell." msgstr "GNOME Shell extensions have a uuid property; this key lists extensions which should be loaded. Any extension that wants to be loaded needs to be in this list. You can also manipulate this list with the EnableExtension and DisableExtension DBus methods on org.gnome.Shell."
#: ../data/org.gnome.shell.gschema.xml.in.h:5
msgid "Whether to collect stats about applications usage"
msgstr "Whether to collect stats about applications usage"
#: ../data/org.gnome.shell.gschema.xml.in.h:6 #: ../data/org.gnome.shell.gschema.xml.in.h:6
msgid "History for command (Alt-F2) dialog" msgid "The shell normally monitors active applications in order to present the most used ones (e.g. in launchers). While this data will be kept private, you may want to disable this for privacy reasons. Please note that doing so won't remove already saved data."
msgstr "History for command (Alt-F2) dialog" msgstr "The shell normally monitors active applications in order to present the most used ones (e.g. in launchers). While this data will be kept private, you may want to disable this for privacy reasons. Please note that doing so won't remove already saved data."
#: ../data/org.gnome.shell.gschema.xml.in.h:7 #: ../data/org.gnome.shell.gschema.xml.in.h:7
msgid "History for the looking glass dialog"
msgstr "History for the looking glass dialog"
#: ../data/org.gnome.shell.gschema.xml.in.h:8
msgid "If true, display date in the clock, in addition to time."
msgstr "If true, display date in the clock, in addition to time."
#: ../data/org.gnome.shell.gschema.xml.in.h:9
msgid "If true, display seconds in time."
msgstr "If true, display seconds in time."
#: ../data/org.gnome.shell.gschema.xml.in.h:10
msgid "If true, display the ISO week date in the calendar."
msgstr "If true, display the ISO week date in the calendar."
#: ../data/org.gnome.shell.gschema.xml.in.h:11
msgid "Internally used to store the last IM presence explicitly set by the user. The value here is from the TpConnectionPresenceType enumeration."
msgstr "Internally used to store the last IM presence explicitly set by the user. The value here is from the TpConnectionPresenceType enumeration."
#: ../data/org.gnome.shell.gschema.xml.in.h:12
msgid "Internally used to store the last session presence status for the user. The value here is from the GsmPresenceStatus enumeration."
msgstr "Internally used to store the last session presence status for the user. The value here is from the GsmPresenceStatus enumeration."
#: ../data/org.gnome.shell.gschema.xml.in.h:13
msgid "Keybinding to open the application menu"
msgstr "Keybinding to open the application menu"
#: ../data/org.gnome.shell.gschema.xml.in.h:14
msgid "Keybinding to open the application menu."
msgstr "Keybinding to open the application menu."
#: ../data/org.gnome.shell.gschema.xml.in.h:15
msgid "List of desktop file IDs for favorite applications" msgid "List of desktop file IDs for favorite applications"
msgstr "List of desktop file IDs for favorite applications" msgstr "List of desktop file IDs for favorite applications"
#: ../data/org.gnome.shell.gschema.xml.in.h:8
msgid "The applications corresponding to these identifiers will be displayed in the favorites area."
msgstr "The applications corresponding to these identifiers will be displayed in the favorites area."
#: ../data/org.gnome.shell.gschema.xml.in.h:9
msgid "disabled OpenSearch providers"
msgstr "disabled OpenSearch providers"
#: ../data/org.gnome.shell.gschema.xml.in.h:10
msgid "History for command (Alt-F2) dialog"
msgstr "History for command (Alt-F2) dialog"
#: ../data/org.gnome.shell.gschema.xml.in.h:11
msgid "History for the looking glass dialog"
msgstr "History for the looking glass dialog"
#: ../data/org.gnome.shell.gschema.xml.in.h:12
msgid "Internally used to store the last IM presence explicitly set by the user. The value here is from the TpConnectionPresenceType enumeration."
msgstr "Internally used to store the last IM presence explicitly set by the user. The value here is from the TpConnectionPresenceType enumeration."
#: ../data/org.gnome.shell.gschema.xml.in.h:13
msgid "Internally used to store the last session presence status for the user. The value here is from the GsmPresenceStatus enumeration."
msgstr "Internally used to store the last session presence status for the user. The value here is from the GsmPresenceStatus enumeration."
#: ../data/org.gnome.shell.gschema.xml.in.h:14
msgid "Show the week date in the calendar"
msgstr "Show the week date in the calendar"
#: ../data/org.gnome.shell.gschema.xml.in.h:15
msgid "If true, display the ISO week date in the calendar."
msgstr "If true, display the ISO week date in the calendar."
#: ../data/org.gnome.shell.gschema.xml.in.h:16
msgid "Keybinding to open the application menu"
msgstr "Keybinding to open the application menu"
#: ../data/org.gnome.shell.gschema.xml.in.h:17 #: ../data/org.gnome.shell.gschema.xml.in.h:17
msgid "Keybinding to open the application menu."
msgstr "Keybinding to open the application menu."
#: ../data/org.gnome.shell.gschema.xml.in.h:18
msgid "Keybinding to toggle the screen recorder"
msgstr "Keybinding to toggle the screen recorder"
#: ../data/org.gnome.shell.gschema.xml.in.h:19
msgid "Keybinding to start/stop the builtin screen recorder."
msgstr "Keybinding to start/stop the builtin screen recorder."
#: ../data/org.gnome.shell.gschema.xml.in.h:20
msgid "Which keyboard to use"
msgstr "באיזו מקלדת להשתמש"
#: ../data/org.gnome.shell.gschema.xml.in.h:21
msgid "The type of keyboard to use."
msgstr "סוג המקלדת לשימוש."
#: ../data/org.gnome.shell.gschema.xml.in.h:22
msgid "Show time with seconds"
msgstr "Show time with seconds"
#: ../data/org.gnome.shell.gschema.xml.in.h:23
msgid "If true, display seconds in time."
msgstr "If true, display seconds in time."
#: ../data/org.gnome.shell.gschema.xml.in.h:24
msgid "Show date in clock"
msgstr "Show date in clock"
#: ../data/org.gnome.shell.gschema.xml.in.h:25
msgid "If true, display date in the clock, in addition to time."
msgstr "If true, display date in the clock, in addition to time."
#: ../data/org.gnome.shell.gschema.xml.in.h:26
msgid "Framerate used for recording screencasts."
msgstr "Framerate used for recording screencasts."
#: ../data/org.gnome.shell.gschema.xml.in.h:27
msgid "The framerate of the resulting screencast recordered by GNOME Shell's screencast recorder in frames-per-second."
msgstr "The framerate of the resulting screencast recordered by GNOME Shell's screencast recorder in frames-per-second."
#: ../data/org.gnome.shell.gschema.xml.in.h:28
msgid "The gstreamer pipeline used to encode the screencast"
msgstr "The gstreamer pipeline used to encode the screencast"
#: ../data/org.gnome.shell.gschema.xml.in.h:30
#, no-c-format #, no-c-format
msgid "Sets the GStreamer pipeline used to encode recordings. It follows the syntax used for gst-launch. The pipeline should have an unconnected sink pad where the recorded video is recorded. It will normally have a unconnected source pad; output from that pad will be written into the output file. However the pipeline can also take care of its own output - this might be used to send the output to an icecast server via shout2send or similar. When unset or set to an empty value, the default pipeline will be used. This is currently 'vp8enc quality=8 speed=6 threads=%T ! queue ! webmmux' and records to WEBM using the VP8 codec. %T is used as a placeholder for a guess at the optimal thread count on the system." msgid "Sets the GStreamer pipeline used to encode recordings. It follows the syntax used for gst-launch. The pipeline should have an unconnected sink pad where the recorded video is recorded. It will normally have a unconnected source pad; output from that pad will be written into the output file. However the pipeline can also take care of its own output - this might be used to send the output to an icecast server via shout2send or similar. When unset or set to an empty value, the default pipeline will be used. This is currently 'vp8enc quality=8 speed=6 threads=%T ! queue ! webmmux' and records to WEBM using the VP8 codec. %T is used as a placeholder for a guess at the optimal thread count on the system."
msgstr "Sets the GStreamer pipeline used to encode recordings. It follows the syntax used for gst-launch. The pipeline should have an unconnected sink pad where the recorded video is recorded. It will normally have a unconnected source pad; output from that pad will be written into the output file. However the pipeline can also take care of its own output - this might be used to send the output to an icecast server via shout2send or similar. When unset or set to an empty value, the default pipeline will be used. This is currently 'vp8enc quality=8 speed=6 threads=%T ! queue ! webmmux' and records to WEBM using the VP8 codec. %T is used as a placeholder for a guess at the optimal thread count on the system." msgstr "Sets the GStreamer pipeline used to encode recordings. It follows the syntax used for gst-launch. The pipeline should have an unconnected sink pad where the recorded video is recorded. It will normally have a unconnected source pad; output from that pad will be written into the output file. However the pipeline can also take care of its own output - this might be used to send the output to an icecast server via shout2send or similar. When unset or set to an empty value, the default pipeline will be used. This is currently 'vp8enc quality=8 speed=6 threads=%T ! queue ! webmmux' and records to WEBM using the VP8 codec. %T is used as a placeholder for a guess at the optimal thread count on the system."
#: ../data/org.gnome.shell.gschema.xml.in.h:18 #: ../data/org.gnome.shell.gschema.xml.in.h:31
msgid "Show date in clock" msgid "File extension used for storing the screencast"
msgstr "Show date in clock" msgstr "File extension used for storing the screencast"
#: ../data/org.gnome.shell.gschema.xml.in.h:19 #: ../data/org.gnome.shell.gschema.xml.in.h:32
msgid "Show the week date in the calendar"
msgstr "Show the week date in the calendar"
#: ../data/org.gnome.shell.gschema.xml.in.h:20
msgid "Show time with seconds"
msgstr "Show time with seconds"
#: ../data/org.gnome.shell.gschema.xml.in.h:21
msgid "The applications corresponding to these identifiers will be displayed in the favorites area."
msgstr "The applications corresponding to these identifiers will be displayed in the favorites area."
#: ../data/org.gnome.shell.gschema.xml.in.h:22
msgid "The filename for recorded screencasts will be a unique filename based on the current date, and use this extension. It should be changed when recording to a different container format." msgid "The filename for recorded screencasts will be a unique filename based on the current date, and use this extension. It should be changed when recording to a different container format."
msgstr "The filename for recorded screencasts will be a unique filename based on the current date, and use this extension. It should be changed when recording to a different container format." msgstr "The filename for recorded screencasts will be a unique filename based on the current date, and use this extension. It should be changed when recording to a different container format."
#: ../data/org.gnome.shell.gschema.xml.in.h:23
msgid "The framerate of the resulting screencast recordered by GNOME Shell's screencast recorder in frames-per-second."
msgstr "The framerate of the resulting screencast recordered by GNOME Shell's screencast recorder in frames-per-second."
#: ../data/org.gnome.shell.gschema.xml.in.h:24
msgid "The gstreamer pipeline used to encode the screencast"
msgstr "The gstreamer pipeline used to encode the screencast"
#: ../data/org.gnome.shell.gschema.xml.in.h:25
msgid "The shell normally monitors active applications in order to present the most used ones (e.g. in launchers). While this data will be kept private, you may want to disable this for privacy reasons. Please note that doing so won't remove already saved data."
msgstr "The shell normally monitors active applications in order to present the most used ones (e.g. in launchers). While this data will be kept private, you may want to disable this for privacy reasons. Please note that doing so won't remove already saved data."
#: ../data/org.gnome.shell.gschema.xml.in.h:26
msgid "The type of keyboard to use."
msgstr "סוג המקלדת לשימוש."
#: ../data/org.gnome.shell.gschema.xml.in.h:27
msgid "Uuids of extensions to enable"
msgstr "Uuids of extensions to enable"
#: ../data/org.gnome.shell.gschema.xml.in.h:28
msgid "Whether to collect stats about applications usage"
msgstr "Whether to collect stats about applications usage"
#: ../data/org.gnome.shell.gschema.xml.in.h:29
msgid "Which keyboard to use"
msgstr "באיזו מקלדת להשתמש"
#: ../data/org.gnome.shell.gschema.xml.in.h:30
msgid "disabled OpenSearch providers"
msgstr "disabled OpenSearch providers"
#: ../js/extensionPrefs/main.js:125 #: ../js/extensionPrefs/main.js:125
#, c-format #, c-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
@ -629,6 +637,7 @@ msgid "tray"
msgstr "מגש מערכת" msgstr "מגש מערכת"
#: ../js/ui/keyboard.js:544 #: ../js/ui/keyboard.js:544
#: ../js/ui/status/keyboard.js:44
#: ../js/ui/status/power.js:203 #: ../js/ui/status/power.js:203
msgid "Keyboard" msgid "Keyboard"
msgstr "מקלדת" msgstr "מקלדת"
@ -693,7 +702,7 @@ msgid "Web Page"
msgstr "דף אינטרנט" msgstr "דף אינטרנט"
#. Translators: this is a filename used for screencast recording #. Translators: this is a filename used for screencast recording
#: ../js/ui/main.js:118 #: ../js/ui/main.js:121
#, no-c-format #, no-c-format
msgid "Screencast from %d %t" msgid "Screencast from %d %t"
msgstr "צילום מסך מהקובץ %d %t" msgstr "צילום מסך מהקובץ %d %t"
@ -872,7 +881,7 @@ msgstr "פעולה זו לא הצליחה, נא לנסות שוב. עמך הסל
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle #. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will #. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches. #. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:724 #: ../js/ui/popupMenu.js:728
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
@ -1051,7 +1060,7 @@ msgid "Grant this time only"
msgstr "הענקת גישה הפעם בלבד" msgstr "הענקת גישה הפעם בלבד"
#: ../js/ui/status/bluetooth.js:382 #: ../js/ui/status/bluetooth.js:382
#: ../js/ui/telepathyClient.js:1091 #: ../js/ui/telepathyClient.js:1093
msgid "Reject" msgid "Reject"
msgstr "סירוב" msgstr "סירוב"
@ -1378,35 +1387,35 @@ msgstr "%s עסוק/ה."
#. Translators: this is a time format string followed by a date. #. Translators: this is a time format string followed by a date.
#. If applicable, replace %X with a strftime format valid for your #. If applicable, replace %X with a strftime format valid for your
#. locale, without seconds. #. locale, without seconds.
#: ../js/ui/telepathyClient.js:887 #: ../js/ui/telepathyClient.js:889
#, no-c-format #, no-c-format
msgid "Sent at <b>%X</b> on <b>%A</b>" msgid "Sent at <b>%X</b> on <b>%A</b>"
msgstr "נשלח ב־<b>%X</b> בשעה <b>%A</b>" msgstr "נשלח ב־<b>%X</b> בשעה <b>%A</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25", #. Translators: this is a time format in the style of "Wednesday, May 25",
#. shown when you get a chat message in the same year. #. shown when you get a chat message in the same year.
#: ../js/ui/telepathyClient.js:893 #: ../js/ui/telepathyClient.js:895
#, no-c-format #, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>" msgid "Sent on <b>%A</b>, <b>%B %d</b>"
msgstr "נשלח ב<b>%A</b>, <b>ה־%d ב%B</b>" msgstr "נשלח ב<b>%A</b>, <b>ה־%d ב%B</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012", #. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
#. shown when you get a chat message in a different year. #. shown when you get a chat message in a different year.
#: ../js/ui/telepathyClient.js:898 #: ../js/ui/telepathyClient.js:900
#, no-c-format #, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y" msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
msgstr "נשלח ב<b>%A</b>, <b>ה־%d ב%B</b>, %Y" msgstr "נשלח ב<b>%A</b>, <b>ה־%d ב%B</b>, %Y"
#. 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/telepathyClient.js:940 #: ../js/ui/telepathyClient.js:942
#, c-format #, c-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "השם של %s הוחלף ל־%s" msgstr "השם של %s הוחלף ל־%s"
#. translators: argument is a room name like #. translators: argument is a room name like
#. * room@jabber.org for example. #. * room@jabber.org for example.
#: ../js/ui/telepathyClient.js:1042 #: ../js/ui/telepathyClient.js:1044
#, c-format #, c-format
msgid "Invitation to %s" msgid "Invitation to %s"
msgstr "הזמנה ל־%s" msgstr "הזמנה ל־%s"
@ -1414,37 +1423,37 @@ msgstr "הזמנה ל־%s"
#. translators: first argument is the name of a contact and the second #. translators: first argument is the name of a contact and the second
#. * one the name of a room. "Alice is inviting you to join room@jabber.org #. * one the name of a room. "Alice is inviting you to join room@jabber.org
#. * for example. #. * for example.
#: ../js/ui/telepathyClient.js:1050 #: ../js/ui/telepathyClient.js:1052
#, c-format #, c-format
msgid "%s is inviting you to join %s" msgid "%s is inviting you to join %s"
msgstr "הוזמנת על ידי %s להצטרף אל %s" msgstr "הוזמנת על ידי %s להצטרף אל %s"
#: ../js/ui/telepathyClient.js:1052 #: ../js/ui/telepathyClient.js:1054
#: ../js/ui/telepathyClient.js:1131 #: ../js/ui/telepathyClient.js:1133
#: ../js/ui/telepathyClient.js:1229 #: ../js/ui/telepathyClient.js:1231
msgid "Decline" msgid "Decline"
msgstr "דחייה" msgstr "דחייה"
#: ../js/ui/telepathyClient.js:1053 #: ../js/ui/telepathyClient.js:1055
#: ../js/ui/telepathyClient.js:1132 #: ../js/ui/telepathyClient.js:1134
#: ../js/ui/telepathyClient.js:1230 #: ../js/ui/telepathyClient.js:1232
msgid "Accept" msgid "Accept"
msgstr "אישור" msgstr "אישור"
#. translators: argument is a contact name like Alice for example. #. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1083 #: ../js/ui/telepathyClient.js:1085
#, c-format #, c-format
msgid "Video call from %s" msgid "Video call from %s"
msgstr "שיחת וידאו מאת %s" msgstr "שיחת וידאו מאת %s"
#. translators: argument is a contact name like Alice for example. #. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1086 #: ../js/ui/telepathyClient.js:1088
#, c-format #, c-format
msgid "Call from %s" msgid "Call from %s"
msgstr "שיחה מאת %s" msgstr "שיחה מאת %s"
#. translators: this is a button label (verb), not a noun #. translators: this is a button label (verb), not a noun
#: ../js/ui/telepathyClient.js:1093 #: ../js/ui/telepathyClient.js:1095
msgid "Answer" msgid "Answer"
msgstr "מענה" msgstr "מענה"
@ -1453,129 +1462,129 @@ msgstr "מענה"
#. * file name. The string will be something #. * file name. The string will be something
#. * like: "Alice is sending you test.ogg" #. * like: "Alice is sending you test.ogg"
#. #.
#: ../js/ui/telepathyClient.js:1125 #: ../js/ui/telepathyClient.js:1127
#, c-format #, c-format
msgid "%s is sending you %s" msgid "%s is sending you %s"
msgstr "%s שולח/ת אליך %s" msgstr "%s שולח/ת אליך %s"
#. To translators: The parameter is the contact's alias #. To translators: The parameter is the contact's alias
#: ../js/ui/telepathyClient.js:1194 #: ../js/ui/telepathyClient.js:1196
#, c-format #, c-format
msgid "%s would like permission to see when you are online" msgid "%s would like permission to see when you are online"
msgstr "%s רוצה לקבל הרשאות כדי לראות מתי מצבך הוא מקוון" msgstr "%s רוצה לקבל הרשאות כדי לראות מתי מצבך הוא מקוון"
#: ../js/ui/telepathyClient.js:1287 #: ../js/ui/telepathyClient.js:1289
msgid "Network error" msgid "Network error"
msgstr "שגיאת רשת" msgstr "שגיאת רשת"
#: ../js/ui/telepathyClient.js:1289 #: ../js/ui/telepathyClient.js:1291
msgid "Authentication failed" msgid "Authentication failed"
msgstr "האימות נכשל" msgstr "האימות נכשל"
#: ../js/ui/telepathyClient.js:1291 #: ../js/ui/telepathyClient.js:1293
msgid "Encryption error" msgid "Encryption error"
msgstr "שגיאת הצפנה" msgstr "שגיאת הצפנה"
#: ../js/ui/telepathyClient.js:1293 #: ../js/ui/telepathyClient.js:1295
msgid "Certificate not provided" msgid "Certificate not provided"
msgstr "לא סופק אישור" msgstr "לא סופק אישור"
#: ../js/ui/telepathyClient.js:1295 #: ../js/ui/telepathyClient.js:1297
msgid "Certificate untrusted" msgid "Certificate untrusted"
msgstr "האישור אינו מהימן" msgstr "האישור אינו מהימן"
#: ../js/ui/telepathyClient.js:1297 #: ../js/ui/telepathyClient.js:1299
msgid "Certificate expired" msgid "Certificate expired"
msgstr "האישור פג" msgstr "האישור פג"
#: ../js/ui/telepathyClient.js:1299 #: ../js/ui/telepathyClient.js:1301
msgid "Certificate not activated" msgid "Certificate not activated"
msgstr "האישור לא מופעל" msgstr "האישור לא מופעל"
#: ../js/ui/telepathyClient.js:1301 #: ../js/ui/telepathyClient.js:1303
msgid "Certificate hostname mismatch" msgid "Certificate hostname mismatch"
msgstr "שם המארח באישור אינו תואם" msgstr "שם המארח באישור אינו תואם"
#: ../js/ui/telepathyClient.js:1303 #: ../js/ui/telepathyClient.js:1305
msgid "Certificate fingerprint mismatch" msgid "Certificate fingerprint mismatch"
msgstr "חוסר התאמה בטביעת האצבע של האישור" msgstr "חוסר התאמה בטביעת האצבע של האישור"
#: ../js/ui/telepathyClient.js:1305 #: ../js/ui/telepathyClient.js:1307
msgid "Certificate self-signed" msgid "Certificate self-signed"
msgstr "אישור בחתימה עצמית" msgstr "אישור בחתימה עצמית"
#: ../js/ui/telepathyClient.js:1307 #: ../js/ui/telepathyClient.js:1309
msgid "Status is set to offline" msgid "Status is set to offline"
msgstr "המצב הוגדר ל'מנותק'" msgstr "המצב הוגדר ל'מנותק'"
#: ../js/ui/telepathyClient.js:1309 #: ../js/ui/telepathyClient.js:1311
msgid "Encryption is not available" msgid "Encryption is not available"
msgstr "ההצפנה אינה זמינה" msgstr "ההצפנה אינה זמינה"
#: ../js/ui/telepathyClient.js:1311 #: ../js/ui/telepathyClient.js:1313
msgid "Certificate is invalid" msgid "Certificate is invalid"
msgstr "האישור אינו תקף" msgstr "האישור אינו תקף"
#: ../js/ui/telepathyClient.js:1313 #: ../js/ui/telepathyClient.js:1315
msgid "Connection has been refused" msgid "Connection has been refused"
msgstr "ההתחברות נשללה" msgstr "ההתחברות נשללה"
#: ../js/ui/telepathyClient.js:1315 #: ../js/ui/telepathyClient.js:1317
msgid "Connection can't be established" msgid "Connection can't be established"
msgstr "לא ניתן להפעיל את החיבור" msgstr "לא ניתן להפעיל את החיבור"
#: ../js/ui/telepathyClient.js:1317 #: ../js/ui/telepathyClient.js:1319
msgid "Connection has been lost" msgid "Connection has been lost"
msgstr "החיבור אבד" msgstr "החיבור אבד"
#: ../js/ui/telepathyClient.js:1319 #: ../js/ui/telepathyClient.js:1321
msgid "This account is already connected to the server" msgid "This account is already connected to the server"
msgstr "חשבון זה כבר מחובר לשרת" msgstr "חשבון זה כבר מחובר לשרת"
#: ../js/ui/telepathyClient.js:1321 #: ../js/ui/telepathyClient.js:1323
msgid "Connection has been replaced by a new connection using the same resource" msgid "Connection has been replaced by a new connection using the same resource"
msgstr "החיבור הוחלף בחיבור חדש באמצעות אותו המשאב" msgstr "החיבור הוחלף בחיבור חדש באמצעות אותו המשאב"
#: ../js/ui/telepathyClient.js:1323 #: ../js/ui/telepathyClient.js:1325
msgid "The account already exists on the server" msgid "The account already exists on the server"
msgstr "החשבון כבר קיים בשרת" msgstr "החשבון כבר קיים בשרת"
#: ../js/ui/telepathyClient.js:1325 #: ../js/ui/telepathyClient.js:1327
msgid "Server is currently too busy to handle the connection" msgid "Server is currently too busy to handle the connection"
msgstr "השרת עסוק ברגע זה מכדי לטפל בחיבור" msgstr "השרת עסוק ברגע זה מכדי לטפל בחיבור"
#: ../js/ui/telepathyClient.js:1327 #: ../js/ui/telepathyClient.js:1329
msgid "Certificate has been revoked" msgid "Certificate has been revoked"
msgstr "האישור נשלל" msgstr "האישור נשלל"
#: ../js/ui/telepathyClient.js:1329 #: ../js/ui/telepathyClient.js:1331
msgid "Certificate uses an insecure cipher algorithm or is cryptographically weak" msgid "Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr "האישור משתמש באלגוריתם הצפנה שאינו בטוח או חלש מבחינת הצפנה" msgstr "האישור משתמש באלגוריתם הצפנה שאינו בטוח או חלש מבחינת הצפנה"
#: ../js/ui/telepathyClient.js:1331 #: ../js/ui/telepathyClient.js:1333
msgid "The length of the server certificate, or the depth of the server certificate chain, exceed the limits imposed by the cryptography library" msgid "The length of the server certificate, or the depth of the server certificate chain, exceed the limits imposed by the cryptography library"
msgstr "אורך אישור השרת, או עומק שרשרת אישור השרת, חורגים מהמגבלות שנכפו על ידי ספריית ההצפנה" msgstr "אורך אישור השרת, או עומק שרשרת אישור השרת, חורגים מהמגבלות שנכפו על ידי ספריית ההצפנה"
#: ../js/ui/telepathyClient.js:1333 #: ../js/ui/telepathyClient.js:1335
msgid "Internal error" msgid "Internal error"
msgstr "שגיאה פנימית" msgstr "שגיאה פנימית"
#. translators: argument is the account name, like #. translators: argument is the account name, like
#. * name@jabber.org for example. #. * name@jabber.org for example.
#: ../js/ui/telepathyClient.js:1343 #: ../js/ui/telepathyClient.js:1345
#, c-format #, c-format
msgid "Connection to %s failed" msgid "Connection to %s failed"
msgstr "החיבור אל %s נכשל" msgstr "החיבור אל %s נכשל"
#: ../js/ui/telepathyClient.js:1352 #: ../js/ui/telepathyClient.js:1354
msgid "Reconnect" msgid "Reconnect"
msgstr "התחברות מחדש" msgstr "התחברות מחדש"
#: ../js/ui/telepathyClient.js:1353 #: ../js/ui/telepathyClient.js:1355
msgid "Edit account" msgid "Edit account"
msgstr "עריכת חשבון" msgstr "עריכת חשבון"
#: ../js/ui/telepathyClient.js:1399 #: ../js/ui/telepathyClient.js:1401
msgid "Unknown reason" msgid "Unknown reason"
msgstr "סיבה לא ידועה" msgstr "סיבה לא ידועה"

322
po/it.po

@ -10,10 +10,10 @@ 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: 2012-02-16 01:27+0000\n" "POT-Creation-Date: 2012-04-28 13:41+0000\n"
"PO-Revision-Date: 2012-02-19 15:39+0100\n" "PO-Revision-Date: 2012-04-30 15:32+0200\n"
"Last-Translator: Luca Ferretti <lferrett@gnome.org>\n" "Last-Translator: Luca Ferretti <lferrett@gnome.org>\n"
"Language-Team: Italiano <tp@lists.linux.it>\n" "Language-Team: Italian <tp@lists.linux.it>\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"
@ -30,7 +30,7 @@ msgstr "Gestisce finestre e avvia applicazioni"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
#: ../js/extensionPrefs/main.js:153 #: ../js/extensionPrefs/main.js:153
msgid "GNOME Shell Extensions Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "Preferenze estensioni di GNOME Shell" msgstr "Preferenze estensioni di GNOME Shell"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:2 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:2
@ -56,10 +56,6 @@ msgid "Uuids of extensions to enable"
msgstr "UUID delle estensioni da abilitare" msgstr "UUID delle estensioni da abilitare"
#: ../data/org.gnome.shell.gschema.xml.in.h:4 #: ../data/org.gnome.shell.gschema.xml.in.h:4
#| msgid ""
#| "GNOME Shell extensions have a uuid property; this key lists extensions "
#| "which should not be loaded. This setting overrides enabled-extensions for "
#| "extensions that appear in both lists."
msgid "" msgid ""
"GNOME Shell extensions have a uuid property; this key lists extensions which " "GNOME Shell extensions have a uuid property; this key lists extensions which "
"should be loaded. Any extension that wants to be loaded needs to be in this " "should be loaded. Any extension that wants to be loaded needs to be in this "
@ -115,42 +111,67 @@ msgid "History for the looking glass dialog"
msgstr "Cronologia per il dialogo looking glass" msgstr "Cronologia per il dialogo looking glass"
#: ../data/org.gnome.shell.gschema.xml.in.h:12 #: ../data/org.gnome.shell.gschema.xml.in.h:12
msgid ""
"Internally used to store the last IM presence explicitly set by the user. "
"The value here is from the TpConnectionPresenceType enumeration."
msgstr ""
"Usato internamente per memorizzare l'ultimo stato di presenza IM impostato "
"esplicitamente dall'utente. Il valore corrisponde alla enumerazione "
"TpConnectionPresenceType."
#: ../data/org.gnome.shell.gschema.xml.in.h:13
msgid ""
"Internally used to store the last session presence status for the user. The "
"value here is from the GsmPresenceStatus enumeration."
msgstr ""
"Usato internamente per memorizzare lo stato di presenza dell'ultima sessione "
"per l'utente. Il valore corrisponde alla enumerazione GsmPresenceStatus."
#: ../data/org.gnome.shell.gschema.xml.in.h:14
msgid "Show the week date in the calendar" msgid "Show the week date in the calendar"
msgstr "Mostra il giorno della settimana nel calendario" msgstr "Mostra il giorno della settimana nel calendario"
#: ../data/org.gnome.shell.gschema.xml.in.h:13 #: ../data/org.gnome.shell.gschema.xml.in.h:15
msgid "If true, display the ISO week date in the calendar." msgid "If true, display the ISO week date in the calendar."
msgstr "Se VERO, mostra il giorno della settimana ISO nel calendario." msgstr "Se VERO, mostra il giorno della settimana ISO nel calendario."
#: ../data/org.gnome.shell.gschema.xml.in.h:14 #: ../data/org.gnome.shell.gschema.xml.in.h:16
msgid "Keybinding to open the application menu"
msgstr "Associazione tasti per aprire menù applicazioni"
#: ../data/org.gnome.shell.gschema.xml.in.h:17
msgid "Keybinding to open the application menu."
msgstr "Associazione di tasti per aprire il menù delle applicazioni."
#: ../data/org.gnome.shell.gschema.xml.in.h:18
msgid "Which keyboard to use" msgid "Which keyboard to use"
msgstr "Quale tastiera usare" msgstr "Quale tastiera usare"
#: ../data/org.gnome.shell.gschema.xml.in.h:15 #: ../data/org.gnome.shell.gschema.xml.in.h:19
msgid "The type of keyboard to use." msgid "The type of keyboard to use."
msgstr "Il tipo di tastiera da usare." msgstr "Il tipo di tastiera da usare."
#: ../data/org.gnome.shell.gschema.xml.in.h:16 #: ../data/org.gnome.shell.gschema.xml.in.h:20
msgid "Show time with seconds" msgid "Show time with seconds"
msgstr "Mostra l'ora con i secondi" msgstr "Mostra l'ora con i secondi"
#: ../data/org.gnome.shell.gschema.xml.in.h:17 #: ../data/org.gnome.shell.gschema.xml.in.h:21
msgid "If true, display seconds in time." msgid "If true, display seconds in time."
msgstr "Se VERO, mostra i secondi nell'orario." msgstr "Se VERO, mostra i secondi nell'orario."
#: ../data/org.gnome.shell.gschema.xml.in.h:18 #: ../data/org.gnome.shell.gschema.xml.in.h:22
msgid "Show date in clock" msgid "Show date in clock"
msgstr "Mostra la data nell'orologio" msgstr "Mostra la data nell'orologio"
#: ../data/org.gnome.shell.gschema.xml.in.h:19 #: ../data/org.gnome.shell.gschema.xml.in.h:23
msgid "If true, display date in the clock, in addition to time." msgid "If true, display date in the clock, in addition to time."
msgstr "Se VERO, mostra nell'orologio la data, oltre all'orario." msgstr "Se VERO, mostra nell'orologio la data, oltre all'orario."
#: ../data/org.gnome.shell.gschema.xml.in.h:20 #: ../data/org.gnome.shell.gschema.xml.in.h:24
msgid "Framerate used for recording screencasts." msgid "Framerate used for recording screencasts."
msgstr "Framerate per la registrazione di screencast." msgstr "Framerate per la registrazione di screencast."
#: ../data/org.gnome.shell.gschema.xml.in.h:21 #: ../data/org.gnome.shell.gschema.xml.in.h:25
msgid "" msgid ""
"The framerate of the resulting screencast recordered by GNOME Shell's " "The framerate of the resulting screencast recordered by GNOME Shell's "
"screencast recorder in frames-per-second." "screencast recorder in frames-per-second."
@ -158,24 +179,12 @@ msgstr ""
"Il framerate in fotogrammi al secondo dello screencast registrato attraverso " "Il framerate in fotogrammi al secondo dello screencast registrato attraverso "
"il registratore della GNOME Shell." "il registratore della GNOME Shell."
#: ../data/org.gnome.shell.gschema.xml.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.h:26
msgid "The gstreamer pipeline used to encode the screencast" msgid "The gstreamer pipeline used to encode the screencast"
msgstr "La pipeline di gstreamer utilizzata per codificare lo screencast" msgstr "La pipeline di gstreamer utilizzata per codificare lo screencast"
#: ../data/org.gnome.shell.gschema.xml.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.h:28
#, no-c-format #, no-c-format
#| msgid ""
#| "Sets the GStreamer pipeline used to encode recordings. It follows the "
#| "syntax used for gst-launch. The pipeline should have an unconnected sink "
#| "pad where the recorded video is recorded. It will normally have a "
#| "unconnected source pad; output from that pad will be written into the "
#| "output file. However the pipeline can also take care of its own output - "
#| "this might be used to send the output to an icecast server via shout2send "
#| "or similar. When unset or set to an empty value, the default pipeline "
#| "will be used. This is currently 'videorate ! vp8enc quality=10 speed=2 "
#| "threads=%T ! queue ! webmmux' and records to WEBM using the VP8 codec. %T "
#| "is used as a placeholder for a guess at the optimal thread count on the "
#| "system."
msgid "" msgid ""
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax " "Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
"used for gst-launch. The pipeline should have an unconnected sink pad where " "used for gst-launch. The pipeline should have an unconnected sink pad where "
@ -200,11 +209,11 @@ msgstr ""
"WEBM usando il codec VP8. %T è usato come un segnaposto per una stima del " "WEBM usando il codec VP8. %T è usato come un segnaposto per una stima del "
"valore di thread ottimale per il sistema in uso." "valore di thread ottimale per il sistema in uso."
#: ../data/org.gnome.shell.gschema.xml.in.h:25 #: ../data/org.gnome.shell.gschema.xml.in.h:29
msgid "File extension used for storing the screencast" msgid "File extension used for storing the screencast"
msgstr "Estensione del file utilizzato per salvare lo screencast" msgstr "Estensione del file utilizzato per salvare lo screencast"
#: ../data/org.gnome.shell.gschema.xml.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.h:30
msgid "" msgid ""
"The filename for recorded screencasts will be a unique filename based on the " "The filename for recorded screencasts will be a unique filename based on the "
"current date, and use this extension. It should be changed when recording to " "current date, and use this extension. It should be changed when recording to "
@ -230,53 +239,53 @@ msgstr ""
"Selezionare una estensione da configurare usando la casella combinata qui " "Selezionare una estensione da configurare usando la casella combinata qui "
"sopra." "sopra."
#: ../js/gdm/loginDialog.js:624 #: ../js/gdm/loginDialog.js:627
msgid "Session..." msgid "Session..."
msgstr "Sessione..." msgstr "Sessione..."
#: ../js/gdm/loginDialog.js:786 #: ../js/gdm/loginDialog.js:789
msgctxt "title" msgctxt "title"
msgid "Sign In" msgid "Sign In"
msgstr "Accesso" msgstr "Accesso"
#. Translators: this message is shown below the password entry field #. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead #. to indicate the user can swipe their finger instead
#: ../js/gdm/loginDialog.js:831 #: ../js/gdm/loginDialog.js:834
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(o passare il dito)" msgstr "(o passare il dito)"
#. 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:852 #: ../js/gdm/loginDialog.js:855
msgid "Not listed?" msgid "Not listed?"
msgstr "Non elencato?" msgstr "Non elencato?"
#: ../js/gdm/loginDialog.js:1020 ../js/ui/endSessionDialog.js:419 #: ../js/gdm/loginDialog.js:1023 ../js/ui/endSessionDialog.js:401
#: ../js/ui/extensionSystem.js:401 ../js/ui/networkAgent.js:153 #: ../js/ui/extensionSystem.js:400 ../js/ui/networkAgent.js:153
#: ../js/ui/polkitAuthenticationAgent.js:175 ../js/ui/status/bluetooth.js:462 #: ../js/ui/polkitAuthenticationAgent.js:175 ../js/ui/status/bluetooth.js:462
msgid "Cancel" msgid "Cancel"
msgstr "Annulla" msgstr "Annulla"
#: ../js/gdm/loginDialog.js:1025 #: ../js/gdm/loginDialog.js:1028
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Accedi" msgstr "Accedi"
#: ../js/gdm/loginDialog.js:1377 #: ../js/gdm/loginDialog.js:1380
msgid "Login Window" msgid "Login Window"
msgstr "Finestra di accesso" msgstr "Finestra di accesso"
#: ../js/gdm/powerMenu.js:152 ../js/ui/userMenu.js:581 #: ../js/gdm/powerMenu.js:155 ../js/ui/userMenu.js:597
#: ../js/ui/userMenu.js:583 ../js/ui/userMenu.js:652 #: ../js/ui/userMenu.js:599 ../js/ui/userMenu.js:668
msgid "Suspend" msgid "Suspend"
msgstr "Sospendi" msgstr "Sospendi"
#: ../js/gdm/powerMenu.js:157 #: ../js/gdm/powerMenu.js:160
msgid "Restart" msgid "Restart"
msgstr "Riavvia" msgstr "Riavvia"
#: ../js/gdm/powerMenu.js:162 #: ../js/gdm/powerMenu.js:165
msgid "Power Off" msgid "Power Off"
msgstr "Spegni" msgstr "Spegni"
@ -296,27 +305,27 @@ msgid "Execution of '%s' failed:"
msgstr "Esecuzione di «%s» non riuscita:" msgstr "Esecuzione di «%s» non riuscita:"
#. Translators: Filter to display all applications #. Translators: Filter to display all applications
#: ../js/ui/appDisplay.js:251 #: ../js/ui/appDisplay.js:255
msgid "All" msgid "All"
msgstr "Tutte" msgstr "Tutte"
#: ../js/ui/appDisplay.js:310 #: ../js/ui/appDisplay.js:314
msgid "APPLICATIONS" msgid "APPLICATIONS"
msgstr "APPLICAZIONI" msgstr "APPLICAZIONI"
#: ../js/ui/appDisplay.js:366 #: ../js/ui/appDisplay.js:375
msgid "SETTINGS" msgid "SETTINGS"
msgstr "IMPOSTAZIONI" msgstr "IMPOSTAZIONI"
#: ../js/ui/appDisplay.js:666 #: ../js/ui/appDisplay.js:680
msgid "New Window" msgid "New Window"
msgstr "Nuova finestra" msgstr "Nuova finestra"
#: ../js/ui/appDisplay.js:669 #: ../js/ui/appDisplay.js:683
msgid "Remove from Favorites" msgid "Remove from Favorites"
msgstr "Rimuovi dai preferiti" msgstr "Rimuovi dai preferiti"
#: ../js/ui/appDisplay.js:670 #: ../js/ui/appDisplay.js:684
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "Aggiungi ai preferiti" msgstr "Aggiungi ai preferiti"
@ -491,103 +500,97 @@ msgstr "Questa settimana"
msgid "Next week" msgid "Next week"
msgstr "Prossima settimana" msgstr "Prossima settimana"
#: ../js/ui/contactDisplay.js:63 ../js/ui/notificationDaemon.js:486 #: ../js/ui/contactDisplay.js:66 ../js/ui/notificationDaemon.js:486
#: ../js/ui/status/power.js:215 ../src/shell-app.c:372 #: ../js/ui/status/power.js:215 ../src/shell-app.c:374
msgid "Unknown" msgid "Unknown"
msgstr "Sconosciuto" msgstr "Sconosciuto"
#: ../js/ui/contactDisplay.js:84 ../js/ui/userMenu.js:127 #: ../js/ui/contactDisplay.js:89 ../js/ui/userMenu.js:129
msgid "Available" msgid "Available"
msgstr "Disponibile" msgstr "Disponibile"
#: ../js/ui/contactDisplay.js:89 ../js/ui/userMenu.js:136 #: ../js/ui/contactDisplay.js:94 ../js/ui/userMenu.js:138
msgid "Away" msgid "Away"
msgstr "Assente" msgstr "Assente"
#: ../js/ui/contactDisplay.js:93 ../js/ui/userMenu.js:130 #: ../js/ui/contactDisplay.js:98 ../js/ui/userMenu.js:132
msgid "Busy" msgid "Busy"
msgstr "Non disponibile" msgstr "Non disponibile"
#: ../js/ui/contactDisplay.js:97 #: ../js/ui/contactDisplay.js:102
msgid "Offline" msgid "Offline"
msgstr "Fuori rete" msgstr "Fuori rete"
#: ../js/ui/contactDisplay.js:148 #: ../js/ui/contactDisplay.js:153
msgid "CONTACTS" msgid "CONTACTS"
msgstr "CONTATTI" msgstr "CONTATTI"
#: ../js/ui/dash.js:229 ../js/ui/messageTray.js:1204 #: ../js/ui/dash.js:229 ../js/ui/messageTray.js:1207
msgid "Remove" msgid "Remove"
msgstr "Rimuovi" msgstr "Rimuovi"
#: ../js/ui/dateMenu.js:97 #: ../js/ui/dateMenu.js:103
msgid "Date and Time Settings" msgid "Date and Time Settings"
msgstr "Impostazioni data e ora" msgstr "Impostazioni data e ora"
#: ../js/ui/dateMenu.js:123 #: ../js/ui/dateMenu.js:129
msgid "Open Calendar" msgid "Open Calendar"
msgstr "Apri calendario" msgstr "Apri calendario"
#. Translators: This is the time format with date used #. Translators: This is the time format with date used
#. in 24-hour mode. #. in 24-hour mode.
#: ../js/ui/dateMenu.js:181 #: ../js/ui/dateMenu.js:187
msgid "%a %b %e, %R:%S" msgid "%a %b %e, %R:%S"
msgstr "%a %e %b, %k.%M.%S" msgstr "%a %e %b, %k.%M.%S"
#: ../js/ui/dateMenu.js:182 #: ../js/ui/dateMenu.js:188
msgid "%a %b %e, %R" msgid "%a %b %e, %R"
msgstr "%a %e %b, %k.%M" msgstr "%a %e %b, %k.%M"
#. Translators: This is the time format without date used #. Translators: This is the time format without date used
#. in 24-hour mode. #. in 24-hour mode.
#: ../js/ui/dateMenu.js:186 #: ../js/ui/dateMenu.js:192
msgid "%a %R:%S" msgid "%a %R:%S"
msgstr "%a %k.%M.%S" msgstr "%a %k.%M.%S"
#: ../js/ui/dateMenu.js:187 #: ../js/ui/dateMenu.js:193
msgid "%a %R" msgid "%a %R"
msgstr "%a %k.%M" msgstr "%a %k.%M"
#. Translators: This is a time format with date used #. Translators: This is a time format with date used
#. for AM/PM. #. for AM/PM.
#: ../js/ui/dateMenu.js:194 #: ../js/ui/dateMenu.js:200
msgid "%a %b %e, %l:%M:%S %p" msgid "%a %b %e, %l:%M:%S %p"
msgstr "%a %e %b, %l.%M.%S %P" msgstr "%a %e %b, %l.%M.%S %P"
#: ../js/ui/dateMenu.js:195 #: ../js/ui/dateMenu.js:201
msgid "%a %b %e, %l:%M %p" msgid "%a %b %e, %l:%M %p"
msgstr "%a %e %b, %l.%M %P" msgstr "%a %e %b, %l.%M %P"
#. Translators: This is a time format without date used #. Translators: This is a time format without date used
#. for AM/PM. #. for AM/PM.
#: ../js/ui/dateMenu.js:199 #: ../js/ui/dateMenu.js:205
msgid "%a %l:%M:%S %p" msgid "%a %l:%M:%S %p"
msgstr "%a %l.%M.%S %P" msgstr "%a %l.%M.%S %P"
#: ../js/ui/dateMenu.js:200 #: ../js/ui/dateMenu.js:206
msgid "%a %l:%M %p" msgid "%a %l:%M %p"
msgstr "%a %l.%M %P" msgstr "%a %l.%M %P"
#. 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:211 #: ../js/ui/dateMenu.js:217
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%a %e %B %Y" msgstr "%a %e %B %Y"
#: ../js/ui/docDisplay.js:13
msgid "RECENT ITEMS"
msgstr "ELEMENTI RECENTI"
#: ../js/ui/endSessionDialog.js:61 #: ../js/ui/endSessionDialog.js:61
#, c-format #, c-format
#| msgid "Log Out %s"
msgctxt "title" msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "Termina sessione di %s" msgstr "Termina sessione di %s"
#: ../js/ui/endSessionDialog.js:62 #: ../js/ui/endSessionDialog.js:62
#| msgid "Log Out"
msgctxt "title" msgctxt "title"
msgid "Log Out" msgid "Log Out"
msgstr "Termina sessione" msgstr "Termina sessione"
@ -623,7 +626,6 @@ msgid "Log Out"
msgstr "Termina sessione" msgstr "Termina sessione"
#: ../js/ui/endSessionDialog.js:81 #: ../js/ui/endSessionDialog.js:81
#| msgid "Power Off"
msgctxt "title" msgctxt "title"
msgid "Power Off" msgid "Power Off"
msgstr "Spegni" msgstr "Spegni"
@ -645,19 +647,16 @@ msgid "Powering off the system."
msgstr "Spegnimento del sistema." msgstr "Spegnimento del sistema."
#: ../js/ui/endSessionDialog.js:90 ../js/ui/endSessionDialog.js:107 #: ../js/ui/endSessionDialog.js:90 ../js/ui/endSessionDialog.js:107
#| msgid "Restart"
msgctxt "button" msgctxt "button"
msgid "Restart" msgid "Restart"
msgstr "Riavvia" msgstr "Riavvia"
#: ../js/ui/endSessionDialog.js:92 #: ../js/ui/endSessionDialog.js:92
#| msgid "Power Off"
msgctxt "button" msgctxt "button"
msgid "Power Off" msgid "Power Off"
msgstr "Spegni" msgstr "Spegni"
#: ../js/ui/endSessionDialog.js:98 #: ../js/ui/endSessionDialog.js:98
#| msgid "Restart"
msgctxt "title" msgctxt "title"
msgid "Restart" msgid "Restart"
msgstr "Riavvia" msgstr "Riavvia"
@ -679,11 +678,11 @@ msgstr[1] "Il sistema verrà riavviato automaticamente tra %d secondi."
msgid "Restarting the system." msgid "Restarting the system."
msgstr "Riavvio del sistema." msgstr "Riavvio del sistema."
#: ../js/ui/extensionSystem.js:405 #: ../js/ui/extensionSystem.js:404
msgid "Install" msgid "Install"
msgstr "Installa" msgstr "Installa"
#: ../js/ui/extensionSystem.js:409 #: ../js/ui/extensionSystem.js:408
#, c-format #, c-format
msgid "Download and install '%s' from extensions.gnome.org?" msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Scaricare e installare «%s» da extensions.gnome.org?" msgstr "Scaricare e installare «%s» da extensions.gnome.org?"
@ -691,82 +690,92 @@ msgstr "Scaricare e installare «%s» da extensions.gnome.org?"
# FIXME!!!!!! # FIXME!!!!!!
# dai, ma come fai a tradurre un pulsante del genere?!?!?! # dai, ma come fai a tradurre un pulsante del genere?!?!?!
# per ora ho messo nascondi, poi vedremo # per ora ho messo nascondi, poi vedremo
#: ../js/ui/keyboard.js:322 #: ../js/ui/keyboard.js:327
msgid "tray" msgid "tray"
msgstr "nascondi" msgstr "nascondi"
#: ../js/ui/keyboard.js:539 ../js/ui/status/power.js:203 #: ../js/ui/keyboard.js:544 ../js/ui/status/keyboard.js:44
#: ../js/ui/status/power.js:203
msgid "Keyboard" msgid "Keyboard"
msgstr "Tastiera" msgstr "Tastiera"
#: ../js/ui/lookingGlass.js:725 #: ../js/ui/keyringPrompt.js:85 ../js/ui/polkitAuthenticationAgent.js:272
msgid "Password:"
msgstr "Password:"
#: ../js/ui/keyringPrompt.js:101
msgid "Type again:"
msgstr "Inserire di nuovo:"
#: ../js/ui/lookingGlass.js:732
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:779 #: ../js/ui/lookingGlass.js:786
#, c-format #, c-format
msgid "%s has not emitted any errors." msgid "%s has not emitted any errors."
msgstr "%s non ha emesso alcun errore." msgstr "%s non ha emesso alcun errore."
#: ../js/ui/lookingGlass.js:785 #: ../js/ui/lookingGlass.js:792
#| msgid "Error"
msgid "Hide Errors" msgid "Hide Errors"
msgstr "Nascondi errori" msgstr "Nascondi errori"
#: ../js/ui/lookingGlass.js:789 ../js/ui/lookingGlass.js:840 #: ../js/ui/lookingGlass.js:796 ../js/ui/lookingGlass.js:847
#| msgid "Error"
msgid "Show Errors" msgid "Show Errors"
msgstr "Mostra errori" msgstr "Mostra errori"
# (ndt) o abilitata? # (ndt) o abilitata?
#: ../js/ui/lookingGlass.js:798 #: ../js/ui/lookingGlass.js:805
msgid "Enabled" msgid "Enabled"
msgstr "Abilitato" msgstr "Abilitato"
# (ndt) o disabilitata? # (ndt) o disabilitata?
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:801 ../src/gvc/gvc-mixer-control.c:1093 #: ../js/ui/lookingGlass.js:808 ../src/gvc/gvc-mixer-control.c:1082
msgid "Disabled" msgid "Disabled"
msgstr "Disabilitato" msgstr "Disabilitato"
#: ../js/ui/lookingGlass.js:803 #: ../js/ui/lookingGlass.js:810
msgid "Error" msgid "Error"
msgstr "Errore" msgstr "Errore"
#: ../js/ui/lookingGlass.js:805 #: ../js/ui/lookingGlass.js:812
msgid "Out of date" msgid "Out of date"
msgstr "Non aggiornato" msgstr "Non aggiornato"
#: ../js/ui/lookingGlass.js:807 #: ../js/ui/lookingGlass.js:814
msgid "Downloading" msgid "Downloading"
msgstr "Scaricamento" msgstr "Scaricamento"
#: ../js/ui/lookingGlass.js:828 #: ../js/ui/lookingGlass.js:835
msgid "View Source" msgid "View Source"
msgstr "Visualizza sorgente" msgstr "Visualizza sorgente"
#: ../js/ui/lookingGlass.js:834 #: ../js/ui/lookingGlass.js:841
msgid "Web Page" msgid "Web Page"
msgstr "Pagina web" msgstr "Pagina web"
#: ../js/ui/messageTray.js:1197 #. Translators: this is a filename used for screencast recording
#: ../js/ui/main.js:118
#, no-c-format
msgid "Screencast from %d %t"
msgstr "Screencast da %d %t"
#: ../js/ui/messageTray.js:1200
msgid "Open" msgid "Open"
msgstr "Apri" msgstr "Apri"
#: ../js/ui/messageTray.js:1214 #: ../js/ui/messageTray.js:1217
#| msgid "minute"
#| msgid_plural "minutes"
msgid "Unmute" msgid "Unmute"
msgstr "Attiva audio" msgstr "Attiva audio"
#: ../js/ui/messageTray.js:1214 #: ../js/ui/messageTray.js:1217
#| msgid "Mouse"
msgid "Mute" msgid "Mute"
msgstr "Escludi audio" msgstr "Escludi audio"
#: ../js/ui/messageTray.js:2446 #: ../js/ui/messageTray.js:2490
msgid "System Information" msgid "System Information"
msgstr "Informazione di sistema" msgstr "Informazione di sistema"
@ -812,8 +821,8 @@ msgstr "Richiesta autenticazione dalla rete wireless"
#: ../js/ui/networkAgent.js:330 #: ../js/ui/networkAgent.js:330
#, c-format #, c-format
msgid "" msgid ""
"Passwords or encryption keys are required to access the wireless network " "Passwords or encryption keys are required to access the wireless network '%"
"'%s'." "s'."
msgstr "" msgstr ""
"È richiesta una password o una chiave di cifratura per accedere alla rete " "È richiesta una password o una chiave di cifratura per accedere alla rete "
"wireless «%s»." "wireless «%s»."
@ -855,33 +864,36 @@ msgstr "È richiesta una password per connettersi a «%s»."
msgid "Undo" msgid "Undo"
msgstr "Annulla" msgstr "Annulla"
#: ../js/ui/overview.js:199 #: ../js/ui/overview.js:132
msgid "Overview"
msgstr "Panoramica"
#: ../js/ui/overview.js:202
msgid "Windows" msgid "Windows"
msgstr "Finestre" msgstr "Finestre"
#: ../js/ui/overview.js:202 #: ../js/ui/overview.js:205
msgid "Applications" msgid "Applications"
msgstr "Applicazioni" msgstr "Applicazioni"
# cruscotto?!?!?!?!?!?!? # cruscotto?!?!?!?!?!?!?
#. Translators: this is the name of the dock/favorites area on #. Translators: this is the name of the dock/favorites area on
#. the left of the overview #. the left of the overview
#: ../js/ui/overview.js:226 #: ../js/ui/overview.js:231
msgid "Dash" msgid "Dash"
msgstr "Dash" msgstr "Dash"
#: ../js/ui/panel.js:582 #: ../js/ui/panel.js:592
#| msgid "Quit %s"
msgid "Quit" 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:613 #: ../js/ui/panel.js:624
msgid "Activities" msgid "Activities"
msgstr "Attività" msgstr "Attività"
#: ../js/ui/panel.js:983 #: ../js/ui/panel.js:999
msgid "Top Bar" msgid "Top Bar"
msgstr "Barra superiore" msgstr "Barra superiore"
@ -923,16 +935,12 @@ msgstr "Autentica"
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."
#: ../js/ui/polkitAuthenticationAgent.js:272
msgid "Password:"
msgstr "Password:"
#. Translators: this MUST be either "toggle-switch-us" #. Translators: this MUST be either "toggle-switch-us"
#. (for toggle switches containing the English words #. (for toggle switches containing the English words
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle #. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will #. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches. #. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:720 #: ../js/ui/popupMenu.js:724
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-us" msgstr "toggle-switch-us"
@ -940,11 +948,11 @@ msgstr "toggle-switch-us"
msgid "Please enter a command:" msgid "Please enter a command:"
msgstr "Inserire un comando:" msgstr "Inserire un comando:"
#: ../js/ui/searchDisplay.js:333 #: ../js/ui/searchDisplay.js:332
msgid "Searching..." msgid "Searching..."
msgstr "Ricerca..." msgstr "Ricerca..."
#: ../js/ui/searchDisplay.js:356 #: ../js/ui/searchDisplay.js:415
msgid "No matching results." msgid "No matching results."
msgstr "Nessun risultato corrispondente." msgstr "Nessun risultato corrispondente."
@ -953,7 +961,6 @@ msgid "Copy"
msgstr "Copia" msgstr "Copia"
#: ../js/ui/shellEntry.js:31 #: ../js/ui/shellEntry.js:31
#| msgid "Panel"
msgid "Paste" msgid "Paste"
msgstr "Incolla" msgstr "Incolla"
@ -962,7 +969,6 @@ msgid "Show Text"
msgstr "Mostra testo" msgstr "Mostra testo"
#: ../js/ui/shellEntry.js:79 #: ../js/ui/shellEntry.js:79
#| msgid "Large Text"
msgid "Hide Text" msgid "Hide Text"
msgstr "Nascondi testo" msgstr "Nascondi testo"
@ -972,7 +978,6 @@ msgstr "Password errata, provare di nuovo"
# su Android è Rilevabile :P # su Android è Rilevabile :P
#: ../js/ui/status/accessibility.js:47 #: ../js/ui/status/accessibility.js:47
#| msgid "Visibility"
msgid "Accessibility" msgid "Accessibility"
msgstr "Accessibilità" msgstr "Accessibilità"
@ -1236,7 +1241,6 @@ msgid "Auto wireless"
msgstr "Wireless automatica" msgstr "Wireless automatica"
#: ../js/ui/status/network.js:1541 #: ../js/ui/status/network.js:1541
#| msgid "Network error"
msgid "Network" msgid "Network"
msgstr "Rete" msgstr "Rete"
@ -1390,41 +1394,41 @@ msgstr "Invito"
# A memora del test che ho fatto è "chiamata"... da verificare meglio # A memora del test che ho fatto è "chiamata"... da verificare meglio
#. We got the TpContact #. We got the TpContact
#: ../js/ui/telepathyClient.js:273 #: ../js/ui/telepathyClient.js:271
msgid "Call" msgid "Call"
msgstr "Chiamata" msgstr "Chiamata"
#. We got the TpContact #. We got the TpContact
#: ../js/ui/telepathyClient.js:289 #: ../js/ui/telepathyClient.js:287
msgid "File Transfer" msgid "File Transfer"
msgstr "Trasferimento file" msgstr "Trasferimento file"
#: ../js/ui/telepathyClient.js:371 #: ../js/ui/telepathyClient.js:369
msgid "Subscription request" msgid "Subscription request"
msgstr "Richesta sottoscrizione" msgstr "Richesta sottoscrizione"
# indica lo stato del device BT, per esempio gli auricolari # indica lo stato del device BT, per esempio gli auricolari
# credo sia meglio l'aggettivo che il sostantivo # credo sia meglio l'aggettivo che il sostantivo
#: ../js/ui/telepathyClient.js:407 #: ../js/ui/telepathyClient.js:405
msgid "Connection error" msgid "Connection error"
msgstr "Errore di connessione" msgstr "Errore di connessione"
#: ../js/ui/telepathyClient.js:665 #: ../js/ui/telepathyClient.js:663
#, c-format #, c-format
msgid "%s is online." msgid "%s is online."
msgstr "%s è disponibile." msgstr "%s è disponibile."
#: ../js/ui/telepathyClient.js:669 #: ../js/ui/telepathyClient.js:667
#, c-format #, c-format
msgid "%s is offline." msgid "%s is offline."
msgstr "%s è fuori rete." msgstr "%s è fuori rete."
#: ../js/ui/telepathyClient.js:673 #: ../js/ui/telepathyClient.js:671
#, c-format #, c-format
msgid "%s is away." msgid "%s is away."
msgstr "%s è assente." msgstr "%s è assente."
#: ../js/ui/telepathyClient.js:676 #: ../js/ui/telepathyClient.js:674
#, c-format #, c-format
msgid "%s is busy." msgid "%s is busy."
msgstr "%s non è disponibile." msgstr "%s non è disponibile."
@ -1581,7 +1585,6 @@ msgid "Connection has been lost"
msgstr "Connessione persa" msgstr "Connessione persa"
#: ../js/ui/telepathyClient.js:1321 #: ../js/ui/telepathyClient.js:1321
#| msgid "This resource is already connected to the server"
msgid "This account is already connected to the server" msgid "This account is already connected to the server"
msgstr "Questo account è già connesso al server" msgstr "Questo account è già connesso al server"
@ -1623,7 +1626,6 @@ msgstr ""
# indica lo stato del device BT, per esempio gli auricolari # indica lo stato del device BT, per esempio gli auricolari
# credo sia meglio l'aggettivo che il sostantivo # credo sia meglio l'aggettivo che il sostantivo
#: ../js/ui/telepathyClient.js:1335 #: ../js/ui/telepathyClient.js:1335
#| msgid "Connection error"
msgid "Internal error" msgid "Internal error"
msgstr "Errore interno" msgstr "Errore interno"
@ -1646,52 +1648,52 @@ msgstr "Modifica account"
msgid "Unknown reason" msgid "Unknown reason"
msgstr "Motivo sconosciuto" msgstr "Motivo sconosciuto"
#: ../js/ui/userMenu.js:133 #: ../js/ui/userMenu.js:135
msgid "Hidden" msgid "Hidden"
msgstr "Invisibile" msgstr "Invisibile"
#: ../js/ui/userMenu.js:139 #: ../js/ui/userMenu.js:141
msgid "Idle" msgid "Idle"
msgstr "Inattivo" msgstr "Inattivo"
#: ../js/ui/userMenu.js:142 #: ../js/ui/userMenu.js:144
msgid "Unavailable" msgid "Unavailable"
msgstr "Non disponibile" msgstr "Non disponibile"
#: ../js/ui/userMenu.js:579 ../js/ui/userMenu.js:583 ../js/ui/userMenu.js:653 #: ../js/ui/userMenu.js:595 ../js/ui/userMenu.js:599 ../js/ui/userMenu.js:669
msgid "Power Off..." msgid "Power Off..."
msgstr "Spegni..." msgstr "Spegni..."
#: ../js/ui/userMenu.js:615 #: ../js/ui/userMenu.js:631
msgid "Notifications" msgid "Notifications"
msgstr "Notifiche" msgstr "Notifiche"
#: ../js/ui/userMenu.js:623 #: ../js/ui/userMenu.js:639
msgid "Online Accounts" msgid "Online Accounts"
msgstr "Account online" msgstr "Account online"
#: ../js/ui/userMenu.js:627 #: ../js/ui/userMenu.js:643
msgid "System Settings" msgid "System Settings"
msgstr "Impostazioni di sistema" msgstr "Impostazioni di sistema"
#: ../js/ui/userMenu.js:634 #: ../js/ui/userMenu.js:650
msgid "Lock Screen" msgid "Lock Screen"
msgstr "Blocca schermo" msgstr "Blocca schermo"
#: ../js/ui/userMenu.js:639 #: ../js/ui/userMenu.js:655
msgid "Switch User" msgid "Switch User"
msgstr "Cambia utente" msgstr "Cambia utente"
#: ../js/ui/userMenu.js:644 #: ../js/ui/userMenu.js:660
msgid "Log Out..." msgid "Log Out..."
msgstr "Termina sessione..." msgstr "Termina sessione..."
# accorciato, altrimenti non si legge... # accorciato, altrimenti non si legge...
#: ../js/ui/userMenu.js:672 #: ../js/ui/userMenu.js:688
msgid "Your chat status will be set to busy" msgid "Your chat status will be set to busy"
msgstr "Stato per chat impostato a non disponibile" msgstr "Stato per chat impostato a non disponibile"
#: ../js/ui/userMenu.js:673 #: ../js/ui/userMenu.js:689
msgid "" msgid ""
"Notifications are now disabled, including chat messages. Your online status " "Notifications are now disabled, including chat messages. Your online status "
"has been adjusted to let others know that you might not see their messages." "has been adjusted to let others know that you might not see their messages."
@ -1732,14 +1734,14 @@ msgid "Your favorite Easter Egg"
msgstr "Il vostro Easter Egg preferito" msgstr "Il vostro Easter Egg preferito"
# (ndt) dovrebbe essere il nome dell'applicazione # (ndt) dovrebbe essere il nome dell'applicazione
#: ../js/ui/windowAttentionHandler.js:33 #: ../js/ui/windowAttentionHandler.js:19
#, c-format #, c-format
msgid "'%s' is ready" msgid "'%s' is ready"
msgstr "«%s» è pronto" msgstr "«%s» è pronto"
#. 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:1100 #: ../src/gvc/gvc-mixer-control.c:1089
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1748,30 +1750,38 @@ 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:1110 #: ../src/gvc/gvc-mixer-control.c:1099
#, 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:1408 #: ../src/gvc/gvc-mixer-control.c:1397
msgid "System Sounds" msgid "System Sounds"
msgstr "Audio di sistema" msgstr "Audio di sistema"
#: ../src/main.c:262 #: ../src/main.c:255
msgid "Print version" msgid "Print version"
msgstr "Stampa la versione" msgstr "Stampa la versione"
#: ../src/main.c:268 #: ../src/main.c:261
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/shell-app.c:617 #: ../src/shell-app.c:619
#, c-format #, c-format
msgid "Failed to launch '%s'" msgid "Failed to launch '%s'"
msgstr "Avvio di «%s» non riuscito" msgstr "Avvio di «%s» non riuscito"
#: ../src/shell-keyring-prompt.c:708
msgid "Passwords do not match."
msgstr "Le password non corrispondono."
#: ../src/shell-keyring-prompt.c:716
msgid "Password cannot be blank"
msgstr "La password non può essere vuota"
#: ../src/shell-mobile-providers.c:80 #: ../src/shell-mobile-providers.c:80
msgid "United Kingdom" msgid "United Kingdom"
msgstr "Regno Unito" msgstr "Regno Unito"
@ -1780,14 +1790,13 @@ msgstr "Regno Unito"
msgid "Default" msgid "Default"
msgstr "Predefinito" msgstr "Predefinito"
#: ../src/shell-polkit-authentication-agent.c:332 #: ../src/shell-polkit-authentication-agent.c:339
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "Il dialogo di autenticazione è stato annullato dall'utente" msgstr "Il dialogo di autenticazione è stato annullato dall'utente"
#. Translators: this is the same string as the one found in #. Translators: this is the same string as the one found in
#. * nautilus #. * nautilus
#: ../src/shell-util.c:97 #: ../src/shell-util.c:97
#| msgid "Volume"
msgid "Home" msgid "Home"
msgstr "Home" msgstr "Home"
@ -1808,6 +1817,9 @@ msgstr "File system"
msgid "%1$s: %2$s" msgid "%1$s: %2$s"
msgstr "%1$s: %2$s" msgstr "%1$s: %2$s"
#~ msgid "RECENT ITEMS"
#~ msgstr "ELEMENTI RECENTI"
#~ msgid "" #~ msgid ""
#~ "GNOME Shell extensions have a uuid property; this key lists extensions " #~ "GNOME Shell extensions have a uuid property; this key lists extensions "
#~ "which should be loaded. disabled-extensions overrides this setting for " #~ "which should be loaded. disabled-extensions overrides this setting for "

185
po/ja.po

@ -12,9 +12,9 @@ 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: 2012-03-24 17:45+0000\n" "POT-Creation-Date: 2012-04-19 21:14+0000\n"
"PO-Revision-Date: 2012-03-25 05:15+0900\n" "PO-Revision-Date: 2012-04-21 21:35+0900\n"
"Last-Translator: Jiro Matsuzawa <jmatsuzawa@src.gnome.org>\n" "Last-Translator: OKANO Takayoshi <kano@na.rim.or.jp>\n"
"Language-Team: Japanese <gnome-translation@gnome.gr.jp>\n" "Language-Team: Japanese <gnome-translation@gnome.gr.jp>\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"
@ -126,34 +126,42 @@ msgid "If true, display the ISO week date in the calendar."
msgstr "ISO 8601 方式の暦週日付を表示します。" msgstr "ISO 8601 方式の暦週日付を表示します。"
#: ../data/org.gnome.shell.gschema.xml.in.h:16 #: ../data/org.gnome.shell.gschema.xml.in.h:16
msgid "Keybinding to open the application menu"
msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.h:17
msgid "Keybinding to open the application menu."
msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.h:18
msgid "Which keyboard to use" msgid "Which keyboard to use"
msgstr "使いたいキーボードの種類" msgstr "使いたいキーボードの種類"
#: ../data/org.gnome.shell.gschema.xml.in.h:17 #: ../data/org.gnome.shell.gschema.xml.in.h:19
msgid "The type of keyboard to use." msgid "The type of keyboard to use."
msgstr "使いたいキーボードの種類です。" msgstr "使いたいキーボードの種類です。"
#: ../data/org.gnome.shell.gschema.xml.in.h:18 #: ../data/org.gnome.shell.gschema.xml.in.h:20
msgid "Show time with seconds" msgid "Show time with seconds"
msgstr "秒を表示" msgstr "秒を表示"
#: ../data/org.gnome.shell.gschema.xml.in.h:19 #: ../data/org.gnome.shell.gschema.xml.in.h:21
msgid "If true, display seconds in time." msgid "If true, display seconds in time."
msgstr "時刻を秒まで表示します。" msgstr "時刻を秒まで表示します。"
#: ../data/org.gnome.shell.gschema.xml.in.h:20 #: ../data/org.gnome.shell.gschema.xml.in.h:22
msgid "Show date in clock" msgid "Show date in clock"
msgstr "日付を表示" msgstr "日付を表示"
#: ../data/org.gnome.shell.gschema.xml.in.h:21 #: ../data/org.gnome.shell.gschema.xml.in.h:23
msgid "If true, display date in the clock, in addition to time." msgid "If true, display date in the clock, in addition to time."
msgstr "日付と時刻を表示します。" msgstr "日付と時刻を表示します。"
#: ../data/org.gnome.shell.gschema.xml.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.h:24
msgid "Framerate used for recording screencasts." msgid "Framerate used for recording screencasts."
msgstr "スクリーンキャスト録画のフレームレート" msgstr "スクリーンキャスト録画のフレームレート"
#: ../data/org.gnome.shell.gschema.xml.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.h:25
msgid "" msgid ""
"The framerate of the resulting screencast recordered by GNOME Shell's " "The framerate of the resulting screencast recordered by GNOME Shell's "
"screencast recorder in frames-per-second." "screencast recorder in frames-per-second."
@ -161,11 +169,11 @@ msgstr ""
"GNOME Shell のスクリーンキャストレコーダーで録画するスクリーンキャストの 1秒" "GNOME Shell のスクリーンキャストレコーダーで録画するスクリーンキャストの 1秒"
"あたりのフレーム数です。" "あたりのフレーム数です。"
#: ../data/org.gnome.shell.gschema.xml.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.h:26
msgid "The gstreamer pipeline used to encode the screencast" msgid "The gstreamer pipeline used to encode the screencast"
msgstr "スクリーンキャストのエンコードに使用する Gstreamer パイプライン" msgstr "スクリーンキャストのエンコードに使用する Gstreamer パイプライン"
#: ../data/org.gnome.shell.gschema.xml.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.h:28
#, no-c-format #, no-c-format
msgid "" msgid ""
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax " "Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
@ -189,11 +197,11 @@ msgstr ""
"webmmux' が使用され、VP8 コーデックを使用した WebM 形式で録画します。 '%T' は" "webmmux' が使用され、VP8 コーデックを使用した WebM 形式で録画します。 '%T' は"
"システムの最適スレッド数の推量値を示すプレースホルダーです。" "システムの最適スレッド数の推量値を示すプレースホルダーです。"
#: ../data/org.gnome.shell.gschema.xml.in.h:27 #: ../data/org.gnome.shell.gschema.xml.in.h:29
msgid "File extension used for storing the screencast" msgid "File extension used for storing the screencast"
msgstr "ファイルに保存するスクリーンキャストのファイル拡張子" msgstr "ファイルに保存するスクリーンキャストのファイル拡張子"
#: ../data/org.gnome.shell.gschema.xml.in.h:28 #: ../data/org.gnome.shell.gschema.xml.in.h:30
msgid "" msgid ""
"The filename for recorded screencasts will be a unique filename based on the " "The filename for recorded screencasts will be a unique filename based on the "
"current date, and use this extension. It should be changed when recording to " "current date, and use this extension. It should be changed when recording to "
@ -216,40 +224,40 @@ msgstr "<b>拡張機能</b>"
msgid "Select an extension to configure using the combobox above." msgid "Select an extension to configure using the combobox above."
msgstr "設定する拡張機能を上部のコンボボックスから選択してください。" msgstr "設定する拡張機能を上部のコンボボックスから選択してください。"
#: ../js/gdm/loginDialog.js:624 #: ../js/gdm/loginDialog.js:627
msgid "Session..." msgid "Session..."
msgstr "セッション..." msgstr "セッション..."
#: ../js/gdm/loginDialog.js:786 #: ../js/gdm/loginDialog.js:789
msgctxt "title" msgctxt "title"
msgid "Sign In" msgid "Sign In"
msgstr "サインイン" msgstr "サインイン"
#. Translators: this message is shown below the password entry field #. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead #. to indicate the user can swipe their finger instead
#: ../js/gdm/loginDialog.js:831 #: ../js/gdm/loginDialog.js:834
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(あるいは指でスワイプする)" msgstr "(あるいは指でスワイプする)"
#. translators: this message is shown below the user list on the #. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for #. login screen. It can be activated to reveal an entry for
#. manually entering the username. #. manually entering the username.
#: ../js/gdm/loginDialog.js:852 #: ../js/gdm/loginDialog.js:855
msgid "Not listed?" msgid "Not listed?"
msgstr "アカウントが見つかりませんか?" msgstr "アカウントが見つかりませんか?"
#: ../js/gdm/loginDialog.js:1020 ../js/ui/endSessionDialog.js:401 #: ../js/gdm/loginDialog.js:1023 ../js/ui/endSessionDialog.js:401
#: ../js/ui/extensionSystem.js:399 ../js/ui/networkAgent.js:153 #: ../js/ui/extensionSystem.js:400 ../js/ui/networkAgent.js:153
#: ../js/ui/polkitAuthenticationAgent.js:175 ../js/ui/status/bluetooth.js:462 #: ../js/ui/polkitAuthenticationAgent.js:175 ../js/ui/status/bluetooth.js:462
msgid "Cancel" msgid "Cancel"
msgstr "キャンセル" msgstr "キャンセル"
#: ../js/gdm/loginDialog.js:1025 #: ../js/gdm/loginDialog.js:1028
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "サインイン" msgstr "サインイン"
#: ../js/gdm/loginDialog.js:1377 #: ../js/gdm/loginDialog.js:1380
msgid "Login Window" msgid "Login Window"
msgstr "ログインウィンドウ" msgstr "ログインウィンドウ"
@ -649,11 +657,11 @@ msgstr[0] "%d 秒後にシステムを再起動します。"
msgid "Restarting the system." msgid "Restarting the system."
msgstr "システムを再起動します。" msgstr "システムを再起動します。"
#: ../js/ui/extensionSystem.js:403 #: ../js/ui/extensionSystem.js:404
msgid "Install" msgid "Install"
msgstr "インストール" msgstr "インストール"
#: ../js/ui/extensionSystem.js:407 #: ../js/ui/extensionSystem.js:408
#, c-format #, c-format
msgid "Download and install '%s' from extensions.gnome.org?" msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "extensions.gnome.org から '%s' をダウンロードしてインストールしますか?" msgstr "extensions.gnome.org から '%s' をダウンロードしてインストールしますか?"
@ -662,7 +670,8 @@ msgstr "extensions.gnome.org から '%s' をダウンロードしてインスト
msgid "tray" msgid "tray"
msgstr "トレイ" msgstr "トレイ"
#: ../js/ui/keyboard.js:544 ../js/ui/status/power.js:203 #: ../js/ui/keyboard.js:544 ../js/ui/status/keyboard.js:44
#: ../js/ui/status/power.js:203
msgid "Keyboard" msgid "Keyboard"
msgstr "キーボード" msgstr "キーボード"
@ -674,51 +683,51 @@ msgstr "パスワード:"
msgid "Type again:" msgid "Type again:"
msgstr "再入力:" msgstr "再入力:"
#: ../js/ui/lookingGlass.js:725 #: ../js/ui/lookingGlass.js:732
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:779 #: ../js/ui/lookingGlass.js:786
#, c-format #, c-format
msgid "%s has not emitted any errors." msgid "%s has not emitted any errors."
msgstr "%s は何もエラーを出力していません。" msgstr "%s は何もエラーを出力していません。"
#: ../js/ui/lookingGlass.js:785 #: ../js/ui/lookingGlass.js:792
msgid "Hide Errors" msgid "Hide Errors"
msgstr "エラーを非表示" msgstr "エラーを非表示"
#: ../js/ui/lookingGlass.js:789 ../js/ui/lookingGlass.js:840 #: ../js/ui/lookingGlass.js:796 ../js/ui/lookingGlass.js:847
msgid "Show Errors" msgid "Show Errors"
msgstr "エラーを表示" msgstr "エラーを表示"
#: ../js/ui/lookingGlass.js:798 #: ../js/ui/lookingGlass.js:805
msgid "Enabled" msgid "Enabled"
msgstr "利用可能にする" msgstr "利用可能にする"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:801 ../src/gvc/gvc-mixer-control.c:1093 #: ../js/ui/lookingGlass.js:808 ../src/gvc/gvc-mixer-control.c:1082
msgid "Disabled" msgid "Disabled"
msgstr "利用不可能にする" msgstr "利用不可能にする"
#: ../js/ui/lookingGlass.js:803 #: ../js/ui/lookingGlass.js:810
msgid "Error" msgid "Error"
msgstr "エラー" msgstr "エラー"
#: ../js/ui/lookingGlass.js:805 #: ../js/ui/lookingGlass.js:812
msgid "Out of date" msgid "Out of date"
msgstr "最新ではありません" msgstr "最新ではありません"
#: ../js/ui/lookingGlass.js:807 #: ../js/ui/lookingGlass.js:814
msgid "Downloading" msgid "Downloading"
msgstr "ダウンロード中" msgstr "ダウンロード中"
#: ../js/ui/lookingGlass.js:828 #: ../js/ui/lookingGlass.js:835
msgid "View Source" msgid "View Source"
msgstr "ソースの表示" msgstr "ソースの表示"
#: ../js/ui/lookingGlass.js:834 #: ../js/ui/lookingGlass.js:841
msgid "Web Page" msgid "Web Page"
msgstr "ウェブページ" msgstr "ウェブページ"
@ -849,17 +858,17 @@ msgstr "アプリケーション"
msgid "Dash" msgid "Dash"
msgstr "ダッシュボード" msgstr "ダッシュボード"
#: ../js/ui/panel.js:591 #: ../js/ui/panel.js:592
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:623 #: ../js/ui/panel.js:624
msgid "Activities" msgid "Activities"
msgstr "アクティビティ" msgstr "アクティビティ"
#: ../js/ui/panel.js:998 #: ../js/ui/panel.js:999
msgid "Top Bar" msgid "Top Bar"
msgstr "トップバー" msgstr "トップバー"
@ -917,7 +926,7 @@ msgstr "コマンド:"
msgid "Searching..." msgid "Searching..."
msgstr "検索しています..." msgstr "検索しています..."
#: ../js/ui/searchDisplay.js:414 #: ../js/ui/searchDisplay.js:415
msgid "No matching results." msgid "No matching results."
msgstr "一致するものがありません。" msgstr "一致するものがありません。"
@ -1075,7 +1084,7 @@ msgstr "許可"
msgid "Grant this time only" msgid "Grant this time only"
msgstr "今回のみ許可" msgstr "今回のみ許可"
#: ../js/ui/status/bluetooth.js:382 ../js/ui/telepathyClient.js:1091 #: ../js/ui/status/bluetooth.js:382 ../js/ui/telepathyClient.js:1093
msgid "Reject" msgid "Reject"
msgstr "拒否" msgstr "拒否"
@ -1388,35 +1397,35 @@ msgstr "%s は取り込み中です。"
#. Translators: this is a time format string followed by a date. #. Translators: this is a time format string followed by a date.
#. If applicable, replace %X with a strftime format valid for your #. If applicable, replace %X with a strftime format valid for your
#. locale, without seconds. #. locale, without seconds.
#: ../js/ui/telepathyClient.js:887 #: ../js/ui/telepathyClient.js:889
#, no-c-format #, no-c-format
msgid "Sent at <b>%X</b> on <b>%A</b>" msgid "Sent at <b>%X</b> on <b>%A</b>"
msgstr "<b>%A</b>の<b>%X</b>に送信" msgstr "<b>%A</b>の<b>%X</b>に送信"
#. Translators: this is a time format in the style of "Wednesday, May 25", #. Translators: this is a time format in the style of "Wednesday, May 25",
#. shown when you get a chat message in the same year. #. shown when you get a chat message in the same year.
#: ../js/ui/telepathyClient.js:893 #: ../js/ui/telepathyClient.js:895
#, no-c-format #, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>" msgid "Sent on <b>%A</b>, <b>%B %d</b>"
msgstr "<b>%b%e日</b> <b>%A</b>に送信" msgstr "<b>%b%e日</b> <b>%A</b>に送信"
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012", #. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
#. shown when you get a chat message in a different year. #. shown when you get a chat message in a different year.
#: ../js/ui/telepathyClient.js:898 #: ../js/ui/telepathyClient.js:900
#, no-c-format #, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y" msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
msgstr "<b>%Y年%b%e日</b> <b>%A</b>に送信" msgstr "<b>%Y年%b%e日</b> <b>%A</b>に送信"
#. 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/telepathyClient.js:940 #: ../js/ui/telepathyClient.js:942
#, c-format #, c-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "%s は %s になりました" msgstr "%s は %s になりました"
#. translators: argument is a room name like #. translators: argument is a room name like
#. * room@jabber.org for example. #. * room@jabber.org for example.
#: ../js/ui/telepathyClient.js:1042 #: ../js/ui/telepathyClient.js:1044
#, c-format #, c-format
msgid "Invitation to %s" msgid "Invitation to %s"
msgstr "%s への招待" msgstr "%s への招待"
@ -1424,35 +1433,35 @@ msgstr "%s への招待"
#. translators: first argument is the name of a contact and the second #. translators: first argument is the name of a contact and the second
#. * one the name of a room. "Alice is inviting you to join room@jabber.org #. * one the name of a room. "Alice is inviting you to join room@jabber.org
#. * for example. #. * for example.
#: ../js/ui/telepathyClient.js:1050 #: ../js/ui/telepathyClient.js:1052
#, c-format #, c-format
msgid "%s is inviting you to join %s" msgid "%s is inviting you to join %s"
msgstr "%s さんがあなたを %s に招待しています" msgstr "%s さんがあなたを %s に招待しています"
#: ../js/ui/telepathyClient.js:1052 ../js/ui/telepathyClient.js:1131 #: ../js/ui/telepathyClient.js:1054 ../js/ui/telepathyClient.js:1133
#: ../js/ui/telepathyClient.js:1229 #: ../js/ui/telepathyClient.js:1231
msgid "Decline" msgid "Decline"
msgstr "拒否する" msgstr "拒否する"
#: ../js/ui/telepathyClient.js:1053 ../js/ui/telepathyClient.js:1132 #: ../js/ui/telepathyClient.js:1055 ../js/ui/telepathyClient.js:1134
#: ../js/ui/telepathyClient.js:1230 #: ../js/ui/telepathyClient.js:1232
msgid "Accept" msgid "Accept"
msgstr "受け入れる" msgstr "受け入れる"
#. translators: argument is a contact name like Alice for example. #. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1083 #: ../js/ui/telepathyClient.js:1085
#, c-format #, c-format
msgid "Video call from %s" msgid "Video call from %s"
msgstr "%s さんからビデオでの呼び出し" msgstr "%s さんからビデオでの呼び出し"
#. translators: argument is a contact name like Alice for example. #. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1086 #: ../js/ui/telepathyClient.js:1088
#, c-format #, c-format
msgid "Call from %s" msgid "Call from %s"
msgstr "%s さんからの呼び出し" msgstr "%s さんからの呼び出し"
#. translators: this is a button label (verb), not a noun #. translators: this is a button label (verb), not a noun
#: ../js/ui/telepathyClient.js:1093 #: ../js/ui/telepathyClient.js:1095
msgid "Answer" msgid "Answer"
msgstr "応答" msgstr "応答"
@ -1461,109 +1470,109 @@ msgstr "応答"
#. * file name. The string will be something #. * file name. The string will be something
#. * like: "Alice is sending you test.ogg" #. * like: "Alice is sending you test.ogg"
#. #.
#: ../js/ui/telepathyClient.js:1125 #: ../js/ui/telepathyClient.js:1127
#, c-format #, c-format
msgid "%s is sending you %s" msgid "%s is sending you %s"
msgstr "%s さんがあなたに %s を送信しようとしています" msgstr "%s さんがあなたに %s を送信しようとしています"
#. To translators: The parameter is the contact's alias #. To translators: The parameter is the contact's alias
#: ../js/ui/telepathyClient.js:1194 #: ../js/ui/telepathyClient.js:1196
#, c-format #, c-format
msgid "%s would like permission to see when you are online" msgid "%s would like permission to see when you are online"
msgstr "" msgstr ""
"%s さんが、あなたがオンライン状態になったことを知る許可を欲しいと思っています" "%s さんが、あなたがオンライン状態になったことを知る許可を欲しいと思っています"
#: ../js/ui/telepathyClient.js:1287 #: ../js/ui/telepathyClient.js:1289
msgid "Network error" msgid "Network error"
msgstr "ネットワークエラー" msgstr "ネットワークエラー"
#: ../js/ui/telepathyClient.js:1289 #: ../js/ui/telepathyClient.js:1291
msgid "Authentication failed" msgid "Authentication failed"
msgstr "認証失敗" msgstr "認証失敗"
#: ../js/ui/telepathyClient.js:1291 #: ../js/ui/telepathyClient.js:1293
msgid "Encryption error" msgid "Encryption error"
msgstr "暗号化のエラーです" msgstr "暗号化のエラーです"
#: ../js/ui/telepathyClient.js:1293 #: ../js/ui/telepathyClient.js:1295
msgid "Certificate not provided" msgid "Certificate not provided"
msgstr "証明書がありません" msgstr "証明書がありません"
#: ../js/ui/telepathyClient.js:1295 #: ../js/ui/telepathyClient.js:1297
msgid "Certificate untrusted" msgid "Certificate untrusted"
msgstr "信用のない証明書です" msgstr "信用のない証明書です"
#: ../js/ui/telepathyClient.js:1297 #: ../js/ui/telepathyClient.js:1299
msgid "Certificate expired" msgid "Certificate expired"
msgstr "証明書の有効期限が切れています" msgstr "証明書の有効期限が切れています"
#: ../js/ui/telepathyClient.js:1299 #: ../js/ui/telepathyClient.js:1301
msgid "Certificate not activated" msgid "Certificate not activated"
msgstr "証明書は利用できません" msgstr "証明書は利用できません"
#: ../js/ui/telepathyClient.js:1301 #: ../js/ui/telepathyClient.js:1303
msgid "Certificate hostname mismatch" msgid "Certificate hostname mismatch"
msgstr "証明書のホスト名が一致しません" msgstr "証明書のホスト名が一致しません"
#: ../js/ui/telepathyClient.js:1303 #: ../js/ui/telepathyClient.js:1305
msgid "Certificate fingerprint mismatch" msgid "Certificate fingerprint mismatch"
msgstr "証明書の指紋が一致しません" msgstr "証明書の指紋が一致しません"
#: ../js/ui/telepathyClient.js:1305 #: ../js/ui/telepathyClient.js:1307
msgid "Certificate self-signed" msgid "Certificate self-signed"
msgstr "証明書自身の署名です" msgstr "証明書自身の署名です"
#: ../js/ui/telepathyClient.js:1307 #: ../js/ui/telepathyClient.js:1309
msgid "Status is set to offline" msgid "Status is set to offline"
msgstr "状態はオフラインに設定されています" msgstr "状態はオフラインに設定されています"
#: ../js/ui/telepathyClient.js:1309 #: ../js/ui/telepathyClient.js:1311
msgid "Encryption is not available" msgid "Encryption is not available"
msgstr "暗号が利用できません" msgstr "暗号が利用できません"
#: ../js/ui/telepathyClient.js:1311 #: ../js/ui/telepathyClient.js:1313
msgid "Certificate is invalid" msgid "Certificate is invalid"
msgstr "証明書が正しくありません" msgstr "証明書が正しくありません"
#: ../js/ui/telepathyClient.js:1313 #: ../js/ui/telepathyClient.js:1315
msgid "Connection has been refused" msgid "Connection has been refused"
msgstr "接続が拒否されました" msgstr "接続が拒否されました"
#: ../js/ui/telepathyClient.js:1315 #: ../js/ui/telepathyClient.js:1317
msgid "Connection can't be established" msgid "Connection can't be established"
msgstr "接続を確立できませんでした" msgstr "接続を確立できませんでした"
#: ../js/ui/telepathyClient.js:1317 #: ../js/ui/telepathyClient.js:1319
msgid "Connection has been lost" msgid "Connection has been lost"
msgstr "接続が失われました" msgstr "接続が失われました"
#: ../js/ui/telepathyClient.js:1319 #: ../js/ui/telepathyClient.js:1321
msgid "This account is already connected to the server" msgid "This account is already connected to the server"
msgstr "このアカウントはすでにサーバーに接続済みです" msgstr "このアカウントはすでにサーバーに接続済みです"
#: ../js/ui/telepathyClient.js:1321 #: ../js/ui/telepathyClient.js:1323
msgid "" msgid ""
"Connection has been replaced by a new connection using the same resource" "Connection has been replaced by a new connection using the same resource"
msgstr "接続は同じリソースを使って新しい接続で置き換わりました" msgstr "接続は同じリソースを使って新しい接続で置き換わりました"
#: ../js/ui/telepathyClient.js:1323 #: ../js/ui/telepathyClient.js:1325
msgid "The account already exists on the server" msgid "The account already exists on the server"
msgstr "アカウントがサーバーに既に存在しています" msgstr "アカウントがサーバーに既に存在しています"
#: ../js/ui/telepathyClient.js:1325 #: ../js/ui/telepathyClient.js:1327
msgid "Server is currently too busy to handle the connection" msgid "Server is currently too busy to handle the connection"
msgstr "サーバーがビジー状態にあるため、この接続を処理できません" msgstr "サーバーがビジー状態にあるため、この接続を処理できません"
#: ../js/ui/telepathyClient.js:1327 #: ../js/ui/telepathyClient.js:1329
msgid "Certificate has been revoked" msgid "Certificate has been revoked"
msgstr "証明書が無効化されました" msgstr "証明書が無効化されました"
#: ../js/ui/telepathyClient.js:1329 #: ../js/ui/telepathyClient.js:1331
msgid "" msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak" "Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr "証明書が安全でない暗号のアルゴリズムを使っているか、暗号的に弱いです" msgstr "証明書が安全でない暗号のアルゴリズムを使っているか、暗号的に弱いです"
#: ../js/ui/telepathyClient.js:1331 #: ../js/ui/telepathyClient.js:1333
msgid "" msgid ""
"The length of the server certificate, or the depth of the server certificate " "The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library" "chain, exceed the limits imposed by the cryptography library"
@ -1571,26 +1580,26 @@ msgstr ""
"サーバー証明書の長さや、サーバー証明書のチェーンの深さが暗号ライブラリで規定" "サーバー証明書の長さや、サーバー証明書のチェーンの深さが暗号ライブラリで規定"
"されている長さを越えています" "されている長さを越えています"
#: ../js/ui/telepathyClient.js:1333 #: ../js/ui/telepathyClient.js:1335
msgid "Internal error" msgid "Internal error"
msgstr "内部エラー" msgstr "内部エラー"
#. translators: argument is the account name, like #. translators: argument is the account name, like
#. * name@jabber.org for example. #. * name@jabber.org for example.
#: ../js/ui/telepathyClient.js:1343 #: ../js/ui/telepathyClient.js:1345
#, c-format #, c-format
msgid "Connection to %s failed" msgid "Connection to %s failed"
msgstr "%s に接続できません" msgstr "%s に接続できません"
#: ../js/ui/telepathyClient.js:1352 #: ../js/ui/telepathyClient.js:1354
msgid "Reconnect" msgid "Reconnect"
msgstr "再接続" msgstr "再接続"
#: ../js/ui/telepathyClient.js:1353 #: ../js/ui/telepathyClient.js:1355
msgid "Edit account" msgid "Edit account"
msgstr "アカウントの編集" msgstr "アカウントの編集"
#: ../js/ui/telepathyClient.js:1399 #: ../js/ui/telepathyClient.js:1401
msgid "Unknown reason" msgid "Unknown reason"
msgstr "原因不明" msgstr "原因不明"
@ -1675,7 +1684,7 @@ msgstr "預言者 %s 曰く"
#: ../js/ui/wanda.js:168 #: ../js/ui/wanda.js:168
msgid "Your favorite Easter Egg" msgid "Your favorite Easter Egg"
msgstr "あなの好きなイースターエッグ" msgstr "あなの好きなイースターエッグ"
#: ../js/ui/windowAttentionHandler.js:19 #: ../js/ui/windowAttentionHandler.js:19
#, c-format #, c-format
@ -1684,7 +1693,7 @@ msgstr "'%s' は準備完了です"
#. 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:1100 #: ../src/gvc/gvc-mixer-control.c:1089
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1692,13 +1701,13 @@ msgstr[0] "出力数: %u"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1110 #: ../src/gvc/gvc-mixer-control.c:1099
#, 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:1408 #: ../src/gvc/gvc-mixer-control.c:1397
msgid "System Sounds" msgid "System Sounds"
msgstr "システムのサウンド" msgstr "システムのサウンド"

283
po/ko.po

@ -1,14 +1,19 @@
# 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.
# Young-Ho Cha <ganadist@gmail.com>, 2009. # Young-Ho Cha <ganadist@gmail.com>, 2009.
# Changwoo Ryu <cwryu@debian.org>, 2011-2012.
# Seong-ho Cho <darkcircle.0426@gmail.com>, 2012. # Seong-ho Cho <darkcircle.0426@gmail.com>, 2012.
# Changwoo Ryu <cwryu@debian.org>, 2011-2012.
#
#
# 주의 사항:
# - 이 프로그램의 이름인 shell은 "셸"이라고 쓰고, "쉘"이라고 하지 않음.
# - instance messanger 또는 IM은 메신저라고 번역
# #
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: 2012-03-19 14:09+0000\n" "POT-Creation-Date: 2012-04-19 21:14+0000\n"
"PO-Revision-Date: 2012-03-27 01:36+0900\n" "PO-Revision-Date: 2012-04-26 01:05+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"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -23,31 +28,30 @@ msgstr "그놈 셸"
#: ../data/gnome-shell.desktop.in.in.h:2 #: ../data/gnome-shell.desktop.in.in.h:2
msgid "Window management and application launching" msgid "Window management and application launching"
msgstr "창 관리 프로그램 시작" msgstr "창 관리 프로그램 실행"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
#: ../js/extensionPrefs/main.js:153 #: ../js/extensionPrefs/main.js:153
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "그놈 확장 기본 설정" msgstr "그놈 확장 기본 설정"
#: ../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 "그놈 확장을 설정합니다" msgstr "그놈 확장을 설정합니다"
#: ../data/org.gnome.shell.gschema.xml.in.h:1 #: ../data/org.gnome.shell.gschema.xml.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"
msgstr "Alt-F2를 이용해 개발 및 테스트용 내부 프로그램 사용 가능" msgstr "Alt-F2에서 개발 및 테스트용 내부 기능 사용 가능"
#: ../data/org.gnome.shell.gschema.xml.in.h:2 #: ../data/org.gnome.shell.gschema.xml.in.h:2
msgid "" msgid ""
"Allows access to internal debugging and monitoring tools using the Alt-F2 " "Allows access to internal debugging and monitoring tools using the Alt-F2 "
"dialog." "dialog."
msgstr "" msgstr "Alt-F2 대화 상자에서 내부 디버깅 및 감시 기능에 접근을 허용합니다."
"Alt-F2 대화 상자를 사용할 때 내부 디버깅 및 감시 도구에 접근을 허용합니다."
#: ../data/org.gnome.shell.gschema.xml.in.h:3 #: ../data/org.gnome.shell.gschema.xml.in.h:3
msgid "Uuids of extensions to enable" msgid "Uuids of extensions to enable"
msgstr "사용할 확장 기능의 UUID" msgstr "사용할 확장 기능의 UUID 목록"
#: ../data/org.gnome.shell.gschema.xml.in.h:4 #: ../data/org.gnome.shell.gschema.xml.in.h:4
msgid "" msgid ""
@ -55,14 +59,11 @@ msgid ""
"should be loaded. Any extension that wants to be loaded needs to be in this " "should be loaded. Any extension that wants to be loaded needs to be in this "
"list. You can also manipulate this list with the EnableExtension and " "list. You can also manipulate this list with the EnableExtension and "
"DisableExtension DBus methods on org.gnome.Shell." "DisableExtension DBus methods on org.gnome.Shell."
msgstr "" msgstr "그놈 셸 확장에는 UUID 속성이 있습니다. 이 키는 읽어들일 확장의 UUID를 나열합니다. 읽어들이려는 확장은 모두 이 목록에 들어 있어야 합니다. EnableExtension 및 DisableExtension D-버스 메소드를 이용해 이 목록을 조작할 수도 있습니다."
"그놈 셸 확장에 UUID 속성이 있으며 이 키는 불러올 확장을 나열합니다. 불러오려"
"는 확장은 이 목록에 있을 필요가 있습니다. 또한 이 목록을 org.gnome.Shell에 있"
"는 EnableExtension과 DisableExtension DBus 메서드로 조작할 수 있습니다."
#: ../data/org.gnome.shell.gschema.xml.in.h:5 #: ../data/org.gnome.shell.gschema.xml.in.h:5
msgid "Whether to collect stats about applications usage" msgid "Whether to collect stats about applications usage"
msgstr "프로그램 사용 통계를 저장할지 여부" msgstr "프로그램 사용 통계를 수집할지 여부"
#: ../data/org.gnome.shell.gschema.xml.in.h:6 #: ../data/org.gnome.shell.gschema.xml.in.h:6
msgid "" msgid ""
@ -84,35 +85,31 @@ msgstr "즐겨찾기 프로그램의 데스크톱 파일 ID 목록"
msgid "" msgid ""
"The applications corresponding to these identifiers will be displayed in the " "The applications corresponding to these identifiers will be displayed in the "
"favorites area." "favorites area."
msgstr " ID에 해당하는 프로그램은 즐겨찾기 영역에 표시됩니다." msgstr "여기 들어 있는 ID에 해당하는 프로그램은 즐겨찾기 영역에 표시됩니다."
#: ../data/org.gnome.shell.gschema.xml.in.h:9 #: ../data/org.gnome.shell.gschema.xml.in.h:9
msgid "disabled OpenSearch providers" msgid "disabled OpenSearch providers"
msgstr "OpenSearch 서비스 사용하지 않음" msgstr "사용하지 않는 OpenSearch 서비스"
#: ../data/org.gnome.shell.gschema.xml.in.h:10 #: ../data/org.gnome.shell.gschema.xml.in.h:10
msgid "History for command (Alt-F2) dialog" msgid "History for command (Alt-F2) dialog"
msgstr "명령어 (Alt-F2) 대화 상자에 명령어 기록 기능" msgstr "명령어 대화 상자에 (Alt-F2) 기록 기능"
#: ../data/org.gnome.shell.gschema.xml.in.h:11 #: ../data/org.gnome.shell.gschema.xml.in.h:11
msgid "History for the looking glass dialog" msgid "History for the looking glass dialog"
msgstr "돋보기 대화 창의 기록" msgstr "돋보기 대화 상자에 기록 기능"
#: ../data/org.gnome.shell.gschema.xml.in.h:12 #: ../data/org.gnome.shell.gschema.xml.in.h:12
msgid "" msgid ""
"Internally used to store the last IM presence explicitly set by the user. " "Internally used to store the last IM presence explicitly set by the user. "
"The value here is from the TpConnectionPresenceType enumeration." "The value here is from the TpConnectionPresenceType enumeration."
msgstr "" msgstr "사용자가 직접 설정한 메신저 상태를 저장하는데 내부적으로 사용. 여기에 사용하는 값은 TpConnectionPresenceType 열거 상수 값입니다."
"사용자가 명시적으로 설정한 최근 IM 존재를 저장하기 위해 내부적으로 사용했습니"
"다. 이 값은 TpConnectionPresenceType 열거상수로부터 왔습니다."
#: ../data/org.gnome.shell.gschema.xml.in.h:13 #: ../data/org.gnome.shell.gschema.xml.in.h:13
msgid "" msgid ""
"Internally used to store the last session presence status for the user. The " "Internally used to store the last session presence status for the user. The "
"value here is from the GsmPresenceStatus enumeration." "value here is from the GsmPresenceStatus enumeration."
msgstr "" msgstr "사용자의 최근 세션 상태를 저장하는데 내부적으로 사용. 여기에 사용하는 값은 GsmPresenceStatus 열거 상수 값입니다."
"사용자를 위한 최근 세션 존재 상태를 저장하기 위해 내부적으로 사용합니다. 이 "
"값은 GsmPresenceStatus 열거상수로부터 왔습니다."
#: ../data/org.gnome.shell.gschema.xml.in.h:14 #: ../data/org.gnome.shell.gschema.xml.in.h:14
msgid "Show the week date in the calendar" msgid "Show the week date in the calendar"
@ -123,46 +120,53 @@ msgid "If true, display the ISO week date in the calendar."
msgstr "참이면 달력에 ISO 요일을 표시합니다." msgstr "참이면 달력에 ISO 요일을 표시합니다."
#: ../data/org.gnome.shell.gschema.xml.in.h:16 #: ../data/org.gnome.shell.gschema.xml.in.h:16
msgid "Keybinding to open the application menu"
msgstr "프로그램 메뉴를 여는 키 바인딩"
#: ../data/org.gnome.shell.gschema.xml.in.h:17
msgid "Keybinding to open the application menu."
msgstr "프로그램 메뉴를 여는 키 바인딩."
#: ../data/org.gnome.shell.gschema.xml.in.h:18
msgid "Which keyboard to use" msgid "Which keyboard to use"
msgstr "사용할 키보드" msgstr "사용할 키보드"
#: ../data/org.gnome.shell.gschema.xml.in.h:17 #: ../data/org.gnome.shell.gschema.xml.in.h:19
msgid "The type of keyboard to use." msgid "The type of keyboard to use."
msgstr "사용할 키보드의 종류." msgstr "사용할 키보드의 종류."
#: ../data/org.gnome.shell.gschema.xml.in.h:18 #: ../data/org.gnome.shell.gschema.xml.in.h:20
msgid "Show time with seconds" msgid "Show time with seconds"
msgstr "시각에 초 표시" msgstr "시각에 초 표시"
#: ../data/org.gnome.shell.gschema.xml.in.h:19 #: ../data/org.gnome.shell.gschema.xml.in.h:21
msgid "If true, display seconds in time." msgid "If true, display seconds in time."
msgstr "참이면 시각에 초를 표시합니다." msgstr "참이면 시각에 초를 표시합니다."
#: ../data/org.gnome.shell.gschema.xml.in.h:20 #: ../data/org.gnome.shell.gschema.xml.in.h:22
msgid "Show date in clock" msgid "Show date in clock"
msgstr "시계에 날짜 표시" msgstr "시계에 날짜 표시"
#: ../data/org.gnome.shell.gschema.xml.in.h:21 #: ../data/org.gnome.shell.gschema.xml.in.h:23
msgid "If true, display date in the clock, in addition to time." msgid "If true, display date in the clock, in addition to time."
msgstr "참이면 시계에 날짜를 시각과 같이 표시합니다." msgstr "참이면 시계에 날짜를 시각과 같이 표시합니다."
#: ../data/org.gnome.shell.gschema.xml.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.h:24
msgid "Framerate used for recording screencasts." msgid "Framerate used for recording screencasts."
msgstr "스크린 방송 녹화에 사용할 프레임수." msgstr "스크린 방송 녹화에 사용할 프레임수."
#: ../data/org.gnome.shell.gschema.xml.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.h:25
msgid "" msgid ""
"The framerate of the resulting screencast recordered by GNOME Shell's " "The framerate of the resulting screencast recordered by GNOME Shell's "
"screencast recorder in frames-per-second." "screencast recorder in frames-per-second."
msgstr "" msgstr "그놈 셸의 스크린 방송의 녹화 결과물에 사용할 프레임수, 초당 프레임수 단위."
"그놈 셸의 스크린 방송의 녹화 결과물에 사용할 프레임수, 초당 프레임 수 단위."
#: ../data/org.gnome.shell.gschema.xml.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.h:26
msgid "The gstreamer pipeline used to encode the screencast" msgid "The gstreamer pipeline used to encode the screencast"
msgstr "스크린 방송 인코딩에 사용할 gstreamer 파이프라인" msgstr "스크린 방송 인코딩에 사용할 gstreamer 파이프라인"
#: ../data/org.gnome.shell.gschema.xml.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.h:28
#, no-c-format #, no-c-format, fuzzy
msgid "" msgid ""
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax " "Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
"used for gst-launch. The pipeline should have an unconnected sink pad where " "used for gst-launch. The pipeline should have an unconnected sink pad where "
@ -185,11 +189,12 @@ msgstr ""
"queue ! webmmux' 이며 VP8 코덱을 사용하여 WEBM으로 녹화합니다. %T는 시스템 상" "queue ! webmmux' 이며 VP8 코덱을 사용하여 WEBM으로 녹화합니다. %T는 시스템 상"
"의 최적의 스레드 수를 추측하기 위해 대체기호로 사용합니다." "의 최적의 스레드 수를 추측하기 위해 대체기호로 사용합니다."
#: ../data/org.gnome.shell.gschema.xml.in.h:27 #: ../data/org.gnome.shell.gschema.xml.in.h:29
msgid "File extension used for storing the screencast" msgid "File extension used for storing the screencast"
msgstr "스크린 방송 저장 사용할 파일 확장자" msgstr "스크린 방송 저장할 때 사용할 파일 확장자"
#: ../data/org.gnome.shell.gschema.xml.in.h:28 #: ../data/org.gnome.shell.gschema.xml.in.h:30
#, fuzzy
msgid "" msgid ""
"The filename for recorded screencasts will be a unique filename based on the " "The filename for recorded screencasts will be a unique filename based on the "
"current date, and use this extension. It should be changed when recording to " "current date, and use this extension. It should be changed when recording to "
@ -199,52 +204,54 @@ msgstr ""
"화할 때 다른 형식으로 바꿀 수도 있습니다." "화할 때 다른 형식으로 바꿀 수도 있습니다."
#: ../js/extensionPrefs/main.js:125 #: ../js/extensionPrefs/main.js:125
#, c-format #, c-format, fuzzy
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "%s에 대한 기본 설정 대화상자를 불러오는데 오류가 발생했습니다:" msgstr "%s에 대한 기본 설정 대화상자를 불러오는데 오류가 발생했습니다:"
#: ../js/extensionPrefs/main.js:165 #: ../js/extensionPrefs/main.js:165
#, fuzzy
msgid "<b>Extension</b>" msgid "<b>Extension</b>"
msgstr "<b>확장</b>" msgstr "<b>확장</b>"
#: ../js/extensionPrefs/main.js:189 #: ../js/extensionPrefs/main.js:189
#, fuzzy
msgid "Select an extension to configure using the combobox above." msgid "Select an extension to configure using the combobox above."
msgstr "위의 콤보상자를 사용하여 설정할 확장을 선택하십시오." msgstr "위의 콤보상자를 사용하여 설정할 확장을 선택하십시오."
#: ../js/gdm/loginDialog.js:624 #: ../js/gdm/loginDialog.js:627
msgid "Session..." msgid "Session..."
msgstr "세션..." msgstr "세션..."
#: ../js/gdm/loginDialog.js:786 #: ../js/gdm/loginDialog.js:789
msgctxt "title" msgctxt "title"
msgid "Sign In" msgid "Sign In"
msgstr "로그인" msgstr "로그인"
#. Translators: this message is shown below the password entry field #. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead #. to indicate the user can swipe their finger instead
#: ../js/gdm/loginDialog.js:831 #: ../js/gdm/loginDialog.js:834
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(또는 지문을 문지르십시오)" msgstr "(또는 지문을 문지르십시오)"
#. translators: this message is shown below the user list on the #. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for #. login screen. It can be activated to reveal an entry for
#. manually entering the username. #. manually entering the username.
#: ../js/gdm/loginDialog.js:852 #: ../js/gdm/loginDialog.js:855
msgid "Not listed?" msgid "Not listed?"
msgstr "목록에 없습니까?" msgstr "목록에 없습니까?"
#: ../js/gdm/loginDialog.js:1020 ../js/ui/endSessionDialog.js:401 #: ../js/gdm/loginDialog.js:1023 ../js/ui/endSessionDialog.js:401
#: ../js/ui/extensionSystem.js:399 ../js/ui/networkAgent.js:153 #: ../js/ui/extensionSystem.js:400 ../js/ui/networkAgent.js:153
#: ../js/ui/polkitAuthenticationAgent.js:175 ../js/ui/status/bluetooth.js:462 #: ../js/ui/polkitAuthenticationAgent.js:175 ../js/ui/status/bluetooth.js:462
msgid "Cancel" msgid "Cancel"
msgstr "취소" msgstr "취소"
#: ../js/gdm/loginDialog.js:1025 #: ../js/gdm/loginDialog.js:1028
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "로그인" msgstr "로그인"
#: ../js/gdm/loginDialog.js:1377 #: ../js/gdm/loginDialog.js:1380
msgid "Login Window" msgid "Login Window"
msgstr "로그인 창" msgstr "로그인 창"
@ -638,11 +645,11 @@ msgstr[0] "시스템이 %d초 뒤에 자동으로 다시 시작합니다."
msgid "Restarting the system." msgid "Restarting the system."
msgstr "시스템을 다시 시작합니다." msgstr "시스템을 다시 시작합니다."
#: ../js/ui/extensionSystem.js:403 #: ../js/ui/extensionSystem.js:404
msgid "Install" msgid "Install"
msgstr "설치" msgstr "설치"
#: ../js/ui/extensionSystem.js:407 #: ../js/ui/extensionSystem.js:408
#, c-format #, c-format
msgid "Download and install '%s' from extensions.gnome.org?" msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "" msgstr ""
@ -652,7 +659,8 @@ msgstr ""
msgid "tray" msgid "tray"
msgstr "트레이" msgstr "트레이"
#: ../js/ui/keyboard.js:544 ../js/ui/status/power.js:203 #: ../js/ui/keyboard.js:544 ../js/ui/status/keyboard.js:44
#: ../js/ui/status/power.js:203
msgid "Keyboard" msgid "Keyboard"
msgstr "키보드" msgstr "키보드"
@ -664,59 +672,60 @@ msgstr "암호:"
msgid "Type again:" msgid "Type again:"
msgstr "다시 입력하십시오:" msgstr "다시 입력하십시오:"
#: ../js/ui/lookingGlass.js:725 #: ../js/ui/lookingGlass.js:732
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:779 #: ../js/ui/lookingGlass.js:786
#, c-format #, c-format
msgid "%s has not emitted any errors." msgid "%s has not emitted any errors."
msgstr "%s이(가) 발생한 에러가 없습니다." msgstr "%s이(가) 발생한 에러가 없습니다."
#: ../js/ui/lookingGlass.js:785 #: ../js/ui/lookingGlass.js:792
msgid "Hide Errors" msgid "Hide Errors"
msgstr "오류 숨기기" msgstr "오류 숨기기"
#: ../js/ui/lookingGlass.js:789 ../js/ui/lookingGlass.js:840 #: ../js/ui/lookingGlass.js:796 ../js/ui/lookingGlass.js:847
msgid "Show Errors" msgid "Show Errors"
msgstr "오류 보이기" msgstr "오류 보이기"
#: ../js/ui/lookingGlass.js:798 #: ../js/ui/lookingGlass.js:805
msgid "Enabled" msgid "Enabled"
msgstr "사용" msgstr "사용"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:801 ../src/gvc/gvc-mixer-control.c:1093 #: ../js/ui/lookingGlass.js:808 ../src/gvc/gvc-mixer-control.c:1082
msgid "Disabled" msgid "Disabled"
msgstr "사용 않음" msgstr "사용 않음"
#: ../js/ui/lookingGlass.js:803 #: ../js/ui/lookingGlass.js:810
msgid "Error" msgid "Error"
msgstr "오류" msgstr "오류"
#: ../js/ui/lookingGlass.js:805 #: ../js/ui/lookingGlass.js:812
msgid "Out of date" msgid "Out of date"
msgstr "오래 된 버전" msgstr "오래 된 버전"
#: ../js/ui/lookingGlass.js:807 #: ../js/ui/lookingGlass.js:814
msgid "Downloading" msgid "Downloading"
msgstr "다운로드 중" msgstr "다운로드 중"
#: ../js/ui/lookingGlass.js:828 #: ../js/ui/lookingGlass.js:835
msgid "View Source" msgid "View Source"
msgstr "소스 보기" msgstr "소스 보기"
#: ../js/ui/lookingGlass.js:834 #: ../js/ui/lookingGlass.js:841
msgid "Web Page" msgid "Web Page"
msgstr "웹페이지" msgstr "웹페이지"
# 주의: 파일이름, %d %t는 날짜와 시각, 이상하게 번역하지 말 것
#. Translators: this is a filename used for screencast recording #. Translators: this is a filename used for screencast recording
#: ../js/ui/main.js:118 #: ../js/ui/main.js:118
#, no-c-format #, no-c-format
msgid "Screencast from %d %t" msgid "Screencast from %d %t"
msgstr "%d %t의 스크린캐스트" msgstr "스크린 방송, %d %t"
#: ../js/ui/messageTray.js:1200 #: ../js/ui/messageTray.js:1200
msgid "Open" msgid "Open"
@ -835,17 +844,17 @@ msgstr "프로그램"
msgid "Dash" msgid "Dash"
msgstr "대시보드" msgstr "대시보드"
#: ../js/ui/panel.js:591 #: ../js/ui/panel.js:592
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:623 #: ../js/ui/panel.js:624
msgid "Activities" msgid "Activities"
msgstr "현재 활동" msgstr "현재 활동"
#: ../js/ui/panel.js:998 #: ../js/ui/panel.js:999
msgid "Top Bar" msgid "Top Bar"
msgstr "위 막대" msgstr "위 막대"
@ -899,11 +908,11 @@ msgstr "toggle-switch-intl"
msgid "Please enter a command:" msgid "Please enter a command:"
msgstr "명령을 입력하십시오:" msgstr "명령을 입력하십시오:"
#: ../js/ui/searchDisplay.js:331 #: ../js/ui/searchDisplay.js:332
msgid "Searching..." msgid "Searching..."
msgstr "검색하는 중..." msgstr "검색하는 중..."
#: ../js/ui/searchDisplay.js:413 #: ../js/ui/searchDisplay.js:415
msgid "No matching results." msgid "No matching results."
msgstr "일치하는 결과가 없습니다." msgstr "일치하는 결과가 없습니다."
@ -921,7 +930,7 @@ msgstr "텍스트 보이기"
#: ../js/ui/shellEntry.js:79 #: ../js/ui/shellEntry.js:79
msgid "Hide Text" msgid "Hide Text"
msgstr "글자 숨기기" msgstr "텍스트 숨기기"
#: ../js/ui/shellMountOperation.js:271 #: ../js/ui/shellMountOperation.js:271
msgid "Wrong password, please try again" msgid "Wrong password, please try again"
@ -1061,7 +1070,7 @@ msgstr "항상 접근 허용"
msgid "Grant this time only" msgid "Grant this time only"
msgstr "이번에만 허용" msgstr "이번에만 허용"
#: ../js/ui/status/bluetooth.js:382 ../js/ui/telepathyClient.js:1091 #: ../js/ui/status/bluetooth.js:382 ../js/ui/telepathyClient.js:1093
msgid "Reject" msgid "Reject"
msgstr "거부" msgstr "거부"
@ -1127,7 +1136,7 @@ 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:500 #: ../js/ui/status/network.js:500
msgid "authentication required" msgid "authentication required"
msgstr "인증 필요합니다" msgstr "인증 필요"
#. 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 #. module, which is missing
@ -1138,7 +1147,7 @@ msgstr "펌웨어 없음"
#. Translators: this is for wired network devices that are physically disconnected #. Translators: this is for wired network devices that are physically disconnected
#: ../js/ui/status/network.js:517 #: ../js/ui/status/network.js:517
msgid "cable unplugged" msgid "cable unplugged"
msgstr "케이블 분리되었습니다" msgstr "케이블 분리"
#. 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 #. is disabled by rfkill, or it has no coverage
@ -1148,7 +1157,7 @@ msgstr "사용 불가"
#: ../js/ui/status/network.js:524 #: ../js/ui/status/network.js:524
msgid "connection failed" msgid "connection failed"
msgstr "연결 실패했습니다" msgstr "연결 실패"
#: ../js/ui/status/network.js:585 ../js/ui/status/network.js:1505 #: ../js/ui/status/network.js:585 ../js/ui/status/network.js:1505
msgid "More..." msgid "More..."
@ -1375,35 +1384,35 @@ msgstr "%s 부재중."
#. Translators: this is a time format string followed by a date. #. Translators: this is a time format string followed by a date.
#. If applicable, replace %X with a strftime format valid for your #. If applicable, replace %X with a strftime format valid for your
#. locale, without seconds. #. locale, without seconds.
#: ../js/ui/telepathyClient.js:887 #: ../js/ui/telepathyClient.js:889
#, no-c-format #, no-c-format
msgid "Sent at <b>%X</b> on <b>%A</b>" msgid "Sent at <b>%X</b> on <b>%A</b>"
msgstr "보낸 때: <b>%A</b> <b>%H시 %M분</b>" msgstr "보낸 때: <b>%A</b> <b>%H시 %M분</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25", #. Translators: this is a time format in the style of "Wednesday, May 25",
#. shown when you get a chat message in the same year. #. shown when you get a chat message in the same year.
#: ../js/ui/telepathyClient.js:893 #: ../js/ui/telepathyClient.js:895
#, no-c-format #, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>" msgid "Sent on <b>%A</b>, <b>%B %d</b>"
msgstr "보낸 때: <b>%B %d일</b> <b>%A</b>" msgstr "보낸 때: <b>%B %d일</b> <b>%A</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012", #. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
#. shown when you get a chat message in a different year. #. shown when you get a chat message in a different year.
#: ../js/ui/telepathyClient.js:898 #: ../js/ui/telepathyClient.js:900
#, no-c-format #, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y" msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
msgstr "보낸 때: %Y년 <b>%B %d일</b> <b>%A</b>" msgstr "보낸 때: %Y년 <b>%B %d일</b> <b>%A</b>"
#. 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/telepathyClient.js:940 #: ../js/ui/telepathyClient.js:942
#, c-format #, c-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "%s의 대화명이 이제 %s입니다" msgstr "%s의 대화명이 이제 %s입니다"
#. translators: argument is a room name like #. translators: argument is a room name like
#. * room@jabber.org for example. #. * room@jabber.org for example.
#: ../js/ui/telepathyClient.js:1042 #: ../js/ui/telepathyClient.js:1044
#, c-format #, c-format
msgid "Invitation to %s" msgid "Invitation to %s"
msgstr "%s에 초대" msgstr "%s에 초대"
@ -1411,35 +1420,35 @@ msgstr "%s에 초대"
#. translators: first argument is the name of a contact and the second #. translators: first argument is the name of a contact and the second
#. * one the name of a room. "Alice is inviting you to join room@jabber.org #. * one the name of a room. "Alice is inviting you to join room@jabber.org
#. * for example. #. * for example.
#: ../js/ui/telepathyClient.js:1050 #: ../js/ui/telepathyClient.js:1052
#, c-format #, c-format
msgid "%s is inviting you to join %s" msgid "%s is inviting you to join %s"
msgstr "%s 님이 %s에 입장하도록 초대합니다" msgstr "%s 님이 %s에 입장하도록 초대합니다"
#: ../js/ui/telepathyClient.js:1052 ../js/ui/telepathyClient.js:1131 #: ../js/ui/telepathyClient.js:1054 ../js/ui/telepathyClient.js:1133
#: ../js/ui/telepathyClient.js:1229 #: ../js/ui/telepathyClient.js:1231
msgid "Decline" msgid "Decline"
msgstr "거부" msgstr "거부"
#: ../js/ui/telepathyClient.js:1053 ../js/ui/telepathyClient.js:1132 #: ../js/ui/telepathyClient.js:1055 ../js/ui/telepathyClient.js:1134
#: ../js/ui/telepathyClient.js:1230 #: ../js/ui/telepathyClient.js:1232
msgid "Accept" msgid "Accept"
msgstr "허용" msgstr "허용"
#. translators: argument is a contact name like Alice for example. #. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1083 #: ../js/ui/telepathyClient.js:1085
#, c-format #, c-format
msgid "Video call from %s" msgid "Video call from %s"
msgstr "%s에서 영상 호출" msgstr "%s에서 영상 호출"
#. translators: argument is a contact name like Alice for example. #. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1086 #: ../js/ui/telepathyClient.js:1088
#, c-format #, c-format
msgid "Call from %s" msgid "Call from %s"
msgstr "%s에서 호출" msgstr "%s에서 호출"
#. translators: this is a button label (verb), not a noun #. translators: this is a button label (verb), not a noun
#: ../js/ui/telepathyClient.js:1093 #: ../js/ui/telepathyClient.js:1095
msgid "Answer" msgid "Answer"
msgstr "응답" msgstr "응답"
@ -1448,108 +1457,108 @@ msgstr "응답"
#. * file name. The string will be something #. * file name. The string will be something
#. * like: "Alice is sending you test.ogg" #. * like: "Alice is sending you test.ogg"
#. #.
#: ../js/ui/telepathyClient.js:1125 #: ../js/ui/telepathyClient.js:1127
#, c-format #, c-format
msgid "%s is sending you %s" msgid "%s is sending you %s"
msgstr "%s님이 %s 파일을 보냅니다" msgstr "%s님이 %s 파일을 보냅니다"
#. To translators: The parameter is the contact's alias #. To translators: The parameter is the contact's alias
#: ../js/ui/telepathyClient.js:1194 #: ../js/ui/telepathyClient.js:1196
#, c-format #, c-format
msgid "%s would like permission to see when you are online" msgid "%s would like permission to see when you are online"
msgstr "연결 상태인지 알 수 있는 권한을 %s님이 요청합니다" msgstr "연결 상태인지 알 수 있는 권한을 %s님이 요청합니다"
#: ../js/ui/telepathyClient.js:1287 #: ../js/ui/telepathyClient.js:1289
msgid "Network error" msgid "Network error"
msgstr "네트워크 오류" msgstr "네트워크 오류"
#: ../js/ui/telepathyClient.js:1289 #: ../js/ui/telepathyClient.js:1291
msgid "Authentication failed" msgid "Authentication failed"
msgstr "인증이 실패했습니다" msgstr "인증이 실패했습니다"
#: ../js/ui/telepathyClient.js:1291 #: ../js/ui/telepathyClient.js:1293
msgid "Encryption error" msgid "Encryption error"
msgstr "암호화 오류" msgstr "암호화 오류"
#: ../js/ui/telepathyClient.js:1293 #: ../js/ui/telepathyClient.js:1295
msgid "Certificate not provided" msgid "Certificate not provided"
msgstr "인증서가 없습니다" msgstr "인증서가 없습니다"
#: ../js/ui/telepathyClient.js:1295 #: ../js/ui/telepathyClient.js:1297
msgid "Certificate untrusted" msgid "Certificate untrusted"
msgstr "인증서를 신뢰할 수 없습니다" msgstr "인증서를 신뢰할 수 없습니다"
#: ../js/ui/telepathyClient.js:1297 #: ../js/ui/telepathyClient.js:1299
msgid "Certificate expired" msgid "Certificate expired"
msgstr "인증서가 만료되었습니다" msgstr "인증서가 만료되었습니다"
#: ../js/ui/telepathyClient.js:1299 #: ../js/ui/telepathyClient.js:1301
msgid "Certificate not activated" msgid "Certificate not activated"
msgstr "인증서를 활성화하지 않았습니다" msgstr "인증서를 활성화하지 않았습니다"
#: ../js/ui/telepathyClient.js:1301 #: ../js/ui/telepathyClient.js:1303
msgid "Certificate hostname mismatch" msgid "Certificate hostname mismatch"
msgstr "인증서 호스트 이름이 맞지 않습니다" msgstr "인증서 호스트 이름이 맞지 않습니다"
#: ../js/ui/telepathyClient.js:1303 #: ../js/ui/telepathyClient.js:1305
msgid "Certificate fingerprint mismatch" msgid "Certificate fingerprint mismatch"
msgstr "인증서 핑거프린트가 맞지 않습니다" msgstr "인증서 핑거프린트가 맞지 않습니다"
#: ../js/ui/telepathyClient.js:1305 #: ../js/ui/telepathyClient.js:1307
msgid "Certificate self-signed" msgid "Certificate self-signed"
msgstr "인증서가 자기 서명한 인증서입니다" msgstr "인증서가 자기 서명한 인증서입니다"
#: ../js/ui/telepathyClient.js:1307 #: ../js/ui/telepathyClient.js:1309
msgid "Status is set to offline" msgid "Status is set to offline"
msgstr "상태를 오프라인으로 설정" msgstr "상태를 오프라인으로 설정"
#: ../js/ui/telepathyClient.js:1309 #: ../js/ui/telepathyClient.js:1311
msgid "Encryption is not available" msgid "Encryption is not available"
msgstr "암호화를 사용할 수 없습니다" msgstr "암호화를 사용할 수 없습니다"
#: ../js/ui/telepathyClient.js:1311 #: ../js/ui/telepathyClient.js:1313
msgid "Certificate is invalid" msgid "Certificate is invalid"
msgstr "인증서가 올바르지 않습니다" msgstr "인증서가 올바르지 않습니다"
#: ../js/ui/telepathyClient.js:1313 #: ../js/ui/telepathyClient.js:1315
msgid "Connection has been refused" msgid "Connection has been refused"
msgstr "연결이 거부되었습니다" msgstr "연결이 거부되었습니다"
#: ../js/ui/telepathyClient.js:1315 #: ../js/ui/telepathyClient.js:1317
msgid "Connection can't be established" msgid "Connection can't be established"
msgstr "연결할 수 없습니다" msgstr "연결할 수 없습니다"
#: ../js/ui/telepathyClient.js:1317 #: ../js/ui/telepathyClient.js:1319
msgid "Connection has been lost" msgid "Connection has been lost"
msgstr "연결이 끊어졌습니다" msgstr "연결이 끊어졌습니다"
#: ../js/ui/telepathyClient.js:1319
msgid "This account is already connected to the server"
msgstr "이미 서버에 이 계정을 연결했습니다"
#: ../js/ui/telepathyClient.js:1321 #: ../js/ui/telepathyClient.js:1321
msgid "This account is already connected to the server"
msgstr "이 계정은 이미 서버에 연결했습니다"
#: ../js/ui/telepathyClient.js:1323
msgid "" msgid ""
"Connection has been replaced by a new connection using the same resource" "Connection has been replaced by a new connection using the same resource"
msgstr "같은 자원을 사용하는 새로운 연결로 바꾸었습니다" msgstr "같은 자원을 사용하는 새로운 연결로 바꾸었습니다"
#: ../js/ui/telepathyClient.js:1323 #: ../js/ui/telepathyClient.js:1325
msgid "The account already exists on the server" msgid "The account already exists on the server"
msgstr "계정이 이미 서버에 있습니다" msgstr "계정이 이미 서버에 있습니다"
#: ../js/ui/telepathyClient.js:1325 #: ../js/ui/telepathyClient.js:1327
msgid "Server is currently too busy to handle the connection" msgid "Server is currently too busy to handle the connection"
msgstr "서버가 처리할 작업이 많아 연결을 처리할 수 없습니다" msgstr "서버가 처리할 작업이 많아 연결을 처리할 수 없습니다"
#: ../js/ui/telepathyClient.js:1327 #: ../js/ui/telepathyClient.js:1329
msgid "Certificate has been revoked" msgid "Certificate has been revoked"
msgstr "인증서를 철회했습니다" msgstr "인증서를 철회했습니다"
#: ../js/ui/telepathyClient.js:1329 #: ../js/ui/telepathyClient.js:1331
msgid "" msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak" "Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr "인증서가 보안에 취약한 알고리즘을 사용하거나 암호화 기능이 취약합니다." msgstr "인증서가 보안에 취약한 알고리즘을 사용하거나 암호화 기능이 취약합니다."
#: ../js/ui/telepathyClient.js:1331 #: ../js/ui/telepathyClient.js:1333
msgid "" msgid ""
"The length of the server certificate, or the depth of the server certificate " "The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library" "chain, exceed the limits imposed by the cryptography library"
@ -1557,26 +1566,26 @@ msgstr ""
"서버 인증서의 길이, 또는 서버 인증서 체인의 단계가 암호화 라이브러리의 제한" "서버 인증서의 길이, 또는 서버 인증서 체인의 단계가 암호화 라이브러리의 제한"
"을 넘어갑니다." "을 넘어갑니다."
#: ../js/ui/telepathyClient.js:1333 #: ../js/ui/telepathyClient.js:1335
msgid "Internal error" msgid "Internal error"
msgstr "내부 오류" msgstr "내부 오류"
#. translators: argument is the account name, like #. translators: argument is the account name, like
#. * name@jabber.org for example. #. * name@jabber.org for example.
#: ../js/ui/telepathyClient.js:1343 #: ../js/ui/telepathyClient.js:1345
#, c-format #, c-format, fuzzy
msgid "Connection to %s failed" msgid "Connection to %s failed"
msgstr "%s에 연결이 실패했습니다" msgstr "%s에 연결이 실패했습니다"
#: ../js/ui/telepathyClient.js:1352 #: ../js/ui/telepathyClient.js:1354
msgid "Reconnect" msgid "Reconnect"
msgstr "다시 연결" msgstr "다시 연결"
#: ../js/ui/telepathyClient.js:1353 #: ../js/ui/telepathyClient.js:1355
msgid "Edit account" msgid "Edit account"
msgstr "계정 편집" msgstr "계정 편집"
#: ../js/ui/telepathyClient.js:1399 #: ../js/ui/telepathyClient.js:1401
msgid "Unknown reason" msgid "Unknown reason"
msgstr "알 수 없는 이유" msgstr "알 수 없는 이유"
@ -1650,7 +1659,7 @@ msgid ""
"Sorry, no wisdom for you today:\n" "Sorry, no wisdom for you today:\n"
"%s" "%s"
msgstr "" msgstr ""
"죄송하지만, 오늘 조언해 줄 것이 없습니다:\n" "죄송합니다. 오늘 조언할 내용이 없습니다:\n"
"%s" "%s"
# 원래 "신탁"이지만 한국인이 이해하기 쉽게 맞게 변경. # 원래 "신탁"이지만 한국인이 이해하기 쉽게 맞게 변경.
@ -1670,7 +1679,7 @@ msgstr "'%s' 프로그램이 준비되었습니다"
#. 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:1100 #: ../src/gvc/gvc-mixer-control.c:1089
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1678,13 +1687,13 @@ msgstr[0] "%u개 출력"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1110 #: ../src/gvc/gvc-mixer-control.c:1099
#, 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:1408 #: ../src/gvc/gvc-mixer-control.c:1397
msgid "System Sounds" msgid "System Sounds"
msgstr "시스템 소리" msgstr "시스템 소리"
@ -1708,7 +1717,7 @@ msgstr "암호가 일치하지 않습니다."
#: ../src/shell-keyring-prompt.c:716 #: ../src/shell-keyring-prompt.c:716
msgid "Password cannot be blank" msgid "Password cannot be blank"
msgstr "암호는 비울 수 없습니다" msgstr "빈 암호를 쓸 수 없습니다"
#: ../src/shell-mobile-providers.c:80 #: ../src/shell-mobile-providers.c:80
msgid "United Kingdom" msgid "United Kingdom"
@ -1744,27 +1753,3 @@ msgstr "파일 시스템"
#, c-format #, c-format
msgid "%1$s: %2$s" msgid "%1$s: %2$s"
msgstr "%s: %s" msgstr "%s: %s"
#~ msgid "RECENT ITEMS"
#~ msgstr "최근 항목"
#~ msgid "Show password"
#~ msgstr "암호 표시"
#~ msgid "Home Folder"
#~ msgstr "내 폴더"
#~ msgid "%s has finished starting"
#~ msgstr "%s 프로그램이 시작했습니다"
#~ msgid "If true, display onscreen keyboard."
#~ msgstr "참이면 화면 키보드를 표시합니다."
#~ msgid "Show the onscreen keyboard"
#~ msgstr "화면 키보드 표시"
#~ msgid "Connectivity lost"
#~ msgstr "연결 끊어짐"
#~ msgid "You're no longer connected to the network"
#~ msgstr "이제 네트워크에 연결되어 있지 않습니다"

157
po/nb.po

@ -6,10 +6,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.3.x\n" "Project-Id-Version: gnome-shell 3.5.x\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-04-11 12:50+0200\n" "POT-Creation-Date: 2012-04-30 11:12+0200\n"
"PO-Revision-Date: 2012-04-11 12:50+0200\n" "PO-Revision-Date: 2012-04-30 11:13+0200\n"
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n" "Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
"Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n" "Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n"
"Language: \n" "Language: \n"
@ -132,34 +132,42 @@ msgid "Keybinding to open the application menu."
msgstr "Tastaturbinding som åpner programmenyen." msgstr "Tastaturbinding som åpner programmenyen."
#: ../data/org.gnome.shell.gschema.xml.in.h:18 #: ../data/org.gnome.shell.gschema.xml.in.h:18
msgid "Keybinding to toggle the screen recorder"
msgstr "Tastaturbinding som slår av/på skjermopptak"
#: ../data/org.gnome.shell.gschema.xml.in.h:19
msgid "Keybinding to start/stop the builtin screen recorder."
msgstr "Tastaturbinding som starter/stopper innebygget opptak av skjerm."
#: ../data/org.gnome.shell.gschema.xml.in.h:20
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.h:19 #: ../data/org.gnome.shell.gschema.xml.in.h:21
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.h:20 #: ../data/org.gnome.shell.gschema.xml.in.h:22
msgid "Show time with seconds" msgid "Show time with seconds"
msgstr "Vis tid med sekunder" msgstr "Vis tid med sekunder"
#: ../data/org.gnome.shell.gschema.xml.in.h:21 #: ../data/org.gnome.shell.gschema.xml.in.h:23
msgid "If true, display seconds in time." msgid "If true, display seconds in time."
msgstr "Viser sekunder i klokken hvis «true»." msgstr "Viser sekunder i klokken hvis «true»."
#: ../data/org.gnome.shell.gschema.xml.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.h:24
msgid "Show date in clock" msgid "Show date in clock"
msgstr "Vis dato i klokken" msgstr "Vis dato i klokken"
#: ../data/org.gnome.shell.gschema.xml.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.h:25
msgid "If true, display date in the clock, in addition to time." msgid "If true, display date in the clock, in addition to time."
msgstr "Viser dato i tillegg til tid i klokken hvis «true»." msgstr "Viser dato i tillegg til tid i klokken hvis «true»."
#: ../data/org.gnome.shell.gschema.xml.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.h:26
msgid "Framerate used for recording screencasts." msgid "Framerate used for recording screencasts."
msgstr "Bildefrekvens i bruk ved lagring av skjermvideoer." msgstr "Bildefrekvens i bruk ved lagring av skjermvideoer."
#: ../data/org.gnome.shell.gschema.xml.in.h:25 #: ../data/org.gnome.shell.gschema.xml.in.h:27
msgid "" msgid ""
"The framerate of the resulting screencast recordered by GNOME Shell's " "The framerate of the resulting screencast recordered by GNOME Shell's "
"screencast recorder in frames-per-second." "screencast recorder in frames-per-second."
@ -167,11 +175,11 @@ msgstr ""
"Bildefrekvensen i den ferdige skjermvideoen tatt opp med GNOME Shells " "Bildefrekvensen i den ferdige skjermvideoen tatt opp med GNOME Shells "
"skjermvideoopptaker i bilder per sekund." "skjermvideoopptaker i bilder per sekund."
#: ../data/org.gnome.shell.gschema.xml.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.h:28
msgid "The gstreamer pipeline used to encode the screencast" msgid "The gstreamer pipeline used to encode the screencast"
msgstr "Gstreamer-kommandokø brukt til å kode skjermvideoen" msgstr "Gstreamer-kommandokø brukt til å kode skjermvideoen"
#: ../data/org.gnome.shell.gschema.xml.in.h:28 #: ../data/org.gnome.shell.gschema.xml.in.h:30
#, fuzzy, no-c-format #, fuzzy, no-c-format
msgid "" msgid ""
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax " "Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
@ -188,11 +196,11 @@ msgstr ""
"Setter GStreamer-rør som brukes til å kode opptak. Den følger syntaksen som " "Setter GStreamer-rør som brukes til å kode opptak. Den følger syntaksen som "
"brukes for gst-launch. Røret må ha en..." "brukes for gst-launch. Røret må ha en..."
#: ../data/org.gnome.shell.gschema.xml.in.h:29 #: ../data/org.gnome.shell.gschema.xml.in.h:31
msgid "File extension used for storing the screencast" msgid "File extension used for storing the screencast"
msgstr "Filendelse i bruk ved lagring av skjermvideo" msgstr "Filendelse i bruk ved lagring av skjermvideo"
#: ../data/org.gnome.shell.gschema.xml.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.h:32
msgid "" msgid ""
"The filename for recorded screencasts will be a unique filename based on the " "The filename for recorded screencasts will be a unique filename based on the "
"current date, and use this extension. It should be changed when recording to " "current date, and use this extension. It should be changed when recording to "
@ -499,7 +507,7 @@ msgstr "Frakoblet"
msgid "CONTACTS" msgid "CONTACTS"
msgstr "KONTAKTER" msgstr "KONTAKTER"
#: ../js/ui/dash.js:229 ../js/ui/messageTray.js:1207 #: ../js/ui/dash.js:239 ../js/ui/messageTray.js:1207
msgid "Remove" msgid "Remove"
msgstr "Fjern" msgstr "Fjern"
@ -663,7 +671,8 @@ msgstr "Last ned og installer «%s» fra extensions.gnome.org?"
msgid "tray" msgid "tray"
msgstr "varslingsområde" msgstr "varslingsområde"
#: ../js/ui/keyboard.js:544 ../js/ui/status/power.js:203 #: ../js/ui/keyboard.js:544 ../js/ui/status/keyboard.js:44
#: ../js/ui/status/power.js:203
msgid "Keyboard" msgid "Keyboard"
msgstr "Tastatur" msgstr "Tastatur"
@ -675,56 +684,56 @@ msgstr "Passord:"
msgid "Type again:" msgid "Type again:"
msgstr "Skriv på nytt:" msgstr "Skriv på nytt:"
#: ../js/ui/lookingGlass.js:732 #: ../js/ui/lookingGlass.js:693
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Ingen utvidelser installert" msgstr "Ingen utvidelser installert"
#. Translators: argument is an extension UUID. #. Translators: argument is an extension UUID.
#: ../js/ui/lookingGlass.js:786 #: ../js/ui/lookingGlass.js:747
#, c-format #, c-format
msgid "%s has not emitted any errors." msgid "%s has not emitted any errors."
msgstr "%s har ikke avgitt noen feil." msgstr "%s har ikke avgitt noen feil."
#: ../js/ui/lookingGlass.js:792 #: ../js/ui/lookingGlass.js:753
msgid "Hide Errors" msgid "Hide Errors"
msgstr "Skjul feil" msgstr "Skjul feil"
#: ../js/ui/lookingGlass.js:796 ../js/ui/lookingGlass.js:847 #: ../js/ui/lookingGlass.js:757 ../js/ui/lookingGlass.js:808
msgid "Show Errors" msgid "Show Errors"
msgstr "Vis feil" msgstr "Vis feil"
#: ../js/ui/lookingGlass.js:805 #: ../js/ui/lookingGlass.js:766
msgid "Enabled" msgid "Enabled"
msgstr "Aktivert" msgstr "Aktivert"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:808 ../src/gvc/gvc-mixer-control.c:1082 #: ../js/ui/lookingGlass.js:769 ../src/gvc/gvc-mixer-control.c:1082
msgid "Disabled" msgid "Disabled"
msgstr "Deaktivert" msgstr "Deaktivert"
#: ../js/ui/lookingGlass.js:810 #: ../js/ui/lookingGlass.js:771
msgid "Error" msgid "Error"
msgstr "Feil" msgstr "Feil"
#: ../js/ui/lookingGlass.js:812 #: ../js/ui/lookingGlass.js:773
msgid "Out of date" msgid "Out of date"
msgstr "Utdatert" msgstr "Utdatert"
#: ../js/ui/lookingGlass.js:814 #: ../js/ui/lookingGlass.js:775
msgid "Downloading" msgid "Downloading"
msgstr "Laster ned" msgstr "Laster ned"
#: ../js/ui/lookingGlass.js:835 #: ../js/ui/lookingGlass.js:796
msgid "View Source" msgid "View Source"
msgstr "Vis kildekode" msgstr "Vis kildekode"
#: ../js/ui/lookingGlass.js:841 #: ../js/ui/lookingGlass.js:802
msgid "Web Page" msgid "Web Page"
msgstr "Nettside" msgstr "Nettside"
#. Translators: this is a filename used for screencast recording #. Translators: this is a filename used for screencast recording
#: ../js/ui/main.js:118 #: ../js/ui/main.js:120
#, no-c-format #, no-c-format
msgid "Screencast from %d %t" msgid "Screencast from %d %t"
msgstr "Skjermvideo fra %d %t" msgstr "Skjermvideo fra %d %t"
@ -904,7 +913,7 @@ msgstr "Beklager, det virket ikke. Vennligst prøv igjen."
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle #. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will #. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches. #. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:724 #: ../js/ui/popupMenu.js:728
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
@ -916,7 +925,7 @@ msgstr "Oppgi en kommando:"
msgid "Searching..." msgid "Searching..."
msgstr "Søker …" msgstr "Søker …"
#: ../js/ui/searchDisplay.js:415 #: ../js/ui/searchDisplay.js:422
msgid "No matching results." msgid "No matching results."
msgstr "Ingen treff." msgstr "Ingen treff."
@ -1074,7 +1083,7 @@ msgstr "Alltid gi tilgang"
msgid "Grant this time only" msgid "Grant this time only"
msgstr "Gi tilgang kun denne ene gangen" msgstr "Gi tilgang kun denne ene gangen"
#: ../js/ui/status/bluetooth.js:382 ../js/ui/telepathyClient.js:1091 #: ../js/ui/status/bluetooth.js:382 ../js/ui/telepathyClient.js:1093
msgid "Reject" msgid "Reject"
msgstr "Avvis" msgstr "Avvis"
@ -1391,35 +1400,35 @@ msgstr "%s er opptatt."
#. Translators: this is a time format string followed by a date. #. Translators: this is a time format string followed by a date.
#. If applicable, replace %X with a strftime format valid for your #. If applicable, replace %X with a strftime format valid for your
#. locale, without seconds. #. locale, without seconds.
#: ../js/ui/telepathyClient.js:887 #: ../js/ui/telepathyClient.js:889
#, no-c-format #, no-c-format
msgid "Sent at <b>%X</b> on <b>%A</b>" msgid "Sent at <b>%X</b> on <b>%A</b>"
msgstr "Sendt <b>%X</b> på <b>%A</b>" msgstr "Sendt <b>%X</b> på <b>%A</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25", #. Translators: this is a time format in the style of "Wednesday, May 25",
#. shown when you get a chat message in the same year. #. shown when you get a chat message in the same year.
#: ../js/ui/telepathyClient.js:893 #: ../js/ui/telepathyClient.js:895
#, no-c-format #, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>" msgid "Sent on <b>%A</b>, <b>%B %d</b>"
msgstr "Sendt <b>%A</b>, <b>%B %d</b>" msgstr "Sendt <b>%A</b>, <b>%B %d</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012", #. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
#. shown when you get a chat message in a different year. #. shown when you get a chat message in a different year.
#: ../js/ui/telepathyClient.js:898 #: ../js/ui/telepathyClient.js:900
#, no-c-format #, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y" msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
msgstr "Sendt <b>%A</b>, <b>%B %d</b>, %Y" msgstr "Sendt <b>%A</b>, <b>%B %d</b>, %Y"
#. 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/telepathyClient.js:940 #: ../js/ui/telepathyClient.js:942
#, c-format #, c-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "%s er nå kjent som %s" msgstr "%s er nå kjent som %s"
#. translators: argument is a room name like #. translators: argument is a room name like
#. * room@jabber.org for example. #. * room@jabber.org for example.
#: ../js/ui/telepathyClient.js:1042 #: ../js/ui/telepathyClient.js:1044
#, c-format #, c-format
msgid "Invitation to %s" msgid "Invitation to %s"
msgstr "Invitasjon til %s" msgstr "Invitasjon til %s"
@ -1427,35 +1436,35 @@ msgstr "Invitasjon til %s"
#. translators: first argument is the name of a contact and the second #. translators: first argument is the name of a contact and the second
#. * one the name of a room. "Alice is inviting you to join room@jabber.org #. * one the name of a room. "Alice is inviting you to join room@jabber.org
#. * for example. #. * for example.
#: ../js/ui/telepathyClient.js:1050 #: ../js/ui/telepathyClient.js:1052
#, c-format #, c-format
msgid "%s is inviting you to join %s" msgid "%s is inviting you to join %s"
msgstr "%s inviterer deg til å bli med i %s" msgstr "%s inviterer deg til å bli med i %s"
#: ../js/ui/telepathyClient.js:1052 ../js/ui/telepathyClient.js:1131 #: ../js/ui/telepathyClient.js:1054 ../js/ui/telepathyClient.js:1133
#: ../js/ui/telepathyClient.js:1229 #: ../js/ui/telepathyClient.js:1231
msgid "Decline" msgid "Decline"
msgstr "Avslå" msgstr "Avslå"
#: ../js/ui/telepathyClient.js:1053 ../js/ui/telepathyClient.js:1132 #: ../js/ui/telepathyClient.js:1055 ../js/ui/telepathyClient.js:1134
#: ../js/ui/telepathyClient.js:1230 #: ../js/ui/telepathyClient.js:1232
msgid "Accept" msgid "Accept"
msgstr "Godta" msgstr "Godta"
#. translators: argument is a contact name like Alice for example. #. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1083 #: ../js/ui/telepathyClient.js:1085
#, c-format #, c-format
msgid "Video call from %s" msgid "Video call from %s"
msgstr "Videosamtale fra %s" msgstr "Videosamtale fra %s"
#. translators: argument is a contact name like Alice for example. #. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1086 #: ../js/ui/telepathyClient.js:1088
#, c-format #, c-format
msgid "Call from %s" msgid "Call from %s"
msgstr "Samtale fra %s" msgstr "Samtale fra %s"
#. translators: this is a button label (verb), not a noun #. translators: this is a button label (verb), not a noun
#: ../js/ui/telepathyClient.js:1093 #: ../js/ui/telepathyClient.js:1095
msgid "Answer" msgid "Answer"
msgstr "Svar" msgstr "Svar"
@ -1464,110 +1473,110 @@ msgstr "Svar"
#. * file name. The string will be something #. * file name. The string will be something
#. * like: "Alice is sending you test.ogg" #. * like: "Alice is sending you test.ogg"
#. #.
#: ../js/ui/telepathyClient.js:1125 #: ../js/ui/telepathyClient.js:1127
#, c-format #, c-format
msgid "%s is sending you %s" msgid "%s is sending you %s"
msgstr "%s sender deg %s" msgstr "%s sender deg %s"
#. To translators: The parameter is the contact's alias #. To translators: The parameter is the contact's alias
#: ../js/ui/telepathyClient.js:1194 #: ../js/ui/telepathyClient.js:1196
#, c-format #, c-format
msgid "%s would like permission to see when you are online" msgid "%s would like permission to see when you are online"
msgstr "%s vil ha rettigheter til å se når du er tilkoblet" msgstr "%s vil ha rettigheter til å se når du er tilkoblet"
#: ../js/ui/telepathyClient.js:1287 #: ../js/ui/telepathyClient.js:1289
msgid "Network error" msgid "Network error"
msgstr "Nettverksfeil" msgstr "Nettverksfeil"
#: ../js/ui/telepathyClient.js:1289 #: ../js/ui/telepathyClient.js:1291
msgid "Authentication failed" msgid "Authentication failed"
msgstr "Autentisering feilet" msgstr "Autentisering feilet"
#: ../js/ui/telepathyClient.js:1291 #: ../js/ui/telepathyClient.js:1293
msgid "Encryption error" msgid "Encryption error"
msgstr "Feil ved kryptering" msgstr "Feil ved kryptering"
#: ../js/ui/telepathyClient.js:1293 #: ../js/ui/telepathyClient.js:1295
msgid "Certificate not provided" msgid "Certificate not provided"
msgstr "Sertifikat ikke oppgitt" msgstr "Sertifikat ikke oppgitt"
#: ../js/ui/telepathyClient.js:1295 #: ../js/ui/telepathyClient.js:1297
msgid "Certificate untrusted" msgid "Certificate untrusted"
msgstr "Stoler ikke på sertifikatet" msgstr "Stoler ikke på sertifikatet"
#: ../js/ui/telepathyClient.js:1297 #: ../js/ui/telepathyClient.js:1299
msgid "Certificate expired" msgid "Certificate expired"
msgstr "Sertifikatet er utløpt" msgstr "Sertifikatet er utløpt"
#: ../js/ui/telepathyClient.js:1299 #: ../js/ui/telepathyClient.js:1301
msgid "Certificate not activated" msgid "Certificate not activated"
msgstr "Sertifikatet er ikke aktivert" msgstr "Sertifikatet er ikke aktivert"
#: ../js/ui/telepathyClient.js:1301 #: ../js/ui/telepathyClient.js:1303
msgid "Certificate hostname mismatch" msgid "Certificate hostname mismatch"
msgstr "Feil vertsnavn for sertifikat" msgstr "Feil vertsnavn for sertifikat"
#: ../js/ui/telepathyClient.js:1303 #: ../js/ui/telepathyClient.js:1305
msgid "Certificate fingerprint mismatch" msgid "Certificate fingerprint mismatch"
msgstr "Feil fingeravtrykk for sertifikat" msgstr "Feil fingeravtrykk for sertifikat"
#: ../js/ui/telepathyClient.js:1305 #: ../js/ui/telepathyClient.js:1307
msgid "Certificate self-signed" msgid "Certificate self-signed"
msgstr "Sertifikatet er selvsignert" msgstr "Sertifikatet er selvsignert"
#: ../js/ui/telepathyClient.js:1307 #: ../js/ui/telepathyClient.js:1309
msgid "Status is set to offline" msgid "Status is set to offline"
msgstr "Status er satt til frakoblet" msgstr "Status er satt til frakoblet"
#: ../js/ui/telepathyClient.js:1309 #: ../js/ui/telepathyClient.js:1311
msgid "Encryption is not available" msgid "Encryption is not available"
msgstr "Kryptering er ikke tilgjengelig" msgstr "Kryptering er ikke tilgjengelig"
#: ../js/ui/telepathyClient.js:1311 #: ../js/ui/telepathyClient.js:1313
msgid "Certificate is invalid" msgid "Certificate is invalid"
msgstr "Sertifikatet er ugyldig" msgstr "Sertifikatet er ugyldig"
#: ../js/ui/telepathyClient.js:1313 #: ../js/ui/telepathyClient.js:1315
msgid "Connection has been refused" msgid "Connection has been refused"
msgstr "Tilkobling ble nektet" msgstr "Tilkobling ble nektet"
#: ../js/ui/telepathyClient.js:1315 #: ../js/ui/telepathyClient.js:1317
msgid "Connection can't be established" msgid "Connection can't be established"
msgstr "Tilkobling kan ikke etableres" msgstr "Tilkobling kan ikke etableres"
#: ../js/ui/telepathyClient.js:1317 #: ../js/ui/telepathyClient.js:1319
msgid "Connection has been lost" msgid "Connection has been lost"
msgstr "Tilkobling tapt" msgstr "Tilkobling tapt"
#: ../js/ui/telepathyClient.js:1319 #: ../js/ui/telepathyClient.js:1321
msgid "This account is already connected to the server" msgid "This account is already connected to the server"
msgstr "Denne kontoen er allerede koblet til tjeneren" msgstr "Denne kontoen er allerede koblet til tjeneren"
#: ../js/ui/telepathyClient.js:1321 #: ../js/ui/telepathyClient.js:1323
msgid "" msgid ""
"Connection has been replaced by a new connection using the same resource" "Connection has been replaced by a new connection using the same resource"
msgstr "" msgstr ""
"Tilkoblingen har blitt erstattet av en ny tilkobling som bruker samme ressurs" "Tilkoblingen har blitt erstattet av en ny tilkobling som bruker samme ressurs"
#: ../js/ui/telepathyClient.js:1323 #: ../js/ui/telepathyClient.js:1325
msgid "The account already exists on the server" msgid "The account already exists on the server"
msgstr "Kontoen eksisterer allerede på tjeneren" msgstr "Kontoen eksisterer allerede på tjeneren"
#: ../js/ui/telepathyClient.js:1325 #: ../js/ui/telepathyClient.js:1327
msgid "Server is currently too busy to handle the connection" msgid "Server is currently too busy to handle the connection"
msgstr "Tjener er for opptatt til å håndtere tilkoblingen" msgstr "Tjener er for opptatt til å håndtere tilkoblingen"
#: ../js/ui/telepathyClient.js:1327 #: ../js/ui/telepathyClient.js:1329
msgid "Certificate has been revoked" msgid "Certificate has been revoked"
msgstr "Sertifikatet er tilbaketrukket" msgstr "Sertifikatet er tilbaketrukket"
#: ../js/ui/telepathyClient.js:1329 #: ../js/ui/telepathyClient.js:1331
msgid "" msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak" "Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr "" msgstr ""
"Sertifikatet bruker en usikker sifferalgoritme eller er krytografisk svakt" "Sertifikatet bruker en usikker sifferalgoritme eller er krytografisk svakt"
#: ../js/ui/telepathyClient.js:1331 #: ../js/ui/telepathyClient.js:1333
msgid "" msgid ""
"The length of the server certificate, or the depth of the server certificate " "The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library" "chain, exceed the limits imposed by the cryptography library"
@ -1575,26 +1584,26 @@ msgstr ""
"Lengden eller dybden på tjenersertifikatet oversteg grensen som er satt i " "Lengden eller dybden på tjenersertifikatet oversteg grensen som er satt i "
"kryptografibiblioteket" "kryptografibiblioteket"
#: ../js/ui/telepathyClient.js:1333 #: ../js/ui/telepathyClient.js:1335
msgid "Internal error" msgid "Internal error"
msgstr "Intern feil" msgstr "Intern feil"
#. translators: argument is the account name, like #. translators: argument is the account name, like
#. * name@jabber.org for example. #. * name@jabber.org for example.
#: ../js/ui/telepathyClient.js:1343 #: ../js/ui/telepathyClient.js:1345
#, c-format #, c-format
msgid "Connection to %s failed" msgid "Connection to %s failed"
msgstr "Tilkobling til %s feilet" msgstr "Tilkobling til %s feilet"
#: ../js/ui/telepathyClient.js:1352 #: ../js/ui/telepathyClient.js:1354
msgid "Reconnect" msgid "Reconnect"
msgstr "Koble til på nytt" msgstr "Koble til på nytt"
#: ../js/ui/telepathyClient.js:1353 #: ../js/ui/telepathyClient.js:1355
msgid "Edit account" msgid "Edit account"
msgstr "Rediger konto" msgstr "Rediger konto"
#: ../js/ui/telepathyClient.js:1399 #: ../js/ui/telepathyClient.js:1401
msgid "Unknown reason" msgid "Unknown reason"
msgstr "Ukjent årsak" msgstr "Ukjent årsak"

@ -14,15 +14,15 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-03-21 21:00-0300\n" "POT-Creation-Date: 2012-04-28 10:45-0300\n"
"PO-Revision-Date: 2012-03-13 11:54-0300\n" "PO-Revision-Date: 2012-04-28 10:45-0300\n"
"Last-Translator: Jonh Wendell <jwendell@gnome.org>\n" "Last-Translator: Jonh Wendell <jwendell@gnome.org>\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"
"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/gnome-shell.desktop.in.in.h:1 #: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell" msgid "GNOME Shell"
@ -114,11 +114,19 @@ msgstr ""
"valor usado aqui vem da enumeração GsmPresenceStatus." "valor usado aqui vem da enumeração GsmPresenceStatus."
#: ../data/org.gnome.shell.gschema.xml.in.h:13 #: ../data/org.gnome.shell.gschema.xml.in.h:13
msgid "Keybinding to open the application menu"
msgstr "Atalho de teclado para abrir o menu aplicativo"
#: ../data/org.gnome.shell.gschema.xml.in.h:14
msgid "Keybinding to open the application menu."
msgstr "Atalho de teclado para abrir o menu aplicativo."
#: ../data/org.gnome.shell.gschema.xml.in.h:15
msgid "List of desktop file IDs for favorite applications" msgid "List of desktop file IDs for favorite applications"
msgstr "" msgstr ""
"Lista dos IDs de arquivo de área de trabalho para os aplicativos favoritos" "Lista dos IDs de arquivo de área de trabalho para os aplicativos favoritos"
#: ../data/org.gnome.shell.gschema.xml.in.h:15 #: ../data/org.gnome.shell.gschema.xml.in.h:17
#, no-c-format #, no-c-format
msgid "" msgid ""
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax " "Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
@ -144,19 +152,19 @@ msgstr ""
"usando o codec VP8. %T é usado como uma tentativa de descobrir a melhor " "usando o codec VP8. %T é usado como uma tentativa de descobrir a melhor "
"quantidade de threads a serem usadas." "quantidade de threads a serem usadas."
#: ../data/org.gnome.shell.gschema.xml.in.h:16 #: ../data/org.gnome.shell.gschema.xml.in.h:18
msgid "Show date in clock" msgid "Show date in clock"
msgstr "Mostrar data no relógio" msgstr "Mostrar data no relógio"
#: ../data/org.gnome.shell.gschema.xml.in.h:17 #: ../data/org.gnome.shell.gschema.xml.in.h:19
msgid "Show the week date in the calendar" msgid "Show the week date in the calendar"
msgstr "Mostrar o número da semana no calendário" msgstr "Mostrar o número da semana no calendário"
#: ../data/org.gnome.shell.gschema.xml.in.h:18 #: ../data/org.gnome.shell.gschema.xml.in.h:20
msgid "Show time with seconds" msgid "Show time with seconds"
msgstr "Mostrar horário com segundos" msgstr "Mostrar horário com segundos"
#: ../data/org.gnome.shell.gschema.xml.in.h:19 #: ../data/org.gnome.shell.gschema.xml.in.h:21
msgid "" msgid ""
"The applications corresponding to these identifiers will be displayed in the " "The applications corresponding to these identifiers will be displayed in the "
"favorites area." "favorites area."
@ -164,7 +172,7 @@ msgstr ""
"Os aplicativos correspondentes a estes identificadores serão exibidos na " "Os aplicativos correspondentes a estes identificadores serão exibidos na "
"área de favoritos." "área de favoritos."
#: ../data/org.gnome.shell.gschema.xml.in.h:20 #: ../data/org.gnome.shell.gschema.xml.in.h:22
msgid "" msgid ""
"The filename for recorded screencasts will be a unique filename based on the " "The filename for recorded screencasts will be a unique filename based on the "
"current date, and use this extension. It should be changed when recording to " "current date, and use this extension. It should be changed when recording to "
@ -174,7 +182,7 @@ msgstr ""
"baseado na data atual e usará esta extensão. Ele deve ser alterado ao gravar " "baseado na data atual e usará esta extensão. Ele deve ser alterado ao gravar "
"para um contêiner de formato diferente." "para um contêiner de formato diferente."
#: ../data/org.gnome.shell.gschema.xml.in.h:21 #: ../data/org.gnome.shell.gschema.xml.in.h:23
msgid "" msgid ""
"The framerate of the resulting screencast recordered by GNOME Shell's " "The framerate of the resulting screencast recordered by GNOME Shell's "
"screencast recorder in frames-per-second." "screencast recorder in frames-per-second."
@ -182,11 +190,11 @@ msgstr ""
"A taxa de quadros do screencast resultante do gravador de screencasts do " "A taxa de quadros do screencast resultante do gravador de screencasts do "
"GNOME Shell em quadros por segundo." "GNOME Shell em quadros por segundo."
#: ../data/org.gnome.shell.gschema.xml.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.h:24
msgid "The gstreamer pipeline used to encode the screencast" msgid "The gstreamer pipeline used to encode the screencast"
msgstr "A fila de processamento gstreamer usada para codificar o screencast" msgstr "A fila de processamento gstreamer usada para codificar o screencast"
#: ../data/org.gnome.shell.gschema.xml.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.h:25
msgid "" msgid ""
"The shell normally monitors active applications in order to present the most " "The shell normally monitors active applications in order to present the most "
"used ones (e.g. in launchers). While this data will be kept private, you may " "used ones (e.g. in launchers). While this data will be kept private, you may "
@ -198,23 +206,23 @@ msgstr ""
"segurança, você pode querer desabilitá-los por razões de privacidade. Por " "segurança, você pode querer desabilitá-los por razões de privacidade. Por "
"favor, note que ao fazer isso não removerá os dados já salvos." "favor, note que ao fazer isso não removerá os dados já salvos."
#: ../data/org.gnome.shell.gschema.xml.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.h:26
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.h:25 #: ../data/org.gnome.shell.gschema.xml.in.h:27
msgid "Uuids of extensions to enable" msgid "Uuids of extensions to enable"
msgstr "Uuids das extensões para habilitar" msgstr "Uuids das extensões para habilitar"
#: ../data/org.gnome.shell.gschema.xml.in.h:26 #: ../data/org.gnome.shell.gschema.xml.in.h:28
msgid "Whether to collect stats about applications usage" msgid "Whether to collect stats about applications usage"
msgstr "Quando coletar dados sobre uso de aplicativos" msgstr "Quando coletar dados sobre uso de aplicativos"
#: ../data/org.gnome.shell.gschema.xml.in.h:27 #: ../data/org.gnome.shell.gschema.xml.in.h:29
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.h:28 #: ../data/org.gnome.shell.gschema.xml.in.h:30
msgid "disabled OpenSearch providers" msgid "disabled OpenSearch providers"
msgstr "Provedores OpenSearch desabilitados" msgstr "Provedores OpenSearch desabilitados"
@ -231,40 +239,40 @@ msgstr "<b>Extensão</b>"
msgid "Select an extension to configure using the combobox above." msgid "Select an extension to configure using the combobox above."
msgstr "Escolha uma extensão para configurar usando a caixa acima." msgstr "Escolha uma extensão para configurar usando a caixa acima."
#: ../js/gdm/loginDialog.js:624 #: ../js/gdm/loginDialog.js:627
msgid "Session..." msgid "Session..."
msgstr "Sessão..." msgstr "Sessão..."
#: ../js/gdm/loginDialog.js:786 #: ../js/gdm/loginDialog.js:789
msgctxt "title" msgctxt "title"
msgid "Sign In" msgid "Sign In"
msgstr "Iniciar sessão" msgstr "Iniciar sessão"
#. Translators: this message is shown below the password entry field #. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead #. to indicate the user can swipe their finger instead
#: ../js/gdm/loginDialog.js:831 #: ../js/gdm/loginDialog.js:834
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(ou deslize o dedo)" msgstr "(ou deslize o dedo)"
#. 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:852 #: ../js/gdm/loginDialog.js:855
msgid "Not listed?" msgid "Not listed?"
msgstr "Não listado?" msgstr "Não listado?"
#: ../js/gdm/loginDialog.js:1020 ../js/ui/endSessionDialog.js:401 #: ../js/gdm/loginDialog.js:1023 ../js/ui/endSessionDialog.js:401
#: ../js/ui/extensionSystem.js:399 ../js/ui/networkAgent.js:153 #: ../js/ui/extensionSystem.js:400 ../js/ui/networkAgent.js:153
#: ../js/ui/polkitAuthenticationAgent.js:175 ../js/ui/status/bluetooth.js:462 #: ../js/ui/polkitAuthenticationAgent.js:175 ../js/ui/status/bluetooth.js:462
msgid "Cancel" msgid "Cancel"
msgstr "Cancelar" msgstr "Cancelar"
#: ../js/gdm/loginDialog.js:1025 #: ../js/gdm/loginDialog.js:1028
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Entrar" msgstr "Entrar"
#: ../js/gdm/loginDialog.js:1377 #: ../js/gdm/loginDialog.js:1380
msgid "Login Window" msgid "Login Window"
msgstr "Janela de sessão" msgstr "Janela de sessão"
@ -663,11 +671,11 @@ msgstr[1] "O sistema será reiniciado automaticamente em %d segundos."
msgid "Restarting the system." msgid "Restarting the system."
msgstr "Reiniciando o sistema." msgstr "Reiniciando o sistema."
#: ../js/ui/extensionSystem.js:403 #: ../js/ui/extensionSystem.js:404
msgid "Install" msgid "Install"
msgstr "Instalar" msgstr "Instalar"
#: ../js/ui/extensionSystem.js:407 #: ../js/ui/extensionSystem.js:408
#, c-format #, c-format
msgid "Download and install '%s' from extensions.gnome.org?" msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "Baixar e instalar \"%s\" de extensions.gnome.org?" msgstr "Baixar e instalar \"%s\" de extensions.gnome.org?"
@ -676,7 +684,8 @@ msgstr "Baixar e instalar \"%s\" de extensions.gnome.org?"
msgid "tray" msgid "tray"
msgstr "bandeja" msgstr "bandeja"
#: ../js/ui/keyboard.js:544 ../js/ui/status/power.js:203 #: ../js/ui/keyboard.js:544 ../js/ui/status/keyboard.js:44
#: ../js/ui/status/power.js:203
msgid "Keyboard" msgid "Keyboard"
msgstr "Teclado" msgstr "Teclado"
@ -688,51 +697,51 @@ msgstr "Senha:"
msgid "Type again:" msgid "Type again:"
msgstr "Digite novamente:" msgstr "Digite novamente:"
#: ../js/ui/lookingGlass.js:725 #: ../js/ui/lookingGlass.js:732
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:779 #: ../js/ui/lookingGlass.js:786
#, c-format #, c-format
msgid "%s has not emitted any errors." msgid "%s has not emitted any errors."
msgstr "%s não produziu nenhum erro." msgstr "%s não produziu nenhum erro."
#: ../js/ui/lookingGlass.js:785 #: ../js/ui/lookingGlass.js:792
msgid "Hide Errors" msgid "Hide Errors"
msgstr "Mostrar erros" msgstr "Mostrar erros"
#: ../js/ui/lookingGlass.js:789 ../js/ui/lookingGlass.js:840 #: ../js/ui/lookingGlass.js:796 ../js/ui/lookingGlass.js:847
msgid "Show Errors" msgid "Show Errors"
msgstr "Esconder erros" msgstr "Esconder erros"
#: ../js/ui/lookingGlass.js:798 #: ../js/ui/lookingGlass.js:805
msgid "Enabled" msgid "Enabled"
msgstr "Habilitada" msgstr "Habilitada"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:801 ../src/gvc/gvc-mixer-control.c:1093 #: ../js/ui/lookingGlass.js:808 ../src/gvc/gvc-mixer-control.c:1082
msgid "Disabled" msgid "Disabled"
msgstr "Desabilitada" msgstr "Desabilitada"
#: ../js/ui/lookingGlass.js:803 #: ../js/ui/lookingGlass.js:810
msgid "Error" msgid "Error"
msgstr "Erro" msgstr "Erro"
#: ../js/ui/lookingGlass.js:805 #: ../js/ui/lookingGlass.js:812
msgid "Out of date" msgid "Out of date"
msgstr "Obsoleta" msgstr "Obsoleta"
#: ../js/ui/lookingGlass.js:807 #: ../js/ui/lookingGlass.js:814
msgid "Downloading" msgid "Downloading"
msgstr "Baixando" msgstr "Baixando"
#: ../js/ui/lookingGlass.js:828 #: ../js/ui/lookingGlass.js:835
msgid "View Source" msgid "View Source"
msgstr "Ver fonte" msgstr "Ver fonte"
#: ../js/ui/lookingGlass.js:834 #: ../js/ui/lookingGlass.js:841
msgid "Web Page" msgid "Web Page"
msgstr "Página web" msgstr "Página web"
@ -861,17 +870,17 @@ msgstr "Aplicativos"
msgid "Dash" msgid "Dash"
msgstr "Dash" msgstr "Dash"
#: ../js/ui/panel.js:591 #: ../js/ui/panel.js:592
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:623 #: ../js/ui/panel.js:624
msgid "Activities" msgid "Activities"
msgstr "Atividades" msgstr "Atividades"
#: ../js/ui/panel.js:998 #: ../js/ui/panel.js:999
msgid "Top Bar" msgid "Top Bar"
msgstr "Barra superior" msgstr "Barra superior"
@ -929,7 +938,7 @@ msgstr "Por favor, digite um comando:"
msgid "Searching..." msgid "Searching..."
msgstr "Pesquisando..." msgstr "Pesquisando..."
#: ../js/ui/searchDisplay.js:414 #: ../js/ui/searchDisplay.js:415
msgid "No matching results." msgid "No matching results."
msgstr "Nenhum resultado encontrado." msgstr "Nenhum resultado encontrado."
@ -1087,7 +1096,7 @@ msgstr "Sempre permitir acesso"
msgid "Grant this time only" msgid "Grant this time only"
msgstr "Permitir apenas desta vez" msgstr "Permitir apenas desta vez"
#: ../js/ui/status/bluetooth.js:382 ../js/ui/telepathyClient.js:1091 #: ../js/ui/status/bluetooth.js:382 ../js/ui/telepathyClient.js:1093
msgid "Reject" msgid "Reject"
msgstr "Rejeitar" msgstr "Rejeitar"
@ -1404,35 +1413,35 @@ msgstr "%s está ocupado."
#. Translators: this is a time format string followed by a date. #. Translators: this is a time format string followed by a date.
#. If applicable, replace %X with a strftime format valid for your #. If applicable, replace %X with a strftime format valid for your
#. locale, without seconds. #. locale, without seconds.
#: ../js/ui/telepathyClient.js:887 #: ../js/ui/telepathyClient.js:889
#, no-c-format #, no-c-format
msgid "Sent at <b>%X</b> on <b>%A</b>" msgid "Sent at <b>%X</b> on <b>%A</b>"
msgstr "Enviado <b>%A</b>, <b>%X</b>" msgstr "Enviado <b>%A</b>, <b>%X</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25", #. Translators: this is a time format in the style of "Wednesday, May 25",
#. shown when you get a chat message in the same year. #. shown when you get a chat message in the same year.
#: ../js/ui/telepathyClient.js:893 #: ../js/ui/telepathyClient.js:895
#, no-c-format #, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>" msgid "Sent on <b>%A</b>, <b>%B %d</b>"
msgstr "Enviado <b>%A</b>, <b>%d de %B</b>" msgstr "Enviado <b>%A</b>, <b>%d de %B</b>"
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012", #. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
#. shown when you get a chat message in a different year. #. shown when you get a chat message in a different year.
#: ../js/ui/telepathyClient.js:898 #: ../js/ui/telepathyClient.js:900
#, no-c-format #, no-c-format
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y" msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
msgstr "Enviado <b>%A</b>, <b>%d de %B</b> de %Y" msgstr "Enviado <b>%A</b>, <b>%d de %B</b> de %Y"
#. 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/telepathyClient.js:940 #: ../js/ui/telepathyClient.js:942
#, c-format #, c-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "%s agora é conhecido como %s" msgstr "%s agora é conhecido como %s"
#. translators: argument is a room name like #. translators: argument is a room name like
#. * room@jabber.org for example. #. * room@jabber.org for example.
#: ../js/ui/telepathyClient.js:1042 #: ../js/ui/telepathyClient.js:1044
#, c-format #, c-format
msgid "Invitation to %s" msgid "Invitation to %s"
msgstr "Convite para %s" msgstr "Convite para %s"
@ -1440,35 +1449,35 @@ msgstr "Convite para %s"
#. translators: first argument is the name of a contact and the second #. translators: first argument is the name of a contact and the second
#. * one the name of a room. "Alice is inviting you to join room@jabber.org #. * one the name of a room. "Alice is inviting you to join room@jabber.org
#. * for example. #. * for example.
#: ../js/ui/telepathyClient.js:1050 #: ../js/ui/telepathyClient.js:1052
#, c-format #, c-format
msgid "%s is inviting you to join %s" msgid "%s is inviting you to join %s"
msgstr "%s está convidando você para entrar em %s" msgstr "%s está convidando você para entrar em %s"
#: ../js/ui/telepathyClient.js:1052 ../js/ui/telepathyClient.js:1131 #: ../js/ui/telepathyClient.js:1054 ../js/ui/telepathyClient.js:1133
#: ../js/ui/telepathyClient.js:1229 #: ../js/ui/telepathyClient.js:1231
msgid "Decline" msgid "Decline"
msgstr "Recusar" msgstr "Recusar"
#: ../js/ui/telepathyClient.js:1053 ../js/ui/telepathyClient.js:1132 #: ../js/ui/telepathyClient.js:1055 ../js/ui/telepathyClient.js:1134
#: ../js/ui/telepathyClient.js:1230 #: ../js/ui/telepathyClient.js:1232
msgid "Accept" msgid "Accept"
msgstr "Aceitar" msgstr "Aceitar"
#. translators: argument is a contact name like Alice for example. #. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1083 #: ../js/ui/telepathyClient.js:1085
#, c-format #, c-format
msgid "Video call from %s" msgid "Video call from %s"
msgstr "Vídeo-chamada de %s" msgstr "Vídeo-chamada de %s"
#. translators: argument is a contact name like Alice for example. #. translators: argument is a contact name like Alice for example.
#: ../js/ui/telepathyClient.js:1086 #: ../js/ui/telepathyClient.js:1088
#, c-format #, c-format
msgid "Call from %s" msgid "Call from %s"
msgstr "Chamada de %s" msgstr "Chamada de %s"
#. translators: this is a button label (verb), not a noun #. translators: this is a button label (verb), not a noun
#: ../js/ui/telepathyClient.js:1093 #: ../js/ui/telepathyClient.js:1095
msgid "Answer" msgid "Answer"
msgstr "Atender" msgstr "Atender"
@ -1477,110 +1486,110 @@ msgstr "Atender"
#. * file name. The string will be something #. * file name. The string will be something
#. * like: "Alice is sending you test.ogg" #. * like: "Alice is sending you test.ogg"
#. #.
#: ../js/ui/telepathyClient.js:1125 #: ../js/ui/telepathyClient.js:1127
#, c-format #, c-format
msgid "%s is sending you %s" msgid "%s is sending you %s"
msgstr "%s está enviando %s" msgstr "%s está enviando %s"
#. To translators: The parameter is the contact's alias #. To translators: The parameter is the contact's alias
#: ../js/ui/telepathyClient.js:1194 #: ../js/ui/telepathyClient.js:1196
#, c-format #, c-format
msgid "%s would like permission to see when you are online" msgid "%s would like permission to see when you are online"
msgstr "%s quer permissão para vê-lo quando conectado" msgstr "%s quer permissão para vê-lo quando conectado"
#: ../js/ui/telepathyClient.js:1287 #: ../js/ui/telepathyClient.js:1289
msgid "Network error" msgid "Network error"
msgstr "Erro de rede" msgstr "Erro de rede"
#: ../js/ui/telepathyClient.js:1289 #: ../js/ui/telepathyClient.js:1291
msgid "Authentication failed" msgid "Authentication failed"
msgstr "Falha de autenticação" msgstr "Falha de autenticação"
#: ../js/ui/telepathyClient.js:1291 #: ../js/ui/telepathyClient.js:1293
msgid "Encryption error" msgid "Encryption error"
msgstr "Erro de criptografia" msgstr "Erro de criptografia"
#: ../js/ui/telepathyClient.js:1293 #: ../js/ui/telepathyClient.js:1295
msgid "Certificate not provided" msgid "Certificate not provided"
msgstr "Certificado não fornecido" msgstr "Certificado não fornecido"
#: ../js/ui/telepathyClient.js:1295 #: ../js/ui/telepathyClient.js:1297
msgid "Certificate untrusted" msgid "Certificate untrusted"
msgstr "Certificado não confiável" msgstr "Certificado não confiável"
#: ../js/ui/telepathyClient.js:1297 #: ../js/ui/telepathyClient.js:1299
msgid "Certificate expired" msgid "Certificate expired"
msgstr "Certificado expirado" msgstr "Certificado expirado"
#: ../js/ui/telepathyClient.js:1299 #: ../js/ui/telepathyClient.js:1301
msgid "Certificate not activated" msgid "Certificate not activated"
msgstr "Certificado não ativado" msgstr "Certificado não ativado"
#: ../js/ui/telepathyClient.js:1301 #: ../js/ui/telepathyClient.js:1303
msgid "Certificate hostname mismatch" msgid "Certificate hostname mismatch"
msgstr "Máquina do certificado não confere" msgstr "Máquina do certificado não confere"
#: ../js/ui/telepathyClient.js:1303 #: ../js/ui/telepathyClient.js:1305
msgid "Certificate fingerprint mismatch" msgid "Certificate fingerprint mismatch"
msgstr "Impressão digital do certificado não confere" msgstr "Impressão digital do certificado não confere"
#: ../js/ui/telepathyClient.js:1305 #: ../js/ui/telepathyClient.js:1307
msgid "Certificate self-signed" msgid "Certificate self-signed"
msgstr "Certificado auto-assinado" msgstr "Certificado auto-assinado"
#: ../js/ui/telepathyClient.js:1307 #: ../js/ui/telepathyClient.js:1309
msgid "Status is set to offline" msgid "Status is set to offline"
msgstr "O status está definido como desconectado." msgstr "O status está definido como desconectado."
#: ../js/ui/telepathyClient.js:1309 #: ../js/ui/telepathyClient.js:1311
msgid "Encryption is not available" msgid "Encryption is not available"
msgstr "Criptografia não disponível" msgstr "Criptografia não disponível"
#: ../js/ui/telepathyClient.js:1311 #: ../js/ui/telepathyClient.js:1313
msgid "Certificate is invalid" msgid "Certificate is invalid"
msgstr "O certificado é inválido" msgstr "O certificado é inválido"
#: ../js/ui/telepathyClient.js:1313 #: ../js/ui/telepathyClient.js:1315
msgid "Connection has been refused" msgid "Connection has been refused"
msgstr "A conexão foi recusada" msgstr "A conexão foi recusada"
#: ../js/ui/telepathyClient.js:1315 #: ../js/ui/telepathyClient.js:1317
msgid "Connection can't be established" msgid "Connection can't be established"
msgstr "A conexão não pode ser estabelecida" msgstr "A conexão não pode ser estabelecida"
#: ../js/ui/telepathyClient.js:1317 #: ../js/ui/telepathyClient.js:1319
msgid "Connection has been lost" msgid "Connection has been lost"
msgstr "Conexão perdida" msgstr "Conexão perdida"
#: ../js/ui/telepathyClient.js:1319 #: ../js/ui/telepathyClient.js:1321
msgid "This account is already connected to the server" msgid "This account is already connected to the server"
msgstr "Esta conta já está conectada ao servidor" msgstr "Esta conta já está conectada ao servidor"
#: ../js/ui/telepathyClient.js:1321 #: ../js/ui/telepathyClient.js:1323
msgid "" msgid ""
"Connection has been replaced by a new connection using the same resource" "Connection has been replaced by a new connection using the same resource"
msgstr "A conexão foi substituída por uma nova conexão usando o mesmo recurso" msgstr "A conexão foi substituída por uma nova conexão usando o mesmo recurso"
#: ../js/ui/telepathyClient.js:1323 #: ../js/ui/telepathyClient.js:1325
msgid "The account already exists on the server" msgid "The account already exists on the server"
msgstr "A conta já existe no servidor" msgstr "A conta já existe no servidor"
#: ../js/ui/telepathyClient.js:1325 #: ../js/ui/telepathyClient.js:1327
msgid "Server is currently too busy to handle the connection" msgid "Server is currently too busy to handle the connection"
msgstr "O servidor está atualmente muito ocupado para controlar a conexão" msgstr "O servidor está atualmente muito ocupado para controlar a conexão"
#: ../js/ui/telepathyClient.js:1327 #: ../js/ui/telepathyClient.js:1329
msgid "Certificate has been revoked" msgid "Certificate has been revoked"
msgstr "O certificado foi revogado" msgstr "O certificado foi revogado"
#: ../js/ui/telepathyClient.js:1329 #: ../js/ui/telepathyClient.js:1331
msgid "" msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak" "Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr "" msgstr ""
"O certificado usa um algoritmo de cifragem inseguro ou é criptograficamente " "O certificado usa um algoritmo de cifragem inseguro ou é criptograficamente "
"fraco" "fraco"
#: ../js/ui/telepathyClient.js:1331 #: ../js/ui/telepathyClient.js:1333
msgid "" msgid ""
"The length of the server certificate, or the depth of the server certificate " "The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library" "chain, exceed the limits imposed by the cryptography library"
@ -1588,26 +1597,26 @@ msgstr ""
"O comprimento do certificado do servidor, ou a profundidade da cadeia do " "O comprimento do certificado do servidor, ou a profundidade da cadeia do "
"certificado excedeu os limites impostos pela biblioteca de criptografia" "certificado excedeu os limites impostos pela biblioteca de criptografia"
#: ../js/ui/telepathyClient.js:1333 #: ../js/ui/telepathyClient.js:1335
msgid "Internal error" msgid "Internal error"
msgstr "Erro interno" msgstr "Erro interno"
#. translators: argument is the account name, like #. translators: argument is the account name, like
#. * name@jabber.org for example. #. * name@jabber.org for example.
#: ../js/ui/telepathyClient.js:1343 #: ../js/ui/telepathyClient.js:1345
#, c-format #, c-format
msgid "Connection to %s failed" msgid "Connection to %s failed"
msgstr "A conexão com %s falhou" msgstr "A conexão com %s falhou"
#: ../js/ui/telepathyClient.js:1352 #: ../js/ui/telepathyClient.js:1354
msgid "Reconnect" msgid "Reconnect"
msgstr "Reconectar" msgstr "Reconectar"
#: ../js/ui/telepathyClient.js:1353 #: ../js/ui/telepathyClient.js:1355
msgid "Edit account" msgid "Edit account"
msgstr "Editar conta" msgstr "Editar conta"
#: ../js/ui/telepathyClient.js:1399 #: ../js/ui/telepathyClient.js:1401
msgid "Unknown reason" msgid "Unknown reason"
msgstr "Razão desconhecida" msgstr "Razão desconhecida"
@ -1701,7 +1710,7 @@ msgstr "\"%s\" está pronto"
#. 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:1100 #: ../src/gvc/gvc-mixer-control.c:1089
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1710,14 +1719,14 @@ msgstr[1] "%u saídas"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1110 #: ../src/gvc/gvc-mixer-control.c:1099
#, 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:1408 #: ../src/gvc/gvc-mixer-control.c:1397
msgid "System Sounds" msgid "System Sounds"
msgstr "Sons do sistema" msgstr "Sons do sistema"

@ -27,8 +27,10 @@ CLEANFILES += $(service_DATA)
CLEANFILES += $(gir_DATA) $(typelib_DATA) CLEANFILES += $(gir_DATA) $(typelib_DATA)
bin_SCRIPTS += gnome-shell-extension-tool gnome-shell-extension-prefs bin_SCRIPTS += gnome-shell-extension-tool gnome-shell-extension-prefs \
EXTRA_DIST += gnome-shell-extension-tool.in gnome-shell-extension-prefs.in gnome-shell-perf-tool
EXTRA_DIST += gnome-shell-extension-tool.in gnome-shell-extension-prefs.in \
gnome-shell-perf-tool.in
bin_PROGRAMS = gnome-shell-real bin_PROGRAMS = gnome-shell-real
if USE_JHBUILD_WRAPPER_SCRIPT if USE_JHBUILD_WRAPPER_SCRIPT
@ -53,7 +55,6 @@ generated_script_substitutions = \
-e "s|@libexecdir[@]|$(libexecdir)|g" \ -e "s|@libexecdir[@]|$(libexecdir)|g" \
-e "s|@libdir[@]|$(libdir)|g" \ -e "s|@libdir[@]|$(libdir)|g" \
-e "s|@pkglibdir[@]|$(pkglibdir)|g" \ -e "s|@pkglibdir[@]|$(pkglibdir)|g" \
-e "s|@JHBUILD_TYPELIBDIR[@]|$(JHBUILD_TYPELIBDIR)|g" \
-e "s|@pkgdatadir[@]|$(pkgdatadir)|g" \ -e "s|@pkgdatadir[@]|$(pkgdatadir)|g" \
-e "s|@PYTHON[@]|$(PYTHON)|g" \ -e "s|@PYTHON[@]|$(PYTHON)|g" \
-e "s|@VERSION[@]|$(VERSION)|g" \ -e "s|@VERSION[@]|$(VERSION)|g" \
@ -71,6 +72,9 @@ gnome-shell-extension-tool: gnome-shell-extension-tool.in Makefile
gnome-shell-extension-prefs: gnome-shell-extension-prefs.in Makefile gnome-shell-extension-prefs: gnome-shell-extension-prefs.in Makefile
$(AM_V_GEN) sed $(generated_script_substitutions) $< > $@.tmp && mv $@.tmp $@ && chmod a+x $@ $(AM_V_GEN) sed $(generated_script_substitutions) $< > $@.tmp && mv $@.tmp $@ && chmod a+x $@
gnome-shell-perf-tool: gnome-shell-perf-tool.in Makefile
$(AM_V_GEN) sed $(generated_script_substitutions) $< > $@.tmp && mv $@.tmp $@ && chmod a+x $@
CLEANFILES += gnome-shell $(bin_SCRIPTS) CLEANFILES += gnome-shell $(bin_SCRIPTS)
include Makefile-st.am include Makefile-st.am

@ -52,7 +52,10 @@
#define CALENDAR_SOURCES_APPOINTMENT_SOURCES_KEY CALENDAR_SOURCES_EVO_DIR "/calendar/sources" #define CALENDAR_SOURCES_APPOINTMENT_SOURCES_KEY CALENDAR_SOURCES_EVO_DIR "/calendar/sources"
#define CALENDAR_SOURCES_TASK_SOURCES_KEY CALENDAR_SOURCES_EVO_DIR "/tasks/sources" #define CALENDAR_SOURCES_TASK_SOURCES_KEY CALENDAR_SOURCES_EVO_DIR "/tasks/sources"
#define CALENDAR_SELECTED_SOURCES_SCHEMA "org.gnome.evolution.calendar" /* org.gnome.shell.evolution.calendar has the same data behind it
* as org.gnome.evolution.calendar, but is a small schema we install
* ourselves */
#define CALENDAR_SELECTED_SOURCES_SCHEMA "org.gnome.shell.evolution.calendar"
#define CALENDAR_SOURCES_SELECTED_APPOINTMENT_SOURCES_KEY "selected-calendars" #define CALENDAR_SOURCES_SELECTED_APPOINTMENT_SOURCES_KEY "selected-calendars"
#define CALENDAR_SOURCES_SELECTED_TASK_SOURCES_KEY "selected-tasks" #define CALENDAR_SOURCES_SELECTED_TASK_SOURCES_KEY "selected-tasks"

@ -94,8 +94,20 @@ static gchar **
g_action_muxer_list_actions (GActionGroup *action_group) g_action_muxer_list_actions (GActionGroup *action_group)
{ {
GActionMuxer *muxer = G_ACTION_MUXER (action_group); GActionMuxer *muxer = G_ACTION_MUXER (action_group);
GHashTableIter iter;
gchar *key;
gchar **keys;
gsize i;
return (gchar **) muxer->groups; keys = g_new (gchar *, g_hash_table_size (muxer->actions) + 1);
i = 0;
g_hash_table_iter_init (&iter, muxer->actions);
while (g_hash_table_iter_next (&iter, (gpointer *) &key, NULL))
keys[i++] = g_strdup (key);
keys[i] = NULL;
return keys;
} }
static Group * static Group *

@ -1,30 +1,13 @@
#!@PYTHON@ #!@PYTHON@
# -*- mode: Python; indent-tabs-mode: nil; -*- # -*- mode: Python; indent-tabs-mode: nil; -*-
import atexit
import datetime
import dbus
from dbus.mainloop.glib import DBusGMainLoop
import gobject
try:
import json
except ImportError:
try:
import simplejson as json
except ImportError:
json = None
import optparse import optparse
import os import os
import random
import re import re
import shutil
import signal import signal
import subprocess import subprocess
import sys import sys
import tempfile
import termios import termios
import time
import errno
def show_version(option, opt_str, value, parser): def show_version(option, opt_str, value, parser):
print "GNOME Shell @VERSION@" print "GNOME Shell @VERSION@"
@ -79,168 +62,24 @@ def get_running_session_environs():
result[key] = environs[key] result[key] = environs[key]
return result return result
_bus = None def start_shell():
_bus_iface = None
_name_owner_changed_hook = None
def on_name_owner_changed(name, prev_owner, new_owner):
if _name_owner_changed_hook:
_name_owner_changed_hook(name, prev_owner, new_owner)
def get_bus():
global _bus
if _bus is None:
dbus_loop = DBusGMainLoop()
_bus = dbus.SessionBus(mainloop=dbus_loop)
return _bus
def get_bus_iface():
global _bus_iface
if _bus_iface is None:
bus = get_bus()
bus_proxy = bus.get_object('org.freedesktop.DBus', '/org/freedesktop/DBus')
_bus_iface = dbus.Interface(bus_proxy, 'org.freedesktop.DBus')
_bus_iface.connect_to_signal('NameOwnerChanged', on_name_owner_changed)
return _bus_iface
def wait_for_dbus_name(wait_name):
global _name_owner_changed_hook
bus_iface = get_bus_iface()
loop = gobject.MainLoop()
def on_name_owner_changed(name, prev_owner, new_owner):
if not (name == wait_name and new_owner != ''):
return
loop.quit()
return
_name_owner_changed_hook = on_name_owner_changed
def on_timeout():
print "\nFailed to start %s: timed out" % (wait_name,)
sys.exit(1)
gobject.timeout_add_seconds(7, on_timeout)
loop.run()
_name_owner_changed_hook = None
def start_dconf_await_service():
DCONF_NAME = 'ca.desrt.dconf'
bus = get_bus()
get_bus_iface() # connect to NameOwnerChanged signal
# See if the service is already running or normal D-Bus activation works
need_manual_activate = False
try:
dconf_proxy = bus.get_object(DCONF_NAME, '/')
dconf_proxy.Ping(dbus_interface='org.freedesktop.DBus.Peer')
except dbus.exceptions.DBusException, e:
if e.get_dbus_name() == 'org.freedesktop.DBus.Error.ServiceUnknown':
need_manual_activate = True
else:
raise e
if not need_manual_activate:
return
# At this point, it looks like we just have a jhbuild install
# of dconf, not known to the session dbus-daemon, so we start
# it manually and wait for it to join the bus
print "Starting dconf-service... ",
sys.stdout.flush()
# dconf is linked without libtool, so unlike other GNOME modules,
# won't have an embedded rpath for its library directory.
env = dict(os.environ)
if 'LD_LIBRARY_PATH' in env and env['LD_LIBRARY_PATH']:
ld_library_path = '@libdir@:' + env['LD_LIBRARY_PATH']
else:
ld_library_path = '@libdir@'
env['LD_LIBRARY_PATH'] = ld_library_path
dconf_path = os.path.join('@libexecdir@', 'dconf-service')
try:
subprocess.Popen([dconf_path, '--keep-alive'], env=env)
except OSError, e:
print "\nFailed to start %s: %s" % (dconf_path, e)
sys.exit(1)
wait_for_dbus_name (DCONF_NAME)
PERF_HELPER_NAME = "org.gnome.Shell.PerfHelper"
PERF_HELPER_IFACE = "org.gnome.Shell.PerfHelper"
PERF_HELPER_PATH = "/org/gnome/Shell/PerfHelper"
def start_perf_helper():
get_bus_iface() # connect to NameOwnerChanged signal
self_dir = os.path.dirname(os.path.abspath(sys.argv[0])) self_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
running_from_source_tree = os.path.exists(os.path.join(self_dir, 'gnome-shell-jhbuild.in')) running_from_source_tree = os.path.exists(os.path.join(self_dir, 'gnome-shell-jhbuild.in'))
if running_from_source_tree:
perf_helper_path = os.path.join(self_dir, "gnome-shell-perf-helper")
else:
perf_helper_path = "@libexecdir@/gnome-shell-perf-helper"
subprocess.Popen([perf_helper_path])
wait_for_dbus_name (PERF_HELPER_NAME)
def stop_perf_helper():
bus = get_bus()
proxy = bus.get_object(PERF_HELPER_NAME, PERF_HELPER_PATH)
proxy.Exit(dbus_interface=PERF_HELPER_IFACE)
def start_shell(perf_output=None):
self_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
if os.path.exists(os.path.join(self_dir, 'gnome-shell-jhbuild.in')):
running_from_source_tree = True
top_dir = os.path.dirname(self_dir)
typelib_dir = '@JHBUILD_TYPELIBDIR@:' + os.path.join(top_dir, "src")
js_dir = os.path.join(top_dir, "js")
data_dir = os.path.join(top_dir, "data")
else:
running_from_source_tree = False
js_dir = os.path.join('@pkgdatadir@', 'js')
typelib_dir = '@JHBUILD_TYPELIBDIR@'
if os.environ.has_key('GI_TYPELIB_PATH'):
typelib_dir = typelib_dir + ":" + os.environ.get('GI_TYPELIB_PATH')
# Set up environment # Set up environment
env = dict(os.environ) env = dict(os.environ)
# TODO: Fix this, since nothing prevents it from propagating to child
# processes. Why is it even here?
env.update({'GNOME_DISABLE_CRASH_DIALOG' : '1'})
# This stuff should really should only happen when running
# uninstalled, i.e. it should be in the conditional
# below. Otherwise it's just a bad reimplementation of "jhbuild
# run". See bug #642084
env.update({'GNOME_SHELL_JS' : js_dir,
'PATH' : '@bindir@:' + os.environ.get('PATH', ''),
'GI_TYPELIB_PATH' : typelib_dir,
'XDG_CONFIG_DIRS' : '@sysconfdir@/xdg:' + (os.environ.get('XDG_CONFIG_DIRS') or '/etc/xdg'),
'XDG_DATA_DIRS' : '@datadir@:' + (os.environ.get('XDG_DATA_DIRS') or '/usr/local/share:/usr/share')})
if running_from_source_tree: if running_from_source_tree:
env.update({'GNOME_SHELL_BINDIR' : self_dir, top_dir = os.path.dirname(self_dir)
'GNOME_SHELL_DATADIR' : data_dir,
'GSETTINGS_SCHEMA_DIR' : data_dir })
else:
# This is just broken to set in the installed case; see bug #642084
env.update({'GSETTINGS_SCHEMA_DIR' : os.path.join('@datadir@', 'glib-2.0', 'schemas')})
# Also plain broken to set in the normal installed case typelib_dir = os.path.join(top_dir, "src")
jhbuild_gconf_source = os.path.join('@sysconfdir@', 'gconf/2/path.jhbuild') if 'GI_TYPELIB_PATH' in os.environ:
if os.path.exists(jhbuild_gconf_source): typelib_dir += ':%s' % (os.environ['GI_TYPELIB_PATH'],)
env['GCONF_DEFAULT_SOURCE_PATH'] = jhbuild_gconf_source
if options.perf is not None: env.update({'GNOME_SHELL_JS' : os.path.join(top_dir, "js"),
env['SHELL_PERF_MODULE'] = options.perf 'GNOME_SHELL_BINDIR' : self_dir,
env['MUTTER_WM_CLASS_FILTER'] = 'Gnome-shell-perf-helper' 'GI_TYPELIB_PATH' : typelib_dir,
'GNOME_SHELL_DATADIR' : os.path.join(top_dir, "data"),
if perf_output is not None: 'GSETTINGS_SCHEMA_DIR' : os.path.join(top_dir, "data") })
env['SHELL_PERF_OUTPUT'] = perf_output
args = [] args = []
if options.debug: if options.debug:
@ -256,22 +95,7 @@ def start_shell(perf_output=None):
args.append('--sync') args.append('--sync')
return subprocess.Popen(args, env=env) return subprocess.Popen(args, env=env)
def _killall(processname): def run_shell():
subprocess.call(['pkill', '-u', '%d' % (os.getuid(), ),
'-f', r'^([^ ]*/)?' + re.escape(processname) + '($| )'])
def ensure_desktop_infrastructure_state():
# This is a collection of random hacks necessary to make sure
# that we can run in jhbuild scenarios or when dynamically
# replacing GNOME 2.
start_dconf_await_service()
# We need to terminate notification-daemon
_killall('notification-daemon')
_killall('notify-osd')
def run_shell(perf_output=None):
if options.debug: if options.debug:
# Record initial terminal state so we can reset it to that # Record initial terminal state so we can reset it to that
# later, in case we kill gdb at a bad time # later, in case we kill gdb at a bad time
@ -282,8 +106,9 @@ def run_shell(perf_output=None):
if options.verbose: if options.verbose:
print "Starting shell" print "Starting shell"
shell = None
try: try:
shell = start_shell(perf_output=perf_output) shell = start_shell()
# Wait for shell to exit # Wait for shell to exit
if options.verbose: if options.verbose:
@ -317,248 +142,6 @@ def run_shell(perf_output=None):
return normal_exit return normal_exit
def upload_performance_report(report_text):
# Local imports to avoid impacting gnome-shell startup time
import base64
from ConfigParser import RawConfigParser
import hashlib
import hmac
import httplib
import urlparse
import urllib
try:
config_home = os.environ['XDG_CONFIG_HOME']
except KeyError:
config_home = None
if not config_home:
config_home = os.path.expanduser("~/.config")
config_file = os.path.join(config_home, "gnome-shell/perf.ini")
try:
config = RawConfigParser()
f = open(config_file)
config.readfp(f)
f.close()
base_url = config.get('upload', 'url')
system_name = config.get('upload', 'name')
secret_key = config.get('upload', 'key')
except Exception, e:
print "Can't read upload configuration from %s: %s" % (config_file, str(e))
sys.exit(1)
# Determine host, port and upload URL from provided data, we're
# a bit extra-careful about normalization since the URL is part
# of the signature.
split = urlparse.urlsplit(base_url)
scheme = split[0].lower()
netloc = split[1]
base_path = split[2]
m = re.match(r'^(.*?)(?::(\d+))?$', netloc)
if m.group(2):
host, port = m.group(1), int(m.group(2))
else:
host, port = m.group(1), None
if scheme != "http":
print "'%s' is not a HTTP URL" % base_url
sys.exit(1)
if port is None:
port = 80
if base_path.endswith('/'):
base_path = base_path[:-1]
if port == 80:
normalized_base = "%s://%s%s" % (scheme, host, base_path)
else:
normalized_base = "%s://%s:%d%s" % (scheme, host, port, base_path)
upload_url = normalized_base + '/system/%s/upload' % system_name
upload_path = urlparse.urlsplit(upload_url)[2] # path portion
# Create signature based on upload URL and the report data
signature_data = 'POST&' + upload_url + "&&"
h = hmac.new(secret_key, digestmod=hashlib.sha1)
h.update(signature_data)
h.update(report_text)
signature = urllib.quote(base64.b64encode(h.digest()), "~")
headers = {
'User-Agent': 'gnome-shell',
'Content-Type': 'application/json',
'X-Shell-Signature': 'HMAC-SHA1 ' + signature
};
connection = httplib.HTTPConnection(host, port)
connection.request('POST', upload_path, report_text, headers)
response = connection.getresponse()
if response.status == 200:
print "Performance report upload succeeded"
else:
print "Performance report upload failed with status %d" % response.status
print response.read()
def run_performance_test():
iters = options.perf_iters
if options.perf_warmup:
iters += 1
logs = []
metric_summaries = {}
start_perf_helper()
for i in xrange(0, iters):
# We create an empty temporary file that the shell will overwrite
# with the contents.
handle, output_file = tempfile.mkstemp(".json", "gnome-shell-perf.")
os.close(handle)
# Run the performance test and collect the output as JSON
normal_exit = False
try:
normal_exit = run_shell(perf_output=output_file)
except:
stop_perf_helper()
raise
finally:
if not normal_exit:
os.remove(output_file)
if not normal_exit:
stop_perf_helper()
return False
try:
f = open(output_file)
output = json.load(f)
f.close()
except:
stop_perf_helper()
raise
finally:
os.remove(output_file)
# Grab the event definitions and monitor layout the first time around
if i == 0:
events = output['events']
monitors = output['monitors']
if options.perf_warmup and i == 0:
continue
for metric in output['metrics']:
name = metric['name']
if not name in metric_summaries:
summary = {}
summary['description'] = metric['description']
summary['units'] = metric['units']
summary['values'] = []
metric_summaries[name] = summary
else:
summary = metric_summaries[name]
summary['values'].append(metric['value'])
logs.append(output['log'])
stop_perf_helper()
if options.perf_output or options.perf_upload:
# Write a complete report, formatted as JSON. The Javascript/C code that
# generates the individual reports we are summarizing here is very careful
# to format them nicely, but we just dump out a compressed no-whitespace
# version here for simplicity. Using json.dump(indent=0) doesn't real
# improve the readability of the output much.
report = {
'date': datetime.datetime.utcnow().isoformat() + 'Z',
'events': events,
'monitors': monitors,
'metrics': metric_summaries,
'logs': logs
}
# Add the Git revision if available
self_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
if os.path.exists(os.path.join(self_dir, 'gnome-shell-jhbuild.in')):
top_dir = os.path.dirname(self_dir)
git_dir = os.path.join(top_dir, '.git')
if os.path.exists(git_dir):
env = dict(os.environ)
env['GIT_DIR'] = git_dir
revision = subprocess.Popen(['git', 'rev-parse', 'HEAD'],
env=env,
stdout=subprocess.PIPE).communicate()[0].strip()
report['revision'] = revision
if options.perf_output:
f = open(options.perf_output, 'w')
json.dump(report, f)
f.close()
if options.perf_upload:
upload_performance_report(json.dumps(report))
else:
# Write a human readable summary
print '------------------------------------------------------------';
for metric in sorted(metric_summaries.keys()):
summary = metric_summaries[metric]
print "#", summary['description']
print metric, ", ".join((str(x) for x in summary['values']))
print '------------------------------------------------------------';
return True
def restore_gnome():
# Do imports lazily to save time and memory
import gio
import gconf
# We don't want to start the new gnome-panel in the current
# directory; $HOME is better for stuff launched from it
os.chdir(os.path.expanduser("~"))
def launch_component(gconf_path):
client = gconf.client_get_default()
component = client.get_string(gconf_path)
if component == None or component == "":
return False
# See gnome-session/gsm-util.c:gsm_util_find_desktop_file_for_app_name()
# The one difference is that we don't search the autostart directories,
# and just search normal application search path. (Gio doesnt' know
# how to search the autostart dirs, so we'd have to do that ourselves.)
appinfo = None
try:
appinfo = gio.unix.DesktopAppInfo(component + ".desktop")
except:
try:
appinfo = gio.unix.DesktopAppInfo("gnome-" + component + ".desktop")
except:
pass
if appinfo:
appinfo.launch()
return True
return False
# GNOME2 fallback
wm = launch_component("/desktop/gnome/session/required_components/windowmanager")
panel = launch_component("/desktop/gnome/session/required_components/panel")
if not wm and not panel: # Probably GNOME3
subprocess.Popen(['gnome-shell'])
# Main program # Main program
parser = optparse.OptionParser() parser = optparse.OptionParser()
@ -570,17 +153,6 @@ parser.add_option("", "--debug-command", metavar="COMMAND",
help="Command to use for debugging (defaults to 'gdb --args')") help="Command to use for debugging (defaults to 'gdb --args')")
parser.add_option("-v", "--verbose", action="store_true") parser.add_option("-v", "--verbose", action="store_true")
parser.add_option("", "--sync", action="store_true") parser.add_option("", "--sync", action="store_true")
parser.add_option("", "--perf", metavar="PERF_MODULE",
help="Specify the name of a performance module to run")
parser.add_option("", "--perf-iters", type="int", metavar="ITERS",
help="Numbers of iterations of performance module to run",
default=1)
parser.add_option("", "--perf-warmup", action="store_true",
help="Run a dry run before performance tests")
parser.add_option("", "--perf-output", metavar="OUTPUT_FILE",
help="Output file to write performance report")
parser.add_option("", "--perf-upload", action="store_true",
help="Upload performance report to server")
parser.add_option("", "--version", action="callback", callback=show_version, parser.add_option("", "--version", action="callback", callback=show_version,
help="Display version and exit") help="Display version and exit")
@ -590,10 +162,6 @@ if args:
parser.print_usage() parser.print_usage()
sys.exit(1) sys.exit(1)
if options.perf and json is None:
print 'The Python simplejson module is required for performance tests'
sys.exit(1)
# Handle ssh logins # Handle ssh logins
if 'DISPLAY' not in os.environ: if 'DISPLAY' not in os.environ:
running_env = get_running_session_environs() running_env = get_running_session_environs()
@ -604,21 +172,7 @@ if options.debug_command:
elif options.debug: elif options.debug:
options.debug_command = "gdb --args" options.debug_command = "gdb --args"
# We only respawn the previous environment on abnormal exit; normal_exit = run_shell()
# for a clean exit, we assume that gnome-shell was replaced with
# something else.
normal_exit = False
try:
if options.perf:
normal_exit = run_performance_test()
else:
ensure_desktop_infrastructure_state()
normal_exit = run_shell()
finally:
if options.replace and (options.perf or not normal_exit):
restore_gnome()
if normal_exit: if normal_exit:
sys.exit(0) sys.exit(0)
else: else:

@ -0,0 +1,310 @@
#!@PYTHON@
# -*- mode: Python; indent-tabs-mode: nil; -*-
import datetime
from gi.repository import GLib, GObject, Gio
try:
import json
except ImportError:
import simplejson as json
import optparse
import os
import re
import subprocess
import sys
import tempfile
import base64
from ConfigParser import RawConfigParser
import hashlib
import hmac
import httplib
import urlparse
import urllib
def show_version(option, opt_str, value, parser):
print "GNOME Shell Performance Test @VERSION@"
sys.exit()
def wait_for_dbus_name(wait_name):
loop = GLib.MainLoop()
def on_name_appeared(connection, name, name_owner, *args):
if not (name == wait_name and new_owner != ''):
return
loop.quit()
return
watch_id = Gio.bus_watch_name(Gio.BusType.SESSION,
wait_name,
Gio.BusNameWatcherFlags.NONE,
on_name_appeared,
None)
def on_timeout():
print "\nFailed to start %s: timed out" % (wait_name,)
sys.exit(1)
GLib.timeout_add_seconds(7, on_timeout)
loop.run()
Gio.bus_unwatch_name(watch_id)
PERF_HELPER_NAME = "org.gnome.Shell.PerfHelper"
PERF_HELPER_IFACE = "org.gnome.Shell.PerfHelper"
PERF_HELPER_PATH = "/org/gnome/Shell/PerfHelper"
def start_perf_helper():
self_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
perf_helper_path = "@libexecdir@/gnome-shell-perf-helper"
subprocess.Popen([perf_helper_path])
wait_for_dbus_name (PERF_HELPER_NAME)
def stop_perf_helper():
proxy = Gio.DBusProxy(g_bus_type=Gio.BusType.SESSION,
g_name=PERF_HELPER_NAME,
g_interface=PERF_HELPER_IFACE,
g_object_path=PERF_HELPER_PATH)
proxy.Exit()
def start_shell(extra_args, perf_output=None):
# Set up environment
env = dict(os.environ)
env['SHELL_PERF_MODULE'] = options.perf
env['MUTTER_WM_CLASS_FILTER'] = 'Gnome-shell-perf-helper'
if perf_output is not None:
env['SHELL_PERF_OUTPUT'] = perf_output
self_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
args.append(os.path.join(self_dir, 'gnome-shell'))
# pass on any additional arguments
args += extra_args
return subprocess.Popen(args, env=env)
def run_shell(args, perf_output=None):
# we do no additional supervision of gnome-shell,
# beyond that of wait
# in particular, we don't kill the shell upon
# receving a KeyboardInterrupt, as we expect to be
# in the same process group
shell = start_shell(extra_args, perf_output=perf_output)
shell.wait()
return shell.returncode == 0
def upload_performance_report(report_text):
try:
config_home = os.environ['XDG_CONFIG_HOME']
except KeyError:
config_home = None
if not config_home:
config_home = os.path.expanduser("~/.config")
config_file = os.path.join(config_home, "gnome-shell/perf.ini")
try:
config = RawConfigParser()
f = open(config_file)
config.readfp(f)
f.close()
base_url = config.get('upload', 'url')
system_name = config.get('upload', 'name')
secret_key = config.get('upload', 'key')
except Exception, e:
print "Can't read upload configuration from %s: %s" % (config_file, str(e))
sys.exit(1)
# Determine host, port and upload URL from provided data, we're
# a bit extra-careful about normalization since the URL is part
# of the signature.
split = urlparse.urlsplit(base_url)
scheme = split[0].lower()
netloc = split[1]
base_path = split[2]
m = re.match(r'^(.*?)(?::(\d+))?$', netloc)
if m.group(2):
host, port = m.group(1), int(m.group(2))
else:
host, port = m.group(1), None
if scheme != "http":
print "'%s' is not a HTTP URL" % base_url
sys.exit(1)
if port is None:
port = 80
if base_path.endswith('/'):
base_path = base_path[:-1]
if port == 80:
normalized_base = "%s://%s%s" % (scheme, host, base_path)
else:
normalized_base = "%s://%s:%d%s" % (scheme, host, port, base_path)
upload_url = normalized_base + '/system/%s/upload' % system_name
upload_path = urlparse.urlsplit(upload_url)[2] # path portion
# Create signature based on upload URL and the report data
signature_data = 'POST&' + upload_url + "&&"
h = hmac.new(secret_key, digestmod=hashlib.sha1)
h.update(signature_data)
h.update(report_text)
signature = urllib.quote(base64.b64encode(h.digest()), "~")
headers = {
'User-Agent': 'gnome-shell-performance-tool/@VERSION@',
'Content-Type': 'application/json',
'X-Shell-Signature': 'HMAC-SHA1 ' + signature
};
connection = httplib.HTTPConnection(host, port)
connection.request('POST', upload_path, report_text, headers)
response = connection.getresponse()
if response.status == 200:
print "Performance report upload succeeded"
else:
print "Performance report upload failed with status %d" % response.status
print response.read()
def run_performance_test(args):
iters = options.perf_iters
if options.perf_warmup:
iters += 1
logs = []
metric_summaries = {}
start_perf_helper()
for i in xrange(0, iters):
# We create an empty temporary file that the shell will overwrite
# with the contents.
handle, output_file = tempfile.mkstemp(".json", "gnome-shell-perf.")
os.close(handle)
# Run the performance test and collect the output as JSON
normal_exit = False
try:
normal_exit = run_shell(args, perf_output=output_file)
except:
stop_perf_helper()
raise
finally:
if not normal_exit:
os.remove(output_file)
if not normal_exit:
stop_perf_helper()
return False
try:
f = open(output_file)
output = json.load(f)
f.close()
except:
stop_perf_helper()
raise
finally:
os.remove(output_file)
# Grab the event definitions and monitor layout the first time around
if i == 0:
events = output['events']
monitors = output['monitors']
if options.perf_warmup and i == 0:
continue
for metric in output['metrics']:
name = metric['name']
if not name in metric_summaries:
summary = {}
summary['description'] = metric['description']
summary['units'] = metric['units']
summary['values'] = []
metric_summaries[name] = summary
else:
summary = metric_summaries[name]
summary['values'].append(metric['value'])
logs.append(output['log'])
stop_perf_helper()
if options.perf_output or options.perf_upload:
# Write a complete report, formatted as JSON. The Javascript/C code that
# generates the individual reports we are summarizing here is very careful
# to format them nicely, but we just dump out a compressed no-whitespace
# version here for simplicity. Using json.dump(indent=0) doesn't real
# improve the readability of the output much.
report = {
'date': datetime.datetime.utcnow().isoformat() + 'Z',
'events': events,
'monitors': monitors,
'metrics': metric_summaries,
'logs': logs
}
# Add the Git revision if available
self_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
if os.path.exists(os.path.join(self_dir, 'gnome-shell-jhbuild.in')):
top_dir = os.path.dirname(self_dir)
git_dir = os.path.join(top_dir, '.git')
if os.path.exists(git_dir):
env = dict(os.environ)
env['GIT_DIR'] = git_dir
revision = subprocess.Popen(['git', 'rev-parse', 'HEAD'],
env=env,
stdout=subprocess.PIPE).communicate()[0].strip()
report['revision'] = revision
if options.perf_output:
f = open(options.perf_output, 'w')
json.dump(report, f)
f.close()
if options.perf_upload:
upload_performance_report(json.dumps(report))
else:
# Write a human readable summary
print '------------------------------------------------------------';
for metric in sorted(metric_summaries.keys()):
summary = metric_summaries[metric]
print "#", summary['description']
print metric, ", ".join((str(x) for x in summary['values']))
print '------------------------------------------------------------';
return True
# Main program
parser = optparse.OptionParser()
parser.add_option("", "--perf", metavar="PERF_MODULE",
help="Specify the name of a performance module to run")
parser.add_option("", "--perf-iters", type="int", metavar="ITERS",
help="Numbers of iterations of performance module to run",
default=1)
parser.add_option("", "--perf-warmup", action="store_true",
help="Run a dry run before performance tests")
parser.add_option("", "--perf-output", metavar="OUTPUT_FILE",
help="Output file to write performance report")
parser.add_option("", "--perf-upload", action="store_true",
help="Upload performance report to server")
parser.add_option("", "--version", action="callback", callback=show_version,
help="Display version and exit")
options, args = parser.parse_args()
normal_exit = run_performance_test(args)
if normal_exit:
sys.exit(0)
else:
sys.exit(1)

@ -40,9 +40,6 @@
#include "shell-perf-log.h" #include "shell-perf-log.h"
#include "shell-wm-private.h" #include "shell-wm-private.h"
static void gnome_shell_plugin_dispose (GObject *object);
static void gnome_shell_plugin_finalize (GObject *object);
static void gnome_shell_plugin_start (MetaPlugin *plugin); static void gnome_shell_plugin_start (MetaPlugin *plugin);
static void gnome_shell_plugin_minimize (MetaPlugin *plugin, static void gnome_shell_plugin_minimize (MetaPlugin *plugin,
MetaWindowActor *actor); MetaWindowActor *actor);
@ -115,12 +112,8 @@ G_DEFINE_TYPE (GnomeShellPlugin, gnome_shell_plugin, META_TYPE_PLUGIN)
static void static void
gnome_shell_plugin_class_init (GnomeShellPluginClass *klass) gnome_shell_plugin_class_init (GnomeShellPluginClass *klass)
{ {
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
MetaPluginClass *plugin_class = META_PLUGIN_CLASS (klass); MetaPluginClass *plugin_class = META_PLUGIN_CLASS (klass);
gobject_class->dispose = gnome_shell_plugin_dispose;
gobject_class->finalize = gnome_shell_plugin_finalize;
plugin_class->start = gnome_shell_plugin_start; plugin_class->start = gnome_shell_plugin_start;
plugin_class->map = gnome_shell_plugin_map; plugin_class->map = gnome_shell_plugin_map;
plugin_class->minimize = gnome_shell_plugin_minimize; plugin_class->minimize = gnome_shell_plugin_minimize;
@ -202,18 +195,6 @@ gnome_shell_plugin_start (MetaPlugin *plugin)
} }
} }
static void
gnome_shell_plugin_dispose (GObject *object)
{
G_OBJECT_CLASS(gnome_shell_plugin_parent_class)->dispose (object);
}
static void
gnome_shell_plugin_finalize (GObject *object)
{
G_OBJECT_CLASS(gnome_shell_plugin_parent_class)->finalize (object);
}
static ShellWM * static ShellWM *
get_shell_wm (void) get_shell_wm (void)
{ {

@ -608,6 +608,42 @@ shell_app_system_lookup_heuristic_basename (ShellAppSystem *system,
return NULL; return NULL;
} }
/**
* shell_app_system_lookup_wmclass:
* @system: a #ShellAppSystem
* @wmclass: A WM_CLASS value
*
* Find a valid application corresponding to a WM_CLASS value.
*
* Returns: (transfer none): A #ShellApp for @wmclass
*/
ShellApp *
shell_app_system_lookup_wmclass (ShellAppSystem *system,
const char *wmclass)
{
char *canonicalized;
char *desktop_file;
ShellApp *app;
if (wmclass == NULL)
return NULL;
canonicalized = g_ascii_strdown (wmclass, -1);
/* This handles "Fedora Eclipse", probably others.
* Note g_strdelimit is modify-in-place. */
g_strdelimit (canonicalized, " ", '-');
desktop_file = g_strconcat (canonicalized, ".desktop", NULL);
app = shell_app_system_lookup_heuristic_basename (system, desktop_file);
g_free (canonicalized);
g_free (desktop_file);
return app;
}
/** /**
* shell_app_system_get_all: * shell_app_system_get_all:
* @system: * @system:

@ -49,7 +49,8 @@ ShellApp *shell_app_system_lookup_app_for_path (ShellAppSystem *
const char *desktop_path); const char *desktop_path);
ShellApp *shell_app_system_lookup_heuristic_basename (ShellAppSystem *system, ShellApp *shell_app_system_lookup_heuristic_basename (ShellAppSystem *system,
const char *id); const char *id);
ShellApp *shell_app_system_lookup_wmclass (ShellAppSystem *system,
const char *wmclass);
GSList *shell_app_system_get_all (ShellAppSystem *system); GSList *shell_app_system_get_all (ShellAppSystem *system);

@ -409,6 +409,7 @@ shell_network_agent_set_password (ShellNetworkAgent *self,
priv = self->priv; priv = self->priv;
request = g_hash_table_lookup (priv->requests, request_id); request = g_hash_table_lookup (priv->requests, request_id);
g_return_if_fail (request != NULL);
if (!request->is_vpn) if (!request->is_vpn)
{ {
@ -438,6 +439,7 @@ shell_network_agent_respond (ShellNetworkAgent *self,
priv = self->priv; priv = self->priv;
request = g_hash_table_lookup (priv->requests, request_id); request = g_hash_table_lookup (priv->requests, request_id);
g_return_if_fail (request != NULL);
if (response == SHELL_NETWORK_AGENT_USER_CANCELED) if (response == SHELL_NETWORK_AGENT_USER_CANCELED)
{ {
@ -491,10 +493,20 @@ shell_network_agent_cancel_get_secrets (NMSecretAgent *agent,
gchar *request_id = g_strdup_printf ("%s/%s", connection_path, setting_name); gchar *request_id = g_strdup_printf ("%s/%s", connection_path, setting_name);
ShellAgentRequest *request = g_hash_table_lookup (priv->requests, request_id); ShellAgentRequest *request = g_hash_table_lookup (priv->requests, request_id);
GError *error;
GError *error = g_error_new (NM_SECRET_AGENT_ERROR, if (!request)
NM_SECRET_AGENT_ERROR_AGENT_CANCELED, {
"Canceled by NetworkManager"); /* We've already sent the result, but the caller cancelled the
* operation before receiving that result.
*/
g_free (request_id);
return;
}
error = g_error_new (NM_SECRET_AGENT_ERROR,
NM_SECRET_AGENT_ERROR_AGENT_CANCELED,
"Canceled by NetworkManager");
request->callback (agent, request->connection, NULL, error, request->callback_data); request->callback (agent, request->connection, NULL, error, request->callback_data);
g_signal_emit (self, signals[SIGNAL_CANCEL_REQUEST], 0, request_id); g_signal_emit (self, signals[SIGNAL_CANCEL_REQUEST], 0, request_id);

@ -126,30 +126,6 @@ shell_window_tracker_class_init (ShellWindowTrackerClass *klass)
G_TYPE_NONE, 0); G_TYPE_NONE, 0);
} }
/**
* get_appid_from_window:
*
* Turn the WM_CLASS property into our best guess at a .desktop file id.
*/
static char *
get_appid_from_window (MetaWindow *window)
{
const char *wmclass;
char *appid_guess;
wmclass = meta_window_get_wm_class (window);
if (!wmclass)
return NULL;
appid_guess = g_ascii_strdown (wmclass, -1);
/* This handles "Fedora Eclipse", probably others.
* Note g_strdelimit is modify-in-place. */
g_strdelimit (appid_guess, " ", '-');
return appid_guess;
}
/** /**
* shell_window_tracker_is_window_interesting: * shell_window_tracker_is_window_interesting:
* *
@ -201,40 +177,6 @@ shell_window_tracker_is_window_interesting (MetaWindow *window)
return TRUE; return TRUE;
} }
/**
* get_app_from_window_wmclass:
*
* Looks only at the given window, and attempts to determine
* an application based on WM_CLASS. If one can't be determined,
* return %NULL.
*
* Return value: (transfer full): A newly-referenced #ShellApp, or %NULL
*/
static ShellApp *
get_app_from_window_wmclass (MetaWindow *window)
{
ShellApp *app;
ShellAppSystem *appsys;
char *wmclass;
char *with_desktop;
appsys = shell_app_system_get_default ();
wmclass = get_appid_from_window (window);
if (!wmclass)
return NULL;
with_desktop = g_strjoin (NULL, wmclass, ".desktop", NULL);
g_free (wmclass);
app = shell_app_system_lookup_heuristic_basename (appsys, with_desktop);
if (app != NULL)
g_object_ref (app);
g_free (with_desktop);
return app;
}
/** /**
* get_app_from_window_group: * get_app_from_window_group:
* @monitor: a #ShellWindowTracker * @monitor: a #ShellWindowTracker
@ -328,9 +270,12 @@ static ShellApp *
get_app_for_window (ShellWindowTracker *tracker, get_app_for_window (ShellWindowTracker *tracker,
MetaWindow *window) MetaWindow *window)
{ {
ShellAppSystem *app_system;
ShellApp *result = NULL; ShellApp *result = NULL;
const char *startup_id; const char *startup_id;
app_system = shell_app_system_get_default ();
/* First, we check whether we already know about this window, /* First, we check whether we already know about this window,
* if so, just return that. * if so, just return that.
*/ */
@ -351,7 +296,8 @@ get_app_for_window (ShellWindowTracker *tracker,
/* Check if the app's WM_CLASS specifies an app; this is /* Check if the app's WM_CLASS specifies an app; this is
* canonical if it does. * canonical if it does.
*/ */
result = get_app_from_window_wmclass (window); result = shell_app_system_lookup_wmclass (app_system,
meta_window_get_wm_class (window));
if (result != NULL) if (result != NULL)
return result; return result;

@ -85,23 +85,11 @@ st_bin_remove (ClutterContainer *container,
st_bin_set_child (ST_BIN (container), NULL); st_bin_set_child (ST_BIN (container), NULL);
} }
static void
st_bin_foreach (ClutterContainer *container,
ClutterCallback callback,
gpointer user_data)
{
StBinPrivate *priv = ST_BIN (container)->priv;
if (priv->child)
callback (priv->child, user_data);
}
static void static void
clutter_container_iface_init (ClutterContainerIface *iface) clutter_container_iface_init (ClutterContainerIface *iface)
{ {
iface->add = st_bin_add; iface->add = st_bin_add;
iface->remove = st_bin_remove; iface->remove = st_bin_remove;
iface->foreach = st_bin_foreach;
} }
static void static void

@ -444,14 +444,12 @@ st_scroll_bar_scroll_event (ClutterActor *actor,
ClutterScrollEvent *event) ClutterScrollEvent *event)
{ {
StScrollBarPrivate *priv = ST_SCROLL_BAR (actor)->priv; StScrollBarPrivate *priv = ST_SCROLL_BAR (actor)->priv;
gdouble lower, step, upper, value, delta_x, delta_y; gdouble step, value, delta_x, delta_y;
if (priv->adjustment) if (priv->adjustment)
{ {
g_object_get (priv->adjustment, g_object_get (priv->adjustment,
"lower", &lower,
"step-increment", &step, "step-increment", &step,
"upper", &upper,
"value", &value, "value", &value,
NULL); NULL);
} }
@ -472,17 +470,11 @@ st_scroll_bar_scroll_event (ClutterActor *actor,
break; break;
case CLUTTER_SCROLL_UP: case CLUTTER_SCROLL_UP:
case CLUTTER_SCROLL_LEFT: case CLUTTER_SCROLL_LEFT:
if (value == lower) st_adjustment_set_value (priv->adjustment, value - step);
return FALSE;
else
st_adjustment_set_value (priv->adjustment, value - step);
break; break;
case CLUTTER_SCROLL_DOWN: case CLUTTER_SCROLL_DOWN:
case CLUTTER_SCROLL_RIGHT: case CLUTTER_SCROLL_RIGHT:
if (value == upper) st_adjustment_set_value (priv->adjustment, value + step);
return FALSE;
else
st_adjustment_set_value (priv->adjustment, value + step);
break; break;
} }

@ -687,7 +687,7 @@ st_scroll_view_scroll_event (ClutterActor *self,
ClutterScrollEvent *event) ClutterScrollEvent *event)
{ {
StScrollViewPrivate *priv = ST_SCROLL_VIEW (self)->priv; StScrollViewPrivate *priv = ST_SCROLL_VIEW (self)->priv;
gdouble lower, value, upper, step, hvalue, vvalue, delta_x, delta_y; gdouble value, step, hvalue, vvalue, delta_x, delta_y;
/* don't handle scroll events if requested not to */ /* don't handle scroll events if requested not to */
if (!priv->mouse_scroll) if (!priv->mouse_scroll)
@ -708,19 +708,15 @@ st_scroll_view_scroll_event (ClutterActor *self,
case CLUTTER_SCROLL_UP: case CLUTTER_SCROLL_UP:
case CLUTTER_SCROLL_DOWN: case CLUTTER_SCROLL_DOWN:
g_object_get (priv->vadjustment, g_object_get (priv->vadjustment,
"lower", &lower,
"step-increment", &step, "step-increment", &step,
"value", &value, "value", &value,
"upper", &upper,
NULL); NULL);
break; break;
case CLUTTER_SCROLL_LEFT: case CLUTTER_SCROLL_LEFT:
case CLUTTER_SCROLL_RIGHT: case CLUTTER_SCROLL_RIGHT:
g_object_get (priv->hadjustment, g_object_get (priv->hadjustment,
"lower", &lower,
"step-increment", &step, "step-increment", &step,
"value", &value, "value", &value,
"upper", &upper,
NULL); NULL);
break; break;
} }
@ -732,28 +728,16 @@ st_scroll_view_scroll_event (ClutterActor *self,
st_adjustment_set_value (priv->vadjustment, vvalue + delta_y); st_adjustment_set_value (priv->vadjustment, vvalue + delta_y);
break; break;
case CLUTTER_SCROLL_UP: case CLUTTER_SCROLL_UP:
if (value == lower) st_adjustment_set_value (priv->vadjustment, value - step);
return FALSE;
else
st_adjustment_set_value (priv->vadjustment, value - step);
break; break;
case CLUTTER_SCROLL_DOWN: case CLUTTER_SCROLL_DOWN:
if (value == upper) st_adjustment_set_value (priv->vadjustment, value + step);
return FALSE;
else
st_adjustment_set_value (priv->vadjustment, value + step);
break; break;
case CLUTTER_SCROLL_LEFT: case CLUTTER_SCROLL_LEFT:
if (value == lower) st_adjustment_set_value (priv->hadjustment, value - step);
return FALSE;
else
st_adjustment_set_value (priv->hadjustment, value - step);
break; break;
case CLUTTER_SCROLL_RIGHT: case CLUTTER_SCROLL_RIGHT:
if (value == upper) st_adjustment_set_value (priv->hadjustment, value + step);
return FALSE;
else
st_adjustment_set_value (priv->hadjustment, value + step);
break; break;
} }

@ -1782,7 +1782,7 @@ st_theme_node_paint_sliced_border_image (StThemeNode *node,
cogl_set_source (material); cogl_set_source (material);
{ {
GLfloat rectangles[] = float rectangles[] =
{ {
/* top left corner */ /* top left corner */
0, 0, border_left, border_top, 0, 0, border_left, border_top,

@ -7,12 +7,19 @@
/* Very simple test of the ShellRecorder class; shows some text strings /* Very simple test of the ShellRecorder class; shows some text strings
* moving around and records it. * moving around and records it.
*/ */
static ShellRecorder *recorder; static ShellRecorder *recorder = NULL;
static gboolean static gboolean
stop_recording_timeout (gpointer data) stop_recording_timeout (gpointer data)
{ {
shell_recorder_close (recorder); if (recorder)
{
shell_recorder_close (recorder);
g_object_unref (recorder);
}
clutter_main_quit ();
return FALSE; return FALSE;
} }
@ -22,6 +29,15 @@ on_animation_completed (ClutterAnimation *animation)
g_timeout_add (1000, stop_recording_timeout, NULL); g_timeout_add (1000, stop_recording_timeout, NULL);
} }
static void
on_stage_realized (ClutterActor *stage,
gpointer data)
{
recorder = shell_recorder_new (CLUTTER_STAGE (stage));
shell_recorder_set_filename (recorder, "test-recorder.ogg");
shell_recorder_record (recorder);
}
int main (int argc, char **argv) int main (int argc, char **argv)
{ {
ClutterActor *stage; ClutterActor *stage;
@ -48,8 +64,8 @@ int main (int argc, char **argv)
animation = clutter_actor_animate (text, animation = clutter_actor_animate (text,
CLUTTER_EASE_IN_OUT_QUAD, CLUTTER_EASE_IN_OUT_QUAD,
3000, 3000,
"x", 320, "x", 320.0,
"y", 240, "y", 240.0,
NULL); NULL);
g_signal_connect (animation, "completed", g_signal_connect (animation, "completed",
G_CALLBACK (on_animation_completed), NULL); G_CALLBACK (on_animation_completed), NULL);
@ -58,41 +74,42 @@ int main (int argc, char **argv)
"text", "Blue", "text", "Blue",
"font-name", "Sans 40px", "font-name", "Sans 40px",
"color", &blue, "color", &blue,
"x", 640, "x", 640.0,
"y", 0, "y", 0.0,
NULL); NULL);
clutter_actor_set_anchor_point_from_gravity (text, CLUTTER_GRAVITY_NORTH_EAST); clutter_actor_set_anchor_point_from_gravity (text, CLUTTER_GRAVITY_NORTH_EAST);
clutter_actor_add_child (stage, text); clutter_actor_add_child (stage, text);
animation = clutter_actor_animate (text, animation = clutter_actor_animate (text,
CLUTTER_EASE_IN_OUT_QUAD, CLUTTER_EASE_IN_OUT_QUAD,
3000, 3000,
"x", 320, "x", 320.0,
"y", 240, "y", 240.0,
NULL); NULL);
text = g_object_new (CLUTTER_TYPE_TEXT, text = g_object_new (CLUTTER_TYPE_TEXT,
"text", "Green", "text", "Green",
"font-name", "Sans 40px", "font-name", "Sans 40px",
"color", &green, "color", &green,
"x", 0, "x", 0.0,
"y", 480, "y", 480.0,
NULL); NULL);
clutter_actor_set_anchor_point_from_gravity (text, CLUTTER_GRAVITY_SOUTH_WEST); clutter_actor_set_anchor_point_from_gravity (text, CLUTTER_GRAVITY_SOUTH_WEST);
clutter_actor_add_child (stage, text); clutter_actor_add_child (stage, text);
animation = clutter_actor_animate (text, animation = clutter_actor_animate (text,
CLUTTER_EASE_IN_OUT_QUAD, CLUTTER_EASE_IN_OUT_QUAD,
3000, 3000,
"x", 320, "x", 320.0,
"y", 240, "y", 240.0,
NULL); NULL);
recorder = shell_recorder_new (CLUTTER_STAGE (stage)); g_signal_connect_after (stage, "realize",
shell_recorder_set_filename (recorder, "test-recorder.ogg"); G_CALLBACK (on_stage_realized), NULL);
clutter_actor_show (stage); clutter_actor_show (stage);
shell_recorder_record (recorder);
clutter_main (); clutter_main ();
g_object_unref (stage);
return 0; return 0;
} }