Merge remote-tracking branch 'origin'
This commit is contained in:
commit
42b482410c
|
|
@ -29,4 +29,4 @@ venv
|
|||
.idea/**
|
||||
**/install.log
|
||||
.DS_Store
|
||||
**/cmd_history.txt
|
||||
**/cmd_history.txt
|
||||
|
|
@ -35,8 +35,12 @@ from .lib.storage import *
|
|||
from .lib.systemd import *
|
||||
from .lib.user_interaction import *
|
||||
from .lib.menu import Menu
|
||||
from .lib.menu.selection_menu import GlobalMenu
|
||||
from .lib.translation import Translation
|
||||
from .lib.menu.selection_menu import (
|
||||
GlobalMenu,
|
||||
Selector,
|
||||
GeneralMenu
|
||||
)
|
||||
from .lib.translation import Translation, DeferredTranslation
|
||||
from .lib.plugins import plugins, load_plugin # This initiates the plugin loading ceremony
|
||||
from .lib.configuration import *
|
||||
parser = ArgumentParser()
|
||||
|
|
@ -44,6 +48,10 @@ parser = ArgumentParser()
|
|||
__version__ = "2.4.0-dev0"
|
||||
storage['__version__'] = __version__
|
||||
|
||||
# add the custome _ as a builtin, it can now be used anywhere in the
|
||||
# project to mark strings as translatable with _('translate me')
|
||||
DeferredTranslation.install()
|
||||
|
||||
|
||||
def define_arguments():
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ class Filesystem:
|
|||
for partition in layout.get('partitions', []):
|
||||
# We don't want to re-add an existing partition (those containing a UUID already)
|
||||
if partition.get('wipe', False) and not partition.get('PARTUUID', None):
|
||||
print("Adding partition....")
|
||||
print(_("Adding partition...."))
|
||||
start = partition.get('start') or (
|
||||
prev_partition and f'{prev_partition["device_instance"].end_sectors}s' or DEFAULT_PARTITION_START)
|
||||
partition['device_instance'] = self.add_partition(partition.get('type', 'primary'),
|
||||
|
|
@ -94,7 +94,7 @@ class Filesystem:
|
|||
# print('Device instance:', partition['device_instance'])
|
||||
|
||||
elif (partition_uuid := partition.get('PARTUUID')) and (partition_instance := self.blockdevice.get_partition(uuid=partition_uuid)):
|
||||
print("Re-using partition_instance:", partition_instance)
|
||||
print(_("Re-using partition instance: {}").format(partition_instance))
|
||||
partition['device_instance'] = partition_instance
|
||||
else:
|
||||
raise ValueError(f"{self}.load_layout() doesn't know how to continue without a new partition definition or a UUID ({partition.get('PARTUUID')}) on the device ({self.blockdevice.get_partition(uuid=partition.get('PARTUUID'))}).")
|
||||
|
|
@ -113,7 +113,9 @@ class Filesystem:
|
|||
raise ValueError(f"Missing encryption password for {partition['device_instance']}")
|
||||
|
||||
from ..user_interaction import get_password
|
||||
storage['arguments']['!encryption-password'] = get_password(f"Enter a encryption password for {partition['device_instance']}")
|
||||
|
||||
prompt = str(_('Enter a encryption password for {}').format(partition['device_instance']))
|
||||
storage['arguments']['!encryption-password'] = get_password(prompt)
|
||||
|
||||
partition['!password'] = storage['arguments']['!encryption-password']
|
||||
|
||||
|
|
@ -136,7 +138,7 @@ class Filesystem:
|
|||
while True:
|
||||
partition['filesystem']['format'] = input(f"Enter a valid fs-type for newly encrypted partition {partition['filesystem']['format']}: ").strip()
|
||||
if not partition['filesystem']['format'] or valid_fs_type(partition['filesystem']['format']) is False:
|
||||
print("You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's.")
|
||||
print(_("You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."))
|
||||
continue
|
||||
break
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ from ..hardware import has_uefi
|
|||
from ..output import log
|
||||
from ..menu import Menu
|
||||
|
||||
|
||||
def suggest_single_disk_layout(block_device :BlockDevice,
|
||||
default_filesystem :Optional[str] = None,
|
||||
advanced_options :bool = False) -> Dict[str, Any]:
|
||||
|
|
|
|||
|
|
@ -550,3 +550,7 @@ def json_stream_to_structure(id : str, stream :str, target :dict) -> bool :
|
|||
log(f" {id} is neither a file nor is a JSON string:",level=logging.ERROR)
|
||||
return False
|
||||
return True
|
||||
|
||||
def secret(x :str):
|
||||
""" return * with len equal to to the input string """
|
||||
return '*' * len(x)
|
||||
|
|
|
|||
|
|
@ -141,8 +141,8 @@ class Installer:
|
|||
|
||||
# We avoid printing /mnt/<log path> because that might confuse people if they note it down
|
||||
# and then reboot, and a identical log file will be found in the ISO medium anyway.
|
||||
print(f"[!] A log file has been created here: {os.path.join(storage['LOG_PATH'], storage['LOG_FILE'])}")
|
||||
print(" Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues")
|
||||
print(_("[!] A log file has been created here: {} {}").format(os.path.join(storage['LOG_PATH'], storage['LOG_FILE'])))
|
||||
print(_(" Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"))
|
||||
raise args[1]
|
||||
|
||||
self.genfstab()
|
||||
|
|
@ -282,7 +282,7 @@ class Installer:
|
|||
|
||||
partition.mount(f'{self.target}{mountpoint}')
|
||||
|
||||
def post_install_check(self, *args :str, **kwargs :str) -> List[bool]:
|
||||
def post_install_check(self, *args :str, **kwargs :str) -> List[str]:
|
||||
return [step for step, flag in self.helper_flags.items() if flag is False]
|
||||
|
||||
def pacstrap(self, *packages :str, **kwargs :str) -> bool:
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ class Menu(TerminalMenu):
|
|||
menu_title = f'\n{title}\n\n'
|
||||
|
||||
if skip:
|
||||
menu_title += "Use ESC to skip\n\n"
|
||||
menu_title += str(_("Use ESC to skip\n\n"))
|
||||
|
||||
if default_option:
|
||||
# if a default value was specified we move that one
|
||||
|
|
|
|||
|
|
@ -1,13 +1,16 @@
|
|||
from __future__ import annotations
|
||||
import sys
|
||||
import logging
|
||||
from typing import Callable, Any, List, Iterator, Dict
|
||||
|
||||
from .menu import Menu
|
||||
from ..general import SysCommand
|
||||
from ..general import SysCommand, secret
|
||||
from ..storage import storage
|
||||
from ..output import log
|
||||
from ..profiles import is_desktop_profile
|
||||
from ..disk import encrypted_partitions
|
||||
from ..locale_helpers import set_keyboard_language
|
||||
from ..user_interaction import get_password
|
||||
from ..user_interaction import get_password, ask_for_a_timezone
|
||||
from ..user_interaction import ask_ntp
|
||||
from ..user_interaction import ask_for_swap
|
||||
from ..user_interaction import ask_for_bootloader
|
||||
|
|
@ -15,7 +18,6 @@ from ..user_interaction import ask_hostname
|
|||
from ..user_interaction import ask_for_audio_selection
|
||||
from ..user_interaction import ask_additional_packages_to_install
|
||||
from ..user_interaction import ask_to_configure_network
|
||||
from ..user_interaction import ask_for_a_timezone
|
||||
from ..user_interaction import ask_for_superuser_account
|
||||
from ..user_interaction import ask_for_additional_users
|
||||
from ..user_interaction import select_language
|
||||
|
|
@ -30,16 +32,20 @@ from ..user_interaction import select_profile
|
|||
from ..user_interaction import select_archinstall_language
|
||||
from ..translation import Translation
|
||||
|
||||
|
||||
class Selector:
|
||||
def __init__(
|
||||
self,
|
||||
description,
|
||||
func=None,
|
||||
display_func=None,
|
||||
default=None,
|
||||
enabled=False,
|
||||
dependencies=[],
|
||||
dependencies_not=[]
|
||||
description :str,
|
||||
func :Callable = None,
|
||||
display_func :Callable = None,
|
||||
default :Any = None,
|
||||
enabled :bool = False,
|
||||
dependencies :List = [],
|
||||
dependencies_not :List = [],
|
||||
exec_func :Callable = None,
|
||||
preview_func :Callable = None,
|
||||
mandatory :bool = False
|
||||
):
|
||||
"""
|
||||
Create a new menu selection entry
|
||||
|
|
@ -69,6 +75,17 @@ class Selector:
|
|||
:param dependencies_not: These are the exclusive options; the menu item will only be
|
||||
displayed if non of the entries in the list have been specified
|
||||
:type dependencies_not: list
|
||||
|
||||
:param exec_func: A function with the name and the result of the selection as input parameter and which returns boolean.
|
||||
Can be used for any action deemed necessary after selection. If it returns True, exits the menu loop, if False,
|
||||
menu returns to the selection screen. If not specified it is assumed the return is False
|
||||
:type exec_func: Callable
|
||||
|
||||
:param preview_func: A callable which invokws a preview screen (not implemented)
|
||||
:type preview_func: Callable
|
||||
|
||||
:param mandatory: A boolean which determines that the field is mandatory, i.e. menu can not be exited if it is not set
|
||||
:type mandatory: bool
|
||||
"""
|
||||
|
||||
self._description = description
|
||||
|
|
@ -76,26 +93,31 @@ class Selector:
|
|||
self._display_func = display_func
|
||||
self._current_selection = default
|
||||
self.enabled = enabled
|
||||
self.text = self.menu_text()
|
||||
self._dependencies = dependencies
|
||||
self._dependencies_not = dependencies_not
|
||||
self.exec_func = exec_func
|
||||
self.preview_func = preview_func
|
||||
self.mandatory = mandatory
|
||||
|
||||
@property
|
||||
def dependencies(self):
|
||||
def dependencies(self) -> dict:
|
||||
return self._dependencies
|
||||
|
||||
@property
|
||||
def dependencies_not(self):
|
||||
def dependencies_not(self) -> dict:
|
||||
return self._dependencies_not
|
||||
|
||||
def set_enabled(self):
|
||||
self.enabled = True
|
||||
@property
|
||||
def current_selection(self):
|
||||
return self._current_selection
|
||||
|
||||
def update_description(self, description):
|
||||
def set_enabled(self, status :bool = True):
|
||||
self.enabled = status
|
||||
|
||||
def update_description(self, description :str):
|
||||
self._description = description
|
||||
self.text = self.menu_text()
|
||||
|
||||
def menu_text(self):
|
||||
def menu_text(self) -> str:
|
||||
current = ''
|
||||
|
||||
if self._display_func:
|
||||
|
|
@ -105,35 +127,276 @@ class Selector:
|
|||
current = str(self._current_selection)
|
||||
|
||||
if current:
|
||||
padding = 35 - len(self._description)
|
||||
padding = 35 - len(str(self._description))
|
||||
current = ' ' * padding + f'SET: {current}'
|
||||
|
||||
return f'{self._description} {current}'
|
||||
|
||||
def set_current_selection(self, current):
|
||||
def set_current_selection(self, current :str):
|
||||
self._current_selection = current
|
||||
self.text = self.menu_text()
|
||||
|
||||
def has_selection(self):
|
||||
def has_selection(self) -> bool:
|
||||
if self._current_selection is None:
|
||||
return False
|
||||
return True
|
||||
|
||||
def is_empty(self):
|
||||
def get_selection(self) -> Any:
|
||||
return self._current_selection
|
||||
|
||||
def is_empty(self) -> bool:
|
||||
if self._current_selection is None:
|
||||
return True
|
||||
elif isinstance(self._current_selection, (str, list, dict)) and len(self._current_selection) == 0:
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
def is_enabled(self) -> bool:
|
||||
return self.enabled
|
||||
|
||||
class GlobalMenu:
|
||||
def __init__(self):
|
||||
def is_mandatory(self) -> bool:
|
||||
return self.mandatory
|
||||
|
||||
def set_mandatory(self, status :bool = True):
|
||||
self.mandatory = status
|
||||
if status and not self.is_enabled():
|
||||
self.set_enabled(True)
|
||||
|
||||
|
||||
class GeneralMenu:
|
||||
def __init__(self, data_store :dict = None):
|
||||
"""
|
||||
Create a new selection menu.
|
||||
|
||||
:param data_store: Area (Dict) where the resulting data will be held. At least an entry for each option. Default area is self._data_store (not preset in the call, due to circular references
|
||||
:type data_store: Dict
|
||||
|
||||
"""
|
||||
self._translation = Translation.load_nationalization()
|
||||
self.is_context_mgr = False
|
||||
self._data_store = data_store if data_store is not None else {}
|
||||
self._menu_options = {}
|
||||
self._setup_selection_menu_options()
|
||||
|
||||
def __enter__(self, *args :Any, **kwargs :Any) -> GeneralMenu:
|
||||
self.is_context_mgr = True
|
||||
return self
|
||||
|
||||
def __exit__(self, *args :Any, **kwargs :Any) -> None:
|
||||
# TODO: https://stackoverflow.com/questions/28157929/how-to-safely-handle-an-exception-inside-a-context-manager
|
||||
# TODO: skip processing when it comes from a planified exit
|
||||
if len(args) >= 2 and args[1]:
|
||||
log(args[1], level=logging.ERROR, fg='red')
|
||||
print(" Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues")
|
||||
raise args[1]
|
||||
|
||||
for key in self._menu_options:
|
||||
sel = self._menu_options[key]
|
||||
if key and key not in self._data_store:
|
||||
self._data_store[key] = sel._current_selection
|
||||
|
||||
self.exit_callback()
|
||||
|
||||
def _setup_selection_menu_options(self):
|
||||
""" Define the menu options.
|
||||
Menu options can be defined here in a subclass or done per progam calling self.set_option()
|
||||
"""
|
||||
return
|
||||
|
||||
def pre_callback(self, selector_name):
|
||||
""" will be called before each action in the menu """
|
||||
return
|
||||
|
||||
def post_callback(self, selector_name :str, value :Any):
|
||||
""" will be called after each action in the menu """
|
||||
return True
|
||||
|
||||
def exit_callback(self):
|
||||
""" will be called at the end of the processing of the menu """
|
||||
return
|
||||
|
||||
def synch(self, selector_name :str, omit_if_set :bool = False,omit_if_disabled :bool = False):
|
||||
""" loads menu options with data_store value """
|
||||
arg = self._data_store.get(selector_name, None)
|
||||
# don't display the menu option if it was defined already
|
||||
if arg is not None and omit_if_set:
|
||||
return
|
||||
|
||||
if not self.option(selector_name).is_enabled() and omit_if_disabled:
|
||||
return
|
||||
|
||||
if arg is not None:
|
||||
self._menu_options[selector_name].set_current_selection(arg)
|
||||
|
||||
def enable(self, selector_name :str, omit_if_set :bool = False , mandatory :bool = False):
|
||||
""" activates menu options """
|
||||
if self._menu_options.get(selector_name, None):
|
||||
self._menu_options[selector_name].set_enabled(True)
|
||||
if mandatory:
|
||||
self._menu_options[selector_name].set_mandatory(True)
|
||||
self.synch(selector_name,omit_if_set)
|
||||
else:
|
||||
print(f'No selector found: {selector_name}')
|
||||
sys.exit(1)
|
||||
|
||||
def run(self):
|
||||
""" Calls the Menu framework"""
|
||||
# we synch all the options just in case
|
||||
for item in self.list_options():
|
||||
self.synch(item)
|
||||
while True:
|
||||
# Before continuing, set the preferred keyboard layout/language in the current terminal.
|
||||
# This will just help the user with the next following questions.
|
||||
self._set_kb_language()
|
||||
enabled_menus = self._menus_to_enable()
|
||||
menu_text = [m.text for m in enabled_menus.values()]
|
||||
selection = Menu('Set/Modify the below options', menu_text, sort=False).run()
|
||||
if selection:
|
||||
selection = selection.strip()
|
||||
if selection:
|
||||
# if this calls returns false, we exit the menu. We allow for an callback for special processing on realeasing control
|
||||
if not self._process_selection(selection):
|
||||
break
|
||||
if not self.is_context_mgr:
|
||||
self.__exit__()
|
||||
|
||||
def _process_selection(self, selection :str) -> bool:
|
||||
""" determines and executes the selection y
|
||||
Can / Should be extended to handle specific selection issues
|
||||
Returns true if the menu shall continue, False if it has ended
|
||||
"""
|
||||
# find the selected option in our option list
|
||||
option = [[k, v] for k, v in self._menu_options.items() if v.text.strip() == selection]
|
||||
if len(option) != 1:
|
||||
raise ValueError(f'Selection not found: {selection}')
|
||||
selector_name = option[0][0]
|
||||
selector = option[0][1]
|
||||
|
||||
return self.exec_option(selector_name,selector)
|
||||
|
||||
def exec_option(self,selector_name :str, p_selector :Selector = None) -> bool:
|
||||
""" processes the exection of a given menu entry
|
||||
- pre process callback
|
||||
- selection function
|
||||
- post process callback
|
||||
- exec action
|
||||
returns True if the loop has to continue, false if the loop can be closed
|
||||
"""
|
||||
if not p_selector:
|
||||
selector = self.option(selector_name)
|
||||
else:
|
||||
selector = p_selector
|
||||
|
||||
self.pre_callback(selector_name)
|
||||
|
||||
result = None
|
||||
if selector.func:
|
||||
result = selector.func()
|
||||
self._menu_options[selector_name].set_current_selection(result)
|
||||
self._data_store[selector_name] = result
|
||||
exec_ret_val = selector.exec_func(selector_name,result) if selector.exec_func else False
|
||||
self.post_callback(selector_name,result)
|
||||
if exec_ret_val and self._check_mandatory_status():
|
||||
return False
|
||||
return True
|
||||
""" old behaviour
|
||||
# we allow for a callback after we get the result
|
||||
self.post_callback(selector_name,result)
|
||||
# we have a callback, by option, to determine if we can exit the menu. Only if ALL mandatory fields are written
|
||||
if selector.exec_func:
|
||||
if selector.exec_func(result) and self._check_mandatory_status():
|
||||
return False
|
||||
"""
|
||||
return True
|
||||
|
||||
def _set_kb_language(self):
|
||||
""" general for ArchInstall"""
|
||||
# Before continuing, set the preferred keyboard layout/language in the current terminal.
|
||||
# This will just help the user with the next following questions.
|
||||
if self._data_store.get('keyboard-layout', None) and len(self._data_store['keyboard-layout']):
|
||||
set_keyboard_language(self._data_store['keyboard-layout'])
|
||||
|
||||
def _verify_selection_enabled(self, selection_name :str) -> bool:
|
||||
""" general """
|
||||
if selection := self._menu_options.get(selection_name, None):
|
||||
if not selection.enabled:
|
||||
return False
|
||||
|
||||
if len(selection.dependencies) > 0:
|
||||
for d in selection.dependencies:
|
||||
if not self._verify_selection_enabled(d) or self._menu_options.get(d).is_empty():
|
||||
return False
|
||||
|
||||
if len(selection.dependencies_not) > 0:
|
||||
for d in selection.dependencies_not:
|
||||
if not self._menu_options.get(d).is_empty():
|
||||
return False
|
||||
return True
|
||||
|
||||
raise ValueError(f'No selection found: {selection_name}')
|
||||
|
||||
def _menus_to_enable(self) -> dict:
|
||||
""" general """
|
||||
enabled_menus = {}
|
||||
|
||||
for name, selection in self._menu_options.items():
|
||||
if self._verify_selection_enabled(name):
|
||||
enabled_menus[name] = selection
|
||||
|
||||
return enabled_menus
|
||||
|
||||
def option(self,name :str) -> Selector:
|
||||
# TODO check inexistent name
|
||||
return self._menu_options[name]
|
||||
|
||||
def list_options(self) -> Iterator:
|
||||
""" Iterator to retrieve the enabled menu option names
|
||||
"""
|
||||
for item in self._menu_options:
|
||||
yield item
|
||||
|
||||
def list_enabled_options(self) -> Iterator:
|
||||
""" Iterator to retrieve the enabled menu options at a given time.
|
||||
The results are dynamic (if between calls to the iterator some elements -still not retrieved- are (de)activated
|
||||
"""
|
||||
for item in self._menu_options:
|
||||
if item in self._menus_to_enable():
|
||||
yield item
|
||||
|
||||
def set_option(self, name :str, selector :Selector):
|
||||
self._menu_options[name] = selector
|
||||
self.synch(name)
|
||||
|
||||
def _check_mandatory_status(self) -> bool:
|
||||
for field in self._menu_options:
|
||||
option = self._menu_options[field]
|
||||
if option.is_mandatory() and not option.has_selection():
|
||||
return False
|
||||
return True
|
||||
|
||||
def set_mandatory(self, field :str, status :bool):
|
||||
self.option(field).set_mandatory(status)
|
||||
|
||||
def mandatory_overview(self) -> [int, int]:
|
||||
mandatory_fields = 0
|
||||
mandatory_waiting = 0
|
||||
for field in self._menu_options:
|
||||
option = self._menu_options[field]
|
||||
if option.is_mandatory():
|
||||
mandatory_fields += 1
|
||||
if not option.has_selection():
|
||||
mandatory_waiting += 1
|
||||
return mandatory_fields, mandatory_waiting
|
||||
|
||||
def _select_archinstall_language(self, default_lang):
|
||||
language = select_archinstall_language(default_lang)
|
||||
self._translation.activate(language)
|
||||
return language
|
||||
|
||||
|
||||
class GlobalMenu(GeneralMenu):
|
||||
def __init__(self,data_store):
|
||||
super().__init__(data_store=data_store)
|
||||
|
||||
def _setup_selection_menu_options(self):
|
||||
self._menu_options['archinstall-language'] = \
|
||||
Selector(
|
||||
|
|
@ -168,8 +431,7 @@ class GlobalMenu:
|
|||
self._menu_options['!encryption-password'] = \
|
||||
Selector(
|
||||
_('Set encryption password'),
|
||||
lambda: get_password(prompt='Enter disk encryption password (leave blank for no encryption): '),
|
||||
display_func=lambda x: self._secret(x) if x else 'None',
|
||||
display_func=lambda x: secret(x) if x else 'None',
|
||||
dependencies=['harddrives'])
|
||||
self._menu_options['swap'] = \
|
||||
Selector(
|
||||
|
|
@ -181,12 +443,12 @@ class GlobalMenu:
|
|||
_('Select bootloader'),
|
||||
lambda: ask_for_bootloader(storage['arguments'].get('advanced', False)),)
|
||||
self._menu_options['hostname'] = \
|
||||
Selector('Specify hostname', lambda: ask_hostname())
|
||||
Selector(_('Specify hostname'), lambda: ask_hostname())
|
||||
self._menu_options['!root-password'] = \
|
||||
Selector(
|
||||
_('Set root password'),
|
||||
lambda: self._set_root_password(),
|
||||
display_func=lambda x: self._secret(x) if x else 'None')
|
||||
display_func=lambda x: secret(x) if x else 'None')
|
||||
self._menu_options['!superusers'] = \
|
||||
Selector(
|
||||
_('Specify superuser account'),
|
||||
|
|
@ -222,10 +484,10 @@ class GlobalMenu:
|
|||
Selector(
|
||||
_('Configure network'),
|
||||
lambda: ask_to_configure_network(),
|
||||
display_func=lambda x: x if x else 'Not configured, unavailable unless setup manually',
|
||||
display_func=lambda x: x if x else _('Not configured, unavailable unless setup manually'),
|
||||
default={})
|
||||
self._menu_options['timezone'] = \
|
||||
Selector('Select timezone', lambda: ask_for_a_timezone())
|
||||
Selector(_('Select timezone'), lambda: ask_for_a_timezone())
|
||||
self._menu_options['ntp'] = \
|
||||
Selector(
|
||||
_('Set automatic time sync (NTP)'),
|
||||
|
|
@ -234,8 +496,10 @@ class GlobalMenu:
|
|||
self._menu_options['install'] = \
|
||||
Selector(
|
||||
self._install_text(),
|
||||
exec_func=lambda n,v: True if self._missing_configs() == 0 else False,
|
||||
enabled=True)
|
||||
self._menu_options['abort'] = Selector('Abort', enabled=True)
|
||||
|
||||
self._menu_options['abort'] = Selector(_('Abort'), enabled=True)
|
||||
|
||||
def enable(self, selector_name, omit_if_set=False):
|
||||
arg = storage['arguments'].get(selector_name, None)
|
||||
|
|
@ -259,26 +523,29 @@ class GlobalMenu:
|
|||
self._set_kb_language()
|
||||
|
||||
enabled_menus = self._menus_to_enable()
|
||||
menu_text = [m.text for m in enabled_menus.values()]
|
||||
selection = Menu('Set/Modify the below options', menu_text, sort=False).run()
|
||||
menu_text = [m.menu_text() for m in enabled_menus.values()]
|
||||
selection = Menu(_('Set/Modify the below options'), menu_text, sort=False).run()
|
||||
|
||||
if selection:
|
||||
selection = selection.strip()
|
||||
if 'Abort' in selection:
|
||||
if str(_('Abort')) in selection:
|
||||
exit(0)
|
||||
elif 'Install' in selection:
|
||||
elif str(_('Install')) in selection:
|
||||
if self._missing_configs() == 0:
|
||||
break
|
||||
else:
|
||||
self._process_selection(selection)
|
||||
|
||||
for key in self._menu_options:
|
||||
sel = self._menu_options[key]
|
||||
if key not in storage['arguments']:
|
||||
storage['arguments'][key] = sel._current_selection
|
||||
storage['arguments'][key] = sel.current_selection
|
||||
|
||||
self._post_processing()
|
||||
|
||||
def _process_selection(self, selection):
|
||||
# find the selected option in our option list
|
||||
option = [[k, v] for k, v in self._menu_options.items() if v.text.strip() == selection]
|
||||
option = [[k, v] for k, v in self._menu_options.items() if v.menu_text().strip() == selection]
|
||||
|
||||
if len(option) != 1:
|
||||
raise ValueError(f'Selection not found: {selection}')
|
||||
|
|
@ -295,8 +562,11 @@ class GlobalMenu:
|
|||
text = self._install_text()
|
||||
self._menu_options.get('install').update_description(text)
|
||||
|
||||
def _post_processing(self):
|
||||
if storage['arguments'].get('harddrives', None) and storage['arguments'].get('!encryption-password', None):
|
||||
def post_callback(self,name :str = None ,result :Any = None):
|
||||
self._update_install(name,result)
|
||||
|
||||
def exit_callback(self):
|
||||
if self._data_store.get('harddrives', None) and self._data_store.get('!encryption-password', None):
|
||||
# If no partitions was marked as encrypted, but a password was supplied and we have some disks to format..
|
||||
# Then we need to identify which partitions to encrypt. This will default to / (root).
|
||||
if len(list(encrypted_partitions(storage['arguments'].get('disk_layouts', [])))) == 0:
|
||||
|
|
@ -306,7 +576,7 @@ class GlobalMenu:
|
|||
def _install_text(self):
|
||||
missing = self._missing_configs()
|
||||
if missing > 0:
|
||||
return f'Install ({missing} config(s) missing)'
|
||||
return _('Install ({} config(s) missing)').format(missing)
|
||||
return 'Install'
|
||||
|
||||
def _missing_configs(self):
|
||||
|
|
@ -332,13 +602,8 @@ class GlobalMenu:
|
|||
|
||||
return missing
|
||||
|
||||
def _select_archinstall_language(self, default_lang):
|
||||
language = select_archinstall_language(default_lang)
|
||||
self._translation.activate(language)
|
||||
return language
|
||||
|
||||
def _set_root_password(self):
|
||||
prompt = 'Enter root password (leave blank to disable root & create superuser): '
|
||||
prompt = str(_('Enter root password (leave blank to disable root): '))
|
||||
password = get_password(prompt=prompt)
|
||||
|
||||
# TODO: Do we really wanna wipe the !superusers and !users if root password is set?
|
||||
|
|
@ -368,11 +633,12 @@ class GlobalMenu:
|
|||
storage['arguments']['disk_layouts'] = {}
|
||||
|
||||
if not harddrives:
|
||||
prompt = 'You decided to skip harddrive selection\n'
|
||||
prompt += f"and will use whatever drive-setup is mounted at {storage['MOUNT_POINT']} (experimental)\n"
|
||||
prompt += "WARNING: Archinstall won't check the suitability of this setup\n"
|
||||
prompt = _(
|
||||
"You decided to skip harddrive selection\nand will use whatever drive-setup is mounted at {} (experimental)\n"
|
||||
"WARNING: Archinstall won't check the suitability of this setup\n"
|
||||
"Do you wish to continue?"
|
||||
).format(storage['MOUNT_POINT'])
|
||||
|
||||
prompt += 'Do you wish to continue?'
|
||||
choice = Menu(prompt, ['yes', 'no'], default_option='yes').run()
|
||||
|
||||
if choice == 'no':
|
||||
|
|
@ -380,9 +646,6 @@ class GlobalMenu:
|
|||
|
||||
return harddrives
|
||||
|
||||
def _secret(self, x):
|
||||
return '*' * len(x)
|
||||
|
||||
def _select_profile(self):
|
||||
profile = select_profile()
|
||||
|
||||
|
|
@ -397,11 +660,11 @@ class GlobalMenu:
|
|||
return profile
|
||||
|
||||
def _create_superuser_account(self):
|
||||
superuser = ask_for_superuser_account('Create a required super-user with sudo privileges: ', forced=True)
|
||||
superuser = ask_for_superuser_account(str(_('Create a required super-user with sudo privileges: ')), forced=True)
|
||||
return superuser
|
||||
|
||||
def _create_user_account(self):
|
||||
users, superusers = ask_for_additional_users('Enter a username to create an additional user: ')
|
||||
users, superusers = ask_for_additional_users(str(_('Enter a username to create an additional user (leave blank to skip): ')))
|
||||
storage['arguments']['!superusers'] = {**storage['arguments'].get('!superusers', {}), **superusers}
|
||||
|
||||
return users
|
||||
|
|
@ -431,11 +694,11 @@ class GlobalMenu:
|
|||
|
||||
raise ValueError(f'No selection found: {selection_name}')
|
||||
|
||||
def _menus_to_enable(self):
|
||||
def _menus_to_enable(self) -> Dict[str, Selector]:
|
||||
enabled_menus = {}
|
||||
|
||||
for name, selection in self._menu_options.items():
|
||||
if self._verify_selection_enabled(name):
|
||||
enabled_menus[name] = selection
|
||||
|
||||
return enabled_menus
|
||||
return enabled_menus
|
||||
|
|
@ -86,10 +86,10 @@ def list_profiles(
|
|||
try:
|
||||
profile_list = json.loads(grab_url_data(profiles_url))
|
||||
except urllib.error.HTTPError as err:
|
||||
print(f'Error: Listing profiles on URL "{profiles_url}" resulted in:', err)
|
||||
print(_('Error: Listing profiles on URL "{}" resulted in:').format(profiles_url), err)
|
||||
return cache
|
||||
except json.decoder.JSONDecodeError as err:
|
||||
print(f'Error: Could not decode "{profiles_url}" result as JSON:', err)
|
||||
print(_('Error: Could not decode "{}" result as JSON:').format(profiles_url), err)
|
||||
return cache
|
||||
|
||||
for profile in profile_list:
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ class Languages:
|
|||
|
||||
|
||||
class DeferredTranslation:
|
||||
def __init__(self, message):
|
||||
def __init__(self, message: str):
|
||||
self.message = message
|
||||
|
||||
def __len__(self) -> int:
|
||||
|
|
@ -40,6 +40,15 @@ class DeferredTranslation:
|
|||
return self.message
|
||||
return translate(self.message)
|
||||
|
||||
def __lt__(self, other) -> bool:
|
||||
return self.message < other
|
||||
|
||||
def __gt__(self, other) -> bool:
|
||||
return self.message > other
|
||||
|
||||
def format(self, *args) -> str:
|
||||
return self.message.format(*args)
|
||||
|
||||
@classmethod
|
||||
def install(cls):
|
||||
import builtins
|
||||
|
|
@ -48,8 +57,6 @@ class DeferredTranslation:
|
|||
|
||||
class Translation:
|
||||
def __init__(self, locales_dir):
|
||||
DeferredTranslation.install()
|
||||
|
||||
self._languages = {}
|
||||
|
||||
for name in self.get_all_names():
|
||||
|
|
|
|||
|
|
@ -96,7 +96,10 @@ def do_countdown() -> bool:
|
|||
return True
|
||||
|
||||
|
||||
def get_password(prompt :str = "Enter a password: ") -> Optional[str]:
|
||||
def get_password(prompt :str = '') -> Optional[str]:
|
||||
if not prompt:
|
||||
prompt = _("Enter a password: ")
|
||||
|
||||
while passwd := getpass.getpass(prompt):
|
||||
passwd_verification = getpass.getpass(prompt=_('And one more time for verification: '))
|
||||
if passwd != passwd_verification:
|
||||
|
|
@ -275,8 +278,8 @@ def ask_for_swap():
|
|||
|
||||
|
||||
def ask_ntp() -> bool:
|
||||
prompt = _('Would you like to use automatic time synchronization (NTP) with the default time servers?')
|
||||
prompt += _('Hardware time and other post-configuration steps might be required in order for NTP to work. For more information, please check the Arch wiki')
|
||||
prompt = str(_('Would you like to use automatic time synchronization (NTP) with the default time servers?\n'))
|
||||
prompt += str(_('Hardware time and other post-configuration steps might be required in order for NTP to work.\nFor more information, please check the Arch wiki'))
|
||||
choice = Menu(prompt, ['yes', 'no'], skip=False, default_option='yes').run()
|
||||
return False if choice == 'no' else True
|
||||
|
||||
|
|
@ -286,7 +289,7 @@ def ask_hostname():
|
|||
return hostname
|
||||
|
||||
|
||||
def ask_for_superuser_account(prompt :str = '', forced :bool = False) -> Dict[str, Dict[str, str]]:
|
||||
def ask_for_superuser_account(prompt: str = '', forced :bool = False) -> Dict[str, Dict[str, str]]:
|
||||
prompt = prompt if prompt else _('Username for required superuser with sudo privileges: ')
|
||||
while 1:
|
||||
new_user = input(prompt).strip(' ')
|
||||
|
|
@ -301,7 +304,7 @@ def ask_for_superuser_account(prompt :str = '', forced :bool = False) -> Dict[st
|
|||
elif not check_for_correct_username(new_user):
|
||||
continue
|
||||
|
||||
prompt = _('Password for user "{}"').format(new_user)
|
||||
prompt = str(_('Password for user "{}": ').format(new_user))
|
||||
password = get_password(prompt=prompt)
|
||||
return {new_user: {"!password": password}}
|
||||
|
||||
|
|
@ -318,11 +321,14 @@ def ask_for_additional_users(prompt :str = '') -> tuple[dict[str, dict[str, str
|
|||
if not check_for_correct_username(new_user):
|
||||
continue
|
||||
|
||||
prompt = _('Password for user "{}"').format(new_user)
|
||||
password = get_password(prompt=prompt)
|
||||
password = get_password(prompt=str(_('Password for user "{}": ').format(new_user)))
|
||||
|
||||
prompt = _('Should this user be a superuser (sudoer)?')
|
||||
choice = Menu(prompt, ['yes', 'no'], skip=False, default_option='no').run()
|
||||
choice = Menu(
|
||||
str(_('Should this user be a superuser (sudoer)?')),
|
||||
['yes', 'no'],
|
||||
skip=False,
|
||||
default_option='no'
|
||||
).run()
|
||||
|
||||
if choice == 'yes':
|
||||
superusers[new_user] = {"!password": password}
|
||||
|
|
@ -345,10 +351,6 @@ def ask_for_a_timezone() -> str:
|
|||
|
||||
return selected_tz
|
||||
|
||||
def ask_for_a_timezone() -> str:
|
||||
# compatibility with existing code
|
||||
return ask_timezone()
|
||||
|
||||
def ask_for_bootloader(advanced_options :bool = False) -> str:
|
||||
bootloader = "systemd-bootctl" if has_uefi() else "grub-install"
|
||||
if has_uefi():
|
||||
|
|
@ -402,7 +404,7 @@ def ask_additional_packages_to_install(packages :List[str] = None) -> List[str]:
|
|||
if len(packages):
|
||||
# Verify packages that were given
|
||||
try:
|
||||
log("Verifying that additional packages exist (this might take a few seconds)")
|
||||
print(_("Verifying that additional packages exist (this might take a few seconds)"))
|
||||
validate_package_list(packages)
|
||||
break
|
||||
except RequirementError as e:
|
||||
|
|
@ -590,21 +592,28 @@ def manage_new_and_existing_partitions(block_device :BlockDevice) -> Dict[str, A
|
|||
# Test code: [part.__dump__() for part in block_device.partitions.values()]
|
||||
# TODO: Squeeze in BTRFS subvolumes here
|
||||
|
||||
new_partition = _('Create a new partition')
|
||||
suggest_partition_layout = _('Suggest partition layout')
|
||||
delete_partition = _('Delete a partition')
|
||||
delete_all_partitions = _('Clear/Delete all partitions')
|
||||
assign_mount_point = _('Assign mount-point for a partition')
|
||||
mark_formatted = _('Mark/Unmark a partition to be formatted (wipes data)')
|
||||
mark_encrypted = _('Mark/Unmark a partition as encrypted')
|
||||
mark_bootable = _('Mark/Unmark a partition as bootable (automatic for /boot)')
|
||||
set_filesystem_partition = _('Set desired filesystem for a partition')
|
||||
|
||||
while True:
|
||||
modes = [
|
||||
"Create a new partition",
|
||||
f"Suggest partition layout for {block_device}"
|
||||
]
|
||||
modes = [new_partition, suggest_partition_layout]
|
||||
|
||||
if len(block_device_struct['partitions']):
|
||||
modes += [
|
||||
"Delete a partition",
|
||||
"Clear/Delete all partitions",
|
||||
"Assign mount-point for a partition",
|
||||
"Mark/Unmark a partition to be formatted (wipes data)",
|
||||
"Mark/Unmark a partition as encrypted",
|
||||
"Mark/Unmark a partition as bootable (automatic for /boot)",
|
||||
"Set desired filesystem for a partition",
|
||||
delete_partition,
|
||||
delete_all_partitions,
|
||||
assign_mount_point,
|
||||
mark_formatted,
|
||||
mark_encrypted,
|
||||
mark_bootable,
|
||||
set_filesystem_partition,
|
||||
]
|
||||
|
||||
title = _('Select what to do with\n{}').format(block_device)
|
||||
|
|
@ -618,7 +627,7 @@ def manage_new_and_existing_partitions(block_device :BlockDevice) -> Dict[str, A
|
|||
if not task:
|
||||
break
|
||||
|
||||
if task == 'Create a new partition':
|
||||
if task == new_partition:
|
||||
# if partition_type == 'gpt':
|
||||
# # https://www.gnu.org/software/parted/manual/html_node/mkpart.html
|
||||
# # https://www.gnu.org/software/parted/manual/html_node/mklabel.html
|
||||
|
|
@ -635,7 +644,7 @@ def manage_new_and_existing_partitions(block_device :BlockDevice) -> Dict[str, A
|
|||
else:
|
||||
end_suggested = '100%'
|
||||
|
||||
prompt = _('Enter the end sector of the partition (percentage or block number, ex: {}): "').format(end_suggested)
|
||||
prompt = _('Enter the end sector of the partition (percentage or block number, ex: {}): ').format(end_suggested)
|
||||
end = input(prompt).strip()
|
||||
|
||||
if not end.strip():
|
||||
|
|
@ -659,7 +668,7 @@ def manage_new_and_existing_partitions(block_device :BlockDevice) -> Dict[str, A
|
|||
else:
|
||||
log(f"Invalid start ({valid_parted_position(start)}) or end ({valid_parted_position(end)}) for this partition. Ignoring this partition creation.", fg="red")
|
||||
continue
|
||||
elif task[:len("Suggest partition layout")] == "Suggest partition layout":
|
||||
elif task == suggest_partition_layout:
|
||||
if len(block_device_struct["partitions"]):
|
||||
prompt = _('{} contains queued partitions, this will remove those, are you sure?').format(block_device)
|
||||
choice = Menu(prompt, ['yes', 'no'], default_option='no').run()
|
||||
|
|
@ -673,15 +682,15 @@ def manage_new_and_existing_partitions(block_device :BlockDevice) -> Dict[str, A
|
|||
else:
|
||||
current_layout = current_partition_layout(block_device_struct['partitions'], with_idx=True)
|
||||
|
||||
if task == "Delete a partition":
|
||||
if task == delete_partition:
|
||||
title = _('{}\n\nSelect by index which partitions to delete').format(current_layout)
|
||||
to_delete = select_partition(title, block_device_struct["partitions"], multiple=True)
|
||||
|
||||
if to_delete:
|
||||
block_device_struct['partitions'] = [p for idx, p in enumerate(block_device_struct['partitions']) if idx not in to_delete]
|
||||
elif task == "Clear/Delete all partitions":
|
||||
elif task == delete_all_partitions:
|
||||
block_device_struct["partitions"] = []
|
||||
elif task == "Assign mount-point for a partition":
|
||||
elif task == assign_mount_point:
|
||||
title = _('{}\n\nSelect by index which partition to mount where').format(current_layout)
|
||||
partition = select_partition(title, block_device_struct["partitions"])
|
||||
|
||||
|
|
@ -697,7 +706,7 @@ def manage_new_and_existing_partitions(block_device :BlockDevice) -> Dict[str, A
|
|||
else:
|
||||
del(block_device_struct["partitions"][partition]['mountpoint'])
|
||||
|
||||
elif task == "Mark/Unmark a partition to be formatted (wipes data)":
|
||||
elif task == mark_formatted:
|
||||
title = _('{}\n\nSelect which partition to mask for formatting').format(current_layout)
|
||||
partition = select_partition(title, block_device_struct["partitions"])
|
||||
|
||||
|
|
@ -716,7 +725,7 @@ def manage_new_and_existing_partitions(block_device :BlockDevice) -> Dict[str, A
|
|||
# Negate the current wipe marking
|
||||
block_device_struct["partitions"][partition]['wipe'] = not block_device_struct["partitions"][partition].get('wipe', False)
|
||||
|
||||
elif task == "Mark/Unmark a partition as encrypted":
|
||||
elif task == mark_encrypted:
|
||||
title = _('{}\n\nSelect which partition to mark as encrypted').format(current_layout)
|
||||
partition = select_partition(title, block_device_struct["partitions"])
|
||||
|
||||
|
|
@ -724,14 +733,14 @@ def manage_new_and_existing_partitions(block_device :BlockDevice) -> Dict[str, A
|
|||
# Negate the current encryption marking
|
||||
block_device_struct["partitions"][partition]['encrypted'] = not block_device_struct["partitions"][partition].get('encrypted', False)
|
||||
|
||||
elif task == "Mark/Unmark a partition as bootable (automatic for /boot)":
|
||||
elif task == mark_bootable:
|
||||
title = _('{}\n\nSelect which partition to mark as bootable').format(current_layout)
|
||||
partition = select_partition(title, block_device_struct["partitions"])
|
||||
|
||||
if partition is not None:
|
||||
block_device_struct["partitions"][partition]['boot'] = not block_device_struct["partitions"][partition].get('boot', False)
|
||||
|
||||
elif task == "Set desired filesystem for a partition":
|
||||
elif task == set_filesystem_partition:
|
||||
title = _('{}\n\nSelect which partition to set a filesystem on').format(current_layout)
|
||||
partition = select_partition(title, block_device_struct["partitions"])
|
||||
|
||||
|
|
@ -765,10 +774,11 @@ def select_archinstall_language(default='English'):
|
|||
|
||||
|
||||
def select_disk_layout(block_devices :list, advanced_options=False) -> Dict[str, Any]:
|
||||
wipe_mode = _('Wipe all selected drives and use a best-effort default partition layout')
|
||||
custome_mode = _('Select what to do with each individual drive (followed by partition usage)')
|
||||
wipe_mode = str(_('Wipe all selected drives and use a best-effort default partition layout'))
|
||||
custome_mode = str(_('Select what to do with each individual drive (followed by partition usage)'))
|
||||
modes = [wipe_mode, custome_mode]
|
||||
|
||||
print(modes)
|
||||
mode = Menu(_('Select what you wish to do with the selected block devices'), modes, skip=False).run()
|
||||
|
||||
if mode == wipe_mode:
|
||||
|
|
@ -805,7 +815,7 @@ def select_disk(dict_o_disks :Dict[str, BlockDevice]) -> BlockDevice:
|
|||
raise DiskError('select_disk() requires a non-empty dictionary of disks to select from.')
|
||||
|
||||
|
||||
def select_profile() -> Optional[str]:
|
||||
def select_profile() -> Optional[Profile]:
|
||||
"""
|
||||
# Asks the user to select a profile from the available profiles.
|
||||
#
|
||||
|
|
|
|||
|
|
@ -20,7 +20,8 @@ msgstr ""
|
|||
The `msgid` is the identifier of the string in the code as well as the default text to be displayed, meaning that if no
|
||||
translation is provided for a language then this is the text that is going to be shown.
|
||||
|
||||
To provide a translation for the language, simply write the translation in the `msgstr` part
|
||||
To perform translations for a language this file can be edited manually or the neat `poedit` can be used (https://poedit.net/).
|
||||
If editing the file manually, write the translation in the `msgstr` part
|
||||
|
||||
```
|
||||
#: lib/user_interaction.py:82
|
||||
|
|
@ -28,6 +29,5 @@ msgid "Do you really want to abort?"
|
|||
msgstr "Wollen sie wirklich abbrechen?"
|
||||
```
|
||||
|
||||
After that run the script once more `./locales_generator.sh` and it will auto-generate the `base.mo` file with the included translations.
|
||||
After the translations have been written, run the script once more `./locales_generator.sh` and it will auto-generate the `base.mo` file with the included translations.
|
||||
After that you're all ready to go and enjoy Archinstall in the new language :)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,354 +1,621 @@
|
|||
#: lib/user_interaction.py:82 lib/user_interaction.py:82
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: lib/installer.py:144 lib/installer.py:144
|
||||
msgid "[!] A log file has been created here: {} {}"
|
||||
msgstr ""
|
||||
|
||||
#: lib/installer.py:145 lib/installer.py:145
|
||||
msgid ""
|
||||
" Please submit this issue (and file) to https://github.com/archlinux/"
|
||||
"archinstall/issues"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:83 lib/user_interaction.py:83
|
||||
msgid "Do you really want to abort?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:100 lib/user_interaction.py:100
|
||||
#: lib/user_interaction.py:101 lib/user_interaction.py:104
|
||||
#: lib/user_interaction.py:104
|
||||
msgid "And one more time for verification: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:271 lib/user_interaction.py:271
|
||||
#: lib/user_interaction.py:272 lib/user_interaction.py:275
|
||||
#: lib/user_interaction.py:275
|
||||
msgid "Would you like to use swap on zram?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:277 lib/user_interaction.py:277
|
||||
msgid ""
|
||||
"Would you like to use automatic time synchronization (NTP) with the default "
|
||||
"time servers?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:278 lib/user_interaction.py:278
|
||||
msgid ""
|
||||
"Hardware time and other post-configuration steps might be required in order "
|
||||
"for NTP to work. For more information, please check the Arch wiki"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:284 lib/user_interaction.py:284
|
||||
#: lib/user_interaction.py:285 lib/user_interaction.py:288
|
||||
#: lib/user_interaction.py:288
|
||||
msgid "Desired hostname for the installation: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:289 lib/user_interaction.py:289
|
||||
#: lib/user_interaction.py:290 lib/user_interaction.py:293
|
||||
#: lib/user_interaction.py:293
|
||||
msgid "Username for required superuser with sudo privileges: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:303 lib/user_interaction.py:320
|
||||
#: lib/user_interaction.py:303 lib/user_interaction.py:320
|
||||
msgid "Password for user \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:309 lib/user_interaction.py:309
|
||||
#: lib/user_interaction.py:310 lib/user_interaction.py:313
|
||||
#: lib/user_interaction.py:313
|
||||
msgid "Any additional users to install (leave blank for no users): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:323 lib/user_interaction.py:323
|
||||
#: lib/user_interaction.py:324 lib/user_interaction.py:327
|
||||
#: lib/user_interaction.py:327
|
||||
msgid "Should this user be a superuser (sudoer)?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:339 lib/user_interaction.py:339
|
||||
#: lib/user_interaction.py:340 lib/user_interaction.py:343
|
||||
#: lib/user_interaction.py:346 lib/user_interaction.py:346
|
||||
msgid "Select a timezone"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:353 lib/user_interaction.py:353
|
||||
#: lib/user_interaction.py:354 lib/user_interaction.py:357
|
||||
#: lib/user_interaction.py:360 lib/user_interaction.py:360
|
||||
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:363 lib/user_interaction.py:363
|
||||
#: lib/user_interaction.py:364 lib/user_interaction.py:367
|
||||
#: lib/user_interaction.py:370 lib/user_interaction.py:370
|
||||
msgid "Choose a bootloader"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:379 lib/user_interaction.py:379
|
||||
#: lib/user_interaction.py:380 lib/user_interaction.py:383
|
||||
#: lib/user_interaction.py:386 lib/user_interaction.py:386
|
||||
msgid "Choose an audio server"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:390 lib/user_interaction.py:390
|
||||
#: lib/user_interaction.py:391 lib/user_interaction.py:394
|
||||
#: lib/user_interaction.py:397 lib/user_interaction.py:397
|
||||
msgid ""
|
||||
"Only packages such as base, base-devel, linux, linux-firmware, efibootmgr "
|
||||
"and optional profile packages are installed."
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:391 lib/user_interaction.py:391
|
||||
#: lib/user_interaction.py:392 lib/user_interaction.py:395
|
||||
#: lib/user_interaction.py:398 lib/user_interaction.py:398
|
||||
msgid ""
|
||||
"If you desire a web browser, such as firefox or chromium, you may specify it "
|
||||
"in the following prompt."
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:395 lib/user_interaction.py:395
|
||||
#: lib/user_interaction.py:396 lib/user_interaction.py:399
|
||||
#: lib/user_interaction.py:402 lib/user_interaction.py:402
|
||||
msgid ""
|
||||
"Write additional packages to install (space separated, leave blank to skip): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:418 lib/user_interaction.py:418
|
||||
#: lib/user_interaction.py:419 lib/user_interaction.py:422
|
||||
#: lib/user_interaction.py:425 lib/user_interaction.py:425
|
||||
msgid "Copy ISO network configuration to installation"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:419 lib/user_interaction.py:419
|
||||
#: lib/user_interaction.py:420 lib/user_interaction.py:423
|
||||
#: lib/user_interaction.py:426 lib/user_interaction.py:426
|
||||
msgid ""
|
||||
"Use NetworkManager (necessary to configure internet graphically in GNOME and "
|
||||
"KDE)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:427 lib/user_interaction.py:427
|
||||
#: lib/user_interaction.py:428 lib/user_interaction.py:431
|
||||
#: lib/user_interaction.py:434 lib/user_interaction.py:434
|
||||
msgid "Select one network interface to configure"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:440 lib/user_interaction.py:440
|
||||
#: lib/user_interaction.py:441 lib/user_interaction.py:444
|
||||
#: lib/user_interaction.py:447 lib/user_interaction.py:447
|
||||
msgid ""
|
||||
"Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:445 lib/user_interaction.py:445
|
||||
#: lib/user_interaction.py:446 lib/user_interaction.py:449
|
||||
#: lib/user_interaction.py:452 lib/user_interaction.py:452
|
||||
msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:460 lib/user_interaction.py:460
|
||||
#: lib/user_interaction.py:461 lib/user_interaction.py:464
|
||||
#: lib/user_interaction.py:467 lib/user_interaction.py:467
|
||||
msgid "Enter your gateway (router) IP address or leave blank for none: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:475 lib/user_interaction.py:475
|
||||
#: lib/user_interaction.py:476 lib/user_interaction.py:479
|
||||
#: lib/user_interaction.py:482 lib/user_interaction.py:482
|
||||
msgid "Enter your DNS servers (space separated, blank for none): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:509 lib/user_interaction.py:509
|
||||
#: lib/user_interaction.py:510 lib/user_interaction.py:513
|
||||
#: lib/user_interaction.py:516 lib/user_interaction.py:516
|
||||
msgid "Select which filesystem your main partition should use"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:555 lib/user_interaction.py:555
|
||||
#: lib/user_interaction.py:556 lib/user_interaction.py:559
|
||||
#: lib/user_interaction.py:562 lib/user_interaction.py:562
|
||||
msgid "Current partition layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:606 lib/user_interaction.py:606
|
||||
#: lib/user_interaction.py:607 lib/user_interaction.py:614
|
||||
#: lib/user_interaction.py:617 lib/user_interaction.py:620
|
||||
#: lib/user_interaction.py:620
|
||||
msgid ""
|
||||
"Select what to do with\n"
|
||||
"{}"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:623 lib/user_interaction.py:708
|
||||
#: lib/user_interaction.py:623 lib/user_interaction.py:708
|
||||
#: lib/user_interaction.py:624 lib/user_interaction.py:709
|
||||
#: lib/user_interaction.py:631 lib/user_interaction.py:716
|
||||
#: lib/user_interaction.py:634 lib/user_interaction.py:719
|
||||
#: lib/user_interaction.py:637 lib/user_interaction.py:722
|
||||
#: lib/user_interaction.py:637 lib/user_interaction.py:722
|
||||
msgid "Enter a desired filesystem type for the partition"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:625 lib/user_interaction.py:625
|
||||
#: lib/user_interaction.py:626 lib/user_interaction.py:633
|
||||
#: lib/user_interaction.py:636 lib/user_interaction.py:639
|
||||
#: lib/user_interaction.py:639
|
||||
msgid "Enter the start sector (percentage or block number, default: {}): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:634 lib/user_interaction.py:634
|
||||
#: lib/user_interaction.py:635 lib/user_interaction.py:642
|
||||
#: lib/user_interaction.py:645 lib/user_interaction.py:648
|
||||
#: lib/user_interaction.py:648
|
||||
msgid ""
|
||||
"Enter the end sector of the partition (percentage or block number, ex: {}): "
|
||||
"\""
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:660 lib/user_interaction.py:660
|
||||
#: lib/user_interaction.py:661 lib/user_interaction.py:668
|
||||
#: lib/user_interaction.py:671 lib/user_interaction.py:674
|
||||
#: lib/user_interaction.py:674
|
||||
msgid "{} contains queued partitions, this will remove those, are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:673 lib/user_interaction.py:673
|
||||
#: lib/user_interaction.py:674 lib/user_interaction.py:681
|
||||
#: lib/user_interaction.py:684 lib/user_interaction.py:687
|
||||
#: lib/user_interaction.py:687
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select by index which partitions to delete"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:681 lib/user_interaction.py:681
|
||||
#: lib/user_interaction.py:682 lib/user_interaction.py:689
|
||||
#: lib/user_interaction.py:692 lib/user_interaction.py:695
|
||||
#: lib/user_interaction.py:695
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select by index which partition to mount where"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:685 lib/user_interaction.py:685
|
||||
#: lib/user_interaction.py:686 lib/user_interaction.py:693
|
||||
#: lib/user_interaction.py:696 lib/user_interaction.py:699
|
||||
#: lib/user_interaction.py:699
|
||||
msgid ""
|
||||
" * Partition mount-points are relative to inside the installation, the boot "
|
||||
"would be /boot as an example."
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:686 lib/user_interaction.py:686
|
||||
#: lib/user_interaction.py:687 lib/user_interaction.py:694
|
||||
#: lib/user_interaction.py:697 lib/user_interaction.py:700
|
||||
#: lib/user_interaction.py:700
|
||||
msgid "Select where to mount partition (leave blank to remove mountpoint): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:697 lib/user_interaction.py:697
|
||||
#: lib/user_interaction.py:698 lib/user_interaction.py:705
|
||||
#: lib/user_interaction.py:708 lib/user_interaction.py:711
|
||||
#: lib/user_interaction.py:711
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select which partition to mask for formatting"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:716 lib/user_interaction.py:716
|
||||
#: lib/user_interaction.py:717 lib/user_interaction.py:724
|
||||
#: lib/user_interaction.py:727 lib/user_interaction.py:730
|
||||
#: lib/user_interaction.py:730
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select which partition to mark as encrypted"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:724 lib/user_interaction.py:724
|
||||
#: lib/user_interaction.py:725 lib/user_interaction.py:732
|
||||
#: lib/user_interaction.py:735 lib/user_interaction.py:738
|
||||
#: lib/user_interaction.py:738
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select which partition to mark as bootable"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:731 lib/user_interaction.py:731
|
||||
#: lib/user_interaction.py:732 lib/user_interaction.py:739
|
||||
#: lib/user_interaction.py:742 lib/user_interaction.py:745
|
||||
#: lib/user_interaction.py:745
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select which partition to set a filesystem on"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:738 lib/user_interaction.py:738
|
||||
#: lib/user_interaction.py:739 lib/user_interaction.py:746
|
||||
#: lib/user_interaction.py:749 lib/user_interaction.py:752
|
||||
#: lib/user_interaction.py:752
|
||||
msgid "Enter a desired filesystem type for the partition: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:759 lib/menu/selection_menu.py:116
|
||||
#: lib/user_interaction.py:759 lib/menu/selection_menu.py:116
|
||||
#: lib/user_interaction.py:760 lib/menu/selection_menu.py:141
|
||||
#: lib/user_interaction.py:767 lib/menu/selection_menu.py:139
|
||||
#: lib/menu/selection_menu.py:143 lib/user_interaction.py:770
|
||||
#: lib/user_interaction.py:773 lib/user_interaction.py:773
|
||||
#: lib/menu/selection_menu.py:143
|
||||
msgid "Select Archinstall language"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:764 lib/user_interaction.py:764
|
||||
#: lib/user_interaction.py:765 lib/user_interaction.py:772
|
||||
#: lib/user_interaction.py:775 lib/user_interaction.py:778
|
||||
#: lib/user_interaction.py:778
|
||||
msgid "Wipe all selected drives and use a best-effort default partition layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:765 lib/user_interaction.py:765
|
||||
#: lib/user_interaction.py:766 lib/user_interaction.py:773
|
||||
#: lib/user_interaction.py:776 lib/user_interaction.py:779
|
||||
#: lib/user_interaction.py:779
|
||||
msgid ""
|
||||
"Select what to do with each individual drive (followed by partition usage)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:768 lib/user_interaction.py:768
|
||||
#: lib/user_interaction.py:769 lib/user_interaction.py:770
|
||||
#: lib/user_interaction.py:777 lib/user_interaction.py:780
|
||||
#: lib/user_interaction.py:783 lib/user_interaction.py:783
|
||||
msgid "Select what you wish to do with the selected block devices"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:821 lib/user_interaction.py:821
|
||||
#: lib/user_interaction.py:822 lib/user_interaction.py:823
|
||||
#: lib/user_interaction.py:830 lib/user_interaction.py:833
|
||||
#: lib/user_interaction.py:836 lib/user_interaction.py:836
|
||||
msgid ""
|
||||
"This is a list of pre-programmed profiles, they might make it easier to "
|
||||
"install things like desktop environments"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:846 lib/user_interaction.py:846
|
||||
#: lib/user_interaction.py:846 lib/user_interaction.py:847
|
||||
#: lib/user_interaction.py:854 lib/user_interaction.py:857
|
||||
#: lib/user_interaction.py:860 lib/user_interaction.py:860
|
||||
msgid "Select Keyboard layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:861 lib/user_interaction.py:861
|
||||
#: lib/user_interaction.py:861 lib/user_interaction.py:862
|
||||
#: lib/user_interaction.py:869 lib/user_interaction.py:872
|
||||
#: lib/user_interaction.py:875 lib/user_interaction.py:875
|
||||
msgid "Select one of the regions to download packages from"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:883 lib/user_interaction.py:883
|
||||
#: lib/user_interaction.py:883 lib/user_interaction.py:884
|
||||
#: lib/user_interaction.py:891 lib/user_interaction.py:894
|
||||
#: lib/user_interaction.py:897 lib/user_interaction.py:897
|
||||
msgid "Select one or more hard drives to use and configure"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:910 lib/user_interaction.py:910
|
||||
#: lib/user_interaction.py:910 lib/user_interaction.py:911
|
||||
#: lib/user_interaction.py:918 lib/user_interaction.py:921
|
||||
#: lib/user_interaction.py:924 lib/user_interaction.py:924
|
||||
msgid ""
|
||||
"For the best compatibility with your AMD hardware, you may want to use "
|
||||
"either the all open-source or AMD / ATI options."
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:912 lib/user_interaction.py:912
|
||||
#: lib/user_interaction.py:912 lib/user_interaction.py:913
|
||||
#: lib/user_interaction.py:920 lib/user_interaction.py:923
|
||||
#: lib/user_interaction.py:926 lib/user_interaction.py:926
|
||||
msgid ""
|
||||
"For the best compatibility with your Intel hardware, you may want to use "
|
||||
"either the all open-source or Intel options.\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:914 lib/user_interaction.py:914
|
||||
#: lib/user_interaction.py:914 lib/user_interaction.py:915
|
||||
#: lib/user_interaction.py:922 lib/user_interaction.py:925
|
||||
#: lib/user_interaction.py:928 lib/user_interaction.py:928
|
||||
msgid ""
|
||||
"For the best compatibility with your Nvidia hardware, you may want to use "
|
||||
"the Nvidia proprietary driver.\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:917 lib/user_interaction.py:917
|
||||
#: lib/user_interaction.py:917 lib/user_interaction.py:918
|
||||
#: lib/user_interaction.py:925 lib/user_interaction.py:928
|
||||
#: lib/user_interaction.py:931 lib/user_interaction.py:931
|
||||
msgid ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Select a graphics driver or leave blank to install all open-source drivers"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:921 lib/user_interaction.py:921
|
||||
#: lib/user_interaction.py:921 lib/user_interaction.py:922
|
||||
#: lib/user_interaction.py:929 lib/user_interaction.py:932
|
||||
#: lib/user_interaction.py:935 lib/user_interaction.py:935
|
||||
msgid "All open-source (default)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:940 lib/user_interaction.py:940
|
||||
#: lib/user_interaction.py:940 lib/user_interaction.py:941
|
||||
#: lib/user_interaction.py:948 lib/user_interaction.py:951
|
||||
#: lib/user_interaction.py:954 lib/user_interaction.py:954
|
||||
msgid "Choose which kernels to use or leave blank for default \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:954 lib/user_interaction.py:954
|
||||
#: lib/user_interaction.py:954 lib/user_interaction.py:955
|
||||
#: lib/user_interaction.py:962 lib/user_interaction.py:965
|
||||
#: lib/user_interaction.py:968 lib/user_interaction.py:968
|
||||
msgid "Choose which locale language to use"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:968 lib/user_interaction.py:968
|
||||
#: lib/user_interaction.py:968 lib/user_interaction.py:969
|
||||
#: lib/user_interaction.py:976 lib/user_interaction.py:979
|
||||
#: lib/user_interaction.py:982 lib/user_interaction.py:982
|
||||
msgid "Choose which locale encoding to use"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:1009 lib/user_interaction.py:1009
|
||||
#: lib/user_interaction.py:1009 lib/user_interaction.py:1010
|
||||
#: lib/user_interaction.py:1017 lib/user_interaction.py:1020
|
||||
#: lib/user_interaction.py:1023 lib/user_interaction.py:1023
|
||||
msgid "Select one of the values shown below: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:1050 lib/user_interaction.py:1050
|
||||
#: lib/user_interaction.py:1050 lib/user_interaction.py:1051
|
||||
#: lib/user_interaction.py:1058 lib/user_interaction.py:1061
|
||||
#: lib/user_interaction.py:1064 lib/user_interaction.py:1064
|
||||
msgid "Select one or more of the options below: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:122 lib/menu/selection_menu.py:122
|
||||
#: lib/disk/filesystem.py:86 lib/disk/filesystem.py:86
|
||||
msgid "Adding partition...."
|
||||
msgstr ""
|
||||
|
||||
#: lib/disk/filesystem.py:139 lib/disk/filesystem.py:141
|
||||
#: lib/disk/filesystem.py:141
|
||||
msgid ""
|
||||
"You need to enter a valid fs-type in order to continue. See `man parted` for "
|
||||
"valid fs-type's."
|
||||
msgstr ""
|
||||
|
||||
#: lib/profiles.py:89 lib/profiles.py:89
|
||||
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
|
||||
msgstr ""
|
||||
|
||||
#: lib/profiles.py:92 lib/profiles.py:92
|
||||
msgid "Error: Could not decode \"{}\" result as JSON:"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:146 lib/menu/selection_menu.py:144
|
||||
#: lib/menu/selection_menu.py:148 lib/menu/selection_menu.py:148
|
||||
msgid "Select keyboard layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:125 lib/menu/selection_menu.py:125
|
||||
#: lib/menu/selection_menu.py:149 lib/menu/selection_menu.py:147
|
||||
#: lib/menu/selection_menu.py:151 lib/menu/selection_menu.py:151
|
||||
msgid "Select mirror region"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:130 lib/menu/selection_menu.py:130
|
||||
#: lib/menu/selection_menu.py:154 lib/menu/selection_menu.py:152
|
||||
#: lib/menu/selection_menu.py:156 lib/menu/selection_menu.py:156
|
||||
msgid "Select locale language"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:132 lib/menu/selection_menu.py:132
|
||||
#: lib/menu/selection_menu.py:156 lib/menu/selection_menu.py:154
|
||||
#: lib/menu/selection_menu.py:158 lib/menu/selection_menu.py:158
|
||||
msgid "Select locale encoding"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:135 lib/menu/selection_menu.py:135
|
||||
#: lib/menu/selection_menu.py:159 lib/menu/selection_menu.py:157
|
||||
#: lib/menu/selection_menu.py:161 lib/menu/selection_menu.py:161
|
||||
msgid "Select harddrives"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:139 lib/menu/selection_menu.py:139
|
||||
#: lib/menu/selection_menu.py:163 lib/menu/selection_menu.py:161
|
||||
#: lib/menu/selection_menu.py:165 lib/menu/selection_menu.py:165
|
||||
msgid "Select disk layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:147 lib/menu/selection_menu.py:147
|
||||
#: lib/menu/selection_menu.py:171 lib/menu/selection_menu.py:169
|
||||
#: lib/menu/selection_menu.py:173 lib/menu/selection_menu.py:173
|
||||
msgid "Set encryption password"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:153 lib/menu/selection_menu.py:153
|
||||
#: lib/menu/selection_menu.py:177 lib/menu/selection_menu.py:175
|
||||
#: lib/menu/selection_menu.py:179 lib/menu/selection_menu.py:179
|
||||
msgid "Use swap"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:158 lib/menu/selection_menu.py:158
|
||||
#: lib/menu/selection_menu.py:182 lib/menu/selection_menu.py:180
|
||||
#: lib/menu/selection_menu.py:184 lib/menu/selection_menu.py:184
|
||||
msgid "Select bootloader"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:164 lib/menu/selection_menu.py:164
|
||||
#: lib/menu/selection_menu.py:188 lib/menu/selection_menu.py:186
|
||||
#: lib/menu/selection_menu.py:190 lib/menu/selection_menu.py:190
|
||||
msgid "Set root password"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:169 lib/menu/selection_menu.py:169
|
||||
#: lib/menu/selection_menu.py:193 lib/menu/selection_menu.py:191
|
||||
#: lib/menu/selection_menu.py:195 lib/menu/selection_menu.py:195
|
||||
msgid "Specify superuser account"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:175 lib/menu/selection_menu.py:175
|
||||
#: lib/menu/selection_menu.py:199 lib/menu/selection_menu.py:197
|
||||
#: lib/menu/selection_menu.py:201 lib/menu/selection_menu.py:201
|
||||
msgid "Specify user account"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:181 lib/menu/selection_menu.py:181
|
||||
#: lib/menu/selection_menu.py:205 lib/menu/selection_menu.py:203
|
||||
#: lib/menu/selection_menu.py:207 lib/menu/selection_menu.py:207
|
||||
msgid "Specify profile"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:186 lib/menu/selection_menu.py:186
|
||||
#: lib/menu/selection_menu.py:210 lib/menu/selection_menu.py:208
|
||||
#: lib/menu/selection_menu.py:212 lib/menu/selection_menu.py:212
|
||||
msgid "Select audio"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:190 lib/menu/selection_menu.py:190
|
||||
#: lib/menu/selection_menu.py:214 lib/menu/selection_menu.py:212
|
||||
#: lib/menu/selection_menu.py:216 lib/menu/selection_menu.py:216
|
||||
msgid "Select kernels"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:195 lib/menu/selection_menu.py:195
|
||||
#: lib/menu/selection_menu.py:219 lib/menu/selection_menu.py:217
|
||||
#: lib/menu/selection_menu.py:221 lib/menu/selection_menu.py:221
|
||||
msgid "Additional packages to install"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:200 lib/menu/selection_menu.py:200
|
||||
#: lib/menu/selection_menu.py:224 lib/menu/selection_menu.py:222
|
||||
#: lib/menu/selection_menu.py:226 lib/menu/selection_menu.py:226
|
||||
msgid "Configure network"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:208 lib/menu/selection_menu.py:208
|
||||
#: lib/menu/selection_menu.py:232 lib/menu/selection_menu.py:230
|
||||
#: lib/menu/selection_menu.py:234 lib/menu/selection_menu.py:234
|
||||
msgid "Set automatic time sync (NTP)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:310 lib/menu/selection_menu.py:308
|
||||
#: lib/menu/selection_menu.py:315 lib/menu/selection_menu.py:315
|
||||
msgid "Install ({} config(s) missing)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:373 lib/menu/selection_menu.py:371
|
||||
#: lib/menu/selection_menu.py:378 lib/menu/selection_menu.py:378
|
||||
msgid ""
|
||||
"You decided to skip harddrive selection\n"
|
||||
"and will use whatever drive-setup is mounted at {} (experimental)\n"
|
||||
"WARNING: Archinstall won't check the suitability of this setup\n"
|
||||
"Do you wish to continue?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/disk/filesystem.py:97 lib/disk/filesystem.py:97
|
||||
msgid "Re-using partition instance: {}"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:590 lib/user_interaction.py:593
|
||||
#: lib/user_interaction.py:596 lib/user_interaction.py:596
|
||||
msgid "Create a new partition"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:592 lib/user_interaction.py:595
|
||||
#: lib/user_interaction.py:598 lib/user_interaction.py:598
|
||||
msgid "Delete a partition"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:593 lib/user_interaction.py:596
|
||||
#: lib/user_interaction.py:599 lib/user_interaction.py:599
|
||||
msgid "Clear/Delete all partitions"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:594 lib/user_interaction.py:597
|
||||
#: lib/user_interaction.py:600 lib/user_interaction.py:600
|
||||
msgid "Assign mount-point for a partition"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:595 lib/user_interaction.py:598
|
||||
#: lib/user_interaction.py:601 lib/user_interaction.py:601
|
||||
msgid "Mark/Unmark a partition to be formatted (wipes data)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:596 lib/user_interaction.py:599
|
||||
#: lib/user_interaction.py:602 lib/user_interaction.py:602
|
||||
msgid "Mark/Unmark a partition as encrypted"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:597 lib/user_interaction.py:600
|
||||
#: lib/user_interaction.py:603 lib/user_interaction.py:603
|
||||
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:598 lib/user_interaction.py:601
|
||||
#: lib/user_interaction.py:604 lib/user_interaction.py:604
|
||||
msgid "Set desired filesystem for a partition"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:239 lib/menu/selection_menu.py:237
|
||||
#: lib/menu/selection_menu.py:241 lib/menu/selection_menu.py:270
|
||||
#: lib/menu/selection_menu.py:241 lib/menu/selection_menu.py:270
|
||||
msgid "Abort"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:183 lib/menu/selection_menu.py:187
|
||||
#: lib/menu/selection_menu.py:187
|
||||
msgid "Specify hostname"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:228 lib/menu/selection_menu.py:228
|
||||
msgid "Not configured, unavailable unless setup manually"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:231 lib/menu/selection_menu.py:231
|
||||
msgid "Select timezone"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:266 lib/menu/selection_menu.py:266
|
||||
msgid "Set/Modify the below options"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:272 lib/menu/selection_menu.py:272
|
||||
msgid "Install"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/menu.py:68 lib/menu/menu.py:68
|
||||
msgid ""
|
||||
"Use ESC to skip\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:591 lib/user_interaction.py:594
|
||||
#: lib/user_interaction.py:597 lib/user_interaction.py:597
|
||||
msgid "Suggest partition layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:101 lib/user_interaction.py:101
|
||||
msgid "Enter a password: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/disk/filesystem.py:117 lib/disk/filesystem.py:117
|
||||
msgid "Enter a encryption password for {}"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:174 lib/menu/selection_menu.py:174
|
||||
msgid "Enter disk encryption password (leave blank for no encryption): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:407 lib/menu/selection_menu.py:407
|
||||
msgid "Create a required super-user with sudo privileges: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:347 lib/menu/selection_menu.py:347
|
||||
msgid "Enter root password (leave blank to disable root): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:307 lib/user_interaction.py:324
|
||||
#: lib/user_interaction.py:307 lib/user_interaction.py:324
|
||||
msgid "Password for user \"{}\": "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:405 lib/user_interaction.py:408
|
||||
#: lib/user_interaction.py:408
|
||||
msgid ""
|
||||
"Verifying that additional packages exist (this might take a few seconds)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:281 lib/user_interaction.py:281
|
||||
msgid ""
|
||||
"Would you like to use automatic time synchronization (NTP) with the default "
|
||||
"time servers?\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:282 lib/user_interaction.py:282
|
||||
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 ""
|
||||
|
||||
#: lib/menu/selection_menu.py:411 lib/menu/selection_menu.py:411
|
||||
msgid "Enter a username to create an additional user (leave blank to skip): "
|
||||
msgstr ""
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1,351 +1,506 @@
|
|||
#: lib/user_interaction.py:82
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: de\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 3.0\n"
|
||||
|
||||
#: lib/installer.py:144
|
||||
msgid "[!] A log file has been created here: {} {}"
|
||||
msgstr "[!] Eine Logdatei wurde erstellt: {} {}"
|
||||
|
||||
#: lib/installer.py:145
|
||||
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
|
||||
msgstr "Bitte melden sie das Problem mit der erstellten Datei auf https://github.com/archlinux/archinstall/issues"
|
||||
|
||||
#: lib/user_interaction.py:83
|
||||
msgid "Do you really want to abort?"
|
||||
msgstr ""
|
||||
msgstr "Wollen Sie wirklich abbrechen?"
|
||||
|
||||
#: lib/user_interaction.py:100
|
||||
#: lib/user_interaction.py:101 lib/user_interaction.py:104
|
||||
msgid "And one more time for verification: "
|
||||
msgstr ""
|
||||
msgstr "Und nocheinmal zur Besätigung: "
|
||||
|
||||
#: lib/user_interaction.py:271
|
||||
#: lib/user_interaction.py:272 lib/user_interaction.py:275
|
||||
msgid "Would you like to use swap on zram?"
|
||||
msgstr ""
|
||||
msgstr "Möchten Sie swap mit zram verwenden?"
|
||||
|
||||
#: lib/user_interaction.py:277
|
||||
msgid ""
|
||||
"Would you like to use automatic time synchronization (NTP) with the default "
|
||||
"time servers?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:278
|
||||
msgid ""
|
||||
"Hardware time and other post-configuration steps might be required in order "
|
||||
"for NTP to work. For more information, please check the Arch wiki"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:284
|
||||
#: lib/user_interaction.py:285 lib/user_interaction.py:288
|
||||
msgid "Desired hostname for the installation: "
|
||||
msgstr ""
|
||||
msgstr "Gewnüschter Hostname für die Installation: "
|
||||
|
||||
#: lib/user_interaction.py:289
|
||||
#: lib/user_interaction.py:290 lib/user_interaction.py:293
|
||||
msgid "Username for required superuser with sudo privileges: "
|
||||
msgstr ""
|
||||
msgstr "Benutzername für den erforderlichen superuser mit sudo Rechten: "
|
||||
|
||||
#: lib/user_interaction.py:303 lib/user_interaction.py:320
|
||||
msgid "Password for user \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:309
|
||||
#: lib/user_interaction.py:310 lib/user_interaction.py:313
|
||||
msgid "Any additional users to install (leave blank for no users): "
|
||||
msgstr ""
|
||||
msgstr "Geben Sie weitere Benutzernamen ein die installiert werden sollen (leer lassen für keine weiteren Benutzer): "
|
||||
|
||||
#: lib/user_interaction.py:323
|
||||
#: lib/user_interaction.py:324 lib/user_interaction.py:327
|
||||
msgid "Should this user be a superuser (sudoer)?"
|
||||
msgstr ""
|
||||
msgstr "Soll dieser Benutzer ein superuser sein (sudoer)?"
|
||||
|
||||
#: lib/user_interaction.py:339
|
||||
#: lib/user_interaction.py:340 lib/user_interaction.py:343 lib/user_interaction.py:346
|
||||
msgid "Select a timezone"
|
||||
msgstr ""
|
||||
msgstr "Bitte wählen Sie eine Zeitzone aus"
|
||||
|
||||
#: lib/user_interaction.py:353
|
||||
#: lib/user_interaction.py:354 lib/user_interaction.py:357 lib/user_interaction.py:360
|
||||
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
|
||||
msgstr ""
|
||||
msgstr "Möchten Sie GRUB als bootloader anstelle von system-boot verwenden?"
|
||||
|
||||
#: lib/user_interaction.py:363
|
||||
#: lib/user_interaction.py:364 lib/user_interaction.py:367 lib/user_interaction.py:370
|
||||
msgid "Choose a bootloader"
|
||||
msgstr ""
|
||||
msgstr "Bitte wählen Sie einen bootloader aus"
|
||||
|
||||
#: lib/user_interaction.py:379
|
||||
#: lib/user_interaction.py:380 lib/user_interaction.py:383 lib/user_interaction.py:386
|
||||
msgid "Choose an audio server"
|
||||
msgstr ""
|
||||
msgstr "Bitte wählen Sie einen Audio server aus"
|
||||
|
||||
#: lib/user_interaction.py:390
|
||||
msgid ""
|
||||
"Only packages such as base, base-devel, linux, linux-firmware, efibootmgr "
|
||||
"and optional profile packages are installed."
|
||||
msgstr ""
|
||||
#: lib/user_interaction.py:391 lib/user_interaction.py:394 lib/user_interaction.py:397
|
||||
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
|
||||
msgstr "Nur die Packete base, base-devel, linux, linux-firmware, efibootmgr und optionale Profilpackete werden installiert"
|
||||
|
||||
#: lib/user_interaction.py:391
|
||||
msgid ""
|
||||
"If you desire a web browser, such as firefox or chromium, you may specify it "
|
||||
"in the following prompt."
|
||||
msgstr ""
|
||||
#: lib/user_interaction.py:392 lib/user_interaction.py:395 lib/user_interaction.py:398
|
||||
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
|
||||
msgstr "Wenn Sie einen Webbrowser, z.B. Firefox oder Chromium, installieren möchten, können Sie diese nun eingeben."
|
||||
|
||||
#: lib/user_interaction.py:395
|
||||
msgid ""
|
||||
"Write additional packages to install (space separated, leave blank to skip): "
|
||||
msgstr ""
|
||||
#: lib/user_interaction.py:396 lib/user_interaction.py:399 lib/user_interaction.py:402
|
||||
msgid "Write additional packages to install (space separated, leave blank to skip): "
|
||||
msgstr "Schreiben Sie zusätzliche Packete die installiert werden sollen mit einem Leerzeichen getrennt (zum Überspringen leer lassen): "
|
||||
|
||||
#: lib/user_interaction.py:418
|
||||
#: lib/user_interaction.py:419 lib/user_interaction.py:422 lib/user_interaction.py:425
|
||||
msgid "Copy ISO network configuration to installation"
|
||||
msgstr ""
|
||||
msgstr "ISO netzwerk Einstellungen in die Installation kopieren"
|
||||
|
||||
#: lib/user_interaction.py:419
|
||||
msgid ""
|
||||
"Use NetworkManager (necessary to configure internet graphically in GNOME and "
|
||||
"KDE)"
|
||||
msgstr ""
|
||||
#: lib/user_interaction.py:420 lib/user_interaction.py:423 lib/user_interaction.py:426
|
||||
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
|
||||
msgstr "NetworkManager benutzen (notwendig um Internet auf graphische Weise in GNOME und KDE einzustellen)"
|
||||
|
||||
#: lib/user_interaction.py:427
|
||||
#: lib/user_interaction.py:428 lib/user_interaction.py:431 lib/user_interaction.py:434
|
||||
msgid "Select one network interface to configure"
|
||||
msgstr ""
|
||||
msgstr "Bitte wählen Sie ein netzwerk zur Konfiguration aus"
|
||||
|
||||
#: lib/user_interaction.py:440
|
||||
msgid ""
|
||||
"Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
|
||||
msgstr ""
|
||||
#: lib/user_interaction.py:441 lib/user_interaction.py:444 lib/user_interaction.py:447
|
||||
msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
|
||||
msgstr "Bitte wählen Sie einen Modus zur Konfiguration von \"{}\" aus oder Überspringen um mit dem voreingestellten Modus \"{}\" fortzufahren"
|
||||
|
||||
#: lib/user_interaction.py:445
|
||||
#: lib/user_interaction.py:446 lib/user_interaction.py:449 lib/user_interaction.py:452
|
||||
msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): "
|
||||
msgstr ""
|
||||
msgstr "Bitte geben Sie eine IP Adresse und ein Subnet für {} ein (z.B. 192.168.0.5/24)"
|
||||
|
||||
#: lib/user_interaction.py:460
|
||||
#: lib/user_interaction.py:461 lib/user_interaction.py:464 lib/user_interaction.py:467
|
||||
msgid "Enter your gateway (router) IP address or leave blank for none: "
|
||||
msgstr ""
|
||||
msgstr "Bitte geben Sie eine gateway (router) IP Adresse ein (leer lassen für kein Adresse): "
|
||||
|
||||
#: lib/user_interaction.py:475
|
||||
#: lib/user_interaction.py:476 lib/user_interaction.py:479 lib/user_interaction.py:482
|
||||
msgid "Enter your DNS servers (space separated, blank for none): "
|
||||
msgstr ""
|
||||
msgstr "Bitte geben Sie die DNS server ein (mit Leerzeichen getrennt oder leer lassen für keinen server): "
|
||||
|
||||
#: lib/user_interaction.py:509
|
||||
#: lib/user_interaction.py:510 lib/user_interaction.py:513 lib/user_interaction.py:516
|
||||
msgid "Select which filesystem your main partition should use"
|
||||
msgstr ""
|
||||
msgstr "Bitte wählen Sie ein Dateisystem aus, welches für die Hauptpartition verwendet werden soll"
|
||||
|
||||
#: lib/user_interaction.py:555
|
||||
#: lib/user_interaction.py:556 lib/user_interaction.py:559 lib/user_interaction.py:562
|
||||
msgid "Current partition layout"
|
||||
msgstr ""
|
||||
msgstr "Momentanes Partitionslayout"
|
||||
|
||||
#: lib/user_interaction.py:606
|
||||
#: lib/user_interaction.py:607 lib/user_interaction.py:614 lib/user_interaction.py:617 lib/user_interaction.py:620
|
||||
msgid ""
|
||||
"Select what to do with\n"
|
||||
"{}"
|
||||
msgstr ""
|
||||
"Bitte wählen Sie eine Aktion aus für\n"
|
||||
"{}"
|
||||
|
||||
#: lib/user_interaction.py:623 lib/user_interaction.py:708
|
||||
#: lib/user_interaction.py:624 lib/user_interaction.py:709 lib/user_interaction.py:631 lib/user_interaction.py:716 lib/user_interaction.py:634 lib/user_interaction.py:719 lib/user_interaction.py:637 lib/user_interaction.py:722
|
||||
msgid "Enter a desired filesystem type for the partition"
|
||||
msgstr ""
|
||||
msgstr "Bitte wählen Sie einen Dateisystemtyp für die Partition aus"
|
||||
|
||||
#: lib/user_interaction.py:625
|
||||
#: lib/user_interaction.py:626 lib/user_interaction.py:633 lib/user_interaction.py:636 lib/user_interaction.py:639
|
||||
msgid "Enter the start sector (percentage or block number, default: {}): "
|
||||
msgstr ""
|
||||
msgstr "Bitte geben Sie den start Sektor ein (in Prozent oder Blocknummer, default: {}): "
|
||||
|
||||
#: lib/user_interaction.py:634
|
||||
msgid ""
|
||||
"Enter the end sector of the partition (percentage or block number, ex: {}): "
|
||||
"\""
|
||||
msgstr ""
|
||||
#: lib/user_interaction.py:635 lib/user_interaction.py:642 lib/user_interaction.py:645 lib/user_interaction.py:648
|
||||
msgid "Enter the end sector of the partition (percentage or block number, ex: {}): "
|
||||
msgstr "Bitte geben Sie den end Sektor ein (in Prozent oder Blocknummer, default: {}): "
|
||||
|
||||
#: lib/user_interaction.py:660
|
||||
#: lib/user_interaction.py:661 lib/user_interaction.py:668 lib/user_interaction.py:671 lib/user_interaction.py:674
|
||||
msgid "{} contains queued partitions, this will remove those, are you sure?"
|
||||
msgstr ""
|
||||
msgstr "{} enthält Partitionen in der Warteschlange, dies werden damit entfernt, sind sie sicher?"
|
||||
|
||||
#: lib/user_interaction.py:673
|
||||
#: lib/user_interaction.py:674 lib/user_interaction.py:681 lib/user_interaction.py:684 lib/user_interaction.py:687
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select by index which partitions to delete"
|
||||
msgstr ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Wählen sie anhand vom index welche Partitionen gelöscht werden sollen"
|
||||
|
||||
#: lib/user_interaction.py:681
|
||||
#: lib/user_interaction.py:682 lib/user_interaction.py:689 lib/user_interaction.py:692 lib/user_interaction.py:695
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select by index which partition to mount where"
|
||||
msgstr ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Wählen sie anhand vom index welche Partitionen zu mounten"
|
||||
|
||||
#: lib/user_interaction.py:685
|
||||
msgid ""
|
||||
" * Partition mount-points are relative to inside the installation, the boot "
|
||||
"would be /boot as an example."
|
||||
msgstr ""
|
||||
#: lib/user_interaction.py:686 lib/user_interaction.py:693 lib/user_interaction.py:696 lib/user_interaction.py:699
|
||||
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
|
||||
msgstr " * Die Mountorte sind relativ zur Installation, zum Beispiel boot würde gemountet auf /boot"
|
||||
|
||||
#: lib/user_interaction.py:686
|
||||
#: lib/user_interaction.py:687 lib/user_interaction.py:694 lib/user_interaction.py:697 lib/user_interaction.py:700
|
||||
msgid "Select where to mount partition (leave blank to remove mountpoint): "
|
||||
msgstr ""
|
||||
msgstr "Bitte geben sie an wo die Partition gemounted werden soll (leer lassen um den Mountort zu entfernen): "
|
||||
|
||||
#: lib/user_interaction.py:697
|
||||
#: lib/user_interaction.py:698 lib/user_interaction.py:705 lib/user_interaction.py:708 lib/user_interaction.py:711
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select which partition to mask for formatting"
|
||||
msgstr ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Bitte wählen sie welche Partition formatiert werden soll"
|
||||
|
||||
#: lib/user_interaction.py:716
|
||||
#: lib/user_interaction.py:717 lib/user_interaction.py:724 lib/user_interaction.py:727 lib/user_interaction.py:730
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select which partition to mark as encrypted"
|
||||
msgstr ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Bitte wählen sie welche Partition verschlüsselt werden soll"
|
||||
|
||||
#: lib/user_interaction.py:724
|
||||
#: lib/user_interaction.py:725 lib/user_interaction.py:732 lib/user_interaction.py:735 lib/user_interaction.py:738
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select which partition to mark as bootable"
|
||||
msgstr ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Bitte wählen sie welche Partition bootbar ist"
|
||||
|
||||
#: lib/user_interaction.py:731
|
||||
#: lib/user_interaction.py:732 lib/user_interaction.py:739 lib/user_interaction.py:742 lib/user_interaction.py:745
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select which partition to set a filesystem on"
|
||||
msgstr ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Bitte wählen sie auf welche Partition ein Dateisystem eingerichtet werden soll"
|
||||
|
||||
#: lib/user_interaction.py:738
|
||||
#: lib/user_interaction.py:739 lib/user_interaction.py:746 lib/user_interaction.py:749 lib/user_interaction.py:752
|
||||
msgid "Enter a desired filesystem type for the partition: "
|
||||
msgstr ""
|
||||
msgstr "Bitte geben sie einen gewünschten Dateisystemtyp für die Partition ein: "
|
||||
|
||||
#: lib/user_interaction.py:759 lib/menu/selection_menu.py:116
|
||||
#: lib/user_interaction.py:760 lib/menu/selection_menu.py:141 lib/user_interaction.py:767 lib/menu/selection_menu.py:139 lib/menu/selection_menu.py:143 lib/user_interaction.py:770 lib/user_interaction.py:773
|
||||
msgid "Select Archinstall language"
|
||||
msgstr "Sprache fuer Archinstall"
|
||||
msgstr "Sprache für Archinstall"
|
||||
|
||||
#: lib/user_interaction.py:764
|
||||
#: lib/user_interaction.py:765 lib/user_interaction.py:772 lib/user_interaction.py:775 lib/user_interaction.py:778
|
||||
msgid "Wipe all selected drives and use a best-effort default partition layout"
|
||||
msgstr ""
|
||||
msgstr "Alle Laufwerke löschen und ein vorgegebenes Partitionenlayout verwenden"
|
||||
|
||||
#: lib/user_interaction.py:765
|
||||
msgid ""
|
||||
"Select what to do with each individual drive (followed by partition usage)"
|
||||
msgstr ""
|
||||
#: lib/user_interaction.py:766 lib/user_interaction.py:773 lib/user_interaction.py:776 lib/user_interaction.py:779
|
||||
msgid "Select what to do with each individual drive (followed by partition usage)"
|
||||
msgstr "Bitte geben sie an was mit jedem individuellem Laufwerk geschehen soll"
|
||||
|
||||
#: lib/user_interaction.py:768
|
||||
#: lib/user_interaction.py:769 lib/user_interaction.py:770 lib/user_interaction.py:777 lib/user_interaction.py:780 lib/user_interaction.py:783
|
||||
msgid "Select what you wish to do with the selected block devices"
|
||||
msgstr ""
|
||||
msgstr "Bitte wählen sie was mit dem ausgewählten Gerät geschehen soll"
|
||||
|
||||
#: lib/user_interaction.py:821
|
||||
msgid ""
|
||||
"This is a list of pre-programmed profiles, they might make it easier to "
|
||||
"install things like desktop environments"
|
||||
msgstr ""
|
||||
#: lib/user_interaction.py:822 lib/user_interaction.py:823 lib/user_interaction.py:830 lib/user_interaction.py:833 lib/user_interaction.py:836
|
||||
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
|
||||
msgstr "Dies ist eine Liste von bereits programmierten Profilen, diese ermöglichen es einfacher Desktop Umgebungen einzustellen"
|
||||
|
||||
#: lib/user_interaction.py:846
|
||||
#: lib/user_interaction.py:846 lib/user_interaction.py:847 lib/user_interaction.py:854 lib/user_interaction.py:857 lib/user_interaction.py:860
|
||||
msgid "Select Keyboard layout"
|
||||
msgstr ""
|
||||
msgstr "Bitte wählen sie ein Tastaturlayout aus"
|
||||
|
||||
#: lib/user_interaction.py:861
|
||||
#: lib/user_interaction.py:861 lib/user_interaction.py:862 lib/user_interaction.py:869 lib/user_interaction.py:872 lib/user_interaction.py:875
|
||||
msgid "Select one of the regions to download packages from"
|
||||
msgstr ""
|
||||
msgstr "Bitte wählen sie eine Region zum downloaden von Packeten aus"
|
||||
|
||||
#: lib/user_interaction.py:883
|
||||
#: lib/user_interaction.py:883 lib/user_interaction.py:884 lib/user_interaction.py:891 lib/user_interaction.py:894 lib/user_interaction.py:897
|
||||
msgid "Select one or more hard drives to use and configure"
|
||||
msgstr ""
|
||||
msgstr "Bitte wählen sie eine oder mehrere Laufwerke aus die konfiguriert werden sollen"
|
||||
|
||||
#: lib/user_interaction.py:910
|
||||
msgid ""
|
||||
"For the best compatibility with your AMD hardware, you may want to use "
|
||||
"either the all open-source or AMD / ATI options."
|
||||
msgstr ""
|
||||
#: lib/user_interaction.py:910 lib/user_interaction.py:911 lib/user_interaction.py:918 lib/user_interaction.py:921 lib/user_interaction.py:924
|
||||
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
|
||||
msgstr "Für die beste kompabilität mit ihrer AMD hardware, sollten sie womöglich die open-source oder AMD / ATI optionen verwenden"
|
||||
|
||||
#: lib/user_interaction.py:912
|
||||
msgid ""
|
||||
"For the best compatibility with your Intel hardware, you may want to use "
|
||||
"either the all open-source or Intel options.\n"
|
||||
msgstr ""
|
||||
#: lib/user_interaction.py:912 lib/user_interaction.py:913 lib/user_interaction.py:920 lib/user_interaction.py:923 lib/user_interaction.py:926
|
||||
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
|
||||
msgstr "Für die beste kompabilität mit ihrer Intel hardware, sollten sie womöglich die open-source oder Intel optionen verwenden.\n"
|
||||
|
||||
#: lib/user_interaction.py:914
|
||||
msgid ""
|
||||
"For the best compatibility with your Nvidia hardware, you may want to use "
|
||||
"the Nvidia proprietary driver.\n"
|
||||
msgstr ""
|
||||
#: lib/user_interaction.py:914 lib/user_interaction.py:915 lib/user_interaction.py:922 lib/user_interaction.py:925 lib/user_interaction.py:928
|
||||
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
|
||||
msgstr "Für die beste kompabilität mit ihrer Nvidia hardware, sollten sie womöglich die Nvidia proprietary driver option verwenden.\n"
|
||||
|
||||
#: lib/user_interaction.py:917
|
||||
#: lib/user_interaction.py:917 lib/user_interaction.py:918 lib/user_interaction.py:925 lib/user_interaction.py:928 lib/user_interaction.py:931
|
||||
msgid ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Select a graphics driver or leave blank to install all open-source drivers"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Bitte wählen sie einen Grafiktreiber aus oder leer lassen um alle open-source Treiber zu installieren"
|
||||
|
||||
#: lib/user_interaction.py:921
|
||||
#: lib/user_interaction.py:921 lib/user_interaction.py:922 lib/user_interaction.py:929 lib/user_interaction.py:932 lib/user_interaction.py:935
|
||||
msgid "All open-source (default)"
|
||||
msgstr ""
|
||||
msgstr "Alle open-source (default)"
|
||||
|
||||
#: lib/user_interaction.py:940
|
||||
#: lib/user_interaction.py:940 lib/user_interaction.py:941 lib/user_interaction.py:948 lib/user_interaction.py:951 lib/user_interaction.py:954
|
||||
msgid "Choose which kernels to use or leave blank for default \"{}\""
|
||||
msgstr ""
|
||||
msgstr "Bitte wählen sie welche Kernel benutzt werden sollen oder leer lassen für default \"{}\""
|
||||
|
||||
#: lib/user_interaction.py:954
|
||||
#: lib/user_interaction.py:954 lib/user_interaction.py:955 lib/user_interaction.py:962 lib/user_interaction.py:965 lib/user_interaction.py:968
|
||||
msgid "Choose which locale language to use"
|
||||
msgstr ""
|
||||
msgstr "Bitte wählen sie eine lokale Sprache aus"
|
||||
|
||||
#: lib/user_interaction.py:968
|
||||
#: lib/user_interaction.py:968 lib/user_interaction.py:969 lib/user_interaction.py:976 lib/user_interaction.py:979 lib/user_interaction.py:982
|
||||
msgid "Choose which locale encoding to use"
|
||||
msgstr ""
|
||||
msgstr "Bitte wählen sie eine lokale Kodierung aus"
|
||||
|
||||
#: lib/user_interaction.py:1009
|
||||
#: lib/user_interaction.py:1009 lib/user_interaction.py:1010 lib/user_interaction.py:1017 lib/user_interaction.py:1020 lib/user_interaction.py:1023
|
||||
msgid "Select one of the values shown below: "
|
||||
msgstr ""
|
||||
msgstr "Bitte wählen sie einen der folgenden Werte aus:"
|
||||
|
||||
#: lib/user_interaction.py:1050
|
||||
#: lib/user_interaction.py:1050 lib/user_interaction.py:1051 lib/user_interaction.py:1058 lib/user_interaction.py:1061 lib/user_interaction.py:1064
|
||||
msgid "Select one or more of the options below: "
|
||||
msgstr ""
|
||||
msgstr "Bitte wählen sie eine oder mehrere Optionen aus: "
|
||||
|
||||
#: lib/menu/selection_menu.py:122
|
||||
#: lib/disk/filesystem.py:86
|
||||
msgid "Adding partition...."
|
||||
msgstr "Partitionen werden hinzugefügt..."
|
||||
|
||||
#: lib/disk/filesystem.py:139 lib/disk/filesystem.py:141
|
||||
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
|
||||
msgstr "Bitte geben sie einen gültigen Dateisystemtyp ein um fortzufahren. Wenden sie sich an \"man parted\" für eine Liste von gültigen Typen."
|
||||
|
||||
#: lib/profiles.py:89
|
||||
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
|
||||
msgstr "Fehler: Auflistung von Profilen mit URL \"{}\":"
|
||||
|
||||
#: lib/profiles.py:92
|
||||
msgid "Error: Could not decode \"{}\" result as JSON:"
|
||||
msgstr "Fehler: \"{}\" konnte nicht in ein JSON format dekodiert werden:"
|
||||
|
||||
#: lib/menu/selection_menu.py:146 lib/menu/selection_menu.py:144 lib/menu/selection_menu.py:148
|
||||
msgid "Select keyboard layout"
|
||||
msgstr ""
|
||||
msgstr "Tastaturlayout auswählen"
|
||||
|
||||
#: lib/menu/selection_menu.py:125
|
||||
#: lib/menu/selection_menu.py:149 lib/menu/selection_menu.py:147 lib/menu/selection_menu.py:151
|
||||
msgid "Select mirror region"
|
||||
msgstr ""
|
||||
msgstr "Mirror-region auswählen"
|
||||
|
||||
#: lib/menu/selection_menu.py:130
|
||||
#: lib/menu/selection_menu.py:154 lib/menu/selection_menu.py:152 lib/menu/selection_menu.py:156
|
||||
msgid "Select locale language"
|
||||
msgstr ""
|
||||
msgstr "Lokale Sprache auswählen"
|
||||
|
||||
#: lib/menu/selection_menu.py:132
|
||||
#: lib/menu/selection_menu.py:156 lib/menu/selection_menu.py:154 lib/menu/selection_menu.py:158
|
||||
msgid "Select locale encoding"
|
||||
msgstr ""
|
||||
msgstr "Lokale Kodierung auswählen"
|
||||
|
||||
#: lib/menu/selection_menu.py:135
|
||||
#: lib/menu/selection_menu.py:159 lib/menu/selection_menu.py:157 lib/menu/selection_menu.py:161
|
||||
msgid "Select harddrives"
|
||||
msgstr ""
|
||||
msgstr "Laufwerke auswählen"
|
||||
|
||||
#: lib/menu/selection_menu.py:139
|
||||
#: lib/menu/selection_menu.py:163 lib/menu/selection_menu.py:161 lib/menu/selection_menu.py:165
|
||||
msgid "Select disk layout"
|
||||
msgstr ""
|
||||
msgstr "Laufwerke-layout auswählen"
|
||||
|
||||
#: lib/menu/selection_menu.py:147
|
||||
#: lib/menu/selection_menu.py:171 lib/menu/selection_menu.py:169 lib/menu/selection_menu.py:173
|
||||
msgid "Set encryption password"
|
||||
msgstr ""
|
||||
msgstr "Verschlüsselungspasswort angeben"
|
||||
|
||||
#: lib/menu/selection_menu.py:153
|
||||
#: lib/menu/selection_menu.py:177 lib/menu/selection_menu.py:175 lib/menu/selection_menu.py:179
|
||||
msgid "Use swap"
|
||||
msgstr ""
|
||||
msgstr "Swap benützen"
|
||||
|
||||
#: lib/menu/selection_menu.py:158
|
||||
#: lib/menu/selection_menu.py:182 lib/menu/selection_menu.py:180 lib/menu/selection_menu.py:184
|
||||
msgid "Select bootloader"
|
||||
msgstr ""
|
||||
msgstr "Bootloader auswählen"
|
||||
|
||||
#: lib/menu/selection_menu.py:164
|
||||
#: lib/menu/selection_menu.py:188 lib/menu/selection_menu.py:186 lib/menu/selection_menu.py:190
|
||||
msgid "Set root password"
|
||||
msgstr ""
|
||||
msgstr "Root Passwort wählen"
|
||||
|
||||
#: lib/menu/selection_menu.py:169
|
||||
#: lib/menu/selection_menu.py:193 lib/menu/selection_menu.py:191 lib/menu/selection_menu.py:195
|
||||
msgid "Specify superuser account"
|
||||
msgstr ""
|
||||
msgstr "Superuser Konto wählen"
|
||||
|
||||
#: lib/menu/selection_menu.py:175
|
||||
#: lib/menu/selection_menu.py:199 lib/menu/selection_menu.py:197 lib/menu/selection_menu.py:201
|
||||
msgid "Specify user account"
|
||||
msgstr ""
|
||||
msgstr "Benutzerkonto wählen"
|
||||
|
||||
#: lib/menu/selection_menu.py:181
|
||||
#: lib/menu/selection_menu.py:205 lib/menu/selection_menu.py:203 lib/menu/selection_menu.py:207
|
||||
msgid "Specify profile"
|
||||
msgstr ""
|
||||
msgstr "Profile auswählen"
|
||||
|
||||
#: lib/menu/selection_menu.py:186
|
||||
#: lib/menu/selection_menu.py:210 lib/menu/selection_menu.py:208 lib/menu/selection_menu.py:212
|
||||
msgid "Select audio"
|
||||
msgstr ""
|
||||
msgstr "Audio auswählen"
|
||||
|
||||
#: lib/menu/selection_menu.py:190
|
||||
#: lib/menu/selection_menu.py:214 lib/menu/selection_menu.py:212 lib/menu/selection_menu.py:216
|
||||
msgid "Select kernels"
|
||||
msgstr ""
|
||||
msgstr "Kernel auswählen"
|
||||
|
||||
#: lib/menu/selection_menu.py:195
|
||||
#: lib/menu/selection_menu.py:219 lib/menu/selection_menu.py:217 lib/menu/selection_menu.py:221
|
||||
msgid "Additional packages to install"
|
||||
msgstr ""
|
||||
msgstr "Zus. Packete für die Installation"
|
||||
|
||||
#: lib/menu/selection_menu.py:200
|
||||
#: lib/menu/selection_menu.py:224 lib/menu/selection_menu.py:222 lib/menu/selection_menu.py:226
|
||||
msgid "Configure network"
|
||||
msgstr ""
|
||||
msgstr "Netzwerkonfiguration"
|
||||
|
||||
#: lib/menu/selection_menu.py:208
|
||||
#: lib/menu/selection_menu.py:232 lib/menu/selection_menu.py:230 lib/menu/selection_menu.py:234
|
||||
msgid "Set automatic time sync (NTP)"
|
||||
msgstr "Autom. Zeitsynchronisierung (NTP)"
|
||||
|
||||
#: lib/menu/selection_menu.py:310 lib/menu/selection_menu.py:308 lib/menu/selection_menu.py:315
|
||||
msgid "Install ({} config(s) missing)"
|
||||
msgstr "Installieren ({} konfiguration(en) ausständig)"
|
||||
|
||||
#: lib/menu/selection_menu.py:373 lib/menu/selection_menu.py:371 lib/menu/selection_menu.py:378
|
||||
msgid ""
|
||||
"You decided to skip harddrive selection\n"
|
||||
"and will use whatever drive-setup is mounted at {} (experimental)\n"
|
||||
"WARNING: Archinstall won't check the suitability of this setup\n"
|
||||
"Do you wish to continue?"
|
||||
msgstr ""
|
||||
"Sie haben sich entschieden keine Laufwerke auszuwählen\n"
|
||||
"und jene Einstellungen zu verwenden welche momentan auf {} verfügbar sind (experimentell)\n"
|
||||
"WARNUNG: Archinstall wird die Kompabilität der Einstellung nicht überprüfen\n"
|
||||
"Wollen sie trotzdem fortfahren?"
|
||||
|
||||
#: lib/disk/filesystem.py:97
|
||||
msgid "Re-using partition instance: {}"
|
||||
msgstr "Wiederverwenden der Partitionsinstanz: {}"
|
||||
|
||||
#: lib/user_interaction.py:590 lib/user_interaction.py:593 lib/user_interaction.py:596
|
||||
msgid "Create a new partition"
|
||||
msgstr "Neue Partition erstellen"
|
||||
|
||||
#: lib/user_interaction.py:592 lib/user_interaction.py:595 lib/user_interaction.py:598
|
||||
msgid "Delete a partition"
|
||||
msgstr "Partition löschen"
|
||||
|
||||
#: lib/user_interaction.py:593 lib/user_interaction.py:596 lib/user_interaction.py:599
|
||||
msgid "Clear/Delete all partitions"
|
||||
msgstr "Alle partitionen löschen"
|
||||
|
||||
#: lib/user_interaction.py:594 lib/user_interaction.py:597 lib/user_interaction.py:600
|
||||
msgid "Assign mount-point for a partition"
|
||||
msgstr "Mountort für Partition angeben"
|
||||
|
||||
#: lib/user_interaction.py:595 lib/user_interaction.py:598 lib/user_interaction.py:601
|
||||
msgid "Mark/Unmark a partition to be formatted (wipes data)"
|
||||
msgstr "Markieren welche Partition formattiert werden soll (alle Daten werden gelöscht)"
|
||||
|
||||
#: lib/user_interaction.py:596 lib/user_interaction.py:599 lib/user_interaction.py:602
|
||||
msgid "Mark/Unmark a partition as encrypted"
|
||||
msgstr "Markieren welche Partitionen verschlüsselt werden sollen"
|
||||
|
||||
#: lib/user_interaction.py:597 lib/user_interaction.py:600 lib/user_interaction.py:603
|
||||
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
|
||||
msgstr "Markieren welche Partition bootbar ist (automatisch für /boot)"
|
||||
|
||||
#: lib/user_interaction.py:598 lib/user_interaction.py:601 lib/user_interaction.py:604
|
||||
msgid "Set desired filesystem for a partition"
|
||||
msgstr "Bitte wählen Sie einen Dateisystemtyp für die Partition aus"
|
||||
|
||||
#: lib/menu/selection_menu.py:239 lib/menu/selection_menu.py:237 lib/menu/selection_menu.py:241 lib/menu/selection_menu.py:270
|
||||
msgid "Abort"
|
||||
msgstr "Abbrechen"
|
||||
|
||||
#: lib/menu/selection_menu.py:183 lib/menu/selection_menu.py:187
|
||||
msgid "Specify hostname"
|
||||
msgstr "Hostnamen wählen"
|
||||
|
||||
#: lib/menu/selection_menu.py:228
|
||||
msgid "Not configured, unavailable unless setup manually"
|
||||
msgstr "Nicht konfiguriert, unverfügbar wenn nicht selber eingestellt"
|
||||
|
||||
#: lib/menu/selection_menu.py:231
|
||||
msgid "Select timezone"
|
||||
msgstr "Zeitzone wählen"
|
||||
|
||||
#: lib/menu/selection_menu.py:266
|
||||
msgid "Set/Modify the below options"
|
||||
msgstr "Setzen sie die unten stehenden Einstellungen"
|
||||
|
||||
#: lib/menu/selection_menu.py:272
|
||||
msgid "Install"
|
||||
msgstr "Installieren"
|
||||
|
||||
#: lib/menu/menu.py:68
|
||||
msgid ""
|
||||
"Use ESC to skip\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"ESC um zu Überspringen\n"
|
||||
"\n"
|
||||
|
||||
#: lib/user_interaction.py:591 lib/user_interaction.py:594 lib/user_interaction.py:597
|
||||
msgid "Suggest partition layout"
|
||||
msgstr "Ein Partitionslayout vorschlagen"
|
||||
|
||||
#: lib/user_interaction.py:101
|
||||
msgid "Enter a password: "
|
||||
msgstr "Passwort eingeben: "
|
||||
|
||||
#: lib/disk/filesystem.py:117
|
||||
msgid "Enter a encryption password for {}"
|
||||
msgstr "Verschlüsselungspasswort angeben für {}"
|
||||
|
||||
#: lib/menu/selection_menu.py:174
|
||||
msgid "Enter disk encryption password (leave blank for no encryption): "
|
||||
msgstr "Geben sie ein Verschlüsselungspasswort ein (leer lassen um zu Überspringen): "
|
||||
|
||||
#: lib/menu/selection_menu.py:407
|
||||
msgid "Create a required super-user with sudo privileges: "
|
||||
msgstr "Geben sie einen super-user mit sudo Privilegien an: "
|
||||
|
||||
#: lib/menu/selection_menu.py:347
|
||||
msgid "Enter root password (leave blank to disable root): "
|
||||
msgstr "Geben sie ein Root passwort ein (leer lassen um Root zu deaktivieren): "
|
||||
|
||||
#: lib/user_interaction.py:307 lib/user_interaction.py:324
|
||||
msgid "Password for user \"{}\": "
|
||||
msgstr "Passwort für Benutzer \"{}\": "
|
||||
|
||||
#: lib/user_interaction.py:405 lib/user_interaction.py:408
|
||||
msgid "Verifying that additional packages exist (this might take a few seconds)"
|
||||
msgstr "Angegebene Packete werden verifiziert (dies könnte einige Sekunden dauern)"
|
||||
|
||||
#: lib/user_interaction.py:281
|
||||
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
|
||||
msgstr "Möchten sie automatische Zeitsynchronisierung mit dem default Server einschalten?\n"
|
||||
|
||||
#: lib/user_interaction.py:282
|
||||
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 ""
|
||||
"Hardware Zeit und andere Einstellungsschritte könnten notwendig sein um NTP zu benutzen.\n"
|
||||
"Für weitere Informationen wenden sie sich bitte an das Arch wiki"
|
||||
|
||||
#: lib/menu/selection_menu.py:411
|
||||
msgid "Enter a username to create an additional user (leave blank to skip): "
|
||||
msgstr "Geben sie einen weiteren Benutzernamen an der angelegt werden soll (leer lassen um zu Überspringen): "
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1,351 +1,468 @@
|
|||
#: lib/user_interaction.py:82
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: lib/installer.py:144
|
||||
msgid "[!] A log file has been created here: {} {}"
|
||||
msgstr ""
|
||||
|
||||
#: lib/installer.py:145
|
||||
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:83
|
||||
msgid "Do you really want to abort?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:100
|
||||
#: lib/user_interaction.py:101 lib/user_interaction.py:104
|
||||
msgid "And one more time for verification: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:271
|
||||
#: lib/user_interaction.py:272 lib/user_interaction.py:275
|
||||
msgid "Would you like to use swap on zram?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:277
|
||||
msgid ""
|
||||
"Would you like to use automatic time synchronization (NTP) with the default "
|
||||
"time servers?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:278
|
||||
msgid ""
|
||||
"Hardware time and other post-configuration steps might be required in order "
|
||||
"for NTP to work. For more information, please check the Arch wiki"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:284
|
||||
#: lib/user_interaction.py:285 lib/user_interaction.py:288
|
||||
msgid "Desired hostname for the installation: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:289
|
||||
#: lib/user_interaction.py:290 lib/user_interaction.py:293
|
||||
msgid "Username for required superuser with sudo privileges: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:303 lib/user_interaction.py:320
|
||||
msgid "Password for user \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:309
|
||||
#: lib/user_interaction.py:310 lib/user_interaction.py:313
|
||||
msgid "Any additional users to install (leave blank for no users): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:323
|
||||
#: lib/user_interaction.py:324 lib/user_interaction.py:327
|
||||
msgid "Should this user be a superuser (sudoer)?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:339
|
||||
#: lib/user_interaction.py:340 lib/user_interaction.py:343 lib/user_interaction.py:346
|
||||
msgid "Select a timezone"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:353
|
||||
#: lib/user_interaction.py:354 lib/user_interaction.py:357 lib/user_interaction.py:360
|
||||
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:363
|
||||
#: lib/user_interaction.py:364 lib/user_interaction.py:367 lib/user_interaction.py:370
|
||||
msgid "Choose a bootloader"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:379
|
||||
#: lib/user_interaction.py:380 lib/user_interaction.py:383 lib/user_interaction.py:386
|
||||
msgid "Choose an audio server"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:390
|
||||
msgid ""
|
||||
"Only packages such as base, base-devel, linux, linux-firmware, efibootmgr "
|
||||
"and optional profile packages are installed."
|
||||
#: lib/user_interaction.py:391 lib/user_interaction.py:394 lib/user_interaction.py:397
|
||||
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:391
|
||||
msgid ""
|
||||
"If you desire a web browser, such as firefox or chromium, you may specify it "
|
||||
"in the following prompt."
|
||||
#: lib/user_interaction.py:392 lib/user_interaction.py:395 lib/user_interaction.py:398
|
||||
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:395
|
||||
msgid ""
|
||||
"Write additional packages to install (space separated, leave blank to skip): "
|
||||
#: lib/user_interaction.py:396 lib/user_interaction.py:399 lib/user_interaction.py:402
|
||||
msgid "Write additional packages to install (space separated, leave blank to skip): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:418
|
||||
#: lib/user_interaction.py:419 lib/user_interaction.py:422 lib/user_interaction.py:425
|
||||
msgid "Copy ISO network configuration to installation"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:419
|
||||
msgid ""
|
||||
"Use NetworkManager (necessary to configure internet graphically in GNOME and "
|
||||
"KDE)"
|
||||
#: lib/user_interaction.py:420 lib/user_interaction.py:423 lib/user_interaction.py:426
|
||||
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:427
|
||||
#: lib/user_interaction.py:428 lib/user_interaction.py:431 lib/user_interaction.py:434
|
||||
msgid "Select one network interface to configure"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:440
|
||||
msgid ""
|
||||
"Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
|
||||
#: lib/user_interaction.py:441 lib/user_interaction.py:444 lib/user_interaction.py:447
|
||||
msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:445
|
||||
#: lib/user_interaction.py:446 lib/user_interaction.py:449 lib/user_interaction.py:452
|
||||
msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:460
|
||||
#: lib/user_interaction.py:461 lib/user_interaction.py:464 lib/user_interaction.py:467
|
||||
msgid "Enter your gateway (router) IP address or leave blank for none: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:475
|
||||
#: lib/user_interaction.py:476 lib/user_interaction.py:479 lib/user_interaction.py:482
|
||||
msgid "Enter your DNS servers (space separated, blank for none): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:509
|
||||
#: lib/user_interaction.py:510 lib/user_interaction.py:513 lib/user_interaction.py:516
|
||||
msgid "Select which filesystem your main partition should use"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:555
|
||||
#: lib/user_interaction.py:556 lib/user_interaction.py:559 lib/user_interaction.py:562
|
||||
msgid "Current partition layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:606
|
||||
#: lib/user_interaction.py:607 lib/user_interaction.py:614 lib/user_interaction.py:617 lib/user_interaction.py:620
|
||||
msgid ""
|
||||
"Select what to do with\n"
|
||||
"{}"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:623 lib/user_interaction.py:708
|
||||
#: lib/user_interaction.py:624 lib/user_interaction.py:709 lib/user_interaction.py:631 lib/user_interaction.py:716 lib/user_interaction.py:634 lib/user_interaction.py:719 lib/user_interaction.py:637 lib/user_interaction.py:722
|
||||
msgid "Enter a desired filesystem type for the partition"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:625
|
||||
#: lib/user_interaction.py:626 lib/user_interaction.py:633 lib/user_interaction.py:636 lib/user_interaction.py:639
|
||||
msgid "Enter the start sector (percentage or block number, default: {}): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:634
|
||||
msgid ""
|
||||
"Enter the end sector of the partition (percentage or block number, ex: {}): "
|
||||
"\""
|
||||
#: lib/user_interaction.py:635 lib/user_interaction.py:642 lib/user_interaction.py:645 lib/user_interaction.py:648
|
||||
msgid "Enter the end sector of the partition (percentage or block number, ex: {}): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:660
|
||||
#: lib/user_interaction.py:661 lib/user_interaction.py:668 lib/user_interaction.py:671 lib/user_interaction.py:674
|
||||
msgid "{} contains queued partitions, this will remove those, are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:673
|
||||
#: lib/user_interaction.py:674 lib/user_interaction.py:681 lib/user_interaction.py:684 lib/user_interaction.py:687
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select by index which partitions to delete"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:681
|
||||
#: lib/user_interaction.py:682 lib/user_interaction.py:689 lib/user_interaction.py:692 lib/user_interaction.py:695
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select by index which partition to mount where"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:685
|
||||
msgid ""
|
||||
" * Partition mount-points are relative to inside the installation, the boot "
|
||||
"would be /boot as an example."
|
||||
#: lib/user_interaction.py:686 lib/user_interaction.py:693 lib/user_interaction.py:696 lib/user_interaction.py:699
|
||||
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:686
|
||||
#: lib/user_interaction.py:687 lib/user_interaction.py:694 lib/user_interaction.py:697 lib/user_interaction.py:700
|
||||
msgid "Select where to mount partition (leave blank to remove mountpoint): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:697
|
||||
#: lib/user_interaction.py:698 lib/user_interaction.py:705 lib/user_interaction.py:708 lib/user_interaction.py:711
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select which partition to mask for formatting"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:716
|
||||
#: lib/user_interaction.py:717 lib/user_interaction.py:724 lib/user_interaction.py:727 lib/user_interaction.py:730
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select which partition to mark as encrypted"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:724
|
||||
#: lib/user_interaction.py:725 lib/user_interaction.py:732 lib/user_interaction.py:735 lib/user_interaction.py:738
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select which partition to mark as bootable"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:731
|
||||
#: lib/user_interaction.py:732 lib/user_interaction.py:739 lib/user_interaction.py:742 lib/user_interaction.py:745
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select which partition to set a filesystem on"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:738
|
||||
#: lib/user_interaction.py:739 lib/user_interaction.py:746 lib/user_interaction.py:749 lib/user_interaction.py:752
|
||||
msgid "Enter a desired filesystem type for the partition: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:759 lib/menu/selection_menu.py:116
|
||||
#: lib/user_interaction.py:760 lib/menu/selection_menu.py:141 lib/user_interaction.py:767 lib/menu/selection_menu.py:139 lib/menu/selection_menu.py:143 lib/user_interaction.py:770 lib/user_interaction.py:773
|
||||
msgid "Select Archinstall language"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:764
|
||||
#: lib/user_interaction.py:765 lib/user_interaction.py:772 lib/user_interaction.py:775 lib/user_interaction.py:778
|
||||
msgid "Wipe all selected drives and use a best-effort default partition layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:765
|
||||
msgid ""
|
||||
"Select what to do with each individual drive (followed by partition usage)"
|
||||
#: lib/user_interaction.py:766 lib/user_interaction.py:773 lib/user_interaction.py:776 lib/user_interaction.py:779
|
||||
msgid "Select what to do with each individual drive (followed by partition usage)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:768
|
||||
#: lib/user_interaction.py:769 lib/user_interaction.py:770 lib/user_interaction.py:777 lib/user_interaction.py:780 lib/user_interaction.py:783
|
||||
msgid "Select what you wish to do with the selected block devices"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:821
|
||||
msgid ""
|
||||
"This is a list of pre-programmed profiles, they might make it easier to "
|
||||
"install things like desktop environments"
|
||||
#: lib/user_interaction.py:822 lib/user_interaction.py:823 lib/user_interaction.py:830 lib/user_interaction.py:833 lib/user_interaction.py:836
|
||||
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:846
|
||||
#: lib/user_interaction.py:846 lib/user_interaction.py:847 lib/user_interaction.py:854 lib/user_interaction.py:857 lib/user_interaction.py:860
|
||||
msgid "Select Keyboard layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:861
|
||||
#: lib/user_interaction.py:861 lib/user_interaction.py:862 lib/user_interaction.py:869 lib/user_interaction.py:872 lib/user_interaction.py:875
|
||||
msgid "Select one of the regions to download packages from"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:883
|
||||
#: lib/user_interaction.py:883 lib/user_interaction.py:884 lib/user_interaction.py:891 lib/user_interaction.py:894 lib/user_interaction.py:897
|
||||
msgid "Select one or more hard drives to use and configure"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:910
|
||||
msgid ""
|
||||
"For the best compatibility with your AMD hardware, you may want to use "
|
||||
"either the all open-source or AMD / ATI options."
|
||||
#: lib/user_interaction.py:910 lib/user_interaction.py:911 lib/user_interaction.py:918 lib/user_interaction.py:921 lib/user_interaction.py:924
|
||||
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:912
|
||||
msgid ""
|
||||
"For the best compatibility with your Intel hardware, you may want to use "
|
||||
"either the all open-source or Intel options.\n"
|
||||
#: lib/user_interaction.py:912 lib/user_interaction.py:913 lib/user_interaction.py:920 lib/user_interaction.py:923 lib/user_interaction.py:926
|
||||
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:914
|
||||
msgid ""
|
||||
"For the best compatibility with your Nvidia hardware, you may want to use "
|
||||
"the Nvidia proprietary driver.\n"
|
||||
#: lib/user_interaction.py:914 lib/user_interaction.py:915 lib/user_interaction.py:922 lib/user_interaction.py:925 lib/user_interaction.py:928
|
||||
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:917
|
||||
#: lib/user_interaction.py:917 lib/user_interaction.py:918 lib/user_interaction.py:925 lib/user_interaction.py:928 lib/user_interaction.py:931
|
||||
msgid ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Select a graphics driver or leave blank to install all open-source drivers"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:921
|
||||
#: lib/user_interaction.py:921 lib/user_interaction.py:922 lib/user_interaction.py:929 lib/user_interaction.py:932 lib/user_interaction.py:935
|
||||
msgid "All open-source (default)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:940
|
||||
#: lib/user_interaction.py:940 lib/user_interaction.py:941 lib/user_interaction.py:948 lib/user_interaction.py:951 lib/user_interaction.py:954
|
||||
msgid "Choose which kernels to use or leave blank for default \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:954
|
||||
#: lib/user_interaction.py:954 lib/user_interaction.py:955 lib/user_interaction.py:962 lib/user_interaction.py:965 lib/user_interaction.py:968
|
||||
msgid "Choose which locale language to use"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:968
|
||||
#: lib/user_interaction.py:968 lib/user_interaction.py:969 lib/user_interaction.py:976 lib/user_interaction.py:979 lib/user_interaction.py:982
|
||||
msgid "Choose which locale encoding to use"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:1009
|
||||
#: lib/user_interaction.py:1009 lib/user_interaction.py:1010 lib/user_interaction.py:1017 lib/user_interaction.py:1020 lib/user_interaction.py:1023
|
||||
msgid "Select one of the values shown below: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:1050
|
||||
#: lib/user_interaction.py:1050 lib/user_interaction.py:1051 lib/user_interaction.py:1058 lib/user_interaction.py:1061 lib/user_interaction.py:1064
|
||||
msgid "Select one or more of the options below: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:122
|
||||
#: lib/disk/filesystem.py:86
|
||||
msgid "Adding partition...."
|
||||
msgstr ""
|
||||
|
||||
#: lib/disk/filesystem.py:139 lib/disk/filesystem.py:141
|
||||
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
|
||||
msgstr ""
|
||||
|
||||
#: lib/profiles.py:89
|
||||
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
|
||||
msgstr ""
|
||||
|
||||
#: lib/profiles.py:92
|
||||
msgid "Error: Could not decode \"{}\" result as JSON:"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:146 lib/menu/selection_menu.py:144 lib/menu/selection_menu.py:148
|
||||
msgid "Select keyboard layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:125
|
||||
#: lib/menu/selection_menu.py:149 lib/menu/selection_menu.py:147 lib/menu/selection_menu.py:151
|
||||
msgid "Select mirror region"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:130
|
||||
#: lib/menu/selection_menu.py:154 lib/menu/selection_menu.py:152 lib/menu/selection_menu.py:156
|
||||
msgid "Select locale language"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:132
|
||||
#: lib/menu/selection_menu.py:156 lib/menu/selection_menu.py:154 lib/menu/selection_menu.py:158
|
||||
msgid "Select locale encoding"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:135
|
||||
#: lib/menu/selection_menu.py:159 lib/menu/selection_menu.py:157 lib/menu/selection_menu.py:161
|
||||
msgid "Select harddrives"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:139
|
||||
#: lib/menu/selection_menu.py:163 lib/menu/selection_menu.py:161 lib/menu/selection_menu.py:165
|
||||
msgid "Select disk layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:147
|
||||
#: lib/menu/selection_menu.py:171 lib/menu/selection_menu.py:169 lib/menu/selection_menu.py:173
|
||||
msgid "Set encryption password"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:153
|
||||
#: lib/menu/selection_menu.py:177 lib/menu/selection_menu.py:175 lib/menu/selection_menu.py:179
|
||||
msgid "Use swap"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:158
|
||||
#: lib/menu/selection_menu.py:182 lib/menu/selection_menu.py:180 lib/menu/selection_menu.py:184
|
||||
msgid "Select bootloader"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:164
|
||||
#: lib/menu/selection_menu.py:188 lib/menu/selection_menu.py:186 lib/menu/selection_menu.py:190
|
||||
msgid "Set root password"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:169
|
||||
#: lib/menu/selection_menu.py:193 lib/menu/selection_menu.py:191 lib/menu/selection_menu.py:195
|
||||
msgid "Specify superuser account"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:175
|
||||
#: lib/menu/selection_menu.py:199 lib/menu/selection_menu.py:197 lib/menu/selection_menu.py:201
|
||||
msgid "Specify user account"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:181
|
||||
#: lib/menu/selection_menu.py:205 lib/menu/selection_menu.py:203 lib/menu/selection_menu.py:207
|
||||
msgid "Specify profile"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:186
|
||||
#: lib/menu/selection_menu.py:210 lib/menu/selection_menu.py:208 lib/menu/selection_menu.py:212
|
||||
msgid "Select audio"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:190
|
||||
#: lib/menu/selection_menu.py:214 lib/menu/selection_menu.py:212 lib/menu/selection_menu.py:216
|
||||
msgid "Select kernels"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:195
|
||||
#: lib/menu/selection_menu.py:219 lib/menu/selection_menu.py:217 lib/menu/selection_menu.py:221
|
||||
msgid "Additional packages to install"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:200
|
||||
#: lib/menu/selection_menu.py:224 lib/menu/selection_menu.py:222 lib/menu/selection_menu.py:226
|
||||
msgid "Configure network"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:208
|
||||
#: lib/menu/selection_menu.py:232 lib/menu/selection_menu.py:230 lib/menu/selection_menu.py:234
|
||||
msgid "Set automatic time sync (NTP)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:310 lib/menu/selection_menu.py:308 lib/menu/selection_menu.py:315
|
||||
msgid "Install ({} config(s) missing)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:373 lib/menu/selection_menu.py:371 lib/menu/selection_menu.py:378
|
||||
msgid ""
|
||||
"You decided to skip harddrive selection\n"
|
||||
"and will use whatever drive-setup is mounted at {} (experimental)\n"
|
||||
"WARNING: Archinstall won't check the suitability of this setup\n"
|
||||
"Do you wish to continue?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/disk/filesystem.py:97
|
||||
msgid "Re-using partition instance: {}"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:590 lib/user_interaction.py:593 lib/user_interaction.py:596
|
||||
msgid "Create a new partition"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:592 lib/user_interaction.py:595 lib/user_interaction.py:598
|
||||
msgid "Delete a partition"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:593 lib/user_interaction.py:596 lib/user_interaction.py:599
|
||||
msgid "Clear/Delete all partitions"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:594 lib/user_interaction.py:597 lib/user_interaction.py:600
|
||||
msgid "Assign mount-point for a partition"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:595 lib/user_interaction.py:598 lib/user_interaction.py:601
|
||||
msgid "Mark/Unmark a partition to be formatted (wipes data)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:596 lib/user_interaction.py:599 lib/user_interaction.py:602
|
||||
msgid "Mark/Unmark a partition as encrypted"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:597 lib/user_interaction.py:600 lib/user_interaction.py:603
|
||||
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:598 lib/user_interaction.py:601 lib/user_interaction.py:604
|
||||
msgid "Set desired filesystem for a partition"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:239 lib/menu/selection_menu.py:237 lib/menu/selection_menu.py:241 lib/menu/selection_menu.py:270
|
||||
msgid "Abort"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:183 lib/menu/selection_menu.py:187
|
||||
msgid "Specify hostname"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:228
|
||||
msgid "Not configured, unavailable unless setup manually"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:231
|
||||
msgid "Select timezone"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:266
|
||||
msgid "Set/Modify the below options"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:272
|
||||
msgid "Install"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/menu.py:68
|
||||
msgid ""
|
||||
"Use ESC to skip\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:591 lib/user_interaction.py:594 lib/user_interaction.py:597
|
||||
msgid "Suggest partition layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:101
|
||||
msgid "Enter a password: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/disk/filesystem.py:117
|
||||
msgid "Enter a encryption password for {}"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:174
|
||||
msgid "Enter disk encryption password (leave blank for no encryption): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:407
|
||||
msgid "Create a required super-user with sudo privileges: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:347
|
||||
msgid "Enter root password (leave blank to disable root): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:307 lib/user_interaction.py:324
|
||||
msgid "Password for user \"{}\": "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:405 lib/user_interaction.py:408
|
||||
msgid "Verifying that additional packages exist (this might take a few seconds)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:281
|
||||
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:282
|
||||
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 ""
|
||||
|
||||
#: lib/menu/selection_menu.py:411
|
||||
msgid "Enter a username to create an additional user (leave blank to skip): "
|
||||
msgstr ""
|
||||
|
|
|
|||
|
|
@ -1,359 +0,0 @@
|
|||
#: lib/user_interaction.py:82
|
||||
msgid "Do you really want to abort?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:100
|
||||
msgid "And one more time for verification: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:271
|
||||
msgid "Would you like to use swap on zram?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:277
|
||||
msgid ""
|
||||
"Would you like to use automatic time synchronization (NTP) with the default "
|
||||
"time servers?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:278
|
||||
msgid ""
|
||||
"Hardware time and other post-configuration steps might be required in order "
|
||||
"for NTP to work. For more information, please check the Arch wiki"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:284
|
||||
msgid "Desired hostname for the installation: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:289
|
||||
msgid "Username for required superuser with sudo privileges: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:303 lib/user_interaction.py:320
|
||||
msgid "Password for user \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:309
|
||||
msgid "Any additional users to install (leave blank for no users): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:323
|
||||
msgid "Should this user be a superuser (sudoer)?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:339
|
||||
msgid "Select a timezone"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:353
|
||||
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:363
|
||||
msgid "Choose a bootloader"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:379
|
||||
msgid "Choose an audio server"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:390
|
||||
msgid ""
|
||||
"Only packages such as base, base-devel, linux, linux-firmware, efibootmgr "
|
||||
"and optional profile packages are installed."
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:391
|
||||
msgid ""
|
||||
"If you desire a web browser, such as firefox or chromium, you may specify it "
|
||||
"in the following prompt."
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:395
|
||||
msgid ""
|
||||
"Write additional packages to install (space separated, leave blank to skip): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:418
|
||||
msgid "Copy ISO network configuration to installation"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:419
|
||||
msgid ""
|
||||
"Use NetworkManager (necessary to configure internet graphically in GNOME and "
|
||||
"KDE)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:427
|
||||
msgid "Select one network interface to configure"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:440
|
||||
msgid ""
|
||||
"Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:445
|
||||
msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:460
|
||||
msgid "Enter your gateway (router) IP address or leave blank for none: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:475
|
||||
msgid "Enter your DNS servers (space separated, blank for none): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:509
|
||||
msgid "Select which filesystem your main partition should use"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:555
|
||||
msgid "Current partition layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:606
|
||||
msgid ""
|
||||
"Select what to do with\n"
|
||||
"{}"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:623 lib/user_interaction.py:708
|
||||
msgid "Enter a desired filesystem type for the partition"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:625
|
||||
msgid "Enter the start sector (percentage or block number, default: {}): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:634
|
||||
msgid ""
|
||||
"Enter the end sector of the partition (percentage or block number, ex: {}): "
|
||||
"\""
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:660
|
||||
msgid "{} contains queued partitions, this will remove those, are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:673
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select by index which partitions to delete"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:681
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select by index which partition to mount where"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:685
|
||||
msgid ""
|
||||
" * Partition mount-points are relative to inside the installation, the boot "
|
||||
"would be /boot as an example."
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:686
|
||||
msgid "Select where to mount partition (leave blank to remove mountpoint): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:697
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select which partition to mask for formatting"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:716
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select which partition to mark as encrypted"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:724
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select which partition to mark as bootable"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:731
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select which partition to set a filesystem on"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:738
|
||||
msgid "Enter a desired filesystem type for the partition: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:759
|
||||
msgid "Select archinstall language"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:764
|
||||
msgid "Wipe all selected drives and use a best-effort default partition layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:765
|
||||
msgid ""
|
||||
"Select what to do with each individual drive (followed by partition usage)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:768
|
||||
msgid "Select what you wish to do with the selected block devices"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:821
|
||||
msgid ""
|
||||
"This is a list of pre-programmed profiles, they might make it easier to "
|
||||
"install things like desktop environments"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:846
|
||||
msgid "Select Keyboard layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:861
|
||||
msgid "Select one of the regions to download packages from"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:883
|
||||
msgid "Select one or more hard drives to use and configure"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:910
|
||||
msgid ""
|
||||
"For the best compatibility with your AMD hardware, you may want to use "
|
||||
"either the all open-source or AMD / ATI options."
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:912
|
||||
msgid ""
|
||||
"For the best compatibility with your Intel hardware, you may want to use "
|
||||
"either the all open-source or Intel options.\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:914
|
||||
msgid ""
|
||||
"For the best compatibility with your Nvidia hardware, you may want to use "
|
||||
"the Nvidia proprietary driver.\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:917
|
||||
msgid ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Select a graphics driver or leave blank to install all open-source drivers"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:921
|
||||
msgid "All open-source (default)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:940
|
||||
msgid "Choose which kernels to use or leave blank for default \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:954
|
||||
msgid "Choose which locale language to use"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:968
|
||||
msgid "Choose which locale encoding to use"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:1009
|
||||
msgid "Select one of the values shown below: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:1050
|
||||
msgid "Select one or more of the options below: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:116
|
||||
msgid "Archinstall language"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:122
|
||||
msgid "Select keyboard layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:125
|
||||
msgid "Select mirror region"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:130
|
||||
msgid "Select locale language"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:132
|
||||
msgid "Select locale encoding"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:135
|
||||
msgid "Select harddrives"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:139
|
||||
msgid "Select disk layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:147
|
||||
msgid "Set encryption password"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:153
|
||||
msgid "Use swap"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:158
|
||||
msgid "Select bootloader"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:164
|
||||
msgid "Set root password"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:169
|
||||
msgid "Specify superuser account"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:175
|
||||
msgid "Specify user account"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:181
|
||||
msgid "Specify profile"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:186
|
||||
msgid "Select audio"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:190
|
||||
msgid "Select kernels"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:195
|
||||
msgid "Additional packages to install"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:200
|
||||
msgid "Configure network"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:208
|
||||
msgid "Set automatic time sync (NTP)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:759 lib/menu/selection_menu.py:116
|
||||
msgid "Select Archinstall language"
|
||||
msgstr ""
|
||||
Binary file not shown.
|
|
@ -1,354 +0,0 @@
|
|||
#: lib/user_interaction.py:82
|
||||
msgid "Do you really want to abort?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:100
|
||||
msgid "And one more time for verification: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:271
|
||||
msgid "Would you like to use swap on zram?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:277
|
||||
msgid ""
|
||||
"Would you like to use automatic time synchronization (NTP) with the default "
|
||||
"time servers?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:278
|
||||
msgid ""
|
||||
"Hardware time and other post-configuration steps might be required in order "
|
||||
"for NTP to work. For more information, please check the Arch wiki"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:284
|
||||
msgid "Desired hostname for the installation: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:289
|
||||
msgid "Username for required superuser with sudo privileges: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:303 lib/user_interaction.py:320
|
||||
msgid "Password for user \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:309
|
||||
msgid "Any additional users to install (leave blank for no users): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:323
|
||||
msgid "Should this user be a superuser (sudoer)?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:339
|
||||
msgid "Select a timezone"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:353
|
||||
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:363
|
||||
msgid "Choose a bootloader"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:379
|
||||
msgid "Choose an audio server"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:390
|
||||
msgid ""
|
||||
"Only packages such as base, base-devel, linux, linux-firmware, efibootmgr "
|
||||
"and optional profile packages are installed."
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:391
|
||||
msgid ""
|
||||
"If you desire a web browser, such as firefox or chromium, you may specify it "
|
||||
"in the following prompt."
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:395
|
||||
msgid ""
|
||||
"Write additional packages to install (space separated, leave blank to skip): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:418
|
||||
msgid "Copy ISO network configuration to installation"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:419
|
||||
msgid ""
|
||||
"Use NetworkManager (necessary to configure internet graphically in GNOME and "
|
||||
"KDE)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:427
|
||||
msgid "Select one network interface to configure"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:440
|
||||
msgid ""
|
||||
"Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:445
|
||||
msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:460
|
||||
msgid "Enter your gateway (router) IP address or leave blank for none: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:475
|
||||
msgid "Enter your DNS servers (space separated, blank for none): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:509
|
||||
msgid "Select which filesystem your main partition should use"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:555
|
||||
msgid "Current partition layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:606
|
||||
msgid ""
|
||||
"Select what to do with\n"
|
||||
"{}"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:623 lib/user_interaction.py:708
|
||||
msgid "Enter a desired filesystem type for the partition"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:625
|
||||
msgid "Enter the start sector (percentage or block number, default: {}): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:634
|
||||
msgid ""
|
||||
"Enter the end sector of the partition (percentage or block number, ex: {}): "
|
||||
"\""
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:660
|
||||
msgid "{} contains queued partitions, this will remove those, are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:673
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select by index which partitions to delete"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:681
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select by index which partition to mount where"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:685
|
||||
msgid ""
|
||||
" * Partition mount-points are relative to inside the installation, the boot "
|
||||
"would be /boot as an example."
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:686
|
||||
msgid "Select where to mount partition (leave blank to remove mountpoint): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:697
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select which partition to mask for formatting"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:716
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select which partition to mark as encrypted"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:724
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select which partition to mark as bootable"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:731
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select which partition to set a filesystem on"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:738
|
||||
msgid "Enter a desired filesystem type for the partition: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:759 lib/menu/selection_menu.py:116
|
||||
msgid "Select Archinstall language"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:764
|
||||
msgid "Wipe all selected drives and use a best-effort default partition layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:765
|
||||
msgid ""
|
||||
"Select what to do with each individual drive (followed by partition usage)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:768
|
||||
msgid "Select what you wish to do with the selected block devices"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:821
|
||||
msgid ""
|
||||
"This is a list of pre-programmed profiles, they might make it easier to "
|
||||
"install things like desktop environments"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:846
|
||||
msgid "Select Keyboard layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:861
|
||||
msgid "Select one of the regions to download packages from"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:883
|
||||
msgid "Select one or more hard drives to use and configure"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:910
|
||||
msgid ""
|
||||
"For the best compatibility with your AMD hardware, you may want to use "
|
||||
"either the all open-source or AMD / ATI options."
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:912
|
||||
msgid ""
|
||||
"For the best compatibility with your Intel hardware, you may want to use "
|
||||
"either the all open-source or Intel options.\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:914
|
||||
msgid ""
|
||||
"For the best compatibility with your Nvidia hardware, you may want to use "
|
||||
"the Nvidia proprietary driver.\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:917
|
||||
msgid ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Select a graphics driver or leave blank to install all open-source drivers"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:921
|
||||
msgid "All open-source (default)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:940
|
||||
msgid "Choose which kernels to use or leave blank for default \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:954
|
||||
msgid "Choose which locale language to use"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:968
|
||||
msgid "Choose which locale encoding to use"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:1009
|
||||
msgid "Select one of the values shown below: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:1050
|
||||
msgid "Select one or more of the options below: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:122
|
||||
msgid "Select keyboard layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:125
|
||||
msgid "Select mirror region"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:130
|
||||
msgid "Select locale language"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:132
|
||||
msgid "Select locale encoding"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:135
|
||||
msgid "Select harddrives"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:139
|
||||
msgid "Select disk layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:147
|
||||
msgid "Set encryption password"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:153
|
||||
msgid "Use swap"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:158
|
||||
msgid "Select bootloader"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:164
|
||||
msgid "Set root password"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:169
|
||||
msgid "Specify superuser account"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:175
|
||||
msgid "Specify user account"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:181
|
||||
msgid "Specify profile"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:186
|
||||
msgid "Select audio"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:190
|
||||
msgid "Select kernels"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:195
|
||||
msgid "Additional packages to install"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:200
|
||||
msgid "Configure network"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:208
|
||||
msgid "Set automatic time sync (NTP)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "this is a test string"
|
||||
#~ msgstr "Questo e un esempio"
|
||||
|
|
@ -1,362 +0,0 @@
|
|||
#: lib/user_interaction.py:82
|
||||
msgid "Do you really want to abort?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:100
|
||||
msgid "And one more time for verification: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:271
|
||||
msgid "Would you like to use swap on zram?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:277
|
||||
msgid ""
|
||||
"Would you like to use automatic time synchronization (NTP) with the default "
|
||||
"time servers?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:278
|
||||
msgid ""
|
||||
"Hardware time and other post-configuration steps might be required in order "
|
||||
"for NTP to work. For more information, please check the Arch wiki"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:284
|
||||
msgid "Desired hostname for the installation: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:289
|
||||
msgid "Username for required superuser with sudo privileges: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:303 lib/user_interaction.py:320
|
||||
msgid "Password for user \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:309
|
||||
msgid "Any additional users to install (leave blank for no users): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:323
|
||||
msgid "Should this user be a superuser (sudoer)?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:339
|
||||
msgid "Select a timezone"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:353
|
||||
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:363
|
||||
msgid "Choose a bootloader"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:379
|
||||
msgid "Choose an audio server"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:390
|
||||
msgid ""
|
||||
"Only packages such as base, base-devel, linux, linux-firmware, efibootmgr "
|
||||
"and optional profile packages are installed."
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:391
|
||||
msgid ""
|
||||
"If you desire a web browser, such as firefox or chromium, you may specify it "
|
||||
"in the following prompt."
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:395
|
||||
msgid ""
|
||||
"Write additional packages to install (space separated, leave blank to skip): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:418
|
||||
msgid "Copy ISO network configuration to installation"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:419
|
||||
msgid ""
|
||||
"Use NetworkManager (necessary to configure internet graphically in GNOME and "
|
||||
"KDE)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:427
|
||||
msgid "Select one network interface to configure"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:440
|
||||
msgid ""
|
||||
"Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:445
|
||||
msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:460
|
||||
msgid "Enter your gateway (router) IP address or leave blank for none: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:475
|
||||
msgid "Enter your DNS servers (space separated, blank for none): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:509
|
||||
msgid "Select which filesystem your main partition should use"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:555
|
||||
msgid "Current partition layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:606
|
||||
msgid ""
|
||||
"Select what to do with\n"
|
||||
"{}"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:623 lib/user_interaction.py:708
|
||||
msgid "Enter a desired filesystem type for the partition"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:625
|
||||
msgid "Enter the start sector (percentage or block number, default: {}): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:634
|
||||
msgid ""
|
||||
"Enter the end sector of the partition (percentage or block number, ex: {}): "
|
||||
"\""
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:660
|
||||
msgid "{} contains queued partitions, this will remove those, are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:673
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select by index which partitions to delete"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:681
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select by index which partition to mount where"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:685
|
||||
msgid ""
|
||||
" * Partition mount-points are relative to inside the installation, the boot "
|
||||
"would be /boot as an example."
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:686
|
||||
msgid "Select where to mount partition (leave blank to remove mountpoint): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:697
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select which partition to mask for formatting"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:716
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select which partition to mark as encrypted"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:724
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select which partition to mark as bootable"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:731
|
||||
msgid ""
|
||||
"{}\n"
|
||||
"\n"
|
||||
"Select which partition to set a filesystem on"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:738
|
||||
msgid "Enter a desired filesystem type for the partition: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:759
|
||||
msgid "Select archinstall language"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:764
|
||||
msgid "Wipe all selected drives and use a best-effort default partition layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:765
|
||||
msgid ""
|
||||
"Select what to do with each individual drive (followed by partition usage)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:768
|
||||
msgid "Select what you wish to do with the selected block devices"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:821
|
||||
msgid ""
|
||||
"This is a list of pre-programmed profiles, they might make it easier to "
|
||||
"install things like desktop environments"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:846
|
||||
msgid "Select Keyboard layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:861
|
||||
msgid "Select one of the regions to download packages from"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:883
|
||||
msgid "Select one or more hard drives to use and configure"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:910
|
||||
msgid ""
|
||||
"For the best compatibility with your AMD hardware, you may want to use "
|
||||
"either the all open-source or AMD / ATI options."
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:912
|
||||
msgid ""
|
||||
"For the best compatibility with your Intel hardware, you may want to use "
|
||||
"either the all open-source or Intel options.\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:914
|
||||
msgid ""
|
||||
"For the best compatibility with your Nvidia hardware, you may want to use "
|
||||
"the Nvidia proprietary driver.\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:917
|
||||
msgid ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Select a graphics driver or leave blank to install all open-source drivers"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:921
|
||||
msgid "All open-source (default)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:940
|
||||
msgid "Choose which kernels to use or leave blank for default \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:954
|
||||
msgid "Choose which locale language to use"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:968
|
||||
msgid "Choose which locale encoding to use"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:1009
|
||||
msgid "Select one of the values shown below: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:1050
|
||||
msgid "Select one or more of the options below: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:116
|
||||
msgid "Archinstall language"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:122
|
||||
msgid "Select keyboard layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:125
|
||||
msgid "Select mirror region"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:130
|
||||
msgid "Select locale language"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:132
|
||||
msgid "Select locale encoding"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:135
|
||||
msgid "Select harddrives"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:139
|
||||
msgid "Select disk layout"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:147
|
||||
msgid "Set encryption password"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:153
|
||||
msgid "Use swap"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:158
|
||||
msgid "Select bootloader"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:164
|
||||
msgid "Set root password"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:169
|
||||
msgid "Specify superuser account"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:175
|
||||
msgid "Specify user account"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:181
|
||||
msgid "Specify profile"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:186
|
||||
msgid "Select audio"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:190
|
||||
msgid "Select kernels"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:195
|
||||
msgid "Additional packages to install"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:200
|
||||
msgid "Configure network"
|
||||
msgstr ""
|
||||
|
||||
#: lib/menu/selection_menu.py:208
|
||||
msgid "Set automatic time sync (NTP)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/user_interaction.py:759 lib/menu/selection_menu.py:116
|
||||
msgid "Select Archinstall language"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "this is a test string"
|
||||
#~ msgstr "Questo e un esempio"
|
||||
|
|
@ -8,7 +8,7 @@ if archinstall.arguments.get('help'):
|
|||
print("See `man archinstall` for help.")
|
||||
exit(0)
|
||||
if os.getuid() != 0:
|
||||
print("Archinstall requires root privileges to run. See --help for more.")
|
||||
print(_("Archinstall requires root privileges to run. See --help for more."))
|
||||
exit(1)
|
||||
|
||||
# Log various information about hardware before starting the installation. This might assist in troubleshooting
|
||||
|
|
@ -36,7 +36,7 @@ def ask_user_questions():
|
|||
# the system immediately
|
||||
archinstall.SysCommand('timedatectl set-ntp true')
|
||||
|
||||
global_menu = archinstall.GlobalMenu()
|
||||
global_menu = archinstall.GlobalMenu(data_store=archinstall.arguments)
|
||||
global_menu.enable('keyboard-layout')
|
||||
|
||||
# Set which region to download packages from during the installation
|
||||
|
|
@ -97,7 +97,7 @@ def perform_filesystem_operations():
|
|||
"""
|
||||
|
||||
if archinstall.arguments.get('harddrives', None):
|
||||
print(f" ! Formatting {archinstall.arguments['harddrives']} in ", end='')
|
||||
print(_(f" ! Formatting {archinstall.arguments['harddrives']} in "), end='')
|
||||
archinstall.do_countdown()
|
||||
|
||||
"""
|
||||
|
|
@ -113,6 +113,7 @@ def perform_filesystem_operations():
|
|||
with archinstall.Filesystem(drive, mode) as fs:
|
||||
fs.load_layout(archinstall.arguments['disk_layouts'][drive.path])
|
||||
|
||||
|
||||
def perform_installation(mountpoint):
|
||||
"""
|
||||
Performs the installation steps on a block device.
|
||||
|
|
@ -138,11 +139,11 @@ def perform_installation(mountpoint):
|
|||
installation.log('Waiting for automatic mirror selection (reflector) to complete.', level=logging.INFO)
|
||||
while archinstall.service_state('reflector') not in ('dead', 'failed'):
|
||||
time.sleep(1)
|
||||
|
||||
|
||||
# Set mirrors used by pacstrap (outside of installation)
|
||||
if archinstall.arguments.get('mirror-region', None):
|
||||
archinstall.use_mirrors(archinstall.arguments['mirror-region']) # Set the mirrors for the live medium
|
||||
|
||||
|
||||
if installation.minimal_installation():
|
||||
installation.set_locale(archinstall.arguments['sys-language'], archinstall.arguments['sys-encoding'].upper())
|
||||
installation.set_hostname(archinstall.arguments['hostname'])
|
||||
|
|
|
|||
|
|
@ -4,41 +4,41 @@ import pathlib
|
|||
|
||||
import archinstall
|
||||
|
||||
def ask_harddrives():
|
||||
# Ask which harddrives/block-devices we will install to
|
||||
# and convert them into archinstall.BlockDevice() objects.
|
||||
if archinstall.arguments.get('harddrives', None) is None:
|
||||
archinstall.arguments['harddrives'] = archinstall.generic_multi_select(archinstall.all_disks(),
|
||||
text="Select one or more harddrives to use and configure (leave blank to skip this step): ",
|
||||
allow_empty=True)
|
||||
class OnlyHDMenu(archinstall.GlobalMenu):
|
||||
def _setup_selection_menu_options(self):
|
||||
super()._setup_selection_menu_options()
|
||||
options_list = []
|
||||
mandatory_list = []
|
||||
options_list = ['harddrives', 'disk_layouts', '!encryption-password','swap']
|
||||
mandatory_list = ['harddrives']
|
||||
options_list.extend(['install','abort'])
|
||||
|
||||
if not archinstall.arguments['harddrives']:
|
||||
archinstall.log("You decided to skip harddrive selection",fg="red",level=logging.INFO)
|
||||
archinstall.log(f"and will use whatever drive-setup is mounted at {archinstall.storage['MOUNT_POINT']} (experimental)",fg="red",level=logging.INFO)
|
||||
archinstall.log("WARNING: Archinstall won't check the suitability of this setup",fg="red",level=logging.INFO)
|
||||
if input("Do you wish to continue ? [Y/n]").strip().lower() == 'n':
|
||||
exit(1)
|
||||
else:
|
||||
if archinstall.arguments.get('disk_layouts', None) is None:
|
||||
archinstall.arguments['disk_layouts'] = archinstall.select_disk_layout(archinstall.arguments['harddrives'], archinstall.arguments.get('advanced', False))
|
||||
for entry in self._menu_options:
|
||||
if entry in options_list:
|
||||
# for not lineal executions, only self.option(entry).set_enabled and set_mandatory are necessary
|
||||
if entry in mandatory_list:
|
||||
self.enable(entry,mandatory=True)
|
||||
else:
|
||||
self.enable(entry)
|
||||
else:
|
||||
self.option(entry).set_enabled(False)
|
||||
self._update_install()
|
||||
|
||||
def _missing_configs(self):
|
||||
""" overloaded method """
|
||||
def check(s):
|
||||
return self.option(s).has_selection()
|
||||
|
||||
# Get disk encryption password (or skip if blank)
|
||||
if archinstall.arguments.get('!encryption-password', None) is None:
|
||||
if passwd := archinstall.get_password(prompt='Enter disk encryption password (leave blank for no encryption): '):
|
||||
if passwd := archinstall.get_password(prompt=str(_('Enter disk encryption password (leave blank for no encryption): '))):
|
||||
archinstall.arguments['!encryption-password'] = passwd
|
||||
|
||||
if archinstall.arguments.get('!encryption-password', None):
|
||||
# If no partitions was marked as encrypted, but a password was supplied and we have some disks to format..
|
||||
# Then we need to identify which partitions to encrypt. This will default to / (root).
|
||||
if len(list(archinstall.encrypted_partitions(archinstall.arguments['disk_layouts']))) == 0:
|
||||
archinstall.arguments['disk_layouts'] = archinstall.select_encrypted_partitions(archinstall.arguments['disk_layouts'], archinstall.arguments['!encryption-password'])
|
||||
|
||||
# Ask which boot-loader to use (will only ask if we're in BIOS (non-efi) mode)
|
||||
if not archinstall.arguments.get("bootloader", None):
|
||||
archinstall.arguments["bootloader"] = archinstall.ask_for_bootloader(archinstall.arguments.get('advanced', False))
|
||||
|
||||
if not archinstall.arguments.get('swap', None):
|
||||
archinstall.arguments['swap'] = archinstall.ask_for_swap()
|
||||
_, missing = self.mandatory_overview()
|
||||
if check('harddrives'):
|
||||
if not self.option('harddrives').is_empty() and not check('disk_layouts'):
|
||||
missing += 1
|
||||
return missing
|
||||
|
||||
def ask_user_questions():
|
||||
"""
|
||||
|
|
@ -46,7 +46,11 @@ def ask_user_questions():
|
|||
Not until we're satisfied with what we want to install
|
||||
will we continue with the actual installation steps.
|
||||
"""
|
||||
ask_harddrives()
|
||||
with OnlyHDMenu(data_store=archinstall.arguments) as menu:
|
||||
# We select the execution language separated
|
||||
menu.exec_option('archinstall-language')
|
||||
menu.option('archinstall-language').set_enabled(False)
|
||||
menu.run()
|
||||
|
||||
def perform_disk_operations():
|
||||
"""
|
||||
|
|
@ -56,7 +60,6 @@ def perform_disk_operations():
|
|||
if archinstall.arguments.get('harddrives', None):
|
||||
print(f" ! Formatting {archinstall.arguments['harddrives']} in ", end='')
|
||||
archinstall.do_countdown()
|
||||
|
||||
"""
|
||||
Setup the blockdevice, filesystem (and optionally encryption).
|
||||
Once that's done, we'll hand over to perform_installation()
|
||||
|
|
@ -66,9 +69,9 @@ def perform_disk_operations():
|
|||
mode = archinstall.MBR
|
||||
|
||||
for drive in archinstall.arguments.get('harddrives', []):
|
||||
if dl_disk := archinstall.arguments.get('disk_layouts', {}).get(drive.path):
|
||||
if archinstall.arguments.get('disk_layouts', {}).get(drive.path):
|
||||
with archinstall.Filesystem(drive, mode) as fs:
|
||||
fs.load_layout(dl_disk)
|
||||
fs.load_layout(archinstall.arguments['disk_layouts'][drive.path])
|
||||
|
||||
def perform_installation(mountpoint):
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -0,0 +1,512 @@
|
|||
"""
|
||||
|
||||
Script swiss (army knife)
|
||||
Designed to make different workflows for the installation process. Which is controled by the argument --mode
|
||||
mode full guides the full process of installation
|
||||
mode only_hd only proceeds to the creation of the disk infraestructure (partition, mount points, encryption)
|
||||
mode only_os processes only the installation of Archlinux and software at --mountpoint (or /mnt/archinstall)
|
||||
mode minimal (still not implemented)
|
||||
mode lineal. Instead of a menu, shows a sequence of selection screens (eq. to the old mode for guided.py)
|
||||
|
||||
When using the argument --advanced. an aditional menu for several special parameters needed during installation appears
|
||||
|
||||
This script respects the --dry_run argument
|
||||
|
||||
"""
|
||||
import logging
|
||||
import os
|
||||
import time
|
||||
import pathlib
|
||||
|
||||
import archinstall
|
||||
|
||||
if archinstall.arguments.get('help'):
|
||||
print("See `man archinstall` for help.")
|
||||
exit(0)
|
||||
if os.getuid() != 0:
|
||||
print("Archinstall requires root privileges to run. See --help for more.")
|
||||
exit(1)
|
||||
|
||||
"""
|
||||
particular routines to SetupMenu
|
||||
TODO exec con return parameter
|
||||
"""
|
||||
def select_activate_NTP():
|
||||
prompt = "Would you like to use automatic time synchronization (NTP) with the default time servers? [Y/n]: "
|
||||
choice = archinstall.Menu(prompt, ['yes', 'no'], default_option='yes').run()
|
||||
if choice == 'yes':
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
|
||||
def select_mode():
|
||||
return archinstall.generic_select(['full','only_hd','only_os','minimal','lineal'],
|
||||
'Select one execution mode',
|
||||
default=archinstall.arguments.get('mode','full'))
|
||||
|
||||
|
||||
"""
|
||||
following functions will be at locale_helpers, so they will have to be called prefixed by archinstall
|
||||
"""
|
||||
def get_locale_mode_text(mode):
|
||||
if mode == 'LC_ALL':
|
||||
mode_text = "general (LC_ALL)"
|
||||
elif mode == "LC_CTYPE":
|
||||
mode_text = "Character set"
|
||||
elif mode == "LC_NUMERIC":
|
||||
mode_text = "Numeric values"
|
||||
elif mode == "LC_TIME":
|
||||
mode_text = "Time Values"
|
||||
elif mode == "LC_COLLATE":
|
||||
mode_text = "sort order"
|
||||
elif mode == "LC_MESSAGES":
|
||||
mode_text = "text messages"
|
||||
else:
|
||||
mode_text = "Unassigned"
|
||||
return mode_text
|
||||
|
||||
def reset_cmd_locale():
|
||||
""" sets the cmd_locale to its saved default """
|
||||
archinstall.storage['CMD_LOCALE'] = archinstall.storage.get('CMD_LOCALE_DEFAULT',{})
|
||||
|
||||
def unset_cmd_locale():
|
||||
""" archinstall will use the execution environment default """
|
||||
archinstall.storage['CMD_LOCALE'] = {}
|
||||
|
||||
def set_cmd_locale(general :str = None,
|
||||
charset :str = 'C',
|
||||
numbers :str = 'C',
|
||||
time :str = 'C',
|
||||
collate :str = 'C',
|
||||
messages :str = 'C'):
|
||||
"""
|
||||
Set the cmd locale.
|
||||
If the parameter general is specified, it takes precedence over the rest (might as well not exist)
|
||||
The rest define some specific settings above the installed default language. If anyone of this parameters is none means the installation default
|
||||
"""
|
||||
installed_locales = list_installed_locales()
|
||||
result = {}
|
||||
if general:
|
||||
if general in installed_locales:
|
||||
archinstall.storage['CMD_LOCALE'] = {'LC_ALL':general}
|
||||
else:
|
||||
archinstall.log(f"{get_locale_mode_text('LC_ALL')} {general} is not installed. Defaulting to C",fg="yellow",level=logging.WARNING)
|
||||
return
|
||||
|
||||
if numbers:
|
||||
if numbers in installed_locales:
|
||||
result["LC_NUMERIC"] = numbers
|
||||
else:
|
||||
archinstall.log(f"{get_locale_mode_text('LC_NUMERIC')} {numbers} is not installed. Defaulting to installation language",fg="yellow",level=logging.WARNING)
|
||||
if charset:
|
||||
if charset in installed_locales:
|
||||
result["LC_CTYPE"] = charset
|
||||
else:
|
||||
archinstall.log(f"{get_locale_mode_text('LC_CTYPE')} {charset} is not installed. Defaulting to installation language",fg="yellow",level=logging.WARNING)
|
||||
if time:
|
||||
if time in installed_locales:
|
||||
result["LC_TIME"] = time
|
||||
else:
|
||||
archinstall.log(f"{get_locale_mode_text('LC_TIME')} {time} is not installed. Defaulting to installation language",fg="yellow",level=logging.WARNING)
|
||||
if collate:
|
||||
if collate in installed_locales:
|
||||
result["LC_COLLATE"] = collate
|
||||
else:
|
||||
archinstall.log(f"{get_locale_mode_text('LC_COLLATE')} {collate} is not installed. Defaulting to installation language",fg="yellow",level=logging.WARNING)
|
||||
if messages:
|
||||
if messages in installed_locales:
|
||||
result["LC_MESSAGES"] = messages
|
||||
else:
|
||||
archinstall.log(f"{get_locale_mode_text('LC_MESSAGES')} {messages} is not installed. Defaulting to installation language",fg="yellow",level=logging.WARNING)
|
||||
archinstall.storage['CMD_LOCALE'] = result
|
||||
|
||||
def list_installed_locales() -> list[str]:
|
||||
lista = []
|
||||
for line in archinstall.SysCommand('locale -a'):
|
||||
lista.append(line.decode('UTF-8').strip())
|
||||
return lista
|
||||
|
||||
|
||||
"""
|
||||
end of locale helpers
|
||||
"""
|
||||
|
||||
def select_installed_locale(mode):
|
||||
mode_text = get_locale_mode_text(mode)
|
||||
if mode == 'LC_ALL':
|
||||
texto = "Select the default execution locale \nIf none, you will be prompted for specific settings"
|
||||
else:
|
||||
texto = f"Select the {mode_text} ({mode}) execution locale \nIf none, you will get the installation default"
|
||||
return archinstall.generic_select([None] + list_installed_locales(),
|
||||
texto,
|
||||
allow_empty_input=True,
|
||||
default=archinstall.storage.get('CMD_LOCALE',{}).get(mode,'C'))
|
||||
|
||||
|
||||
"""
|
||||
_menus
|
||||
"""
|
||||
|
||||
class SetupMenu(archinstall.GeneralMenu):
|
||||
def __init__(self,storage_area):
|
||||
super().__init__(data_store=storage_area)
|
||||
|
||||
def _setup_selection_menu_options(self):
|
||||
self.set_option('archinstall-language',
|
||||
archinstall.Selector(
|
||||
_('Select Archinstall language'),
|
||||
lambda: self._select_archinstall_language('English'),
|
||||
default='English',
|
||||
enabled=True))
|
||||
self.set_option('ntp',
|
||||
archinstall.Selector(
|
||||
'Activate NTP',
|
||||
lambda: select_activate_NTP(),
|
||||
default='Y',
|
||||
enabled=True))
|
||||
self.set_option('mode',
|
||||
archinstall.Selector(
|
||||
'Excution mode',
|
||||
lambda: select_mode(),
|
||||
default='full',
|
||||
enabled=True))
|
||||
for item in ['LC_ALL','LC_CTYPE','LC_NUMERIC','LC_TIME','LC_MESSAGES','LC_COLLATE']:
|
||||
self.set_option(item,
|
||||
archinstall.Selector(
|
||||
f'{get_locale_mode_text(item)} locale',
|
||||
lambda item=item: select_installed_locale(item), # the parmeter is needed for the lambda in the loop
|
||||
enabled=True,
|
||||
dependencies_not=['LC_ALL'] if item != 'LC_ALL' else []))
|
||||
self.option('LC_ALL').set_enabled(True)
|
||||
self.set_option('continue',
|
||||
archinstall.Selector(
|
||||
'Continue',
|
||||
exec_func=lambda n,v: True,
|
||||
enabled=True))
|
||||
|
||||
def exit_callback(self):
|
||||
if self._data_store.get('ntp',False):
|
||||
archinstall.log("Hardware time and other post-configuration steps might be required in order for NTP to work. For more information, please check the Arch wiki.", fg="yellow")
|
||||
archinstall.SysCommand('timedatectl set-ntp true')
|
||||
if self._data_store.get('mode',None):
|
||||
archinstall.arguments['mode'] = self._data_store['mode']
|
||||
archinstall.log(f"Archinstall will execute under {archinstall.arguments['mode']} mode")
|
||||
if self._data_store.get('LC_ALL',None):
|
||||
archinstall.storage['CMD_LOCALE'] = {'LC_ALL':self._data_store['LC_ALL']}
|
||||
else:
|
||||
exec_locale = {}
|
||||
for item in ['LC_COLLATE','LC_CTYPE','LC_MESSAGES','LC_NUMERIC','LC_TIME']:
|
||||
if self._data_store.get(item,None):
|
||||
exec_locale[item] = self._data_store[item]
|
||||
archinstall.storage['CMD_LOCALE'] = exec_locale
|
||||
archinstall.log(f"Archinstall will execute with {archinstall.storage.get('CMD_LOCALE',None)} locale")
|
||||
|
||||
class MyMenu(archinstall.GlobalMenu):
|
||||
def __init__(self,data_store=archinstall.arguments,mode='full'):
|
||||
self._execution_mode = mode
|
||||
super().__init__(data_store)
|
||||
|
||||
def _setup_selection_menu_options(self):
|
||||
super()._setup_selection_menu_options()
|
||||
options_list = []
|
||||
mandatory_list = []
|
||||
if self._execution_mode in ('full','lineal'):
|
||||
options_list = ['keyboard-layout', 'mirror-region', 'harddrives', 'disk_layouts',
|
||||
'!encryption-password','swap', 'bootloader', 'hostname', '!root-password',
|
||||
'!superusers', '!users', 'profile', 'audio', 'kernels', 'packages','nic',
|
||||
'timezone', 'ntp']
|
||||
if archinstall.arguments.get('advanced',False):
|
||||
options_list.extend(['sys-language','sys-encoding'])
|
||||
mandatory_list = ['harddrives','bootloader','hostname']
|
||||
elif self._execution_mode == 'only_hd':
|
||||
options_list = ['harddrives', 'disk_layouts', '!encryption-password','swap']
|
||||
mandatory_list = ['harddrives']
|
||||
elif self._execution_mode == 'only_os':
|
||||
options_list = ['keyboard-layout', 'mirror-region','bootloader', 'hostname',
|
||||
'!root-password', '!superusers', '!users', 'profile', 'audio', 'kernels',
|
||||
'packages', 'nic', 'timezone', 'ntp']
|
||||
mandatory_list = ['hostname']
|
||||
if archinstall.arguments.get('advanced',False):
|
||||
options_list.expand(['sys-language','sys-encoding'])
|
||||
elif self._execution_mode == 'minimal':
|
||||
pass
|
||||
else:
|
||||
archinstall.log(f"self._execution_mode {self._execution_mode} not supported")
|
||||
exit(1)
|
||||
if self._execution_mode != 'lineal':
|
||||
options_list.extend(['install','abort'])
|
||||
if not archinstall.arguments.get('advanced'):
|
||||
options_list.append('archinstall-language')
|
||||
|
||||
for entry in self._menu_options:
|
||||
if entry in options_list:
|
||||
# for not lineal executions, only self.option(entry).set_enabled and set_mandatory are necessary
|
||||
if entry in mandatory_list:
|
||||
self.enable(entry,mandatory=True)
|
||||
else:
|
||||
self.enable(entry)
|
||||
else:
|
||||
self.option(entry).set_enabled(False)
|
||||
self._update_install()
|
||||
|
||||
def post_callback(self,option,value=None):
|
||||
self._update_install(self._execution_mode)
|
||||
|
||||
def _missing_configs(self,mode='full'):
|
||||
def check(s):
|
||||
return self.option(s).has_selection()
|
||||
|
||||
_, missing = self.mandatory_overview()
|
||||
if mode in ('full','only_os') and (not check('!root-password') and not check('!superusers')):
|
||||
missing += 1
|
||||
if mode in ('full', 'only_hd') and check('harddrives'):
|
||||
if not self.option('harddrives').is_empty() and not check('disk_layouts'):
|
||||
missing += 1
|
||||
return missing
|
||||
|
||||
def _install_text(self,mode='full'):
|
||||
missing = self._missing_configs(mode)
|
||||
if missing > 0:
|
||||
return f'Instalation ({missing} config(s) missing)'
|
||||
return 'Install'
|
||||
|
||||
def _update_install(self,mode='full'):
|
||||
text = self._install_text(mode)
|
||||
self.option('install').update_description(text)
|
||||
|
||||
|
||||
"""
|
||||
Instalation general subroutines
|
||||
"""
|
||||
|
||||
def get_current_status():
|
||||
# Log various information about hardware before starting the installation. This might assist in troubleshooting
|
||||
archinstall.log(f"Hardware model detected: {archinstall.sys_vendor()} {archinstall.product_name()}; UEFI mode: {archinstall.has_uefi()}", level=logging.DEBUG)
|
||||
archinstall.log(f"Processor model detected: {archinstall.cpu_model()}", level=logging.DEBUG)
|
||||
archinstall.log(f"Memory statistics: {archinstall.mem_available()} available out of {archinstall.mem_total()} total installed", level=logging.DEBUG)
|
||||
archinstall.log(f"Virtualization detected: {archinstall.virtualization()}; is VM: {archinstall.is_vm()}", level=logging.DEBUG)
|
||||
archinstall.log(f"Graphics devices detected: {archinstall.graphics_devices().keys()}", level=logging.DEBUG)
|
||||
|
||||
# For support reasons, we'll log the disk layout pre installation to match against post-installation layout
|
||||
archinstall.log(f"Disk states before installing: {archinstall.disk_layouts()}", level=logging.DEBUG)
|
||||
|
||||
def ask_user_questions(mode):
|
||||
"""
|
||||
First, we'll ask the user for a bunch of user input.
|
||||
Not until we're satisfied with what we want to install
|
||||
will we continue with the actual installation steps.
|
||||
"""
|
||||
if archinstall.arguments.get('advanced',None):
|
||||
# 3.9 syntax. former x = {**y,**z} or x.update(y)
|
||||
set_cmd_locale(charset='es_ES.utf8',collate='es_ES.utf8')
|
||||
setup_area = archinstall.storage.get('CMD_LOCALE',{}) | {}
|
||||
with SetupMenu(setup_area) as setup:
|
||||
if mode == 'lineal':
|
||||
for entry in setup.list_enabled_options():
|
||||
if entry in ('continue','abort'):
|
||||
continue
|
||||
if not setup.option(entry).enabled:
|
||||
continue
|
||||
setup.exec_option(entry)
|
||||
else:
|
||||
setup.run()
|
||||
archinstall.arguments['archinstall-language'] = setup_area.get('archinstall-language')
|
||||
else:
|
||||
archinstall.log("Hardware time and other post-configuration steps might be required in order for NTP to work. For more information, please check the Arch wiki.", fg="yellow")
|
||||
archinstall.SysCommand('timedatectl set-ntp true')
|
||||
|
||||
with MyMenu(data_store=archinstall.arguments,mode=mode) as global_menu:
|
||||
|
||||
if mode == 'lineal':
|
||||
for entry in global_menu.list_enabled_options():
|
||||
if entry in ('install','abort'):
|
||||
continue
|
||||
global_menu.exec_option(entry)
|
||||
archinstall.arguments[entry] = global_menu.option(entry).get_selection()
|
||||
else:
|
||||
global_menu.set_option('install',
|
||||
archinstall.Selector(
|
||||
global_menu._install_text(mode),
|
||||
exec_func=lambda n,v: True if global_menu._missing_configs(mode) == 0 else False,
|
||||
enabled=True))
|
||||
|
||||
global_menu.run()
|
||||
|
||||
def perform_filesystem_operations():
|
||||
"""
|
||||
Issue a final warning before we continue with something un-revertable.
|
||||
We mention the drive one last time, and count from 5 to 0.
|
||||
"""
|
||||
|
||||
if archinstall.arguments.get('harddrives', None):
|
||||
print(f" ! Formatting {archinstall.arguments['harddrives']} in ", end='')
|
||||
archinstall.do_countdown()
|
||||
|
||||
"""
|
||||
Setup the blockdevice, filesystem (and optionally encryption).
|
||||
Once that's done, we'll hand over to perform_installation()
|
||||
"""
|
||||
|
||||
mode = archinstall.GPT
|
||||
if archinstall.has_uefi() is False:
|
||||
mode = archinstall.MBR
|
||||
|
||||
for drive in archinstall.arguments.get('harddrives', []):
|
||||
if archinstall.arguments.get('disk_layouts', {}).get(drive.path):
|
||||
with archinstall.Filesystem(drive, mode) as fs:
|
||||
fs.load_layout(archinstall.arguments['disk_layouts'][drive.path])
|
||||
|
||||
def disk_setup(installation):
|
||||
# Mount all the drives to the desired mountpoint
|
||||
# This *can* be done outside of the installation, but the installer can deal with it.
|
||||
if archinstall.arguments.get('disk_layouts'):
|
||||
installation.mount_ordered_layout(archinstall.arguments['disk_layouts'])
|
||||
|
||||
# Placing /boot check during installation because this will catch both re-use and wipe scenarios.
|
||||
for partition in installation.partitions:
|
||||
if partition.mountpoint == installation.target + '/boot':
|
||||
if partition.size < 0.19: # ~200 MiB in GiB
|
||||
raise archinstall.DiskError(
|
||||
f"The selected /boot partition in use is not large enough to properly install a boot loader. Please resize it to at least 200MiB and re-run the installation.")
|
||||
|
||||
def os_setup(installation):
|
||||
# if len(mirrors):
|
||||
# Certain services might be running that affects the system during installation.
|
||||
# Currently, only one such service is "reflector.service" which updates /etc/pacman.d/mirrorlist
|
||||
# We need to wait for it before we continue since we opted in to use a custom mirror/region.
|
||||
installation.log('Waiting for automatic mirror selection (reflector) to complete.', level=logging.INFO)
|
||||
while archinstall.service_state('reflector') not in ('dead', 'failed'):
|
||||
time.sleep(1)
|
||||
# Set mirrors used by pacstrap (outside of installation)
|
||||
if archinstall.arguments.get('mirror-region', None):
|
||||
archinstall.use_mirrors(archinstall.arguments['mirror-region']) # Set the mirrors for the live medium
|
||||
if installation.minimal_installation():
|
||||
installation.set_locale(archinstall.arguments['sys-language'], archinstall.arguments['sys-encoding'].upper())
|
||||
installation.set_hostname(archinstall.arguments['hostname'])
|
||||
if archinstall.arguments['mirror-region'].get("mirrors", None) is not None:
|
||||
installation.set_mirrors(
|
||||
archinstall.arguments['mirror-region']) # Set the mirrors in the installation medium
|
||||
if archinstall.arguments["bootloader"] == "grub-install" and archinstall.has_uefi():
|
||||
installation.add_additional_packages("grub")
|
||||
installation.add_bootloader(archinstall.arguments["bootloader"])
|
||||
if archinstall.arguments['swap']:
|
||||
installation.setup_swap('zram')
|
||||
|
||||
# If user selected to copy the current ISO network configuration
|
||||
# Perform a copy of the config
|
||||
if archinstall.arguments.get('nic', {}) == 'Copy ISO network configuration to installation':
|
||||
installation.copy_iso_network_config(
|
||||
enable_services=True) # Sources the ISO network configuration to the install medium.
|
||||
elif archinstall.arguments.get('nic', {}).get('NetworkManager', False):
|
||||
installation.add_additional_packages("networkmanager")
|
||||
installation.enable_service('NetworkManager.service')
|
||||
# Otherwise, if a interface was selected, configure that interface
|
||||
elif archinstall.arguments.get('nic', {}):
|
||||
installation.configure_nic(**archinstall.arguments.get('nic', {}))
|
||||
installation.enable_service('systemd-networkd')
|
||||
installation.enable_service('systemd-resolved')
|
||||
|
||||
if archinstall.arguments.get('audio', None) is not None:
|
||||
installation.log(f"This audio server will be used: {archinstall.arguments.get('audio', None)}",level=logging.INFO)
|
||||
if archinstall.arguments.get('audio', None) == 'pipewire':
|
||||
archinstall.Application(installation, 'pipewire').install()
|
||||
elif archinstall.arguments.get('audio', None) == 'pulseaudio':
|
||||
print('Installing pulseaudio ...')
|
||||
installation.add_additional_packages("pulseaudio")
|
||||
else:
|
||||
installation.log("No audio server will be installed.", level=logging.INFO)
|
||||
|
||||
if archinstall.arguments.get('packages', None) and archinstall.arguments.get('packages', None)[0] != '':
|
||||
installation.add_additional_packages(archinstall.arguments.get('packages', None))
|
||||
|
||||
if archinstall.arguments.get('profile', None):
|
||||
installation.install_profile(archinstall.arguments.get('profile', None))
|
||||
|
||||
for user, user_info in archinstall.arguments.get('!users', {}).items():
|
||||
installation.user_create(user, user_info["!password"], sudo=False)
|
||||
|
||||
for superuser, user_info in archinstall.arguments.get('!superusers', {}).items():
|
||||
installation.user_create(superuser, user_info["!password"], sudo=True)
|
||||
|
||||
if timezone := archinstall.arguments.get('timezone', None):
|
||||
installation.set_timezone(timezone)
|
||||
|
||||
if archinstall.arguments.get('ntp', False):
|
||||
installation.activate_time_syncronization()
|
||||
|
||||
if archinstall.accessibility_tools_in_use():
|
||||
installation.enable_espeakup()
|
||||
|
||||
if (root_pw := archinstall.arguments.get('!root-password', None)) and len(root_pw):
|
||||
installation.user_set_pw('root', root_pw)
|
||||
|
||||
# This step must be after profile installs to allow profiles to install language pre-requisits.
|
||||
# After which, this step will set the language both for console and x11 if x11 was installed for instance.
|
||||
installation.set_keyboard_language(archinstall.arguments['keyboard-layout'])
|
||||
|
||||
if archinstall.arguments['profile'] and archinstall.arguments['profile'].has_post_install():
|
||||
with archinstall.arguments['profile'].load_instructions(
|
||||
namespace=f"{archinstall.arguments['profile'].namespace}.py") as imported:
|
||||
if not imported._post_install():
|
||||
archinstall.log(' * Profile\'s post configuration requirements was not fulfilled.', fg='red')
|
||||
exit(1)
|
||||
|
||||
# If the user provided a list of services to be enabled, pass the list to the enable_service function.
|
||||
# Note that while it's called enable_service, it can actually take a list of services and iterate it.
|
||||
if archinstall.arguments.get('services', None):
|
||||
installation.enable_service(*archinstall.arguments['services'])
|
||||
|
||||
# If the user provided custom commands to be run post-installation, execute them now.
|
||||
if archinstall.arguments.get('custom-commands', None):
|
||||
archinstall.run_custom_user_commands(archinstall.arguments['custom-commands'], installation)
|
||||
|
||||
|
||||
def perform_installation(mountpoint, mode):
|
||||
"""
|
||||
Performs the installation steps on a block device.
|
||||
Only requirement is that the block devices are
|
||||
formatted and setup prior to entering this function.
|
||||
"""
|
||||
with archinstall.Installer(mountpoint, kernels=archinstall.arguments.get('kernels', ['linux'])) as installation:
|
||||
if mode in ('full','only_hd'):
|
||||
disk_setup(installation)
|
||||
if mode == 'only_hd':
|
||||
target = pathlib.Path(f"{mountpoint}/etc/fstab")
|
||||
if not target.parent.exists():
|
||||
target.parent.mkdir(parents=True)
|
||||
|
||||
if mode in ('full','only_os'):
|
||||
os_setup(installation)
|
||||
installation.log("For post-installation tips, see https://wiki.archlinux.org/index.php/Installation_guide#Post-installation", fg="yellow")
|
||||
if not archinstall.arguments.get('silent'):
|
||||
prompt = 'Would you like to chroot into the newly created installation and perform post-installation configuration?'
|
||||
choice = archinstall.Menu(prompt, ['yes', 'no'], default_option='yes').run()
|
||||
if choice == 'yes':
|
||||
try:
|
||||
installation.drop_to_shell()
|
||||
except:
|
||||
pass
|
||||
|
||||
# For support reasons, we'll log the disk layout post installation (crash or no crash)
|
||||
archinstall.log(f"Disk states after installing: {archinstall.disk_layouts()}", level=logging.DEBUG)
|
||||
|
||||
|
||||
if not archinstall.check_mirror_reachable():
|
||||
log_file = os.path.join(archinstall.storage.get('LOG_PATH', None), archinstall.storage.get('LOG_FILE', None))
|
||||
archinstall.log(f"Arch Linux mirrors are not reachable. Please check your internet connection and the log file '{log_file}'.", level=logging.INFO, fg="red")
|
||||
exit(1)
|
||||
|
||||
mode = archinstall.arguments.get('mode', 'full').lower()
|
||||
if not archinstall.arguments.get('silent'):
|
||||
ask_user_questions(mode)
|
||||
|
||||
archinstall.output_configs(archinstall.arguments,show=False if archinstall.arguments.get('silent') else True)
|
||||
if archinstall.arguments.get('dry_run'):
|
||||
exit(0)
|
||||
if not archinstall.arguments.get('silent'):
|
||||
input('Press Enter to continue.')
|
||||
|
||||
if mode in ('full','only_hd'):
|
||||
perform_filesystem_operations()
|
||||
perform_installation(archinstall.storage.get('MOUNT_POINT', '/mnt'), mode)
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
import archinstall
|
||||
import logging
|
||||
from archinstall.lib.hardware import __packages__ as __hwd__packages__
|
||||
|
||||
is_top_level_profile = True
|
||||
|
||||
__description__ = 'Installs a minimal system as well as xorg and graphics drivers.'
|
||||
|
|
|
|||
Loading…
Reference in New Issue