From af2120c0e94ada1bb7e9eea44283d19323ce2f27 Mon Sep 17 00:00:00 2001 From: Anton Hvornum Date: Sat, 23 May 2026 13:49:54 +0200 Subject: [PATCH 01/17] mkosi for test image builds (#4539) Added a `mkosi` profile as well as organized test tooling a bit. --------- Co-authored-by: 0xdeadd --- .github/workflows/iso-build.yaml | 2 +- .github/workflows/uki-build.yaml | 40 ++ .gitignore | 4 + pyproject.toml | 5 +- .../mkarchiso/build_iso.sh | 0 test_tooling/mkosi/README.md | 12 + test_tooling/mkosi/mkosi.cache/.gitkeep | 0 test_tooling/mkosi/mkosi.conf | 50 ++ .../etc/systemd/network/20-ethernet.network | 24 + .../getty@tty1.service.d/autologin.conf | 3 + test_tooling/mkosi/mkosi.extra/root/.profile | 5 + .../system-preset/5-archinstall.preset | 1 + test_tooling/mkosi/mkosi.output/.gitkeep | 0 test_tooling/mkosi/mkosi.postinst.chroot | 10 + test_tooling/mkosi/mkosi.profiles/archinstall | 56 ++ test_tooling/mkosi/mkosi.version | 1 + test_tooling/qemu/README.md | 18 + test_tooling/qemu/qemu.py | 483 ++++++++++++++++++ 18 files changed, 712 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/uki-build.yaml rename build_iso.sh => test_tooling/mkarchiso/build_iso.sh (100%) create mode 100644 test_tooling/mkosi/README.md create mode 100644 test_tooling/mkosi/mkosi.cache/.gitkeep create mode 100644 test_tooling/mkosi/mkosi.conf create mode 100644 test_tooling/mkosi/mkosi.extra/etc/systemd/network/20-ethernet.network create mode 100644 test_tooling/mkosi/mkosi.extra/etc/systemd/system/getty@tty1.service.d/autologin.conf create mode 100644 test_tooling/mkosi/mkosi.extra/root/.profile create mode 100644 test_tooling/mkosi/mkosi.extra/usr/lib/systemd/system-preset/5-archinstall.preset create mode 100644 test_tooling/mkosi/mkosi.output/.gitkeep create mode 100755 test_tooling/mkosi/mkosi.postinst.chroot create mode 100644 test_tooling/mkosi/mkosi.profiles/archinstall create mode 100644 test_tooling/mkosi/mkosi.version create mode 100644 test_tooling/qemu/README.md create mode 100644 test_tooling/qemu/qemu.py diff --git a/.github/workflows/iso-build.yaml b/.github/workflows/iso-build.yaml index dfaed9b8..83d58fd6 100644 --- a/.github/workflows/iso-build.yaml +++ b/.github/workflows/iso-build.yaml @@ -32,7 +32,7 @@ jobs: - run: cat /etc/os-release - run: pacman-key --init - run: pacman --noconfirm -Sy archlinux-keyring - - run: ./build_iso.sh + - run: ./test_tooling/mkarchiso/build_iso.sh - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 with: name: Arch Live ISO diff --git a/.github/workflows/uki-build.yaml b/.github/workflows/uki-build.yaml new file mode 100644 index 00000000..df41bc55 --- /dev/null +++ b/.github/workflows/uki-build.yaml @@ -0,0 +1,40 @@ +# This workflow will build an Arch Linux UKI file with the commit on it + +name: Build Arch UKI with ArchInstall Commit + +on: + push: + branches: + - master + - main # In case we adopt this convention in the future + pull_request: + paths-ignore: + - 'docs/**' + - '**.editorconfig' + - '**.gitignore' + - '**.md' + - 'LICENSE' + - 'PKGBUILD' + release: + types: + - created + +jobs: + build: + runs-on: ubuntu-latest + container: + image: archlinux/archlinux:latest + options: --privileged + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - run: pwd + - run: find . + - run: cat /etc/os-release + - run: pacman-key --init + - run: pacman --noconfirm -Sy archlinux-keyring + - run: pacman --noconfirm -Sy mkosi + - run: (cd test_tooling/mkosi/ && mkosi build -B) + - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 + with: + name: Arch Live UKI + path: test_tooling/mkosi/mkosi.output/*.efi diff --git a/.gitignore b/.gitignore index 376bdbd5..54c865e0 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,7 @@ requirements.txt /cmd_output.txt node_modules/ uv.lock +test_tooling/mkosi/mkosi.output/*image* +test_tooling/mkosi/mkosi.cache/** +test_tooling/mkosi/mkosi.tools/** +test_tooling/mkosi/mkosi.tools.manifest diff --git a/pyproject.toml b/pyproject.toml index b7545121..8d0c5a64 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -69,7 +69,10 @@ archinstall = "archinstall" [tool.mypy] python_version = "3.14" files = "." -exclude = "^build/" +exclude = [ + "^build/", + "^test_tooling/", +] disallow_any_explicit = false disallow_any_expr = false disallow_any_unimported = true diff --git a/build_iso.sh b/test_tooling/mkarchiso/build_iso.sh similarity index 100% rename from build_iso.sh rename to test_tooling/mkarchiso/build_iso.sh diff --git a/test_tooling/mkosi/README.md b/test_tooling/mkosi/README.md new file mode 100644 index 00000000..d26d0d9f --- /dev/null +++ b/test_tooling/mkosi/README.md @@ -0,0 +1,12 @@ +# To build + + mkosi build -B + +# To run + + mkosi qemu \ + --drive=archinstall_small:25G \ + -- \ + -device nvme,serial=archinstall_small,drive=archinstall_small + +*note: in order to boot the installation, we need to disable UKI being added to -kernel. I don't know of a way to do this yet, unless we tinker with mkosi/qemu.py - https://github.com/Torxed/mkosi/commit/6f3c20802bd73f88b672cc96ef0db1e542084316 - in which case we could do: `mkosi qemu --drive=archinstall_small:25G -- -device nvme,serial=archinstall_small,drive=archinstall_small,bootindex=0 -kernel none` but it still won't boot properly.* \ No newline at end of file diff --git a/test_tooling/mkosi/mkosi.cache/.gitkeep b/test_tooling/mkosi/mkosi.cache/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/test_tooling/mkosi/mkosi.conf b/test_tooling/mkosi/mkosi.conf new file mode 100644 index 00000000..fdc36613 --- /dev/null +++ b/test_tooling/mkosi/mkosi.conf @@ -0,0 +1,50 @@ +[Distribution] +Distribution=arch +# LocalMirror=file:///var/lib/localmirror + +[Output] +Format=uki +# Format=disk + +[Include] +Include=mkosi-vm + +[Validation] +SecureBoot=false +SecureBootAutoEnroll=false +Sign=false +# Signing artifacts (hashsums etc) using a GPG key: +# Key=D4B58E897A929F2E +# Signing secure boot using PIV on yubikey: +# SecureBoot=true +# SecureBootKey=pkcs11: +# SecureBootCertificate=secureboot.crt + +[Content] +Packages= + pacman + archlinux-keyring + amd-ucode + intel-ucode +# tpm2-tss +# libfido2 +# libp11-kit +WithDocs=false +RootPassword=toor +Timezone=Europe/Stockholm +Keymap=sv-latin1 +InitrdProfiles=network + +[Config] +Profiles=archinstall + +[Build] +Incremental=true +ToolsTree=default +ToolsTreeProfiles=devel,misc,package-manager,runtime,gui +WithNetwork=yes + +[Runtime] +Console=gui +CPUs=4 +RAM=8G diff --git a/test_tooling/mkosi/mkosi.extra/etc/systemd/network/20-ethernet.network b/test_tooling/mkosi/mkosi.extra/etc/systemd/network/20-ethernet.network new file mode 100644 index 00000000..478a55da --- /dev/null +++ b/test_tooling/mkosi/mkosi.extra/etc/systemd/network/20-ethernet.network @@ -0,0 +1,24 @@ +[Match] +# Matching with "Type=ether" causes issues with containers because it also matches virtual Ethernet interfaces (veth*). +# See https://bugs.archlinux.org/task/70892 +# Instead match by globbing the network interface name. +Name=en* +Name=eth* + +[Link] +RequiredForOnline=routable + +[Network] +DHCP=yes +MulticastDNS=yes + +# systemd-networkd does not set per-interface-type default route metrics +# https://github.com/systemd/systemd/issues/17698 +# Explicitly set route metric, so that Ethernet is preferred over Wi-Fi and Wi-Fi is preferred over mobile broadband. +# Use values from NetworkManager. From nm_device_get_route_metric_default in +# https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/main/src/core/devices/nm-device.c +[DHCPv4] +RouteMetric=100 + +[IPv6AcceptRA] +RouteMetric=100 \ No newline at end of file diff --git a/test_tooling/mkosi/mkosi.extra/etc/systemd/system/getty@tty1.service.d/autologin.conf b/test_tooling/mkosi/mkosi.extra/etc/systemd/system/getty@tty1.service.d/autologin.conf new file mode 100644 index 00000000..161d4952 --- /dev/null +++ b/test_tooling/mkosi/mkosi.extra/etc/systemd/system/getty@tty1.service.d/autologin.conf @@ -0,0 +1,3 @@ +[Service] +ExecStart= +ExecStart=-/usr/bin/agetty --noreset --noclear --autologin root - ${TERM} \ No newline at end of file diff --git a/test_tooling/mkosi/mkosi.extra/root/.profile b/test_tooling/mkosi/mkosi.extra/root/.profile new file mode 100644 index 00000000..c8d1791b --- /dev/null +++ b/test_tooling/mkosi/mkosi.extra/root/.profile @@ -0,0 +1,5 @@ +cd archinstall-git +rm -rf dist + +uv build --no-build-isolation --wheel +uv pip install dist/*.whl --break-system-packages --system --no-build --no-deps \ No newline at end of file diff --git a/test_tooling/mkosi/mkosi.extra/usr/lib/systemd/system-preset/5-archinstall.preset b/test_tooling/mkosi/mkosi.extra/usr/lib/systemd/system-preset/5-archinstall.preset new file mode 100644 index 00000000..8423c627 --- /dev/null +++ b/test_tooling/mkosi/mkosi.extra/usr/lib/systemd/system-preset/5-archinstall.preset @@ -0,0 +1 @@ +enable systemd-networkd.service \ No newline at end of file diff --git a/test_tooling/mkosi/mkosi.output/.gitkeep b/test_tooling/mkosi/mkosi.output/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/test_tooling/mkosi/mkosi.postinst.chroot b/test_tooling/mkosi/mkosi.postinst.chroot new file mode 100755 index 00000000..096857e8 --- /dev/null +++ b/test_tooling/mkosi/mkosi.postinst.chroot @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +git clone https://github.com/archlinux/archinstall.git /root/archinstall-git +(cd /root/archinstall-git && git checkout master) + +# TODO: Set geo-mirrors statically instead +curl -s "https://archlinux.org/mirrorlist/?country=SE&protocol=https&use_mirror_status=on" | sed -e 's/^#Server/Server/' -e '/^#/d' | rankmirrors -n 5 - > /etc/pacman.d/mirrorlist + +pacman-key --init +pacman-key --populate archlinux \ No newline at end of file diff --git a/test_tooling/mkosi/mkosi.profiles/archinstall b/test_tooling/mkosi/mkosi.profiles/archinstall new file mode 100644 index 00000000..75628b61 --- /dev/null +++ b/test_tooling/mkosi/mkosi.profiles/archinstall @@ -0,0 +1,56 @@ +[Content] +Packages= + acpid + intel-media-driver + linux-firmware + linux-firmware-intel + ca-certificates-mozilla + ca-certificates-utils + nano + gvfs + noto-fonts + cantarell-fonts + ttf-dejavu + polkit + bash + bzip2 + coreutils + file + filesystem + findutils + gawk + gcc-libs + gettext + glibc + grep + gzip + iproute2 + iputils + licenses + pciutils + procps-ng + psmisc + sed + tar + linux + diffutils + less + strace + util-linux + xz + pacman-contrib + gcc + git + pkgconfig + python + python-pip + python-uv + python-setuptools + python-pyparted + python-pydantic + python-textual + dosfstools + btrfs-progs + arch-install-scripts +WithDocs=false +KernelCommandLine=quiet splash \ No newline at end of file diff --git a/test_tooling/mkosi/mkosi.version b/test_tooling/mkosi/mkosi.version new file mode 100644 index 00000000..ca7bf83a --- /dev/null +++ b/test_tooling/mkosi/mkosi.version @@ -0,0 +1 @@ +13 \ No newline at end of file diff --git a/test_tooling/qemu/README.md b/test_tooling/qemu/README.md new file mode 100644 index 00000000..e36ccfa1 --- /dev/null +++ b/test_tooling/qemu/README.md @@ -0,0 +1,18 @@ +# Qemu helper + +Can be used with the `mkosi` test tooling + +After `mkosi -B build` has been executed, run the following: + + python test_tooling/qemu/qemu.py \ + --uki ./test_tooling/mkosi/mkosi.output/image_13.efi \ + --harddrive ~/test.qcow2:15G \ + --harddrive ~/test_large.qcow2:25G + +And install using `archinstall`, after the machine has been shutdown, run: + + python test_tooling/qemu/qemu.py \ + --harddrive ~/test.qcow2:15G \ + --harddrive ~/test_large.qcow2:25G + +As this will boot EFI mode with just the harddrives to verify the installation. \ No newline at end of file diff --git a/test_tooling/qemu/qemu.py b/test_tooling/qemu/qemu.py new file mode 100644 index 00000000..c8307771 --- /dev/null +++ b/test_tooling/qemu/qemu.py @@ -0,0 +1,483 @@ +import getpass +import grp +import hashlib +import os +import pathlib +import re +import shlex +import shutil +import subprocess +import sys +import time +from argparse import ArgumentParser +from collections.abc import Iterator +from select import EPOLLHUP, EPOLLIN, epoll +from shutil import which +from types import TracebackType +from typing import Any, Self, override + + +class RequirementError(Exception): + pass + + +class ArgumentError(Exception): + pass + + +def get_master(interface): + master_path = pathlib.Path(f'/sys/class/net/{interface}/master') + return master_path.readlink().name if master_path.exists() else None + + +def gray(text): + return f'\033[38;5;246m{text}\033[0m' + + +def orange(text): + return f'\033[38;5;208m{text}\033[0m' + + +def red(text): + return f'\033[31m{text}\033[0m' + + +sudo_password = None # Gets populated later +harddrives = {} +username = getpass.getuser() +groupname = grp.getgrgid(os.getgid()).gr_name + +# https://stackoverflow.com/a/43627833/929999 +_VT100_ESCAPE_REGEX = r'\x1B\[[?0-9;]*[a-zA-Z]' +_VT100_ESCAPE_REGEX_BYTES = _VT100_ESCAPE_REGEX.encode() + +parser = ArgumentParser(description='A set of common parameters for the tooling', add_help=True) + +# Defaults to the order of which the harddrives are defined. +boot_option = parser.add_mutually_exclusive_group() +boot_option.add_argument('--uki', help='Boot a UKI (EFI) image') +boot_option.add_argument('--kernel', help='Boot a Linux kernel') +boot_option.add_argument('--iso', help='Boot a ISO 9660') + +networking = parser.add_argument_group('Networking', "Disables the default '-net nic -net user' network behavior of Qemu.") +networking.add_argument('--tap', nargs='?', help='Configures a TAP interface and passes it in as a virtio-net-pci.', default=None, type=str) +networking.add_argument('--tap-mac', nargs='?', help='MAC for the --tap interface', default='52:54:00:00:00:02') +networking.add_argument('--bridge', nargs='?', help='Configures a bridge, to which the --tap is added.', default=None, type=str) +networking.add_argument('--bridge-mac', nargs='?', help='MAC for the interface', default=None) +networking.add_argument('--bridge-master', nargs='?', help="Which interface to set as 'master' on the bridge.", default=None, type=str) + +hardware = parser.add_argument_group('Hardware', 'General hardware specs for the virtual machine') +# To override the use of EFI boot (will not work with --uki for obvious reasons) +hardware.add_argument('--bios', action='store_true', help='Disables EFI (edk2/ovmf) and uses BIOS support instead', default=False) +hardware.add_argument('--memory', nargs='?', help='Ammount of memory to supply the machine', default=8192) +hardware.add_argument('--harddrive', action='append', help='Sets up one or more virtio-scsi-pci, size is defined by --harddrive test.qcow2:15G', type=str) +hardware.add_argument('--cpu', help='Sets the number of cores to allocate (default nproc -1)', type=str, default=os.cpu_count() - 1 if os.cpu_count() else 1) +hardware.add_argument('--resolution', help="Sets Qemu's VGA resolution", type=str, default='1920x1107') + +kernel = parser.add_argument_group('Kernel', '--kernel specific arguments') +kernel.add_argument('--initrd', nargs='?', help='Defines which ISO to run (skips build all together)', default=None, type=pathlib.Path) + +args, unknowns = parser.parse_known_args() # pylint: disable=redefined-outer-name + +if args.bios and args.uki: + raise ArgumentError('Cannot boot a --uki image with --bios mode (at least not that I know of).') + +if args.uki is None and args.kernel is None and args.iso is None and args.harddrive is None: + raise ArgumentError('Cannot boot this machine, define at least one of: --uki, --kernel, --iso, --harddrive') + +if args.bridge is None and args.bridge_master: + raise ArgumentError('Cannot use --bridge-master without defining --bridge') + +if args.bridge is None and args.bridge_mac: + raise ArgumentError('Cannot use --bridge-mac without defining --bridge') +elif args.bridge and args.bridge_mac is None: + args.bridge_mac = '52:54:00:00:00:1' + +if args.tap and not args.bridge and get_master(args.tap) is None: + # We'll allow it, because maybe we're tesing what happens without networking, but the NIC exists. + # Or the user has some creative iptables/nftables forwarding. + print(orange('--tap does not have a master, consider adding --bridge or manual set a master using ip-link(8).')) + +if args.tap is None and args.bridge: + print(orange("--bridge* arguments will be ignored since there's no --tap defined")) +elif args.tap and args.tap_mac is None: + args.tap_mac = '52:54:00:00:00:2' + + +class SysCallError(Exception): + def __init__(self, message: str, exit_code: int | None = None, worker_log: bytes = b'') -> None: + super().__init__(message) + self.message = message + self.exit_code = exit_code + self.worker_log = worker_log + + +def clear_vt100_escape_codes(data: bytes) -> bytes: + return re.sub(_VT100_ESCAPE_REGEX_BYTES, b'', data) + + +def locate_binary(name: str) -> str: + if path := which(name): + return path + raise RequirementError(f'Binary {name} does not exist.') + + +def _pid_exists(pid: int) -> bool: + try: + return any(subprocess.check_output(['ps', '--no-headers', '-o', 'pid', '-p', str(pid)]).strip()) + except subprocess.CalledProcessError: + return False + + +class SysCommandWorker: + def __init__( + self, + cmd: str | list[str], + peek_output: bool | None = False, + environment_vars: dict[str, str] | None = None, + working_directory: str = './', + remove_vt100_escape_codes_from_lines: bool = True, + ): + if isinstance(cmd, str): + cmd = shlex.split(cmd) + + if cmd and not cmd[0].startswith(('/', './')): # Path() does not work well + cmd[0] = locate_binary(cmd[0]) + + self.cmd = cmd + self.peek_output = peek_output + # define the standard locale for command outputs. For now the C ascii one. Can be overridden + self.environment_vars = {'LC_ALL': 'C'} + if environment_vars: + self.environment_vars.update(environment_vars) + + self.working_directory = working_directory + + self.exit_code: int | None = None + self._trace_log = b'' + self._trace_log_pos = 0 + self.poll_object = epoll() + self.child_fd: int | None = None + self.started = False + self.ended = False + self.remove_vt100_escape_codes_from_lines: bool = remove_vt100_escape_codes_from_lines + + def __contains__(self, key: bytes) -> bool: + """ + Contains will also move the current buffert position forward. + This is to avoid re-checking the same data when looking for output. + """ + assert isinstance(key, bytes) + + index = self._trace_log.find(key, self._trace_log_pos) + if index >= 0: + self._trace_log_pos += index + len(key) + return True + + return False + + def __iter__(self, *args: str, **kwargs: dict[str, Any]) -> Iterator[bytes]: # pylint: disable=redefined-outer-name + last_line = self._trace_log.rfind(b'\n') + lines = filter(None, self._trace_log[self._trace_log_pos : last_line].splitlines()) + for line in lines: + if self.remove_vt100_escape_codes_from_lines: + line = clear_vt100_escape_codes(line) + + yield line + b'\n' + + self._trace_log_pos = last_line + + @override + def __repr__(self) -> str: + self.make_sure_we_are_executing() + return str(self._trace_log) + + @override + def __str__(self) -> str: + try: + return self._trace_log.decode('utf-8') + except UnicodeDecodeError: + return str(self._trace_log) + + def __enter__(self) -> Self: + return self + + def __exit__(self, exc_type: type[BaseException] | None, exc_value: BaseException | None, traceback: TracebackType | None) -> None: + # b''.join(sys_command('sync')) # No need to, since the underlying fs() object will call sync. + # TODO: https://stackoverflow.com/questions/28157929/how-to-safely-handle-an-exception-inside-a-context-manager + + if self.child_fd: + try: + os.close(self.child_fd) + except Exception: + pass + + if self.peek_output: + # To make sure any peaked output didn't leave us hanging + # on the same line we were on. + sys.stdout.write('\n') + sys.stdout.flush() + + if exc_type is not None: + print(gray(str(exc_value))) + + if self.exit_code != 0: + raise SysCallError( + f'{self.cmd} exited with abnormal exit code [{self.exit_code}]: {str(self)[-500:]}', + self.exit_code, + worker_log=self._trace_log, + ) + + def is_alive(self) -> bool: + self.poll() + + if self.started and not self.ended: + return True + + return False + + def write(self, data: bytes, line_ending: bool = True) -> int: + assert isinstance(data, bytes) # TODO: Maybe we can support str as well and encode it + + self.make_sure_we_are_executing() + + if self.child_fd: + return os.write(self.child_fd, data + (b'\n' if line_ending else b'')) + + return 0 + + def make_sure_we_are_executing(self) -> bool: + if not self.started: + return self.execute() + return True + + def tell(self) -> int: + self.make_sure_we_are_executing() + return self._trace_log_pos + + def seek(self, pos: int) -> None: + self.make_sure_we_are_executing() + # Safety check to ensure 0 < pos < len(tracelog) + self._trace_log_pos = min(max(0, pos), len(self._trace_log)) + + def peak(self, output: str | bytes) -> bool: + if self.peek_output: + if isinstance(output, bytes): + try: + output = output.decode('UTF-8') + except UnicodeDecodeError: + return False + + sys.stdout.write(output) + sys.stdout.flush() + + return True + + def poll(self) -> None: + self.make_sure_we_are_executing() + + if self.child_fd: + got_output = False + for _fileno, _event in self.poll_object.poll(0.1): + try: + output = os.read(self.child_fd, 8192) + got_output = True + self.peak(output) + self._trace_log += output + except OSError: + self.ended = True + break + + if self.ended or (not got_output and not _pid_exists(self.pid)): + self.ended = True + try: + wait_status = os.waitpid(self.pid, 0)[1] + self.exit_code = os.waitstatus_to_exitcode(wait_status) + except ChildProcessError: + try: + wait_status = os.waitpid(self.child_fd, 0)[1] + self.exit_code = os.waitstatus_to_exitcode(wait_status) + except ChildProcessError: + self.exit_code = 1 + + def execute(self) -> bool: + import pty + + if (old_dir := os.getcwd()) != self.working_directory: + os.chdir(str(self.working_directory)) + + # Note: If for any reason, we get a Python exception between here + # and until os.close(), the traceback will get locked inside + # stdout of the child_fd object. `os.read(self.child_fd, 8192)` is the + # only way to get the traceback without losing it. + + self.pid, self.child_fd = pty.fork() + + # https://stackoverflow.com/questions/4022600/python-pty-fork-how-does-it-work + if not self.pid: + try: + os.execve(self.cmd[0], list(self.cmd), {**os.environ, **self.environment_vars}) + except FileNotFoundError: + print(red(f'{self.cmd[0]} does not exist.')) + self.exit_code = 1 + return False + else: + # Only parent process moves back to the original working directory + os.chdir(old_dir) + + self.started = True + self.poll_object.register(self.child_fd, EPOLLIN | EPOLLHUP) + + return True + + def decode(self, encoding: str = 'UTF-8') -> str: + return self._trace_log.decode(encoding) + + +def ensure_sudo(): + global sudo_password # pylint: disable=global-statement + + if sudo_password is None: + if (sudo_password := getpass.getpass(f'[sudo] password for {username}: ')) == '': + raise ValueError('Certain commands need sudo to work and no sudo password was given.') + + +def setup_networking(): + if args.tap: + if pathlib.Path(f'/sys/class/net/{args.tap}').exists() is False: + print(gray(f'Creating {args.tap} for user {username} and group {groupname}')) + handle, pw_prompted = SysCommandWorker(f'sudo ip tuntap add dev {args.tap} mode tap user {username} group {groupname}'), False + while handle.is_alive(): + if b'password for' in handle and pw_prompted is False: + ensure_sudo() + handle.write(bytes(sudo_password, 'UTF-8')) + pw_prompted = True + + if args.bridge: + if pathlib.Path(f'/sys/class/net/{args.bridge}').exists() is False: + print(gray(f'Creating {args.bridge}')) + handle, pw_prompted = SysCommandWorker(f'sudo ip link add name {args.bridge} type bridge'), False + while handle.is_alive(): + if b'password for' in handle and pw_prompted is False: + ensure_sudo() + handle.write(bytes(sudo_password, 'UTF-8')) + pw_prompted = True + + if args.bridge_mac: + handle, pw_prompted = SysCommandWorker(f'sudo ip link set dev {args.bridge} address {args.bridge_mac}'), False + print(gray(f'Setting bridge {args.bridge} MAC address to {args.bridge_mac}')) + while handle.is_alive(): + if b'password for' in handle and pw_prompted is False: + ensure_sudo() + handle.write(bytes(sudo_password, 'UTF-8')) + pw_prompted = True + + if args.bridge_master and get_master(args.bridge) != args.bridge_master: + handle, pw_prompted = SysCommandWorker(f'sudo ip link set dev {args.bridge_master} master {args.bridge}'), False + print(gray(f'Setting interface {args.bridge_master} master to {args.bridge}')) + while handle.is_alive(): + if b'password for' in handle and pw_prompted is False: + ensure_sudo() + handle.write(bytes(sudo_password, 'UTF-8')) + pw_prompted = True + + print(gray(f'Setting interface {args.tap} master to {args.bridge}')) + handle, pw_prompted = SysCommandWorker(f'sudo ip link set dev {args.tap} master {args.bridge}'), False + while handle.is_alive(): + if b'password for' in handle and pw_prompted is False: + ensure_sudo() + handle.write(bytes(sudo_password, 'UTF-8')) + pw_prompted = True + + print(gray(f'Bringing up bridge {args.bridge}')) + handle, pw_prompted = SysCommandWorker(f'sudo ip link set dev {args.bridge} up'), False + while handle.is_alive(): + if b'password for' in handle and pw_prompted is False: + ensure_sudo() + handle.write(bytes(sudo_password, 'UTF-8')) + pw_prompted = True + + print(gray(f'Bringing interface {args.tap} up')) + handle, pw_prompted = SysCommandWorker(f'sudo ip link set dev {args.tap} up'), False + while handle.is_alive(): + if b'password for' in handle and pw_prompted is False: + ensure_sudo() + handle.write(bytes(sudo_password, 'UTF-8')) + pw_prompted = True + + +def setup_disks(): + if args.harddrive: + for harddrive_arg in args.harddrive: + path, size = harddrive_arg.split(':') + path = pathlib.Path(path.strip()).expanduser().resolve().absolute() + harddrives[path] = size.strip() + + if path.exists() is False: + handle = SysCommandWorker(f'qemu-img create -f qcow2 {hdd} {size}') + while handle.is_alive(): + time.sleep(0.01) + + if handle.exit_code != 0: + raise ValueError(f'Could not create harddrive {hdd}: {handle}') + + +setup_networking() +setup_disks() + +if args.uki or args.bios is False: + disk_paths_hash = hashlib.sha1((''.join(sorted([str(x) for x in harddrives.keys()]))).encode()).hexdigest() + + shutil.copy2('/usr/share/ovmf/x64/OVMF_CODE.secboot.4m.fd', f'./OVMF_CODE.secboot.4m.fd.{disk_paths_hash}') + shutil.copy2('/usr/share/ovmf/x64/OVMF_VARS.4m.fd', f'./OVMF_VARS.4m.fd.{disk_paths_hash}') + +boot_index = 0 +qemu = 'qemu-system-x86_64' +qemu += ' -cpu host' +qemu += ' -enable-kvm' +qemu += ' -machine q35,accel=kvm' +qemu += ' -object rng-random,filename=/dev/urandom,id=rng0' +qemu += ' -device virtio-rng-pci,rng=rng0' +qemu += ' -global driver=cfi.pflash01,property=secure,value=on' +qemu += f' -smp {args.cpu},sockets=1,dies=1,cores={args.cpu},threads=1' +# qemu += f' -vga vga' +qemu += f' -device VGA,edid=on,xres={args.resolution.split("x")[0]},yres={args.resolution.split("x")[1]}' +qemu += ' -device intel-iommu,device-iotlb=on,caching-mode=on' +qemu += f' -m {args.memory}' +if args.bios is False: + qemu += f' -drive if=pflash,format=raw,readonly=on,file=./OVMF_CODE.secboot.4m.fd.{disk_paths_hash}' + qemu += f' -drive if=pflash,format=raw,file=./OVMF_VARS.4m.fd.{disk_paths_hash}' +if args.uki: + qemu += f' -kernel {args.uki}' + boot_index += 1 +scsi_index = 0 +for scsi_index, hdd in enumerate(harddrives.keys()): + # qemu += f' -device virtio-scsi-pci,bus=pcie.0,id=scsi{index}' + # qemu += f' -device scsi-hd,drive=hdd{index},bus=scsi{index}.0,id=scsi{index}.0,bootindex={hdd_boot_priority+index}' + # qemu += f' -drive file={hdd},if=none,format=qcow2,discard=unmap,aio=native,cache=none,id=hdd{index}' + qemu += f' -device virtio-scsi-pci,bus=pcie.0,id=scsi{scsi_index},addr=0x{scsi_index + 8}' + qemu += f' -device scsi-hd,drive=libvirt-{scsi_index}-format,bus=scsi{scsi_index}.0,id=scsi{scsi_index}-0-0-0,channel=0,scsi-id=0,lun=0,device_id=drive-scsi0-0-0-0,bootindex={boot_index},write-cache=on' # noqa: E501 + qemu += f' -blockdev \'{{"driver":"file","filename":"{hdd}","aio":"threads","node-name":"libvirt-{scsi_index}-storage","cache":{{"direct":false,"no-flush":false}},"auto-read-only":true,"discard":"unmap"}}\'' # noqa: E501 + qemu += f' -blockdev \'{{"node-name":"libvirt-{scsi_index}-format","read-only":false,"discard":"unmap","cache":{{"direct":true,"no-flush":false}},"driver":"qcow2","file":"libvirt-{scsi_index}-storage","backing":null}}\'' # noqa: E501 + boot_index += 1 +if args.iso: + qemu += f' -device virtio-scsi-pci,bus=pcie.0,id=scsi{scsi_index + 1}' + qemu += f' -device scsi-cd,drive=cdrom0,bus=scsi{scsi_index + 1}.0,bootindex={boot_index}' + qemu += f' -drive file={args.iso},media=cdrom,if=none,format=raw,cache=none,id=cdrom0' + boot_index += 1 + +# if args.vfio: +# qemu += f' -drive file={args.vfio},index=2,media=cdrom' + +if args.tap: + qemu += f' -device virtio-net-pci,mac={args.tap_mac},id=network0,netdev=network0.0,status=on,bus=pcie.0' + qemu += f' -netdev tap,ifname={args.tap},id=network0.0,script=no,downscript=no' + +print(gray(qemu)) + +qemu_session = subprocess.run(shlex.split(qemu), check=True, capture_output=True) + +if qemu_session.stdout: + print(qemu_session.stdout.decode()) +if qemu_session.returncode != 0: + print(red(qemu_session.stderr.decode())) From 3bc248b47f654c48acde1c27463c0c6441a9d74a Mon Sep 17 00:00:00 2001 From: BB Date: Mon, 25 May 2026 07:13:56 -0400 Subject: [PATCH 02/17] add niri DankMaterialShell profile (#4554) --- archinstall/default_profiles/desktops/niri.py | 2 +- .../default_profiles/desktops/niri_dms.py | 66 +++++ .../desktops/niri_dms_assets/dms/alttab.kdl | 10 + .../desktops/niri_dms_assets/dms/binds.kdl | 221 ++++++++++++++ .../desktops/niri_dms_assets/dms/colors.kdl | 39 +++ .../desktops/niri_dms_assets/dms/cursor.kdl | 6 + .../desktops/niri_dms_assets/dms/layout.kdl | 22 ++ .../desktops/niri_dms_assets/dms/outputs.kdl | 7 + .../desktops/niri_dms_assets/niri.kdl | 279 ++++++++++++++++++ archinstall/default_profiles/profile.py | 1 + archinstall/lib/profile/profiles_handler.py | 23 ++ pyproject.toml | 1 + 12 files changed, 676 insertions(+), 1 deletion(-) create mode 100644 archinstall/default_profiles/desktops/niri_dms.py create mode 100644 archinstall/default_profiles/desktops/niri_dms_assets/dms/alttab.kdl create mode 100644 archinstall/default_profiles/desktops/niri_dms_assets/dms/binds.kdl create mode 100644 archinstall/default_profiles/desktops/niri_dms_assets/dms/colors.kdl create mode 100644 archinstall/default_profiles/desktops/niri_dms_assets/dms/cursor.kdl create mode 100644 archinstall/default_profiles/desktops/niri_dms_assets/dms/layout.kdl create mode 100644 archinstall/default_profiles/desktops/niri_dms_assets/dms/outputs.kdl create mode 100644 archinstall/default_profiles/desktops/niri_dms_assets/niri.kdl diff --git a/archinstall/default_profiles/desktops/niri.py b/archinstall/default_profiles/desktops/niri.py index 4d955fbf..d8db75f5 100644 --- a/archinstall/default_profiles/desktops/niri.py +++ b/archinstall/default_profiles/desktops/niri.py @@ -7,7 +7,7 @@ from archinstall.default_profiles.profile import CustomSetting, DisplayServerTyp class NiriProfile(Profile): def __init__(self) -> None: super().__init__( - 'Niri', + 'niri', ProfileType.WindowMgr, support_gfx_driver=True, display_server=DisplayServerType.Wayland, diff --git a/archinstall/default_profiles/desktops/niri_dms.py b/archinstall/default_profiles/desktops/niri_dms.py new file mode 100644 index 00000000..11f32e34 --- /dev/null +++ b/archinstall/default_profiles/desktops/niri_dms.py @@ -0,0 +1,66 @@ +import shutil +from pathlib import Path +from typing import TYPE_CHECKING, override + +from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType + +if TYPE_CHECKING: + from archinstall.lib.installer import Installer + from archinstall.lib.models.users import User + + +_TERMINAL = 'alacritty' +_ASSETS_DIR = Path(__file__).parent / 'niri_dms_assets' + + +class NiriDmsProfile(Profile): + def __init__(self) -> None: + super().__init__( + 'niri - DankMaterialShell', + ProfileType.WindowMgr, + support_gfx_driver=True, + display_server=DisplayServerType.Wayland, + ) + + @property + @override + def packages(self) -> list[str]: + return [ + 'niri', + 'dms-shell-niri', + 'polkit', + 'xdg-desktop-portal-gnome', + 'xorg-xwayland', + 'matugen', + 'cava', + 'kimageformats', + 'cups-pk-helper', + 'tuned-ppd', + _TERMINAL, + ] + + @property + @override + def default_greeter_type(self) -> GreeterType: + return GreeterType.GreetdDms + + @override + def provision(self, install_session: Installer, users: list[User]) -> None: + binds = (_ASSETS_DIR / 'dms/binds.kdl').read_text().replace('{{TERMINAL_COMMAND}}', _TERMINAL) + + for user in users: + home = install_session.target / 'home' / user.username + niri_dir = home / '.config/niri' + dms_dir = niri_dir / 'dms' + dms_dir.mkdir(parents=True, exist_ok=True) + + shutil.copy(_ASSETS_DIR / 'niri.kdl', niri_dir / 'config.kdl') + for name in ('colors.kdl', 'layout.kdl', 'alttab.kdl', 'outputs.kdl', 'cursor.kdl'): + shutil.copy(_ASSETS_DIR / 'dms' / name, dms_dir / name) + (dms_dir / 'binds.kdl').write_text(binds) + + niri_unit_dropin = home / '.config/systemd/user/niri.service.d' + niri_unit_dropin.mkdir(parents=True, exist_ok=True) + (niri_unit_dropin / 'dms.conf').write_text('[Unit]\nWants=dms.service\n') + + install_session.arch_chroot(f'chown -R {user.username}:{user.username} /home/{user.username}/.config') diff --git a/archinstall/default_profiles/desktops/niri_dms_assets/dms/alttab.kdl b/archinstall/default_profiles/desktops/niri_dms_assets/dms/alttab.kdl new file mode 100644 index 00000000..5f9bdcd0 --- /dev/null +++ b/archinstall/default_profiles/desktops/niri_dms_assets/dms/alttab.kdl @@ -0,0 +1,10 @@ +// ! DO NOT EDIT ! +// ! AUTO-GENERATED BY DMS ! +// ! CHANGES WILL BE OVERWRITTEN ! +// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE ! + +recent-windows { + highlight { + corner-radius 12 + } +} diff --git a/archinstall/default_profiles/desktops/niri_dms_assets/dms/binds.kdl b/archinstall/default_profiles/desktops/niri_dms_assets/dms/binds.kdl new file mode 100644 index 00000000..27cb860e --- /dev/null +++ b/archinstall/default_profiles/desktops/niri_dms_assets/dms/binds.kdl @@ -0,0 +1,221 @@ +binds { + // === System & Overview === + Mod+D repeat=false { toggle-overview; } + Mod+Tab repeat=false { toggle-overview; } + Mod+Shift+Slash { show-hotkey-overlay; } + + // === Application Launchers === + Mod+T hotkey-overlay-title="Open Terminal" { spawn "{{TERMINAL_COMMAND}}"; } + Mod+Space hotkey-overlay-title="Application Launcher" { + spawn "dms" "ipc" "call" "spotlight" "toggle"; + } + Mod+V hotkey-overlay-title="Clipboard Manager" { + spawn "dms" "ipc" "call" "clipboard" "toggle"; + } + Mod+M hotkey-overlay-title="Task Manager" { + spawn "dms" "ipc" "call" "processlist" "focusOrToggle"; + } + + Super+X hotkey-overlay-title="Power Menu: Toggle" { spawn "dms" "ipc" "call" "powermenu" "toggle"; } + Mod+Comma hotkey-overlay-title="Settings" { + spawn "dms" "ipc" "call" "settings" "focusOrToggle"; + } + Mod+Y hotkey-overlay-title="Browse Wallpapers" { + spawn "dms" "ipc" "call" "dankdash" "wallpaper"; + } + Mod+N hotkey-overlay-title="Notification Center" { spawn "dms" "ipc" "call" "notifications" "toggle"; } + Mod+Shift+N hotkey-overlay-title="Notepad" { spawn "dms" "ipc" "call" "notepad" "toggle"; } + + // === Security === + Mod+Alt+L hotkey-overlay-title="Lock Screen" { + spawn "dms" "ipc" "call" "lock" "lock"; + } + Mod+Shift+E { quit; } + Ctrl+Alt+Delete hotkey-overlay-title="Task Manager" { + spawn "dms" "ipc" "call" "processlist" "focusOrToggle"; + } + + // === Audio Controls === + XF86AudioRaiseVolume allow-when-locked=true { + spawn "dms" "ipc" "call" "audio" "increment" "3"; + } + XF86AudioLowerVolume allow-when-locked=true { + spawn "dms" "ipc" "call" "audio" "decrement" "3"; + } + XF86AudioMute allow-when-locked=true { + spawn "dms" "ipc" "call" "audio" "mute"; + } + XF86AudioMicMute allow-when-locked=true { + spawn "dms" "ipc" "call" "audio" "micmute"; + } + XF86AudioPause allow-when-locked=true { + spawn "dms" "ipc" "call" "mpris" "playPause"; + } + XF86AudioPlay allow-when-locked=true { + spawn "dms" "ipc" "call" "mpris" "playPause"; + } + XF86AudioPrev allow-when-locked=true { + spawn "dms" "ipc" "call" "mpris" "previous"; + } + XF86AudioNext allow-when-locked=true { + spawn "dms" "ipc" "call" "mpris" "next"; + } + Ctrl+XF86AudioRaiseVolume allow-when-locked=true { + spawn "dms" "ipc" "call" "mpris" "increment" "3"; + } + Ctrl+XF86AudioLowerVolume allow-when-locked=true { + spawn "dms" "ipc" "call" "mpris" "decrement" "3"; + } + + // === Brightness Controls === + XF86MonBrightnessUp allow-when-locked=true { + spawn "dms" "ipc" "call" "brightness" "increment" "5" ""; + } + XF86MonBrightnessDown allow-when-locked=true { + spawn "dms" "ipc" "call" "brightness" "decrement" "5" ""; + } + + // === Window Management === + Mod+Q repeat=false { close-window; } + Mod+F { maximize-column; } + Mod+Shift+F { fullscreen-window; } + Mod+Shift+T { toggle-window-floating; } + Mod+Shift+V { switch-focus-between-floating-and-tiling; } + Mod+W { toggle-column-tabbed-display; } + Mod+Shift+W hotkey-overlay-title="Create window rule" { spawn "dms" "ipc" "call" "window-rules" "toggle"; } + + // === Focus Navigation === + Mod+Left { focus-column-left; } + Mod+Down { focus-window-down; } + Mod+Up { focus-window-up; } + Mod+Right { focus-column-right; } + Mod+H { focus-column-left; } + Mod+J { focus-window-down; } + Mod+K { focus-window-up; } + Mod+L { focus-column-right; } + + // === Window Movement === + Mod+Shift+Left { move-column-left; } + Mod+Shift+Down { move-window-down; } + Mod+Shift+Up { move-window-up; } + Mod+Shift+Right { move-column-right; } + Mod+Shift+H { move-column-left; } + Mod+Shift+J { move-window-down; } + Mod+Shift+K { move-window-up; } + Mod+Shift+L { move-column-right; } + + // === Column Navigation === + Mod+Home { focus-column-first; } + Mod+End { focus-column-last; } + Mod+Ctrl+Home { move-column-to-first; } + Mod+Ctrl+End { move-column-to-last; } + + // === Monitor Navigation === + Mod+Ctrl+Left { focus-monitor-left; } + //Mod+Ctrl+Down { focus-monitor-down; } + //Mod+Ctrl+Up { focus-monitor-up; } + Mod+Ctrl+Right { focus-monitor-right; } + Mod+Ctrl+H { focus-monitor-left; } + Mod+Ctrl+J { focus-monitor-down; } + Mod+Ctrl+K { focus-monitor-up; } + Mod+Ctrl+L { focus-monitor-right; } + + // === Move to Monitor === + Mod+Shift+Ctrl+Left { move-column-to-monitor-left; } + Mod+Shift+Ctrl+Down { move-column-to-monitor-down; } + Mod+Shift+Ctrl+Up { move-column-to-monitor-up; } + Mod+Shift+Ctrl+Right { move-column-to-monitor-right; } + Mod+Shift+Ctrl+H { move-column-to-monitor-left; } + Mod+Shift+Ctrl+J { move-column-to-monitor-down; } + Mod+Shift+Ctrl+K { move-column-to-monitor-up; } + Mod+Shift+Ctrl+L { move-column-to-monitor-right; } + + // === Workspace Navigation === + Mod+Page_Down { focus-workspace-down; } + Mod+Page_Up { focus-workspace-up; } + Mod+U { focus-workspace-down; } + Mod+I { focus-workspace-up; } + Mod+Ctrl+Down { move-column-to-workspace-down; } + Mod+Ctrl+Up { move-column-to-workspace-up; } + Mod+Ctrl+U { move-column-to-workspace-down; } + Mod+Ctrl+I { move-column-to-workspace-up; } + + // === Workspace Management === + Ctrl+Shift+R hotkey-overlay-title="Rename Workspace" { + spawn "dms" "ipc" "call" "workspace-rename" "open"; + } + + // === Move Workspaces === + Mod+Shift+Page_Down { move-workspace-down; } + Mod+Shift+Page_Up { move-workspace-up; } + Mod+Shift+U { move-workspace-down; } + Mod+Shift+I { move-workspace-up; } + + // === Mouse Wheel Navigation === + Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; } + Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; } + Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; } + Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; } + + Mod+WheelScrollRight { focus-column-right; } + Mod+WheelScrollLeft { focus-column-left; } + Mod+Ctrl+WheelScrollRight { move-column-right; } + Mod+Ctrl+WheelScrollLeft { move-column-left; } + + Mod+Shift+WheelScrollDown { focus-column-right; } + Mod+Shift+WheelScrollUp { focus-column-left; } + Mod+Ctrl+Shift+WheelScrollDown { move-column-right; } + Mod+Ctrl+Shift+WheelScrollUp { move-column-left; } + + // === Numbered Workspaces === + Mod+1 { focus-workspace 1; } + Mod+2 { focus-workspace 2; } + Mod+3 { focus-workspace 3; } + Mod+4 { focus-workspace 4; } + Mod+5 { focus-workspace 5; } + Mod+6 { focus-workspace 6; } + Mod+7 { focus-workspace 7; } + Mod+8 { focus-workspace 8; } + Mod+9 { focus-workspace 9; } + + // === Move to Numbered Workspaces === + Mod+Shift+1 { move-column-to-workspace 1; } + Mod+Shift+2 { move-column-to-workspace 2; } + Mod+Shift+3 { move-column-to-workspace 3; } + Mod+Shift+4 { move-column-to-workspace 4; } + Mod+Shift+5 { move-column-to-workspace 5; } + Mod+Shift+6 { move-column-to-workspace 6; } + Mod+Shift+7 { move-column-to-workspace 7; } + Mod+Shift+8 { move-column-to-workspace 8; } + Mod+Shift+9 { move-column-to-workspace 9; } + + // === Column Management === + Mod+BracketLeft { consume-or-expel-window-left; } + Mod+BracketRight { consume-or-expel-window-right; } + Mod+Period { expel-window-from-column; } + + // === Sizing & Layout === + Mod+R { switch-preset-column-width; } + Mod+Shift+R { switch-preset-window-height; } + Mod+Ctrl+R { reset-window-height; } + Mod+Ctrl+F { expand-column-to-available-width; } + Mod+C { center-column; } + Mod+Ctrl+C { center-visible-columns; } + + // === Manual Sizing === + Mod+Minus { set-column-width "-10%"; } + Mod+Equal { set-column-width "+10%"; } + Mod+Shift+Minus { set-window-height "-10%"; } + Mod+Shift+Equal { set-window-height "+10%"; } + + // === Screenshots === + XF86Launch1 { screenshot; } + Ctrl+XF86Launch1 { screenshot-screen; } + Alt+XF86Launch1 { screenshot-window; } + Print { screenshot; } + Ctrl+Print { screenshot-screen; } + Alt+Print { screenshot-window; } + // === System Controls === + Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; } + Mod+Shift+P { power-off-monitors; } +} diff --git a/archinstall/default_profiles/desktops/niri_dms_assets/dms/colors.kdl b/archinstall/default_profiles/desktops/niri_dms_assets/dms/colors.kdl new file mode 100644 index 00000000..145a1798 --- /dev/null +++ b/archinstall/default_profiles/desktops/niri_dms_assets/dms/colors.kdl @@ -0,0 +1,39 @@ +// ! Auto-generated file. Do not edit directly. +// Remove `include "dms/colors.kdl"` from your config to override. + +layout { + background-color "transparent" + + focus-ring { + active-color "#d0bcff" + inactive-color "#948f99" + urgent-color "#f2b8b5" + } + + border { + active-color "#d0bcff" + inactive-color "#948f99" + urgent-color "#f2b8b5" + } + + shadow { + color "#00000070" + } + + tab-indicator { + active-color "#d0bcff" + inactive-color "#948f99" + urgent-color "#f2b8b5" + } + + insert-hint { + color "#d0bcff80" + } +} + +recent-windows { + highlight { + active-color "#4f378b" + urgent-color "#f2b8b5" + } +} diff --git a/archinstall/default_profiles/desktops/niri_dms_assets/dms/cursor.kdl b/archinstall/default_profiles/desktops/niri_dms_assets/dms/cursor.kdl new file mode 100644 index 00000000..db3d385a --- /dev/null +++ b/archinstall/default_profiles/desktops/niri_dms_assets/dms/cursor.kdl @@ -0,0 +1,6 @@ +// Place cursor configuration here. +// Example: +// cursor { +// xcursor-theme "Adwaita" +// xcursor-size 24 +// } diff --git a/archinstall/default_profiles/desktops/niri_dms_assets/dms/layout.kdl b/archinstall/default_profiles/desktops/niri_dms_assets/dms/layout.kdl new file mode 100644 index 00000000..1951500b --- /dev/null +++ b/archinstall/default_profiles/desktops/niri_dms_assets/dms/layout.kdl @@ -0,0 +1,22 @@ +// ! DO NOT EDIT ! +// ! AUTO-GENERATED BY DMS ! +// ! CHANGES WILL BE OVERWRITTEN ! +// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE ! + +layout { + gaps 4 + + border { + width 2 + } + + focus-ring { + width 2 + } +} +window-rule { + geometry-corner-radius 12 + clip-to-geometry true + tiled-state true + draw-border-with-background false +} diff --git a/archinstall/default_profiles/desktops/niri_dms_assets/dms/outputs.kdl b/archinstall/default_profiles/desktops/niri_dms_assets/dms/outputs.kdl new file mode 100644 index 00000000..3fe37358 --- /dev/null +++ b/archinstall/default_profiles/desktops/niri_dms_assets/dms/outputs.kdl @@ -0,0 +1,7 @@ +// Place per-output configuration here. +// Example: +// output "DP-1" { +// mode "2560x1440@165" +// position x=0 y=0 +// scale 1 +// } diff --git a/archinstall/default_profiles/desktops/niri_dms_assets/niri.kdl b/archinstall/default_profiles/desktops/niri_dms_assets/niri.kdl new file mode 100644 index 00000000..0a759e46 --- /dev/null +++ b/archinstall/default_profiles/desktops/niri_dms_assets/niri.kdl @@ -0,0 +1,279 @@ +// This config is in the KDL format: https://kdl.dev +// "/-" comments out the following node. +// Check the wiki for a full description of the configuration: +// https://github.com/YaLTeR/niri/wiki/Configuration:-Introduction +config-notification { + disable-failed +} + +gestures { + hot-corners { + off + } +} + +// Input device configuration. +// Find the full list of options on the wiki: +// https://github.com/YaLTeR/niri/wiki/Configuration:-Input +input { + keyboard { + xkb { + // You can set rules, model, layout, variant and options. + // For more information, see xkeyboard-config(7). + + // For example: + // layout "us,ru" + // options "grp:win_space_toggle,compose:ralt,ctrl:nocaps" + + // If this section is empty, niri will fetch xkb settings + // from org.freedesktop.locale1. You can control these using + // localectl set-x11-keymap. + } + + // Enable numlock on startup, omitting this setting disables it. + numlock + } + + // Next sections include libinput settings. + // Omitting settings disables them, or leaves them at their default values. + // All commented-out settings here are examples, not defaults. + touchpad { + // off + tap + // dwt + // dwtp + // drag false + // drag-lock + natural-scroll + // accel-speed 0.2 + // accel-profile "flat" + // scroll-method "two-finger" + // disabled-on-external-mouse + } + + mouse { + // off + // natural-scroll + // accel-speed 0.2 + // accel-profile "flat" + // scroll-method "no-scroll" + } + + trackpoint { + // off + // natural-scroll + // accel-speed 0.2 + // accel-profile "flat" + // scroll-method "on-button-down" + // scroll-button 273 + // scroll-button-lock + // middle-emulation + } + + // Uncomment this to make the mouse warp to the center of newly focused windows. + // warp-mouse-to-focus + + // Focus windows and outputs automatically when moving the mouse into them. + // Setting max-scroll-amount="0%" makes it work only on windows already fully on screen. + // focus-follows-mouse max-scroll-amount="0%" +} +// You can configure outputs by their name, which you can find +// by running `niri msg outputs` while inside a niri instance. +// The built-in laptop monitor is usually called "eDP-1". +// Find more information on the wiki: +// https://github.com/YaLTeR/niri/wiki/Configuration:-Outputs +// Remember to uncomment the node by removing "/-"! +/-output "eDP-2" { + mode "2560x1600@239.998993" + position x=2560 y=0 + variable-refresh-rate +} +// Settings that influence how windows are positioned and sized. +// Find more information on the wiki: +// https://github.com/YaLTeR/niri/wiki/Configuration:-Layout +layout { + // Set gaps around windows in logical pixels. + background-color "transparent" + // When to center a column when changing focus, options are: + // - "never", default behavior, focusing an off-screen column will keep at the left + // or right edge of the screen. + // - "always", the focused column will always be centered. + // - "on-overflow", focusing a column will center it if it doesn't fit + // together with the previously focused column. + center-focused-column "never" + // You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between. + preset-column-widths { + // Proportion sets the width as a fraction of the output width, taking gaps into account. + // For example, you can perfectly fit four windows sized "proportion 0.25" on an output. + // The default preset widths are 1/3, 1/2 and 2/3 of the output. + proportion 0.33333 + proportion 0.5 + proportion 0.66667 + // Fixed sets the width in logical pixels exactly. + // fixed 1920 + } + // You can also customize the heights that "switch-preset-window-height" (Mod+Shift+R) toggles between. + // preset-window-heights { } + // You can change the default width of the new windows. + default-column-width { proportion 0.5; } + // If you leave the brackets empty, the windows themselves will decide their initial width. + // default-column-width {} + // By default focus ring and border are rendered as a solid background rectangle + // behind windows. That is, they will show up through semitransparent windows. + // This is because windows using client-side decorations can have an arbitrary shape. + // + // If you don't like that, you should uncomment `prefer-no-csd` below. + // Niri will draw focus ring and border *around* windows that agree to omit their + // client-side decorations. + // + // Alternatively, you can override it with a window rule called + // `draw-border-with-background`. + border { + off + width 4 + active-color "#707070" // Neutral gray + inactive-color "#d0d0d0" // Light gray + urgent-color "#cc4444" // Softer red + } + shadow { + softness 30 + spread 5 + offset x=0 y=5 + color "#0007" + } + struts { + } +} +layer-rule { + match namespace="^quickshell$" + place-within-backdrop true +} +overview { + workspace-shadow { + off + } +} +// Add lines like this to spawn processes at startup. +// Note that running niri as a session supports xdg-desktop-autostart, +// which may be more convenient to use. +// See the binds section below for more spawn examples. +// This line starts waybar, a commonly used bar for Wayland compositors. +environment { + XDG_CURRENT_DESKTOP "niri" +} +hotkey-overlay { + skip-at-startup +} +prefer-no-csd +screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png" +animations { + workspace-switch { + spring damping-ratio=0.80 stiffness=523 epsilon=0.0001 + } + window-open { + duration-ms 150 + curve "ease-out-expo" + } + window-close { + duration-ms 150 + curve "ease-out-quad" + } + horizontal-view-movement { + spring damping-ratio=0.85 stiffness=423 epsilon=0.0001 + } + window-movement { + spring damping-ratio=0.75 stiffness=323 epsilon=0.0001 + } + window-resize { + spring damping-ratio=0.85 stiffness=423 epsilon=0.0001 + } + config-notification-open-close { + spring damping-ratio=0.65 stiffness=923 epsilon=0.001 + } + screenshot-ui-open { + duration-ms 200 + curve "ease-out-quad" + } + overview-open-close { + spring damping-ratio=0.85 stiffness=800 epsilon=0.0001 + } +} +// Window rules let you adjust behavior for individual windows. +// Find more information on the wiki: +// https://github.com/YaLTeR/niri/wiki/Configuration:-Window-Rules +// Work around WezTerm's initial configure bug +// by setting an empty default-column-width. +window-rule { + // This regular expression is intentionally made as specific as possible, + // since this is the default config, and we want no false positives. + // You can get away with just app-id="wezterm" if you want. + match app-id=r#"^org\.wezfurlong\.wezterm$"# + default-column-width {} +} +window-rule { + match app-id=r#"^org\.gnome\."# + draw-border-with-background false + geometry-corner-radius 12 + clip-to-geometry true +} +window-rule { + match app-id=r#"^gnome-control-center$"# + match app-id=r#"^pavucontrol$"# + match app-id=r#"^nm-connection-editor$"# + default-column-width { proportion 0.5; } + open-floating false +} +window-rule { + match app-id=r#"^org\.gnome\.Calculator$"# + match app-id=r#"^gnome-calculator$"# + match app-id=r#"^galculator$"# + match app-id=r#"^blueman-manager$"# + match app-id=r#"^org\.gnome\.Nautilus$"# + match app-id=r#"^xdg-desktop-portal$"# + open-floating true +} +window-rule { + match app-id=r#"^steam$"# title=r#"^notificationtoasts_\d+_desktop$"# + default-floating-position x=10 y=10 relative-to="bottom-right" + open-focused false +} +window-rule { + match app-id=r#"^org\.wezfurlong\.wezterm$"# + match app-id="Alacritty" + match app-id="zen" + match app-id="com.mitchellh.ghostty" + match app-id="kitty" + draw-border-with-background false +} +window-rule { + match app-id=r#"firefox$"# title="^Picture-in-Picture$" + match app-id="zoom" + open-floating true +} +// Open dms windows as floating by default +window-rule { + match app-id=r#"org.quickshell$"# + match app-id=r#"com.danklinux.dms$"# + open-floating true +} +debug { + honor-xdg-activation-with-invalid-serial +} + +// Override to disable super+tab +recent-windows { + binds { + Alt+Tab { next-window scope="output"; } + Alt+Shift+Tab { previous-window scope="output"; } + Alt+grave { next-window filter="app-id"; } + Alt+Shift+grave { previous-window filter="app-id"; } + } +} + +// Include dms files +include "dms/colors.kdl" +include "dms/layout.kdl" +include "dms/alttab.kdl" +include "dms/binds.kdl" +include "dms/outputs.kdl" +include "dms/cursor.kdl" diff --git a/archinstall/default_profiles/profile.py b/archinstall/default_profiles/profile.py index cc56186f..6c328a46 100644 --- a/archinstall/default_profiles/profile.py +++ b/archinstall/default_profiles/profile.py @@ -37,6 +37,7 @@ class GreeterType(Enum): Ly = 'ly' CosmicSession = 'cosmic-greeter' PlasmaLoginManager = 'plasma-login-manager' + GreetdDms = 'dms-greeter' class SelectResult(Enum): diff --git a/archinstall/lib/profile/profiles_handler.py b/archinstall/lib/profile/profiles_handler.py index d937a520..1e770de5 100644 --- a/archinstall/lib/profile/profiles_handler.py +++ b/archinstall/lib/profile/profiles_handler.py @@ -175,6 +175,9 @@ class ProfileHandler: case GreeterType.PlasmaLoginManager: packages = ['plasma-login-manager'] service = ['plasmalogin'] + case GreeterType.GreetdDms: + packages = ['greetd'] + service = ['greetd'] if packages: install_session.add_additional_packages(packages) @@ -194,6 +197,26 @@ class ProfileHandler: with open(path, 'w') as file: file.write(filedata) + if greeter == GreeterType.GreetdDms: + greetd_config = install_session.target / 'etc/greetd/config.toml' + greetd_config.parent.mkdir(parents=True, exist_ok=True) + greetd_config.write_text( + '[terminal]\n' + 'vt = 1\n' + '\n' + '[default_session]\n' + 'user = "greeter"\n' + 'command = "/usr/share/quickshell/dms/Modules/Greetd/assets/dms-greeter --command niri -p /usr/share/quickshell/dms"\n', + ) + + tmpfiles = install_session.target / 'etc/tmpfiles.d/dms-greeter.conf' + tmpfiles.parent.mkdir(parents=True, exist_ok=True) + tmpfiles.write_text( + '# Path Mode User Group Age Argument\n' + 'd /var/cache/dms-greeter 0750 greeter greeter -\n' + 'd /var/lib/greeter 0755 greeter greeter -\n', + ) + def install_gfx_driver(self, install_session: Installer, driver: GfxDriver) -> None: debug(f'Installing GFX driver: {driver.value}') diff --git a/pyproject.toml b/pyproject.toml index 8d0c5a64..7942fb6e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -61,6 +61,7 @@ include-package-data = true "**/*.po", "**/*.pot", "**/*.json", + "**/*.kdl", ] [tool.setuptools.package-dir] From b96afcc579c9a23b5779fa86b2c6775a556bf61b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 25 May 2026 21:58:49 +1000 Subject: [PATCH 03/17] Update dependency arch/python-textual to v8.2.7 (#4556) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 7942fb6e..ccbee27b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,7 +21,7 @@ dependencies = [ "pyparted==3.13.0", "pydantic==2.13.4", "cryptography==48.0.0", - "textual==8.2.6", + "textual==8.2.7", "markdown-it-py==4.0.0", "linkify-it-py==2.1.0", ] From e27ce6e8b6930001d9fa40748993049e3589e027 Mon Sep 17 00:00:00 2001 From: Franco Castillo Date: Sat, 6 Jun 2026 05:22:56 -0300 Subject: [PATCH 04/17] Update template and Spanish translation (#4557) * Update translation template Signed-off-by: Franco Castillo * Update Spanish translation Signed-off-by: Franco Castillo * Update Spanish translation Signed-off-by: Franco Castillo --------- Signed-off-by: Franco Castillo --- archinstall/locales/base.pot | 3291 +++++---------- archinstall/locales/es/LC_MESSAGES/base.mo | Bin 67046 -> 32636 bytes archinstall/locales/es/LC_MESSAGES/base.po | 4465 ++++++++++---------- 3 files changed, 3329 insertions(+), 4427 deletions(-) diff --git a/archinstall/locales/base.pot b/archinstall/locales/base.pot index 4db4554c..94224c1f 100644 --- a/archinstall/locales/base.pot +++ b/archinstall/locales/base.pot @@ -1,2247 +1,3 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "[!] A log file has been created here: {} {}" -msgstr "" - -msgid "" -" Please submit this issue (and file) to https://github.com/archlinux/" -"archinstall/issues" -msgstr "" - -msgid "Do you really want to abort?" -msgstr "" - -msgid "And one more time for verification: " -msgstr "" - -msgid "Would you like to use swap on zram?" -msgstr "" - -msgid "Desired hostname for the installation: " -msgstr "" - -msgid "Username for required superuser with sudo privileges: " -msgstr "" - -msgid "Any additional users to install (leave blank for no users): " -msgstr "" - -msgid "Should this user be a superuser (sudoer)?" -msgstr "" - -msgid "Select a timezone" -msgstr "" - -msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?" -msgstr "" - -msgid "Choose a bootloader" -msgstr "" - -msgid "Choose an audio server" -msgstr "" - -msgid "" -"Only packages such as base, base-devel, linux, linux-firmware, efibootmgr " -"and optional profile packages are installed." -msgstr "" - -msgid "" -"Note: base-devel is no longer installed by default. Add it here if you need " -"build tools." -msgstr "" - -msgid "" -"If you desire a web browser, such as firefox or chromium, you may specify it " -"in the following prompt." -msgstr "" - -msgid "" -"Write additional packages to install (space separated, leave blank to skip): " -msgstr "" - -msgid "Copy ISO network configuration to installation" -msgstr "" - -msgid "" -"Use NetworkManager (necessary for configuring internet graphically in GNOME " -"and KDE)" -msgstr "" - -msgid "Select one network interface to configure" -msgstr "" - -msgid "" -"Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" -msgstr "" - -#, python-brace-format -msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " -msgstr "" - -msgid "Enter your gateway (router) IP address or leave blank for none: " -msgstr "" - -msgid "Enter your DNS servers (space separated, blank for none): " -msgstr "" - -msgid "Select which filesystem your main partition should use" -msgstr "" - -msgid "Current partition layout" -msgstr "" - -msgid "" -"Select what to do with\n" -"{}" -msgstr "" - -msgid "Enter a desired filesystem type for the partition" -msgstr "" - -msgid "" -"Enter the start location (in parted units: s, GB, %, etc. ; default: {}): " -msgstr "" - -msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): " -msgstr "" - -msgid "{} contains queued partitions, this will remove those, are you sure?" -msgstr "" - -msgid "" -"{}\n" -"\n" -"Select by index which partitions to delete" -msgstr "" - -msgid "" -"{}\n" -"\n" -"Select by index which partition to mount where" -msgstr "" - -msgid "" -" * Partition mount-points are relative to inside the installation, the boot " -"would be /boot as an example." -msgstr "" - -msgid "Select where to mount partition (leave blank to remove mountpoint): " -msgstr "" - -msgid "" -"{}\n" -"\n" -"Select which partition to mask for formatting" -msgstr "" - -msgid "" -"{}\n" -"\n" -"Select which partition to mark as encrypted" -msgstr "" - -msgid "" -"{}\n" -"\n" -"Select which partition to mark as bootable" -msgstr "" - -msgid "" -"{}\n" -"\n" -"Select which partition to set a filesystem on" -msgstr "" - -msgid "Enter a desired filesystem type for the partition: " -msgstr "" - -msgid "Archinstall language" -msgstr "" - -msgid "Wipe all selected drives and use a best-effort default partition layout" -msgstr "" - -msgid "" -"Select what to do with each individual drive (followed by partition usage)" -msgstr "" - -msgid "Select what you wish to do with the selected block devices" -msgstr "" - -msgid "" -"This is a list of pre-programmed profiles, they might make it easier to " -"install things like desktop environments" -msgstr "" - -msgid "Select keyboard layout" -msgstr "" - -msgid "Select one of the regions to download packages from" -msgstr "" - -msgid "Select one or more hard drives to use and configure" -msgstr "" - -msgid "" -"For the best compatibility with your AMD hardware, you may want to use " -"either the all open-source or AMD / ATI options." -msgstr "" - -msgid "" -"For the best compatibility with your Intel hardware, you may want to use " -"either the all open-source or Intel options.\n" -msgstr "" - -msgid "" -"For the best compatibility with your Nvidia hardware, you may want to use " -"the Nvidia proprietary driver.\n" -msgstr "" - -msgid "" -"\n" -"\n" -"Select a graphics driver or leave blank to install all open-source drivers" -msgstr "" - -msgid "All open-source (default)" -msgstr "" - -msgid "Choose which kernels to use or leave blank for default \"{}\"" -msgstr "" - -msgid "Choose which locale language to use" -msgstr "" - -msgid "Choose which locale encoding to use" -msgstr "" - -msgid "Select one of the values shown below: " -msgstr "" - -msgid "Select one or more of the options below: " -msgstr "" - -msgid "Adding partition...." -msgstr "" - -msgid "" -"You need to enter a valid fs-type in order to continue. See `man parted` for " -"valid fs-type's." -msgstr "" - -msgid "Error: Listing profiles on URL \"{}\" resulted in:" -msgstr "" - -msgid "Error: Could not decode \"{}\" result as JSON:" -msgstr "" - -msgid "Keyboard layout" -msgstr "" - -msgid "Mirror region" -msgstr "" - -msgid "Locale language" -msgstr "" - -msgid "Locale encoding" -msgstr "" - -msgid "Console font" -msgstr "" - -msgid "Drive(s)" -msgstr "" - -msgid "Disk layout" -msgstr "" - -msgid "Encryption password" -msgstr "" - -msgid "Swap" -msgstr "" - -msgid "Bootloader" -msgstr "" - -msgid "Root password" -msgstr "" - -msgid "Superuser account" -msgstr "" - -msgid "User account" -msgstr "" - -msgid "Profile" -msgstr "" - -msgid "Audio" -msgstr "" - -msgid "Kernels" -msgstr "" - -msgid "Additional packages" -msgstr "" - -msgid "Network configuration" -msgstr "" - -msgid "Automatic time sync (NTP)" -msgstr "" - -msgid "Install ({} config(s) missing)" -msgstr "" - -msgid "" -"You decided to skip harddrive selection\n" -"and will use whatever drive-setup is mounted at {} (experimental)\n" -"WARNING: Archinstall won't check the suitability of this setup\n" -"Do you wish to continue?" -msgstr "" - -msgid "Re-using partition instance: {}" -msgstr "" - -msgid "Create a new partition" -msgstr "" - -msgid "Delete a partition" -msgstr "" - -msgid "Clear/Delete all partitions" -msgstr "" - -msgid "Assign mount-point for a partition" -msgstr "" - -msgid "Mark/Unmark a partition to be formatted (wipes data)" -msgstr "" - -msgid "Mark/Unmark a partition as encrypted" -msgstr "" - -msgid "Mark/Unmark a partition as bootable (automatic for /boot)" -msgstr "" - -msgid "Set desired filesystem for a partition" -msgstr "" - -msgid "Abort" -msgstr "" - -msgid "Hostname" -msgstr "" - -msgid "Not configured, unavailable unless setup manually" -msgstr "" - -msgid "Timezone" -msgstr "" - -msgid "Set/Modify the below options" -msgstr "" - -msgid "Install" -msgstr "" - -msgid "" -"Use ESC to skip\n" -"\n" -msgstr "" - -msgid "Suggest partition layout" -msgstr "" - -msgid "Enter a password: " -msgstr "" - -msgid "Enter a encryption password for {}" -msgstr "" - -msgid "Enter disk encryption password (leave blank for no encryption): " -msgstr "" - -msgid "Create a required super-user with sudo privileges: " -msgstr "" - -msgid "Enter root password (leave blank to disable root): " -msgstr "" - -msgid "Password for user \"{}\": " -msgstr "" - -msgid "" -"Verifying that additional packages exist (this might take a few seconds)" -msgstr "" - -msgid "" -"Would you like to use automatic time synchronization (NTP) with the default " -"time servers?\n" -msgstr "" - -msgid "" -"Hardware time and other post-configuration steps might be required in order " -"for NTP to work.\n" -"For more information, please check the Arch wiki" -msgstr "" - -msgid "Enter a username to create an additional user (leave blank to skip): " -msgstr "" - -msgid "Use ESC to skip\n" -msgstr "" - -msgid "" -"\n" -" Choose an object from the list, and select one of the available actions for " -"it to execute" -msgstr "" - -msgid "Cancel" -msgstr "" - -msgid "Confirm and exit" -msgstr "" - -msgid "Add" -msgstr "" - -msgid "Copy" -msgstr "" - -msgid "Edit" -msgstr "" - -msgid "Delete" -msgstr "" - -msgid "Select an action for '{}'" -msgstr "" - -msgid "Copy to new key:" -msgstr "" - -msgid "Unknown nic type: {}. Possible values are {}" -msgstr "" - -msgid "" -"\n" -"This is your chosen configuration:" -msgstr "" - -msgid "" -"Pacman is already running, waiting maximum 10 minutes for it to terminate." -msgstr "" - -msgid "" -"Pre-existing pacman lock never exited. Please clean up any existing pacman " -"sessions before using archinstall." -msgstr "" - -msgid "Choose which optional additional repositories to enable" -msgstr "" - -msgid "Add a user" -msgstr "" - -msgid "Change password" -msgstr "" - -msgid "Promote/Demote user" -msgstr "" - -msgid "Delete User" -msgstr "" - -msgid "" -"\n" -"Define a new user\n" -msgstr "" - -msgid "User Name : " -msgstr "" - -msgid "Should {} be a superuser (sudoer)?" -msgstr "" - -msgid "Define users with sudo privilege: " -msgstr "" - -msgid "No network configuration" -msgstr "" - -msgid "Set desired subvolumes on a btrfs partition" -msgstr "" - -msgid "" -"{}\n" -"\n" -"Select which partition to set subvolumes on" -msgstr "" - -msgid "Manage btrfs subvolumes for current partition" -msgstr "" - -msgid "No configuration" -msgstr "" - -msgid "Save user configuration" -msgstr "" - -msgid "Save user credentials" -msgstr "" - -msgid "Save disk layout" -msgstr "" - -msgid "Save all" -msgstr "" - -msgid "Choose which configuration to save" -msgstr "" - -msgid "Enter a directory for the configuration(s) to be saved: " -msgstr "" - -msgid "Not a valid directory: {}" -msgstr "" - -msgid "The password you are using seems to be weak," -msgstr "" - -msgid "are you sure you want to use it?" -msgstr "" - -msgid "Optional repositories" -msgstr "" - -msgid "Save configuration" -msgstr "" - -msgid "Missing configurations:\n" -msgstr "" - -msgid "Either root-password or at least 1 superuser must be specified" -msgstr "" - -msgid "Manage superuser accounts: " -msgstr "" - -msgid "Manage ordinary user accounts: " -msgstr "" - -msgid " Subvolume :{:16}" -msgstr "" - -msgid " mounted at {:16}" -msgstr "" - -msgid " with option {}" -msgstr "" - -msgid "" -"\n" -" Fill the desired values for a new subvolume \n" -msgstr "" - -msgid "Subvolume name " -msgstr "" - -msgid "Subvolume mountpoint" -msgstr "" - -msgid "Subvolume options" -msgstr "" - -msgid "Save" -msgstr "" - -msgid "Subvolume name :" -msgstr "" - -msgid "Select a mount point :" -msgstr "" - -msgid "Select the desired subvolume options " -msgstr "" - -msgid "Define users with sudo privilege, by username: " -msgstr "" - -#, python-brace-format -msgid "[!] A log file has been created here: {}" -msgstr "" - -msgid "Would you like to use BTRFS subvolumes with a default structure?" -msgstr "" - -msgid "Would you like to use BTRFS compression?" -msgstr "" - -msgid "Would you like to create a separate partition for /home?" -msgstr "" - -msgid "" -"The selected drives do not have the minimum capacity required for an " -"automatic suggestion\n" -msgstr "" - -msgid "Minimum capacity for /home partition: {}GB\n" -msgstr "" - -msgid "Minimum capacity for Arch Linux partition: {}GB" -msgstr "" - -msgid "Continue" -msgstr "" - -msgid "yes" -msgstr "" - -msgid "no" -msgstr "" - -msgid "set: {}" -msgstr "" - -msgid "Manual configuration setting must be a list" -msgstr "" - -msgid "No iface specified for manual configuration" -msgstr "" - -msgid "Manual nic configuration with no auto DHCP requires an IP address" -msgstr "" - -msgid "Add interface" -msgstr "" - -msgid "Edit interface" -msgstr "" - -msgid "Delete interface" -msgstr "" - -msgid "Select interface to add" -msgstr "" - -msgid "Manual configuration" -msgstr "" - -msgid "Mark/Unmark a partition as compressed (btrfs only)" -msgstr "" - -msgid "" -"The password you are using seems to be weak, are you sure you want to use it?" -msgstr "" - -msgid "" -"Provides a selection of desktop environments and tiling window managers, " -"e.g. gnome, kde, sway" -msgstr "" - -msgid "Select your desired desktop environment" -msgstr "" - -msgid "" -"A very basic installation that allows you to customize Arch Linux as you see " -"fit." -msgstr "" - -msgid "" -"Provides a selection of various server packages to install and enable, e.g. " -"httpd, nginx, mariadb" -msgstr "" - -msgid "" -"Choose which servers to install, if none then a minimal installation will be " -"done" -msgstr "" - -msgid "Installs a minimal system as well as xorg and graphics drivers." -msgstr "" - -msgid "Press Enter to continue." -msgstr "" - -msgid "" -"Would you like to chroot into the newly created installation and perform " -"post-installation configuration?" -msgstr "" - -msgid "Are you sure you want to reset this setting?" -msgstr "" - -msgid "Select one or more hard drives to use and configure\n" -msgstr "" - -msgid "Any modifications to the existing setting will reset the disk layout!" -msgstr "" - -msgid "" -"If you reset the harddrive selection this will also reset the current disk " -"layout. Are you sure?" -msgstr "" - -msgid "Save and exit" -msgstr "" - -msgid "" -"{}\n" -"contains queued partitions, this will remove those, are you sure?" -msgstr "" - -msgid "No audio server" -msgstr "" - -msgid "(default)" -msgstr "" - -msgid "Use ESC to skip" -msgstr "" - -msgid "" -"Use CTRL+C to reset current selection\n" -"\n" -msgstr "" - -msgid "Copy to: " -msgstr "" - -msgid "Edit: " -msgstr "" - -msgid "Key: " -msgstr "" - -msgid "Edit {}: " -msgstr "" - -msgid "Add: " -msgstr "" - -msgid "Value: " -msgstr "" - -msgid "" -"You can skip selecting a drive and partitioning and use whatever drive-setup " -"is mounted at /mnt (experimental)" -msgstr "" - -msgid "Select one of the disks or skip and use /mnt as default" -msgstr "" - -msgid "Select which partitions to mark for formatting:" -msgstr "" - -msgid "Use HSM to unlock encrypted drive" -msgstr "" - -msgid "Device" -msgstr "" - -msgid "Size" -msgstr "" - -msgid "Free space" -msgstr "" - -msgid "Bus-type" -msgstr "" - -msgid "" -"Either root-password or at least 1 user with sudo privileges must be " -"specified" -msgstr "" - -msgid "Enter username (leave blank to skip): " -msgstr "" - -msgid "The username you entered is invalid. Try again" -msgstr "" - -msgid "Should \"{}\" be a superuser (sudo)?" -msgstr "" - -msgid "Select which partitions to encrypt" -msgstr "" - -msgid "very weak" -msgstr "" - -msgid "weak" -msgstr "" - -msgid "moderate" -msgstr "" - -msgid "strong" -msgstr "" - -msgid "Add subvolume" -msgstr "" - -msgid "Edit subvolume" -msgstr "" - -msgid "Delete subvolume" -msgstr "" - -msgid "Configured {} interfaces" -msgstr "" - -msgid "" -"This option enables the number of parallel downloads that can occur during " -"installation" -msgstr "" - -msgid "" -"Enter the number of parallel downloads to be enabled.\n" -" (Enter a value between 1 to {})\n" -"Note:" -msgstr "" - -msgid "" -" - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads " -"at a time )" -msgstr "" - -msgid "" -" - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a " -"time )" -msgstr "" - -msgid "" -" - Disable/Default : 0 ( Disables parallel downloading, allows only 1 " -"download at a time )" -msgstr "" - -#, python-brace-format -msgid "" -"Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to " -"disable]" -msgstr "" - -msgid "Parallel Downloads" -msgstr "" - -msgid "Pacman" -msgstr "" - -msgid "Color" -msgstr "" - -#, python-brace-format -msgid "Enter the number of parallel downloads (1-{})" -msgstr "" - -msgid "Enable colored output for pacman" -msgstr "" - -msgid "ESC to skip" -msgstr "" - -msgid "CTRL+C to reset" -msgstr "" - -msgid "TAB to select" -msgstr "" - -msgid "[Default value: 0] > " -msgstr "" - -msgid "" -"To be able to use this translation, please install a font manually that " -"supports the language." -msgstr "" - -msgid "The font should be stored as {}" -msgstr "" - -msgid "Archinstall requires root privileges to run. See --help for more." -msgstr "" - -msgid "Select an execution mode" -msgstr "" - -#, python-brace-format -msgid "Unable to fetch profile from specified url: {}" -msgstr "" - -#, python-brace-format -msgid "" -"Profiles must have unique name, but profile definitions with duplicate name " -"found: {}" -msgstr "" - -msgid "Select one or more devices to use and configure" -msgstr "" - -msgid "" -"If you reset the device selection this will also reset the current disk " -"layout. Are you sure?" -msgstr "" - -msgid "Existing Partitions" -msgstr "" - -msgid "Select a partitioning option" -msgstr "" - -msgid "Enter the root directory of the mounted devices: " -msgstr "" - -#, python-brace-format -msgid "Minimum capacity for /home partition: {}GiB\n" -msgstr "" - -#, python-brace-format -msgid "Minimum capacity for Arch Linux partition: {}GiB" -msgstr "" - -msgid "" -"This is a list of pre-programmed profiles_bck, they might make it easier to " -"install things like desktop environments" -msgstr "" - -msgid "Current profile selection" -msgstr "" - -msgid "Remove all newly added partitions" -msgstr "" - -msgid "Assign mountpoint" -msgstr "" - -msgid "Mark/Unmark to be formatted (wipes data)" -msgstr "" - -msgid "Mark/Unmark as bootable" -msgstr "" - -msgid "Change filesystem" -msgstr "" - -msgid "Mark/Unmark as compressed" -msgstr "" - -msgid "Set subvolumes" -msgstr "" - -msgid "Delete partition" -msgstr "" - -msgid "Partition" -msgstr "" - -msgid "" -"This partition is currently encrypted, to format it a filesystem has to be " -"specified" -msgstr "" - -msgid "" -"Partition mount-points are relative to inside the installation, the boot " -"would be /boot as an example." -msgstr "" - -msgid "" -"If mountpoint /boot is set, then the partition will also be marked as " -"bootable." -msgstr "" - -msgid "Mountpoint: " -msgstr "" - -msgid "Current free sectors on device {}:" -msgstr "" - -msgid "Total sectors: {}" -msgstr "" - -msgid "Enter the start sector (default: {}): " -msgstr "" - -msgid "" -"Enter the end sector of the partition (percentage or block number, default: " -"{}): " -msgstr "" - -msgid "This will remove all newly added partitions, continue?" -msgstr "" - -#, python-brace-format -msgid "Partition management: {}" -msgstr "" - -#, python-brace-format -msgid "Total length: {}" -msgstr "" - -msgid "Encryption type" -msgstr "" - -msgid "Iteration time" -msgstr "" - -msgid "Enter iteration time for LUKS encryption (in milliseconds)" -msgstr "" - -msgid "Higher values increase security but slow down boot time" -msgstr "" - -msgid "Default: 10000ms, Recommended range: 1000-60000" -msgstr "" - -msgid "Iteration time cannot be empty" -msgstr "" - -msgid "Iteration time must be at least 100ms" -msgstr "" - -msgid "Iteration time must be at most 120000ms" -msgstr "" - -msgid "Please enter a valid number" -msgstr "" - -msgid "Partitions" -msgstr "" - -msgid "No HSM devices available" -msgstr "" - -msgid "Partitions to be encrypted" -msgstr "" - -msgid "Select disk encryption option" -msgstr "" - -msgid "Select a FIDO2 device to use for HSM" -msgstr "" - -msgid "Use a best-effort default partition layout" -msgstr "" - -msgid "Manual Partitioning" -msgstr "" - -msgid "Pre-mounted configuration" -msgstr "" - -msgid "Unknown" -msgstr "" - -msgid "Partition encryption" -msgstr "" - -#, python-brace-format -msgid " ! Formatting {} in " -msgstr "" - -msgid "← Back" -msgstr "" - -msgid "Disk encryption" -msgstr "" - -msgid "Configuration" -msgstr "" - -msgid "Password" -msgstr "" - -msgid "All settings will be reset, are you sure?" -msgstr "" - -msgid "Back" -msgstr "" - -msgid "Please chose which greeter to install for the chosen profiles: {}" -msgstr "" - -#, python-brace-format -msgid "Environment type: {}" -msgstr "" - -msgid "" -"The proprietary Nvidia driver is not supported by Sway. It is likely that " -"you will run into issues, are you okay with that?" -msgstr "" - -msgid "Installed packages" -msgstr "" - -msgid "Add profile" -msgstr "" - -msgid "Edit profile" -msgstr "" - -msgid "Delete profile" -msgstr "" - -msgid "Profile name: " -msgstr "" - -msgid "The profile name you entered is already in use. Try again" -msgstr "" - -msgid "" -"Packages to be install with this profile (space separated, leave blank to " -"skip): " -msgstr "" - -msgid "" -"Services to be enabled with this profile (space separated, leave blank to " -"skip): " -msgstr "" - -msgid "Should this profile be enabled for installation?" -msgstr "" - -msgid "Create your own" -msgstr "" - -msgid "" -"\n" -"Select a graphics driver or leave blank to install all open-source drivers" -msgstr "" - -msgid "" -"Sway needs access to your seat (collection of hardware devices i.e. " -"keyboard, mouse, etc)" -msgstr "" - -msgid "" -"\n" -"\n" -"Choose an option to give Sway access to your hardware" -msgstr "" - -msgid "Graphics driver" -msgstr "" - -msgid "Greeter" -msgstr "" - -msgid "Please chose which greeter to install" -msgstr "" - -msgid "This is a list of pre-programmed default_profiles" -msgstr "" - -msgid "Disk configuration" -msgstr "" - -msgid "Profiles" -msgstr "" - -msgid "Finding possible directories to save configuration files ..." -msgstr "" - -msgid "Select directory (or directories) for saving configuration files" -msgstr "" - -msgid "Add a custom mirror" -msgstr "" - -msgid "Change custom mirror" -msgstr "" - -msgid "Delete custom mirror" -msgstr "" - -msgid "Enter name (leave blank to skip): " -msgstr "" - -msgid "Enter url (leave blank to skip): " -msgstr "" - -msgid "Select signature check option" -msgstr "" - -msgid "Select signature option" -msgstr "" - -msgid "Custom mirrors" -msgstr "" - -msgid "Defined" -msgstr "" - -msgid "Save user configuration (including disk layout)" -msgstr "" - -msgid "" -"Enter a directory for the configuration(s) to be saved (tab completion " -"enabled)\n" -"Save directory: " -msgstr "" - -msgid "" -"Do you want to save {} configuration file(s) in the following location?\n" -"\n" -"{}" -msgstr "" - -msgid "Saving {} configuration files to {}" -msgstr "" - -msgid "Mirrors" -msgstr "" - -msgid "Mirror regions" -msgstr "" - -msgid "" -" - Maximum value : {} ( Allows {} parallel downloads, allows " -"{max_downloads+1} downloads at a time )" -msgstr "" - -msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]" -msgstr "" - -msgid "Locales" -msgstr "" - -msgid "" -"Use NetworkManager (necessary to configure internet graphically in GNOME and " -"KDE)" -msgstr "" - -msgid "Total: {} / {}" -msgstr "" - -msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..." -msgstr "" - -msgid "If no unit is provided, the value is interpreted as sectors" -msgstr "" - -msgid "Enter start (default: sector {}): " -msgstr "" - -msgid "Enter end (default: {}): " -msgstr "" - -msgid "Unable to determine fido2 devices. Is libfido2 installed?" -msgstr "" - -msgid "Path" -msgstr "" - -msgid "Manufacturer" -msgstr "" - -msgid "Product" -msgstr "" - -#, python-brace-format -msgid "Invalid configuration: {}" -msgstr "" - -msgid "Ready to install" -msgstr "" - -msgid "Disks" -msgstr "" - -msgid "Packages" -msgstr "" - -msgid "Network" -msgstr "" - -msgid "Locale" -msgstr "" - -msgid "Type" -msgstr "" - -msgid "" -"This option enables the number of parallel downloads that can occur during " -"package downloads" -msgstr "" - -msgid "" -"Enter the number of parallel downloads to be enabled.\n" -"\n" -"Note:\n" -msgstr "" - -#, python-brace-format -msgid "" -" - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" -msgstr "" - -msgid "" -" - Disable/Default : 0 ( Disables parallel downloading, allows only 1 " -"download at a time )\n" -msgstr "" - -msgid "Invalid input! Try again with a valid input [or 0 to disable]" -msgstr "" - -msgid "" -"Hyprland needs access to your seat (collection of hardware devices i.e. " -"keyboard, mouse, etc)" -msgstr "" - -msgid "" -"\n" -"\n" -"Choose an option to give Hyprland access to your hardware" -msgstr "" - -msgid "" -"All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..." -msgstr "" - -msgid "Would you like to use unified kernel images?" -msgstr "" - -msgid "Unified kernel images" -msgstr "" - -msgid "Waiting for time sync (timedatectl show) to complete." -msgstr "" - -msgid "" -"Time syncronization not completing, while you wait - check the docs for " -"workarounds: https://archinstall.readthedocs.io/" -msgstr "" - -msgid "" -"Skipping waiting for automatic time sync (this can cause issues if time is " -"out of sync during installation)" -msgstr "" - -msgid "" -"Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete." -msgstr "" - -msgid "Selected profiles: " -msgstr "" - -msgid "" -"Time synchronization not completing, while you wait - check the docs for " -"workarounds: https://archinstall.readthedocs.io/" -msgstr "" - -msgid "Mark/Unmark as nodatacow" -msgstr "" - -msgid "Would you like to use compression or disable CoW?" -msgstr "" - -msgid "Use compression" -msgstr "" - -msgid "Disable Copy-on-Write" -msgstr "" - -msgid "" -"Provides a selection of desktop environments and tiling window managers, " -"e.g. GNOME, KDE Plasma, Sway" -msgstr "" - -#, python-brace-format -msgid "Configuration type: {}" -msgstr "" - -msgid "LVM configuration type" -msgstr "" - -msgid "" -"LVM disk encryption with more than 2 partitions is currently not supported" -msgstr "" - -msgid "" -"Use NetworkManager (necessary to configure internet graphically in GNOME and " -"KDE Plasma)" -msgstr "" - -msgid "Select a LVM option" -msgstr "" - -msgid "Partitioning" -msgstr "" - -msgid "Logical Volume Management (LVM)" -msgstr "" - -msgid "Physical volumes" -msgstr "" - -msgid "Volumes" -msgstr "" - -msgid "LVM volumes" -msgstr "" - -msgid "LVM volumes to be encrypted" -msgstr "" - -msgid "Select which LVM volumes to encrypt" -msgstr "" - -msgid "Default layout" -msgstr "" - -msgid "No Encryption" -msgstr "" - -msgid "LUKS" -msgstr "" - -msgid "LVM on LUKS" -msgstr "" - -msgid "LUKS on LVM" -msgstr "" - -msgid "Yes" -msgstr "" - -msgid "No" -msgstr "" - -msgid "Archinstall help" -msgstr "" - -msgid " (default)" -msgstr "" - -msgid "Press Ctrl+h for help" -msgstr "" - -msgid "Choose an option to give Sway access to your hardware" -msgstr "" - -msgid "Seat access" -msgstr "" - -msgid "Mountpoint" -msgstr "" - -msgid "HSM" -msgstr "" - -msgid "Enter disk encryption password (leave blank for no encryption)" -msgstr "" - -msgid "Disk encryption password" -msgstr "" - -msgid "Partition - New" -msgstr "" - -msgid "Filesystem" -msgstr "" - -msgid "Invalid size" -msgstr "" - -msgid "Start (default: sector {}): " -msgstr "" - -msgid "End (default: {}): " -msgstr "" - -msgid "Subvolume name" -msgstr "" - -msgid "Disk configuration type" -msgstr "" - -msgid "Root mount directory" -msgstr "" - -msgid "Select language" -msgstr "" - -msgid "" -"Write additional packages to install (space separated, leave blank to skip)" -msgstr "" - -msgid "Invalid download number" -msgstr "" - -msgid "Number downloads" -msgstr "" - -msgid "The username you entered is invalid" -msgstr "" - -msgid "Username" -msgstr "" - -#, python-brace-format -msgid "Should \"{}\" be a superuser (sudo)?\n" -msgstr "" - -msgid "Interfaces" -msgstr "" - -msgid "You need to enter a valid IP in IP-config mode" -msgstr "" - -msgid "Modes" -msgstr "" - -msgid "IP address" -msgstr "" - -msgid "Enter your gateway (router) IP address (leave blank for none)" -msgstr "" - -msgid "Gateway address" -msgstr "" - -msgid "Enter your DNS servers with space separated (leave blank for none)" -msgstr "" - -msgid "DNS servers" -msgstr "" - -msgid "Configure interfaces" -msgstr "" - -msgid "Kernel" -msgstr "" - -msgid "UEFI is not detected and some options are disabled" -msgstr "" - -msgid "Info" -msgstr "" - -msgid "The proprietary Nvidia driver is not supported by Sway." -msgstr "" - -msgid "It is likely that you will run into issues, are you okay with that?" -msgstr "" - -msgid "Main profile" -msgstr "" - -msgid "Confirm password" -msgstr "" - -msgid "The confirmation password did not match, please try again" -msgstr "" - -msgid "Not a valid directory" -msgstr "" - -msgid "Would you like to continue?" -msgstr "" - -msgid "Directory" -msgstr "" - -msgid "" -"Enter a directory for the configuration(s) to be saved (tab completion " -"enabled)" -msgstr "" - -#, python-brace-format -msgid "Do you want to save the configuration file(s) to {}?" -msgstr "" - -msgid "Enabled" -msgstr "" - -msgid "Disabled" -msgstr "" - -msgid "" -"Please submit this issue (and file) to https://github.com/archlinux/" -"archinstall/issues" -msgstr "" - -msgid "Mirror name" -msgstr "" - -msgid "Url" -msgstr "" - -msgid "Select signature check" -msgstr "" - -msgid "Select execution mode" -msgstr "" - -msgid "Press ? for help" -msgstr "" - -msgid "Choose an option to give Hyprland access to your hardware" -msgstr "" - -msgid "Additional repositories" -msgstr "" - -msgid "NTP" -msgstr "" - -msgid "Swap on zram" -msgstr "" - -msgid "Name" -msgstr "" - -msgid "Signature check" -msgstr "" - -#, python-brace-format -msgid "Selected free space segment on device {}:" -msgstr "" - -#, python-brace-format -msgid "Size: {} / {}" -msgstr "" - -#, python-brace-format -msgid "Size (default: {}): " -msgstr "" - -msgid "HSM device" -msgstr "" - -msgid "Some packages could not be found in the repository" -msgstr "" - -msgid "User" -msgstr "" - -msgid "The specified configuration will be applied" -msgstr "" - -msgid "Wipe" -msgstr "" - -msgid "Mark/Unmark as XBOOTLDR" -msgstr "" - -msgid "Loading packages..." -msgstr "" - -msgid "" -"Select any packages from the below list that should be installed additionally" -msgstr "" - -msgid "Add a custom repository" -msgstr "" - -msgid "Change custom repository" -msgstr "" - -msgid "Delete custom repository" -msgstr "" - -msgid "Repository name" -msgstr "" - -msgid "Add a custom server" -msgstr "" - -msgid "Change custom server" -msgstr "" - -msgid "Delete custom server" -msgstr "" - -msgid "Server url" -msgstr "" - -msgid "Select regions" -msgstr "" - -msgid "Add custom servers" -msgstr "" - -msgid "Add custom repository" -msgstr "" - -msgid "Loading mirror regions..." -msgstr "" - -msgid "Mirrors and repositories" -msgstr "" - -msgid "Selected mirror regions" -msgstr "" - -msgid "Custom servers" -msgstr "" - -msgid "Custom repositories" -msgstr "" - -msgid "Only ASCII characters are supported" -msgstr "" - -msgid "Show help" -msgstr "" - -msgid "Exit help" -msgstr "" - -msgid "Preview scroll up" -msgstr "" - -msgid "Preview scroll down" -msgstr "" - -msgid "Move up" -msgstr "" - -msgid "Move down" -msgstr "" - -msgid "Move right" -msgstr "" - -msgid "Move left" -msgstr "" - -msgid "Jump to entry" -msgstr "" - -msgid "Skip selection (if available)" -msgstr "" - -msgid "Reset selection (if available)" -msgstr "" - -msgid "Select on single select" -msgstr "" - -msgid "Select on multi select" -msgstr "" - -msgid "Reset" -msgstr "" - -msgid "Skip selection menu" -msgstr "" - -msgid "Start search mode" -msgstr "" - -msgid "Exit search mode" -msgstr "" - -msgid "General" -msgstr "" - -msgid "Navigation" -msgstr "" - -msgid "Selection" -msgstr "" - -msgid "Search" -msgstr "" - -msgid "Down" -msgstr "" - -msgid "Up" -msgstr "" - -msgid "Confirm" -msgstr "" - -msgid "Focus right" -msgstr "" - -msgid "Focus left" -msgstr "" - -msgid "Toggle" -msgstr "" - -msgid "Show/Hide help" -msgstr "" - -msgid "Quit" -msgstr "" - -msgid "First" -msgstr "" - -msgid "Last" -msgstr "" - -msgid "Select" -msgstr "" - -msgid "Page Up" -msgstr "" - -msgid "Page Down" -msgstr "" - -msgid "Page up" -msgstr "" - -msgid "Page down" -msgstr "" - -msgid "Page Left" -msgstr "" - -msgid "Page Right" -msgstr "" - -msgid "Cursor up" -msgstr "" - -msgid "Cursor down" -msgstr "" - -msgid "Cursor right" -msgstr "" - -msgid "Cursor left" -msgstr "" - -msgid "Top" -msgstr "" - -msgid "Bottom" -msgstr "" - -msgid "Home" -msgstr "" - -msgid "End" -msgstr "" - -msgid "Toggle option" -msgstr "" - -msgid "Scroll Up" -msgstr "" - -msgid "Scroll Down" -msgstr "" - -msgid "Scroll Left" -msgstr "" - -msgid "Scroll Right" -msgstr "" - -msgid "Scroll Home" -msgstr "" - -msgid "Scroll End" -msgstr "" - -msgid "Focus Next" -msgstr "" - -msgid "Focus Previous" -msgstr "" - -msgid "Copy selected text" -msgstr "" - -msgid "" -"labwc needs access to your seat (collection of hardware devices i.e. " -"keyboard, mouse, etc)" -msgstr "" - -msgid "Choose an option to give labwc access to your hardware" -msgstr "" - -msgid "" -"niri needs access to your seat (collection of hardware devices i.e. " -"keyboard, mouse, etc)" -msgstr "" - -msgid "Choose an option to give niri access to your hardware" -msgstr "" - -msgid "Mark/Unmark as ESP" -msgstr "" - -msgid "Package group:" -msgstr "" - -msgid "Exit archinstall" -msgstr "" - -msgid "Reboot system" -msgstr "" - -msgid "chroot into installation for post-installation configurations" -msgstr "" - -msgid "Installation completed" -msgstr "" - -msgid "What would you like to do next?" -msgstr "" - -#, python-brace-format -msgid "Select which mode to configure for \"{}\"" -msgstr "" - -msgid "Incorrect credentials file decryption password" -msgstr "" - -msgid "Incorrect password" -msgstr "" - -msgid "Credentials file decryption password" -msgstr "" - -msgid "Do you want to encrypt the user_credentials.json file?" -msgstr "" - -msgid "Credentials file encryption password" -msgstr "" - -#, python-brace-format -msgid "Repositories: {}" -msgstr "" - -msgid "New version available" -msgstr "" - -msgid "Passwordless login" -msgstr "" - -msgid "Second factor login" -msgstr "" - -msgid "Bluetooth" -msgstr "" - -msgid "Would you like to configure Bluetooth?" -msgstr "" - -msgid "Print service" -msgstr "" - -msgid "Would you like to configure the print service?" -msgstr "" - -msgid "Power management" -msgstr "" - -msgid "Authentication" -msgstr "" - -msgid "Applications" -msgstr "" - -msgid "U2F login method: " -msgstr "" - -msgid "Passwordless sudo: " -msgstr "" - -#, python-brace-format -msgid "Btrfs snapshot type: {}" -msgstr "" - -msgid "Syncing the system..." -msgstr "" - -msgid "Value cannot be empty" -msgstr "" - -msgid "Snapshot type" -msgstr "" - -#, python-brace-format -msgid "Snapshot type: {}" -msgstr "" - -msgid "U2F login setup" -msgstr "" - -msgid "No U2F devices found" -msgstr "" - -msgid "U2F Login Method" -msgstr "" - -msgid "Enable passwordless sudo?" -msgstr "" - -#, python-brace-format -msgid "Setting up U2F device for user: {}" -msgstr "" - -msgid "" -"You may need to enter the PIN and then touch your U2F device to register it" -msgstr "" - -msgid "Starting device modifications in " -msgstr "" - -msgid "No network connection found" -msgstr "" - -msgid "Would you like to connect to a Wifi?" -msgstr "" - -msgid "No wifi interface found" -msgstr "" - -msgid "Select wifi network to connect to" -msgstr "" - -msgid "Scanning wifi networks..." -msgstr "" - -msgid "No wifi networks found" -msgstr "" - -msgid "Failed setting up wifi" -msgstr "" - -msgid "Enter wifi password" -msgstr "" - -msgid "Ok" -msgstr "" - -msgid "Removable" -msgstr "" - -msgid "Install to removable location" -msgstr "" - -msgid "Will install to /EFI/BOOT/ (removable location)" -msgstr "" - -msgid "Will install to standard location with NVRAM entry" -msgstr "" - -msgid "" -"Would you like to install the bootloader to the default removable media " -"search location?" -msgstr "" - -msgid "" -"This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is " -"useful for:" -msgstr "" - -msgid "USB drives or other portable external media." -msgstr "" - -msgid "Systems where you want the disk to be bootable on any computer." -msgstr "" - -msgid "Firmware that does not properly support NVRAM boot entries." -msgstr "" - -msgid "Will install to /EFI/BOOT/ (removable location, safe default)" -msgstr "" - -msgid "Will install to custom location with NVRAM entry" -msgstr "" - -msgid "" -"Firmware that does not properly support NVRAM boot entries like most MSI " -"motherboards," -msgstr "" - -msgid "most Apple Macs, many laptops..." -msgstr "" - -msgid "Language" -msgstr "" - -msgid "Compression algorithm" -msgstr "" - -msgid "" -"Only packages such as base, sudo, linux, linux-firmware, efibootmgr and " -"optional profile packages are installed." -msgstr "" - -msgid "Select zram compression algorithm:" -msgstr "" - -msgid "Use Network Manager (default backend)" -msgstr "" - -msgid "Use Network Manager (iwd backend)" -msgstr "" - -msgid "Firewall" -msgstr "" - -msgid "Additional fonts" -msgstr "" - -msgid "Select font packages to install" -msgstr "" - -msgid "Unicode font coverage for most languages" -msgstr "" - -msgid "color emoji for browsers and apps" -msgstr "" - -msgid "Chinese, Japanese, Korean characters" -msgstr "" - -msgid "Select audio configuration" -msgstr "" - -msgid "Enter credentials file decryption password" -msgstr "" - -msgid "Enter root password" -msgstr "" - -msgid "Select bootloader to install" -msgstr "" - -msgid "Configuration preview" -msgstr "" - -msgid "Enter a directory for the configuration(s) to be saved" -msgstr "" - -msgid "Select encryption type" -msgstr "" - -msgid "Select disks for the installation" -msgstr "" - -msgid "Enter a mountpoint" -msgstr "" - -#, python-brace-format -msgid "Enter a size (default: {}): " -msgstr "" - -msgid "Enter subvolume name" -msgstr "" - -msgid "Enter subvolume mountpoint" -msgstr "" - -msgid "Select a disk configuration" -msgstr "" - -msgid "Enter root mount directory" -msgstr "" - -msgid "You will use whatever drive-setup is mounted at the specified directory" -msgstr "" - -msgid "WARNING: Archinstall won't check the suitability of this setup" -msgstr "" - -msgid "Select main filesystem" -msgstr "" - -msgid "Enter a hostname" -msgstr "" - -msgid "Select timezone" -msgstr "" - -msgid "Enter the number of parallel downloads to be enabled" -msgstr "" - -#, python-brace-format -msgid "Value must be between 1 and {}" -msgstr "" - -msgid "Select which kernel(s) to install" -msgstr "" - -msgid "Enter a respository name" -msgstr "" - -msgid "Enter the repository url" -msgstr "" - -msgid "Enter server url" -msgstr "" - -msgid "Select mirror regions to be enabled" -msgstr "" - -msgid "Select optional repositories to be enabled" -msgstr "" - -msgid "Select an interface" -msgstr "" - -msgid "Choose network configuration" -msgstr "" - -msgid "Recommended: Network Manager for desktop, Manual for server" -msgstr "" - -msgid "" -"Warning: no network configuration selected. Network will need to be set up " -"manually on the installed system." -msgstr "" - -msgid "No packages found" -msgstr "" - -msgid "Select which greeter to install" -msgstr "" - -msgid "Select a profile type" -msgstr "" - -msgid "Enter new password" -msgstr "" - -msgid "Enter a username" -msgstr "" - -msgid "Enter a password" -msgstr "" - -msgid "The password did not match, please try again" -msgstr "" - -msgid "Password strength: Weak" -msgstr "" - -msgid "Password strength: Moderate" -msgstr "" - -msgid "Password strength: Strong" -msgstr "" - -msgid "" -"The selected desktop profile requires a regular user to log in via the " -"greeter" -msgstr "" - -#, python-brace-format -msgid "Environment type: {} {}" -msgstr "" - -msgid "Input cannot be empty" -msgstr "" - msgid "Recommended" msgstr "" @@ -2266,34 +22,15 @@ msgstr "" msgid "Minimal KDE Plasma installation" msgstr "" +msgid "Type" +msgstr "" + msgid "Description" msgstr "" msgid "Select a flavor of KDE Plasma to install" msgstr "" -msgid "Arial/Times/Courier replacement, Cyrillic support for Steam/games" -msgstr "" - -msgid "wide Unicode coverage, good fallback font" -msgstr "" - -#, python-brace-format -msgid "Setting up U2F login: {u2f_config.u2f_login_method.value}" -msgstr "" - -#, python-brace-format -msgid "Default: {DEFAULT_ITER_TIME}ms, Recommended range: 1000-60000" -msgstr "" - -#, python-brace-format -msgid "Setting up U2F login: {}" -msgstr "" - -#, python-brace-format -msgid "Default: {}ms, Recommended range: 1000-60000" -msgstr "" - #, python-brace-format msgid "{} needs access to your seat" msgstr "" @@ -2306,17 +43,50 @@ msgid "Choose an option how to give {} access to your hardware" msgstr "" #, python-brace-format -msgid "About to upload \"{}\" to the publicly accessible {}" -msgstr "" - -msgid "Do you want to continue?" +msgid "Environment type: {} {}" msgstr "" #, python-brace-format -msgid "Log uploaded successfully. URL: {}" +msgid "Environment type: {}" msgstr "" -msgid "Failed to upload log." +msgid "Installed packages" +msgstr "" + +msgid "Bluetooth" +msgstr "" + +msgid "Audio" +msgstr "" + +msgid "Print service" +msgstr "" + +msgid "Power management" +msgstr "" + +msgid "Firewall" +msgstr "" + +msgid "Additional fonts" +msgstr "" + +msgid "Enabled" +msgstr "" + +msgid "Disabled" +msgstr "" + +msgid "Would you like to configure Bluetooth?" +msgstr "" + +msgid "Would you like to configure the print service?" +msgstr "" + +msgid "Select audio configuration" +msgstr "" + +msgid "Select font packages to install" msgstr "" msgid "ArchInstall Language" @@ -2328,12 +98,54 @@ msgstr "" msgid "Installation Script" msgstr "" +msgid "Locales" +msgstr "" + +msgid "Disk configuration" +msgstr "" + +msgid "Profile" +msgstr "" + +msgid "Mirrors and repositories" +msgstr "" + +msgid "Network" +msgstr "" + +msgid "Bootloader" +msgstr "" + msgid "Application" msgstr "" +msgid "Authentication" +msgstr "" + +msgid "Swap" +msgstr "" + +msgid "Hostname" +msgstr "" + +msgid "Kernels" +msgstr "" + +msgid "Automatic time sync (NTP)" +msgstr "" + +msgid "Timezone" +msgstr "" + msgid "Services" msgstr "" +msgid "Additional packages" +msgstr "" + +msgid "Pacman" +msgstr "" + msgid "Custom commands" msgstr "" @@ -2343,6 +155,676 @@ msgstr "" msgid "Root encrypted password" msgstr "" +msgid "Disk encryption password" +msgstr "" + +msgid "Incorrect credentials file decryption password" +msgstr "" + +msgid "Enter credentials file decryption password" +msgstr "" + +msgid "Incorrect password" +msgstr "" + +#, python-brace-format +msgid "Setting up U2F login: {}" +msgstr "" + +#, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "" + +msgid "" +"You may need to enter the PIN and then touch your U2F device to register it" +msgstr "" + +msgid "Root password" +msgstr "" + +msgid "User account" +msgstr "" + +msgid "U2F login setup" +msgstr "" + +msgid "U2F login method: " +msgstr "" + +msgid "Passwordless sudo: " +msgstr "" + +msgid "No U2F devices found" +msgstr "" + +msgid "Enter root password" +msgstr "" + +msgid "Enable passwordless sudo?" +msgstr "" + +msgid "Unified kernel images" +msgstr "" + +msgid "Install to removable location" +msgstr "" + +msgid "Will install to /EFI/BOOT/ (removable location, safe default)" +msgstr "" + +msgid "Will install to custom location with NVRAM entry" +msgstr "" + +msgid "Would you like to use unified kernel images?" +msgstr "" + +msgid "" +"Would you like to install the bootloader to the default removable media " +"search location?" +msgstr "" + +msgid "" +"This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is " +"useful for:" +msgstr "" + +msgid "" +"Firmware that does not properly support NVRAM boot entries like most MSI " +"motherboards," +msgstr "" + +msgid "most Apple Macs, many laptops..." +msgstr "" + +msgid "USB drives or other portable external media." +msgstr "" + +msgid "Systems where you want the disk to be bootable on any computer." +msgstr "" + +msgid "Select bootloader to install" +msgstr "" + +msgid "UEFI is not detected and some options are disabled" +msgstr "" + +msgid "The specified configuration will be applied" +msgstr "" + +msgid "Would you like to continue?" +msgstr "" + +msgid "Configuration preview" +msgstr "" + +msgid "" +"Warning: no network configuration selected. Network will need to be set up " +"manually on the installed system." +msgstr "" + +msgid "No configuration" +msgstr "" + +msgid "Save user configuration (including disk layout)" +msgstr "" + +msgid "Save user credentials" +msgstr "" + +msgid "Save all" +msgstr "" + +msgid "Enter a directory for the configuration(s) to be saved" +msgstr "" + +#, python-brace-format +msgid "Do you want to save the configuration file(s) to {}?" +msgstr "" + +msgid "Do you want to encrypt the user_credentials.json file?" +msgstr "" + +msgid "Credentials file encryption password" +msgstr "" + +msgid "Partitioning" +msgstr "" + +msgid "Disk encryption" +msgstr "" + +#, python-brace-format +msgid "Configuration type: {}" +msgstr "" + +msgid "Mountpoint" +msgstr "" + +msgid "Configuration" +msgstr "" + +msgid "Wipe" +msgstr "" + +msgid "Physical volumes" +msgstr "" + +msgid "Volumes" +msgstr "" + +#, python-brace-format +msgid "Snapshot type: {}" +msgstr "" + +msgid "" +"LVM disk encryption with more than 2 partitions is currently not supported" +msgstr "" + +msgid "Encryption type" +msgstr "" + +msgid "Password" +msgstr "" + +msgid "Iteration time" +msgstr "" + +msgid "Select disks for the installation" +msgstr "" + +msgid "Partitions" +msgstr "" + +msgid "Select a disk configuration" +msgstr "" + +msgid "Enter root mount directory" +msgstr "" + +msgid "You will use whatever drive-setup is mounted at the specified directory" +msgstr "" + +msgid "WARNING: Archinstall won't check the suitability of this setup" +msgstr "" + +msgid "Select main filesystem" +msgstr "" + +msgid "Would you like to use compression or disable CoW?" +msgstr "" + +msgid "Use compression" +msgstr "" + +msgid "Disable Copy-on-Write" +msgstr "" + +msgid "Would you like to use BTRFS subvolumes with a default structure?" +msgstr "" + +msgid "Would you like to create a separate partition for /home?" +msgstr "" + +msgid "" +"The selected drives do not have the minimum capacity required for an " +"automatic suggestion\n" +msgstr "" + +#, python-brace-format +msgid "Minimum capacity for /home partition: {}GiB\n" +msgstr "" + +#, python-brace-format +msgid "Minimum capacity for Arch Linux partition: {}GiB" +msgstr "" + +msgid "Encryption password" +msgstr "" + +msgid "LVM volumes" +msgstr "" + +msgid "HSM" +msgstr "" + +msgid "Partitions to be encrypted" +msgstr "" + +msgid "LVM volumes to be encrypted" +msgstr "" + +msgid "HSM device" +msgstr "" + +msgid "Select encryption type" +msgstr "" + +msgid "Enter disk encryption password (leave blank for no encryption)" +msgstr "" + +msgid "Select a FIDO2 device to use for HSM" +msgstr "" + +msgid "Enter iteration time for LUKS encryption (in milliseconds)" +msgstr "" + +msgid "Higher values increase security but slow down boot time" +msgstr "" + +#, python-brace-format +msgid "Default: {}ms, Recommended range: 1000-60000" +msgstr "" + +msgid "Iteration time must be at least 100ms" +msgstr "" + +msgid "Iteration time must be at most 120000ms" +msgstr "" + +msgid "Please enter a valid number" +msgstr "" + +msgid "Suggest partition layout" +msgstr "" + +msgid "Remove all newly added partitions" +msgstr "" + +msgid "Assign mountpoint" +msgstr "" + +msgid "Mark/Unmark to be formatted (wipes data)" +msgstr "" + +msgid "Mark/Unmark as bootable" +msgstr "" + +msgid "Mark/Unmark as ESP" +msgstr "" + +msgid "Mark/Unmark as XBOOTLDR" +msgstr "" + +msgid "Change filesystem" +msgstr "" + +msgid "Mark/Unmark as compressed" +msgstr "" + +msgid "Mark/Unmark as nodatacow" +msgstr "" + +msgid "Set subvolumes" +msgstr "" + +msgid "Delete partition" +msgstr "" + +#, python-brace-format +msgid "Partition management: {}" +msgstr "" + +#, python-brace-format +msgid "Total length: {}" +msgstr "" + +msgid "Partition - New" +msgstr "" + +msgid "Partition" +msgstr "" + +msgid "" +"This partition is currently encrypted, to format it a filesystem has to be " +"specified" +msgstr "" + +msgid "" +"Partition mount-points are relative to inside the installation, the boot " +"would be /boot as an example." +msgstr "" + +msgid "Enter a mountpoint" +msgstr "" + +msgid "Invalid size" +msgstr "" + +#, python-brace-format +msgid "Selected free space segment on device {}:" +msgstr "" + +#, python-brace-format +msgid "Size: {} / {}" +msgstr "" + +msgid "" +"All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..." +msgstr "" + +msgid "If no unit is provided, the value is interpreted as sectors" +msgstr "" + +#, python-brace-format +msgid "Enter a size (default: {}): " +msgstr "" + +msgid "This will remove all newly added partitions, continue?" +msgstr "" + +msgid "Add subvolume" +msgstr "" + +msgid "Edit subvolume" +msgstr "" + +msgid "Delete subvolume" +msgstr "" + +msgid "Value cannot be empty" +msgstr "" + +msgid "Enter subvolume name" +msgstr "" + +msgid "Subvolume name" +msgstr "" + +msgid "Enter subvolume mountpoint" +msgstr "" + +msgid "Exit archinstall" +msgstr "" + +msgid "Reboot system" +msgstr "" + +msgid "chroot into installation for post-installation configurations" +msgstr "" + +msgid "" +"Would you like to use automatic time synchronization (NTP) with the default " +"time servers?\n" +msgstr "" + +msgid "" +"Hardware time and other post-configuration steps might be required in order " +"for NTP to work.\n" +"For more information, please check the Arch wiki" +msgstr "" + +msgid "Enter a hostname" +msgstr "" + +msgid "Select timezone" +msgstr "" + +msgid "What would you like to do next?" +msgstr "" + +msgid "Select which kernel(s) to install" +msgstr "" + +msgid "" +"For the best compatibility with your AMD hardware, you may want to use " +"either the all open-source or AMD / ATI options." +msgstr "" + +msgid "" +"For the best compatibility with your Intel hardware, you may want to use " +"either the all open-source or Intel options.\n" +msgstr "" + +msgid "" +"For the best compatibility with your Nvidia hardware, you may want to use " +"the Nvidia proprietary driver.\n" +msgstr "" + +msgid "Would you like to use swap on zram?" +msgstr "" + +msgid "Select zram compression algorithm:" +msgstr "" + +msgid "Archinstall language" +msgstr "" + +msgid "Applications" +msgstr "" + +msgid "Network configuration" +msgstr "" + +msgid "Save configuration" +msgstr "" + +msgid "Install" +msgstr "" + +msgid "Abort" +msgstr "" + +msgid "" +"Either root-password or at least 1 user with sudo privileges must be " +"specified" +msgstr "" + +msgid "" +"The selected desktop profile requires a regular user to log in via the " +"greeter" +msgstr "" + +msgid "Language" +msgstr "" + +msgid "NTP" +msgstr "" + +msgid "LVM configuration type" +msgstr "" + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "" + +msgid "Swap on zram" +msgstr "" + +msgid "Compression algorithm" +msgstr "" + +msgid "Parallel Downloads" +msgstr "" + +msgid "Color" +msgstr "" + +msgid "Kernel" +msgstr "" + +msgid "Missing configurations:\n" +msgstr "" + +#, python-brace-format +msgid "Invalid configuration: {}" +msgstr "" + +msgid "Ready to install" +msgstr "" + +msgid "Profiles" +msgstr "" + +msgid "Graphics driver" +msgstr "" + +msgid "Greeter" +msgstr "" + +msgid "Selected mirror regions" +msgstr "" + +msgid "Custom servers" +msgstr "" + +msgid "Optional repositories" +msgstr "" + +msgid "Custom repositories" +msgstr "" + +#, python-brace-format +msgid "[!] A log file has been created here: {}" +msgstr "" + +msgid "" +"Please submit this issue (and file) to https://github.com/archlinux/" +"archinstall/issues" +msgstr "" + +msgid "Syncing the system..." +msgstr "" + +msgid "Waiting for time sync (timedatectl show) to complete." +msgstr "" + +msgid "" +"Time synchronization not completing, while you wait - check the docs for " +"workarounds: https://archinstall.readthedocs.io/" +msgstr "" + +msgid "" +"Skipping waiting for automatic time sync (this can cause issues if time is " +"out of sync during installation)" +msgstr "" + +msgid "" +"Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete." +msgstr "" + +msgid "Keyboard layout" +msgstr "" + +msgid "Locale language" +msgstr "" + +msgid "Locale encoding" +msgstr "" + +msgid "Console font" +msgstr "" + +msgid "Back" +msgstr "" + +msgid "Are you sure you want to reset this setting?" +msgstr "" + +msgid "Confirm and exit" +msgstr "" + +msgid "Cancel" +msgstr "" + +msgid "Password strength: Weak" +msgstr "" + +msgid "Password strength: Moderate" +msgstr "" + +msgid "Password strength: Strong" +msgstr "" + +msgid "Confirm password" +msgstr "" + +msgid "The password did not match, please try again" +msgstr "" + +msgid "Not a valid directory" +msgstr "" + +msgid "Do you really want to abort?" +msgstr "" + +msgid "Add a custom repository" +msgstr "" + +msgid "Change custom repository" +msgstr "" + +msgid "Delete custom repository" +msgstr "" + +msgid "Enter a repository name" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "Enter the repository url" +msgstr "" + +msgid "Url" +msgstr "" + +msgid "Select signature check" +msgstr "" + +msgid "Signature check" +msgstr "" + +msgid "Select signature option" +msgstr "" + +msgid "Add a custom server" +msgstr "" + +msgid "Change custom server" +msgstr "" + +msgid "Delete custom server" +msgstr "" + +msgid "Enter server url" +msgstr "" + +msgid "Select regions" +msgstr "" + +msgid "Add custom servers" +msgstr "" + +msgid "Add custom repository" +msgstr "" + +msgid "Additional repositories" +msgstr "" + +msgid "Loading mirror regions..." +msgstr "" + +msgid "Select mirror regions to be enabled" +msgstr "" + +msgid "Select optional repositories to be enabled" +msgstr "" + +msgid "Unicode font coverage for most languages" +msgstr "" + +msgid "color emoji for browsers and apps" +msgstr "" + +msgid "Chinese, Japanese, Korean characters" +msgstr "" + +msgid "Arial/Times/Courier replacement, Cyrillic support for Steam/games" +msgstr "" + +msgid "wide Unicode coverage, good fallback font" +msgstr "" + msgid "Zram enabled" msgstr "" @@ -2372,6 +854,12 @@ msgstr "" msgid "Extra fonts \"{}\"" msgstr "" +msgid "Passwordless login" +msgstr "" + +msgid "Second factor login" +msgstr "" + msgid "Root password set" msgstr "" @@ -2389,6 +877,18 @@ msgstr "" msgid "UKI enabled" msgstr "" +msgid "Removable" +msgstr "" + +msgid "Use a best-effort default partition layout" +msgstr "" + +msgid "Manual Partitioning" +msgstr "" + +msgid "Pre-mounted configuration" +msgstr "" + msgid "Default" msgstr "" @@ -2417,6 +917,24 @@ msgstr "" msgid "Btrfs snapshot \"{}\"" msgstr "" +msgid "Unknown" +msgstr "" + +msgid "Default layout" +msgstr "" + +msgid "No Encryption" +msgstr "" + +msgid "LUKS" +msgstr "" + +msgid "LVM on LUKS" +msgstr "" + +msgid "LUKS on LVM" +msgstr "" + #, python-brace-format msgid "Keyboard layout \"{}\"" msgstr "" @@ -2447,9 +965,24 @@ msgstr "" msgid "Custom repositories set up" msgstr "" +msgid "Copy ISO network configuration to installation" +msgstr "" + +msgid "Use Network Manager (default backend)" +msgstr "" + +msgid "Use Network Manager (iwd backend)" +msgstr "" + msgid "Use standalone iwd" msgstr "" +msgid "Manual configuration" +msgstr "" + +msgid "Package group:" +msgstr "" + msgid "Color enabled" msgstr "" @@ -2461,5 +994,217 @@ msgstr "" msgid "{} greeter" msgstr "" -msgid "Enter a repository name" +msgid "very weak" +msgstr "" + +msgid "weak" +msgstr "" + +msgid "moderate" +msgstr "" + +msgid "strong" +msgstr "" + +msgid "Add interface" +msgstr "" + +msgid "Edit interface" +msgstr "" + +msgid "Delete interface" +msgstr "" + +msgid "Select an interface" +msgstr "" + +msgid "You need to enter a valid IP in IP-config mode" +msgstr "" + +#, python-brace-format +msgid "Select which mode to configure for \"{}\"" +msgstr "" + +#, python-brace-format +msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " +msgstr "" + +msgid "Enter your gateway (router) IP address (leave blank for none)" +msgstr "" + +msgid "Enter your DNS servers with space separated (leave blank for none)" +msgstr "" + +msgid "Choose network configuration" +msgstr "" + +msgid "Recommended: Network Manager for desktop, Manual for server" +msgstr "" + +msgid "Configure interfaces" +msgstr "" + +msgid "No network connection found" +msgstr "" + +msgid "Would you like to connect to a Wifi?" +msgstr "" + +msgid "No wifi interface found" +msgstr "" + +msgid "Select wifi network to connect to" +msgstr "" + +msgid "Scanning wifi networks..." +msgstr "" + +msgid "No wifi networks found" +msgstr "" + +msgid "Failed setting up wifi" +msgstr "" + +msgid "Enter wifi password" +msgstr "" + +#, python-brace-format +msgid "Repositories: {}" +msgstr "" + +msgid "Loading packages..." +msgstr "" + +msgid "No packages found" +msgstr "" + +msgid "" +"Only packages such as base, sudo, linux, linux-firmware, efibootmgr and " +"optional profile packages are installed." +msgstr "" + +msgid "" +"Note: base-devel is no longer installed by default. Add it here if you need " +"build tools." +msgstr "" + +msgid "" +"Select any packages from the below list that should be installed additionally" +msgstr "" + +#, python-brace-format +msgid "Enter the number of parallel downloads (1-{})" +msgstr "" + +#, python-brace-format +msgid "Value must be between 1 and {}" +msgstr "" + +msgid "Enable colored output for pacman" +msgstr "" + +msgid "" +"Pacman is already running, waiting maximum 10 minutes for it to terminate." +msgstr "" + +msgid "" +"Pre-existing pacman lock never exited. Please clean up any existing pacman " +"sessions before using archinstall." +msgstr "" + +msgid "The proprietary Nvidia driver is not supported by Sway." +msgstr "" + +msgid "It is likely that you will run into issues, are you okay with that?" +msgstr "" + +msgid "Selected profiles: " +msgstr "" + +msgid "Select which greeter to install" +msgstr "" + +msgid "Select a profile type" +msgstr "" + +#, python-brace-format +msgid "Unable to fetch profile from specified url: {}" +msgstr "" + +#, python-brace-format +msgid "" +"Profiles must have unique name, but profile definitions with duplicate name " +"found: {}" +msgstr "" + +msgid "Add a user" +msgstr "" + +msgid "Change password" +msgstr "" + +msgid "Promote/Demote user" +msgstr "" + +msgid "Delete User" +msgstr "" + +msgid "User" +msgstr "" + +msgid "Enter new password" +msgstr "" + +msgid "The username you entered is invalid" +msgstr "" + +msgid "Enter a username" +msgstr "" + +msgid "Username" +msgstr "" + +msgid "Enter a password" +msgstr "" + +#, python-brace-format +msgid "Should \"{}\" be a superuser (sudo)?\n" +msgstr "" + +#, python-brace-format +msgid "About to upload \"{}\" to the publicly accessible {}" +msgstr "" + +msgid "Do you want to continue?" +msgstr "" + +#, python-brace-format +msgid "Log uploaded successfully. URL: {}" +msgstr "" + +msgid "Failed to upload log." +msgstr "" + +msgid "Archinstall requires root privileges to run. See --help for more." +msgstr "" + +msgid "New version available" +msgstr "" + +msgid "Starting device modifications in " +msgstr "" + +msgid "Ok" +msgstr "" + +msgid "Input cannot be empty" +msgstr "" + +msgid "Yes" +msgstr "" + +msgid "No" +msgstr "" + +msgid " (default)" msgstr "" diff --git a/archinstall/locales/es/LC_MESSAGES/base.mo b/archinstall/locales/es/LC_MESSAGES/base.mo index 5701d45472451d2476f3d5d88f44cf536839ce2b..91060f90d8de2b32a6a99b8a758a5d45b1050b1a 100644 GIT binary patch delta 12507 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 aHY1iS24W?~Tzc(M>LZGnw%8a__ " -msgstr "[Valor predeterminado: 0] > " - -msgid "To be able to use this translation, please install a font manually that supports the language." -msgstr "Para poder usar esta traducción, instale manualmente una fuente que admita el idioma." - -msgid "The font should be stored as {}" -msgstr "La fuente debe almacenarse como {}" - -msgid "Archinstall requires root privileges to run. See --help for more." -msgstr "Archinstall requiere privilegios de root para ejecutarse. Consulte --help para más información." - -msgid "Select an execution mode" -msgstr "Seleccione un modo de ejecución" - -#, python-brace-format -msgid "Unable to fetch profile from specified url: {}" -msgstr "No se puede recuperar el perfil de la URL especificada: {}" - -#, python-brace-format -msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" -msgstr "Los perfiles deben tener un nombre único, pero se encontraron definiciones de perfil con nombre duplicado: {}" - -msgid "Select one or more devices to use and configure" -msgstr "Seleccione uno o más dispositivos para usar y configurar" - -msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?" -msgstr "Si restablece la selección del dispositivo, esto también restablecerá el diseño actual del disco. ¿Está seguro?" - -msgid "Existing Partitions" -msgstr "Particiones existentes" - -msgid "Select a partitioning option" -msgstr "Seleccione una opción de partición" - -msgid "Enter the root directory of the mounted devices: " -msgstr "Ingrese el directorio raíz de los dispositivos montados: " - -#, python-brace-format -msgid "Minimum capacity for /home partition: {}GiB\n" -msgstr "Capacidad mínima para la partición /home: {}GiB\n" - -#, python-brace-format -msgid "Minimum capacity for Arch Linux partition: {}GiB" -msgstr "Capacidad mínima para la partición Arch Linux: {}GiB" - -msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments" -msgstr "Esta es una lista de profiles_bck preprogramados que podrían facilitar la instalación de cosas como entornos de escritorio" - -msgid "Current profile selection" -msgstr "Selección de perfil actual" - -msgid "Remove all newly added partitions" -msgstr "Eliminar todas las particiones recién agregadas" - -msgid "Assign mountpoint" -msgstr "Asignar punto de montaje" - -msgid "Mark/Unmark to be formatted (wipes data)" -msgstr "Marcar/Desmarcar para formatear (borra datos)" - -msgid "Mark/Unmark as bootable" -msgstr "Marcar/Desmarcar como arrancable" - -msgid "Change filesystem" -msgstr "Cambiar el sistema de archivos" - -msgid "Mark/Unmark as compressed" -msgstr "Marcar/Desmarcar como comprimido" - -msgid "Set subvolumes" -msgstr "Establecer subvolúmenes" - -msgid "Delete partition" -msgstr "Eliminar partición" - -msgid "Partition" -msgstr "Partición" - -msgid "This partition is currently encrypted, to format it a filesystem has to be specified" -msgstr "Esta partición está actualmente cifrada, para formatearla se debe especificar un sistema de archivos" - -msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example." -msgstr "Los puntos de montaje de la partición son relativos al interior de la instalación; el arranque sería /boot como ejemplo." - -msgid "If mountpoint /boot is set, then the partition will also be marked as bootable." -msgstr "Si se establece el punto de montaje /boot, la partición también se marcará como arrancable." - -msgid "Mountpoint: " -msgstr "Punto de montaje: " - -msgid "Current free sectors on device {}:" -msgstr "Sectores libres actuales en el dispositivo {}:" - -msgid "Total sectors: {}" -msgstr "Sectores totales: {}" - -msgid "Enter the start sector (default: {}): " -msgstr "Introduzca el sector de inicio (predeterminado: {}): " - -msgid "Enter the end sector of the partition (percentage or block number, default: {}): " -msgstr "Ingrese el sector final de la partición (porcentaje o número de bloque, predeterminado: {}): " - -msgid "This will remove all newly added partitions, continue?" -msgstr "Esto eliminará todas las particiones recientemente agregadas, ¿continuar?" - -#, python-brace-format -msgid "Partition management: {}" -msgstr "Gestión de particiones: {}" - -#, python-brace-format -msgid "Total length: {}" -msgstr "Largo total: {}" - -msgid "Encryption type" -msgstr "Tipo de cifrado" - -msgid "Iteration time" -msgstr "Tiempo de iteración" - -msgid "Enter iteration time for LUKS encryption (in milliseconds)" -msgstr "Ingrese el tiempo de iteración para cifrado LUKS (en milisegundos)" - -msgid "Higher values increase security but slow down boot time" -msgstr "Valores más grandes mejoran la seguridad pero aumentan el tiempo de arranque" - -msgid "Default: 10000ms, Recommended range: 1000-60000" -msgstr "Predeterminado: 10000ms, Rango recomendado 1000-60000" - -msgid "Iteration time cannot be empty" -msgstr "Tiempo de iteración no puede estar vacío" - -msgid "Iteration time must be at least 100ms" -msgstr "Tiempo de iteración no puede menor a 100ms" - -msgid "Iteration time must be at most 120000ms" -msgstr "Tiempo de iteración no puede ser mayor a 120000ms" - -msgid "Please enter a valid number" -msgstr "Por favor ingrese un número válido" - -msgid "Partitions" -msgstr "Particiones" - -msgid "No HSM devices available" -msgstr "No hay dispositivos HSM disponibles" - -msgid "Partitions to be encrypted" -msgstr "Particiones a cifrar" - -msgid "Select disk encryption option" -msgstr "Seleccione la opción de cifrado de disco" - -msgid "Select a FIDO2 device to use for HSM" -msgstr "Seleccione un dispositivo FIDO2 para usar con HSM" - -msgid "Use a best-effort default partition layout" -msgstr "Utlizar un diseño de partición predeterminado de mejor esfuerzo" - -msgid "Manual Partitioning" -msgstr "Partición manual" - -msgid "Pre-mounted configuration" -msgstr "Configuración premontada" - -msgid "Unknown" -msgstr "Desconocido" - -msgid "Partition encryption" -msgstr "Cifrado de partición" - -#, python-brace-format -msgid " ! Formatting {} in " -msgstr " ! Formateando {} en " - -msgid "← Back" -msgstr "← Regresar" - -msgid "Disk encryption" -msgstr "Cifrado de disco" - -msgid "Configuration" -msgstr "Configuración" - -msgid "Password" -msgstr "Contraseña" - -msgid "All settings will be reset, are you sure?" -msgstr "Todos los ajustes se restablecerán, ¿está seguro?" - -msgid "Back" -msgstr "Regresar" - -msgid "Please chose which greeter to install for the chosen profiles: {}" -msgstr "Por favor, elija qué gestor de inicio de sesión instalar para los perfiles elegidos: {}" - -#, python-brace-format -msgid "Environment type: {}" -msgstr "Tipo de entorno: {}" - -msgid "The proprietary Nvidia driver is not supported by Sway. It is likely that you will run into issues, are you okay with that?" -msgstr "El controlador propietario de Nvidia no es compatible con Sway. Es probable que encuentre problemas, ¿Desear continuar?" - -msgid "Installed packages" -msgstr "Paquetes instalados" - -msgid "Add profile" -msgstr "Agregar perfil" - -msgid "Edit profile" -msgstr "Editar perfil" - -msgid "Delete profile" -msgstr "Eliminar perfil" - -msgid "Profile name: " -msgstr "Nombre de perfil: " - -msgid "The profile name you entered is already in use. Try again" -msgstr "El nombre de perfil que ingresó ya está en uso. Intente nuevamente" - -msgid "Packages to be install with this profile (space separated, leave blank to skip): " -msgstr "Paquetes que se instalarán con este perfil (separados por espacios, déjelo en blanco para omitir): " - -msgid "Services to be enabled with this profile (space separated, leave blank to skip): " -msgstr "Servicios que se activarán con este perfil (separados por espacios, deje en blanco para omitir): " - -msgid "Should this profile be enabled for installation?" -msgstr "¿Debería activarse este perfil para la instalación?" - -msgid "Create your own" -msgstr "Crear tu propio" - -msgid "" -"\n" -"Select a graphics driver or leave blank to install all open-source drivers" -msgstr "" -"\n" -"Seleccione un controlador de gráficos o deje en blanco para instalar todos los controladores de código abierto" - -msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)" -msgstr "Sway necesita acceso a sus dispositivos de hardware (teclado, mouse, etc.)" - -msgid "" -"\n" -"\n" -"Choose an option to give Sway access to your hardware" -msgstr "" -"\n" -"\n" -"Elija una opción para darle a Sway acceso a su hardware" - -msgid "Graphics driver" -msgstr "Controlador de gráficos" - -msgid "Greeter" -msgstr "Gestor de inicio de sesión" - -msgid "Please chose which greeter to install" -msgstr "Por favor, elija qué gestor de inicio de sesión instalar" - -msgid "This is a list of pre-programmed default_profiles" -msgstr "Esta es una lista de default_profiles preprogramados" - -msgid "Disk configuration" -msgstr "Configuración del disco" - -msgid "Profiles" -msgstr "Perfiles" - -msgid "Finding possible directories to save configuration files ..." -msgstr "Encontrar posibles directorios para guardar archivos de configuración..." - -msgid "Select directory (or directories) for saving configuration files" -msgstr "Seleccione el directorio (o directorios) para guardar los archivos de configuración" - -msgid "Add a custom mirror" -msgstr "Agregar un espejo personalizado" - -msgid "Change custom mirror" -msgstr "Cambiar espejo personalizado" - -msgid "Delete custom mirror" -msgstr "Eliminar espejo personalizado" - -msgid "Enter name (leave blank to skip): " -msgstr "Ingrese el nombre (deje en blanco para omitir): " - -msgid "Enter url (leave blank to skip): " -msgstr "Ingrese la URL (deje en blanco para omitir): " - -msgid "Select signature check option" -msgstr "Seleccione la opción de verificación de firma" - -msgid "Select signature option" -msgstr "Seleccione la opción de firma" - -msgid "Custom mirrors" -msgstr "Espejos personalizados" - -msgid "Defined" -msgstr "Definido" - -msgid "Save user configuration (including disk layout)" -msgstr "Guardar la configuración del usuario (incluido el diseño del disco)" - -msgid "" -"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n" -"Save directory: " -msgstr "" -"Ingrese un directorio para guardar las configuraciones (completar con tabulación activado)\n" -"Guardar directorio: " - -msgid "" -"Do you want to save {} configuration file(s) in the following location?\n" -"\n" -"{}" -msgstr "" -"¿Desea guardar {} archivo(s) de configuración en la siguiente ubicación?\n" -"\n" -"{}" - -msgid "Saving {} configuration files to {}" -msgstr "Guardar {} archivos de configuración en {}" - -msgid "Mirrors" -msgstr "Espejos" - -msgid "Mirror regions" -msgstr "Regiones de espejos" - -msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )" -msgstr " - Valor máximo : {} (Permitir {} descargas paralelas, permite {max_downloads+1} descargas simultáneas)" - -msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]" -msgstr "¡Entrada no válida! Intente nuevamente con una entrada válida [1 a {}, o 0 para desactivar]" - -msgid "Locales" -msgstr "Localidades" - -msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)" -msgstr "Usar NetworkManager (necesario para configurar internet gráficamente en GNOME y KDE)" - -msgid "Total: {} / {}" -msgstr "Total: {} / {}" - -msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..." -msgstr "Todos los valores ingresados pueden tener una unidad como sufijo: B, KB, KiB, MB, MiB ..." - -msgid "If no unit is provided, the value is interpreted as sectors" -msgstr "Si no se proporciona ninguna unidad, el valor se interpreta como sectores" - -msgid "Enter start (default: sector {}): " -msgstr "Ingrese el inicio (predeterminado: sector {}): " - -msgid "Enter end (default: {}): " -msgstr "Ingrese el final (predeterminado: {}): " - -msgid "Unable to determine fido2 devices. Is libfido2 installed?" -msgstr "No se pueden determinar los dispositivos fido2. ¿Está instalado libfido2?" - -msgid "Path" -msgstr "Ruta" - -msgid "Manufacturer" -msgstr "Fabricante" - -msgid "Product" -msgstr "Producto" - -#, python-brace-format -msgid "Invalid configuration: {error}" -msgstr "Configuración no válida: {error}" - -msgid "Type" -msgstr "Tipo" - -msgid "This option enables the number of parallel downloads that can occur during package downloads" -msgstr "Esta opción activa la cantidad de descargas paralelas que pueden ocurrir durante las descargas de paquetes" - -msgid "" -"Enter the number of parallel downloads to be enabled.\n" -"\n" -"Note:\n" -msgstr "" -"Ingrese el número de descargas paralelas que se activarán.\n" -"\n" -"Nota:\n" - -#, python-brace-format -msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" -msgstr " - Valor máximo recomendado : {} (Permite {} descargas paralelas simultáneas)" - -msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n" -msgstr " - Desactivar/Predeterminado : 0 (Desactiva la descarga paralela, permite solo 1 descarga simultánea)\n" - -msgid "Invalid input! Try again with a valid input [or 0 to disable]" -msgstr "¡Entrada no válida! Intente nuevamente con una entrada válida [o 0 para desactivar]" - -msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)" -msgstr "Hyprland necesita acceso a su asiento (colección de dispositivos de hardware, es decir, teclado, mouse, etc.)" - -msgid "" -"\n" -"\n" -"Choose an option to give Hyprland access to your hardware" -msgstr "" -"\n" -"\n" -"Elija una opción para darle acceso a Hyprland a su hardware" - -msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..." -msgstr "Todos los valores introducidos pueden tener como sufijo una unidad: %, B, KB, KiB, MB, MiB..." - -msgid "Would you like to use unified kernel images?" -msgstr "¿Le gustaría utilizar imágenes del núcleo unificadas?" - -msgid "Unified kernel images" -msgstr "Imágenes del núcleo unificadas" - -msgid "Waiting for time sync (timedatectl show) to complete." -msgstr "Esperando a que se complete la sincronización de la hora (timedatectl show)." - -msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/" -msgstr "La sincronización de hora no se completa mientras espera - consulte los documentos para encontrar soluciones: https://archinstall.readthedocs.io/" - -msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)" -msgstr "Saltarse la espera de sincronización automática de la hora (esto puede causar problemas si la hora no está sincronizada durante la instalación)" - -msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete." -msgstr "Esperando a que se complete la sincronización del llavero de Arch Linux (archlinux-keyring-wkd-sync)." - -msgid "Selected profiles: " -msgstr "Perfiles seleccionados: " - -msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/" -msgstr "La sincronización de hora no se completa mientras espera - consulte los documentos para encontrar soluciones: https://archinstall.readthedocs.io/" - -msgid "Mark/Unmark as nodatacow" -msgstr "Marcar/Desmarcar como nodatacow" - -msgid "Would you like to use compression or disable CoW?" -msgstr "¿Le gustaría utilizar compresión o desactivar CoW?" - -msgid "Use compression" -msgstr "Usar compresión" - -msgid "Disable Copy-on-Write" -msgstr "Desactivar copia en escritura" - -msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" -msgstr "Proporciona una selección de entornos de escritorio y administradores de ventanas en mosaico, p.e. GNOME, KDE Plasma, Sway" - -#, python-brace-format -msgid "Configuration type: {}" -msgstr "Tipo de configuración: {}" - -msgid "LVM configuration type" -msgstr "Tipo de configuración LVM" - -msgid "LVM disk encryption with more than 2 partitions is currently not supported" -msgstr "Actualmente no se admite el cifrado de disco LVM con más de 2 particiones" - -msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)" -msgstr "Usar NetworkManager (necesario para configurar internet gráficamente en GNOME y KDE Plasma)" - -msgid "Select a LVM option" -msgstr "Seleccione una opción LVM" - -msgid "Partitioning" -msgstr "Particionamiento" - -msgid "Logical Volume Management (LVM)" -msgstr "Gestión de volúmenes lógicos (LVM)" - -msgid "Physical volumes" -msgstr "Volúmenes físicos" - -msgid "Volumes" -msgstr "Volúmenes" - -msgid "LVM volumes" -msgstr "Volúmenes LVM" - -msgid "LVM volumes to be encrypted" -msgstr "Volúmenes LVM a cifrar" - -msgid "Select which LVM volumes to encrypt" -msgstr "Seleccione qué volúmenes LVM cifrar" - -msgid "Default layout" -msgstr "Diseño predeterminado" - -msgid "No Encryption" -msgstr "Sin cifrado" - -msgid "LUKS" -msgstr "LUKS" - -msgid "LVM on LUKS" -msgstr "LVM en LUKS" - -msgid "LUKS on LVM" -msgstr "LUKS en LVM" - -msgid "Yes" -msgstr "Sí" - -msgid "No" -msgstr "No" - -msgid "Archinstall help" -msgstr "Ayuda de archinstall" - -msgid " (default)" -msgstr " (predeterminado)" - -msgid "Press Ctrl+h for help" -msgstr "Presione Ctrl+h para obtener ayuda" - -msgid "Choose an option to give Sway access to your hardware" -msgstr "Elija una opción para darle a Sway acceso a su hardware" - -# maybe "Acceso a la estación" or "Gestión de puestos (seats)" could be better? -msgid "Seat access" -msgstr "Acceso al asiento" - -msgid "Mountpoint" -msgstr "Punto de montaje" - -msgid "HSM" -msgstr "HSM" - -msgid "Enter disk encryption password (leave blank for no encryption)" -msgstr "Ingrese la contraseña de cifrado del disco (deje en blanco si no desea cifrar)" - -msgid "Disk encryption password" -msgstr "Contraseña de cifrado de disco" - -msgid "Partition - New" -msgstr "Partición - Nueva" - -msgid "Filesystem" -msgstr "Sistema de archivos" - -msgid "Invalid size" -msgstr "Tamaño no válido" - -msgid "Start (default: sector {}): " -msgstr "Inicio (predeterminado: sector {}): " - -msgid "End (default: {}): " -msgstr "Fin (predeterminado: {}): " - -msgid "Subvolume name" -msgstr "Nombre del subvolumen" - -msgid "Disk configuration type" -msgstr "Tipo de configuración del disco" - -msgid "Root mount directory" -msgstr "Directorio de montaje raíz" - -msgid "Select language" -msgstr "Seleccionar idioma" - -msgid "Write additional packages to install (space separated, leave blank to skip)" -msgstr "Escriba paquetes adicionales para instalar (separados por espacios, déjelo en blanco para omitir)" - -msgid "Invalid download number" -msgstr "Número de descarga no válido" - -msgid "Number downloads" -msgstr "Número de descargas" - -msgid "The username you entered is invalid" -msgstr "El nombre de usuario ingresado no es válido" - -msgid "Username" -msgstr "Nombre de usuario" - -#, python-brace-format -msgid "Should \"{}\" be a superuser (sudo)?\n" -msgstr "¿\"{}\" debería ser un superusuario (sudo)?\n" - -msgid "Interfaces" -msgstr "Interfaces" - -msgid "You need to enter a valid IP in IP-config mode" -msgstr "Debe ingresar una IP válida en el modo de configuración de IP" - -msgid "Modes" -msgstr "Modos" - -msgid "IP address" -msgstr "Dirección IP" - -msgid "Enter your gateway (router) IP address (leave blank for none)" -msgstr "Ingrese la dirección IP de su puerta de enlace (enrutador) (deje en blanco si no hay ninguna)" - -msgid "Gateway address" -msgstr "Dirección de la puerta de enlace" - -msgid "Enter your DNS servers with space separated (leave blank for none)" -msgstr "Ingrese sus servidores DNS separados por espacios (deje en blanco si no hay ninguno)" - -msgid "DNS servers" -msgstr "Servidores DNS" - -msgid "Configure interfaces" -msgstr "Configurar interfaces" - -msgid "Kernel" -msgstr "Núcleo" - -msgid "UEFI is not detected and some options are disabled" -msgstr "No se detecta UEFI y algunas opciones están desactivadas" - -msgid "Info" -msgstr "Info" - -msgid "The proprietary Nvidia driver is not supported by Sway." -msgstr "El controlador patentado de Nvidia no es compatible con Sway." - -msgid "It is likely that you will run into issues, are you okay with that?" -msgstr "Es probable que tengas problemas. ¿Te parece bien?" - -msgid "Main profile" -msgstr "Perfil principal" - -msgid "Confirm password" -msgstr "Confirmar contraseña" - -msgid "The confirmation password did not match, please try again" -msgstr "La contraseña de confirmación no coincide, por favor intente nuevamente" - -msgid "Not a valid directory" -msgstr "No es un directorio válido" - -msgid "Would you like to continue?" -msgstr "¿Quiere continuar?" - -msgid "Directory" -msgstr "Directorio" - -msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)" -msgstr "Ingrese un directorio para guardar las configuraciones (autocompletado de tabulación activado)" - -#, python-brace-format -msgid "Do you want to save the configuration file(s) to {}?" -msgstr "¿Desea guardar los archivos de configuración en {}?" - -msgid "Enabled" -msgstr "Activado" - -msgid "Disabled" -msgstr "Desactivado" - -msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues" -msgstr "Envíe este problema (y archivo) a https://github.com/archlinux/archinstall/issues" - -msgid "Mirror name" -msgstr "Nombre del espejo" - -msgid "Url" -msgstr "Url" - -msgid "Select signature check" -msgstr "Seleccionar verificación de firma" - -msgid "Select execution mode" -msgstr "Seleccionar modo de ejecución" - -msgid "Press ? for help" -msgstr "Presione ? para obtener ayuda" - -msgid "Choose an option to give Hyprland access to your hardware" -msgstr "Elija una opción para darle a Hyprland acceso a su hardware" - -msgid "Additional repositories" -msgstr "Repositorios adicionales" - -msgid "NTP" -msgstr "NTP" - -msgid "Swap on zram" -msgstr "Swap en zram" - -msgid "Name" -msgstr "Nombre" - -msgid "Signature check" -msgstr "Comprobación de firma" - -#, python-brace-format -msgid "Selected free space segment on device {}:" -msgstr "Segmento de espacio libre seleccionado en el dispositivo {}:" - -#, python-brace-format -msgid "Size: {} / {}" -msgstr "Tamaño: {} / {}" - -#, python-brace-format -msgid "Size (default: {}): " -msgstr "Tamaño (predeterminado: {}): " - -msgid "HSM device" -msgstr "Dispositivo HSM" - -msgid "Some packages could not be found in the repository" -msgstr "No se pudieron encontrar algunos paquetes en el repositorio" - -msgid "User" -msgstr "Usuario" - -msgid "The specified configuration will be applied" -msgstr "Se aplicará la configuración especificada" - -msgid "Wipe" -msgstr "Borrar" - -msgid "Mark/Unmark as XBOOTLDR" -msgstr "Marcar/Desmarcar como XBOOTLDR" - -msgid "Loading packages..." -msgstr "Cargando paquetes..." - -msgid "Select any packages from the below list that should be installed additionally" -msgstr "Seleccione cualquier paquete de la lista a continuación que deba instalarse adicionalmente" - -msgid "Add a custom repository" -msgstr "Agregar un repositorio personalizado" - -msgid "Change custom repository" -msgstr "Cambiar el repositorio personalizado" - -msgid "Delete custom repository" -msgstr "Eliminar repositorio personalizado" - -msgid "Repository name" -msgstr "Nombre del repositorio" - -msgid "Add a custom server" -msgstr "Agregar un servidor personalizado" - -msgid "Change custom server" -msgstr "Cambiar servidor personalizado" - -msgid "Delete custom server" -msgstr "Eliminar servidor personalizado" - -msgid "Server url" -msgstr "URL del servidor" - -msgid "Select regions" -msgstr "Seleccione regiones" - -msgid "Add custom servers" -msgstr "Agregar servidores personalizados" - -msgid "Add custom repository" -msgstr "Agregar repositorio personalizado" - -msgid "Loading mirror regions..." -msgstr "Cargando regiones de espejo..." - -msgid "Mirrors and repositories" -msgstr "Espejos y repositorios" - -msgid "Selected mirror regions" -msgstr "Regiones de espejo seleccionadas" - -msgid "Custom servers" -msgstr "Servidores personalizados" - -msgid "Custom repositories" -msgstr "Repositorios personalizados" - -msgid "Only ASCII characters are supported" -msgstr "Sólo se admiten caracteres ASCII" - -msgid "Show help" -msgstr "Mostrar ayuda" - -msgid "Exit help" -msgstr "Ayuda para salir" - -msgid "Preview scroll up" -msgstr "Subir en vista previa" - -msgid "Preview scroll down" -msgstr "Bajar en vista previa" - -msgid "Move up" -msgstr "Subir" - -msgid "Move down" -msgstr "Bajar" - -msgid "Move right" -msgstr "Mover a la derecha" - -msgid "Move left" -msgstr "Mover a la izquierda" - -msgid "Jump to entry" -msgstr "Saltar a la entrada" - -msgid "Skip selection (if available)" -msgstr "Saltar selección (si está disponible)" - -msgid "Reset selection (if available)" -msgstr "Restablecer selección (si está disponible)" - -msgid "Select on single select" -msgstr "Seleccionar en selección única" - -msgid "Select on multi select" -msgstr "Seleccionar en selección múltiple" - -msgid "Reset" -msgstr "Restablecer" - -msgid "Skip selection menu" -msgstr "Saltar el menú de selección" - -msgid "Start search mode" -msgstr "Iniciar modo de búsqueda" - -msgid "Exit search mode" -msgstr "Salir del modo de búsqueda" - -msgid "General" -msgstr "General" - -msgid "Navigation" -msgstr "Navegación" - -msgid "Selection" -msgstr "Selección" - -msgid "Search" -msgstr "Buscar" - -msgid "Down" -msgstr "Abajo" - -msgid "Up" -msgstr "Arriba" - -msgid "Confirm" -msgstr "Confirmar" - -msgid "Focus right" -msgstr "Enfocar a la derecha" - -msgid "Focus left" -msgstr "Enfocar a la izquierda" - -msgid "Toggle" -msgstr "Alternar" - -msgid "Show/Hide help" -msgstr "Mostrar/Ocultar ayuda" - -msgid "Quit" -msgstr "Salir" - -msgid "First" -msgstr "Primero" - -msgid "Last" -msgstr "Último" - -msgid "Select" -msgstr "Seleccionar" - -msgid "Page Up" -msgstr "Subir página" - -msgid "Page Down" -msgstr "Bajar página" - -msgid "Page up" -msgstr "Subir página" - -msgid "Page down" -msgstr "Bajar página" - -msgid "Page Left" -msgstr "Página izquierda" - -msgid "Page Right" -msgstr "Página derecha" - -msgid "Cursor up" -msgstr "Subir" - -msgid "Cursor down" -msgstr "Cursor hacia abajo" - -msgid "Cursor right" -msgstr "Cursor hacia la derecha" - -msgid "Cursor left" -msgstr "Cursor hacia la izquierda" - -msgid "Top" -msgstr "Arriba" - -msgid "Bottom" -msgstr "Abajo" - -msgid "Home" -msgstr "Inicio" - -msgid "End" -msgstr "Final" - -msgid "Toggle option" -msgstr "Opción de alternancia" - -msgid "Scroll Up" -msgstr "Mover Arriba" - -msgid "Scroll Down" -msgstr "Deslizar hacia abajo" - -msgid "Scroll Left" -msgstr "Mover hacia la izquierda" - -msgid "Scroll Right" -msgstr "Mover hacia la derecha" - -msgid "Scroll Home" -msgstr "Ir al Inicio" - -msgid "Scroll End" -msgstr "Ir al Final" - -msgid "Focus Next" -msgstr "Enfocar a la siguiente" - -msgid "Focus Previous" -msgstr "Enfocar a la anterior" - -msgid "Copy selected text" -msgstr "Copiar texto seleccionado" - -msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)" -msgstr "labwc necesita acceso a su asiento (colección de dispositivos de hardware, es decir, teclado, ratón, etc.)" - -msgid "Choose an option to give labwc access to your hardware" -msgstr "Elija una opción para darle a labwc acceso a su hardware" - -msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)" -msgstr "niri necesita acceso a su asiento (colección de dispositivos de hardware, es decir, teclado, ratón, etc.)" - -msgid "Choose an option to give niri access to your hardware" -msgstr "Elija una opción para darle a niri acceso a su hardware" - -msgid "Mark/Unmark as ESP" -msgstr "Marcar/Desmarcar como ESP" - -msgid "Package group:" -msgstr "Grupo de paquetes:" - -msgid "Exit archinstall" -msgstr "Salir de archinstall" - -msgid "Reboot system" -msgstr "Reiniciar el sistema" - -msgid "chroot into installation for post-installation configurations" -msgstr "Hacer chroot en la instalación para configuraciones posteriores a la instalación" - -msgid "Installation completed" -msgstr "Instalación completada" - -msgid "What would you like to do next?" -msgstr "¿Qué le gustaría hacer a continuación?" - -#, python-brace-format -msgid "Select which mode to configure for \"{}\"" -msgstr "Seleccione qué modo configurar para \"{}\"" - -msgid "Incorrect credentials file decryption password" -msgstr "Contraseña incorrecta para descifrar el archivo de credenciales" - -msgid "Incorrect password" -msgstr "Contraseña incorrecta" - -msgid "Credentials file decryption password" -msgstr "Contraseña para descifrar el archivo de credenciales" - -msgid "Do you want to encrypt the user_credentials.json file?" -msgstr "¿Desea encriptar el archivo user_credentials.json?" - -msgid "Credentials file encryption password" -msgstr "Contraseña para cifrar el archivo de credenciales" - -#, python-brace-format -msgid "Repositories: {}" -msgstr "Repositorios: {}" - -msgid "New version available" -msgstr "Nueva versión disponible" - -msgid "Passwordless login" -msgstr "Inicio de sesión sin contraseña" - -msgid "Second factor login" -msgstr "Inicio de sesión con factor secundario" - -msgid "Bluetooth" -msgstr "Bluetooth" - -msgid "Would you like to configure Bluetooth?" -msgstr "¿Desea configurar Bluetooth?" - -msgid "Print service" -msgstr "Servicio de impresión" - -msgid "Would you like to configure the print service?" -msgstr "¿Desea configurar el servicio de impresión?" - -msgid "Power management" -msgstr "Administración de energía" - -msgid "Authentication" -msgstr "Autenticación" - -msgid "Applications" -msgstr "Aplicaciones" - -msgid "U2F login method: " -msgstr "Método de inicio de sesión U2F: " - -msgid "Passwordless sudo: " -msgstr "Sudo sin contraseña: " - -#, python-brace-format -msgid "Btrfs snapshot type: {}" -msgstr "Tipo de instantánea BTRFS: {}" - -msgid "Syncing the system..." -msgstr "Sincronizando el sistema..." - -msgid "Value cannot be empty" -msgstr "El valor no puede estár vacío" - -msgid "Snapshot type" -msgstr "Tipo de snapshot" - -#, python-brace-format -msgid "Snapshot type: {}" -msgstr "Tipo de snapshot: {}" - -msgid "U2F login setup" -msgstr "Configuración de inicio de sesión U2F" - -msgid "No U2F devices found" -msgstr "No se encontró dispositivos U2F" - -msgid "U2F Login Method" -msgstr "Método de inicio de sesión U2F" - -msgid "Enable passwordless sudo?" -msgstr "¿Activar sudo sin contraseña?" - -#, python-brace-format -msgid "Setting up U2F device for user: {}" -msgstr "Configurando dispositivo U2F para usuario: {}" - -msgid "You may need to enter the PIN and then touch your U2F device to register it" -msgstr "Puede que deba ingresar su PIN antes de tocar su dispositivo U2F para registrarlo" - -msgid "Starting device modifications in " -msgstr "Iniciando modificaciones en dispositivo en " - -msgid "No network connection found" -msgstr "No se encontró una conección de red" - -msgid "Would you like to connect to a Wifi?" -msgstr "¿Desea conectarse al Wi-Fi?" - -msgid "No wifi interface found" -msgstr "No se encontró ninguna interfaz Wi-Fi" - -msgid "Select wifi network to connect to" -msgstr "Seleccione una red Wi-Fi para conectarse" - -msgid "Scanning wifi networks..." -msgstr "Buscando redes Wi-Fi..." - -msgid "No wifi networks found" -msgstr "No se encontró redes Wi-Fi" - -msgid "Failed setting up wifi" -msgstr "Error al configurar el Wi-Fi" - -msgid "Enter wifi password" -msgstr "Ingrese la contraseña del Wi-Fi" - -msgid "Ok" -msgstr "Ok" - -msgid "Removable" -msgstr "Desmontable" - -msgid "Install to removable location" -msgstr "Instalar a ubicación desmontable" - -msgid "Will install to /EFI/BOOT/ (removable location)" -msgstr "Se instalará en /EFI/BOOT/ (ubicación desmontable)" - -msgid "Will install to standard location with NVRAM entry" -msgstr "Se instalará en ubicación estandar con entrada NVRAM" - -msgid "Would you like to install the bootloader to the default removable media search location?" -msgstr "¿Desea instalar el gestor de arranque en la ubicación predeterminada de búsqueda de medios desmontables?" - -msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:" -msgstr "Esto instala el gestor de arranque en /EFI/BOOT/BOOTX64.EFI (o similar) lo cual es útil para:" - -msgid "USB drives or other portable external media." -msgstr "Disco USB u otros medios portátiles externos." - -msgid "Systems where you want the disk to be bootable on any computer." -msgstr "Sistemas donde quiere que el disco sea arrancable en cualquier computadora." - -msgid "Firmware that does not properly support NVRAM boot entries." -msgstr "Firmware que no soporta entradas arrancables NVRAM." - -msgid "Will install to /EFI/BOOT/ (removable location, safe default)" -msgstr "Instalará a /EFI/BOOT/ (ubicación desmontable, segura por defecto)" - -msgid "Will install to custom location with NVRAM entry" -msgstr "Instalará a ubicación personalizada con entrada NVRAM" - -msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards," -msgstr "Firmware que no soporta entradas arrancables NVRAM como la mayoría de las placas MSI," - -msgid "most Apple Macs, many laptops..." -msgstr "la mayoría de las Macs Apple, muchas laptops..." - -msgid "Language" -msgstr "Idioma local" - -msgid "Compression algorithm" -msgstr "Algoritmo de compresión" - -msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed." -msgstr "Solo paquetes como base, sudo, linux, linux-firmware, efibootmgr y paquetes opcionales de perfil se instalan." - -msgid "Select zram compression algorithm:" -msgstr "Seleccione algorimto de compresión zram:" - -msgid "Use Network Manager (default backend)" -msgstr "Usar Gestor de Red (backend por defecto)" - -msgid "Use Network Manager (iwd backend)" -msgstr "Usar gestor de Red (backend iwd)" - -msgid "Firewall" -msgstr "Cortafuegos" - -msgid "Additional fonts" -msgstr "Fuentes adicionales" - -msgid "Select font packages to install" -msgstr "Seleccione los paquetes de fuentes que desea instalar" - -msgid "Unicode font coverage for most languages" -msgstr "Fuente unicode cubierta para la mayoría de idiomas" - -msgid "color emoji for browsers and apps" -msgstr "Emoji de colores para navegadores y aplicaciones" - -msgid "Chinese, Japanese, Korean characters" -msgstr "Carácteres Chino, Japonés, Koreano" - -msgid "Select audio configuration" -msgstr "Seleccionar configuración de audio" - -msgid "Enter credentials file decryption password" -msgstr "Ingrese la contraseña de descifrado del archivo de credenciales" - -msgid "Enter root password" -msgstr "Ingrese la contraseña de root" - -msgid "Select bootloader to install" -msgstr "Seleccione el gestor de arranque que desea instalar" - -msgid "Configuration preview" -msgstr "Vista previa de la configuración" - -msgid "Enter a directory for the configuration(s) to be saved" -msgstr "Ingrese un directorio para guardar las configuraciones" - -msgid "Select encryption type" -msgstr "Seleccione el tipo de cifrado" - -msgid "Select disks for the installation" -msgstr "Seleccione discos para la instalación" - -msgid "Enter a mountpoint" -msgstr "Ingrese un punto de montaje" - -#, python-brace-format -msgid "Enter a size (default: {}): " -msgstr "Ingrese un tamaño (predeterminado: {}): " - -msgid "Enter subvolume name" -msgstr "Ingrese el nombre del subvolumen" - -msgid "Enter subvolume mountpoint" -msgstr "Ingrese el punto de montaje del subvolumen" - -msgid "Select a disk configuration" -msgstr "Seleccione una configuración de disco" - -msgid "Enter root mount directory" -msgstr "Ingrese al directorio de montaje raíz" - -msgid "You will use whatever drive-setup is mounted at the specified directory" -msgstr "Utilizará cualquier configuración de unidad que esté montada en el directorio especificado" - -msgid "WARNING: Archinstall won't check the suitability of this setup" -msgstr "ADVERTENCIA: Archinstall no comprobará la idoneidad de esta configuración" - -msgid "Select main filesystem" -msgstr "Seleccione el sistema de archivos principal" - -msgid "Enter a hostname" -msgstr "Ingrese un nombre de host" - -msgid "Select timezone" -msgstr "Seleccione una zona horaria" - -msgid "Enter the number of parallel downloads to be enabled" -msgstr "Ingrese el número de descargas paralelas que desea activar" - -#, python-brace-format -msgid "Value must be between 1 and {}" -msgstr "El valor debe estar entre 1 y {}" - -msgid "Select which kernel(s) to install" -msgstr "Seleccione qué núcleo(s) desea instalar" - -msgid "Enter a respository name" -msgstr "Ingrese un nombre de repositorio" - -msgid "Enter the repository url" -msgstr "Ingrese la URL del repositorio" - -msgid "Enter server url" -msgstr "Ingrese la URL del servidor" - -msgid "Select mirror regions to be enabled" -msgstr "Seleccione las regiones espejo que se activarán" - -msgid "Select optional repositories to be enabled" -msgstr "Seleccione repositorios opcionales para activar" - -msgid "Select an interface" -msgstr "Seleccione una interfaz" - -msgid "Choose network configuration" -msgstr "Elija la configuración de red" - -msgid "No packages found" -msgstr "No se encontraron paquetes" - -msgid "Select which greeter to install" -msgstr "Seleccione el saludo que desea instalar" - -msgid "Select a profile type" -msgstr "Seleccione un tipo de perfil" - -msgid "Enter new password" -msgstr "Ingrese nueva contraseña" - -msgid "Enter a username" -msgstr "Ingrese un nombre de usuario" - -msgid "Enter a password" -msgstr "Ingrese una contraseña" - -msgid "The password did not match, please try again" -msgstr "La contraseña no coincide, por favor inténtelo nuevamente" - -msgid "Password strength: Weak" -msgstr "Seguridad de la contraseña: Débil" - -msgid "Password strength: Moderate" -msgstr "Seguridad de la contraseña: Media" - -msgid "Password strength: Strong" -msgstr "Seguridad de la contraseña: Fuerte" - -msgid "The selected desktop profile requires a regular user to log in via the greeter" -msgstr "El perfil de escritorio seleccionado requiere que un usuario estándar inicie sesión a través de la pantalla de bienvenida" - -#, python-brace-format -msgid "Environment type: {} {}" -msgstr "Tipo de entorno: {} {}" - -msgid "Input cannot be empty" -msgstr "La entrada no debe estar vacía" +"X-Generator: Poedit 3.9\n" msgid "Recommended" msgstr "Recomendado" @@ -2183,25 +35,2330 @@ msgstr "Paquetes en grupo" msgid "Minimal KDE Plasma installation" msgstr "Instalación minima de KDE Plasma" +msgid "Type" +msgstr "Tipo" + msgid "Description" msgstr "Descripción" msgid "Select a flavor of KDE Plasma to install" msgstr "Seleccione una variante de KDE Plasma para instalar" +#, python-brace-format +msgid "{} needs access to your seat" +msgstr "{} necesita acceso a su asiento" + +msgid "collection of hardware devices i.e. keyboard, mouse" +msgstr "conjunto de dispositivos de hardware, por ejemplo, teclado, ratón" + +#, python-brace-format +msgid "Choose an option how to give {} access to your hardware" +msgstr "Elige una opción para darle a {} acceso a su hardware" + +#, python-brace-format +msgid "Environment type: {} {}" +msgstr "Tipo de entorno: {} {}" + +#, python-brace-format +msgid "Environment type: {}" +msgstr "Tipo de entorno: {}" + +msgid "Installed packages" +msgstr "Paquetes instalados" + +msgid "Bluetooth" +msgstr "Bluetooth" + +msgid "Audio" +msgstr "Audio" + +msgid "Print service" +msgstr "Servicio de impresión" + +msgid "Power management" +msgstr "Administración de energía" + +msgid "Firewall" +msgstr "Cortafuegos" + +msgid "Additional fonts" +msgstr "Fuentes adicionales" + +msgid "Enabled" +msgstr "Activado" + +msgid "Disabled" +msgstr "Desactivado" + +msgid "Would you like to configure Bluetooth?" +msgstr "¿Desea configurar Bluetooth?" + +msgid "Would you like to configure the print service?" +msgstr "¿Desea configurar el servicio de impresión?" + +msgid "Select audio configuration" +msgstr "Seleccione la configuración de audio" + +msgid "Select font packages to install" +msgstr "Seleccione los paquetes de fuentes que desea instalar" + +msgid "ArchInstall Language" +msgstr "Idioma de archinstall" + +msgid "Version" +msgstr "Versión" + +msgid "Installation Script" +msgstr "Script de instalación" + +msgid "Locales" +msgstr "Localidades" + +msgid "Disk configuration" +msgstr "Configuración del disco" + +msgid "Profile" +msgstr "Perfil" + +msgid "Mirrors and repositories" +msgstr "Espejos y repositorios" + +msgid "Network" +msgstr "Red" + +msgid "Bootloader" +msgstr "Gestor de arranque" + +msgid "Application" +msgstr "Aplicación" + +msgid "Authentication" +msgstr "Autenticación" + +msgid "Swap" +msgstr "Swap" + +msgid "Hostname" +msgstr "Nombre de host" + +msgid "Kernels" +msgstr "Núcleos" + +msgid "Automatic time sync (NTP)" +msgstr "Sincronización automática de hora (NTP)" + +msgid "Timezone" +msgstr "Zona horaria" + +msgid "Services" +msgstr "Servicios" + +msgid "Additional packages" +msgstr "Paquetes adicionales" + +msgid "Pacman" +msgstr "Pacman" + +msgid "Custom commands" +msgstr "Comandos personalizados" + +msgid "Users" +msgstr "Usuarios" + +msgid "Root encrypted password" +msgstr "Contraseña cifrada de root" + +msgid "Disk encryption password" +msgstr "Contraseña de cifrado de disco" + +msgid "Incorrect credentials file decryption password" +msgstr "Contraseña incorrecta para descifrar el archivo de credenciales" + +msgid "Enter credentials file decryption password" +msgstr "Ingrese la contraseña de descifrado del archivo de credenciales" + +msgid "Incorrect password" +msgstr "Contraseña incorrecta" + +#, python-brace-format +msgid "Setting up U2F login: {}" +msgstr "Configurando el inicio de sesión U2F: {}" + +#, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "Configurando dispositivo U2F para usuario: {}" + +msgid "You may need to enter the PIN and then touch your U2F device to register it" +msgstr "Puede que deba ingresar su PIN antes de tocar su dispositivo U2F para registrarlo" + +msgid "Root password" +msgstr "Contraseña de root" + +msgid "User account" +msgstr "Cuenta de usuario" + +msgid "U2F login setup" +msgstr "Configuración de inicio de sesión U2F" + +msgid "U2F login method: " +msgstr "Método de inicio de sesión U2F: " + +msgid "Passwordless sudo: " +msgstr "Sudo sin contraseña: " + +msgid "No U2F devices found" +msgstr "No se encontró dispositivos U2F" + +msgid "Enter root password" +msgstr "Ingrese la contraseña de root" + +msgid "Enable passwordless sudo?" +msgstr "¿Activar sudo sin contraseña?" + +msgid "Unified kernel images" +msgstr "Imágenes del núcleo unificadas" + +msgid "Install to removable location" +msgstr "Instalar a ubicación desmontable" + +msgid "Will install to /EFI/BOOT/ (removable location, safe default)" +msgstr "Instalará a /EFI/BOOT/ (ubicación desmontable, segura por defecto)" + +msgid "Will install to custom location with NVRAM entry" +msgstr "Instalará a ubicación personalizada con entrada NVRAM" + +msgid "Would you like to use unified kernel images?" +msgstr "¿Le gustaría utilizar imágenes del núcleo unificadas?" + +msgid "Would you like to install the bootloader to the default removable media search location?" +msgstr "¿Desea instalar el gestor de arranque en la ubicación predeterminada de búsqueda de medios desmontables?" + +msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:" +msgstr "Esto instala el gestor de arranque en /EFI/BOOT/BOOTX64.EFI (o similar) lo cual es útil para:" + +msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards," +msgstr "Firmware que no soporta entradas arrancables NVRAM como la mayoría de las placas MSI," + +msgid "most Apple Macs, many laptops..." +msgstr "la mayoría de las Macs Apple, muchas laptops..." + +msgid "USB drives or other portable external media." +msgstr "Disco USB u otros medios portátiles externos." + +msgid "Systems where you want the disk to be bootable on any computer." +msgstr "Sistemas donde quiere que el disco sea arrancable en cualquier computadora." + +msgid "Select bootloader to install" +msgstr "Seleccione el gestor de arranque que desea instalar" + +msgid "UEFI is not detected and some options are disabled" +msgstr "No se detecta UEFI y algunas opciones están desactivadas" + +msgid "The specified configuration will be applied" +msgstr "Se aplicará la configuración especificada" + +msgid "Would you like to continue?" +msgstr "¿Quiere continuar?" + +msgid "Configuration preview" +msgstr "Vista previa de la configuración" + +msgid "Warning: no network configuration selected. Network will need to be set up manually on the installed system." +msgstr "Advertencia: no se ha seleccionado ninguna configuración de red. La red deberá configurarse manualmente en el sistema instalado." + +msgid "No configuration" +msgstr "Sin configuración" + +msgid "Save user configuration (including disk layout)" +msgstr "Guardar la configuración del usuario (incluido el diseño del disco)" + +msgid "Save user credentials" +msgstr "Guardar credenciales de usuario" + +msgid "Save all" +msgstr "Guardar todo" + +msgid "Enter a directory for the configuration(s) to be saved" +msgstr "Ingrese un directorio para guardar las configuraciones" + +#, python-brace-format +msgid "Do you want to save the configuration file(s) to {}?" +msgstr "¿Desea guardar los archivos de configuración en {}?" + +msgid "Do you want to encrypt the user_credentials.json file?" +msgstr "¿Desea encriptar el archivo user_credentials.json?" + +msgid "Credentials file encryption password" +msgstr "Contraseña para cifrar el archivo de credenciales" + +msgid "Partitioning" +msgstr "Particionamiento" + +msgid "Disk encryption" +msgstr "Cifrado de disco" + +#, python-brace-format +msgid "Configuration type: {}" +msgstr "Tipo de configuración: {}" + +msgid "Mountpoint" +msgstr "Punto de montaje" + +msgid "Configuration" +msgstr "Configuración" + +msgid "Wipe" +msgstr "Borrar" + +msgid "Physical volumes" +msgstr "Volúmenes físicos" + +msgid "Volumes" +msgstr "Volúmenes" + +#, python-brace-format +msgid "Snapshot type: {}" +msgstr "Tipo de snapshot: {}" + +msgid "LVM disk encryption with more than 2 partitions is currently not supported" +msgstr "Actualmente no se admite el cifrado de disco LVM con más de 2 particiones" + +msgid "Encryption type" +msgstr "Tipo de cifrado" + +msgid "Password" +msgstr "Contraseña" + +msgid "Iteration time" +msgstr "Tiempo de iteración" + +msgid "Select disks for the installation" +msgstr "Seleccione discos para la instalación" + +msgid "Partitions" +msgstr "Particiones" + +msgid "Select a disk configuration" +msgstr "Seleccione una configuración de disco" + +msgid "Enter root mount directory" +msgstr "Ingrese al directorio de montaje raíz" + +msgid "You will use whatever drive-setup is mounted at the specified directory" +msgstr "Utilizará cualquier configuración de unidad que esté montada en el directorio especificado" + +msgid "WARNING: Archinstall won't check the suitability of this setup" +msgstr "ADVERTENCIA: Archinstall no comprobará la idoneidad de esta configuración" + +msgid "Select main filesystem" +msgstr "Seleccione el sistema de archivos principal" + +msgid "Would you like to use compression or disable CoW?" +msgstr "¿Le gustaría utilizar compresión o desactivar CoW?" + +msgid "Use compression" +msgstr "Usar compresión" + +msgid "Disable Copy-on-Write" +msgstr "Desactivar copia en escritura" + +msgid "Would you like to use BTRFS subvolumes with a default structure?" +msgstr "¿Le gustaría utilizar subvolúmenes BTRFS con una estructura predeterminada?" + +msgid "Would you like to create a separate partition for /home?" +msgstr "¿Le gustaría crear una partición separada para /home?" + +msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n" +msgstr "Las unidades seleccionadas no tienen la capacidad mínima requerida para una sugerencia automática\n" + +#, python-brace-format +msgid "Minimum capacity for /home partition: {}GiB\n" +msgstr "Capacidad mínima para la partición /home: {}GiB\n" + +#, python-brace-format +msgid "Minimum capacity for Arch Linux partition: {}GiB" +msgstr "Capacidad mínima para la partición Arch Linux: {}GiB" + +msgid "Encryption password" +msgstr "Contraseña de cifrado" + +msgid "LVM volumes" +msgstr "Volúmenes LVM" + +msgid "HSM" +msgstr "HSM" + +msgid "Partitions to be encrypted" +msgstr "Particiones a cifrar" + +msgid "LVM volumes to be encrypted" +msgstr "Volúmenes LVM a cifrar" + +msgid "HSM device" +msgstr "Dispositivo HSM" + +msgid "Select encryption type" +msgstr "Seleccione el tipo de cifrado" + +msgid "Enter disk encryption password (leave blank for no encryption)" +msgstr "Ingrese la contraseña de cifrado del disco (deje en blanco si no desea cifrar)" + +msgid "Select a FIDO2 device to use for HSM" +msgstr "Seleccione un dispositivo FIDO2 para usar con HSM" + +msgid "Enter iteration time for LUKS encryption (in milliseconds)" +msgstr "Ingrese el tiempo de iteración para cifrado LUKS (en milisegundos)" + +msgid "Higher values increase security but slow down boot time" +msgstr "Valores más grandes mejoran la seguridad pero aumentan el tiempo de arranque" + +#, python-brace-format +msgid "Default: {}ms, Recommended range: 1000-60000" +msgstr "Valor predeterminado: {}ms, Rango recomendado: 1000-60000" + +msgid "Iteration time must be at least 100ms" +msgstr "Tiempo de iteración no puede menor a 100ms" + +msgid "Iteration time must be at most 120000ms" +msgstr "Tiempo de iteración no puede ser mayor a 120000ms" + +msgid "Please enter a valid number" +msgstr "Por favor ingrese un número válido" + +msgid "Suggest partition layout" +msgstr "Sugerir el diseño de partición" + +msgid "Remove all newly added partitions" +msgstr "Eliminar todas las particiones recién agregadas" + +msgid "Assign mountpoint" +msgstr "Asignar punto de montaje" + +msgid "Mark/Unmark to be formatted (wipes data)" +msgstr "Marcar/Desmarcar para formatear (borra datos)" + +msgid "Mark/Unmark as bootable" +msgstr "Marcar/Desmarcar como arrancable" + +msgid "Mark/Unmark as ESP" +msgstr "Marcar/Desmarcar como ESP" + +msgid "Mark/Unmark as XBOOTLDR" +msgstr "Marcar/Desmarcar como XBOOTLDR" + +msgid "Change filesystem" +msgstr "Cambiar el sistema de archivos" + +msgid "Mark/Unmark as compressed" +msgstr "Marcar/Desmarcar como comprimido" + +msgid "Mark/Unmark as nodatacow" +msgstr "Marcar/Desmarcar como nodatacow" + +msgid "Set subvolumes" +msgstr "Establecer subvolúmenes" + +msgid "Delete partition" +msgstr "Eliminar partición" + +#, python-brace-format +msgid "Partition management: {}" +msgstr "Gestión de particiones: {}" + +#, python-brace-format +msgid "Total length: {}" +msgstr "Largo total: {}" + +msgid "Partition - New" +msgstr "Partición - Nueva" + +msgid "Partition" +msgstr "Partición" + +msgid "This partition is currently encrypted, to format it a filesystem has to be specified" +msgstr "Esta partición está actualmente cifrada, para formatearla se debe especificar un sistema de archivos" + +msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example." +msgstr "Los puntos de montaje de la partición son relativos al interior de la instalación; el arranque sería /boot como ejemplo." + +msgid "Enter a mountpoint" +msgstr "Ingrese un punto de montaje" + +msgid "Invalid size" +msgstr "Tamaño no válido" + +#, python-brace-format +msgid "Selected free space segment on device {}:" +msgstr "Segmento de espacio libre seleccionado en el dispositivo {}:" + +#, python-brace-format +msgid "Size: {} / {}" +msgstr "Tamaño: {} / {}" + +msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..." +msgstr "Todos los valores introducidos pueden tener como sufijo una unidad: %, B, KB, KiB, MB, MiB..." + +msgid "If no unit is provided, the value is interpreted as sectors" +msgstr "Si no se proporciona ninguna unidad, el valor se interpreta como sectores" + +#, python-brace-format +msgid "Enter a size (default: {}): " +msgstr "Ingrese un tamaño (predeterminado: {}): " + +msgid "This will remove all newly added partitions, continue?" +msgstr "Esto eliminará todas las particiones recientemente agregadas, ¿continuar?" + +msgid "Add subvolume" +msgstr "Agregar subvolumen" + +msgid "Edit subvolume" +msgstr "Editar subvolumen" + +msgid "Delete subvolume" +msgstr "Eliminar subvolumen" + +msgid "Value cannot be empty" +msgstr "El valor no puede estár vacío" + +msgid "Enter subvolume name" +msgstr "Ingrese el nombre del subvolumen" + +msgid "Subvolume name" +msgstr "Nombre del subvolumen" + +msgid "Enter subvolume mountpoint" +msgstr "Ingrese el punto de montaje del subvolumen" + +msgid "Exit archinstall" +msgstr "Salir de archinstall" + +msgid "Reboot system" +msgstr "Reiniciar el sistema" + +msgid "chroot into installation for post-installation configurations" +msgstr "Hacer chroot en la instalación para configuraciones posteriores a la instalación" + +msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n" +msgstr "¿Le gustaría utilizar la sincronización automática de hora (NTP) con los servidores de hora predeterminados?\n" + +msgid "" +"Hardware time and other post-configuration steps might be required in order for NTP to work.\n" +"For more information, please check the Arch wiki" +msgstr "" +"La hora del hardware y otros pasos post-configuración pueden ser necesarios para que NTP funcione. \n" +"Para más información, por favor, consulte la wiki de Arch" + +msgid "Enter a hostname" +msgstr "Ingrese un nombre de host" + +msgid "Select timezone" +msgstr "Seleccione una zona horaria" + +msgid "What would you like to do next?" +msgstr "¿Qué le gustaría hacer a continuación?" + +msgid "Select which kernel(s) to install" +msgstr "Seleccione qué núcleo(s) desea instalar" + +msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options." +msgstr "Para obtener la mejor compatibilidad con su hardware AMD, es posible que desee utilizar las opciones de código abierto o AMD/ATI." + +msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n" +msgstr "Para obtener la mejor compatibilidad con su hardware Intel, es posible que desee utilizar las opciones de código abierto o de Intel.\n" + +msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n" +msgstr "Para obtener la mejor compatibilidad con su hardware de Nvidia, es posible que desee utilizar el controlador patentado de Nvidia.\n" + +msgid "Would you like to use swap on zram?" +msgstr "¿Le gustaría usar swap en zram?" + +msgid "Select zram compression algorithm:" +msgstr "Seleccione algorimto de compresión zram:" + +msgid "Archinstall language" +msgstr "Idioma de archinstall" + +msgid "Applications" +msgstr "Aplicaciones" + +msgid "Network configuration" +msgstr "Configuración de la red" + +msgid "Save configuration" +msgstr "Guardar configuración" + +msgid "Install" +msgstr "Instalar" + +msgid "Abort" +msgstr "Abortar" + +msgid "Either root-password or at least 1 user with sudo privileges must be specified" +msgstr "Debe especificar una contraseña de root o al menos 1 usuario con privilegios sudo" + +msgid "The selected desktop profile requires a regular user to log in via the greeter" +msgstr "El perfil de escritorio seleccionado requiere que un usuario estándar inicie sesión a través de la pantalla de bienvenida" + +msgid "Language" +msgstr "Idioma local" + +msgid "NTP" +msgstr "NTP" + +msgid "LVM configuration type" +msgstr "Tipo de configuración LVM" + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "Tipo de instantánea BTRFS: {}" + +msgid "Swap on zram" +msgstr "Swap en zram" + +msgid "Compression algorithm" +msgstr "Algoritmo de compresión" + +msgid "Parallel Downloads" +msgstr "Descargas paralelas" + +msgid "Color" +msgstr "Color" + +msgid "Kernel" +msgstr "Núcleo" + +msgid "Missing configurations:\n" +msgstr "Configuraciones que faltan:\n" + +#, python-brace-format +msgid "Invalid configuration: {}" +msgstr "Configuración no válida: {}" + +msgid "Ready to install" +msgstr "Listo para instalar" + +msgid "Profiles" +msgstr "Perfiles" + +msgid "Graphics driver" +msgstr "Controlador de gráficos" + +msgid "Greeter" +msgstr "Gestor de inicio de sesión" + +msgid "Selected mirror regions" +msgstr "Regiones de espejo seleccionadas" + +msgid "Custom servers" +msgstr "Servidores personalizados" + +msgid "Optional repositories" +msgstr "Repositorios opcionales" + +msgid "Custom repositories" +msgstr "Repositorios personalizados" + +#, python-brace-format +msgid "[!] A log file has been created here: {}" +msgstr "[!] Se ha creado un archivo de registro aquí: {}" + +msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues" +msgstr "Envíe este problema (y archivo) a https://github.com/archlinux/archinstall/issues" + +msgid "Syncing the system..." +msgstr "Sincronizando el sistema..." + +msgid "Waiting for time sync (timedatectl show) to complete." +msgstr "Esperando a que se complete la sincronización de la hora (timedatectl show)." + +msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/" +msgstr "La sincronización de hora no se completa mientras espera - consulte los documentos para encontrar soluciones: https://archinstall.readthedocs.io/" + +msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)" +msgstr "Saltarse la espera de sincronización automática de la hora (esto puede causar problemas si la hora no está sincronizada durante la instalación)" + +msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete." +msgstr "Esperando a que se complete la sincronización del llavero de Arch Linux (archlinux-keyring-wkd-sync)." + +msgid "Keyboard layout" +msgstr "Distribución del teclado" + +msgid "Locale language" +msgstr "Idioma local" + +msgid "Locale encoding" +msgstr "Codificación local" + +msgid "Console font" +msgstr "Fuente de consola" + +msgid "Back" +msgstr "Regresar" + +msgid "Are you sure you want to reset this setting?" +msgstr "¿Está seguro de que desea restablecer esta configuración?" + +msgid "Confirm and exit" +msgstr "Confirmar y salir" + +msgid "Cancel" +msgstr "Cancelar" + +msgid "Password strength: Weak" +msgstr "Seguridad de la contraseña: Débil" + +msgid "Password strength: Moderate" +msgstr "Seguridad de la contraseña: Media" + +msgid "Password strength: Strong" +msgstr "Seguridad de la contraseña: Fuerte" + +msgid "Confirm password" +msgstr "Confirmar contraseña" + +msgid "The password did not match, please try again" +msgstr "La contraseña no coincide, por favor inténtelo nuevamente" + +msgid "Not a valid directory" +msgstr "No es un directorio válido" + +msgid "Do you really want to abort?" +msgstr "¿Realmente desea abortar?" + +msgid "Add a custom repository" +msgstr "Agregar un repositorio personalizado" + +msgid "Change custom repository" +msgstr "Cambiar el repositorio personalizado" + +msgid "Delete custom repository" +msgstr "Eliminar repositorio personalizado" + +msgid "Enter a repository name" +msgstr "Introduzca un nombre de repositorio" + +msgid "Name" +msgstr "Nombre" + +msgid "Enter the repository url" +msgstr "Ingrese la URL del repositorio" + +msgid "Url" +msgstr "Url" + +msgid "Select signature check" +msgstr "Seleccionar verificación de firma" + +msgid "Signature check" +msgstr "Comprobación de firma" + +msgid "Select signature option" +msgstr "Seleccione la opción de firma" + +msgid "Add a custom server" +msgstr "Agregar un servidor personalizado" + +msgid "Change custom server" +msgstr "Cambiar servidor personalizado" + +msgid "Delete custom server" +msgstr "Eliminar servidor personalizado" + +msgid "Enter server url" +msgstr "Ingrese la URL del servidor" + +msgid "Select regions" +msgstr "Seleccionar regiones" + +msgid "Add custom servers" +msgstr "Agregar servidores personalizados" + +msgid "Add custom repository" +msgstr "Agregar repositorio personalizado" + +msgid "Additional repositories" +msgstr "Repositorios adicionales" + +msgid "Loading mirror regions..." +msgstr "Cargando regiones de espejo..." + +msgid "Select mirror regions to be enabled" +msgstr "Seleccione las regiones espejo que se activarán" + +msgid "Select optional repositories to be enabled" +msgstr "Seleccione repositorios opcionales para activar" + +msgid "Unicode font coverage for most languages" +msgstr "Fuente unicode cubierta para la mayoría de idiomas" + +msgid "color emoji for browsers and apps" +msgstr "Emoji de colores para navegadores y aplicaciones" + +msgid "Chinese, Japanese, Korean characters" +msgstr "Carácteres Chino, Japonés, Koreano" + msgid "Arial/Times/Courier replacement, Cyrillic support for Steam/games" msgstr "Sustitución de Arial/Times/Courier, compatibilidad con caracteres cirílicos para Steam/juegos" msgid "wide Unicode coverage, good fallback font" -msgstr "Amplia cobertura Unicode, buena fuente de reserva" +msgstr "amplia cobertura Unicode, buena fuente de reserva" + +msgid "Zram enabled" +msgstr "ZRAM activado" #, python-brace-format -msgid "Setting up U2F login: {u2f_config.u2f_login_method.value}" -msgstr "Configurando Inicio U2F: {u2f_config.u2f_login_method.value}" +msgid "Zram algorithm {}" +msgstr "Algoritmo ZRAM {}" + +msgid "Bluetooth enabled" +msgstr "Bluetooth activado" #, python-brace-format -msgid "Default: {DEFAULT_ITER_TIME}ms, Recommended range: 1000-60000" -msgstr "Predeterminado: {DEFAULT_ITER_TIME}ms, Rango recomendado: 1000-60000" +msgid "Audio server \"{}\"" +msgstr "Servidor de audio «{}»" + +#, python-brace-format +msgid "Power management \"{}\"" +msgstr "Gestión de energía «{}»" + +msgid "Print service enabled" +msgstr "Servicio de impresión activado" + +#, python-brace-format +msgid "Firewall \"{}\"" +msgstr "Cortafuegos «{}»" + +#, python-brace-format +msgid "Extra fonts \"{}\"" +msgstr "Fuentes adicionales «{}»" + +msgid "Passwordless login" +msgstr "Inicio de sesión sin contraseña" + +msgid "Second factor login" +msgstr "Inicio de sesión con factor secundario" + +msgid "Root password set" +msgstr "Contraseña de root establecida" + +#, python-brace-format +msgid "Configured {} user(s)" +msgstr "{} usuario(s) configurado(s)" + +msgid "U2F set up" +msgstr "Configuración de U2F" + +#, python-brace-format +msgid "Bootloader \"{}\"" +msgstr "Cargador de arranque «{}»" + +msgid "UKI enabled" +msgstr "UKI activado" + +msgid "Removable" +msgstr "Desmontable" + +msgid "Use a best-effort default partition layout" +msgstr "Utlizar un diseño de partición predeterminado de mejor esfuerzo" + +msgid "Manual Partitioning" +msgstr "Partición manual" + +msgid "Pre-mounted configuration" +msgstr "Configuración premontada" + +msgid "Default" +msgstr "Predeterminado" + +msgid "Manual" +msgstr "Manual" + +msgid "Pre-mount" +msgstr "Premontaje" + +# not sure about this one... we've been saying distribución instead of diseño up to now... +#, python-brace-format +msgid "{} layout" +msgstr "{} diseño" + +#, python-brace-format +msgid "Devices {}" +msgstr "Dispositivo {}" + +msgid "LVM set up" +msgstr "Configuración de LVM" + +#, python-brace-format +msgid "{} encryption" +msgstr "{} cifrado" + +#, python-brace-format +msgid "Btrfs snapshot \"{}\"" +msgstr "Instantánea de BTRFS «{}»" + +msgid "Unknown" +msgstr "Desconocido" + +msgid "Default layout" +msgstr "Diseño predeterminado" + +msgid "No Encryption" +msgstr "Sin cifrado" + +msgid "LUKS" +msgstr "LUKS" + +msgid "LVM on LUKS" +msgstr "LVM en LUKS" + +msgid "LUKS on LVM" +msgstr "LUKS en LVM" + +#, python-brace-format +msgid "Keyboard layout \"{}\"" +msgstr "Distribución del teclado «{}»" + +#, python-brace-format +msgid "Locale language \"{}\"" +msgstr "Idioma local «{}»" + +#, python-brace-format +msgid "Locale encoding \"{}\"" +msgstr "Codificación local «{}»" + +#, python-brace-format +msgid "Console font \"{}\"" +msgstr "Fuente de consola «{}»" + +#, python-brace-format +msgid "Mirror regions \"{}\"" +msgstr "Regiones espejo «{}»" + +#, python-brace-format +msgid "Optional repositories \"{}\"" +msgstr "Repositorios opcionales «{}»" + +msgid "Custom servers set up" +msgstr "Servidores personalizados configurados" + +msgid "Custom repositories set up" +msgstr "Repositorios personalizados configurados" + +msgid "Copy ISO network configuration to installation" +msgstr "Copiar la configuración de red ISO a la instalación" + +msgid "Use Network Manager (default backend)" +msgstr "Usar Network Manager (backend predeterminado)" + +msgid "Use Network Manager (iwd backend)" +msgstr "Usar Network Manager (backend iwd)" + +msgid "Use standalone iwd" +msgstr "Utilizar iwd independiente" + +msgid "Manual configuration" +msgstr "Configuración manual" + +msgid "Package group:" +msgstr "Grupo de paquetes:" + +msgid "Color enabled" +msgstr "Color activado" + +#, python-brace-format +msgid "{} grphics driver" +msgstr "{} controlador de gráficos" + +#, python-brace-format +msgid "{} greeter" +msgstr "{} saludador" + +msgid "very weak" +msgstr "muy débil" + +msgid "weak" +msgstr "débil" + +msgid "moderate" +msgstr "moderado" + +msgid "strong" +msgstr "fuerte" + +msgid "Add interface" +msgstr "Añadir interfaz" + +msgid "Edit interface" +msgstr "Editar interfaz" + +msgid "Delete interface" +msgstr "Eliminar intefaz" + +msgid "Select an interface" +msgstr "Seleccione una interfaz" + +msgid "You need to enter a valid IP in IP-config mode" +msgstr "Debe ingresar una IP válida en el modo de configuración de IP" + +#, python-brace-format +msgid "Select which mode to configure for \"{}\"" +msgstr "Seleccione qué modo configurar para «{}»" + +#, python-brace-format +msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " +msgstr "Escriba la IP y subred para {} (ejemplo: 192.168.0.5/24): " + +msgid "Enter your gateway (router) IP address (leave blank for none)" +msgstr "Ingrese la dirección IP de su puerta de enlace (enrutador) (deje en blanco si no hay ninguna)" + +msgid "Enter your DNS servers with space separated (leave blank for none)" +msgstr "Ingrese sus servidores DNS separados por espacios (deje en blanco si no hay ninguno)" + +msgid "Choose network configuration" +msgstr "Elija la configuración de red" + +msgid "Recommended: Network Manager for desktop, Manual for server" +msgstr "Recomendado: Network Manager para equipos de escritorio, Manual para servidores" + +msgid "Configure interfaces" +msgstr "Configurar interfaces" + +msgid "No network connection found" +msgstr "No se encontró una conección de red" + +msgid "Would you like to connect to a Wifi?" +msgstr "¿Desea conectarse al Wi-Fi?" + +msgid "No wifi interface found" +msgstr "No se encontró ninguna interfaz Wi-Fi" + +msgid "Select wifi network to connect to" +msgstr "Seleccione una red Wi-Fi para conectarse" + +msgid "Scanning wifi networks..." +msgstr "Buscando redes Wi-Fi..." + +msgid "No wifi networks found" +msgstr "No se encontró redes Wi-Fi" + +msgid "Failed setting up wifi" +msgstr "Error al configurar el Wi-Fi" + +msgid "Enter wifi password" +msgstr "Ingrese la contraseña del Wi-Fi" + +#, python-brace-format +msgid "Repositories: {}" +msgstr "Repositorios: {}" + +msgid "Loading packages..." +msgstr "Cargando paquetes..." + +msgid "No packages found" +msgstr "No se encontraron paquetes" + +msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed." +msgstr "Solo paquetes como base, sudo, linux, linux-firmware, efibootmgr y paquetes opcionales de perfil se instalan." + +msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools." +msgstr "Nota: base-devel ya no viene instalado por defecto. Agreguelo aquí si necesita herramientas de compilación." + +msgid "Select any packages from the below list that should be installed additionally" +msgstr "Seleccione cualquier paquete de la lista a continuación que deba instalarse adicionalmente" + +#, python-brace-format +msgid "Enter the number of parallel downloads (1-{})" +msgstr "Ingrese el número de descargas paralelas (1-{})" + +#, python-brace-format +msgid "Value must be between 1 and {}" +msgstr "El valor debe estar entre 1 y {}" + +msgid "Enable colored output for pacman" +msgstr "Activa salida a color para pacman" + +msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate." +msgstr "Pacman ya se está ejecutando, esperando un máximo de 10 minutos para que finalice." + +msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall." +msgstr "El bloqueo de pacman preexistente nunca se cerró. Limpie cualquier sesión de pacman existente antes de usar archinstall." + +msgid "The proprietary Nvidia driver is not supported by Sway." +msgstr "El controlador patentado de Nvidia no es compatible con Sway." + +msgid "It is likely that you will run into issues, are you okay with that?" +msgstr "Es probable que tengas problemas. ¿Te parece bien?" + +msgid "Selected profiles: " +msgstr "Perfiles seleccionados: " + +msgid "Select which greeter to install" +msgstr "Seleccione el saludo que desea instalar" + +msgid "Select a profile type" +msgstr "Seleccione un tipo de perfil" + +#, python-brace-format +msgid "Unable to fetch profile from specified url: {}" +msgstr "No se puede recuperar el perfil de la URL especificada: {}" + +#, python-brace-format +msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" +msgstr "Los perfiles deben tener un nombre único, pero se encontraron definiciones de perfil con nombre duplicado: {}" + +msgid "Add a user" +msgstr "Añadir un usuario" + +msgid "Change password" +msgstr "Cambiar contraseña" + +# maybe ascender/descender here? +msgid "Promote/Demote user" +msgstr "Promocionar/Degradar usuario" + +msgid "Delete User" +msgstr "Eliminar usuario" + +msgid "User" +msgstr "Usuario" + +msgid "Enter new password" +msgstr "Ingrese nueva contraseña" + +msgid "The username you entered is invalid" +msgstr "El nombre de usuario ingresado no es válido" + +msgid "Enter a username" +msgstr "Ingrese un nombre de usuario" + +msgid "Username" +msgstr "Nombre de usuario" + +msgid "Enter a password" +msgstr "Ingrese una contraseña" + +#, python-brace-format +msgid "Should \"{}\" be a superuser (sudo)?\n" +msgstr "¿«{}» debería ser un superusuario (sudo)?\n" + +#, python-brace-format +msgid "About to upload \"{}\" to the publicly accessible {}" +msgstr "A punto de subir «{}» al {} de acceso público." + +msgid "Do you want to continue?" +msgstr "¿Deseas continuar?" + +#, python-brace-format +msgid "Log uploaded successfully. URL: {}" +msgstr "Registro cargado correctamente. URL: {}" + +msgid "Failed to upload log." +msgstr "No se pudo cargar el registro." + +msgid "Archinstall requires root privileges to run. See --help for more." +msgstr "Archinstall requiere privilegios de root para ejecutarse. Consulte --help para más información." + +msgid "New version available" +msgstr "Nueva versión disponible" + +msgid "Starting device modifications in " +msgstr "Iniciando modificaciones en dispositivo en " + +msgid "Ok" +msgstr "Ok" + +msgid "Input cannot be empty" +msgstr "La entrada no debe estar vacía" + +msgid "Yes" +msgstr "Sí" + +msgid "No" +msgstr "No" + +msgid " (default)" +msgstr " (predeterminado)" + +#~ msgid "[!] A log file has been created here: {} {}" +#~ msgstr "[!] Se ha creado un archivo de registro aquí: {} {}" + +#~ msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues" +#~ msgstr " Por favor envíe este problema (y archivo) a https://github.com/archlinux/archinstall/issues" + +#~ msgid "And one more time for verification: " +#~ msgstr "Y una vez más para verificar: " + +#~ msgid "Desired hostname for the installation: " +#~ msgstr "Nombre de host deseado para la instalación: " + +#~ msgid "Username for required superuser with sudo privileges: " +#~ msgstr "Nombre de usuario para el superusuario con privilegios sudo: " + +#~ msgid "Any additional users to install (leave blank for no users): " +#~ msgstr "Algún usuario adicional a instalar (déjelo en blanco para no agregar ninguno): " + +#~ msgid "Should this user be a superuser (sudoer)?" +#~ msgstr "Debería este usuario ser un superusuario (sudoer)?" + +#~ msgid "Select a timezone" +#~ msgstr "Seleccione una zona horaria" + +#~ msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?" +#~ msgstr "Le gustaría usar GRUB como gestor de arranque en lugar de systemd-boot?" + +#~ msgid "Choose a bootloader" +#~ msgstr "Elija un gestor de arranque" + +#~ msgid "Choose an audio server" +#~ msgstr "Elija un servidor de audio" + +#~ msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed." +#~ msgstr "Solo paquetes como base, base-devel, linux, linux-firmware, efibootmgr y paquetes opcionales de perfil se instalan." + +#~ msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt." +#~ msgstr "Si desea un navegador web, como firefox o chromium, puede especificarlo en el siguiente mensaje." + +#~ msgid "Write additional packages to install (space separated, leave blank to skip): " +#~ msgstr "Escriba paquetes adicionales para instalar (separados por espacios, deje en blanco para omitir): " + +#~ msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)" +#~ msgstr "Usar NetworkManager (necesario para configurar internet gráficamente en GNOME y KDE)" + +#~ msgid "Select one network interface to configure" +#~ msgstr "Seleccione una interfaz de red para configurar" + +#~ msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" +#~ msgstr "Seleccione qué modo configurar para \"{}\" u omita para usar el modo predeterminado \"{}\"" + +#~ msgid "Enter your gateway (router) IP address or leave blank for none: " +#~ msgstr "Escriba la IP de su puerta de enlace (enrutador) o déjelo en blanco para no usar ninguna: " + +#~ msgid "Enter your DNS servers (space separated, blank for none): " +#~ msgstr "Ingrese sus servidores DNS (separados por espacios, en blanco para ninguno): " + +#~ msgid "Select which filesystem your main partition should use" +#~ msgstr "Seleccione qué sistema de archivos debe usar su partición principal" + +#~ msgid "Current partition layout" +#~ msgstr "Distribución actual de las particiones" + +#~ msgid "" +#~ "Select what to do with\n" +#~ "{}" +#~ msgstr "" +#~ "Seleccione qué hacer con\n" +#~ "{}" + +#~ msgid "Enter a desired filesystem type for the partition" +#~ msgstr "Ingrese un tipo de sistema de archivos deseado para la partición" + +#~ msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): " +#~ msgstr "Ingrese la ubicación de inicio (en unidades divididas: s, GB, %, etc. ; predeterminado: {}): " + +#~ msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): " +#~ msgstr "Ingrese la ubicación final (en unidades divididas: s, GB, %, etc. ; ej.: {}): " + +#~ msgid "{} contains queued partitions, this will remove those, are you sure?" +#~ msgstr "{} contiene particiones en cola, esto eliminará esas particiones, ¿está seguro?" + +#~ msgid "" +#~ "{}\n" +#~ "\n" +#~ "Select by index which partitions to delete" +#~ msgstr "" +#~ "{}\n" +#~ "\n" +#~ "Seleccione por índice qué particiones eliminar" + +#~ msgid "" +#~ "{}\n" +#~ "\n" +#~ "Select by index which partition to mount where" +#~ msgstr "" +#~ "{}\n" +#~ "\n" +#~ "Seleccione por índice qué partición montar en qué ubicación" + +#~ msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example." +#~ msgstr " * Los puntos de montaje de la partición son relativos al interior de la instalación, por ejemplo: el arranque sería /boot." + +#~ msgid "Select where to mount partition (leave blank to remove mountpoint): " +#~ msgstr "Seleccione dónde montar la partición (deje en blanco para eliminar el punto de montaje): " + +#~ msgid "" +#~ "{}\n" +#~ "\n" +#~ "Select which partition to mask for formatting" +#~ msgstr "" +#~ "{}\n" +#~ "\n" +#~ "Seleccione qué partición enmascarar para formatear" + +#~ msgid "" +#~ "{}\n" +#~ "\n" +#~ "Select which partition to mark as encrypted" +#~ msgstr "" +#~ "{}\n" +#~ "\n" +#~ "Seleccione qué partición marcar como encriptada" + +#~ msgid "" +#~ "{}\n" +#~ "\n" +#~ "Select which partition to mark as bootable" +#~ msgstr "" +#~ "{}\n" +#~ "\n" +#~ "Seleccione qué partición marcar como de arranque" + +#~ msgid "" +#~ "{}\n" +#~ "\n" +#~ "Select which partition to set a filesystem on" +#~ msgstr "" +#~ "{}\n" +#~ "\n" +#~ "Seleccione en qué partición establecer un sistema de archivos" + +#~ msgid "Enter a desired filesystem type for the partition: " +#~ msgstr "Ingrese un tipo de sistema de archivos deseado para la partición: " + +#~ msgid "Wipe all selected drives and use a best-effort default partition layout" +#~ msgstr "Borrar todas las unidades seleccionadas y usar un diseño de partición predeterminado de mejor esfuerzo" + +#~ msgid "Select what to do with each individual drive (followed by partition usage)" +#~ msgstr "Seleccione qué hacer con cada unidad individual (seguido del uso de la partición)" + +#~ msgid "Select what you wish to do with the selected block devices" +#~ msgstr "Seleccione lo que desea hacer con los dispositivos de bloque seleccionados" + +#~ msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments" +#~ msgstr "Esta es una lista de perfiles preprogramados que podrían facilitar la instalación de cosas como entornos de escritorio" + +#~ msgid "Select keyboard layout" +#~ msgstr "Seleccione la distribución del teclado" + +#~ msgid "Select one of the regions to download packages from" +#~ msgstr "Seleccione qué región usar para descargar paquetes" + +#~ msgid "Select one or more hard drives to use and configure" +#~ msgstr "Seleccione uno o más discos duros para usar y configurar" + +#~ msgid "" +#~ "\n" +#~ "\n" +#~ "Select a graphics driver or leave blank to install all open-source drivers" +#~ msgstr "" +#~ "\n" +#~ "\n" +#~ "Seleccione un controlador de gráficos o déjelo en blanco para instalar todos los controladores de código abierto" + +#~ msgid "All open-source (default)" +#~ msgstr "Todos de código abierto (predeterminado)" + +#~ msgid "Choose which kernels to use or leave blank for default \"{}\"" +#~ msgstr "Elija qué núcleo usar o deje en blanco para usar el núcleo \"{}\" predeterminado" + +#~ msgid "Choose which locale language to use" +#~ msgstr "Elija qué idioma local usar" + +#~ msgid "Choose which locale encoding to use" +#~ msgstr "Elija qué codificación local usar" + +#~ msgid "Select one of the values shown below: " +#~ msgstr "Seleccione uno de los valores que se muestran a continuación: " + +#~ msgid "Select one or more of the options below: " +#~ msgstr "Seleccione una o más de las siguientes opciones: " + +#~ msgid "Adding partition...." +#~ msgstr "Añadiendo partición..." + +#~ msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's." +#~ msgstr "Debe ingresar un tipo de sistema de archivos (fs-type) válido para continuar. Consulte `man parted` para conocer los tipos válidos." + +#~ msgid "Error: Listing profiles on URL \"{}\" resulted in:" +#~ msgstr "Error: Listar perfiles en la URL \"{}\" resultó en:" + +#~ msgid "Error: Could not decode \"{}\" result as JSON:" +#~ msgstr "Error: No se pudo decodificar el resultado \"{}\" como JSON:" + +#~ msgid "Mirror region" +#~ msgstr "Región del servidor" + +#~ msgid "Drive(s)" +#~ msgstr "Disco(s)" + +#~ msgid "Superuser account" +#~ msgstr "Cuenta de superusuario" + +# are you installing missing configs or are there missing configs +#~ msgid "Install ({} config(s) missing)" +#~ msgstr "Instalar ({} ajuste(s) faltante(s))" + +#~ msgid "" +#~ "You decided to skip harddrive selection\n" +#~ "and will use whatever drive-setup is mounted at {} (experimental)\n" +#~ "WARNING: Archinstall won't check the suitability of this setup\n" +#~ "Do you wish to continue?" +#~ msgstr "" +#~ "Ha decidido saltar la selección de discos duros\n" +#~ "y usar la configuración montada en {} (experimental)\n" +#~ "ADVERTENCIA: Archinstall no verificará la idoneidad de esta configuración\n" +#~ "¿Desea continuar?" + +#~ msgid "Re-using partition instance: {}" +#~ msgstr "Reutilizando instancia de partición: {}" + +#~ msgid "Create a new partition" +#~ msgstr "Crear una nueva partición" + +#~ msgid "Delete a partition" +#~ msgstr "Eliminar una partición" + +#~ msgid "Clear/Delete all partitions" +#~ msgstr "Limpiar/Eliminar todas las particiones" + +#~ msgid "Assign mount-point for a partition" +#~ msgstr "Asignar punto de montaje para una partición" + +#~ msgid "Mark/Unmark a partition to be formatted (wipes data)" +#~ msgstr "Marcar/Desmarcar una partición para ser formateada (borra los datos)" + +#~ msgid "Mark/Unmark a partition as encrypted" +#~ msgstr "Marcar/Desmarcar una partición como encriptada" + +#~ msgid "Mark/Unmark a partition as bootable (automatic for /boot)" +#~ msgstr "Marcar/Desmarcar una partición como arrancable (automática para /boot)" + +#~ msgid "Set desired filesystem for a partition" +#~ msgstr "Establecer el sistema de archivos deseado para una partición" + +#~ msgid "Not configured, unavailable unless setup manually" +#~ msgstr "No configurado, no disponible a menos que se configure manualmente" + +#~ msgid "Set/Modify the below options" +#~ msgstr "Establecer/Modificar las opciones siguientes" + +#~ msgid "" +#~ "Use ESC to skip\n" +#~ "\n" +#~ msgstr "" +#~ "Usar ESC para saltar\n" +#~ "\n" + +#~ msgid "Enter a password: " +#~ msgstr "Ingrese una contraseña: " + +#~ msgid "Enter a encryption password for {}" +#~ msgstr "Ingrese una contraseña de cifrado para {}" + +#~ msgid "Enter disk encryption password (leave blank for no encryption): " +#~ msgstr "Ingrese la contraseña de cifrado de disco (deje en blanco para no cifrar): " + +#~ msgid "Create a required super-user with sudo privileges: " +#~ msgstr "Crear un super-usuario requerido con privilegios sudo: " + +#~ msgid "Enter root password (leave blank to disable root): " +#~ msgstr "Ingrese la contraseña de root (deje en blanco para desactivar root): " + +#~ msgid "Password for user \"{}\": " +#~ msgstr "Contraseña para el usuario “{}”: " + +#~ msgid "Verifying that additional packages exist (this might take a few seconds)" +#~ msgstr "Verificando que los paquetes adicionales existen (esto puede tardar unos segundos)" + +#~ msgid "Enter a username to create an additional user (leave blank to skip): " +#~ msgstr "Introduzca un nombre de usuario para crear un usuario adicional (deje en blanco para saltar): " + +#~ msgid "Use ESC to skip\n" +#~ msgstr "Use ESC para omitir\n" + +#~ msgid "" +#~ "\n" +#~ " Choose an object from the list, and select one of the available actions for it to execute" +#~ msgstr "" +#~ "\n" +#~ "Elija un objeto de la lista y seleccione una de las acciones disponibles para ejecutar" + +#~ msgid "Add" +#~ msgstr "Añadir" + +#~ msgid "Copy" +#~ msgstr "Copiar" + +#~ msgid "Edit" +#~ msgstr "Editar" + +#~ msgid "Delete" +#~ msgstr "Eliminar" + +#~ msgid "Select an action for '{}'" +#~ msgstr "Seleccione una acción para '{}'" + +#~ msgid "Copy to new key:" +#~ msgstr "Copiar a nueva clave:" + +#~ msgid "Unknown nic type: {}. Possible values are {}" +#~ msgstr "Tipo de nic desconocido: {}. Los valores posibles son {}" + +#~ msgid "" +#~ "\n" +#~ "This is your chosen configuration:" +#~ msgstr "" +#~ "\n" +#~ "Esta es su configuración elegida:" + +#~ msgid "Choose which optional additional repositories to enable" +#~ msgstr "Elija qué repositorios adicionales opcionales activar" + +#~ msgid "" +#~ "\n" +#~ "Define a new user\n" +#~ msgstr "" +#~ "\n" +#~ "Definir un nuevo usuario\n" + +#~ msgid "User Name : " +#~ msgstr "Nombre de usuario : " + +#~ msgid "Should {} be a superuser (sudoer)?" +#~ msgstr "¿Debe {} ser un superusuario (sudoer)?" + +#~ msgid "Define users with sudo privilege: " +#~ msgstr "Defina usuarios con privilegio sudo: " + +#~ msgid "No network configuration" +#~ msgstr "Sin configuración de red" + +#~ msgid "Set desired subvolumes on a btrfs partition" +#~ msgstr "Establecer los subvolúmenes deseados en una partición BTRFS" + +#~ msgid "" +#~ "{}\n" +#~ "\n" +#~ "Select which partition to set subvolumes on" +#~ msgstr "" +#~ "{}\n" +#~ "\n" +#~ "Seleccione en qué partición configurar los subvolúmenes" + +#~ msgid "Manage btrfs subvolumes for current partition" +#~ msgstr "Administrar subvolúmenes BTRFS para la partición actual" + +#~ msgid "Save user configuration" +#~ msgstr "Guardar configuración de usuario" + +#~ msgid "Save disk layout" +#~ msgstr "Guardar diseño de disco" + +#~ msgid "Choose which configuration to save" +#~ msgstr "Elija qué configuración guardar" + +#~ msgid "Enter a directory for the configuration(s) to be saved: " +#~ msgstr "Ingrese un directorio para guardar la(s) configuración(es): " + +#~ msgid "Not a valid directory: {}" +#~ msgstr "No es un directorio válido: {}" + +#~ msgid "The password you are using seems to be weak," +#~ msgstr "La contraseña que está utilizando parece ser débil," + +#~ msgid "are you sure you want to use it?" +#~ msgstr "¿Está seguro de querer usarlo?" + +#~ msgid "Either root-password or at least 1 superuser must be specified" +#~ msgstr "Debe especificar una contraseña de root o al menos 1 superusuario" + +#~ msgid "Manage superuser accounts: " +#~ msgstr "Administrar cuentas de superusuario: " + +#~ msgid "Manage ordinary user accounts: " +#~ msgstr "Administrar cuentas de usuario ordinarias: " + +#~ msgid " Subvolume :{:16}" +#~ msgstr " Subvolumen :{:16}" + +#~ msgid " mounted at {:16}" +#~ msgstr " montado en {:16}" + +#~ msgid " with option {}" +#~ msgstr " con opción {}" + +#~ msgid "" +#~ "\n" +#~ " Fill the desired values for a new subvolume \n" +#~ msgstr "" +#~ "\n" +#~ "Complete los valores deseados para un nuevo subvolumen\n" + +#~ msgid "Subvolume name " +#~ msgstr "Nombre del subvolumen " + +#~ msgid "Subvolume mountpoint" +#~ msgstr "Punto de montaje del subvolumen" + +#~ msgid "Subvolume options" +#~ msgstr "Opciones del subvolumen" + +#~ msgid "Save" +#~ msgstr "Guardar" + +#~ msgid "Subvolume name :" +#~ msgstr "Nombre del subvolumen :" + +#~ msgid "Select a mount point :" +#~ msgstr "Seleccione un punto de montaje :" + +#~ msgid "Select the desired subvolume options " +#~ msgstr "Seleccione las opciones de subvolumen deseadas " + +#~ msgid "Define users with sudo privilege, by username: " +#~ msgstr "Defina usuarios con privilegio sudo, por nombre de usuario: " + +#~ msgid "Would you like to use BTRFS compression?" +#~ msgstr "¿Le gustaría usar la compresión BTRFS?" + +#~ msgid "Minimum capacity for /home partition: {}GB\n" +#~ msgstr "Capacidad mínima para la partición /home: {}GB\n" + +#~ msgid "Minimum capacity for Arch Linux partition: {}GB" +#~ msgstr "Capacidad mínima para la partición Arch Linux: {}GB" + +#~ msgid "Continue" +#~ msgstr "Continuar" + +#~ msgid "yes" +#~ msgstr "sí" + +#~ msgid "no" +#~ msgstr "no" + +#~ msgid "set: {}" +#~ msgstr "establecer: {}" + +#~ msgid "Manual configuration setting must be a list" +#~ msgstr "La configuración manual debe ser una lista." + +#~ msgid "No iface specified for manual configuration" +#~ msgstr "No se especificó iface para la configuración manual" + +#~ msgid "Manual nic configuration with no auto DHCP requires an IP address" +#~ msgstr "La configuración manual de la NIC sin DHCP automático requiere una dirección IP" + +#~ msgid "Select interface to add" +#~ msgstr "Seleccione la interfaz para agregar" + +#~ msgid "Mark/Unmark a partition as compressed (btrfs only)" +#~ msgstr "Marcar/Desmarcar una partición como comprimida (solo BTRFS)" + +#~ msgid "The password you are using seems to be weak, are you sure you want to use it?" +#~ msgstr "La contraseña que está utilizando parece ser débil, ¿está seguro de que desea usarla?" + +#~ msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway" +#~ msgstr "Proporciona una selección de entornos de escritorio y administradores de ventanas en mosaico, p.e. gnome, kde, sway" + +#~ msgid "Select your desired desktop environment" +#~ msgstr "Seleccione su entorno de escritorio deseado" + +#~ msgid "A very basic installation that allows you to customize Arch Linux as you see fit." +#~ msgstr "Una instalación muy básica que te permite personalizar Arch Linux como mejor te parezca." + +#~ msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb" +#~ msgstr "Proporciona una selección de varios paquetes de servidor para instalar y activar, p.ej. httpd, nginx, mariadb" + +#~ msgid "Choose which servers to install, if none then a minimal installation will be done" +#~ msgstr "Elija qué servidores instalar, si no hay ninguno, se realizará una instalación mínima" + +#~ msgid "Installs a minimal system as well as xorg and graphics drivers." +#~ msgstr "Instala un sistema mínimo, así como controladores xorg y gráficos." + +#~ msgid "Press Enter to continue." +#~ msgstr "Presione Entrar para continuar." + +#~ msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?" +#~ msgstr "¿Le gustaría acceder a la instalación recién creada y realizar la configuración posterior a la instalación?" + +#~ msgid "Select one or more hard drives to use and configure\n" +#~ msgstr "Seleccione uno o más discos duros para usar y configurar\n" + +#~ msgid "Any modifications to the existing setting will reset the disk layout!" +#~ msgstr "¡Cualquier modificación a la configuración existente restablecerá el diseño del disco!" + +#~ msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?" +#~ msgstr "Si restablece la selección del disco duro, esto también restablecerá el diseño actual del disco. ¿Está seguro?" + +#~ msgid "Save and exit" +#~ msgstr "Guardar y salir" + +#~ msgid "" +#~ "{}\n" +#~ "contains queued partitions, this will remove those, are you sure?" +#~ msgstr "" +#~ "{}\n" +#~ "contiene particiones en cola, esto las eliminará, ¿está seguro?" + +#~ msgid "Use ESC to skip" +#~ msgstr "Use ESC para omitir" + +#~ msgid "" +#~ "Use CTRL+C to reset current selection\n" +#~ "\n" +#~ msgstr "" +#~ "Use CTRL+C para restablecer la selección actual\n" +#~ "\n" + +#~ msgid "Copy to: " +#~ msgstr "Copiar a: " + +#~ msgid "Edit: " +#~ msgstr "Editar: " + +#~ msgid "Key: " +#~ msgstr "Clave: " + +#~ msgid "Edit {}: " +#~ msgstr "Editar {}: " + +#~ msgid "Add: " +#~ msgstr "Añadir: " + +#~ msgid "Value: " +#~ msgstr "Valor: " + +#~ msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)" +#~ msgstr "Puede omitir la selección de una unidad y la partición y usar cualquier configuración de unidad que esté montada en /mnt (experimental)" + +#~ msgid "Select one of the disks or skip and use /mnt as default" +#~ msgstr "Seleccione uno de los discos u omita y use /mnt como predeterminado" + +#~ msgid "Select which partitions to mark for formatting:" +#~ msgstr "Seleccione qué particiones marcar para formatear:" + +#~ msgid "Use HSM to unlock encrypted drive" +#~ msgstr "Usar HSM para desbloquear la unidad cifrada" + +#~ msgid "Size" +#~ msgstr "Tamaño" + +#~ msgid "Free space" +#~ msgstr "Espacio libre" + +#~ msgid "Bus-type" +#~ msgstr "Tipo de bus" + +#~ msgid "Enter username (leave blank to skip): " +#~ msgstr "Ingrese el nombre de usuario (déjelo en blanco para omitir): " + +#~ msgid "The username you entered is invalid. Try again" +#~ msgstr "El nombre de usuario que ingresó no es válido. Intente nuevamente" + +#~ msgid "Should \"{}\" be a superuser (sudo)?" +#~ msgstr "¿Debe \"{}\" ser un superusuario (sudo)?" + +#~ msgid "Select which partitions to encrypt" +#~ msgstr "Seleccione qué particiones cifrar" + +#~ msgid "This option enables the number of parallel downloads that can occur during installation" +#~ msgstr "Esta opción activa la cantidad de descargas paralelas que pueden ocurrir durante la instalación" + +#~ msgid "" +#~ "Enter the number of parallel downloads to be enabled.\n" +#~ " (Enter a value between 1 to {})\n" +#~ "Note:" +#~ msgstr "" +#~ "Ingrese el número de descargas paralelas que se activarán.\n" +#~ " (Ingrese un valor entre 1 y {})\n" +#~ "Nota:" + +#~ msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )" +#~ msgstr " - Valor máximo : {} (Permitir {} descargas paralelas, permite {} descargas simultáneas)" + +#~ msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )" +#~ msgstr " - Valor mínimo : 1 (Permitir 1 descarga paralela, permite 2 descargas simultáneas)" + +#~ msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )" +#~ msgstr " - Desactivar/Predeterminado : 0 (Desactiva la descarga paralela, permite solo 1 descarga simultánea)" + +#, python-brace-format +#~ msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]" +#~ msgstr "¡Entrada no válida! Intente nuevamente con una entrada válida [1 a {max_downloads}, o 0 para desactivar]" + +#~ msgid "ESC to skip" +#~ msgstr "ESC para omitir" + +#~ msgid "CTRL+C to reset" +#~ msgstr "CTRL+C para restablecer" + +#~ msgid "TAB to select" +#~ msgstr "TAB para seleccionar" + +#~ msgid "[Default value: 0] > " +#~ msgstr "[Valor predeterminado: 0] > " + +#~ msgid "To be able to use this translation, please install a font manually that supports the language." +#~ msgstr "Para poder usar esta traducción, instale manualmente una fuente que admita el idioma." + +#~ msgid "The font should be stored as {}" +#~ msgstr "La fuente debe almacenarse como {}" + +#~ msgid "Select an execution mode" +#~ msgstr "Seleccione un modo de ejecución" + +#~ msgid "Select one or more devices to use and configure" +#~ msgstr "Seleccione uno o más dispositivos para usar y configurar" + +#~ msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?" +#~ msgstr "Si restablece la selección del dispositivo, esto también restablecerá el diseño actual del disco. ¿Está seguro?" + +#~ msgid "Existing Partitions" +#~ msgstr "Particiones existentes" + +#~ msgid "Select a partitioning option" +#~ msgstr "Seleccione una opción de partición" + +#~ msgid "Enter the root directory of the mounted devices: " +#~ msgstr "Ingrese el directorio raíz de los dispositivos montados: " + +#~ msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments" +#~ msgstr "Esta es una lista de profiles_bck preprogramados que podrían facilitar la instalación de cosas como entornos de escritorio" + +#~ msgid "Current profile selection" +#~ msgstr "Selección de perfil actual" + +#~ msgid "If mountpoint /boot is set, then the partition will also be marked as bootable." +#~ msgstr "Si se establece el punto de montaje /boot, la partición también se marcará como arrancable." + +#~ msgid "Mountpoint: " +#~ msgstr "Punto de montaje: " + +#~ msgid "Current free sectors on device {}:" +#~ msgstr "Sectores libres actuales en el dispositivo {}:" + +#~ msgid "Total sectors: {}" +#~ msgstr "Sectores totales: {}" + +#~ msgid "Enter the start sector (default: {}): " +#~ msgstr "Introduzca el sector de inicio (predeterminado: {}): " + +#~ msgid "Enter the end sector of the partition (percentage or block number, default: {}): " +#~ msgstr "Ingrese el sector final de la partición (porcentaje o número de bloque, predeterminado: {}): " + +#~ msgid "Iteration time cannot be empty" +#~ msgstr "Tiempo de iteración no puede estar vacío" + +#~ msgid "No HSM devices available" +#~ msgstr "No hay dispositivos HSM disponibles" + +#~ msgid "Select disk encryption option" +#~ msgstr "Seleccione la opción de cifrado de disco" + +#~ msgid "Partition encryption" +#~ msgstr "Cifrado de partición" + +#, python-brace-format +#~ msgid " ! Formatting {} in " +#~ msgstr " ! Formateando {} en " + +#~ msgid "← Back" +#~ msgstr "← Regresar" + +#~ msgid "All settings will be reset, are you sure?" +#~ msgstr "Todos los ajustes se restablecerán, ¿está seguro?" + +#~ msgid "Please chose which greeter to install for the chosen profiles: {}" +#~ msgstr "Por favor, elija qué gestor de inicio de sesión instalar para los perfiles elegidos: {}" + +#~ msgid "The proprietary Nvidia driver is not supported by Sway. It is likely that you will run into issues, are you okay with that?" +#~ msgstr "El controlador propietario de Nvidia no es compatible con Sway. Es probable que encuentre problemas, ¿Desear continuar?" + +#~ msgid "Add profile" +#~ msgstr "Agregar perfil" + +#~ msgid "Edit profile" +#~ msgstr "Editar perfil" + +#~ msgid "Delete profile" +#~ msgstr "Eliminar perfil" + +#~ msgid "Profile name: " +#~ msgstr "Nombre de perfil: " + +#~ msgid "The profile name you entered is already in use. Try again" +#~ msgstr "El nombre de perfil que ingresó ya está en uso. Intente nuevamente" + +#~ msgid "Packages to be install with this profile (space separated, leave blank to skip): " +#~ msgstr "Paquetes que se instalarán con este perfil (separados por espacios, déjelo en blanco para omitir): " + +#~ msgid "Services to be enabled with this profile (space separated, leave blank to skip): " +#~ msgstr "Servicios que se activarán con este perfil (separados por espacios, deje en blanco para omitir): " + +#~ msgid "Should this profile be enabled for installation?" +#~ msgstr "¿Debería activarse este perfil para la instalación?" + +#~ msgid "Create your own" +#~ msgstr "Crear tu propio" + +#~ msgid "" +#~ "\n" +#~ "Select a graphics driver or leave blank to install all open-source drivers" +#~ msgstr "" +#~ "\n" +#~ "Seleccione un controlador de gráficos o deje en blanco para instalar todos los controladores de código abierto" + +#~ msgid "" +#~ "\n" +#~ "\n" +#~ "Choose an option to give Sway access to your hardware" +#~ msgstr "" +#~ "\n" +#~ "\n" +#~ "Elija una opción para darle a Sway acceso a su hardware" + +#~ msgid "Please chose which greeter to install" +#~ msgstr "Por favor, elija qué gestor de inicio de sesión instalar" + +#~ msgid "This is a list of pre-programmed default_profiles" +#~ msgstr "Esta es una lista de default_profiles preprogramados" + +#~ msgid "Finding possible directories to save configuration files ..." +#~ msgstr "Encontrar posibles directorios para guardar archivos de configuración..." + +#~ msgid "Select directory (or directories) for saving configuration files" +#~ msgstr "Seleccione el directorio (o directorios) para guardar los archivos de configuración" + +#~ msgid "Add a custom mirror" +#~ msgstr "Agregar un espejo personalizado" + +#~ msgid "Change custom mirror" +#~ msgstr "Cambiar espejo personalizado" + +#~ msgid "Delete custom mirror" +#~ msgstr "Eliminar espejo personalizado" + +#~ msgid "Enter name (leave blank to skip): " +#~ msgstr "Ingrese el nombre (deje en blanco para omitir): " + +#~ msgid "Enter url (leave blank to skip): " +#~ msgstr "Ingrese la URL (deje en blanco para omitir): " + +#~ msgid "Select signature check option" +#~ msgstr "Seleccione la opción de verificación de firma" + +#~ msgid "Defined" +#~ msgstr "Definido" + +#~ msgid "" +#~ "Enter a directory for the configuration(s) to be saved (tab completion enabled)\n" +#~ "Save directory: " +#~ msgstr "" +#~ "Ingrese un directorio para guardar las configuraciones (completar con tabulación activado)\n" +#~ "Guardar directorio: " + +#~ msgid "" +#~ "Do you want to save {} configuration file(s) in the following location?\n" +#~ "\n" +#~ "{}" +#~ msgstr "" +#~ "¿Desea guardar {} archivo(s) de configuración en la siguiente ubicación?\n" +#~ "\n" +#~ "{}" + +#~ msgid "Saving {} configuration files to {}" +#~ msgstr "Guardar {} archivos de configuración en {}" + +#~ msgid "Mirrors" +#~ msgstr "Espejos" + +#~ msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )" +#~ msgstr " - Valor máximo : {} (Permitir {} descargas paralelas, permite {max_downloads+1} descargas simultáneas)" + +#~ msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]" +#~ msgstr "¡Entrada no válida! Intente nuevamente con una entrada válida [1 a {}, o 0 para desactivar]" + +#~ msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)" +#~ msgstr "Usar NetworkManager (necesario para configurar internet gráficamente en GNOME y KDE)" + +#~ msgid "Total: {} / {}" +#~ msgstr "Total: {} / {}" + +#~ msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..." +#~ msgstr "Todos los valores ingresados pueden tener una unidad como sufijo: B, KB, KiB, MB, MiB ..." + +#~ msgid "Enter start (default: sector {}): " +#~ msgstr "Ingrese el inicio (predeterminado: sector {}): " + +#~ msgid "Enter end (default: {}): " +#~ msgstr "Ingrese el final (predeterminado: {}): " + +#~ msgid "Unable to determine fido2 devices. Is libfido2 installed?" +#~ msgstr "No se pueden determinar los dispositivos fido2. ¿Está instalado libfido2?" + +#~ msgid "Path" +#~ msgstr "Ruta" + +#~ msgid "Manufacturer" +#~ msgstr "Fabricante" + +#~ msgid "Product" +#~ msgstr "Producto" + +#~ msgid "This option enables the number of parallel downloads that can occur during package downloads" +#~ msgstr "Esta opción activa la cantidad de descargas paralelas que pueden ocurrir durante las descargas de paquetes" + +#~ msgid "" +#~ "Enter the number of parallel downloads to be enabled.\n" +#~ "\n" +#~ "Note:\n" +#~ msgstr "" +#~ "Ingrese el número de descargas paralelas que se activarán.\n" +#~ "\n" +#~ "Nota:\n" + +#, python-brace-format +#~ msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" +#~ msgstr " - Valor máximo recomendado : {} (Permite {} descargas paralelas simultáneas)" + +#~ msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n" +#~ msgstr " - Desactivar/Predeterminado : 0 (Desactiva la descarga paralela, permite solo 1 descarga simultánea)\n" + +#~ msgid "Invalid input! Try again with a valid input [or 0 to disable]" +#~ msgstr "¡Entrada no válida! Intente nuevamente con una entrada válida [o 0 para desactivar]" + +#~ msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)" +#~ msgstr "Hyprland necesita acceso a su asiento (colección de dispositivos de hardware, es decir, teclado, mouse, etc.)" + +#~ msgid "" +#~ "\n" +#~ "\n" +#~ "Choose an option to give Hyprland access to your hardware" +#~ msgstr "" +#~ "\n" +#~ "\n" +#~ "Elija una opción para darle acceso a Hyprland a su hardware" + +#~ msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/" +#~ msgstr "La sincronización de hora no se completa mientras espera - consulte los documentos para encontrar soluciones: https://archinstall.readthedocs.io/" + +#~ msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" +#~ msgstr "Proporciona una selección de entornos de escritorio y administradores de ventanas en mosaico, p.e. GNOME, KDE Plasma, Sway" + +#~ msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)" +#~ msgstr "Usar NetworkManager (necesario para configurar internet gráficamente en GNOME y KDE Plasma)" + +#~ msgid "Select a LVM option" +#~ msgstr "Seleccione una opción LVM" + +#~ msgid "Logical Volume Management (LVM)" +#~ msgstr "Gestión de volúmenes lógicos (LVM)" + +#~ msgid "Select which LVM volumes to encrypt" +#~ msgstr "Seleccione qué volúmenes LVM cifrar" + +#~ msgid "Archinstall help" +#~ msgstr "Ayuda de archinstall" + +#~ msgid "Press Ctrl+h for help" +#~ msgstr "Presione Ctrl+h para obtener ayuda" + +# maybe "Acceso a la estación" or "Gestión de puestos (seats)" could be better? +#~ msgid "Seat access" +#~ msgstr "Acceso al asiento" + +#~ msgid "Filesystem" +#~ msgstr "Sistema de archivos" + +#~ msgid "Start (default: sector {}): " +#~ msgstr "Inicio (predeterminado: sector {}): " + +#~ msgid "End (default: {}): " +#~ msgstr "Fin (predeterminado: {}): " + +#~ msgid "Disk configuration type" +#~ msgstr "Tipo de configuración del disco" + +#~ msgid "Root mount directory" +#~ msgstr "Directorio de montaje raíz" + +#~ msgid "Select language" +#~ msgstr "Seleccionar idioma" + +#~ msgid "Write additional packages to install (space separated, leave blank to skip)" +#~ msgstr "Escriba paquetes adicionales para instalar (separados por espacios, déjelo en blanco para omitir)" + +#~ msgid "Invalid download number" +#~ msgstr "Número de descarga no válido" + +#~ msgid "Number downloads" +#~ msgstr "Número de descargas" + +#~ msgid "Interfaces" +#~ msgstr "Interfaces" + +#~ msgid "Modes" +#~ msgstr "Modos" + +#~ msgid "IP address" +#~ msgstr "Dirección IP" + +#~ msgid "Gateway address" +#~ msgstr "Dirección de la puerta de enlace" + +#~ msgid "DNS servers" +#~ msgstr "Servidores DNS" + +#~ msgid "Info" +#~ msgstr "Info" + +#~ msgid "Main profile" +#~ msgstr "Perfil principal" + +#~ msgid "The confirmation password did not match, please try again" +#~ msgstr "La contraseña de confirmación no coincide, por favor intente nuevamente" + +#~ msgid "Directory" +#~ msgstr "Directorio" + +#~ msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)" +#~ msgstr "Ingrese un directorio para guardar las configuraciones (autocompletado de tabulación activado)" + +#~ msgid "Mirror name" +#~ msgstr "Nombre del espejo" + +#~ msgid "Select execution mode" +#~ msgstr "Seleccionar modo de ejecución" + +#~ msgid "Press ? for help" +#~ msgstr "Presione ? para obtener ayuda" + +#~ msgid "Choose an option to give Hyprland access to your hardware" +#~ msgstr "Elija una opción para darle a Hyprland acceso a su hardware" + +#, python-brace-format +#~ msgid "Size (default: {}): " +#~ msgstr "Tamaño (predeterminado: {}): " + +#~ msgid "Some packages could not be found in the repository" +#~ msgstr "No se pudieron encontrar algunos paquetes en el repositorio" + +#~ msgid "Repository name" +#~ msgstr "Nombre del repositorio" + +#~ msgid "Server url" +#~ msgstr "URL del servidor" + +#~ msgid "Only ASCII characters are supported" +#~ msgstr "Sólo se admiten caracteres ASCII" + +#~ msgid "Show help" +#~ msgstr "Mostrar ayuda" + +#~ msgid "Exit help" +#~ msgstr "Ayuda para salir" + +#~ msgid "Preview scroll up" +#~ msgstr "Subir en vista previa" + +#~ msgid "Preview scroll down" +#~ msgstr "Bajar en vista previa" + +#~ msgid "Move up" +#~ msgstr "Subir" + +#~ msgid "Move down" +#~ msgstr "Bajar" + +#~ msgid "Move right" +#~ msgstr "Mover a la derecha" + +#~ msgid "Move left" +#~ msgstr "Mover a la izquierda" + +#~ msgid "Jump to entry" +#~ msgstr "Saltar a la entrada" + +#~ msgid "Skip selection (if available)" +#~ msgstr "Saltar selección (si está disponible)" + +#~ msgid "Reset selection (if available)" +#~ msgstr "Restablecer selección (si está disponible)" + +#~ msgid "Select on single select" +#~ msgstr "Seleccionar en selección única" + +#~ msgid "Select on multi select" +#~ msgstr "Seleccionar en selección múltiple" + +#~ msgid "Reset" +#~ msgstr "Restablecer" + +#~ msgid "Skip selection menu" +#~ msgstr "Saltar el menú de selección" + +#~ msgid "Start search mode" +#~ msgstr "Iniciar modo de búsqueda" + +#~ msgid "Exit search mode" +#~ msgstr "Salir del modo de búsqueda" + +#~ msgid "General" +#~ msgstr "General" + +#~ msgid "Navigation" +#~ msgstr "Navegación" + +#~ msgid "Selection" +#~ msgstr "Selección" + +#~ msgid "Search" +#~ msgstr "Buscar" + +#~ msgid "Down" +#~ msgstr "Abajo" + +#~ msgid "Up" +#~ msgstr "Arriba" + +#~ msgid "Confirm" +#~ msgstr "Confirmar" + +#~ msgid "Focus right" +#~ msgstr "Enfocar a la derecha" + +#~ msgid "Focus left" +#~ msgstr "Enfocar a la izquierda" + +#~ msgid "Toggle" +#~ msgstr "Alternar" + +#~ msgid "Show/Hide help" +#~ msgstr "Mostrar/Ocultar ayuda" + +#~ msgid "Quit" +#~ msgstr "Salir" + +#~ msgid "First" +#~ msgstr "Primero" + +#~ msgid "Last" +#~ msgstr "Último" + +#~ msgid "Select" +#~ msgstr "Seleccionar" + +#~ msgid "Page Up" +#~ msgstr "Subir página" + +#~ msgid "Page Down" +#~ msgstr "Bajar página" + +#~ msgid "Page up" +#~ msgstr "Subir página" + +#~ msgid "Page down" +#~ msgstr "Bajar página" + +#~ msgid "Page Left" +#~ msgstr "Página izquierda" + +#~ msgid "Page Right" +#~ msgstr "Página derecha" + +#~ msgid "Cursor up" +#~ msgstr "Subir" + +#~ msgid "Cursor down" +#~ msgstr "Cursor hacia abajo" + +#~ msgid "Cursor right" +#~ msgstr "Cursor hacia la derecha" + +#~ msgid "Cursor left" +#~ msgstr "Cursor hacia la izquierda" + +#~ msgid "Top" +#~ msgstr "Arriba" + +#~ msgid "Bottom" +#~ msgstr "Abajo" + +#~ msgid "Home" +#~ msgstr "Inicio" + +#~ msgid "End" +#~ msgstr "Final" + +#~ msgid "Toggle option" +#~ msgstr "Opción de alternancia" + +#~ msgid "Scroll Up" +#~ msgstr "Mover Arriba" + +#~ msgid "Scroll Down" +#~ msgstr "Deslizar hacia abajo" + +#~ msgid "Scroll Left" +#~ msgstr "Mover hacia la izquierda" + +#~ msgid "Scroll Right" +#~ msgstr "Mover hacia la derecha" + +#~ msgid "Scroll Home" +#~ msgstr "Ir al Inicio" + +#~ msgid "Scroll End" +#~ msgstr "Ir al Final" + +#~ msgid "Focus Next" +#~ msgstr "Enfocar a la siguiente" + +#~ msgid "Focus Previous" +#~ msgstr "Enfocar a la anterior" + +#~ msgid "Copy selected text" +#~ msgstr "Copiar texto seleccionado" + +#~ msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)" +#~ msgstr "labwc necesita acceso a su asiento (colección de dispositivos de hardware, es decir, teclado, ratón, etc.)" + +#~ msgid "Choose an option to give labwc access to your hardware" +#~ msgstr "Elija una opción para darle a labwc acceso a su hardware" + +#~ msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)" +#~ msgstr "niri necesita acceso a su asiento (colección de dispositivos de hardware, es decir, teclado, ratón, etc.)" + +#~ msgid "Choose an option to give niri access to your hardware" +#~ msgstr "Elija una opción para darle a niri acceso a su hardware" + +#~ msgid "Credentials file decryption password" +#~ msgstr "Contraseña para descifrar el archivo de credenciales" + +#~ msgid "Snapshot type" +#~ msgstr "Tipo de snapshot" + +#~ msgid "U2F Login Method" +#~ msgstr "Método de inicio de sesión U2F" + +#~ msgid "Will install to /EFI/BOOT/ (removable location)" +#~ msgstr "Se instalará en /EFI/BOOT/ (ubicación desmontable)" + +#~ msgid "Will install to standard location with NVRAM entry" +#~ msgstr "Se instalará en ubicación estandar con entrada NVRAM" + +#~ msgid "Firmware that does not properly support NVRAM boot entries." +#~ msgstr "Firmware que no soporta entradas arrancables NVRAM." + +#~ msgid "Enter the number of parallel downloads to be enabled" +#~ msgstr "Ingrese el número de descargas paralelas que desea activar" + +#, python-brace-format +#~ msgid "Setting up U2F login: {u2f_config.u2f_login_method.value}" +#~ msgstr "Configurando Inicio U2F: {u2f_config.u2f_login_method.value}" + +#, python-brace-format +#~ msgid "Default: {DEFAULT_ITER_TIME}ms, Recommended range: 1000-60000" +#~ msgstr "Predeterminado: {DEFAULT_ITER_TIME}ms, Rango recomendado: 1000-60000" #~ msgid "Add :" #~ msgstr "Añadir :" From 2aeb824cf94bf30bd9299e67e784cd05d1b21337 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 6 Jun 2026 18:23:26 +1000 Subject: [PATCH 05/17] Update dependency ruff to v0.15.15 (#4558) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index ccbee27b..29049d67 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,7 +37,7 @@ dev = [ "mypy==2.1.0", "flake8==7.3.0", "pre-commit==4.6.0", - "ruff==0.15.14", + "ruff==0.15.15", "pylint==4.0.5", "pytest==9.0.3", "hypothesis>=6.152.4", From a39a44188a0864771d5c04be53334ee413494b5b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 6 Jun 2026 18:23:53 +1000 Subject: [PATCH 06/17] Update pre-commit hook astral-sh/ruff-pre-commit to v0.15.15 (#4559) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 6ba223de..d0c51725 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,7 +1,7 @@ default_stages: ['pre-commit'] repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.15.14 + rev: v0.15.15 hooks: # fix unused imports and sort them - id: ruff From 07e10f96487f6acf8a3955c47cd8c5a80d250579 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 6 Jun 2026 18:25:05 +1000 Subject: [PATCH 07/17] Update peaceiris/actions-gh-pages digest to 84c30a8 (#4560) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/github-pages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/github-pages.yml b/.github/workflows/github-pages.yml index 53075977..d996daf4 100644 --- a/.github/workflows/github-pages.yml +++ b/.github/workflows/github-pages.yml @@ -30,7 +30,7 @@ jobs: run: | sphinx-build docs _build - name: Deploy to GitHub Pages - uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4 + uses: peaceiris/actions-gh-pages@84c30a85c19949d7eee79c4ff27748b70285e453 # v4 if: ${{ github.event_name != 'pull_request' }} with: publish_branch: gh-pages From f9534c67cd71dcff7f0030d4ae2804b36c421218 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 6 Jun 2026 18:35:42 +1000 Subject: [PATCH 08/17] Update actions/checkout digest to df4cb1c (#4567) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/bandit.yaml | 2 +- .github/workflows/flake8.yaml | 2 +- .github/workflows/github-pages.yml | 2 +- .github/workflows/iso-build.yaml | 2 +- .github/workflows/mypy.yaml | 2 +- .github/workflows/pylint.yaml | 2 +- .github/workflows/pytest.yaml | 2 +- .github/workflows/python-build.yml | 2 +- .github/workflows/python-publish.yml | 2 +- .github/workflows/ruff-format.yaml | 2 +- .github/workflows/ruff-lint.yaml | 2 +- .github/workflows/translation-check.yaml | 2 +- .github/workflows/uki-build.yaml | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/bandit.yaml b/.github/workflows/bandit.yaml index 85a87dc0..551e1fad 100644 --- a/.github/workflows/bandit.yaml +++ b/.github/workflows/bandit.yaml @@ -6,7 +6,7 @@ jobs: container: image: archlinux/archlinux:latest steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - run: pacman --noconfirm -Syu bandit - name: Security checkup with Bandit run: bandit -r archinstall || exit 0 diff --git a/.github/workflows/flake8.yaml b/.github/workflows/flake8.yaml index 3029fbcb..3d4a4d42 100644 --- a/.github/workflows/flake8.yaml +++ b/.github/workflows/flake8.yaml @@ -6,7 +6,7 @@ jobs: container: image: archlinux/archlinux:latest steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - name: Prepare arch run: | pacman-key --init diff --git a/.github/workflows/github-pages.yml b/.github/workflows/github-pages.yml index d996daf4..4465aa41 100644 --- a/.github/workflows/github-pages.yml +++ b/.github/workflows/github-pages.yml @@ -21,7 +21,7 @@ jobs: image: archlinux/archlinux:latest options: --privileged steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 - name: Install pre-dependencies run: | diff --git a/.github/workflows/iso-build.yaml b/.github/workflows/iso-build.yaml index 83d58fd6..aa7f49b6 100644 --- a/.github/workflows/iso-build.yaml +++ b/.github/workflows/iso-build.yaml @@ -26,7 +26,7 @@ jobs: image: archlinux/archlinux:latest options: --privileged steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - run: pwd - run: find . - run: cat /etc/os-release diff --git a/.github/workflows/mypy.yaml b/.github/workflows/mypy.yaml index 7be37f7f..0fac32ba 100644 --- a/.github/workflows/mypy.yaml +++ b/.github/workflows/mypy.yaml @@ -6,7 +6,7 @@ jobs: container: image: archlinux/archlinux:latest steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - name: Prepare arch run: | pacman-key --init diff --git a/.github/workflows/pylint.yaml b/.github/workflows/pylint.yaml index 27262680..30d251a8 100644 --- a/.github/workflows/pylint.yaml +++ b/.github/workflows/pylint.yaml @@ -6,7 +6,7 @@ jobs: container: image: archlinux/archlinux:latest steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - name: Prepare arch run: | pacman-key --init diff --git a/.github/workflows/pytest.yaml b/.github/workflows/pytest.yaml index b0892062..b427d3e8 100644 --- a/.github/workflows/pytest.yaml +++ b/.github/workflows/pytest.yaml @@ -7,7 +7,7 @@ jobs: image: archlinux/archlinux:latest options: --privileged steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - name: Prepare arch run: | pacman-key --init diff --git a/.github/workflows/python-build.yml b/.github/workflows/python-build.yml index e8fd87fa..67ca0165 100644 --- a/.github/workflows/python-build.yml +++ b/.github/workflows/python-build.yml @@ -11,7 +11,7 @@ jobs: image: archlinux/archlinux:latest options: --privileged steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - name: Prepare arch run: | pacman-key --init diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml index 857d077d..539a606e 100644 --- a/.github/workflows/python-publish.yml +++ b/.github/workflows/python-publish.yml @@ -18,7 +18,7 @@ jobs: image: archlinux/archlinux:latest options: --privileged steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - name: Prepare arch run: | pacman-key --init diff --git a/.github/workflows/ruff-format.yaml b/.github/workflows/ruff-format.yaml index 1a70721e..9f520be0 100644 --- a/.github/workflows/ruff-format.yaml +++ b/.github/workflows/ruff-format.yaml @@ -4,6 +4,6 @@ jobs: ruff_format_check: runs-on: ubuntu-latest steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - uses: astral-sh/ruff-action@0ce1b0bf8b818ef400413f810f8a11cdbda0034b # v4.0.0 - run: ruff format --diff diff --git a/.github/workflows/ruff-lint.yaml b/.github/workflows/ruff-lint.yaml index 09ca4166..ff37a6a8 100644 --- a/.github/workflows/ruff-lint.yaml +++ b/.github/workflows/ruff-lint.yaml @@ -4,5 +4,5 @@ jobs: ruff: runs-on: ubuntu-latest steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - uses: astral-sh/ruff-action@0ce1b0bf8b818ef400413f810f8a11cdbda0034b # v4.0.0 diff --git a/.github/workflows/translation-check.yaml b/.github/workflows/translation-check.yaml index 15be16cf..ebc521cb 100644 --- a/.github/workflows/translation-check.yaml +++ b/.github/workflows/translation-check.yaml @@ -15,7 +15,7 @@ jobs: name: Validate translations runs-on: ubuntu-latest steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - name: Install gettext run: sudo apt-get update && sudo apt-get install -y gettext - name: Run translation checks diff --git a/.github/workflows/uki-build.yaml b/.github/workflows/uki-build.yaml index df41bc55..ff75250d 100644 --- a/.github/workflows/uki-build.yaml +++ b/.github/workflows/uki-build.yaml @@ -26,7 +26,7 @@ jobs: image: archlinux/archlinux:latest options: --privileged steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - run: pwd - run: find . - run: cat /etc/os-release From d38008483e63f8f4a9f8c4ac141f198385b927f0 Mon Sep 17 00:00:00 2001 From: Akilesh A S Date: Sat, 6 Jun 2026 14:06:50 +0530 Subject: [PATCH 09/17] chore: update examples/config-sample.json (#4569) TL;DR: - fix the config for 'parallel download' - add config for setting color output for pacman --- examples/config-sample.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/examples/config-sample.json b/examples/config-sample.json index bc4cd2d9..ac366b6c 100644 --- a/examples/config-sample.json +++ b/examples/config-sample.json @@ -133,7 +133,10 @@ "ntp": true, "offline": false, "packages": [], - "parallel downloads": 0, + "pacman_config": { + "color": false, + "parallel_downloads": 5 + }, "profile_config": { "gfx_driver": "All open-source (default)", "greeter": "sddm", From 7b8fec1af4c58d151e3d1b7e69b4cea05f97f142 Mon Sep 17 00:00:00 2001 From: Clinton Phillips Date: Sat, 6 Jun 2026 04:38:36 -0400 Subject: [PATCH 10/17] fix(luks): surface cryptsetup error output when unlock fails (#4570) Luks2.unlock() ran 'cryptsetup open' with no error handling, so a failure raised a bare CalledProcessError. Python renders that exception with only the exit status and discards the captured output, so cryptsetup's stderr (merged into stdout by run()) never reached the install log. encrypt() already wraps its cryptsetup call and raises a DiskError that includes the captured output. Mirror that for unlock() so a failure reports the actual cryptsetup message instead of an opaque traceback. Reported in #4327, where the underlying 'device-mapper: crypt: unknown table type' error was hidden from the log for this reason. --- archinstall/lib/disk/luks.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/archinstall/lib/disk/luks.py b/archinstall/lib/disk/luks.py index 5d62abc8..3a3679d0 100644 --- a/archinstall/lib/disk/luks.py +++ b/archinstall/lib/disk/luks.py @@ -149,7 +149,11 @@ class Luks2: 'luks2', ] - result = run(cmd, input_data=passphrase) + try: + result = run(cmd, input_data=passphrase) + except CalledProcessError as err: + output = err.stdout.decode().rstrip() + raise DiskError(f'Could not unlock luks2 device "{self.luks_dev_path}": {output}') debug(f'cryptsetup open output: {result.stdout.decode().rstrip()}') From e8d2e8f346c6e019a596fd230209d45c8e30e9bc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 6 Jun 2026 18:56:39 +1000 Subject: [PATCH 11/17] Update pre-commit hook astral-sh/ruff-pre-commit to v0.15.16 (#4574) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d0c51725..33f112cf 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,7 +1,7 @@ default_stages: ['pre-commit'] repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.15.15 + rev: v0.15.16 hooks: # fix unused imports and sort them - id: ruff From 1aff6702626e8810fe05f4facc8ad558c1ea7105 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 6 Jun 2026 18:56:47 +1000 Subject: [PATCH 12/17] Update dependency ruff to v0.15.16 (#4573) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 29049d67..8a128717 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,7 +37,7 @@ dev = [ "mypy==2.1.0", "flake8==7.3.0", "pre-commit==4.6.0", - "ruff==0.15.15", + "ruff==0.15.16", "pylint==4.0.5", "pytest==9.0.3", "hypothesis>=6.152.4", From 1048f7eef0e486924cb5ede676b1ff6d392b2a67 Mon Sep 17 00:00:00 2001 From: Softer Date: Sun, 7 Jun 2026 21:31:07 +0300 Subject: [PATCH 13/17] Fix WiFi network selection in TUI prompt (#4566) * Fix WiFi network selection in TUI prompt TableSelectionScreen returns the selected network in Result._item, but the check on line 136 only tested Result._data (always None for single-select). This caused every selection to fall through to the "No wifi networks found" error path. Fixes #4564 * Fix empty wifi scan crash and simplify network selection Move wifi scanning out of the TableSelectionScreen callback to avoid MenuItemGroup([]) ValueError when no networks are found. The empty result is now handled before the selection screen, and the Selection branch is simplified to a direct get_value() call. --- archinstall/lib/network/wifi_handler.py | 40 ++++++++++++------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/archinstall/lib/network/wifi_handler.py b/archinstall/lib/network/wifi_handler.py index b5590343..bc068d2a 100644 --- a/archinstall/lib/network/wifi_handler.py +++ b/archinstall/lib/network/wifi_handler.py @@ -1,4 +1,3 @@ -from asyncio import sleep from dataclasses import dataclass from pathlib import Path from typing import assert_never, override @@ -109,36 +108,25 @@ class WifiHandler(InstanceRunnable[bool]): debug(f'Found wifi interface: {wifi_iface}') - async def get_wifi_networks() -> MenuItemGroup: - debug('Scanning Wifi networks') - result = self._wpa_cli('scan', wifi_iface) + wifi_networks = await self._scan_wifi(wifi_iface) - if not result.success: - debug(f'Failed to scan wifi networks: {result.error}') - return MenuItemGroup([]) + if not wifi_networks: + debug('No networks found') + await NotifyScreen(header=tr('No wifi networks found')).run() + tui.exit(Result.false()) + return False - await sleep(5) - wifi_networks = self._get_scan_results(wifi_iface) - - items = [MenuItem(network.ssid, value=network) for network in wifi_networks] - return MenuItemGroup(items) + items = [MenuItem(network.ssid, value=network) for network in wifi_networks] result = await TableSelectionScreen[WifiNetwork]( header=tr('Select wifi network to connect to'), - loading_header=tr('Scanning wifi networks...'), - group_callback=get_wifi_networks, + group=MenuItemGroup(items), allow_skip=True, allow_reset=True, ).run() match result.type_: case ResultType.Selection: - if not result.has_data(): - debug('No networks found') - await NotifyScreen(header=tr('No wifi networks found')).run() - tui.exit(Result.false()) - return False - network = result.get_value() case ResultType.Skip | ResultType.Reset: tui.exit(Result.false()) @@ -184,6 +172,18 @@ class WifiHandler(InstanceRunnable[bool]): return True + async def _scan_wifi(self, wifi_iface: str) -> list[WifiNetwork]: + debug('Scanning Wifi networks') + scan_result = self._wpa_cli('scan', wifi_iface) + + if not scan_result.success: + debug(f'Failed to scan wifi networks: {scan_result.error}') + return [] + + await LoadingScreen(timer=5, header=tr('Scanning wifi networks...')).run() + + return self._get_scan_results(wifi_iface) + async def _notify_failure(self) -> None: await NotifyScreen(header=tr('Failed setting up wifi')).run() From 0f16801448435afb5985d1b4b8d033c35e163072 Mon Sep 17 00:00:00 2001 From: Softer Date: Mon, 8 Jun 2026 09:22:34 +0300 Subject: [PATCH 14/17] Color-code install preview: red for errors, yellow for warnings, green for ready (#4512) * Color-code install preview: red for errors, yellow for warnings, green for ready Add preview_markup opt-in field to MenuItem with automatic Rich markup escaping for all existing previews. Show missing configs and bootloader errors in red, network warning in yellow, "Ready to install" in green. Move network warning from confirmation dialog to install preview so it is visible earlier. * Fix Rich markup parsing error on JSON preview strings Text.from_markup() replaces Label(markup=True) to avoid MarkupError on strings containing [" * Replace raw Rich markup with PreviewResult dataclass for typed preview levels * Add missing translatable strings to base.pot * Move get_install_warnings() from ConfigurationOutput to GlobalMenu The method is only used by GlobalMenu._prev_install_invalid_config(), so it belongs there rather than on the serialization class. * Move level-to-style mapping into MsgLevelType.style() method Replace the module-level _LEVEL_STYLE dict in components.py with a style() method on the MsgLevelType enum, following the project convention of encapsulating type-bound logic on the type itself. * Change PreviewResult to hold a list of message-level pairs PreviewResult.messages is now list[tuple[str, MsgLevelType]], allowing a single result to carry multiple sections with different levels. The preview_action signature drops list[PreviewResult] since the dataclass itself handles multiple sections. Existing str-returning previews still work and will be converted in follow-up PRs. * Make MsgLevelType.style() return a typed MsgLevelStyle enum Replace the bare style strings returned by style() with a MsgLevelStyle StrEnum so the values are type-checked. Being a StrEnum, the members stay plain strings and pass straight into Text.append(style=...), so no call sites change. --- archinstall/lib/configuration.py | 22 +--------- archinstall/lib/global_menu.py | 53 ++++++++++++++++++------ archinstall/lib/menu/util.py | 9 ++-- archinstall/locales/base.pot | 14 +++++++ archinstall/scripts/guided.py | 2 +- archinstall/scripts/minimal.py | 2 +- archinstall/tui/components.py | 71 ++++++++++++++------------------ archinstall/tui/menu_item.py | 36 +++++++++++++++- 8 files changed, 128 insertions(+), 81 deletions(-) diff --git a/archinstall/lib/configuration.py b/archinstall/lib/configuration.py index f0096872..5754dfcf 100644 --- a/archinstall/lib/configuration.py +++ b/archinstall/lib/configuration.py @@ -11,7 +11,6 @@ from archinstall.lib.crypt import encrypt from archinstall.lib.log import debug, logger, warn from archinstall.lib.menu.helpers import Confirmation, Selection from archinstall.lib.menu.util import get_password, prompt_dir -from archinstall.lib.models.network import NetworkConfiguration from archinstall.lib.translationhandler import tr from archinstall.lib.utils.format import as_key_value_pair from archinstall.tui.menu_item import MenuItem, MenuItemGroup @@ -83,13 +82,10 @@ class ConfigurationOutput: return simple_summary - async def confirm_config(self, show_install_warnings: bool = False) -> bool: + async def confirm_config(self) -> bool: header = f'{tr("The specified configuration will be applied")}. ' header += tr('Would you like to continue?') + '\n' - if show_install_warnings: - header += self._render_install_warnings() - group = MenuItemGroup.yes_no() group.set_preview_for_all(lambda x: self.user_config_to_json()) @@ -107,22 +103,6 @@ class ConfigurationOutput: return True - def get_install_warnings(self) -> list[str]: - warnings: list[str] = [] - - if not isinstance(self._config.network_config, NetworkConfiguration): - warnings.append(tr('Warning: no network configuration selected. Network will need to be set up manually on the installed system.')) - - return warnings - - def _render_install_warnings(self) -> str: - warnings = self.get_install_warnings() - - if not warnings: - return '' - - return '\n' + '\n'.join(f'[yellow]{w}[/]' for w in warnings) + '\n' - def _is_valid_path(self, dest_path: Path) -> bool: dest_path_ok = dest_path.exists() and dest_path.is_dir() if not dest_path_ok: diff --git a/archinstall/lib/global_menu.py b/archinstall/lib/global_menu.py index 45a0e3b4..548ed522 100644 --- a/archinstall/lib/global_menu.py +++ b/archinstall/lib/global_menu.py @@ -33,7 +33,7 @@ from archinstall.lib.pacman.pacman_menu import PacmanMenu from archinstall.lib.translationhandler import Language, tr, translation_handler from archinstall.lib.utils.format import as_table from archinstall.tui.components import tui -from archinstall.tui.menu_item import MenuItem, MenuItemGroup +from archinstall.tui.menu_item import MenuItem, MenuItemGroup, MsgLevelType, PreviewResult class GlobalMenu(AbstractMenu[None]): @@ -494,21 +494,48 @@ class GlobalMenu(AbstractMenu[None]): return None - def _prev_install_invalid_config(self, item: MenuItem) -> str | None: - if missing := self._missing_configs(): - text = tr('Missing configurations:\n') - for m in missing: - text += f'- {m}\n' - return text[:-1] # remove last new line + def _get_install_warnings(self) -> list[str]: + warnings: list[str] = [] - if error := self._validate_bootloader(): - return tr('Invalid configuration: {}').format(error) + if not isinstance(self._arch_config.network_config, NetworkConfiguration): + warnings.append(tr('No network configuration selected. Network will need to be set up manually on the installed system.')) + return warnings + + def _prev_install_invalid_config(self, item: MenuItem) -> PreviewResult | None: self.sync_all_to_config() - summary = ConfigurationOutput(self._arch_config).as_summary() - if summary: - return f'{tr("Ready to install")}\n\n{summary}' - return tr('Ready to install') + config_output = ConfigurationOutput(self._arch_config) + + warnings = self._get_install_warnings() + messages: list[tuple[str, MsgLevelType]] = [] + + errors = '' + if missing := self._missing_configs(): + errors += f'{tr("Missing configurations:")}\n' + errors += '\n'.join(f'- {m}' for m in missing) + + disk_item = self._item_group.find_by_key('disk_config') + if disk_item.has_value(): + if error := self._validate_bootloader(): + if errors: + errors += '\n\n' + errors += f'{tr("Invalid configuration:")}\n- {error}' + + if errors: + messages.append((errors, MsgLevelType.MsgError)) + else: + messages.append((tr('Ready to install'), MsgLevelType.MsgInfo)) + + if warnings: + text = f'{tr("Warnings:")}\n' + '\n'.join(f'- {w}' for w in warnings) + messages.append((text, MsgLevelType.MsgWarning)) + + if not errors: + summary = config_output.as_summary() + if summary: + messages.append((summary, MsgLevelType.MsgNone)) + + return PreviewResult(messages) def _prev_profile(self, item: MenuItem) -> str | None: profile_config: ProfileConfiguration | None = item.value diff --git a/archinstall/lib/menu/util.py b/archinstall/lib/menu/util.py index 10edfd49..5efef09d 100644 --- a/archinstall/lib/menu/util.py +++ b/archinstall/lib/menu/util.py @@ -5,7 +5,8 @@ from pathlib import Path from archinstall.lib.menu.helpers import Confirmation, Input from archinstall.lib.models.users import Password, PasswordStrength from archinstall.lib.translationhandler import tr -from archinstall.tui.components import InputInfo, InputInfoType, tui +from archinstall.tui.components import InputInfo, tui +from archinstall.tui.menu_item import MsgLevelType from archinstall.tui.result import ResultType @@ -20,11 +21,11 @@ async def get_password( return None strength = PasswordStrength.strength(value) if strength in (PasswordStrength.VERY_WEAK, PasswordStrength.WEAK): - return InputInfo(message=tr('Password strength: Weak'), info_type=InputInfoType.MsgError) + return InputInfo(message=tr('Password strength: Weak'), msg_level=MsgLevelType.MsgError) elif strength == PasswordStrength.MODERATE: - return InputInfo(message=tr('Password strength: Moderate'), info_type=InputInfoType.MsgWarning) + return InputInfo(message=tr('Password strength: Moderate'), msg_level=MsgLevelType.MsgWarning) elif strength == PasswordStrength.STRONG: - return InputInfo(message=tr('Password strength: Strong'), info_type=InputInfoType.MsgInfo) + return InputInfo(message=tr('Password strength: Strong'), msg_level=MsgLevelType.MsgInfo) return None while True: diff --git a/archinstall/locales/base.pot b/archinstall/locales/base.pot index 94224c1f..32c6b6c4 100644 --- a/archinstall/locales/base.pot +++ b/archinstall/locales/base.pot @@ -1208,3 +1208,17 @@ msgstr "" msgid " (default)" msgstr "" + +msgid "Invalid configuration:" +msgstr "" + +msgid "Missing configurations:" +msgstr "" + +msgid "Warnings:" +msgstr "" + +msgid "" +"No network configuration selected. Network will need to be set up manually " +"on the installed system." +msgstr "" diff --git a/archinstall/scripts/guided.py b/archinstall/scripts/guided.py index 6f484910..29573a5f 100644 --- a/archinstall/scripts/guided.py +++ b/archinstall/scripts/guided.py @@ -230,7 +230,7 @@ def main(arch_config_handler: ArchConfigHandler | None = None) -> None: if not arch_config_handler.args.silent: aborted = False - res: bool = tui.run(lambda: config.confirm_config(show_install_warnings=True)) + res: bool = tui.run(config.confirm_config) if not res: debug('Installation aborted') diff --git a/archinstall/scripts/minimal.py b/archinstall/scripts/minimal.py index c6eda03d..a58963f2 100644 --- a/archinstall/scripts/minimal.py +++ b/archinstall/scripts/minimal.py @@ -77,7 +77,7 @@ async def main(arch_config_handler: ArchConfigHandler | None = None) -> None: if not arch_config_handler.args.silent: aborted = False - res: bool = tui.run(lambda: config.confirm_config(show_install_warnings=True)) + res: bool = tui.run(config.confirm_config) if not res: debug('Installation aborted') diff --git a/archinstall/tui/components.py b/archinstall/tui/components.py index efbb64f9..a2e6b132 100644 --- a/archinstall/tui/components.py +++ b/archinstall/tui/components.py @@ -2,9 +2,9 @@ import sys from abc import ABC, abstractmethod from collections.abc import Awaitable, Callable from dataclasses import dataclass, replace -from enum import Enum, auto from typing import Any, ClassVar, Literal, TypeVar, cast, override +from rich.text import Text from textual import work from textual.app import App, ComposeResult from textual.binding import Binding, BindingsMap @@ -21,12 +21,28 @@ from textual.worker import WorkerCancelled from archinstall.lib.log import debug from archinstall.lib.translationhandler import tr -from archinstall.tui.menu_item import MenuItem, MenuItemGroup +from archinstall.tui.menu_item import MenuItem, MenuItemGroup, MsgLevelType, PreviewResult from archinstall.tui.result import Result, ResultType ValueT = TypeVar('ValueT') +def _update_preview(widget: Label, result: str | PreviewResult | None) -> None: + if result is None: + widget.update('') + return + + if isinstance(result, str): + widget.update(result) + else: + text = Text() + for i, (message, level) in enumerate(result.messages): + if i > 0: + text.append('\n\n') + text.append(message, style=level.style()) + widget.update(text) + + def _translate_bindings(source: BindingsMap | None, target: BindingsMap) -> None: """Translate binding descriptions from source to target. @@ -361,13 +377,9 @@ class OptionListScreen(BaseScreen[ValueT]): item = self._group.find_by_id(item_id) if item.preview_action is not None: - maybe_preview = item.preview_action(item) - - if maybe_preview is not None: - preview_widget.update(maybe_preview) - return - - preview_widget.update('') + _update_preview(preview_widget, item.preview_action(item)) + else: + _update_preview(preview_widget, None) class _SelectionList(SelectionList[ValueT]): @@ -614,12 +626,9 @@ class SelectListScreen(BaseScreen[ValueT]): preview_widget = self.query_one('#preview_content', Label) if item.preview_action is not None: - maybe_preview = item.preview_action(item) - if maybe_preview is not None: - preview_widget.update(maybe_preview) - return - - preview_widget.update('') + _update_preview(preview_widget, item.preview_action(item)) + else: + _update_preview(preview_widget, None) # DEPRECATED: Removed when switching to async @@ -735,13 +744,8 @@ class ConfirmationScreen(BaseScreen[ValueT]): if self._preview_header is not None: preview = self.query_one('#preview_content', Label) - - if focused.preview_action is None: - preview.update('') - else: - text = focused.preview_action(focused) - if text is not None: - preview.update(text) + result = focused.preview_action(focused) if focused.preview_action else None + _update_preview(preview, result) else: button.remove_class('-active') @@ -768,16 +772,10 @@ class NotifyScreen(ConfirmationScreen[ValueT]): super().__init__(group, header) -class InputInfoType(Enum): - MsgInfo = auto() - MsgWarning = auto() - MsgError = auto() - - @dataclass class InputInfo: message: str - info_type: InputInfoType + msg_level: MsgLevelType class InputScreen(BaseScreen[str]): @@ -889,11 +887,11 @@ class InputScreen(BaseScreen[str]): result = self._info_callback(event.value) if result: css_class = '' - if result.info_type == InputInfoType.MsgError: + if result.msg_level == MsgLevelType.MsgError: css_class = 'input-hint-msg-error' - elif result.info_type == InputInfoType.MsgWarning: + elif result.msg_level == MsgLevelType.MsgWarning: css_class = 'input-hint-msg-warning' - elif result.info_type == InputInfoType.MsgInfo: + elif result.msg_level == MsgLevelType.MsgInfo: css_class = 'input-hint-msg-info' info_label.update(result.message) info_label.set_classes(css_class) @@ -1138,13 +1136,7 @@ class TableSelectionScreen(BaseScreen[ValueT]): return preview_widget = self.query_one('#preview_content', Label) - - maybe_preview = item.preview_action(item) - if maybe_preview is not None: - preview_widget.update(maybe_preview) - return - - preview_widget.update('') + _update_preview(preview_widget, item.preview_action(item)) def _set_cursor(self, row_index: int) -> None: data_table = self.query_one(DataTable) @@ -1279,6 +1271,7 @@ class _AppInstance(App[ValueT]): background: black; border-left: vkey white 20%; } + """ def __init__(self, main: InstanceRunnable[ValueT] | Callable[[], Awaitable[ValueT]]) -> None: diff --git a/archinstall/tui/menu_item.py b/archinstall/tui/menu_item.py index 4c10e275..13f9f165 100644 --- a/archinstall/tui/menu_item.py +++ b/archinstall/tui/menu_item.py @@ -1,12 +1,44 @@ +from __future__ import annotations + from collections.abc import Awaitable, Callable, Iterable from dataclasses import dataclass, field -from enum import Enum +from enum import Enum, StrEnum, auto from functools import cached_property from typing import Any, ClassVar, Self, override from archinstall.lib.translationhandler import tr +class MsgLevelStyle(StrEnum): + White = 'white' + Green = 'green' + Yellow = 'bright_yellow' + Red = 'red' + + +class MsgLevelType(Enum): + MsgNone = auto() + MsgInfo = auto() + MsgWarning = auto() + MsgError = auto() + + def style(self) -> MsgLevelStyle: + match self: + case MsgLevelType.MsgNone: + return MsgLevelStyle.White + case MsgLevelType.MsgInfo: + return MsgLevelStyle.Green + case MsgLevelType.MsgWarning: + return MsgLevelStyle.Yellow + case MsgLevelType.MsgError: + return MsgLevelStyle.Red + + +@dataclass +class PreviewResult: + messages: list[tuple[str, MsgLevelType]] + + @dataclass class MenuItem: text: str @@ -18,7 +50,7 @@ class MenuItem: dependencies: list[str | Callable[[], bool]] = field(default_factory=list) dependencies_not: list[str] = field(default_factory=list) display_action: Callable[[Any], str] | None = None - preview_action: Callable[[Self], str | None] | None = None + preview_action: Callable[[Self], str | PreviewResult | None] | None = None key: str | None = None _id: str = '' From c67ed4b668e95ee2a2f86983d009a740973ca5e1 Mon Sep 17 00:00:00 2001 From: Lena Pastwa Date: Tue, 9 Jun 2026 08:46:14 +0200 Subject: [PATCH 15/17] Update Polish translation, fix typo (#4579) * Update Polish translation * Fix typo --- archinstall/lib/models/profile.py | 2 +- archinstall/locales/base.pot | 40 +- archinstall/locales/pl/LC_MESSAGES/base.mo | Bin 67521 -> 31870 bytes archinstall/locales/pl/LC_MESSAGES/base.po | 3335 +++++++------------- 4 files changed, 1137 insertions(+), 2240 deletions(-) diff --git a/archinstall/lib/models/profile.py b/archinstall/lib/models/profile.py index fa890a1e..1d8e2241 100644 --- a/archinstall/lib/models/profile.py +++ b/archinstall/lib/models/profile.py @@ -40,7 +40,7 @@ class ProfileConfiguration(SubConfig): out.append(self.profile.name) if self.gfx_driver: - out.append(tr('{} grphics driver').format(self.gfx_driver.value)) + out.append(tr('{} graphics driver').format(self.gfx_driver.value)) if self.greeter: out.append(tr('{} greeter').format(self.greeter.value)) diff --git a/archinstall/locales/base.pot b/archinstall/locales/base.pot index 32c6b6c4..23df29fb 100644 --- a/archinstall/locales/base.pot +++ b/archinstall/locales/base.pot @@ -257,11 +257,6 @@ msgstr "" msgid "Configuration preview" msgstr "" -msgid "" -"Warning: no network configuration selected. Network will need to be set up " -"manually on the installed system." -msgstr "" - msgid "No configuration" msgstr "" @@ -642,16 +637,23 @@ msgstr "" msgid "Kernel" msgstr "" -msgid "Missing configurations:\n" +msgid "" +"No network configuration selected. Network will need to be set up manually " +"on the installed system." msgstr "" -#, python-brace-format -msgid "Invalid configuration: {}" +msgid "Missing configurations:" +msgstr "" + +msgid "Invalid configuration:" msgstr "" msgid "Ready to install" msgstr "" +msgid "Warnings:" +msgstr "" + msgid "Profiles" msgstr "" @@ -987,7 +989,7 @@ msgid "Color enabled" msgstr "" #, python-brace-format -msgid "{} grphics driver" +msgid "{} graphics driver" msgstr "" #, python-brace-format @@ -1053,15 +1055,15 @@ msgstr "" msgid "No wifi interface found" msgstr "" +msgid "No wifi networks found" +msgstr "" + msgid "Select wifi network to connect to" msgstr "" msgid "Scanning wifi networks..." msgstr "" -msgid "No wifi networks found" -msgstr "" - msgid "Failed setting up wifi" msgstr "" @@ -1208,17 +1210,3 @@ msgstr "" msgid " (default)" msgstr "" - -msgid "Invalid configuration:" -msgstr "" - -msgid "Missing configurations:" -msgstr "" - -msgid "Warnings:" -msgstr "" - -msgid "" -"No network configuration selected. Network will need to be set up manually " -"on the installed system." -msgstr "" diff --git a/archinstall/locales/pl/LC_MESSAGES/base.mo b/archinstall/locales/pl/LC_MESSAGES/base.mo index 0ab34f9eca17057f5f6a378cba00b090d27ae98a..4a05cdaee72186a635b51e32a87cc770000d4768 100644 GIT binary patch delta 11613 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 YYH1$n4Sg%6Xf0<-yf>SD&p&zpA9#Zk2mk;8 literal 67521 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 diff --git a/archinstall/locales/pl/LC_MESSAGES/base.po b/archinstall/locales/pl/LC_MESSAGES/base.po index d01f1012..a81b61ff 100644 --- a/archinstall/locales/pl/LC_MESSAGES/base.po +++ b/archinstall/locales/pl/LC_MESSAGES/base.po @@ -9,2172 +9,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.8\n" - -msgid "[!] A log file has been created here: {} {}" -msgstr "[!] Plik dziennika został stworzony tutaj: {} {}" - -msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues" -msgstr " Proszę zgłosić ten błąd (i dołączyć plik) pod adresem https://github.com/archlinux/archinstall/issues" - -msgid "Do you really want to abort?" -msgstr "Czy na pewno chcesz przerwać?" - -msgid "And one more time for verification: " -msgstr "I jeszcze raz w celu weryfikacji: " - -msgid "Would you like to use swap on zram?" -msgstr "Czy chcesz używać swap w zramie?" - -msgid "Desired hostname for the installation: " -msgstr "Nazwa hosta dla tej instalacji: " - -msgid "Username for required superuser with sudo privileges: " -msgstr "Nazwa użytkownika dla wymaganego superusera z uprawnieniami sudo: " - -msgid "Any additional users to install (leave blank for no users): " -msgstr "Ewentualni użytkownicy do instalacji (pozostaw puste jeśli nie chcesz tworzyć użytkowników): " - -msgid "Should this user be a superuser (sudoer)?" -msgstr "Czy użytkownik powinien być superuserem (mieć uprawnienia sudo)?" - -msgid "Select a timezone" -msgstr "Wybierz strefę czasową" - -msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?" -msgstr "Czy chcesz użyć GRUB-a jako programu rozruchowego zamiast systemd-boot?" - -msgid "Choose a bootloader" -msgstr "Wybierz program rozruchowy" - -msgid "Choose an audio server" -msgstr "Wybierz serwer dźwięku" - -msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed." -msgstr "Instalowane są tylko pakiety takie jak base, base-devel, linux, linux-firmware, efibootmgr i opcjonalne pakiety profili." - -msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools." -msgstr "Uwaga: base-devel nie jest już domyślnie instalowane. Dodaj je tutaj, jeżeli potrzebujesz narzędzi do budowania pakietów." - -msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt." -msgstr "Jeśli potrzebujesz przeglądarki internetowej, takiej jak firefox lub chromium, możesz ją określić w następującym oknie dialogowym." - -msgid "Write additional packages to install (space separated, leave blank to skip): " -msgstr "Wpisz dodatkowe pakiety do zainstalowania (oddzielone spacjami, pozostaw puste aby pominąć): " - -msgid "Copy ISO network configuration to installation" -msgstr "Skopiuj ustawienia sieciowe z ISO do instalacji" - -msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)" -msgstr "Użyj programu NetworkManager (niezbędne do graficznej konfiguracji Internetu w środowiskach GNOME i KDE)" - -msgid "Select one network interface to configure" -msgstr "Wybierz jeden interfejs sieciowy do skonfigurowania" - -msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" -msgstr "Wybierz który tryb ma być skonfigurowany dla \"{}\" lub pomiń, aby użyć trybu domyślnego \"{}\"" - -#, python-brace-format -msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " -msgstr "Wprowadź adres IP i podsieć dla {} (przykład: 192.168.0.5/24): " - -msgid "Enter your gateway (router) IP address or leave blank for none: " -msgstr "Wprowadź adres IP bramy sieciowej (routera) lub pozostaw puste: " - -msgid "Enter your DNS servers (space separated, blank for none): " -msgstr "Wpisz swoje serwery DNS (oddzielone spacjami, lub pozostaw puste): " - -msgid "Select which filesystem your main partition should use" -msgstr "Wybierz, który system plików ma być używany na partycji głównej" - -msgid "Current partition layout" -msgstr "Aktualny układ partycji" - -msgid "" -"Select what to do with\n" -"{}" -msgstr "" -"Wybierz, co zrobić z\n" -"{}" - -msgid "Enter a desired filesystem type for the partition" -msgstr "Wprowadź żądany typ systemu plików dla partycji" - -msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): " -msgstr "Wybierz lokalizację startową (w jednostkach parted: s, GB, %, itd. ; domyślna: {}) " - -msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): " -msgstr "Wybierz lokalizację końcową (w jednostkach parted: s, GB, %, itd. ; przykład: {}) " - -msgid "{} contains queued partitions, this will remove those, are you sure?" -msgstr "{} zawiera partycje oczekujące w kolejce, to spowoduje ich usunięcie. Czy na pewno chcesz to zrobić?" - -msgid "" -"{}\n" -"\n" -"Select by index which partitions to delete" -msgstr "" -"{}\n" -"\n" -"Wybierz według indeksu, które partycje usunąć" - -msgid "" -"{}\n" -"\n" -"Select by index which partition to mount where" -msgstr "" -"{}\n" -"\n" -"Wybierz według indeksu, które partycje zamontować i gdzie" - -msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example." -msgstr " * Punkty montowania partycji są względne w stosunku do wnętrza instalacji, np. partycja startowa to /boot." - -msgid "Select where to mount partition (leave blank to remove mountpoint): " -msgstr "Wybierz gdzie chcesz zamontować partycję (pozostaw puste, aby usunąć punkt montowania): " - -msgid "" -"{}\n" -"\n" -"Select which partition to mask for formatting" -msgstr "" -"{}\n" -"\n" -"Wybierz partycja która ma zostać sformatowana" - -msgid "" -"{}\n" -"\n" -"Select which partition to mark as encrypted" -msgstr "" -"{}\n" -"\n" -"Wybierz partycja która ma zostać zaszyfrowana" - -msgid "" -"{}\n" -"\n" -"Select which partition to mark as bootable" -msgstr "" -"{}\n" -"\n" -"Wybierz partycja która ma zostać oznaczona jako startowa (rozruchowa/bootowalna)" - -msgid "" -"{}\n" -"\n" -"Select which partition to set a filesystem on" -msgstr "" -"{}\n" -"\n" -"Wybierz partycję, na której ma zostać utworzony system plików" - -msgid "Enter a desired filesystem type for the partition: " -msgstr "Wprowadź pożądany typ systemu plików dla partycji: " - -msgid "Archinstall language" -msgstr "Język archinstall-a" - -msgid "Wipe all selected drives and use a best-effort default partition layout" -msgstr "Wymaż wszystkie wybrane dyski i użyj najlepszego domyślnego układu partycji" - -msgid "Select what to do with each individual drive (followed by partition usage)" -msgstr "Wybierz, co ma być zrobione z każdym dyskiem z osobna (a następnie z wykorzystaniem partycji)" - -msgid "Select what you wish to do with the selected block devices" -msgstr "Wybierz, co chcesz zrobić z wybranymi urządzeniami blokowymi" - -msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments" -msgstr "To jest lista wstępnie zaprogramowanych profili, które mogą ułatwić instalację takich rzeczy jak środowiska graficzne" - -msgid "Select keyboard layout" -msgstr "Wybierz układ klawiatury" - -msgid "Select one of the regions to download packages from" -msgstr "Wybierz jeden z regionów, z których chcesz pobrać pakiety" - -msgid "Select one or more hard drives to use and configure" -msgstr "Wybierz jeden lub więcej dysków twardych do użycia i skonfiguruj je" - -msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options." -msgstr "Aby uzyskać najlepszą kompatybilność ze sprzętem AMD, warto skorzystać z opcji całkowicie open-source lub AMD / ATI." - -msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n" -msgstr "Aby uzyskać najlepszą kompatybilność ze sprzętem Intel, warto skorzystać z opcji całkowicie open-source lub Intel.\n" - -msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n" -msgstr "Aby uzyskać najlepszą kompatybilność ze sprzętem firmy Nvidia, warto skorzystać z własnościowego sterownika firmy Nvidia.\n" - -msgid "" -"\n" -"\n" -"Select a graphics driver or leave blank to install all open-source drivers" -msgstr "" -"\n" -"\n" -"Wybierz sterownik graficzny lub pozostaw puste pole, aby zainstalować wszystkie sterowniki open-source" - -msgid "All open-source (default)" -msgstr "Wszystkie open-source (domyślnie)" - -msgid "Choose which kernels to use or leave blank for default \"{}\"" -msgstr "Wybierz które jądra użyć lub pozostaw puste, aby użyć ustawień domyślnych \"{}\"" - -msgid "Choose which locale language to use" -msgstr "Wybierz języki, których chcesz używać" - -msgid "Choose which locale encoding to use" -msgstr "Wybierz kodowania, których chcesz używać" - -msgid "Select one of the values shown below: " -msgstr "Wybierz jedną z poniższych wartości: " - -msgid "Select one or more of the options below: " -msgstr "Wybierz jedną lub więcej z poniższych opcji: " - -msgid "Adding partition...." -msgstr "Dodawanie partycji..." - -msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's." -msgstr "Aby kontynuować, musisz podać poprawny fs-type. Zobacz `man parted`, aby poznać prawidłowe opcje." - -msgid "Error: Listing profiles on URL \"{}\" resulted in:" -msgstr "Błąd: Wyśwetlanie profili z URL \"{}\" spowodowało:" - -msgid "Error: Could not decode \"{}\" result as JSON:" -msgstr "Błąd: Nie można zdekodować \"{}\" jako JSON:" - -msgid "Keyboard layout" -msgstr "Układ klawiatury" - -msgid "Mirror region" -msgstr "Region serwerów lustrzanych" - -msgid "Locale language" -msgstr "Język" - -msgid "Locale encoding" -msgstr "Kodowanie" - -msgid "Console font" -msgstr "Czcionka konsoli" - -msgid "Drive(s)" -msgstr "Dysk(i)" - -msgid "Disk layout" -msgstr "Układ dysku" - -msgid "Encryption password" -msgstr "Hasło szyfrujące" - -msgid "Swap" -msgstr "Pamięć wymiany (swap)" - -msgid "Bootloader" -msgstr "Program rozruchowy" - -msgid "Root password" -msgstr "Hasło roota" - -msgid "Superuser account" -msgstr "Konto superusera" - -msgid "User account" -msgstr "Konto użytkownika" - -msgid "Profile" -msgstr "Profil" - -msgid "Audio" -msgstr "Audio" - -msgid "Kernels" -msgstr "Jądra" - -msgid "Additional packages" -msgstr "Dodatkowe pakiety" - -msgid "Network configuration" -msgstr "Konfiguracja sieci" - -msgid "Automatic time sync (NTP)" -msgstr "Automatyczna synchronizacja czasu (NTP)" - -msgid "Install ({} config(s) missing)" -msgstr "Zainstaluj ({} brakujących konfiguracji)" - -msgid "" -"You decided to skip harddrive selection\n" -"and will use whatever drive-setup is mounted at {} (experimental)\n" -"WARNING: Archinstall won't check the suitability of this setup\n" -"Do you wish to continue?" -msgstr "" -"Zdecydowano się na pominięcie wyboru dysku twardego\n" -"i użycie konfiguracji dysku zamontowanego w {} (eksperymentalne)\n" -"OSTRZEŻENIE: Archinstall nie sprawdzi poprawności tej konfiguracji\n" -"Czy chcesz kontynuować?" - -msgid "Re-using partition instance: {}" -msgstr "Ponowne wykorzystanie instancji partycji: {}" - -msgid "Create a new partition" -msgstr "Utwórz nową partycję" - -msgid "Delete a partition" -msgstr "Usuń partycję" - -msgid "Clear/Delete all partitions" -msgstr "Wyczyść/Usuń wszystkie partycje" - -msgid "Assign mount-point for a partition" -msgstr "Przydziel punkt montowania dla partycji" - -msgid "Mark/Unmark a partition to be formatted (wipes data)" -msgstr "Oznacz/odznacz partycję, która ma zostać sformatowana (wymazuje dane)" - -msgid "Mark/Unmark a partition as encrypted" -msgstr "Oznacz/odznacz partycję jako zaszyfrowaną" - -msgid "Mark/Unmark a partition as bootable (automatic for /boot)" -msgstr "Oznacz/odznacz partycję jako startową (rozruchową/bootowalną) (automatyczne dla /boot)" - -msgid "Set desired filesystem for a partition" -msgstr "Ustaw system plików dla partycji" - -msgid "Abort" -msgstr "Przerwij" - -msgid "Hostname" -msgstr "Nazwa hosta" - -msgid "Not configured, unavailable unless setup manually" -msgstr "Niedostępna, chyba że zostanie skonfigurowana ręcznie" - -msgid "Timezone" -msgstr "Strefa czasowa" - -msgid "Set/Modify the below options" -msgstr "Ustaw/modyfikuj poniższe opcje" - -msgid "Install" -msgstr "Zainstaluj" - -msgid "" -"Use ESC to skip\n" -"\n" -msgstr "" -"Użyj ESC aby pominąć\n" -"\n" - -msgid "Suggest partition layout" -msgstr "Zasugeruj układ partycji" - -msgid "Enter a password: " -msgstr "Wprowadź hasło: " - -msgid "Enter a encryption password for {}" -msgstr "Wprowadź hasło szyfrowania dla {}" - -msgid "Enter disk encryption password (leave blank for no encryption): " -msgstr "Wprowadź hasło do szyfrowania dysku (pozostaw puste aby nie ustawiać szyfrowania): " - -msgid "Create a required super-user with sudo privileges: " -msgstr "Utwórz wymaganego superusera z uprawnieniami sudo: " - -msgid "Enter root password (leave blank to disable root): " -msgstr "Wprowadź hasło roota (pozostaw puste, aby wyłączyć roota): " - -msgid "Password for user \"{}\": " -msgstr "Hasło użytkownika \"{}\": " - -msgid "Verifying that additional packages exist (this might take a few seconds)" -msgstr "Sprawdzanie, czy istnieją dodatkowe pakiety (może to potrwać kilka sekund)" - -msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n" -msgstr "Czy chcesz korzystać z automatycznej synchronizacji czasu (NTP) z domyślnymi serwerami czasu?\n" - -msgid "" -"Hardware time and other post-configuration steps might be required in order for NTP to work.\n" -"For more information, please check the Arch wiki" -msgstr "" -"Aby NTP działał, może być wymagany czas sprzętowy i inne kroki po konfiguracji.\n" -"Aby uzyskać więcej informacji, proszę sprawdzić Arch wiki" - -msgid "Enter a username to create an additional user (leave blank to skip): " -msgstr "Wprowadź nazwę użytkownika, aby utworzyć dodatkowego użytkownika (pozostaw puste, aby pominąć): " - -msgid "Use ESC to skip\n" -msgstr "Kliknij ESC aby pominąć\n" - -msgid "" -"\n" -" Choose an object from the list, and select one of the available actions for it to execute" -msgstr "" -"\n" -" Wybierz obiekt z listy, a następnie wybierz jedno z dostępnych działań do wykonania" - -msgid "Cancel" -msgstr "Anuluj" - -msgid "Confirm and exit" -msgstr "Potwierdź i wyjdź" - -msgid "Add" -msgstr "Dodaj" - -msgid "Copy" -msgstr "Kopiuj" - -msgid "Edit" -msgstr "Edytuj" - -msgid "Delete" -msgstr "Usuń" - -msgid "Select an action for '{}'" -msgstr "Wybierz działanie dla '{}'" - -msgid "Copy to new key:" -msgstr "Skopiuj do nowego klucza:" - -msgid "Unknown nic type: {}. Possible values are {}" -msgstr "Nieznany typ nic: {}. Możliwe wartości to {}" - -msgid "" -"\n" -"This is your chosen configuration:" -msgstr "" -"\n" -"Wybrana konfiguracja:" - -msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate." -msgstr "Pacman jest już uruchomiony, czekam maksymalnie 10 minut na zakończenie pracy." - -msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall." -msgstr "Istniejąca wcześniej blokada pacmana nie została zakończona. Proszę wyczyścić wszystkie istniejące sesje pacmana przed użyciem archinstall-a." - -msgid "Choose which optional additional repositories to enable" -msgstr "Wybierz, które z opcjonalnych repozytoriów chcesz włączyć" - -msgid "Add a user" -msgstr "Dodaj użytkownika" - -msgid "Change password" -msgstr "Zmień hasło" - -msgid "Promote/Demote user" -msgstr "Promuj/degraduj użytkownika" - -msgid "Delete User" -msgstr "Usuń użytkownika" - -msgid "" -"\n" -"Define a new user\n" -msgstr "" -"\n" -"Zdefiniuj nowego użytkownika\n" - -msgid "User Name : " -msgstr "Nazwa użytkownika : " - -msgid "Should {} be a superuser (sudoer)?" -msgstr "Czy użytkownik {} powinien być superuserem (mieć uprawnienia sudo)?" - -msgid "Define users with sudo privilege: " -msgstr "Zdefiniuj użytkowników z uprawnieniami sudo: " - -msgid "No network configuration" -msgstr "Brak konfiguracji sieciowej" - -msgid "Set desired subvolumes on a btrfs partition" -msgstr "Ustawianie żądanych subwoluminów na partycji btrfs" - -msgid "" -"{}\n" -"\n" -"Select which partition to set subvolumes on" -msgstr "Wybierz partycję, na której mają być ustawione subwoluminy" - -msgid "Manage btrfs subvolumes for current partition" -msgstr "Zarządzaj subwoluminami btrfs dla bieżącej partycji" - -msgid "No configuration" -msgstr "Brak konfiguracji" - -msgid "Save user configuration" -msgstr "Zapisz konfigurację użytkownika" - -msgid "Save user credentials" -msgstr "Zapisz dane uwierzytelniające użytkownika" - -msgid "Save disk layout" -msgstr "Zapisz układ dysku" - -msgid "Save all" -msgstr "Zapisz wszystko" - -msgid "Choose which configuration to save" -msgstr "Wybierz, która konfiguracja ma zostać zapisana" - -msgid "Enter a directory for the configuration(s) to be saved: " -msgstr "Wprowadź katalog, w którym ma zostać zapisana konfiguracja: " - -msgid "Not a valid directory: {}" -msgstr "Nieprawidłowy katalog: {}" - -msgid "The password you are using seems to be weak," -msgstr "Używane przez Ciebie hasło wydaje się być słabe," - -msgid "are you sure you want to use it?" -msgstr "czy na pewno chcesz go użyć?" - -msgid "Optional repositories" -msgstr "Opcjonalne repozytoria" - -msgid "Save configuration" -msgstr "Zapisz konfigurację" - -msgid "Missing configurations:\n" -msgstr "Brakujące konfiguracje:\n" - -msgid "Either root-password or at least 1 superuser must be specified" -msgstr "Należy podać hasło roota lub stworzyć co najmniej jednego superusera" - -msgid "Manage superuser accounts: " -msgstr "Zarządzaj kontami superuserów: " - -msgid "Manage ordinary user accounts: " -msgstr "Zarządzaj kontami zwykłych użytkowników: " - -msgid " Subvolume :{:16}" -msgstr " Subwolumin :{:16}" - -msgid " mounted at {:16}" -msgstr " zamontowany w {:16}" - -msgid " with option {}" -msgstr " z opcjami {}" - -msgid "" -"\n" -" Fill the desired values for a new subvolume \n" -msgstr "" -"\n" -" Wypełnij żądane wartości dla nowego subwoluminu \n" - -msgid "Subvolume name " -msgstr "Nazwa subwoluminu " - -msgid "Subvolume mountpoint" -msgstr "Punkt montowania subwoluminu" - -msgid "Subvolume options" -msgstr "Opcje subwoluminu" - -msgid "Save" -msgstr "Zapisz" - -msgid "Subvolume name :" -msgstr "Nazwa subwoluminu :" - -msgid "Select a mount point :" -msgstr "Wybierz punkt montowania :" - -msgid "Select the desired subvolume options " -msgstr "Wybierz opcje subwoluminu " - -msgid "Define users with sudo privilege, by username: " -msgstr "Określanie użytkowników z uprawnieniami sudo według nazwy użytkownika: " - -#, python-brace-format -msgid "[!] A log file has been created here: {}" -msgstr "[!] Plik dziennika został zapisany tutaj: {}" - -msgid "Would you like to use BTRFS subvolumes with a default structure?" -msgstr "Czy chcesz użyć subwoluminów BTRFS z domyślną strukturą?" - -msgid "Would you like to use BTRFS compression?" -msgstr "Czy chcesz użyć kompresji BTRFS?" - -msgid "Would you like to create a separate partition for /home?" -msgstr "Czy chcesz stworzyć oddzielną partycje dla /home?" - -msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n" -msgstr "Wybrane dyski nie mają minimalnej wymaganej pojemności dla automatycznej sugestii\n" - -msgid "Minimum capacity for /home partition: {}GB\n" -msgstr "Maksymalna pojemność dla partycji /home: {}GB\n" - -msgid "Minimum capacity for Arch Linux partition: {}GB" -msgstr "Minimalna pojemność dla partycji Arch Linux: {}GB" - -msgid "Continue" -msgstr "Kontynuuj" - -msgid "yes" -msgstr "tak" - -msgid "no" -msgstr "nie" - -msgid "set: {}" -msgstr "ustawiono na: {}" - -msgid "Manual configuration setting must be a list" -msgstr "Konfiguracja ustawiona manualnie musi być listą" - -msgid "No iface specified for manual configuration" -msgstr "Nie określono interfejsu do ręcznej konfiguracji" - -msgid "Manual nic configuration with no auto DHCP requires an IP address" -msgstr "Ręczna konfiguracja nic bez automatycznego DHCP wymaga podania adresu IP" - -msgid "Add interface" -msgstr "Dodaj interfejs" - -msgid "Edit interface" -msgstr "Edytuj interfejs" - -msgid "Delete interface" -msgstr "Usuń interfejs" - -msgid "Select interface to add" -msgstr "Wybierz interfejs sieciowy do dodania" - -msgid "Manual configuration" -msgstr "Ręczna konfiguracja" - -msgid "Mark/Unmark a partition as compressed (btrfs only)" -msgstr "Oznacz/odznacz partycje jako skompresowaną (tylko btrfs)" - -msgid "The password you are using seems to be weak, are you sure you want to use it?" -msgstr "Używane przez Ciebie hasło wydaje się być słabe, czy na pewno chcesz go użyć?" - -msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway" -msgstr "Dostarcza wybór środowisk graficznych oraz kafelkowych menedżerów okien, np. gnome, kde, sway" - -msgid "Select your desired desktop environment" -msgstr "Wybierz środowisko graficzne" - -msgid "A very basic installation that allows you to customize Arch Linux as you see fit." -msgstr "Bardzo ograniczona instalacja pozwalająca ci dostosowanie Arch Linuxa do twoich upodobań." - -msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb" -msgstr "Dostarcza wybór różnych pakietów serwerowych do zainstalowania i uruchomienia, np. httpd, nginx, mariadb" - -msgid "Choose which servers to install, if none then a minimal installation will be done" -msgstr "Wybierz jakie serwery zainstalować. Jeżeli żadne, wykonana będzie minimalna instalacja" - -msgid "Installs a minimal system as well as xorg and graphics drivers." -msgstr "Instaluje system podstawowy, a także xorg-a i sterowniki graficzne." - -msgid "Press Enter to continue." -msgstr "Naciśnij Enter, aby kontynuować." - -msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?" -msgstr "Czy chcesz zchrootować do nowej instalacji i przeprowadzić dodatkową konfigurację?" - -msgid "Are you sure you want to reset this setting?" -msgstr "Czy na pewno chcesz zresetować to ustawienie?" - -msgid "Select one or more hard drives to use and configure\n" -msgstr "Wybierz jeden lub więcej dysków twardych do użycia i skonfiguruj je\n" - -msgid "Any modifications to the existing setting will reset the disk layout!" -msgstr "Każda zmiana istniejących ustawień zresetuje układ dysków!" - -msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?" -msgstr "Jeżeli zresetujesz wybór dysków, zresetujesz także obecny układ dysków. Czy na pewno chcesz to zrobić?" - -msgid "Save and exit" -msgstr "Zapisz i wyjdź" - -msgid "" -"{}\n" -"contains queued partitions, this will remove those, are you sure?" -msgstr "" -"{}\n" -"zawiera partycje oczekujące w kolejce, to spowoduje ich usunięcie. Czy na pewno chcesz to zrobić?" - -msgid "No audio server" -msgstr "Brak serwera dźwięku" - -msgid "(default)" -msgstr "(domyślne)" - -msgid "Use ESC to skip" -msgstr "Naciśnij ESC, aby pominąć" - -msgid "" -"Use CTRL+C to reset current selection\n" -"\n" -msgstr "" -"Użyj CTRL+C, aby zresetować obecny wybór\n" -"\n" - -msgid "Copy to: " -msgstr "Kopiuj do: " - -msgid "Edit: " -msgstr "Edytuj: " - -msgid "Key: " -msgstr "Klucz: " - -msgid "Edit {}: " -msgstr "Edytuj {}: " - -msgid "Add: " -msgstr "Dodaj: " - -msgid "Value: " -msgstr "Wartość: " - -msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)" -msgstr "Możesz pominąć wybór dysku i partycjonowanie i użyć konfiguracji dysku zamontowanego w /mnt (eksperymentalne)" - -msgid "Select one of the disks or skip and use /mnt as default" -msgstr "Wybierz jeden z dysków lub pomiń i użyj /mnt jako domyślnego" - -msgid "Select which partitions to mark for formatting:" -msgstr "Wybierz partycje, które mają zostać sformatowane:" - -msgid "Use HSM to unlock encrypted drive" -msgstr "Użyj HSM do odblokowania zaszyfrowanego dysku" - -msgid "Device" -msgstr "Urządzenie" - -msgid "Size" -msgstr "Rozmiar" - -msgid "Free space" -msgstr "Wolne miejsce" - -msgid "Bus-type" -msgstr "Typ magistrali" - -msgid "Either root-password or at least 1 user with sudo privileges must be specified" -msgstr "Musisz podać hasło roota lub utworzyć co najmniej jednego superusera" - -msgid "Enter username (leave blank to skip): " -msgstr "Wprowadź nazwę użytkownika (pozostaw puste, aby pominąć): " - -msgid "The username you entered is invalid. Try again" -msgstr "Wprowadzona nazwa użytkownika jest nieprawidłowa. Spróbuj ponownie" - -msgid "Should \"{}\" be a superuser (sudo)?" -msgstr "Czy użytkownik \"{}\" powinien być superuserem (mieć uprawnienia sudo)?" - -msgid "Select which partitions to encrypt" -msgstr "Wybierz, które partycje mają zostać zaszyfrowane" - -msgid "very weak" -msgstr "bardzo słabe" - -msgid "weak" -msgstr "słabe" - -msgid "moderate" -msgstr "umiarkowane" - -msgid "strong" -msgstr "silne" - -msgid "Add subvolume" -msgstr "Dodaj subwolumin" - -msgid "Edit subvolume" -msgstr "Edytuj subwolumin" - -msgid "Delete subvolume" -msgstr "Usuń subwolumin" - -msgid "Configured {} interfaces" -msgstr "Skonfigurowano {} interfejsów" - -msgid "This option enables the number of parallel downloads that can occur during installation" -msgstr "Ta opcja pozwala określić maksymalną liczbę pobieranych plików podczas instalacji" - -msgid "" -"Enter the number of parallel downloads to be enabled.\n" -" (Enter a value between 1 to {})\n" -"Note:" -msgstr "" -"Wprowadź maksymalną liczbę dodatkowych plików pobieranych jednocześnie.\n" -" (Liczba z zakresu od 1 do {})\n" -"Zauważ:" - -msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )" -msgstr " - Maksymalna wartość : {} ( Zwiększa liczbę zadań o {}, co pozwala na pobieranie {} plików jednocześnie )" - -msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )" -msgstr " - Minimalna wartość : 1 ( Zwiększa liczbę zadań o 1, co pozwala na pobieranie 2 plików jednocześnie )" - -msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )" -msgstr " - Wyłącz/Domyślne : 0 ( Wyłącza pobieranie wielu plików jednocześnie, więc tylko 1 plik może być pobierany w tym samym czasie )" - -#, python-brace-format -msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]" -msgstr "Nieprawidłowa wartość! Spróbuj jeszcze raz z prawidłową wartością [1 do {max_downloads}, lub 0 aby wyłączyć]" - -msgid "Parallel Downloads" -msgstr "Pobieranie kilku plików jednocześnie" - -msgid "Pacman" -msgstr "Pacman" - -msgid "Color" -msgstr "Kolor" - -#, python-brace-format -msgid "Enter the number of parallel downloads (1-{})" -msgstr "Wprowadź maksymalną liczbę plików pobieranych jednocześnie (1-{})" - -msgid "Enable colored output for pacman" -msgstr "Włącz kolory w pacmanie" - -msgid "ESC to skip" -msgstr "Naciśnij ESC, aby pominąć" - -msgid "CTRL+C to reset" -msgstr "Naciśnij Ctrl+C, aby zresetować" - -msgid "TAB to select" -msgstr "Naciśnij Tab, aby wybrać" - -msgid "[Default value: 0] > " -msgstr "[Domyślna wartość: 0] > " - -msgid "To be able to use this translation, please install a font manually that supports the language." -msgstr "Aby móc skorzystać z tego tłumaczenia, proszę ręcznie zainstalować czcionkę, która obsługuje ten język." - -msgid "The font should be stored as {}" -msgstr "Czcionka powinna być przechowana jako {}" - -msgid "Archinstall requires root privileges to run. See --help for more." -msgstr "Archinstall wymaga uprawnień administratora do uruchomienia. Użyj --help, aby uzyskać więcej informacji." - -msgid "Select an execution mode" -msgstr "Wybierz tryb uruchamiania" - -#, python-brace-format -msgid "Unable to fetch profile from specified url: {}" -msgstr "Nie można pobrać profilu z podanego url: {}" - -#, python-brace-format -msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" -msgstr "Profile muszą mieć unikalne nazwy, a znaleziono istniejący profil o tej nazwie: {}" - -msgid "Select one or more devices to use and configure" -msgstr "Wybierz jedno lub więcej urządzeń do użycia i skonfiguruj je" - -msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?" -msgstr "Jeżeli zresetujesz wybór urządzeń, zresetujesz także obecny układ dysków. Czy na pewno chcesz to zrobić?" - -msgid "Existing Partitions" -msgstr "Instniejące partycje" - -msgid "Select a partitioning option" -msgstr "Wybierz opcję partycjonowania" - -msgid "Enter the root directory of the mounted devices: " -msgstr "Wprowadź katalog root zamontowanych urządzeń: " - -#, python-brace-format -msgid "Minimum capacity for /home partition: {}GiB\n" -msgstr "Maksymalna pojemność dla partycji /home: {}GiB\n" - -#, python-brace-format -msgid "Minimum capacity for Arch Linux partition: {}GiB" -msgstr "Minimalna pojemność dla partycji Arch Linux: {}GiB" - -msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments" -msgstr "To jest lista wstępnie zaprogramowanych profili (profiles_bck), które mogą ułatwić instalację takich rzeczy jak środowiska graficzne" - -msgid "Current profile selection" -msgstr "Aktualny wybór profilu" - -msgid "Remove all newly added partitions" -msgstr "Usuń wszystkie nowo dodane partycje" - -msgid "Assign mountpoint" -msgstr "Przydziel punkt montowania" - -msgid "Mark/Unmark to be formatted (wipes data)" -msgstr "Zaznacz/odznacz partycję do formatowania (wymazuje dane)" - -msgid "Mark/Unmark as bootable" -msgstr "Zaznacz/Odznacz jako bootowalne" - -msgid "Change filesystem" -msgstr "Zmień system plików" - -msgid "Mark/Unmark as compressed" -msgstr "Oznacz/odznacz partycje jako skompresowaną" - -msgid "Set subvolumes" -msgstr "Ustaw subwolumin" - -msgid "Delete partition" -msgstr "Usuń partycję" - -msgid "Partition" -msgstr "Partycja" - -msgid "This partition is currently encrypted, to format it a filesystem has to be specified" -msgstr "Wybrana partycja jest zaszyfrowana. Żeby ją sformatować, wybierz system plików" - -msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example." -msgstr "Punkty montowania partycji są względne w stosunku do wnętrza instalacji, np. boot to /boot." - -msgid "If mountpoint /boot is set, then the partition will also be marked as bootable." -msgstr "Jeżeli punkt montowania /boot jest wybrany, ta partycja będzie także zaznaczona jako bootowalna." - -msgid "Mountpoint: " -msgstr "Punkt montowania: " - -msgid "Current free sectors on device {}:" -msgstr "Aktualnie wolne sektory urządzenia {}:" - -msgid "Total sectors: {}" -msgstr "Łącznie sektorów: {}" - -msgid "Enter the start sector (default: {}): " -msgstr "Wprowadź sektor początkowy (domyślnie: {}): " - -msgid "Enter the end sector of the partition (percentage or block number, default: {}): " -msgstr "Wprowadź sektor końcowy tej partycji (procent lub numer bloku, domyślnie: {}): " - -msgid "This will remove all newly added partitions, continue?" -msgstr "To usunie wszystkie nowo dodane partycje, kontynuować?" - -#, python-brace-format -msgid "Partition management: {}" -msgstr "Zarządzanie partycją: {}" - -#, python-brace-format -msgid "Total length: {}" -msgstr "Całkowita długość: {}" - -msgid "Encryption type" -msgstr "Typ szyfrowania" - -msgid "Iteration time" -msgstr "Czas iteracji" - -msgid "Enter iteration time for LUKS encryption (in milliseconds)" -msgstr "Wprowadź czas iteracji dla szyfrowania LUKS (w milisekundach)" - -msgid "Higher values increase security but slow down boot time" -msgstr "Wyższe wartości zwiększają bezpieczeństwo, ale spowalniają uruchamianie" - -msgid "Default: 10000ms, Recommended range: 1000-60000" -msgstr "Domyślnie: 10000ms, Rekomendowany przedział: 1000-60000" - -msgid "Iteration time cannot be empty" -msgstr "Czas iteracji nie może być pusty" - -msgid "Iteration time must be at least 100ms" -msgstr "Czas iteracji nie może być niższy niż 100ms" - -msgid "Iteration time must be at most 120000ms" -msgstr "Czas iteracji nie może być wyższy niż 120000ms" - -msgid "Please enter a valid number" -msgstr "Proszę wprowadzić poprawną liczbę" - -msgid "Partitions" -msgstr "Partycje" - -msgid "No HSM devices available" -msgstr "Brak dostępnych urządzeń HSM" - -msgid "Partitions to be encrypted" -msgstr "Partycje do zaszyfrowania" - -msgid "Select disk encryption option" -msgstr "Wybierz opcję szyfrowania dysku" - -msgid "Select a FIDO2 device to use for HSM" -msgstr "Wybierz urządzenie FIDO2 do użycia z HSM" - -msgid "Use a best-effort default partition layout" -msgstr "Użyj najlepszego domyślnego układu partycji" - -msgid "Manual Partitioning" -msgstr "Ręczne partycjonowanie" - -msgid "Pre-mounted configuration" -msgstr "Wstępnie zamontowana konfiguracja" - -msgid "Unknown" -msgstr "Nieznane" - -msgid "Partition encryption" -msgstr "Szyfrowanie partycji" - -#, python-brace-format -msgid " ! Formatting {} in " -msgstr " ! Formatowanie {} za " - -msgid "← Back" -msgstr "← Wstecz" - -msgid "Disk encryption" -msgstr "Szyfrowanie dysku" - -msgid "Configuration" -msgstr "Konfiguracja" - -msgid "Password" -msgstr "Hasło" - -msgid "All settings will be reset, are you sure?" -msgstr "Wszystkie ustawienia zostaną zresetowane. Czy na pewno chcesz to zrobić?" - -msgid "Back" -msgstr "Wstecz" - -msgid "Please chose which greeter to install for the chosen profiles: {}" -msgstr "Wybierz który greeter zainstalować dla wybranych profili: {}" - -#, python-brace-format -msgid "Environment type: {}" -msgstr "Typ środowiska: {}" - -msgid "The proprietary Nvidia driver is not supported by Sway. It is likely that you will run into issues, are you okay with that?" -msgstr "Własnościowy sterownik Nvidia nie jest wspierany przez Sway. Prawdopodobnie wystąpią problemy, czy chcesz kontynuować?" - -msgid "Installed packages" -msgstr "Zainstalowane pakiety" - -msgid "Add profile" -msgstr "Dodaj profil" - -msgid "Edit profile" -msgstr "Edytuj profil" - -msgid "Delete profile" -msgstr "Usuń profil" - -msgid "Profile name: " -msgstr "Nazwa profilu: " - -msgid "The profile name you entered is already in use. Try again" -msgstr "Wprowadzona nazwa profilu jest już w użyciu. Spróbuj ponownie" - -msgid "Packages to be install with this profile (space separated, leave blank to skip): " -msgstr "Dodatkowe pakiety do zainstalowania na tym profilu (oddzielone spacjami, pozostaw puste aby pominąć): " - -msgid "Services to be enabled with this profile (space separated, leave blank to skip): " -msgstr "Usługi, które mają być włączone na tym profilu (oddzielone spacjami, pozostaw puste aby pominąć): " - -msgid "Should this profile be enabled for installation?" -msgstr "Czy ten profil ma być włączony podczas instalacji?" - -msgid "Create your own" -msgstr "Utwórz własny" - -msgid "" -"\n" -"Select a graphics driver or leave blank to install all open-source drivers" -msgstr "" -"\n" -"Wybierz sterownik graficzny lub pozostaw puste, aby zainstalować wszystkie sterowniki otwartoźródłowe" - -msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)" -msgstr "Sway potrzebuje dostępu do twojego seat'a (sprzętu, np. klawiatury, myszki, etc)" - -msgid "" -"\n" -"\n" -"Choose an option to give Sway access to your hardware" -msgstr "" -"\n" -"\n" -"Wybierz opcję, aby nadać Sway dostęp do twojego sprzętu" - -msgid "Graphics driver" -msgstr "Sterownik graficzny" - -msgid "Greeter" -msgstr "Greeter" - -msgid "Please chose which greeter to install" -msgstr "Wybierz, który greeter zainstalować" - -msgid "This is a list of pre-programmed default_profiles" -msgstr "To jest lista przygotowanych domyślnych profili (default_profiles)" - -msgid "Disk configuration" -msgstr "Konfiguracja dysku" - -msgid "Profiles" -msgstr "Profile" - -msgid "Finding possible directories to save configuration files ..." -msgstr "Znajdywanie możliwych katalogów do zapisywania plików konfiguracyjnych ..." - -msgid "Select directory (or directories) for saving configuration files" -msgstr "Wybierz jeden lub więcej katalogów do zapisywania plików konfiguracyjnych" - -msgid "Add a custom mirror" -msgstr "Dodaj niestandardowy serwer lustrzany" - -msgid "Change custom mirror" -msgstr "Zmień niestandardowy serwer lustrzany" - -msgid "Delete custom mirror" -msgstr "Usuń niestandardowy serwer lustrzany" - -msgid "Enter name (leave blank to skip): " -msgstr "Wprowadź nazwę (pozostaw puste, aby pominąć): " - -msgid "Enter url (leave blank to skip): " -msgstr "Wprowadź url (pozostaw puste, aby pominąć): " - -msgid "Select signature check option" -msgstr "Wybierz układ dysku" - -msgid "Select signature option" -msgstr "Wybierz opcję podpisu" - -msgid "Custom mirrors" -msgstr "Niestandardowe serwery lustrzane" - -msgid "Defined" -msgstr "Zdefiniowane" - -msgid "Save user configuration (including disk layout)" -msgstr "Zapisz konfigurację użytkownika (wraz z układem dysku)" - -msgid "" -"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n" -"Save directory: " -msgstr "" -"Wprowadź katalog, w którym ma zostać zapisana konfiguracja (uzupełnianie przyciskiem tab jest włączone)\n" -"Katalog zapisu: " - -msgid "" -"Do you want to save {} configuration file(s) in the following location?\n" -"\n" -"{}" -msgstr "" -"Czy chcesz zapisać plik(i) konfiguracji {} w podanej lokalizacji?\n" -"\n" -"{}" - -msgid "Saving {} configuration files to {}" -msgstr "Zapisywanie {} plików konfiguracyjnych do {}" - -msgid "Mirrors" -msgstr "Serwery lustrzane" - -msgid "Mirror regions" -msgstr "Regiony serwerów lustrzanych" - -msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )" -msgstr " - Maksymalna wartość : {} ( Zwiększa liczbę zadań o {}, co pozwala na pobieranie {max_downloads+1} plików jednocześnie )" - -msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]" -msgstr "Nieprawidłowa wartość! Spróbuj jeszcze raz z poprawną wartością [1 do {}, lub 0 aby wyłączyć]" - -msgid "Locales" -msgstr "Ustawienia regionalne (locale)" - -msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)" -msgstr "Użyj programu NetworkManager (niezbędne do graficznej konfiguracji Internetu w GNOME i KDE)" - -msgid "Total: {} / {}" -msgstr "Łącznie: {} / {}" - -msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..." -msgstr "Do wszystkich wybranych wartości może być dopisana jednostka: B, KB, KiB, MB, MiB..." - -msgid "If no unit is provided, the value is interpreted as sectors" -msgstr "Jeżeli jednostka nie zostanie podana, wartość zostanie zinterpretowana jako sektory" - -msgid "Enter start (default: sector {}): " -msgstr "Wprowadź początek (domyślnie: {}): " - -msgid "Enter end (default: {}): " -msgstr "Wprowadź koniec (domyślnie: {}): " - -msgid "Unable to determine fido2 devices. Is libfido2 installed?" -msgstr "Nie można określić urządzeń fido2. Czy zainstalowano libfido2?" - -msgid "Path" -msgstr "Ścieżka" - -msgid "Manufacturer" -msgstr "Producent" - -msgid "Product" -msgstr "Produkt" - -#, python-brace-format -msgid "Invalid configuration: {error}" -msgstr "Niepoprawna konfiguracja: {error}" - -msgid "Ready to install" -msgstr "Gotowe do zainstalowania" - -msgid "Disks" -msgstr "Dyski" - -msgid "Packages" -msgstr "Pakiety" - -msgid "Network" -msgstr "Sieć" - -msgid "Locale" -msgstr "Ustawienia regionalne (locale)" - -msgid "Type" -msgstr "Typ" - -msgid "This option enables the number of parallel downloads that can occur during package downloads" -msgstr "Ta opcja pozwala określić maksymalną liczbę jednocześnie pobieranych pakietów" - -msgid "" -"Enter the number of parallel downloads to be enabled.\n" -"\n" -"Note:\n" -msgstr "" -"Wprowadź maksymalną liczbę dodatkowych plików pobieranych jednocześnie.\n" -"\n" -"Note:\n" - -#, python-brace-format -msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" -msgstr " - Maksymalna rekomendowana wartość : {} ( Zwiększa liczbę zadań o {} )" - -msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n" -msgstr " - Wyłącz/Domyślne : 0 ( Wyłącza pobieranie wielu plików jednocześnie, więc tylko 1 plik może być pobierany w tym samym czasie )\n" - -msgid "Invalid input! Try again with a valid input [or 0 to disable]" -msgstr "Nieprawidłowa wartość! Spróbuj jeszcze raz z poprawną wartością [lub 0, aby wyłączyć]" - -msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)" -msgstr "Hyprland potrzebuje dostępu do twojego seat'a (sprzętu, np. klawiatury, myszki, etc)" - -msgid "" -"\n" -"\n" -"Choose an option to give Hyprland access to your hardware" -msgstr "" -"\n" -"\n" -"Wybierz opcję, aby nadać Hyprland dostęp do twojego sprzętu" - -msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..." -msgstr "Do wszystkich wybranych wartości może być dopisana jednostka: % B, KB, KiB, MB, MiB..." - -msgid "Would you like to use unified kernel images?" -msgstr "Czy chcesz użyć ujednoliconych obrazów jądra?" - -msgid "Unified kernel images" -msgstr "Ujednolicone obrazy jądra" - -msgid "Waiting for time sync (timedatectl show) to complete." -msgstr "Oczekiwanie na synchronizację czasu (timedatectl show)." - -msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/" -msgstr "Synchronizacja czasu nie powodzi się. Oczekując - sprawdź dokumentację: https://archinstall.readthedocs.io/" - -msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)" -msgstr "Pomiń oczekiwanie na automatyczną synchronizację czasu (może spowodować problemy podczas instalacji)" - -msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete." -msgstr "Oczekiwanie na synchronizację Arch Linux keyring (archlinux-keyring-wkd-sync)." - -msgid "Selected profiles: " -msgstr "Wybrane profile: " - -msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/" -msgstr "Synchronizacja czasu nie powodzi się. Oczekując - sprawdź dokumentację: https://archinstall.readthedocs.io/" - -msgid "Mark/Unmark as nodatacow" -msgstr "Zaznacz/Odznacz jako nodatacow" - -msgid "Would you like to use compression or disable CoW?" -msgstr "Czy chcesz użyć kompresji lub wyłączyć CoW?" - -msgid "Use compression" -msgstr "Użyj kompresji" - -msgid "Disable Copy-on-Write" -msgstr "Wyłącz kopiowanie przy zapisie (Copy-on-Write)" - -msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" -msgstr "Dostarcza wybór środowisk graficznych oraz kafelkowych menedżerów okien, np. GNOME, KDE Plasma, Sway" - -#, python-brace-format -msgid "Configuration type: {}" -msgstr "Typ konfiguracji: {}" - -msgid "LVM configuration type" -msgstr "Typ konfiguracji LVM" - -msgid "LVM disk encryption with more than 2 partitions is currently not supported" -msgstr "Szyfrowanie dysku LVM z więcej niż dwoma partycjami aktualnie nie jest wspierane" - -msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)" -msgstr "Użyj programu NetworkManager (niezbędne do graficznej konfiguracji Internetu w GNOME i KDE)" - -msgid "Select a LVM option" -msgstr "Wybierz opcję LVM" - -msgid "Partitioning" -msgstr "Partycjonowanie" - -msgid "Logical Volume Management (LVM)" -msgstr "Zarządzanie Woluminami Logicznymi (LVM)" - -msgid "Physical volumes" -msgstr "Fizyczne woluminy" - -msgid "Volumes" -msgstr "Woluminy" - -msgid "LVM volumes" -msgstr "Woluminy LVM" - -msgid "LVM volumes to be encrypted" -msgstr "Woluminy LVM do zaszyfrowania" - -msgid "Select which LVM volumes to encrypt" -msgstr "Wybierz, które woluminy LVM mają zostać zaszyfrowane" - -msgid "Default layout" -msgstr "Domyślny układ" - -msgid "No Encryption" -msgstr "Brak szyfrowania" - -msgid "LUKS" -msgstr "LUKS" - -msgid "LVM on LUKS" -msgstr "LVM na LUKS" - -msgid "LUKS on LVM" -msgstr "LUKS na LVM" - -msgid "Yes" -msgstr "Tak" - -msgid "No" -msgstr "Nie" - -msgid "Archinstall help" -msgstr "Pomoc archinstall-a" - -msgid " (default)" -msgstr " (domyślne)" - -msgid "Press Ctrl+h for help" -msgstr "Naciśnij Ctrl+h, aby wyświetlić pomoc" - -msgid "Choose an option to give Sway access to your hardware" -msgstr "Wybierz opcję, aby nadać Sway dostęp do twojego sprzętu" - -msgid "Seat access" -msgstr "Dostęp do seat'a" - -msgid "Mountpoint" -msgstr "Punkt montowania" - -msgid "HSM" -msgstr "HSM" - -msgid "Enter disk encryption password (leave blank for no encryption)" -msgstr "Wprowadź hasło do szyfrowania dysku (pozostaw puste, aby nie szyfrować):" - -msgid "Disk encryption password" -msgstr "Hasło szyfrujące dysk" - -msgid "Partition - New" -msgstr "Partycja - Nowa" - -msgid "Filesystem" -msgstr "System plików" - -msgid "Invalid size" -msgstr "Niepoprawny rozmiar" - -msgid "Start (default: sector {}): " -msgstr "Początek (domyślnie: sektor {}): " - -msgid "End (default: {}): " -msgstr "Koniec (domyślnie: {}): " - -msgid "Subvolume name" -msgstr "Nazwa subwoluminu" - -msgid "Disk configuration type" -msgstr "Typ konfiguracji dysku" - -msgid "Root mount directory" -msgstr "Katalog montowania root" - -msgid "Select language" -msgstr "Wybierz język" - -msgid "Write additional packages to install (space separated, leave blank to skip)" -msgstr "Wpisz dodatkowe pakiety do zainstalowania (oddzielone spacjami, pozostaw puste aby pominąć):" - -msgid "Invalid download number" -msgstr "Niepoprawna liczba pobrań" - -msgid "Number downloads" -msgstr "Liczba pobrań" - -msgid "The username you entered is invalid" -msgstr "Wprowadzona nazwa użytkownika jest nieprawidłowa" - -msgid "Username" -msgstr "Nazwa użytkownika" - -#, python-brace-format -msgid "Should \"{}\" be a superuser (sudo)?\n" -msgstr "Czy \"{}\" powinien być superuserem (mieć uprawnienia sudo)?\n" - -msgid "Interfaces" -msgstr "Interfejsy" - -msgid "You need to enter a valid IP in IP-config mode" -msgstr "Musisz wprowadzić poprawny adres IP w trybie IP-config" - -msgid "Modes" -msgstr "Tryby" - -msgid "IP address" -msgstr "Adres IP" - -msgid "Enter your gateway (router) IP address (leave blank for none)" -msgstr "Wprowadź adres IP bramy sieciowej (routera) lub pozostaw puste:" - -msgid "Gateway address" -msgstr "Adres bramy sieciowej" - -msgid "Enter your DNS servers with space separated (leave blank for none)" -msgstr "Wpisz swoje serwery DNS (oddzielone spacjami, lub pozostaw puste):" - -msgid "DNS servers" -msgstr "Serwery DNS" - -msgid "Configure interfaces" -msgstr "Konfiguruj interfejsy" - -msgid "Kernel" -msgstr "Jądro" - -msgid "UEFI is not detected and some options are disabled" -msgstr "Nie wykryto UEFI i niektóre opcje są wyłączone" - -msgid "Info" -msgstr "Info" - -msgid "The proprietary Nvidia driver is not supported by Sway." -msgstr "Własnościowy sterownik Nvidia nie jest wspierany przez Sway." - -msgid "It is likely that you will run into issues, are you okay with that?" -msgstr "Prawdopodobnie wystąpią problemy, czy chcesz kontynuować?" - -msgid "Main profile" -msgstr "Główny profil" - -msgid "Confirm password" -msgstr "Potwierdź hasło" - -msgid "The confirmation password did not match, please try again" -msgstr "Hasło potwierdzające nie jest poprawne, proszę spróbować jeszcze raz" - -msgid "Not a valid directory" -msgstr "Nieprawidłowy katalog" - -msgid "Would you like to continue?" -msgstr "Czy chcesz kontynuować?" - -msgid "Directory" -msgstr "Katalog" - -msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)" -msgstr "Wprowadź katalog, w którym ma zostać zapisana konfiguracja (uzupełnianie przyciskiem tab jest włączone):" - -#, python-brace-format -msgid "Do you want to save the configuration file(s) to {}?" -msgstr "Czy chcesz zapisać plik(i) konfiguracyjne do {}?" - -msgid "Enabled" -msgstr "Włączone" - -msgid "Disabled" -msgstr "Wyłączone" - -msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues" -msgstr "Proszę zgłosić ten błąd (i dołączyć plik) pod adresem https://github.com/archlinux/archinstall/issues" - -msgid "Mirror name" -msgstr "Nazwa serwera lustrzanego" - -msgid "Url" -msgstr "Url" - -msgid "Select signature check" -msgstr "Wybierz sprawdzanie podpisu" - -msgid "Select execution mode" -msgstr "Wybierz tryb uruchamiania" - -msgid "Press ? for help" -msgstr "Naciśnij ?, aby wyświetlić pomoc" - -msgid "Choose an option to give Hyprland access to your hardware" -msgstr "Wybierz opcję, aby nadać Hyprland dostęp do twojego sprzętu" - -msgid "Additional repositories" -msgstr "Dodatkowe repozytoria" - -msgid "NTP" -msgstr "NTP" - -msgid "Swap on zram" -msgstr "Swap na zram" - -msgid "Name" -msgstr "Nazwa" - -msgid "Signature check" -msgstr "Sprawdzanie podpisów" - -#, python-brace-format -msgid "Selected free space segment on device {}:" -msgstr "Wybrany segment wolnego miejsca na urządzeniu {}:" - -#, python-brace-format -msgid "Size: {} / {}" -msgstr "Rozmiar: {} / {}" - -#, python-brace-format -msgid "Size (default: {}): " -msgstr "Rozmiar (domyślnie: {}): " - -msgid "HSM device" -msgstr "Urządzenie HSM" - -msgid "Some packages could not be found in the repository" -msgstr "Niektóre pakiety nie mogły zostać znalezione w repozytorium" - -msgid "User" -msgstr "Użytkownik" - -msgid "The specified configuration will be applied" -msgstr "Podana konfiguracja zostanie zastosowana" - -msgid "Wipe" -msgstr "Wymaż" - -msgid "Mark/Unmark as XBOOTLDR" -msgstr "Zaznacz/Odznacz jako XBOOTLDR" - -msgid "Loading packages..." -msgstr "Ładowanie pakietów..." - -msgid "Select any packages from the below list that should be installed additionally" -msgstr "Wybierz pakiety z poniższej listy, które powinne być dodatkowo zainstalowane" - -msgid "Add a custom repository" -msgstr "Dodaj niestandardowe repozytorium" - -msgid "Change custom repository" -msgstr "Zmień niestandardowe repozytorium" - -msgid "Delete custom repository" -msgstr "Usuń niestandardowe repozytorium" - -msgid "Repository name" -msgstr "Nazwa repozytorium" - -msgid "Add a custom server" -msgstr "Dodaj niestandardowy serwer" - -msgid "Change custom server" -msgstr "Zmień niestandardowy serwer" - -msgid "Delete custom server" -msgstr "Usuń niestandardowy serwer" - -msgid "Server url" -msgstr "Url serwera" - -msgid "Select regions" -msgstr "Wybierz regiony" - -msgid "Add custom servers" -msgstr "Dodaj niestandardowe serwery" - -msgid "Add custom repository" -msgstr "Dodaj niestandardowe repozytorium" - -msgid "Loading mirror regions..." -msgstr "Ładowanie regionów serwerów lustrzanych..." - -msgid "Mirrors and repositories" -msgstr "Serwery lustrzane i repozytoria" - -msgid "Selected mirror regions" -msgstr "Wybrane regiony serwerów lustrzanych" - -msgid "Custom servers" -msgstr "Niestandardowe serwery lustrzane" - -msgid "Custom repositories" -msgstr "Niestandardowe repozytoria" - -msgid "Only ASCII characters are supported" -msgstr "Tylko znaki ASCII są wspierane" - -msgid "Show help" -msgstr "Pokaż pomoc" - -msgid "Exit help" -msgstr "Zamknij pomoc" - -msgid "Preview scroll up" -msgstr "Przewiń podgląd w górę" - -msgid "Preview scroll down" -msgstr "Przewiń podgląd w dół" - -msgid "Move up" -msgstr "Przesuń w górę" - -msgid "Move down" -msgstr "Przesuń w dół" - -msgid "Move right" -msgstr "Przesuń w prawo" - -msgid "Move left" -msgstr "Przesuń w lewo" - -msgid "Jump to entry" -msgstr "Przeskocz do wpisu" - -msgid "Skip selection (if available)" -msgstr "Pomiń wybór (jeżeli to możliwe)" - -msgid "Reset selection (if available)" -msgstr "Zresetuj wybór (jeżeli to możliwe)" - -msgid "Select on single select" -msgstr "Wybierz na wyborach pojedynczych" - -msgid "Select on multi select" -msgstr "Wybierz na wyborach wielokrotnych" - -msgid "Reset" -msgstr "Zresetuj" - -msgid "Skip selection menu" -msgstr "Pomiń menu wyboru" - -msgid "Start search mode" -msgstr "Wejdź w tryb wyszukiwania" - -msgid "Exit search mode" -msgstr "Wyjdź z trybu wyszukiwania" - -msgid "General" -msgstr "Ogólne" - -msgid "Navigation" -msgstr "Nawigacja" - -msgid "Selection" -msgstr "Wybór" - -msgid "Search" -msgstr "Szukaj" - -msgid "Down" -msgstr "W dół" - -msgid "Up" -msgstr "W górę" - -msgid "Confirm" -msgstr "Potwierdź" - -msgid "Focus right" -msgstr "W prawo" - -msgid "Focus left" -msgstr "W lewo" - -msgid "Toggle" -msgstr "Zaznacz/Odznacz" - -msgid "Show/Hide help" -msgstr "Pokaż/Ukryj pomoc" - -msgid "Quit" -msgstr "Wyjdź" - -msgid "First" -msgstr "Pierwszy" - -msgid "Last" -msgstr "Ostatni" - -msgid "Select" -msgstr "Wybierz" - -msgid "Page Up" -msgstr "Strona w górę" - -msgid "Page Down" -msgstr "Strona w dół" - -msgid "Page up" -msgstr "Strona w górę" - -msgid "Page down" -msgstr "Strona w dół" - -msgid "Page Left" -msgstr "Strona w lewo" - -msgid "Page Right" -msgstr "Strona w prawo" - -msgid "Cursor up" -msgstr "Kursor w górę" - -msgid "Cursor down" -msgstr "Kursor w dół" - -msgid "Cursor right" -msgstr "Kursor w prawo" - -msgid "Cursor left" -msgstr "Kursor w lewo" - -msgid "Top" -msgstr "Góra" - -msgid "Bottom" -msgstr "Dół" - -msgid "Home" -msgstr "Początek" - -msgid "End" -msgstr "Koniec" - -msgid "Toggle option" -msgstr "Zaznacz/Odznacz opcję" - -msgid "Scroll Up" -msgstr "Przewiń w górę" - -msgid "Scroll Down" -msgstr "Przewiń w dół" - -msgid "Scroll Left" -msgstr "Przewiń w lewo" - -msgid "Scroll Right" -msgstr "Przewiń w prawo" - -msgid "Scroll Home" -msgstr "Przewiń do początku" - -msgid "Scroll End" -msgstr "Przewiń do końca" - -msgid "Focus Next" -msgstr "Następny" - -msgid "Focus Previous" -msgstr "Poprzedni" - -msgid "Copy selected text" -msgstr "Skopiuj zaznaczony tekst" - -msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)" -msgstr "labwc potrzebuje dostępu do twojego seat'a (sprzętu, np. klawiatury, myszki)" - -msgid "Choose an option to give labwc access to your hardware" -msgstr "Wybierz opcję, aby nadać labwc dostęp do twojego sprzętu" - -msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)" -msgstr "niri potrzebuje dostępu do twojego seat'a (sprzętu, np. klawiatury, myszki, etc)" - -msgid "Choose an option to give niri access to your hardware" -msgstr "Wybierz opcję, aby nadać niri dostęp do twojego sprzętu" - -msgid "Mark/Unmark as ESP" -msgstr "Zaznacz/Odznacz jako ESP" - -msgid "Package group:" -msgstr "Grupa pakietów:" - -msgid "Exit archinstall" -msgstr "Zamknij archinstall-a" - -msgid "Reboot system" -msgstr "Uruchom ponownie system" - -msgid "chroot into installation for post-installation configurations" -msgstr "zchrootować do nowej instalacji i przeprowadzić dodatkową konfigurację" - -msgid "Installation completed" -msgstr "Instalacja zakończona" - -msgid "What would you like to do next?" -msgstr "Co chcesz robić dalej?" - -#, python-brace-format -msgid "Select which mode to configure for \"{}\"" -msgstr "Wybierz który tryb ma być skonfigurowany dla \"{}\"" - -msgid "Incorrect credentials file decryption password" -msgstr "Niepoprawne hasło odszyfrowujące plik danych uwierzytelniających" - -msgid "Incorrect password" -msgstr "Niepoprawne hasło" - -msgid "Credentials file decryption password" -msgstr "Hasło odszyfrowujące plik danych uwierzytelniających" - -msgid "Do you want to encrypt the user_credentials.json file?" -msgstr "Czy chcesz zaszyfrować plik user_credentials.json?" - -msgid "Credentials file encryption password" -msgstr "Hasło szyfrujące plik danych uwierzytelniających" - -#, python-brace-format -msgid "Repositories: {}" -msgstr "Repozytoria: {}" - -msgid "New version available" -msgstr "Nowa wersja dostępna" - -msgid "Passwordless login" -msgstr "Logowanie bezhasłowe" - -msgid "Second factor login" -msgstr "Logowanie dwuskładnikowe" - -msgid "Bluetooth" -msgstr "Bluetooth" - -msgid "Would you like to configure Bluetooth?" -msgstr "Czy chcesz skonfigurować Bluetooth?" - -msgid "Print service" -msgstr "Usługa drukowania" - -msgid "Would you like to configure the print service?" -msgstr "Czy chcesz skonfigurować usługę drukowania?" - -msgid "Power management" -msgstr "Zarządzanie zasilaniem" - -msgid "Authentication" -msgstr "Uwierzytelnianie" - -msgid "Applications" -msgstr "Aplikacje" - -msgid "U2F login method: " -msgstr "Metoda logowania U2F: " - -msgid "Passwordless sudo: " -msgstr "Bezhasłowe sudo: " - -#, python-brace-format -msgid "Btrfs snapshot type: {}" -msgstr "Typ migawki Btrfs: {}" - -msgid "Syncing the system..." -msgstr "Synchronizowanie systemu..." - -msgid "Value cannot be empty" -msgstr "Wartość nie może być pusta" - -msgid "Snapshot type" -msgstr "Typ migawki" - -#, python-brace-format -msgid "Snapshot type: {}" -msgstr "Typ migawki: {}" - -msgid "U2F login setup" -msgstr "Konfiguracja logowania U2F" - -msgid "No U2F devices found" -msgstr "Nie znaleziono urządzeń U2F" - -msgid "U2F Login Method" -msgstr "Metoda Logowania U2F" - -msgid "Enable passwordless sudo?" -msgstr "Włączyć bezhasłowe sudo?" - -#, python-brace-format -msgid "Setting up U2F device for user: {}" -msgstr "Konfigurowanie urządzenia U2F dla użytkownika: {}" - -msgid "You may need to enter the PIN and then touch your U2F device to register it" -msgstr "Prawdopodobnie będzie trzeba wprowadzić PIN oraz dotknąć urządzenia U2F, aby je zarejestrować" - -msgid "Starting device modifications in " -msgstr "Wprowadzanie zmian do urządzeń w " - -msgid "No network connection found" -msgstr "Brak połączenia z siecią" - -msgid "Would you like to connect to a Wifi?" -msgstr "Czy chcesz połączyć się z Wifi?" - -msgid "No wifi interface found" -msgstr "Nie znaleziono interfejsu wifi" - -msgid "Select wifi network to connect to" -msgstr "Wybierz sieć wifi do połączenia się" - -msgid "Scanning wifi networks..." -msgstr "Skanowanie sieci wifi..." - -msgid "No wifi networks found" -msgstr "Nie znaleziono sieci wifi" - -msgid "Failed setting up wifi" -msgstr "Nie udało się skonfigurować wifi" - -msgid "Enter wifi password" -msgstr "Wprowadź hasło do wifi" - -msgid "Ok" -msgstr "Ok" - -msgid "Removable" -msgstr "Usuwalne" - -msgid "Install to removable location" -msgstr "Zainstaluj do usuwalnej lokalizacji" - -msgid "Will install to /EFI/BOOT/ (removable location)" -msgstr "Zainstaluje do /EFI/BOOT/ (usuwalna lokalizacja)" - -msgid "Will install to standard location with NVRAM entry" -msgstr "Zainstaluje do standardowej lokalizacji z wpisem do NVRAM" - -msgid "Would you like to install the bootloader to the default removable media search location?" -msgstr "Czy chcesz zainstalować program rozruchowy do domyślnej lokalizacji wyszukiwania nośników wymiennych?" - -msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:" -msgstr "Instaluje program rozruchowy do /EFI/BOOT/BOOTX64.EFI (lub podobnie), co jest użyteczne w następujących sytuacjach:" - -msgid "USB drives or other portable external media." -msgstr "Dyski USB lub inne przenośne zewnętrzne nośniki." - -msgid "Systems where you want the disk to be bootable on any computer." -msgstr "Systemy, w których chcesz, by dysk był bootowalny na dowolnym komputerze." - -msgid "Firmware that does not properly support NVRAM boot entries." -msgstr "Oprogramowanie układowe, które nie wspiera poprawnie wpisów rozruchowych w NVRAM." - -msgid "Will install to /EFI/BOOT/ (removable location, safe default)" -msgstr "Zainstaluje do /EFI/BOOT/ (usuwalna lokalizacja, bezpieczna wartość domyślna)" - -msgid "Will install to custom location with NVRAM entry" -msgstr "Zainstaluje do niestandardowej lokalizacji z wpisem do NVRAM" - -msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards," -msgstr "Oprogramowanie układowe, które nie wspiera poprawnie wpisów rozruchowych w NVRAM, jak większość płyt głównych MSI," - -msgid "most Apple Macs, many laptops..." -msgstr "większość Apple Mac-ów, wiele laptopów..." - -msgid "Language" -msgstr "Język" - -msgid "Compression algorithm" -msgstr "Algorytm kompresji" - -msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed." -msgstr "Instalowane są tylko pakiety takie jak base, sudo, linux, linux-firmware, efibootmgr i opcjonalne pakiety profili." - -msgid "Select zram compression algorithm:" -msgstr "Wybierz algorytm kompresji zram:" - -msgid "Use Network Manager (default backend)" -msgstr "Użyj NetworkManager'a (domyślny backend)" - -msgid "Use Network Manager (iwd backend)" -msgstr "Użyj NetworkManager'a (backend iwd)" - -msgid "Firewall" -msgstr "Zapora sieciowa" - -msgid "Additional fonts" -msgstr "Dodatkowe czcionki" - -msgid "Select font packages to install" -msgstr "Wybierz pakiety czcionek do zainstalowania" - -msgid "Unicode font coverage for most languages" -msgstr "Wsparcie Unicode dla większości języków" - -msgid "color emoji for browsers and apps" -msgstr "kolorowe emoji dla przeglądarek i aplikacji" - -msgid "Chinese, Japanese, Korean characters" -msgstr "Chińskie, Japońskie, Koreańskie znaki" - -msgid "Select audio configuration" -msgstr "Wybierz konfigurację audio" - -msgid "Enter credentials file decryption password" -msgstr "Wprowadź hasło odszyfrowujące plik danych uwierzytelniających" - -msgid "Enter root password" -msgstr "Wprowadź hasło roota" - -msgid "Select bootloader to install" -msgstr "Wybierz program rozruchowy do zainstalowania" - -msgid "Configuration preview" -msgstr "Podgląd konfiguracji" - -msgid "Enter a directory for the configuration(s) to be saved" -msgstr "Wprowadź katalog, w którym ma zostać zapisana konfiguracja" - -msgid "Select encryption type" -msgstr "Wybierz typ szyfrowania" - -msgid "Select disks for the installation" -msgstr "Wybierz dyski dla tej instalacji" - -msgid "Enter a mountpoint" -msgstr "Wprowadź punkt montowania" - -#, python-brace-format -msgid "Enter a size (default: {}): " -msgstr "Wprowadź rozmiar (domyślnie: {}): " - -msgid "Enter subvolume name" -msgstr "Wprowadź nazwę subwoluminu" - -msgid "Enter subvolume mountpoint" -msgstr "Wprowadź punkt montowania subwoluminu" - -msgid "Select a disk configuration" -msgstr "Wybierz konfigurację dysku" - -msgid "Enter root mount directory" -msgstr "Wprowadź zamontowany katalog główny (root)" - -msgid "You will use whatever drive-setup is mounted at the specified directory" -msgstr "Użyjesz konfiguracji dysków zamontowanej w podanej ścieżce" - -msgid "WARNING: Archinstall won't check the suitability of this setup" -msgstr "OSTRZEŻENIE: Archinstall nie sprawdzi poprawności tej konfiguracji" - -msgid "Select main filesystem" -msgstr "Zmień główny system plików" - -msgid "Enter a hostname" -msgstr "Wprowadź nazwę hosta" - -msgid "Select timezone" -msgstr "Wybierz strefę czasową" - -msgid "Enter the number of parallel downloads to be enabled" -msgstr "Wprowadź maksymalną liczbę plików pobieranych jednocześnie" - -#, python-brace-format -msgid "Value must be between 1 and {}" -msgstr "Wartość musi być pomiędzy 1 a {}" - -msgid "Select which kernel(s) to install" -msgstr "Wybierz, które jądro/jądra zainstalować" - -msgid "Enter a respository name" -msgstr "Wprowadź nazwę repozytorium" - -msgid "Enter the repository url" -msgstr "Wprowadź url repozytorium" - -msgid "Enter server url" -msgstr "Wprowadź url serwera" - -msgid "Select mirror regions to be enabled" -msgstr "Wybierz, które regiony serwerów lustrzanych chcesz włączyć" - -msgid "Select optional repositories to be enabled" -msgstr "Wybierz, które z opcjonalnych repozytoriów chcesz włączyć" - -msgid "Select an interface" -msgstr "Wybierz interfejs" - -msgid "Choose network configuration" -msgstr "Wybierz konfigurację sieci" - -msgid "Recommended: Network Manager for desktop, Manual for server" -msgstr "Rekomendowane: Network Manager dla desktopów, ręcznie dla serwerów" - -msgid "Warning: no network configuration selected. Network will need to be set up manually on the installed system." -msgstr "Uwaga: nie wybrano konfiguracji sieci. Sieć musi zostać skonfigurowana ręcznie w zainstalowanym systemie." - -msgid "No packages found" -msgstr "Nie znaleziono pakietów" - -msgid "Select which greeter to install" -msgstr "Wybierz, który greeter zainstalować" - -msgid "Select a profile type" -msgstr "Wybierz typ profilu" - -msgid "Enter new password" -msgstr "Wprowadź nowe hasło" - -msgid "Enter a username" -msgstr "Wprowadź nazwę użytkownika" - -msgid "Enter a password" -msgstr "Wprowadź hasło" - -msgid "The password did not match, please try again" -msgstr "Hasło nie jest poprawne, proszę spróbować jeszcze raz" - -msgid "Password strength: Weak" -msgstr "Jakość hasła: Słabe" - -msgid "Password strength: Moderate" -msgstr "Jakość hasła: Średnie" - -msgid "Password strength: Strong" -msgstr "Jakość hasła: Mocne" - -msgid "The selected desktop profile requires a regular user to log in via the greeter" -msgstr "Wybrany profil pulpitu wymaga logowania normalnego użytkownika przez greeter" - -#, python-brace-format -msgid "Environment type: {} {}" -msgstr "Typ środowiska: {} {}" - -msgid "Input cannot be empty" -msgstr "Podana wartość nie może być pusta" +"X-Generator: Poedit 3.9\n" msgid "Recommended" msgstr "Rekomendowane" @@ -2200,34 +35,15 @@ msgstr "Pakiety w grupie" msgid "Minimal KDE Plasma installation" msgstr "Minimalistyczna instalacja KDE Plasma" +msgid "Type" +msgstr "Typ" + msgid "Description" msgstr "Opis" msgid "Select a flavor of KDE Plasma to install" msgstr "Wybierz rodzaj KDE Plasma do zainstalowania" -msgid "Arial/Times/Courier replacement, Cyrillic support for Steam/games" -msgstr "Zamiennik Arial/Times/Courier, obsługa Cyrylicy dla Steam/gier" - -msgid "wide Unicode coverage, good fallback font" -msgstr "szerokie wsparcie Unicode, dobra czczionka zastępcza" - -#, python-brace-format -msgid "Setting up U2F login: {u2f_config.u2f_login_method.value}" -msgstr "Ustawianie logowania U2F {u2f_config.u2f_login_method.value}" - -#, python-brace-format -msgid "Default: {DEFAULT_ITER_TIME}ms, Recommended range: 1000-60000" -msgstr "Domyślnie: {DEFAULT_ITER_TIME}ms, Rekomendowany przedział: 1000-60000" - -#, python-brace-format -msgid "Setting up U2F login: {}" -msgstr "Konfigurowanie logowania U2F: {}" - -#, python-brace-format -msgid "Default: {}ms, Recommended range: 1000-60000" -msgstr "Domyślnie: {}ms, Rekomendowany przedział: 1000-60000" - #, python-brace-format msgid "{} needs access to your seat" msgstr "{} potrzebuje dostępu do twojego seat'a" @@ -2239,33 +55,1126 @@ msgstr "zbiór urządzeń, t.j. klawiatura, myszka" msgid "Choose an option how to give {} access to your hardware" msgstr "Wybierz opcję, aby nadać {} dostęp do twojego sprzętu" -#~ msgid "When picking a directory to save configuration files to, by default we will ignore the following folders: " -#~ msgstr "Podczas wybierania katalogu do zapisywania plików konfiguracyjnych, domyślnie ignorowane są następujące foldery: " - -#~ msgid "" -#~ "Do you want to save {} configuration file(s) in the following locations?\n" -#~ "\n" -#~ "{}" -#~ msgstr "" -#~ "Czy chcesz zapisać {} plików konfiguracyjnych do następujących lokalizacji?\n" -#~ "\n" -#~ "{}" - -#~ msgid "Add :" -#~ msgstr "Dodaj :" - -#~ msgid "Value :" -#~ msgstr "Wartość :" +#, python-brace-format +msgid "Environment type: {} {}" +msgstr "Typ środowiska: {} {}" #, python-brace-format -#~ msgid "Edit {origkey} :" -#~ msgstr "Edytuj {origkey} :" +msgid "Environment type: {}" +msgstr "Typ środowiska: {}" -#~ msgid "Copy to :" -#~ msgstr "Kopiuj do :" +msgid "Installed packages" +msgstr "Zainstalowane pakiety" -#~ msgid "Edite :" -#~ msgstr "Edytuj :" +msgid "Bluetooth" +msgstr "Bluetooth" -#~ msgid "Key :" -#~ msgstr "Klucz :" +msgid "Audio" +msgstr "Audio" + +msgid "Print service" +msgstr "Usługa drukowania" + +msgid "Power management" +msgstr "Zarządzanie zasilaniem" + +msgid "Firewall" +msgstr "Zapora sieciowa" + +msgid "Additional fonts" +msgstr "Dodatkowe czcionki" + +msgid "Enabled" +msgstr "Włączone" + +msgid "Disabled" +msgstr "Wyłączone" + +msgid "Would you like to configure Bluetooth?" +msgstr "Czy chcesz skonfigurować Bluetooth?" + +msgid "Would you like to configure the print service?" +msgstr "Czy chcesz skonfigurować usługę drukowania?" + +msgid "Select audio configuration" +msgstr "Wybierz konfigurację audio" + +msgid "Select font packages to install" +msgstr "Wybierz pakiety czcionek do zainstalowania" + +msgid "ArchInstall Language" +msgstr "Język archinstall-a" + +msgid "Version" +msgstr "Wersja" + +msgid "Installation Script" +msgstr "Skrypt instalacyjny" + +msgid "Locales" +msgstr "Ustawienia regionalne (locale)" + +msgid "Disk configuration" +msgstr "Konfiguracja dysku" + +msgid "Profile" +msgstr "Profil" + +msgid "Mirrors and repositories" +msgstr "Serwery lustrzane i repozytoria" + +msgid "Network" +msgstr "Sieć" + +msgid "Bootloader" +msgstr "Program rozruchowy" + +msgid "Application" +msgstr "Aplikacja" + +msgid "Authentication" +msgstr "Uwierzytelnianie" + +msgid "Swap" +msgstr "Pamięć wymiany (swap)" + +msgid "Hostname" +msgstr "Nazwa hosta" + +msgid "Kernels" +msgstr "Jądra" + +msgid "Automatic time sync (NTP)" +msgstr "Automatyczna synchronizacja czasu (NTP)" + +msgid "Timezone" +msgstr "Strefa czasowa" + +msgid "Services" +msgstr "Usługi" + +msgid "Additional packages" +msgstr "Dodatkowe pakiety" + +msgid "Pacman" +msgstr "Pacman" + +msgid "Custom commands" +msgstr "Niestandardowe komendy" + +msgid "Users" +msgstr "Użytkownicy" + +msgid "Root encrypted password" +msgstr "Hasło szyfrowane roota" + +msgid "Disk encryption password" +msgstr "Hasło szyfrujące dysk" + +msgid "Incorrect credentials file decryption password" +msgstr "Niepoprawne hasło odszyfrowujące plik danych uwierzytelniających" + +msgid "Enter credentials file decryption password" +msgstr "Wprowadź hasło odszyfrowujące plik danych uwierzytelniających" + +msgid "Incorrect password" +msgstr "Niepoprawne hasło" + +#, python-brace-format +msgid "Setting up U2F login: {}" +msgstr "Konfigurowanie logowania U2F: {}" + +#, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "Konfigurowanie urządzenia U2F dla użytkownika: {}" + +msgid "You may need to enter the PIN and then touch your U2F device to register it" +msgstr "Prawdopodobnie będzie trzeba wprowadzić PIN oraz dotknąć urządzenia U2F, aby je zarejestrować" + +msgid "Root password" +msgstr "Hasło roota" + +msgid "User account" +msgstr "Konto użytkownika" + +msgid "U2F login setup" +msgstr "Konfiguracja logowania U2F" + +msgid "U2F login method: " +msgstr "Metoda logowania U2F: " + +msgid "Passwordless sudo: " +msgstr "Bezhasłowe sudo: " + +msgid "No U2F devices found" +msgstr "Nie znaleziono urządzeń U2F" + +msgid "Enter root password" +msgstr "Wprowadź hasło roota" + +msgid "Enable passwordless sudo?" +msgstr "Włączyć bezhasłowe sudo?" + +msgid "Unified kernel images" +msgstr "Ujednolicone obrazy jądra" + +msgid "Install to removable location" +msgstr "Zainstaluj do usuwalnej lokalizacji" + +msgid "Will install to /EFI/BOOT/ (removable location, safe default)" +msgstr "Zainstaluje do /EFI/BOOT/ (usuwalna lokalizacja, bezpieczna wartość domyślna)" + +msgid "Will install to custom location with NVRAM entry" +msgstr "Zainstaluje do niestandardowej lokalizacji z wpisem do NVRAM" + +msgid "Would you like to use unified kernel images?" +msgstr "Czy chcesz użyć ujednoliconych obrazów jądra?" + +msgid "Would you like to install the bootloader to the default removable media search location?" +msgstr "Czy chcesz zainstalować program rozruchowy do domyślnej lokalizacji wyszukiwania nośników wymiennych?" + +msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:" +msgstr "Instaluje program rozruchowy do /EFI/BOOT/BOOTX64.EFI (lub podobnie), co jest użyteczne w następujących sytuacjach:" + +msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards," +msgstr "Oprogramowanie układowe, które nie wspiera poprawnie wpisów rozruchowych w NVRAM, jak większość płyt głównych MSI," + +msgid "most Apple Macs, many laptops..." +msgstr "większość Apple Mac-ów, wiele laptopów..." + +msgid "USB drives or other portable external media." +msgstr "Dyski USB lub inne przenośne zewnętrzne nośniki." + +msgid "Systems where you want the disk to be bootable on any computer." +msgstr "Systemy, w których chcesz, by dysk był bootowalny na dowolnym komputerze." + +msgid "Select bootloader to install" +msgstr "Wybierz program rozruchowy do zainstalowania" + +msgid "UEFI is not detected and some options are disabled" +msgstr "Nie wykryto UEFI i niektóre opcje są wyłączone" + +msgid "The specified configuration will be applied" +msgstr "Podana konfiguracja zostanie zastosowana" + +msgid "Would you like to continue?" +msgstr "Czy chcesz kontynuować?" + +msgid "Configuration preview" +msgstr "Podgląd konfiguracji" + +msgid "No configuration" +msgstr "Brak konfiguracji" + +msgid "Save user configuration (including disk layout)" +msgstr "Zapisz konfigurację użytkownika (wraz z układem dysku)" + +msgid "Save user credentials" +msgstr "Zapisz dane uwierzytelniające użytkownika" + +msgid "Save all" +msgstr "Zapisz wszystko" + +msgid "Enter a directory for the configuration(s) to be saved" +msgstr "Wprowadź katalog, w którym ma zostać zapisana konfiguracja" + +#, python-brace-format +msgid "Do you want to save the configuration file(s) to {}?" +msgstr "Czy chcesz zapisać plik(i) konfiguracyjne do {}?" + +msgid "Do you want to encrypt the user_credentials.json file?" +msgstr "Czy chcesz zaszyfrować plik user_credentials.json?" + +msgid "Credentials file encryption password" +msgstr "Hasło szyfrujące plik danych uwierzytelniających" + +msgid "Partitioning" +msgstr "Partycjonowanie" + +msgid "Disk encryption" +msgstr "Szyfrowanie dysku" + +#, python-brace-format +msgid "Configuration type: {}" +msgstr "Typ konfiguracji: {}" + +msgid "Mountpoint" +msgstr "Punkt montowania" + +msgid "Configuration" +msgstr "Konfiguracja" + +msgid "Wipe" +msgstr "Wymaż" + +msgid "Physical volumes" +msgstr "Fizyczne woluminy" + +msgid "Volumes" +msgstr "Woluminy" + +#, python-brace-format +msgid "Snapshot type: {}" +msgstr "Typ migawki: {}" + +msgid "LVM disk encryption with more than 2 partitions is currently not supported" +msgstr "Szyfrowanie dysku LVM z więcej niż dwoma partycjami aktualnie nie jest wspierane" + +msgid "Encryption type" +msgstr "Typ szyfrowania" + +msgid "Password" +msgstr "Hasło" + +msgid "Iteration time" +msgstr "Czas iteracji" + +msgid "Select disks for the installation" +msgstr "Wybierz dyski dla tej instalacji" + +msgid "Partitions" +msgstr "Partycje" + +msgid "Select a disk configuration" +msgstr "Wybierz konfigurację dysku" + +msgid "Enter root mount directory" +msgstr "Wprowadź zamontowany katalog główny (root)" + +msgid "You will use whatever drive-setup is mounted at the specified directory" +msgstr "Użyjesz konfiguracji dysków zamontowanej w podanej ścieżce" + +msgid "WARNING: Archinstall won't check the suitability of this setup" +msgstr "OSTRZEŻENIE: Archinstall nie sprawdzi poprawności tej konfiguracji" + +msgid "Select main filesystem" +msgstr "Zmień główny system plików" + +msgid "Would you like to use compression or disable CoW?" +msgstr "Czy chcesz użyć kompresji lub wyłączyć CoW?" + +msgid "Use compression" +msgstr "Użyj kompresji" + +msgid "Disable Copy-on-Write" +msgstr "Wyłącz kopiowanie przy zapisie (Copy-on-Write)" + +msgid "Would you like to use BTRFS subvolumes with a default structure?" +msgstr "Czy chcesz użyć subwoluminów BTRFS z domyślną strukturą?" + +msgid "Would you like to create a separate partition for /home?" +msgstr "Czy chcesz stworzyć oddzielną partycje dla /home?" + +msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n" +msgstr "Wybrane dyski nie mają minimalnej wymaganej pojemności dla automatycznej sugestii\n" + +#, python-brace-format +msgid "Minimum capacity for /home partition: {}GiB\n" +msgstr "Maksymalna pojemność dla partycji /home: {}GiB\n" + +#, python-brace-format +msgid "Minimum capacity for Arch Linux partition: {}GiB" +msgstr "Minimalna pojemność dla partycji Arch Linux: {}GiB" + +msgid "Encryption password" +msgstr "Hasło szyfrujące" + +msgid "LVM volumes" +msgstr "Woluminy LVM" + +msgid "HSM" +msgstr "HSM" + +msgid "Partitions to be encrypted" +msgstr "Partycje do zaszyfrowania" + +msgid "LVM volumes to be encrypted" +msgstr "Woluminy LVM do zaszyfrowania" + +msgid "HSM device" +msgstr "Urządzenie HSM" + +msgid "Select encryption type" +msgstr "Wybierz typ szyfrowania" + +msgid "Enter disk encryption password (leave blank for no encryption)" +msgstr "Wprowadź hasło do szyfrowania dysku (pozostaw puste, aby nie szyfrować):" + +msgid "Select a FIDO2 device to use for HSM" +msgstr "Wybierz urządzenie FIDO2 do użycia z HSM" + +msgid "Enter iteration time for LUKS encryption (in milliseconds)" +msgstr "Wprowadź czas iteracji dla szyfrowania LUKS (w milisekundach)" + +msgid "Higher values increase security but slow down boot time" +msgstr "Wyższe wartości zwiększają bezpieczeństwo, ale spowalniają uruchamianie" + +#, python-brace-format +msgid "Default: {}ms, Recommended range: 1000-60000" +msgstr "Domyślnie: {}ms, Rekomendowany przedział: 1000-60000" + +msgid "Iteration time must be at least 100ms" +msgstr "Czas iteracji nie może być niższy niż 100ms" + +msgid "Iteration time must be at most 120000ms" +msgstr "Czas iteracji nie może być wyższy niż 120000ms" + +msgid "Please enter a valid number" +msgstr "Proszę wprowadzić poprawną liczbę" + +msgid "Suggest partition layout" +msgstr "Zasugeruj układ partycji" + +msgid "Remove all newly added partitions" +msgstr "Usuń wszystkie nowo dodane partycje" + +msgid "Assign mountpoint" +msgstr "Przydziel punkt montowania" + +msgid "Mark/Unmark to be formatted (wipes data)" +msgstr "Zaznacz/odznacz partycję do formatowania (wymazuje dane)" + +msgid "Mark/Unmark as bootable" +msgstr "Zaznacz/Odznacz jako bootowalne" + +msgid "Mark/Unmark as ESP" +msgstr "Zaznacz/Odznacz jako ESP" + +msgid "Mark/Unmark as XBOOTLDR" +msgstr "Zaznacz/Odznacz jako XBOOTLDR" + +msgid "Change filesystem" +msgstr "Zmień system plików" + +msgid "Mark/Unmark as compressed" +msgstr "Oznacz/odznacz partycje jako skompresowaną" + +msgid "Mark/Unmark as nodatacow" +msgstr "Zaznacz/Odznacz jako nodatacow" + +msgid "Set subvolumes" +msgstr "Ustaw subwolumin" + +msgid "Delete partition" +msgstr "Usuń partycję" + +#, python-brace-format +msgid "Partition management: {}" +msgstr "Zarządzanie partycją: {}" + +#, python-brace-format +msgid "Total length: {}" +msgstr "Całkowita długość: {}" + +msgid "Partition - New" +msgstr "Partycja - Nowa" + +msgid "Partition" +msgstr "Partycja" + +msgid "This partition is currently encrypted, to format it a filesystem has to be specified" +msgstr "Wybrana partycja jest zaszyfrowana. Żeby ją sformatować, wybierz system plików" + +msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example." +msgstr "Punkty montowania partycji są względne w stosunku do wnętrza instalacji, np. boot to /boot." + +msgid "Enter a mountpoint" +msgstr "Wprowadź punkt montowania" + +msgid "Invalid size" +msgstr "Niepoprawny rozmiar" + +#, python-brace-format +msgid "Selected free space segment on device {}:" +msgstr "Wybrany segment wolnego miejsca na urządzeniu {}:" + +#, python-brace-format +msgid "Size: {} / {}" +msgstr "Rozmiar: {} / {}" + +msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..." +msgstr "Do wszystkich wybranych wartości może być dopisana jednostka: % B, KB, KiB, MB, MiB..." + +msgid "If no unit is provided, the value is interpreted as sectors" +msgstr "Jeżeli jednostka nie zostanie podana, wartość zostanie zinterpretowana jako sektory" + +#, python-brace-format +msgid "Enter a size (default: {}): " +msgstr "Wprowadź rozmiar (domyślnie: {}): " + +msgid "This will remove all newly added partitions, continue?" +msgstr "To usunie wszystkie nowo dodane partycje, kontynuować?" + +msgid "Add subvolume" +msgstr "Dodaj subwolumin" + +msgid "Edit subvolume" +msgstr "Edytuj subwolumin" + +msgid "Delete subvolume" +msgstr "Usuń subwolumin" + +msgid "Value cannot be empty" +msgstr "Wartość nie może być pusta" + +msgid "Enter subvolume name" +msgstr "Wprowadź nazwę subwoluminu" + +msgid "Subvolume name" +msgstr "Nazwa subwoluminu" + +msgid "Enter subvolume mountpoint" +msgstr "Wprowadź punkt montowania subwoluminu" + +msgid "Exit archinstall" +msgstr "Zamknij archinstall-a" + +msgid "Reboot system" +msgstr "Uruchom ponownie system" + +msgid "chroot into installation for post-installation configurations" +msgstr "zchrootować do nowej instalacji i przeprowadzić dodatkową konfigurację" + +msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n" +msgstr "Czy chcesz korzystać z automatycznej synchronizacji czasu (NTP) z domyślnymi serwerami czasu?\n" + +msgid "" +"Hardware time and other post-configuration steps might be required in order for NTP to work.\n" +"For more information, please check the Arch wiki" +msgstr "" +"Aby NTP działał, może być wymagany czas sprzętowy i inne kroki po konfiguracji.\n" +"Aby uzyskać więcej informacji, proszę sprawdzić Arch wiki" + +msgid "Enter a hostname" +msgstr "Wprowadź nazwę hosta" + +msgid "Select timezone" +msgstr "Wybierz strefę czasową" + +msgid "What would you like to do next?" +msgstr "Co chcesz robić dalej?" + +msgid "Select which kernel(s) to install" +msgstr "Wybierz, które jądro/jądra zainstalować" + +msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options." +msgstr "Aby uzyskać najlepszą kompatybilność ze sprzętem AMD, warto skorzystać z opcji całkowicie open-source lub AMD / ATI." + +msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n" +msgstr "Aby uzyskać najlepszą kompatybilność ze sprzętem Intel, warto skorzystać z opcji całkowicie open-source lub Intel.\n" + +msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n" +msgstr "Aby uzyskać najlepszą kompatybilność ze sprzętem firmy Nvidia, warto skorzystać z własnościowego sterownika firmy Nvidia.\n" + +msgid "Would you like to use swap on zram?" +msgstr "Czy chcesz używać swap w zramie?" + +msgid "Select zram compression algorithm:" +msgstr "Wybierz algorytm kompresji zram:" + +msgid "Archinstall language" +msgstr "Język archinstall-a" + +msgid "Applications" +msgstr "Aplikacje" + +msgid "Network configuration" +msgstr "Konfiguracja sieci" + +msgid "Save configuration" +msgstr "Zapisz konfigurację" + +msgid "Install" +msgstr "Zainstaluj" + +msgid "Abort" +msgstr "Przerwij" + +msgid "Either root-password or at least 1 user with sudo privileges must be specified" +msgstr "Musisz podać hasło roota lub utworzyć co najmniej jednego superusera" + +msgid "The selected desktop profile requires a regular user to log in via the greeter" +msgstr "Wybrany profil pulpitu wymaga logowania normalnego użytkownika przez greeter" + +msgid "Language" +msgstr "Język" + +msgid "NTP" +msgstr "NTP" + +msgid "LVM configuration type" +msgstr "Typ konfiguracji LVM" + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "Typ migawki Btrfs: {}" + +msgid "Swap on zram" +msgstr "Swap na zram" + +msgid "Compression algorithm" +msgstr "Algorytm kompresji" + +msgid "Parallel Downloads" +msgstr "Pobieranie kilku plików jednocześnie" + +msgid "Color" +msgstr "Kolor" + +msgid "Kernel" +msgstr "Jądro" + +msgid "No network configuration selected. Network will need to be set up manually on the installed system." +msgstr "Nie wybrano konfiguracji sieci. Sieć musi zostać skonfigurowana ręcznie w zainstalowanym systemie." + +msgid "Missing configurations:" +msgstr "Brakujące konfiguracje:" + +msgid "Invalid configuration:" +msgstr "Niepoprawna konfiguracja:" + +msgid "Ready to install" +msgstr "Gotowe do zainstalowania" + +msgid "Warnings:" +msgstr "Uwagi:" + +msgid "Profiles" +msgstr "Profile" + +msgid "Graphics driver" +msgstr "Sterownik graficzny" + +msgid "Greeter" +msgstr "Greeter" + +msgid "Selected mirror regions" +msgstr "Wybrane regiony serwerów lustrzanych" + +msgid "Custom servers" +msgstr "Niestandardowe serwery lustrzane" + +msgid "Optional repositories" +msgstr "Opcjonalne repozytoria" + +msgid "Custom repositories" +msgstr "Niestandardowe repozytoria" + +#, python-brace-format +msgid "[!] A log file has been created here: {}" +msgstr "[!] Plik dziennika został zapisany tutaj: {}" + +msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues" +msgstr "Proszę zgłosić ten błąd (i dołączyć plik) pod adresem https://github.com/archlinux/archinstall/issues" + +msgid "Syncing the system..." +msgstr "Synchronizowanie systemu..." + +msgid "Waiting for time sync (timedatectl show) to complete." +msgstr "Oczekiwanie na synchronizację czasu (timedatectl show)." + +msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/" +msgstr "Synchronizacja czasu nie powodzi się. Oczekując - sprawdź dokumentację: https://archinstall.readthedocs.io/" + +msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)" +msgstr "Pomiń oczekiwanie na automatyczną synchronizację czasu (może spowodować problemy podczas instalacji)" + +msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete." +msgstr "Oczekiwanie na synchronizację Arch Linux keyring (archlinux-keyring-wkd-sync)." + +msgid "Keyboard layout" +msgstr "Układ klawiatury" + +msgid "Locale language" +msgstr "Język" + +msgid "Locale encoding" +msgstr "Kodowanie" + +msgid "Console font" +msgstr "Czcionka konsoli" + +msgid "Back" +msgstr "Wstecz" + +msgid "Are you sure you want to reset this setting?" +msgstr "Czy na pewno chcesz zresetować to ustawienie?" + +msgid "Confirm and exit" +msgstr "Potwierdź i wyjdź" + +msgid "Cancel" +msgstr "Anuluj" + +msgid "Password strength: Weak" +msgstr "Jakość hasła: Słabe" + +msgid "Password strength: Moderate" +msgstr "Jakość hasła: Średnie" + +msgid "Password strength: Strong" +msgstr "Jakość hasła: Mocne" + +msgid "Confirm password" +msgstr "Potwierdź hasło" + +msgid "The password did not match, please try again" +msgstr "Hasło nie jest poprawne, proszę spróbować jeszcze raz" + +msgid "Not a valid directory" +msgstr "Nieprawidłowy katalog" + +msgid "Do you really want to abort?" +msgstr "Czy na pewno chcesz przerwać?" + +msgid "Add a custom repository" +msgstr "Dodaj niestandardowe repozytorium" + +msgid "Change custom repository" +msgstr "Zmień niestandardowe repozytorium" + +msgid "Delete custom repository" +msgstr "Usuń niestandardowe repozytorium" + +msgid "Enter a repository name" +msgstr "Wprowadź nazwę repozytorium" + +msgid "Name" +msgstr "Nazwa" + +msgid "Enter the repository url" +msgstr "Wprowadź url repozytorium" + +msgid "Url" +msgstr "Url" + +msgid "Select signature check" +msgstr "Wybierz sprawdzanie podpisu" + +msgid "Signature check" +msgstr "Sprawdzanie podpisów" + +msgid "Select signature option" +msgstr "Wybierz opcję podpisu" + +msgid "Add a custom server" +msgstr "Dodaj niestandardowy serwer" + +msgid "Change custom server" +msgstr "Zmień niestandardowy serwer" + +msgid "Delete custom server" +msgstr "Usuń niestandardowy serwer" + +msgid "Enter server url" +msgstr "Wprowadź url serwera" + +msgid "Select regions" +msgstr "Wybierz regiony" + +msgid "Add custom servers" +msgstr "Dodaj niestandardowe serwery" + +msgid "Add custom repository" +msgstr "Dodaj niestandardowe repozytorium" + +msgid "Additional repositories" +msgstr "Dodatkowe repozytoria" + +msgid "Loading mirror regions..." +msgstr "Ładowanie regionów serwerów lustrzanych..." + +msgid "Select mirror regions to be enabled" +msgstr "Wybierz, które regiony serwerów lustrzanych chcesz włączyć" + +msgid "Select optional repositories to be enabled" +msgstr "Wybierz, które z opcjonalnych repozytoriów chcesz włączyć" + +msgid "Unicode font coverage for most languages" +msgstr "Wsparcie Unicode dla większości języków" + +msgid "color emoji for browsers and apps" +msgstr "kolorowe emoji dla przeglądarek i aplikacji" + +msgid "Chinese, Japanese, Korean characters" +msgstr "Chińskie, Japońskie, Koreańskie znaki" + +msgid "Arial/Times/Courier replacement, Cyrillic support for Steam/games" +msgstr "Zamiennik Arial/Times/Courier, obsługa Cyrylicy dla Steam/gier" + +msgid "wide Unicode coverage, good fallback font" +msgstr "szerokie wsparcie Unicode, dobra czczionka zastępcza" + +msgid "Zram enabled" +msgstr "Zram włączony" + +#, python-brace-format +msgid "Zram algorithm {}" +msgstr "Algorytm zram {}" + +msgid "Bluetooth enabled" +msgstr "Bluetooth włączony" + +#, python-brace-format +msgid "Audio server \"{}\"" +msgstr "Serwer dźwięku \"{}\"" + +#, python-brace-format +msgid "Power management \"{}\"" +msgstr "Zarządzanie zasilaniem \"{}\"" + +msgid "Print service enabled" +msgstr "Usługa drukowania włączona" + +#, python-brace-format +msgid "Firewall \"{}\"" +msgstr "Zapora sieciowa \"{}\"" + +#, python-brace-format +msgid "Extra fonts \"{}\"" +msgstr "Dodatkowe czcionki \"{}\"" + +msgid "Passwordless login" +msgstr "Logowanie bezhasłowe" + +msgid "Second factor login" +msgstr "Logowanie dwuskładnikowe" + +msgid "Root password set" +msgstr "Hasło roota ustawione" + +#, python-brace-format +msgid "Configured {} user(s)" +msgstr "Skonfigurowano {} użytkownika/ów" + +msgid "U2F set up" +msgstr "U2F skonfigurowane" + +#, python-brace-format +msgid "Bootloader \"{}\"" +msgstr "Program rozruchowy \"{}\"" + +msgid "UKI enabled" +msgstr "UKI włączone" + +msgid "Removable" +msgstr "Usuwalne" + +msgid "Use a best-effort default partition layout" +msgstr "Użyj najlepszego domyślnego układu partycji" + +msgid "Manual Partitioning" +msgstr "Ręczne partycjonowanie" + +msgid "Pre-mounted configuration" +msgstr "Wstępnie zamontowana konfiguracja" + +msgid "Default" +msgstr "Domyślne" + +msgid "Manual" +msgstr "Ręczne" + +msgid "Pre-mount" +msgstr "Wstępnie zamontowane" + +#, python-brace-format +msgid "{} layout" +msgstr "Układ {}" + +#, python-brace-format +msgid "Devices {}" +msgstr "Urządzenia {}" + +msgid "LVM set up" +msgstr "LVM skonfigurowane" + +#, python-brace-format +msgid "{} encryption" +msgstr "Szyfrowanie {}" + +#, python-brace-format +msgid "Btrfs snapshot \"{}\"" +msgstr "Migawka Btrfs \"{}\"" + +msgid "Unknown" +msgstr "Nieznane" + +msgid "Default layout" +msgstr "Domyślny układ" + +msgid "No Encryption" +msgstr "Brak szyfrowania" + +msgid "LUKS" +msgstr "LUKS" + +msgid "LVM on LUKS" +msgstr "LVM na LUKS" + +msgid "LUKS on LVM" +msgstr "LUKS na LVM" + +#, python-brace-format +msgid "Keyboard layout \"{}\"" +msgstr "Układ klawiatury \"{}\"" + +#, python-brace-format +msgid "Locale language \"{}\"" +msgstr "Locale (język) \"{}\"" + +#, python-brace-format +msgid "Locale encoding \"{}\"" +msgstr "Locale (kodowanie) \"{}\"" + +#, python-brace-format +msgid "Console font \"{}\"" +msgstr "Czcionka konsoli \"{}\"" + +#, python-brace-format +msgid "Mirror regions \"{}\"" +msgstr "Regiony serwerów lustrzanych \"{}\"" + +#, python-brace-format +msgid "Optional repositories \"{}\"" +msgstr "Opcjonalne repozytoria \"{}\"" + +msgid "Custom servers set up" +msgstr "Niestandardowe serwery lustrzane skonfigurowane" + +msgid "Custom repositories set up" +msgstr "Niestandardowe repozytoria skonfigurowane" + +msgid "Copy ISO network configuration to installation" +msgstr "Skopiuj ustawienia sieciowe z ISO do instalacji" + +msgid "Use Network Manager (default backend)" +msgstr "Użyj NetworkManager'a (domyślny backend)" + +msgid "Use Network Manager (iwd backend)" +msgstr "Użyj NetworkManager'a (backend iwd)" + +msgid "Use standalone iwd" +msgstr "Użyj samego iwd" + +msgid "Manual configuration" +msgstr "Ręczna konfiguracja" + +msgid "Package group:" +msgstr "Grupa pakietów:" + +msgid "Color enabled" +msgstr "Kolor włączony" + +#, python-brace-format +msgid "{} graphics driver" +msgstr "Sterownik graficzny {}" + +#, python-brace-format +msgid "{} greeter" +msgstr "Greeter {}" + +msgid "very weak" +msgstr "bardzo słabe" + +msgid "weak" +msgstr "słabe" + +msgid "moderate" +msgstr "umiarkowane" + +msgid "strong" +msgstr "silne" + +msgid "Add interface" +msgstr "Dodaj interfejs" + +msgid "Edit interface" +msgstr "Edytuj interfejs" + +msgid "Delete interface" +msgstr "Usuń interfejs" + +msgid "Select an interface" +msgstr "Wybierz interfejs" + +msgid "You need to enter a valid IP in IP-config mode" +msgstr "Musisz wprowadzić poprawny adres IP w trybie IP-config" + +#, python-brace-format +msgid "Select which mode to configure for \"{}\"" +msgstr "Wybierz który tryb ma być skonfigurowany dla \"{}\"" + +#, python-brace-format +msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " +msgstr "Wprowadź adres IP i podsieć dla {} (przykład: 192.168.0.5/24): " + +msgid "Enter your gateway (router) IP address (leave blank for none)" +msgstr "Wprowadź adres IP bramy sieciowej (routera) lub pozostaw puste:" + +msgid "Enter your DNS servers with space separated (leave blank for none)" +msgstr "Wpisz swoje serwery DNS (oddzielone spacjami, lub pozostaw puste):" + +msgid "Choose network configuration" +msgstr "Wybierz konfigurację sieci" + +msgid "Recommended: Network Manager for desktop, Manual for server" +msgstr "Rekomendowane: Network Manager dla desktopów, ręcznie dla serwerów" + +msgid "Configure interfaces" +msgstr "Konfiguruj interfejsy" + +msgid "No network connection found" +msgstr "Brak połączenia z siecią" + +msgid "Would you like to connect to a Wifi?" +msgstr "Czy chcesz połączyć się z Wifi?" + +msgid "No wifi interface found" +msgstr "Nie znaleziono interfejsu wifi" + +msgid "No wifi networks found" +msgstr "Nie znaleziono sieci wifi" + +msgid "Select wifi network to connect to" +msgstr "Wybierz sieć wifi do połączenia się" + +msgid "Scanning wifi networks..." +msgstr "Skanowanie sieci wifi..." + +msgid "Failed setting up wifi" +msgstr "Nie udało się skonfigurować wifi" + +msgid "Enter wifi password" +msgstr "Wprowadź hasło do wifi" + +#, python-brace-format +msgid "Repositories: {}" +msgstr "Repozytoria: {}" + +msgid "Loading packages..." +msgstr "Ładowanie pakietów..." + +msgid "No packages found" +msgstr "Nie znaleziono pakietów" + +msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed." +msgstr "Instalowane są tylko pakiety takie jak base, sudo, linux, linux-firmware, efibootmgr i opcjonalne pakiety profili." + +msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools." +msgstr "Uwaga: base-devel nie jest już domyślnie instalowane. Dodaj je tutaj, jeżeli potrzebujesz narzędzi do budowania pakietów." + +msgid "Select any packages from the below list that should be installed additionally" +msgstr "Wybierz pakiety z poniższej listy, które powinne być dodatkowo zainstalowane" + +#, python-brace-format +msgid "Enter the number of parallel downloads (1-{})" +msgstr "Wprowadź maksymalną liczbę plików pobieranych jednocześnie (1-{})" + +#, python-brace-format +msgid "Value must be between 1 and {}" +msgstr "Wartość musi być pomiędzy 1 a {}" + +msgid "Enable colored output for pacman" +msgstr "Włącz kolory w pacmanie" + +msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate." +msgstr "Pacman jest już uruchomiony, czekam maksymalnie 10 minut na zakończenie pracy." + +msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall." +msgstr "Istniejąca wcześniej blokada pacmana nie została zakończona. Proszę wyczyścić wszystkie istniejące sesje pacmana przed użyciem archinstall-a." + +msgid "The proprietary Nvidia driver is not supported by Sway." +msgstr "Własnościowy sterownik Nvidia nie jest wspierany przez Sway." + +msgid "It is likely that you will run into issues, are you okay with that?" +msgstr "Prawdopodobnie wystąpią problemy, czy chcesz kontynuować?" + +msgid "Selected profiles: " +msgstr "Wybrane profile: " + +msgid "Select which greeter to install" +msgstr "Wybierz, który greeter zainstalować" + +msgid "Select a profile type" +msgstr "Wybierz typ profilu" + +#, python-brace-format +msgid "Unable to fetch profile from specified url: {}" +msgstr "Nie można pobrać profilu z podanego url: {}" + +#, python-brace-format +msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" +msgstr "Profile muszą mieć unikalne nazwy, a znaleziono istniejący profil o tej nazwie: {}" + +msgid "Add a user" +msgstr "Dodaj użytkownika" + +msgid "Change password" +msgstr "Zmień hasło" + +msgid "Promote/Demote user" +msgstr "Promuj/degraduj użytkownika" + +msgid "Delete User" +msgstr "Usuń użytkownika" + +msgid "User" +msgstr "Użytkownik" + +msgid "Enter new password" +msgstr "Wprowadź nowe hasło" + +msgid "The username you entered is invalid" +msgstr "Wprowadzona nazwa użytkownika jest nieprawidłowa" + +msgid "Enter a username" +msgstr "Wprowadź nazwę użytkownika" + +msgid "Username" +msgstr "Nazwa użytkownika" + +msgid "Enter a password" +msgstr "Wprowadź hasło" + +#, python-brace-format +msgid "Should \"{}\" be a superuser (sudo)?\n" +msgstr "Czy \"{}\" powinien być superuserem (mieć uprawnienia sudo)?\n" + +#, python-brace-format +msgid "About to upload \"{}\" to the publicly accessible {}" +msgstr "Zaraz rozpocznie się przesyłanie \"{}\" do publicznie dostępnego {}" + +msgid "Do you want to continue?" +msgstr "Czy chcesz kontynuować?" + +#, python-brace-format +msgid "Log uploaded successfully. URL: {}" +msgstr "Dziennik przesłano pomyślnie. URL: {}" + +msgid "Failed to upload log." +msgstr "Nie udało się przesłać dziennika." + +msgid "Archinstall requires root privileges to run. See --help for more." +msgstr "Archinstall wymaga uprawnień roota do uruchomienia. Użyj --help, aby uzyskać więcej informacji." + +msgid "New version available" +msgstr "Nowa wersja dostępna" + +msgid "Starting device modifications in " +msgstr "Wprowadzanie zmian do urządzeń w " + +msgid "Ok" +msgstr "Ok" + +msgid "Input cannot be empty" +msgstr "Podana wartość nie może być pusta" + +msgid "Yes" +msgstr "Tak" + +msgid "No" +msgstr "Nie" + +msgid " (default)" +msgstr " (domyślne)" From 8ce24868464e92e2183fb34d705745e714b0699d Mon Sep 17 00:00:00 2001 From: Softer Date: Tue, 9 Jun 2026 09:46:46 +0300 Subject: [PATCH 16/17] Update Ukrainian translation (#4580) --- archinstall/locales/uk/LC_MESSAGES/base.mo | Bin 87112 -> 91540 bytes archinstall/locales/uk/LC_MESSAGES/base.po | 159 +++++++++++++++++++++ 2 files changed, 159 insertions(+) diff --git a/archinstall/locales/uk/LC_MESSAGES/base.mo b/archinstall/locales/uk/LC_MESSAGES/base.mo index 7c0230e6ed8ccd09d2990c53220d643d0f3325d4..26cd6bdba7f822a7f585e142046228e9f08ff755 100644 GIT binary patch delta 18317 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 MH_})7nf{jZfA!?T4*&oF diff --git a/archinstall/locales/uk/LC_MESSAGES/base.po b/archinstall/locales/uk/LC_MESSAGES/base.po index fab48b2b..06bfe3ff 100644 --- a/archinstall/locales/uk/LC_MESSAGES/base.po +++ b/archinstall/locales/uk/LC_MESSAGES/base.po @@ -2230,3 +2230,162 @@ msgstr "Налаштування входу з пристроєм двофакт #, python-brace-format msgid "Default: {}ms, Recommended range: 1000-60000" msgstr "Стандартно: {}мс, Рекомендований діапазон - 1000-60000" + +msgid "ArchInstall Language" +msgstr "Мова ArchInstall" + +msgid "Version" +msgstr "Версія" + +msgid "Installation Script" +msgstr "Скрипт встановлення" + +msgid "Application" +msgstr "Додаток" + +msgid "Services" +msgstr "Служби" + +msgid "Custom commands" +msgstr "Користувацькі команди" + +msgid "Users" +msgstr "Користувачі" + +msgid "Root encrypted password" +msgstr "Зашифрований пароль root" + +msgid "Audio server \"{}\"" +msgstr "Аудіосервер \"{}\"" + +msgid "Firewall \"{}\"" +msgstr "Брандмауер \"{}\"" + +msgid "Bootloader \"{}\"" +msgstr "Завантажувач \"{}\"" + +msgid "Power management \"{}\"" +msgstr "Керування живленням \"{}\"" + +msgid "Btrfs snapshot \"{}\"" +msgstr "Знімок Btrfs \"{}\"" + +msgid "Keyboard layout \"{}\"" +msgstr "Розкладка клавіатури \"{}\"" + +msgid "Locale language \"{}\"" +msgstr "Мова локалізації \"{}\"" + +msgid "Locale encoding \"{}\"" +msgstr "Кодування локалізації \"{}\"" + +msgid "Console font \"{}\"" +msgstr "Шрифт консолі \"{}\"" + +msgid "Mirror regions \"{}\"" +msgstr "Регіони дзеркал \"{}\"" + +msgid "Optional repositories \"{}\"" +msgstr "Необов'язкові репозиторії \"{}\"" + +msgid "Extra fonts \"{}\"" +msgstr "Додаткові шрифти \"{}\"" + +msgid "Bluetooth enabled" +msgstr "Bluetooth увімкнено" + +msgid "Color enabled" +msgstr "Колір увімкнено" + +msgid "Print service enabled" +msgstr "Службу друку увімкнено" + +msgid "Zram enabled" +msgstr "Zram увімкнено" + +msgid "UKI enabled" +msgstr "UKI увімкнено" + +msgid "Root password set" +msgstr "Пароль root встановлено" + +msgid "U2F set up" +msgstr "U2F налаштовано" + +msgid "LVM set up" +msgstr "LVM налаштовано" + +msgid "Custom servers set up" +msgstr "Користувацькі сервери налаштовано" + +msgid "Custom repositories set up" +msgstr "Користувацькі репозиторії налаштовано" + +msgid "Configured {} user(s)" +msgstr "Налаштовано користувачів: {}" + +msgid "Zram algorithm {}" +msgstr "Алгоритм Zram {}" + +msgid "Devices {}" +msgstr "Пристрої {}" + +msgid "{} grphics driver" +msgstr "Графічний драйвер {}" + +msgid "{} encryption" +msgstr "Шифрування {}" + +msgid "{} layout" +msgstr "Розмітка {}" + +msgid "{} greeter" +msgstr "Менеджер входу {}" + +msgid "About to upload \"{}\" to the publicly accessible {}" +msgstr "Зараз \"{}\" буде вивантажено на загальнодоступний {}" + +msgid "Log uploaded successfully. URL: {}" +msgstr "Журнал успішно вивантажено. URL: {}" + +msgid "Failed to upload log." +msgstr "Не вдалося вивантажити журнал." + +msgid "Manual" +msgstr "Вручну" + +msgid "Pre-mount" +msgstr "Передмонтування" + +msgid "Default" +msgstr "Типово" + +msgid "Warnings:" +msgstr "Попередження:" + +msgid "Missing configurations:" +msgstr "Відсутні конфігурації:" + +msgid "Invalid configuration:" +msgstr "Неправильна конфігурація:" + +msgid "Do you want to continue?" +msgstr "Бажаєте продовжити?" + +msgid "Enter a repository name" +msgstr "Введіть назву репозиторію" + +msgid "Use standalone iwd" +msgstr "Використовувати автономний iwd" + +msgid "{} needs access to your seat" +msgstr "{} потребує доступу до вашого seat" + +msgid "Choose an option how to give {} access to your hardware" +msgstr "Виберіть, як надати {} доступ до вашого обладнання" + +msgid "collection of hardware devices i.e. keyboard, mouse" +msgstr "набір апаратних пристроїв, напр. клавіатура, миша" + +msgid "No network configuration selected. Network will need to be set up manually on the installed system." +msgstr "Конфігурацію мережі не обрано. Мережу доведеться налаштувати вручну на встановленій системі." From c6cb7b319d1878e1c9cc008d33c3aa5c5857d3ff Mon Sep 17 00:00:00 2001 From: Daniel Girtler Date: Tue, 9 Jun 2026 17:08:38 +1000 Subject: [PATCH 17/17] Removing pot file freshness check (#4576) --- archinstall/locales/locales_generator.sh | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/archinstall/locales/locales_generator.sh b/archinstall/locales/locales_generator.sh index 18977dfc..cc8d1b02 100755 --- a/archinstall/locales/locales_generator.sh +++ b/archinstall/locales/locales_generator.sh @@ -70,25 +70,10 @@ cmd_check_no_tr_fstring() { echo "No tr(f-string) anti-pattern found." } -cmd_check_pot_freshness() { - # msgcmp (not diff) because base.pot carries legacy stale entries from - # --join-existing; diff would always fail until a full cleanup is done. - echo "Checking base.pot for missing strings..." - find . -type f -iname '*.py' | sort \ - | xargs xgettext --no-location --omit-header --keyword='tr' \ - -d base -o /tmp/generated.pot - if ! msgcmp --use-untranslated locales/base.pot /tmp/generated.pot; then - echo "ERROR: base.pot is missing strings - run: locales_generator.sh all" >&2 - return 1 - fi - echo "base.pot contains all translatable strings." -} - cmd_check() { local failed=0 cmd_check_po_syntax || failed=1 cmd_check_no_tr_fstring || failed=1 - cmd_check_pot_freshness || failed=1 if [ "$failed" -eq 1 ]; then echo "Some translation checks failed." >&2 exit 1