Compare commits

...

37 Commits

Author SHA1 Message Date
Dz Chen
5e290d06dd Update zh_CN translation 2017-10-21 19:38:34 +08:00
Jeremy Bicha
b08270a750 tests: Update markup test for function moved to messageList
https://bugzilla.gnome.org/show_bug.cgi?id=782802
2017-05-19 08:29:46 -04:00
Ray Strode
783f9b1739 loginDialog: don't allow type ahead at the login screen
It's weird if after you select a username from the user list, there's
a password already filled in.

This commit disables at that feature for the login screen
(but keeps it in tact for the unlock screen)

https://bugzilla.gnome.org/show_bug.cgi?id=766139
2017-02-14 03:04:53 +01:00
Muhammet Kara
7db0729ea1 Update Turkish translation 2017-01-08 20:03:47 +00:00
Debarshi Ray
adcf275b86 portalHelper: Address intermittent TLS failures
Users are currently experiencing intermittent (and hard to debug) TLS
errors when loading the portal authentication page. This could be
caused by using http://www.gnome.org/ for our connectivity checks
because it redirects to HTTPS.

We can completely remove TLS from the equation by not using HTTPS.
http://nmcheck.gnome.org/ is a good choice because it doesn't redirect
to HTTPS and was created for NetworkManager's connectivity check.

https://bugzilla.gnome.org/show_bug.cgi?id=769940
2016-11-23 18:41:31 +01:00
Carlos Garcia Campos
f49e28aedc browser-plugin: The NPObject returned by NPP_GetValue should be retained
The Mozilla documentation says: "And as always when working with
reference counted NPObjects, the caller is responsible for calling
NPN_ReleaseObject on the NPObject to drop the reference."

Browsers assume that the plugin does the right thing and always call
NPN_ReleaseObject. At some point the object is released and deallocated
and both the plugin and browser still have references to the object
thinking that it's still alive. That's why the crash is sometimes in the
plugin when it tries to use the np object, and sometimes in the browser.

https://bugzilla.gnome.org/post_bug.cgi
2016-10-29 10:48:37 -05:00
gogo
80b2e810ed Add Croatian translation 2016-10-09 19:25:11 +00:00
GNOME Translation Robot
d5dc463a87 Updated Scottish Gaelic translation 2016-09-13 09:43:19 +00:00
Michael Catanzaro
15e727e174 loginDialog: fix cancel button in ask for username mode
If the user clicks Not Listed? to enter ask for username mode, clicks
cancel, and then attempts to log in via the user list, the user will see
"Authentication failed" after correctly typing the password, and then
will become stuck in an empty screen with just the gray noise background.

The problem is, we forgot to disconnect from the signal that's waiting
for the next button to be pressed on the username entry screen. Since
the signal handler that executes here is expecting the username to be
input, and isn't prepared for us to have switched back to user list,
various bad things happen. We try to start two gdm-password
conversations at once, for instance, one using the user's password as
the username. I stopped investigating here, because it's easy to fix by
disconnecting from the signal at the right time.

https://bugzilla.gnome.org/show_bug.cgi?id=770328
2016-09-10 16:51:19 -05:00
Florian Müllner
890a1f112b calendar-server: Add back missing return value
In commit 7e0e224e0, when moving from e_cal_recur_generate_instances()
to e_cal_client_generate_instances(), the return value of the
ECalRecurInstanceFn callback was accidentally removed; add it
back.

https://bugzilla.gnome.org/show_bug.cgi?id=769156
2016-08-20 01:37:59 +02:00
Florian Müllner
a7ab0892e6 Update to 3.20.4
Update NEWS.
2016-08-19 22:58:50 +02:00
Piotr Drąg
1d9f48993e Updated Polish translation 2016-07-12 21:22:04 +02:00
Florian Müllner
b21e4d1dee calendar-server: Use the actual recurrence ID of events
Instead of querying the client for a list of objects and using
e_cal_recur_generate_instances() to get occurrences for each of
them, we can use e_cal_client_generate_instances_sync() which
combines the functionality of both functions. This doesn't only
save us some lines of code (yay!), but also gives us access to
the real recurrence ID of an event, so we can get rid of the hack
of faking one.

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

https://bugzilla.gnome.org/show_bug.cgi?id=748226
2016-07-08 18:09:22 +02:00
Florian Müllner
0d862181f2 calendar-server: Fetch default zone from client
We are already setting the default zone on the client, no need
to pass it around.

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

https://bugzilla.gnome.org/show_bug.cgi?id=748226
2016-07-08 18:09:22 +02:00
Florian Müllner
7327448f45 calendar-server: Minor optimization
We use the same query string for all sources, so no need to
allocate/free it on each loop iteration.

https://bugzilla.gnome.org/show_bug.cgi?id=748226
2016-07-08 18:09:22 +02:00
Florian Müllner
8587fc7461 calendar-server: Remove an unnecessary check
calendar_appointment_new() never returns %NULL, so no need to check
for it.
2016-07-08 18:09:18 +02:00
Florian Müllner
7c44909da6 location: Update for PermissionStore DBus API changes
As xdg-app has been renamed to Flatpak, the permission store's
bus name and interface name have been changes as well.

https://bugzilla.gnome.org/show_bug.cgi?id=766598
2016-07-08 13:15:24 +02:00
Bruce Cowan
6a93afa333 Updated British English translation 2016-07-01 17:17:05 +01:00
Hyungwon Hwang
71c26cc7ce background: free MetaBackground explicitly when its MetaBackgroundActor is destroyed
The memory which MetaBackground resides is freed automatically, when its
wrapper object Background is freed by garbage collection. But because the
memory for MetaBackground is huge, changing the background or changing the
background mode repeatedly makes a lot of memory to be in use until garbage
collection runs.

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

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

Signed-off-by: Hyungwon Hwang <hyungwon.hwang7@gmail.com>
2016-06-29 15:17:56 +02:00
Florian Müllner
e0307bb7e0 Bump version to 3.20.3
Update NEWS.
2016-06-29 01:04:47 +02:00
Florian Müllner
550715a071 build: Fix check-for-missing for srcdir != builddir 2016-06-29 01:04:47 +02:00
Florian Müllner
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
Hans Petter Jansson
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
Rui Matos
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
Rui Matos
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
Andika Triwidada
23788b9e7d Updated Indonesian translation 2016-06-24 10:52:42 +00:00
David Woodhouse
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
Florian Müllner
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
Florian Müllner
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
Martin Szulecki
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
Sveinn í Felli
3bbf681385 Updated Icelandic translation 2016-05-14 22:23:50 +00:00
Florian Müllner
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
Florian Müllner
3cf2e1ad8b Bump version to 3.20.2
Update NEWS.
2016-05-10 22:21:02 +02:00
Kjartan Maraas
d756e2eefb Updated Norwegian bokmål translation. 2016-05-03 23:35:50 +02:00
Tiago Santos
ea27ed8c55 Updated Portuguese translation 2016-04-30 15:48:52 +00:00
29 changed files with 4388 additions and 1696 deletions

42
NEWS
View File

@ -1,3 +1,45 @@
3.20.4
======
* Free old backgrounds immediately [Hyungwon; #766353]
* Adjust to flatpak PermissionStore API changes [Florian; #766598]
* calendar: Only hide dismissed occurrence of recurring event [Florian; #748226]
Contributors:
Hyungwon Hwang, Florian Müllner
Translations:
Bruce Cowan [en_GB], Piotr Drąg [pl]
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 3.20.1
====== ======
* Plug a memory leak [Aaron; #735705] * Plug a memory leak [Aaron; #735705]

View File

@ -1029,6 +1029,7 @@ NPP_GetValue(NPP instance,
if (!instance->pdata) if (!instance->pdata)
return NPERR_INVALID_INSTANCE_ERROR; return NPERR_INVALID_INSTANCE_ERROR;
funcs.retainobject (instance->pdata);
*(NPObject**)value = instance->pdata; *(NPObject**)value = instance->pdata;
break; break;

View File

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

View File

@ -804,6 +804,11 @@ const LoginDialog = new Lang.Class({
this._user = null; this._user = null;
if (this._nextSignalId) {
this._authPrompt.disconnect(this._nextSignalId);
this._nextSignalId = 0;
}
if (beginRequest == AuthPrompt.BeginRequestType.PROVIDE_USERNAME) { if (beginRequest == AuthPrompt.BeginRequestType.PROVIDE_USERNAME) {
if (!this._disableUserList) if (!this._disableUserList)
this._showUserList(); this._showUserList();
@ -1220,7 +1225,7 @@ const LoginDialog = new Lang.Class({
}, },
addCharacter: function(unichar) { addCharacter: function(unichar) {
this._authPrompt.addCharacter(unichar); // Don't allow type ahead at the login screen
}, },
finish: function(onComplete) { finish: function(onComplete) {

View File

@ -50,7 +50,7 @@ const PortalWindow = new Lang.Class({
this.parent({ application: application }); this.parent({ application: application });
if (!url) { if (!url) {
url = 'http://www.gnome.org'; url = 'http://nmcheck.gnome.org';
this._originalUrlWasGnome = true; this._originalUrlWasGnome = true;
} else { } else {
this._originalUrlWasGnome = false; this._originalUrlWasGnome = false;
@ -112,12 +112,12 @@ const PortalWindow = new Lang.Class({
let uri = new Soup.URI(request.get_uri()); let uri = new Soup.URI(request.get_uri());
if (!uri.host_equal(this._uri) && this._originalUrlWasGnome) { if (!uri.host_equal(this._uri) && this._originalUrlWasGnome) {
if (uri.get_host() == 'www.gnome.org' && this._everSeenRedirect) { if (uri.get_host() == 'nmcheck.gnome.org' && this._everSeenRedirect) {
// Yay, we got to gnome! // Yay, we got to gnome!
decision.ignore(); decision.ignore();
this._doneCallback(PortalHelperResult.COMPLETED); this._doneCallback(PortalHelperResult.COMPLETED);
return true; return true;
} else if (uri.get_host() != 'www.gnome.org') { } else if (uri.get_host() != 'nmcheck.gnome.org') {
this._everSeenRedirect = true; this._everSeenRedirect = true;
} }
} }

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({ const WindowSwitcherPopup = new Lang.Class({
Name: 'WindowSwitcherPopup', Name: 'WindowSwitcherPopup',
Extends: SwitcherPopup.SwitcherPopup, Extends: SwitcherPopup.SwitcherPopup,
@ -401,6 +454,32 @@ const WindowSwitcherPopup = new Lang.Class({
} }
}); });
const WindowCyclerPopup = new Lang.Class({
Name: 'WindowCyclerPopup',
Extends: CyclerPopup,
_init: function() {
this._settings = new Gio.Settings({ schema_id: 'org.gnome.shell.window-switcher' });
this.parent();
},
_getWindows: function() {
let workspace = this._settings.get_boolean('current-workspace-only') ? global.screen.get_active_workspace() : null;
return global.display.get_tab_list(Meta.TabList.NORMAL, workspace);
},
_keyPressHandler: function(keysym, action) {
if (action == Meta.KeyBindingAction.CYCLE_WINDOWS)
this._select(this._next());
else if (action == Meta.KeyBindingAction.CYCLE_WINDOWS_BACKWARD)
this._select(this._previous());
else
return Clutter.EVENT_PROPAGATE;
return Clutter.EVENT_STOP;
}
});
const AppIcon = new Lang.Class({ const AppIcon = new Lang.Class({
Name: 'AppIcon', Name: 'AppIcon',

View File

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

View File

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

View File

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

View File

@ -866,6 +866,18 @@ const WindowManager = new Lang.Class({
this.setCustomKeybindingHandler('switch-windows-backward', this.setCustomKeybindingHandler('switch-windows-backward',
Shell.ActionMode.NORMAL, Shell.ActionMode.NORMAL,
Lang.bind(this, this._startWindowSwitcher)); Lang.bind(this, this._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', this.setCustomKeybindingHandler('switch-panels',
Shell.ActionMode.NORMAL | Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW | Shell.ActionMode.OVERVIEW |
@ -1766,6 +1778,28 @@ const WindowManager = new Lang.Class({
tabPopup.destroy(); 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) { _startA11ySwitcher : function(display, screen, window, binding) {
Main.ctrlAltTabManager.popup(binding.is_reversed(), binding.get_name(), binding.get_mask()); Main.ctrlAltTabManager.popup(binding.is_reversed(), binding.get_name(), binding.get_mask());
}, },

View File

@ -29,6 +29,7 @@ gl
gu gu
he he
hi hi
hr
hu hu
ia ia
id id

File diff suppressed because it is too large Load Diff

244
po/gd.po
View File

@ -1,14 +1,14 @@
# Scottish Gaelic translation for gnome-shell. # Scottish Gaelic translation for gnome-shell.
# Copyright (C) 2015 gnome-shell's COPYRIGHT HOLDER # Copyright (C) 2015 gnome-shell's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell package. # This file is distributed under the same license as the gnome-shell package.
# GunChleoc <fios@foramnagaidhlig.net>, 2015. # GunChleoc <fios@foramnagaidhlig.net>, 2015, 2016.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2015-11-17 16:10+0000\n" "POT-Creation-Date: 2016-09-10 21:51+0000\n"
"PO-Revision-Date: 2015-11-17 17:10+0100\n" "PO-Revision-Date: 2016-09-13 10:42+0100\n"
"Last-Translator: GunChleoc <fios@foramnagaidhlig.net>\n" "Last-Translator: GunChleoc <fios@foramnagaidhlig.net>\n"
"Language-Team: Fòram na Gàidhlig\n" "Language-Team: Fòram na Gàidhlig\n"
"Language: gd\n" "Language: gd\n"
@ -62,32 +62,61 @@ msgid "Window management and application launching"
msgstr "Stiùireadh uinneagan is tòiseachadh aplacaidean" msgstr "Stiùireadh uinneagan is tòiseachadh aplacaidean"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:3 #: ../data/org.gnome.shell.gschema.xml.in.in.h:3
#| msgid "No extensions installed"
msgid "UUIDs of extensions to enable" msgid "UUIDs of extensions to enable"
msgstr "UUIDs nan leudachan ri an cur an comas" msgstr "UUIDs nan leudachan ri an cur an comas"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.in.h:22
#| msgid "Open the application menu"
msgid "Keybinding to open the application menu" msgid "Keybinding to open the application menu"
msgstr "Nasgadh iuchrach gus clàr-taice na h-aplacaid fhosgladh" msgstr "Nasgadh iuchrach gus clàr-taice na h-aplacaid fhosgladh"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
#| msgid "Open the application menu"
msgid "Keybinding to open the application menu." msgid "Keybinding to open the application menu."
msgstr "Nasgadh iuchrach gus clàr-taice na h-aplacaid fhosgladh." msgstr "Nasgadh iuchrach gus clàr-taice na h-aplacaid fhosgladh."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
#| msgid "Keybinding to open the application menu"
msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Nasgadh iuchrach gus an sealladh \"Seall aplacaidean\" fhosgladh"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
#| msgid "Keybinding to open the application menu."
msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr ""
"Nasgadh iuchrach gus an sealladh \"Seall aplacaidean\" aig foir-shealladh na "
"gnìomhachd fhosgladh."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
#| msgid "Keybinding to open the application menu"
msgid "Keybinding to open the overview"
msgstr "Nasgadh iuchrach gus am foir-shealladh fhosgladh"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
#| msgid "Keybinding to open the application menu."
msgid "Keybinding to open the Activities Overview."
msgstr "Nasgadh iuchrach gus foir-shealladh na gnìomhachd fhosgladh."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
#| msgid "Keybinding to focus the active notification"
msgid "Keybinding to toggle the visibility of the notification list"
msgstr ""
"Nasgadh iuchrach gus an fhaicsinneachd air liosta nam brathan a thoglachadh"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
#| msgid "Keybinding to focus the active notification."
msgid "Keybinding to toggle the visibility of the notification list."
msgstr ""
"Nasgadh iuchrach gus an fhaicsinneachd air liosta nam brathan a thoglachadh."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
#| msgid "Focus the active notification"
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "Nasgadh iuchrach gus am fòcas a chur air a' bhrath ghnìomhach" msgstr "Nasgadh iuchrach gus am fòcas a chur air a' bhrath ghnìomhach"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31 #: ../data/org.gnome.shell.gschema.xml.in.in.h:31
#| msgid "Focus the active notification"
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "Nasgadh iuchrach gus am fòcas a chur air a' bhrath ghnìomhach." msgstr "Nasgadh iuchrach gus am fòcas a chur air a' bhrath ghnìomhach."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:37
#| msgid "Open the application menu"
msgid "The application icon mode." msgid "The application icon mode."
msgstr "Modh ìomhaigheag na h-aplacaid." msgstr "Modh ìomhaigheag na h-aplacaid."
@ -95,51 +124,52 @@ msgstr "Modh ìomhaigheag na h-aplacaid."
msgid "Network Login" msgid "Network Login"
msgstr "Clàradh a-steach lìonraidh" msgstr "Clàradh a-steach lìonraidh"
#: ../js/extensionPrefs/main.js:122 #: ../js/extensionPrefs/main.js:117
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "Thachair mearachd le luchdadh còmhradh nan roghainnean airson %s:" msgstr "Thachair mearachd le luchdadh còmhradh nan roghainnean airson %s:"
#: ../js/extensionPrefs/main.js:154 #: ../js/extensionPrefs/main.js:149
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "Leudachain na Slige GNOME" msgstr "Leudachain na Slige GNOME"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145 #: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452 #: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916 #: ../js/ui/status/network.js:916
msgid "Cancel" msgid "Cancel"
msgstr "Sguir dheth" msgstr "Sguir dheth"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215 #: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:447 #: ../js/gdm/authPrompt.js:448
msgid "Next" msgid "Next"
msgstr "Air adhart" msgstr "Air adhart"
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403 #: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59 #: ../js/ui/unlockDialog.js:59
msgid "Unlock" msgid "Unlock"
msgstr "Neo-ghlais" msgstr "Neo-ghlais"
#: ../js/gdm/authPrompt.js:213 #: ../js/gdm/authPrompt.js:214
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Clàraich a-steach" msgstr "Clàraich a-steach"
#: ../js/gdm/loginDialog.js:281 #: ../js/gdm/loginDialog.js:285
msgid "Choose Session" msgid "Choose Session"
msgstr "Tagh seisean" msgstr "Tagh seisean"
#. translators: this message is shown below the user list on the #. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for #. login screen. It can be activated to reveal an entry for
#. manually entering the username. #. manually entering the username.
#: ../js/gdm/loginDialog.js:431 #: ../js/gdm/loginDialog.js:435
msgid "Not listed?" msgid "Not listed?"
msgstr "Nach eil e air an liosta?" msgstr "Nach eil e air an liosta?"
#. Translators: this message is shown below the username entry field #. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm #. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:850 #: ../js/gdm/loginDialog.js:859
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(m.e., cleachdaiche no %s)" msgstr "(m.e., cleachdaiche no %s)"
@ -147,12 +177,12 @@ msgstr "(m.e., cleachdaiche no %s)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271 #: ../js/gdm/loginDialog.js:864 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289 #: ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
msgstr "Ainm-cleachdaiche:" msgstr "Ainm-cleachdaiche:"
#: ../js/gdm/loginDialog.js:1180 #: ../js/gdm/loginDialog.js:1201
msgid "Login Window" msgid "Login Window"
msgstr "Uinneag a' chlàraidh a-steach" msgstr "Uinneag a' chlàraidh a-steach"
@ -288,16 +318,37 @@ msgstr "Cuir ris na h-annsachdan"
msgid "Show Details" msgid "Show Details"
msgstr "Seall am mion-fhiosrachadh" msgstr "Seall am mion-fhiosrachadh"
#: ../js/ui/appFavorites.js:133 #: ../js/ui/appFavorites.js:134
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "Chaidh %s a chur ris na h-annsachdan agad." msgstr "Chaidh %s a chur ris na h-annsachdan agad."
#: ../js/ui/appFavorites.js:167 #: ../js/ui/appFavorites.js:168
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "Chaidh %s a toirt air falbh o na h-annsachdan agad." msgstr "Chaidh %s a toirt air falbh o na h-annsachdan agad."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Tagh uidheam fuaime"
#: ../js/ui/audioDeviceSelection.js:69
#| msgid "Account Settings"
msgid "Sound Settings"
msgstr "Roghainnean fuaime"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Headphones"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Headset"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Micreofon"
#: ../js/ui/backgroundMenu.js:19 #: ../js/ui/backgroundMenu.js:19
msgid "Change Background…" msgid "Change Background…"
msgstr "Atharraich an cùlaibh…" msgstr "Atharraich an cùlaibh…"
@ -306,12 +357,12 @@ msgstr "Atharraich an cùlaibh…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Roghainnean an t-seallaidh" msgstr "Roghainnean an t-seallaidh"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:371
msgid "Settings" msgid "Settings"
msgstr "Roghainnean" msgstr "Roghainnean"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). #. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:55 #: ../js/ui/calendar.js:47
msgctxt "calendar-no-work" msgctxt "calendar-no-work"
msgid "06" msgid "06"
msgstr "06" msgstr "06"
@ -321,100 +372,96 @@ msgstr "06"
#. * NOTE: These grid abbreviations are always shown together #. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S". #. * and in order, e.g. "S M T W T F S".
#. #.
#: ../js/ui/calendar.js:84 #: ../js/ui/calendar.js:76
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "Dò" msgstr "Dò"
#. Translators: Calendar grid abbreviation for Monday #. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:86 #: ../js/ui/calendar.js:78
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "Lu" msgstr "Lu"
#. Translators: Calendar grid abbreviation for Tuesday #. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:88 #: ../js/ui/calendar.js:80
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "Mà" msgstr "Mà"
#. Translators: Calendar grid abbreviation for Wednesday #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:90 #: ../js/ui/calendar.js:82
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "Ci" msgstr "Ci"
#. Translators: Calendar grid abbreviation for Thursday #. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:92 #: ../js/ui/calendar.js:84
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "Da" msgstr "Da"
#. Translators: Calendar grid abbreviation for Friday #. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:94 #: ../js/ui/calendar.js:86
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "hA" msgstr "hA"
#. Translators: Calendar grid abbreviation for Saturday #. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:96 #: ../js/ui/calendar.js:88
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
msgstr "Sa" msgstr "Sa"
#: ../js/ui/calendar.js:566 #: ../js/ui/calendar.js:416
msgid "Previous month" msgid "Previous month"
msgstr "Am mìos roimhe" msgstr "Am mìos roimhe"
#: ../js/ui/calendar.js:576 #: ../js/ui/calendar.js:426
msgid "Next month" msgid "Next month"
msgstr "An ath mhìos" msgstr "An ath mhìos"
#: ../js/ui/calendar.js:728 #: ../js/ui/calendar.js:579
#, javascript-format #, no-javascript-format
msgctxt "date day number format" msgctxt "date day number format"
msgid "%d" msgid "%d"
msgstr "%d" msgstr "%d"
#: ../js/ui/calendar.js:783 #: ../js/ui/calendar.js:634
msgid "Week %V" msgid "Week %V"
msgstr "Seachdain %V" msgstr "Seachdain %V"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. #.
#: ../js/ui/calendar.js:1188 #: ../js/ui/calendar.js:695
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Fad an latha" msgstr "Fad an latha"
#: ../js/ui/calendar.js:1295 #: ../js/ui/calendar.js:821
msgid "Clear section"
msgstr "Falamhaich an earrann"
#: ../js/ui/calendar.js:1522
msgid "Events" msgid "Events"
msgstr "Tachartasan" msgstr "Tachartasan"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:830
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d %B" msgstr "%A, %d %B"
#: ../js/ui/calendar.js:1535 #: ../js/ui/calendar.js:834
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A, %d %B, %Y" msgstr "%A, %d %B, %Y"
#: ../js/ui/calendar.js:1620 #: ../js/ui/calendar.js:919
msgid "Notifications" msgid "Notifications"
msgstr "Brathan" msgstr "Brathan"
#: ../js/ui/calendar.js:1771 #: ../js/ui/calendar.js:1070
msgid "No Notifications" msgid "No Notifications"
msgstr "Chan eil brath ann" msgstr "Chan eil brath ann"
#: ../js/ui/calendar.js:1774 #: ../js/ui/calendar.js:1073
msgid "No Events" msgid "No Events"
msgstr "Chan eil tachartas ann" msgstr "Chan eil tachartas ann"
@ -553,7 +600,7 @@ msgstr ""
#. Translators: this is the other person changing their old IM name to their new #. Translators: this is the other person changing their old IM name to their new
#. IM name. #. IM name.
#: ../js/ui/components/telepathyClient.js:759 #: ../js/ui/components/telepathyClient.js:760
#, javascript-format #, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "thug %s %s air" msgstr "thug %s %s air"
@ -762,11 +809,11 @@ msgid "Keyboard"
msgstr "Am meur-chlàr" msgstr "Am meur-chlàr"
#. translators: 'Hide' is a verb #. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66 #: ../js/ui/legacyTray.js:65
msgid "Hide tray" msgid "Hide tray"
msgstr "Falaich an treidhe" msgstr "Falaich an treidhe"
#: ../js/ui/legacyTray.js:107 #: ../js/ui/legacyTray.js:106
msgid "Status Icons" msgid "Status Icons"
msgstr "Ìomhaigheagan staide" msgstr "Ìomhaigheagan staide"
@ -794,7 +841,7 @@ msgstr "An comas"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1866
msgid "Disabled" msgid "Disabled"
msgstr "À comas" msgstr "À comas"
@ -818,10 +865,30 @@ msgstr "Seall am bun-tùs"
msgid "Web Page" msgid "Web Page"
msgstr "Duilleag-lìn" msgstr "Duilleag-lìn"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Falamhaich an earrann"
#: ../js/ui/messageTray.js:1486 #: ../js/ui/messageTray.js:1486
msgid "System Information" msgid "System Information"
msgstr "Fiosrachadh an t-siostaim" msgstr "Fiosrachadh an t-siostaim"
#: ../js/ui/mpris.js:194
#| msgctxt "program"
#| msgid "Unknown"
msgid "Unknown artist"
msgstr "Neach-ciùil nach aithne dhuinn"
#: ../js/ui/mpris.js:195
#| msgctxt "program"
#| msgid "Unknown"
msgid "Unknown title"
msgstr "Tiotal nach aithne dhuinn"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Meadhanan"
#: ../js/ui/overview.js:84 #: ../js/ui/overview.js:84
msgid "Undo" msgid "Undo"
msgstr "Neo-dhèan" msgstr "Neo-dhèan"
@ -902,7 +969,7 @@ msgstr[1] "%d bhrath ùr"
msgstr[2] "%d brathan ùra" msgstr[2] "%d brathan ùra"
msgstr[3] "%d brath ùr" msgstr[3] "%d brath ùr"
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:374 #: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:379
msgid "Lock" msgid "Lock"
msgstr "Glais" msgstr "Glais"
@ -1046,30 +1113,50 @@ msgstr "Soilleireachd"
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Seall co-dhealbhachd a' mheur-chlàir" msgstr "Seall co-dhealbhachd a' mheur-chlàir"
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177 #: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
msgid "Location Enabled" msgid "Location Enabled"
msgstr "Tha an t-ionad an comas" msgstr "Tha an t-ionad an comas"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178 #: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
msgid "Disable" msgid "Disable"
msgstr "Cuir à comas" msgstr "Cuir à comas"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:109
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "Roghainnean na prìobhaideachd" msgstr "Roghainnean na prìobhaideachd"
#: ../js/ui/status/location.js:176 #: ../js/ui/status/location.js:214
msgid "Location In Use" msgid "Location In Use"
msgstr "Tha an t-ionad 'ga chleachdadh" msgstr "Tha an t-ionad 'ga chleachdadh"
#: ../js/ui/status/location.js:180 #: ../js/ui/status/location.js:218
msgid "Location Disabled" msgid "Location Disabled"
msgstr "Tha an t-ionad à comas" msgstr "Tha an t-ionad à comas"
#: ../js/ui/status/location.js:181 #: ../js/ui/status/location.js:219
msgid "Enable" msgid "Enable"
msgstr "Cuir an comas" msgstr "Cuir an comas"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Diùlt an t-inntrigeadh"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Ceadaich an t-inntrigeadh"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "A bheil thu airson inntrigeadh dhan ionad agad a thoirt dha %s?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"'S urrainn dhut inntrigeadh an ionaid atharrachadh uair sam bith ann an "
"roghainnean na prìobhaideachd."
#: ../js/ui/status/network.js:101 #: ../js/ui/status/network.js:101
msgid "<unknown>" msgid "<unknown>"
msgstr "<neo-aithnichte>" msgstr "<neo-aithnichte>"
@ -1254,34 +1341,37 @@ msgstr "Dh'fhàillig leis a' cheangal"
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Dh'fhàillig gnìomhachadh a' cheangail ris an lìonra" msgstr "Dh'fhàillig gnìomhachadh a' cheangail ris an lìonra"
#: ../js/ui/status/power.js:49 #: ../js/ui/status/power.js:61
msgid "Power Settings" msgid "Power Settings"
msgstr "Roghainnean na cumhachd" msgstr "Roghainnean na cumhachd"
#: ../js/ui/status/power.js:65 #: ../js/ui/status/power.js:77
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Air a làn-teairrdseadh" msgstr "Air a làn-teairrdseadh"
#. 0 is reported when UPower does not have enough data #. 0 is reported when UPower does not have enough data
#. to estimate battery life #. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78 #: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
msgid "Estimating…" msgid "Estimating…"
msgstr "'Ga thuairmeas…" msgstr "'Ga thuairmeas…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>) #. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:98
#, javascript-format #, javascript-format
#| msgid "%d%02d Remaining (%d%%)"
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "%d%02d air fhàgail (%d%%)" msgstr "%d%02d air fhàgail (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>) #. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91 #: ../js/ui/status/power.js:103
#, javascript-format #, javascript-format
#| msgid "%d%02d Until Full (%d%%)"
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "%d%02d gus am bi e làn (%d%%)" msgstr "%d%02d gus am bi e làn (%d%%)"
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
#, javascript-format
msgid "%d%%"
msgstr "%d%%"
#. The menu only appears when airplane mode is on, so just #. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically #. statically build it as if it was on, rather than dynamically
#. changing the menu contents. #. changing the menu contents.
@ -1289,27 +1379,27 @@ msgstr "%d%02d gus am bi e làn (%d%%)"
msgid "Airplane Mode On" msgid "Airplane Mode On"
msgstr "Modh itealain air" msgstr "Modh itealain air"
#: ../js/ui/status/system.js:343 #: ../js/ui/status/system.js:348
msgid "Switch User" msgid "Switch User"
msgstr "Leum gu cleachdaiche eile" msgstr "Leum gu cleachdaiche eile"
#: ../js/ui/status/system.js:348 #: ../js/ui/status/system.js:353
msgid "Log Out" msgid "Log Out"
msgstr "Clàraich a-mach" msgstr "Clàraich a-mach"
#: ../js/ui/status/system.js:353 #: ../js/ui/status/system.js:358
msgid "Account Settings" msgid "Account Settings"
msgstr "Roghainnean a' chunntais" msgstr "Roghainnean a' chunntais"
#: ../js/ui/status/system.js:370 #: ../js/ui/status/system.js:375
msgid "Orientation Lock" msgid "Orientation Lock"
msgstr "Glais na comhair" msgstr "Glais na comhair"
#: ../js/ui/status/system.js:378 #: ../js/ui/status/system.js:383
msgid "Suspend" msgid "Suspend"
msgstr "Cuir 'na dhàil" msgstr "Cuir 'na dhàil"
#: ../js/ui/status/system.js:381 #: ../js/ui/status/system.js:386
msgid "Power Off" msgid "Power Off"
msgstr "Cuir a' chumhachd dheth" msgstr "Cuir a' chumhachd dheth"
@ -1321,10 +1411,6 @@ msgstr "Dh'atharraich àirde na fuaime"
msgid "Volume" msgid "Volume"
msgstr "Àirde na fuaime" msgstr "Àirde na fuaime"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Micreofon"
#: ../js/ui/unlockDialog.js:67 #: ../js/ui/unlockDialog.js:67
msgid "Log in as another user" msgid "Log in as another user"
msgstr "Clàraich an-steach mar chleachdaiche eile" msgstr "Clàraich an-steach mar chleachdaiche eile"
@ -1451,7 +1537,7 @@ msgstr "Mìosachan Evolution"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1835 #: ../src/gvc/gvc-mixer-control.c:1873
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1462,7 +1548,7 @@ msgstr[3] "%u às-chur"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1845 #: ../src/gvc/gvc-mixer-control.c:1883
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
@ -1471,7 +1557,7 @@ msgstr[1] "%u ion-chur"
msgstr[2] "%u ion-chuir" msgstr[2] "%u ion-chuir"
msgstr[3] "%u ion-chur" msgstr[3] "%u ion-chur"
#: ../src/gvc/gvc-mixer-control.c:2371 #: ../src/gvc/gvc-mixer-control.c:2738
msgid "System Sounds" msgid "System Sounds"
msgstr "Fuaimean an t-siostaim" msgstr "Fuaimean an t-siostaim"

1775
po/hr.po Normal file

File diff suppressed because it is too large Load Diff

330
po/id.po
View File

@ -7,12 +7,12 @@
# Wibiharto <wibinem@yahoo.com>, 2011. # Wibiharto <wibinem@yahoo.com>, 2011.
msgid "" msgid ""
msgstr "" 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-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2016-01-02 10:15+0000\n" "POT-Creation-Date: 2016-05-10 20:28+0000\n"
"PO-Revision-Date: 2016-01-02 19:12+0700\n" "PO-Revision-Date: 2016-06-24 17:51+0700\n"
"Last-Translator: Andika Triwidada <andika@gmail.com>\n" "Last-Translator: Andika Triwidada <atriwidada@gnome.org>\n"
"Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n" "Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n"
"Language: id\n" "Language: id\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -20,7 +20,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
"X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-SourceCharset: UTF-8\n"
"X-Generator: Poedit 1.8.4\n" "X-Generator: Poedit 1.6.10\n"
#: ../data/50-gnome-shell-system.xml.in.h:1 #: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System" msgid "System"
@ -46,15 +46,6 @@ msgstr "Tampilkan semua aplikasi"
msgid "Open the application menu" msgid "Open the application menu"
msgstr "Buka menu aplikasi" 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 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "Preferensi Ekstensi GNOME Shell" msgstr "Preferensi Ekstensi GNOME Shell"
@ -63,9 +54,13 @@ msgstr "Preferensi Ekstensi GNOME Shell"
msgid "Configure GNOME Shell Extensions" msgid "Configure GNOME Shell Extensions"
msgstr "Konfigurasi Ekstensi GNOME Shell" msgstr "Konfigurasi Ekstensi GNOME Shell"
#: ../data/gnome-shell-wayland.desktop.in.in.h:1 #: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)" msgid "GNOME Shell"
msgstr "GNOME Shell (kompositor wayland)" 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 #: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2" msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -173,76 +168,95 @@ msgstr ""
"menata keadaan baku dari kontak contreng." "menata keadaan baku dari kontak contreng."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18 #: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
"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" msgid "Show the week date in the calendar"
msgstr "Menampilkan tanggal pada kalender" 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." msgid "If true, display the ISO week date in the calendar."
msgstr "Jika \"true\", menampilkan tanggal berformat ISO pada kalender." 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" msgid "Keybinding to open the application menu"
msgstr "Kombinasi tombol untuk membuka menu aplikasi" 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." msgid "Keybinding to open the application menu."
msgstr "Kombinasi tombol untuk membuka menu aplikasi." 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" msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Kombinasi tombol untuk membuka tilikan \"Tampilkan Aplikasi\"" 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 "" msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview." "Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr "" msgstr ""
"Kombinasi tombol untuk membuka tilikan Ringkasan Aktivitas \"Tampilkan " "Kombinasi tombol untuk membuka tilikan Ringkasan Aktivitas \"Tampilkan "
"Aplikasi\"." "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" msgid "Keybinding to open the overview"
msgstr "Kombinasi tombol untuk membuka ringkasan" 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." msgid "Keybinding to open the Activities Overview."
msgstr "Kombinasi tombol untuk membuka Ringkasan Aktivitas." 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" msgid "Keybinding to toggle the visibility of the notification list"
msgstr "Kombinasi tombol untuk kenampakan daftar pemberitahuan" 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." msgid "Keybinding to toggle the visibility of the notification list."
msgstr "Kombinasi tombol untuk kenampakan daftar pemberitahuan." 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" msgid "Keybinding to focus the active notification"
msgstr "Kombinasi tombol untuk fokus pada pemberitahuan yang aktif" 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." msgid "Keybinding to focus the active notification."
msgstr "Kombinasi tombol untuk fokus pada pemberitahuan yang aktif." 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 "" msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes" "Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr "" msgstr ""
"Pengikatan tombol yang mengistirahatkan dan melanjutkan semua tween yang " "Pengikatan tombol yang mengistirahatkan dan melanjutkan semua tween yang "
"sedang berjalan, untuk tujuan pengawakutuan." "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" msgid "Which keyboard to use"
msgstr "Papan tik mana yang akan dipakai" 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." msgid "The type of keyboard to use."
msgstr "Jenis papan tik yang akan dipakai." 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." msgid "Limit switcher to current workspace."
msgstr "Batasi pengalih ke ruang kerja saat ini." 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 "" msgid ""
"If true, only applications that have windows on the current workspace are " "If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included." "shown in the switcher. Otherwise, all applications are included."
@ -250,11 +264,11 @@ msgstr ""
"Bila berisi true, hanya aplikasi yang punya jendela pada ruang kerja saat " "Bila berisi true, hanya aplikasi yang punya jendela pada ruang kerja saat "
"ini ditampilkan pada penukar. Bila tidak, semua aplikasi disertakan." "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." msgid "The application icon mode."
msgstr "Mode ikon aplikasi." 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 "" msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities " "Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-" "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
@ -264,7 +278,7 @@ msgstr ""
"adalah 'thumbnail-only' (menampilkan gambar mini dari jendela), 'app-icon-" "adalah 'thumbnail-only' (menampilkan gambar mini dari jendela), 'app-icon-"
"only' (hanya menampilkan ikon aplikasi), atau 'both' (keduanya)." "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 "" msgid ""
"If true, only windows from the current workspace are shown in the switcher. " "If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included." "Otherwise, all windows are included."
@ -272,31 +286,31 @@ msgstr ""
"Bila berisi true, hanya jendela dari ruang kerja saat ini ditampilkan pada " "Bila berisi true, hanya jendela dari ruang kerja saat ini ditampilkan pada "
"penukar. Bila tidak, semua jendela disertakan." "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" msgid "Attach modal dialog to the parent window"
msgstr "Mencantolkan dialog modal ke jendela induk" 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 "" msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "" msgstr ""
"Kunci ini menimpa kunci dalam org.gnome.mutter ketika menjalankan GNOME " "Kunci ini menimpa kunci dalam org.gnome.mutter ketika menjalankan GNOME "
"Shell." "Shell."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40 #: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "" msgstr ""
"Memfungsikan pengubinan tepi ketika menjatuhkan jendela pada tepi layar" "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" msgid "Workspaces are managed dynamically"
msgstr "Ruang kerja dikelola secara dinamis" 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" msgid "Workspaces only on primary monitor"
msgstr "Ruang kerja hanya pada monitor primer" 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" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "" msgstr ""
"Tunda perubahan fokus dalam mode tetikus sampai penunjuk berhenti bergerak" "Tunda perubahan fokus dalam mode tetikus sampai penunjuk berhenti bergerak"
@ -305,33 +319,34 @@ msgstr ""
msgid "Network Login" msgid "Network Login"
msgstr "Log Masuk Jaringan" msgstr "Log Masuk Jaringan"
#: ../js/extensionPrefs/main.js:122 #: ../js/extensionPrefs/main.js:117
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "Ada galat saat memuat dialog preferensi bagi %s:" msgstr "Ada galat saat memuat dialog preferensi bagi %s:"
#: ../js/extensionPrefs/main.js:154 #: ../js/extensionPrefs/main.js:149
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "Ekstensi GNOME Shell" 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/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916 #: ../js/ui/status/network.js:916
msgid "Cancel" msgid "Cancel"
msgstr "Batal" msgstr "Batal"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215 #: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:447 #: ../js/gdm/authPrompt.js:448
msgid "Next" msgid "Next"
msgstr "Selanjutnya" 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 #: ../js/ui/unlockDialog.js:59
msgid "Unlock" msgid "Unlock"
msgstr "Buka Kunci" msgstr "Buka Kunci"
#: ../js/gdm/authPrompt.js:213 #: ../js/gdm/authPrompt.js:214
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Masuk" msgstr "Masuk"
@ -498,16 +513,36 @@ msgstr "Tambah ke Favorit"
msgid "Show Details" msgid "Show Details"
msgstr "Tampilkan Rincian" msgstr "Tampilkan Rincian"
#: ../js/ui/appFavorites.js:132 #: ../js/ui/appFavorites.js:134
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "%s telah ditambahkan ke favorit Anda." msgstr "%s telah ditambahkan ke favorit Anda."
#: ../js/ui/appFavorites.js:166 #: ../js/ui/appFavorites.js:168
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s telah dihapus dari favorit Anda." 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 #: ../js/ui/backgroundMenu.js:19
msgid "Change Background…" msgid "Change Background…"
msgstr "Ubah Latar…" msgstr "Ubah Latar…"
@ -516,12 +551,12 @@ msgstr "Ubah Latar…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Pengaturan Tampilan" 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" msgid "Settings"
msgstr "Pengaturan" msgstr "Pengaturan"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). #. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:55 #: ../js/ui/calendar.js:47
msgctxt "calendar-no-work" msgctxt "calendar-no-work"
msgid "06" msgid "06"
msgstr "06" msgstr "06"
@ -531,94 +566,96 @@ msgstr "06"
#. * NOTE: These grid abbreviations are always shown together #. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S". #. * and in order, e.g. "S M T W T F S".
#. #.
#: ../js/ui/calendar.js:84 #: ../js/ui/calendar.js:76
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "M" msgstr "M"
#. Translators: Calendar grid abbreviation for Monday #. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:86 #: ../js/ui/calendar.js:78
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "S" msgstr "S"
#. Translators: Calendar grid abbreviation for Tuesday #. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:88 #: ../js/ui/calendar.js:80
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "S" msgstr "S"
#. Translators: Calendar grid abbreviation for Wednesday #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:90 #: ../js/ui/calendar.js:82
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "R" msgstr "R"
#. Translators: Calendar grid abbreviation for Thursday #. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:92 #: ../js/ui/calendar.js:84
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "K" msgstr "K"
#. Translators: Calendar grid abbreviation for Friday #. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:94 #: ../js/ui/calendar.js:86
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "J" msgstr "J"
#. Translators: Calendar grid abbreviation for Saturday #. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:96 #: ../js/ui/calendar.js:88
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
msgstr "S" msgstr "S"
#: ../js/ui/calendar.js:566 #: ../js/ui/calendar.js:416
msgid "Previous month" msgid "Previous month"
msgstr "Bulan sebelumnya" msgstr "Bulan sebelumnya"
#: ../js/ui/calendar.js:576 #: ../js/ui/calendar.js:426
msgid "Next month" msgid "Next month"
msgstr "Bulan selanjutnya" 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" msgid "Week %V"
msgstr "Minggu %V" msgstr "Minggu %V"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. #.
#: ../js/ui/calendar.js:1188 #: ../js/ui/calendar.js:695
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Sepanjang Hari" msgstr "Sepanjang Hari"
#: ../js/ui/calendar.js:1295 #: ../js/ui/calendar.js:821
msgid "Clear section"
msgstr "Bersihkan seksi"
#: ../js/ui/calendar.js:1522
msgid "Events" msgid "Events"
msgstr "Kejadian" msgstr "Kejadian"
#: ../js/ui/calendar.js:1531 #: ../js/ui/calendar.js:830
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d %B" msgstr "%A, %d %B"
#: ../js/ui/calendar.js:1535 #: ../js/ui/calendar.js:834
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A, %d %B %Y" msgstr "%A, %d %B %Y"
#: ../js/ui/calendar.js:1620 #: ../js/ui/calendar.js:919
msgid "Notifications" msgid "Notifications"
msgstr "Pemberitahuan" msgstr "Pemberitahuan"
#: ../js/ui/calendar.js:1771 #: ../js/ui/calendar.js:1070
msgid "No Notifications" msgid "No Notifications"
msgstr "Tak Ada Pemberitahuan" msgstr "Tak Ada Pemberitahuan"
#: ../js/ui/calendar.js:1774 #: ../js/ui/calendar.js:1073
msgid "No Events" msgid "No Events"
msgstr "Tak Ada Kejadian" msgstr "Tak Ada Kejadian"
@ -630,7 +667,7 @@ msgstr "Drive eksternal tersambung"
msgid "External drive disconnected" msgid "External drive disconnected"
msgstr "Drive eksternal terputus" msgstr "Drive eksternal terputus"
#: ../js/ui/components/autorunManager.js:351 #: ../js/ui/components/autorunManager.js:355
#, javascript-format #, javascript-format
msgid "Open with %s" msgid "Open with %s"
msgstr "Buka dengan %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 #. Translators: this is the other person changing their old IM name to their new
#. IM name. #. IM name.
#: ../js/ui/components/telepathyClient.js:759 #: ../js/ui/components/telepathyClient.js:760
#, javascript-format #, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "%s sekarang dikenal sebagai %s" msgstr "%s sekarang dikenal sebagai %s"
@ -936,11 +973,11 @@ msgid "Keyboard"
msgstr "Papan Ketik" msgstr "Papan Ketik"
#. translators: 'Hide' is a verb #. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66 #: ../js/ui/legacyTray.js:65
msgid "Hide tray" msgid "Hide tray"
msgstr "Sembunyikan baki" msgstr "Sembunyikan baki"
#: ../js/ui/legacyTray.js:107 #: ../js/ui/legacyTray.js:106
msgid "Status Icons" msgid "Status Icons"
msgstr "Ikon Status" msgstr "Ikon Status"
@ -968,7 +1005,7 @@ msgstr "Diaktifkan"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1866
msgid "Disabled" msgid "Disabled"
msgstr "Dinonaktifkan" msgstr "Dinonaktifkan"
@ -992,10 +1029,26 @@ msgstr "Tilik Sumber"
msgid "Web Page" msgid "Web Page"
msgstr "Halaman Web" msgstr "Halaman Web"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Bersihkan seksi"
#: ../js/ui/messageTray.js:1486 #: ../js/ui/messageTray.js:1486
msgid "System Information" msgid "System Information"
msgstr "Informasi Sistem" 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 #: ../js/ui/overview.js:84
msgid "Undo" msgid "Undo"
msgstr "Batal" msgstr "Batal"
@ -1041,15 +1094,15 @@ msgstr "Bar Atas"
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:70 #: ../js/ui/runDialog.js:71
msgid "Enter a Command" msgid "Enter a Command"
msgstr "Ketikkan Perintah" 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" msgid "Close"
msgstr "Tutup" msgstr "Tutup"
#: ../js/ui/runDialog.js:281 #: ../js/ui/runDialog.js:282
msgid "Restarting…" msgid "Restarting…"
msgstr "Memulai ulang..." msgstr "Memulai ulang..."
@ -1071,7 +1124,7 @@ msgid "%d new notification"
msgid_plural "%d new notifications" msgid_plural "%d new notifications"
msgstr[0] "%d pemberitahuan baru" 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" msgid "Lock"
msgstr "Kunci" msgstr "Kunci"
@ -1170,28 +1223,40 @@ msgstr "Kontras Tinggi"
msgid "Large Text" msgid "Large Text"
msgstr "Teks Besar" msgstr "Teks Besar"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178 #: ../js/ui/status/bluetooth.js:47
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279 msgid "Bluetooth"
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90 msgstr "Bluetooth"
#: ../js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Matikan"
#: ../js/ui/status/bluetooth.js:54 #: ../js/ui/status/bluetooth.js:56
msgid "Bluetooth Settings" msgid "Bluetooth Settings"
msgstr "Pengaturan Bluetooth" msgstr "Pengaturan Bluetooth"
#. Translators: this is the number of connected bluetooth devices #. Translators: this is the number of connected bluetooth devices
#: ../js/ui/status/bluetooth.js:105 #: ../js/ui/status/bluetooth.js:136
#, javascript-format #, javascript-format
msgid "%d Connected" msgid "%d Connected"
msgid_plural "%d Connected" msgid_plural "%d Connected"
msgstr[0] "%d Tersambung" 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" msgid "Not In Use"
msgstr "Tidak Dipakai" 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 #: ../js/ui/status/brightness.js:44
msgid "Brightness" msgid "Brightness"
msgstr "Kecerahan" msgstr "Kecerahan"
@ -1200,30 +1265,48 @@ msgstr "Kecerahan"
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Tampilkan Tata Letak Papan Tik" 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" msgid "Location Enabled"
msgstr "Lokasi Diaktifkan" 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" msgid "Disable"
msgstr "Nonaktifkan" msgstr "Nonaktifkan"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:109
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "Pengaturan Privasi" msgstr "Pengaturan Privasi"
#: ../js/ui/status/location.js:176 #: ../js/ui/status/location.js:214
msgid "Location In Use" msgid "Location In Use"
msgstr "Lokasi Sedang Digunakan" msgstr "Lokasi Sedang Digunakan"
#: ../js/ui/status/location.js:180 #: ../js/ui/status/location.js:218
msgid "Location Disabled" msgid "Location Disabled"
msgstr "Koneksi Dinonaktifkan" msgstr "Koneksi Dinonaktifkan"
#: ../js/ui/status/location.js:181 #: ../js/ui/status/location.js:219
msgid "Enable" msgid "Enable"
msgstr "Fungsikan" 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 #: ../js/ui/status/network.js:101
msgid "<unknown>" msgid "<unknown>"
msgstr "<tak dikenal>" msgstr "<tak dikenal>"
@ -1359,10 +1442,6 @@ msgstr "Pilih Jaringan"
msgid "Wi-Fi Settings" msgid "Wi-Fi Settings"
msgstr "Pengaturan Wi-Fi" msgstr "Pengaturan Wi-Fi"
#: ../js/ui/status/network.js:1279
msgid "Turn On"
msgstr "Nyalakan"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: ../js/ui/status/network.js:1296 #: ../js/ui/status/network.js:1296
#, javascript-format #, javascript-format
@ -1412,32 +1491,37 @@ msgstr "Koneksi gagal"
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Aktivasi koneksi jaringan gagal" msgstr "Aktivasi koneksi jaringan gagal"
#: ../js/ui/status/power.js:49 #: ../js/ui/status/power.js:61
msgid "Power Settings" msgid "Power Settings"
msgstr "Pengaturan Daya" msgstr "Pengaturan Daya"
#: ../js/ui/status/power.js:65 #: ../js/ui/status/power.js:77
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Terisi Penuh" msgstr "Terisi Penuh"
#. 0 is reported when UPower does not have enough data #. 0 is reported when UPower does not have enough data
#. to estimate battery life #. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78 #: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
msgid "Estimating…" msgid "Estimating…"
msgstr "Memperkirakan…" msgstr "Memperkirakan…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>) #. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:98
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "%d:%02d Tersisa (%d%%)" msgstr "%d:%02d Tersisa (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>) #. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91 #: ../js/ui/status/power.js:103
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "%d:%02d Sampai Penuh (%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 #. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically #. statically build it as if it was on, rather than dynamically
#. changing the menu contents. #. changing the menu contents.
@ -1445,27 +1529,27 @@ msgstr "%d:%02d Sampai Penuh (%d%%)"
msgid "Airplane Mode On" msgid "Airplane Mode On"
msgstr "Mode Pesawat Terbang Aktif" msgstr "Mode Pesawat Terbang Aktif"
#: ../js/ui/status/system.js:343 #: ../js/ui/status/system.js:348
msgid "Switch User" msgid "Switch User"
msgstr "Ganti Pengguna" msgstr "Ganti Pengguna"
#: ../js/ui/status/system.js:348 #: ../js/ui/status/system.js:353
msgid "Log Out" msgid "Log Out"
msgstr "Keluar" msgstr "Keluar"
#: ../js/ui/status/system.js:353 #: ../js/ui/status/system.js:358
msgid "Account Settings" msgid "Account Settings"
msgstr "Pengaturan Akun" msgstr "Pengaturan Akun"
#: ../js/ui/status/system.js:370 #: ../js/ui/status/system.js:375
msgid "Orientation Lock" msgid "Orientation Lock"
msgstr "Kunci Orientasi" msgstr "Kunci Orientasi"
#: ../js/ui/status/system.js:378 #: ../js/ui/status/system.js:383
msgid "Suspend" msgid "Suspend"
msgstr "Suspensi" msgstr "Suspensi"
#: ../js/ui/status/system.js:381 #: ../js/ui/status/system.js:386
msgid "Power Off" msgid "Power Off"
msgstr "Matikan" msgstr "Matikan"
@ -1477,10 +1561,6 @@ msgstr "Volume diubah"
msgid "Volume" msgid "Volume"
msgstr "Volume" msgstr "Volume"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/unlockDialog.js:67 #: ../js/ui/unlockDialog.js:67
msgid "Log in as another user" msgid "Log in as another user"
msgstr "Masuk sebagai pengguna lain" msgstr "Masuk sebagai pengguna lain"
@ -1600,7 +1680,7 @@ msgstr "Evolution Kalender"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1835 #: ../src/gvc/gvc-mixer-control.c:1873
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1608,13 +1688,13 @@ msgstr[0] "%u Keluaran"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1845 #: ../src/gvc/gvc-mixer-control.c:1883
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
msgstr[0] "%u Masukan" msgstr[0] "%u Masukan"
#: ../src/gvc/gvc-mixer-control.c:2371 #: ../src/gvc/gvc-mixer-control.c:2738
msgid "System Sounds" msgid "System Sounds"
msgstr "Suara Sistem" msgstr "Suara Sistem"
@ -1644,14 +1724,14 @@ msgstr "Tak dikenal"
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Gagal meluncurkan \"%s\"" msgstr "Gagal meluncurkan \"%s\""
#: ../src/shell-keyring-prompt.c:742 #: ../src/shell-keyring-prompt.c:730
msgid "Passwords do not match." msgid "Passwords do not match."
msgstr "Sandi tidak cocok." msgstr "Sandi tidak cocok."
#: ../src/shell-keyring-prompt.c:750 #: ../src/shell-keyring-prompt.c:738
msgid "Password cannot be blank" msgid "Password cannot be blank"
msgstr "Sandi tidak boleh kosong" 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" msgid "Authentication dialog was dismissed by the user"
msgstr "Dialog otentikasi ditolak oleh pengguna" 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. # This file is distributed under the same license as the gnome-shell package.
# #
# Åka Sikrom <a4@hush.com>, 2014-2015. # Å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. # Torstein Adolf Winterseth <kvikende@fsfe.org>, 2010.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell 3.19.x\n" "Project-Id-Version: gnome-shell 3.20.x\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-01-07 22:59+0100\n" "POT-Creation-Date: 2016-05-03 23:34+0200\n"
"PO-Revision-Date: 2016-01-07 22:59+0100\n" "PO-Revision-Date: 2016-05-03 23:35+0200\n"
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n" "Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
"Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n" "Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n"
"Language: Norwegian bokmål\n" "Language: Norwegian bokmål\n"
@ -305,33 +305,34 @@ msgstr "Utsett fokusendringer i musmodus til peker slutter å bevege seg"
msgid "Network Login" msgid "Network Login"
msgstr "Nettverkspålogging" msgstr "Nettverkspålogging"
#: ../js/extensionPrefs/main.js:122 #: ../js/extensionPrefs/main.js:117
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "Det oppsto en feil ved lasting av brukervalgdialog for %s:" msgstr "Det oppsto en feil ved lasting av brukervalgdialog for %s:"
#: ../js/extensionPrefs/main.js:154 #: ../js/extensionPrefs/main.js:149
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "Utvidelser for GNOME Shell" msgstr "Utvidelser for GNOME Shell"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145 #: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452 #: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916 #: ../js/ui/status/network.js:916
msgid "Cancel" msgid "Cancel"
msgstr "Avbryt" msgstr "Avbryt"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215 #: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:447 #: ../js/gdm/authPrompt.js:448
msgid "Next" msgid "Next"
msgstr "Neste" msgstr "Neste"
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403 #: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59 #: ../js/ui/unlockDialog.js:59
msgid "Unlock" msgid "Unlock"
msgstr "Lås opp" msgstr "Lås opp"
#: ../js/gdm/authPrompt.js:213 #: ../js/gdm/authPrompt.js:214
msgctxt "button" msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Logg inn" msgstr "Logg inn"
@ -498,16 +499,36 @@ msgstr "Legg til i favoritter"
msgid "Show Details" msgid "Show Details"
msgstr "Vis detaljer" msgstr "Vis detaljer"
#: ../js/ui/appFavorites.js:133 #: ../js/ui/appFavorites.js:134
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "%s ble lagt til i favoritter." msgstr "%s ble lagt til i favoritter."
#: ../js/ui/appFavorites.js:167 #: ../js/ui/appFavorites.js:168
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s ble fjernet fra favoritter." msgstr "%s ble fjernet fra favoritter."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Velg lydenhet"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "Innstillinger for lyd"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Hodetelefoner"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Headset"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/backgroundMenu.js:19 #: ../js/ui/backgroundMenu.js:19
msgid "Change Background…" msgid "Change Background…"
msgstr "Bytt bakgrunn …" msgstr "Bytt bakgrunn …"
@ -516,12 +537,12 @@ msgstr "Bytt bakgrunn …"
msgid "Display Settings" msgid "Display Settings"
msgstr "Innstillinger for skjerm" msgstr "Innstillinger for skjerm"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:371
msgid "Settings" msgid "Settings"
msgstr "Innstillinger" msgstr "Innstillinger"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). #. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:55 #: ../js/ui/calendar.js:47
msgctxt "calendar-no-work" msgctxt "calendar-no-work"
msgid "06" msgid "06"
msgstr "06" msgstr "06"
@ -531,100 +552,96 @@ msgstr "06"
#. * NOTE: These grid abbreviations are always shown together #. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S". #. * and in order, e.g. "S M T W T F S".
#. #.
#: ../js/ui/calendar.js:84 #: ../js/ui/calendar.js:76
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "S" msgstr "S"
#. Translators: Calendar grid abbreviation for Monday #. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:86 #: ../js/ui/calendar.js:78
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "M" msgstr "M"
#. Translators: Calendar grid abbreviation for Tuesday #. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:88 #: ../js/ui/calendar.js:80
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "T" msgstr "T"
#. Translators: Calendar grid abbreviation for Wednesday #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:90 #: ../js/ui/calendar.js:82
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "O" msgstr "O"
#. Translators: Calendar grid abbreviation for Thursday #. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:92 #: ../js/ui/calendar.js:84
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "T" msgstr "T"
#. Translators: Calendar grid abbreviation for Friday #. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:94 #: ../js/ui/calendar.js:86
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "F" msgstr "F"
#. Translators: Calendar grid abbreviation for Saturday #. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:96 #: ../js/ui/calendar.js:88
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
msgstr "L" msgstr "L"
#: ../js/ui/calendar.js:566 #: ../js/ui/calendar.js:416
msgid "Previous month" msgid "Previous month"
msgstr "Forrige måned" msgstr "Forrige måned"
#: ../js/ui/calendar.js:576 #: ../js/ui/calendar.js:426
msgid "Next month" msgid "Next month"
msgstr "Neste måned" msgstr "Neste måned"
#: ../js/ui/calendar.js:729 #: ../js/ui/calendar.js:579
#, no-javascript-format #, no-javascript-format
msgctxt "date day number format" msgctxt "date day number format"
msgid "%d" msgid "%d"
msgstr "%d" msgstr "%d"
#: ../js/ui/calendar.js:784 #: ../js/ui/calendar.js:634
msgid "Week %V" msgid "Week %V"
msgstr "Uke %V" msgstr "Uke %V"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. #.
#: ../js/ui/calendar.js:1189 #: ../js/ui/calendar.js:695
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Hele dagen" msgstr "Hele dagen"
#: ../js/ui/calendar.js:1296 #: ../js/ui/calendar.js:821
msgid "Clear section"
msgstr "Tøm seksjon"
#: ../js/ui/calendar.js:1523
msgid "Events" msgid "Events"
msgstr "Hendelser" msgstr "Hendelser"
#: ../js/ui/calendar.js:1532 #: ../js/ui/calendar.js:830
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A %B %d" msgstr "%A %B %d"
#: ../js/ui/calendar.js:1536 #: ../js/ui/calendar.js:834
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
msgstr "%A %B %d, %Y" msgstr "%A %B %d, %Y"
#: ../js/ui/calendar.js:1621 #: ../js/ui/calendar.js:919
msgid "Notifications" msgid "Notifications"
msgstr "Varslinger" msgstr "Varslinger"
#: ../js/ui/calendar.js:1772 #: ../js/ui/calendar.js:1070
msgid "No Notifications" msgid "No Notifications"
msgstr "Ingen varslinger" msgstr "Ingen varslinger"
#: ../js/ui/calendar.js:1775 #: ../js/ui/calendar.js:1073
msgid "No Events" msgid "No Events"
msgstr "Ingen hendelser" msgstr "Ingen hendelser"
@ -762,7 +779,7 @@ msgstr "Beklager, det virket ikke. Prøv igjen."
#. Translators: this is the other person changing their old IM name to their new #. Translators: this is the other person changing their old IM name to their new
#. IM name. #. IM name.
#: ../js/ui/components/telepathyClient.js:759 #: ../js/ui/components/telepathyClient.js:760
#, javascript-format #, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "%s er nå kjent som %s" msgstr "%s er nå kjent som %s"
@ -949,11 +966,11 @@ msgid "Keyboard"
msgstr "Tastatur" msgstr "Tastatur"
#. translators: 'Hide' is a verb #. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:66 #: ../js/ui/legacyTray.js:65
msgid "Hide tray" msgid "Hide tray"
msgstr "Skjul statusområde" msgstr "Skjul statusområde"
#: ../js/ui/legacyTray.js:107 #: ../js/ui/legacyTray.js:106
msgid "Status Icons" msgid "Status Icons"
msgstr "Statusikoner" msgstr "Statusikoner"
@ -1005,10 +1022,26 @@ msgstr "Vis kildekode"
msgid "Web Page" msgid "Web Page"
msgstr "Nettside" msgstr "Nettside"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Tøm seksjon"
#: ../js/ui/messageTray.js:1486 #: ../js/ui/messageTray.js:1486
msgid "System Information" msgid "System Information"
msgstr "Systeminformasjon" msgstr "Systeminformasjon"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Ukjent artist"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "Ukjent tittel"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Media"
#: ../js/ui/overview.js:84 #: ../js/ui/overview.js:84
msgid "Undo" msgid "Undo"
msgstr "Angre" msgstr "Angre"
@ -1085,7 +1118,7 @@ msgid_plural "%d new notifications"
msgstr[0] "%d ny varsling" msgstr[0] "%d ny varsling"
msgstr[1] "%d nye varslinger" msgstr[1] "%d nye varslinger"
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:374 #: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:379
msgid "Lock" msgid "Lock"
msgstr "Lås" msgstr "Lås"
@ -1227,30 +1260,48 @@ msgstr "Lysstyrke"
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Vis tastaturutforming" msgstr "Vis tastaturutforming"
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177 #: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
msgid "Location Enabled" msgid "Location Enabled"
msgstr "Plassering slått på" msgstr "Plassering slått på"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178 #: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
msgid "Disable" msgid "Disable"
msgstr "Slå av" msgstr "Slå av"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:109
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "Innstillinger for personvern" msgstr "Innstillinger for personvern"
#: ../js/ui/status/location.js:176 #: ../js/ui/status/location.js:214
msgid "Location In Use" msgid "Location In Use"
msgstr "Plassering i bruk" msgstr "Plassering i bruk"
#: ../js/ui/status/location.js:180 #: ../js/ui/status/location.js:218
msgid "Location Disabled" msgid "Location Disabled"
msgstr "Plassering slått av" msgstr "Plassering slått av"
#: ../js/ui/status/location.js:181 #: ../js/ui/status/location.js:219
msgid "Enable" msgid "Enable"
msgstr "Slå på" msgstr "Slå på"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Nekt tilgang"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Gi tilgang"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Gi %s tilgang til din plassering?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr "Stedstilgang kan endres når som helst under innstillinger for personvern."
#: ../js/ui/status/network.js:101 #: ../js/ui/status/network.js:101
msgid "<unknown>" msgid "<unknown>"
msgstr "<ukjent>" msgstr "<ukjent>"
@ -1473,27 +1524,27 @@ msgstr "%d %%"
msgid "Airplane Mode On" msgid "Airplane Mode On"
msgstr "Flymodus er slått på" msgstr "Flymodus er slått på"
#: ../js/ui/status/system.js:343 #: ../js/ui/status/system.js:348
msgid "Switch User" msgid "Switch User"
msgstr "Bytt bruker" msgstr "Bytt bruker"
#: ../js/ui/status/system.js:348 #: ../js/ui/status/system.js:353
msgid "Log Out" msgid "Log Out"
msgstr "Logg ut" msgstr "Logg ut"
#: ../js/ui/status/system.js:353 #: ../js/ui/status/system.js:358
msgid "Account Settings" msgid "Account Settings"
msgstr "Innstillinger for konto" msgstr "Innstillinger for konto"
#: ../js/ui/status/system.js:370 #: ../js/ui/status/system.js:375
msgid "Orientation Lock" msgid "Orientation Lock"
msgstr "Lås for orientering" msgstr "Lås for orientering"
#: ../js/ui/status/system.js:378 #: ../js/ui/status/system.js:383
msgid "Suspend" msgid "Suspend"
msgstr "Hvilemodus" msgstr "Hvilemodus"
#: ../js/ui/status/system.js:381 #: ../js/ui/status/system.js:386
msgid "Power Off" msgid "Power Off"
msgstr "Slå av" msgstr "Slå av"
@ -1505,10 +1556,6 @@ msgstr "Volum endret"
msgid "Volume" msgid "Volume"
msgstr "Volum" msgstr "Volum"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/unlockDialog.js:67 #: ../js/ui/unlockDialog.js:67
msgid "Log in as another user" msgid "Log in as another user"
msgstr "Logg inn som en annen bruker" msgstr "Logg inn som en annen bruker"

View File

@ -12,8 +12,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell\n" "Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-03-10 17:25+0100\n" "POT-Creation-Date: 2016-07-12 21:20+0200\n"
"PO-Revision-Date: 2016-03-10 17:27+0100\n" "PO-Revision-Date: 2016-07-12 21:21+0200\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n" "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <gnomepl@aviary.pl>\n" "Language-Team: Polish <gnomepl@aviary.pl>\n"
"Language: pl\n" "Language: pl\n"
@ -325,13 +325,13 @@ msgstr ""
msgid "Network Login" msgid "Network Login"
msgstr "Logowanie do sieci" msgstr "Logowanie do sieci"
#: ../js/extensionPrefs/main.js:121 #: ../js/extensionPrefs/main.js:117
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "" msgstr ""
"Wystąpił błąd podczas wczytywania okna preferencji dla rozszerzenia „%s”:" "Wystąpił błąd podczas wczytywania okna preferencji dla rozszerzenia „%s”:"
#: ../js/extensionPrefs/main.js:153 #: ../js/extensionPrefs/main.js:149
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "Rozszerzenia powłoki GNOME" msgstr "Rozszerzenia powłoki GNOME"
@ -558,7 +558,7 @@ msgstr "Zmień tło…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Ustawienia ekranu" msgstr "Ustawienia ekranu"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:371
msgid "Settings" msgid "Settings"
msgstr "Ustawienia" msgstr "Ustawienia"
@ -800,7 +800,7 @@ msgstr "To nie zadziałało. Proszę spróbować ponownie."
#. Translators: this is the other person changing their old IM name to their new #. Translators: this is the other person changing their old IM name to their new
#. IM name. #. IM name.
#: ../js/ui/components/telepathyClient.js:759 #: ../js/ui/components/telepathyClient.js:760
#, javascript-format #, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "Użytkownik %s jest teraz znany jako %s" msgstr "Użytkownik %s jest teraz znany jako %s"
@ -1025,7 +1025,7 @@ msgstr "Włączone"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1866
msgid "Disabled" msgid "Disabled"
msgstr "Wyłączone" msgstr "Wyłączone"
@ -1115,7 +1115,7 @@ msgstr "toggle-switch-intl"
#: ../js/ui/runDialog.js:71 #: ../js/ui/runDialog.js:71
msgid "Enter a Command" msgid "Enter a Command"
msgstr "Proszę wprowadzić polecenie" msgstr "Proszę wprowadzić polecenie:"
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162 #: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
msgid "Close" msgid "Close"
@ -1147,7 +1147,7 @@ msgstr[0] "%d nowe powiadomienie"
msgstr[1] "%d nowe powiadomienia" msgstr[1] "%d nowe powiadomienia"
msgstr[2] "%d nowych powiadomień" msgstr[2] "%d nowych powiadomień"
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:374 #: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:379
msgid "Lock" msgid "Lock"
msgstr "Zablokuj ekran" msgstr "Zablokuj ekran"
@ -1555,27 +1555,27 @@ msgstr "%d%%"
msgid "Airplane Mode On" msgid "Airplane Mode On"
msgstr "Włączono tryb samolotowy" msgstr "Włączono tryb samolotowy"
#: ../js/ui/status/system.js:343 #: ../js/ui/status/system.js:348
msgid "Switch User" msgid "Switch User"
msgstr "Przełącz użytkownika" msgstr "Przełącz użytkownika"
#: ../js/ui/status/system.js:348 #: ../js/ui/status/system.js:353
msgid "Log Out" msgid "Log Out"
msgstr "Wyloguj się" msgstr "Wyloguj się"
#: ../js/ui/status/system.js:353 #: ../js/ui/status/system.js:358
msgid "Account Settings" msgid "Account Settings"
msgstr "Ustawienia konta" msgstr "Ustawienia konta"
#: ../js/ui/status/system.js:370 #: ../js/ui/status/system.js:375
msgid "Orientation Lock" msgid "Orientation Lock"
msgstr "Blokada orientacji" msgstr "Blokada orientacji"
#: ../js/ui/status/system.js:378 #: ../js/ui/status/system.js:383
msgid "Suspend" msgid "Suspend"
msgstr "Uśpij" msgstr "Uśpij"
#: ../js/ui/status/system.js:381 #: ../js/ui/status/system.js:386
msgid "Power Off" msgid "Power Off"
msgstr "Wyłącz komputer" msgstr "Wyłącz komputer"
@ -1708,7 +1708,7 @@ msgstr "Kalendarz programu Evolution"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1835 #: ../src/gvc/gvc-mixer-control.c:1873
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1718,7 +1718,7 @@ msgstr[2] "%u wyjść"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1845 #: ../src/gvc/gvc-mixer-control.c:1883
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
@ -1726,7 +1726,7 @@ msgstr[0] "%u wejście"
msgstr[1] "%u wejścia" msgstr[1] "%u wejścia"
msgstr[2] "%u wejść" msgstr[2] "%u wejść"
#: ../src/gvc/gvc-mixer-control.c:2371 #: ../src/gvc/gvc-mixer-control.c:2738
msgid "System Sounds" msgid "System Sounds"
msgstr "Dźwięki systemowe" msgstr "Dźwięki systemowe"
@ -1767,3 +1767,16 @@ msgstr "Hasło nie może być puste"
#: ../src/shell-polkit-authentication-agent.c:353 #: ../src/shell-polkit-authentication-agent.c:353
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "Okno dialogowe uwierzytelnienia zostało odrzucone przez użytkownika" msgstr "Okno dialogowe uwierzytelnienia zostało odrzucone przez użytkownika"
msgctxt "title"
msgid "Restart & Install Upgrade"
msgstr "Ponowne uruchomienie i instalacja aktualizacji"
msgid ""
"%s %s will be installed after restart. Upgrade installation can take a "
"long time: ensure that you have backed up and that the computer is "
"plugged in."
msgstr ""
"System %s %s zostanie zainstalowany po ponownym uruchomieniu. Instalacja "
"aktualizacji może zająć dużo czasu. Proszę się upewnić, że wykonano kopię "
"zapasową danych i podłączono komputer do prądu."

198
po/pt.po
View File

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

View File

@ -14,7 +14,7 @@ msgstr ""
"Project-Id-Version: gnome-shell\n" "Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2016-03-19 10:22+0000\n" "POT-Creation-Date: 2016-09-10 21:51+0000\n"
"PO-Revision-Date: 2016-03-19 20:56+0200\n" "PO-Revision-Date: 2016-03-19 20:56+0200\n"
"Last-Translator: Muhammet Kara <muhammetk@gmail.com>\n" "Last-Translator: Muhammet Kara <muhammetk@gmail.com>\n"
"Language-Team: Turkish <gnome-turk@gnome.org>\n" "Language-Team: Turkish <gnome-turk@gnome.org>\n"
@ -368,7 +368,7 @@ msgstr "Listede yok mu?"
#. Translators: this message is shown below the username entry field #. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm #. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:854 #: ../js/gdm/loginDialog.js:859
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(örneğin, kullanıcı veya %s)" msgstr "(örneğin, kullanıcı veya %s)"
@ -376,12 +376,12 @@ msgstr "(örneğin, kullanıcı veya %s)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271 #: ../js/gdm/loginDialog.js:864 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289 #: ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
msgstr "Kullanıcı Adı: " msgstr "Kullanıcı Adı: "
#: ../js/gdm/loginDialog.js:1196 #: ../js/gdm/loginDialog.js:1201
msgid "Login Window" msgid "Login Window"
msgstr "Oturum Açma Penceresi" msgstr "Oturum Açma Penceresi"
@ -532,7 +532,6 @@ msgid "Select Audio Device"
msgstr "Ses Aygıtı Seç" msgstr "Ses Aygıtı Seç"
#: ../js/ui/audioDeviceSelection.js:69 #: ../js/ui/audioDeviceSelection.js:69
#| msgid "Account Settings"
msgid "Sound Settings" msgid "Sound Settings"
msgstr "Ses Ayarları" msgstr "Ses Ayarları"
@ -556,7 +555,7 @@ msgstr "Arkaplanı Değiştir…"
msgid "Display Settings" msgid "Display Settings"
msgstr "Görüntü Ayarları" msgstr "Görüntü Ayarları"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:371
msgid "Settings" msgid "Settings"
msgstr "Ayarlar" msgstr "Ayarlar"
@ -1010,7 +1009,7 @@ msgstr "Etkin"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1866
msgid "Disabled" msgid "Disabled"
msgstr "Devre dışı" msgstr "Devre dışı"
@ -1043,13 +1042,10 @@ msgid "System Information"
msgstr "Sistem Bilgisi" msgstr "Sistem Bilgisi"
#: ../js/ui/mpris.js:194 #: ../js/ui/mpris.js:194
#| msgid "Unknown reason"
msgid "Unknown artist" msgid "Unknown artist"
msgstr "Bilinmeyen sanatçı" msgstr "Bilinmeyen sanatçı"
#: ../js/ui/mpris.js:195 #: ../js/ui/mpris.js:195
#| msgctxt "program"
#| msgid "Unknown"
msgid "Unknown title" msgid "Unknown title"
msgstr "Bilinmeyen başlık" msgstr "Bilinmeyen başlık"
@ -1131,7 +1127,7 @@ msgid "%d new notification"
msgid_plural "%d new notifications" msgid_plural "%d new notifications"
msgstr[0] "%d yeni bildirim" msgstr[0] "%d yeni bildirim"
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:374 #: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:379
msgid "Lock" msgid "Lock"
msgstr "Kilitle" msgstr "Kilitle"
@ -1536,27 +1532,27 @@ msgstr "%% %d"
msgid "Airplane Mode On" msgid "Airplane Mode On"
msgstr "Uçak Kipi Açık" msgstr "Uçak Kipi Açık"
#: ../js/ui/status/system.js:343 #: ../js/ui/status/system.js:348
msgid "Switch User" msgid "Switch User"
msgstr "Kullanıcı Değiştir" msgstr "Kullanıcı Değiştir"
#: ../js/ui/status/system.js:348 #: ../js/ui/status/system.js:353
msgid "Log Out" msgid "Log Out"
msgstr "Oturumu Kapat" msgstr "Oturumu Kapat"
#: ../js/ui/status/system.js:353 #: ../js/ui/status/system.js:358
msgid "Account Settings" msgid "Account Settings"
msgstr "Hesap Ayarları" msgstr "Hesap Ayarları"
#: ../js/ui/status/system.js:370 #: ../js/ui/status/system.js:375
msgid "Orientation Lock" msgid "Orientation Lock"
msgstr "Yönelim Kilidi" msgstr "Yönelim Kilidi"
#: ../js/ui/status/system.js:378 #: ../js/ui/status/system.js:383
msgid "Suspend" msgid "Suspend"
msgstr "Beklet" msgstr "Beklet"
#: ../js/ui/status/system.js:381 #: ../js/ui/status/system.js:386
msgid "Power Off" msgid "Power Off"
msgstr "Kapat" msgstr "Kapat"
@ -1627,7 +1623,7 @@ msgstr "Önceki Boyut"
#: ../js/ui/windowMenu.js:45 #: ../js/ui/windowMenu.js:45
msgid "Maximize" msgid "Maximize"
msgstr "En üst düzeye çıkar" msgstr "Ekranı kapla"
#: ../js/ui/windowMenu.js:52 #: ../js/ui/windowMenu.js:52
msgid "Move" msgid "Move"
@ -1687,7 +1683,7 @@ msgstr "Evolution Takvim"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1835 #: ../src/gvc/gvc-mixer-control.c:1873
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1695,13 +1691,13 @@ msgstr[0] "%u Çıktı"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1845 #: ../src/gvc/gvc-mixer-control.c:1883
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
msgstr[0] "%u Girdi" msgstr[0] "%u Girdi"
#: ../src/gvc/gvc-mixer-control.c:2371 #: ../src/gvc/gvc-mixer-control.c:2738
msgid "System Sounds" msgid "System Sounds"
msgstr "Sistem Sesleri" msgstr "Sistem Sesleri"

View File

@ -16,22 +16,23 @@
# Tong Hui <tonghuix@gmail.com>, 2013, 2014, 2015. # Tong Hui <tonghuix@gmail.com>, 2013, 2014, 2015.
# Aron Xu <aronxu@gnome.org>, 2010, 2011, 2012, 2013, 2015, 2016. # Aron Xu <aronxu@gnome.org>, 2010, 2011, 2012, 2013, 2015, 2016.
# liushuyu <liushuyu_011@126.com>, 2015. # liushuyu <liushuyu_011@126.com>, 2015.
# Dingzhong Chen <wsxy162@gmail.com>, 2016.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2016-03-25 22:36+0000\n" "POT-Creation-Date: 2017-05-19 12:32+0000\n"
"PO-Revision-Date: 2016-03-26 15:13+0800\n" "PO-Revision-Date: 2016-05-14 00:34+0800\n"
"Last-Translator: Aron Xu <happyaron.xu@gmail.com>\n" "Last-Translator: Dingzhong Chen <wsxy162@gmail.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n" "Language-Team: Chinese (China) <i18n-zh@googlegroups.com>\n"
"Language: zh_CN\n" "Language: zh_CN\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 1.7.6\n" "X-Generator: Gtranslator 2.91.7\n"
#: ../data/50-gnome-shell-system.xml.in.h:1 #: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System" msgid "System"
@ -345,7 +346,7 @@ msgstr "未列出?"
#. Translators: this message is shown below the username entry field #. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm #. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:854 #: ../js/gdm/loginDialog.js:859
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(如 user 或 %s)" msgstr "(如 user 或 %s)"
@ -353,12 +354,12 @@ msgstr "(如 user 或 %s)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271 #: ../js/gdm/loginDialog.js:864 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289 #: ../js/ui/components/networkAgent.js:289
msgid "Username: " msgid "Username: "
msgstr "用户名:" msgstr "用户名:"
#: ../js/gdm/loginDialog.js:1196 #: ../js/gdm/loginDialog.js:1201
msgid "Login Window" msgid "Login Window"
msgstr "登录窗口" msgstr "登录窗口"
@ -532,7 +533,7 @@ msgstr "更换壁纸..."
msgid "Display Settings" msgid "Display Settings"
msgstr "显示设置" msgstr "显示设置"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366 #: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:371
msgid "Settings" msgid "Settings"
msgstr "设置" msgstr "设置"
@ -981,7 +982,7 @@ msgstr "已启用"
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828 #: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1866
msgid "Disabled" msgid "Disabled"
msgstr "已禁用" msgstr "已禁用"
@ -1099,7 +1100,7 @@ msgid "%d new notification"
msgid_plural "%d new notifications" msgid_plural "%d new notifications"
msgstr[0] "%d 条新通知" msgstr[0] "%d 条新通知"
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:374 #: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:379
msgid "Lock" msgid "Lock"
msgstr "锁定" msgstr "锁定"
@ -1213,9 +1214,11 @@ msgid "%d Connected"
msgid_plural "%d Connected" msgid_plural "%d Connected"
msgstr[0] "%d 台设备已连接" msgstr[0] "%d 台设备已连接"
# off 太短了,翻译成更具体的蓝牙已关闭,也能和其他字符串统一
#: ../js/ui/status/bluetooth.js:138 #: ../js/ui/status/bluetooth.js:138
#, fuzzy
msgid "Off" msgid "Off"
msgstr "关" msgstr "蓝牙已"
#: ../js/ui/status/bluetooth.js:140 #: ../js/ui/status/bluetooth.js:140
msgid "Not In Use" msgid "Not In Use"
@ -1371,15 +1374,15 @@ msgstr "使用互联网连接"
#: ../js/ui/status/network.js:813 #: ../js/ui/status/network.js:813
msgid "Airplane Mode is On" msgid "Airplane Mode is On"
msgstr "已开启乘机模式" msgstr "已开启飞行模式"
#: ../js/ui/status/network.js:814 #: ../js/ui/status/network.js:814
msgid "Wi-Fi is disabled when airplane mode is on." msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "启用乘机模式时 Wi-Fi 会关闭" msgstr "启用飞行模式时 Wi-Fi 会关闭"
#: ../js/ui/status/network.js:815 #: ../js/ui/status/network.js:815
msgid "Turn Off Airplane Mode" msgid "Turn Off Airplane Mode"
msgstr "关闭乘机模式" msgstr "关闭飞行模式"
#: ../js/ui/status/network.js:824 #: ../js/ui/status/network.js:824
msgid "Wi-Fi is Off" msgid "Wi-Fi is Off"
@ -1504,27 +1507,27 @@ msgstr "%d%%"
msgid "Airplane Mode On" msgid "Airplane Mode On"
msgstr "已开启飞行模式" msgstr "已开启飞行模式"
#: ../js/ui/status/system.js:343 #: ../js/ui/status/system.js:348
msgid "Switch User" msgid "Switch User"
msgstr "切换用户" msgstr "切换用户"
#: ../js/ui/status/system.js:348 #: ../js/ui/status/system.js:353
msgid "Log Out" msgid "Log Out"
msgstr "注销" msgstr "注销"
#: ../js/ui/status/system.js:353 #: ../js/ui/status/system.js:358
msgid "Account Settings" msgid "Account Settings"
msgstr "帐号设置" msgstr "帐号设置"
#: ../js/ui/status/system.js:370 #: ../js/ui/status/system.js:375
msgid "Orientation Lock" msgid "Orientation Lock"
msgstr "方向锁定" msgstr "方向锁定"
#: ../js/ui/status/system.js:378 #: ../js/ui/status/system.js:383
msgid "Suspend" msgid "Suspend"
msgstr "挂起" msgstr "挂起"
#: ../js/ui/status/system.js:381 #: ../js/ui/status/system.js:386
msgid "Power Off" msgid "Power Off"
msgstr "关机" msgstr "关机"
@ -1655,7 +1658,7 @@ msgstr "Evolution 日历"
#. translators: #. translators:
#. * The number of sound outputs on a particular device #. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1835 #: ../src/gvc/gvc-mixer-control.c:1873
#, c-format #, c-format
msgid "%u Output" msgid "%u Output"
msgid_plural "%u Outputs" msgid_plural "%u Outputs"
@ -1663,13 +1666,13 @@ msgstr[0] "%u 个输出"
#. translators: #. translators:
#. * The number of sound inputs on a particular device #. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1845 #: ../src/gvc/gvc-mixer-control.c:1883
#, c-format #, c-format
msgid "%u Input" msgid "%u Input"
msgid_plural "%u Inputs" msgid_plural "%u Inputs"
msgstr[0] "%u 个输入" msgstr[0] "%u 个输入"
#: ../src/gvc/gvc-mixer-control.c:2371 #: ../src/gvc/gvc-mixer-control.c:2738
msgid "System Sounds" msgid "System Sounds"
msgstr "系统声音" msgstr "系统声音"

View File

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

View File

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

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_set_caps (RecorderPipeline *pipeline);
static void recorder_pipeline_closed (RecorderPipeline *pipeline); static void recorder_pipeline_closed (RecorderPipeline *pipeline);
static void recorder_remove_redraw_timeout (ShellRecorder *recorder);
enum { enum {
PROP_0, PROP_0,
PROP_SCREEN, PROP_SCREEN,
@ -235,6 +237,8 @@ shell_recorder_finalize (GObject *object)
recorder_set_pipeline (recorder, NULL); recorder_set_pipeline (recorder, NULL);
recorder_set_file_template (recorder, NULL); recorder_set_file_template (recorder, NULL);
recorder_remove_redraw_timeout (recorder);
g_clear_object (&recorder->a11y_settings); g_clear_object (&recorder->a11y_settings);
G_OBJECT_CLASS (shell_recorder_parent_class)->finalize (object); G_OBJECT_CLASS (shell_recorder_parent_class)->finalize (object);
@ -317,6 +321,9 @@ recorder_fetch_cursor_image (ShellRecorder *recorder)
guint8 *data; guint8 *data;
texture = meta_cursor_tracker_get_sprite (recorder->cursor_tracker); texture = meta_cursor_tracker_get_sprite (recorder->cursor_tracker);
if (!texture)
return;
width = cogl_texture_get_width (texture); width = cogl_texture_get_width (texture);
height = cogl_texture_get_height (texture); height = cogl_texture_get_height (texture);
stride = 4 * width; stride = 4 * width;

View File

@ -2224,6 +2224,7 @@ st_theme_node_prerender_shadow (StThemeNodePaintState *state)
int max_borders[4]; int max_borders[4];
int center_radius, corner_id; int center_radius, corner_id;
CoglHandle buffer, offscreen = COGL_INVALID_HANDLE; CoglHandle buffer, offscreen = COGL_INVALID_HANDLE;
CoglError *error = NULL;
/* Get infos from the node */ /* Get infos from the node */
if (state->alloc_width < node->box_shadow_min_width || if (state->alloc_width < node->box_shadow_min_width ||
@ -2264,10 +2265,12 @@ st_theme_node_prerender_shadow (StThemeNodePaintState *state)
state->box_shadow_height, state->box_shadow_height,
COGL_TEXTURE_NO_SLICING, COGL_TEXTURE_NO_SLICING,
COGL_PIXEL_FORMAT_ANY); COGL_PIXEL_FORMAT_ANY);
if (buffer != COGL_INVALID_HANDLE) if (buffer == NULL)
offscreen = cogl_offscreen_new_with_texture (buffer); return;
if (offscreen != COGL_INVALID_HANDLE) offscreen = cogl_offscreen_new_with_texture (buffer);
if (cogl_framebuffer_allocate (COGL_FRAMEBUFFER (offscreen), &error))
{ {
ClutterActorBox box = { 0, 0, state->box_shadow_width, state->box_shadow_height}; ClutterActorBox box = { 0, 0, state->box_shadow_width, state->box_shadow_height};
@ -2277,14 +2280,17 @@ st_theme_node_prerender_shadow (StThemeNodePaintState *state)
cogl_framebuffer_clear4f (offscreen, COGL_BUFFER_BIT_COLOR, 0, 0, 0, 0); cogl_framebuffer_clear4f (offscreen, COGL_BUFFER_BIT_COLOR, 0, 0, 0, 0);
st_theme_node_paint_borders (state, offscreen, &box, 0xFF); st_theme_node_paint_borders (state, offscreen, &box, 0xFF);
cogl_handle_unref (offscreen);
state->box_shadow_pipeline = _st_create_shadow_pipeline (st_theme_node_get_box_shadow (node), state->box_shadow_pipeline = _st_create_shadow_pipeline (st_theme_node_get_box_shadow (node),
buffer); buffer);
} }
else
{
cogl_error_free (error);
}
if (buffer != COGL_INVALID_HANDLE) cogl_handle_unref (offscreen);
cogl_handle_unref (buffer); cogl_handle_unref (buffer);
} }
static void static void

View File

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

View File

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

View File

@ -1,6 +1,6 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
// Test cases for Calendar markup parsing // Test cases for MessageList markup parsing
const JsUnit = imports.jsUnit; const JsUnit = imports.jsUnit;
const Pango = imports.gi.Pango; const Pango = imports.gi.Pango;
@ -8,7 +8,7 @@ const Pango = imports.gi.Pango;
const Environment = imports.ui.environment; const Environment = imports.ui.environment;
Environment.init(); Environment.init();
const Calendar = imports.ui.calendar; const MessageList = imports.ui.messageList;
// Assert that @input, assumed to be markup, gets "fixed" to @output, // Assert that @input, assumed to be markup, gets "fixed" to @output,
// which is valid markup. If @output is null, @input is expected to // which is valid markup. If @output is null, @input is expected to
@ -16,7 +16,7 @@ const Calendar = imports.ui.calendar;
function assertConverts(input, output) { function assertConverts(input, output) {
if (!output) if (!output)
output = input; output = input;
let fixed = Calendar._fixMarkup(input, true); let fixed = MessageList._fixMarkup(input, true);
JsUnit.assertEquals(output, fixed); JsUnit.assertEquals(output, fixed);
let parsed = false; let parsed = false;
@ -30,7 +30,7 @@ function assertConverts(input, output) {
// Assert that @input, assumed to be plain text, gets escaped to @output, // Assert that @input, assumed to be plain text, gets escaped to @output,
// which is valid markup. // which is valid markup.
function assertEscapes(input, output) { function assertEscapes(input, output) {
let fixed = Calendar._fixMarkup(input, false); let fixed = MessageList._fixMarkup(input, false);
JsUnit.assertEquals(output, fixed); JsUnit.assertEquals(output, fixed);
let parsed = false; let parsed = false;

View File

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