Compare commits

..

7 Commits

Author SHA1 Message Date
Alexander Mikhaylenko
b1afb946b2 workspaceAnimation: Support multiple monitors
Currently, there's one animation for the whole canvas. While it looks fine
with just one screen, it causes windows to move between screens when
switching workspaces. Instead, have a separate animation on each screen,
and sync their progress so that at any given time the progress "fraction"
is the same between all screens. Clip all animations to their screens so
that the windows don't leak to other screens.

If a window is placed between every screen, can end up in multiple
animations, in that case each part is still animated separately.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1213

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/605
2020-02-26 10:36:10 +01:00
Alexander Mikhaylenko
46d5bccfc6 workspaceAnimation: Use window clones
Instead of reparenting windows, clone them. This will allow to properly
support multi-monitor setups in subsequent commits.

Block window mapping animation while the animation is running to prevent
new windows appearing during the animation from being visible at the same
time as their clones.

Fixes https://gitlab.gnome.org/GNOME/mutter/issues/929

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/605
2020-02-26 10:36:10 +01:00
Alexander Mikhaylenko
f0d498062d workspaceAnimation: Only create moving window bin when needed
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/605
2020-02-26 10:36:10 +01:00
Alexander Mikhaylenko
eeac4a3b6d workspaceAnimation: Extract WorkspaceGroup
Reimplement _syncStacking().

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/605
2020-02-26 10:36:10 +01:00
Alexander Mikhaylenko
272cb4d523 workspaceAnimation: Extract WorkspaceAnimation
Simplify the logic a bit. Introduce WorkspaceAnimation class that reparents
the windows from current, surrounding and destination workspaces and manages
them. Expose 'progress' property and have WorkspaceAnimationController animate
it instead of animating everything separately.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/605
2020-02-26 10:36:10 +01:00
Alexander Mikhaylenko
6d5446e4a6 workspaceAnimation: Stop depending on shellwm
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/605
2020-02-26 10:36:10 +01:00
Alexander Mikhaylenko
fa31bcaa7a workspaceAnimation: Split from WindowManager
It's already too complex, and will get more complex in future, split it
out.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/605
2020-02-26 10:36:10 +01:00
43 changed files with 6375 additions and 6294 deletions

View File

@@ -46,20 +46,6 @@ eslint:
- reports
when: always
potfile_check:
image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v1
stage: review
script:
- ./.gitlab-ci/check-potfiles.sh
<<: *only_default
no_template_check:
image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v1
stage: review
script:
- ./.gitlab-ci/check-template-strings.sh
<<: *only_default
build:
image: registry.gitlab.gnome.org/gnome/mutter/master:v3
stage: build

View File

@@ -1,26 +0,0 @@
#!/usr/bin/env bash
srcdirs="js src subprojects/extensions-tool"
globs=('*.js' '*.c')
# find source files that contain gettext keywords
files=$(grep -lR ${globs[@]/#/--include=} '\(gettext\|[^I_)]_\)(' $srcdirs)
# find those that aren't listed in POTFILES.in
missing=$(for f in $files; do ! grep -q ^$f po/POTFILES.in && echo $f; done)
if [ ${#missing} -eq 0 ]; then
exit 0
fi
cat >&2 <<EOT
The following files are missing from po/POTFILES.po:
EOT
for f in $missing; do
echo " $f" >&2
done
echo >&2
exit 1

View File

@@ -1,23 +0,0 @@
#!/usr/bin/env bash
# find files from POTFILES.in that use js template strings
baddies=$(grep -l '${' $(grep ^js po/POTFILES.in))
if [ ${#baddies} -eq 0 ]; then
exit 0
fi
cat >&2 <<EOT
xgettext cannot handle template strings properly, so we ban their use
in files with translatable strings.
The following files are listed in po/POTFILES.in and use template strings:
EOT
for f in $baddies; do
echo " $f" >&2
done
echo >&2
exit 1

67
NEWS
View File

@@ -1,70 +1,3 @@
3.36.0
======
* Fix off-by-1900 error in date conversions [Florian; !1061]
* Fix crash on startup with topIcons* extension enabled [Florian; #2308]
* Don't require gsd-xsettings for X11 support on wayland [Olivier; !1065]
* Fix ibus support in Xorg session [Carlos; #1690]
* Improve Extensions D-Bus API [Florian; !1074]
* Allow session modes to specify alternative resource name [Marco; !1063]
* Fix link to location settings in aggregate menu [Sebastian; #2316]
* Fix illegible app folder titles with light theme [ub; !1059]
* Really fix visual glitch in sliders [Jonas; #1569]
Contributors:
Marco Trevisan (Treviño), Jonas Dreßler, Olivier Fourdan, Carlos Garnacho,
Sebastian Keller, Florian Müllner, ub
Translators:
Aman Alam [pa], Goran Vidović [hr], Aurimas Černius [lt],
Milo Casagrande [it], Daniel Korostil [uk], sicklylife [ja],
Marek Černocký [cs], Nathan Follens [nl]
3.35.92
=======
* Plug a memory leak [Jonas D.; !1015]
* Fix missing "back" button on login screen [Florian; #2228]
* Fix width of window preview titles in overview [Jonas D.; #58]
* Fix looking glass text with light style variant [Feichtmeier; !1023]
* Center unlock entry [Florian; !1021]
* Hide overlay scrollbars in notification popup [Jonas D.; !1013]
* Work around add_actor() slowness in icon spring animation [Daniel; !1002]
* Add disable-animations heuristics [Jonas Å.; !757]
* Fix visual glitches in on-screen keyboard [Carlos; #2214]
* Fix clearing changed textures from cache [Florian; #2244]
* Fix visual glitch in sliders [Daniel; #1569]
* Stop using dedicated lock screen background [Florian; !1001]
* Fix entries disappearing after authentication errors [Florian; #2236]
* Fix crash when animations are disabled [Florian; #2255]
* Fix passing pointer events to clients when magnified [Jonas D.; !993]
* Fix keynav on new lock screen [Florian; #2210]
* Avoid short-lived allocations on actor removal [Christian; #2263]
* Fix super-sized default avatars in user list [Florian, Sam; #2242]
* Leave overview when locking the screen [Jonas D.; !1043]
* Hide message list on login screen [Florian; #2241]
* Avoid IO on the main thread [Christian, Florian; !1050, !1051]
* Fix window animations getting stuck when client doesn't respond [Jonas; !1055]
* Only subscribe to touchpad events for touchpad gestures [Daniel; !925]
* Start X11 session services before Xwayland clients [Carlos; !836, !1056]
* Only show switch-user button with unlock prompt [Florian; !1029]
* Misc. bug fixes and cleanups [Jonas D., Florian, Georges, Jonas Å., Daniel,
Jakub, Philippe; !1018, !1020, !1024, !1027, !1026, !1022, !1031, !1035,
!1032, !1025, !1039, #2157, !1037, !1042, !1047, !1048, #2270, !1046,
!167, !1016]
Contributors:
Jonas Dreßler, Feichtmeier, Carlos Garnacho, Christian Hergert, Sam Hewitt,
Florian Müllner, Georges Basile Stavracas Neto, Jakub Steiner, Philippe Troin,
Daniel van Vugt, Jonas Ådahl
Translators:
Danial Behzadi [fa], Efstathios Iosifidis [el], Daniel Mustieles [es],
Sabri Ünal [tr], sicklylife [ja], Piotr Drąg [pl], Jordi Mas [ca],
Anders Jonsson [sv], Chao-Hsiung Liao [zh_TW], Asier Sarasua Garmendia [eu],
Rafael Fontenelle [pt_BR], Марко Костић [sr], Changwoo Ryu [ko],
Charles Monzat [fr], Jiri Grönroos [fi], Jor Teron [mjw], Bruce Cowan [en_GB],
Emin Tufan Çetin [tr], Alan Mortensen [da], Balázs Úr [hu], Fran Dieguez [gl],
Kukuh Syafaat [id]
3.35.91
=======
* Improve magnifier [Carlos; !984]

View File

@@ -199,37 +199,14 @@
<!--
LaunchExtensionPrefs:
Deprecated for OpenExtensionPrefs
@uuid: The UUID of the extension
Launch preferences of an extension.
-->
<method name="LaunchExtensionPrefs">
<arg type="s" direction="in" name="uuid"/>
</method>
<!--
OpenExtensionPrefs:
@uuid: The UUID of the extension
@parent_window: Identifier for the application window
@options: Vardict with further options
Opens the prefs dialog of extension @uuid.
The following @options are recognized:
<variablelist>
<varlistentry>
<term>modal b</term>
<listitem>
<para>Whether the prefs window should be modal, default: false</para>
</listitem>
</varlistentry>
</variablelist>
-->
<method name="OpenExtensionPrefs">
<arg type="s" direction="in" name="uuid"/>
<arg type="s" direction="in" name="parent_window"/>
<arg type="a{sv}" direction="in" name="options"/>
</method>
<!--
CheckForUpdates:
Update all extensions for which updates are available
@@ -257,11 +234,5 @@
-->
<property name="ShellVersion" type="s" access="read"/>
<!--
UserExtensionsEnabled:
Whether user extensions are enabled
-->
<property name="UserExtensionsEnabled" type="b" access="readwrite"/>
</interface>
</node>

View File

@@ -60,7 +60,7 @@ $app_grid_fg_color: #fff;
& .folder-name-entry { width: 300px }
/* FIXME: this is to keep the label in sync with the entry */
& .folder-name-label { padding: 5px 7px; color: $osd_fg_color; }
& .folder-name-label { padding: 5px 7px }
& .edit-folder-button {
@extend %button;

View File

@@ -456,6 +456,7 @@ var LoginDialog = GObject.registerClass({
let notListedLabel = new St.Label({
text: _("Not listed?"),
style_class: 'login-dialog-not-listed-label',
x_align: Clutter.ActorAlign.START,
});
this._notListedButton = new St.Button({
style_class: 'login-dialog-not-listed-button',
@@ -463,7 +464,6 @@ var LoginDialog = GObject.registerClass({
can_focus: true,
child: notListedLabel,
reactive: true,
x_align: Clutter.ActorAlign.START,
});
this._notListedButton.connect('clicked', this._hideUserListAskForUsernameAndBeginVerification.bind(this));

View File

@@ -109,6 +109,7 @@
<file>ui/windowMenu.js</file>
<file>ui/windowManager.js</file>
<file>ui/workspace.js</file>
<file>ui/workspaceAnimation.js</file>
<file>ui/workspaceSwitcherPopup.js</file>
<file>ui/workspaceThumbnail.js</file>
<file>ui/workspacesView.js</file>

View File

@@ -1,7 +1,7 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/* exported getIBusManager */
const { Gio, GLib, IBus, Meta } = imports.gi;
const { Gio, GLib, IBus } = imports.gi;
const Signals = imports.signals;
const IBusCandidatePopup = imports.ui.ibusCandidatePopup;
@@ -55,18 +55,13 @@ var IBusManager = class {
this._ibus.set_watch_ibus_signal(true);
this._ibus.connect('global-engine-changed', this._engineChanged.bind(this));
this._spawn(Meta.is_wayland_compositor() ? [] : ['--xim']);
this._spawn();
}
_spawn(extraArgs = []) {
try {
let cmdLine = ['ibus-daemon', '--panel', 'disable', ...extraArgs];
let launcher = Gio.SubprocessLauncher.new(Gio.SubprocessFlags.NONE);
// Forward the right X11 Display for ibus-x11
let display = GLib.getenv('GNOME_SETUP_DISPLAY');
if (display)
launcher.setenv('DISPLAY', display, true);
launcher.launch(cmdLine);
Gio.Subprocess.new(cmdLine, Gio.SubprocessFlags.NONE);
} catch (e) {
log(`Failed to launch ibus-daemon: ${e.message}`);
}

View File

@@ -280,10 +280,12 @@ class AppSwitcherPopup extends SwitcherPopup.SwitcherPopup {
}
_onDestroy() {
super._onDestroy();
if (this._thumbnails)
this._destroyThumbnails();
if (this._thumbnailTimeoutId != 0)
GLib.source_remove(this._thumbnailTimeoutId);
super._onDestroy();
}
/**
@@ -363,7 +365,8 @@ class AppSwitcherPopup extends SwitcherPopup.SwitcherPopup {
},
});
this._thumbnails = null;
this._switcherList.removeAccessibleState(this._selectedIndex, Atk.StateType.EXPANDED);
if (this._switcherList._items[this._selectedIndex])
this._switcherList._items[this._selectedIndex].remove_accessible_state(Atk.StateType.EXPANDED);
}
_createThumbnails() {
@@ -392,7 +395,7 @@ class AppSwitcherPopup extends SwitcherPopup.SwitcherPopup {
},
});
this._switcherList.addAccessibleState(this._selectedIndex, Atk.StateType.EXPANDED);
this._switcherList._items[this._selectedIndex].add_accessible_state(Atk.StateType.EXPANDED);
}
});
@@ -773,9 +776,7 @@ class AppSwitcher extends SwitcherPopup.SwitcherList {
// We override SwitcherList's _onItemEnter method to delay
// activation when the thumbnail list is open
_onItemEnter(item) {
const index = this._items.indexOf(item);
_onItemEnter(index) {
if (this._mouseTimeOutId != 0)
GLib.source_remove(this._mouseTimeOutId);
if (this._altTabPopup.thumbnailsVisible) {

View File

@@ -12,9 +12,6 @@ imports.gi.versions.TelepathyLogger = '0.2';
const { Clutter, GLib, GObject, Meta, Shell, St } = imports.gi;
const Gettext = imports.gettext;
const System = imports.system;
let _localTimeZone = null;
// We can't import shell JS modules yet, because they may have
// variable initializations, etc, that depend on init() already having
@@ -307,25 +304,9 @@ function init() {
}
};
// Override to clear our own timezone cache as well
const origClearDateCaches = System.clearDateCaches;
System.clearDateCaches = function () {
_localTimeZone = null;
origClearDateCaches();
};
// Work around https://bugzilla.mozilla.org/show_bug.cgi?id=508783
Date.prototype.toLocaleFormat = function (format) {
if (_localTimeZone === null)
_localTimeZone = GLib.TimeZone.new_local();
let dt = GLib.DateTime.new(_localTimeZone,
this.getFullYear(),
this.getMonth() + 1,
this.getDate(),
this.getHours(),
this.getMinutes(),
this.getSeconds());
let dt = GLib.DateTime.new_from_unix_local(this.getTime() / 1000);
return dt ? dt.format(format) : '';
};

View File

@@ -361,8 +361,7 @@ function reloadThemeResource() {
if (_themeResource)
_themeResource._unregister();
_themeResource = Gio.Resource.load('%s/%s'.format(global.datadir,
sessionMode.themeResourceName));
_themeResource = Gio.Resource.load('%s/gnome-shell-theme.gresource'.format(global.datadir));
_themeResource._register();
}

View File

@@ -251,10 +251,6 @@ class MediaSection extends MessageList.MessageListSection {
return !this.empty && Calendar.isToday(this._date);
}
get allowed() {
return !Main.sessionMode.isGreeter;
}
_addPlayer(busName) {
if (this._players.get(busName))
return;

View File

@@ -15,7 +15,6 @@ const _modes = {
'restrictive': {
parentMode: null,
stylesheetName: 'gnome-shell.css',
themeResourceName: 'gnome-shell-theme.gresource',
hasOverview: false,
showCalendarEvents: false,
allowSettings: false,

View File

@@ -255,17 +255,6 @@ var GnomeShellExtensions = class {
constructor() {
this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(GnomeShellExtensionsIface, this);
this._dbusImpl.export(Gio.DBus.session, '/org/gnome/Shell');
this._userExtensionsEnabled = this.UserExtensionsEnabled;
global.settings.connect('changed::disable-user-extensions', () => {
if (this._userExtensionsEnabled === this.UserExtensionsEnabled)
return;
this._userExtensionsEnabled = this.UserExtensionsEnabled;
this._dbusImpl.emit_property_changed('UserExtensionsEnabled',
new GLib.Variant('b', this._userExtensionsEnabled));
});
Main.extensionManager.connect('extension-state-changed',
this._extensionStateChanged.bind(this));
}
@@ -312,10 +301,6 @@ var GnomeShellExtensions = class {
}
LaunchExtensionPrefs(uuid) {
this.OpenExtensionPrefs(uuid, '', {});
}
OpenExtensionPrefs(uuid, _parentWindow, _options) {
let appSys = Shell.AppSystem.get_default();
let app = appSys.lookup_app('org.gnome.Extensions.desktop');
let info = app.get_app_info();
@@ -340,14 +325,6 @@ var GnomeShellExtensions = class {
return Config.PACKAGE_VERSION;
}
get UserExtensionsEnabled() {
return !global.settings.get_boolean('disable-user-extensions');
}
set UserExtensionsEnabled(enable) {
global.settings.set_boolean('disable-user-extensions', !enable);
}
_extensionStateChanged(_, newState) {
let state = ExtensionUtils.serializeExtension(newState);
this._dbusImpl.emit_signal('ExtensionStateChanged',

View File

@@ -43,10 +43,10 @@ var Slider = GObject.registerClass({
let [hasHandleColor, handleBorderColor] =
themeNode.lookup_color('-slider-handle-border-color', false);
const ceiledHandleRadius = Math.ceil(handleRadius + handleBorderWidth);
const handleX = ceiledHandleRadius +
(width - 2 * ceiledHandleRadius) * this._value / this._maxValue;
const handleY = height / 2;
let wholeHandleRadius = Math.ceil(handleRadius);
let handleX = wholeHandleRadius +
(width - 2 * wholeHandleRadius) * this._value / this._maxValue;
let handleY = height / 2;
let color = themeNode.get_foreground_color();
Clutter.cairo_set_source_color(cr, color);

View File

@@ -64,7 +64,7 @@ class Indicator extends PanelMenu.SystemIndicator {
this._item.label.text = _("Location Enabled");
this._onOffAction = this._item.menu.addAction(_("Disable"), this._onOnOffAction.bind(this));
this._item.menu.addSettingsAction(_('Privacy Settings'), 'gnome-location-panel.desktop');
this._item.menu.addSettingsAction(_("Privacy Settings"), 'gnome-privacy-panel.desktop');
this.menu.addMenuItem(this._item);

View File

@@ -58,7 +58,7 @@ const TouchpadSwipeGesture = GObject.registerClass({
this._orientation = Clutter.Orientation.VERTICAL;
this._enabled = true;
global.stage.connect('captured-event::touchpad', this._handleEvent.bind(this));
global.stage.connect('captured-event', this._handleEvent.bind(this));
}
get enabled() {

View File

@@ -130,7 +130,7 @@ var SwitcherPopup = GObject.registerClass({
let [x_, y_, mods] = global.get_pointer();
if (!(mods & this._modifierMask)) {
this._finish(global.get_current_time());
return true;
return false;
}
} else {
this._resetNoModsTimeout();
@@ -228,9 +228,7 @@ var SwitcherPopup = GObject.registerClass({
}
vfunc_scroll_event(scrollEvent) {
this._disableHover();
this._scrollHandler(scrollEvent.direction);
this._scrollHandler(scrollEvent.scroll_direction);
return Clutter.EVENT_PROPAGATE;
}
@@ -255,15 +253,7 @@ var SwitcherPopup = GObject.registerClass({
_itemRemovedHandler(n) {
if (this._items.length > 0) {
let newIndex;
if (n < this._selectedIndex)
newIndex = this._selectedIndex - 1;
else if (n === this._selectedIndex)
newIndex = Math.min(n, this._items.length - 1);
else if (n > this._selectedIndex)
return; // No need to select something new in this case
let newIndex = Math.min(n, this._items.length - 1);
this._select(newIndex);
} else {
this.fadeAndDestroy();
@@ -427,8 +417,9 @@ var SwitcherList = GObject.registerClass({
bbox.set_child(item);
this._list.add_actor(bbox);
bbox.connect('clicked', () => this._onItemClicked(bbox));
bbox.connect('motion-event', () => this._onItemEnter(bbox));
let n = this._items.length;
bbox.connect('clicked', () => this._onItemClicked(n));
bbox.connect('motion-event', () => this._onItemEnter(n));
bbox.label_actor = label;
@@ -443,23 +434,16 @@ var SwitcherList = GObject.registerClass({
this.emit('item-removed', index);
}
addAccessibleState(index, state) {
this._items[index].add_accessible_state(state);
_onItemClicked(index) {
this._itemActivated(index);
}
removeAccessibleState(index, state) {
this._items[index].remove_accessible_state(state);
}
_onItemClicked(item) {
this._itemActivated(this._items.indexOf(item));
}
_onItemEnter(item) {
_onItemEnter(index) {
// Avoid reentrancy
if (item !== this._items[this._highlighted])
this._itemEntered(this._items.indexOf(item));
if (index != this._currentItemEntered) {
this._currentItemEntered = index;
this._itemEntered(index);
}
return Clutter.EVENT_PROPAGATE;
}
@@ -484,40 +468,40 @@ var SwitcherList = GObject.registerClass({
let [result_, posX, posY_] = this.transform_stage_point(absItemX, 0);
let [containerWidth] = this.get_transformed_size();
if (posX + this._items[index].get_width() > containerWidth)
this._scrollToRight(index);
this._scrollToRight();
else if (this._items[index].allocation.x1 - value < 0)
this._scrollToLeft(index);
this._scrollToLeft();
}
_scrollToLeft(index) {
_scrollToLeft() {
let adjustment = this._scrollView.hscroll.adjustment;
let [value, lower_, upper, stepIncrement_, pageIncrement_, pageSize] = adjustment.get_values();
let item = this._items[index];
let item = this._items[this._highlighted];
if (item.allocation.x1 < value)
value = Math.max(0, item.allocation.x1);
value = Math.min(0, item.allocation.x1);
else if (item.allocation.x2 > value + pageSize)
value = Math.min(upper, item.allocation.x2 - pageSize);
value = Math.max(upper, item.allocation.x2 - pageSize);
this._scrollableRight = true;
adjustment.ease(value, {
progress_mode: Clutter.AnimationMode.EASE_OUT_QUAD,
duration: POPUP_SCROLL_TIME,
onComplete: () => {
if (index === 0)
if (this._highlighted == 0)
this._scrollableLeft = false;
this.queue_relayout();
},
});
}
_scrollToRight(index) {
_scrollToRight() {
let adjustment = this._scrollView.hscroll.adjustment;
let [value, lower_, upper, stepIncrement_, pageIncrement_, pageSize] = adjustment.get_values();
let item = this._items[index];
let item = this._items[this._highlighted];
if (item.allocation.x1 < value)
value = Math.max(0, item.allocation.x1);
@@ -529,7 +513,7 @@ var SwitcherList = GObject.registerClass({
progress_mode: Clutter.AnimationMode.EASE_OUT_QUAD,
duration: POPUP_SCROLL_TIME,
onComplete: () => {
if (index === this._items.length - 1)
if (this._highlighted == this._items.length - 1)
this._scrollableRight = false;
this.queue_relayout();
},

View File

@@ -556,13 +556,12 @@ var UnlockDialog = GObject.registerClass({
this._otherUserButton = new St.Button({
style_class: 'modal-dialog-button button switch-user-button',
accessible_name: _('Log in as another user'),
reactive: false,
opacity: 0,
can_focus: true,
reactive: true,
x_align: Clutter.ActorAlign.END,
y_align: Clutter.ActorAlign.END,
child: new St.Icon({ icon_name: 'system-users-symbolic' }),
});
this._otherUserButton.set_pivot_point(0.5, 0.5);
this._otherUserButton.connect('clicked', this._otherUserClicked.bind(this));
let screenSaverSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.screensaver' });
@@ -667,7 +666,7 @@ var UnlockDialog = GObject.registerClass({
this._promptBox.add_child(this._authPrompt);
this._authPrompt.reset();
this._authPrompt.updateSensitivity(true);
this._updateSensitivity(true);
}
_maybeDestroyAuthPrompt() {
@@ -683,6 +682,13 @@ var UnlockDialog = GObject.registerClass({
}
}
_updateSensitivity(sensitive) {
this._authPrompt.updateSensitivity(sensitive);
this._otherUserButton.reactive = sensitive;
this._otherUserButton.can_focus = sensitive;
}
_showClock() {
if (this._activePage === this._clock)
return;
@@ -714,11 +720,6 @@ var UnlockDialog = GObject.registerClass({
this._promptBox.visible = progress > 0;
this._clock.visible = progress < 1;
this._otherUserButton.set({
reactive: progress > 0,
can_focus: progress > 0,
});
const { scaleFactor } = St.ThemeContext.get_for_stage(global.stage);
this._promptBox.set({
@@ -734,12 +735,6 @@ var UnlockDialog = GObject.registerClass({
scale_y: FADE_OUT_SCALE + (1 - FADE_OUT_SCALE) * (1 - progress),
translation_y: -FADE_OUT_TRANSLATION * progress * scaleFactor,
});
this._otherUserButton.set({
opacity: 255 * progress,
scale_x: FADE_OUT_SCALE + (1 - FADE_OUT_SCALE) * progress,
scale_y: FADE_OUT_SCALE + (1 - FADE_OUT_SCALE) * progress,
});
}
_fail() {

View File

@@ -44,7 +44,7 @@ function getTermsForSearchString(searchString) {
var TouchpadShowOverviewAction = class {
constructor(actor) {
actor.connect('captured-event::touchpad', this._handleEvent.bind(this));
actor.connect('captured-event', this._handleEvent.bind(this));
}
_handleEvent(actor, event) {

View File

@@ -14,9 +14,9 @@ const WindowMenu = imports.ui.windowMenu;
const PadOsd = imports.ui.padOsd;
const EdgeDragAction = imports.ui.edgeDragAction;
const CloseDialog = imports.ui.closeDialog;
const SwipeTracker = imports.ui.swipeTracker;
const SwitchMonitor = imports.ui.switchMonitor;
const IBusManager = imports.misc.ibusManager;
const WorkspaceAnimation = imports.ui.workspaceAnimation;
const { loadInterfaceXML } = imports.misc.fileUtils;
@@ -559,7 +559,6 @@ var WindowManager = class {
this._resizing = new Set();
this._resizePending = new Set();
this._destroying = new Set();
this._movingWindow = null;
this._dimmedWindows = [];
@@ -569,15 +568,6 @@ var WindowManager = class {
this._isWorkspacePrepended = false;
this._switchData = null;
this._shellwm.connect('kill-switch-workspace', shellwm => {
if (this._switchData) {
if (this._switchData.inProgress)
this._switchWorkspaceDone(shellwm);
else if (!this._switchData.gestureActivated)
this._finishWorkspaceSwitch(this._switchData);
}
});
this._shellwm.connect('kill-window-effects', (shellwm, actor) => {
this._minimizeWindowDone(shellwm, actor);
this._mapWindowDone(shellwm, actor);
@@ -599,7 +589,6 @@ var WindowManager = class {
this._shellwm.connect('confirm-display-change', this._confirmDisplayChange.bind(this));
this._shellwm.connect('create-close-dialog', this._createCloseDialog.bind(this));
this._shellwm.connect('create-inhibit-shortcuts-dialog', this._createInhibitShortcutsDialog.bind(this));
global.display.connect('restacked', this._syncStacking.bind(this));
this._workspaceSwitcherPopup = null;
this._tilePreview = null;
@@ -896,52 +885,22 @@ var WindowManager = class {
}
});
global.display.connect('init-xserver', (display, task) => {
global.display.connect('x11-display-opened', () => {
IBusManager.getIBusManager().restartDaemon(['--xim']);
Shell.util_start_systemd_unit('gsd-xsettings.target', 'fail');
/* Leave this watchdog timeout so don't block indefinitely here */
let timeoutId = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 5, () => {
Gio.DBus.session.unwatch_name(watchId);
log('Warning: Failed to start gsd-xsettings');
task.return_boolean(true);
timeoutId = 0;
return GLib.SOURCE_REMOVE;
});
/* When gsd-xsettings daemon is started, we are good to resume */
let watchId = Gio.DBus.session.watch_name(
'org.gnome.SettingsDaemon.XSettings',
Gio.BusNameWatcherFlags.NONE,
() => {
Gio.DBus.session.unwatch_name(watchId);
if (timeoutId > 0) {
task.return_boolean(true);
GLib.source_remove(timeoutId);
}
},
null);
return true;
Shell.util_start_systemd_unit('gnome-session-x11-services.target', 'fail');
});
global.display.connect('x11-display-closing', () => {
Shell.util_stop_systemd_unit('gsd-xsettings.target', 'fail');
Shell.util_stop_systemd_unit('gnome-session-x11-services.target', 'fail');
IBusManager.getIBusManager().restartDaemon();
});
Main.overview.connect('showing', () => {
for (let i = 0; i < this._dimmedWindows.length; i++)
this._undimWindow(this._dimmedWindows[i]);
if (this._switchData) {
if (this._switchData.gestureActivated)
this._switchWorkspaceStop();
this._swipeTracker.enabled = false;
}
});
Main.overview.connect('hiding', () => {
for (let i = 0; i < this._dimmedWindows.length; i++)
this._dimWindow(this._dimmedWindows[i]);
this._swipeTracker.enabled = true;
});
this._windowMenuManager = new WindowMenu.WindowMenuManager();
@@ -952,13 +911,6 @@ var WindowManager = class {
global.workspace_manager.override_workspace_layout(Meta.DisplayCorner.TOPLEFT,
false, -1, 1);
let swipeTracker = new SwipeTracker.SwipeTracker(global.stage,
Shell.ActionMode.NORMAL, { allowDrag: false, allowScroll: false });
swipeTracker.connect('begin', this._switchWorkspaceBegin.bind(this));
swipeTracker.connect('update', this._switchWorkspaceUpdate.bind(this));
swipeTracker.connect('end', this._switchWorkspaceEnd.bind(this));
this._swipeTracker = swipeTracker;
let appSwitchAction = new AppSwitchAction();
appSwitchAction.connect('activated', this._switchApp.bind(this));
global.stage.add_action(appSwitchAction);
@@ -990,6 +942,17 @@ var WindowManager = class {
global.display.connect('in-fullscreen-changed', updateUnfullscreenGesture);
global.stage.add_action(topDragAction);
this._workspaceAnimation =
new WorkspaceAnimation.WorkspaceAnimationController();
this._shellwm.connect('kill-switch-workspace', () => {
if (!this._workspaceAnimation.isAnimating() || this._workspaceAnimation.canCancelGesture())
return;
this._workspaceAnimation.cancelSwitchAnimation();
this._shellwm.completed_switch_workspace();
});
}
_showPadOsd(display, device, settings, imagePath, editionMode, monitorIndex) {
@@ -1112,8 +1075,7 @@ var WindowManager = class {
}
_shouldAnimate() {
return !(Main.overview.visible ||
(this._switchData && this._switchData.gestureActivated));
return !(Main.overview.visible || this._workspaceAnimation.isAnimating());
}
_shouldAnimateActor(actor, types) {
@@ -1282,6 +1244,7 @@ var WindowManager = class {
actorClone.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
actorClone.set_position(oldFrameRect.x, oldFrameRect.y);
actorClone.set_size(oldFrameRect.width, oldFrameRect.height);
Main.uiGroup.add_actor(actorClone);
if (this._clearAnimationInfo(actor))
this._shellwm.completed_size_change(actor);
@@ -1312,8 +1275,6 @@ var WindowManager = class {
this._resizePending.delete(actor);
this._resizing.add(actor);
Main.uiGroup.add_child(actorClone);
// Now scale and fade out the clone
actorClone.ease({
x: targetRect.x,
@@ -1595,379 +1556,17 @@ var WindowManager = class {
return !(this._allowedKeybindings[binding.get_name()] & Main.actionMode);
}
_syncStacking() {
if (this._switchData == null)
return;
let windows = global.get_window_actors();
let lastCurSibling = null;
let lastDirSibling = [];
for (let i = 0; i < windows.length; i++) {
if (windows[i].get_parent() == this._switchData.curGroup) {
this._switchData.curGroup.set_child_above_sibling(windows[i], lastCurSibling);
lastCurSibling = windows[i];
} else {
for (let dir of Object.values(Meta.MotionDirection)) {
let info = this._switchData.surroundings[dir];
if (!info || windows[i].get_parent() != info.actor)
continue;
let sibling = lastDirSibling[dir];
if (sibling == undefined)
sibling = null;
info.actor.set_child_above_sibling(windows[i], sibling);
lastDirSibling[dir] = windows[i];
break;
}
}
}
}
_getPositionForDirection(direction, fromWs, toWs) {
let xDest = 0, yDest = 0;
let oldWsIsFullscreen = fromWs.list_windows().some(w => w.is_fullscreen());
let newWsIsFullscreen = toWs.list_windows().some(w => w.is_fullscreen());
// We have to shift windows up or down by the height of the panel to prevent having a
// visible gap between the windows while switching workspaces. Since fullscreen windows
// hide the panel, they don't need to be shifted up or down.
let shiftHeight = Main.panel.height;
if (direction == Meta.MotionDirection.UP ||
direction == Meta.MotionDirection.UP_LEFT ||
direction == Meta.MotionDirection.UP_RIGHT)
yDest = -global.screen_height + (oldWsIsFullscreen ? 0 : shiftHeight);
else if (direction == Meta.MotionDirection.DOWN ||
direction == Meta.MotionDirection.DOWN_LEFT ||
direction == Meta.MotionDirection.DOWN_RIGHT)
yDest = global.screen_height - (newWsIsFullscreen ? 0 : shiftHeight);
if (direction == Meta.MotionDirection.LEFT ||
direction == Meta.MotionDirection.UP_LEFT ||
direction == Meta.MotionDirection.DOWN_LEFT)
xDest = -global.screen_width;
else if (direction == Meta.MotionDirection.RIGHT ||
direction == Meta.MotionDirection.UP_RIGHT ||
direction == Meta.MotionDirection.DOWN_RIGHT)
xDest = global.screen_width;
return [xDest, yDest];
}
_prepareWorkspaceSwitch(from, to, direction) {
if (this._switchData)
return;
let wgroup = global.window_group;
let windows = global.get_window_actors();
let switchData = {};
this._switchData = switchData;
switchData.curGroup = new Clutter.Actor();
switchData.movingWindowBin = new Clutter.Actor();
switchData.windows = [];
switchData.surroundings = {};
switchData.gestureActivated = false;
switchData.inProgress = false;
switchData.container = new Clutter.Actor();
switchData.container.add_actor(switchData.curGroup);
wgroup.add_actor(switchData.movingWindowBin);
wgroup.add_actor(switchData.container);
let workspaceManager = global.workspace_manager;
let curWs = workspaceManager.get_workspace_by_index(from);
for (let dir of Object.values(Meta.MotionDirection)) {
let ws = null;
if (to < 0)
ws = curWs.get_neighbor(dir);
else if (dir == direction)
ws = workspaceManager.get_workspace_by_index(to);
if (ws == null || ws == curWs) {
switchData.surroundings[dir] = null;
continue;
}
let [x, y] = this._getPositionForDirection(dir, curWs, ws);
let info = {
index: ws.index(),
actor: new Clutter.Actor(),
xDest: x,
yDest: y,
};
switchData.surroundings[dir] = info;
switchData.container.add_actor(info.actor);
switchData.container.set_child_above_sibling(info.actor, null);
info.actor.set_position(x, y);
}
wgroup.set_child_above_sibling(switchData.movingWindowBin, null);
for (let i = 0; i < windows.length; i++) {
let actor = windows[i];
let window = actor.get_meta_window();
if (!window.showing_on_its_workspace())
continue;
if (window.is_on_all_workspaces())
continue;
let record = { window: actor,
parent: actor.get_parent() };
if (this._movingWindow && window == this._movingWindow) {
record.parent.remove_child(actor);
switchData.movingWindow = record;
switchData.windows.push(switchData.movingWindow);
switchData.movingWindowBin.add_child(actor);
} else if (window.get_workspace().index() == from) {
record.parent.remove_child(actor);
switchData.windows.push(record);
switchData.curGroup.add_child(actor);
} else {
let visible = false;
for (let dir of Object.values(Meta.MotionDirection)) {
let info = switchData.surroundings[dir];
if (!info || info.index != window.get_workspace().index())
continue;
record.parent.remove_child(actor);
switchData.windows.push(record);
info.actor.add_child(actor);
visible = true;
break;
}
actor.visible = visible;
}
}
for (let i = 0; i < switchData.windows.length; i++) {
let w = switchData.windows[i];
w.windowDestroyId = w.window.connect('destroy', () => {
switchData.windows.splice(switchData.windows.indexOf(w), 1);
});
}
}
_finishWorkspaceSwitch(switchData) {
this._switchData = null;
for (let i = 0; i < switchData.windows.length; i++) {
let w = switchData.windows[i];
w.window.disconnect(w.windowDestroyId);
w.window.get_parent().remove_child(w.window);
w.parent.add_child(w.window);
if (w.window.get_meta_window().get_workspace() !=
global.workspace_manager.get_active_workspace())
w.window.hide();
}
switchData.container.destroy();
switchData.movingWindowBin.destroy();
this._movingWindow = null;
}
_switchWorkspace(shellwm, from, to, direction) {
if (!Main.sessionMode.hasWorkspaces || !this._shouldAnimate()) {
shellwm.completed_switch_workspace();
return;
}
this._prepareWorkspaceSwitch(from, to, direction);
this._switchData.inProgress = true;
let workspaceManager = global.workspace_manager;
let fromWs = workspaceManager.get_workspace_by_index(from);
let toWs = workspaceManager.get_workspace_by_index(to);
let [xDest, yDest] = this._getPositionForDirection(direction, fromWs, toWs);
/* @direction is the direction that the "camera" moves, so the
* screen contents have to move one screen's worth in the
* opposite direction.
*/
xDest = -xDest;
yDest = -yDest;
this._switchData.container.ease({
x: xDest,
y: yDest,
duration: WINDOW_ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_OUT_CUBIC,
onComplete: () => this._switchWorkspaceDone(shellwm),
this._workspaceAnimation.animateSwitchWorkspace(from, to, direction, () => {
this._shellwm.completed_switch_workspace();
});
}
_switchWorkspaceDone(shellwm) {
this._finishWorkspaceSwitch(this._switchData);
shellwm.completed_switch_workspace();
}
_directionForProgress(progress) {
if (global.workspace_manager.layout_rows === -1) {
return progress > 0
? Meta.MotionDirection.DOWN
: Meta.MotionDirection.UP;
} else if (Clutter.get_default_text_direction() === Clutter.TextDirection.RTL) {
return progress > 0
? Meta.MotionDirection.LEFT
: Meta.MotionDirection.RIGHT;
} else {
return progress > 0
? Meta.MotionDirection.RIGHT
: Meta.MotionDirection.LEFT;
}
}
_getProgressRange() {
if (!this._switchData)
return [0, 0];
let lower = 0;
let upper = 0;
let horiz = global.workspace_manager.layout_rows !== -1;
let baseDistance;
if (horiz)
baseDistance = global.screen_width;
else
baseDistance = global.screen_height;
let direction = this._directionForProgress(-1);
let info = this._switchData.surroundings[direction];
if (info !== null) {
let distance = horiz ? info.xDest : info.yDest;
lower = -Math.abs(distance) / baseDistance;
}
direction = this._directionForProgress(1);
info = this._switchData.surroundings[direction];
if (info !== null) {
let distance = horiz ? info.xDest : info.yDest;
upper = Math.abs(distance) / baseDistance;
}
return [lower, upper];
}
_switchWorkspaceBegin(tracker, monitor) {
if (Meta.prefs_get_workspaces_only_on_primary() &&
monitor !== Main.layoutManager.primaryIndex)
return;
let workspaceManager = global.workspace_manager;
let horiz = workspaceManager.layout_rows !== -1;
tracker.orientation = horiz
? Clutter.Orientation.HORIZONTAL
: Clutter.Orientation.VERTICAL;
let activeWorkspace = workspaceManager.get_active_workspace();
let baseDistance;
if (horiz)
baseDistance = global.screen_width;
else
baseDistance = global.screen_height;
let progress;
if (this._switchData && this._switchData.gestureActivated) {
this._switchData.container.remove_all_transitions();
if (!horiz)
progress = -this._switchData.container.y / baseDistance;
else if (Clutter.get_default_text_direction() === Clutter.TextDirection.RTL)
progress = this._switchData.container.x / baseDistance;
else
progress = -this._switchData.container.x / baseDistance;
} else {
this._prepareWorkspaceSwitch(activeWorkspace.index(), -1);
progress = 0;
}
let points = [];
let [lower, upper] = this._getProgressRange();
if (lower !== 0)
points.push(lower);
points.push(0);
if (upper !== 0)
points.push(upper);
tracker.confirmSwipe(baseDistance, points, progress, 0);
}
_switchWorkspaceUpdate(tracker, progress) {
if (!this._switchData)
return;
let direction = this._directionForProgress(progress);
let info = this._switchData.surroundings[direction];
let xPos = 0;
let yPos = 0;
if (info) {
if (global.workspace_manager.layout_rows === -1)
yPos = -Math.round(progress * global.screen_height);
else if (Clutter.get_default_text_direction() === Clutter.TextDirection.RTL)
xPos = Math.round(progress * global.screen_width);
else
xPos = -Math.round(progress * global.screen_width);
}
this._switchData.container.set_position(xPos, yPos);
}
_switchWorkspaceEnd(tracker, duration, endProgress) {
if (!this._switchData)
return;
let workspaceManager = global.workspace_manager;
let activeWorkspace = workspaceManager.get_active_workspace();
let newWs = activeWorkspace;
let xDest = 0;
let yDest = 0;
if (endProgress !== 0) {
let direction = this._directionForProgress(endProgress);
newWs = activeWorkspace.get_neighbor(direction);
xDest = -this._switchData.surroundings[direction].xDest;
yDest = -this._switchData.surroundings[direction].yDest;
}
let switchData = this._switchData;
switchData.gestureActivated = true;
this._switchData.container.ease({
x: xDest,
y: yDest,
duration,
mode: Clutter.AnimationMode.EASE_OUT_CUBIC,
onComplete: () => {
if (newWs !== activeWorkspace)
this.actionMoveWorkspace(newWs);
this._finishWorkspaceSwitch(switchData);
},
});
}
_switchWorkspaceStop() {
this._switchData.container.x = 0;
this._switchData.container.y = 0;
this._finishWorkspaceSwitch(this._switchData);
}
_showTilePreview(shellwm, window, tileRect, monitorIndex) {
if (!this._tilePreview)
this._tilePreview = new TilePreview();
@@ -2165,7 +1764,7 @@ var WindowManager = class {
// This won't have any effect for "always sticky" windows
// (like desktop windows or docks)
this._movingWindow = window;
this._workspaceAnimation.movingWindow = window;
window.change_workspace(workspace);
global.display.clear_mouse_mode();

511
js/ui/workspaceAnimation.js Normal file
View File

@@ -0,0 +1,511 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/* exported WorkspaceAnimationController */
const { Clutter, GObject, Meta, Shell } = imports.gi;
const Main = imports.ui.main;
const Layout = imports.ui.layout;
const SwipeTracker = imports.ui.swipeTracker;
const WINDOW_ANIMATION_TIME = 250;
const WorkspaceGroup = GObject.registerClass(
class WorkspaceGroup extends Clutter.Actor {
_init(controller, workspace, monitor) {
super._init();
this._controller = controller;
this._workspace = workspace;
this._monitor = monitor;
this._windows = [];
this._refreshWindows();
this.connect('destroy', this._onDestroy.bind(this));
this._restackedId = global.display.connect('restacked',
this._refreshWindows.bind(this));
}
_shouldShowWindow(window) {
if (window.get_workspace() !== this._workspace)
return false;
let geometry = global.display.get_monitor_geometry(this._monitor.index);
let [intersects, intersection_] = window.get_frame_rect().intersect(geometry);
if (!intersects)
return false;
if (!window.showing_on_its_workspace())
return false;
if (window.is_on_all_workspaces())
return false;
if (this._controller.movingWindow &&
window === this._controller.movingWindow)
return false;
return true;
}
_refreshWindows() {
if (this._windows.length > 0)
this._removeWindows();
let windows = global.get_window_actors();
windows = windows.filter(w => this._shouldShowWindow(w.meta_window));
for (let window of windows) {
let clone = new Clutter.Clone({
source: window,
x: window.x - this._monitor.x,
y: window.y - this._monitor.y,
});
this.add_actor(clone);
window.hide();
let record = { window, clone };
record.windowDestroyId = window.connect('destroy', () => {
clone.destroy();
this._windows.splice(this._windows.indexOf(record), 1);
});
this._windows.push(record);
}
}
_removeWindows() {
for (let i = 0; i < this._windows.length; i++) {
let w = this._windows[i];
w.window.disconnect(w.windowDestroyId);
w.clone.destroy();
if (w.window.get_meta_window().get_workspace() ===
global.workspace_manager.get_active_workspace())
w.window.show();
}
this._windows = [];
}
_onDestroy() {
global.display.disconnect(this._restackedId);
this._removeWindows();
}
});
const WorkspaceAnimation = GObject.registerClass({
Properties: {
'progress': GObject.ParamSpec.double(
'progress', 'progress', 'progress',
GObject.ParamFlags.READWRITE,
-1, 1, 0),
},
}, class WorkspaceAnimation extends Clutter.Actor {
_init(controller, from, to, direction) {
super._init();
this.connect('destroy', this._onDestroy.bind(this));
this._controller = controller;
this._movingWindow = null;
this._monitors = [];
this._progress = 0;
global.window_group.add_actor(this);
let workspaceManager = global.workspace_manager;
let curWs = workspaceManager.get_workspace_by_index(from);
for (let monitor of Main.layoutManager.monitors) {
let record = {
index: monitor.index,
clipBin: new Clutter.Actor({
x_expand: true,
y_expand: true,
clip_to_allocation: true,
}),
container: new Clutter.Actor(),
surroundings: {},
};
let constraint = new Layout.MonitorConstraint({ index: monitor.index });
record.clipBin.add_constraint(constraint);
record.clipBin.add_actor(record.container);
this.add_actor(record.clipBin);
record.curGroup = new WorkspaceGroup(controller, curWs, monitor);
record.container.add_actor(record.curGroup);
for (let dir of Object.values(Meta.MotionDirection)) {
let ws = null;
if (to < 0)
ws = curWs.get_neighbor(dir);
else if (dir === direction)
ws = workspaceManager.get_workspace_by_index(to);
if (ws === null || ws === curWs) {
record.surroundings[dir] = null;
continue;
}
let [x, y] = this._getPositionForDirection(dir, curWs, ws,
monitor.index);
let info = {
index: ws.index(),
actor: new WorkspaceGroup(controller, ws, monitor),
xDest: x,
yDest: y,
};
record.surroundings[dir] = info;
record.container.add_actor(info.actor);
record.container.set_child_above_sibling(info.actor, null);
info.actor.set_position(x, y);
}
this._monitors.push(record);
}
if (this._controller.movingWindow) {
let actor = this._controller.movingWindow.get_compositor_private();
let container = new Clutter.Actor();
this._movingWindow = {
container,
window: actor,
parent: actor.get_parent(),
};
this._movingWindow.parent.remove_child(actor);
this._movingWindow.container.add_child(actor);
this._movingWindow.windowDestroyId = actor.connect('destroy', () => {
this._movingWindow = null;
});
global.window_group.add_actor(container);
global.window_group.set_child_above_sibling(container, null);
}
}
_onDestroy() {
this._monitors = [];
if (this._movingWindow) {
let record = this._movingWindow;
record.window.disconnect(record.windowDestroyId);
record.window.get_parent().remove_child(record.window);
record.parent.add_child(record.window);
record.container.destroy();
this._movingWindow = null;
}
}
_getPositionForDirection(direction, fromWs, toWs, monitor) {
let xDest = 0, yDest = 0;
let condition = w => w.get_monitor() === monitor && w.is_fullscreen();
let oldWsIsFullscreen = fromWs.list_windows().some(condition);
let newWsIsFullscreen = toWs.list_windows().some(condition);
let geometry = Main.layoutManager.monitors[monitor];
// We have to shift windows up or down by the height of the panel to prevent having a
// visible gap between the windows while switching workspaces. Since fullscreen windows
// hide the panel, they don't need to be shifted up or down.
let shiftHeight = monitor === Main.layoutManager.primaryIndex
? Main.panel.height : 0;
if (direction === Meta.MotionDirection.UP ||
direction === Meta.MotionDirection.UP_LEFT ||
direction === Meta.MotionDirection.UP_RIGHT)
yDest = -geometry.height + (oldWsIsFullscreen ? 0 : shiftHeight);
else if (direction === Meta.MotionDirection.DOWN ||
direction === Meta.MotionDirection.DOWN_LEFT ||
direction === Meta.MotionDirection.DOWN_RIGHT)
yDest = geometry.height - (newWsIsFullscreen ? 0 : shiftHeight);
if (direction === Meta.MotionDirection.LEFT ||
direction === Meta.MotionDirection.UP_LEFT ||
direction === Meta.MotionDirection.DOWN_LEFT)
xDest = -geometry.width;
else if (direction === Meta.MotionDirection.RIGHT ||
direction === Meta.MotionDirection.UP_RIGHT ||
direction === Meta.MotionDirection.DOWN_RIGHT)
xDest = geometry.width;
return [xDest, yDest];
}
directionForProgress(progress) {
if (global.workspace_manager.layout_rows === -1) {
return progress > 0
? Meta.MotionDirection.DOWN
: Meta.MotionDirection.UP;
} else if (Clutter.get_default_text_direction() === Clutter.TextDirection.RTL) {
return progress > 0
? Meta.MotionDirection.LEFT
: Meta.MotionDirection.RIGHT;
} else {
return progress > 0
? Meta.MotionDirection.RIGHT
: Meta.MotionDirection.LEFT;
}
}
progressForDirection(dir) {
if (global.workspace_manager.layout_rows === -1)
return dir === Meta.MotionDirection.DOWN ? 1 : -1;
else if (Clutter.get_default_text_direction() === Clutter.TextDirection.RTL)
return dir === Meta.MotionDirection.LEFT ? 1 : -1;
else
return dir === Meta.MotionDirection.RIGHT ? 1 : -1;
}
get progress() {
return this._progress;
}
set progress(progress) {
this._progress = progress;
let direction = this.directionForProgress(progress);
for (let monitorData of this._monitors) {
let xPos = 0;
let yPos = 0;
if (global.workspace_manager.layout_rows === -1)
yPos = -Math.round(progress * this._getDistance(monitorData, direction));
else if (Clutter.get_default_text_direction() === Clutter.TextDirection.RTL)
xPos = Math.round(progress * this._getDistance(monitorData, direction));
else
xPos = -Math.round(progress * this._getDistance(monitorData, direction));
monitorData.container.set_position(xPos, yPos);
}
}
_getDistance(monitorData, direction) {
let info = monitorData.surroundings[direction];
if (!info)
return 0;
switch (direction) {
case Meta.MotionDirection.UP:
return -info.yDest;
case Meta.MotionDirection.DOWN:
return info.yDest;
case Meta.MotionDirection.LEFT:
return -info.xDest;
case Meta.MotionDirection.RIGHT:
return info.xDest;
}
return 0;
}
getProgressRange(monitor) {
let monitorData = null;
for (let data of this._monitors) {
if (data.index === monitor) {
monitorData = data;
break;
}
}
if (!monitorData)
return 0;
let baseDistance;
if (global.workspace_manager.layout_rows !== -1)
baseDistance = Main.layoutManager.monitors[monitor].width;
else
baseDistance = Main.layoutManager.monitors[monitor].height;
let direction = this.directionForProgress(-1);
let distance = this._getDistance(monitorData, direction);
let lower = -distance / baseDistance;
direction = this.directionForProgress(1);
distance = this._getDistance(monitorData, direction);
let upper = distance / baseDistance;
return [lower, upper];
}
});
var WorkspaceAnimationController = class {
constructor() {
this._blockAnimations = false;
this._movingWindow = null;
this._inProgress = false;
this._gestureActivated = false;
this._animation = null;
Main.overview.connect('showing', () => {
if (this._gestureActivated)
this._switchWorkspaceStop();
this._swipeTracker.enabled = false;
});
Main.overview.connect('hiding', () => {
this._swipeTracker.enabled = true;
});
let swipeTracker = new SwipeTracker.SwipeTracker(global.stage,
Shell.ActionMode.NORMAL, { allowDrag: false, allowScroll: false });
swipeTracker.connect('begin', this._switchWorkspaceBegin.bind(this));
swipeTracker.connect('update', this._switchWorkspaceUpdate.bind(this));
swipeTracker.connect('end', this._switchWorkspaceEnd.bind(this));
this._swipeTracker = swipeTracker;
}
_prepareWorkspaceSwitch(from, to, direction) {
if (this._animation)
return;
this._animation = new WorkspaceAnimation(this, from, to, direction);
}
_finishWorkspaceSwitch() {
if (this._animation)
this._animation.destroy();
this._animation = null;
this._inProgress = false;
this._gestureActivated = false;
this.movingWindow = null;
this._monitor = null;
}
animateSwitchWorkspace(from, to, direction, onComplete) {
this._prepareWorkspaceSwitch(from, to, direction);
this._inProgress = true;
let progress = this._animation.progressForDirection(direction);
this._animation.ease_property('progress', progress, {
duration: WINDOW_ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_OUT_CUBIC,
onComplete: () => {
this._finishWorkspaceSwitch();
onComplete();
},
});
}
_switchWorkspaceBegin(tracker, monitor) {
if (Meta.prefs_get_workspaces_only_on_primary() &&
monitor !== Main.layoutManager.primaryIndex)
return;
let workspaceManager = global.workspace_manager;
let horiz = workspaceManager.layout_rows !== -1;
tracker.orientation = horiz
? Clutter.Orientation.HORIZONTAL
: Clutter.Orientation.VERTICAL;
let activeWorkspace = workspaceManager.get_active_workspace();
let baseDistance;
if (horiz)
baseDistance = Main.layoutManager.monitors[monitor].width;
else
baseDistance = Main.layoutManager.monitors[monitor].height;
let progress;
if (this._gestureActivated) {
this._animation.remove_all_transitions();
progress = this._animation.progress;
} else {
this._prepareWorkspaceSwitch(activeWorkspace.index(), -1);
progress = 0;
}
this._monitor = monitor;
let [lower, upper] = this._animation.getProgressRange(monitor);
if (progress < 0)
progress *= -lower;
else if (progress > 0)
progress *= upper;
let points = [];
if (lower !== 0)
points.push(lower);
points.push(0);
if (upper !== 0)
points.push(upper);
tracker.confirmSwipe(baseDistance, points, progress, 0);
}
_switchWorkspaceUpdate(tracker, progress) {
// Translate the progress into [-1;1] range
let [lower, upper] = this._animation.getProgressRange(this._monitor);
if (progress < 0)
progress /= -lower;
else if (progress > 0)
progress /= upper;
this._animation.progress = progress;
}
_switchWorkspaceEnd(tracker, duration, endProgress) {
if (!this._animation)
return;
// Translate the progress into [-1;1] range
endProgress = Math.sign(endProgress);
let workspaceManager = global.workspace_manager;
let activeWorkspace = workspaceManager.get_active_workspace();
let newWs = activeWorkspace;
if (endProgress !== 0) {
let direction = this._animation.directionForProgress(endProgress);
newWs = activeWorkspace.get_neighbor(direction);
}
this._gestureActivated = true;
this._animation.ease_property('progress', endProgress, {
duration,
mode: Clutter.AnimationMode.EASE_OUT_CUBIC,
onComplete: () => {
if (newWs !== activeWorkspace)
newWs.activate(global.get_current_time());
this._finishWorkspaceSwitch();
},
});
}
_switchWorkspaceStop() {
this._animation.progress = 0;
this._finishWorkspaceSwitch();
}
isAnimating() {
return this._animation !== null;
}
canCancelGesture() {
return this.isAnimating() && this._gestureActivated;
}
set movingWindow(movingWindow) {
this._movingWindow = movingWindow;
}
get movingWindow() {
return this._movingWindow;
}
};

View File

@@ -1,5 +1,5 @@
project('gnome-shell', 'c',
version: '3.36.0',
version: '3.35.91',
meson_version: '>= 0.47.0',
license: 'GPLv2+'
)
@@ -25,12 +25,12 @@ gio_req = '>= 2.56.0'
gi_req = '>= 1.49.1'
gjs_req = '>= 1.63.2'
gtk_req = '>= 3.15.0'
mutter_req = '>= 3.36.0'
mutter_req = '>= 3.35.91'
polkit_req = '>= 0.100'
schemas_req = '>= 3.33.1'
startup_req = '>= 0.11'
ibus_req = '>= 1.5.2'
gnome_desktop_req = '>= 3.35.90'
gnome_desktop_req = '>= 3.34.2'
bt_req = '>= 3.9.0'
gst_req = '>= 0.11.92'

View File

@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: HEAD\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-02-25 23:44+0000\n"
"POT-Creation-Date: 2020-02-17 22:27+0000\n"
"PO-Revision-Date: 2020-02-18 20:44+0100\n"
"Last-Translator: Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
@@ -428,11 +428,11 @@ msgstr ""
"Si suprimiu una extensió, us cal tornar-la a baixar si voleu habilitar-la de "
"nou."
#: js/extensionPrefs/main.js:144 js/gdm/authPrompt.js:135
#: js/ui/audioDeviceSelection.js:57 js/ui/components/networkAgent.js:107
#: js/ui/components/polkitAgent.js:139 js/ui/endSessionDialog.js:374
#: js/ui/extensionDownloader.js:165 js/ui/shellMountOperation.js:376
#: js/ui/shellMountOperation.js:386 js/ui/status/network.js:913
#: js/extensionPrefs/main.js:144 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:107 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:374 js/ui/extensionDownloader.js:165
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:913
msgid "Cancel"
msgstr "Cancel·la"
@@ -566,7 +566,7 @@ msgid "Log Out…"
msgstr "Surt…"
#. Cisco LEAP
#: js/gdm/authPrompt.js:237 js/ui/components/networkAgent.js:202
#: js/gdm/authPrompt.js:235 js/ui/components/networkAgent.js:202
#: js/ui/components/networkAgent.js:218 js/ui/components/networkAgent.js:242
#: js/ui/components/networkAgent.js:263 js/ui/components/networkAgent.js:283
#: js/ui/components/networkAgent.js:293 js/ui/components/polkitAgent.js:277
@@ -862,27 +862,27 @@ msgid "All"
msgstr "Totes"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2450 js/ui/panel.js:75
#: js/ui/appDisplay.js:2454 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Obre finestres"
#: js/ui/appDisplay.js:2470 js/ui/panel.js:82
#: js/ui/appDisplay.js:2474 js/ui/panel.js:82
msgid "New Window"
msgstr "Finestra nova"
#: js/ui/appDisplay.js:2481
#: js/ui/appDisplay.js:2485
msgid "Launch using Dedicated Graphics Card"
msgstr "Inicia usant una targeta gràfica dedicada"
#: js/ui/appDisplay.js:2509 js/ui/dash.js:239
#: js/ui/appDisplay.js:2513 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Suprimeix dels preferits"
#: js/ui/appDisplay.js:2515
#: js/ui/appDisplay.js:2519
msgid "Add to Favorites"
msgstr "Afegeix als preferits"
#: js/ui/appDisplay.js:2525 js/ui/panel.js:93
#: js/ui/appDisplay.js:2529 js/ui/panel.js:93
msgid "Show Details"
msgstr "Mostra els detalls"
@@ -1538,59 +1538,59 @@ msgstr "Deixa-ho desactivat"
msgid "Region & Language Settings"
msgstr "Configuració de regió i idioma"
#: js/ui/lookingGlass.js:665
#: js/ui/lookingGlass.js:659
msgid "No extensions installed"
msgstr "No hi ha cap extensió instal·lada"
#. Translators: argument is an extension UUID.
#: js/ui/lookingGlass.js:720
#: js/ui/lookingGlass.js:714
#, javascript-format
msgid "%s has not emitted any errors."
msgstr "%s no ha emès cap error."
#: js/ui/lookingGlass.js:726
#: js/ui/lookingGlass.js:720
msgid "Hide Errors"
msgstr "Amaga els errors"
#: js/ui/lookingGlass.js:730 js/ui/lookingGlass.js:795
#: js/ui/lookingGlass.js:724 js/ui/lookingGlass.js:789
msgid "Show Errors"
msgstr "Mostra els errors"
#: js/ui/lookingGlass.js:739
#: js/ui/lookingGlass.js:733
msgid "Enabled"
msgstr "Habilitat"
#. translators:
#. * The device has been disabled
#: js/ui/lookingGlass.js:742 subprojects/gvc/gvc-mixer-control.c:1892
#: js/ui/lookingGlass.js:736 subprojects/gvc/gvc-mixer-control.c:1892
msgid "Disabled"
msgstr "Inhabilitat"
#: js/ui/lookingGlass.js:744
#: js/ui/lookingGlass.js:738
msgid "Error"
msgstr "Error"
#: js/ui/lookingGlass.js:746
#: js/ui/lookingGlass.js:740
msgid "Out of date"
msgstr "Fora d'hora"
#: js/ui/lookingGlass.js:748
#: js/ui/lookingGlass.js:742
msgid "Downloading"
msgstr "S'està baixant"
#: js/ui/lookingGlass.js:777
#: js/ui/lookingGlass.js:771
msgid "View Source"
msgstr "Mostra el codi font"
#: js/ui/lookingGlass.js:786
#: js/ui/lookingGlass.js:780
msgid "Web Page"
msgstr "Pàgina web"
#: js/ui/main.js:269
#: js/ui/main.js:267
msgid "Logged in as a privileged user"
msgstr "Sessió iniciada com a usuari privilegiat"
#: js/ui/main.js:270
#: js/ui/main.js:268
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@@ -1598,11 +1598,11 @@ msgstr ""
"Cal evitar iniciar sessions com a usuari privilegiat per raons de seguretat. "
"Si és possible, entreu com a un usuari normal."
#: js/ui/main.js:276
#: js/ui/main.js:274
msgid "Screen Lock disabled"
msgstr "La pantalla de bloqueig està inhabilitada"
#: js/ui/main.js:277
#: js/ui/main.js:275
msgid "Screen Locking requires the GNOME display manager."
msgstr "El bloqueig de pantalla requereix el gestor de pantalla del GNOME."
@@ -1690,12 +1690,12 @@ msgstr "Surt"
msgid "Activities"
msgstr "Activitats"
#: js/ui/panel.js:713
#: js/ui/panel.js:707
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistema"
#: js/ui/panel.js:826
#: js/ui/panel.js:820
msgid "Top Bar"
msgstr "Barra superior"
@@ -1915,11 +1915,11 @@ msgstr "Clic secundari"
msgid "Dwell Click"
msgstr "Clic en passar per sobre"
#: js/ui/status/keyboard.js:826
#: js/ui/status/keyboard.js:825
msgid "Keyboard"
msgstr "Teclat"
#: js/ui/status/keyboard.js:848
#: js/ui/status/keyboard.js:847
msgid "Show Keyboard Layout"
msgstr "Mostra la disposició del teclat"
@@ -2333,26 +2333,22 @@ msgstr "Només l'integrat"
#. Translators: This is a time format for a date in
#. long format
#: js/ui/unlockDialog.js:370
#: js/ui/unlockDialog.js:372
msgid "%A %B %-d"
msgstr "%A %-d %B"
#: js/ui/unlockDialog.js:376
#: js/ui/unlockDialog.js:378
msgid "Swipe up to unlock"
msgstr "Llisqueu amunt per desbloquejar"
#: js/ui/unlockDialog.js:377
#: js/ui/unlockDialog.js:379
msgid "Click or press a key to unlock"
msgstr "Feu clic o premeu una tecla per desbloquejar"
#: js/ui/unlockDialog.js:549
#: js/ui/unlockDialog.js:552
msgid "Unlock Window"
msgstr "Desbloqueja la finestra"
#: js/ui/unlockDialog.js:558
msgid "Log in as another user"
msgstr "Entra amb un altre usuari"
#: js/ui/viewSelector.js:181
msgid "Applications"
msgstr "Aplicacions"
@@ -2855,6 +2851,9 @@ msgstr "Sons del sistema"
#~ msgid "Enter Password…"
#~ msgstr "Introduïu la contrasenya…"
#~ msgid "Log in as another user"
#~ msgstr "Entra amb un altre usuari"
#~ msgid "Browse in Software"
#~ msgstr "Navega al Programari"

1629
po/cs.po

File diff suppressed because it is too large Load Diff

316
po/da.po
View File

@@ -17,8 +17,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-02-25 23:44+0000\n"
"PO-Revision-Date: 2020-02-26 17:08+0100\n"
"POT-Creation-Date: 2020-02-13 18:31+0000\n"
"PO-Revision-Date: 2020-02-15 11:48+0100\n"
"Last-Translator: Alan Mortensen <alanmortensen.am@gmail.com>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"Language: da\n"
@@ -418,11 +418,11 @@ msgid ""
"to enable it again"
msgstr "Fjerner du udvidelsen, skal du hente den igen for at aktivere den"
#: js/extensionPrefs/main.js:144 js/gdm/authPrompt.js:135
#: js/ui/audioDeviceSelection.js:57 js/ui/components/networkAgent.js:107
#: js/ui/components/polkitAgent.js:139 js/ui/endSessionDialog.js:374
#: js/ui/extensionDownloader.js:165 js/ui/shellMountOperation.js:376
#: js/ui/shellMountOperation.js:386 js/ui/status/network.js:913
#: js/extensionPrefs/main.js:144 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:107 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:374 js/ui/extensionDownloader.js:166
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:910
msgid "Cancel"
msgstr "Annullér"
@@ -559,15 +559,6 @@ msgstr ""
msgid "Log Out…"
msgstr "Log ud …"
#. Cisco LEAP
#: js/gdm/authPrompt.js:237 js/ui/components/networkAgent.js:202
#: js/ui/components/networkAgent.js:218 js/ui/components/networkAgent.js:242
#: js/ui/components/networkAgent.js:263 js/ui/components/networkAgent.js:283
#: js/ui/components/networkAgent.js:293 js/ui/components/polkitAgent.js:277
#: js/ui/shellMountOperation.js:326
msgid "Password"
msgstr "Adgangskode"
#: js/gdm/loginDialog.js:318
msgid "Choose Session"
msgstr "Vælg session"
@@ -583,15 +574,11 @@ msgstr "Ikke listet?"
msgid "(e.g., user or %s)"
msgstr "(f.eks. bruger eller %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: js/gdm/loginDialog.js:917 js/ui/components/networkAgent.js:238
#: js/ui/components/networkAgent.js:261 js/ui/components/networkAgent.js:279
msgid "Username"
msgstr "Brugernavn"
#: js/gdm/loginDialog.js:917
msgid "Username…"
msgstr "Brugernavn …"
#: js/gdm/loginDialog.js:1253
#: js/gdm/loginDialog.js:1252
msgid "Login Window"
msgstr "Indlogningsvindue"
@@ -816,11 +803,11 @@ msgid "%B %-d %Y, %l%M %p"
msgstr "%-d. %B %Y, %l%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login window
#: js/portalHelper/main.js:41
#: js/portalHelper/main.js:42
msgid "Hotspot Login"
msgstr "Hotspot-login"
#: js/portalHelper/main.js:87
#: js/portalHelper/main.js:88
msgid ""
"Your connection to this hotspot login is not secure. Passwords or other "
"information you enter on this page can be viewed by people nearby."
@@ -855,27 +842,27 @@ msgid "All"
msgstr "Alle"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2450 js/ui/panel.js:75
#: js/ui/appDisplay.js:2454 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Åbne vinduer"
#: js/ui/appDisplay.js:2470 js/ui/panel.js:82
#: js/ui/appDisplay.js:2474 js/ui/panel.js:82
msgid "New Window"
msgstr "Nyt vindue"
#: js/ui/appDisplay.js:2481
#: js/ui/appDisplay.js:2485
msgid "Launch using Dedicated Graphics Card"
msgstr "Start med dedikeret grafikkort"
#: js/ui/appDisplay.js:2509 js/ui/dash.js:239
#: js/ui/appDisplay.js:2513 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Fjern fra favoritter"
#: js/ui/appDisplay.js:2515
#: js/ui/appDisplay.js:2519
msgid "Add to Favorites"
msgstr "Føj til favoritter"
#: js/ui/appDisplay.js:2525 js/ui/panel.js:93
#: js/ui/appDisplay.js:2529 js/ui/panel.js:93
msgid "Show Details"
msgstr "Vis detaljer"
@@ -1100,32 +1087,48 @@ msgstr ""
"Du kan også oprette forbindelse ved at trykke på “WPS”-knappen på din router."
#: js/ui/components/networkAgent.js:101 js/ui/status/network.js:223
#: js/ui/status/network.js:314 js/ui/status/network.js:916
#: js/ui/status/network.js:314 js/ui/status/network.js:913
msgid "Connect"
msgstr "Forbind"
#: js/ui/components/networkAgent.js:208
msgid "Key"
msgstr "Nøgle"
#. Cisco LEAP
#: js/ui/components/networkAgent.js:202 js/ui/components/networkAgent.js:214
#: js/ui/components/networkAgent.js:238 js/ui/components/networkAgent.js:259
#: js/ui/components/networkAgent.js:279 js/ui/components/networkAgent.js:289
msgid "Password: "
msgstr "Adgangskode: "
#: js/ui/components/networkAgent.js:246 js/ui/components/networkAgent.js:269
msgid "Private key password"
msgstr "Adgangskode til privat nøgle"
#. static WEP
#: js/ui/components/networkAgent.js:207
msgid "Key: "
msgstr "Nøgle: "
#: js/ui/components/networkAgent.js:267
msgid "Identity"
msgstr "Identitet"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: js/ui/components/networkAgent.js:234 js/ui/components/networkAgent.js:257
#: js/ui/components/networkAgent.js:275
msgid "Username: "
msgstr "Brugernavn: "
#: js/ui/components/networkAgent.js:281
msgid "Service"
msgstr "Tjeneste"
#: js/ui/components/networkAgent.js:242 js/ui/components/networkAgent.js:265
msgid "Private key password: "
msgstr "Privatnøgle-adgangskode: "
#: js/ui/components/networkAgent.js:310 js/ui/components/networkAgent.js:338
#: js/ui/components/networkAgent.js:685 js/ui/components/networkAgent.js:706
#: js/ui/components/networkAgent.js:263
msgid "Identity: "
msgstr "Identitet: "
#: js/ui/components/networkAgent.js:277
msgid "Service: "
msgstr "Tjeneste: "
#: js/ui/components/networkAgent.js:306 js/ui/components/networkAgent.js:334
#: js/ui/components/networkAgent.js:681 js/ui/components/networkAgent.js:702
msgid "Authentication required"
msgstr "Godkendelse påkrævet"
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:686
#: js/ui/components/networkAgent.js:307 js/ui/components/networkAgent.js:682
#, javascript-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@@ -1134,42 +1137,42 @@ msgstr ""
"Adgangskoder eller krypteringsnøgler er påkrævet for at få adgang til det "
"trådløse netværk “%s”."
#: js/ui/components/networkAgent.js:315 js/ui/components/networkAgent.js:690
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:686
msgid "Wired 802.1X authentication"
msgstr "Trådet 802.1X-godkendelse"
#: js/ui/components/networkAgent.js:317
msgid "Network name"
msgstr "Netværksnavn"
#: js/ui/components/networkAgent.js:313
msgid "Network name: "
msgstr "Netværksnavn: "
#: js/ui/components/networkAgent.js:322 js/ui/components/networkAgent.js:694
#: js/ui/components/networkAgent.js:318 js/ui/components/networkAgent.js:690
msgid "DSL authentication"
msgstr "DSL-godkendelse"
#: js/ui/components/networkAgent.js:329 js/ui/components/networkAgent.js:699
#: js/ui/components/networkAgent.js:325 js/ui/components/networkAgent.js:695
msgid "PIN code required"
msgstr "PIN-kode er påkrævet"
#: js/ui/components/networkAgent.js:330 js/ui/components/networkAgent.js:700
#: js/ui/components/networkAgent.js:326 js/ui/components/networkAgent.js:696
msgid "PIN code is needed for the mobile broadband device"
msgstr "PIN-kode er nødvendig for den mobile bredbåndsenhed"
#: js/ui/components/networkAgent.js:331
msgid "PIN"
msgstr "PIN"
#: js/ui/components/networkAgent.js:327
msgid "PIN: "
msgstr "PIN: "
#: js/ui/components/networkAgent.js:339 js/ui/components/networkAgent.js:691
#: js/ui/components/networkAgent.js:695 js/ui/components/networkAgent.js:707
#: js/ui/components/networkAgent.js:711
#: js/ui/components/networkAgent.js:335 js/ui/components/networkAgent.js:687
#: js/ui/components/networkAgent.js:691 js/ui/components/networkAgent.js:703
#: js/ui/components/networkAgent.js:707
#, javascript-format
msgid "A password is required to connect to “%s”."
msgstr "Der kræves en adgangskode for at forbinde til “%s”."
#: js/ui/components/networkAgent.js:674 js/ui/status/network.js:1691
#: js/ui/components/networkAgent.js:670 js/ui/status/network.js:1688
msgid "Network Manager"
msgstr "Netværkshåndtering"
#: js/ui/components/networkAgent.js:710
#: js/ui/components/networkAgent.js:706
msgid "VPN password"
msgstr "VPN-adgangskode"
@@ -1193,6 +1196,10 @@ msgstr "Godkend"
msgid "Sorry, that didnt work. Please try again."
msgstr "Beklager, det fungerede ikke. Prøv igen."
#: js/ui/components/polkitAgent.js:277 js/ui/shellMountOperation.js:326
msgid "Enter Password…"
msgstr "Indtast adgangskode …"
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: js/ui/components/telepathyClient.js:787
@@ -1406,15 +1413,15 @@ msgstr "%s (fjern)"
msgid "%s (console)"
msgstr "%s (konsol)"
#: js/ui/extensionDownloader.js:169
#: js/ui/extensionDownloader.js:170
msgid "Install"
msgstr "Installér"
#: js/ui/extensionDownloader.js:175
#: js/ui/extensionDownloader.js:176
msgid "Install Extension"
msgstr "Installér udvidelse"
#: js/ui/extensionDownloader.js:176
#: js/ui/extensionDownloader.js:177
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Hent og installér “%s” fra extensions.gnome.org?"
@@ -1502,13 +1509,13 @@ msgid "Leave On"
msgstr "Lad være tændt"
#: js/ui/kbdA11yDialog.js:55 js/ui/status/bluetooth.js:135
#: js/ui/status/network.js:1288
#: js/ui/status/network.js:1285
msgid "Turn On"
msgstr "Tænd"
#: js/ui/kbdA11yDialog.js:63 js/ui/status/bluetooth.js:135
#: js/ui/status/network.js:131 js/ui/status/network.js:315
#: js/ui/status/network.js:1288 js/ui/status/network.js:1400
#: js/ui/status/network.js:1285 js/ui/status/network.js:1397
#: js/ui/status/nightLight.js:41 js/ui/status/rfkill.js:81
#: js/ui/status/rfkill.js:108
msgid "Turn Off"
@@ -1522,59 +1529,59 @@ msgstr "Lad være slukket"
msgid "Region & Language Settings"
msgstr "Indstillinger for område og sprog"
#: js/ui/lookingGlass.js:665
#: js/ui/lookingGlass.js:659
msgid "No extensions installed"
msgstr "Ingen udvidelser er installeret"
#. Translators: argument is an extension UUID.
#: js/ui/lookingGlass.js:720
#: js/ui/lookingGlass.js:714
#, javascript-format
msgid "%s has not emitted any errors."
msgstr "%s er ikke kommet med nogen fejl."
#: js/ui/lookingGlass.js:726
#: js/ui/lookingGlass.js:720
msgid "Hide Errors"
msgstr "Skjul fejl"
#: js/ui/lookingGlass.js:730 js/ui/lookingGlass.js:795
#: js/ui/lookingGlass.js:724 js/ui/lookingGlass.js:789
msgid "Show Errors"
msgstr "Vis fejl"
#: js/ui/lookingGlass.js:739
#: js/ui/lookingGlass.js:733
msgid "Enabled"
msgstr "Aktiveret"
#. translators:
#. * The device has been disabled
#: js/ui/lookingGlass.js:742 subprojects/gvc/gvc-mixer-control.c:1892
#: js/ui/lookingGlass.js:736 subprojects/gvc/gvc-mixer-control.c:1892
msgid "Disabled"
msgstr "Deaktiveret"
#: js/ui/lookingGlass.js:744
#: js/ui/lookingGlass.js:738
msgid "Error"
msgstr "Fejl"
#: js/ui/lookingGlass.js:746
#: js/ui/lookingGlass.js:740
msgid "Out of date"
msgstr "Udløbet"
#: js/ui/lookingGlass.js:748
#: js/ui/lookingGlass.js:742
msgid "Downloading"
msgstr "Henter"
#: js/ui/lookingGlass.js:777
#: js/ui/lookingGlass.js:771
msgid "View Source"
msgstr "Vis kilde"
#: js/ui/lookingGlass.js:786
#: js/ui/lookingGlass.js:780
msgid "Web Page"
msgstr "Webside"
#: js/ui/main.js:269
#: js/ui/main.js:267
msgid "Logged in as a privileged user"
msgstr "Logget ind som en privilegeret bruger"
#: js/ui/main.js:270
#: js/ui/main.js:268
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@@ -1582,15 +1589,15 @@ msgstr ""
"Kørsel af en session som en privilegeret bruger bør undgås af "
"sikkerhedsmæssige årsager. Log ind som en normal bruger, hvis det er muligt."
#: js/ui/main.js:276
#: js/ui/main.js:274
msgid "Screen Lock disabled"
msgstr "Skærmlås er deaktiveret"
#: js/ui/main.js:277
#: js/ui/main.js:275
msgid "Screen Locking requires the GNOME display manager."
msgstr "Skærmlåsning kræver GNOME-skærmhåndteringen."
#: js/ui/messageTray.js:1554
#: js/ui/messageTray.js:1552
msgid "System Information"
msgstr "Systeminformation"
@@ -1617,8 +1624,8 @@ msgstr "Oversigt"
#. active; it should not exceed ~30
#. characters.
#: js/ui/overview.js:107
msgid "Type to search"
msgstr "Skriv for at søge"
msgid "Type to search"
msgstr "Skriv for at søge"
#: js/ui/padOsd.js:95
msgid "New shortcut…"
@@ -1644,23 +1651,23 @@ msgstr "Tildel tastekombination"
msgid "Done"
msgstr "Færdig"
#: js/ui/padOsd.js:745
#: js/ui/padOsd.js:747
msgid "Edit…"
msgstr "Redigér …"
#: js/ui/padOsd.js:787 js/ui/padOsd.js:910
#: js/ui/padOsd.js:789 js/ui/padOsd.js:912
msgid "None"
msgstr "Ingen"
#: js/ui/padOsd.js:863
#: js/ui/padOsd.js:865
msgid "Press a button to configure"
msgstr "Tryk på en knap for at konfigurere"
#: js/ui/padOsd.js:864
#: js/ui/padOsd.js:866
msgid "Press Esc to exit"
msgstr "Tryk Esc for at afslutte"
#: js/ui/padOsd.js:867
#: js/ui/padOsd.js:869
msgid "Press any key to exit"
msgstr "Tryk en vilkårlig tast for at afslutte"
@@ -1674,12 +1681,12 @@ msgstr "Afslut"
msgid "Activities"
msgstr "Aktiviteter"
#: js/ui/panel.js:713
#: js/ui/panel.js:707
msgctxt "System menu in the top bar"
msgid "System"
msgstr "System"
#: js/ui/panel.js:826
#: js/ui/panel.js:820
msgid "Top Bar"
msgstr "Toppanel"
@@ -1710,11 +1717,11 @@ msgstr "GNOME er nødt til at låse skærmen"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: js/ui/screenShield.js:244 js/ui/screenShield.js:598
#: js/ui/screenShield.js:244 js/ui/screenShield.js:602
msgid "Unable to lock"
msgstr "Kunne ikke låse"
#: js/ui/screenShield.js:245 js/ui/screenShield.js:599
#: js/ui/screenShield.js:245 js/ui/screenShield.js:603
msgid "Lock was blocked by an application"
msgstr "Lås blev blokeret af et program"
@@ -1775,8 +1782,8 @@ msgstr ""
"bruger nøglefiler."
#: js/ui/shellMountOperation.js:306
msgid "PIM Number"
msgstr "PIM-nummer"
msgid "Enter PIM Number"
msgstr "Indtast PIM-nummer"
#: js/ui/shellMountOperation.js:365
msgid "Remember Password"
@@ -1856,7 +1863,7 @@ msgstr "Stor tekst"
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:49 js/ui/status/network.js:591
#: js/ui/status/bluetooth.js:49 js/ui/status/network.js:590
msgid "Bluetooth Settings"
msgstr "Indstillinger for Bluetooth"
@@ -1900,11 +1907,11 @@ msgstr "Sekundært klik"
msgid "Dwell Click"
msgstr "Hvileklik"
#: js/ui/status/keyboard.js:826
#: js/ui/status/keyboard.js:825
msgid "Keyboard"
msgstr "Tastatur"
#: js/ui/status/keyboard.js:848
#: js/ui/status/keyboard.js:847
msgid "Show Keyboard Layout"
msgstr "Vis tastaturlayout"
@@ -1952,7 +1959,7 @@ msgid "<unknown>"
msgstr "<ukendt>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:420 js/ui/status/network.js:1317
#: js/ui/status/network.js:420 js/ui/status/network.js:1314
#, javascript-format
msgid "%s Off"
msgstr "%s er slukket"
@@ -1978,7 +1985,7 @@ msgid "%s Disconnecting"
msgstr "%s frakobler"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:438 js/ui/status/network.js:1309
#: js/ui/status/network.js:438 js/ui/status/network.js:1306
#, javascript-format
msgid "%s Connecting"
msgstr "%s forbinder"
@@ -2018,7 +2025,7 @@ msgid "Mobile Broadband Settings"
msgstr "Indstillinger for mobilbredbånd"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:558 js/ui/status/network.js:1314
#: js/ui/status/network.js:558 js/ui/status/network.js:1311
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "Hardwaren %s er deaktiveret"
@@ -2030,125 +2037,125 @@ msgstr "Hardwaren %s er deaktiveret"
msgid "%s Disabled"
msgstr "%s er deaktiveret"
#: js/ui/status/network.js:603
#: js/ui/status/network.js:602
msgid "Connect to Internet"
msgstr "Forbind til internet"
#: js/ui/status/network.js:808
#: js/ui/status/network.js:805
msgid "Airplane Mode is On"
msgstr "Flytilstand er slået til"
#: js/ui/status/network.js:809
#: js/ui/status/network.js:806
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Trådløs er deaktiveret når flytilstand er slået til."
#: js/ui/status/network.js:810
#: js/ui/status/network.js:807
msgid "Turn Off Airplane Mode"
msgstr "Slå flytilstand fra"
#: js/ui/status/network.js:819
#: js/ui/status/network.js:816
msgid "Wi-Fi is Off"
msgstr "Trådløs er slået fra"
#: js/ui/status/network.js:820
#: js/ui/status/network.js:817
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Trådløs skal tændes for at kunne forbinde til et netværk."
#: js/ui/status/network.js:821
#: js/ui/status/network.js:818
msgid "Turn On Wi-Fi"
msgstr "Slå trådløs til"
#: js/ui/status/network.js:846
#: js/ui/status/network.js:843
msgid "Wi-Fi Networks"
msgstr "Trådløse netværk"
#: js/ui/status/network.js:848
#: js/ui/status/network.js:845
msgid "Select a network"
msgstr "Vælg et netværk"
#: js/ui/status/network.js:880
#: js/ui/status/network.js:877
msgid "No Networks"
msgstr "Ingen netværk"
#: js/ui/status/network.js:901 js/ui/status/rfkill.js:106
#: js/ui/status/network.js:898 js/ui/status/rfkill.js:106
msgid "Use hardware switch to turn off"
msgstr "Brug hardwareknap til at slukke"
#: js/ui/status/network.js:1178
#: js/ui/status/network.js:1175
msgid "Select Network"
msgstr "Vælg netværk"
#: js/ui/status/network.js:1184
#: js/ui/status/network.js:1181
msgid "Wi-Fi Settings"
msgstr "Indstillinger for trådløs"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1305
#: js/ui/status/network.js:1302
#, javascript-format
msgid "%s Hotspot Active"
msgstr "Hotspottet %s er aktivt"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1320
#: js/ui/status/network.js:1317
#, javascript-format
msgid "%s Not Connected"
msgstr "%s er ikke forbundet"
#: js/ui/status/network.js:1417
#: js/ui/status/network.js:1414
msgid "connecting…"
msgstr "forbinder …"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1420
#: js/ui/status/network.js:1417
msgid "authentication required"
msgstr "godkendelse er påkrævet"
#: js/ui/status/network.js:1422
#: js/ui/status/network.js:1419
msgid "connection failed"
msgstr "forbindelse mislykkedes"
#: js/ui/status/network.js:1473
#: js/ui/status/network.js:1470
msgid "VPN Settings"
msgstr "Indstillinger for VPN"
#: js/ui/status/network.js:1490
#: js/ui/status/network.js:1487
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1500
#: js/ui/status/network.js:1497
msgid "VPN Off"
msgstr "VPN slukket"
#: js/ui/status/network.js:1561 js/ui/status/rfkill.js:84
#: js/ui/status/network.js:1558 js/ui/status/rfkill.js:84
msgid "Network Settings"
msgstr "Netværksindstillinger"
#: js/ui/status/network.js:1590
#: js/ui/status/network.js:1587
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "%s trådet forbindelse"
msgstr[1] "%s trådet forbindelser"
#: js/ui/status/network.js:1594
#: js/ui/status/network.js:1591
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
msgstr[0] "%s trådløs forbindelse"
msgstr[1] "%s trådløse forbindelser"
#: js/ui/status/network.js:1598
#: js/ui/status/network.js:1595
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] "%s modemforbindelse"
msgstr[1] "%s modemforbindelser"
#: js/ui/status/network.js:1732
#: js/ui/status/network.js:1729
msgid "Connection failed"
msgstr "Forbindelse mislykkedes"
#: js/ui/status/network.js:1733
#: js/ui/status/network.js:1730
msgid "Activation of network connection failed"
msgstr "Aktivering af netværksforbindelse mislykkedes"
@@ -2246,11 +2253,11 @@ msgstr "Sluk …"
msgid "Thunderbolt"
msgstr "Thunderbolt"
#: js/ui/status/thunderbolt.js:325
#: js/ui/status/thunderbolt.js:324
msgid "Unknown Thunderbolt device"
msgstr "Ukendt Thunderbolt-enhed"
#: js/ui/status/thunderbolt.js:326
#: js/ui/status/thunderbolt.js:325
msgid ""
"New device has been detected while you were away. Please disconnect and "
"reconnect the device to start using it."
@@ -2258,20 +2265,20 @@ msgstr ""
"En ny enhed blev fundet, mens du var væk. Frakobl og tilkobl enheden igen "
"for at kunne bruge den."
#: js/ui/status/thunderbolt.js:329
#: js/ui/status/thunderbolt.js:328
msgid "Unauthorized Thunderbolt device"
msgstr "Ikkegodkendt Thunderbolt-enhed"
#: js/ui/status/thunderbolt.js:330
#: js/ui/status/thunderbolt.js:329
msgid ""
"New device has been detected and needs to be authorized by an administrator."
msgstr "Ny enhed er fundet og skal godkendes af en administrator."
#: js/ui/status/thunderbolt.js:336
#: js/ui/status/thunderbolt.js:335
msgid "Thunderbolt authorization error"
msgstr "Thunderbolt-godkendelsesfejl"
#: js/ui/status/thunderbolt.js:337
#: js/ui/status/thunderbolt.js:336
#, javascript-format
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "Kunne ikke godkende Thunderbolt-enheden: %s"
@@ -2312,28 +2319,10 @@ msgstr "Kun ekstern"
msgid "Built-in Only"
msgstr "Kun indbygget"
#. Translators: This is a time format for a date in
#. long format
#: js/ui/unlockDialog.js:370
msgid "%A %B %-d"
msgstr "%A %-d. %B"
#: js/ui/unlockDialog.js:376
msgid "Swipe up to unlock"
msgstr "Stryg op for at låse op"
#: js/ui/unlockDialog.js:377
msgid "Click or press a key to unlock"
msgstr "Klik eller tryk en tast for at låse op"
#: js/ui/unlockDialog.js:549
#: js/ui/unlockDialog.js:529
msgid "Unlock Window"
msgstr "Lås vindue op"
#: js/ui/unlockDialog.js:558
msgid "Log in as another user"
msgstr "Log ind som en anden bruger"
#: js/ui/viewSelector.js:181
msgid "Applications"
msgstr "Programmer"
@@ -2372,7 +2361,7 @@ msgstr[1] "Indstillingsændringer forkastes om %d sekunder"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:544
#: js/ui/windowManager.js:542
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2823,15 +2812,6 @@ msgstr[1] "%u inputs"
msgid "System Sounds"
msgstr "Systemlyde"
#~ msgid "Username…"
#~ msgstr "Brugernavn …"
#~ msgid "Password: "
#~ msgstr "Adgangskode: "
#~ msgid "Enter Password…"
#~ msgstr "Indtast adgangskode …"
#~ msgid "Browse in Software"
#~ msgstr "Gennemse i Software"
@@ -2874,6 +2854,12 @@ msgstr "Systemlyde"
#~ msgstr[0] "%d ny påmindelse"
#~ msgstr[1] "%d nye påmindelser"
#~ msgid "Password"
#~ msgstr "Adgangskode"
#~ msgid "Log in as another user"
#~ msgstr "Log ind som en anden bruger"
#~ msgid "Account Settings"
#~ msgstr "Indstillinger for konti"

133
po/fa.po
View File

@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-02-27 21:57+0000\n"
"PO-Revision-Date: 2020-02-29 02:21+0000\n"
"POT-Creation-Date: 2020-02-17 22:27+0000\n"
"PO-Revision-Date: 2020-02-18 07:22+0000\n"
"Last-Translator: Danial Behzadi <dani.behzi@ubuntu.com>\n"
"Language-Team: Persian <>\n"
"Language: fa\n"
@@ -19,7 +19,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Generator: Poedit 2.3\n"
"X-Generator: Poedit 2.2.4\n"
#: data/50-gnome-shell-system.xml:6
msgid "System"
@@ -147,7 +147,7 @@ msgstr "نمای گزینش برنامه"
#: data/org.gnome.shell.gschema.xml.in:63
msgid "Index of the currently selected view in the application picker."
msgstr "اندیس نمای گزیده در گزینشگر برنامه."
msgstr "اندیس نمای انتخاب شده در انتخابگر برنامه."
#: data/org.gnome.shell.gschema.xml.in:69
msgid "History for command (Alt-F2) dialog"
@@ -373,7 +373,7 @@ msgstr ""
#: data/org.gnome.Shell.PortalHelper.desktop.in.in:3
msgid "Network Login"
msgstr "ورود با شبکه"
msgstr "ورود به سامانه شبکه"
#: js/extensionPrefs/main.js:140
#, javascript-format
@@ -386,11 +386,11 @@ msgid ""
"enable it again"
msgstr "اگر افزونه را بردارید، باید برای به کار انداختن دوباره‌اش، بارگیریش کنید"
#: js/extensionPrefs/main.js:144 js/gdm/authPrompt.js:135
#: js/ui/audioDeviceSelection.js:57 js/ui/components/networkAgent.js:107
#: js/ui/components/polkitAgent.js:139 js/ui/endSessionDialog.js:374
#: js/ui/extensionDownloader.js:165 js/ui/shellMountOperation.js:376
#: js/ui/shellMountOperation.js:386 js/ui/status/network.js:913
#: js/extensionPrefs/main.js:144 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:107 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:374 js/ui/extensionDownloader.js:165
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:913
msgid "Cancel"
msgstr "لغو"
@@ -421,7 +421,7 @@ msgstr ""
#: js/extensionPrefs/main.js:275
msgid "Technical Details"
msgstr "جزییات فنّی"
msgstr "جزئیات فنّی"
#: js/extensionPrefs/main.js:310
msgid "Copy Error"
@@ -439,8 +439,8 @@ msgstr "مشاهدهٔ صفحهٔ خانگی افزونه"
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
msgstr[0] "تعداد %Id افزونه در ورود بعدی به‌روز خواهد شد."
msgstr[1] "تعداد %Id افزونه در ورود بعدی به‌روز خواهند شد."
msgstr[0] "تعداد %d افزونه در ورود بعدی به‌روز خواهد شد."
msgstr[1] "تعداد %d افزونه در ورود بعدی به‌روز خواهند شد."
#: js/extensionPrefs/ui/extension-row.ui:100
#: subprojects/extensions-tool/src/command-create.c:211
@@ -518,7 +518,7 @@ msgid "Log Out…"
msgstr "خروج…"
#. Cisco LEAP
#: js/gdm/authPrompt.js:237 js/ui/components/networkAgent.js:202
#: js/gdm/authPrompt.js:235 js/ui/components/networkAgent.js:202
#: js/ui/components/networkAgent.js:218 js/ui/components/networkAgent.js:242
#: js/ui/components/networkAgent.js:263 js/ui/components/networkAgent.js:283
#: js/ui/components/networkAgent.js:293 js/ui/components/polkitAgent.js:277
@@ -528,7 +528,7 @@ msgstr "گذرواژه"
#: js/gdm/loginDialog.js:318
msgid "Choose Session"
msgstr "گزینش نشست"
msgstr "انتخاب نشست"
#: js/gdm/loginDialog.js:457
msgid "Not listed?"
@@ -608,7 +608,7 @@ msgstr "تعلیق"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:116
msgid "suspend;sleep"
msgstr "suspend;sleep;تعلیق;خواب"
msgstr "تعلیق"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:121
@@ -704,7 +704,7 @@ msgstr[1] "%Id سال پیش"
#. Translators: Time in 24h format
#: js/misc/util.js:237
msgid "%H%M"
msgstr "%OH:%OM"
msgstr "%OH%OM"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30"
@@ -718,7 +718,7 @@ msgstr "دیروز، %OH:%OM"
#: js/misc/util.js:249
#, no-c-format
msgid "%A, %H%M"
msgstr "%A، %OH:%OM"
msgstr "%A، %OH%OM"
#. Translators: this is the month name and day number
#. followed by a time string in 24h format.
@@ -726,7 +726,7 @@ msgstr "%A، %OH:%OM"
#: js/misc/util.js:255
#, no-c-format
msgid "%B %-d, %H%M"
msgstr "%-Od %OB، %OH:%OM"
msgstr "%-Od %OB، %OH%OM"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
@@ -734,14 +734,14 @@ msgstr "%-Od %OB، %OH:%OM"
#: js/misc/util.js:261
#, no-c-format
msgid "%B %-d %Y, %H%M"
msgstr "%-Od %OB %Y، %OH:%OM"
msgstr "%-Od %OB %OY، %OH:%OM"
#. Show only the time if date is on today
#. eslint-disable-line no-lonely-if
#. Translators: Time in 12h format
#: js/misc/util.js:266
msgid "%l%M %p"
msgstr "%Ol%OM%Op"
msgstr "%Ol%OM%p"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
@@ -755,7 +755,7 @@ msgstr "دیروز، %OI:%OM"
#: js/misc/util.js:278
#, no-c-format
msgid "%A, %l%M %p"
msgstr "%A، %Ol:%OM %Op"
msgstr "%A، %OH:%OM"
#. Translators: this is the month name and day number
#. followed by a time string in 12h format.
@@ -763,7 +763,7 @@ msgstr "%A، %Ol:%OM %Op"
#: js/misc/util.js:284
#, no-c-format
msgid "%B %-d, %l%M %p"
msgstr "%-Od %OB، %Ol:%OM %Op"
msgstr "%-Od %OB، %Ol:%OM %p"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
@@ -771,7 +771,7 @@ msgstr "%-Od %OB، %Ol:%OM %Op"
#: js/misc/util.js:290
#, no-c-format
msgid "%B %-d %Y, %l%M %p"
msgstr "%-Od %OB %Y، %Ol:%OM %Op"
msgstr "%-Od %OB %OY، %Ol:%OM %p"
#. TRANSLATORS: this is the title of the wifi captive portal login window
#: js/portalHelper/main.js:41
@@ -813,29 +813,29 @@ msgid "All"
msgstr "همه"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2450 js/ui/panel.js:75
#: js/ui/appDisplay.js:2454 js/ui/panel.js:75
msgid "Open Windows"
msgstr "پنجره‌های باز"
#: js/ui/appDisplay.js:2470 js/ui/panel.js:82
#: js/ui/appDisplay.js:2474 js/ui/panel.js:82
msgid "New Window"
msgstr "پنجرهٔ جدید"
#: js/ui/appDisplay.js:2481
#: js/ui/appDisplay.js:2485
msgid "Launch using Dedicated Graphics Card"
msgstr "اجرا با کارت گرافیک اختصاصی"
#: js/ui/appDisplay.js:2509 js/ui/dash.js:239
#: js/ui/appDisplay.js:2513 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "حذف از مورد پسندها"
#: js/ui/appDisplay.js:2515
#: js/ui/appDisplay.js:2519
msgid "Add to Favorites"
msgstr "افزودن به مورد پسندها"
#: js/ui/appDisplay.js:2525 js/ui/panel.js:93
#: js/ui/appDisplay.js:2529 js/ui/panel.js:93
msgid "Show Details"
msgstr "نمایش جزییات"
msgstr "نمایش جزئیات"
#: js/ui/appFavorites.js:152
#, javascript-format
@@ -990,7 +990,7 @@ msgstr "%A %-Od %OB"
#: js/ui/calendar.js:870
msgctxt "calendar heading"
msgid "%A, %B %-d, %Y"
msgstr "%A %-Od %OB %Y"
msgstr "%A %-Od %OB %OY"
#: js/ui/calendar.js:1096
msgid "No Notifications"
@@ -1174,7 +1174,7 @@ msgstr "دَش"
#.
#: js/ui/dateMenu.js:75
msgid "%B %-d %Y"
msgstr "%-Od %OB %Y"
msgstr "%-Od %OB %OY"
#. Translators: This is the accessible name of the date button shown
#. * below the time in the shell; it should combine the weekday and the
@@ -1182,7 +1182,7 @@ msgstr "%-Od %OB %Y"
#.
#: js/ui/dateMenu.js:82
msgid "%A %B %e %Y"
msgstr "%A %Od %B %Y"
msgstr "%A %Od %B %OY"
#: js/ui/dateMenu.js:161
msgid "Add world clocks…"
@@ -1234,8 +1234,8 @@ msgstr[1] "%s به طور خودکار در مدت %Id ثانیه از سام
#, javascript-format
msgid "You will be logged out automatically in %d second."
msgid_plural "You will be logged out automatically in %d seconds."
msgstr[0] "پس از %Id ثانیه به طور خودکار از سامانه خارج می‌شوید."
msgstr[1] "پس از %Id ثانیه به طور خودکار از سامانه خارج می‌شوید."
msgstr[0] "شما پس از %Id ثانیه به طور خودکار از سامانه خارج می‌شوید."
msgstr[1] "شما پس از %Id ثانیه به طور خودکار از سامانه خارج می‌شوید."
#: js/ui/endSessionDialog.js:51
msgctxt "button"
@@ -1473,59 +1473,59 @@ msgstr "خاموش گذاشتن"
msgid "Region & Language Settings"
msgstr "تنظیمات ناحیه و زبان"
#: js/ui/lookingGlass.js:665
#: js/ui/lookingGlass.js:659
msgid "No extensions installed"
msgstr "هیچ افزونه‌ای نصب نشده است"
#. Translators: argument is an extension UUID.
#: js/ui/lookingGlass.js:720
#: js/ui/lookingGlass.js:714
#, javascript-format
msgid "%s has not emitted any errors."
msgstr "افزونه %s هیچ خطایی منتشر نکرده است."
#: js/ui/lookingGlass.js:726
#: js/ui/lookingGlass.js:720
msgid "Hide Errors"
msgstr "مخفی کردن خطاها"
#: js/ui/lookingGlass.js:730 js/ui/lookingGlass.js:795
#: js/ui/lookingGlass.js:724 js/ui/lookingGlass.js:789
msgid "Show Errors"
msgstr "نمایش خطاها"
#: js/ui/lookingGlass.js:739
#: js/ui/lookingGlass.js:733
msgid "Enabled"
msgstr "به کار انداختن"
#. translators:
#. * The device has been disabled
#: js/ui/lookingGlass.js:742 subprojects/gvc/gvc-mixer-control.c:1892
#: js/ui/lookingGlass.js:736 subprojects/gvc/gvc-mixer-control.c:1892
msgid "Disabled"
msgstr "از کار انداختن"
#: js/ui/lookingGlass.js:744
#: js/ui/lookingGlass.js:738
msgid "Error"
msgstr "خطا"
#: js/ui/lookingGlass.js:746
#: js/ui/lookingGlass.js:740
msgid "Out of date"
msgstr "قدیمی"
#: js/ui/lookingGlass.js:748
#: js/ui/lookingGlass.js:742
msgid "Downloading"
msgstr "در حال بارگیری"
#: js/ui/lookingGlass.js:777
#: js/ui/lookingGlass.js:771
msgid "View Source"
msgstr "نمایش منبع"
#: js/ui/lookingGlass.js:786
#: js/ui/lookingGlass.js:780
msgid "Web Page"
msgstr "صفحهٔ وب"
#: js/ui/main.js:269
#: js/ui/main.js:267
msgid "Logged in as a privileged user"
msgstr "واردشده به عنوان کاربری ممتاز"
#: js/ui/main.js:270
#: js/ui/main.js:268
msgid ""
"Running a session as a privileged user should be avoided for security reasons. If "
"possible, you should log in as a normal user."
@@ -1533,11 +1533,11 @@ msgstr ""
"به دلایل امنیتی باید از اجرای یک نشست به عنوان کاربری ممتاز خودداری کرد. در صورت "
"امکان، با کاربری عادی وارد شوید."
#: js/ui/main.js:276
#: js/ui/main.js:274
msgid "Screen Lock disabled"
msgstr "قفل صفحه از کار افتاده"
#: js/ui/main.js:277
#: js/ui/main.js:275
msgid "Screen Locking requires the GNOME display manager."
msgstr "قفل صفحه نیاز به مدیر نمایش گنوم دارد."
@@ -1625,12 +1625,12 @@ msgstr "خروج"
msgid "Activities"
msgstr "فعّالیت‌ها"
#: js/ui/panel.js:713
#: js/ui/panel.js:707
msgctxt "System menu in the top bar"
msgid "System"
msgstr "سامانه"
#: js/ui/panel.js:826
#: js/ui/panel.js:820
msgid "Top Bar"
msgstr "نوار بالا"
@@ -1815,8 +1815,8 @@ msgstr "تنظیمات بلوتوث"
#, javascript-format
msgid "%d Connected"
msgid_plural "%d Connected"
msgstr[0] "%Id وصلشده"
msgstr[1] "%Id وصلشده"
msgstr[0] "%Id متصل شد"
msgstr[1] "%Id متصل شد"
#: js/ui/status/bluetooth.js:131
msgid "Off"
@@ -1850,11 +1850,11 @@ msgstr "کلیک دوم"
msgid "Dwell Click"
msgstr "کلیک طولانی"
#: js/ui/status/keyboard.js:826
#: js/ui/status/keyboard.js:825
msgid "Keyboard"
msgstr "صفحه‌کلید"
#: js/ui/status/keyboard.js:848
#: js/ui/status/keyboard.js:847
msgid "Show Keyboard Layout"
msgstr "نمایش چیدمان صفحه‌کلید"
@@ -2025,7 +2025,7 @@ msgstr "برای خاموش کردن از کلید سخت‌افزاری است
#: js/ui/status/network.js:1178
msgid "Select Network"
msgstr "گزینش شبکه"
msgstr "انتخاب شبکه"
#: js/ui/status/network.js:1184
msgid "Wi-Fi Settings"
@@ -2262,26 +2262,22 @@ msgstr "فقط داخلی"
#. Translators: This is a time format for a date in
#. long format
#: js/ui/unlockDialog.js:370
#: js/ui/unlockDialog.js:372
msgid "%A %B %-d"
msgstr "%A %-Od %OB"
#: js/ui/unlockDialog.js:376
#: js/ui/unlockDialog.js:378
msgid "Swipe up to unlock"
msgstr "برای قفل‌گشایی، بالا بکشید"
#: js/ui/unlockDialog.js:377
#: js/ui/unlockDialog.js:379
msgid "Click or press a key to unlock"
msgstr "برای قفل‌گشایی، کلیک کرده یا دکمه‌ای را بزنید"
#: js/ui/unlockDialog.js:549
#: js/ui/unlockDialog.js:552
msgid "Unlock Window"
msgstr "گشودن قفل پنجره"
#: js/ui/unlockDialog.js:558
msgid "Log in as another user"
msgstr "ورود به عنوان کاربری دیگر"
#: js/ui/viewSelector.js:181
msgid "Applications"
msgstr "برنامه‌ها"
@@ -2309,7 +2305,7 @@ msgstr "بازنشانی تنظیمات"
#: js/ui/windowManager.js:67
msgid "Keep Changes"
msgstr "نگه‌داری تغییرات"
msgstr "ذخیره تغییرات"
#: js/ui/windowManager.js:85
#, javascript-format
@@ -2800,6 +2796,9 @@ msgstr "صداهای سامانه"
#~ msgstr[0] "%Id آگاهی جدید"
#~ msgstr[1] "%Id آگاهی جدید"
#~ msgid "Log in as another user"
#~ msgstr "ورود به عنوان کاربری دیگر"
#~ msgid "Browse in Software"
#~ msgstr "مرور در نرم‌افزارها"

246
po/gl.po
View File

@@ -11,9 +11,9 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-02-25 23:44+0000\n"
"PO-Revision-Date: 2020-02-26 21:54+0100\n"
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
"POT-Creation-Date: 2020-02-17 11:08+0000\n"
"PO-Revision-Date: 2020-02-17 21:59+0100\n"
"Last-Translator: Fran Diéguez <frandieguez@gnome.org>\n"
"Language-Team: Galician\n"
"Language: gl\n"
"MIME-Version: 1.0\n"
@@ -416,11 +416,11 @@ msgid ""
"to enable it again"
msgstr "Se quita a extensión debe descargala se quere activala de novo"
#: js/extensionPrefs/main.js:144 js/gdm/authPrompt.js:135
#: js/ui/audioDeviceSelection.js:57 js/ui/components/networkAgent.js:107
#: js/ui/components/polkitAgent.js:139 js/ui/endSessionDialog.js:374
#: js/ui/extensionDownloader.js:165 js/ui/shellMountOperation.js:376
#: js/ui/shellMountOperation.js:386 js/ui/status/network.js:913
#: js/extensionPrefs/main.js:144 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:107 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:374 js/ui/extensionDownloader.js:166
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:910
msgid "Cancel"
msgstr "Cancelar"
@@ -551,10 +551,10 @@ msgid "Log Out…"
msgstr "Saír da sesión…"
#. Cisco LEAP
#: js/gdm/authPrompt.js:237 js/ui/components/networkAgent.js:202
#: js/ui/components/networkAgent.js:218 js/ui/components/networkAgent.js:242
#: js/ui/components/networkAgent.js:263 js/ui/components/networkAgent.js:283
#: js/ui/components/networkAgent.js:293 js/ui/components/polkitAgent.js:277
#: js/gdm/authPrompt.js:235 js/ui/components/networkAgent.js:202
#: js/ui/components/networkAgent.js:214 js/ui/components/networkAgent.js:238
#: js/ui/components/networkAgent.js:259 js/ui/components/networkAgent.js:279
#: js/ui/components/networkAgent.js:289 js/ui/components/polkitAgent.js:277
#: js/ui/shellMountOperation.js:326
msgid "Password"
msgstr "Contrasinal"
@@ -577,8 +577,8 @@ msgstr "(p.ex., usuario ou %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: js/gdm/loginDialog.js:917 js/ui/components/networkAgent.js:238
#: js/ui/components/networkAgent.js:261 js/ui/components/networkAgent.js:279
#: js/gdm/loginDialog.js:917 js/ui/components/networkAgent.js:234
#: js/ui/components/networkAgent.js:257 js/ui/components/networkAgent.js:275
msgid "Username"
msgstr "Nome de usuario"
@@ -807,11 +807,11 @@ msgid "%B %-d %Y, %l%M %p"
msgstr "%d de %B de %Y, %l%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login window
#: js/portalHelper/main.js:41
#: js/portalHelper/main.js:42
msgid "Hotspot Login"
msgstr "Inicio de sesión do Hotspot"
#: js/portalHelper/main.js:87
#: js/portalHelper/main.js:88
msgid ""
"Your connection to this hotspot login is not secure. Passwords or other "
"information you enter on this page can be viewed by people nearby."
@@ -847,27 +847,27 @@ msgid "All"
msgstr "Todos"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2450 js/ui/panel.js:75
#: js/ui/appDisplay.js:2454 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Abrir Xanelas"
#: js/ui/appDisplay.js:2470 js/ui/panel.js:82
#: js/ui/appDisplay.js:2474 js/ui/panel.js:82
msgid "New Window"
msgstr "Xanela nova"
#: js/ui/appDisplay.js:2481
#: js/ui/appDisplay.js:2485
msgid "Launch using Dedicated Graphics Card"
msgstr "Iniciar usando a Tarxeta Gráfica Adicada"
#: js/ui/appDisplay.js:2509 js/ui/dash.js:239
#: js/ui/appDisplay.js:2513 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Retirar dos marcadores"
#: js/ui/appDisplay.js:2515
#: js/ui/appDisplay.js:2519
msgid "Add to Favorites"
msgstr "Engadir aos favoritos"
#: js/ui/appDisplay.js:2525 js/ui/panel.js:93
#: js/ui/appDisplay.js:2529 js/ui/panel.js:93
msgid "Show Details"
msgstr "Mostrar detalles"
@@ -1092,32 +1092,33 @@ msgstr ""
"De forma alternativa pode conectarse premendo o botón «WPS» do seu ruter."
#: js/ui/components/networkAgent.js:101 js/ui/status/network.js:223
#: js/ui/status/network.js:314 js/ui/status/network.js:916
#: js/ui/status/network.js:314 js/ui/status/network.js:913
msgid "Connect"
msgstr "Conectar"
#: js/ui/components/networkAgent.js:208
#. static WEP
#: js/ui/components/networkAgent.js:207
msgid "Key"
msgstr "Chave"
#: js/ui/components/networkAgent.js:246 js/ui/components/networkAgent.js:269
#: js/ui/components/networkAgent.js:242 js/ui/components/networkAgent.js:265
msgid "Private key password"
msgstr "Contrasinal da chave privada"
#: js/ui/components/networkAgent.js:267
#: js/ui/components/networkAgent.js:263
msgid "Identity"
msgstr "Identidade"
#: js/ui/components/networkAgent.js:281
#: js/ui/components/networkAgent.js:277
msgid "Service"
msgstr "Servizo"
#: js/ui/components/networkAgent.js:310 js/ui/components/networkAgent.js:338
#: js/ui/components/networkAgent.js:685 js/ui/components/networkAgent.js:706
#: js/ui/components/networkAgent.js:306 js/ui/components/networkAgent.js:334
#: js/ui/components/networkAgent.js:681 js/ui/components/networkAgent.js:702
msgid "Authentication required"
msgstr "Requírese autenticación"
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:686
#: js/ui/components/networkAgent.js:307 js/ui/components/networkAgent.js:682
#, javascript-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@@ -1126,42 +1127,42 @@ msgstr ""
"Requírense contrasinais ou chaves de cifrado para acceder á rede sen fíos "
"«%s»."
#: js/ui/components/networkAgent.js:315 js/ui/components/networkAgent.js:690
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:686
msgid "Wired 802.1X authentication"
msgstr "Autenticación con fíos 802.1X"
#: js/ui/components/networkAgent.js:317
#: js/ui/components/networkAgent.js:313
msgid "Network name"
msgstr "Nome da rede"
#: js/ui/components/networkAgent.js:322 js/ui/components/networkAgent.js:694
#: js/ui/components/networkAgent.js:318 js/ui/components/networkAgent.js:690
msgid "DSL authentication"
msgstr "Autenticación DSL"
#: js/ui/components/networkAgent.js:329 js/ui/components/networkAgent.js:699
#: js/ui/components/networkAgent.js:325 js/ui/components/networkAgent.js:695
msgid "PIN code required"
msgstr "Requírese un código PIN"
#: js/ui/components/networkAgent.js:330 js/ui/components/networkAgent.js:700
#: js/ui/components/networkAgent.js:326 js/ui/components/networkAgent.js:696
msgid "PIN code is needed for the mobile broadband device"
msgstr "É necesario un código PIN para o dispositivo de banda larga móbil"
#: js/ui/components/networkAgent.js:331
#: js/ui/components/networkAgent.js:327
msgid "PIN"
msgstr "PIN"
#: js/ui/components/networkAgent.js:339 js/ui/components/networkAgent.js:691
#: js/ui/components/networkAgent.js:695 js/ui/components/networkAgent.js:707
#: js/ui/components/networkAgent.js:711
#: js/ui/components/networkAgent.js:335 js/ui/components/networkAgent.js:687
#: js/ui/components/networkAgent.js:691 js/ui/components/networkAgent.js:703
#: js/ui/components/networkAgent.js:707
#, javascript-format
msgid "A password is required to connect to “%s”."
msgstr "Requírese un contrasinal para conectarse a «%s»."
#: js/ui/components/networkAgent.js:674 js/ui/status/network.js:1691
#: js/ui/components/networkAgent.js:670 js/ui/status/network.js:1688
msgid "Network Manager"
msgstr "Xestor da rede"
#: js/ui/components/networkAgent.js:710
#: js/ui/components/networkAgent.js:706
msgid "VPN password"
msgstr "Contrasinal da VPN"
@@ -1401,15 +1402,15 @@ msgstr "%s (remoto)"
msgid "%s (console)"
msgstr "%s (consola)"
#: js/ui/extensionDownloader.js:169
#: js/ui/extensionDownloader.js:170
msgid "Install"
msgstr "Instalar"
#: js/ui/extensionDownloader.js:175
#: js/ui/extensionDownloader.js:176
msgid "Install Extension"
msgstr "Instalar extensión"
#: js/ui/extensionDownloader.js:176
#: js/ui/extensionDownloader.js:177
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Desexa descargar e instalar «%s» desde extensions.gnome.org?"
@@ -1499,13 +1500,13 @@ msgid "Leave On"
msgstr "Deixar activado"
#: js/ui/kbdA11yDialog.js:55 js/ui/status/bluetooth.js:135
#: js/ui/status/network.js:1288
#: js/ui/status/network.js:1285
msgid "Turn On"
msgstr "Activar"
#: js/ui/kbdA11yDialog.js:63 js/ui/status/bluetooth.js:135
#: js/ui/status/network.js:131 js/ui/status/network.js:315
#: js/ui/status/network.js:1288 js/ui/status/network.js:1400
#: js/ui/status/network.js:1285 js/ui/status/network.js:1397
#: js/ui/status/nightLight.js:41 js/ui/status/rfkill.js:81
#: js/ui/status/rfkill.js:108
msgid "Turn Off"
@@ -1519,59 +1520,59 @@ msgstr "Deixar desactivado"
msgid "Region & Language Settings"
msgstr "Preferencias de rexión e idioma"
#: js/ui/lookingGlass.js:665
#: js/ui/lookingGlass.js:659
msgid "No extensions installed"
msgstr "Non hai ningunha extensión instalada"
#. Translators: argument is an extension UUID.
#: js/ui/lookingGlass.js:720
#: js/ui/lookingGlass.js:714
#, javascript-format
msgid "%s has not emitted any errors."
msgstr "%s non emitiu ningún erro."
#: js/ui/lookingGlass.js:726
#: js/ui/lookingGlass.js:720
msgid "Hide Errors"
msgstr "Ocultar erros"
#: js/ui/lookingGlass.js:730 js/ui/lookingGlass.js:795
#: js/ui/lookingGlass.js:724 js/ui/lookingGlass.js:789
msgid "Show Errors"
msgstr "Mostrar erros"
#: js/ui/lookingGlass.js:739
#: js/ui/lookingGlass.js:733
msgid "Enabled"
msgstr "Activado"
#. translators:
#. * The device has been disabled
#: js/ui/lookingGlass.js:742 subprojects/gvc/gvc-mixer-control.c:1892
#: js/ui/lookingGlass.js:736 subprojects/gvc/gvc-mixer-control.c:1892
msgid "Disabled"
msgstr "Desactivado"
#: js/ui/lookingGlass.js:744
#: js/ui/lookingGlass.js:738
msgid "Error"
msgstr "Erro"
#: js/ui/lookingGlass.js:746
#: js/ui/lookingGlass.js:740
msgid "Out of date"
msgstr "Obsoleto"
#: js/ui/lookingGlass.js:748
#: js/ui/lookingGlass.js:742
msgid "Downloading"
msgstr "Descargando"
#: js/ui/lookingGlass.js:777
#: js/ui/lookingGlass.js:771
msgid "View Source"
msgstr "Ver fonte"
#: js/ui/lookingGlass.js:786
#: js/ui/lookingGlass.js:780
msgid "Web Page"
msgstr "Páxina web"
#: js/ui/main.js:269
#: js/ui/main.js:267
msgid "Logged in as a privileged user"
msgstr "Sesión iniciada como un usuario privilexiado"
#: js/ui/main.js:270
#: js/ui/main.js:268
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@@ -1579,15 +1580,15 @@ msgstr ""
"Por razóns de seguranza debe evitar executar unha sesión como un usuario "
"privilexiado. Se é posíbel, debería iniciar sesión como un usuario normal."
#: js/ui/main.js:276
#: js/ui/main.js:274
msgid "Screen Lock disabled"
msgstr "Bloqueo de pantalla desactivado"
#: js/ui/main.js:277
#: js/ui/main.js:275
msgid "Screen Locking requires the GNOME display manager."
msgstr "O bloqueo de pantalla require o xestor de pantalla de GNOME."
#: js/ui/messageTray.js:1554
#: js/ui/messageTray.js:1552
msgid "System Information"
msgstr "Información do sistema"
@@ -1641,23 +1642,23 @@ msgstr "Asignar combinación de teclas"
msgid "Done"
msgstr "Feito"
#: js/ui/padOsd.js:745
#: js/ui/padOsd.js:747
msgid "Edit…"
msgstr "Editar…"
#: js/ui/padOsd.js:787 js/ui/padOsd.js:910
#: js/ui/padOsd.js:789 js/ui/padOsd.js:912
msgid "None"
msgstr "Ningún"
#: js/ui/padOsd.js:863
#: js/ui/padOsd.js:865
msgid "Press a button to configure"
msgstr "Prema un botón para continuar"
#: js/ui/padOsd.js:864
#: js/ui/padOsd.js:866
msgid "Press Esc to exit"
msgstr "Prema Esc para saír"
#: js/ui/padOsd.js:867
#: js/ui/padOsd.js:869
msgid "Press any key to exit"
msgstr "Prema calquera tecla para saír"
@@ -1671,12 +1672,12 @@ msgstr "Saír"
msgid "Activities"
msgstr "Actividades"
#: js/ui/panel.js:713
#: js/ui/panel.js:707
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistema"
#: js/ui/panel.js:826
#: js/ui/panel.js:820
msgid "Top Bar"
msgstr "Barra superior"
@@ -1707,11 +1708,11 @@ msgstr "GNOME precisa bloquear a pantalla"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: js/ui/screenShield.js:244 js/ui/screenShield.js:598
#: js/ui/screenShield.js:244 js/ui/screenShield.js:602
msgid "Unable to lock"
msgstr "Non foi posíbel bloquear"
#: js/ui/screenShield.js:245 js/ui/screenShield.js:599
#: js/ui/screenShield.js:245 js/ui/screenShield.js:603
msgid "Lock was blocked by an application"
msgstr "Unha aplicación impediu o bloqueo"
@@ -1853,7 +1854,7 @@ msgstr "Texto grande"
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:49 js/ui/status/network.js:591
#: js/ui/status/bluetooth.js:49 js/ui/status/network.js:590
msgid "Bluetooth Settings"
msgstr "Preferencias do Bluetooth"
@@ -1897,11 +1898,11 @@ msgstr "Clic secundario"
msgid "Dwell Click"
msgstr "Clic atrasado"
#: js/ui/status/keyboard.js:826
#: js/ui/status/keyboard.js:825
msgid "Keyboard"
msgstr "Teclado"
#: js/ui/status/keyboard.js:848
#: js/ui/status/keyboard.js:847
msgid "Show Keyboard Layout"
msgstr "Mostrar a distribución do teclado"
@@ -1950,7 +1951,7 @@ msgid "<unknown>"
msgstr "<descoñecido>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:420 js/ui/status/network.js:1317
#: js/ui/status/network.js:420 js/ui/status/network.js:1314
#, javascript-format
msgid "%s Off"
msgstr "%s apagado"
@@ -1976,7 +1977,7 @@ msgid "%s Disconnecting"
msgstr "%s desconectando"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:438 js/ui/status/network.js:1309
#: js/ui/status/network.js:438 js/ui/status/network.js:1306
#, javascript-format
msgid "%s Connecting"
msgstr "%s conectando"
@@ -2016,7 +2017,7 @@ msgid "Mobile Broadband Settings"
msgstr "Preferencias da banda larga móbil"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:558 js/ui/status/network.js:1314
#: js/ui/status/network.js:558 js/ui/status/network.js:1311
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s hardware desactivado"
@@ -2028,125 +2029,125 @@ msgstr "%s hardware desactivado"
msgid "%s Disabled"
msgstr "%s desactivado"
#: js/ui/status/network.js:603
#: js/ui/status/network.js:602
msgid "Connect to Internet"
msgstr "Conectarse a internet"
#: js/ui/status/network.js:808
#: js/ui/status/network.js:805
msgid "Airplane Mode is On"
msgstr "Modo avión activado"
#: js/ui/status/network.js:809
#: js/ui/status/network.js:806
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "A Wifi está desactivada cando o modo avión está activo."
#: js/ui/status/network.js:810
#: js/ui/status/network.js:807
msgid "Turn Off Airplane Mode"
msgstr "Desactivar o modo avión"
#: js/ui/status/network.js:819
#: js/ui/status/network.js:816
msgid "Wi-Fi is Off"
msgstr "Wifi desactivada"
#: js/ui/status/network.js:820
#: js/ui/status/network.js:817
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "A Wifi precisa activarse para poder conectarse á rede."
#: js/ui/status/network.js:821
#: js/ui/status/network.js:818
msgid "Turn On Wi-Fi"
msgstr "Activar Wifi"
#: js/ui/status/network.js:846
#: js/ui/status/network.js:843
msgid "Wi-Fi Networks"
msgstr "Redes WiFi"
#: js/ui/status/network.js:848
#: js/ui/status/network.js:845
msgid "Select a network"
msgstr "Seleccione unha rede"
#: js/ui/status/network.js:880
#: js/ui/status/network.js:877
msgid "No Networks"
msgstr "Sen redes"
#: js/ui/status/network.js:901 js/ui/status/rfkill.js:106
#: js/ui/status/network.js:898 js/ui/status/rfkill.js:106
msgid "Use hardware switch to turn off"
msgstr "Usar interruptor hardware para apagar"
#: js/ui/status/network.js:1178
#: js/ui/status/network.js:1175
msgid "Select Network"
msgstr "Seleccione unha rede"
#: js/ui/status/network.js:1184
#: js/ui/status/network.js:1181
msgid "Wi-Fi Settings"
msgstr "Preferencias da WiFi"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1305
#: js/ui/status/network.js:1302
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s punto wifi activo"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1320
#: js/ui/status/network.js:1317
#, javascript-format
msgid "%s Not Connected"
msgstr "%s non conectado"
#: js/ui/status/network.js:1417
#: js/ui/status/network.js:1414
msgid "connecting…"
msgstr "conectando…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1420
#: js/ui/status/network.js:1417
msgid "authentication required"
msgstr "requírese autenticación"
#: js/ui/status/network.js:1422
#: js/ui/status/network.js:1419
msgid "connection failed"
msgstr "conexión fallada"
#: js/ui/status/network.js:1473
#: js/ui/status/network.js:1470
msgid "VPN Settings"
msgstr "Preferencias de VPN"
#: js/ui/status/network.js:1490
#: js/ui/status/network.js:1487
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1500
#: js/ui/status/network.js:1497
msgid "VPN Off"
msgstr "VPN desactivada"
#: js/ui/status/network.js:1561 js/ui/status/rfkill.js:84
#: js/ui/status/network.js:1558 js/ui/status/rfkill.js:84
msgid "Network Settings"
msgstr "Preferencias da rede"
#: js/ui/status/network.js:1590
#: js/ui/status/network.js:1587
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "%s conectando con fíos"
msgstr[1] "%s conectando con fíos"
#: js/ui/status/network.js:1594
#: js/ui/status/network.js:1591
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
msgstr[0] "%s conectando sen fíos"
msgstr[1] "%s con fíos conectando"
#: js/ui/status/network.js:1598
#: js/ui/status/network.js:1595
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] "%s con módem conectando"
msgstr[1] "%s conectando sen fíos"
#: js/ui/status/network.js:1732
#: js/ui/status/network.js:1729
msgid "Connection failed"
msgstr "Produciuse un fallo na conexión"
#: js/ui/status/network.js:1733
#: js/ui/status/network.js:1730
msgid "Activation of network connection failed"
msgstr "Produciuse un fallo na activación da conexión de rede"
@@ -2244,11 +2245,11 @@ msgstr "Apagar…"
msgid "Thunderbolt"
msgstr "Thunderbolt"
#: js/ui/status/thunderbolt.js:325
#: js/ui/status/thunderbolt.js:324
msgid "Unknown Thunderbolt device"
msgstr "Dispositivo Thunderbolt descoñecido"
#: js/ui/status/thunderbolt.js:326
#: js/ui/status/thunderbolt.js:325
msgid ""
"New device has been detected while you were away. Please disconnect and "
"reconnect the device to start using it."
@@ -2256,21 +2257,21 @@ msgstr ""
"Detectouse un novo dispositivo mentres non estabas. Por favor desconecte e "
"reconecte o dispositivo para comezar a usalo."
#: js/ui/status/thunderbolt.js:329
#: js/ui/status/thunderbolt.js:328
msgid "Unauthorized Thunderbolt device"
msgstr "Dispositivo Thunderbolt non autorizado"
#: js/ui/status/thunderbolt.js:330
#: js/ui/status/thunderbolt.js:329
msgid ""
"New device has been detected and needs to be authorized by an administrator."
msgstr ""
"Detectouse un novo dispositivo e precisa ser autorizado por un administrador."
#: js/ui/status/thunderbolt.js:336
#: js/ui/status/thunderbolt.js:335
msgid "Thunderbolt authorization error"
msgstr "Erro de autorización de Thunderbolt"
#: js/ui/status/thunderbolt.js:337
#: js/ui/status/thunderbolt.js:336
#, javascript-format
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "Non foi posíbel autorizar o dispositivo Thunderbolt: %s"
@@ -2311,28 +2312,10 @@ msgstr "Só a externa"
msgid "Built-in Only"
msgstr "Só a interna"
#. Translators: This is a time format for a date in
#. long format
#: js/ui/unlockDialog.js:370
msgid "%A %B %-d"
msgstr "%A, %d de %B"
#: js/ui/unlockDialog.js:376
msgid "Swipe up to unlock"
msgstr "Deslizar para desbloquear"
#: js/ui/unlockDialog.js:377
msgid "Click or press a key to unlock"
msgstr "Prema o rato ou unha tecla para desbloquear"
#: js/ui/unlockDialog.js:549
#: js/ui/unlockDialog.js:552
msgid "Unlock Window"
msgstr "Desbloquear xanela"
#: js/ui/unlockDialog.js:558
msgid "Log in as another user"
msgstr "Iniciar sesión como outro usuario"
#: js/ui/viewSelector.js:181
msgid "Applications"
msgstr "Aplicacións"
@@ -2371,7 +2354,7 @@ msgstr[1] "Os cambios das preferencias revertiranse en %d segundos"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:544
#: js/ui/windowManager.js:542
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2855,6 +2838,9 @@ msgstr "Sons do sistema"
#~ msgstr[0] "%d notificación nova"
#~ msgstr[1] "%d notificacións novas"
#~ msgid "Log in as another user"
#~ msgstr "Iniciar sesión como outro usuario"
#~ msgid "Browse in Software"
#~ msgstr "Explorar en Software"

591
po/hr.po

File diff suppressed because it is too large Load Diff

421
po/id.po
View File

@@ -11,15 +11,15 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-02-24 12:37+0000\n"
"PO-Revision-Date: 2020-02-25 17:40+0700\n"
"POT-Creation-Date: 2020-02-06 19:01+0000\n"
"PO-Revision-Date: 2020-02-07 13:32+0700\n"
"Last-Translator: Kukuh Syafaat <kukuhsyafaat@gnome.org>\n"
"Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n"
"Language: id\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"Plural-Forms: nplurals=2; plural= n!=1;\n"
"X-Generator: Poedit 2.3\n"
"X-DamnedLies-Scope: partial\n"
"X-Poedit-SourceCharset: UTF-8\n"
@@ -184,8 +184,8 @@ msgstr ""
msgid ""
"Whether to remember password for mounting encrypted or remote filesystems"
msgstr ""
"Apakah mengingat kata sandi untuk mengait sistem berkas terenkripsi atau "
"jarak jauh"
"Apakah mengingat sandi untuk mengait sistem berkas terenkripsi atau jarak "
"jauh"
#: data/org.gnome.shell.gschema.xml.in:87
msgid ""
@@ -194,7 +194,7 @@ msgid ""
"“Remember Password” checkbox will be present. This key sets the default "
"state of the checkbox."
msgstr ""
"Shell akan meminta suatu kata sandi ketika suatu perangkat terenkripsi atau "
"Shell akan meminta suatu sandi ketika suatu perangkat terenkripsi atau "
"sistem berkas jarak jauh dikaitkan. Bila sandi dapat disimpan untuk dipakai "
"dimasa depan, suatu kotak contreng 'Ingat Sandi' akan tampil. Kunci ini "
"menata keadaan baku dari kotak contreng."
@@ -418,11 +418,11 @@ msgstr ""
"Jika Anda menghapus ekstensi, Anda harus kembali untuk mengunduhnya jika "
"Anda ingin mengaktifkannya lagi"
#: js/extensionPrefs/main.js:144 js/gdm/authPrompt.js:135
#: js/extensionPrefs/main.js:144 js/gdm/authPrompt.js:170
#: js/ui/audioDeviceSelection.js:57 js/ui/components/networkAgent.js:107
#: js/ui/components/polkitAgent.js:139 js/ui/endSessionDialog.js:374
#: js/ui/extensionDownloader.js:165 js/ui/shellMountOperation.js:376
#: js/ui/shellMountOperation.js:386 js/ui/status/network.js:913
#: js/ui/extensionDownloader.js:166 js/ui/shellMountOperation.js:376
#: js/ui/shellMountOperation.js:386 js/ui/status/network.js:910
msgid "Cancel"
msgstr "Batal"
@@ -557,26 +557,31 @@ msgstr ""
msgid "Log Out…"
msgstr "Keluar…"
#. Cisco LEAP
#: js/gdm/authPrompt.js:237 js/ui/components/networkAgent.js:202
#: js/ui/components/networkAgent.js:218 js/ui/components/networkAgent.js:242
#: js/ui/components/networkAgent.js:263 js/ui/components/networkAgent.js:283
#: js/ui/components/networkAgent.js:293 js/ui/components/polkitAgent.js:277
#: js/ui/shellMountOperation.js:326
msgid "Password"
msgstr "Kata Sandi"
#: js/gdm/authPrompt.js:184 js/gdm/authPrompt.js:237 js/gdm/authPrompt.js:468
msgid "Next"
msgstr "Selanjutnya"
#: js/gdm/loginDialog.js:318
#: js/gdm/authPrompt.js:233 js/ui/shellMountOperation.js:380
#: js/ui/unlockDialog.js:44
msgid "Unlock"
msgstr "Buka Kunci"
#: js/gdm/authPrompt.js:235
msgctxt "button"
msgid "Sign In"
msgstr "Masuk"
#: js/gdm/loginDialog.js:319
msgid "Choose Session"
msgstr "Pilih Sesi"
#: js/gdm/loginDialog.js:457
#: js/gdm/loginDialog.js:461
msgid "Not listed?"
msgstr "Tak masuk daftar?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: js/gdm/loginDialog.js:912
#: js/gdm/loginDialog.js:895
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(cth., pengguna dari %s)"
@@ -584,12 +589,12 @@ msgstr "(cth., pengguna dari %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: js/gdm/loginDialog.js:917 js/ui/components/networkAgent.js:238
#: js/ui/components/networkAgent.js:261 js/ui/components/networkAgent.js:279
msgid "Username"
msgstr "Nama pengguna"
#: js/gdm/loginDialog.js:899 js/ui/components/networkAgent.js:234
#: js/ui/components/networkAgent.js:257 js/ui/components/networkAgent.js:275
msgid "Username: "
msgstr "Nama pengguna: "
#: js/gdm/loginDialog.js:1253
#: js/gdm/loginDialog.js:1230
msgid "Login Window"
msgstr "Jendela Log Masuk"
@@ -814,16 +819,16 @@ msgid "%B %-d %Y, %l%M %p"
msgstr "%d %B %Y, %l%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login window
#: js/portalHelper/main.js:41
#: js/portalHelper/main.js:42
msgid "Hotspot Login"
msgstr "Log Masuk Area Bersinyal (hotspot)"
#: js/portalHelper/main.js:87
#: js/portalHelper/main.js:88
msgid ""
"Your connection to this hotspot login is not secure. Passwords or other "
"information you enter on this page can be viewed by people nearby."
msgstr ""
"Koneksi Anda ke log masuk area bersinyal (hotspot) ini tidak aman. Kata kata "
"Koneksi Anda ke log masuk area bersinyal (hotspot) ini tidak aman. Kata "
"sandi atau informasi lain yang Anda masukkan pada halaman ini dapat dilihat "
"oleh orang-orang di sekitar."
@@ -854,27 +859,27 @@ msgid "All"
msgstr "Semua"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2450 js/ui/panel.js:75
#: js/ui/appDisplay.js:2454 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Buka Jendela"
#: js/ui/appDisplay.js:2470 js/ui/panel.js:82
#: js/ui/appDisplay.js:2474 js/ui/panel.js:82
msgid "New Window"
msgstr "Jendela Baru"
#: js/ui/appDisplay.js:2481
#: js/ui/appDisplay.js:2485
msgid "Launch using Dedicated Graphics Card"
msgstr "Luncurkan menggunakan Kartu Grafis Terdedikasi"
#: js/ui/appDisplay.js:2509 js/ui/dash.js:239
#: js/ui/appDisplay.js:2513 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Hapus dari Favorit"
#: js/ui/appDisplay.js:2515
#: js/ui/appDisplay.js:2519
msgid "Add to Favorites"
msgstr "Tambah ke Favorit"
#: js/ui/appDisplay.js:2525 js/ui/panel.js:93
#: js/ui/appDisplay.js:2529 js/ui/panel.js:93
msgid "Show Details"
msgstr "Tampilkan Rincian"
@@ -1100,78 +1105,86 @@ msgstr ""
"router Anda."
#: js/ui/components/networkAgent.js:101 js/ui/status/network.js:223
#: js/ui/status/network.js:314 js/ui/status/network.js:916
#: js/ui/status/network.js:314 js/ui/status/network.js:913
msgid "Connect"
msgstr "Sambung"
#: js/ui/components/networkAgent.js:208
msgid "Key"
msgstr "Kunci"
#. Cisco LEAP
#: js/ui/components/networkAgent.js:202 js/ui/components/networkAgent.js:214
#: js/ui/components/networkAgent.js:238 js/ui/components/networkAgent.js:259
#: js/ui/components/networkAgent.js:279 js/ui/components/networkAgent.js:289
msgid "Password: "
msgstr "Sandi: "
#: js/ui/components/networkAgent.js:246 js/ui/components/networkAgent.js:269
msgid "Private key password"
msgstr "Kata sandi kunci privat"
#. static WEP
#: js/ui/components/networkAgent.js:207
msgid "Key: "
msgstr "Tombol: "
#: js/ui/components/networkAgent.js:267
msgid "Identity"
msgstr "Identitas"
#: js/ui/components/networkAgent.js:242 js/ui/components/networkAgent.js:265
msgid "Private key password: "
msgstr "Sandi kunci privat: "
#: js/ui/components/networkAgent.js:281
msgid "Service"
msgstr "Layanan"
#: js/ui/components/networkAgent.js:263
msgid "Identity: "
msgstr "Identitas: "
#: js/ui/components/networkAgent.js:310 js/ui/components/networkAgent.js:338
#: js/ui/components/networkAgent.js:685 js/ui/components/networkAgent.js:706
#: js/ui/components/networkAgent.js:277
msgid "Service: "
msgstr "Layanan: "
#: js/ui/components/networkAgent.js:306 js/ui/components/networkAgent.js:334
#: js/ui/components/networkAgent.js:681 js/ui/components/networkAgent.js:702
msgid "Authentication required"
msgstr "Diperlukan autentikasi"
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:686
#: js/ui/components/networkAgent.js:307 js/ui/components/networkAgent.js:682
#, javascript-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
"“%s”."
msgstr ""
"Kata sandi atau kunci enkripsi diperlukan untuk mengakses jaringan nirkabel "
"\"%s\"."
"Sandi atau kunci enkripsi diperlukan untuk mengakses jaringan nirkabel \"%s"
"\"."
#: js/ui/components/networkAgent.js:315 js/ui/components/networkAgent.js:690
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:686
msgid "Wired 802.1X authentication"
msgstr "Autentikasi 802.1X kabel"
#: js/ui/components/networkAgent.js:317
msgid "Network name"
msgstr "Nama jaringan"
#: js/ui/components/networkAgent.js:313
msgid "Network name: "
msgstr "Nama jaringan: "
#: js/ui/components/networkAgent.js:322 js/ui/components/networkAgent.js:694
#: js/ui/components/networkAgent.js:318 js/ui/components/networkAgent.js:690
msgid "DSL authentication"
msgstr "Autentikasi DSL"
#: js/ui/components/networkAgent.js:329 js/ui/components/networkAgent.js:699
#: js/ui/components/networkAgent.js:325 js/ui/components/networkAgent.js:695
msgid "PIN code required"
msgstr "Perlu kode PIN"
#: js/ui/components/networkAgent.js:330 js/ui/components/networkAgent.js:700
#: js/ui/components/networkAgent.js:326 js/ui/components/networkAgent.js:696
msgid "PIN code is needed for the mobile broadband device"
msgstr "Kode PIN diperlukan untuk perangkat data seluler"
#: js/ui/components/networkAgent.js:331
msgid "PIN"
msgstr "PIN"
#: js/ui/components/networkAgent.js:327
msgid "PIN: "
msgstr "PIN: "
#: js/ui/components/networkAgent.js:339 js/ui/components/networkAgent.js:691
#: js/ui/components/networkAgent.js:695 js/ui/components/networkAgent.js:707
#: js/ui/components/networkAgent.js:711
#: js/ui/components/networkAgent.js:335 js/ui/components/networkAgent.js:687
#: js/ui/components/networkAgent.js:691 js/ui/components/networkAgent.js:703
#: js/ui/components/networkAgent.js:707
#, javascript-format
msgid "A password is required to connect to “%s”."
msgstr "Perlu suatu kata sandi untuk menyambung ke \"%s\"."
msgstr "Perlu suatu sandi untuk menyambung ke \"%s\"."
#: js/ui/components/networkAgent.js:674 js/ui/status/network.js:1691
#: js/ui/components/networkAgent.js:670 js/ui/status/network.js:1688
msgid "Network Manager"
msgstr "Manajer Jaringan"
#: js/ui/components/networkAgent.js:710
#: js/ui/components/networkAgent.js:706
msgid "VPN password"
msgstr "Kata Sandi VPN"
msgstr "Sandi VPN"
#: js/ui/components/polkitAgent.js:39
msgid "Authentication Required"
@@ -1193,6 +1206,10 @@ msgstr "Autentikasi"
msgid "Sorry, that didnt work. Please try again."
msgstr "Maaf, tidak berhasil. Silakan coba lagi."
#: js/ui/components/polkitAgent.js:277 js/ui/shellMountOperation.js:326
msgid "Enter Password…"
msgstr "Masukkan Kata Sandi…"
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: js/ui/components/telepathyClient.js:787
@@ -1408,15 +1425,15 @@ msgstr "%s (jarak jauh)"
msgid "%s (console)"
msgstr "%s (konsol)"
#: js/ui/extensionDownloader.js:169
#: js/ui/extensionDownloader.js:170
msgid "Install"
msgstr "Pasang"
#: js/ui/extensionDownloader.js:175
#: js/ui/extensionDownloader.js:176
msgid "Install Extension"
msgstr "Pasang Ekstensi"
#: js/ui/extensionDownloader.js:176
#: js/ui/extensionDownloader.js:177
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Unduh dan pasang \"%s\" dari extensions.gnome.org?"
@@ -1504,13 +1521,13 @@ msgid "Leave On"
msgstr "Biarkan Menyala"
#: js/ui/kbdA11yDialog.js:55 js/ui/status/bluetooth.js:135
#: js/ui/status/network.js:1288
#: js/ui/status/network.js:1285
msgid "Turn On"
msgstr "Nyalakan"
#: js/ui/kbdA11yDialog.js:63 js/ui/status/bluetooth.js:135
#: js/ui/status/network.js:131 js/ui/status/network.js:315
#: js/ui/status/network.js:1288 js/ui/status/network.js:1400
#: js/ui/status/network.js:1285 js/ui/status/network.js:1397
#: js/ui/status/nightLight.js:41 js/ui/status/rfkill.js:81
#: js/ui/status/rfkill.js:108
msgid "Turn Off"
@@ -1524,59 +1541,59 @@ msgstr "Biarkan Mati"
msgid "Region & Language Settings"
msgstr "Pengaturan Wilayah & Bahasa"
#: js/ui/lookingGlass.js:665
#: js/ui/lookingGlass.js:659
msgid "No extensions installed"
msgstr "Tak ada ekstensi terpasang"
#. Translators: argument is an extension UUID.
#: js/ui/lookingGlass.js:720
#: js/ui/lookingGlass.js:714
#, javascript-format
msgid "%s has not emitted any errors."
msgstr "%s tidak menampilkan galat apa pun."
#: js/ui/lookingGlass.js:726
#: js/ui/lookingGlass.js:720
msgid "Hide Errors"
msgstr "Sembunyikan Galat"
#: js/ui/lookingGlass.js:730 js/ui/lookingGlass.js:795
#: js/ui/lookingGlass.js:724 js/ui/lookingGlass.js:789
msgid "Show Errors"
msgstr "Tampilkan Galat"
#: js/ui/lookingGlass.js:739
#: js/ui/lookingGlass.js:733
msgid "Enabled"
msgstr "Diaktifkan"
#. translators:
#. * The device has been disabled
#: js/ui/lookingGlass.js:742 subprojects/gvc/gvc-mixer-control.c:1892
#: js/ui/lookingGlass.js:736 subprojects/gvc/gvc-mixer-control.c:1892
msgid "Disabled"
msgstr "Dinonaktifkan"
#: js/ui/lookingGlass.js:744
#: js/ui/lookingGlass.js:738
msgid "Error"
msgstr "Galat"
#: js/ui/lookingGlass.js:746
#: js/ui/lookingGlass.js:740
msgid "Out of date"
msgstr "Kadaluarsa"
#: js/ui/lookingGlass.js:748
#: js/ui/lookingGlass.js:742
msgid "Downloading"
msgstr "Mengunduh"
#: js/ui/lookingGlass.js:777
#: js/ui/lookingGlass.js:771
msgid "View Source"
msgstr "Tilik Sumber"
#: js/ui/lookingGlass.js:786
#: js/ui/lookingGlass.js:780
msgid "Web Page"
msgstr "Halaman Web"
#: js/ui/main.js:269
#: js/ui/main.js:267
msgid "Logged in as a privileged user"
msgstr "Masuk sebagai pengguna istimewa"
#: js/ui/main.js:270
#: js/ui/main.js:268
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@@ -1584,15 +1601,15 @@ msgstr ""
"Menjalankan sesi sebagai pengguna istimewa harus dihindari untuk alasan "
"keamanan. Jika memungkinkan, Anda harus masuk sebagai pengguna biasa."
#: js/ui/main.js:276
#: js/ui/main.js:274
msgid "Screen Lock disabled"
msgstr "Kunci Layar dinonaktifkan"
#: js/ui/main.js:277
#: js/ui/main.js:275
msgid "Screen Locking requires the GNOME display manager."
msgstr "Penguncian Layar memerlukan manajer tampilan GNOME."
#: js/ui/messageTray.js:1554
#: js/ui/messageTray.js:1552
msgid "System Information"
msgstr "Informasi Sistem"
@@ -1619,8 +1636,8 @@ msgstr "Gambaran"
#. active; it should not exceed ~30
#. characters.
#: js/ui/overview.js:107
msgid "Type to search"
msgstr "Ketik untuk mencari"
msgid "Type to search"
msgstr "Ketik untuk mencari"
#: js/ui/padOsd.js:95
msgid "New shortcut…"
@@ -1646,23 +1663,23 @@ msgstr "Tetapkan keystroke"
msgid "Done"
msgstr "Selesai"
#: js/ui/padOsd.js:745
#: js/ui/padOsd.js:747
msgid "Edit…"
msgstr "Sunting…"
#: js/ui/padOsd.js:787 js/ui/padOsd.js:910
#: js/ui/padOsd.js:789 js/ui/padOsd.js:912
msgid "None"
msgstr "Nihil"
#: js/ui/padOsd.js:863
#: js/ui/padOsd.js:865
msgid "Press a button to configure"
msgstr "Tekan tombol untuk mengkonfigurasi"
#: js/ui/padOsd.js:864
#: js/ui/padOsd.js:866
msgid "Press Esc to exit"
msgstr "Tekan Esc untuk keluar"
#: js/ui/padOsd.js:867
#: js/ui/padOsd.js:869
msgid "Press any key to exit"
msgstr "Tekan tombol apa saja untuk keluar"
@@ -1701,7 +1718,31 @@ msgstr "Memulai ulang tidak tersedia di Wayland"
msgid "Restarting…"
msgstr "Memulai ulang…"
#: js/ui/screenShield.js:203
#. Translators: This is a time format for a date in
#. long format
#: js/ui/screenShield.js:82
msgid "%A, %B %d"
msgstr "%A, %d %B"
#: js/ui/screenShield.js:139
#, javascript-format
msgid "%d new message"
msgid_plural "%d new messages"
msgstr[0] "%d pesan baru"
msgstr[1] "%d pesan baru"
#: js/ui/screenShield.js:141
#, javascript-format
msgid "%d new notification"
msgid_plural "%d new notifications"
msgstr[0] "%d pemberitahuan baru"
msgstr[1] "%d pemberitahuan baru"
#: js/ui/screenShield.js:454 js/ui/status/system.js:103
msgid "Lock"
msgstr "Kunci"
#: js/ui/screenShield.js:717
msgid "GNOME needs to lock the screen"
msgstr "GNOME perlu mengunci layar"
@@ -1712,11 +1753,11 @@ msgstr "GNOME perlu mengunci layar"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: js/ui/screenShield.js:244 js/ui/screenShield.js:598
#: js/ui/screenShield.js:830 js/ui/screenShield.js:1301
msgid "Unable to lock"
msgstr "Tak bisa mengunci"
#: js/ui/screenShield.js:245 js/ui/screenShield.js:599
#: js/ui/screenShield.js:831 js/ui/screenShield.js:1302
msgid "Lock was blocked by an application"
msgstr "Kunci diblokir oleh suatu aplikasi"
@@ -1777,16 +1818,12 @@ msgstr ""
"<i>%s</i>."
#: js/ui/shellMountOperation.js:306
msgid "PIM Number"
msgstr "Nomor PIM"
msgid "Enter PIM Number"
msgstr "Masukkan Nomor PIM"
#: js/ui/shellMountOperation.js:365
msgid "Remember Password"
msgstr "Ingat Kata Sandi"
#: js/ui/shellMountOperation.js:380
msgid "Unlock"
msgstr "Buka Kunci"
msgstr "Ingat Sandi"
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:391
@@ -1858,7 +1895,7 @@ msgstr "Teks Besar"
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:49 js/ui/status/network.js:591
#: js/ui/status/bluetooth.js:49 js/ui/status/network.js:590
msgid "Bluetooth Settings"
msgstr "Pengaturan Bluetooth"
@@ -1902,11 +1939,11 @@ msgstr "Klik Sekunder"
msgid "Dwell Click"
msgstr "Klik Menetap"
#: js/ui/status/keyboard.js:826
#: js/ui/status/keyboard.js:825
msgid "Keyboard"
msgstr "Papan Ketik"
#: js/ui/status/keyboard.js:848
#: js/ui/status/keyboard.js:847
msgid "Show Keyboard Layout"
msgstr "Tampilkan Tata Letak Papan Tik"
@@ -1953,7 +1990,7 @@ msgid "<unknown>"
msgstr "<tak dikenal>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:420 js/ui/status/network.js:1317
#: js/ui/status/network.js:420 js/ui/status/network.js:1314
#, javascript-format
msgid "%s Off"
msgstr "%s Mati"
@@ -1979,7 +2016,7 @@ msgid "%s Disconnecting"
msgstr "%s Memutus"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:438 js/ui/status/network.js:1309
#: js/ui/status/network.js:438 js/ui/status/network.js:1306
#, javascript-format
msgid "%s Connecting"
msgstr "%s Menyambung"
@@ -2019,7 +2056,7 @@ msgid "Mobile Broadband Settings"
msgstr "Pengaturan Data Seluler"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:558 js/ui/status/network.js:1314
#: js/ui/status/network.js:558 js/ui/status/network.js:1311
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s Perangkat Keras Dinonaktifkan"
@@ -2031,125 +2068,125 @@ msgstr "%s Perangkat Keras Dinonaktifkan"
msgid "%s Disabled"
msgstr "%s Dinonaktifkan"
#: js/ui/status/network.js:603
#: js/ui/status/network.js:602
msgid "Connect to Internet"
msgstr "Sambungkan ke Internet"
#: js/ui/status/network.js:808
#: js/ui/status/network.js:805
msgid "Airplane Mode is On"
msgstr "Mode Pesawat Terbang Menyala"
#: js/ui/status/network.js:809
#: js/ui/status/network.js:806
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Wi-Fi dinonaktifkan ketika mode pesawat terbang menyala."
#: js/ui/status/network.js:810
#: js/ui/status/network.js:807
msgid "Turn Off Airplane Mode"
msgstr "Matikan Mode Pesawat Terbang"
#: js/ui/status/network.js:819
#: js/ui/status/network.js:816
msgid "Wi-Fi is Off"
msgstr "Wi-Fi Mati"
#: js/ui/status/network.js:820
#: js/ui/status/network.js:817
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Wi-Fi perlu dinyalakan untuk menyambung ke suatu jaringan."
#: js/ui/status/network.js:821
#: js/ui/status/network.js:818
msgid "Turn On Wi-Fi"
msgstr "Nyalakan Wi-Fi"
#: js/ui/status/network.js:846
#: js/ui/status/network.js:843
msgid "Wi-Fi Networks"
msgstr "Jaringan Wi-Fi"
#: js/ui/status/network.js:848
#: js/ui/status/network.js:845
msgid "Select a network"
msgstr "Pilih jaringan"
#: js/ui/status/network.js:880
#: js/ui/status/network.js:877
msgid "No Networks"
msgstr "Tiada Jaringan"
#: js/ui/status/network.js:901 js/ui/status/rfkill.js:106
#: js/ui/status/network.js:898 js/ui/status/rfkill.js:106
msgid "Use hardware switch to turn off"
msgstr "Pakai saklar perangkat keras untuk mematikan"
#: js/ui/status/network.js:1178
#: js/ui/status/network.js:1175
msgid "Select Network"
msgstr "Pilih Jaringan"
#: js/ui/status/network.js:1184
#: js/ui/status/network.js:1181
msgid "Wi-Fi Settings"
msgstr "Pengaturan Wi-Fi"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1305
#: js/ui/status/network.js:1302
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s Hotspot Aktif"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1320
#: js/ui/status/network.js:1317
#, javascript-format
msgid "%s Not Connected"
msgstr "%s Tak Tersambung"
#: js/ui/status/network.js:1417
#: js/ui/status/network.js:1414
msgid "connecting…"
msgstr "menyambung…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1420
#: js/ui/status/network.js:1417
msgid "authentication required"
msgstr "diperlukan autentikasi"
#: js/ui/status/network.js:1422
#: js/ui/status/network.js:1419
msgid "connection failed"
msgstr "koneksi gagal"
#: js/ui/status/network.js:1473
#: js/ui/status/network.js:1470
msgid "VPN Settings"
msgstr "Pengaturan VPN"
#: js/ui/status/network.js:1490
#: js/ui/status/network.js:1487
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1500
#: js/ui/status/network.js:1497
msgid "VPN Off"
msgstr "VPN Mati"
#: js/ui/status/network.js:1561 js/ui/status/rfkill.js:84
#: js/ui/status/network.js:1558 js/ui/status/rfkill.js:84
msgid "Network Settings"
msgstr "Pengaturan Jaringan"
#: js/ui/status/network.js:1590
#: js/ui/status/network.js:1587
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "%s Koneksi Kabel"
msgstr[1] "%s Koneksi Kabel"
#: js/ui/status/network.js:1594
#: js/ui/status/network.js:1591
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
msgstr[0] "%s Koneksi Wi-Fi"
msgstr[1] "%s Koneksi Wi-Fi"
#: js/ui/status/network.js:1598
#: js/ui/status/network.js:1595
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] "%s Koneksi Modem"
msgstr[1] "%s Koneksi Modem"
#: js/ui/status/network.js:1732
#: js/ui/status/network.js:1729
msgid "Connection failed"
msgstr "Koneksi gagal"
#: js/ui/status/network.js:1733
#: js/ui/status/network.js:1730
msgid "Activation of network connection failed"
msgstr "Aktivasi koneksi jaringan gagal"
@@ -2219,10 +2256,6 @@ msgstr "Matikan"
msgid "Airplane Mode On"
msgstr "Mode Pesawat Terbang Aktif"
#: js/ui/status/system.js:103
msgid "Lock"
msgstr "Kunci"
#: js/ui/status/system.js:116
msgid "Power Off / Log Out"
msgstr "Matikan / Log Keluar"
@@ -2247,11 +2280,11 @@ msgstr "Matikan…"
msgid "Thunderbolt"
msgstr "Thunderbolt"
#: js/ui/status/thunderbolt.js:325
#: js/ui/status/thunderbolt.js:324
msgid "Unknown Thunderbolt device"
msgstr "Perangkat Thunderbolt tak dikenal"
#: js/ui/status/thunderbolt.js:326
#: js/ui/status/thunderbolt.js:325
msgid ""
"New device has been detected while you were away. Please disconnect and "
"reconnect the device to start using it."
@@ -2259,21 +2292,21 @@ msgstr ""
"Perangkat baru telah terdeteksi saat Anda pergi. Harap lepaskan dan "
"sambungkan kembali perangkat untuk mulai menggunakannya."
#: js/ui/status/thunderbolt.js:329
#: js/ui/status/thunderbolt.js:328
msgid "Unauthorized Thunderbolt device"
msgstr "Perangkat Thunderbolt tak dikenal"
#: js/ui/status/thunderbolt.js:330
#: js/ui/status/thunderbolt.js:329
msgid ""
"New device has been detected and needs to be authorized by an administrator."
msgstr ""
"Perangkat baru telah terdeteksi dan perlu diautorisasi oleh administrator."
#: js/ui/status/thunderbolt.js:336
#: js/ui/status/thunderbolt.js:335
msgid "Thunderbolt authorization error"
msgstr "Autorisasi Thunderbolt galat"
#: js/ui/status/thunderbolt.js:337
#: js/ui/status/thunderbolt.js:336
#, javascript-format
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "Tidak dapat mengautorisasi perangkat Thunderbolt: %s"
@@ -2314,34 +2347,14 @@ msgstr "Hanya Eksternal"
msgid "Built-in Only"
msgstr "Hanya Bawaan"
# %A: Full weekday name
# %A: Minggu
# %B: Full month name
# %B: Januari
# %d: Day of month as decimal number (01-31)
# %d: 1
#. Translators: This is a time format for a date in
#. long format
#: js/ui/unlockDialog.js:370
msgid "%A %B %-d"
msgstr "%A, %d %B"
#: js/ui/unlockDialog.js:376
msgid "Swipe up to unlock"
msgstr "Gesek ke atas untuk membuka kunci"
#: js/ui/unlockDialog.js:377
msgid "Click or press a key to unlock"
msgstr "Klik atau tekan tombol untuk membuka kunci"
#: js/ui/unlockDialog.js:549
msgid "Unlock Window"
msgstr "Buka Kunci Jendela"
#: js/ui/unlockDialog.js:558
#: js/ui/unlockDialog.js:52
msgid "Log in as another user"
msgstr "Masuk sebagai pengguna lain"
#: js/ui/unlockDialog.js:67
msgid "Unlock Window"
msgstr "Buka Kunci Jendela"
#: js/ui/viewSelector.js:181
msgid "Applications"
msgstr "Aplikasi"
@@ -2380,7 +2393,7 @@ msgstr[1] "Perubahan tatanan akan dikembalikan dalam %d detik"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:544
#: js/ui/windowManager.js:542
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2485,11 +2498,11 @@ msgstr "Gagal meluncurkan \"%s\""
#: src/shell-keyring-prompt.c:731
msgid "Passwords do not match."
msgstr "Kata sandi tidak cocok."
msgstr "Sandi tidak cocok."
#: src/shell-keyring-prompt.c:739
msgid "Password cannot be blank"
msgstr "Kata sandi tidak boleh kosong"
msgstr "Sandi tidak boleh kosong"
#: src/shell-polkit-authentication-agent.c:344
msgid "Authentication dialog was dismissed by the user"
@@ -2563,7 +2576,7 @@ msgid "Create a new extension"
msgstr "Buat ekstensi baru"
#: subprojects/extensions-tool/src/command-create.c:280
#: subprojects/extensions-tool/src/command-list.c:168
#: subprojects/extensions-tool/src/command-list.c:158
msgid "Unknown arguments"
msgstr "Argumen tak dikenal"
@@ -2621,35 +2634,31 @@ msgstr "Tidak ada bundel ekstensi yang ditentukan"
msgid "More than one extension bundle specified"
msgstr "Lebih dari satu bundel ekstensi ditentukan"
#: subprojects/extensions-tool/src/command-list.c:125
#: subprojects/extensions-tool/src/command-list.c:118
msgid "Show user-installed extensions"
msgstr "Tampilkan ekstensi yang dipasang pengguna"
#: subprojects/extensions-tool/src/command-list.c:128
#: subprojects/extensions-tool/src/command-list.c:121
msgid "Show system-installed extensions"
msgstr "Tampilkan ekstensi yang dipasang sistem"
#: subprojects/extensions-tool/src/command-list.c:131
#: subprojects/extensions-tool/src/command-list.c:124
msgid "Show enabled extensions"
msgstr "Tampilkan ekstensi yang diaktifkan"
#: subprojects/extensions-tool/src/command-list.c:134
#: subprojects/extensions-tool/src/command-list.c:127
msgid "Show disabled extensions"
msgstr "Tampilkan ekstensi yang dinonaktifkan"
#: subprojects/extensions-tool/src/command-list.c:137
#: subprojects/extensions-tool/src/command-list.c:130
msgid "Show extensions with preferences"
msgstr "Tampilkan ekstensi dengan preferensi"
#: subprojects/extensions-tool/src/command-list.c:140
msgid "Show extensions with updates"
msgstr "Tampilkan ekstensi dengan pemutakhiran"
#: subprojects/extensions-tool/src/command-list.c:143
#: subprojects/extensions-tool/src/command-list.c:133
msgid "Print extension details"
msgstr "Cetak detail ekstensi"
#: subprojects/extensions-tool/src/command-list.c:151
#: subprojects/extensions-tool/src/command-list.c:141
msgid "List installed extensions"
msgstr "Daftar ekstensi yang dipasang"
@@ -2832,35 +2841,6 @@ msgstr[1] "%u Masukan"
msgid "System Sounds"
msgstr "Suara Sistem"
#~ msgid "Username…"
#~ msgstr "Nama pengguna…"
#~ msgid "Password: "
#~ msgstr "Sandi: "
#~ msgid "Enter Password…"
#~ msgstr "Masukkan Kata Sandi…"
#~ msgid "Next"
#~ msgstr "Selanjutnya"
#~ msgctxt "button"
#~ msgid "Sign In"
#~ msgstr "Masuk"
#~ msgid "%A, %B %d"
#~ msgstr "%A, %d %B"
#~ msgid "%d new message"
#~ msgid_plural "%d new messages"
#~ msgstr[0] "%d pesan baru"
#~ msgstr[1] "%d pesan baru"
#~ msgid "%d new notification"
#~ msgid_plural "%d new notifications"
#~ msgstr[0] "%d pemberitahuan baru"
#~ msgstr[1] "%d pemberitahuan baru"
#~ msgid "org.gnome.Extensions"
#~ msgstr "org.gnome.Extensions"
@@ -2886,5 +2866,8 @@ msgstr "Suara Sistem"
#~ msgid "Mobile broadband network password"
#~ msgstr "Sandi jaringan data seluler"
#~ msgid "Password"
#~ msgstr "Sandi"
#~ msgid "Rename"
#~ msgstr "Ubah Nama"

1676
po/it.po

File diff suppressed because it is too large Load Diff

View File

@@ -16,8 +16,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-02-29 16:06+0000\n"
"PO-Revision-Date: 2020-03-05 06:30+0900\n"
"POT-Creation-Date: 2020-02-21 17:52+0000\n"
"PO-Revision-Date: 2020-02-22 07:00+0900\n"
"Last-Translator: sicklylife <translation@sicklylife.jp>\n"
"Language-Team: Japanese <gnome-translation@gnome.gr.jp>\n"
"Language: ja\n"
@@ -412,11 +412,11 @@ msgid ""
msgstr ""
"拡張機能を削除した場合、再度有効にするにはダウンロードし直す必要があります"
#: js/extensionPrefs/main.js:144 js/gdm/authPrompt.js:135
#: js/ui/audioDeviceSelection.js:57 js/ui/components/networkAgent.js:107
#: js/ui/components/polkitAgent.js:139 js/ui/endSessionDialog.js:374
#: js/ui/extensionDownloader.js:165 js/ui/shellMountOperation.js:376
#: js/ui/shellMountOperation.js:386 js/ui/status/network.js:913
#: js/extensionPrefs/main.js:144 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:107 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:374 js/ui/extensionDownloader.js:165
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:913
msgid "Cancel"
msgstr "キャンセル"
@@ -555,7 +555,7 @@ msgid "Log Out…"
msgstr "ログアウト…"
#. Cisco LEAP
#: js/gdm/authPrompt.js:237 js/ui/components/networkAgent.js:202
#: js/gdm/authPrompt.js:236 js/ui/components/networkAgent.js:202
#: js/ui/components/networkAgent.js:218 js/ui/components/networkAgent.js:242
#: js/ui/components/networkAgent.js:263 js/ui/components/networkAgent.js:283
#: js/ui/components/networkAgent.js:293 js/ui/components/polkitAgent.js:277
@@ -1037,7 +1037,7 @@ msgstr "イベントなし"
#: js/ui/calendar.js:1153
msgid "Do Not Disturb"
msgstr "通知ポップアップを表示しない"
msgstr "通知ポップアップしない"
#: js/ui/calendar.js:1167
msgid "Clear"
@@ -1658,12 +1658,12 @@ msgstr "終了"
msgid "Activities"
msgstr "アクティビティ"
#: js/ui/panel.js:713
#: js/ui/panel.js:707
msgctxt "System menu in the top bar"
msgid "System"
msgstr "システム"
#: js/ui/panel.js:826
#: js/ui/panel.js:820
msgid "Top Bar"
msgstr "トップバー"
@@ -2305,14 +2305,10 @@ msgstr "ロック解除は上にスワイプしてください"
msgid "Click or press a key to unlock"
msgstr "ロック解除はキーを押すかクリックしてください"
#: js/ui/unlockDialog.js:549
#: js/ui/unlockDialog.js:550
msgid "Unlock Window"
msgstr "ロック解除"
#: js/ui/unlockDialog.js:558
msgid "Log in as another user"
msgstr "別のユーザーでログイン"
#: js/ui/viewSelector.js:181
msgid "Applications"
msgstr "アプリケーション"

301
po/ko.po
View File

@@ -20,8 +20,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-02-28 07:20+0000\n"
"PO-Revision-Date: 2020-02-28 17:34+0900\n"
"POT-Creation-Date: 2020-02-12 19:34+0000\n"
"PO-Revision-Date: 2020-02-17 17:24+0900\n"
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
"Language-Team: GNOME Korea <gnome-kr@googlegroups.com>\n"
"Language: ko\n"
@@ -402,11 +402,11 @@ msgid ""
"to enable it again"
msgstr "확장을 제거한 다음 다시 사용하려면 다시 다운로드해야 합니다"
#: js/extensionPrefs/main.js:144 js/gdm/authPrompt.js:135
#: js/ui/audioDeviceSelection.js:57 js/ui/components/networkAgent.js:107
#: js/ui/components/polkitAgent.js:139 js/ui/endSessionDialog.js:374
#: js/ui/extensionDownloader.js:165 js/ui/shellMountOperation.js:376
#: js/ui/shellMountOperation.js:386 js/ui/status/network.js:913
#: js/extensionPrefs/main.js:144 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:107 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:374 js/ui/extensionDownloader.js:166
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:910
msgid "Cancel"
msgstr "취소"
@@ -537,15 +537,6 @@ msgstr ""
msgid "Log Out…"
msgstr "로그아웃…"
#. Cisco LEAP
#: js/gdm/authPrompt.js:237 js/ui/components/networkAgent.js:202
#: js/ui/components/networkAgent.js:218 js/ui/components/networkAgent.js:242
#: js/ui/components/networkAgent.js:263 js/ui/components/networkAgent.js:283
#: js/ui/components/networkAgent.js:293 js/ui/components/polkitAgent.js:277
#: js/ui/shellMountOperation.js:326
msgid "Password"
msgstr "암호"
#: js/gdm/loginDialog.js:318
msgid "Choose Session"
msgstr "세션 선택"
@@ -561,15 +552,11 @@ msgstr "목록에 없습니까?"
msgid "(e.g., user or %s)"
msgstr "(예를 들어, 사용자 또는 %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: js/gdm/loginDialog.js:917 js/ui/components/networkAgent.js:238
#: js/ui/components/networkAgent.js:261 js/ui/components/networkAgent.js:279
msgid "Username"
msgstr "사용자 이름"
#: js/gdm/loginDialog.js:917
msgid "Username…"
msgstr "사용자 이름…"
#: js/gdm/loginDialog.js:1253
#: js/gdm/loginDialog.js:1252
msgid "Login Window"
msgstr "로그인 창"
@@ -793,11 +780,11 @@ msgid "%B %-d %Y, %l%M %p"
msgstr "%Y년 %B %-d일, %p %l%M"
#. TRANSLATORS: this is the title of the wifi captive portal login window
#: js/portalHelper/main.js:41
#: js/portalHelper/main.js:42
msgid "Hotspot Login"
msgstr "핫스팟 로그인"
#: js/portalHelper/main.js:87
#: js/portalHelper/main.js:88
msgid ""
"Your connection to this hotspot login is not secure. Passwords or other "
"information you enter on this page can be viewed by people nearby."
@@ -832,28 +819,28 @@ msgid "All"
msgstr "모두"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2450 js/ui/panel.js:75
#: js/ui/appDisplay.js:2454 js/ui/panel.js:75
msgid "Open Windows"
msgstr "열린 창"
#: js/ui/appDisplay.js:2470 js/ui/panel.js:82
#: js/ui/appDisplay.js:2474 js/ui/panel.js:82
msgid "New Window"
msgstr "새 창"
#: js/ui/appDisplay.js:2481
#: js/ui/appDisplay.js:2485
msgid "Launch using Dedicated Graphics Card"
msgstr "지정한 그래픽 카드를 사용해 시작"
#: js/ui/appDisplay.js:2509 js/ui/dash.js:239
#: js/ui/appDisplay.js:2513 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "즐겨찾기에서 제거"
#: js/ui/appDisplay.js:2515
#: js/ui/appDisplay.js:2519
msgid "Add to Favorites"
msgstr "즐겨찾기에 추가"
# 주의: "Show ..." 형태지만 보이기로 번역하지 않는다
#: js/ui/appDisplay.js:2525 js/ui/panel.js:93
#: js/ui/appDisplay.js:2529 js/ui/panel.js:93
msgid "Show Details"
msgstr "자세히 보기"
@@ -1076,74 +1063,90 @@ msgid ""
msgstr "다른 방법으로 라우터의 “WPS” 단추를 눌러서 연결할 수 있습니다."
#: js/ui/components/networkAgent.js:101 js/ui/status/network.js:223
#: js/ui/status/network.js:314 js/ui/status/network.js:916
#: js/ui/status/network.js:314 js/ui/status/network.js:913
msgid "Connect"
msgstr "연결"
#: js/ui/components/networkAgent.js:208
msgid "Key"
msgstr "키"
#. Cisco LEAP
#: js/ui/components/networkAgent.js:202 js/ui/components/networkAgent.js:214
#: js/ui/components/networkAgent.js:238 js/ui/components/networkAgent.js:259
#: js/ui/components/networkAgent.js:279 js/ui/components/networkAgent.js:289
msgid "Password: "
msgstr "암호: "
#: js/ui/components/networkAgent.js:246 js/ui/components/networkAgent.js:269
msgid "Private key password"
msgstr "개인 키 암호"
#. static WEP
#: js/ui/components/networkAgent.js:207
msgid "Key: "
msgstr "키: "
#: js/ui/components/networkAgent.js:267
msgid "Identity"
msgstr "신원"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: js/ui/components/networkAgent.js:234 js/ui/components/networkAgent.js:257
#: js/ui/components/networkAgent.js:275
msgid "Username: "
msgstr "사용자 이름: "
#: js/ui/components/networkAgent.js:281
msgid "Service"
msgstr "서비스"
#: js/ui/components/networkAgent.js:242 js/ui/components/networkAgent.js:265
msgid "Private key password: "
msgstr "개인 키 암호: "
#: js/ui/components/networkAgent.js:310 js/ui/components/networkAgent.js:338
#: js/ui/components/networkAgent.js:685 js/ui/components/networkAgent.js:706
#: js/ui/components/networkAgent.js:263
msgid "Identity: "
msgstr "신원: "
#: js/ui/components/networkAgent.js:277
msgid "Service: "
msgstr "서비스: "
#: js/ui/components/networkAgent.js:306 js/ui/components/networkAgent.js:334
#: js/ui/components/networkAgent.js:681 js/ui/components/networkAgent.js:702
msgid "Authentication required"
msgstr "인증 필요"
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:686
#: js/ui/components/networkAgent.js:307 js/ui/components/networkAgent.js:682
#, javascript-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
"“%s”."
msgstr "“%s” 무선 네트워크에 연결하려면 암호 또는 암호화 키가 필요합니다."
#: js/ui/components/networkAgent.js:315 js/ui/components/networkAgent.js:690
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:686
msgid "Wired 802.1X authentication"
msgstr "유선 802.1X 인증"
#: js/ui/components/networkAgent.js:317
msgid "Network name"
msgstr "네트워크 이름"
#: js/ui/components/networkAgent.js:313
msgid "Network name: "
msgstr "네트워크 이름: "
#: js/ui/components/networkAgent.js:322 js/ui/components/networkAgent.js:694
#: js/ui/components/networkAgent.js:318 js/ui/components/networkAgent.js:690
msgid "DSL authentication"
msgstr "인증이 필요합니다"
#: js/ui/components/networkAgent.js:329 js/ui/components/networkAgent.js:699
#: js/ui/components/networkAgent.js:325 js/ui/components/networkAgent.js:695
msgid "PIN code required"
msgstr "PIN 코드가 필요합니다"
#: js/ui/components/networkAgent.js:330 js/ui/components/networkAgent.js:700
#: js/ui/components/networkAgent.js:326 js/ui/components/networkAgent.js:696
msgid "PIN code is needed for the mobile broadband device"
msgstr "휴대전화 네트워크 장치를 사용하려면 PIN 코드가 필요합니다"
#: js/ui/components/networkAgent.js:331
msgid "PIN"
msgstr "PIN"
#: js/ui/components/networkAgent.js:327
msgid "PIN: "
msgstr "PIN: "
#: js/ui/components/networkAgent.js:339 js/ui/components/networkAgent.js:691
#: js/ui/components/networkAgent.js:695 js/ui/components/networkAgent.js:707
#: js/ui/components/networkAgent.js:711
#: js/ui/components/networkAgent.js:335 js/ui/components/networkAgent.js:687
#: js/ui/components/networkAgent.js:691 js/ui/components/networkAgent.js:703
#: js/ui/components/networkAgent.js:707
#, javascript-format
msgid "A password is required to connect to “%s”."
msgstr "“%s”에 연결하려면 암호가 필요합니다."
#: js/ui/components/networkAgent.js:674 js/ui/status/network.js:1691
#: js/ui/components/networkAgent.js:670 js/ui/status/network.js:1688
msgid "Network Manager"
msgstr "네트워크 관리"
#: js/ui/components/networkAgent.js:710
#: js/ui/components/networkAgent.js:706
msgid "VPN password"
msgstr "VPN 암호"
@@ -1167,6 +1170,10 @@ msgstr "인증"
msgid "Sorry, that didnt work. Please try again."
msgstr "죄송합니다. 동작하지 않았습니다. 다시 시도하십시오."
#: js/ui/components/polkitAgent.js:277 js/ui/shellMountOperation.js:326
msgid "Enter Password…"
msgstr "암호 입력…"
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: js/ui/components/telepathyClient.js:787
@@ -1371,15 +1378,15 @@ msgstr "%s (원격)"
msgid "%s (console)"
msgstr "%s (콘솔)"
#: js/ui/extensionDownloader.js:169
#: js/ui/extensionDownloader.js:170
msgid "Install"
msgstr "설치"
#: js/ui/extensionDownloader.js:175
#: js/ui/extensionDownloader.js:176
msgid "Install Extension"
msgstr "확장 설치"
#: js/ui/extensionDownloader.js:176
#: js/ui/extensionDownloader.js:177
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr ""
@@ -1467,13 +1474,13 @@ msgid "Leave On"
msgstr "계속 유지"
#: js/ui/kbdA11yDialog.js:55 js/ui/status/bluetooth.js:135
#: js/ui/status/network.js:1288
#: js/ui/status/network.js:1285
msgid "Turn On"
msgstr "켜기"
#: js/ui/kbdA11yDialog.js:63 js/ui/status/bluetooth.js:135
#: js/ui/status/network.js:131 js/ui/status/network.js:315
#: js/ui/status/network.js:1288 js/ui/status/network.js:1400
#: js/ui/status/network.js:1285 js/ui/status/network.js:1397
#: js/ui/status/nightLight.js:41 js/ui/status/rfkill.js:81
#: js/ui/status/rfkill.js:108
msgid "Turn Off"
@@ -1487,59 +1494,59 @@ msgstr "그만두고 끄기"
msgid "Region & Language Settings"
msgstr "지역 및 언어 설정"
#: js/ui/lookingGlass.js:665
#: js/ui/lookingGlass.js:659
msgid "No extensions installed"
msgstr "확장을 설치하지 않았습니다"
#. Translators: argument is an extension UUID.
#: js/ui/lookingGlass.js:720
#: js/ui/lookingGlass.js:714
#, javascript-format
msgid "%s has not emitted any errors."
msgstr "%s에서 발생한 에러가 없습니다."
#: js/ui/lookingGlass.js:726
#: js/ui/lookingGlass.js:720
msgid "Hide Errors"
msgstr "오류 숨기기"
#: js/ui/lookingGlass.js:730 js/ui/lookingGlass.js:795
#: js/ui/lookingGlass.js:724 js/ui/lookingGlass.js:789
msgid "Show Errors"
msgstr "오류 보이기"
#: js/ui/lookingGlass.js:739
#: js/ui/lookingGlass.js:733
msgid "Enabled"
msgstr "사용"
#. translators:
#. * The device has been disabled
#: js/ui/lookingGlass.js:742 subprojects/gvc/gvc-mixer-control.c:1892
#: js/ui/lookingGlass.js:736 subprojects/gvc/gvc-mixer-control.c:1892
msgid "Disabled"
msgstr "사용 않음"
#: js/ui/lookingGlass.js:744
#: js/ui/lookingGlass.js:738
msgid "Error"
msgstr "오류"
#: js/ui/lookingGlass.js:746
#: js/ui/lookingGlass.js:740
msgid "Out of date"
msgstr "오래 된 버전"
#: js/ui/lookingGlass.js:748
#: js/ui/lookingGlass.js:742
msgid "Downloading"
msgstr "다운로드 중"
#: js/ui/lookingGlass.js:777
#: js/ui/lookingGlass.js:771
msgid "View Source"
msgstr "소스 보기"
#: js/ui/lookingGlass.js:786
#: js/ui/lookingGlass.js:780
msgid "Web Page"
msgstr "웹페이지"
#: js/ui/main.js:269
#: js/ui/main.js:267
msgid "Logged in as a privileged user"
msgstr "관리자 권한으로 로그인"
#: js/ui/main.js:270
#: js/ui/main.js:268
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@@ -1547,16 +1554,16 @@ msgstr ""
"관리자 권한으로 세션을 시작하는 일은 보안 이유로 피해야 합니다. 할 수 있으면 "
"일반 유저로 로그인해야 합니다."
#: js/ui/main.js:276
#: js/ui/main.js:274
msgid "Screen Lock disabled"
msgstr "화면 잠금 사용하지 않음"
# GDM
#: js/ui/main.js:277
#: js/ui/main.js:275
msgid "Screen Locking requires the GNOME display manager."
msgstr "화면 잠금은 그놈 디스플레이 관리자가 필요합니다."
#: js/ui/messageTray.js:1554
#: js/ui/messageTray.js:1552
msgid "System Information"
msgstr "시스템 정보"
@@ -1583,8 +1590,8 @@ msgstr "개요"
#. active; it should not exceed ~30
#. characters.
#: js/ui/overview.js:107
msgid "Type to search"
msgstr "검색하려면 입력하십시오"
msgid "Type to search"
msgstr "검색하려면 입력하십시오"
#: js/ui/padOsd.js:95
msgid "New shortcut…"
@@ -1610,23 +1617,23 @@ msgstr "키 누르기 지정"
msgid "Done"
msgstr "마침"
#: js/ui/padOsd.js:745
#: js/ui/padOsd.js:747
msgid "Edit…"
msgstr "편집…"
#: js/ui/padOsd.js:787 js/ui/padOsd.js:910
#: js/ui/padOsd.js:789 js/ui/padOsd.js:912
msgid "None"
msgstr "없음"
#: js/ui/padOsd.js:863
#: js/ui/padOsd.js:865
msgid "Press a button to configure"
msgstr "설정하려면 단추를 누르십시오"
#: js/ui/padOsd.js:864
#: js/ui/padOsd.js:866
msgid "Press Esc to exit"
msgstr "나가려면 Esc를 누르십시오"
#: js/ui/padOsd.js:867
#: js/ui/padOsd.js:869
msgid "Press any key to exit"
msgstr "나가려면 아무 키나 누르십시오"
@@ -1640,12 +1647,12 @@ msgstr "끝내기"
msgid "Activities"
msgstr "현재 활동"
#: js/ui/panel.js:713
#: js/ui/panel.js:707
msgctxt "System menu in the top bar"
msgid "System"
msgstr "시스템"
#: js/ui/panel.js:826
#: js/ui/panel.js:820
msgid "Top Bar"
msgstr "위 막대"
@@ -1676,11 +1683,11 @@ msgstr "그놈에서 화면을 잠궈야 합니다"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: js/ui/screenShield.js:244 js/ui/screenShield.js:598
#: js/ui/screenShield.js:244 js/ui/screenShield.js:602
msgid "Unable to lock"
msgstr "잠글 수 없습니다"
#: js/ui/screenShield.js:245 js/ui/screenShield.js:599
#: js/ui/screenShield.js:245 js/ui/screenShield.js:603
msgid "Lock was blocked by an application"
msgstr "프로그램이 잠금을 막았습니다"
@@ -1741,8 +1748,8 @@ msgstr ""
"하십시오."
#: js/ui/shellMountOperation.js:306
msgid "PIM Number"
msgstr "PIM 번호"
msgid "Enter PIM Number"
msgstr "PIM 번호 입력…"
#: js/ui/shellMountOperation.js:365
msgid "Remember Password"
@@ -1822,7 +1829,7 @@ msgstr "큰 글자"
msgid "Bluetooth"
msgstr "블루투스"
#: js/ui/status/bluetooth.js:49 js/ui/status/network.js:591
#: js/ui/status/bluetooth.js:49 js/ui/status/network.js:590
msgid "Bluetooth Settings"
msgstr "블루투스 설정"
@@ -1865,11 +1872,11 @@ msgstr "보조 누르기"
msgid "Dwell Click"
msgstr "머무르면 누르기"
#: js/ui/status/keyboard.js:826
#: js/ui/status/keyboard.js:825
msgid "Keyboard"
msgstr "키보드"
#: js/ui/status/keyboard.js:848
#: js/ui/status/keyboard.js:847
msgid "Show Keyboard Layout"
msgstr "키보드 배치 표시"
@@ -1916,7 +1923,7 @@ msgid "<unknown>"
msgstr "<알 수 없음>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:420 js/ui/status/network.js:1317
#: js/ui/status/network.js:420 js/ui/status/network.js:1314
#, javascript-format
msgid "%s Off"
msgstr "%s 꺼짐"
@@ -1942,7 +1949,7 @@ msgid "%s Disconnecting"
msgstr "%s 연결 끊는 중"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:438 js/ui/status/network.js:1309
#: js/ui/status/network.js:438 js/ui/status/network.js:1306
#, javascript-format
msgid "%s Connecting"
msgstr "%s 연결하는 중"
@@ -1982,7 +1989,7 @@ msgid "Mobile Broadband Settings"
msgstr "휴대전화 네트워크 설정"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:558 js/ui/status/network.js:1314
#: js/ui/status/network.js:558 js/ui/status/network.js:1311
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s 하드웨어 사용 않음"
@@ -1994,122 +2001,122 @@ msgstr "%s 하드웨어 사용 않음"
msgid "%s Disabled"
msgstr "%s 사용 않음"
#: js/ui/status/network.js:603
#: js/ui/status/network.js:602
msgid "Connect to Internet"
msgstr "인터넷에 연결"
#: js/ui/status/network.js:808
#: js/ui/status/network.js:805
msgid "Airplane Mode is On"
msgstr "비행기 모드 켜짐"
#: js/ui/status/network.js:809
#: js/ui/status/network.js:806
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "비행기 모드에서는 와이파이를 사용하지 않습니다."
#: js/ui/status/network.js:810
#: js/ui/status/network.js:807
msgid "Turn Off Airplane Mode"
msgstr "비행기 모드 끄기"
#: js/ui/status/network.js:819
#: js/ui/status/network.js:816
msgid "Wi-Fi is Off"
msgstr "와이파이 꺼짐"
#: js/ui/status/network.js:820
#: js/ui/status/network.js:817
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "네트워크에 연결하려면 와이파이를 켜야 합니다."
#: js/ui/status/network.js:821
#: js/ui/status/network.js:818
msgid "Turn On Wi-Fi"
msgstr "와이파이 켜기"
#: js/ui/status/network.js:846
#: js/ui/status/network.js:843
msgid "Wi-Fi Networks"
msgstr "와이파이 네트워크"
#: js/ui/status/network.js:848
#: js/ui/status/network.js:845
msgid "Select a network"
msgstr "네트워크를 선택하십시오"
#: js/ui/status/network.js:880
#: js/ui/status/network.js:877
msgid "No Networks"
msgstr "네트워크 없음"
#: js/ui/status/network.js:901 js/ui/status/rfkill.js:106
#: js/ui/status/network.js:898 js/ui/status/rfkill.js:106
msgid "Use hardware switch to turn off"
msgstr "끄려면 하드웨어 스위치를 사용하십시오"
#: js/ui/status/network.js:1178
#: js/ui/status/network.js:1175
msgid "Select Network"
msgstr "네트워크 선택"
#: js/ui/status/network.js:1184
#: js/ui/status/network.js:1181
msgid "Wi-Fi Settings"
msgstr "와이파이 설정"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1305
#: js/ui/status/network.js:1302
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s 핫스팟 사용 중"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1320
#: js/ui/status/network.js:1317
#, javascript-format
msgid "%s Not Connected"
msgstr "%s 연결되지 않음"
#: js/ui/status/network.js:1417
#: js/ui/status/network.js:1414
msgid "connecting…"
msgstr "연결하는 중…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1420
#: js/ui/status/network.js:1417
msgid "authentication required"
msgstr "인증 필요"
#: js/ui/status/network.js:1422
#: js/ui/status/network.js:1419
msgid "connection failed"
msgstr "연결 실패"
#: js/ui/status/network.js:1473
#: js/ui/status/network.js:1470
msgid "VPN Settings"
msgstr "가상사설망 설정"
#: js/ui/status/network.js:1490
#: js/ui/status/network.js:1487
msgid "VPN"
msgstr "가상사설망"
#: js/ui/status/network.js:1500
#: js/ui/status/network.js:1497
msgid "VPN Off"
msgstr "가상사설망 꺼짐"
#: js/ui/status/network.js:1561 js/ui/status/rfkill.js:84
#: js/ui/status/network.js:1558 js/ui/status/rfkill.js:84
msgid "Network Settings"
msgstr "네트워크 설정"
#: js/ui/status/network.js:1590
#: js/ui/status/network.js:1587
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "%s 유선 연결"
#: js/ui/status/network.js:1594
#: js/ui/status/network.js:1591
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
msgstr[0] "%s 와이파이 연결"
#: js/ui/status/network.js:1598
#: js/ui/status/network.js:1595
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] "%s 모뎀 연결"
#: js/ui/status/network.js:1732
#: js/ui/status/network.js:1729
msgid "Connection failed"
msgstr "연결이 실패했습니다"
#: js/ui/status/network.js:1733
#: js/ui/status/network.js:1730
msgid "Activation of network connection failed"
msgstr "네트워크 연결이 실패했습니다"
@@ -2207,11 +2214,11 @@ msgstr "컴퓨터 끄기…"
msgid "Thunderbolt"
msgstr "썬더볼트"
#: js/ui/status/thunderbolt.js:325
#: js/ui/status/thunderbolt.js:324
msgid "Unknown Thunderbolt device"
msgstr "알 수 없는 썬더볼트 장치"
#: js/ui/status/thunderbolt.js:326
#: js/ui/status/thunderbolt.js:325
msgid ""
"New device has been detected while you were away. Please disconnect and "
"reconnect the device to start using it."
@@ -2219,20 +2226,20 @@ msgstr ""
"자리에 없는 동안 새 장치를 검색했습니다. 이 장치를 사용하려면 장치 연결을 끊"
"었다가 다시 연결하십시오."
#: js/ui/status/thunderbolt.js:329
#: js/ui/status/thunderbolt.js:328
msgid "Unauthorized Thunderbolt device"
msgstr "권한 없는 썬더볼트 장치"
#: js/ui/status/thunderbolt.js:330
#: js/ui/status/thunderbolt.js:329
msgid ""
"New device has been detected and needs to be authorized by an administrator."
msgstr "새 장치가 발견되었고 관리자가 허가해야 합니다."
#: js/ui/status/thunderbolt.js:336
#: js/ui/status/thunderbolt.js:335
msgid "Thunderbolt authorization error"
msgstr "썬더볼트 권한 오류"
#: js/ui/status/thunderbolt.js:337
#: js/ui/status/thunderbolt.js:336
#, javascript-format
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "썬더볼트 장치에 권한을 부여할 수 없습니다: %s"
@@ -2275,28 +2282,10 @@ msgstr "외부만 사용"
msgid "Built-in Only"
msgstr "내장만 사용"
#. Translators: This is a time format for a date in
#. long format
#: js/ui/unlockDialog.js:370
msgid "%A %B %-d"
msgstr "%B %-d일 %A"
#: js/ui/unlockDialog.js:376
msgid "Swipe up to unlock"
msgstr "잠금을 풀려면 위로 살짝 미십시오"
#: js/ui/unlockDialog.js:377
msgid "Click or press a key to unlock"
msgstr "잠금을 풀려면 마우스 단추 또는 키를 누르십시오"
#: js/ui/unlockDialog.js:549
#: js/ui/unlockDialog.js:459
msgid "Unlock Window"
msgstr "창 잠금 풀기"
#: js/ui/unlockDialog.js:558
msgid "Log in as another user"
msgstr "다른 사용자로 로그인"
#: js/ui/viewSelector.js:181
msgid "Applications"
msgstr "프로그램"
@@ -2334,7 +2323,7 @@ msgstr[0] "바뀐 설정을 %d초 후에 되돌립니다"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:544
#: js/ui/windowManager.js:542
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"

257
po/lt.po
View File

@@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-02-27 21:57+0000\n"
"PO-Revision-Date: 2020-03-01 20:41+0200\n"
"POT-Creation-Date: 2020-02-17 11:08+0000\n"
"PO-Revision-Date: 2020-02-17 22:38+0200\n"
"Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n"
"Language-Team: Lietuvių <gnome-lt@lists.akl.lt>\n"
"Language: lt\n"
@@ -410,11 +410,11 @@ msgstr ""
"Jei pašalinsite plėtinį, reikės grįžti prie jo atsisiuntimo, jei norėsite jį "
"vėl įjungti"
#: js/extensionPrefs/main.js:144 js/gdm/authPrompt.js:135
#: js/ui/audioDeviceSelection.js:57 js/ui/components/networkAgent.js:107
#: js/ui/components/polkitAgent.js:139 js/ui/endSessionDialog.js:374
#: js/ui/extensionDownloader.js:165 js/ui/shellMountOperation.js:376
#: js/ui/shellMountOperation.js:386 js/ui/status/network.js:913
#: js/extensionPrefs/main.js:144 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:107 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:374 js/ui/extensionDownloader.js:166
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:910
msgid "Cancel"
msgstr "Atsisakyti"
@@ -546,11 +546,12 @@ msgid "Log Out…"
msgstr "Atsijungti…"
#. Cisco LEAP
#: js/gdm/authPrompt.js:237 js/ui/components/networkAgent.js:202
#: js/ui/components/networkAgent.js:218 js/ui/components/networkAgent.js:242
#: js/ui/components/networkAgent.js:263 js/ui/components/networkAgent.js:283
#: js/ui/components/networkAgent.js:293 js/ui/components/polkitAgent.js:277
#: js/gdm/authPrompt.js:235 js/ui/components/networkAgent.js:202
#: js/ui/components/networkAgent.js:214 js/ui/components/networkAgent.js:238
#: js/ui/components/networkAgent.js:259 js/ui/components/networkAgent.js:279
#: js/ui/components/networkAgent.js:289 js/ui/components/polkitAgent.js:277
#: js/ui/shellMountOperation.js:326
#| msgid "Password:"
msgid "Password"
msgstr "Slaptažodis"
@@ -572,8 +573,9 @@ msgstr "(pvz., naudotojas arba %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: js/gdm/loginDialog.js:917 js/ui/components/networkAgent.js:238
#: js/ui/components/networkAgent.js:261 js/ui/components/networkAgent.js:279
#: js/gdm/loginDialog.js:917 js/ui/components/networkAgent.js:234
#: js/ui/components/networkAgent.js:257 js/ui/components/networkAgent.js:275
#| msgid "Username: "
msgid "Username"
msgstr "Naudotojo vardas"
@@ -808,11 +810,11 @@ msgid "%B %-d %Y, %l%M %p"
msgstr "%Y %m %-d, %l%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login window
#: js/portalHelper/main.js:41
#: js/portalHelper/main.js:42
msgid "Hotspot Login"
msgstr "Prisijungimas prie prieigos taško"
#: js/portalHelper/main.js:87
#: js/portalHelper/main.js:88
msgid ""
"Your connection to this hotspot login is not secure. Passwords or other "
"information you enter on this page can be viewed by people nearby."
@@ -847,27 +849,27 @@ msgid "All"
msgstr "Visos"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2450 js/ui/panel.js:75
#: js/ui/appDisplay.js:2454 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Atverti langai"
#: js/ui/appDisplay.js:2470 js/ui/panel.js:82
#: js/ui/appDisplay.js:2474 js/ui/panel.js:82
msgid "New Window"
msgstr "Naujas langas"
#: js/ui/appDisplay.js:2481
#: js/ui/appDisplay.js:2485
msgid "Launch using Dedicated Graphics Card"
msgstr "Paleisti naudojant dedikuotą grafikos kortą"
#: js/ui/appDisplay.js:2509 js/ui/dash.js:239
#: js/ui/appDisplay.js:2513 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Pašalinti iš mėgstamų"
#: js/ui/appDisplay.js:2515
#: js/ui/appDisplay.js:2519
msgid "Add to Favorites"
msgstr "Pridėti prie mėgstamų"
#: js/ui/appDisplay.js:2525 js/ui/panel.js:93
#: js/ui/appDisplay.js:2529 js/ui/panel.js:93
msgid "Show Details"
msgstr "Rodyti detalią informaciją"
@@ -1092,32 +1094,37 @@ msgstr ""
"Taip pat galite prisijungti paspausdami „WPS“ mygtuką savo maršrutizatoriuje."
#: js/ui/components/networkAgent.js:101 js/ui/status/network.js:223
#: js/ui/status/network.js:314 js/ui/status/network.js:916
#: js/ui/status/network.js:314 js/ui/status/network.js:913
msgid "Connect"
msgstr "Prisijungti"
#: js/ui/components/networkAgent.js:208
#. static WEP
#: js/ui/components/networkAgent.js:207
#| msgid "Key: "
msgid "Key"
msgstr "Raktas"
#: js/ui/components/networkAgent.js:246 js/ui/components/networkAgent.js:269
#: js/ui/components/networkAgent.js:242 js/ui/components/networkAgent.js:265
#| msgid "Private key password: "
msgid "Private key password"
msgstr "Privataus rakto slaptažodis"
#: js/ui/components/networkAgent.js:267
#: js/ui/components/networkAgent.js:263
#| msgid "Identity: "
msgid "Identity"
msgstr "Tapatybė"
#: js/ui/components/networkAgent.js:281
#: js/ui/components/networkAgent.js:277
#| msgid "Service: "
msgid "Service"
msgstr "Tarnyba"
#: js/ui/components/networkAgent.js:310 js/ui/components/networkAgent.js:338
#: js/ui/components/networkAgent.js:685 js/ui/components/networkAgent.js:706
#: js/ui/components/networkAgent.js:306 js/ui/components/networkAgent.js:334
#: js/ui/components/networkAgent.js:681 js/ui/components/networkAgent.js:702
msgid "Authentication required"
msgstr "Reikia patvirtinti tapatybę"
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:686
#: js/ui/components/networkAgent.js:307 js/ui/components/networkAgent.js:682
#, javascript-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@@ -1126,42 +1133,44 @@ msgstr ""
"Slaptažodžiai arba šifravimo raktai yra būtini priėjimui prie belaidžio "
"tinklo „%s“."
#: js/ui/components/networkAgent.js:315 js/ui/components/networkAgent.js:690
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:686
msgid "Wired 802.1X authentication"
msgstr "Laidinis 802.1X tapatybės patvirtinimas"
#: js/ui/components/networkAgent.js:317
#: js/ui/components/networkAgent.js:313
#| msgid "Network name: "
msgid "Network name"
msgstr "Tinklo vardas"
#: js/ui/components/networkAgent.js:322 js/ui/components/networkAgent.js:694
#: js/ui/components/networkAgent.js:318 js/ui/components/networkAgent.js:690
msgid "DSL authentication"
msgstr "DSL tapatybės patvirtinimas"
#: js/ui/components/networkAgent.js:329 js/ui/components/networkAgent.js:699
#: js/ui/components/networkAgent.js:325 js/ui/components/networkAgent.js:695
msgid "PIN code required"
msgstr "Reikalingas PIN kodas"
#: js/ui/components/networkAgent.js:330 js/ui/components/networkAgent.js:700
#: js/ui/components/networkAgent.js:326 js/ui/components/networkAgent.js:696
msgid "PIN code is needed for the mobile broadband device"
msgstr "Reikalingas PIN kodas mobiliajam plačiajuosčiam įrenginiui"
#: js/ui/components/networkAgent.js:331
#: js/ui/components/networkAgent.js:327
#| msgid "PIN: "
msgid "PIN"
msgstr "PIN"
#: js/ui/components/networkAgent.js:339 js/ui/components/networkAgent.js:691
#: js/ui/components/networkAgent.js:695 js/ui/components/networkAgent.js:707
#: js/ui/components/networkAgent.js:711
#: js/ui/components/networkAgent.js:335 js/ui/components/networkAgent.js:687
#: js/ui/components/networkAgent.js:691 js/ui/components/networkAgent.js:703
#: js/ui/components/networkAgent.js:707
#, javascript-format
msgid "A password is required to connect to “%s”."
msgstr "Būtinas slaptažodis norint prisijungti prie „%s“."
#: js/ui/components/networkAgent.js:674 js/ui/status/network.js:1691
#: js/ui/components/networkAgent.js:670 js/ui/status/network.js:1688
msgid "Network Manager"
msgstr "Tinklo tvarkymas"
#: js/ui/components/networkAgent.js:710
#: js/ui/components/networkAgent.js:706
msgid "VPN password"
msgstr "VPN slaptažodis"
@@ -1405,15 +1414,15 @@ msgstr "%s (nutolęs)"
msgid "%s (console)"
msgstr "%s (komandų eilutė)"
#: js/ui/extensionDownloader.js:169
#: js/ui/extensionDownloader.js:170
msgid "Install"
msgstr "Įdiegti"
#: js/ui/extensionDownloader.js:175
#: js/ui/extensionDownloader.js:176
msgid "Install Extension"
msgstr "Išdiegti plėtinį"
#: js/ui/extensionDownloader.js:176
#: js/ui/extensionDownloader.js:177
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Parsiųsti ir įdiegti „%s“ iš extensions.gnome.org?"
@@ -1501,13 +1510,13 @@ msgid "Leave On"
msgstr "Palikti įjungtą"
#: js/ui/kbdA11yDialog.js:55 js/ui/status/bluetooth.js:135
#: js/ui/status/network.js:1288
#: js/ui/status/network.js:1285
msgid "Turn On"
msgstr "Įjungti"
#: js/ui/kbdA11yDialog.js:63 js/ui/status/bluetooth.js:135
#: js/ui/status/network.js:131 js/ui/status/network.js:315
#: js/ui/status/network.js:1288 js/ui/status/network.js:1400
#: js/ui/status/network.js:1285 js/ui/status/network.js:1397
#: js/ui/status/nightLight.js:41 js/ui/status/rfkill.js:81
#: js/ui/status/rfkill.js:108
msgid "Turn Off"
@@ -1521,59 +1530,59 @@ msgstr "Palikti išjungtą"
msgid "Region & Language Settings"
msgstr "Regiono ir kalbos nustatymai"
#: js/ui/lookingGlass.js:665
#: js/ui/lookingGlass.js:659
msgid "No extensions installed"
msgstr "Nėra įdiegtų plėtinių"
#. Translators: argument is an extension UUID.
#: js/ui/lookingGlass.js:720
#: js/ui/lookingGlass.js:714
#, javascript-format
msgid "%s has not emitted any errors."
msgstr "%s nepranešė apie jokias klaidas."
#: js/ui/lookingGlass.js:726
#: js/ui/lookingGlass.js:720
msgid "Hide Errors"
msgstr "Slėpti klaidas"
#: js/ui/lookingGlass.js:730 js/ui/lookingGlass.js:795
#: js/ui/lookingGlass.js:724 js/ui/lookingGlass.js:789
msgid "Show Errors"
msgstr "Rodyti klaidas"
#: js/ui/lookingGlass.js:739
#: js/ui/lookingGlass.js:733
msgid "Enabled"
msgstr "Įjungta"
#. translators:
#. * The device has been disabled
#: js/ui/lookingGlass.js:742 subprojects/gvc/gvc-mixer-control.c:1892
#: js/ui/lookingGlass.js:736 subprojects/gvc/gvc-mixer-control.c:1892
msgid "Disabled"
msgstr "Išjungta"
#: js/ui/lookingGlass.js:744
#: js/ui/lookingGlass.js:738
msgid "Error"
msgstr "Klaida"
#: js/ui/lookingGlass.js:746
#: js/ui/lookingGlass.js:740
msgid "Out of date"
msgstr "Pasenęs"
#: js/ui/lookingGlass.js:748
#: js/ui/lookingGlass.js:742
msgid "Downloading"
msgstr "Atsiunčiama"
#: js/ui/lookingGlass.js:777
#: js/ui/lookingGlass.js:771
msgid "View Source"
msgstr "Žiūrėti šaltinį"
#: js/ui/lookingGlass.js:786
#: js/ui/lookingGlass.js:780
msgid "Web Page"
msgstr "Tinklalapis"
#: js/ui/main.js:269
#: js/ui/main.js:267
msgid "Logged in as a privileged user"
msgstr "Prisijungta privilegijuotu naudotoju"
#: js/ui/main.js:270
#: js/ui/main.js:268
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@@ -1581,15 +1590,15 @@ msgstr ""
"Saugumo sumetimais turėtų būti vengiama vykdyti seansus privilegijuotais "
"naudotojais. Jei įmanoma, turėtumėt visada prisjungti normaliu naudotoju."
#: js/ui/main.js:276
#: js/ui/main.js:274
msgid "Screen Lock disabled"
msgstr "Ekrano užraktas išjungtas"
#: js/ui/main.js:277
#: js/ui/main.js:275
msgid "Screen Locking requires the GNOME display manager."
msgstr "Ekrano užrakinimas reikalaujas GNOME vaizduoklio valdyklės."
#: js/ui/messageTray.js:1554
#: js/ui/messageTray.js:1552
msgid "System Information"
msgstr "Sistemos informacija"
@@ -1616,6 +1625,7 @@ msgstr "Apžvalga"
#. active; it should not exceed ~30
#. characters.
#: js/ui/overview.js:107
#| msgid "Type to search…"
msgid "Type to search"
msgstr "Rašykite, ko ieškote"
@@ -1643,23 +1653,23 @@ msgstr "Priskirti klavišų kombinaciją"
msgid "Done"
msgstr "Atlikta"
#: js/ui/padOsd.js:745
#: js/ui/padOsd.js:747
msgid "Edit…"
msgstr "Keisti…"
#: js/ui/padOsd.js:787 js/ui/padOsd.js:910
#: js/ui/padOsd.js:789 js/ui/padOsd.js:912
msgid "None"
msgstr "Nėra"
#: js/ui/padOsd.js:863
#: js/ui/padOsd.js:865
msgid "Press a button to configure"
msgstr "Spauskite mygtuką konfigūravimui"
#: js/ui/padOsd.js:864
#: js/ui/padOsd.js:866
msgid "Press Esc to exit"
msgstr "Spauskit Esc išėjimui"
#: js/ui/padOsd.js:867
#: js/ui/padOsd.js:869
msgid "Press any key to exit"
msgstr "Išėjimui spauskite bet kurį klavišą"
@@ -1673,12 +1683,12 @@ msgstr "Užverti"
msgid "Activities"
msgstr "Apžvalga"
#: js/ui/panel.js:713
#: js/ui/panel.js:707
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistema"
#: js/ui/panel.js:826
#: js/ui/panel.js:820
msgid "Top Bar"
msgstr "Viršutinė juosta"
@@ -1709,11 +1719,11 @@ msgstr "GNOME aplinkai reikia užrakinti ekraną"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: js/ui/screenShield.js:244 js/ui/screenShield.js:598
#: js/ui/screenShield.js:244 js/ui/screenShield.js:602
msgid "Unable to lock"
msgstr "Nepavyksta užrakinti"
#: js/ui/screenShield.js:245 js/ui/screenShield.js:599
#: js/ui/screenShield.js:245 js/ui/screenShield.js:603
msgid "Lock was blocked by an application"
msgstr "Programa užblokavo užrakinimą"
@@ -1775,6 +1785,7 @@ msgstr ""
"įrankį."
#: js/ui/shellMountOperation.js:306
#| msgid "Enter PIM Number…"
msgid "PIM Number"
msgstr "PIM numeris"
@@ -1856,7 +1867,7 @@ msgstr "Didelis tekstas"
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:49 js/ui/status/network.js:591
#: js/ui/status/bluetooth.js:49 js/ui/status/network.js:590
msgid "Bluetooth Settings"
msgstr "Bluetooth nustatymai"
@@ -1901,11 +1912,11 @@ msgstr "Antrinis paspaudimas"
msgid "Dwell Click"
msgstr "Uždelstas paspaudimas"
#: js/ui/status/keyboard.js:826
#: js/ui/status/keyboard.js:825
msgid "Keyboard"
msgstr "Klaviatūra"
#: js/ui/status/keyboard.js:848
#: js/ui/status/keyboard.js:847
msgid "Show Keyboard Layout"
msgstr "Rodyti klaviatūros išdėstymą"
@@ -1952,7 +1963,7 @@ msgid "<unknown>"
msgstr "<nežinoma>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:420 js/ui/status/network.js:1317
#: js/ui/status/network.js:420 js/ui/status/network.js:1314
#, javascript-format
msgid "%s Off"
msgstr "%s išjungtas"
@@ -1978,7 +1989,7 @@ msgid "%s Disconnecting"
msgstr "Atsijungiama nuo %s"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:438 js/ui/status/network.js:1309
#: js/ui/status/network.js:438 js/ui/status/network.js:1306
#, javascript-format
msgid "%s Connecting"
msgstr "Jungiamasi prie %s"
@@ -2018,7 +2029,7 @@ msgid "Mobile Broadband Settings"
msgstr "Mobiliojo plačiajuosčio tinklo nustatymai"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:558 js/ui/status/network.js:1314
#: js/ui/status/network.js:558 js/ui/status/network.js:1311
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s aparatinė įranga išjungta"
@@ -2030,100 +2041,100 @@ msgstr "%s aparatinė įranga išjungta"
msgid "%s Disabled"
msgstr "%s išjungtas"
#: js/ui/status/network.js:603
#: js/ui/status/network.js:602
msgid "Connect to Internet"
msgstr "Prisijungti prie interneto"
#: js/ui/status/network.js:808
#: js/ui/status/network.js:805
msgid "Airplane Mode is On"
msgstr "Skrydžio veiksena įjungta"
#: js/ui/status/network.js:809
#: js/ui/status/network.js:806
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Belaidis ryšys yra išjungta skrydžio veiksenoje."
#: js/ui/status/network.js:810
#: js/ui/status/network.js:807
msgid "Turn Off Airplane Mode"
msgstr "Išjungti skrydžio veikseną"
#: js/ui/status/network.js:819
#: js/ui/status/network.js:816
msgid "Wi-Fi is Off"
msgstr "Belaidžio ryšys išjungtas"
#: js/ui/status/network.js:820
#: js/ui/status/network.js:817
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Norint prisijungti prie tinklo reikia įjungti belaidį ryšį."
#: js/ui/status/network.js:821
#: js/ui/status/network.js:818
msgid "Turn On Wi-Fi"
msgstr "Įjungti belaidį ryšį"
#: js/ui/status/network.js:846
#: js/ui/status/network.js:843
msgid "Wi-Fi Networks"
msgstr "Wi-Fi tinklai"
#: js/ui/status/network.js:848
#: js/ui/status/network.js:845
msgid "Select a network"
msgstr "Pasirinkite tinklą"
#: js/ui/status/network.js:880
#: js/ui/status/network.js:877
msgid "No Networks"
msgstr "Nėra tinklų"
#: js/ui/status/network.js:901 js/ui/status/rfkill.js:106
#: js/ui/status/network.js:898 js/ui/status/rfkill.js:106
msgid "Use hardware switch to turn off"
msgstr "Išjungimui naudoti aparatinį jungiklį"
#: js/ui/status/network.js:1178
#: js/ui/status/network.js:1175
msgid "Select Network"
msgstr "Pasirinkite tinklą"
#: js/ui/status/network.js:1184
#: js/ui/status/network.js:1181
msgid "Wi-Fi Settings"
msgstr "Belaidžio ryšio nustatymai"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1305
#: js/ui/status/network.js:1302
#, javascript-format
msgid "%s Hotspot Active"
msgstr "Prieigos taškas %s aktyvus"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1320
#: js/ui/status/network.js:1317
#, javascript-format
msgid "%s Not Connected"
msgstr "Neprisijungta prie %s"
#: js/ui/status/network.js:1417
#: js/ui/status/network.js:1414
msgid "connecting…"
msgstr "jungiamasi…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1420
#: js/ui/status/network.js:1417
msgid "authentication required"
msgstr "reikia patvirtinti tapatybę"
#: js/ui/status/network.js:1422
#: js/ui/status/network.js:1419
msgid "connection failed"
msgstr "nepavyko prisijungti"
#: js/ui/status/network.js:1473
#: js/ui/status/network.js:1470
msgid "VPN Settings"
msgstr "VPN nustatymai"
#: js/ui/status/network.js:1490
#: js/ui/status/network.js:1487
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1500
#: js/ui/status/network.js:1497
msgid "VPN Off"
msgstr "VPN išjungtas"
#: js/ui/status/network.js:1561 js/ui/status/rfkill.js:84
#: js/ui/status/network.js:1558 js/ui/status/rfkill.js:84
msgid "Network Settings"
msgstr "Tinklo nustatymai"
#: js/ui/status/network.js:1590
#: js/ui/status/network.js:1587
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
@@ -2131,7 +2142,7 @@ msgstr[0] "%s laidinis ryšys"
msgstr[1] "%s laidiniai ryšiai"
msgstr[2] "%s laidinių ryšių"
#: js/ui/status/network.js:1594
#: js/ui/status/network.js:1591
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
@@ -2139,7 +2150,7 @@ msgstr[0] "%s belaidis ryšys"
msgstr[1] "%s belaidžiai ryšiai"
msgstr[2] "%s belaidžių ryšių"
#: js/ui/status/network.js:1598
#: js/ui/status/network.js:1595
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
@@ -2147,11 +2158,11 @@ msgstr[0] "%s modemo ryšys"
msgstr[1] "%s modemo ryšiai"
msgstr[2] "%s modemo ryšių"
#: js/ui/status/network.js:1732
#: js/ui/status/network.js:1729
msgid "Connection failed"
msgstr "Nepavyko prisijungti"
#: js/ui/status/network.js:1733
#: js/ui/status/network.js:1730
msgid "Activation of network connection failed"
msgstr "Tinklo ryšio nepavyko aktyvuoti"
@@ -2249,11 +2260,11 @@ msgstr "Išjungti…"
msgid "Thunderbolt"
msgstr "Thunderbolt"
#: js/ui/status/thunderbolt.js:325
#: js/ui/status/thunderbolt.js:324
msgid "Unknown Thunderbolt device"
msgstr "Nežinoma Thunderbolt įrenginys"
#: js/ui/status/thunderbolt.js:326
#: js/ui/status/thunderbolt.js:325
msgid ""
"New device has been detected while you were away. Please disconnect and "
"reconnect the device to start using it."
@@ -2261,20 +2272,20 @@ msgstr ""
"Jums nesant aptiktas naujas įrenginys. Atjunkite ir vėl prijunkite įrenginį, "
"jei norite jį naudoti."
#: js/ui/status/thunderbolt.js:329
#: js/ui/status/thunderbolt.js:328
msgid "Unauthorized Thunderbolt device"
msgstr "Neleidžiamas Thunderbolt įrenginys"
#: js/ui/status/thunderbolt.js:330
#: js/ui/status/thunderbolt.js:329
msgid ""
"New device has been detected and needs to be authorized by an administrator."
msgstr "Buvo aptiktas naujas įrenginys, kurį turi leisti administratorius."
#: js/ui/status/thunderbolt.js:336
#: js/ui/status/thunderbolt.js:335
msgid "Thunderbolt authorization error"
msgstr "Thunderbolt autorizacijos klaida"
#: js/ui/status/thunderbolt.js:337
#: js/ui/status/thunderbolt.js:336
#, javascript-format
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "Nepavyko autorizuoti Thunderbolt įrenginio: %s"
@@ -2315,30 +2326,10 @@ msgstr "Tik išorinis"
msgid "Built-in Only"
msgstr "Tik vidinis"
#. Translators: This is a time format for a date in
#. long format
#: js/ui/unlockDialog.js:370
#| msgctxt "calendar heading"
#| msgid "%A, %B %-d"
msgid "%A %B %-d"
msgstr "%A %B %-d"
#: js/ui/unlockDialog.js:376
msgid "Swipe up to unlock"
msgstr "Atrakinkite perbraukdami"
#: js/ui/unlockDialog.js:377
msgid "Click or press a key to unlock"
msgstr "Atrakinkite mygtuko ar klavišo paspaudimu"
#: js/ui/unlockDialog.js:549
#: js/ui/unlockDialog.js:552
msgid "Unlock Window"
msgstr "Atrakinimo langas"
#: js/ui/unlockDialog.js:558
msgid "Log in as another user"
msgstr "Prisijungti kitu naudotoju"
#: js/ui/viewSelector.js:181
msgid "Applications"
msgstr "Programos"
@@ -2378,7 +2369,7 @@ msgstr[2] "Pakeitimai bus grąžinti po %d sekundžių"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:544
#: js/ui/windowManager.js:542
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2639,6 +2630,7 @@ msgid "Show extensions with preferences"
msgstr "Rodyti plėtinius su nuostatomis"
#: subprojects/extensions-tool/src/command-list.c:140
#| msgid "Show extensions with preferences"
msgid "Show extensions with updates"
msgstr "Rodyti plėtinius su atnaujinimais"
@@ -2859,6 +2851,9 @@ msgstr "Sistemos garsai"
#~ msgstr[1] "%d nauji pranešimai"
#~ msgstr[2] "%d naujų pranešimų"
#~ msgid "Log in as another user"
#~ msgstr "Prisijungti kitu naudotoju"
#~ msgid "Logout…"
#~ msgstr "Atsijungti…"

1684
po/nl.po

File diff suppressed because it is too large Load Diff

1817
po/pa.po

File diff suppressed because it is too large Load Diff

View File

@@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2020-02-27 21:57+0000\n"
"PO-Revision-Date: 2020-02-29 13:09+0100\n"
"POT-Creation-Date: 2020-02-17 22:27+0000\n"
"PO-Revision-Date: 2020-02-18 19:10+0100\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <community-poland@mozilla.org>\n"
"Language: pl\n"
@@ -416,11 +416,11 @@ msgstr ""
"Po usunięciu rozszerzenia jego ponowne włączenie będzie wymagało pobrania od "
"nowa"
#: js/extensionPrefs/main.js:144 js/gdm/authPrompt.js:135
#: js/ui/audioDeviceSelection.js:57 js/ui/components/networkAgent.js:107
#: js/ui/components/polkitAgent.js:139 js/ui/endSessionDialog.js:374
#: js/ui/extensionDownloader.js:165 js/ui/shellMountOperation.js:376
#: js/ui/shellMountOperation.js:386 js/ui/status/network.js:913
#: js/extensionPrefs/main.js:144 js/ui/audioDeviceSelection.js:57
#: js/ui/components/networkAgent.js:107 js/ui/components/polkitAgent.js:139
#: js/ui/endSessionDialog.js:374 js/ui/extensionDownloader.js:165
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:913
msgid "Cancel"
msgstr "Anuluj"
@@ -555,7 +555,7 @@ msgid "Log Out…"
msgstr "Wyloguj się…"
#. Cisco LEAP
#: js/gdm/authPrompt.js:237 js/ui/components/networkAgent.js:202
#: js/gdm/authPrompt.js:235 js/ui/components/networkAgent.js:202
#: js/ui/components/networkAgent.js:218 js/ui/components/networkAgent.js:242
#: js/ui/components/networkAgent.js:263 js/ui/components/networkAgent.js:283
#: js/ui/components/networkAgent.js:293 js/ui/components/polkitAgent.js:277
@@ -863,27 +863,27 @@ msgid "All"
msgstr "Wszystkie"
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:2450 js/ui/panel.js:75
#: js/ui/appDisplay.js:2454 js/ui/panel.js:75
msgid "Open Windows"
msgstr "Otwarte okna"
#: js/ui/appDisplay.js:2470 js/ui/panel.js:82
#: js/ui/appDisplay.js:2474 js/ui/panel.js:82
msgid "New Window"
msgstr "Nowe okno"
#: js/ui/appDisplay.js:2481
#: js/ui/appDisplay.js:2485
msgid "Launch using Dedicated Graphics Card"
msgstr "Uruchom za pomocą dedykowanej karty graficznej"
#: js/ui/appDisplay.js:2509 js/ui/dash.js:239
#: js/ui/appDisplay.js:2513 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Usuń z ulubionych"
#: js/ui/appDisplay.js:2515
#: js/ui/appDisplay.js:2519
msgid "Add to Favorites"
msgstr "Dodaj do ulubionych"
#: js/ui/appDisplay.js:2525 js/ui/panel.js:93
#: js/ui/appDisplay.js:2529 js/ui/panel.js:93
msgid "Show Details"
msgstr "Wyświetl szczegóły"
@@ -1538,59 +1538,59 @@ msgstr "Pozostaw wyłączone"
msgid "Region & Language Settings"
msgstr "Ustawienia regionu i języka"
#: js/ui/lookingGlass.js:665
#: js/ui/lookingGlass.js:659
msgid "No extensions installed"
msgstr "Nie zainstalowano rozszerzeń"
#. Translators: argument is an extension UUID.
#: js/ui/lookingGlass.js:720
#: js/ui/lookingGlass.js:714
#, javascript-format
msgid "%s has not emitted any errors."
msgstr "Rozszerzenie „%s” nie wysłało żadnych błędów."
#: js/ui/lookingGlass.js:726
#: js/ui/lookingGlass.js:720
msgid "Hide Errors"
msgstr "Ukryj błędy"
#: js/ui/lookingGlass.js:730 js/ui/lookingGlass.js:795
#: js/ui/lookingGlass.js:724 js/ui/lookingGlass.js:789
msgid "Show Errors"
msgstr "Wyświetl błędy"
#: js/ui/lookingGlass.js:739
#: js/ui/lookingGlass.js:733
msgid "Enabled"
msgstr "Włączone"
#. translators:
#. * The device has been disabled
#: js/ui/lookingGlass.js:742 subprojects/gvc/gvc-mixer-control.c:1892
#: js/ui/lookingGlass.js:736 subprojects/gvc/gvc-mixer-control.c:1892
msgid "Disabled"
msgstr "Wyłączone"
#: js/ui/lookingGlass.js:744
#: js/ui/lookingGlass.js:738
msgid "Error"
msgstr "Błąd"
#: js/ui/lookingGlass.js:746
#: js/ui/lookingGlass.js:740
msgid "Out of date"
msgstr "Nieaktualne"
#: js/ui/lookingGlass.js:748
#: js/ui/lookingGlass.js:742
msgid "Downloading"
msgstr "Pobieranie"
#: js/ui/lookingGlass.js:777
#: js/ui/lookingGlass.js:771
msgid "View Source"
msgstr "Wyświetl źródło"
#: js/ui/lookingGlass.js:786
#: js/ui/lookingGlass.js:780
msgid "Web Page"
msgstr "Strona WWW"
#: js/ui/main.js:269
#: js/ui/main.js:267
msgid "Logged in as a privileged user"
msgstr "Zalogowano jako uprawniony użytkownik"
#: js/ui/main.js:270
#: js/ui/main.js:268
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@@ -1598,11 +1598,11 @@ msgstr ""
"Należy unikać działania jako uprawniony użytkownik z powodów bezpieczeństwa. "
"Jeśli to możliwe, należy zalogować się jako zwykły użytkownik."
#: js/ui/main.js:276
#: js/ui/main.js:274
msgid "Screen Lock disabled"
msgstr "Blokada ekranu jest wyłączona"
#: js/ui/main.js:277
#: js/ui/main.js:275
msgid "Screen Locking requires the GNOME display manager."
msgstr "Blokowanie ekranu wymaga menedżera wyświetlania GNOME."
@@ -1690,12 +1690,12 @@ msgstr "Zakończ"
msgid "Activities"
msgstr "Podgląd"
#: js/ui/panel.js:713
#: js/ui/panel.js:707
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Menu systemowe"
#: js/ui/panel.js:826
#: js/ui/panel.js:820
msgid "Top Bar"
msgstr "Górny pasek"
@@ -1918,11 +1918,11 @@ msgstr "Kliknięcie pomocnicze"
msgid "Dwell Click"
msgstr "Kliknięcie spoczynkowe"
#: js/ui/status/keyboard.js:826
#: js/ui/status/keyboard.js:825
msgid "Keyboard"
msgstr "Klawiatura"
#: js/ui/status/keyboard.js:848
#: js/ui/status/keyboard.js:847
msgid "Show Keyboard Layout"
msgstr "Wyświetl układ klawiatury"
@@ -2336,26 +2336,22 @@ msgstr "Tylko wbudowany"
#. Translators: This is a time format for a date in
#. long format
#: js/ui/unlockDialog.js:370
#: js/ui/unlockDialog.js:372
msgid "%A %B %-d"
msgstr "%A, %-d %B"
#: js/ui/unlockDialog.js:376
#: js/ui/unlockDialog.js:378
msgid "Swipe up to unlock"
msgstr "Przeciągnięcie w górę odblokuje"
#: js/ui/unlockDialog.js:377
#: js/ui/unlockDialog.js:379
msgid "Click or press a key to unlock"
msgstr "Kliknięcie lub naciśnięcie klawisza odblokuje"
#: js/ui/unlockDialog.js:549
#: js/ui/unlockDialog.js:552
msgid "Unlock Window"
msgstr "Okno odblokowania"
#: js/ui/unlockDialog.js:558
msgid "Log in as another user"
msgstr "Zaloguj jako inny użytkownik"
#: js/ui/viewSelector.js:181
msgid "Applications"
msgstr "Programy"

1946
po/uk.po

File diff suppressed because it is too large Load Diff

View File

@@ -36,6 +36,14 @@ G_GNUC_END_IGNORE_DEPRECATIONS
#undef CALENDAR_ENABLE_DEBUG
#include "calendar-debug.h"
#ifndef _
#define _(x) gettext(x)
#endif
#ifndef N_
#define N_(x) x
#endif
typedef struct _ClientData ClientData;
typedef struct _CalendarSourceData CalendarSourceData;

View File

@@ -1659,55 +1659,6 @@ delete_variant_cb (GObject *object,
g_hash_table_remove (global->save_ops, object);
}
static void
replace_contents_worker (GTask *task,
gpointer source_object,
gpointer task_data,
GCancellable *cancellable)
{
GFile *file = source_object;
GBytes *bytes = task_data;
GError *error = NULL;
const gchar *data;
gsize len;
data = g_bytes_get_data (bytes, &len);
if (!g_file_replace_contents (file, data, len, NULL, FALSE,
G_FILE_CREATE_REPLACE_DESTINATION,
NULL, cancellable, &error))
g_task_return_error (task, g_steal_pointer (&error));
else
g_task_return_boolean (task, TRUE);
}
static void
replace_contents_async (GFile *path,
GBytes *bytes,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data)
{
g_autoptr(GTask) task = NULL;
g_assert (G_IS_FILE (path));
g_assert (bytes != NULL);
g_assert (!cancellable || G_IS_CANCELLABLE (cancellable));
task = g_task_new (path, cancellable, callback, user_data);
g_task_set_source_tag (task, replace_contents_async);
g_task_set_task_data (task, g_bytes_ref (bytes), (GDestroyNotify)g_bytes_unref);
g_task_run_in_thread (task, replace_contents_worker);
}
static gboolean
replace_contents_finish (GFile *file,
GAsyncResult *result,
GError **error)
{
return g_task_propagate_boolean (G_TASK (result), error);
}
static void
replace_variant_cb (GObject *object,
GAsyncResult *result,
@@ -1716,7 +1667,7 @@ replace_variant_cb (GObject *object,
ShellGlobal *global = user_data;
GError *error = NULL;
if (!replace_contents_finish (G_FILE (object), result, &error))
if (!g_file_replace_contents_finish (G_FILE (object), result, NULL, &error))
{
if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
{
@@ -1752,19 +1703,12 @@ save_variant (ShellGlobal *global,
}
else
{
g_autoptr(GBytes) bytes = NULL;
bytes = g_bytes_new_with_free_func (g_variant_get_data (variant),
g_variant_get_size (variant),
(GDestroyNotify)g_variant_unref,
g_variant_ref (variant));
/* g_file_replace_contents_async() can potentially fsync() from the
* calling thread when completing the asynchronous task. Instead, we
* want to force that fsync() to a thread to avoid blocking the
* compositor main loop. Using our own replace_contents_async()
* simply executes the operation synchronously from a thread.
*/
replace_contents_async (path, bytes, cancellable, replace_variant_cb, global);
g_file_replace_contents_async (path,
g_variant_get_data (variant),
g_variant_get_size (variant),
NULL, FALSE,
G_FILE_CREATE_REPLACE_DESTINATION,
cancellable, replace_variant_cb, global);
}
g_object_unref (path);

View File

@@ -29,7 +29,6 @@ struct _ShellTrayManagerPrivate {
ClutterColor bg_color;
GHashTable *icons;
StWidget *theme_widget;
};
typedef struct {
@@ -59,8 +58,6 @@ static guint shell_tray_manager_signals [LAST_SIGNAL] = { 0 };
static const ClutterColor default_color = { 0x00, 0x00, 0x00, 0xff };
static void shell_tray_manager_release_resources (ShellTrayManager *manager);
static void na_tray_icon_added (NaTrayManager *na_manager, GtkWidget *child, gpointer manager);
static void na_tray_icon_removed (NaTrayManager *na_manager, GtkWidget *child, gpointer manager);
@@ -128,7 +125,16 @@ shell_tray_manager_init (ShellTrayManager *manager)
{
manager->priv = shell_tray_manager_get_instance_private (manager);
manager->priv->na_manager = na_tray_manager_new ();
manager->priv->icons = g_hash_table_new_full (NULL, NULL,
NULL, free_tray_icon);
manager->priv->bg_color = default_color;
g_signal_connect (manager->priv->na_manager, "tray-icon-added",
G_CALLBACK (na_tray_icon_added), manager);
g_signal_connect (manager->priv->na_manager, "tray-icon-removed",
G_CALLBACK (na_tray_icon_removed), manager);
}
static void
@@ -136,7 +142,8 @@ shell_tray_manager_finalize (GObject *object)
{
ShellTrayManager *manager = SHELL_TRAY_MANAGER (object);
shell_tray_manager_release_resources (manager);
g_object_unref (manager->priv->na_manager);
g_hash_table_destroy (manager->priv->icons);
G_OBJECT_CLASS (shell_tray_manager_parent_class)->finalize (object);
}
@@ -186,30 +193,6 @@ shell_tray_manager_new (void)
return g_object_new (SHELL_TYPE_TRAY_MANAGER, NULL);
}
static void
shell_tray_manager_ensure_resources (ShellTrayManager *manager)
{
if (manager->priv->na_manager != NULL)
return;
manager->priv->icons = g_hash_table_new_full (NULL, NULL,
NULL, free_tray_icon);
manager->priv->na_manager = na_tray_manager_new ();
g_signal_connect (manager->priv->na_manager, "tray-icon-added",
G_CALLBACK (na_tray_icon_added), manager);
g_signal_connect (manager->priv->na_manager, "tray-icon-removed",
G_CALLBACK (na_tray_icon_removed), manager);
}
static void
shell_tray_manager_release_resources (ShellTrayManager *manager)
{
g_clear_object (&manager->priv->na_manager);
g_clear_pointer (&manager->priv->icons, g_hash_table_destroy);
}
static void
shell_tray_manager_style_changed (StWidget *theme_widget,
gpointer user_data)
@@ -218,9 +201,6 @@ shell_tray_manager_style_changed (StWidget *theme_widget,
StThemeNode *theme_node;
StIconColors *icon_colors;
if (manager->priv->na_manager == NULL)
return;
theme_node = st_widget_get_theme_node (theme_widget);
icon_colors = st_theme_node_get_icon_colors (theme_node);
na_tray_manager_set_colors (manager->priv->na_manager,
@@ -228,30 +208,11 @@ shell_tray_manager_style_changed (StWidget *theme_widget,
&icon_colors->error, &icon_colors->success);
}
static void
shell_tray_manager_manage_screen_internal (ShellTrayManager *manager)
{
shell_tray_manager_ensure_resources (manager);
na_tray_manager_manage_screen (manager->priv->na_manager);
}
void
shell_tray_manager_manage_screen (ShellTrayManager *manager,
StWidget *theme_widget)
{
MetaDisplay *display = shell_global_get_display (shell_global_get ());
g_set_weak_pointer (&manager->priv->theme_widget, theme_widget);
if (meta_display_get_x11_display (display) != NULL)
shell_tray_manager_manage_screen_internal (manager);
g_signal_connect_object (display, "x11-display-setup",
G_CALLBACK (shell_tray_manager_manage_screen_internal),
manager, G_CONNECT_SWAPPED);
g_signal_connect_object (display, "x11-display-closing",
G_CALLBACK (shell_tray_manager_release_resources),
manager, G_CONNECT_SWAPPED);
na_tray_manager_manage_screen (manager->priv->na_manager);
g_signal_connect_object (theme_widget, "style-changed",
G_CALLBACK (shell_tray_manager_style_changed),
@@ -259,24 +220,6 @@ shell_tray_manager_manage_screen (ShellTrayManager *manager,
shell_tray_manager_style_changed (theme_widget, manager);
}
void
shell_tray_manager_unmanage_screen (ShellTrayManager *manager)
{
MetaDisplay *display = shell_global_get_display (shell_global_get ());
g_signal_handlers_disconnect_by_data (display, manager);
if (manager->priv->theme_widget != NULL)
{
g_signal_handlers_disconnect_by_func (manager->priv->theme_widget,
G_CALLBACK (shell_tray_manager_style_changed),
manager);
}
g_set_weak_pointer (&manager->priv->theme_widget, NULL);
shell_tray_manager_release_resources (manager);
}
static void
shell_tray_manager_child_on_realize (GtkWidget *widget,
ShellTrayManagerChild *child)

View File

@@ -15,7 +15,6 @@ G_DECLARE_FINAL_TYPE (ShellTrayManager, shell_tray_manager,
ShellTrayManager *shell_tray_manager_new (void);
void shell_tray_manager_manage_screen (ShellTrayManager *manager,
StWidget *theme_widget);
void shell_tray_manager_unmanage_screen (ShellTrayManager *manager);
G_END_DECLS