Skip to content
Commits on Source (20)
......@@ -54,7 +54,7 @@ workflow:
.gnome-shell.fedora:
variables:
FDO_DISTRIBUTION_VERSION: 40
FDO_DISTRIBUTION_TAG: '2024-02-23.0'
FDO_DISTRIBUTION_TAG: '2024-07-11.0'
FDO_DISTRIBUTION_PACKAGES:
gjs
nodejs
......
......@@ -12,6 +12,8 @@ usage() {
-Dkey=val Option to pass on to meson
--subdir Build subdirectory instead of whole project
--prepare Script to run before build
--libdir Setup the project with a different libdir
--destdir Install the project to an additional destdir
-h, --help Display this help
......@@ -23,6 +25,8 @@ TEMP=$(getopt \
--options='D:h' \
--longoptions='subdir:' \
--longoptions='prepare:' \
--longoptions='libdir:' \
--longoptions='destdir:' \
--longoptions='help' \
-- "$@")
......@@ -32,6 +36,7 @@ unset TEMP
MESON_OPTIONS=()
SUBDIR=.
PREPARE=:
DESTDIR=""
while true; do
case "$1" in
......@@ -50,6 +55,16 @@ while true; do
shift 2
;;
--libdir)
MESON_OPTIONS+=( --libdir=$2 )
shift 2
;;
--destdir)
DESTDIR=$2
shift 2
;;
-h|--help)
usage
exit 0
......@@ -78,5 +93,11 @@ git clone --depth 1 "$REPO_URL" -b "$COMMIT" "$CHECKOUT_DIR"
pushd "$CHECKOUT_DIR/$SUBDIR"
sh -c "$PREPARE"
meson setup --prefix=/usr _build "${MESON_OPTIONS[@]}"
# Install it to an additional directory e.g., system extension directory
if [ -n "${DESTDIR}" ]; then
sudo meson install -C _build --destdir=$DESTDIR
fi
sudo meson install -C _build
popd
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
<attributes>
<attribute name="hide" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
<classpathentry kind="output" path=""/>
</classpath>
46.4
====
* Fix glitches in looking glass [Florian; !3413, !3414]
* Improve Persian on-screen keyboard layout [Sohrab; !3409]
* Make overview startup notification more reliable [Will; !3422, !3428]
* Fix keyboard navigation in app folders [sorelz; !3338]
* Fix connecting to WPA2 enterprise networks [Tuomas; !3426]
* Misc. bug fixes and cleanups [Florian, Martin; !3411, !3390, !3415, !3432]
Contributors:
Sohrab Behdani, Martin Abente Lahaye, Florian Müllner, Tuomas Nurmi, sorelz,
Will Thompson
Translators:
Scrambled 777 [hi], Jose Riha [sk], Chao-Hsiung Liao [zh_TW],
Daniel Rusek [cs]
46.3.1
======
* Fix including gvc source in tarball [Florian; !3164]
......
......@@ -45,6 +45,7 @@
<file preprocess="xml-stripblanks">scalable/status/keyboard-hide-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/keyboard-layout-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/keyboard-shift-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/keyboard-zwnj-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/message-indicator-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/no-notifications-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/screen-privacy-disabled-symbolic.svg</file>
......
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.1">
<path d="M 3,0.5 V 1 c 2.5,0 4.5,1 4.5,2 v 12.5 h 1 V 3 c 0,-1 2,-2 4.5,-2 V 0.5 Z" />
</svg>
......@@ -22,16 +22,12 @@
},
{
"strings": [
"ق",
"ڨ"
"ق"
]
},
{
"strings": [
"ف",
"ڤ",
"ڢ",
"ڥ"
"ف"
]
},
{
......@@ -47,7 +43,7 @@
{
"strings": [
"ه",
"ه‍"
"ة"
]
},
{
......@@ -62,21 +58,25 @@
},
{
"strings": [
"ج",
"ج"
]
},
{
"strings": [
"چ"
]
},
{
"action": "delete",
"iconName": "edit-clear-symbolic",
"width": 1.5
"width": 1
}
],
[
{
"leftOffset": 0.5,
"strings": [
"ش",
"ڜ"
"ش"
]
},
{
......@@ -86,24 +86,18 @@
},
{
"strings": [
"ي",
"ئ",
"ى"
"ی",
"ئ"
]
},
{
"strings": [
"ب",
"پ"
"ب"
]
},
{
"strings": [
"ل",
"لا",
"لأ",
"لإ",
"لآ"
"ل"
]
},
{
......@@ -133,14 +127,13 @@
},
{
"strings": [
"ك",
"گ",
"ک"
"ک",
"ك"
]
},
{
"strings": [
"ط"
"گ"
]
},
{
......@@ -151,63 +144,56 @@
],
[
{
"leftOffset": 1,
"strings": [
"ذ"
]
},
{
"leftOffset": 1.5,
"strings": [
"ء"
"ظ"
]
},
{
"strings": [
"ؤ"
"ط"
]
},
{
"strings": [
"ر"
"ژ"
]
},
{
"strings": [
"ى",
"ئ"
"ز"
]
},
{
"strings": [
"ة"
"ر"
]
},
{
"strings": [
"و"
"ذ"
]
},
{
"strings": [
"ز",
"ژ"
"د"
]
},
{
"strings": [
"ظ"
"و"
]
},
{
"strings": [
"د"
"پ"
]
}
],
[
{
"action": "levelSwitch",
"label": "?123",
"label": "۱۲۳؟",
"level": "opt",
"width": 1.5
},
......@@ -220,7 +206,7 @@
"strings": [
" "
],
"width": 6
"width": 5.5
},
{
"strings": [
......@@ -243,6 +229,10 @@
"("
]
},
{
"iconName": "keyboard-zwnj-symbolic",
"keyval": "0x100200c"
},
{
"action": "emoji",
"iconName": "face-smile-symbolic"
......@@ -475,7 +465,7 @@
[
{
"action": "levelSwitch",
"label": "ABC",
"label": "الف‌ب‌پ",
"level": "default",
"width": 1.5
},
......@@ -672,7 +662,7 @@
[
{
"action": "levelSwitch",
"label": "?123",
"label": "۱۲۳؟",
"level": "opt",
"width": 1.5
},
......@@ -713,7 +703,7 @@
},
{
"action": "levelSwitch",
"label": "?123",
"label": "۱۲۳؟",
"level": "opt",
"width": 3
}
......@@ -721,7 +711,7 @@
[
{
"action": "levelSwitch",
"label": "ABC",
"label": "الف‌ب‌پ",
"level": "default",
"width": 1.5
},
......
......@@ -374,6 +374,9 @@ StEntry {
font-weight: 400;
font-size: 0.818em; }
#EvalBox {
font-family: monospace; }
.unlock-dialog-clock .unlock-dialog-clock-time, #panel, .weather-button .weather-box .weather-grid .weather-forecast-temp, .world-clocks-button .world-clocks-grid .world-clocks-timezone, .world-clocks-button .world-clocks-grid .world-clocks-time, .events-button .events-box .events-list .event-box .event-time, .calendar .calendar-day-heading, .calendar .calendar-day {
font-feature-settings: "tnum"; }
......
......@@ -451,6 +451,9 @@ StEntry {
font-weight: 400;
font-size: 0.818em; }
#EvalBox {
font-family: monospace; }
.unlock-dialog-clock .unlock-dialog-clock-time, #panel, .weather-button .weather-box .weather-grid .weather-forecast-temp, .world-clocks-button .world-clocks-grid .world-clocks-timezone, .world-clocks-button .world-clocks-grid .world-clocks-time, .events-button .events-box .events-list .event-box .event-time, .calendar .calendar-day-heading, .calendar .calendar-day {
font-feature-settings: "tnum"; }
......
......@@ -374,6 +374,9 @@ StEntry {
font-weight: 400;
font-size: 0.818em; }
#EvalBox {
font-family: monospace; }
.unlock-dialog-clock .unlock-dialog-clock-time, #panel, .weather-button .weather-box .weather-grid .weather-forecast-temp, .world-clocks-button .world-clocks-grid .world-clocks-timezone, .world-clocks-button .world-clocks-grid .world-clocks-time, .events-button .events-box .events-list .event-box .event-time, .calendar .calendar-day-heading, .calendar .calendar-day {
font-feature-settings: "tnum"; }
......
......@@ -88,6 +88,10 @@
&:hover { border: 1px solid $fg_color; }
}
#EvalBox {
@extend %monospace;
}
// Extensions
#lookingGlassExtensions { padding: $base_padding; }
......
......@@ -10,6 +10,7 @@ import * as CheckBox from './checkBox.js';
import * as Dialog from './dialog.js';
import * as ModalDialog from './modalDialog.js';
import {DBusSenderChecker} from '../misc/util.js';
import {loadInterfaceXML} from '../misc/fileUtils.js';
const RequestIface = loadInterfaceXML('org.freedesktop.impl.portal.Request');
......@@ -22,6 +23,11 @@ const DialogResponse = {
CLOSED: 2,
};
const ALLOWED_SENDERS = [
'org.gnome.RemoteDesktop.Handover',
'org.freedesktop.impl.portal.desktop.gnome',
];
const AccessDialog = GObject.registerClass(
class AccessDialog extends ModalDialog.ModalDialog {
_init(invocation, handle, title, description, body, options) {
......@@ -133,12 +139,20 @@ export class AccessDialogDBus {
this._accessDialog = null;
this._windowTracker = Shell.WindowTracker.get_default();
this._senderChecker = new DBusSenderChecker(ALLOWED_SENDERS);
this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(AccessIface, this);
this._dbusImpl.export(Gio.DBus.session, '/org/freedesktop/portal/desktop');
}
AccessDialogAsync(params, invocation) {
async AccessDialogAsync(params, invocation) {
try {
await this._senderChecker.checkInvocation(invocation);
} catch (e) {
invocation.return_gerror(e);
return;
}
if (this._accessDialog) {
invocation.return_error_literal(
Gio.DBusError,
......
......@@ -2665,6 +2665,7 @@ export const AppFolderDialog = GObject.registerClass({
this._maybeUpdateFolderName();
this._switchActor(this._entry, this._folderNameLabel);
this.navigate_focus(this, St.DirectionType.TAB_FORWARD, false);
}
_showFolderEntry() {
......@@ -2809,50 +2810,11 @@ export const AppFolderDialog = GObject.registerClass({
}
vfunc_key_press_event(event) {
if (global.stage.get_key_focus() !== this)
return Clutter.EVENT_PROPAGATE;
if (global.focus_manager.navigate_from_event(event))
return Clutter.EVENT_STOP;
// Since we need to only grab focus on one item child when the user
// actually press a key we don't use navigate_focus when opening
// the popup.
// Instead of that, grab the focus on the AppFolderPopup actor
// and actually moves the focus to a child only when the user
// actually press a key.
// It should work with just grab_key_focus on the AppFolderPopup
// actor, but since the arrow keys are not wrapping_around the focus
// is not grabbed by a child when the widget that has the current focus
// is the same that is requesting focus, so to make it works with arrow
// keys we need to connect to the key-press-event and navigate_focus
// when that happens using TAB_FORWARD or TAB_BACKWARD instead of arrow
// keys
// Use TAB_FORWARD for down key and right key
// and TAB_BACKWARD for up key and left key on ltr
// languages
let direction;
let isLtr = Clutter.get_default_text_direction() === Clutter.TextDirection.LTR;
switch (event.get_key_symbol()) {
case Clutter.KEY_Down:
direction = St.DirectionType.TAB_FORWARD;
break;
case Clutter.KEY_Right:
direction = isLtr
? St.DirectionType.TAB_FORWARD
: St.DirectionType.TAB_BACKWARD;
break;
case Clutter.KEY_Up:
direction = St.DirectionType.TAB_BACKWARD;
break;
case Clutter.KEY_Left:
direction = isLtr
? St.DirectionType.TAB_BACKWARD
: St.DirectionType.TAB_FORWARD;
break;
default:
return Clutter.EVENT_PROPAGATE;
}
return this.navigate_focus(null, direction, false);
}
_setLighterBackground(lighter) {
const backgroundColor = lighter
......@@ -2941,6 +2903,7 @@ export const AppFolderDialog = GObject.registerClass({
this._isOpen = this._grabHelper.grab({
actor: this,
focus: this._editButton,
onUngrab: () => this.popdown(),
});
......
......@@ -763,39 +763,47 @@ export const LayoutManager = GObject.registerClass({
else
this.emit('startup-prepared');
this._startupAnimation();
try {
await this._startupAnimation();
} finally {
this._startupAnimationComplete();
}
}
_startupAnimation() {
async _startupAnimation() {
if (Meta.is_restart())
this._startupAnimationComplete();
else if (Main.sessionMode.isGreeter)
this._startupAnimationGreeter();
return;
if (Main.sessionMode.isGreeter)
await this._startupAnimationGreeter();
else
this._startupAnimationSession();
await this._startupAnimationSession();
}
_startupAnimationGreeter() {
async _startupAnimationGreeter() {
await new Promise(resolve => {
this.panelBox.ease({
translation_y: 0,
duration: STARTUP_ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onStopped: () => this._startupAnimationComplete(),
onStopped: () => resolve(),
});
});
}
_startupAnimationSession() {
const onStopped = () => this._startupAnimationComplete();
async _startupAnimationSession() {
if (Main.sessionMode.hasOverview) {
Main.overview.runStartupAnimation(onStopped);
await Main.overview.runStartupAnimation();
} else {
await new Promise(resolve => {
this.uiGroup.ease({
scale_x: 1,
scale_y: 1,
opacity: 255,
duration: STARTUP_ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onStopped,
onStopped: () => resolve(),
});
});
}
}
......
......@@ -387,6 +387,8 @@ const ObjInspector = GObject.registerClass(
class ObjInspector extends St.ScrollView {
_init(lookingGlass) {
super._init({
name: 'LookingGlassPropertyInspector',
style_class: 'lg-dialog',
pivot_point: new Graphene.Point({x: 0.5, y: 0.5}),
});
......@@ -396,8 +398,6 @@ class ObjInspector extends St.ScrollView {
this._parentList = [];
this._container = new St.BoxLayout({
name: 'LookingGlassPropertyInspector',
style_class: 'lg-dialog',
vertical: true,
x_expand: true,
y_expand: true,
......@@ -1296,11 +1296,6 @@ class LookingGlass extends St.BoxLayout {
// Sort of magic, but...eh.
this._maxItems = 150;
this._interfaceSettings = new Gio.Settings({schema_id: 'org.gnome.desktop.interface'});
this._interfaceSettings.connect('changed::monospace-font-name',
this._updateFont.bind(this));
this._updateFont();
// We want it to appear to slide out from underneath the panel
Main.uiGroup.add_child(this);
Main.uiGroup.set_child_below_sibling(this,
......@@ -1438,18 +1433,6 @@ class LookingGlass extends St.BoxLayout {
return Clutter.EVENT_PROPAGATE;
}
_updateFont() {
let fontName = this._interfaceSettings.get_string('monospace-font-name');
let fontDesc = Pango.FontDescription.from_string(fontName);
// We ignore everything but size and style; you'd be crazy to set your system-wide
// monospace font to be bold/oblique/etc. Could easily be added here.
let size = fontDesc.get_size() / 1024.;
let unit = fontDesc.get_size_is_absolute() ? 'px' : 'pt';
this.style = `
font-size: ${size}${unit};
font-family: "${fontDesc.get_family()}";`;
}
setBorderPaintTarget(obj) {
if (this._borderPaintTarget != null)
this._borderPaintTarget.remove_effect(this._redBorderEffect);
......
......@@ -90,8 +90,8 @@ class OverviewActor extends St.BoxLayout {
this._controls.animateFromOverview(callback);
}
runStartupAnimation(callback) {
this._controls.runStartupAnimation(callback);
async runStartupAnimation() {
await this._controls.runStartupAnimation();
}
get dash() {
......@@ -666,7 +666,7 @@ export class Overview extends Signals.EventEmitter {
this._overview.controls.appDisplay.selectApp(id);
}
runStartupAnimation(callback) {
async runStartupAnimation() {
Main.panel.style = 'transition-duration: 0ms;';
this._shown = true;
......@@ -679,23 +679,19 @@ export class Overview extends Signals.EventEmitter {
this._changeShownState(OverviewShownState.SHOWING);
this._overview.runStartupAnimation(() => {
await this._overview.runStartupAnimation();
// Overview got hidden during startup animation
if (this._shownState !== OverviewShownState.SHOWING) {
callback();
if (this._shownState !== OverviewShownState.SHOWING)
return;
}
if (!this._syncGrab()) {
callback();
this.hide();
return;
}
Main.panel.style = null;
this._changeShownState(OverviewShownState.SHOWN);
callback();
});
}
getShowAppsButton() {
......
......@@ -804,7 +804,7 @@ class ControlsManager extends St.Widget {
this._stateAdjustment.gestureInProgress = false;
}
async runStartupAnimation(callback) {
async runStartupAnimation() {
this._ignoreShowAppsButtonToggle = true;
this.prepareToEnterOverview();
......@@ -846,14 +846,16 @@ class ControlsManager extends St.Widget {
});
// The Dash rises from the bottom. This is the last animation to finish,
// so run the callback there.
// so resolve the promise there.
this.dash.translation_y = this.dash.height + this.dash.margin_bottom;
return new Promise(resolve => {
this.dash.ease({
translation_y: 0,
delay: STARTUP_ANIMATION_TIME,
duration: STARTUP_ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => callback(),
onStopped: () => resolve(),
});
});
}
......
......@@ -934,8 +934,8 @@ const WirelessNetwork = GObject.registerClass({
canAutoconnect() {
const canAutoconnect =
this._securityTypes !== NM.UtilsSecurityType.WPA_ENTERPRISE &&
this._securityTypes !== NM.UtilsSecurityType.WPA2_ENTERPRISE;
this._securityType !== NM.UtilsSecurityType.WPA_ENTERPRISE &&
this._securityType !== NM.UtilsSecurityType.WPA2_ENTERPRISE;
return canAutoconnect;
}
......
project('gnome-shell', 'c',
version: '46.3.1',
version: '46.4',
meson_version: '>= 0.58.0',
license: 'GPLv2+'
)
......
......@@ -13,8 +13,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: 2024-03-16 16:54+0000\n"
"PO-Revision-Date: 2024-03-16 23:48+0100\n"
"POT-Creation-Date: 2024-07-05 17:13+0000\n"
"PO-Revision-Date: 2024-07-26 12:24+0200\n"
"Last-Translator: Daniel Rusek <mail@asciiwolf.com>\n"
"Language-Team: Czech <gnome-cs-list@gnome.org>\n"
"Language: cs\n"
......@@ -22,7 +22,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Poedit 3.4.2\n"
"X-Generator: Poedit 3.4.4\n"
"X-Project-Style: gnome\n"
#: data/50-gnome-shell-launchers.xml:6
......@@ -126,7 +126,7 @@ msgstr "Pořídit snímek okna"
msgid "Record a screencast interactively"
msgstr "Zaznamenat dění na obrazovce interaktivně"
#: data/50-gnome-shell-system.xml:6 js/ui/messageTray.js:1293
#: data/50-gnome-shell-system.xml:6 js/ui/messageTray.js:1300
msgid "System"
msgstr "Systém"
......@@ -496,8 +496,8 @@ msgstr "Režim ikon aplikací."
#: data/org.gnome.shell.gschema.xml.in:327
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are “thumbnail-only” (shows a thumbnail of the window), “app-icon-"
"only” (shows only the application icon) or “both”."
"are “thumbnail-only” (shows a thumbnail of the window), “app-icon-only” "
"(shows only the application icon) or “both”."
msgstr ""
"Nastavuje, jak jsou okna zobrazena v přepínači. Možnostmi jsou „thumbnail-"
"only“ (zobrazí náhled okna), „app-icon-only“ (zobrazí pouze ikonu aplikace) "
......@@ -548,7 +548,7 @@ msgid "Network Login"
msgstr "Přihlášení do sítě"
#: js/dbusServices/extensions/ui/extension-error-page.ui:15
#: subprojects/extensions-app/data/ui/extensions-window.ui:277
#: subprojects/extensions-app/data/ui/extensions-window.ui:275
msgid "Something’s gone wrong"
msgstr "Něco se stalo špatně"
......@@ -573,18 +573,18 @@ msgstr "Domovská stránka"
msgid "Visit extension homepage"
msgstr "Navštívit domovskou stránku rozšíření"
#: js/gdm/authPrompt.js:151 js/gdm/loginDialog.js:466
#: js/ui/audioDeviceSelection.js:66 js/ui/components/networkAgent.js:114
#: js/gdm/authPrompt.js:153 js/gdm/loginDialog.js:466
#: js/ui/audioDeviceSelection.js:66 js/ui/components/networkAgent.js:115
#: js/ui/components/polkitAgent.js:146 js/ui/endSessionDialog.js:438
#: js/ui/extensionDownloader.js:278 js/ui/shellMountOperation.js:384
#: js/ui/shellMountOperation.js:394
msgid "Cancel"
msgstr "Zrušit"
#: js/gdm/authPrompt.js:317 js/ui/components/networkAgent.js:214
#: js/ui/components/networkAgent.js:234 js/ui/components/networkAgent.js:266
#: js/ui/components/networkAgent.js:299 js/ui/components/networkAgent.js:338
#: js/ui/components/networkAgent.js:351 js/ui/components/polkitAgent.js:288
#: js/gdm/authPrompt.js:319 js/ui/components/networkAgent.js:215
#: js/ui/components/networkAgent.js:235 js/ui/components/networkAgent.js:267
#: js/ui/components/networkAgent.js:300 js/ui/components/networkAgent.js:339
#: js/ui/components/networkAgent.js:352 js/ui/components/polkitAgent.js:288
#: js/ui/shellMountOperation.js:334
msgid "Password"
msgstr "Heslo"
......@@ -665,8 +665,8 @@ msgstr "Nejste na seznamu?"
msgid "(e.g., user or %s)"
msgstr "(např. uživatel nebo %s)"
#: js/gdm/loginDialog.js:1015 js/ui/components/networkAgent.js:258
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:327
#: js/gdm/loginDialog.js:1015 js/ui/components/networkAgent.js:259
#: js/ui/components/networkAgent.js:294 js/ui/components/networkAgent.js:328
msgid "Username"
msgstr "Uživatelské jméno"
......@@ -682,19 +682,19 @@ msgstr "Přihlašování trvalo příliš dlouho, zkuste to prosím znovu"
msgid "Login Window"
msgstr "Přihlašovací okno"
#: js/gdm/util.js:497
#: js/gdm/util.js:498
msgid "Authentication error"
msgstr "Chyba ověření"
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger on the fingerprint reader
#: js/gdm/util.js:728
#: js/gdm/util.js:729
msgid "(or swipe finger across reader)"
msgstr "(nebo přejeďte prstem přes čtečku)"
#. Translators: this message is shown below the password entry field
#. to indicate the user can place their finger on the fingerprint reader instead
#: js/gdm/util.js:733
#: js/gdm/util.js:734
msgid "(or place finger on reader)"
msgstr "(nebo přiložte prst na čtečku)"
......@@ -805,17 +805,17 @@ msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Zamknout otočení obrazovky"
#: js/misc/util.js:139
#: js/misc/util.js:132
msgid "Command not found"
msgstr "Příkaz nenalezen"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
#: js/misc/util.js:179
#: js/misc/util.js:172
msgid "Could not parse command:"
msgstr "Nelze analyzovat příkaz:"
#: js/misc/util.js:187
#: js/misc/util.js:180
#, javascript-format
msgid "Execution of “%s” failed:"
msgstr "Vykonání „%s“ selhalo:"
......@@ -1193,11 +1193,11 @@ msgstr "Externí svazek připojen"
msgid "External drive disconnected"
msgstr "Externí svazek odpojen"
#: js/ui/components/automountManager.js:207
#: js/ui/components/automountManager.js:210
msgid "Unable to unlock volume"
msgstr "Nelze uzamknout svazek"
#: js/ui/components/automountManager.js:208
#: js/ui/components/automountManager.js:211
msgid "The installed udisks version does not support the PIM setting"
msgstr "Nainstalovaná verze udisks nepodporuje nastavení PIM"
......@@ -1206,38 +1206,38 @@ msgstr "Nainstalovaná verze udisks nepodporuje nastavení PIM"
msgid "Open with %s"
msgstr "Otevřít pomocí %s"
#: js/ui/components/networkAgent.js:96
#: js/ui/components/networkAgent.js:97
msgid ""
"Alternatively you can connect by pushing the “WPS” button on your router."
msgstr "Případně se můžete připojit zmáčknutím tlačítka „WPS“ na směrovači."
#: js/ui/components/networkAgent.js:108 js/ui/status/bluetooth.js:246
#: js/ui/components/networkAgent.js:109 js/ui/status/bluetooth.js:246
#: js/ui/status/network.js:360 js/ui/status/network.js:444
msgid "Connect"
msgstr "Připojit"
#: js/ui/components/networkAgent.js:223
#: js/ui/components/networkAgent.js:224
msgid "Key"
msgstr "Klíč"
#: js/ui/components/networkAgent.js:274 js/ui/components/networkAgent.js:313
#: js/ui/components/networkAgent.js:275 js/ui/components/networkAgent.js:314
msgid "Private key password"
msgstr "Heslo soukromého klíče"
#: js/ui/components/networkAgent.js:307
#: js/ui/components/networkAgent.js:308
msgid "Identity"
msgstr "Identita"
#: js/ui/components/networkAgent.js:333
#: js/ui/components/networkAgent.js:334
msgid "Service"
msgstr "Služba"
#: js/ui/components/networkAgent.js:371 js/ui/components/networkAgent.js:407
#: js/ui/components/networkAgent.js:750 js/ui/components/networkAgent.js:771
#: js/ui/components/networkAgent.js:372 js/ui/components/networkAgent.js:408
#: js/ui/components/networkAgent.js:745 js/ui/components/networkAgent.js:766
msgid "Authentication required"
msgstr "Vyžaduje ověření"
#: js/ui/components/networkAgent.js:372 js/ui/components/networkAgent.js:751
#: js/ui/components/networkAgent.js:373 js/ui/components/networkAgent.js:746
#, javascript-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
......@@ -1246,38 +1246,38 @@ msgstr ""
"Pro přístup k bezdrátové síti „%s“ jsou vyžadována hesla nebo šifrovací "
"klíče."
#: js/ui/components/networkAgent.js:376 js/ui/components/networkAgent.js:755
#: js/ui/components/networkAgent.js:377 js/ui/components/networkAgent.js:750
msgid "Wired 802.1X authentication"
msgstr "Ověření připojení po drátu 802.1X"
#: js/ui/components/networkAgent.js:379
#: js/ui/components/networkAgent.js:380
msgid "Network name"
msgstr "Název sítě"
#: js/ui/components/networkAgent.js:387 js/ui/components/networkAgent.js:759
#: js/ui/components/networkAgent.js:388 js/ui/components/networkAgent.js:754
msgid "DSL authentication"
msgstr "Ověření DSL"
#: js/ui/components/networkAgent.js:394 js/ui/components/networkAgent.js:764
#: js/ui/components/networkAgent.js:395 js/ui/components/networkAgent.js:759
msgid "PIN code required"
msgstr "Požadován kód PIN"
#: js/ui/components/networkAgent.js:395 js/ui/components/networkAgent.js:765
#: js/ui/components/networkAgent.js:396 js/ui/components/networkAgent.js:760
msgid "PIN code is needed for the mobile broadband device"
msgstr "Pro mobilní širokopásmové zařízení je vyžadován kód PIN"
#: js/ui/components/networkAgent.js:397
#: js/ui/components/networkAgent.js:398
msgid "PIN"
msgstr "PIN"
#: js/ui/components/networkAgent.js:408 js/ui/components/networkAgent.js:756
#: js/ui/components/networkAgent.js:760 js/ui/components/networkAgent.js:772
#: js/ui/components/networkAgent.js:776
#: js/ui/components/networkAgent.js:409 js/ui/components/networkAgent.js:751
#: js/ui/components/networkAgent.js:755 js/ui/components/networkAgent.js:767
#: js/ui/components/networkAgent.js:771
#, javascript-format
msgid "A password is required to connect to “%s”."
msgstr "Pro připojení k „%s“ je vyžadováno heslo."
#: js/ui/components/networkAgent.js:775
#: js/ui/components/networkAgent.js:770
msgid "VPN password"
msgstr "Heslo k VPN"
......@@ -2539,23 +2539,23 @@ msgstr "Jen vestavěné"
# Not sure whether we've enough space for it, but anyway, looks more aesthetically with "%A".
#. Translators: This is a time format for a date in
#. long format
#: js/ui/unlockDialog.js:374
#: js/ui/unlockDialog.js:380
msgid "%A %B %-d"
msgstr "%A, %-e. %B"
#: js/ui/unlockDialog.js:380
#: js/ui/unlockDialog.js:386
msgid "Swipe up to unlock"
msgstr "Pro odemčení přejeďte prstem nahoru"
#: js/ui/unlockDialog.js:381
#: js/ui/unlockDialog.js:387
msgid "Click or press a key to unlock"
msgstr "Pro odemčení klikněte nebo stiskněte klávesu"
#: js/ui/unlockDialog.js:564
#: js/ui/unlockDialog.js:570
msgid "Unlock Window"
msgstr "Odemykací okno"
#: js/ui/unlockDialog.js:573
#: js/ui/unlockDialog.js:579
msgid "Log in as another user"
msgstr "Přihlásit se jako jiný uživatel"
......@@ -2702,12 +2702,12 @@ msgstr "Vypsat možné režimy"
msgid "Force animations to be enabled"
msgstr "Vynutit povolení animací"
#: src/shell-app.c:253
#: src/shell-app.c:252
msgctxt "program"
msgid "Unknown"
msgstr "Neznámé"
#: src/shell-app.c:504
#: src/shell-app.c:503
#, c-format
msgid "Failed to launch “%s”"
msgstr "Nelze spustit „%s“"
......@@ -2750,15 +2750,15 @@ msgstr ""
"Aplikace Rozšíření GNOME umožňuje aktualizaci a nastavení předvoleb "
"rozšíření a odstranění nebo vypnutí nechtěných rozšíření."
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:70
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:79
msgid "Main Window"
msgstr "Hlavní okno"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:74
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:83
msgid "Available Updates"
msgstr "Dostupné aktualizace"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:78
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:87
msgid "Search View"
msgstr "Zobrazení vyhledávání"
......@@ -2836,34 +2836,34 @@ msgstr[0] "Při příštím přihlášení bude aktualizováno %d rozšíření.
msgstr[1] "Při příštím přihlášení budou aktualizována %d rozšíření."
msgstr[2] "Při příštím přihlášení bude aktualizováno %d rozšíření."
#: subprojects/extensions-app/data/ui/extension-row.ui:21
#: subprojects/extensions-app/data/ui/extension-row.ui:22
msgid "Error Details"
msgstr "Podrobnosti o chybě"
#: subprojects/extensions-app/data/ui/extension-row.ui:61
#: subprojects/extensions-app/data/ui/extension-row.ui:62
msgid "Updates Details"
msgstr "Podrobnosti o aktualizacích"
#: subprojects/extensions-app/data/ui/extension-row.ui:71
#: subprojects/extensions-app/data/ui/extension-row.ui:72
msgid ""
"A new version of this extension is ready and will be loaded on next login."
msgstr ""
"Nová verze tohoto rozšíření je připravena a bude načtena při příštím "
"přihlášení."
#: subprojects/extensions-app/data/ui/extension-row.ui:107
#: subprojects/extensions-app/data/ui/extension-row.ui:104
msgid "Extension Details"
msgstr "Podrobnosti o rozšíření"
#: subprojects/extensions-app/data/ui/extension-row.ui:193
#: subprojects/extensions-app/data/ui/extension-row.ui:192
msgid "_Website"
msgstr "_Webové stránky"
#: subprojects/extensions-app/data/ui/extension-row.ui:220
#: subprojects/extensions-app/data/ui/extension-row.ui:219
msgid "_Settings"
msgstr "Na_stavení"
#: subprojects/extensions-app/data/ui/extension-row.ui:247
#: subprojects/extensions-app/data/ui/extension-row.ui:246
msgid "_Remove…"
msgstr "Odeb_rat…"
......@@ -2881,17 +2881,17 @@ msgstr "Hlavní nabídka"
#: subprojects/extensions-app/data/ui/extensions-window.ui:106
msgid "Search extensions"
msgstr "Hledat rozšíření"
msgstr "hledat rozšíření"
#: subprojects/extensions-app/data/ui/extensions-window.ui:134
msgid "_Extensions"
msgstr "_Rozšíření"
#: subprojects/extensions-app/data/ui/extensions-window.ui:143
#: subprojects/extensions-app/data/ui/extensions-window.ui:139
msgid "More Information"
msgstr "Další informace"
#: subprojects/extensions-app/data/ui/extensions-window.ui:153
#: subprojects/extensions-app/data/ui/extensions-window.ui:151
msgid ""
"Extensions can cause performance and stability issues. It is recommended to "
"disable all extensions if you experience problems with your system."
......@@ -2900,31 +2900,31 @@ msgstr ""
"systému narazíte na podobné problémy, je doporučeno zakázat všechna "
"rozšíření."
#: subprojects/extensions-app/data/ui/extensions-window.ui:180
#: subprojects/extensions-app/data/ui/extensions-window.ui:178
msgid "User Extensions"
msgstr "Uživatelská rozšíření"
#: subprojects/extensions-app/data/ui/extensions-window.ui:200
#: subprojects/extensions-app/data/ui/extensions-window.ui:198
msgid "System Extensions"
msgstr "Systémová rozšíření"
#: subprojects/extensions-app/data/ui/extensions-window.ui:235
#: subprojects/extensions-app/data/ui/extensions-window.ui:233
msgid "Search Results"
msgstr "Výsledky vyhledávání"
#: subprojects/extensions-app/data/ui/extensions-window.ui:254
#: subprojects/extensions-app/data/ui/extensions-window.ui:252
msgid "No Results Found"
msgstr "Nebyly nalezeny žádné výsledky"
#: subprojects/extensions-app/data/ui/extensions-window.ui:255
#: subprojects/extensions-app/data/ui/extensions-window.ui:253
msgid "Try a different search."
msgstr "Zkuste jiné hledání."
#: subprojects/extensions-app/data/ui/extensions-window.ui:266
#: subprojects/extensions-app/data/ui/extensions-window.ui:264
msgid "No Installed Extensions"
msgstr "Není nainstalované žádné rozšíření"
#: subprojects/extensions-app/data/ui/extensions-window.ui:267
#: subprojects/extensions-app/data/ui/extensions-window.ui:265
msgid ""
"To find and add extensions, visit <a href=\"https://extensions.gnome."
"org\">extensions.gnome.org</a>."
......@@ -2932,7 +2932,7 @@ msgstr ""
"Jestli chcete vyhledat a nainstalovat rozšíření, navštivte stránku <a "
"href=\"https://extensions.gnome.org\">extensions.gnome.org</a>."
#: subprojects/extensions-app/data/ui/extensions-window.ui:278
#: subprojects/extensions-app/data/ui/extensions-window.ui:276
msgid ""
"We’re very sorry, but it was not possible to get the list of installed "
"extensions. Make sure you are logged into GNOME and try again."
......