Compare commits

...

27 Commits

Author SHA1 Message Date
e0307bb7e0 Bump version to 3.20.3
Update NEWS.
2016-06-29 01:04:47 +02:00
550715a071 build: Fix check-for-missing for srcdir != builddir 2016-06-29 01:04:47 +02:00
faa5c179e8 Revert "windowManager: Avoid code duplication"
The change requires code changes to the AlternateTab extension,
which would then break the extension for older gnome-shell point
releases. Just keep the cleanup out of the stable branch to avoid
that breakage.

This reverts commit 74553fa95e.
2016-06-29 01:04:47 +02:00
90596b0964 theme-node: Fix leak on stylesheet change.
on_custom_stylesheet_changed() would set properties_computed to FALSE
without freeing the old properties, then the properties pointer would
be overwritten in ensure_properties().

https://bugzilla.gnome.org/show_bug.cgi?id=710230
2016-06-29 01:04:47 +02:00
8954d99659 shell-recorder: Avoid a crash when the cursor texture is NULL
When running as a wayland compositor, MetaCursorTracker might
legitimately not have a displayed cursor because e.g. a client unsets
the cursor surface.

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

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

https://bugzilla.gnome.org/show_bug.cgi?id=767001
2016-06-28 19:02:39 +02:00
23788b9e7d Updated Indonesian translation 2016-06-24 10:52:42 +00:00
5d307c9ad5 NetworkAgent: Handle VPN service aliases
A VPN plugin can support multiple services, indicated by an 'aliases' key.

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

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

See also https://bugzilla.gnome.org/show_bug.cgi?id=746664 and
https://bugzilla.gnome.org/show_bug.cgi?id=767197
2016-06-03 18:24:47 +01:00
74553fa95e windowManager: Avoid code duplication
The various switcher keybindings are handled identically, except for
the popup that is shown; update the code to reflect that instead of
duplicating the code again and again.

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

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

https://bugzilla.gnome.org/show_bug.cgi?id=764898
2016-05-17 17:21:32 +02:00
3bbf681385 Updated Icelandic translation 2016-05-14 22:23:50 +00:00
ae6256ba16 app: Consider minimized windows for app comparisons
We used to take window visibility into account when comparing apps
until commit 1dfc38d078, following changes in the window switcher
due to auto-minimization. However auto-minimization was abolished
and the window switcher changes reverted, so it makes sense again
to sort apps without non-minimized windows last again.

https://bugzilla.gnome.org/show_bug.cgi?id=766238
2016-05-11 16:34:44 +02:00
3cf2e1ad8b Bump version to 3.20.2
Update NEWS.
2016-05-10 22:21:02 +02:00
d756e2eefb Updated Norwegian bokmål translation. 2016-05-03 23:35:50 +02:00
ea27ed8c55 Updated Portuguese translation 2016-04-30 15:48:52 +00:00
1883df2927 dnd: Cancel the animation on drag actor destruction
If the drag actor is destroyed before the animation
callback is called, the callback is never called and
we're sticked with dnd grabing the events after we
dropped the target.

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

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

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

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

https://bugzilla.gnome.org/show_bug.cgi?id=765015
2016-04-13 21:25:31 +02:00
24 changed files with 1709 additions and 972 deletions

30
NEWS
View File

@ -1,3 +1,33 @@
3.20.3
======
* Fix sorting of hidden apps in app switcher [Florian; #766238]
* Allocate framebuffers early to fix a crash on NVIDIA [Martin; #764898]
* Fix cycle-windows/cycle-group keybindings [Florian; #730739]
* networkAgent: Handle VPN service aliases [David; #658484]
* Fix crash when using screen recorder under wayland [Rui; #767001]
* Plug a memory leak [Hans; #710230]
Contributors:
Rui Matos, Florian Müllner, Hans Petter Jansson, Martin Szulecki,
David Woodhouse
Translations:
Sveinn í Felli [is], Andika Triwidada [id]
3.20.2
======
* Save screencasts in HOME if XDG_VIDEO_DIR doesn't exist [Florian; #765015]
* Don't show orientation lock when g-s-d won't rotate [Florian; #765267]
* Misc. bug fixes [Heiher, Florian, Marek; #722752, #765061, #763068, #765607,
#757676]
Contributors:
Heiher, Marek Chalupa, Florian Müllner
Translations:
Arash Mousavi [fa], Kristjan SCHMIDT [eo], Tiago Santos [pt],
Kjartan Maraas [nb]
3.20.1
======
* Plug a memory leak [Aaron; #735705]

View File

@ -1,5 +1,5 @@
AC_PREREQ(2.63)
AC_INIT([gnome-shell],[3.20.1],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AC_INIT([gnome-shell],[3.20.3],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AX_IS_RELEASE([git-directory])
AC_CONFIG_HEADERS([config.h])
@ -77,7 +77,7 @@ AC_MSG_RESULT($enable_systemd)
CLUTTER_MIN_VERSION=1.21.5
GOBJECT_INTROSPECTION_MIN_VERSION=1.45.4
GJS_MIN_VERSION=1.39.0
MUTTER_MIN_VERSION=3.20.0
MUTTER_MIN_VERSION=3.20.2
GTK_MIN_VERSION=3.15.0
GIO_MIN_VERSION=2.45.3
LIBECAL_MIN_VERSION=3.5.3

View File

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

View File

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

View File

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

View File

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

View File

@ -6,6 +6,7 @@ const Gdm = imports.gi.Gdm;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Lang = imports.lang;
const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
@ -110,6 +111,7 @@ const Indicator = new Lang.Class({
this._session = new GnomeSession.SessionManager();
this._loginManager = LoginManager.getLoginManager();
this._monitorManager = Meta.MonitorManager.get();
this._haveShutdown = true;
this._haveSuspend = true;
@ -155,6 +157,8 @@ const Indicator = new Lang.Class({
this._orientationSettings.connect('changed::orientation-lock',
Lang.bind(this, this._updateOrientationLock));
Main.layoutManager.connect('monitors-changed',
Lang.bind(this, this._updateOrientationLock));
Gio.DBus.system.watch_name(SENSOR_BUS_NAME,
Gio.BusNameWatcherFlags.NONE,
Lang.bind(this, this._sensorProxyAppeared),
@ -264,7 +268,8 @@ const Indicator = new Lang.Class({
_updateOrientationLock: function() {
if (this._sensorProxy)
this._orientationLockAction.visible = this._sensorProxy.HasAccelerometer;
this._orientationLockAction.visible = this._sensorProxy.HasAccelerometer &&
this._monitorManager.get_is_builtin_display_on();
else
this._orientationLockAction.visible = false;

View File

@ -866,6 +866,18 @@ const WindowManager = new Lang.Class({
this.setCustomKeybindingHandler('switch-windows-backward',
Shell.ActionMode.NORMAL,
Lang.bind(this, this._startWindowSwitcher));
this.setCustomKeybindingHandler('cycle-windows',
Shell.ActionMode.NORMAL,
Lang.bind(this, this._startWindowCycler));
this.setCustomKeybindingHandler('cycle-windows-backward',
Shell.ActionMode.NORMAL,
Lang.bind(this, this._startWindowCycler));
this.setCustomKeybindingHandler('cycle-group',
Shell.ActionMode.NORMAL,
Lang.bind(this, this._startGroupCycler));
this.setCustomKeybindingHandler('cycle-group-backward',
Shell.ActionMode.NORMAL,
Lang.bind(this, this._startGroupCycler));
this.setCustomKeybindingHandler('switch-panels',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW |
@ -1766,6 +1778,28 @@ const WindowManager = new Lang.Class({
tabPopup.destroy();
},
_startWindowCycler : function(display, screen, window, binding) {
/* prevent a corner case where both popups show up at once */
if (this._workspaceSwitcherPopup != null)
this._workspaceSwitcherPopup.destroy();
let tabPopup = new AltTab.WindowCyclerPopup();
if (!tabPopup.show(binding.is_reversed(), binding.get_name(), binding.get_mask()))
tabPopup.destroy();
},
_startGroupCycler : function(display, screen, window, binding) {
/* prevent a corner case where both popups show up at once */
if (this._workspaceSwitcherPopup != null)
this._workspaceSwitcherPopup.destroy();
let tabPopup = new AltTab.GroupCyclerPopup();
if (!tabPopup.show(binding.is_reversed(), binding.get_name(), binding.get_mask()))
tabPopup.destroy();
},
_startA11ySwitcher : function(display, screen, window, binding) {
Main.ctrlAltTabManager.popup(binding.is_reversed(), binding.get_name(), binding.get_mask());
},

View File

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

423
po/eo.po

File diff suppressed because it is too large Load Diff

246
po/fa.po
View File

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

330
po/id.po
View File

@ -7,12 +7,12 @@
# Wibiharto <wibinem@yahoo.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell gnome-3-18\n"
"Project-Id-Version: gnome-shell gnome-3-20\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2016-01-02 10:15+0000\n"
"PO-Revision-Date: 2016-01-02 19:12+0700\n"
"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
"POT-Creation-Date: 2016-05-10 20:28+0000\n"
"PO-Revision-Date: 2016-06-24 17:51+0700\n"
"Last-Translator: Andika Triwidada <atriwidada@gnome.org>\n"
"Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n"
"Language: id\n"
"MIME-Version: 1.0\n"
@ -20,7 +20,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Generator: Poedit 1.8.4\n"
"X-Generator: Poedit 1.6.10\n"
#: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System"
@ -46,15 +46,6 @@ msgstr "Tampilkan semua aplikasi"
msgid "Open the application menu"
msgstr "Buka menu aplikasi"
#: ../data/gnome-shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "GNOME Shell"
#: ../data/gnome-shell.desktop.in.in.h:2
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Manajemen jendela dan peluncuran aplikasi"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences"
msgstr "Preferensi Ekstensi GNOME Shell"
@ -63,9 +54,13 @@ msgstr "Preferensi Ekstensi GNOME Shell"
msgid "Configure GNOME Shell Extensions"
msgstr "Konfigurasi Ekstensi GNOME Shell"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)"
msgstr "GNOME Shell (kompositor wayland)"
#: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "GNOME Shell"
#: ../data/org.gnome.Shell.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Manajemen jendela dan peluncuran aplikasi"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -173,76 +168,95 @@ msgstr ""
"menata keadaan baku dari kontak contreng."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
"Apakah adapter Bluetooth baku telah menyiapkan perangkat yang terasosiasi "
"dengannya"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
"powered, or if there were devices set up associated with the default "
"adapter. This will be reset if the default adapter is ever seen not to have "
"devices associated to it."
msgstr ""
"Shell hanya akan menampilkan butir menu Bluetooth bila sebuah adapter "
"Bluetooth dinyalakan, atau ada perangkat yang telah disiapkan terasosiasi "
"dengan adapter baku. Ini akan di-reset bila adapter baku pernah terlihat "
"tidak punya perangkat yang terasosiasi dengannya."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar"
msgstr "Menampilkan tanggal pada kalender"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "If true, display the ISO week date in the calendar."
msgstr "Jika \"true\", menampilkan tanggal berformat ISO pada kalender."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the application menu"
msgstr "Kombinasi tombol untuk membuka menu aplikasi"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
msgid "Keybinding to open the application menu."
msgstr "Kombinasi tombol untuk membuka menu aplikasi."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Kombinasi tombol untuk membuka tilikan \"Tampilkan Aplikasi\""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr ""
"Kombinasi tombol untuk membuka tilikan Ringkasan Aktivitas \"Tampilkan "
"Aplikasi\"."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to open the overview"
msgstr "Kombinasi tombol untuk membuka ringkasan"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to open the Activities Overview."
msgstr "Kombinasi tombol untuk membuka Ringkasan Aktivitas."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to toggle the visibility of the notification list"
msgstr "Kombinasi tombol untuk kenampakan daftar pemberitahuan"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to toggle the visibility of the notification list."
msgstr "Kombinasi tombol untuk kenampakan daftar pemberitahuan."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid "Keybinding to focus the active notification"
msgstr "Kombinasi tombol untuk fokus pada pemberitahuan yang aktif"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Keybinding to focus the active notification."
msgstr "Kombinasi tombol untuk fokus pada pemberitahuan yang aktif."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr ""
"Pengikatan tombol yang mengistirahatkan dan melanjutkan semua tween yang "
"sedang berjalan, untuk tujuan pengawakutuan."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Which keyboard to use"
msgstr "Papan tik mana yang akan dipakai"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid "The type of keyboard to use."
msgstr "Jenis papan tik yang akan dipakai."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "Limit switcher to current workspace."
msgstr "Batasi pengalih ke ruang kerja saat ini."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid ""
"If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included."
@ -250,11 +264,11 @@ msgstr ""
"Bila berisi true, hanya aplikasi yang punya jendela pada ruang kerja saat "
"ini ditampilkan pada penukar. Bila tidak, semua aplikasi disertakan."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "The application icon mode."
msgstr "Mode ikon aplikasi."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
@ -264,7 +278,7 @@ msgstr ""
"adalah 'thumbnail-only' (menampilkan gambar mini dari jendela), 'app-icon-"
"only' (hanya menampilkan ikon aplikasi), atau 'both' (keduanya)."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
@ -272,31 +286,31 @@ msgstr ""
"Bila berisi true, hanya jendela dari ruang kerja saat ini ditampilkan pada "
"penukar. Bila tidak, semua jendela disertakan."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Attach modal dialog to the parent window"
msgstr "Mencantolkan dialog modal ke jendela induk"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Kunci ini menimpa kunci dalam org.gnome.mutter ketika menjalankan GNOME "
"Shell."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
"Memfungsikan pengubinan tepi ketika menjatuhkan jendela pada tepi layar"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
msgid "Workspaces are managed dynamically"
msgstr "Ruang kerja dikelola secara dinamis"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
msgid "Workspaces only on primary monitor"
msgstr "Ruang kerja hanya pada monitor primer"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr ""
"Tunda perubahan fokus dalam mode tetikus sampai penunjuk berhenti bergerak"
@ -305,33 +319,34 @@ msgstr ""
msgid "Network Login"
msgstr "Log Masuk Jaringan"
#: ../js/extensionPrefs/main.js:122
#: ../js/extensionPrefs/main.js:117
#, javascript-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "Ada galat saat memuat dialog preferensi bagi %s:"
#: ../js/extensionPrefs/main.js:154
#: ../js/extensionPrefs/main.js:149
msgid "GNOME Shell Extensions"
msgstr "Ekstensi GNOME Shell"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916
msgid "Cancel"
msgstr "Batal"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:447
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:448
msgid "Next"
msgstr "Selanjutnya"
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59
msgid "Unlock"
msgstr "Buka Kunci"
#: ../js/gdm/authPrompt.js:213
#: ../js/gdm/authPrompt.js:214
msgctxt "button"
msgid "Sign In"
msgstr "Masuk"
@ -498,16 +513,36 @@ msgstr "Tambah ke Favorit"
msgid "Show Details"
msgstr "Tampilkan Rincian"
#: ../js/ui/appFavorites.js:132
#: ../js/ui/appFavorites.js:134
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s telah ditambahkan ke favorit Anda."
#: ../js/ui/appFavorites.js:166
#: ../js/ui/appFavorites.js:168
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s telah dihapus dari favorit Anda."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Pilih Perangkat Audio"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "Pengaturan Suara"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Headphone"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Headset"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/backgroundMenu.js:19
msgid "Change Background…"
msgstr "Ubah Latar…"
@ -516,12 +551,12 @@ msgstr "Ubah Latar…"
msgid "Display Settings"
msgstr "Pengaturan Tampilan"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:371
msgid "Settings"
msgstr "Pengaturan"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:55
#: ../js/ui/calendar.js:47
msgctxt "calendar-no-work"
msgid "06"
msgstr "06"
@ -531,94 +566,96 @@ msgstr "06"
#. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S".
#.
#: ../js/ui/calendar.js:84
#: ../js/ui/calendar.js:76
msgctxt "grid sunday"
msgid "S"
msgstr "M"
#. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:86
#: ../js/ui/calendar.js:78
msgctxt "grid monday"
msgid "M"
msgstr "S"
#. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:88
#: ../js/ui/calendar.js:80
msgctxt "grid tuesday"
msgid "T"
msgstr "S"
#. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:90
#: ../js/ui/calendar.js:82
msgctxt "grid wednesday"
msgid "W"
msgstr "R"
#. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:92
#: ../js/ui/calendar.js:84
msgctxt "grid thursday"
msgid "T"
msgstr "K"
#. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:94
#: ../js/ui/calendar.js:86
msgctxt "grid friday"
msgid "F"
msgstr "J"
#. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:96
#: ../js/ui/calendar.js:88
msgctxt "grid saturday"
msgid "S"
msgstr "S"
#: ../js/ui/calendar.js:566
#: ../js/ui/calendar.js:416
msgid "Previous month"
msgstr "Bulan sebelumnya"
#: ../js/ui/calendar.js:576
#: ../js/ui/calendar.js:426
msgid "Next month"
msgstr "Bulan selanjutnya"
#: ../js/ui/calendar.js:783
#: ../js/ui/calendar.js:579
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:634
msgid "Week %V"
msgstr "Minggu %V"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
#: ../js/ui/calendar.js:1188
#: ../js/ui/calendar.js:695
msgctxt "event list time"
msgid "All Day"
msgstr "Sepanjang Hari"
#: ../js/ui/calendar.js:1295
msgid "Clear section"
msgstr "Bersihkan seksi"
#: ../js/ui/calendar.js:1522
#: ../js/ui/calendar.js:821
msgid "Events"
msgstr "Kejadian"
#: ../js/ui/calendar.js:1531
#: ../js/ui/calendar.js:830
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %d %B"
#: ../js/ui/calendar.js:1535
#: ../js/ui/calendar.js:834
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d %B %Y"
#: ../js/ui/calendar.js:1620
#: ../js/ui/calendar.js:919
msgid "Notifications"
msgstr "Pemberitahuan"
#: ../js/ui/calendar.js:1771
#: ../js/ui/calendar.js:1070
msgid "No Notifications"
msgstr "Tak Ada Pemberitahuan"
#: ../js/ui/calendar.js:1774
#: ../js/ui/calendar.js:1073
msgid "No Events"
msgstr "Tak Ada Kejadian"
@ -630,7 +667,7 @@ msgstr "Drive eksternal tersambung"
msgid "External drive disconnected"
msgstr "Drive eksternal terputus"
#: ../js/ui/components/autorunManager.js:351
#: ../js/ui/components/autorunManager.js:355
#, javascript-format
msgid "Open with %s"
msgstr "Buka dengan %s"
@ -756,7 +793,7 @@ msgstr "Maaf, tidak berhasil. Silakan coba lagi."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/components/telepathyClient.js:759
#: ../js/ui/components/telepathyClient.js:760
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s sekarang dikenal sebagai %s"
@ -936,11 +973,11 @@ msgid "Keyboard"
msgstr "Papan Ketik"
#. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66
#: ../js/ui/legacyTray.js:65
msgid "Hide tray"
msgstr "Sembunyikan baki"
#: ../js/ui/legacyTray.js:107
#: ../js/ui/legacyTray.js:106
msgid "Status Icons"
msgstr "Ikon Status"
@ -968,7 +1005,7 @@ msgstr "Diaktifkan"
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1866
msgid "Disabled"
msgstr "Dinonaktifkan"
@ -992,10 +1029,26 @@ msgstr "Tilik Sumber"
msgid "Web Page"
msgstr "Halaman Web"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Bersihkan seksi"
#: ../js/ui/messageTray.js:1486
msgid "System Information"
msgstr "Informasi Sistem"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Artis tak dikenal"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "Judul tak dikenal"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Media"
#: ../js/ui/overview.js:84
msgid "Undo"
msgstr "Batal"
@ -1041,15 +1094,15 @@ msgstr "Bar Atas"
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:70
#: ../js/ui/runDialog.js:71
msgid "Enter a Command"
msgstr "Ketikkan Perintah"
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
msgid "Close"
msgstr "Tutup"
#: ../js/ui/runDialog.js:281
#: ../js/ui/runDialog.js:282
msgid "Restarting…"
msgstr "Memulai ulang..."
@ -1071,7 +1124,7 @@ msgid "%d new notification"
msgid_plural "%d new notifications"
msgstr[0] "%d pemberitahuan baru"
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:374
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:379
msgid "Lock"
msgstr "Kunci"
@ -1170,28 +1223,40 @@ msgstr "Kontras Tinggi"
msgid "Large Text"
msgstr "Teks Besar"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Matikan"
#: ../js/ui/status/bluetooth.js:47
msgid "Bluetooth"
msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:54
#: ../js/ui/status/bluetooth.js:56
msgid "Bluetooth Settings"
msgstr "Pengaturan Bluetooth"
#. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:105
#: ../js/ui/status/bluetooth.js:136
#, javascript-format
msgid "%d Connected"
msgid_plural "%d Connected"
msgstr[0] "%d Tersambung"
#: ../js/ui/status/bluetooth.js:107
#: ../js/ui/status/bluetooth.js:138
msgid "Off"
msgstr "Mati"
#: ../js/ui/status/bluetooth.js:140
msgid "Not In Use"
msgstr "Tidak Dipakai"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Nyalakan"
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Matikan"
#: ../js/ui/status/brightness.js:44
msgid "Brightness"
msgstr "Kecerahan"
@ -1200,30 +1265,48 @@ msgstr "Kecerahan"
msgid "Show Keyboard Layout"
msgstr "Tampilkan Tata Letak Papan Tik"
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
msgid "Location Enabled"
msgstr "Lokasi Diaktifkan"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
msgid "Disable"
msgstr "Nonaktifkan"
#: ../js/ui/status/location.js:73
#: ../js/ui/status/location.js:109
msgid "Privacy Settings"
msgstr "Pengaturan Privasi"
#: ../js/ui/status/location.js:176
#: ../js/ui/status/location.js:214
msgid "Location In Use"
msgstr "Lokasi Sedang Digunakan"
#: ../js/ui/status/location.js:180
#: ../js/ui/status/location.js:218
msgid "Location Disabled"
msgstr "Koneksi Dinonaktifkan"
#: ../js/ui/status/location.js:181
#: ../js/ui/status/location.js:219
msgid "Enable"
msgstr "Fungsikan"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Tolak Akses"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Beri Akses"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Beri %s akses ke lokasi Anda?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr "Akses lokasi dapat diubah setiap saat dari pengaturan privasi."
#: ../js/ui/status/network.js:101
msgid "<unknown>"
msgstr "<tak dikenal>"
@ -1359,10 +1442,6 @@ msgstr "Pilih Jaringan"
msgid "Wi-Fi Settings"
msgstr "Pengaturan Wi-Fi"
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Nyalakan"
#. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296
#, javascript-format
@ -1412,32 +1491,37 @@ msgstr "Koneksi gagal"
msgid "Activation of network connection failed"
msgstr "Aktivasi koneksi jaringan gagal"
#: ../js/ui/status/power.js:49
#: ../js/ui/status/power.js:61
msgid "Power Settings"
msgstr "Pengaturan Daya"
#: ../js/ui/status/power.js:65
#: ../js/ui/status/power.js:77
msgid "Fully Charged"
msgstr "Terisi Penuh"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
#: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
msgid "Estimating…"
msgstr "Memperkirakan…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86
#: ../js/ui/status/power.js:98
#, javascript-format
msgid "%d%02d Remaining (%d%%)"
msgid "%d%02d Remaining (%d%%)"
msgstr "%d:%02d Tersisa (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91
#: ../js/ui/status/power.js:103
#, javascript-format
msgid "%d%02d Until Full (%d%%)"
msgid "%d%02d Until Full (%d%%)"
msgstr "%d:%02d Sampai Penuh (%d%%)"
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
#, javascript-format
msgid "%d%%"
msgstr "%d%%"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
#. changing the menu contents.
@ -1445,27 +1529,27 @@ msgstr "%d:%02d Sampai Penuh (%d%%)"
msgid "Airplane Mode On"
msgstr "Mode Pesawat Terbang Aktif"
#: ../js/ui/status/system.js:343
#: ../js/ui/status/system.js:348
msgid "Switch User"
msgstr "Ganti Pengguna"
#: ../js/ui/status/system.js:348
#: ../js/ui/status/system.js:353
msgid "Log Out"
msgstr "Keluar"
#: ../js/ui/status/system.js:353
#: ../js/ui/status/system.js:358
msgid "Account Settings"
msgstr "Pengaturan Akun"
#: ../js/ui/status/system.js:370
#: ../js/ui/status/system.js:375
msgid "Orientation Lock"
msgstr "Kunci Orientasi"
#: ../js/ui/status/system.js:378
#: ../js/ui/status/system.js:383
msgid "Suspend"
msgstr "Suspensi"
#: ../js/ui/status/system.js:381
#: ../js/ui/status/system.js:386
msgid "Power Off"
msgstr "Matikan"
@ -1477,10 +1561,6 @@ msgstr "Volume diubah"
msgid "Volume"
msgstr "Volume"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Masuk sebagai pengguna lain"
@ -1600,7 +1680,7 @@ msgstr "Evolution Kalender"
#. translators:
#. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1835
#: ../src/gvc/gvc-mixer-control.c:1873
#, c-format
msgid "%u Output"
msgid_plural "%u Outputs"
@ -1608,13 +1688,13 @@ msgstr[0] "%u Keluaran"
#. translators:
#. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1845
#: ../src/gvc/gvc-mixer-control.c:1883
#, c-format
msgid "%u Input"
msgid_plural "%u Inputs"
msgstr[0] "%u Masukan"
#: ../src/gvc/gvc-mixer-control.c:2371
#: ../src/gvc/gvc-mixer-control.c:2738
msgid "System Sounds"
msgstr "Suara Sistem"
@ -1644,14 +1724,14 @@ msgstr "Tak dikenal"
msgid "Failed to launch “%s”"
msgstr "Gagal meluncurkan \"%s\""
#: ../src/shell-keyring-prompt.c:742
#: ../src/shell-keyring-prompt.c:730
msgid "Passwords do not match."
msgstr "Sandi tidak cocok."
#: ../src/shell-keyring-prompt.c:750
#: ../src/shell-keyring-prompt.c:738
msgid "Password cannot be blank"
msgstr "Sandi tidak boleh kosong"
#: ../src/shell-polkit-authentication-agent.c:346
#: ../src/shell-polkit-authentication-agent.c:353
msgid "Authentication dialog was dismissed by the user"
msgstr "Dialog otentikasi ditolak oleh pengguna"

866
po/is.po

File diff suppressed because it is too large Load Diff

161
po/nb.po
View File

@ -3,14 +3,14 @@
# This file is distributed under the same license as the gnome-shell package.
#
# Åka Sikrom <a4@hush.com>, 2014-2015.
# Kjartan Maraas <kmaraas@gnome.org>, 2009-2015.
# Kjartan Maraas <kmaraas@gnome.org>, 2009-2016.
# Torstein Adolf Winterseth <kvikende@fsfe.org>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell 3.19.x\n"
"Project-Id-Version: gnome-shell 3.20.x\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-01-07 22:59+0100\n"
"PO-Revision-Date: 2016-01-07 22:59+0100\n"
"POT-Creation-Date: 2016-05-03 23:34+0200\n"
"PO-Revision-Date: 2016-05-03 23:35+0200\n"
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
"Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n"
"Language: Norwegian bokmål\n"
@ -305,33 +305,34 @@ msgstr "Utsett fokusendringer i musmodus til peker slutter å bevege seg"
msgid "Network Login"
msgstr "Nettverkspålogging"
#: ../js/extensionPrefs/main.js:122
#: ../js/extensionPrefs/main.js:117
#, javascript-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "Det oppsto en feil ved lasting av brukervalgdialog for %s:"
#: ../js/extensionPrefs/main.js:154
#: ../js/extensionPrefs/main.js:149
msgid "GNOME Shell Extensions"
msgstr "Utvidelser for GNOME Shell"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916
msgid "Cancel"
msgstr "Avbryt"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:447
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:448
msgid "Next"
msgstr "Neste"
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59
msgid "Unlock"
msgstr "Lås opp"
#: ../js/gdm/authPrompt.js:213
#: ../js/gdm/authPrompt.js:214
msgctxt "button"
msgid "Sign In"
msgstr "Logg inn"
@ -498,16 +499,36 @@ msgstr "Legg til i favoritter"
msgid "Show Details"
msgstr "Vis detaljer"
#: ../js/ui/appFavorites.js:133
#: ../js/ui/appFavorites.js:134
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s ble lagt til i favoritter."
#: ../js/ui/appFavorites.js:167
#: ../js/ui/appFavorites.js:168
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s ble fjernet fra favoritter."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Velg lydenhet"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "Innstillinger for lyd"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Hodetelefoner"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Headset"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/backgroundMenu.js:19
msgid "Change Background…"
msgstr "Bytt bakgrunn …"
@ -516,12 +537,12 @@ msgstr "Bytt bakgrunn …"
msgid "Display Settings"
msgstr "Innstillinger for skjerm"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:371
msgid "Settings"
msgstr "Innstillinger"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:55
#: ../js/ui/calendar.js:47
msgctxt "calendar-no-work"
msgid "06"
msgstr "06"
@ -531,100 +552,96 @@ msgstr "06"
#. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S".
#.
#: ../js/ui/calendar.js:84
#: ../js/ui/calendar.js:76
msgctxt "grid sunday"
msgid "S"
msgstr "S"
#. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:86
#: ../js/ui/calendar.js:78
msgctxt "grid monday"
msgid "M"
msgstr "M"
#. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:88
#: ../js/ui/calendar.js:80
msgctxt "grid tuesday"
msgid "T"
msgstr "T"
#. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:90
#: ../js/ui/calendar.js:82
msgctxt "grid wednesday"
msgid "W"
msgstr "O"
#. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:92
#: ../js/ui/calendar.js:84
msgctxt "grid thursday"
msgid "T"
msgstr "T"
#. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:94
#: ../js/ui/calendar.js:86
msgctxt "grid friday"
msgid "F"
msgstr "F"
#. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:96
#: ../js/ui/calendar.js:88
msgctxt "grid saturday"
msgid "S"
msgstr "L"
#: ../js/ui/calendar.js:566
#: ../js/ui/calendar.js:416
msgid "Previous month"
msgstr "Forrige måned"
#: ../js/ui/calendar.js:576
#: ../js/ui/calendar.js:426
msgid "Next month"
msgstr "Neste måned"
#: ../js/ui/calendar.js:729
#: ../js/ui/calendar.js:579
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:784
#: ../js/ui/calendar.js:634
msgid "Week %V"
msgstr "Uke %V"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
#: ../js/ui/calendar.js:1189
#: ../js/ui/calendar.js:695
msgctxt "event list time"
msgid "All Day"
msgstr "Hele dagen"
#: ../js/ui/calendar.js:1296
msgid "Clear section"
msgstr "Tøm seksjon"
#: ../js/ui/calendar.js:1523
#: ../js/ui/calendar.js:821
msgid "Events"
msgstr "Hendelser"
#: ../js/ui/calendar.js:1532
#: ../js/ui/calendar.js:830
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A %B %d"
#: ../js/ui/calendar.js:1536
#: ../js/ui/calendar.js:834
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A %B %d, %Y"
#: ../js/ui/calendar.js:1621
#: ../js/ui/calendar.js:919
msgid "Notifications"
msgstr "Varslinger"
#: ../js/ui/calendar.js:1772
#: ../js/ui/calendar.js:1070
msgid "No Notifications"
msgstr "Ingen varslinger"
#: ../js/ui/calendar.js:1775
#: ../js/ui/calendar.js:1073
msgid "No Events"
msgstr "Ingen hendelser"
@ -762,7 +779,7 @@ msgstr "Beklager, det virket ikke. Prøv igjen."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/components/telepathyClient.js:759
#: ../js/ui/components/telepathyClient.js:760
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s er nå kjent som %s"
@ -949,11 +966,11 @@ msgid "Keyboard"
msgstr "Tastatur"
#. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66
#: ../js/ui/legacyTray.js:65
msgid "Hide tray"
msgstr "Skjul statusområde"
#: ../js/ui/legacyTray.js:107
#: ../js/ui/legacyTray.js:106
msgid "Status Icons"
msgstr "Statusikoner"
@ -1005,10 +1022,26 @@ msgstr "Vis kildekode"
msgid "Web Page"
msgstr "Nettside"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Tøm seksjon"
#: ../js/ui/messageTray.js:1486
msgid "System Information"
msgstr "Systeminformasjon"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Ukjent artist"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "Ukjent tittel"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Media"
#: ../js/ui/overview.js:84
msgid "Undo"
msgstr "Angre"
@ -1085,7 +1118,7 @@ msgid_plural "%d new notifications"
msgstr[0] "%d ny varsling"
msgstr[1] "%d nye varslinger"
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:374
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:379
msgid "Lock"
msgstr "Lås"
@ -1227,30 +1260,48 @@ msgstr "Lysstyrke"
msgid "Show Keyboard Layout"
msgstr "Vis tastaturutforming"
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
msgid "Location Enabled"
msgstr "Plassering slått på"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
msgid "Disable"
msgstr "Slå av"
#: ../js/ui/status/location.js:73
#: ../js/ui/status/location.js:109
msgid "Privacy Settings"
msgstr "Innstillinger for personvern"
#: ../js/ui/status/location.js:176
#: ../js/ui/status/location.js:214
msgid "Location In Use"
msgstr "Plassering i bruk"
#: ../js/ui/status/location.js:180
#: ../js/ui/status/location.js:218
msgid "Location Disabled"
msgstr "Plassering slått av"
#: ../js/ui/status/location.js:181
#: ../js/ui/status/location.js:219
msgid "Enable"
msgstr "Slå på"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Nekt tilgang"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Gi tilgang"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Gi %s tilgang til din plassering?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr "Stedstilgang kan endres når som helst under innstillinger for personvern."
#: ../js/ui/status/network.js:101
msgid "<unknown>"
msgstr "<ukjent>"
@ -1473,27 +1524,27 @@ msgstr "%d %%"
msgid "Airplane Mode On"
msgstr "Flymodus er slått på"
#: ../js/ui/status/system.js:343
#: ../js/ui/status/system.js:348
msgid "Switch User"
msgstr "Bytt bruker"
#: ../js/ui/status/system.js:348
#: ../js/ui/status/system.js:353
msgid "Log Out"
msgstr "Logg ut"
#: ../js/ui/status/system.js:353
#: ../js/ui/status/system.js:358
msgid "Account Settings"
msgstr "Innstillinger for konto"
#: ../js/ui/status/system.js:370
#: ../js/ui/status/system.js:375
msgid "Orientation Lock"
msgstr "Lås for orientering"
#: ../js/ui/status/system.js:378
#: ../js/ui/status/system.js:383
msgid "Suspend"
msgstr "Hvilemodus"
#: ../js/ui/status/system.js:381
#: ../js/ui/status/system.js:386
msgid "Power Off"
msgstr "Slå av"
@ -1505,10 +1556,6 @@ msgstr "Volum endret"
msgid "Volume"
msgstr "Volum"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Logg inn som en annen bruker"

198
po/pt.po
View File

@ -4,24 +4,26 @@
# Duarte Loreto <happyguy_pt@hotmail.com>, 2010, 2011, 2012, 2013, 2014.
# Rui Gouveia <rui.gouveia@gmail.com>, 2011.
# António Lima <amrlima@gmail.com>, 2013.
# Tiago S. <almosthumane@portugalmail.pt>, 2014.
# Tiago Santos <tiagofsantos81@sapo.pt>, 2014, 2016.
# Bruno Ramalhete <bram.512@gmail.com>, 2015.
# Pedro Albuquerque <palbuquerque73@gmail.com>, 2014, 2015.
# Sérgio Cardeira <cardeira dot sergio at gmail dot com>, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: 3.14\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2015-11-20 22:14+0000\n"
"PO-Revision-Date: 2015-11-21 09:02+0100\n"
"Last-Translator: Pedro Albuquerque <palbuquerque73@gmail.com>\n"
"Language-Team: Pedro Albuquerque\n"
"POT-Creation-Date: 2016-04-26 13:48+0000\n"
"PO-Revision-Date: 2016-04-30 16:45+0100\n"
"Last-Translator: Tiago Santos <tiagofsantos81@sapo.pt>\n"
"Language-Team: Português <>\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Virtaal 0.7.1\n"
"X-Generator: Poedit 1.5.4\n"
"X-Project-Style: gnome\n"
"X-Language: pt_PT\n"
"X-Source-Language: C\n"
@ -323,51 +325,52 @@ msgstr ""
msgid "Network Login"
msgstr "Sessão na rede"
#: ../js/extensionPrefs/main.js:122
#: ../js/extensionPrefs/main.js:117
#, javascript-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "Ocorreu um erro ao ler o diálogo de preferências de %s:"
#: ../js/extensionPrefs/main.js:154
#: ../js/extensionPrefs/main.js:149
msgid "GNOME Shell Extensions"
msgstr "Extensões da interface do GNOME"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916
msgid "Cancel"
msgstr "Cancelar"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:447
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:448
msgid "Next"
msgstr "Seguinte"
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59
msgid "Unlock"
msgstr "Desbloquear"
#: ../js/gdm/authPrompt.js:213
#: ../js/gdm/authPrompt.js:214
msgctxt "button"
msgid "Sign In"
msgstr "Iniciar sessão"
#: ../js/gdm/loginDialog.js:281
#: ../js/gdm/loginDialog.js:285
msgid "Choose Session"
msgstr "Escolher sessão"
#. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: ../js/gdm/loginDialog.js:431
#: ../js/gdm/loginDialog.js:435
msgid "Not listed?"
msgstr "Não está listada?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:850
#: ../js/gdm/loginDialog.js:854
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(por ex., utilizador ou %s)"
@ -375,12 +378,12 @@ msgstr "(por ex., utilizador ou %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271
#: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289
msgid "Username: "
msgstr "Utilizador: "
#: ../js/gdm/loginDialog.js:1180
#: ../js/gdm/loginDialog.js:1196
msgid "Login Window"
msgstr "Janela de início de sessão"
@ -516,16 +519,36 @@ msgstr "Adicionar aos favoritos"
msgid "Show Details"
msgstr "Mostrar detalhes"
#: ../js/ui/appFavorites.js:133
#: ../js/ui/appFavorites.js:134
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s foi adicionada aos seus favoritos."
#: ../js/ui/appFavorites.js:167
#: ../js/ui/appFavorites.js:168
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s foi removida dos seus favoritos."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Selecione o dispositivo de áudio"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "Definições de som"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Auscultadores"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Auscultadores com microfone"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Microfone"
#: ../js/ui/backgroundMenu.js:19
msgid "Change Background…"
msgstr "Alterar o fundo…"
@ -534,12 +557,12 @@ msgstr "Alterar o fundo…"
msgid "Display Settings"
msgstr "Definições de ecrã"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:371
msgid "Settings"
msgstr "Definições"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:55
#: ../js/ui/calendar.js:47
msgctxt "calendar-no-work"
msgid "06"
msgstr "06"
@ -549,100 +572,96 @@ msgstr "06"
#. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S".
#.
#: ../js/ui/calendar.js:84
#: ../js/ui/calendar.js:76
msgctxt "grid sunday"
msgid "S"
msgstr "D"
#. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:86
#: ../js/ui/calendar.js:78
msgctxt "grid monday"
msgid "M"
msgstr "S"
#. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:88
#: ../js/ui/calendar.js:80
msgctxt "grid tuesday"
msgid "T"
msgstr "T"
#. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:90
#: ../js/ui/calendar.js:82
msgctxt "grid wednesday"
msgid "W"
msgstr "Q"
#. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:92
#: ../js/ui/calendar.js:84
msgctxt "grid thursday"
msgid "T"
msgstr "Q"
#. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:94
#: ../js/ui/calendar.js:86
msgctxt "grid friday"
msgid "F"
msgstr "S"
#. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:96
#: ../js/ui/calendar.js:88
msgctxt "grid saturday"
msgid "S"
msgstr "S"
#: ../js/ui/calendar.js:566
#: ../js/ui/calendar.js:416
msgid "Previous month"
msgstr "Mês anterior"
#: ../js/ui/calendar.js:576
#: ../js/ui/calendar.js:426
msgid "Next month"
msgstr "Mês seguinte"
#: ../js/ui/calendar.js:728
#, javascript-format
#: ../js/ui/calendar.js:579
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:783
#: ../js/ui/calendar.js:634
msgid "Week %V"
msgstr "Semana %V"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
#: ../js/ui/calendar.js:1188
#: ../js/ui/calendar.js:695
msgctxt "event list time"
msgid "All Day"
msgstr "Dia completo"
#: ../js/ui/calendar.js:1295
msgid "Clear section"
msgstr "Limpar secção"
#: ../js/ui/calendar.js:1522
#: ../js/ui/calendar.js:821
msgid "Events"
msgstr "Eventos"
#: ../js/ui/calendar.js:1531
#: ../js/ui/calendar.js:830
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %B %d"
#: ../js/ui/calendar.js:1535
#: ../js/ui/calendar.js:834
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %B %d, %Y"
#: ../js/ui/calendar.js:1620
#: ../js/ui/calendar.js:919
msgid "Notifications"
msgstr "Notificações"
#: ../js/ui/calendar.js:1771
#: ../js/ui/calendar.js:1070
msgid "No Notifications"
msgstr "Sem notificações"
#: ../js/ui/calendar.js:1774
#: ../js/ui/calendar.js:1073
msgid "No Events"
msgstr "Sem eventos"
@ -780,7 +799,7 @@ msgstr "Desculpe, não resultou. Por favor, tente novamente."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/components/telepathyClient.js:759
#: ../js/ui/components/telepathyClient.js:760
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s é agora conhecido como %s"
@ -968,11 +987,11 @@ msgid "Keyboard"
msgstr "Teclado"
#. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66
#: ../js/ui/legacyTray.js:65
msgid "Hide tray"
msgstr "Ocultar tabuleiro"
#: ../js/ui/legacyTray.js:107
#: ../js/ui/legacyTray.js:106
msgid "Status Icons"
msgstr "Ícones de estado"
@ -1000,7 +1019,7 @@ msgstr "Ativo"
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1866
msgid "Disabled"
msgstr "Inativo"
@ -1024,10 +1043,26 @@ msgstr "Ver fonte"
msgid "Web Page"
msgstr "Página Web"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Limpar secção"
#: ../js/ui/messageTray.js:1486
msgid "System Information"
msgstr "Informação do sistema"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Artista desconhecido"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "Titulo desconhecido"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Média"
#: ../js/ui/overview.js:84
msgid "Undo"
msgstr "Desfazer"
@ -1104,7 +1139,7 @@ msgid_plural "%d new notifications"
msgstr[0] "%d nova notificação"
msgstr[1] "%d novas notificações"
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:374
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:379
msgid "Lock"
msgstr "Bloquear"
@ -1246,30 +1281,50 @@ msgstr "Luminosidade"
msgid "Show Keyboard Layout"
msgstr "Mostrar a disposição de teclado"
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
msgid "Location Enabled"
msgstr "Localização ativada"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
msgid "Disable"
msgstr "Desativar"
#: ../js/ui/status/location.js:73
#: ../js/ui/status/location.js:109
msgid "Privacy Settings"
msgstr "Definições de privacidade"
#: ../js/ui/status/location.js:176
#: ../js/ui/status/location.js:214
msgid "Location In Use"
msgstr "Localização em uso"
#: ../js/ui/status/location.js:180
#: ../js/ui/status/location.js:218
msgid "Location Disabled"
msgstr "Localização desativada"
#: ../js/ui/status/location.js:181
#: ../js/ui/status/location.js:219
msgid "Enable"
msgstr "Ativar"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Negar acesso"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Conceder acesso"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Dar a %s permissão para usar a localização?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"Acesso à localização pode ser alterado a qualquer altura a partir das "
"definições de privacidade."
#: ../js/ui/status/network.js:101
msgid "<unknown>"
msgstr "<desconhecido>"
@ -1492,27 +1547,27 @@ msgstr "%d %%"
msgid "Airplane Mode On"
msgstr "Modo Avião ligado"
#: ../js/ui/status/system.js:343
#: ../js/ui/status/system.js:348
msgid "Switch User"
msgstr "Alternar utilizador"
#: ../js/ui/status/system.js:348
#: ../js/ui/status/system.js:353
msgid "Log Out"
msgstr "Terminar sessão"
#: ../js/ui/status/system.js:353
#: ../js/ui/status/system.js:358
msgid "Account Settings"
msgstr "Definições de conta"
#: ../js/ui/status/system.js:370
#: ../js/ui/status/system.js:375
msgid "Orientation Lock"
msgstr "Orientação de bloqueio"
#: ../js/ui/status/system.js:378
#: ../js/ui/status/system.js:383
msgid "Suspend"
msgstr "Suspender"
#: ../js/ui/status/system.js:381
#: ../js/ui/status/system.js:386
msgid "Power Off"
msgstr "Desligar"
@ -1524,10 +1579,6 @@ msgstr "Volume alterado"
msgid "Volume"
msgstr "Volume"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Microfone"
#: ../js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Iniciar sessão como outro utilizador"
@ -1648,7 +1699,7 @@ msgstr "Calendário do Evolution"
#. translators:
#. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1835
#: ../src/gvc/gvc-mixer-control.c:1873
#, c-format
msgid "%u Output"
msgid_plural "%u Outputs"
@ -1657,14 +1708,14 @@ msgstr[1] "%u saídas"
#. translators:
#. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1845
#: ../src/gvc/gvc-mixer-control.c:1883
#, c-format
msgid "%u Input"
msgid_plural "%u Inputs"
msgstr[0] "%u entrada"
msgstr[1] "%u entradas"
#: ../src/gvc/gvc-mixer-control.c:2371
#: ../src/gvc/gvc-mixer-control.c:2738
msgid "System Sounds"
msgstr "Sons de sistema"
@ -1707,6 +1758,9 @@ msgstr "A senha não pode estar vazia"
msgid "Authentication dialog was dismissed by the user"
msgstr "O diálogo de autenticação foi fechado pelo utilizador"
#~ msgid "%s is requesting access to your location."
#~ msgstr "%s está a pedir acesso à sua localização."
#~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "Interface GNOME (compositor wayland)"
@ -1923,9 +1977,6 @@ msgstr "O diálogo de autenticação foi fechado pelo utilizador"
#~ msgid "View account"
#~ msgstr "Visualizar a conta"
#~ msgid "Unknown reason"
#~ msgstr "Motivo desconhecido"
#~ msgid "Open Calendar"
#~ msgstr "Abrir o Calendário"
@ -2031,9 +2082,6 @@ msgstr "O diálogo de autenticação foi fechado pelo utilizador"
#~ msgid "Device %s wants access to the service '%s'"
#~ msgstr "O dispositivo %s deseja aceder ao serviço '%s'"
#~ msgid "Always grant access"
#~ msgstr "Conceder sempre o acesso"
#~ msgid "Grant this time only"
#~ msgstr "Conceder apenas desta vez"

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

View File

@ -722,6 +722,23 @@ shell_app_get_last_user_time (ShellApp *app)
return (int)last_user_time;
}
static gboolean
shell_app_is_minimized (ShellApp *app)
{
GSList *iter;
if (app->running_state == NULL)
return FALSE;
for (iter = app->running_state->windows; iter; iter = iter->next)
{
if (meta_window_showing_on_its_workspace (iter->data))
return FALSE;
}
return TRUE;
}
/**
* shell_app_compare:
* @app:
@ -729,13 +746,17 @@ shell_app_get_last_user_time (ShellApp *app)
*
* Compare one #ShellApp instance to another, in the following way:
* - Running applications sort before not-running applications.
* - The application which the user interacted with most recently
* - If one of them has non-minimized windows and the other does not,
* the one with visible windows is first.
* - Finally, the application which the user interacted with most recently
* compares earlier.
*/
int
shell_app_compare (ShellApp *app,
ShellApp *other)
{
gboolean min_app, min_other;
if (app->state != other->state)
{
if (app->state == SHELL_APP_STATE_RUNNING)
@ -743,6 +764,16 @@ shell_app_compare (ShellApp *app,
return 1;
}
min_app = shell_app_is_minimized (app);
min_other = shell_app_is_minimized (other);
if (min_app != min_other)
{
if (min_other)
return -1;
return 1;
}
if (app->state == SHELL_APP_STATE_RUNNING)
{
if (app->running_state->windows && !other->running_state->windows)

View File

@ -107,6 +107,8 @@ static void recorder_set_draw_cursor (ShellRecorder *recorder,
static void recorder_pipeline_set_caps (RecorderPipeline *pipeline);
static void recorder_pipeline_closed (RecorderPipeline *pipeline);
static void recorder_remove_redraw_timeout (ShellRecorder *recorder);
enum {
PROP_0,
PROP_SCREEN,
@ -235,6 +237,8 @@ shell_recorder_finalize (GObject *object)
recorder_set_pipeline (recorder, NULL);
recorder_set_file_template (recorder, NULL);
recorder_remove_redraw_timeout (recorder);
g_clear_object (&recorder->a11y_settings);
G_OBJECT_CLASS (shell_recorder_parent_class)->finalize (object);
@ -317,6 +321,9 @@ recorder_fetch_cursor_image (ShellRecorder *recorder)
guint8 *data;
texture = meta_cursor_tracker_get_sprite (recorder->cursor_tracker);
if (!texture)
return;
width = cogl_texture_get_width (texture);
height = cogl_texture_get_height (texture);
stride = 4 * width;
@ -944,6 +951,9 @@ get_absolute_path (char *maybe_relative)
else
{
const char *video_dir = g_get_user_special_dir (G_USER_DIRECTORY_VIDEOS);
if (!g_file_test (video_dir, G_FILE_TEST_EXISTS))
video_dir = g_get_home_dir ();
path = g_build_filename (video_dir, maybe_relative, NULL);
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -12,12 +12,13 @@ srcdir=sys.argv[1]
distdir=sys.argv[2]
excludes=sys.argv[3:]
cwd=os.getcwd()
os.chdir(srcdir)
status=0
for f in subprocess.Popen(["git", "ls-files"], stdout=subprocess.PIPE).stdout:
f = f.decode('utf-8').strip()
if (not os.path.exists(os.path.join(distdir, f)) and
if (not os.path.exists(os.path.join(cwd, distdir, f)) and
not any((fnmatch.fnmatch(f, p) for p in excludes))):
print("File missing from distribution:", f)
status=1