Provide nationalization (#893)
* Nationalization * Add _ as builtins to flake8 * Removing conflict hash tag Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com> Co-authored-by: Anton Hvornum <anton@hvornum.se>
This commit is contained in:
parent
68c2988358
commit
f6d133804b
3
.flake8
3
.flake8
|
|
@ -6,4 +6,5 @@ max-complexity = 40
|
||||||
max-line-length = 236
|
max-line-length = 236
|
||||||
show-source = True
|
show-source = True
|
||||||
statistics = True
|
statistics = True
|
||||||
per-file-ignores = __init__.py:F401,F403,F405 simple_menu.py:C901,W503 guided.py:C901
|
per-file-ignores = __init__.py:F401,F403,F405 simple_menu.py:C901,W503 guided.py:C901
|
||||||
|
builtins = _
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ from .lib.systemd import *
|
||||||
from .lib.user_interaction import *
|
from .lib.user_interaction import *
|
||||||
from .lib.menu import Menu
|
from .lib.menu import Menu
|
||||||
from .lib.menu.selection_menu import GlobalMenu
|
from .lib.menu.selection_menu import GlobalMenu
|
||||||
|
from .lib.translation import Translation
|
||||||
from .lib.plugins import plugins, load_plugin # This initiates the plugin loading ceremony
|
from .lib.plugins import plugins, load_plugin # This initiates the plugin loading ceremony
|
||||||
|
|
||||||
parser = ArgumentParser()
|
parser = ArgumentParser()
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,8 @@ from ..user_interaction import select_kernel
|
||||||
from ..user_interaction import select_encrypted_partitions
|
from ..user_interaction import select_encrypted_partitions
|
||||||
from ..user_interaction import select_harddrives
|
from ..user_interaction import select_harddrives
|
||||||
from ..user_interaction import select_profile
|
from ..user_interaction import select_profile
|
||||||
|
from ..user_interaction import select_archinstall_language
|
||||||
|
from ..translation import Translation
|
||||||
|
|
||||||
class Selector:
|
class Selector:
|
||||||
def __init__(
|
def __init__(
|
||||||
|
|
@ -128,29 +130,36 @@ class Selector:
|
||||||
|
|
||||||
class GlobalMenu:
|
class GlobalMenu:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
self._translation = Translation.load_nationalization()
|
||||||
self._menu_options = {}
|
self._menu_options = {}
|
||||||
self._setup_selection_menu_options()
|
self._setup_selection_menu_options()
|
||||||
|
|
||||||
def _setup_selection_menu_options(self):
|
def _setup_selection_menu_options(self):
|
||||||
|
self._menu_options['archinstall-language'] = \
|
||||||
|
Selector(
|
||||||
|
_('Select Archinstall language'),
|
||||||
|
lambda: self._select_archinstall_language('English'),
|
||||||
|
default='English',
|
||||||
|
enabled=True)
|
||||||
self._menu_options['keyboard-layout'] = \
|
self._menu_options['keyboard-layout'] = \
|
||||||
Selector('Select keyboard layout', lambda: select_language('us'), default='us')
|
Selector(_('Select keyboard layout'), lambda: select_language('us'), default='us')
|
||||||
self._menu_options['mirror-region'] = \
|
self._menu_options['mirror-region'] = \
|
||||||
Selector(
|
Selector(
|
||||||
'Select mirror region',
|
_('Select mirror region'),
|
||||||
lambda: select_mirror_regions(),
|
lambda: select_mirror_regions(),
|
||||||
display_func=lambda x: list(x.keys()) if x else '[]',
|
display_func=lambda x: list(x.keys()) if x else '[]',
|
||||||
default={})
|
default={})
|
||||||
self._menu_options['sys-language'] = \
|
self._menu_options['sys-language'] = \
|
||||||
Selector('Select locale language', lambda: select_locale_lang('en_US'), default='en_US')
|
Selector(_('Select locale language'), lambda: select_locale_lang('en_US'), default='en_US')
|
||||||
self._menu_options['sys-encoding'] = \
|
self._menu_options['sys-encoding'] = \
|
||||||
Selector('Select locale encoding', lambda: select_locale_enc('utf-8'), default='utf-8')
|
Selector(_('Select locale encoding'), lambda: select_locale_enc('utf-8'), default='utf-8')
|
||||||
self._menu_options['harddrives'] = \
|
self._menu_options['harddrives'] = \
|
||||||
Selector(
|
Selector(
|
||||||
'Select harddrives',
|
_('Select harddrives'),
|
||||||
lambda: self._select_harddrives())
|
lambda: self._select_harddrives())
|
||||||
self._menu_options['disk_layouts'] = \
|
self._menu_options['disk_layouts'] = \
|
||||||
Selector(
|
Selector(
|
||||||
'Select disk layout',
|
_('Select disk layout'),
|
||||||
lambda: select_disk_layout(
|
lambda: select_disk_layout(
|
||||||
storage['arguments'].get('harddrives', []),
|
storage['arguments'].get('harddrives', []),
|
||||||
storage['arguments'].get('advanced', False)
|
storage['arguments'].get('advanced', False)
|
||||||
|
|
@ -158,60 +167,60 @@ class GlobalMenu:
|
||||||
dependencies=['harddrives'])
|
dependencies=['harddrives'])
|
||||||
self._menu_options['!encryption-password'] = \
|
self._menu_options['!encryption-password'] = \
|
||||||
Selector(
|
Selector(
|
||||||
'Set encryption password',
|
_('Set encryption password'),
|
||||||
lambda: get_password(prompt='Enter disk encryption password (leave blank for no encryption): '),
|
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: self._secret(x) if x else 'None',
|
||||||
dependencies=['harddrives'])
|
dependencies=['harddrives'])
|
||||||
self._menu_options['swap'] = \
|
self._menu_options['swap'] = \
|
||||||
Selector(
|
Selector(
|
||||||
'Use swap',
|
_('Use swap'),
|
||||||
lambda: ask_for_swap(),
|
lambda: ask_for_swap(),
|
||||||
default=True)
|
default=True)
|
||||||
self._menu_options['bootloader'] = \
|
self._menu_options['bootloader'] = \
|
||||||
Selector(
|
Selector(
|
||||||
'Select bootloader',
|
_('Select bootloader'),
|
||||||
lambda: ask_for_bootloader(storage['arguments'].get('advanced', False)),)
|
lambda: ask_for_bootloader(storage['arguments'].get('advanced', False)),)
|
||||||
self._menu_options['hostname'] = \
|
self._menu_options['hostname'] = \
|
||||||
Selector('Specify hostname', lambda: ask_hostname())
|
Selector('Specify hostname', lambda: ask_hostname())
|
||||||
self._menu_options['!root-password'] = \
|
self._menu_options['!root-password'] = \
|
||||||
Selector(
|
Selector(
|
||||||
'Set root password',
|
_('Set root password'),
|
||||||
lambda: self._set_root_password(),
|
lambda: self._set_root_password(),
|
||||||
display_func=lambda x: self._secret(x) if x else 'None')
|
display_func=lambda x: self._secret(x) if x else 'None')
|
||||||
self._menu_options['!superusers'] = \
|
self._menu_options['!superusers'] = \
|
||||||
Selector(
|
Selector(
|
||||||
'Specify superuser account',
|
_('Specify superuser account'),
|
||||||
lambda: self._create_superuser_account(),
|
lambda: self._create_superuser_account(),
|
||||||
dependencies_not=['!root-password'],
|
dependencies_not=['!root-password'],
|
||||||
display_func=lambda x: list(x.keys()) if x else '')
|
display_func=lambda x: list(x.keys()) if x else '')
|
||||||
self._menu_options['!users'] = \
|
self._menu_options['!users'] = \
|
||||||
Selector(
|
Selector(
|
||||||
'Specify user account',
|
_('Specify user account'),
|
||||||
lambda: self._create_user_account(),
|
lambda: self._create_user_account(),
|
||||||
default={},
|
default={},
|
||||||
display_func=lambda x: list(x.keys()) if x else '[]')
|
display_func=lambda x: list(x.keys()) if x else '[]')
|
||||||
self._menu_options['profile'] = \
|
self._menu_options['profile'] = \
|
||||||
Selector(
|
Selector(
|
||||||
'Specify profile',
|
_('Specify profile'),
|
||||||
lambda: self._select_profile(),
|
lambda: self._select_profile(),
|
||||||
display_func=lambda x: x if x else 'None')
|
display_func=lambda x: x if x else 'None')
|
||||||
self._menu_options['audio'] = \
|
self._menu_options['audio'] = \
|
||||||
Selector(
|
Selector(
|
||||||
'Select audio',
|
_('Select audio'),
|
||||||
lambda: ask_for_audio_selection(is_desktop_profile(storage['arguments'].get('profile', None))))
|
lambda: ask_for_audio_selection(is_desktop_profile(storage['arguments'].get('profile', None))))
|
||||||
self._menu_options['kernels'] = \
|
self._menu_options['kernels'] = \
|
||||||
Selector(
|
Selector(
|
||||||
'Select kernels',
|
_('Select kernels'),
|
||||||
lambda: select_kernel(),
|
lambda: select_kernel(),
|
||||||
default=['linux'])
|
default=['linux'])
|
||||||
self._menu_options['packages'] = \
|
self._menu_options['packages'] = \
|
||||||
Selector(
|
Selector(
|
||||||
'Additional packages to install',
|
_('Additional packages to install'),
|
||||||
lambda: ask_additional_packages_to_install(storage['arguments'].get('packages', None)),
|
lambda: ask_additional_packages_to_install(storage['arguments'].get('packages', None)),
|
||||||
default=[])
|
default=[])
|
||||||
self._menu_options['nic'] = \
|
self._menu_options['nic'] = \
|
||||||
Selector(
|
Selector(
|
||||||
'Configure network',
|
_('Configure network'),
|
||||||
lambda: ask_to_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={})
|
default={})
|
||||||
|
|
@ -219,7 +228,7 @@ class GlobalMenu:
|
||||||
Selector('Select timezone', lambda: ask_for_a_timezone())
|
Selector('Select timezone', lambda: ask_for_a_timezone())
|
||||||
self._menu_options['ntp'] = \
|
self._menu_options['ntp'] = \
|
||||||
Selector(
|
Selector(
|
||||||
'Set automatic time sync (NTP)',
|
_('Set automatic time sync (NTP)'),
|
||||||
lambda: self._select_ntp(),
|
lambda: self._select_ntp(),
|
||||||
default=True)
|
default=True)
|
||||||
self._menu_options['install'] = \
|
self._menu_options['install'] = \
|
||||||
|
|
@ -323,6 +332,11 @@ class GlobalMenu:
|
||||||
|
|
||||||
return missing
|
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):
|
def _set_root_password(self):
|
||||||
prompt = 'Enter root password (leave blank to disable root & create superuser): '
|
prompt = 'Enter root password (leave blank to disable root & create superuser): '
|
||||||
password = get_password(prompt=prompt)
|
password = get_password(prompt=prompt)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,82 @@
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
import gettext
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
from typing import List, Dict
|
||||||
|
|
||||||
|
|
||||||
|
class Languages:
|
||||||
|
def __init__(self):
|
||||||
|
self._mappings = self._get_language_mappings()
|
||||||
|
|
||||||
|
def _get_language_mappings(self) -> List[Dict[str, str]]:
|
||||||
|
locales_dir = Translation.get_locales_dir()
|
||||||
|
languages = Path.joinpath(locales_dir, 'languages.json')
|
||||||
|
|
||||||
|
with open(languages, 'r') as fp:
|
||||||
|
return json.load(fp)
|
||||||
|
|
||||||
|
def get_language(self, abbr: str) -> str:
|
||||||
|
for entry in self._mappings:
|
||||||
|
if entry['abbr'] == abbr:
|
||||||
|
return entry['lang']
|
||||||
|
|
||||||
|
raise ValueError(f'No language with abbrevation "{abbr}" found')
|
||||||
|
|
||||||
|
|
||||||
|
class DeferredTranslation:
|
||||||
|
def __init__(self, message):
|
||||||
|
self.message = message
|
||||||
|
|
||||||
|
def __len__(self) -> int:
|
||||||
|
return len(self.message)
|
||||||
|
|
||||||
|
def __str__(self) -> str:
|
||||||
|
translate = _
|
||||||
|
if translate is DeferredTranslation:
|
||||||
|
return self.message
|
||||||
|
return translate(self.message)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def install(cls):
|
||||||
|
import builtins
|
||||||
|
builtins._ = cls
|
||||||
|
|
||||||
|
|
||||||
|
class Translation:
|
||||||
|
def __init__(self, locales_dir):
|
||||||
|
DeferredTranslation.install()
|
||||||
|
|
||||||
|
self._languages = {}
|
||||||
|
|
||||||
|
for name in self.get_all_names():
|
||||||
|
self._languages[name] = gettext.translation('base', localedir=locales_dir, languages=[name])
|
||||||
|
|
||||||
|
def activate(self, name):
|
||||||
|
if language := self._languages.get(name, None):
|
||||||
|
language.install()
|
||||||
|
else:
|
||||||
|
raise ValueError(f'Language not supported: {name}')
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def load_nationalization(cls) -> Translation:
|
||||||
|
locales_dir = cls.get_locales_dir()
|
||||||
|
return Translation(locales_dir)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_locales_dir(cls) -> Path:
|
||||||
|
cur_path = Path(__file__).parent.parent
|
||||||
|
locales_dir = Path.joinpath(cur_path, 'locales')
|
||||||
|
return locales_dir
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_all_names(cls) -> List[str]:
|
||||||
|
locales_dir = cls.get_locales_dir()
|
||||||
|
filenames = os.listdir(locales_dir)
|
||||||
|
def_languages = filter(lambda x: len(x) == 2, filenames)
|
||||||
|
|
||||||
|
languages = Languages()
|
||||||
|
return [languages.get_language(lang) for lang in def_languages]
|
||||||
|
|
@ -28,6 +28,7 @@ from .mirrors import list_mirrors
|
||||||
|
|
||||||
# TODO: Some inconsistencies between the selection processes.
|
# TODO: Some inconsistencies between the selection processes.
|
||||||
# Some return the keys from the options, some the values?
|
# Some return the keys from the options, some the values?
|
||||||
|
from .translation import Translation
|
||||||
from .disk.validators import fs_types
|
from .disk.validators import fs_types
|
||||||
from .packages.packages import validate_package_list
|
from .packages.packages import validate_package_list
|
||||||
|
|
||||||
|
|
@ -79,7 +80,7 @@ def do_countdown() -> bool:
|
||||||
print(".", end='')
|
print(".", end='')
|
||||||
|
|
||||||
if SIG_TRIGGER:
|
if SIG_TRIGGER:
|
||||||
prompt = 'Do you really want to abort'
|
prompt = _('Do you really want to abort?')
|
||||||
choice = Menu(prompt, ['yes', 'no'], skip=False).run()
|
choice = Menu(prompt, ['yes', 'no'], skip=False).run()
|
||||||
if choice == 'yes':
|
if choice == 'yes':
|
||||||
exit(0)
|
exit(0)
|
||||||
|
|
@ -97,7 +98,7 @@ def do_countdown() -> bool:
|
||||||
|
|
||||||
def get_password(prompt :str = "Enter a password: ") -> Optional[str]:
|
def get_password(prompt :str = "Enter a password: ") -> Optional[str]:
|
||||||
while passwd := getpass.getpass(prompt):
|
while passwd := getpass.getpass(prompt):
|
||||||
passwd_verification = getpass.getpass(prompt='And one more time for verification: ')
|
passwd_verification = getpass.getpass(prompt=_('And one more time for verification: '))
|
||||||
if passwd != passwd_verification:
|
if passwd != passwd_verification:
|
||||||
log(' * Passwords did not match * ', fg='red')
|
log(' * Passwords did not match * ', fg='red')
|
||||||
continue
|
continue
|
||||||
|
|
@ -267,24 +268,26 @@ class MiniCurses:
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
|
||||||
def ask_for_swap(prompt='Would you like to use swap on zram?', forced=False):
|
def ask_for_swap():
|
||||||
|
prompt = _('Would you like to use swap on zram?')
|
||||||
choice = Menu(prompt, ['yes', 'no'], default_option='yes').run()
|
choice = Menu(prompt, ['yes', 'no'], default_option='yes').run()
|
||||||
return False if choice == 'no' else True
|
return False if choice == 'no' else True
|
||||||
|
|
||||||
|
|
||||||
def ask_ntp() -> bool:
|
def ask_ntp() -> bool:
|
||||||
prompt = 'Would you like to use automatic time synchronization (NTP) with the default time servers?'
|
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 += _('Hardware time and other post-configuration steps might be required in order for NTP to work. For more information, please check the Arch wiki')
|
||||||
choice = Menu(prompt, ['yes', 'no'], skip=False, default_option='yes').run()
|
choice = Menu(prompt, ['yes', 'no'], skip=False, default_option='yes').run()
|
||||||
return False if choice == 'no' else True
|
return False if choice == 'no' else True
|
||||||
|
|
||||||
|
|
||||||
def ask_hostname():
|
def ask_hostname():
|
||||||
hostname = input('Desired hostname for the installation: ').strip(' ')
|
hostname = input(_('Desired hostname for the installation: ').strip(' '))
|
||||||
return hostname
|
return hostname
|
||||||
|
|
||||||
|
|
||||||
def ask_for_superuser_account(prompt :str = 'Username for required superuser with sudo privileges: ', 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:
|
while 1:
|
||||||
new_user = input(prompt).strip(' ')
|
new_user = input(prompt).strip(' ')
|
||||||
|
|
||||||
|
|
@ -298,11 +301,13 @@ def ask_for_superuser_account(prompt :str = 'Username for required superuser wit
|
||||||
elif not check_for_correct_username(new_user):
|
elif not check_for_correct_username(new_user):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
password = get_password(prompt=f'Password for user {new_user}: ')
|
prompt = _('Password for user "{}"').format(new_user)
|
||||||
|
password = get_password(prompt=prompt)
|
||||||
return {new_user: {"!password": password}}
|
return {new_user: {"!password": password}}
|
||||||
|
|
||||||
|
|
||||||
def ask_for_additional_users(prompt :str = 'Any additional users to install (leave blank for no users): ') -> List[Dict[str, Dict[str, str]]]:
|
def ask_for_additional_users(prompt :str = '') -> tuple[dict[str, dict[str, str | None]], dict[str, dict[str, str | None]]]:
|
||||||
|
prompt = prompt if prompt else _('Any additional users to install (leave blank for no users): ')
|
||||||
users = {}
|
users = {}
|
||||||
superusers = {}
|
superusers = {}
|
||||||
|
|
||||||
|
|
@ -312,9 +317,14 @@ def ask_for_additional_users(prompt :str = 'Any additional users to install (lea
|
||||||
break
|
break
|
||||||
if not check_for_correct_username(new_user):
|
if not check_for_correct_username(new_user):
|
||||||
continue
|
continue
|
||||||
password = get_password(prompt=f'Password for user {new_user}: ')
|
|
||||||
|
|
||||||
if input("Should this user be a superuser (sudoer) [y/N]: ").strip(' ').lower() in ('y', 'yes'):
|
prompt = _('Password for user "{}"').format(new_user)
|
||||||
|
password = get_password(prompt=prompt)
|
||||||
|
|
||||||
|
prompt = _('Should this user be a superuser (sudoer)?')
|
||||||
|
choice = Menu(prompt, ['yes', 'no'], skip=False, default_option='no').run()
|
||||||
|
|
||||||
|
if choice == 'yes':
|
||||||
superusers[new_user] = {"!password": password}
|
superusers[new_user] = {"!password": password}
|
||||||
else:
|
else:
|
||||||
users[new_user] = {"!password": password}
|
users[new_user] = {"!password": password}
|
||||||
|
|
@ -322,12 +332,12 @@ def ask_for_additional_users(prompt :str = 'Any additional users to install (lea
|
||||||
return users, superusers
|
return users, superusers
|
||||||
|
|
||||||
|
|
||||||
def ask_for_a_timezone() -> str:
|
def ask_timezone() -> str:
|
||||||
timezones = list_timezones()
|
timezones = list_timezones()
|
||||||
default = 'UTC'
|
default = 'UTC'
|
||||||
|
|
||||||
selected_tz = Menu(
|
selected_tz = Menu(
|
||||||
f'Select a timezone or leave blank to use default "{default}"',
|
_('Select a timezone'),
|
||||||
list(timezones),
|
list(timezones),
|
||||||
skip=False,
|
skip=False,
|
||||||
default_option=default
|
default_option=default
|
||||||
|
|
@ -340,13 +350,18 @@ def ask_for_bootloader(advanced_options :bool = False) -> str:
|
||||||
bootloader = "systemd-bootctl" if has_uefi() else "grub-install"
|
bootloader = "systemd-bootctl" if has_uefi() else "grub-install"
|
||||||
if has_uefi():
|
if has_uefi():
|
||||||
if not advanced_options:
|
if not advanced_options:
|
||||||
bootloader_choice = Menu('Would you like to use GRUB as a bootloader instead of systemd-boot?', ['yes', 'no'], default_option='no').run()
|
bootloader_choice = Menu(
|
||||||
|
_('Would you like to use GRUB as a bootloader instead of systemd-boot?'),
|
||||||
|
['yes', 'no'],
|
||||||
|
default_option='no'
|
||||||
|
).run()
|
||||||
|
|
||||||
if bootloader_choice == "yes":
|
if bootloader_choice == "yes":
|
||||||
bootloader = "grub-install"
|
bootloader = "grub-install"
|
||||||
else:
|
else:
|
||||||
# We use the common names for the bootloader as the selection, and map it back to the expected values.
|
# We use the common names for the bootloader as the selection, and map it back to the expected values.
|
||||||
choices = ['systemd-boot', 'grub', 'efistub']
|
choices = ['systemd-boot', 'grub', 'efistub']
|
||||||
selection = Menu('Choose a bootloader or leave blank to use systemd-boot', choices).run()
|
selection = Menu(_('Choose a bootloader'), choices).run()
|
||||||
if selection != "":
|
if selection != "":
|
||||||
if selection == 'systemd-boot':
|
if selection == 'systemd-boot':
|
||||||
bootloader = 'systemd-bootctl'
|
bootloader = 'systemd-bootctl'
|
||||||
|
|
@ -362,7 +377,7 @@ def ask_for_audio_selection(desktop :bool = True) -> str:
|
||||||
audio = 'pipewire' if desktop else 'none'
|
audio = 'pipewire' if desktop else 'none'
|
||||||
choices = ['pipewire', 'pulseaudio'] if desktop else ['pipewire', 'pulseaudio', 'none']
|
choices = ['pipewire', 'pulseaudio'] if desktop else ['pipewire', 'pulseaudio', 'none']
|
||||||
selected_audio = Menu(
|
selected_audio = Menu(
|
||||||
f'Choose an audio server',
|
_('Choose an audio server'),
|
||||||
choices,
|
choices,
|
||||||
default_option=audio,
|
default_option=audio,
|
||||||
skip=False
|
skip=False
|
||||||
|
|
@ -373,14 +388,13 @@ def ask_for_audio_selection(desktop :bool = True) -> str:
|
||||||
# TODO: Remove? Moved?
|
# TODO: Remove? Moved?
|
||||||
def ask_additional_packages_to_install(packages :List[str] = None) -> List[str]:
|
def ask_additional_packages_to_install(packages :List[str] = None) -> List[str]:
|
||||||
# Additional packages (with some light weight error handling for invalid package names)
|
# Additional packages (with some light weight error handling for invalid package names)
|
||||||
print(
|
print(_('Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed.'))
|
||||||
"Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed.")
|
print(_('If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt.'))
|
||||||
print("If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt.")
|
|
||||||
while True:
|
while True:
|
||||||
if packages is None:
|
packages = [p for p in input(
|
||||||
packages = [p for p in input(
|
_('Write additional packages to install (space separated, leave blank to skip): ')
|
||||||
'Write additional packages to install (space separated, leave blank to skip): '
|
).split(' ') if len(p)]
|
||||||
).split(' ') if len(p)]
|
|
||||||
|
|
||||||
if len(packages):
|
if len(packages):
|
||||||
# Verify packages that were given
|
# Verify packages that were given
|
||||||
|
|
@ -401,16 +415,20 @@ def ask_to_configure_network() -> Dict[str, Any]:
|
||||||
# Optionally configure one network interface.
|
# Optionally configure one network interface.
|
||||||
# while 1:
|
# while 1:
|
||||||
# {MAC: Ifname}
|
# {MAC: Ifname}
|
||||||
|
|
||||||
|
iso_config = _('Copy ISO network configuration to installation')
|
||||||
|
network_manager = _('Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)')
|
||||||
|
|
||||||
interfaces = {
|
interfaces = {
|
||||||
'ISO-CONFIG': 'Copy ISO network configuration to installation',
|
'ISO-CONFIG': iso_config,
|
||||||
'NetworkManager': 'Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)',
|
'NetworkManager': network_manager,
|
||||||
**list_interfaces()
|
**list_interfaces()
|
||||||
}
|
}
|
||||||
|
|
||||||
nic = Menu('Select one network interface to configure', list(interfaces.values())).run()
|
nic = Menu(_('Select one network interface to configure'), list(interfaces.values())).run()
|
||||||
|
|
||||||
if nic and nic != 'Copy ISO network configuration to installation':
|
if nic and nic != iso_config:
|
||||||
if nic == 'Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)':
|
if nic == network_manager:
|
||||||
return {'nic': nic, 'NetworkManager': True}
|
return {'nic': nic, 'NetworkManager': True}
|
||||||
|
|
||||||
# Current workaround:
|
# Current workaround:
|
||||||
|
|
@ -420,15 +438,13 @@ def ask_to_configure_network() -> Dict[str, Any]:
|
||||||
modes = ['DHCP (auto detect)', 'IP (static)']
|
modes = ['DHCP (auto detect)', 'IP (static)']
|
||||||
default_mode = 'DHCP (auto detect)'
|
default_mode = 'DHCP (auto detect)'
|
||||||
|
|
||||||
mode = Menu(
|
prompt = _('Select which mode to configure for "{}" or skip to use default mode "{}"').format(nic, default_mode)
|
||||||
f'Select which mode to configure for "{nic}" or leave blank for default "{default_mode}"',
|
mode = Menu(prompt, modes, default_option=default_mode).run()
|
||||||
modes,
|
|
||||||
default_option=default_mode
|
|
||||||
).run()
|
|
||||||
|
|
||||||
if mode == 'IP (static)':
|
if mode == 'IP (static)':
|
||||||
while 1:
|
while 1:
|
||||||
ip = input(f"Enter the IP and subnet for {nic} (example: 192.168.0.5/24): ").strip()
|
prompt = _('Enter the IP and subnet for {} (example: 192.168.0.5/24): ').format(nic)
|
||||||
|
ip = input(prompt).strip()
|
||||||
# Implemented new check for correct IP/subnet input
|
# Implemented new check for correct IP/subnet input
|
||||||
try:
|
try:
|
||||||
ipaddress.ip_interface(ip)
|
ipaddress.ip_interface(ip)
|
||||||
|
|
@ -442,7 +458,7 @@ def ask_to_configure_network() -> Dict[str, Any]:
|
||||||
|
|
||||||
# Implemented new check for correct gateway IP address
|
# Implemented new check for correct gateway IP address
|
||||||
while 1:
|
while 1:
|
||||||
gateway = input('Enter your gateway (router) IP address or leave blank for none: ').strip()
|
gateway = input(_('Enter your gateway (router) IP address or leave blank for none: ')).strip()
|
||||||
try:
|
try:
|
||||||
if len(gateway) == 0:
|
if len(gateway) == 0:
|
||||||
gateway = None
|
gateway = None
|
||||||
|
|
@ -457,7 +473,9 @@ def ask_to_configure_network() -> Dict[str, Any]:
|
||||||
)
|
)
|
||||||
|
|
||||||
dns = None
|
dns = None
|
||||||
if len(dns_input := input('Enter your DNS servers (space separated, blank for none): ').strip()):
|
dns_input = input(_('Enter your DNS servers (space separated, blank for none): ')).strip()
|
||||||
|
|
||||||
|
if len(dns_input):
|
||||||
dns = dns_input.split(' ')
|
dns = dns_input.split(' ')
|
||||||
|
|
||||||
return {'nic': nic, 'dhcp': False, 'ip': ip, 'gateway': gateway, 'dns': dns}
|
return {'nic': nic, 'dhcp': False, 'ip': ip, 'gateway': gateway, 'dns': dns}
|
||||||
|
|
@ -489,7 +507,9 @@ def ask_for_main_filesystem_format(advanced_options=False):
|
||||||
if advanced_options:
|
if advanced_options:
|
||||||
options.update(advanced)
|
options.update(advanced)
|
||||||
|
|
||||||
return Menu('Select which filesystem your main partition should use', options, skip=False).run()
|
prompt = _('Select which filesystem your main partition should use')
|
||||||
|
choice = Menu(prompt, options, skip=False).run()
|
||||||
|
return choice
|
||||||
|
|
||||||
|
|
||||||
def current_partition_layout(partitions :List[Partition], with_idx :bool = False) -> Dict[str, Any]:
|
def current_partition_layout(partitions :List[Partition], with_idx :bool = False) -> Dict[str, Any]:
|
||||||
|
|
@ -533,7 +553,8 @@ def current_partition_layout(partitions :List[Partition], with_idx :bool = False
|
||||||
|
|
||||||
current_layout += f'{row[:-1]}\n'
|
current_layout += f'{row[:-1]}\n'
|
||||||
|
|
||||||
return f'\n\nCurrent partition layout:\n\n{current_layout}'
|
title = _('Current partition layout')
|
||||||
|
return f'\n\n{title}:\n\n{current_layout}'
|
||||||
|
|
||||||
|
|
||||||
def select_partition(title :str, partitions :List[Partition], multiple :bool = False) -> Union[int, List[int], None]:
|
def select_partition(title :str, partitions :List[Partition], multiple :bool = False) -> Union[int, List[int], None]:
|
||||||
|
|
@ -583,7 +604,7 @@ def manage_new_and_existing_partitions(block_device :BlockDevice) -> Dict[str, A
|
||||||
"Set desired filesystem for a partition",
|
"Set desired filesystem for a partition",
|
||||||
]
|
]
|
||||||
|
|
||||||
title = f'Select what to do with \n{block_device}'
|
title = _('Select what to do with\n{}').format(block_device)
|
||||||
|
|
||||||
# show current partition layout:
|
# show current partition layout:
|
||||||
if len(block_device_struct["partitions"]):
|
if len(block_device_struct["partitions"]):
|
||||||
|
|
@ -600,16 +621,19 @@ def manage_new_and_existing_partitions(block_device :BlockDevice) -> Dict[str, A
|
||||||
# # https://www.gnu.org/software/parted/manual/html_node/mklabel.html
|
# # https://www.gnu.org/software/parted/manual/html_node/mklabel.html
|
||||||
# name = input("Enter a desired name for the partition: ").strip()
|
# name = input("Enter a desired name for the partition: ").strip()
|
||||||
|
|
||||||
fstype = Menu('Enter a desired filesystem type for the partition', fs_types(), skip=False).run()
|
fstype = Menu(_('Enter a desired filesystem type for the partition'), fs_types(), skip=False).run()
|
||||||
|
|
||||||
|
prompt = _('Enter the start sector (percentage or block number, default: {}): ').format(block_device.first_free_sector)
|
||||||
|
start = input(prompt).strip()
|
||||||
|
|
||||||
start = input(f"Enter the start sector (percentage or block number, default: {block_device.first_free_sector}): ").strip()
|
|
||||||
if not start.strip():
|
if not start.strip():
|
||||||
start = block_device.first_free_sector
|
start = block_device.first_free_sector
|
||||||
end_suggested = block_device.first_end_sector
|
end_suggested = block_device.first_end_sector
|
||||||
else:
|
else:
|
||||||
end_suggested = '100%'
|
end_suggested = '100%'
|
||||||
|
|
||||||
end = input(f"Enter the end sector of the partition (percentage or block number, ex: {end_suggested}): ").strip()
|
prompt = _('Enter the end sector of the partition (percentage or block number, ex: {}): "').format(end_suggested)
|
||||||
|
end = input(prompt).strip()
|
||||||
|
|
||||||
if not end.strip():
|
if not end.strip():
|
||||||
end = end_suggested
|
end = end_suggested
|
||||||
|
|
@ -634,7 +658,10 @@ def manage_new_and_existing_partitions(block_device :BlockDevice) -> Dict[str, A
|
||||||
continue
|
continue
|
||||||
elif task[:len("Suggest partition layout")] == "Suggest partition layout":
|
elif task[:len("Suggest partition layout")] == "Suggest partition layout":
|
||||||
if len(block_device_struct["partitions"]):
|
if len(block_device_struct["partitions"]):
|
||||||
if input(f"{block_device} contains queued partitions, this will remove those, are you sure? y/N: ").strip().lower() in ('', 'n'):
|
prompt = _('{} contains queued partitions, this will remove those, are you sure?').format(block_device)
|
||||||
|
choice = Menu(prompt, ['yes', 'no'], default_option='no').run()
|
||||||
|
|
||||||
|
if choice == 'no':
|
||||||
continue
|
continue
|
||||||
|
|
||||||
block_device_struct.update(suggest_single_disk_layout(block_device)[block_device.path])
|
block_device_struct.update(suggest_single_disk_layout(block_device)[block_device.path])
|
||||||
|
|
@ -644,7 +671,7 @@ def manage_new_and_existing_partitions(block_device :BlockDevice) -> Dict[str, A
|
||||||
current_layout = current_partition_layout(block_device_struct['partitions'], with_idx=True)
|
current_layout = current_partition_layout(block_device_struct['partitions'], with_idx=True)
|
||||||
|
|
||||||
if task == "Delete a partition":
|
if task == "Delete a partition":
|
||||||
title = f'{current_layout}\n\nSelect by index which partitions to delete'
|
title = _('{}\n\nSelect by index which partitions to delete').format(current_layout)
|
||||||
to_delete = select_partition(title, block_device_struct["partitions"], multiple=True)
|
to_delete = select_partition(title, block_device_struct["partitions"], multiple=True)
|
||||||
|
|
||||||
if to_delete:
|
if to_delete:
|
||||||
|
|
@ -652,12 +679,12 @@ def manage_new_and_existing_partitions(block_device :BlockDevice) -> Dict[str, A
|
||||||
elif task == "Clear/Delete all partitions":
|
elif task == "Clear/Delete all partitions":
|
||||||
block_device_struct["partitions"] = []
|
block_device_struct["partitions"] = []
|
||||||
elif task == "Assign mount-point for a partition":
|
elif task == "Assign mount-point for a partition":
|
||||||
title = f'{current_layout}\n\nSelect by index which partition to mount where'
|
title = _('{}\n\nSelect by index which partition to mount where').format(current_layout)
|
||||||
partition = select_partition(title, block_device_struct["partitions"])
|
partition = select_partition(title, block_device_struct["partitions"])
|
||||||
|
|
||||||
if partition is not None:
|
if partition is not None:
|
||||||
print(' * Partition mount-points are relative to inside the installation, the boot would be /boot as an example.')
|
print(_(' * Partition mount-points are relative to inside the installation, the boot would be /boot as an example.'))
|
||||||
mountpoint = input('Select where to mount partition (leave blank to remove mountpoint): ').strip()
|
mountpoint = input(_('Select where to mount partition (leave blank to remove mountpoint): ')).strip()
|
||||||
|
|
||||||
if len(mountpoint):
|
if len(mountpoint):
|
||||||
block_device_struct["partitions"][partition]['mountpoint'] = mountpoint
|
block_device_struct["partitions"][partition]['mountpoint'] = mountpoint
|
||||||
|
|
@ -668,7 +695,7 @@ def manage_new_and_existing_partitions(block_device :BlockDevice) -> Dict[str, A
|
||||||
del(block_device_struct["partitions"][partition]['mountpoint'])
|
del(block_device_struct["partitions"][partition]['mountpoint'])
|
||||||
|
|
||||||
elif task == "Mark/Unmark a partition to be formatted (wipes data)":
|
elif task == "Mark/Unmark a partition to be formatted (wipes data)":
|
||||||
title = f'{current_layout}\n\nSelect which partition to mask for formatting'
|
title = _('{}\n\nSelect which partition to mask for formatting').format(current_layout)
|
||||||
partition = select_partition(title, block_device_struct["partitions"])
|
partition = select_partition(title, block_device_struct["partitions"])
|
||||||
|
|
||||||
if partition is not None:
|
if partition is not None:
|
||||||
|
|
@ -679,7 +706,7 @@ def manage_new_and_existing_partitions(block_device :BlockDevice) -> Dict[str, A
|
||||||
if not block_device_struct["partitions"][partition].get('filesystem', None):
|
if not block_device_struct["partitions"][partition].get('filesystem', None):
|
||||||
block_device_struct["partitions"][partition]['filesystem'] = {}
|
block_device_struct["partitions"][partition]['filesystem'] = {}
|
||||||
|
|
||||||
fstype = Menu('Enter a desired filesystem type for the partition', fs_types(), skip=False).run()
|
fstype = Menu(_('Enter a desired filesystem type for the partition'), fs_types(), skip=False).run()
|
||||||
|
|
||||||
block_device_struct["partitions"][partition]['filesystem']['format'] = fstype
|
block_device_struct["partitions"][partition]['filesystem']['format'] = fstype
|
||||||
|
|
||||||
|
|
@ -687,7 +714,7 @@ def manage_new_and_existing_partitions(block_device :BlockDevice) -> Dict[str, A
|
||||||
block_device_struct["partitions"][partition]['wipe'] = not block_device_struct["partitions"][partition].get('wipe', False)
|
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/Unmark a partition as encrypted":
|
||||||
title = f'{current_layout}\n\nSelect which partition to mark as encrypted'
|
title = _('{}\n\nSelect which partition to mark as encrypted').format(current_layout)
|
||||||
partition = select_partition(title, block_device_struct["partitions"])
|
partition = select_partition(title, block_device_struct["partitions"])
|
||||||
|
|
||||||
if partition is not None:
|
if partition is not None:
|
||||||
|
|
@ -695,21 +722,21 @@ def manage_new_and_existing_partitions(block_device :BlockDevice) -> Dict[str, A
|
||||||
block_device_struct["partitions"][partition]['encrypted'] = not block_device_struct["partitions"][partition].get('encrypted', False)
|
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/Unmark a partition as bootable (automatic for /boot)":
|
||||||
title = f'{current_layout}\n\nSelect which partition to mark as bootable'
|
title = _('{}\n\nSelect which partition to mark as bootable').format(current_layout)
|
||||||
partition = select_partition(title, block_device_struct["partitions"])
|
partition = select_partition(title, block_device_struct["partitions"])
|
||||||
|
|
||||||
if partition is not None:
|
if partition is not None:
|
||||||
block_device_struct["partitions"][partition]['boot'] = not block_device_struct["partitions"][partition].get('boot', False)
|
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 desired filesystem for a partition":
|
||||||
title = f'{current_layout}\n\nSelect which partition to set a filesystem on'
|
title = _('{}\n\nSelect which partition to set a filesystem on').format(current_layout)
|
||||||
partition = select_partition(title, block_device_struct["partitions"])
|
partition = select_partition(title, block_device_struct["partitions"])
|
||||||
|
|
||||||
if partition is not None:
|
if partition is not None:
|
||||||
if not block_device_struct["partitions"][partition].get('filesystem', None):
|
if not block_device_struct["partitions"][partition].get('filesystem', None):
|
||||||
block_device_struct["partitions"][partition]['filesystem'] = {}
|
block_device_struct["partitions"][partition]['filesystem'] = {}
|
||||||
|
|
||||||
fstype_title = 'Enter a desired filesystem type for the partition: '
|
fstype_title = _('Enter a desired filesystem type for the partition: ')
|
||||||
fstype = Menu(fstype_title, fs_types(), skip=False).run()
|
fstype = Menu(fstype_title, fs_types(), skip=False).run()
|
||||||
|
|
||||||
block_device_struct["partitions"][partition]['filesystem']['format'] = fstype
|
block_device_struct["partitions"][partition]['filesystem']['format'] = fstype
|
||||||
|
|
@ -728,15 +755,20 @@ def select_individual_blockdevice_usage(block_devices: list) -> Dict[str, Any]:
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def select_archinstall_language(default='English'):
|
||||||
|
languages = Translation.get_all_names()
|
||||||
|
language = Menu(_('Select Archinstall language'), languages, default_option=default).run()
|
||||||
|
return language
|
||||||
|
|
||||||
|
|
||||||
def select_disk_layout(block_devices :list, advanced_options=False) -> Dict[str, Any]:
|
def select_disk_layout(block_devices :list, advanced_options=False) -> Dict[str, Any]:
|
||||||
modes = [
|
wipe_mode = _('Wipe all selected drives and use a best-effort default partition layout')
|
||||||
"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)')
|
||||||
"Select what to do with each individual drive (followed by partition usage)"
|
modes = [wipe_mode, custome_mode]
|
||||||
]
|
|
||||||
|
|
||||||
mode = Menu('Select what you wish to do with the selected block devices', modes, skip=False).run()
|
mode = Menu(_('Select what you wish to do with the selected block devices'), modes, skip=False).run()
|
||||||
|
|
||||||
if mode == 'Wipe all selected drives and use a best-effort default partition layout':
|
if mode == wipe_mode:
|
||||||
return get_default_partition_layout(block_devices, advanced_options)
|
return get_default_partition_layout(block_devices, advanced_options)
|
||||||
else:
|
else:
|
||||||
return select_individual_blockdevice_usage(block_devices)
|
return select_individual_blockdevice_usage(block_devices)
|
||||||
|
|
@ -787,8 +819,7 @@ def select_profile() -> Optional[str]:
|
||||||
option = f'{profile.profile}: {description}'
|
option = f'{profile.profile}: {description}'
|
||||||
options[option] = profile
|
options[option] = profile
|
||||||
|
|
||||||
title = 'This is a list of pre-programmed profiles, ' \
|
title = _('This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments')
|
||||||
'they might make it easier to install things like desktop environments'
|
|
||||||
|
|
||||||
selection = Menu(title=title, p_options=list(options.keys())).run()
|
selection = Menu(title=title, p_options=list(options.keys())).run()
|
||||||
|
|
||||||
|
|
@ -812,7 +843,7 @@ def select_language(default_value :str) -> str:
|
||||||
# allows for searching anyways
|
# allows for searching anyways
|
||||||
sorted_kb_lang = sorted(sorted(list(kb_lang)), key=len)
|
sorted_kb_lang = sorted(sorted(list(kb_lang)), key=len)
|
||||||
|
|
||||||
selected_lang = Menu('Select Keyboard layout', sorted_kb_lang, default_option=default_value, sort=False).run()
|
selected_lang = Menu(_('Select Keyboard layout'), sorted_kb_lang, default_option=default_value, sort=False).run()
|
||||||
return selected_lang
|
return selected_lang
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -827,7 +858,7 @@ def select_mirror_regions() -> Dict[str, Any]:
|
||||||
|
|
||||||
mirrors = list_mirrors()
|
mirrors = list_mirrors()
|
||||||
selected_mirror = Menu(
|
selected_mirror = Menu(
|
||||||
'Select one of the regions to download packages from',
|
_('Select one of the regions to download packages from'),
|
||||||
list(mirrors.keys()),
|
list(mirrors.keys()),
|
||||||
multi=True
|
multi=True
|
||||||
).run()
|
).run()
|
||||||
|
|
@ -849,7 +880,7 @@ def select_harddrives() -> Optional[str]:
|
||||||
options = {f'{option}': option for option in hard_drives}
|
options = {f'{option}': option for option in hard_drives}
|
||||||
|
|
||||||
selected_harddrive = Menu(
|
selected_harddrive = Menu(
|
||||||
'Select one or more hard drives to use and configure',
|
_('Select one or more hard drives to use and configure'),
|
||||||
list(options.keys()),
|
list(options.keys()),
|
||||||
multi=True
|
multi=True
|
||||||
).run()
|
).run()
|
||||||
|
|
@ -876,18 +907,18 @@ def select_driver(options :Dict[str, Any] = AVAILABLE_GFX_DRIVERS, force_ask :bo
|
||||||
title = ''
|
title = ''
|
||||||
|
|
||||||
if has_amd_graphics():
|
if has_amd_graphics():
|
||||||
title += 'For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options.\n'
|
title += _('For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options.') + '\n'
|
||||||
if has_intel_graphics():
|
if has_intel_graphics():
|
||||||
title += 'For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n'
|
title += _('For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n')
|
||||||
if has_nvidia_graphics():
|
if has_nvidia_graphics():
|
||||||
title += 'For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n'
|
title += _('For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n')
|
||||||
|
|
||||||
if not arguments.get('gfx_driver', None) or force_ask:
|
if not arguments.get('gfx_driver', None) or force_ask:
|
||||||
title += '\n\nSelect a graphics driver or leave blank to install all open-source drivers'
|
title += _('\n\nSelect a graphics driver or leave blank to install all open-source drivers')
|
||||||
arguments['gfx_driver'] = Menu(title, drivers).run()
|
arguments['gfx_driver'] = Menu(title, drivers).run()
|
||||||
|
|
||||||
if arguments.get('gfx_driver', None) is None:
|
if arguments.get('gfx_driver', None) is None:
|
||||||
arguments['gfx_driver'] = "All open-source (default)"
|
arguments['gfx_driver'] = _("All open-source (default)")
|
||||||
|
|
||||||
return options.get(arguments.get('gfx_driver'))
|
return options.get(arguments.get('gfx_driver'))
|
||||||
|
|
||||||
|
|
@ -906,7 +937,7 @@ def select_kernel() -> List[str]:
|
||||||
default_kernel = "linux"
|
default_kernel = "linux"
|
||||||
|
|
||||||
selected_kernels = Menu(
|
selected_kernels = Menu(
|
||||||
f'Choose which kernels to use or leave blank for default "{default_kernel}"',
|
_('Choose which kernels to use or leave blank for default "{}"').format(default_kernel),
|
||||||
kernels,
|
kernels,
|
||||||
sort=True,
|
sort=True,
|
||||||
multi=True,
|
multi=True,
|
||||||
|
|
@ -920,7 +951,7 @@ def select_locale_lang(default):
|
||||||
locale_lang = set([locale.split()[0] for locale in locales])
|
locale_lang = set([locale.split()[0] for locale in locales])
|
||||||
|
|
||||||
selected_locale = Menu(
|
selected_locale = Menu(
|
||||||
f'Choose which locale language to use',
|
_('Choose which locale language to use'),
|
||||||
locale_lang,
|
locale_lang,
|
||||||
sort=True,
|
sort=True,
|
||||||
default_option=default
|
default_option=default
|
||||||
|
|
@ -934,7 +965,7 @@ def select_locale_enc(default):
|
||||||
locale_enc = set([locale.split()[1] for locale in locales])
|
locale_enc = set([locale.split()[1] for locale in locales])
|
||||||
|
|
||||||
selected_locale = Menu(
|
selected_locale = Menu(
|
||||||
f'Choose which locale encoding to use',
|
_('Choose which locale encoding to use'),
|
||||||
locale_enc,
|
locale_enc,
|
||||||
sort=True,
|
sort=True,
|
||||||
default_option=default
|
default_option=default
|
||||||
|
|
@ -942,8 +973,9 @@ def select_locale_enc(default):
|
||||||
|
|
||||||
return selected_locale
|
return selected_locale
|
||||||
|
|
||||||
|
|
||||||
def generic_select(p_options :Union[list,dict],
|
def generic_select(p_options :Union[list,dict],
|
||||||
input_text :str = "Select one of the values shown below: ",
|
input_text :str = '',
|
||||||
allow_empty_input :bool = True,
|
allow_empty_input :bool = True,
|
||||||
options_output :bool = True, # function not available
|
options_output :bool = True, # function not available
|
||||||
sort :bool = False,
|
sort :bool = False,
|
||||||
|
|
@ -974,6 +1006,8 @@ def generic_select(p_options :Union[list,dict],
|
||||||
log(f"invalid parameter at Menu() call was at <{sys._getframe(1).f_code.co_name}>",level=logging.WARNING)
|
log(f"invalid parameter at Menu() call was at <{sys._getframe(1).f_code.co_name}>",level=logging.WARNING)
|
||||||
raise RequirementError("generic_select() requires an iterable as option.")
|
raise RequirementError("generic_select() requires an iterable as option.")
|
||||||
|
|
||||||
|
input_text = input_text if input_text else _('Select one of the values shown below: ')
|
||||||
|
|
||||||
if isinstance(p_options,dict):
|
if isinstance(p_options,dict):
|
||||||
options = list(p_options.values())
|
options = list(p_options.values())
|
||||||
else:
|
else:
|
||||||
|
|
@ -1008,11 +1042,13 @@ def generic_select(p_options :Union[list,dict],
|
||||||
|
|
||||||
|
|
||||||
def generic_multi_select(p_options :Union[list,dict],
|
def generic_multi_select(p_options :Union[list,dict],
|
||||||
text :str = "Select one or more of the options below: ",
|
text :str = '',
|
||||||
sort :bool = False,
|
sort :bool = False,
|
||||||
default :Any = None,
|
default :Any = None,
|
||||||
allow_empty :bool = False) -> Any:
|
allow_empty :bool = False) -> Any:
|
||||||
|
|
||||||
|
text = text if text else _("Select one or more of the options below: ")
|
||||||
|
|
||||||
return generic_select(p_options,
|
return generic_select(p_options,
|
||||||
input_text=text,
|
input_text=text,
|
||||||
allow_empty_input=allow_empty,
|
allow_empty_input=allow_empty,
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
# Nationalization
|
||||||
|
|
||||||
|
Archinstall supports multiple languages, which depend on translations coming from the community :)
|
||||||
|
|
||||||
|
New languages can be added simply by creating a new folder with the proper language abbrevation (see list `languages.json` if unsure).
|
||||||
|
Run the following command to create a new template for a language
|
||||||
|
```
|
||||||
|
mkdir -p <abbr>/LC_MESSAGES/ && touch <abbr>/LC_MESSAGES/base.po
|
||||||
|
```
|
||||||
|
|
||||||
|
After that run the script `./locales_generator.sh` it will automatically populate the new `base.po` file with the strings that
|
||||||
|
need to be translated into the new language.
|
||||||
|
For example the `base.po` might contain something like the following now
|
||||||
|
```
|
||||||
|
#: lib/user_interaction.py:82
|
||||||
|
msgid "Do you really want to abort?"
|
||||||
|
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
|
||||||
|
|
||||||
|
```
|
||||||
|
#: lib/user_interaction.py:82
|
||||||
|
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 that you're all ready to go and enjoy Archinstall in the new language :)
|
||||||
|
|
||||||
|
|
@ -0,0 +1,354 @@
|
||||||
|
#: lib/user_interaction.py:82 lib/user_interaction.py:82
|
||||||
|
msgid "Do you really want to abort?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:100 lib/user_interaction.py:100
|
||||||
|
msgid "And one more time for verification: "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:271 lib/user_interaction.py:271
|
||||||
|
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
|
||||||
|
msgid "Desired hostname for the installation: "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:289 lib/user_interaction.py:289
|
||||||
|
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
|
||||||
|
msgid "Any additional users to install (leave blank for no users): "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:323 lib/user_interaction.py:323
|
||||||
|
msgid "Should this user be a superuser (sudoer)?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:339 lib/user_interaction.py:339
|
||||||
|
msgid "Select a timezone"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:353 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 lib/user_interaction.py:363
|
||||||
|
msgid "Choose a bootloader"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:379 lib/user_interaction.py:379
|
||||||
|
msgid "Choose an audio server"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:390 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: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 lib/user_interaction.py:395
|
||||||
|
msgid ""
|
||||||
|
"Write additional packages to install (space separated, leave blank to skip): "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:418 lib/user_interaction.py:418
|
||||||
|
msgid "Copy ISO network configuration to installation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:419 lib/user_interaction.py:419
|
||||||
|
msgid ""
|
||||||
|
"Use NetworkManager (necessary to configure internet graphically in GNOME and "
|
||||||
|
"KDE)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:427 lib/user_interaction.py:427
|
||||||
|
msgid "Select one network interface to configure"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:440 lib/user_interaction.py:440
|
||||||
|
msgid ""
|
||||||
|
"Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:445 lib/user_interaction.py:445
|
||||||
|
msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:460 lib/user_interaction.py:460
|
||||||
|
msgid "Enter your gateway (router) IP address or leave blank for none: "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:475 lib/user_interaction.py:475
|
||||||
|
msgid "Enter your DNS servers (space separated, blank for none): "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:509 lib/user_interaction.py:509
|
||||||
|
msgid "Select which filesystem your main partition should use"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:555 lib/user_interaction.py:555
|
||||||
|
msgid "Current partition layout"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:606 lib/user_interaction.py:606
|
||||||
|
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
|
||||||
|
msgid "Enter a desired filesystem type for the partition"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:625 lib/user_interaction.py:625
|
||||||
|
msgid "Enter the start sector (percentage or block number, default: {}): "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:634 lib/user_interaction.py:634
|
||||||
|
msgid ""
|
||||||
|
"Enter the end sector of the partition (percentage or block number, ex: {}): "
|
||||||
|
"\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:660 lib/user_interaction.py:660
|
||||||
|
msgid "{} contains queued partitions, this will remove those, are you sure?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:673 lib/user_interaction.py:673
|
||||||
|
msgid ""
|
||||||
|
"{}\n"
|
||||||
|
"\n"
|
||||||
|
"Select by index which partitions to delete"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:681 lib/user_interaction.py:681
|
||||||
|
msgid ""
|
||||||
|
"{}\n"
|
||||||
|
"\n"
|
||||||
|
"Select by index which partition to mount where"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:685 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:686
|
||||||
|
msgid "Select where to mount partition (leave blank to remove mountpoint): "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:697 lib/user_interaction.py:697
|
||||||
|
msgid ""
|
||||||
|
"{}\n"
|
||||||
|
"\n"
|
||||||
|
"Select which partition to mask for formatting"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:716 lib/user_interaction.py:716
|
||||||
|
msgid ""
|
||||||
|
"{}\n"
|
||||||
|
"\n"
|
||||||
|
"Select which partition to mark as encrypted"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:724 lib/user_interaction.py:724
|
||||||
|
msgid ""
|
||||||
|
"{}\n"
|
||||||
|
"\n"
|
||||||
|
"Select which partition to mark as bootable"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:731 lib/user_interaction.py:731
|
||||||
|
msgid ""
|
||||||
|
"{}\n"
|
||||||
|
"\n"
|
||||||
|
"Select which partition to set a filesystem on"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:738 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
|
||||||
|
#: lib/user_interaction.py:759 lib/menu/selection_menu.py:116
|
||||||
|
msgid "Select Archinstall language"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:764 lib/user_interaction.py:764
|
||||||
|
msgid "Wipe all selected drives and use a best-effort default partition layout"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:765 lib/user_interaction.py:765
|
||||||
|
msgid ""
|
||||||
|
"Select what to do with each individual drive (followed by partition usage)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:768 lib/user_interaction.py:768
|
||||||
|
msgid "Select what you wish to do with the selected block devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:821 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 lib/user_interaction.py:846
|
||||||
|
msgid "Select Keyboard layout"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:861 lib/user_interaction.py:861
|
||||||
|
msgid "Select one of the regions to download packages from"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:883 lib/user_interaction.py:883
|
||||||
|
msgid "Select one or more hard drives to use and configure"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:910 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 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 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 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 lib/user_interaction.py:921
|
||||||
|
msgid "All open-source (default)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:940 lib/user_interaction.py:940
|
||||||
|
msgid "Choose which kernels to use or leave blank for default \"{}\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:954 lib/user_interaction.py:954
|
||||||
|
msgid "Choose which locale language to use"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:968 lib/user_interaction.py:968
|
||||||
|
msgid "Choose which locale encoding to use"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:1009 lib/user_interaction.py:1009
|
||||||
|
msgid "Select one of the values shown below: "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/user_interaction.py:1050 lib/user_interaction.py:1050
|
||||||
|
msgid "Select one or more of the options below: "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/menu/selection_menu.py:122 lib/menu/selection_menu.py:122
|
||||||
|
msgid "Select keyboard layout"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/menu/selection_menu.py:125 lib/menu/selection_menu.py:125
|
||||||
|
msgid "Select mirror region"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/menu/selection_menu.py:130 lib/menu/selection_menu.py:130
|
||||||
|
msgid "Select locale language"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/menu/selection_menu.py:132 lib/menu/selection_menu.py:132
|
||||||
|
msgid "Select locale encoding"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/menu/selection_menu.py:135 lib/menu/selection_menu.py:135
|
||||||
|
msgid "Select harddrives"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/menu/selection_menu.py:139 lib/menu/selection_menu.py:139
|
||||||
|
msgid "Select disk layout"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/menu/selection_menu.py:147 lib/menu/selection_menu.py:147
|
||||||
|
msgid "Set encryption password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/menu/selection_menu.py:153 lib/menu/selection_menu.py:153
|
||||||
|
msgid "Use swap"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/menu/selection_menu.py:158 lib/menu/selection_menu.py:158
|
||||||
|
msgid "Select bootloader"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/menu/selection_menu.py:164 lib/menu/selection_menu.py:164
|
||||||
|
msgid "Set root password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/menu/selection_menu.py:169 lib/menu/selection_menu.py:169
|
||||||
|
msgid "Specify superuser account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/menu/selection_menu.py:175 lib/menu/selection_menu.py:175
|
||||||
|
msgid "Specify user account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/menu/selection_menu.py:181 lib/menu/selection_menu.py:181
|
||||||
|
msgid "Specify profile"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/menu/selection_menu.py:186 lib/menu/selection_menu.py:186
|
||||||
|
msgid "Select audio"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/menu/selection_menu.py:190 lib/menu/selection_menu.py:190
|
||||||
|
msgid "Select kernels"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/menu/selection_menu.py:195 lib/menu/selection_menu.py:195
|
||||||
|
msgid "Additional packages to install"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/menu/selection_menu.py:200 lib/menu/selection_menu.py:200
|
||||||
|
msgid "Configure network"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/menu/selection_menu.py:208 lib/menu/selection_menu.py:208
|
||||||
|
msgid "Set automatic time sync (NTP)"
|
||||||
|
msgstr ""
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,351 @@
|
||||||
|
#: 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 "Sprache fuer Archinstall"
|
||||||
|
|
||||||
|
#: 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 ""
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,351 @@
|
||||||
|
#: 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 ""
|
||||||
|
|
@ -0,0 +1,359 @@
|
||||||
|
#: 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.
|
|
@ -0,0 +1,354 @@
|
||||||
|
#: 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"
|
||||||
|
|
@ -0,0 +1,362 @@
|
||||||
|
#: 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"
|
||||||
|
|
@ -0,0 +1,184 @@
|
||||||
|
[{"abbr": "aa", "lang": "Afar"},
|
||||||
|
{"abbr": "ab", "lang": "Abkhazian"},
|
||||||
|
{"abbr": "af", "lang": "Afrikaans"},
|
||||||
|
{"abbr": "ak", "lang": "Akan"},
|
||||||
|
{"abbr": "am", "lang": "Amharic"},
|
||||||
|
{"abbr": "ar", "lang": "Arabic"},
|
||||||
|
{"abbr": "an", "lang": "Aragonese"},
|
||||||
|
{"abbr": "as", "lang": "Assamese"},
|
||||||
|
{"abbr": "av", "lang": "Avaric"},
|
||||||
|
{"abbr": "ae", "lang": "Avestan"},
|
||||||
|
{"abbr": "ay", "lang": "Aymara"},
|
||||||
|
{"abbr": "az", "lang": "Azerbaijani"},
|
||||||
|
{"abbr": "ba", "lang": "Bashkir"},
|
||||||
|
{"abbr": "bm", "lang": "Bambara"},
|
||||||
|
{"abbr": "be", "lang": "Belarusian"},
|
||||||
|
{"abbr": "bn", "lang": "Bengali"},
|
||||||
|
{"abbr": "bi", "lang": "Bislama"},
|
||||||
|
{"abbr": "bo", "lang": "Tibetan"},
|
||||||
|
{"abbr": "bs", "lang": "Bosnian"},
|
||||||
|
{"abbr": "br", "lang": "Breton"},
|
||||||
|
{"abbr": "bg", "lang": "Bulgarian"},
|
||||||
|
{"abbr": "ca", "lang": "Catalan"},
|
||||||
|
{"abbr": "cs", "lang": "Czech"},
|
||||||
|
{"abbr": "ch", "lang": "Chamorro"},
|
||||||
|
{"abbr": "ce", "lang": "Chechen"},
|
||||||
|
{"abbr": "cu", "lang": "Church Slavic"},
|
||||||
|
{"abbr": "cv", "lang": "Chuvash"},
|
||||||
|
{"abbr": "kw", "lang": "Cornish"},
|
||||||
|
{"abbr": "co", "lang": "Corsican"},
|
||||||
|
{"abbr": "cr", "lang": "Cree"},
|
||||||
|
{"abbr": "cy", "lang": "Welsh"},
|
||||||
|
{"abbr": "da", "lang": "Danish"},
|
||||||
|
{"abbr": "de", "lang": "German"},
|
||||||
|
{"abbr": "dv", "lang": "Dhivehi"},
|
||||||
|
{"abbr": "dz", "lang": "Dzongkha"},
|
||||||
|
{"abbr": "el", "lang": "Modern Greek (1453-)"},
|
||||||
|
{"abbr": "en", "lang": "English"},
|
||||||
|
{"abbr": "eo", "lang": "Esperanto"},
|
||||||
|
{"abbr": "et", "lang": "Estonian"},
|
||||||
|
{"abbr": "eu", "lang": "Basque"},
|
||||||
|
{"abbr": "ee", "lang": "Ewe"},
|
||||||
|
{"abbr": "fo", "lang": "Faroese"},
|
||||||
|
{"abbr": "fa", "lang": "Persian"},
|
||||||
|
{"abbr": "fj", "lang": "Fijian"},
|
||||||
|
{"abbr": "fi", "lang": "Finnish"},
|
||||||
|
{"abbr": "fr", "lang": "French"},
|
||||||
|
{"abbr": "fy", "lang": "Western Frisian"},
|
||||||
|
{"abbr": "ff", "lang": "Fulah"},
|
||||||
|
{"abbr": "gd", "lang": "Scottish Gaelic"},
|
||||||
|
{"abbr": "ga", "lang": "Irish"},
|
||||||
|
{"abbr": "gl", "lang": "Galician"},
|
||||||
|
{"abbr": "gv", "lang": "Manx"},
|
||||||
|
{"abbr": "gn", "lang": "Guarani"},
|
||||||
|
{"abbr": "gu", "lang": "Gujarati"},
|
||||||
|
{"abbr": "ht", "lang": "Haitian"},
|
||||||
|
{"abbr": "ha", "lang": "Hausa"},
|
||||||
|
{"abbr": "sh", "lang": "Serbo-Croatian"},
|
||||||
|
{"abbr": "he", "lang": "Hebrew"},
|
||||||
|
{"abbr": "hz", "lang": "Herero"},
|
||||||
|
{"abbr": "hi", "lang": "Hindi"},
|
||||||
|
{"abbr": "ho", "lang": "Hiri Motu"},
|
||||||
|
{"abbr": "hr", "lang": "Croatian"},
|
||||||
|
{"abbr": "hu", "lang": "Hungarian"},
|
||||||
|
{"abbr": "hy", "lang": "Armenian"},
|
||||||
|
{"abbr": "ig", "lang": "Igbo"},
|
||||||
|
{"abbr": "io", "lang": "Ido"},
|
||||||
|
{"abbr": "ii", "lang": "Sichuan Yi"},
|
||||||
|
{"abbr": "iu", "lang": "Inuktitut"},
|
||||||
|
{"abbr": "ie", "lang": "Interlingue"},
|
||||||
|
{"abbr": "ia", "lang": "Interlingua (International Auxiliary Language Association)"},
|
||||||
|
{"abbr": "id", "lang": "Indonesian"},
|
||||||
|
{"abbr": "ik", "lang": "Inupiaq"},
|
||||||
|
{"abbr": "is", "lang": "Icelandic"},
|
||||||
|
{"abbr": "it", "lang": "Italian"},
|
||||||
|
{"abbr": "jv", "lang": "Javanese"},
|
||||||
|
{"abbr": "ja", "lang": "Japanese"},
|
||||||
|
{"abbr": "kl", "lang": "Kalaallisut"},
|
||||||
|
{"abbr": "kn", "lang": "Kannada"},
|
||||||
|
{"abbr": "ks", "lang": "Kashmiri"},
|
||||||
|
{"abbr": "ka", "lang": "Georgian"},
|
||||||
|
{"abbr": "kr", "lang": "Kanuri"},
|
||||||
|
{"abbr": "kk", "lang": "Kazakh"},
|
||||||
|
{"abbr": "km", "lang": "Central Khmer"},
|
||||||
|
{"abbr": "ki", "lang": "Kikuyu"},
|
||||||
|
{"abbr": "rw", "lang": "Kinyarwanda"},
|
||||||
|
{"abbr": "ky", "lang": "Kirghiz"},
|
||||||
|
{"abbr": "kv", "lang": "Komi"},
|
||||||
|
{"abbr": "kg", "lang": "Kongo"},
|
||||||
|
{"abbr": "ko", "lang": "Korean"},
|
||||||
|
{"abbr": "kj", "lang": "Kuanyama"},
|
||||||
|
{"abbr": "ku", "lang": "Kurdish"},
|
||||||
|
{"abbr": "lo", "lang": "Lao"},
|
||||||
|
{"abbr": "la", "lang": "Latin"},
|
||||||
|
{"abbr": "lv", "lang": "Latvian"},
|
||||||
|
{"abbr": "li", "lang": "Limburgan"},
|
||||||
|
{"abbr": "ln", "lang": "Lingala"},
|
||||||
|
{"abbr": "lt", "lang": "Lithuanian"},
|
||||||
|
{"abbr": "lb", "lang": "Luxembourgish"},
|
||||||
|
{"abbr": "lu", "lang": "Luba-Katanga"},
|
||||||
|
{"abbr": "lg", "lang": "Ganda"},
|
||||||
|
{"abbr": "mh", "lang": "Marshallese"},
|
||||||
|
{"abbr": "ml", "lang": "Malayalam"},
|
||||||
|
{"abbr": "mr", "lang": "Marathi"},
|
||||||
|
{"abbr": "mk", "lang": "Macedonian"},
|
||||||
|
{"abbr": "mg", "lang": "Malagasy"},
|
||||||
|
{"abbr": "mt", "lang": "Maltese"},
|
||||||
|
{"abbr": "mn", "lang": "Mongolian"},
|
||||||
|
{"abbr": "mi", "lang": "Maori"},
|
||||||
|
{"abbr": "ms", "lang": "Malay (macrolanguage)"},
|
||||||
|
{"abbr": "my", "lang": "Burmese"},
|
||||||
|
{"abbr": "na", "lang": "Nauru"},
|
||||||
|
{"abbr": "nv", "lang": "Navajo"},
|
||||||
|
{"abbr": "nr", "lang": "South Ndebele"},
|
||||||
|
{"abbr": "nd", "lang": "North Ndebele"},
|
||||||
|
{"abbr": "ng", "lang": "Ndonga"},
|
||||||
|
{"abbr": "ne", "lang": "Nepali (macrolanguage)"},
|
||||||
|
{"abbr": "nl", "lang": "Dutch"},
|
||||||
|
{"abbr": "nn", "lang": "Norwegian Nynorsk"},
|
||||||
|
{"abbr": "nb", "lang": "Norwegian Bokmål"},
|
||||||
|
{"abbr": "no", "lang": "Norwegian"},
|
||||||
|
{"abbr": "ny", "lang": "Nyanja"},
|
||||||
|
{"abbr": "oc", "lang": "Occitan (post 1500)"},
|
||||||
|
{"abbr": "oj", "lang": "Ojibwa"},
|
||||||
|
{"abbr": "or", "lang": "Oriya (macrolanguage)"},
|
||||||
|
{"abbr": "om", "lang": "Oromo"},
|
||||||
|
{"abbr": "os", "lang": "Ossetian"},
|
||||||
|
{"abbr": "pa", "lang": "Panjabi"},
|
||||||
|
{"abbr": "pi", "lang": "Pali"},
|
||||||
|
{"abbr": "pl", "lang": "Polish"},
|
||||||
|
{"abbr": "pt", "lang": "Portuguese"},
|
||||||
|
{"abbr": "ps", "lang": "Pushto"},
|
||||||
|
{"abbr": "qu", "lang": "Quechua"},
|
||||||
|
{"abbr": "rm", "lang": "Romansh"},
|
||||||
|
{"abbr": "ro", "lang": "Romanian"},
|
||||||
|
{"abbr": "rn", "lang": "Rundi"},
|
||||||
|
{"abbr": "ru", "lang": "Russian"},
|
||||||
|
{"abbr": "sg", "lang": "Sango"},
|
||||||
|
{"abbr": "sa", "lang": "Sanskrit"},
|
||||||
|
{"abbr": "si", "lang": "Sinhala"},
|
||||||
|
{"abbr": "sk", "lang": "Slovak"},
|
||||||
|
{"abbr": "sl", "lang": "Slovenian"},
|
||||||
|
{"abbr": "se", "lang": "Northern Sami"},
|
||||||
|
{"abbr": "sm", "lang": "Samoan"},
|
||||||
|
{"abbr": "sn", "lang": "Shona"},
|
||||||
|
{"abbr": "sd", "lang": "Sindhi"},
|
||||||
|
{"abbr": "so", "lang": "Somali"},
|
||||||
|
{"abbr": "st", "lang": "Southern Sotho"},
|
||||||
|
{"abbr": "es", "lang": "Spanish"},
|
||||||
|
{"abbr": "sq", "lang": "Albanian"},
|
||||||
|
{"abbr": "sc", "lang": "Sardinian"},
|
||||||
|
{"abbr": "sr", "lang": "Serbian"},
|
||||||
|
{"abbr": "ss", "lang": "Swati"},
|
||||||
|
{"abbr": "su", "lang": "Sundanese"},
|
||||||
|
{"abbr": "sw", "lang": "Swahili (macrolanguage)"},
|
||||||
|
{"abbr": "sv", "lang": "Swedish"},
|
||||||
|
{"abbr": "ty", "lang": "Tahitian"},
|
||||||
|
{"abbr": "ta", "lang": "Tamil"},
|
||||||
|
{"abbr": "tt", "lang": "Tatar"},
|
||||||
|
{"abbr": "te", "lang": "Telugu"},
|
||||||
|
{"abbr": "tg", "lang": "Tajik"},
|
||||||
|
{"abbr": "tl", "lang": "Tagalog"},
|
||||||
|
{"abbr": "th", "lang": "Thai"},
|
||||||
|
{"abbr": "ti", "lang": "Tigrinya"},
|
||||||
|
{"abbr": "to", "lang": "Tonga (Tonga Islands)"},
|
||||||
|
{"abbr": "tn", "lang": "Tswana"},
|
||||||
|
{"abbr": "ts", "lang": "Tsonga"},
|
||||||
|
{"abbr": "tk", "lang": "Turkmen"},
|
||||||
|
{"abbr": "tr", "lang": "Turkish"},
|
||||||
|
{"abbr": "tw", "lang": "Twi"},
|
||||||
|
{"abbr": "ug", "lang": "Uighur"},
|
||||||
|
{"abbr": "uk", "lang": "Ukrainian"},
|
||||||
|
{"abbr": "ur", "lang": "Urdu"},
|
||||||
|
{"abbr": "uz", "lang": "Uzbek"},
|
||||||
|
{"abbr": "ve", "lang": "Venda"},
|
||||||
|
{"abbr": "vi", "lang": "Vietnamese"},
|
||||||
|
{"abbr": "vo", "lang": "Volapük"},
|
||||||
|
{"abbr": "wa", "lang": "Walloon"},
|
||||||
|
{"abbr": "wo", "lang": "Wolof"},
|
||||||
|
{"abbr": "xh", "lang": "Xhosa"},
|
||||||
|
{"abbr": "yi", "lang": "Yiddish"},
|
||||||
|
{"abbr": "yo", "lang": "Yoruba"},
|
||||||
|
{"abbr": "za", "lang": "Zhuang"},
|
||||||
|
{"abbr": "zh", "lang": "Chinese"},
|
||||||
|
{"abbr": "zu", "lang": "Zulu"}]
|
||||||
Loading…
Reference in New Issue