Merge branch 'master' into fix-issue-4368-mkinitcpio
# Conflicts: # archinstall/lib/installer.py
This commit is contained in:
commit
d91fcc915b
|
|
@ -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)
|
||||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ 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
|
||||
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
|
||||
|
|
@ -58,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) -> bool:
|
||||
header = f'{tr("The specified configuration will be applied")}. '
|
||||
header += tr('Would you like to continue?') + '\n'
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ 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.bootloader.utils import validate_bootloader_layout
|
||||
from archinstall.lib.configuration import save_config
|
||||
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
|
||||
|
|
@ -22,6 +22,7 @@ from archinstall.lib.models.device import DiskLayoutConfiguration, DiskLayoutTyp
|
|||
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
|
||||
|
|
@ -103,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,
|
||||
|
|
@ -503,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
|
||||
|
|
|
|||
|
|
@ -48,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
|
||||
|
|
@ -65,7 +66,7 @@ from archinstall.lib.translationhandler import tr
|
|||
# pacman picks the first initramfs provider from the host's pacman.conf, which on non-Arch
|
||||
# hosts (EndeavourOS prefers dracut, etc.) breaks the installer's mkinitcpio() and
|
||||
# _config_uki() methods that assume mkinitcpio is present in the chroot.
|
||||
__packages__ = ['base', 'sudo', 'linux-firmware', 'mkinitcpio', 'linux', 'linux-lts', 'linux-zen', 'linux-hardened']
|
||||
__packages__ = ['base', 'sudo', 'linux-firmware', 'mkinitcpio'] + [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']
|
||||
|
|
@ -85,7 +86,7 @@ class Installer:
|
|||
It also wraps :py:func:`~archinstall.Installer.pacstrap` among other things.
|
||||
"""
|
||||
self._base_packages = base_packages or __packages__[:4]
|
||||
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)
|
||||
|
|
@ -744,6 +745,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)
|
||||
|
||||
|
|
@ -992,17 +996,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)
|
||||
|
|
@ -1341,13 +1335,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:
|
||||
|
|
@ -1927,16 +1915,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():
|
||||
|
|
@ -1947,7 +1936,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)
|
||||
|
|
@ -1962,7 +1955,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)
|
||||
|
|
@ -1974,7 +1967,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
|
||||
|
|
@ -1984,7 +1977,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
|
||||
|
|
@ -1995,12 +1988,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'
|
||||
|
|
|
|||
|
|
@ -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')
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -252,6 +252,9 @@ msgstr ""
|
|||
msgid "Locale encoding"
|
||||
msgstr ""
|
||||
|
||||
msgid "Console font"
|
||||
msgstr ""
|
||||
|
||||
msgid "Drive(s)"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -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 ""
|
||||
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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,29 +799,29 @@ 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"
|
||||
|
|
@ -832,9 +832,9 @@ msgstr "Pacman"
|
|||
msgid "Color"
|
||||
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 "Activa salida a color para pacman"
|
||||
|
|
@ -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"
|
||||
|
|
@ -1683,13 +1683,11 @@ msgstr "Salir del modo de búsqueda"
|
|||
msgid "General"
|
||||
msgstr "General"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Navigation"
|
||||
msgstr "Guardar configuración"
|
||||
msgstr "Navegación"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Selection"
|
||||
msgstr "Seleccione regiones"
|
||||
msgstr "Selección"
|
||||
|
||||
msgid "Search"
|
||||
msgstr "Buscar"
|
||||
|
|
@ -1700,22 +1698,18 @@ msgstr "Abajo"
|
|||
msgid "Up"
|
||||
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 "Alternar"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Show/Hide help"
|
||||
msgstr "Mostrar/Ocultar ayuda"
|
||||
|
||||
|
|
@ -1728,45 +1722,38 @@ msgstr "Primero"
|
|||
msgid "Last"
|
||||
msgstr "Último"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Select"
|
||||
msgstr "Seleccione regiones"
|
||||
msgstr "Seleccionar"
|
||||
|
||||
msgid "Page Up"
|
||||
msgstr "Subir"
|
||||
msgstr "Subir página"
|
||||
|
||||
msgid "Page Down"
|
||||
msgstr "Bajar"
|
||||
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 "Izquierda"
|
||||
msgstr "Página izquierda"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Page Right"
|
||||
msgstr "Mover a la derecha"
|
||||
msgstr "Página derecha"
|
||||
|
||||
msgid "Cursor up"
|
||||
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 "Arriba"
|
||||
|
|
@ -1777,38 +1764,35 @@ msgstr "Abajo"
|
|||
msgid "Home"
|
||||
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 "Mover Arriba"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Scroll Down"
|
||||
msgstr "Bajar en vista previa"
|
||||
msgstr "Deslizar hacia abajo"
|
||||
|
||||
msgid "Scroll Left"
|
||||
msgstr "Mover Izquierda"
|
||||
msgstr "Mover hacia la izquierda"
|
||||
|
||||
msgid "Scroll Right"
|
||||
msgstr "Mover Derecha"
|
||||
msgstr "Mover hacia la derecha"
|
||||
|
||||
msgid "Scroll Home"
|
||||
msgstr "Ir a Inicio"
|
||||
msgstr "Ir al Inicio"
|
||||
|
||||
msgid "Scroll End"
|
||||
msgstr "Ir al Final"
|
||||
|
||||
msgid "Focus Next"
|
||||
msgstr "Centrar Siguiente"
|
||||
msgstr "Enfocar a la siguiente"
|
||||
|
||||
msgid "Focus Previous"
|
||||
msgstr "Centrar Anterior"
|
||||
msgstr "Enfocar a la anterior"
|
||||
|
||||
msgid "Copy selected text"
|
||||
msgstr "Copiar texto seleccionado"
|
||||
|
|
@ -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,19 +2015,17 @@ 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 "Fuente unicode cubierta para la mayoría de idiomas"
|
||||
|
||||
msgid "color emoji for browsers and apps"
|
||||
msgstr "Emoji de color para navegador y apps"
|
||||
msgstr "Emoji de colores para navegadores y aplicaciones"
|
||||
|
||||
msgid "Chinese, Japanese, Korean characters"
|
||||
msgstr "Carácteres Chino, Japonés, Koreano"
|
||||
|
|
@ -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,20 +2152,18 @@ 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 "Recomendado"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Package"
|
||||
msgstr "Grupo de paquetes:"
|
||||
msgstr "Paquete"
|
||||
|
||||
msgid "Curated selection of KDE Plasma packages"
|
||||
msgstr "Selección curada de paquetes KDE Plasma"
|
||||
|
|
@ -2191,41 +2171,37 @@ msgstr "Selección curada de paquetes KDE Plasma"
|
|||
msgid "Dependencies"
|
||||
msgstr "Dependencias"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Package group"
|
||||
msgstr "Grupo de paquetes:"
|
||||
msgstr "Grupo de paquetes"
|
||||
|
||||
msgid "Extensive KDE Plasma installation"
|
||||
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 "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}"
|
||||
|
||||
#, fuzzy, python-brace-format
|
||||
#, python-brace-format
|
||||
msgid "Default: {DEFAULT_ITER_TIME}ms, Recommended range: 1000-60000"
|
||||
msgstr "Por defecto: {DEFAULT_ITER_TIME}ms, Rango recomendado 1000-60000"
|
||||
msgstr "Predeterminado: {DEFAULT_ITER_TIME}ms, Rango recomendado: 1000-60000"
|
||||
|
||||
#~ msgid "Add :"
|
||||
#~ msgstr "Añadir :"
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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 "Тип"
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue