diff --git a/.github/workflows/translation-check.yaml b/.github/workflows/translation-check.yaml
deleted file mode 100644
index 3cd4d14c..00000000
--- a/.github/workflows/translation-check.yaml
+++ /dev/null
@@ -1,28 +0,0 @@
-#on:
-# push:
-# paths:
-# - 'archinstall/locales/**'
-# pull_request:
-# paths:
-# - 'archinstall/locales/**'
-#name: Verify local_generate script was run on translation changes
-#jobs:
-# translation-check:
-# runs-on: ubuntu-latest
-# container:
-# image: archlinux/archlinux:latest
-# steps:
-# - uses: actions/checkout@v4
-# - run: pacman --noconfirm -Syu python git diffutils
-# - name: Verify all translation scripts are up to date
-# run: |
-# cd ..
-# cp -r archinstall archinstall_orig
-# cd archinstall/archinstall/locales
-# bash locales_generator.sh 1> /dev/null
-# cd ../../..
-# git diff \
-# --quiet --no-index --name-only \
-# archinstall_orig/archinstall/locales \
-# archinstall/archinstall/locales \
-# || (echo "Translation files have not been updated after translation, please run ./locales_generator.sh once more and commit" && exit 1)
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 22adc703..7ee79056 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.11
+ rev: v0.15.12
hooks:
# fix unused imports and sort them
- id: ruff
@@ -31,7 +31,7 @@ repos:
args: [--config=.flake8]
fail_fast: true
- repo: https://github.com/pre-commit/mirrors-mypy
- rev: v1.20.1
+ rev: v1.20.2
hooks:
- id: mypy
args: [
diff --git a/README.md b/README.md
index 1447c263..95d15702 100644
--- a/README.md
+++ b/README.md
@@ -179,7 +179,7 @@ This can be done by installing `pacman -S arch-install-scripts util-linux` local
# losetup --partscan --show ./testimage.img
# pip install --upgrade archinstall
# python -m archinstall --script guided
- # qemu-system-x86_64 -enable-kvm -machine q35,accel=kvm -device intel-iommu -cpu host -m 4096 -boot order=d -drive file=./testimage.img,format=raw -drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/OVMF.4m.fd -drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/OVMF.4m.fd
+ # qemu-system-x86_64 -enable-kvm -machine q35,accel=kvm -device intel-iommu -cpu host -m 4096 -boot order=d -drive file=./testimage.img,format=raw -drive if=pflash,format=raw,readonly,file=/usr/share/edk2/x64/OVMF_CODE.4m.fd -drive if=pflash,format=raw,readonly,file=/usr/share/edk2/x64/OVMF_VARS.4m.fd
This will create a *20 GB* `testimage.img` and create a loop device which we can use to format and install to.
`archinstall` is installed and executed in [guided mode](#docs-todo). Once the installation is complete, ~~you can use qemu/kvm to boot the test media.~~
@@ -199,8 +199,8 @@ You may want to boot an ISO image in a VM to test `archinstall` in there.
qemu-system-x86_64 -enable-kvm \
-machine q35,accel=kvm -device intel-iommu \
-cpu host -m 4096 -boot order=d \
--drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/OVMF.4m.fd \
--drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/OVMF.4m.fd \
+-drive if=pflash,format=raw,readonly,file=/usr/share/edk2/x64/OVMF_CODE.4m.fd \
+-drive if=pflash,format=raw,readonly,file=/usr/share/edk2/x64/OVMF_VARS.4m.fd \
-drive file=./archlinux-2025.12.01-x86_64.iso,format=raw
```
@@ -209,8 +209,8 @@ HINT: For espeakup support
qemu-system-x86_64 -enable-kvm \
-machine q35,accel=kvm -device intel-iommu \
-cpu host -m 4096 -boot order=d \
--drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/OVMF.4m.fd \
--drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/OVMF.4m.fd \
+-drive if=pflash,format=raw,readonly,file=/usr/share/edk2/x64/OVMF_CODE.4m.fd \
+-drive if=pflash,format=raw,readonly,file=/usr/share/edk2/x64/OVMF_VARS.4m.fd \
-drive file=./archlinux-2025.12.01-x86_64.iso,format=raw \
-device intel-hda -device hda-duplex,audiodev=snd0 \
-audiodev pa,id=snd0,server=/run/user/1000/pulse/native
@@ -219,6 +219,10 @@ qemu-system-x86_64 -enable-kvm \
# FAQ
+## AUR
+
+`archinstall` will not offer or bundle AUR helpers or AUR packages due to a current consensus. This is not any individual developers decision. The reasons and discussions for this stance on the topic can be found on our mailing list thread: [(optional) AUR helper in archinstall](https://lists.archlinux.org/archives/list/arch-dev-public@lists.archlinux.org/thread/VYOULH2GOJLFM2BXOFLWH3D754YXFPSL/).
+
## Keyring out-of-date
For a description of the problem see https://archinstall.archlinux.page/help/known_issues.html#keyring-is-out-of-date-2213 and discussion in issue https://github.com/archlinux/archinstall/issues/2213.
diff --git a/archinstall/default_profiles/desktops/budgie.py b/archinstall/default_profiles/desktops/budgie.py
index e6680b7a..f156a53b 100644
--- a/archinstall/default_profiles/desktops/budgie.py
+++ b/archinstall/default_profiles/desktops/budgie.py
@@ -9,7 +9,7 @@ class BudgieProfile(Profile):
'Budgie',
ProfileType.DesktopEnv,
support_gfx_driver=True,
- display_server=DisplayServerType.Xorg,
+ display_server=DisplayServerType.Wayland,
)
@property
@@ -18,12 +18,12 @@ class BudgieProfile(Profile):
return [
'materia-gtk-theme',
'budgie',
- 'mate-terminal',
- 'nemo',
+ 'konsole',
+ 'dolphin',
'papirus-icon-theme',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
- return GreeterType.LightdmSlick
+ return GreeterType.Sddm
diff --git a/archinstall/lib/args.py b/archinstall/lib/args.py
index 79441a06..77545736 100644
--- a/archinstall/lib/args.py
+++ b/archinstall/lib/args.py
@@ -21,6 +21,7 @@ from archinstall.lib.models.device import DiskEncryption, DiskLayoutConfiguratio
from archinstall.lib.models.locale import LocaleConfiguration
from archinstall.lib.models.mirrors import MirrorConfiguration
from archinstall.lib.models.network import NetworkConfiguration
+from archinstall.lib.models.package_types import DEFAULT_KERNEL
from archinstall.lib.models.packages import Repository
from archinstall.lib.models.pacman import PacmanConfiguration
from archinstall.lib.models.profile import ProfileConfiguration
@@ -71,7 +72,7 @@ class ArchConfig:
auth_config: AuthenticationConfiguration | None = None
swap: ZramConfiguration | None = None
hostname: str = 'archlinux'
- kernels: list[str] = field(default_factory=lambda: ['linux'])
+ kernels: list[str] = field(default_factory=lambda: [DEFAULT_KERNEL.value])
ntp: bool = True
packages: list[str] = field(default_factory=list)
pacman_config: PacmanConfiguration = field(default_factory=PacmanConfiguration.default)
diff --git a/archinstall/lib/bootloader/utils.py b/archinstall/lib/bootloader/utils.py
new file mode 100644
index 00000000..ed761722
--- /dev/null
+++ b/archinstall/lib/bootloader/utils.py
@@ -0,0 +1,86 @@
+from dataclasses import dataclass
+from enum import Enum, auto
+from pathlib import Path
+
+from archinstall.lib.hardware import SysInfo
+from archinstall.lib.models.bootloader import Bootloader, BootloaderConfiguration
+from archinstall.lib.models.device import DiskLayoutConfiguration
+
+
+class BootloaderValidationFailureKind(Enum):
+ LimineNonFatBoot = auto()
+ LimineLayout = auto()
+ BootloaderRequiresUefi = auto()
+ EfistubNonFatBoot = auto()
+
+
+@dataclass(frozen=True)
+class BootloaderValidationFailure:
+ kind: BootloaderValidationFailureKind
+ description: str
+
+
+def validate_bootloader_layout(
+ bootloader_config: BootloaderConfiguration | None,
+ disk_config: DiskLayoutConfiguration | None,
+) -> BootloaderValidationFailure | None:
+ """Validate bootloader configuration against disk layout.
+
+ Returns a failure with a human-readable description if the configuration
+ would produce an unbootable system, or None if it is valid.
+ """
+ if not (bootloader_config and disk_config):
+ return None
+
+ bootloader = bootloader_config.bootloader
+
+ if bootloader == Bootloader.NO_BOOTLOADER:
+ return None
+
+ if bootloader.is_uefi_only() and not SysInfo.has_uefi():
+ return BootloaderValidationFailure(
+ kind=BootloaderValidationFailureKind.BootloaderRequiresUefi,
+ description=f'{bootloader.value} requires a UEFI system.',
+ )
+
+ boot_part = next(
+ (p for m in disk_config.device_modifications if (p := m.get_boot_partition())),
+ None,
+ )
+
+ if bootloader == Bootloader.Efistub:
+ # The UEFI firmware reads the kernel directly from the boot partition,
+ # which must be FAT.
+ if boot_part and (boot_part.fs_type is None or not boot_part.fs_type.is_fat()):
+ return BootloaderValidationFailure(
+ kind=BootloaderValidationFailureKind.EfistubNonFatBoot,
+ description='Efistub does not support booting with a non-FAT boot partition.',
+ )
+
+ if bootloader == Bootloader.Limine:
+ # Limine reads its config and kernels from the boot partition, which
+ # must be FAT.
+ if boot_part and (boot_part.fs_type is None or not boot_part.fs_type.is_fat()):
+ return BootloaderValidationFailure(
+ kind=BootloaderValidationFailureKind.LimineNonFatBoot,
+ description='Limine does not support booting with a non-FAT boot partition.',
+ )
+
+ # When the ESP is the boot partition but mounted outside /boot and
+ # UKI is disabled, kernels end up on the root filesystem which
+ # Limine cannot access.
+ if not bootloader_config.uki:
+ efi_part = next(
+ (p for m in disk_config.device_modifications if (p := m.get_efi_partition())),
+ None,
+ )
+ if efi_part and efi_part == boot_part and efi_part.mountpoint != Path('/boot'):
+ return BootloaderValidationFailure(
+ kind=BootloaderValidationFailureKind.LimineLayout,
+ description=(
+ f'Limine requires kernels on a FAT partition. The ESP is mounted at {efi_part.mountpoint}, '
+ 'enable UKI or add a separate /boot partition to install Limine.'
+ ),
+ )
+
+ return None
diff --git a/archinstall/lib/command.py b/archinstall/lib/command.py
index a9d65cb0..b99854d2 100644
--- a/archinstall/lib/command.py
+++ b/archinstall/lib/command.py
@@ -44,8 +44,8 @@ class SysCommandWorker:
self._trace_log_pos = 0
self.poll_object = epoll()
self.child_fd: int | None = None
- self.started: float | None = None
- self.ended: float | 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:
@@ -117,7 +117,7 @@ class SysCommandWorker:
def is_alive(self) -> bool:
self.poll()
- if self.started and self.ended is None:
+ if self.started and not self.ended:
return True
return False
@@ -173,11 +173,11 @@ class SysCommandWorker:
self.peak(output)
self._trace_log += output
except OSError:
- self.ended = time.time()
+ self.ended = True
break
if self.ended or (not got_output and not _pid_exists(self.pid)):
- self.ended = time.time()
+ self.ended = True
try:
wait_status = os.waitpid(self.pid, 0)[1]
self.exit_code = os.waitstatus_to_exitcode(wait_status)
@@ -215,7 +215,7 @@ class SysCommandWorker:
# Only parent process moves back to the original working directory
os.chdir(old_dir)
- self.started = time.time()
+ self.started = True
self.poll_object.register(self.child_fd, EPOLLIN | EPOLLHUP)
return True
diff --git a/archinstall/lib/configuration.py b/archinstall/lib/configuration.py
index 2a73330e..3e9135bf 100644
--- a/archinstall/lib/configuration.py
+++ b/archinstall/lib/configuration.py
@@ -10,6 +10,7 @@ from archinstall.lib.args import ArchConfig
from archinstall.lib.crypt import encrypt
from archinstall.lib.menu.helpers import Confirmation, Selection
from archinstall.lib.menu.util import get_password, prompt_dir
+from archinstall.lib.models.bootloader import Bootloader
from archinstall.lib.models.network import NetworkConfiguration
from archinstall.lib.output import debug, logger, warn
from archinstall.lib.translationhandler import tr
@@ -59,6 +60,70 @@ class ConfigurationOutput:
debug(' -- Chosen configuration --')
debug(self.user_config_to_json())
+ def as_summary(self) -> str:
+ """
+ Render a concise two-column summary of the current configuration.
+
+ The left column holds section labels, the right column holds values.
+ Column width adapts to the longest translated label so translations
+ do not break the alignment. Rows whose underlying config is not set
+ are skipped.
+
+ Returns an empty string if nothing meaningful to show.
+ """
+ rows: list[tuple[str, str]] = []
+
+ disk_config = self._config.disk_config
+ if disk_config and disk_config.device_modifications:
+ disk_parts: list[str] = []
+ for mod in disk_config.device_modifications:
+ path = str(mod.device_path)
+ root_part = mod.get_root_partition()
+ flags: list[str] = []
+ if root_part and root_part.fs_type:
+ flags.append(root_part.fs_type.value)
+ if disk_config.disk_encryption:
+ flags.append(tr('LUKS'))
+ disk_parts.append(f'{path} ({" + ".join(flags)})' if flags else path)
+ rows.append((tr('Disks'), ', '.join(disk_parts)))
+
+ bl_config = self._config.bootloader_config
+ if bl_config and bl_config.bootloader != Bootloader.NO_BOOTLOADER:
+ rows.append((tr('Bootloader'), bl_config.bootloader.value))
+
+ kernels = self._config.kernels
+ if kernels:
+ rows.append((tr('Kernel'), ', '.join(kernels)))
+
+ profile_config = self._config.profile_config
+ if profile_config and profile_config.profile:
+ names = profile_config.profile.current_selection_names()
+ rows.append((tr('Profile'), ', '.join(names) if names else profile_config.profile.name))
+ if profile_config.greeter:
+ rows.append((tr('Greeter'), profile_config.greeter.value))
+
+ packages = self._config.packages
+ if packages:
+ rows.append((tr('Packages'), str(len(packages))))
+
+ net_config = self._config.network_config
+ if isinstance(net_config, NetworkConfiguration):
+ rows.append((tr('Network'), net_config.type.display_msg()))
+
+ locale_config = self._config.locale_config
+ if locale_config:
+ rows.append((tr('Locale'), locale_config.sys_lang))
+
+ tz = self._config.timezone
+ if tz:
+ rows.append((tr('Timezone'), tz))
+
+ if not rows:
+ return ''
+
+ label_width = max(len(label) for label, _ in rows) + 2
+ return '\n'.join(f'{label:<{label_width}}{value}' for label, value in rows)
+
async def confirm_config(self, show_install_warnings: bool = False) -> bool:
header = f'{tr("The specified configuration will be applied")}. '
header += tr('Would you like to continue?') + '\n'
diff --git a/archinstall/lib/disk/device_handler.py b/archinstall/lib/disk/device_handler.py
index 7ac05a31..2e51d3d2 100644
--- a/archinstall/lib/disk/device_handler.py
+++ b/archinstall/lib/disk/device_handler.py
@@ -250,7 +250,7 @@ class DeviceHandler:
case FilesystemType.EXT2 | FilesystemType.EXT3 | FilesystemType.EXT4:
# Force create
options.append('-F')
- case FilesystemType.FAT12 | FilesystemType.FAT16 | FilesystemType.FAT32:
+ case _ if fs_type.is_fat():
mkfs_type = 'fat'
# Set FAT size
options.extend(('-F', fs_type.value.removeprefix(mkfs_type)))
diff --git a/archinstall/lib/general/system_menu.py b/archinstall/lib/general/system_menu.py
index 5c4d4634..7fa0d1f2 100644
--- a/archinstall/lib/general/system_menu.py
+++ b/archinstall/lib/general/system_menu.py
@@ -3,29 +3,24 @@ from typing import assert_never
from archinstall.lib.hardware import GfxDriver, SysInfo
from archinstall.lib.menu.helpers import Confirmation, Selection
from archinstall.lib.models.application import ZramAlgorithm, ZramConfiguration
+from archinstall.lib.models.package_types import DEFAULT_KERNEL, Kernel
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType
-async def select_kernel(preset: list[str] = []) -> list[str]:
+async def select_kernel(preset: list[Kernel] = []) -> list[Kernel]:
"""
Asks the user to select a kernel for system.
:return: The string as a selected kernel
:rtype: string
"""
- kernels = ['linux', 'linux-lts', 'linux-zen', 'linux-hardened']
- default_kernel = 'linux'
+ group = MenuItemGroup.from_enum(Kernel, sort_items=True, preset=preset)
+ group.set_default_by_value(DEFAULT_KERNEL)
+ group.set_focus_by_value(DEFAULT_KERNEL)
- items = [MenuItem(k, value=k) for k in kernels]
-
- group = MenuItemGroup(items, sort_items=True)
- group.set_default_by_value(default_kernel)
- group.set_focus_by_value(default_kernel)
- group.set_selected_by_value(preset)
-
- result = await Selection[str](
+ result = await Selection[Kernel](
group,
header=tr('Select which kernel(s) to install'),
allow_skip=True,
diff --git a/archinstall/lib/global_menu.py b/archinstall/lib/global_menu.py
index 2baef93d..cdd820a9 100644
--- a/archinstall/lib/global_menu.py
+++ b/archinstall/lib/global_menu.py
@@ -5,7 +5,8 @@ from archinstall.lib.applications.application_menu import ApplicationMenu
from archinstall.lib.args import ArchConfig
from archinstall.lib.authentication.authentication_menu import AuthenticationMenu
from archinstall.lib.bootloader.bootloader_menu import BootloaderMenu
-from archinstall.lib.configuration import save_config
+from archinstall.lib.bootloader.utils import validate_bootloader_layout
+from archinstall.lib.configuration import ConfigurationOutput, save_config
from archinstall.lib.disk.disk_menu import DiskLayoutConfigurationMenu
from archinstall.lib.general.general_menu import select_hostname, select_ntp, select_timezone
from archinstall.lib.general.system_menu import select_kernel, select_swap
@@ -17,10 +18,11 @@ from archinstall.lib.mirror.mirror_menu import MirrorMenu
from archinstall.lib.models.application import ApplicationConfiguration, ZramConfiguration
from archinstall.lib.models.authentication import AuthenticationConfiguration
from archinstall.lib.models.bootloader import Bootloader, BootloaderConfiguration
-from archinstall.lib.models.device import DiskLayoutConfiguration, DiskLayoutType, FilesystemType, PartitionModification
+from archinstall.lib.models.device import DiskLayoutConfiguration, DiskLayoutType, PartitionModification
from archinstall.lib.models.locale import LocaleConfiguration
from archinstall.lib.models.mirrors import MirrorConfiguration
from archinstall.lib.models.network import NetworkConfiguration, NicType
+from archinstall.lib.models.package_types import DEFAULT_KERNEL
from archinstall.lib.models.packages import Repository
from archinstall.lib.models.pacman import PacmanConfiguration
from archinstall.lib.models.profile import ProfileConfiguration
@@ -102,7 +104,7 @@ class GlobalMenu(AbstractMenu[None]):
),
MenuItem(
text=tr('Kernels'),
- value=['linux'],
+ value=[DEFAULT_KERNEL],
action=select_kernel,
preview_action=self._prev_kernel,
mandatory=True,
@@ -460,8 +462,6 @@ class GlobalMenu(AbstractMenu[None]):
if not bootloader_config or bootloader_config.bootloader == Bootloader.NO_BOOTLOADER:
return None
- bootloader = bootloader_config.bootloader
-
if disk_config := self._item_group.find_by_key('disk_config').value:
for layout in disk_config.device_modifications:
if root_partition := layout.get_root_partition():
@@ -486,16 +486,11 @@ class GlobalMenu(AbstractMenu[None]):
if efi_partition is None:
return 'EFI system partition (ESP) not found'
- if efi_partition.fs_type not in [FilesystemType.FAT12, FilesystemType.FAT16, FilesystemType.FAT32]:
+ if efi_partition.fs_type is None or not efi_partition.fs_type.is_fat():
return 'ESP must be formatted as a FAT filesystem'
- if bootloader == Bootloader.Limine:
- if boot_partition.fs_type not in [FilesystemType.FAT12, FilesystemType.FAT16, FilesystemType.FAT32]:
- return 'Limine does not support booting with a non-FAT boot partition'
-
- elif bootloader == Bootloader.Refind:
- if not self._uefi:
- return 'rEFInd can only be used on UEFI systems'
+ if failure := validate_bootloader_layout(bootloader_config, disk_config):
+ return failure.description
return None
@@ -509,7 +504,11 @@ class GlobalMenu(AbstractMenu[None]):
if error := self._validate_bootloader():
return tr(f'Invalid configuration: {error}')
- return 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')
def _prev_profile(self, item: MenuItem) -> str | None:
profile_config: ProfileConfiguration | None = item.value
diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py
index 973e80ac..ca98fdb9 100644
--- a/archinstall/lib/installer.py
+++ b/archinstall/lib/installer.py
@@ -12,6 +12,7 @@ from types import TracebackType
from typing import Any, Self
from archinstall.lib.boot import Boot
+from archinstall.lib.bootloader.utils import validate_bootloader_layout
from archinstall.lib.command import SysCommand, run
from archinstall.lib.disk.fido import Fido2
from archinstall.lib.disk.luks import Luks2, unlock_luks2_dev
@@ -30,7 +31,7 @@ from archinstall.lib.linux_path import LPath
from archinstall.lib.locale.utils import verify_keyboard_layout, verify_x11_keyboard_layout
from archinstall.lib.mirror.mirror_handler import MirrorListHandler
from archinstall.lib.models.application import ZramAlgorithm
-from archinstall.lib.models.bootloader import Bootloader
+from archinstall.lib.models.bootloader import Bootloader, BootloaderConfiguration
from archinstall.lib.models.device import (
DiskEncryption,
DiskLayoutConfiguration,
@@ -47,6 +48,7 @@ from archinstall.lib.models.device import (
from archinstall.lib.models.locale import LocaleConfiguration
from archinstall.lib.models.mirrors import MirrorConfiguration
from archinstall.lib.models.network import Nic
+from archinstall.lib.models.package_types import DEFAULT_KERNEL, Kernel
from archinstall.lib.models.packages import Repository
from archinstall.lib.models.pacman import PacmanConfiguration
from archinstall.lib.models.users import User
@@ -59,7 +61,7 @@ from archinstall.lib.plugins import plugins
from archinstall.lib.translationhandler import tr
# Any package that the Installer() is responsible for (optional and the default ones)
-__packages__ = ['base', 'sudo', 'linux-firmware', 'linux', 'linux-lts', 'linux-zen', 'linux-hardened']
+__packages__ = ['base', 'sudo', 'linux-firmware'] + [k.value for k in Kernel]
# Additional packages that are installed if the user is running the Live ISO with accessibility tools enabled
__accessibility_packages__ = ['brltty', 'espeakup', 'alsa-utils']
@@ -79,7 +81,7 @@ class Installer:
It also wraps :py:func:`~archinstall.Installer.pacstrap` among other things.
"""
self._base_packages = base_packages or __packages__[:3]
- self.kernels = kernels or ['linux']
+ self.kernels = kernels or [DEFAULT_KERNEL.value]
self._disk_config = disk_config
self._disk_encryption = disk_config.disk_encryption or DiskEncryption(EncryptionType.NO_ENCRYPTION)
@@ -738,6 +740,9 @@ class Installer:
return self.run_command(cmd, peek_output=peek_output)
+ def _chroot_argv(self, *args: str) -> list[str]:
+ return ['arch-chroot', '-S', str(self.target), *args]
+
def drop_to_shell(self) -> None:
subprocess.check_call(f'arch-chroot {self.target}', shell=True)
@@ -986,17 +991,7 @@ class Installer:
}
for config_name, mountpoint in snapper.items():
- command = [
- 'arch-chroot',
- '-S',
- str(self.target),
- 'snapper',
- '--no-dbus',
- '-c',
- config_name,
- 'create-config',
- mountpoint,
- ]
+ command = self._chroot_argv('snapper', '--no-dbus', '-c', config_name, 'create-config', mountpoint)
try:
SysCommand(command, peek_output=True)
@@ -1335,13 +1330,7 @@ class Installer:
boot_dir = Path('/boot')
- command = [
- 'arch-chroot',
- '-S',
- str(self.target),
- 'grub-install',
- '--debug',
- ]
+ command = self._chroot_argv('grub-install', '--debug')
if SysInfo.has_uefi():
if not efi_partition:
@@ -1466,6 +1455,14 @@ class Installer:
elif not efi_partition.mountpoint:
raise ValueError('EFI partition is not mounted')
+ # Safety net for programmatic callers that bypass GlobalMenu and
+ # guided.py validation.
+ if failure := validate_bootloader_layout(
+ BootloaderConfiguration(bootloader=Bootloader.Limine, uki=uki_enabled),
+ self._disk_config,
+ ):
+ raise DiskError(failure.description)
+
info(f'Limine EFI partition: {efi_partition.dev_path}')
parent_dev_path = get_parent_device_path(efi_partition.safe_dev_path)
@@ -1476,15 +1473,11 @@ class Installer:
if bootloader_removable:
efi_dir_path = efi_dir_path / 'BOOT'
efi_dir_path_target = efi_dir_path_target / 'BOOT'
-
- boot_limine_path = self.target / 'boot' / 'limine'
- boot_limine_path.mkdir(parents=True, exist_ok=True)
- config_path = boot_limine_path / 'limine.conf'
else:
efi_dir_path = efi_dir_path / 'arch-limine'
efi_dir_path_target = efi_dir_path_target / 'arch-limine'
- config_path = efi_dir_path / 'limine.conf'
+ config_path = efi_dir_path / 'limine.conf'
efi_dir_path.mkdir(parents=True, exist_ok=True)
@@ -1917,16 +1910,17 @@ class Installer:
if not handled_by_plugin:
info(f'Creating user {user.username}')
- cmd = 'useradd -m'
+ cmd = self._chroot_argv('useradd', '-m')
if user.sudo:
- cmd += ' -G wheel'
+ cmd += ['-G', 'wheel']
- cmd += f' {user.username}'
+ cmd += ['--', user.username]
try:
- self.arch_chroot(cmd)
- except SysCallError as err:
+ run(cmd)
+ except CalledProcessError as err:
+ debug(f'Error creating user {user.username}: {err}')
raise SystemError(f'Could not create user inside installation: {err}')
for plugin in plugins.values():
@@ -1937,7 +1931,11 @@ class Installer:
self.set_user_password(user)
for group in user.groups:
- self.arch_chroot(f'gpasswd -a {user.username} {group}')
+ cmd = self._chroot_argv('gpasswd', '-a', user.username, group)
+ try:
+ run(cmd)
+ except CalledProcessError as err:
+ warn(f'Failed to add {user.username} to group {group}: {err}')
if user.sudo:
self.enable_sudo(user)
@@ -1952,7 +1950,7 @@ class Installer:
return False
input_data = f'{user.username}:{enc_password}'.encode()
- cmd = ['arch-chroot', '-S', str(self.target), 'chpasswd', '--encrypted']
+ cmd = self._chroot_argv('chpasswd', '--encrypted')
try:
run(cmd, input_data=input_data)
@@ -1964,7 +1962,7 @@ class Installer:
def user_set_shell(self, user: str, shell: str) -> bool:
info(f'Setting shell for {user} to {shell}')
- cmd = ['arch-chroot', '-S', str(self.target), 'chsh', '-s', shell, user]
+ cmd = self._chroot_argv('chsh', '-s', shell, user)
try:
run(cmd)
return True
@@ -1974,7 +1972,7 @@ class Installer:
def chown(self, owner: str, path: str, options: list[str] | None = None) -> bool:
options = options or []
- cmd = ['arch-chroot', '-S', str(self.target), 'chown', *options, owner, path]
+ cmd = self._chroot_argv('chown', *options, '--', owner, path)
try:
run(cmd)
return True
@@ -1985,12 +1983,10 @@ class Installer:
def set_vconsole(self, locale_config: LocaleConfiguration) -> None:
# use the already set kb layout
kb_vconsole: str = locale_config.kb_layout
- # this is the default used in ISO other option for hdpi screens TER16x32
- # can be checked using
- # zgrep "CONFIG_FONT" /proc/config.gz
- # https://wiki.archlinux.org/title/Linux_console#Fonts
+ font_vconsole = locale_config.console_font
- font_vconsole = 'default8x16'
+ if font_vconsole.startswith('ter-'):
+ self.pacman.strap(['terminus-font'])
# Ensure /etc exists
vconsole_dir: Path = self.target / 'etc'
diff --git a/archinstall/lib/locale/locale_menu.py b/archinstall/lib/locale/locale_menu.py
index c03824a1..dc743fd3 100644
--- a/archinstall/lib/locale/locale_menu.py
+++ b/archinstall/lib/locale/locale_menu.py
@@ -1,6 +1,6 @@
from typing import override
-from archinstall.lib.locale.utils import list_keyboard_languages, list_locales, set_kb_layout
+from archinstall.lib.locale.utils import list_console_fonts, list_keyboard_languages, list_locales, set_kb_layout
from archinstall.lib.menu.abstract_menu import AbstractSubMenu
from archinstall.lib.menu.helpers import Selection
from archinstall.lib.models.locale import LocaleConfiguration
@@ -47,6 +47,13 @@ class LocaleMenu(AbstractSubMenu[LocaleConfiguration]):
preview_action=lambda item: item.get_value(),
key='sys_enc',
),
+ MenuItem(
+ text=tr('Console font'),
+ action=select_console_font,
+ value=self._locale_conf.console_font,
+ preview_action=lambda item: item.get_value(),
+ key='console_font',
+ ),
]
@override
@@ -140,3 +147,25 @@ async def select_kb_layout(preset: str | None = None) -> str | None:
return preset
case _:
raise ValueError('Unhandled return type')
+
+
+async def select_console_font(preset: str | None = None) -> str | None:
+ fonts = list_console_fonts()
+
+ items = [MenuItem(f, value=f) for f in fonts]
+ group = MenuItemGroup(items, sort_items=False)
+ group.set_focus_by_value(preset)
+
+ result = await Selection[str](
+ header=tr('Console font'),
+ group=group,
+ enable_filter=True,
+ ).show()
+
+ match result.type_:
+ case ResultType.Selection:
+ return result.get_value()
+ case ResultType.Skip:
+ return preset
+ case _:
+ raise ValueError('Unhandled return type')
diff --git a/archinstall/lib/locale/utils.py b/archinstall/lib/locale/utils.py
index e7229160..497e1fcb 100644
--- a/archinstall/lib/locale/utils.py
+++ b/archinstall/lib/locale/utils.py
@@ -1,3 +1,6 @@
+from functools import lru_cache
+from pathlib import Path
+
from archinstall.lib.command import SysCommand
from archinstall.lib.exceptions import ServiceException, SysCallError
from archinstall.lib.output import error
@@ -26,6 +29,13 @@ def list_locales() -> list[str]:
return locales
+@lru_cache
+def list_console_fonts() -> list[str]:
+ directory = Path('/usr/share/kbd/consolefonts')
+ fonts = {path.name.split('.')[0] for path in directory.glob('*.gz')}
+ return sorted(fonts)
+
+
def list_x11_keyboard_languages() -> list[str]:
return (
SysCommand(
diff --git a/archinstall/lib/models/bootloader.py b/archinstall/lib/models/bootloader.py
index 68c0bf98..5d8d0d80 100644
--- a/archinstall/lib/models/bootloader.py
+++ b/archinstall/lib/models/bootloader.py
@@ -25,6 +25,13 @@ class Bootloader(Enum):
case _:
return False
+ def is_uefi_only(self) -> bool:
+ match self:
+ case Bootloader.Systemd | Bootloader.Efistub | Bootloader.Refind:
+ return True
+ case _:
+ return False
+
def json(self) -> str:
return self.value
diff --git a/archinstall/lib/models/device.py b/archinstall/lib/models/device.py
index 3015833d..7fa05407 100644
--- a/archinstall/lib/models/device.py
+++ b/archinstall/lib/models/device.py
@@ -802,6 +802,9 @@ class FilesystemType(StrEnum):
def is_crypto(self) -> bool:
return self == FilesystemType.CRYPTO_LUKS
+ def is_fat(self) -> bool:
+ return self in (FilesystemType.FAT12, FilesystemType.FAT16, FilesystemType.FAT32)
+
@property
def parted_value(self) -> str:
return self.value + '(v1)' if self == FilesystemType.LINUX_SWAP else self.value
diff --git a/archinstall/lib/models/locale.py b/archinstall/lib/models/locale.py
index 15dee2f6..8f580989 100644
--- a/archinstall/lib/models/locale.py
+++ b/archinstall/lib/models/locale.py
@@ -10,6 +10,11 @@ class LocaleConfiguration:
kb_layout: str
sys_lang: str
sys_enc: str
+ # this is the default used in ISO other option for hdpi screens TER16x32
+ # can be checked using
+ # zgrep "CONFIG_FONT" /proc/config.gz
+ # https://wiki.archlinux.org/title/Linux_console#Font
+ console_font: str = 'default8x16'
@classmethod
def default(cls) -> Self:
@@ -23,12 +28,14 @@ class LocaleConfiguration:
'kb_layout': self.kb_layout,
'sys_lang': self.sys_lang,
'sys_enc': self.sys_enc,
+ 'console_font': self.console_font,
}
def preview(self) -> str:
output = '{}: {}\n'.format(tr('Keyboard layout'), self.kb_layout)
output += '{}: {}\n'.format(tr('Locale language'), self.sys_lang)
- output += '{}: {}'.format(tr('Locale encoding'), self.sys_enc)
+ output += '{}: {}\n'.format(tr('Locale encoding'), self.sys_enc)
+ output += '{}: {}'.format(tr('Console font'), self.console_font)
return output
def _load_config(self, args: dict[str, str]) -> None:
@@ -38,6 +45,8 @@ class LocaleConfiguration:
self.sys_enc = args['sys_enc']
if 'kb_layout' in args:
self.kb_layout = args['kb_layout']
+ if 'console_font' in args:
+ self.console_font = args['console_font']
@classmethod
def parse_arg(cls, args: dict[str, Any]) -> Self:
diff --git a/archinstall/lib/models/package_types.py b/archinstall/lib/models/package_types.py
new file mode 100644
index 00000000..e314c30a
--- /dev/null
+++ b/archinstall/lib/models/package_types.py
@@ -0,0 +1,12 @@
+from enum import StrEnum, auto
+from typing import Final
+
+
+class Kernel(StrEnum):
+ LINUX = auto()
+ LINUX_LTS = 'linux-lts'
+ LINUX_ZEN = 'linux-zen'
+ LINUX_HARDENED = 'linux-hardened'
+
+
+DEFAULT_KERNEL: Final = Kernel.LINUX
diff --git a/archinstall/lib/models/users.py b/archinstall/lib/models/users.py
index 8fda6888..92546076 100644
--- a/archinstall/lib/models/users.py
+++ b/archinstall/lib/models/users.py
@@ -36,67 +36,66 @@ class PasswordStrength(Enum):
case PasswordStrength.STRONG:
return 'green'
- @classmethod
- def strength(cls, password: str) -> Self:
+ @staticmethod
+ def strength(password: str) -> PasswordStrength:
digit = any(character.isdigit() for character in password)
upper = any(character.isupper() for character in password)
lower = any(character.islower() for character in password)
symbol = any(not character.isalnum() for character in password)
- return cls._check_password_strength(digit, upper, lower, symbol, len(password))
+ return PasswordStrength._check_password_strength(digit, upper, lower, symbol, len(password))
- @classmethod
+ @staticmethod
def _check_password_strength(
- cls,
digit: bool,
upper: bool,
lower: bool,
symbol: bool,
length: int,
- ) -> Self:
+ ) -> PasswordStrength:
# suggested evaluation
# https://github.com/archlinux/archinstall/issues/1304#issuecomment-1146768163
if digit and upper and lower and symbol:
match length:
case num if 13 <= num:
- return cls.STRONG
+ return PasswordStrength.STRONG
case num if 11 <= num <= 12:
- return cls.MODERATE
+ return PasswordStrength.MODERATE
case num if 7 <= num <= 10:
- return cls.WEAK
+ return PasswordStrength.WEAK
case num if num <= 6:
- return cls.VERY_WEAK
+ return PasswordStrength.VERY_WEAK
elif digit and upper and lower:
match length:
case num if 14 <= num:
- return cls.STRONG
+ return PasswordStrength.STRONG
case num if 11 <= num <= 13:
- return cls.MODERATE
+ return PasswordStrength.MODERATE
case num if 7 <= num <= 10:
- return cls.WEAK
+ return PasswordStrength.WEAK
case num if num <= 6:
- return cls.VERY_WEAK
+ return PasswordStrength.VERY_WEAK
elif upper and lower:
match length:
case num if 15 <= num:
- return cls.STRONG
+ return PasswordStrength.STRONG
case num if 12 <= num <= 14:
- return cls.MODERATE
+ return PasswordStrength.MODERATE
case num if 7 <= num <= 11:
- return cls.WEAK
+ return PasswordStrength.WEAK
case num if num <= 6:
- return cls.VERY_WEAK
+ return PasswordStrength.VERY_WEAK
elif lower or upper:
match length:
case num if 18 <= num:
- return cls.STRONG
+ return PasswordStrength.STRONG
case num if 14 <= num <= 17:
- return cls.MODERATE
+ return PasswordStrength.MODERATE
case num if 9 <= num <= 13:
- return cls.WEAK
+ return PasswordStrength.WEAK
case num if num <= 8:
- return cls.VERY_WEAK
+ return PasswordStrength.VERY_WEAK
- return cls.VERY_WEAK
+ return PasswordStrength.VERY_WEAK
UserSerialization = TypedDict(
diff --git a/archinstall/locales/base.pot b/archinstall/locales/base.pot
index 1c6ba2ee..f0b311d4 100644
--- a/archinstall/locales/base.pot
+++ b/archinstall/locales/base.pot
@@ -252,6 +252,9 @@ msgstr ""
msgid "Locale encoding"
msgstr ""
+msgid "Console font"
+msgstr ""
+
msgid "Drive(s)"
msgstr ""
@@ -641,8 +644,8 @@ msgid ""
msgstr ""
msgid ""
-"Provides a selection of desktop environments and tiling window managers, "
-"e.g. gnome, kde, sway"
+"Provides a selection of desktop environments and tiling window managers, e."
+"g. gnome, kde, sway"
msgstr ""
msgid "Select your desired desktop environment"
@@ -1245,6 +1248,21 @@ msgstr ""
msgid "Invalid configuration: {error}"
msgstr ""
+msgid "Ready to install"
+msgstr ""
+
+msgid "Disks"
+msgstr ""
+
+msgid "Packages"
+msgstr ""
+
+msgid "Network"
+msgstr ""
+
+msgid "Locale"
+msgstr ""
+
msgid "Type"
msgstr ""
@@ -1331,8 +1349,8 @@ msgid "Disable Copy-on-Write"
msgstr ""
msgid ""
-"Provides a selection of desktop environments and tiling window managers, "
-"e.g. GNOME, KDE Plasma, Sway"
+"Provides a selection of desktop environments and tiling window managers, e."
+"g. GNOME, KDE Plasma, Sway"
msgstr ""
#, python-brace-format
@@ -2259,3 +2277,11 @@ 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 ""
diff --git a/archinstall/locales/es/LC_MESSAGES/base.mo b/archinstall/locales/es/LC_MESSAGES/base.mo
index 3c3993f7..5701d454 100644
Binary files a/archinstall/locales/es/LC_MESSAGES/base.mo and b/archinstall/locales/es/LC_MESSAGES/base.mo differ
diff --git a/archinstall/locales/es/LC_MESSAGES/base.po b/archinstall/locales/es/LC_MESSAGES/base.po
index d311804c..d4300a4f 100644
--- a/archinstall/locales/es/LC_MESSAGES/base.po
+++ b/archinstall/locales/es/LC_MESSAGES/base.po
@@ -54,7 +54,7 @@ msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr
msgstr "Solo paquetes como base, base-devel, 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 build."
+msgstr "Nota: base-devel ya no viene instalado por defecto. Agreguelo aquí si necesita herramientas de compilación."
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."
@@ -173,7 +173,7 @@ msgid "Enter a desired filesystem type for the partition: "
msgstr "Ingrese un tipo de sistema de archivos deseado para la partición: "
msgid "Archinstall language"
-msgstr "Idioma de Archinstall"
+msgstr "Idioma de archinstall"
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"
@@ -197,7 +197,7 @@ msgid "Select one or more hard drives to use and configure"
msgstr "Seleccione uno o más discos duros para usar y configurar"
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."
+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"
@@ -218,7 +218,7 @@ 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é kernel usar o déjelo en blanco para usar el kernel \"{}\" predeterminado"
+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"
@@ -382,7 +382,7 @@ 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 deshabilitar root): "
+msgstr "Ingrese la contraseña de root (deje en blanco para desactivar root): "
msgid "Password for user \"{}\": "
msgstr "Contraseña para el usuario “{}”: "
@@ -454,7 +454,7 @@ msgid "Pre-existing pacman lock never exited. Please clean up any existing pacma
msgstr "El bloqueo de pacman preexistente nunca se cerró. Limpie cualquier sesión de pacman existente antes de usar archinstall."
msgid "Choose which optional additional repositories to enable"
-msgstr "Elija qué repositorios adicionales opcionales habilitar"
+msgstr "Elija qué repositorios adicionales opcionales activar"
msgid "Add a user"
msgstr "Añadir un usuario"
@@ -489,7 +489,7 @@ 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"
+msgstr "Establecer los subvolúmenes deseados en una partición BTRFS"
msgid ""
"{}\n"
@@ -501,7 +501,7 @@ msgstr ""
"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"
+msgstr "Administrar subvolúmenes BTRFS para la partición actual"
msgid "No configuration"
msgstr "Sin configuración"
@@ -650,7 +650,7 @@ msgid "Manual configuration"
msgstr "Configuración manual"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
-msgstr "Marcar/Desmarcar una partición como comprimida (solo btrfs)"
+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?"
@@ -665,7 +665,7 @@ msgid "A very basic installation that allows you to customize Arch Linux as you
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 habilitar, p.e. 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"
@@ -799,45 +799,45 @@ msgid "Configured {} interfaces"
msgstr "Interfaces {} configuradas"
msgid "This option enables the number of parallel downloads that can occur during installation"
-msgstr "Esta opción habilita la cantidad de descargas paralelas que pueden ocurrir durante la instalación"
+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 habilitarán.\n"
+"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 : {} ( Habilita {} descargas paralelas, permite {} descargas simultáneas )"
+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 ( Habilita 1 descarga paralela, permite 2 descargas simultáneas )"
+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 " - Deshabilitar/Predeterminado : 0 ( Deshabilita la descarga paralela, permite solo 1 descarga simultánea )"
+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 deshabilitar]"
+msgstr "¡Entrada no válida! Intente nuevamente con una entrada válida [1 a {max_downloads}, o 0 para desactivar]"
msgid "Parallel Downloads"
msgstr "Descargas paralelas"
msgid "Pacman"
-msgstr ""
+msgstr "Pacman"
msgid "Color"
-msgstr ""
+msgstr "Color"
-#, fuzzy, python-brace-format
+#, python-brace-format
msgid "Enter the number of parallel downloads (1-{})"
-msgstr "Ingrese el número de descargas paralelas que desea habilitar"
+msgstr "Ingrese el número de descargas paralelas (1-{})"
msgid "Enable colored output for pacman"
-msgstr ""
+msgstr "Activa salida a color para pacman"
msgid "ESC to skip"
msgstr "ESC para omitir"
@@ -975,7 +975,7 @@ 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 "Por defecto: 10000ms, Rango recomendado 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"
@@ -1073,10 +1073,10 @@ msgid "Packages to be install with this profile (space separated, leave blank to
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 habilitarán con este perfil (separados por espacios, deje en blanco para omitir): "
+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 habilitarse este perfil para la instalación?"
+msgstr "¿Debería activarse este perfil para la instalación?"
msgid "Create your own"
msgstr "Crear tu propio"
@@ -1158,7 +1158,7 @@ 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 habilitado)\n"
+"Ingrese un directorio para guardar las configuraciones (completar con tabulación activado)\n"
"Guardar directorio: "
msgid ""
@@ -1180,10 +1180,10 @@ 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 : {} ( Habilita {} descargas paralelas, permite {max_downloads+1} descargas simultáneas )"
+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 deshabilitar]"
+msgstr "¡Entrada no válida! Intente nuevamente con una entrada válida [1 a {}, o 0 para desactivar]"
msgid "Locales"
msgstr "Localidades"
@@ -1226,26 +1226,26 @@ msgid "Type"
msgstr "Tipo"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
-msgstr "Esta opción habilita la cantidad de descargas paralelas que pueden ocurrir durante las descargas de paquetes"
+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 habilitarán.\n"
+"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 )"
+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 " - Deshabilitar/Predeterminado : 0 ( Deshabilita la descarga paralela, permite solo 1 descarga simultánea )\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 deshabilitar]"
+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.)"
@@ -1263,10 +1263,10 @@ 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 kernel unificadas?"
+msgstr "¿Le gustaría utilizar imágenes del núcleo unificadas?"
msgid "Unified kernel images"
-msgstr "Imágenes del kernel unificadas"
+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)."
@@ -1449,7 +1449,7 @@ 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 puerta de enlace"
+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)"
@@ -1464,7 +1464,7 @@ 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 deshabilitadas"
+msgstr "No se detecta UEFI y algunas opciones están desactivadas"
msgid "Info"
msgstr "Info"
@@ -1494,17 +1494,17 @@ 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 habilitado)"
+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 "Habilitado"
+msgstr "Activado"
msgid "Disabled"
-msgstr "Deshabilitado"
+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"
@@ -1681,137 +1681,121 @@ msgid "Exit search mode"
msgstr "Salir del modo de búsqueda"
msgid "General"
-msgstr ""
+msgstr "General"
-#, fuzzy
msgid "Navigation"
-msgstr "Guardar configuración"
+msgstr "Navegación"
-#, fuzzy
msgid "Selection"
-msgstr "Seleccione regiones"
+msgstr "Selección"
msgid "Search"
-msgstr ""
+msgstr "Buscar"
msgid "Down"
-msgstr ""
+msgstr "Abajo"
msgid "Up"
-msgstr ""
+msgstr "Arriba"
-#, fuzzy
msgid "Confirm"
-msgstr "Confirmar y salir"
+msgstr "Confirmar"
-#, fuzzy
msgid "Focus right"
-msgstr "Mover a la derecha"
+msgstr "Enfocar a la derecha"
-#, fuzzy
msgid "Focus left"
-msgstr "Mover a la izquierda"
+msgstr "Enfocar a la izquierda"
msgid "Toggle"
-msgstr ""
+msgstr "Alternar"
-#, fuzzy
msgid "Show/Hide help"
-msgstr "Mostrar ayuda"
+msgstr "Mostrar/Ocultar ayuda"
msgid "Quit"
-msgstr ""
+msgstr "Salir"
msgid "First"
-msgstr ""
+msgstr "Primero"
msgid "Last"
-msgstr ""
+msgstr "Último"
-#, fuzzy
msgid "Select"
-msgstr "Seleccione regiones"
+msgstr "Seleccionar"
msgid "Page Up"
-msgstr ""
+msgstr "Subir página"
msgid "Page Down"
-msgstr ""
+msgstr "Bajar página"
-#, fuzzy
msgid "Page up"
-msgstr "Grupo de paquetes:"
+msgstr "Subir página"
-#, fuzzy
msgid "Page down"
-msgstr "Bajar"
+msgstr "Bajar página"
msgid "Page Left"
-msgstr ""
+msgstr "Página izquierda"
-#, fuzzy
msgid "Page Right"
-msgstr "Mover a la derecha"
+msgstr "Página derecha"
msgid "Cursor up"
-msgstr ""
+msgstr "Subir"
-#, fuzzy
msgid "Cursor down"
-msgstr "Bajar"
+msgstr "Cursor hacia abajo"
-#, fuzzy
msgid "Cursor right"
-msgstr "Mover a la derecha"
+msgstr "Cursor hacia la derecha"
-#, fuzzy
msgid "Cursor left"
-msgstr "Mover a la izquierda"
+msgstr "Cursor hacia la izquierda"
msgid "Top"
-msgstr ""
+msgstr "Arriba"
msgid "Bottom"
-msgstr ""
+msgstr "Abajo"
msgid "Home"
-msgstr ""
+msgstr "Inicio"
-#, fuzzy
msgid "End"
-msgstr "Habilitado"
+msgstr "Final"
-#, fuzzy
msgid "Toggle option"
-msgstr "Opciones del subvolumen"
+msgstr "Opción de alternancia"
msgid "Scroll Up"
-msgstr ""
+msgstr "Mover Arriba"
-#, fuzzy
msgid "Scroll Down"
-msgstr "Bajar en vista previa"
+msgstr "Deslizar hacia abajo"
msgid "Scroll Left"
-msgstr ""
+msgstr "Mover hacia la izquierda"
msgid "Scroll Right"
-msgstr ""
+msgstr "Mover hacia la derecha"
msgid "Scroll Home"
-msgstr ""
+msgstr "Ir al Inicio"
msgid "Scroll End"
-msgstr ""
+msgstr "Ir al Final"
msgid "Focus Next"
-msgstr ""
+msgstr "Enfocar a la siguiente"
msgid "Focus Previous"
-msgstr ""
+msgstr "Enfocar a la anterior"
msgid "Copy selected text"
-msgstr ""
+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.)"
@@ -1838,7 +1822,7 @@ msgid "Reboot system"
msgstr "Reiniciar el sistema"
msgid "chroot into installation for post-installation configurations"
-msgstr "chroot en la instalación para configuraciones posteriores a la instalación"
+msgstr "Hacer chroot en la instalación para configuraciones posteriores a la instalación"
msgid "Installation completed"
msgstr "Instalación completada"
@@ -1907,7 +1891,7 @@ msgstr "Sudo sin contraseña: "
#, python-brace-format
msgid "Btrfs snapshot type: {}"
-msgstr "Tipo de snapshot Btrfs: {}"
+msgstr "Tipo de instantánea BTRFS: {}"
msgid "Syncing the system..."
msgstr "Sincronizando el sistema..."
@@ -1932,7 +1916,7 @@ msgid "U2F Login Method"
msgstr "Método de inicio de sesión U2F"
msgid "Enable passwordless sudo?"
-msgstr "Habilitar sudo sin contraseña?"
+msgstr "¿Activar sudo sin contraseña?"
#, python-brace-format
msgid "Setting up U2F device for user: {}"
@@ -1948,25 +1932,25 @@ 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 a Wifi?"
+msgstr "¿Desea conectarse al Wi-Fi?"
msgid "No wifi interface found"
-msgstr "No se encontró ninguna interfaz de wifi"
+msgstr "No se encontró ninguna interfaz Wi-Fi"
msgid "Select wifi network to connect to"
-msgstr "Seleccione una red de wifi para conectarse"
+msgstr "Seleccione una red Wi-Fi para conectarse"
msgid "Scanning wifi networks..."
-msgstr "Buscando redes de wifi..."
+msgstr "Buscando redes Wi-Fi..."
msgid "No wifi networks found"
-msgstr "No se encontró redes de wifi"
+msgstr "No se encontró redes Wi-Fi"
msgid "Failed setting up wifi"
-msgstr "Error configurando wifi"
+msgstr "Error al configurar el Wi-Fi"
msgid "Enter wifi password"
-msgstr "Ingrese contraseña de wifi"
+msgstr "Ingrese la contraseña del Wi-Fi"
msgid "Ok"
msgstr "Ok"
@@ -2017,7 +2001,7 @@ 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, base-devel, linux, linux-firmware, efibootmgr y paquetes opcionales de perfil se instalan."
+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:"
@@ -2031,22 +2015,20 @@ msgstr "Usar gestor de Red (backend iwd)"
msgid "Firewall"
msgstr "Cortafuegos"
-#, fuzzy
msgid "Additional fonts"
-msgstr "Repositorios adicionales"
+msgstr "Fuentes adicionales"
-#, fuzzy
msgid "Select font packages to install"
-msgstr "Seleccione el gestor de arranque que desea instalar"
+msgstr "Seleccione los paquetes de fuentes que desea instalar"
msgid "Unicode font coverage for most languages"
-msgstr ""
+msgstr "Fuente unicode cubierta para la mayoría de idiomas"
msgid "color emoji for browsers and apps"
-msgstr ""
+msgstr "Emoji de colores para navegadores y aplicaciones"
msgid "Chinese, Japanese, Korean characters"
-msgstr ""
+msgstr "Carácteres Chino, Japonés, Koreano"
msgid "Select audio configuration"
msgstr "Seleccionar configuración de audio"
@@ -2107,7 +2089,7 @@ 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 habilitar"
+msgstr "Ingrese el número de descargas paralelas que desea activar"
#, python-brace-format
msgid "Value must be between 1 and {}"
@@ -2126,10 +2108,10 @@ msgid "Enter server url"
msgstr "Ingrese la URL del servidor"
msgid "Select mirror regions to be enabled"
-msgstr "Seleccione las regiones espejo que se habilitarán"
+msgstr "Seleccione las regiones espejo que se activarán"
msgid "Select optional repositories to be enabled"
-msgstr "Seleccione repositorios opcionales para habilitar"
+msgstr "Seleccione repositorios opcionales para activar"
msgid "Select an interface"
msgstr "Seleccione una interfaz"
@@ -2170,54 +2152,56 @@ 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"
-#, fuzzy, python-brace-format
+#, python-brace-format
msgid "Environment type: {} {}"
-msgstr "Tipo de entorno: {}"
+msgstr "Tipo de entorno: {} {}"
-#, fuzzy
msgid "Input cannot be empty"
-msgstr "El valor no puede estár vacío"
+msgstr "La entrada no debe estar vacía"
msgid "Recommended"
-msgstr ""
+msgstr "Recomendado"
-#, fuzzy
msgid "Package"
-msgstr "Grupo de paquetes:"
+msgstr "Paquete"
msgid "Curated selection of KDE Plasma packages"
-msgstr ""
+msgstr "Selección curada de paquetes KDE Plasma"
msgid "Dependencies"
-msgstr ""
+msgstr "Dependencias"
-#, fuzzy
msgid "Package group"
-msgstr "Grupo de paquetes:"
+msgstr "Grupo de paquetes"
msgid "Extensive KDE Plasma installation"
-msgstr ""
+msgstr "Instalación KDE Plasma Extensible"
-#, fuzzy
msgid "Packages in group"
-msgstr "Grupo de paquetes:"
+msgstr "Paquetes en grupo"
msgid "Minimal KDE Plasma installation"
-msgstr ""
+msgstr "Instalación minima de KDE Plasma"
-#, fuzzy
msgid "Description"
-msgstr "Cifrado de disco"
+msgstr "Descripción"
-#, fuzzy
msgid "Select a flavor of KDE Plasma to install"
-msgstr "Seleccione el gestor de arranque que desea instalar"
+msgstr "Seleccione una variante de KDE Plasma para instalar"
msgid "Arial/Times/Courier replacement, Cyrillic support for Steam/games"
-msgstr ""
+msgstr "Sustitución de Arial/Times/Courier, compatibilidad con caracteres cirílicos para Steam/juegos"
msgid "wide Unicode coverage, good fallback font"
-msgstr ""
+msgstr "Amplia cobertura Unicode, buena fuente de reserva"
+
+#, 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 :"
diff --git a/archinstall/locales/fr/LC_MESSAGES/base.po b/archinstall/locales/fr/LC_MESSAGES/base.po
index 042f5d69..d19a3938 100644
--- a/archinstall/locales/fr/LC_MESSAGES/base.po
+++ b/archinstall/locales/fr/LC_MESSAGES/base.po
@@ -2,20 +2,24 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2025-04-11 23:02+0200\n"
-"Last-Translator: Roxfr \n"
+"PO-Revision-Date: 2026-04-23 11:28+0200\n"
+"Last-Translator: Roxfr \n"
"Language-Team: \n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 3.6\n"
+"X-Generator: Poedit 3.9\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] Un fichier journal a été créé ici : {} {}"
-msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
-msgstr " Veuillez soumettre ce problème (et le fichier) à https://github.com/archlinux/archinstall/issues"
+msgid ""
+" Please submit this issue (and file) to https://github.com/archlinux/"
+"archinstall/issues"
+msgstr ""
+" Veuillez soumettre ce problème (et le fichier) à https://github.com/"
+"archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "Voulez-vous vraiment abandonner ?"
@@ -30,10 +34,13 @@ msgid "Desired hostname for the installation: "
msgstr "Nom d'hôte souhaité pour l'installation : "
msgid "Username for required superuser with sudo privileges: "
-msgstr "Nom d'utilisateur pour le superutilisateur requis avec les privilèges sudo : "
+msgstr ""
+"Nom d'utilisateur pour le superutilisateur requis avec les privilèges sudo : "
msgid "Any additional users to install (leave blank for no users): "
-msgstr "Utilisateur supplémentaire à installer (laisser vide pour aucun utilisateur) : "
+msgstr ""
+"Utilisateur supplémentaire à installer (laisser vide pour aucun "
+"utilisateur) : "
msgid "Should this user be a superuser (sudoer)?"
msgstr "Cet utilisateur doit-il être un superutilisateur (sudoer) ?"
@@ -42,7 +49,9 @@ msgid "Select a timezone"
msgstr "Sélectionner un fuseau horaire"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
-msgstr "Souhaitez-vous utiliser GRUB comme chargeur de démarrage au lieu de systemd-boot ?"
+msgstr ""
+"Souhaitez-vous utiliser GRUB comme chargeur de démarrage au lieu de systemd-"
+"boot ?"
msgid "Choose a bootloader"
msgstr "Choisir un chargeur de démarrage"
@@ -50,42 +59,68 @@ msgstr "Choisir un chargeur de démarrage"
msgid "Choose an audio server"
msgstr "Choisir un serveur audio"
-msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
-msgstr "Seuls les paquets tels que base, base-devel, linux, linux-firmware, efibootmgr et les paquets de profil optionnels sont installés."
-
-msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
+msgid ""
+"Only packages such as base, base-devel, linux, linux-firmware, efibootmgr "
+"and optional profile packages are installed."
msgstr ""
+"Seuls les paquets tels que base, base-devel, linux, linux-firmware, "
+"efibootmgr et les paquets de profil optionnels sont installés."
-msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
-msgstr "Si vous désirez un navigateur Web, tel que firefox ou chrome, vous pouvez le spécifier dans l'invite suivante."
+msgid ""
+"Note: base-devel is no longer installed by default. Add it here if you need "
+"build tools."
+msgstr ""
+"Remarque : base-devel n’est plus installé par défaut. Ajoutez-le ici si vous "
+"avez besoin d’outils de compilation."
-msgid "Write additional packages to install (space separated, leave blank to skip): "
-msgstr "Saisir les paquets supplémentaires à installer (séparés par des espaces, vide pour ignorer) : "
+msgid ""
+"If you desire a web browser, such as firefox or chromium, you may specify it "
+"in the following prompt."
+msgstr ""
+"Si vous désirez un navigateur Web, tel que firefox ou chrome, vous pouvez le "
+"spécifier dans l'invite suivante."
+
+msgid ""
+"Write additional packages to install (space separated, leave blank to skip): "
+msgstr ""
+"Saisir les paquets supplémentaires à installer (séparés par des espaces, "
+"vide pour ignorer) : "
msgid "Copy ISO network configuration to installation"
msgstr "Copier la configuration réseau ISO dans l'installation"
-msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
-msgstr "Utiliser NetworkManager (nécessaire pour configurer graphiquement Internet dans GNOME et KDE)"
+msgid ""
+"Use NetworkManager (necessary for configuring internet graphically in GNOME "
+"and KDE)"
+msgstr ""
+"Utiliser NetworkManager (nécessaire pour configurer graphiquement Internet "
+"dans GNOME et KDE)"
msgid "Select one network interface to configure"
msgstr "Sélectionner une interface réseau à configurer"
-msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
-msgstr "Sélectionner le mode à configurer pour \"{}\" ou ignorer pour utiliser le mode par défaut \"{}\""
+msgid ""
+"Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
+msgstr ""
+"Sélectionner le mode à configurer pour \"{}\" ou ignorer pour utiliser le "
+"mode par défaut \"{}\""
#, python-brace-format
msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): "
msgstr "Entrer l'IP et le sous-réseau pour {} (exemple : 192.168.0.5/24) : "
msgid "Enter your gateway (router) IP address or leave blank for none: "
-msgstr "Entrer l'adresse IP de votre passerelle (routeur) ou laisser vide pour aucune : "
+msgstr ""
+"Entrer l'adresse IP de votre passerelle (routeur) ou laisser vide pour "
+"aucune : "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "Entrer vos serveurs DNS (séparés par des espaces, vide pour aucun) : "
msgid "Select which filesystem your main partition should use"
-msgstr "Sélectionner le système de fichiers que votre partition principale doit utiliser"
+msgstr ""
+"Sélectionner le système de fichiers que votre partition principale doit "
+"utiliser"
msgid "Current partition layout"
msgstr "Disposition actuelle des partitions"
@@ -100,14 +135,21 @@ msgstr ""
msgid "Enter a desired filesystem type for the partition"
msgstr "Entrer un type de système de fichiers souhaité pour la partition"
-msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
-msgstr "Entrer l'emplacement de départ (en unités séparées : s, Go, %, etc. ; par défaut : {}) : "
+msgid ""
+"Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
+msgstr ""
+"Entrer l'emplacement de départ (en unités séparées : s, Go, %, etc. ; par "
+"défaut : {}) : "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
-msgstr "Entrer l'emplacement de fin (en unités séparées : s, Go, %, etc. ; ex : {}) : "
+msgstr ""
+"Entrer l'emplacement de fin (en unités séparées : s, Go, %, etc. ; ex : "
+"{}) : "
msgid "{} contains queued partitions, this will remove those, are you sure?"
-msgstr "{} contient des partitions en file d'attente, cela les supprimera, êtes-vous sûr ?"
+msgstr ""
+"{} contient des partitions en file d'attente, cela les supprimera, êtes-vous "
+"sûr ?"
msgid ""
"{}\n"
@@ -127,11 +169,17 @@ msgstr ""
"\n"
"Sélectionner par index où et quelle partition montée"
-msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
-msgstr " * Les points de montage de la partition sont relatifs à l'intérieur de l'installation, le démarrage serait /boot par exemple."
+msgid ""
+" * Partition mount-points are relative to inside the installation, the boot "
+"would be /boot as an example."
+msgstr ""
+" * Les points de montage de la partition sont relatifs à l'intérieur de "
+"l'installation, le démarrage serait /boot par exemple."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
-msgstr "Sélectionner où monter la partition (laisser vide pour supprimer le point de montage) : "
+msgstr ""
+"Sélectionner où monter la partition (laisser vide pour supprimer le point de "
+"montage) : "
msgid ""
"{}\n"
@@ -176,34 +224,58 @@ msgid "Archinstall language"
msgstr "Langue d'Archinstall"
msgid "Wipe all selected drives and use a best-effort default partition layout"
-msgstr "Effacer tous les lecteurs sélectionnés et utiliser une disposition de partition par défaut optimale"
+msgstr ""
+"Effacer tous les lecteurs sélectionnés et utiliser une disposition de "
+"partition par défaut optimale"
-msgid "Select what to do with each individual drive (followed by partition usage)"
-msgstr "Sélectionner ce qu'il faut faire avec chaque lecteur individuel (suivi de l'utilisation de la partition)"
+msgid ""
+"Select what to do with each individual drive (followed by partition usage)"
+msgstr ""
+"Sélectionner ce qu'il faut faire avec chaque lecteur individuel (suivi de "
+"l'utilisation de la partition)"
msgid "Select what you wish to do with the selected block devices"
-msgstr "Sélectionner ce que vous souhaitez faire avec les périphériques de bloc sélectionnés"
+msgstr ""
+"Sélectionner ce que vous souhaitez faire avec les périphériques de bloc "
+"sélectionnés"
-msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
-msgstr "Ceci est une liste préprogrammée de profiles, ils pourraient faciliter l'installation d'outils comme les environnements de bureau"
+msgid ""
+"This is a list of pre-programmed profiles, they might make it easier to "
+"install things like desktop environments"
+msgstr ""
+"Ceci est une liste préprogrammée de profiles, ils pourraient faciliter "
+"l'installation d'outils comme les environnements de bureau"
msgid "Select keyboard layout"
msgstr "Sélectionner la disposition du clavier"
msgid "Select one of the regions to download packages from"
-msgstr "Sélectionner l'une des régions depuis lesquelles télécharger les paquets"
+msgstr ""
+"Sélectionner l'une des régions depuis lesquelles télécharger les paquets"
msgid "Select one or more hard drives to use and configure"
msgstr "Sélectionner un ou plusieurs disques durs à utiliser et à configurer"
-msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
-msgstr "Pour une meilleure compatibilité avec votre matériel AMD, vous pouvez utiliser les options entièrement open source ou AMD / ATI."
+msgid ""
+"For the best compatibility with your AMD hardware, you may want to use "
+"either the all open-source or AMD / ATI options."
+msgstr ""
+"Pour une meilleure compatibilité avec votre matériel AMD, vous pouvez "
+"utiliser les options entièrement open source ou 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 "Pour une compatibilité optimale avec votre matériel Intel, vous pouvez utiliser les options entièrement open source ou Intel.\n"
+msgid ""
+"For the best compatibility with your Intel hardware, you may want to use "
+"either the all open-source or Intel options.\n"
+msgstr ""
+"Pour une compatibilité optimale avec votre matériel Intel, vous pouvez "
+"utiliser les options entièrement open source ou Intel.\n"
-msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
-msgstr "Pour une meilleure compatibilité avec votre matériel Nvidia, vous pouvez utiliser le pilote propriétaire Nvidia.\n"
+msgid ""
+"For the best compatibility with your Nvidia hardware, you may want to use "
+"the Nvidia proprietary driver.\n"
+msgstr ""
+"Pour une meilleure compatibilité avec votre matériel Nvidia, vous pouvez "
+"utiliser le pilote propriétaire Nvidia.\n"
msgid ""
"\n"
@@ -212,7 +284,8 @@ msgid ""
msgstr ""
"\n"
"\n"
-"Sélectionner un pilote graphique ou laisser vide pour installer tous les pilotes open-source"
+"Sélectionner un pilote graphique ou laisser vide pour installer tous les "
+"pilotes open-source"
msgid "All open-source (default)"
msgstr "Tout open-source (par défaut)"
@@ -235,8 +308,12 @@ msgstr "Sélectionner une ou plusieurs des options ci-dessous : "
msgid "Adding partition...."
msgstr "Ajout de la partition...."
-msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
-msgstr "Vous devez entrer un type de fs valide pour continuer. Voir `man parted` pour les types de fs valides."
+msgid ""
+"You need to enter a valid fs-type in order to continue. See `man parted` for "
+"valid fs-type's."
+msgstr ""
+"Vous devez entrer un type de fs valide pour continuer. Voir `man parted` "
+"pour les types de fs valides."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "Erreur : la liste des profils sur l'URL \"{}\" a entraîné :"
@@ -309,7 +386,8 @@ msgid ""
msgstr ""
"Vous avez décidé d'ignorer la sélection du disque dur\n"
"et vous utiliserez la configuration de disque montée sur {} (expérimental)\n"
-"ATTENTION : Archinstall ne vérifiera pas l'adéquation de cette configuration\n"
+"ATTENTION : Archinstall ne vérifiera pas l'adéquation de cette "
+"configuration\n"
"Souhaitez-vous continuer ?"
msgid "Re-using partition instance: {}"
@@ -334,7 +412,8 @@ msgid "Mark/Unmark a partition as encrypted"
msgstr "Marquer/Démarquer une partition comme encrypté"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
-msgstr "Marquer/Démarquer une partition comme amorçable (automatique pour /boot)"
+msgstr ""
+"Marquer/Démarquer une partition comme amorçable (automatique pour /boot)"
msgid "Set desired filesystem for a partition"
msgstr "Définir le système de fichiers souhaité pour une partition"
@@ -374,7 +453,9 @@ msgid "Enter a encryption password for {}"
msgstr "Entrer un mot de passe de chiffrement pour {}"
msgid "Enter disk encryption password (leave blank for no encryption): "
-msgstr "Entrer le mot de passe de chiffrement du disque (laisser vide pour aucun chiffrement) : "
+msgstr ""
+"Entrer le mot de passe de chiffrement du disque (laisser vide pour aucun "
+"chiffrement) : "
msgid "Create a required super-user with sudo privileges: "
msgstr "Créer un super-utilisateur requis avec les privilèges sudo : "
@@ -385,31 +466,44 @@ msgstr "Entrer le mot de passe root (laisser vide pour désactiver root) : "
msgid "Password for user \"{}\": "
msgstr "Mot de passe pour l'utilisateur \"{}\" : "
-msgid "Verifying that additional packages exist (this might take a few seconds)"
-msgstr "Vérifier que des paquets supplémentaires existent (cela peut prendre quelques secondes)"
-
-msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
-msgstr "Souhaitez-vous utiliser la synchronisation automatique de l'heure (NTP) avec les serveurs de temps par défaut ?\n"
+msgid ""
+"Verifying that additional packages exist (this might take a few seconds)"
+msgstr ""
+"Vérifier que des paquets supplémentaires existent (cela peut prendre "
+"quelques secondes)"
msgid ""
-"Hardware time and other post-configuration steps might be required in order for NTP to work.\n"
+"Would you like to use automatic time synchronization (NTP) with the default "
+"time servers?\n"
+msgstr ""
+"Souhaitez-vous utiliser la synchronisation automatique de l'heure (NTP) avec "
+"les serveurs de temps par défaut ?\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 ""
-"Le temps matériel et d'autres étapes de post-configuration peuvent être nécessaires pour que NTP fonctionne.\n"
+"Le temps matériel et d'autres étapes de post-configuration peuvent être "
+"nécessaires pour que NTP fonctionne.\n"
"Pour plus d'informations, veuillez consulter le wiki Arch"
msgid "Enter a username to create an additional user (leave blank to skip): "
-msgstr "Entrer un nom d'utilisateur pour créer un utilisateur supplémentaire (laisser vide pour ignorer) : "
+msgstr ""
+"Entrer un nom d'utilisateur pour créer un utilisateur supplémentaire "
+"(laisser vide pour ignorer) : "
msgid "Use ESC to skip\n"
msgstr "Utiliser ESC pour ignorer\n"
msgid ""
"\n"
-" Choose an object from the list, and select one of the available actions for it to execute"
+" Choose an object from the list, and select one of the available actions for "
+"it to execute"
msgstr ""
"\n"
-"Choisir un objet dans la liste et sélectionner l'une des actions disponibles pour qu'il s'exécute"
+"Choisir un objet dans la liste et sélectionner l'une des actions disponibles "
+"pour qu'il s'exécute"
msgid "Cancel"
msgstr "Annuler"
@@ -445,11 +539,18 @@ msgstr ""
"\n"
"Voici la configuration choisie :"
-msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
-msgstr "Pacman est déjà en cours d'exécution, attendez au maximum 10 minutes pour qu'il se termine."
+msgid ""
+"Pacman is already running, waiting maximum 10 minutes for it to terminate."
+msgstr ""
+"Pacman est déjà en cours d'exécution, attendez au maximum 10 minutes pour "
+"qu'il se termine."
-msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
-msgstr "Le verrou pacman préexistant n'a jamais été fermé. Veuillez nettoyer toutes les sessions pacman existantes avant d'utiliser archinstall."
+msgid ""
+"Pre-existing pacman lock never exited. Please clean up any existing pacman "
+"sessions before using archinstall."
+msgstr ""
+"Le verrou pacman préexistant n'a jamais été fermé. Veuillez nettoyer toutes "
+"les sessions pacman existantes avant d'utiliser archinstall."
msgid "Choose which optional additional repositories to enable"
msgstr "Choisir les dépôts supplémentaires en option à activer"
@@ -586,14 +687,17 @@ msgid "Select the desired subvolume options "
msgstr "Sélectionner les options de sous-volume souhaitées "
msgid "Define users with sudo privilege, by username: "
-msgstr "Définir les utilisateurs avec le privilège sudo, par nom d'utilisateur : "
+msgstr ""
+"Définir les utilisateurs avec le privilège sudo, par nom d'utilisateur : "
#, python-brace-format
msgid "[!] A log file has been created here: {}"
msgstr "[!] Un fichier journal a été créé ici : {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
-msgstr "Souhaitez-vous utiliser des sous-volumes BTRFS avec une structure par défaut ?"
+msgstr ""
+"Souhaitez-vous utiliser des sous-volumes BTRFS avec une structure par "
+"défaut ?"
msgid "Would you like to use BTRFS compression?"
msgstr "Souhaitez-vous utiliser la compression BTRFS ?"
@@ -601,8 +705,12 @@ msgstr "Souhaitez-vous utiliser la compression BTRFS ?"
msgid "Would you like to create a separate partition for /home?"
msgstr "Souhaitez-vous créer une partition séparée pour /home ?"
-msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
-msgstr "Les disques sélectionnés n'ont pas la capacité minimale requise pour une suggestion automatique\n"
+msgid ""
+"The selected drives do not have the minimum capacity required for an "
+"automatic suggestion\n"
+msgstr ""
+"Les disques sélectionnés n'ont pas la capacité minimale requise pour une "
+"suggestion automatique\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "Capacité minimale pour la partition /home : {} Go\n"
@@ -629,7 +737,9 @@ msgid "No iface specified for manual configuration"
msgstr "Aucun iface spécifié pour la configuration manuelle"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
-msgstr "La configuration manuelle de la carte réseau sans DHCP automatique nécessite une adresse IP"
+msgstr ""
+"La configuration manuelle de la carte réseau sans DHCP automatique nécessite "
+"une adresse IP"
msgid "Add interface"
msgstr "Ajouter une interface"
@@ -649,23 +759,42 @@ msgstr "Configuration manuelle"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "Marquer/Démarquer une partition comme compressée (btrfs uniquement)"
-msgid "The password you are using seems to be weak, are you sure you want to use it?"
-msgstr "Le mot de passe que vous utilisez semble faible, êtes-vous sûr de vouloir l'utiliser ?"
+msgid ""
+"The password you are using seems to be weak, are you sure you want to use it?"
+msgstr ""
+"Le mot de passe que vous utilisez semble faible, êtes-vous sûr de vouloir "
+"l'utiliser ?"
-msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
-msgstr "Fournit une sélection d'environnements de bureau et de gestionnaires de fenêtres en mosaïque, par ex. gnome, kde, sway"
+msgid ""
+"Provides a selection of desktop environments and tiling window managers, "
+"e.g. gnome, kde, sway"
+msgstr ""
+"Fournit une sélection d'environnements de bureau et de gestionnaires de "
+"fenêtres en mosaïque, par ex. gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "Sélectionner l'environnement de bureau souhaité"
-msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
-msgstr "Une installation très basique qui vous permet de personnaliser Arch Linux comme bon vous semble."
+msgid ""
+"A very basic installation that allows you to customize Arch Linux as you see "
+"fit."
+msgstr ""
+"Une installation très basique qui vous permet de personnaliser Arch Linux "
+"comme bon vous semble."
-msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
-msgstr "Fournit une sélection de divers paquets de serveur à installer et à activer, par ex. httpd, nginx, mariadb"
+msgid ""
+"Provides a selection of various server packages to install and enable, e.g. "
+"httpd, nginx, mariadb"
+msgstr ""
+"Fournit une sélection de divers paquets de serveur à installer et à activer, "
+"par ex. httpd, nginx, mariadb"
-msgid "Choose which servers to install, if none then a minimal installation will be done"
-msgstr "Choisir les serveurs à installer, s'il n'y en a pas, alors une installation minimale sera effectuée"
+msgid ""
+"Choose which servers to install, if none then a minimal installation will be "
+"done"
+msgstr ""
+"Choisir les serveurs à installer, s'il n'y en a pas, alors une installation "
+"minimale sera effectuée"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "Installe un système minimal ainsi que les pilotes graphiques et xorg."
@@ -673,8 +802,12 @@ msgstr "Installe un système minimal ainsi que les pilotes graphiques et xorg."
msgid "Press Enter to continue."
msgstr "Appuyer sur Entrée pour continuer."
-msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
-msgstr "Souhaitez-vous chrooter dans l'installation nouvellement créée et effectuer la configuration post-installation ?"
+msgid ""
+"Would you like to chroot into the newly created installation and perform "
+"post-installation configuration?"
+msgstr ""
+"Souhaitez-vous chrooter dans l'installation nouvellement créée et effectuer "
+"la configuration post-installation ?"
msgid "Are you sure you want to reset this setting?"
msgstr "Voulez-vous vraiment réinitialiser ce paramètre ?"
@@ -683,10 +816,16 @@ msgid "Select one or more hard drives to use and configure\n"
msgstr "Sélectionner un ou plusieurs disques durs à utiliser et à configurer\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
-msgstr "Toute modification du paramètre existant réinitialisera la disposition du disque !"
+msgstr ""
+"Toute modification du paramètre existant réinitialisera la disposition du "
+"disque !"
-msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
-msgstr "Si vous réinitialisez la sélection du disque dur, cela réinitialisera également la disposition actuelle du disque. Êtes-vous sûr ?"
+msgid ""
+"If you reset the harddrive selection this will also reset the current disk "
+"layout. Are you sure?"
+msgstr ""
+"Si vous réinitialisez la sélection du disque dur, cela réinitialisera "
+"également la disposition actuelle du disque. Êtes-vous sûr ?"
msgid "Save and exit"
msgstr "Sauvegarder et quitter"
@@ -696,7 +835,8 @@ msgid ""
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
-"contient des partitions en file d'attente, cela les supprimera, êtes-vous sûr ?"
+"contient des partitions en file d'attente, cela les supprimera, êtes-vous "
+"sûr ?"
msgid "No audio server"
msgstr "Pas de serveur audio"
@@ -732,8 +872,13 @@ msgstr "Ajouter : "
msgid "Value: "
msgstr "Valeur : "
-msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
-msgstr "Vous pouvez ignorer la sélection d'un lecteur et le partitionnement et utiliser n'importe quelle configuration de lecteur montée sur /mnt (expérimental)"
+msgid ""
+"You can skip selecting a drive and partitioning and use whatever drive-setup "
+"is mounted at /mnt (experimental)"
+msgstr ""
+"Vous pouvez ignorer la sélection d'un lecteur et le partitionnement et "
+"utiliser n'importe quelle configuration de lecteur montée sur /mnt "
+"(expérimental)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "Sélectionner l'un des disques ou ignorer et utiliser /mnt par défaut"
@@ -756,8 +901,12 @@ msgstr "Espace libre"
msgid "Bus-type"
msgstr "Type de bus"
-msgid "Either root-password or at least 1 user with sudo privileges must be specified"
-msgstr "Le mot de passe root ou au moins 1 utilisateur avec des privilèges sudo doit être spécifié"
+msgid ""
+"Either root-password or at least 1 user with sudo privileges must be "
+"specified"
+msgstr ""
+"Le mot de passe root ou au moins 1 utilisateur avec des privilèges sudo doit "
+"être spécifié"
msgid "Enter username (leave blank to skip): "
msgstr "Entrer le nom d'utilisateur (laisser vide pour ignorer) : "
@@ -795,8 +944,12 @@ msgstr "Supprimer le sous-volume"
msgid "Configured {} interfaces"
msgstr "Interfaces {} configurées"
-msgid "This option enables the number of parallel downloads that can occur during installation"
-msgstr "Cette option active le nombre de téléchargements parallèles qui peuvent se produire pendant l'installation"
+msgid ""
+"This option enables the number of parallel downloads that can occur during "
+"installation"
+msgstr ""
+"Cette option active le nombre de téléchargements parallèles qui peuvent se "
+"produire pendant l'installation"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
@@ -807,37 +960,50 @@ msgstr ""
" (Entrer une valeur comprise entre 1 et {})\n"
"Note :"
-msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
-msgstr " - Valeur maximale : {} (Autorise {} téléchargements parallèles, autorise {} téléchargements à la fois)"
+msgid ""
+" - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads "
+"at a time )"
+msgstr ""
+" - Valeur maximale : {} (Autorise {} téléchargements parallèles, autorise {} "
+"téléchargements à la fois)"
-msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
-msgstr " - Valeur minimale : 1 (Autorise 1 téléchargement parallèle, autorise 2 téléchargements à la fois)"
+msgid ""
+" - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a "
+"time )"
+msgstr ""
+" - Valeur minimale : 1 (Autorise 1 téléchargement parallèle, autorise 2 "
+"téléchargements à la fois)"
-msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
-msgstr " - Désactiver/Défaut : 0 (Désactive le téléchargement parallèle, n'autorise qu'un seul téléchargement à la fois)"
+msgid ""
+" - Disable/Default : 0 ( Disables parallel downloading, allows only 1 "
+"download at a time )"
+msgstr ""
+" - Désactiver/Défaut : 0 (Désactive le téléchargement parallèle, n'autorise "
+"qu'un seul téléchargement à la fois)"
#, python-brace-format
-msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
-msgstr "Entrée invalide ! Réessayer avec une entrée valide [1 pour {max_downloads}, ou 0 pour désactiver]"
+msgid ""
+"Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to "
+"disable]"
+msgstr ""
+"Entrée invalide ! Réessayer avec une entrée valide [1 pour {max_downloads}, "
+"ou 0 pour désactiver]"
msgid "Parallel Downloads"
msgstr "Téléchargements parallèles"
msgid "Pacman"
-msgstr ""
+msgstr "Pacman"
msgid "Color"
-msgstr ""
+msgstr "Couleur"
-#, fuzzy, python-brace-format
+#, python-brace-format
msgid "Enter the number of parallel downloads (1-{})"
-msgstr ""
-"Saisir le nombre de téléchargements parallèles à activer.\n"
-"\n"
-"Note :\n"
+msgstr "Entrer le nombre de téléchargements simultanés (1–{})"
msgid "Enable colored output for pacman"
-msgstr ""
+msgstr "Activer l’affichage en couleur pour pacman"
msgid "ESC to skip"
msgstr "ESC pour ignorer"
@@ -851,14 +1017,20 @@ msgstr "TAB pour sélectionner"
msgid "[Default value: 0] > "
msgstr "[Valeur par défaut : 0] > "
-msgid "To be able to use this translation, please install a font manually that supports the language."
-msgstr "Pour pouvoir utiliser cette traduction, veuillez installer manuellement une police prenant en charge la langue."
+msgid ""
+"To be able to use this translation, please install a font manually that "
+"supports the language."
+msgstr ""
+"Pour pouvoir utiliser cette traduction, veuillez installer manuellement une "
+"police prenant en charge la langue."
msgid "The font should be stored as {}"
msgstr "La police d'écriture doit être stockée sous {}"
msgid "Archinstall requires root privileges to run. See --help for more."
-msgstr "Archinstall nécessite des privilèges root pour s'exécuter. Voir --help pour plus d'informations."
+msgstr ""
+"Archinstall nécessite des privilèges root pour s'exécuter. Voir --help pour "
+"plus d'informations."
msgid "Select an execution mode"
msgstr "Sélectionner un mode d'exécution"
@@ -868,14 +1040,22 @@ msgid "Unable to fetch profile from specified url: {}"
msgstr "Impossible de récupérer le profil à partir de l'URL spécifiée : {}"
#, python-brace-format
-msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}"
-msgstr "Les profils doivent avoir un nom unique, mais des définitions de profil avec un nom en double ont été trouvées : {}"
+msgid ""
+"Profiles must have unique name, but profile definitions with duplicate name "
+"found: {}"
+msgstr ""
+"Les profils doivent avoir un nom unique, mais des définitions de profil avec "
+"un nom en double ont été trouvées : {}"
msgid "Select one or more devices to use and configure"
msgstr "Sélectionner un ou plusieurs périphériques à utiliser et à configurer"
-msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
-msgstr "Si vous réinitialisez la sélection de périphérique, cela réinitialisera également la disposition actuelle du disque. Etes-vous sûr ?"
+msgid ""
+"If you reset the device selection this will also reset the current disk "
+"layout. Are you sure?"
+msgstr ""
+"Si vous réinitialisez la sélection de périphérique, cela réinitialisera "
+"également la disposition actuelle du disque. Etes-vous sûr ?"
msgid "Existing Partitions"
msgstr "Partitions existantes"
@@ -894,8 +1074,12 @@ msgstr "Capacité minimale pour la partition /home : {} Gio\n"
msgid "Minimum capacity for Arch Linux partition: {}GiB"
msgstr "Capacité minimale pour la partition Arch Linux : {} Gio"
-msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
-msgstr "Ceci est une liste préprogrammée de profiles_bck, ils pourraient faciliter l'installation de choses comme les environnements de bureau"
+msgid ""
+"This is a list of pre-programmed profiles_bck, they might make it easier to "
+"install things like desktop environments"
+msgstr ""
+"Ceci est une liste préprogrammée de profiles_bck, ils pourraient faciliter "
+"l'installation de choses comme les environnements de bureau"
msgid "Current profile selection"
msgstr "Sélection du profil actuel"
@@ -927,14 +1111,26 @@ msgstr "Supprimer la partition"
msgid "Partition"
msgstr "Partition"
-msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
-msgstr "Cette partition est actuellement encrypté, pour la formater, un système de fichiers doit être spécifié"
+msgid ""
+"This partition is currently encrypted, to format it a filesystem has to be "
+"specified"
+msgstr ""
+"Cette partition est actuellement encrypté, pour la formater, un système de "
+"fichiers doit être spécifié"
-msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
-msgstr "Les points de montage de partition sont relatifs à l'intérieur de l'installation, le démarrage serait /boot par exemple."
+msgid ""
+"Partition mount-points are relative to inside the installation, the boot "
+"would be /boot as an example."
+msgstr ""
+"Les points de montage de partition sont relatifs à l'intérieur de "
+"l'installation, le démarrage serait /boot par exemple."
-msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
-msgstr "Si le point de montage /boot est défini, la partition sera également marquée comme amorçable."
+msgid ""
+"If mountpoint /boot is set, then the partition will also be marked as "
+"bootable."
+msgstr ""
+"Si le point de montage /boot est défini, la partition sera également marquée "
+"comme amorçable."
msgid "Mountpoint: "
msgstr "Point de montage : "
@@ -948,11 +1144,17 @@ msgstr "Total des secteurs : {}"
msgid "Enter the start sector (default: {}): "
msgstr "Saisir le secteur de début (par défaut : {}) : "
-msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
-msgstr "Saisir le secteur de fin de la partition (pourcentage ou numéro de bloc, par défaut : {}) : "
+msgid ""
+"Enter the end sector of the partition (percentage or block number, default: "
+"{}): "
+msgstr ""
+"Saisir le secteur de fin de la partition (pourcentage ou numéro de bloc, par "
+"défaut : {}) : "
msgid "This will remove all newly added partitions, continue?"
-msgstr "Cela supprimera toutes les partitions nouvellement ajoutées, voulez-vous continuer ?"
+msgstr ""
+"Cela supprimera toutes les partitions nouvellement ajoutées, voulez-vous "
+"continuer ?"
#, python-brace-format
msgid "Partition management: {}"
@@ -966,13 +1168,16 @@ msgid "Encryption type"
msgstr "Type de chiffrement"
msgid "Iteration time"
-msgstr ""
+msgstr "Temps d’itération"
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr ""
+"Entrer le temps d’itération pour le chiffrement LUKS (en millisecondes)"
msgid "Higher values increase security but slow down boot time"
-msgstr "Des valeurs plus grandes peuvent agrandir la sécurité, mais peuvent ralentir le temps de démarrage"
+msgstr ""
+"Des valeurs plus grandes peuvent agrandir la sécurité, mais peuvent ralentir "
+"le temps de démarrage"
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr "Par défaut: 10000ms, range recommandé: 1000-60000"
@@ -1042,14 +1247,20 @@ msgid "Back"
msgstr "Retour"
msgid "Please chose which greeter to install for the chosen profiles: {}"
-msgstr "Veuillez choisir le greeter (interface de connexion) à installer pour les profils choisis : {}"
+msgstr ""
+"Veuillez choisir le greeter (interface de connexion) à installer pour les "
+"profils choisis : {}"
#, python-brace-format
msgid "Environment type: {}"
msgstr "Type d'environnement : {}"
-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 "Le pilote Nvidia propriétaire n'est pas pris en charge par Sway. Il est probable que vous rencontriez des problèmes, êtes-vous d'accord avec cela ?"
+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 ""
+"Le pilote Nvidia propriétaire n'est pas pris en charge par Sway. Il est "
+"probable que vous rencontriez des problèmes, êtes-vous d'accord avec cela ?"
msgid "Installed packages"
msgstr "Paquets installés"
@@ -1067,13 +1278,22 @@ msgid "Profile name: "
msgstr "Nom de profil : "
msgid "The profile name you entered is already in use. Try again"
-msgstr "Le nom de profil que vous avez saisi est déjà utilisé. Essayer à nouveau"
+msgstr ""
+"Le nom de profil que vous avez saisi est déjà utilisé. Essayer à nouveau"
-msgid "Packages to be install with this profile (space separated, leave blank to skip): "
-msgstr "Saisir les paquets à installer avec ce profil (séparés par des espaces, vide pour ignorer) : "
+msgid ""
+"Packages to be install with this profile (space separated, leave blank to "
+"skip): "
+msgstr ""
+"Saisir les paquets à installer avec ce profil (séparés par des espaces, vide "
+"pour ignorer) : "
-msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
-msgstr "Saisir les services à activer avec ce profil (séparés par des espaces, vide pour ignorer) : "
+msgid ""
+"Services to be enabled with this profile (space separated, leave blank to "
+"skip): "
+msgstr ""
+"Saisir les services à activer avec ce profil (séparés par des espaces, vide "
+"pour ignorer) : "
msgid "Should this profile be enabled for installation?"
msgstr "Ce profil doit-il être activé pour l'installation ?"
@@ -1086,10 +1306,15 @@ msgid ""
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
-"Sélectionner un pilote graphique ou laisser vide pour installer tous les pilotes open source"
+"Sélectionner un pilote graphique ou laisser vide pour installer tous les "
+"pilotes open source"
-msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
-msgstr "Sway a besoin d'accéder à votre espace (ensemble de périphériques matériels : clavier, souris, etc.)"
+msgid ""
+"Sway needs access to your seat (collection of hardware devices i.e. "
+"keyboard, mouse, etc)"
+msgstr ""
+"Sway a besoin d'accéder à votre espace (ensemble de périphériques "
+"matériels : clavier, souris, etc.)"
msgid ""
"\n"
@@ -1119,10 +1344,14 @@ msgid "Profiles"
msgstr "Profils"
msgid "Finding possible directories to save configuration files ..."
-msgstr "Recherche des répertoires possibles pour enregistrer les fichiers de configuration..."
+msgstr ""
+"Recherche des répertoires possibles pour enregistrer les fichiers de "
+"configuration..."
msgid "Select directory (or directories) for saving configuration files"
-msgstr "Sélectionner le répertoire (ou les répertoires) pour enregistrer les fichiers de configuration"
+msgstr ""
+"Sélectionner le répertoire (ou les répertoires) pour enregistrer les "
+"fichiers de configuration"
msgid "Add a custom mirror"
msgstr "Ajouter un miroir personnalisé"
@@ -1152,13 +1381,16 @@ msgid "Defined"
msgstr "Défini"
msgid "Save user configuration (including disk layout)"
-msgstr "Enregistrer la configuration utilisateur (y compris la disposition du disque)"
+msgstr ""
+"Enregistrer la configuration utilisateur (y compris la disposition du disque)"
msgid ""
-"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
+"Enter a directory for the configuration(s) to be saved (tab completion "
+"enabled)\n"
"Save directory: "
msgstr ""
-"Saisir un répertoire pour la/les configuration(s) à enregistrer (complétion par tabulation activée)\n"
+"Saisir un répertoire pour la/les configuration(s) à enregistrer (complétion "
+"par tabulation activée)\n"
"Entrer le nom du répertoire de sauvegarde : "
msgid ""
@@ -1166,7 +1398,8 @@ msgid ""
"\n"
"{}"
msgstr ""
-"Voulez-vous enregistrer {} fichier(s) de configuration à l'emplacement suivant ?\n"
+"Voulez-vous enregistrer {} fichier(s) de configuration à l'emplacement "
+"suivant ?\n"
"\n"
"{}"
@@ -1179,26 +1412,39 @@ msgstr "Miroirs"
msgid "Mirror regions"
msgstr "Régions miroir"
-msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
-msgstr " - Valeur maximale : {} (Autorise {} téléchargements parallèles, autorise {max_downloads+1} téléchargements à la fois)"
+msgid ""
+" - Maximum value : {} ( Allows {} parallel downloads, allows "
+"{max_downloads+1} downloads at a time )"
+msgstr ""
+" - Valeur maximale : {} (Autorise {} téléchargements parallèles, autorise "
+"{max_downloads+1} téléchargements à la fois)"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
-msgstr "Entrée invalide ! Réessayer avec une entrée valide [1 pour {}, ou 0 pour désactiver]"
+msgstr ""
+"Entrée invalide ! Réessayer avec une entrée valide [1 pour {}, ou 0 pour "
+"désactiver]"
msgid "Locales"
msgstr "Paramètres régionaux"
-msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
-msgstr "Utiliser NetworkManager (nécessaire pour configurer graphiquement internet dans GNOME et KDE)"
+msgid ""
+"Use NetworkManager (necessary to configure internet graphically in GNOME and "
+"KDE)"
+msgstr ""
+"Utiliser NetworkManager (nécessaire pour configurer graphiquement internet "
+"dans GNOME et KDE)"
msgid "Total: {} / {}"
msgstr "Total (taille) : {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
-msgstr "Toutes les valeurs saisies peuvent être saccompagnées par une unité : B, KB, KiB, MB, MiB..."
+msgstr ""
+"Toutes les valeurs saisies peuvent être saccompagnées par une unité : B, KB, "
+"KiB, MB, MiB..."
msgid "If no unit is provided, the value is interpreted as sectors"
-msgstr "Si aucune unité n'est fournie, la valeur est interprétée comme des secteurs\""
+msgstr ""
+"Si aucune unité n'est fournie, la valeur est interprétée comme des secteurs\""
msgid "Enter start (default: sector {}): "
msgstr "Saisir le secteur de début (par défaut : secteur {}) : "
@@ -1207,7 +1453,9 @@ msgid "Enter end (default: {}): "
msgstr "Saisir le secteur de fin (par défaut : secteur {}) : "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
-msgstr "Impossible de déterminer les appareils fido2. Est-ce que libfido2 est installé ?"
+msgstr ""
+"Impossible de déterminer les appareils fido2. Est-ce que libfido2 est "
+"installé ?"
msgid "Path"
msgstr "Chemin"
@@ -1225,8 +1473,12 @@ msgstr "Configuration invalide : {error}"
msgid "Type"
msgstr "Type"
-msgid "This option enables the number of parallel downloads that can occur during package downloads"
-msgstr "Cette option active le nombre de téléchargements parallèles pouvant avoir lieu lors des téléchargements des paquets"
+msgid ""
+"This option enables the number of parallel downloads that can occur during "
+"package downloads"
+msgstr ""
+"Cette option active le nombre de téléchargements parallèles pouvant avoir "
+"lieu lors des téléchargements des paquets"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
@@ -1238,17 +1490,29 @@ msgstr ""
"Note :\n"
#, python-brace-format
-msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
-msgstr " - Valeur maximale recommandée : {} (Autorise {} téléchargements parallèles à la fois)"
+msgid ""
+" - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
+msgstr ""
+" - Valeur maximale recommandée : {} (Autorise {} téléchargements parallèles "
+"à la fois)"
-msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
-msgstr " - Désactiver/Par défaut : 0 (Désactive le téléchargement parallèle, autorise un seul téléchargement à la fois)\n"
+msgid ""
+" - Disable/Default : 0 ( Disables parallel downloading, allows only 1 "
+"download at a time )\n"
+msgstr ""
+" - Désactiver/Par défaut : 0 (Désactive le téléchargement parallèle, "
+"autorise un seul téléchargement à la fois)\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
-msgstr "Entrée invalide ! Réessayer avec une entrée valide [ou 0 pour désactiver]"
+msgstr ""
+"Entrée invalide ! Réessayer avec une entrée valide [ou 0 pour désactiver]"
-msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
-msgstr "Hyprland a besoin d'accéder à votre espace (ensemble de périphériques matériels, par exemple clavier, souris, etc)"
+msgid ""
+"Hyprland needs access to your seat (collection of hardware devices i.e. "
+"keyboard, mouse, etc)"
+msgstr ""
+"Hyprland a besoin d'accéder à votre espace (ensemble de périphériques "
+"matériels, par exemple clavier, souris, etc)"
msgid ""
"\n"
@@ -1259,8 +1523,11 @@ msgstr ""
"\n"
"Choisir une option pour donner à Hyprland l'accès à votre matériel"
-msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
-msgstr "Toutes les valeurs saisies peuvent être accompagnées par une unité : %, B, KB, KiB, MB, MiB..."
+msgid ""
+"All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
+msgstr ""
+"Toutes les valeurs saisies peuvent être accompagnées par une unité : %, B, "
+"KB, KiB, MB, MiB..."
msgid "Would you like to use unified kernel images?"
msgstr "Souhaitez-vous utiliser des images de noyau unifiées ?"
@@ -1269,28 +1536,50 @@ msgid "Unified kernel images"
msgstr "Images du noyau unifiées"
msgid "Waiting for time sync (timedatectl show) to complete."
-msgstr "En attente de la fin de la synchronisation de l'heure (timedatectl show) de finir."
+msgstr ""
+"En attente de la fin de la synchronisation de l'heure (timedatectl show) de "
+"finir."
-msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
-msgstr "La synchronisation de l'heure ne se termine pas, veuillez consulter la documentation afin de trouver des solutions de contournement : https://archinstall.readthedocs.io/"
+msgid ""
+"Time syncronization not completing, while you wait - check the docs for "
+"workarounds: https://archinstall.readthedocs.io/"
+msgstr ""
+"La synchronisation de l'heure ne se termine pas, veuillez consulter la "
+"documentation afin de trouver des solutions de contournement : https://"
+"archinstall.readthedocs.io/"
-msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
-msgstr "Ignorer l'attente de la synchronisation automatique de l'heure (cela peut entraîner des problèmes si l'heure n'est pas synchronisée lors de l'installation)"
+msgid ""
+"Skipping waiting for automatic time sync (this can cause issues if time is "
+"out of sync during installation)"
+msgstr ""
+"Ignorer l'attente de la synchronisation automatique de l'heure (cela peut "
+"entraîner des problèmes si l'heure n'est pas synchronisée lors de "
+"l'installation)"
-msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
-msgstr "En attente de la fin de la synchronisation du trousseau de clés d'Arch Linux (archlinux-keyring-wkd-sync) de finir."
+msgid ""
+"Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
+msgstr ""
+"En attente de la fin de la synchronisation du trousseau de clés d'Arch Linux "
+"(archlinux-keyring-wkd-sync) de finir."
msgid "Selected profiles: "
msgstr "Profils sélectionnés : "
-msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
-msgstr "La synchronisation de l'heure ne se termine pas, veuillez consulter la documentation afin de trouver des solutions de contournement : https://archinstall.readthedocs.io/"
+msgid ""
+"Time synchronization not completing, while you wait - check the docs for "
+"workarounds: https://archinstall.readthedocs.io/"
+msgstr ""
+"La synchronisation de l'heure ne se termine pas, veuillez consulter la "
+"documentation afin de trouver des solutions de contournement : https://"
+"archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "Marquer/Démarquer comme nodatacow"
msgid "Would you like to use compression or disable CoW?"
-msgstr "Souhaitez-vous utiliser la compression ou désactiver la copie à l'écriture (CoW) ?"
+msgstr ""
+"Souhaitez-vous utiliser la compression ou désactiver la copie à l'écriture "
+"(CoW) ?"
msgid "Use compression"
msgstr "Utiliser la compression"
@@ -1298,8 +1587,12 @@ msgstr "Utiliser la compression"
msgid "Disable Copy-on-Write"
msgstr "Désactiver la copie à l'écriture (CoW)"
-msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway"
-msgstr "Fournit une sélection d'environnements de bureau et de gestionnaires de fenêtres en mosaïque, par ex. GNOME, KDE Plasma, Sway"
+msgid ""
+"Provides a selection of desktop environments and tiling window managers, "
+"e.g. GNOME, KDE Plasma, Sway"
+msgstr ""
+"Fournit une sélection d'environnements de bureau et de gestionnaires de "
+"fenêtres en mosaïque, par ex. GNOME, KDE Plasma, Sway"
#, python-brace-format
msgid "Configuration type: {}"
@@ -1308,11 +1601,18 @@ msgstr "Type de configuration : {}"
msgid "LVM configuration type"
msgstr "Type de configuration LVM"
-msgid "LVM disk encryption with more than 2 partitions is currently not supported"
-msgstr "Le chiffrement de disque LVM avec plus de 2 partitions n'est actuellement pas pris en charge"
+msgid ""
+"LVM disk encryption with more than 2 partitions is currently not supported"
+msgstr ""
+"Le chiffrement de disque LVM avec plus de 2 partitions n'est actuellement "
+"pas pris en charge"
-msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
-msgstr "Utiliser NetworkManager (nécessaire pour configurer internet graphiquement dans GNOME et KDE Plasma)"
+msgid ""
+"Use NetworkManager (necessary to configure internet graphically in GNOME and "
+"KDE Plasma)"
+msgstr ""
+"Utiliser NetworkManager (nécessaire pour configurer internet graphiquement "
+"dans GNOME et KDE Plasma)"
msgid "Select a LVM option"
msgstr "Sélectionner une option LVM"
@@ -1381,7 +1681,9 @@ msgid "HSM"
msgstr "Gestion hiérarchique du stockage (HSM)"
msgid "Enter disk encryption password (leave blank for no encryption)"
-msgstr "Entrer le mot de passe de chiffrement du disque (laisser vide pour aucun chiffrement)"
+msgstr ""
+"Entrer le mot de passe de chiffrement du disque (laisser vide pour aucun "
+"chiffrement)"
msgid "Disk encryption password"
msgstr "Mot de passe de chiffrement du disque"
@@ -1413,8 +1715,11 @@ msgstr "Répertoire de montage racine"
msgid "Select language"
msgstr "Sélectionner la langue"
-msgid "Write additional packages to install (space separated, leave blank to skip)"
-msgstr "Écrire les paquets supplémentaires à installer (séparés par des espaces, laisser vide pour ignorer)"
+msgid ""
+"Write additional packages to install (space separated, leave blank to skip)"
+msgstr ""
+"Écrire les paquets supplémentaires à installer (séparés par des espaces, "
+"laisser vide pour ignorer)"
msgid "Invalid download number"
msgstr "Numéro de téléchargement invalide"
@@ -1445,13 +1750,15 @@ msgid "IP address"
msgstr "Adresse IP"
msgid "Enter your gateway (router) IP address (leave blank for none)"
-msgstr "Entrer l'adresse IP de votre passerelle (routeur) (laisser vide pour aucun)"
+msgstr ""
+"Entrer l'adresse IP de votre passerelle (routeur) (laisser vide pour aucun)"
msgid "Gateway address"
msgstr "Adresse de passerelle"
msgid "Enter your DNS servers with space separated (leave blank for none)"
-msgstr "Entrer vos serveurs DNS séparés par des espaces (laisser vide pour aucun)"
+msgstr ""
+"Entrer vos serveurs DNS séparés par des espaces (laisser vide pour aucun)"
msgid "DNS servers"
msgstr "Serveurs DNS"
@@ -1472,7 +1779,9 @@ msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "Le pilote propriétaire Nvidia n'est pas supporté par Sway."
msgid "It is likely that you will run into issues, are you okay with that?"
-msgstr "Il est probable que vous rencontriez des problèmes, êtes-vous d'accord avec cela ?"
+msgstr ""
+"Il est probable que vous rencontriez des problèmes, êtes-vous d'accord avec "
+"cela ?"
msgid "Main profile"
msgstr "Profil principal"
@@ -1492,8 +1801,12 @@ msgstr "Voulez-vous continuer ?"
msgid "Directory"
msgstr "Répertoire"
-msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)"
-msgstr "Entrer un répertoire pour que la(les) configuration(s) soit(ent) enregistrée(s) (complétion par tabulation activée)"
+msgid ""
+"Enter a directory for the configuration(s) to be saved (tab completion "
+"enabled)"
+msgstr ""
+"Entrer un répertoire pour que la(les) configuration(s) soit(ent) "
+"enregistrée(s) (complétion par tabulation activée)"
#, python-brace-format
msgid "Do you want to save the configuration file(s) to {}?"
@@ -1505,8 +1818,12 @@ msgstr "Activé"
msgid "Disabled"
msgstr "Désactivé"
-msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
-msgstr "Veuillez soumettre ce problème (et fichier) à https://github.com/archlinux/archinstall/issues"
+msgid ""
+"Please submit this issue (and file) to https://github.com/archlinux/"
+"archinstall/issues"
+msgstr ""
+"Veuillez soumettre ce problème (et fichier) à https://github.com/archlinux/"
+"archinstall/issues"
msgid "Mirror name"
msgstr "Nom du miroir"
@@ -1574,8 +1891,10 @@ msgstr "Marquer/Démarquer comme XBOOTLDR"
msgid "Loading packages..."
msgstr "Chargement des paquets..."
-msgid "Select any packages from the below list that should be installed additionally"
-msgstr "Sélectionner les paquets à installer en supplément dans la liste ci-dessous"
+msgid ""
+"Select any packages from the below list that should be installed additionally"
+msgstr ""
+"Sélectionner les paquets à installer en supplément dans la liste ci-dessous"
msgid "Add a custom repository"
msgstr "Ajouter un dépôt personnalisé"
@@ -1629,7 +1948,7 @@ msgid "Only ASCII characters are supported"
msgstr "Seuls les caractères ASCII sont pris en charge"
msgid "Show help"
-msgstr "Afficher de l'aide"
+msgstr "Afficher l’aide"
msgid "Exit help"
msgstr "Quitter l’aide"
@@ -1680,146 +1999,138 @@ msgid "Exit search mode"
msgstr "Quitter le mode de recherche"
msgid "General"
-msgstr ""
+msgstr "Général"
-#, fuzzy
msgid "Navigation"
-msgstr "Enregistrer la configuration"
+msgstr "Navigation"
-#, fuzzy
msgid "Selection"
-msgstr "Sélectionner des régions"
+msgstr "Sélection"
msgid "Search"
-msgstr ""
+msgstr "Rechercher"
msgid "Down"
-msgstr ""
+msgstr "Bas"
msgid "Up"
-msgstr ""
+msgstr "Haut"
-#, fuzzy
msgid "Confirm"
-msgstr "Confirmer et quitter"
+msgstr "Confirmer"
-#, fuzzy
msgid "Focus right"
-msgstr "Déplacer vers la droite"
+msgstr "Focus à droite"
-#, fuzzy
msgid "Focus left"
-msgstr "Déplacer vers la gauche"
+msgstr "Focus à gauche"
msgid "Toggle"
-msgstr ""
+msgstr "Basculer"
-#, fuzzy
msgid "Show/Hide help"
-msgstr "Afficher de l'aide"
+msgstr "Afficher/Masquer l’aide"
msgid "Quit"
-msgstr ""
+msgstr "Quitter"
msgid "First"
-msgstr ""
+msgstr "Premier"
msgid "Last"
-msgstr ""
+msgstr "Dernier"
-#, fuzzy
msgid "Select"
-msgstr "Sélectionner des régions"
+msgstr "Sélectionner"
msgid "Page Up"
-msgstr ""
+msgstr "Page précédente"
msgid "Page Down"
-msgstr ""
+msgstr "Page suivante"
-#, fuzzy
msgid "Page up"
-msgstr "Groupe de paquets :"
+msgstr "Page précédente"
-#, fuzzy
msgid "Page down"
-msgstr "Déplacer vers le bas"
+msgstr "Page suivante"
msgid "Page Left"
-msgstr ""
+msgstr "Page à gauche"
-#, fuzzy
msgid "Page Right"
-msgstr "Déplacer vers la droite"
+msgstr "Page à droite"
msgid "Cursor up"
-msgstr ""
+msgstr "Curseur vers le haut"
-#, fuzzy
msgid "Cursor down"
-msgstr "Déplacer vers le bas"
+msgstr "Curseur vers le bas"
-#, fuzzy
msgid "Cursor right"
-msgstr "Déplacer vers la droite"
+msgstr "Curseur vers la droite"
-#, fuzzy
msgid "Cursor left"
-msgstr "Déplacer vers la gauche"
+msgstr "Curseur vers la gauche"
msgid "Top"
-msgstr ""
+msgstr "Haut"
msgid "Bottom"
-msgstr ""
+msgstr "Bas"
msgid "Home"
-msgstr ""
+msgstr "Début"
-#, fuzzy
msgid "End"
-msgstr "Activé"
+msgstr "Fin"
-#, fuzzy
msgid "Toggle option"
-msgstr "Options de sous-volume"
+msgstr "Basculer l’option"
msgid "Scroll Up"
-msgstr ""
+msgstr "Défilement vers le haut"
-#, fuzzy
msgid "Scroll Down"
-msgstr "Faire défiler l’aperçu vers le bas"
+msgstr "Défilement vers le bas"
msgid "Scroll Left"
-msgstr ""
+msgstr "Défilement vers la gauche"
msgid "Scroll Right"
-msgstr ""
+msgstr "Défilement vers la droite"
msgid "Scroll Home"
-msgstr ""
+msgstr "Défilement au début"
msgid "Scroll End"
-msgstr ""
+msgstr "Défilement à la fin"
msgid "Focus Next"
-msgstr ""
+msgstr "Élément suivant (focus)"
msgid "Focus Previous"
-msgstr ""
+msgstr "Élément précédent (focus)"
msgid "Copy selected text"
-msgstr ""
+msgstr "Copier le texte sélectionné"
-msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
-msgstr "labwc a besoin d’accéder à votre siège (ensemble d’appareils matériels, c’est-à-dire clavier, souris, etc.)"
+msgid ""
+"labwc needs access to your seat (collection of hardware devices i.e. "
+"keyboard, mouse, etc)"
+msgstr ""
+"labwc a besoin d’accéder à votre siège (ensemble d’appareils matériels, "
+"c’est-à-dire clavier, souris, etc.)"
msgid "Choose an option to give labwc access to your hardware"
msgstr "Choisir une option pour donner à labwc l’accès à votre matériel"
-msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
-msgstr "niri a besoin d’accéder à vos périphériques (ensemble d’appareils matériels, c’est-à-dire clavier, souris, etc.)"
+msgid ""
+"niri needs access to your seat (collection of hardware devices i.e. "
+"keyboard, mouse, etc)"
+msgstr ""
+"niri a besoin d’accéder à vos périphériques (ensemble d’appareils matériels, "
+"c’est-à-dire clavier, souris, etc.)"
msgid "Choose an option to give niri access to your hardware"
msgstr "Choisir une option pour donner à niri l’accès à votre matériel"
@@ -1830,58 +2141,49 @@ msgstr "Marquer/Démarquer comme ESP"
msgid "Package group:"
msgstr "Groupe de paquets :"
-#, fuzzy
msgid "Exit archinstall"
-msgstr "Sortir d'Archinstall"
+msgstr "Quitter archinstall"
-#, fuzzy
msgid "Reboot system"
msgstr "Redémarrer le système"
-#, fuzzy
msgid "chroot into installation for post-installation configurations"
-msgstr "Souhaitez-vous chrooter dans l'installation nouvellement créée et effectuer la configuration post-installation ?"
+msgstr ""
+"Entrer en chroot dans l’installation pour effectuer les configurations post-"
+"installation"
msgid "Installation completed"
-msgstr "Installation complétée"
+msgstr "Installation terminée"
-#, fuzzy
msgid "What would you like to do next?"
-msgstr "Voulez-vous continuer ?"
+msgstr "Quelle action souhaitez-vous effectuer ensuite ?"
-#, fuzzy, python-brace-format
+#, python-brace-format
msgid "Select which mode to configure for \"{}\""
-msgstr "Sélectionner le mode à configurer pour \"{}\" ou ignorer pour utiliser le mode par défaut \"{}\""
+msgstr "Sélectionner le mode à configurer pour \"{}\""
-#, fuzzy
msgid "Incorrect credentials file decryption password"
-msgstr "Mot de passe de déchiffrement du disque"
+msgstr "Mot de passe de déchiffrement du fichier d’identifiants incorrect"
-#, fuzzy
msgid "Incorrect password"
msgstr "Mot de passe incorrect"
-#, fuzzy
msgid "Credentials file decryption password"
-msgstr "Mot de passe de déchiffrement du disque"
+msgstr "Mot de passe de déchiffrement du fichier d’identifiants"
-#, fuzzy
msgid "Do you want to encrypt the user_credentials.json file?"
-msgstr "Voulez-vous enregistrer le(s) fichier(s) de configuration dans {} ?"
+msgstr "Voulez-vous chiffrer le fichier user_credentials.json ?"
-#, fuzzy
msgid "Credentials file encryption password"
-msgstr "Mot de passe de l'encryption du disque"
+msgstr "Mot de passe de chiffrement du fichier d’identifiants"
-#, fuzzy, python-brace-format
+#, python-brace-format
msgid "Repositories: {}"
-msgstr "Nom du dépôt"
+msgstr "Dépôts : {}"
-#, fuzzy
msgid "New version available"
msgstr "Nouvelle version disponible"
-#, fuzzy
msgid "Passwordless login"
msgstr "Connexion sans mot de passe"
@@ -1891,20 +2193,17 @@ msgstr "Connexion à deux facteurs"
msgid "Bluetooth"
msgstr "Bluetooth"
-#, fuzzy
msgid "Would you like to configure Bluetooth?"
-msgstr "Voulez-vous configurer le Bluetooth ?"
+msgstr "Souhaitez-vous configurer le Bluetooth ?"
msgid "Print service"
-msgstr ""
+msgstr "Service d’impression"
-#, fuzzy
msgid "Would you like to configure the print service?"
-msgstr "Voulez-vous configurer le Bluetooth ?"
+msgstr "Souhaitez-vous configurer le service d’impression ?"
-#, fuzzy
msgid "Power management"
-msgstr "Gestion des partitions : {}"
+msgstr "Gestion de l’alimentation"
msgid "Authentication"
msgstr "Authentification"
@@ -1913,7 +2212,7 @@ msgid "Applications"
msgstr "Applications"
msgid "U2F login method: "
-msgstr "Méthode\tde connexion U2F : "
+msgstr "Méthode de connexion U2F : "
msgid "Passwordless sudo: "
msgstr "Sudo sans mot de passe : "
@@ -1925,14 +2224,13 @@ msgstr "Type de\tsnapshot Btrfs : {}"
msgid "Syncing the system..."
msgstr "Synchronisation du système..."
-#, fuzzy
msgid "Value cannot be empty"
msgstr "La valeur ne peut pas être vide"
msgid "Snapshot type"
msgstr "Type de snapshot"
-#, fuzzy, python-brace-format
+#, python-brace-format
msgid "Snapshot type: {}"
msgstr "Type de snapshot : {}"
@@ -1945,335 +2243,328 @@ msgstr "Pas de périphériques U2F trouvés"
msgid "U2F Login Method"
msgstr "Méthode de connexion U2F"
-#, fuzzy
msgid "Enable passwordless sudo?"
msgstr "Activer sudo sans mot de passe ?"
-#, fuzzy, python-brace-format
+#, python-brace-format
msgid "Setting up U2F device for user: {}"
-msgstr "Configuration du périphérique U2F pour l'utilisateur : {}"
+msgstr "Configuration d’un périphérique U2F pour l’utilisateur : {}"
-msgid "You may need to enter the PIN and then touch your U2F device to register it"
-msgstr "Vous devez peut-être entrer le code PIN, puis toucher votre périphérique U2F pour l'enregistrer"
+msgid ""
+"You may need to enter the PIN and then touch your U2F device to register it"
+msgstr ""
+"Vous devez peut-être entrer le code PIN, puis toucher votre périphérique U2F "
+"pour l'enregistrer"
msgid "Starting device modifications in "
-msgstr ""
+msgstr "Démarrage des modifications du périphérique dans "
-#, fuzzy
msgid "No network connection found"
-msgstr "Aucune configuration réseau"
+msgstr "Aucune connexion réseau détectée"
-#, fuzzy
msgid "Would you like to connect to a Wifi?"
-msgstr "Voulez-vous continuer ?"
+msgstr "Souhaitez-vous vous connecter à un réseau Wi-Fi ?"
-#, fuzzy
msgid "No wifi interface found"
-msgstr "Configurer les interfaces"
+msgstr "Aucune interface Wi-Fi détectée"
-#, fuzzy
msgid "Select wifi network to connect to"
-msgstr "Sélectionner une interface réseau à configurer"
+msgstr "Sélectionner le réseau Wi-Fi auquel vous connecter"
msgid "Scanning wifi networks..."
-msgstr ""
+msgstr "Recherche des réseaux Wi-Fi..."
-#, fuzzy
msgid "No wifi networks found"
-msgstr "Aucune configuration réseau"
+msgstr "Aucun réseau Wi-Fi trouvé"
msgid "Failed setting up wifi"
-msgstr ""
+msgstr "Échec de la configuration du Wi-Fi"
-#, fuzzy
msgid "Enter wifi password"
-msgstr "Entrer un mot de passe : "
+msgstr "Entrer le mot de passe Wi-Fi"
msgid "Ok"
-msgstr ""
+msgstr "Ok"
msgid "Removable"
-msgstr ""
+msgstr "Amovible"
msgid "Install to removable location"
-msgstr ""
+msgstr "Installer sur un support amovible"
msgid "Will install to /EFI/BOOT/ (removable location)"
-msgstr ""
+msgstr "Installation dans /EFI/BOOT/ (emplacement amovible)"
msgid "Will install to standard location with NVRAM entry"
-msgstr ""
+msgstr "Installation dans l’emplacement standard avec entrée NVRAM"
-msgid "Would you like to install the bootloader to the default removable media search location?"
+msgid ""
+"Would you like to install the bootloader to the default removable media "
+"search location?"
msgstr ""
+"Souhaitez-vous installer le chargeur d’amorçage dans l’emplacement de "
+"recherche par défaut des supports amovibles ?"
-msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
+msgid ""
+"This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is "
+"useful for:"
msgstr ""
+"Cela installe le chargeur d’amorçage dans /EFI/BOOT/BOOTX64.EFI (ou "
+"équivalent), ce qui est utile pour :"
msgid "USB drives or other portable external media."
-msgstr ""
+msgstr "Clés USB ou autres supports externes portables."
msgid "Systems where you want the disk to be bootable on any computer."
msgstr ""
+"Systèmes où vous souhaitez que le disque soit amorçable sur n’importe quel "
+"ordinateur."
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr ""
+"Firmware ne prenant pas correctement en charge les entrées de démarrage "
+"NVRAM."
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr ""
+"Installation dans /EFI/BOOT/ (emplacement amovible, option sûre par défaut)"
msgid "Will install to custom location with NVRAM entry"
-msgstr ""
+msgstr "Installation dans un emplacement personnalisé avec entrée NVRAM"
-msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
+msgid ""
+"Firmware that does not properly support NVRAM boot entries like most MSI "
+"motherboards,"
msgstr ""
+"Firmware ne prenant pas correctement en charge les entrées de démarrage "
+"NVRAM, comme la plupart des cartes mères MSI, "
msgid "most Apple Macs, many laptops..."
-msgstr ""
+msgstr "la plupart des Mac Apple, de nombreux ordinateurs portables…"
-#, fuzzy
msgid "Language"
-msgstr "Langue locale"
+msgstr "Langue"
msgid "Compression algorithm"
+msgstr "Algorithme de compression"
+
+msgid ""
+"Only packages such as base, sudo, linux, linux-firmware, efibootmgr and "
+"optional profile packages are installed."
msgstr ""
+"Seuls des paquets tels que base, sudo, linux, linux-firmware, efibootmgr et "
+"les paquets de profil optionnels sont installés."
-#, fuzzy
-msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
-msgstr "Seuls les paquets tels que base, base-devel, linux, linux-firmware, efibootmgr et les paquets de profil optionnels sont installés."
-
-#, fuzzy
msgid "Select zram compression algorithm:"
-msgstr "Sélectionner un point de montage :"
+msgstr "Sélectionner l’algorithme de compression zram :"
msgid "Use Network Manager (default backend)"
-msgstr ""
+msgstr "Utiliser Network Manager (backend par défaut)"
msgid "Use Network Manager (iwd backend)"
-msgstr ""
+msgstr "Utiliser Network Manager (backend iwd)"
msgid "Firewall"
-msgstr ""
+msgstr "Pare-feu"
-#, fuzzy
msgid "Additional fonts"
-msgstr "Dépôts supplémentaires"
+msgstr "Polices supplémentaires"
-#, fuzzy
msgid "Select font packages to install"
-msgstr "Veuillez choisir le greeter (interface de connexion) à installer"
+msgstr "Sélectionner les paquets de polices à installer"
msgid "Unicode font coverage for most languages"
-msgstr ""
+msgstr "Couverture Unicode des polices pour la plupart des langues"
msgid "color emoji for browsers and apps"
-msgstr ""
+msgstr "émojis en couleur pour les navigateurs et les applications"
msgid "Chinese, Japanese, Korean characters"
-msgstr ""
+msgstr "Caractères chinois, japonais et coréens"
-#, fuzzy
msgid "Select audio configuration"
-msgstr "Enregistrer la configuration utilisateur"
+msgstr "Sélectionner la configuration audio"
-#, fuzzy
msgid "Enter credentials file decryption password"
-msgstr "Mot de passe de déchiffrement du disque"
+msgstr "Entrer le mot de passe de déchiffrement du fichier d’identifiants"
-#, fuzzy
msgid "Enter root password"
-msgstr "Entrer un mot de passe : "
+msgstr "Entrer le mot de passe root"
msgid "Select bootloader to install"
-msgstr ""
+msgstr "Sélectionner le chargeur d’amorçage à installer"
-#, fuzzy
msgid "Configuration preview"
-msgstr "Configuration"
+msgstr "Aperçu de la configuration"
-#, fuzzy
msgid "Enter a directory for the configuration(s) to be saved"
-msgstr "Saisir un répertoire pour la ou les configuration(s) à enregistrer : "
+msgstr "Entrer un répertoire pour enregistrer la ou les configurations"
-#, fuzzy
msgid "Select encryption type"
-msgstr "Type de chiffrement"
+msgstr "Sélectionner le type de chiffrement"
-#, fuzzy
msgid "Select disks for the installation"
-msgstr "Nom d'hôte souhaité pour l'installation : "
+msgstr "Sélectionner les disques pour l’installation"
-#, fuzzy
msgid "Enter a mountpoint"
-msgstr "Sélectionner un point de montage :"
+msgstr "Entrer un point de montage"
-#, fuzzy, python-brace-format
+#, python-brace-format
msgid "Enter a size (default: {}): "
-msgstr "Saisir le secteur de fin (par défaut : secteur {}) : "
+msgstr "Entrer une taille (par défaut : {}) : "
-#, fuzzy
msgid "Enter subvolume name"
-msgstr "Nom du sous-volume"
+msgstr "Entrer le nom du sous-volume"
-#, fuzzy
msgid "Enter subvolume mountpoint"
-msgstr "Point de montage du sous-volume"
+msgstr "Entrer le point de montage du sous-volume"
-#, fuzzy
msgid "Select a disk configuration"
-msgstr "Configuration du disque"
+msgstr "Sélectionner une configuration de disque"
-#, fuzzy
msgid "Enter root mount directory"
-msgstr "Répertoire de montage racine"
+msgstr "Entrer le répertoire de montage racine"
msgid "You will use whatever drive-setup is mounted at the specified directory"
msgstr ""
+"Vous utiliserez toute configuration de disque montée dans le répertoire "
+"spécifié"
msgid "WARNING: Archinstall won't check the suitability of this setup"
msgstr ""
+"AVERTISSEMENT : Archinstall ne vérifiera pas la compatibilité de cette "
+"configuration"
-#, fuzzy
msgid "Select main filesystem"
-msgstr "Changer le système de fichiers"
+msgstr "Sélectionner le système de fichiers principal"
msgid "Enter a hostname"
-msgstr ""
+msgstr "Entrer un nom d’hôte"
-#, fuzzy
msgid "Select timezone"
-msgstr "Sélectionner un fuseau horaire"
+msgstr "Sélectionner le fuseau horaire"
-#, fuzzy
msgid "Enter the number of parallel downloads to be enabled"
-msgstr ""
-"Saisir le nombre de téléchargements parallèles à activer.\n"
-"\n"
-"Note :\n"
+msgstr "Entrer le nombre de téléchargements simultanés à activer"
#, python-brace-format
msgid "Value must be between 1 and {}"
-msgstr ""
+msgstr "La valeur doit être comprise entre 1 et {}"
-#, fuzzy
msgid "Select which kernel(s) to install"
-msgstr "Veuillez choisir le greeter (interface de connexion) à installer"
+msgstr "Sélectionner le ou les noyaux à installer"
-#, fuzzy
msgid "Enter a respository name"
-msgstr "Nom du dépôt"
+msgstr "Entrer un nom de dépôt"
-#, fuzzy
msgid "Enter the repository url"
-msgstr "Modifier le dépôt personnalisé"
+msgstr "Entrer l’URL du dépôt"
-#, fuzzy
msgid "Enter server url"
-msgstr "URL du serveur"
+msgstr "Entrer l’URL du serveur"
-#, fuzzy
msgid "Select mirror regions to be enabled"
-msgstr "Régions de miroirs sélectionnées"
+msgstr "Sélectionner les régions de miroirs à activer"
-#, fuzzy
msgid "Select optional repositories to be enabled"
-msgstr "Choisir les dépôts supplémentaires en option à activer"
+msgstr "Sélectionner les dépôts optionnels à activer"
-#, fuzzy
msgid "Select an interface"
-msgstr "Supprimer l'interface"
+msgstr "Sélectionner une interface"
-#, fuzzy
msgid "Choose network configuration"
-msgstr "Aucune configuration réseau"
+msgstr "Choisir la configuration réseau"
-#, fuzzy
msgid "No packages found"
-msgstr "Pas de périphériques U2F trouvés"
+msgstr "Aucun paquet trouvé"
-#, fuzzy
msgid "Select which greeter to install"
-msgstr "Veuillez choisir le greeter (interface de connexion) à installer"
+msgstr "Sélectionner le gestionnaire d’accueil à installer"
-#, fuzzy
msgid "Select a profile type"
-msgstr "Profils sélectionnés : "
+msgstr "Sélectionner un type de profil"
-#, fuzzy
msgid "Enter new password"
-msgstr "Entrer un mot de passe : "
+msgstr "Entrer un nouveau mot de passe"
msgid "Enter a username"
-msgstr ""
+msgstr "Entrer un nom d’utilisateur"
-#, fuzzy
msgid "Enter a password"
-msgstr "Entrer un mot de passe : "
+msgstr "Entrer un mot de passe"
-#, fuzzy
msgid "The password did not match, please try again"
-msgstr "Le mot de passe de confirmation ne correspond pas, veuillez réessayer"
+msgstr "Les mots de passe ne correspondent pas, veuillez réessayer"
msgid "Password strength: Weak"
-msgstr ""
+msgstr "Force du mot de passe : Faible"
msgid "Password strength: Moderate"
-msgstr ""
+msgstr "Force du mot de passe : Modéré"
msgid "Password strength: Strong"
-msgstr ""
+msgstr "Force du mot de passe : Fort"
-msgid "The selected desktop profile requires a regular user to log in via the greeter"
+msgid ""
+"The selected desktop profile requires a regular user to log in via the "
+"greeter"
msgstr ""
+"Le profil de bureau sélectionné nécessite qu’un utilisateur standard se "
+"connecte via le gestionnaire d’accueil"
-#, fuzzy, python-brace-format
+#, python-brace-format
msgid "Environment type: {} {}"
-msgstr "Type d'environnement : {}"
+msgstr "Type d’environnement : {} {}"
-#, fuzzy
msgid "Input cannot be empty"
-msgstr "La valeur ne peut pas être vide"
+msgstr "La saisie ne peut pas être vide"
msgid "Recommended"
-msgstr ""
+msgstr "Recommandé"
-#, fuzzy
msgid "Package"
-msgstr "Groupe de paquets :"
+msgstr "Groupe de paquets"
msgid "Curated selection of KDE Plasma packages"
-msgstr ""
+msgstr "Sélection de paquets KDE Plasma soigneusement choisie"
msgid "Dependencies"
-msgstr ""
+msgstr "Dépendances"
-#, fuzzy
msgid "Package group"
-msgstr "Groupe de paquets :"
+msgstr "Groupe de paquets"
msgid "Extensive KDE Plasma installation"
-msgstr ""
+msgstr "Installation complète de KDE Plasma"
-#, fuzzy
msgid "Packages in group"
-msgstr "Groupe de paquets :"
+msgstr "Paquets dans le groupe"
msgid "Minimal KDE Plasma installation"
-msgstr ""
+msgstr "Installation minimale de KDE Plasma"
-#, fuzzy
msgid "Description"
-msgstr "Chiffrement du disque"
+msgstr "Description"
-#, fuzzy
msgid "Select a flavor of KDE Plasma to install"
-msgstr "Veuillez choisir le greeter (interface de connexion) à installer"
+msgstr "Sélectionner une variante de KDE Plasma à installer"
msgid "Arial/Times/Courier replacement, Cyrillic support for Steam/games"
msgstr ""
+"Remplacement d’Arial/Times/Courier, prise en charge du cyrillique pour Steam/"
+"jeux"
msgid "wide Unicode coverage, good fallback font"
+msgstr "large prise en charge Unicode, bonne police de secours"
+
+#, python-brace-format
+msgid "Setting up U2F login: {u2f_config.u2f_login_method.value}"
msgstr ""
+"Mise en place de la connexion U2F : {u2f_config.u2f_login_method.value}"
+
+#, python-brace-format
+msgid "Default: {DEFAULT_ITER_TIME}ms, Recommended range: 1000-60000"
+msgstr "Par défaut : {DEFAULT_ITER_TIME} ms, plage recommandée : 1000–60000"
#, python-brace-format
#~ msgid "Edit {origkey} :"
diff --git a/archinstall/locales/ja/LC_MESSAGES/base.mo b/archinstall/locales/ja/LC_MESSAGES/base.mo
index 3ad3d1a2..bfdce38d 100644
Binary files a/archinstall/locales/ja/LC_MESSAGES/base.mo and b/archinstall/locales/ja/LC_MESSAGES/base.mo differ
diff --git a/archinstall/locales/ja/LC_MESSAGES/base.po b/archinstall/locales/ja/LC_MESSAGES/base.po
index 8919d213..3b26ff9b 100644
--- a/archinstall/locales/ja/LC_MESSAGES/base.po
+++ b/archinstall/locales/ja/LC_MESSAGES/base.po
@@ -63,10 +63,10 @@ msgid "Write additional packages to install (space separated, leave blank to ski
msgstr "追加でインストールするパッケージを書く(スペースで区切る。無記入でスキップ): "
msgid "Copy ISO network configuration to installation"
-msgstr "ISO ネットワーク設定をインストール環境にコピー"
+msgstr "ISO のネットワーク設定をインストール環境にコピー"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
-msgstr "NetworkManager を使用(GNOME と KDE でインターネットをグラフィカルに設定するのに必要)"
+msgstr "ネットワークマネージャーを使用(GNOME と KDE でインターネットをグラフィカルに設定するのに必要)"
msgid "Select one network interface to configure"
msgstr "設定するネットワークインターフェイスを 1 つ選択"
@@ -224,7 +224,7 @@ msgid "Choose which locale language to use"
msgstr "使用するロケール言語を選択"
msgid "Choose which locale encoding to use"
-msgstr "使用するロケール エンコーディングを選択"
+msgstr "使用するロケールエンコーディングを選択"
msgid "Select one of the values shown below: "
msgstr "以下の値のいずれかを選択: "
@@ -449,7 +449,7 @@ msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate
msgstr "Pacman はすでに実行されており、終了するまで最大 10 分間待機します。"
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
-msgstr "既存の pacman のロックが終了しませんでした。Archinstall を使用する前に、既存の pacman セッションをクリーンアップしてください。"
+msgstr "既存の pacman のロックが終了しませんでした。archinstall を使用する前に、既存の pacman セッションをすべてクリーンアップしてください。"
msgid "Choose which optional additional repositories to enable"
msgstr "オプションで有効にする追加リポジトリを選択"
@@ -823,6 +823,19 @@ msgstr "無効な入力です!有効な入力を使用して再試行してく
msgid "Parallel Downloads"
msgstr "並行ダウンロード"
+msgid "Pacman"
+msgstr "Pacman"
+
+msgid "Color"
+msgstr "カラー"
+
+#, python-brace-format
+msgid "Enter the number of parallel downloads (1-{})"
+msgstr "並列ダウンロード数を入力 (1-{})"
+
+msgid "Enable colored output for pacman"
+msgstr "pacman でカラー出力を有効にする"
+
msgid "ESC to skip"
msgstr "Esc でスキップ"
@@ -950,7 +963,7 @@ msgid "Encryption type"
msgstr "暗号化のタイプ"
msgid "Iteration time"
-msgstr "反復時間"
+msgstr "イテレーション時間"
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr "LUKS 暗号化のイテレーション時間(ミリ秒単位)を入力"
@@ -1030,7 +1043,7 @@ msgstr "選択したプロファイルにインストールするグリーター
#, python-brace-format
msgid "Environment type: {}"
-msgstr "環境のタイプ: {}"
+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 "プロプライエタリの Nvidia ドライバーは Sway ではサポートされていません。問題が発生する可能性がありますが、よろしいですか?"
@@ -1173,7 +1186,7 @@ msgid "Locales"
msgstr "ロケール"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
-msgstr "NetworkManager を使用(GNOME と KDE でインターネットをグラフィカルに設定するのに必要)"
+msgstr "ネットワークマネージャーを使用(GNOME と KDE でインターネットをグラフィカルに設定するのに必要)"
msgid "Total: {} / {}"
msgstr "全体: {} / {}"
@@ -1296,7 +1309,7 @@ msgid "LVM disk encryption with more than 2 partitions is currently not supporte
msgstr "パーティションが2個を超える場合の LVM ディスク暗号化は、現在サポートしていません"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
-msgstr "NetworkManager を使用する(GNOME と KDE Plasma でインターネットをグラフィカルに設定するのに必要)"
+msgstr "ネットワークマネージャーを使用(GNOME と KDE Plasma でインターネットをグラフィカルに設定するのに必要)"
msgid "Select a LVM option"
msgstr "LVM のオプションを選択"
@@ -1550,7 +1563,7 @@ msgid "The specified configuration will be applied"
msgstr "指定された設定が適用されます"
msgid "Wipe"
-msgstr "ワイプ"
+msgstr "消去"
msgid "Mark/Unmark as XBOOTLDR"
msgstr "XBOOTLDR としてマーク/マーク解除"
@@ -1663,6 +1676,123 @@ 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 "labwc はお使いの Seat(キーボード、マウスなどのハードウェアデバイス群)にアクセスする必要があります"
@@ -1873,14 +2003,29 @@ msgid "Select zram compression algorithm:"
msgstr "zram 圧縮アルゴリズムを選択:"
msgid "Use Network Manager (default backend)"
-msgstr "NetworkManager(デフォルトのバックエンド)を使用する"
+msgstr "Network Manager を使用(デフォルトのバックエンド)"
msgid "Use Network Manager (iwd backend)"
-msgstr "NetworkManager (iwd バックエンド) を使用する"
+msgstr "Network Manager を使用(iwd バックエンド)"
msgid "Firewall"
msgstr "ファイアウォール"
+msgid "Additional fonts"
+msgstr "追加フォント"
+
+msgid "Select font packages to install"
+msgstr "インストールするフォントパッケージを選択"
+
+msgid "Unicode font coverage for most languages"
+msgstr "ほとんどの言語をカバーする Unicode フォント"
+
+msgid "color emoji for browsers and apps"
+msgstr "ブラウザやアプリ用のカラー絵文字"
+
+msgid "Chinese, Japanese, Korean characters"
+msgstr "日本語、中国語、韓国語の文字"
+
msgid "Select audio configuration"
msgstr "オーディオ設定を選択"
@@ -1990,3 +2135,66 @@ 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 "推奨"
+
+msgid "Package"
+msgstr "パッケージ"
+
+msgid "Curated selection of KDE Plasma packages"
+msgstr "厳選した KDE Plasma パッケージ"
+
+msgid "Dependencies"
+msgstr "依存関係"
+
+msgid "Package group"
+msgstr "パッケージグループ"
+
+msgid "Extensive KDE Plasma installation"
+msgstr "広範囲の KDE Plasma インストール"
+
+msgid "Packages in group"
+msgstr "グループ内のパッケージ"
+
+msgid "Minimal KDE Plasma installation"
+msgstr "最小限の KDE Plasma インストール"
+
+msgid "Description"
+msgstr "説明"
+
+msgid "Select a flavor of KDE Plasma to install"
+msgstr "インストールする KDE Plasma のバージョンを選択"
+
+msgid "Arial/Times/Courier replacement, Cyrillic support for Steam/games"
+msgstr "Arial/Times/Courier フォントの代替、Steam/ゲームにおけるキリル文字のサポート"
+
+msgid "wide Unicode coverage, good fallback font"
+msgstr "Unicode を広くカバーする良い代替フォント"
+
+#, python-brace-format
+msgid "Setting up U2F login: {u2f_config.u2f_login_method.value}"
+msgstr "U2F ログインの設定: {u2f_config.u2f_login_method.value}"
+
+#, python-brace-format
+msgid "Default: {DEFAULT_ITER_TIME}ms, Recommended range: 1000-60000"
+msgstr "デフォルト: {DEFAULT_ITER_TIME}ms, 推奨範囲: 1000-60000"
diff --git a/archinstall/locales/uk/LC_MESSAGES/base.po b/archinstall/locales/uk/LC_MESSAGES/base.po
index 033b1701..71651fda 100644
--- a/archinstall/locales/uk/LC_MESSAGES/base.po
+++ b/archinstall/locales/uk/LC_MESSAGES/base.po
@@ -256,6 +256,9 @@ msgstr "Мова локалізації"
msgid "Locale encoding"
msgstr "Кодування локалізації"
+msgid "Console font"
+msgstr "Шрифт консолі"
+
msgid "Drive(s)"
msgstr "Диск(и)"
@@ -1219,6 +1222,21 @@ msgstr "Модель"
msgid "Invalid configuration: {error}"
msgstr "Неправильна конфігурація: {error}"
+msgid "Ready to install"
+msgstr "Готово до встановлення"
+
+msgid "Disks"
+msgstr "Диски"
+
+msgid "Packages"
+msgstr "Пакети"
+
+msgid "Network"
+msgstr "Мережа"
+
+msgid "Locale"
+msgstr "Локаль"
+
msgid "Type"
msgstr "Тип"
diff --git a/archinstall/scripts/guided.py b/archinstall/scripts/guided.py
index 5cc03408..21228480 100644
--- a/archinstall/scripts/guided.py
+++ b/archinstall/scripts/guided.py
@@ -5,6 +5,7 @@ import time
from archinstall.lib.applications.application_handler import ApplicationHandler
from archinstall.lib.args import ArchConfig, ArchConfigHandler
from archinstall.lib.authentication.authentication_handler import AuthenticationHandler
+from archinstall.lib.bootloader.utils import validate_bootloader_layout
from archinstall.lib.configuration import ConfigurationOutput
from archinstall.lib.disk.filesystem import FilesystemHandler
from archinstall.lib.disk.utils import disk_layouts
@@ -211,6 +212,15 @@ def main(arch_config_handler: ArchConfigHandler | None = None) -> None:
config.write_debug()
config.save()
+ # Safety net for silent/config-file flow. The TUI menu blocks Install via
+ # GlobalMenu._validate_bootloader() before reaching this point.
+ if failure := validate_bootloader_layout(
+ arch_config_handler.config.bootloader_config,
+ arch_config_handler.config.disk_config,
+ ):
+ error(failure.description)
+ return
+
if arch_config_handler.args.dry_run:
return
diff --git a/archinstall/tui/ui/menu_item.py b/archinstall/tui/ui/menu_item.py
index ed5a16ec..4c10e275 100644
--- a/archinstall/tui/ui/menu_item.py
+++ b/archinstall/tui/ui/menu_item.py
@@ -1,4 +1,4 @@
-from collections.abc import Awaitable, Callable
+from collections.abc import Awaitable, Callable, Iterable
from dataclasses import dataclass, field
from enum import Enum
from functools import cached_property
@@ -148,7 +148,7 @@ class MenuItemGroup:
cls,
enum_cls: type[Enum],
sort_items: bool = False,
- preset: Enum | None = None,
+ preset: Iterable[Enum] | Enum | None = None,
) -> Self:
items = [MenuItem(elem.value, value=elem) for elem in enum_cls]
group = cls(items, sort_items=sort_items)
diff --git a/pyproject.toml b/pyproject.toml
index cffb51e0..95d85144 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -20,8 +20,8 @@ classifiers = [
dependencies = [
"pyparted==3.13.0",
"pydantic==2.12.5",
- "cryptography==46.0.7",
- "textual==8.2.3",
+ "cryptography==47.0.0",
+ "textual==8.2.4",
"markdown-it-py==4.0.0",
"linkify-it-py==2.1.0",
]
@@ -34,10 +34,10 @@ Source = "https://github.com/archlinux/archinstall"
[project.optional-dependencies]
log = ["systemd_python==235"]
dev = [
- "mypy==1.20.1",
+ "mypy==1.20.2",
"flake8==7.3.0",
- "pre-commit==4.5.1",
- "ruff==0.15.11",
+ "pre-commit==4.6.0",
+ "ruff==0.15.12",
"pylint==4.0.5",
"pytest==9.0.3",
]