Move deserialization into init (#1456)

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
This commit is contained in:
Daniel Girtler 2022-09-06 16:31:08 +10:00 committed by GitHub
parent 24d478d037
commit 4dcd5e684f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 584 additions and 151 deletions

View File

@ -195,40 +195,53 @@ def get_arguments() -> Dict[str, Any]:
return config
def load_config():
from .lib.models import NetworkConfiguration
"""
refine and set some arguments. Formerly at the scripts
"""
from .lib.models import NetworkConfiguration
if (archinstall_lang := arguments.get('archinstall-language', None)) is not None:
arguments['archinstall-language'] = TranslationHandler().get_language_by_name(archinstall_lang)
if arguments.get('harddrives', None) is not None:
if type(arguments['harddrives']) is str:
arguments['harddrives'] = arguments['harddrives'].split(',')
arguments['harddrives'] = [BlockDevice(BlockDev) for BlockDev in arguments['harddrives']]
# Temporarily disabling keep_partitions if config file is loaded
# Temporary workaround to make Desktop Environments work
if arguments.get('profile', None) is not None:
if type(arguments.get('profile', None)) is dict:
arguments['profile'] = Profile(None, arguments.get('profile', None)['path'])
else:
arguments['profile'] = Profile(None, arguments.get('profile', None))
storage['_desktop_profile'] = arguments.get('desktop-environment', None)
if arguments.get('mirror-region', None) is not None:
if type(arguments.get('mirror-region', None)) is dict:
arguments['mirror-region'] = arguments.get('mirror-region', None)
else:
selected_region = arguments.get('mirror-region', None)
arguments['mirror-region'] = {selected_region: list_mirrors()[selected_region]}
if arguments.get('sys-language', None) is not None:
arguments['sys-language'] = arguments.get('sys-language', 'en_US')
if arguments.get('sys-encoding', None) is not None:
arguments['sys-encoding'] = arguments.get('sys-encoding', 'utf-8')
if arguments.get('gfx_driver', None) is not None:
storage['gfx_driver_packages'] = AVAILABLE_GFX_DRIVERS.get(arguments.get('gfx_driver', None), None)
if arguments.get('servers', None) is not None:
storage['_selected_servers'] = arguments.get('servers', None)
if arguments.get('nic', None) is not None:
handler = NetworkConfigurationHandler()
handler.parse_arguments(arguments.get('nic'))
arguments['nic'] = handler.configuration
if arguments.get('!users', None) is not None or arguments.get('!superusers', None) is not None:
users = arguments.get('!users', None)
superusers = arguments.get('!superusers', None)

View File

@ -3,54 +3,41 @@ from __future__ import annotations
from typing import Any, List, Optional, Union, Dict, TYPE_CHECKING
import archinstall
from ..menu import Menu
from ..menu.selection_menu import Selector, GeneralMenu
from ..disk import encrypted_partitions
from ..general import SysCommand, secret
from ..hardware import has_uefi
from ..menu import Menu
from ..menu.selection_menu import Selector, GeneralMenu
from ..models import NetworkConfiguration
from ..storage import storage
from ..models.users import User
from ..output import FormattedOutput
from ..profiles import is_desktop_profile, Profile
from ..disk import encrypted_partitions
from ..user_interaction import get_password, ask_for_a_timezone, save_config
from ..user_interaction import ask_ntp
from ..user_interaction import ask_for_swap
from ..user_interaction import ask_for_bootloader
from ..user_interaction import ask_hostname
from ..user_interaction import ask_for_audio_selection
from ..storage import storage
from ..user_interaction import add_number_of_parrallel_downloads
from ..user_interaction import ask_additional_packages_to_install
from ..user_interaction import ask_to_configure_network
from ..user_interaction import ask_for_additional_users
from ..user_interaction import select_language
from ..user_interaction import select_mirror_regions
from ..user_interaction import select_locale_lang
from ..user_interaction import select_locale_enc
from ..user_interaction import ask_for_audio_selection
from ..user_interaction import ask_for_bootloader
from ..user_interaction import ask_for_swap
from ..user_interaction import ask_hostname
from ..user_interaction import ask_ntp
from ..user_interaction import ask_to_configure_network
from ..user_interaction import get_password, ask_for_a_timezone, save_config
from ..user_interaction import select_additional_repositories
from ..user_interaction import select_disk_layout
from ..user_interaction import select_kernel
from ..user_interaction import select_encrypted_partitions
from ..user_interaction import select_harddrives
from ..user_interaction import select_kernel
from ..user_interaction import select_language
from ..user_interaction import select_locale_enc
from ..user_interaction import select_locale_lang
from ..user_interaction import select_mirror_regions
from ..user_interaction import select_profile
from ..user_interaction import select_additional_repositories
from ..user_interaction import add_number_of_parrallel_downloads
from ..models.users import User
from ..user_interaction.partitioning_conf import current_partition_layout
from ..output import FormattedOutput
from ..translationhandler import Language
if TYPE_CHECKING:
_: Any
def display_language(global_menu, x):
if type(x) == Language:
return x
elif type(x) == str:
translation_handler = global_menu._translation_handler
for language in translation_handler._get_translations():
if language.lang == x:
return language
else:
raise ValueError(f"Language entry needs to Language() object or string of full language like 'English'.")
class GlobalMenu(GeneralMenu):
def __init__(self,data_store):
@ -62,9 +49,9 @@ class GlobalMenu(GeneralMenu):
self._menu_options['archinstall-language'] = \
Selector(
_('Archinstall language'),
lambda x: self._select_archinstall_language(display_language(self, x)),
display_func=lambda x: display_language(self, x).display_name,
default=self.translation_handler.get_language('en'))
lambda x: self._select_archinstall_language(x),
display_func=lambda x: x.display_name,
default=self.translation_handler.get_language_by_abbr('en'))
self._menu_options['keyboard-layout'] = \
Selector(
_('Keyboard layout'),

View File

@ -40,6 +40,7 @@ class Language:
def json(self) -> str:
return self.lang
class TranslationHandler:
_base_pot = 'base.pot'
_languages = 'languages.json'
@ -48,7 +49,7 @@ class TranslationHandler:
# to display cyrillic languages correctly
self._set_font('UniCyr_8x16')
self._total_messages = self._get_total_messages()
self._total_messages = self._get_total_active_messages()
self._translated_languages = self._get_translations()
@property
@ -56,6 +57,9 @@ class TranslationHandler:
return self._translated_languages
def _get_translations(self) -> List[Language]:
"""
Load all translated languages and return a list of such
"""
mappings = self._load_language_mappings()
defined_languages = self._defined_languages()
@ -68,13 +72,17 @@ class TranslationHandler:
translated_lang = mapping_entry.get('translated_lang', None)
try:
# get a translation for a specific language
translation = gettext.translation('base', localedir=self._get_locales_dir(), languages=(abbr, lang))
# calculate the percentage of total translated text to total number of messages
if abbr == 'en':
percent = 100
else:
num_translations = self._get_catalog_size(translation)
percent = int((num_translations / self._total_messages) * 100)
# prevent cases where the .pot file is out of date and the percentage is above 100
percent = min(100, percent)
language = Language(abbr, lang, translation, percent, translated_lang)
languages.append(language)
@ -84,6 +92,9 @@ class TranslationHandler:
return languages
def _set_font(self, font: str):
"""
Set the provided font as the new terminal font
"""
from archinstall import SysCommand, log
try:
log(f'Setting font: {font}', level=logging.DEBUG)
@ -92,6 +103,9 @@ class TranslationHandler:
log(f'Unable to set font {font}', level=logging.ERROR)
def _load_language_mappings(self) -> List[Dict[str, Any]]:
"""
Load the mapping table of all known languages
"""
locales_dir = self._get_locales_dir()
languages = Path.joinpath(locales_dir, self._languages)
@ -99,34 +113,62 @@ class TranslationHandler:
return json.load(fp)
def _get_catalog_size(self, translation: gettext.NullTranslations) -> int:
# this is a ery naughty way of retrieving the data but
"""
Get the number of translated messages for a translations
"""
# this is a very naughty way of retrieving the data but
# there's no alternative method exposed unfortunately
catalog = translation._catalog # type: ignore
messages = {k: v for k, v in catalog.items() if k and v}
return len(messages)
def _get_total_messages(self) -> int:
def _get_total_active_messages(self) -> int:
"""
Get total messages that could be translated
"""
locales = self._get_locales_dir()
with open(f'{locales}/{self._base_pot}', 'r') as fp:
lines = fp.readlines()
msgid_lines = [line for line in lines if 'msgid' in line]
return len(msgid_lines) - 1 # don't count the first line which contains the metadata
def get_language(self, abbr: str) -> Language:
def get_language_by_name(self, name: str) -> Language:
"""
Get a language object by it's name, e.g. English
"""
try:
return next(filter(lambda x: x.lang == name, self._translated_languages))
except Exception:
raise ValueError(f'No language with name found: {name}')
def get_language_by_abbr(self, abbr: str) -> Language:
"""
Get a language object by its abbrevation, e.g. en
"""
try:
return next(filter(lambda x: x.abbr == abbr, self._translated_languages))
except Exception:
raise ValueError(f'No language with abbreviation "{abbr}" found')
def activate(self, language: Language):
"""
Set the provided language as the current translation
"""
language.translation.install()
def _get_locales_dir(self) -> Path:
"""
Get the locales directory path
"""
cur_path = Path(__file__).parent.parent
locales_dir = Path.joinpath(cur_path, 'locales')
return locales_dir
def _defined_languages(self) -> List[str]:
"""
Get a list of all known languages
"""
locales_dir = self._get_locales_dir()
filenames = os.listdir(locales_dir)
return list(filter(lambda x: len(x) == 2 or x == 'pt_BR', filenames))

View File

@ -3,26 +3,22 @@
# zer0-x, 2022.
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: zer0-x\n"
"PO-Revision-Date: 2022-06-16 03:35+0300\n"
"Project-Id-Version: \n"
"PO-Revision-Date: 2022-06-16 03:35+0300\n"
"Last-Translator: zer0-x\n"
"Language-Team: Arabic\n"
"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Lokalize 22.04.2\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] مِلَف سِجِل أُنشِأ هُنا: {} {}"
msgid ""
" Please submit this issue (and file) to"
" https://github.com/archlinux/archinstall/issues"
msgstr ""
" يُرجى تسليم تقرير عن هذا الخلل (مع المِلَف) إلى"
" https://github.com/archlinux/archinstall/issues"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " يُرجى تسليم تقرير عن هذا الخلل (مع المِلَف) إلى https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "هل تُريدُ حقًا إجهاضَ العَملِيَّة؟"
@ -57,41 +53,26 @@ msgstr "اختر مُحمّل الإقلاع"
msgid "Choose an audio server"
msgstr "اختر خادِم صوتيات"
msgid ""
"Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and"
" optional profile packages are installed."
msgstr ""
"فقط الحزم مثل base وbase-devel وlinux وlinux-firmware وefibootmgr و"
" حِزم مِلف اختيارية سوف تُثَبَّت."
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "فقط الحزم مثل base وbase-devel وlinux وlinux-firmware وefibootmgr و حِزم مِلف اختيارية سوف تُثَبَّت."
msgid ""
"If you desire a web browser, such as firefox or chromium, you may specify it"
" in the following prompt."
msgstr ""
"إذا كنت ترغب في متصفح الويب ، مثل Firefox أو chromium، فيمكنك تحديده"
" في موضِع الكتابة التالي."
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "إذا كنت ترغب في متصفح الويب ، مثل Firefox أو chromium، فيمكنك تحديده في موضِع الكتابة التالي."
msgid ""
"Write additional packages to install (space separated, leave blank to skip): "
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "اكتب حزمًا إضافية لتثبيتها (تُفصَل بالمسافات، اتركها فارغة للتخطي):"
msgid "Copy ISO network configuration to installation"
msgstr "انسخ إعداد شبكة الـISO للتثبيت"
msgid ""
"Use NetworkManager (necessary to configure internet graphically in GNOME and"
" KDE)"
msgstr ""
"استخدم مُدير الشبكة (ضروري لإعداد الإنترنت باستخدام واجهة رسومية في جنوم و"
" كيدي)"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "استخدم مُدير الشبكة (ضروري لإعداد الإنترنت باستخدام واجهة رسومية في جنوم و كيدي)"
msgid "Select one network interface to configure"
msgstr "حدِّد واجهة شبكة واحدة للإعداد"
msgid ""
"Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
msgstr ""
"حدد الوضع المراد تهيئته لـ\"{}\" أو تخطى لاستخدام الوضع الافتراضي \"{}\""
msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
msgstr "حدد الوضع المراد تهيئته لـ\"{}\" أو تخطى لاستخدام الوضع الافتراضي \"{}\""
msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): "
msgstr "أدخِل الIP مع تجزئة الشبكة لـ{} (على سبيل المثال: 192.168.0.5/24): "
@ -119,8 +100,7 @@ msgstr ""
msgid "Enter the start sector (percentage or block number, default: {}): "
msgstr ""
msgid ""
"Enter the end sector of the partition (percentage or block number, ex: {}): "
msgid "Enter the end sector of the partition (percentage or block number, ex: {}): "
msgstr ""
msgid "{} contains queued partitions, this will remove those, are you sure?"
@ -138,9 +118,7 @@ msgid ""
"Select by index which partition to mount where"
msgstr ""
msgid ""
" * Partition mount-points are relative to inside the installation, the boot"
" would be /boot as an example."
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr ""
msgid "Select where to mount partition (leave blank to remove mountpoint): "
@ -179,16 +157,13 @@ msgstr ""
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr ""
msgid ""
"Select what to do with each individual drive (followed by partition usage)"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr ""
msgid "Select what you wish to do with the selected block devices"
msgstr ""
msgid ""
"This is a list of pre-programmed profiles, they might make it easier to"
" install things like desktop environments"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr ""
msgid "Select keyboard layout"
@ -200,19 +175,13 @@ msgstr ""
msgid "Select one or more hard drives to use and configure"
msgstr ""
msgid ""
"For the best compatibility with your AMD hardware, you may want to use either"
" the all open-source or AMD / ATI options."
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr ""
msgid ""
"For the best compatibility with your Intel hardware, you may want to use"
" either the all open-source or Intel options.\n"
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr ""
msgid ""
"For the best compatibility with your Nvidia hardware, you may want to use the"
" Nvidia proprietary driver.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr ""
msgid ""
@ -242,9 +211,7 @@ msgstr ""
msgid "Adding partition...."
msgstr ""
msgid ""
"You need to enter a valid fs-type in order to continue. See `man parted` for"
" valid fs-type's."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr ""
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
@ -388,18 +355,14 @@ msgstr ""
msgid "Password for user \"{}\": "
msgstr ""
msgid ""
"Verifying that additional packages exist (this might take a few seconds)"
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr ""
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr ""
msgid ""
"Would you like to use automatic time synchronization (NTP) with the default"
" time servers?\n"
msgstr ""
msgid ""
"Hardware time and other post-configuration steps might be required in order"
" for NTP to work.\n"
"Hardware time and other post-configuration steps might be required in order for NTP to work.\n"
"For more information, please check the Arch wiki"
msgstr ""
@ -411,8 +374,7 @@ msgstr ""
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for"
" it to execute"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
msgid "Cancel"
@ -433,8 +395,9 @@ msgstr ""
msgid "Delete"
msgstr ""
msgid "Select an action for < {} >"
msgstr ""
#, fuzzy
msgid "Select an action for '{}'"
msgstr "حدِّد منطقة زمنية"
msgid "Copy to new key:"
msgstr ""
@ -447,13 +410,10 @@ msgid ""
"This is your chosen configuration:"
msgstr ""
msgid ""
"Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr ""
msgid ""
"Pre-existing pacman lock never exited. Please clean up any existing pacman"
" sessions before using archinstall."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr ""
msgid "Choose which optional additional repositories to enable"
@ -598,9 +558,7 @@ msgstr ""
msgid "Would you like to create a separate partition for /home?"
msgstr ""
msgid ""
"The selected drives do not have the minimum capacity required for an"
" automatic suggestion\n"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr ""
msgid "Minimum capacity for /home partition: {}GB\n"
@ -648,31 +606,22 @@ msgstr ""
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr ""
msgid ""
"The password you are using seems to be weak, are you sure you want to use it?"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr ""
msgid ""
"Provides a selection of desktop environments and tiling window managers, e.g."
" gnome, kde, sway"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr ""
msgid "Select your desired desktop environment"
msgstr ""
msgid ""
"A very basic installation that allows you to customize Arch Linux as you see"
" fit."
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr ""
msgid ""
"Provides a selection of various server packages to install and enable, e.g."
" httpd, nginx, mariadb"
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr ""
msgid ""
"Choose which servers to install, if none then a minimal installation wil be"
" done"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr ""
msgid "Installs a minimal system as well as xorg and graphics drivers."
@ -681,9 +630,7 @@ msgstr ""
msgid "Press Enter to continue."
msgstr ""
msgid ""
"Would you like to chroot into the newly created installation and perform"
" post-installation configuration?"
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr ""
msgid "Are you sure you want to reset this setting?"
@ -695,9 +642,7 @@ msgstr ""
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr ""
msgid ""
"If you reset the harddrive selection this will also reset the current disk"
" layout. Are you sure?"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr ""
msgid "Save and exit"
@ -740,9 +685,7 @@ msgstr ""
msgid "Value: "
msgstr ""
msgid ""
"You can skip selecting a drive and partitioning and use whatever drive-setup"
" is mounted at /mnt (experimental)"
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr ""
msgid "Select one of the disks or skip and use /mnt as default"
@ -766,8 +709,7 @@ msgstr ""
msgid "Bus-type"
msgstr ""
msgid ""
"Either root-password or at least 1 user with sudo privileges must be specified"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr ""
msgid "Enter username (leave blank to skip): "
@ -781,3 +723,53 @@ msgstr ""
msgid "Select which partitions to encrypt:"
msgstr ""
msgid "very weak"
msgstr ""
msgid "weak"
msgstr ""
msgid "moderate"
msgstr ""
msgid "strong"
msgstr ""
msgid "Add subvolume"
msgstr ""
msgid "Edit subvolume"
msgstr ""
msgid "Delete subvolume"
msgstr ""
msgid "Configured {} interfaces"
msgstr ""
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr ""
#, python-brace-format
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {max_downloads})\n"
"Note:"
msgstr ""
msgid " - Maximum value : {max_downloads} ( Allows {max_downloads} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr ""
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr ""
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr ""
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr ""
msgid "Parallel Downloads"
msgstr ""

View File

@ -787,3 +787,39 @@ msgstr ""
msgid "Configured {} interfaces"
msgstr ""
msgid ""
"This option enables the number of parallel downloads that can occur during "
"installation"
msgstr ""
#, python-brace-format
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {max_downloads})\n"
"Note:"
msgstr ""
msgid ""
" - Maximum value : {max_downloads} ( Allows {max_downloads} parallel "
"downloads, allows {max_downloads+1} downloads at a time )"
msgstr ""
msgid ""
" - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a "
"time )"
msgstr ""
msgid ""
" - Disable/Default : 0 ( Disables parallel downloading, allows only 1 "
"download at a time )"
msgstr ""
#, python-brace-format
msgid ""
"Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to "
"disable]"
msgstr ""
msgid "Parallel Downloads"
msgstr ""

View File

@ -792,3 +792,29 @@ msgstr "Smazat uživatele"
msgid "Configured {} interfaces"
msgstr ""
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr ""
#, python-brace-format
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {max_downloads})\n"
"Note:"
msgstr ""
msgid " - Maximum value : {max_downloads} ( Allows {max_downloads} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr ""
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr ""
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr ""
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr ""
msgid "Parallel Downloads"
msgstr ""

View File

@ -808,6 +808,32 @@ msgstr "Benutzerkonto löschen"
msgid "Configured {} interfaces"
msgstr ""
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr ""
#, python-brace-format
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {max_downloads})\n"
"Note:"
msgstr ""
msgid " - Maximum value : {max_downloads} ( Allows {max_downloads} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr ""
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr ""
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr ""
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr ""
msgid "Parallel Downloads"
msgstr ""
#~ msgid "Select disk layout"
#~ msgstr "Laufwerke-layout auswählen"

View File

@ -787,6 +787,9 @@ msgstr "Επεξεργασία υποόγκου"
msgid "Delete subvolume"
msgstr "Διαγραφή υποόγκου"
msgid "Configured {} interfaces"
msgstr "Διαμορφωμένες {} διεπαφές"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "Αυτή η επιλογή θέτει τον αριθμό των παράλληλων λήψεων που μπορούν να συμβούν κατά την εγκατάσταση"
@ -815,6 +818,3 @@ msgstr "Μη έγκυρη είσοδος! Προσπαθήστε ξανά με
msgid "Parallel Downloads"
msgstr "Παράλληλες Λήψεις"
msgid "Configured {} interfaces"
msgstr "Διαμορφωμένες {} διεπαφές"

View File

@ -743,3 +743,29 @@ msgstr ""
msgid "Configured {} interfaces"
msgstr ""
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr ""
#, python-brace-format
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {max_downloads})\n"
"Note:"
msgstr ""
msgid " - Maximum value : {max_downloads} ( Allows {max_downloads} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr ""
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr ""
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr ""
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr ""
msgid "Parallel Downloads"
msgstr ""

View File

@ -791,6 +791,32 @@ msgstr "Eliminar usuario"
msgid "Configured {} interfaces"
msgstr ""
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr ""
#, python-brace-format
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {max_downloads})\n"
"Note:"
msgstr ""
msgid " - Maximum value : {max_downloads} ( Allows {max_downloads} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr ""
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr ""
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr ""
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr ""
msgid "Parallel Downloads"
msgstr ""
#~ msgid "Select disk layout"
#~ msgstr "Seleccione el diseño del disco"

View File

@ -797,6 +797,32 @@ msgstr "Supprimer l'utilisateur"
msgid "Configured {} interfaces"
msgstr ""
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr ""
#, python-brace-format
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {max_downloads})\n"
"Note:"
msgstr ""
msgid " - Maximum value : {max_downloads} ( Allows {max_downloads} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr ""
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr ""
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr ""
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr ""
msgid "Parallel Downloads"
msgstr ""
#~ msgid "Select disk layout"
#~ msgstr "Sélectionner la disposition du disque"

View File

@ -799,3 +799,29 @@ msgstr "Elimina utente"
msgid "Configured {} interfaces"
msgstr ""
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr ""
#, python-brace-format
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {max_downloads})\n"
"Note:"
msgstr ""
msgid " - Maximum value : {max_downloads} ( Allows {max_downloads} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr ""
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr ""
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr ""
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr ""
msgid "Parallel Downloads"
msgstr ""

View File

@ -823,6 +823,32 @@ msgstr "Gebruiker verwijderen"
msgid "Configured {} interfaces"
msgstr ""
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr ""
#, python-brace-format
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {max_downloads})\n"
"Note:"
msgstr ""
msgid " - Maximum value : {max_downloads} ( Allows {max_downloads} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr ""
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr ""
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr ""
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr ""
msgid "Parallel Downloads"
msgstr ""
#~ msgid "Select disk layout"
#~ msgstr "Kies een schijfindeling"

View File

@ -805,6 +805,32 @@ msgstr "Usuń użytkownika"
msgid "Configured {} interfaces"
msgstr ""
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr ""
#, python-brace-format
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {max_downloads})\n"
"Note:"
msgstr ""
msgid " - Maximum value : {max_downloads} ( Allows {max_downloads} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr ""
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr ""
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr ""
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr ""
msgid "Parallel Downloads"
msgstr ""
#~ msgid "Select disk layout"
#~ msgstr "Wybierz układ dysku"

View File

@ -843,6 +843,32 @@ msgstr "Eliminar Utilizador"
msgid "Configured {} interfaces"
msgstr ""
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr ""
#, python-brace-format
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {max_downloads})\n"
"Note:"
msgstr ""
msgid " - Maximum value : {max_downloads} ( Allows {max_downloads} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr ""
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr ""
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr ""
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr ""
msgid "Parallel Downloads"
msgstr ""
#~ msgid "Select disk layout"
#~ msgstr "Seleciona o esquema de disco"

View File

@ -1,7 +1,6 @@
# Translators:
# @Cain-dev (cain-dev.github.io)
# Rafael Fontenelle <rafaelff@gnome.org>
msgid ""
msgstr ""
"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
@ -788,3 +787,29 @@ msgstr "Deletar subvolume"
msgid "Configured {} interfaces"
msgstr "{} interfaces configuradas"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr ""
#, python-brace-format
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {max_downloads})\n"
"Note:"
msgstr ""
msgid " - Maximum value : {max_downloads} ( Allows {max_downloads} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr ""
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr ""
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr ""
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr ""
msgid "Parallel Downloads"
msgstr ""

View File

@ -791,6 +791,32 @@ msgstr "Удалить подтом"
msgid "Configured {} interfaces"
msgstr "Настроено интерфейсов: {}"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr ""
#, python-brace-format
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {max_downloads})\n"
"Note:"
msgstr ""
msgid " - Maximum value : {max_downloads} ( Allows {max_downloads} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr ""
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr ""
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr ""
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr ""
msgid "Parallel Downloads"
msgstr ""
#, python-brace-format
#~ msgid "Edit {origkey} :"
#~ msgstr "Редактировать {origkey}:"

View File

@ -804,5 +804,31 @@ msgstr "Ta bort användare"
msgid "Configured {} interfaces"
msgstr ""
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr ""
#, python-brace-format
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {max_downloads})\n"
"Note:"
msgstr ""
msgid " - Maximum value : {max_downloads} ( Allows {max_downloads} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr ""
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr ""
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr ""
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr ""
msgid "Parallel Downloads"
msgstr ""
#~ msgid "Select disk layout"
#~ msgstr "Välj hårddisk-layout"

View File

@ -790,9 +790,6 @@ msgstr "துணைத்தொகுதியை நீக்கவும்"
msgid "Configured {} interfaces"
msgstr "கட்டமைக்கப்பட்ட {} இடைமுகங்கள்"
msgid "Parallel Downloads"
msgstr "இணையான பதிவிறக்கங்கள்"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "இந்த விருப்பம் நிறுவலின் போது நிகழக்கூடிய இணையான பதிவிறக்கங்களின் எண்ணிக்கையை செயல்படுத்துகிறது"
@ -818,3 +815,6 @@ msgstr " - முடக்கு/இயல்புநிலை: 0 (இணை
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "தவறான உள்ளீடு! சரியான உள்ளீட்டில் [1 முதல் {max_downloads} வரை அல்லது முடக்க 0 வரை] மீண்டும் முயற்சிக்கவும்"
msgid "Parallel Downloads"
msgstr "இணையான பதிவிறக்கங்கள்"

View File

@ -803,3 +803,29 @@ msgstr "Kullanıcı Sil"
msgid "Configured {} interfaces"
msgstr ""
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr ""
#, python-brace-format
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {max_downloads})\n"
"Note:"
msgstr ""
msgid " - Maximum value : {max_downloads} ( Allows {max_downloads} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr ""
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr ""
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr ""
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr ""
msgid "Parallel Downloads"
msgstr ""

View File

@ -825,6 +825,32 @@ msgstr "صارف کو حذف کریں"
msgid "Configured {} interfaces"
msgstr ""
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr ""
#, python-brace-format
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {max_downloads})\n"
"Note:"
msgstr ""
msgid " - Maximum value : {max_downloads} ( Allows {max_downloads} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr ""
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr ""
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr ""
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr ""
msgid "Parallel Downloads"
msgstr ""
#~ msgid "Select disk layout"
#~ msgstr "ڈسک لے آؤٹ کو منتخب کریں"

View File

@ -164,7 +164,7 @@ class SetupMenu(archinstall.GeneralMenu):
_('Archinstall language'),
lambda x: self._select_archinstall_language(x),
display_func=lambda x: x.display_name,
default=self.translation_handler.get_language('en'),
default=self.translation_handler.get_language_by_abbr('en'),
enabled=True
)
)