From dcf484856133d13808526ce207315352cdd4f835 Mon Sep 17 00:00:00 2001 From: Daniel Girtler Date: Tue, 21 Oct 2025 21:27:49 +1100 Subject: [PATCH 1/2] Wifi connector --- .github/workflows/pylint.yaml | 2 +- .pre-commit-config.yaml | 4 +- PKGBUILD | 4 +- archinstall/__init__.py | 33 +- archinstall/lib/args.py | 7 + archinstall/lib/installer.py | 4 - archinstall/lib/models/device.py | 16 - archinstall/lib/models/network.py | 102 +- archinstall/lib/network/__init__.py | 0 archinstall/lib/network/wifi_handler.py | 280 +++ archinstall/lib/network/wpa_supplicant.py | 136 ++ archinstall/lib/profile/profiles_handler.py | 7 - archinstall/locales/ar/LC_MESSAGES/base.po | 91 +- archinstall/locales/ca/LC_MESSAGES/base.po | 87 + archinstall/locales/cs/LC_MESSAGES/base.po | 86 + archinstall/locales/de/LC_MESSAGES/base.po | 156 +- archinstall/locales/el/LC_MESSAGES/base.mo | Bin 40245 -> 40162 bytes archinstall/locales/el/LC_MESSAGES/base.po | 96 +- archinstall/locales/en/LC_MESSAGES/base.po | 82 + archinstall/locales/es/LC_MESSAGES/base.po | 87 +- archinstall/locales/et/LC_MESSAGES/base.po | 95 +- archinstall/locales/fi/LC_MESSAGES/base.po | 94 +- archinstall/locales/fr/LC_MESSAGES/base.mo | Bin 54124 -> 55910 bytes archinstall/locales/fr/LC_MESSAGES/base.po | 89 +- archinstall/locales/ga/LC_MESSAGES/base.po | 93 +- archinstall/locales/he/LC_MESSAGES/base.po | 88 +- archinstall/locales/hi/LC_MESSAGES/base.po | 85 +- archinstall/locales/hu/LC_MESSAGES/base.mo | Bin 57133 -> 58650 bytes archinstall/locales/hu/LC_MESSAGES/base.po | 96 +- archinstall/locales/id/LC_MESSAGES/base.po | 94 +- archinstall/locales/it/LC_MESSAGES/base.mo | Bin 53568 -> 54974 bytes archinstall/locales/it/LC_MESSAGES/base.po | 110 +- archinstall/locales/ja/LC_MESSAGES/base.mo | Bin 58867 -> 60457 bytes archinstall/locales/ja/LC_MESSAGES/base.po | 82 + archinstall/locales/ka/LC_MESSAGES/base.po | 93 +- archinstall/locales/ko/LC_MESSAGES/base.po | 94 +- archinstall/locales/languages.json | 2 +- archinstall/locales/lt/LC_MESSAGES/base.po | 88 +- archinstall/locales/nl/LC_MESSAGES/base.mo | Bin 17691 -> 17546 bytes archinstall/locales/nl/LC_MESSAGES/base.po | 91 +- archinstall/locales/pl/LC_MESSAGES/base.po | 86 + archinstall/locales/pt/LC_MESSAGES/base.po | 87 + archinstall/locales/pt_BR/LC_MESSAGES/base.po | 86 + archinstall/locales/ro/LC_MESSAGES/base.po | 94 +- archinstall/locales/ru/LC_MESSAGES/base.po | 88 +- archinstall/locales/sv/LC_MESSAGES/base.mo | Bin 52479 -> 53888 bytes archinstall/locales/sv/LC_MESSAGES/base.po | 82 + archinstall/locales/ta/LC_MESSAGES/base.po | 93 +- archinstall/locales/tr/LC_MESSAGES/base.po | 86 + archinstall/locales/uk/LC_MESSAGES/base.mo | Bin 70127 -> 72094 bytes archinstall/locales/uk/LC_MESSAGES/base.po | 94 +- archinstall/locales/uz/LC_MESSAGES/base.mo | Bin 0 -> 53452 bytes archinstall/locales/uz/LC_MESSAGES/base.po | 1794 +++++++++++++++++ archinstall/tui/menu_item.py | 12 +- archinstall/tui/ui/__init__.py | 0 archinstall/tui/ui/components.py | 509 +++++ archinstall/tui/ui/result.py | 26 + pyproject.toml | 12 +- 58 files changed, 5475 insertions(+), 248 deletions(-) create mode 100644 archinstall/lib/network/__init__.py create mode 100644 archinstall/lib/network/wifi_handler.py create mode 100644 archinstall/lib/network/wpa_supplicant.py create mode 100644 archinstall/locales/uz/LC_MESSAGES/base.mo create mode 100644 archinstall/locales/uz/LC_MESSAGES/base.po create mode 100644 archinstall/tui/ui/__init__.py create mode 100644 archinstall/tui/ui/components.py create mode 100644 archinstall/tui/ui/result.py diff --git a/.github/workflows/pylint.yaml b/.github/workflows/pylint.yaml index 4445338a57..4c7b5154eb 100644 --- a/.github/workflows/pylint.yaml +++ b/.github/workflows/pylint.yaml @@ -14,7 +14,7 @@ jobs: pacman --noconfirm -Syyu pacman --noconfirm -Sy python-pip python-pyparted pkgconfig gcc - run: pip install --break-system-packages --upgrade pip - - name: Install Pylint and Pylint plug-ins + - name: Install Pylint run: pip install --break-system-packages .[dev] - run: python --version - run: pylint --version diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 8ede1ac483..b04705572d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,7 +1,7 @@ default_stages: ['pre-commit'] repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.13.1 + rev: v0.14.1 hooks: # fix unused imports and sort them - id: ruff @@ -41,7 +41,9 @@ repos: additional_dependencies: - pydantic - pytest + - pytest-mock - cryptography + - textual - repo: local hooks: - id: pylint diff --git a/PKGBUILD b/PKGBUILD index 238c3e4955..f676793b37 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -5,7 +5,7 @@ # Contributor: demostanis worlds pkgname=archinstall -pkgver=3.0.10 +pkgver=3.0.11 pkgrel=1 pkgdesc="Just another guided/automated Arch Linux installer with a twist" arch=(any) @@ -28,6 +28,7 @@ depends=( 'python-cryptography' 'python-pydantic' 'python-pyparted' + 'python-textual' 'systemd' 'util-linux' 'xfsprogs' @@ -43,7 +44,6 @@ makedepends=( 'python-wheel' 'python-sphinx_rtd_theme' 'python-pylint' - 'python-pylint-pydantic' 'ruff' ) optdepends=( diff --git a/archinstall/__init__.py b/archinstall/__init__.py index d8069d96a8..ee39ddc8ac 100644 --- a/archinstall/__init__.py +++ b/archinstall/__init__.py @@ -8,7 +8,10 @@ from archinstall.lib.args import arch_config_handler from archinstall.lib.disk.utils import disk_layouts +from archinstall.lib.network.wifi_handler import wifi_handler +from archinstall.lib.networking import ping from archinstall.lib.packages.packages import check_package_upgrade +from archinstall.tui.ui.components import tui as ttui from .lib.hardware import SysInfo from .lib.output import FormattedOutput, debug, error, info, log, warn @@ -36,6 +39,21 @@ def _log_sys_info() -> None: debug(f'Disk states before installing:\n{disk_layouts()}') +def _check_online() -> None: + try: + ping('1.1.1.1') + except OSError as ex: + if 'Network is unreachable' in str(ex): + if not arch_config_handler.args.skip_wifi_check: + success = not wifi_handler.setup() + if not success: + exit(0) + + if not arch_config_handler.args.skip_wifi_check: + if not wifi_handler.setup(): + exit(0) + + def _fetch_arch_db() -> None: info('Fetching Arch Linux package database...') try: @@ -44,13 +62,14 @@ def _fetch_arch_db() -> None: error('Failed to sync Arch Linux package database.') if 'could not resolve host' in str(e).lower(): error('Most likely due to a missing network connection or DNS issue.') + error('Run archinstall --debug and check /var/log/archinstall/install.log for details.') debug(f'Failed to sync Arch Linux package database: {e}') exit(1) -def _check_new_version() -> None: +def check_version_upgrade() -> str | None: info('Checking version...') upgrade = None @@ -62,7 +81,7 @@ def _check_new_version() -> None: text = tr('New version available') + f': {upgrade}' info(text) - time.sleep(3) + return text def main() -> int: @@ -81,11 +100,19 @@ def main() -> int: _log_sys_info() + ttui.global_header = 'Archinstall' + if not arch_config_handler.args.offline: + _check_online() _fetch_arch_db() if not arch_config_handler.args.skip_version_check: - _check_new_version() + new_version = check_version_upgrade() + + if new_version: + ttui.global_header = f'{ttui.global_header} {new_version}' + info(new_version) + time.sleep(3) script = arch_config_handler.get_script() diff --git a/archinstall/lib/args.py b/archinstall/lib/args.py index f1e81fb088..16eb8dc140 100644 --- a/archinstall/lib/args.py +++ b/archinstall/lib/args.py @@ -49,6 +49,7 @@ class Arguments: no_pkg_lookups: bool = False plugin: str | None = None skip_version_check: bool = False + skip_wifi_check: bool = False advanced: bool = False verbose: bool = False @@ -407,6 +408,12 @@ def _define_arguments(self) -> ArgumentParser: default=False, help='Skip the version check when running archinstall', ) + parser.add_argument( + '--skip-wifi-check', + action='store_true', + default=False, + help='Skip wifi check when running archinstall', + ) parser.add_argument( '--advanced', action='store_true', diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py index 758c74ac3c..2744f7fcf0 100644 --- a/archinstall/lib/installer.py +++ b/archinstall/lib/installer.py @@ -802,10 +802,6 @@ def _prepare_fs_type( ) -> None: if (pkg := fs_type.installation_pkg) is not None: self._base_packages.append(pkg) - if (module := fs_type.installation_module) is not None: - self._modules.append(module) - if (binary := fs_type.installation_binary) is not None: - self._binaries.append(binary) # https://github.com/archlinux/archinstall/issues/1837 if fs_type.fs_type_mount == 'btrfs': diff --git a/archinstall/lib/models/device.py b/archinstall/lib/models/device.py index 7dc940392e..45cf06402e 100644 --- a/archinstall/lib/models/device.py +++ b/archinstall/lib/models/device.py @@ -822,22 +822,6 @@ def installation_pkg(self) -> str | None: case _: return None - @property - def installation_module(self) -> str | None: - match self: - case FilesystemType.Btrfs: - return 'btrfs' - case _: - return None - - @property - def installation_binary(self) -> str | None: - match self: - case FilesystemType.Btrfs: - return '/usr/bin/btrfs' - case _: - return None - @property def installation_hooks(self) -> str | None: match self: diff --git a/archinstall/lib/models/network.py b/archinstall/lib/models/network.py index 993169d826..88f52fd6b9 100644 --- a/archinstall/lib/models/network.py +++ b/archinstall/lib/models/network.py @@ -1,9 +1,11 @@ from __future__ import annotations +import re from dataclasses import dataclass, field from enum import Enum -from typing import TYPE_CHECKING, NotRequired, TypedDict +from typing import TYPE_CHECKING, NotRequired, TypedDict, override +from archinstall.lib.output import debug from archinstall.lib.translationhandler import tr from ..models.profile import ProfileConfiguration @@ -157,3 +159,101 @@ def install_network_config( installation.enable_service('systemd-networkd') installation.enable_service('systemd-resolved') + + +@dataclass +class WifiNetwork: + bssid: str + frequency: str + signal_level: str + flags: str + ssid: str + + @override + def __hash__(self) -> int: + return hash((self.bssid, self.frequency, self.signal_level, self.flags, self.ssid)) + + def table_data(self) -> dict[str, str | int]: + """Format WiFi data for table display""" + return { + 'SSID': self.ssid, + 'Signal': f'{self.signal_level} dBm', + 'Frequency': f'{self.frequency} MHz', + 'Security': self.flags, + 'BSSID': self.bssid, + } + + @staticmethod + def from_wpa(results: str) -> list[WifiNetwork]: + entries: list[WifiNetwork] = [] + + for line in results.splitlines(): + line = line.strip() + if not line: + continue + + parts = line.split() + if len(parts) != 5: + continue + + wifi = WifiNetwork(bssid=parts[0], frequency=parts[1], signal_level=parts[2], flags=parts[3], ssid=parts[4]) + entries.append(wifi) + + return entries + + +@dataclass +class WifiConfiguredNetwork: + network_id: int + ssid: str + bssid: str + flags: list[str] + + @classmethod + def from_wpa_cli_output(cls, list_networks: str) -> list[WifiConfiguredNetwork]: + """ + Example output from 'wpa_cli list_networks' + + Selected interface 'wlan0' + network id / ssid / bssid / flags + 0 WifiGuest any [CURRENT] + 1 any [DISABLED] + 2 any [DISABLED] + """ + + lines = list_networks.strip().splitlines() + lines = lines[1:] # remove the header row from the wpa_cli output + + networks = [] + + for line in lines: + line = line.strip() + parts = line.split('\t') + + if len(parts) < 3: + continue + + try: + # flags = cls._extract_flags(parts[3]) + flags: list[str] = [] + + networks.append( + WifiConfiguredNetwork( + network_id=int(parts[0]), + ssid=parts[1], + bssid=parts[2], + flags=flags, + ) + ) + except (ValueError, IndexError): + debug('Parsing error for network output') + + return networks + + @classmethod + def _extract_flags(cls, flag_string: str) -> list[str]: + pattern = r'\[([^\]]+)\]' + + extracted_values = re.findall(pattern, flag_string) + + return extracted_values diff --git a/archinstall/lib/network/__init__.py b/archinstall/lib/network/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/archinstall/lib/network/wifi_handler.py b/archinstall/lib/network/wifi_handler.py new file mode 100644 index 0000000000..13fc3e4380 --- /dev/null +++ b/archinstall/lib/network/wifi_handler.py @@ -0,0 +1,280 @@ +from asyncio import sleep +from dataclasses import dataclass +from pathlib import Path +from typing import Any, assert_never + +from archinstall.lib.exceptions import SysCallError +from archinstall.lib.general import SysCommand +from archinstall.lib.models.network import WifiConfiguredNetwork, WifiNetwork +from archinstall.lib.network.wpa_supplicant import WpaSupplicantConfig +from archinstall.lib.output import debug +from archinstall.lib.translationhandler import tr +from archinstall.tui.menu_item import MenuItemGroup +from archinstall.tui.ui.components import ConfirmationScreen, InputScreen, LoadingScreen, NotifyScreen, TableSelectionScreen, tui +from archinstall.tui.ui.result import ResultType + + +@dataclass +class WpaCliResult: + success: bool + response: str | None = None + error: str | None = None + + +class WifiHandler: + def __init__(self) -> None: + tui.set_main(self) + self._wpa_config = WpaSupplicantConfig() + + def setup(self) -> Any: + result = tui.run() + return result + + async def run(self) -> None: + """ + This is the entry point that is called by components.TApp + """ + wifi_iface = self._find_wifi_interface() + + if not wifi_iface: + debug('No wifi interface found') + tui.exit(False) + return None + + prompt = tr('No network connection found') + '\n\n' + prompt += tr('Would you like to connect to a Wifi?') + '\n' + + result = await ConfirmationScreen[bool]( + MenuItemGroup.yes_no(), + header=prompt, + allow_skip=True, + allow_reset=True, + ).run() + + match result.type_: + case ResultType.Selection: + if result.value() is False: + tui.exit(False) + return None + case ResultType.Skip | ResultType.Reset: + tui.exit(False) + return None + case _: + assert_never(result) + + setup_result = await self._setup_wifi(wifi_iface) + tui.exit(setup_result) + + async def _enable_supplicant(self, wifi_iface: str) -> bool: + self._wpa_config.load_config() + + result = self._wpa_cli('status') # if it it's running it will blow up + + if result.success: + debug('wpa_supplicant already running') + return True + + if result.error and 'failed to connect to non-global ctrl_ifname'.lower() not in result.error.lower(): + debug('Unexpected wpa_cli failure') + return False + + debug('wpa_supplicant not running, trying to enable') + + try: + SysCommand(f'wpa_supplicant -B -i {wifi_iface} -c {self._wpa_config.config_file}') + result = self._wpa_cli('status') # if it it's running it will blow up + + if result.success: + debug('successfully enabled wpa_supplicant') + return True + else: + debug(f'failed to enable wpa_supplicant: {result.error}') + return False + except SysCallError as err: + debug(f'failed to enable wpa_supplicant: {err}') + return False + + def _find_wifi_interface(self) -> str | None: + net_path = Path('/sys/class/net') + + for iface in net_path.iterdir(): + maybe_wireless_path = net_path / iface / 'wireless' + if maybe_wireless_path.is_dir(): + return iface.name + + return None + + async def _setup_wifi(self, wifi_iface: str) -> bool: + debug('Setting up wifi') + + if not await self._enable_supplicant(wifi_iface): + debug('Failed to enable wpa_supplicant') + return False + + if not wifi_iface: + debug('No wifi interface found') + await NotifyScreen(header=tr('No wifi interface found')).run() + return False + + debug(f'Found wifi interface: {wifi_iface}') + + async def get_wifi_networks() -> list[WifiNetwork]: + debug('Scanning Wifi networks') + result = self._wpa_cli('scan', wifi_iface) + + if not result.success: + debug(f'Failed to scan wifi networks: {result.error}') + return [] + + await sleep(5) + return self._get_scan_results(wifi_iface) + + result = await TableSelectionScreen[WifiNetwork]( + header=tr('Select wifi network to connect to'), + loading_header=tr('Scanning wifi networks...'), + data_callback=get_wifi_networks, + allow_skip=True, + allow_reset=True, + ).run() + + match result.type_: + case ResultType.Selection: + if not result.has_data(): + debug('No networks found') + await NotifyScreen(header=tr('No wifi networks found')).run() + tui.exit(False) + return False + + network = result.value() + case ResultType.Skip | ResultType.Reset: + tui.exit(False) + return False + case _: + assert_never(result.type_) + + existing_network = self._wpa_config.get_existing_network(network.ssid) + existing_psk = existing_network.psk if existing_network else None + psk = await self._prompt_psk(existing_psk) + + if not psk: + debug('No password specified') + return False + + self._wpa_config.set_network(network, psk) + self._wpa_config.write_config() + + wpa_result = self._wpa_cli('reconfigure') + + if not wpa_result.success: + debug(f'Failed to reconfigure wpa_supplicant: {wpa_result.error}') + await self._notify_failure() + return False + + await LoadingScreen(3, 'Setting up wifi...').run() + + network_id = self._find_network_id(network.ssid, wifi_iface) + + if not network_id: + debug('Failed to find network id') + await self._notify_failure() + return False + + wpa_result = self._wpa_cli(f'enable {network_id}', wifi_iface) + + if not wpa_result.success: + debug(f'Failed to enable network: {wpa_result.error}') + await self._notify_failure() + return False + + await LoadingScreen(5, 'Connecting wifi...').run() + + return True + + async def _notify_failure(self) -> None: + await NotifyScreen(header=tr('Failed setting up wifi')).run() + + def _wpa_cli(self, command: str, iface: str | None = None) -> WpaCliResult: + cmd = 'wpa_cli' + + if iface: + cmd += f' -i {iface}' + + cmd += f' {command}' + + try: + result = SysCommand(cmd).decode() + + if 'FAIL' in result: + debug(f'wpa_cli returned FAIL: {result}') + return WpaCliResult( + success=False, + error=f'wpa_cli returned a failure: {result}', + ) + + return WpaCliResult(success=True, response=result) + except SysCallError as err: + debug(f'error running wpa_cli command: {err}') + return WpaCliResult( + success=False, + error=f'Error running wpa_cli command: {err}', + ) + + def _find_network_id(self, ssid: str, iface: str) -> int | None: + result = self._wpa_cli('list_networks', iface) + + if not result.success: + debug(f'Failed to list networks: {result.error}') + return None + + list_networks = result.response + + if not list_networks: + debug('No networks found') + return None + + existing_networks = WifiConfiguredNetwork.from_wpa_cli_output(list_networks) + + for network in existing_networks: + if network.ssid == ssid: + return network.network_id + + return None + + async def _prompt_psk(self, existing: str | None = None) -> str | None: + result = await InputScreen( + header=tr('Enter wifi password'), + password=True, + allow_skip=True, + allow_reset=True, + default_value=existing, + ).run() + + if result.type_ != ResultType.Selection: + debug('No password provided, aborting connection') + return None + + return result.value() + + def _get_scan_results(self, iface: str) -> list[WifiNetwork]: + debug(f'Retrieving scan results: {iface}') + + try: + result = self._wpa_cli('scan_results', iface) + + if not result.success: + debug(f'Failed to retrieve scan results: {result.error}') + return [] + + if not result.response: + debug('No wifi networks found') + return [] + + networks = WifiNetwork.from_wpa(result.response) + + return networks + except SysCallError as err: + debug('Unable to retrieve wifi results') + raise err + + +wifi_handler = WifiHandler() diff --git a/archinstall/lib/network/wpa_supplicant.py b/archinstall/lib/network/wpa_supplicant.py new file mode 100644 index 0000000000..935e9b4d5b --- /dev/null +++ b/archinstall/lib/network/wpa_supplicant.py @@ -0,0 +1,136 @@ +from dataclasses import dataclass, field +from pathlib import Path + +from archinstall.lib.models.network import WifiNetwork +from archinstall.lib.output import debug + + +@dataclass +class WpaSupplicantNetwork: + mappings: dict[str, str] = field(default_factory=dict) + + @property + def psk(self) -> str: + return self.mappings['psk'].strip('"') + + @property + def ssid(self) -> str: + return self.mappings['ssid'].strip('"') + + def to_config_entry(self) -> str: + wpa_net_config = '\n' + wpa_net_config += 'network={\n' + + for key, value in self.mappings.items(): + wpa_net_config += f'\t{key}={value}\n' + + if 'mesh_fwding' not in self.mappings: + wpa_net_config += '\tmesh_fwding=1\n' + + wpa_net_config += '}\n\n' + return wpa_net_config + + +class WpaSupplicantConfig: + def __init__(self) -> None: + self.config_file = Path('/etc/wpa_supplicant/wpa_supplicant.conf') + self._wpa_networks: list[WpaSupplicantNetwork] = [] + + def load_config(self) -> None: + if not self.config_file.is_file(): + debug('wpa_supplicant.conf not found, creating') + self._create_config() + else: + debug('wpa_supplicant.conf found') + content = self.config_file.read_text() + + config_header = '' + if 'ctrl_interface' not in content: + config_header += 'ctrl_interface=/run/wpa_supplicant\n' + if 'update_config' not in content: + config_header += 'update_config=1\n\n' + + if config_header: + config = config_header + content + self.config_file.write_text(config) + + self._wpa_networks = self._parse_config() + + def _config_header(self) -> str: + return 'ctrl_interface=/run/wpa_supplicant\nupdate_config=1' + + def get_existing_network(self, ssid: str) -> WpaSupplicantNetwork | None: + ssid = f'"{ssid}"' + + for network in self._wpa_networks: + if network.mappings['ssid'] == ssid: + return network + + return None + + def set_network(self, network: WifiNetwork, psk: str) -> None: + debug('setting new wifi network') + + existing_network = self.get_existing_network(network.ssid) + + if not existing_network: + wpa_net_config = WpaSupplicantNetwork( + mappings={ + 'ssid': f'"{network.ssid}"', + 'psk': f'"{psk}"', + } + ) + self._wpa_networks.append(wpa_net_config) + else: + existing_network.mappings['psk'] = f'"{psk}"' + + def write_config(self) -> None: + debug('writing wpa_supplicant config') + + config = self._config_header() + config += '\n\n' + + for network in self._wpa_networks: + config += network.to_config_entry() + + self.config_file.write_text(config) + + def _create_config(self) -> None: + self.config_file.touch() + + header = self._config_header() + self.config_file.write_text(header) + + def _parse_config(self) -> list[WpaSupplicantNetwork]: + content = self.config_file.read_text() + + networks: list[WpaSupplicantNetwork] = [] + in_network_block = False + cur_net_data: dict[str, str] = {} + + for line in content.splitlines(): + line = line.strip() + + if not line or line.startswith('#'): + continue + + if line == 'network={': + in_network_block = True + cur_net_data = {} + continue + + if in_network_block and line == '}': + new_network = WpaSupplicantNetwork( + mappings=cur_net_data, + ) + + networks.append(new_network) + in_network_block = False + continue + + if in_network_block: + if '=' in line: + key, value = line.split('=', 1) + cur_net_data[key.strip()] = value.strip() + + return networks diff --git a/archinstall/lib/profile/profiles_handler.py b/archinstall/lib/profile/profiles_handler.py index 0043e704e3..cfe85de913 100644 --- a/archinstall/lib/profile/profiles_handler.py +++ b/archinstall/lib/profile/profiles_handler.py @@ -228,13 +228,6 @@ def install_gfx_driver(self, install_session: 'Installer', driver: GfxDriver) -> headers = [f'{kernel}-headers' for kernel in install_session.kernels] # Fixes https://github.com/archlinux/archinstall/issues/585 install_session.add_additional_packages(headers) - elif driver in [GfxDriver.AllOpenSource, GfxDriver.AmdOpenSource]: - # The order of these two are important if amdgpu is installed #808 - install_session.remove_mod('amdgpu') - install_session.remove_mod('radeon') - - install_session.append_mod('amdgpu') - install_session.append_mod('radeon') driver_pkgs = driver.gfx_packages() pkg_names = [p.value for p in driver_pkgs] diff --git a/archinstall/locales/ar/LC_MESSAGES/base.po b/archinstall/locales/ar/LC_MESSAGES/base.po index 1b02e9b79b..e8a534ad1d 100644 --- a/archinstall/locales/ar/LC_MESSAGES/base.po +++ b/archinstall/locales/ar/LC_MESSAGES/base.po @@ -76,6 +76,7 @@ msgstr "حدِّد واجهة شبكة واحدة للإعداد" msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" msgstr "حدد الوضع المراد تهيئته لـ\"{}\" أو تخطى لاستخدام الوضع الافتراضي \"{}\"" +#, python-brace-format msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " msgstr "أدخِل الIP مع تجزئة الشبكة لـ{} (على سبيل المثال: 192.168.0.5/24): " @@ -587,6 +588,7 @@ msgstr "حدد خيارات وحدة التخزين الفرعية المطلو msgid "Define users with sudo privilege, by username: " msgstr "تحديد المستخدمين الذين لديهم امتياز sudo، حسب اسم المستخدم: " +#, python-brace-format msgid "[!] A log file has been created here: {}" msgstr "[!] تم إنشاء ملف سجل هنا: {}" @@ -848,9 +850,11 @@ msgstr "يتطلب أرشِنستال Archinstall امتيازات الجذر ل msgid "Select an execution mode" msgstr "تحديد وضع التنفيذ" +#, python-brace-format msgid "Unable to fetch profile from specified url: {}" msgstr "تعذر جلب ملف التعريف من عنوان url المحدد: {}" +#, python-brace-format msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" msgstr "يجب أن يكون لملفات التعريف (profile) اسم فريد، ولكن تم العثور على تعريفات ملفات التعريف (profile) ذات أسماء مكررة: {}" @@ -869,9 +873,11 @@ msgstr "حدد خيار التقسيم" msgid "Enter the root directory of the mounted devices: " msgstr "أدخل دليل الجذر للأجهزة المثبتة: " +#, python-brace-format msgid "Minimum capacity for /home partition: {}GiB\n" msgstr "الحد الأدنى لسعة القسم /home: {} جيجا بايت GiB \n" +#, python-brace-format msgid "Minimum capacity for Arch Linux partition: {}GiB" msgstr "الحد الأدنى لسعة قسم آرش لينكس (Arch Linux): {} جيجا بايت (GiB)" @@ -935,9 +941,11 @@ msgstr "أدخل قطاع نهاية القسم (النسبة المئوية أ msgid "This will remove all newly added partitions, continue?" msgstr "سيؤدي ذلك إلى إزالة جميع الأقسام المضافة حديثاً، متابعة؟" +#, python-brace-format msgid "Partition management: {}" msgstr "إدارة التقسيم: {}" +#, python-brace-format msgid "Total length: {}" msgstr "الطول الإجمالي: {}" @@ -998,6 +1006,7 @@ msgstr "غير معروف" msgid "Partition encryption" msgstr "تشفير التقسيم" +#, python-brace-format msgid " ! Formatting {} in " msgstr " ! تهيئة {} في " @@ -1022,6 +1031,7 @@ msgstr "رجوع" msgid "Please chose which greeter to install for the chosen profiles: {}" msgstr "يرجى اختيار المُرحِّب الذي سيتم تثبيته للملفات الشخصية المختارة: {}" +#, python-brace-format msgid "Environment type: {}" msgstr "نوع البيئة: {}" @@ -1214,6 +1224,7 @@ msgstr "" "\n" "ملاحظة:\n" +#, python-brace-format msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" msgstr " - الحد الأقصى للقيمة الموصى بها: {} (يسمح بـ {} تنزيلات متوازية في المرة الواحدة)" @@ -1277,6 +1288,7 @@ msgstr "تعطيل النسخ عند الكتابة" msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" msgstr "يوفر مجموعة مختارة من بيئات سطح المكتب ومديري نوافذ التجانب، مثل Gnome و KDE و Sway" +#, python-brace-format msgid "Configuration type: {}" msgstr "نوع الإعداد: {}" @@ -1403,6 +1415,7 @@ msgstr "اسم المستخدم الذي أدخلته غير صالح." msgid "Username" msgstr "اسم المستخدم" +#, python-brace-format msgid "Should \"{}\" be a superuser (sudo)?\n" msgstr "هل يجب أن يكون \"{}\" مستخدمًا خارقًا (sudo)؟\n" @@ -1469,6 +1482,7 @@ msgstr "دليل" msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)" msgstr "أدخل دليلا للتكوين (التكوينات) المراد حفظها (مُكِّن الإكمال بـtab)" +#, python-brace-format msgid "Do you want to save the configuration file(s) to {}?" msgstr "هل تريد حفظ ملف (ملفات) الضبط إلى {} ؟" @@ -1520,15 +1534,15 @@ msgstr "" msgid "Signature check" msgstr "حدد خيار التحقق من التوقيع" -#, fuzzy +#, fuzzy, python-brace-format msgid "Selected free space segment on device {}:" msgstr "القطاعات الخالية الحالية على الجهاز {}:" -#, fuzzy +#, fuzzy, python-brace-format msgid "Size: {} / {}" msgstr "الإجمالي: {} / {}" -#, fuzzy +#, fuzzy, python-brace-format msgid "Size (default: {}): " msgstr "النهاية (افتراضي: {}): " @@ -1722,7 +1736,7 @@ msgstr "" msgid "What would you like to do next?" msgstr "هل ترغب في الاستمرار؟" -#, fuzzy +#, fuzzy, python-brace-format msgid "Select which mode to configure for \"{}\"" msgstr "حدد الوضع المراد تهيئته لـ\"{}\" أو تخطى لاستخدام الوضع الافتراضي \"{}\"" @@ -1746,6 +1760,73 @@ msgstr "هل تريد حفظ ملف (ملفات) الضبط إلى {} ؟" msgid "Credentials file encryption password" msgstr "كلمة سر التشفير" -#, fuzzy +#, fuzzy, python-brace-format msgid "Repositories: {}" msgstr "اسم المرآة" + +#, fuzzy +msgid "New version available" +msgstr "لا توجد أجهزة HSM متوفرة" + +#, fuzzy +msgid "Passwordless login" +msgstr "كلمة المرور" + +msgid "Second factor login" +msgstr "" + +msgid "Bluetooth" +msgstr "" + +#, fuzzy +msgid "Would you like to configure Bluetooth?" +msgstr "هل ترغب في الاستمرار؟" + +msgid "Authentication" +msgstr "" + +msgid "Applications" +msgstr "" + +msgid "U2F login method: " +msgstr "" + +msgid "Passwordless sudo: " +msgstr "" + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "" + +msgid "Syncing the system..." +msgstr "" + +msgid "Value cannot be empty" +msgstr "" + +msgid "Snapshot type" +msgstr "" + +#, fuzzy, python-brace-format +msgid "Snapshot type: {}" +msgstr "نوع البيئة: {}" + +msgid "U2F login setup" +msgstr "" + +msgid "No U2F devices found" +msgstr "" + +msgid "U2F Login Method" +msgstr "" + +#, fuzzy +msgid "Enable passwordless sudo?" +msgstr "أدخل كلمة مرور: " + +#, fuzzy, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "اختر جهاز FIDO2 لاستخدامه في HSM" + +msgid "You may need to enter the PIN and then touch your U2F device to register it" +msgstr "" diff --git a/archinstall/locales/ca/LC_MESSAGES/base.po b/archinstall/locales/ca/LC_MESSAGES/base.po index 1c9ddd52c3..cd23b76890 100644 --- a/archinstall/locales/ca/LC_MESSAGES/base.po +++ b/archinstall/locales/ca/LC_MESSAGES/base.po @@ -71,6 +71,7 @@ msgstr "Seleccioneu una interfície de xarxa a configurar" msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" msgstr "Seleccioneu quin mode configurar per a \"{}\" o ometeu per a usar el mode predeterminat \"{}\"" +#, python-brace-format msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " msgstr "Introduïu la IP i la subxarxa per a {} (exemple: 192.168.0.5/24): " @@ -584,6 +585,7 @@ msgstr "Seleccioneu les opcions de subvolum desitjades " msgid "Define users with sudo privilege, by username: " msgstr "Definiu usuaris amb privilegi sudo, per nom d'usuari: " +#, python-brace-format msgid "[!] A log file has been created here: {}" msgstr "[!] S'ha creat un fitxer de registre aquí: {}" @@ -842,9 +844,11 @@ msgstr "Archinstall necessita permisos de root per a executar-se. Vegeu --help p msgid "Select an execution mode" msgstr "Seleccioneu un mode d'execució" +#, python-brace-format msgid "Unable to fetch profile from specified url: {}" msgstr "No es pot recuperar el perfil de la URL especificada: {}" +#, python-brace-format msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" msgstr "Els perfils han de tenir un nom únic, però s'han trobat definicions de perfil amb noms duplicats: {}" @@ -863,9 +867,11 @@ msgstr "Seleccioneu una opció de partició" msgid "Enter the root directory of the mounted devices: " msgstr "Introduïu el directori arrel dels dispositius muntats: " +#, python-brace-format msgid "Minimum capacity for /home partition: {}GiB\n" msgstr "Capacitat mínima per a la partició /home: {}GiB\n" +#, python-brace-format msgid "Minimum capacity for Arch Linux partition: {}GiB" msgstr "Capacitat mínima per a la partició Arch Linux: {}GiB" @@ -929,9 +935,11 @@ msgstr "Introduïu el sector final de la partició (percentatge o número de blo msgid "This will remove all newly added partitions, continue?" msgstr "Això eliminarà totes les particions recentment afegides, continuar?" +#, python-brace-format msgid "Partition management: {}" msgstr "Gestió de particions: {}" +#, python-brace-format msgid "Total length: {}" msgstr "Llargada total: {}" @@ -992,6 +1000,7 @@ msgstr "Desconegut" msgid "Partition encryption" msgstr "Xifrat de partició" +#, python-brace-format msgid " ! Formatting {} in " msgstr " ! Formatant {} en " @@ -1016,6 +1025,7 @@ msgstr "Tornar" msgid "Please chose which greeter to install for the chosen profiles: {}" msgstr "Si us plau, seleccioneu quin gestor d'inici de sessió instal·lar pels perfils escollits: {}" +#, python-brace-format msgid "Environment type: {}" msgstr "Tipus d'entorn: {}" @@ -1208,6 +1218,7 @@ msgstr "" "\n" "Nota:\n" +#, python-brace-format msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" msgstr " - Valor màxim recomanat : {} ( Permets {} descàrregues paral·leles simultànies )" @@ -1271,6 +1282,7 @@ msgstr "Desactivar Copy-on-Write" msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" msgstr "Proporciona una selecció d'entorns d'escriptori i gestors de finestres en mosaic, com ara GNOME, KDE Plasma, Sway" +#, python-brace-format msgid "Configuration type: {}" msgstr "Tipus de configuració: {}" @@ -1397,6 +1409,7 @@ msgstr "El nom d'usuari introduït no és vàlid" msgid "Username" msgstr "Nom d'usuari" +#, python-brace-format msgid "Should \"{}\" be a superuser (sudo)?\n" msgstr "Cal que \"{}\" sigui superusuari (sudo)?\n" @@ -1463,6 +1476,7 @@ msgstr "Directori" msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)" msgstr "Introduïu un directori on guardar les configuracions (compleció amb TAB activada)" +#, python-brace-format msgid "Do you want to save the configuration file(s) to {}?" msgstr "Voleu guardar el(s) fitxer(s) de configuració a {}?" @@ -1508,12 +1522,15 @@ msgstr "Nom" msgid "Signature check" msgstr "Verificació de signatura" +#, python-brace-format msgid "Selected free space segment on device {}:" msgstr "Segment d'espai lliure seleccionat al dispositiu {}:" +#, python-brace-format msgid "Size: {} / {}" msgstr "Mida: {} / {}" +#, python-brace-format msgid "Size (default: {}): " msgstr "Mida (per defecte: {}): " @@ -1676,6 +1693,7 @@ msgstr "Instal·lació completa" msgid "What would you like to do next?" msgstr "Què voleu fer a continuació?" +#, python-brace-format msgid "Select which mode to configure for \"{}\"" msgstr "Seleccioneu quin mode cal configurar per a \"{}\"" @@ -1694,5 +1712,74 @@ msgstr "Voleu encriptar el fitxer user_credentials.json?" msgid "Credentials file encryption password" msgstr "Contrasenya d'encriptació del fitxer de credencials" +#, python-brace-format msgid "Repositories: {}" msgstr "Repositoris: {}" + +#, fuzzy +msgid "New version available" +msgstr "No hi ha dispositius HSM disponibles" + +#, fuzzy +msgid "Passwordless login" +msgstr "Contrasenya" + +msgid "Second factor login" +msgstr "" + +msgid "Bluetooth" +msgstr "" + +#, fuzzy +msgid "Would you like to configure Bluetooth?" +msgstr "Voleu continuar?" + +msgid "Authentication" +msgstr "" + +msgid "Applications" +msgstr "" + +msgid "U2F login method: " +msgstr "" + +msgid "Passwordless sudo: " +msgstr "" + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "" + +msgid "Syncing the system..." +msgstr "" + +#, fuzzy +msgid "Value cannot be empty" +msgstr "El temps d'iteració no pot ser buit" + +msgid "Snapshot type" +msgstr "" + +#, fuzzy, python-brace-format +msgid "Snapshot type: {}" +msgstr "Tipus d'entorn: {}" + +msgid "U2F login setup" +msgstr "" + +msgid "No U2F devices found" +msgstr "" + +msgid "U2F Login Method" +msgstr "" + +#, fuzzy +msgid "Enable passwordless sudo?" +msgstr "Introduïu una contrasenya: " + +#, fuzzy, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "Seleccioneu un dispositiu FIDO2 per a utilitzar amb HSM" + +msgid "You may need to enter the PIN and then touch your U2F device to register it" +msgstr "" diff --git a/archinstall/locales/cs/LC_MESSAGES/base.po b/archinstall/locales/cs/LC_MESSAGES/base.po index 126e26f0bd..0799e69a92 100644 --- a/archinstall/locales/cs/LC_MESSAGES/base.po +++ b/archinstall/locales/cs/LC_MESSAGES/base.po @@ -71,6 +71,7 @@ msgstr "Zvolte síťové rozhraní ke konfiguraci" msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" msgstr "Zvolte který režim má být nastaven pro \"{}\" nebo přeskočte pro použití výchozího režimu \"{}\"" +#, python-brace-format msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " msgstr "Zadejte IP a podsíť pro {} (např. 192.168.0.5/24) " @@ -578,6 +579,7 @@ msgstr "Zvolte požadované přepínače podsvazku " msgid "Define users with sudo privilege, by username: " msgstr "Specifikace uživatelů s oprávněními sudo, pomocí uživatelského jména: " +#, python-brace-format msgid "[!] A log file has been created here: {}" msgstr "[!] Soubor s protokoly byl uložen zde: {}" @@ -834,9 +836,11 @@ msgstr "Archinstall vyžaduje ke spuštění oprávnění správce (root). Použ msgid "Select an execution mode" msgstr "Zvolte způsob provedení" +#, python-brace-format msgid "Unable to fetch profile from specified url: {}" msgstr "Nepodařilo se získat profil ze zadané url: {}" +#, python-brace-format msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" msgstr "Profily musí mít unikátní jméno. Následující duplicity byly nalezeny: {}" @@ -855,9 +859,11 @@ msgstr "Zvolte možnosti rozdělení disku" msgid "Enter the root directory of the mounted devices: " msgstr "Zadejte kořenový adresář připojených zařízení: " +#, python-brace-format msgid "Minimum capacity for /home partition: {}GiB\n" msgstr "Minimální kapacita pro oddíl /home: {}GiB\n" +#, python-brace-format msgid "Minimum capacity for Arch Linux partition: {}GiB" msgstr "Minimální kapacita pro oddíl s Arch Linux: {}GiB" @@ -921,9 +927,11 @@ msgstr "Zadejte koncový sektor oddílu (procenta nebo číslo bloku, výchozí: msgid "This will remove all newly added partitions, continue?" msgstr "Tímto smažete všechny nově vytvořené oddíly, přejete si pokračovat?" +#, python-brace-format msgid "Partition management: {}" msgstr "Správa diskových oddílů: {}" +#, python-brace-format msgid "Total length: {}" msgstr "Celková délka: {}" @@ -984,6 +992,7 @@ msgstr "Neznámý" msgid "Partition encryption" msgstr "Šifrování diskového oddílu" +#, python-brace-format msgid " ! Formatting {} in " msgstr " ! Formátuji {} na " @@ -1008,6 +1017,7 @@ msgstr "Zpět" msgid "Please chose which greeter to install for the chosen profiles: {}" msgstr "Prosím vyberte přihlašovací obrazovku k instalaci pro vybraný profil: {}" +#, python-brace-format msgid "Environment type: {}" msgstr "Typ prostředí: {}" @@ -1200,6 +1210,7 @@ msgstr "" "\n" "Poznámka:\n" +#, python-brace-format msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" msgstr " - Maximální doporučená hodnota : {} (Povolí {} paralelních stahování naráz )" @@ -1263,6 +1274,7 @@ msgstr "Zakázat Copy-on-Write" msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" msgstr "Nabízí výběr desktopových prostředí a dlaždicových správců oken, např. GNOME, KDE Plasma, Sway" +#, python-brace-format msgid "Configuration type: {}" msgstr "Typ konfigurace: {}" @@ -1389,6 +1401,7 @@ msgstr "Zadané uživatelské jméno není platné" msgid "Username" msgstr "Uživatelské jméno" +#, python-brace-format msgid "Should \"{}\" be a superuser (sudo)?\n" msgstr "Má být \"{}\" superuživatelem (sudoer)?\n" @@ -1455,6 +1468,7 @@ msgstr "Adresář" msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)" msgstr "Zadejte adresář pro uložení konfigurace (doplňování pomocí tab je zapnuto)" +#, python-brace-format msgid "Do you want to save the configuration file(s) to {}?" msgstr "Chcete uložit konfigurační soubor(y) do {}?" @@ -1500,12 +1514,15 @@ msgstr "Jméno" msgid "Signature check" msgstr "Kontrola podpisu" +#, python-brace-format msgid "Selected free space segment on device {}:" msgstr "Vybrané volné sektory na zařízení {}:" +#, python-brace-format msgid "Size: {} / {}" msgstr "Velikost: {} / {}" +#, python-brace-format msgid "Size (default: {}): " msgstr "Velikost (výchozí: {}): " @@ -1668,6 +1685,7 @@ msgstr "Instalace dokončena" msgid "What would you like to do next?" msgstr "Co si přejete udělat dál?" +#, python-brace-format msgid "Select which mode to configure for \"{}\"" msgstr "Zvolte který režim má být nastaven pro \"{}\"" @@ -1686,5 +1704,73 @@ msgstr "Chcete zašifrovat soubor user_credentials.json?" msgid "Credentials file encryption password" msgstr "Heslo pro zašifrování souboru s přihlašovacími údaji" +#, python-brace-format msgid "Repositories: {}" msgstr "Repozitáře: {}" + +#, fuzzy +msgid "New version available" +msgstr "Žádné HSM zařízení není dostupné" + +#, fuzzy +msgid "Passwordless login" +msgstr "Heslo" + +msgid "Second factor login" +msgstr "" + +msgid "Bluetooth" +msgstr "" + +#, fuzzy +msgid "Would you like to configure Bluetooth?" +msgstr "Přejete si pokračovat?" + +msgid "Authentication" +msgstr "" + +msgid "Applications" +msgstr "" + +msgid "U2F login method: " +msgstr "" + +msgid "Passwordless sudo: " +msgstr "" + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "" + +msgid "Syncing the system..." +msgstr "" + +msgid "Value cannot be empty" +msgstr "" + +msgid "Snapshot type" +msgstr "" + +#, fuzzy, python-brace-format +msgid "Snapshot type: {}" +msgstr "Typ prostředí: {}" + +msgid "U2F login setup" +msgstr "" + +msgid "No U2F devices found" +msgstr "" + +msgid "U2F Login Method" +msgstr "" + +#, fuzzy +msgid "Enable passwordless sudo?" +msgstr "Zadejte heslo: " + +#, fuzzy, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "Vyberte FIDO2 zařízení abyste mohli používat HSM" + +msgid "You may need to enter the PIN and then touch your U2F device to register it" +msgstr "" diff --git a/archinstall/locales/de/LC_MESSAGES/base.po b/archinstall/locales/de/LC_MESSAGES/base.po index 46f10b3712..08fa08a0e5 100644 --- a/archinstall/locales/de/LC_MESSAGES/base.po +++ b/archinstall/locales/de/LC_MESSAGES/base.po @@ -39,16 +39,16 @@ msgid "Should this user be a superuser (sudoer)?" msgstr "Soll dieser Benutzer ein Superuser sein (sudoer)?" msgid "Select a timezone" -msgstr "Bitte wählen Sie eine Zeitzone aus" +msgstr "Wählen Sie eine Zeitzone aus" msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?" msgstr "Möchten Sie GRUB als Bootloader anstelle von systemd-boot verwenden?" msgid "Choose a bootloader" -msgstr "Bitte wählen Sie einen Bootloader aus" +msgstr "Wählen Sie einen Bootloader aus" msgid "Choose an audio server" -msgstr "Bitte wählen Sie einen Audioserver aus" +msgstr "Wählen Sie einen Audioserver aus" msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed." msgstr "Nur Pakete wie base, base-devel, linux, linux-firmware, efibootmgr und optionale Profilpakete werden installiert." @@ -66,23 +66,23 @@ msgid "Use NetworkManager (necessary for configuring internet graphically in GNO msgstr "NetworkManager nutzen (notwendig um Internetverbindungen grafisch in GNOME und KDE einzustellen)" msgid "Select one network interface to configure" -msgstr "Bitte wählen Sie einen Netzwerkadapter zur Konfiguration aus" +msgstr "Wählen Sie einen Netzwerkadapter zur Konfiguration aus" msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" -msgstr "Bitte wählen Sie einen Modus zur Konfiguration von \"{}\" aus oder überspringen, um mit dem voreingestellten Modus \"{}\" fortzufahren" +msgstr "Wählen Sie einen Modus zur Konfiguration von \"{}\" aus oder überspringen, um mit dem voreingestellten Modus \"{}\" fortzufahren" #, python-brace-format msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " -msgstr "Bitte geben Sie die IP-Adresse mit Subnetzgröße für {} ein (z.B. 192.168.0.5/24): " +msgstr "Geben Sie die IP-Adresse mit Subnetzgröße für {} ein (z.B. 192.168.0.5/24): " msgid "Enter your gateway (router) IP address or leave blank for none: " -msgstr "Bitte geben Sie das Gateway (Router) IP-Adresse ein (leer lassen für keines): " +msgstr "Geben Sie das Gateway (Router) IP-Adresse ein (leer lassen für keines): " msgid "Enter your DNS servers (space separated, blank for none): " -msgstr "Bitte geben Sie die DNS-Server ein (mit Leerzeichen getrennt oder leer lassen für keinen Server): " +msgstr "Geben Sie die DNS-Server ein (mit Leerzeichen getrennt oder leer lassen für keinen Server): " msgid "Select which filesystem your main partition should use" -msgstr "Bitte wählen Sie ein Dateisystem aus, welches für die Hauptpartition verwendet werden soll" +msgstr "Wählen Sie ein Dateisystem aus, welches für die Hauptpartition verwendet werden soll" msgid "Current partition layout" msgstr "Momentanes Partitionslayout" @@ -91,17 +91,17 @@ msgid "" "Select what to do with\n" "{}" msgstr "" -"Bitte wählen Sie eine Aktion aus für\n" +"Wählen Sie eine Aktion aus für\n" "{}" msgid "Enter a desired filesystem type for the partition" -msgstr "Bitte wählen Sie den gewünschten Dateisystemtyp für die Partition aus" +msgstr "Wählen Sie den gewünschten Dateisystemtyp für die Partition aus" msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): " -msgstr "Bitte geben Sie die Startposition ein (in parted Einheiten: s, GB, %, etc. ; default: {}): " +msgstr "Geben Sie die Startposition ein (in parted Einheiten: s, GB, %, etc. ; default: {}): " msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): " -msgstr "Bitte geben Sie die Endposition ein (in parted Einheiten: s, GB, %, etc. ; default: {}): " +msgstr "Geben Sie die Endposition ein (in parted Einheiten: s, GB, %, etc. ; default: {}): " msgid "{} contains queued partitions, this will remove those, are you sure?" msgstr "{} enthält Partitionen in der Warteschlange, diese werden damit entfernt, sind Sie sicher?" @@ -128,7 +128,7 @@ msgid " * Partition mount-points are relative to inside the installation, the bo msgstr " * Die Einhängeorte sind relativ zur Installation, boot würde beispielsweise /boot entsprechen." msgid "Select where to mount partition (leave blank to remove mountpoint): " -msgstr "Bitte geben Sie an wo die Partition eingehängt werden soll (leer lassen um den Einhängeort zu entfernen): " +msgstr "Geben Sie an wo die Partition eingehängt werden soll (leer lassen um den Einhängeort zu entfernen): " msgid "" "{}\n" @@ -137,7 +137,7 @@ msgid "" msgstr "" "{}\n" "\n" -"Bitte wählen Sie aus, welche Partition formatiert werden soll" +"Wählen Sie aus, welche Partition formatiert werden soll" msgid "" "{}\n" @@ -146,7 +146,7 @@ msgid "" msgstr "" "{}\n" "\n" -"Bitte wählen Sie aus, welche Partition verschlüsselt werden soll" +"Wählen Sie aus, welche Partition verschlüsselt werden soll" msgid "" "{}\n" @@ -155,7 +155,7 @@ msgid "" msgstr "" "{}\n" "\n" -"Bitte wählen Sie aus, welche Partition bootfähig markiert werden soll" +"Wählen Sie aus, welche Partition bootfähig markiert werden soll" msgid "" "{}\n" @@ -167,7 +167,7 @@ msgstr "" "Bitte wählen Sie aus, auf welcher Partition ein Dateisystem erstellt werden soll" msgid "Enter a desired filesystem type for the partition: " -msgstr "Bitte geben Sie einen gewünschten Dateisystemtyp für die Partition ein: " +msgstr "Geben Sie einen gewünschten Dateisystemtyp für die Partition ein: " msgid "Archinstall language" msgstr "Sprache für Archinstall" @@ -176,31 +176,31 @@ msgid "Wipe all selected drives and use a best-effort default partition layout" msgstr "Alle Laufwerke löschen und ein empfohlenes Partitionslayout verwenden" msgid "Select what to do with each individual drive (followed by partition usage)" -msgstr "Bitte geben Sie individuell an, was mit jedem Laufwerk geschehen soll" +msgstr "Geben Sie individuell an, was mit jedem Laufwerk geschehen soll" msgid "Select what you wish to do with the selected block devices" -msgstr "Bitte wählen Sie was mit den ausgewählten Geräten machen wollen" +msgstr "Wählen Sie aus, was Sie mit den ausgewählten Blockgeräten tun möchten" msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments" msgstr "Dies ist eine Auflistung vorprogrammierter Profile, die es einfacher ermöglichen, Dinge wie Desktop-Umgebungen zu installieren" msgid "Select keyboard layout" -msgstr "Bitte wählen Sie ein Tastaturlayout aus" +msgstr "Wählen Sie ein Tastaturlayout aus" msgid "Select one of the regions to download packages from" -msgstr "Bitte wählen Sie eine Region zum herunterladen von Paketen aus" +msgstr "Wählen Sie eine Region zum herunterladen von Paketen aus" msgid "Select one or more hard drives to use and configure" -msgstr "Bitte wählen Sie ein oder mehrere Laufwerk(e) aus, die konfiguriert und verwendet werden sollen" +msgstr "Wählen Sie ein oder mehrere Laufwerk(e) aus, die konfiguriert und verwendet werden sollen" msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options." -msgstr "Für die beste Kompatibilität mit ihrer AMD Hardware, sollten Sie womöglich die quelloffenen oder andernfalls AMD/ATI-Optionen verwenden." +msgstr "Für die beste Kompatibilität mit Ihrer AMD Hardware, sollten Sie womöglich die quelloffenen oder andernfalls AMD/ATI-Optionen verwenden." msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n" -msgstr "Für die beste Kompatibilität mit ihrer Intel Hardware, sollten Sie womöglich die quelloffenen oder andernfalls Intel-Optionen verwenden.\n" +msgstr "Für die beste Kompatibilität mit Ihrer Intel Hardware, sollten Sie womöglich die quelloffenen oder andernfalls Intel-Optionen verwenden.\n" msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n" -msgstr "Für die beste Kompatibilität mit ihrer Nvidia-Hardware, sollten Sie den proprietären Nvidia-Treiber verwenden.\n" +msgstr "Für die beste Kompatibilität mit Ihrer Nvidia-Hardware, sollten Sie den proprietären Nvidia-Treiber verwenden.\n" msgid "" "\n" @@ -209,31 +209,31 @@ msgid "" msgstr "" "\n" "\n" -"Bitte wählen Sie einen Grafikkartentreiber aus oder leer lassen, um alle quelloffenen Treiber zu installieren" +"Wählen Sie einen Grafikkartentreiber aus oder leer lassen, um alle quelloffenen Treiber zu installieren" msgid "All open-source (default)" -msgstr "Alle quelloffene (Standard)" +msgstr "Alle quelloffenen (Standard)" msgid "Choose which kernels to use or leave blank for default \"{}\"" -msgstr "Bitte wählen Sie welche Kernel benutzt werden sollen oder leer lassen für Standard \"{}\"" +msgstr "Wählen Sie welche Kernel benutzt werden sollen oder leer lassen für Standard \"{}\"" msgid "Choose which locale language to use" -msgstr "Bitte wählen Sie aus, welche lokale Sprache verwendet werden soll" +msgstr "Wählen Sie aus, welche lokale Sprache verwendet werden soll" msgid "Choose which locale encoding to use" -msgstr "Bitte wählen Sie aus, welche lokale Kodierung verwendet werden soll" +msgstr "Wählen Sie aus, welche lokale Kodierung verwendet werden soll" msgid "Select one of the values shown below: " -msgstr "Bitte wählen Sie einen der folgenden Werte aus: " +msgstr "Wählen Sie einen der folgenden Werte aus: " msgid "Select one or more of the options below: " -msgstr "Bitte wählen Sie eine oder mehrere Option(en) aus: " +msgstr "Wählen Sie eine oder mehrere Option(en) aus: " msgid "Adding partition...." msgstr "Partition wird hinzugefügt..." msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's." -msgstr "Bitte geben Sie einen gültigen Dateisystemtyp ein um fortzufahren. Verwenden Sie `man parted` um eine Liste gültiger Typen einzusehen." +msgstr "Geben Sie einen gültigen Dateisystemtyp ein um fortzufahren. Verwenden Sie `man parted` um eine Liste gültiger Typen einzusehen." msgid "Error: Listing profiles on URL \"{}\" resulted in:" msgstr "Fehler: Auflistung von Profilen mit URL \"{}\" ergab:" @@ -293,7 +293,7 @@ msgid "Network configuration" msgstr "Netzwerkkonfiguration" msgid "Automatic time sync (NTP)" -msgstr "Autom. Zeitsynchronisierung (NTP)" +msgstr "Automatische Zeitsynchronisierung (NTP)" msgid "Install ({} config(s) missing)" msgstr "Installieren ({} Konfiguration(en) ausständig)" @@ -334,7 +334,7 @@ msgid "Mark/Unmark a partition as bootable (automatic for /boot)" msgstr "Markieren, ob eine Partition als bootfähig sein soll (automatisch für /boot)" msgid "Set desired filesystem for a partition" -msgstr "Bitte wählen Sie einen Dateisystemtyp für die Partition aus" +msgstr "Wählen Sie einen Dateisystemtyp für die Partition aus" msgid "Abort" msgstr "Abbrechen" @@ -403,10 +403,10 @@ msgstr "ESC um zu überspringen\n" msgid "" "\n" -" Choose an object from the list, and select one of the available actions for it to execute" +"Choose an object from the list, and select one of the available actions for it to execute" msgstr "" "\n" -" Wählen Sie ein Objekt aus der Liste aus und wählen Sie anschließend eine Aktion zum ausführen dafür aus" +"Wählen Sie ein Objekt aus der Liste und eine Aktion, die Sie ausführen möchten." msgid "Cancel" msgstr "Abbrechen" @@ -433,14 +433,14 @@ msgid "Copy to new key:" msgstr "Kopieren zum neuen Schlüssel:" msgid "Unknown nic type: {}. Possible values are {}" -msgstr "Nicht erkannter Netzwerinterfacecontroller: {}. Erlaubte Werte {}" +msgstr "Nicht erkannter Netzwerkinterfacecontroller: {}. Erlaubte Werte {}" msgid "" "\n" "This is your chosen configuration:" msgstr "" "\n" -"Dies ist ihre gewählte Konfiguration:" +"Dies ist Ihre gewählte Konfiguration:" msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate." msgstr "Pacman läuft bereits, warten für maximal 10 Minuten auf Beendigung." @@ -458,7 +458,7 @@ msgid "Change password" msgstr "Passwort ändern" msgid "Promote/Demote user" -msgstr "Benutzerkonto Berechtigen/Einschränken" +msgstr "Benutzerkonto berechtigen/einschränken" msgid "Delete User" msgstr "Benutzerkonto löschen" @@ -483,7 +483,7 @@ msgid "No network configuration" msgstr "Keine Netzwerkkonfiguration" msgid "Set desired subvolumes on a btrfs partition" -msgstr "Bitte wählen Sie Subvolumes für die Btrfs-Partition" +msgstr "Legen Sie das gewünschte Subvolume für die Btrfs-Partition fest" msgid "" "{}\n" @@ -492,7 +492,7 @@ msgid "" msgstr "" "{}\n" "\n" -"Bitte wählen Sie, auf welcher Partition Subvolumes eingerichtet werden sollen" +"Wählen Sie, auf welcher Partition Subvolumes eingerichtet werden sollen" msgid "Manage btrfs subvolumes for current partition" msgstr "Bearbeiten von Btrfs-Subvolumes für die aktuelle Partition" @@ -504,7 +504,7 @@ msgid "Save user configuration" msgstr "Benutzerkonfiguration speichern" msgid "Save user credentials" -msgstr "Benutzeranmeldedaten speichern" +msgstr "Benutzeranmeldeinformationen speichern" msgid "Save disk layout" msgstr "Laufwerklayout speichern" @@ -513,13 +513,13 @@ msgid "Save all" msgstr "Alles speichern" msgid "Choose which configuration to save" -msgstr "Bitte wählen Sie eine Konfiguration aus, welche gespeichert werden soll" +msgstr "Wählen Sie eine Konfiguration aus, welche gespeichert werden soll" msgid "Enter a directory for the configuration(s) to be saved: " msgstr "Geben Sie einen Ordner an, in dem Konfigurationen gespeichert werden sollen: " msgid "Not a valid directory: {}" -msgstr "Ordner existiert nicht: {}" +msgstr "Kein gültiger Ordner: {}" msgid "The password you are using seems to be weak," msgstr "Das gewählte Passwort ist schwach," @@ -577,7 +577,7 @@ msgid "Subvolume name :" msgstr "Subvolume-Name:" msgid "Select a mount point :" -msgstr "Bitte wählen Sie einen Einhängeort aus:" +msgstr "Wählen Sie einen Einhängeort aus:" msgid "Select the desired subvolume options " msgstr "Wählen Sie die gewünschten Optionen für das Subvolume " @@ -593,7 +593,7 @@ msgid "Would you like to use BTRFS subvolumes with a default structure?" msgstr "Möchten Sie Btrfs-Subvolumes mit vorgegebener Struktur verwenden?" msgid "Would you like to use BTRFS compression?" -msgstr "Möchten sie Btrfs-Komprimierung verwenden?" +msgstr "Möchten Sie Btrfs-Komprimierung verwenden?" msgid "Would you like to create a separate partition for /home?" msgstr "Möchten Sie eine separate Partition für /home erstellen?" @@ -653,7 +653,7 @@ msgid "Provides a selection of desktop environments and tiling window managers, msgstr "Auswahl von Desktopumgebungen und kachelnden Fenstermanagern, z.B. GNOME, KDE, Sway" msgid "Select your desired desktop environment" -msgstr "Wählen Sie ihre gewünschte Desktopumgebung aus" +msgstr "Wählen Sie Ihre gewünschte Desktopumgebung aus" msgid "A very basic installation that allows you to customize Arch Linux as you see fit." msgstr "Eine sehr minimale Installation, welche es erlaubt Arch Linux selber nach eigenen Wünschen anzupassen." @@ -668,7 +668,7 @@ msgid "Installs a minimal system as well as xorg and graphics drivers." msgstr "Installiert ein minimales System inklusive Xorg und Grafiktreibern." msgid "Press Enter to continue." -msgstr "Drücken sie Enter um fortzufahren." +msgstr "Drücken Sie Enter, um fortzufahren." msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?" msgstr "Möchten Sie in das neu installierte System über chroot zugreifen um noch weitere, manuelle Konfigurationen vorzunehmen?" @@ -677,10 +677,10 @@ msgid "Are you sure you want to reset this setting?" msgstr "Wollen Sie wirklich diese Konfiguration zurücksetzen?" msgid "Select one or more hard drives to use and configure\n" -msgstr "Bitte wählen Sie ein oder mehrere Laufwerk(e) aus, die konfiguriert und verwendet werden sollen\n" +msgstr "Wählen Sie ein oder mehrere Laufwerk(e) aus, die konfiguriert und verwendet werden sollen\n" msgid "Any modifications to the existing setting will reset the disk layout!" -msgstr "Modifikationen zur momentanen Konfiguration führen zu einem Löschen der Laufwerkskonfiguration!" +msgstr "Jede Änderung der bestehenden Einstellung führt zu einer Zurücksetzung des Datenträgerlayouts!" msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?" msgstr "Wenn Sie die Laufwerkskonfiguration ändern, dann wird das Laufwerkslayout zurückgesetzt. Sind Sie sicher?" @@ -702,13 +702,13 @@ msgid "(default)" msgstr "(Standard)" msgid "Use ESC to skip" -msgstr "ESC drücken um zu überspringen" +msgstr "Drücken Sie ESC, um zu überspringen" msgid "" "Use CTRL+C to reset current selection\n" "\n" msgstr "" -"Strg+C drücken um die aktuelle Auswahl zurückzusetzen\n" +"Drücken Sie Strg+C, um die aktuelle Auswahl zurückzusetzen\n" "\n" msgid "Copy to: " @@ -736,7 +736,7 @@ msgid "Select one of the disks or skip and use /mnt as default" msgstr "Wählen Sie ein Laufwerk aus oder überspringen, um /mnt als Standard zu verwenden" msgid "Select which partitions to mark for formatting:" -msgstr "Bitte wählen Sie aus, welche Partitionen formatiert werden sollen:" +msgstr "Wählen Sie aus, welche Partitionen formatiert werden sollen:" msgid "Use HSM to unlock encrypted drive" msgstr "HSM verwenden, um verschlüsselte Platte zu entsperren" @@ -766,7 +766,7 @@ msgid "Should \"{}\" be a superuser (sudo)?" msgstr "Soll {} ein Superuser sein (sudo)?" msgid "Select which partitions to encrypt" -msgstr "Bitte wählen Sie aus, welche Partitionen verschlüsselt werden sollen" +msgstr "Wählen Sie aus, welche Partitionen verschlüsselt werden sollen" msgid "very weak" msgstr "Sehr schwach" @@ -821,7 +821,7 @@ msgid "Parallel Downloads" msgstr "Parallele Downloads" msgid "ESC to skip" -msgstr "ESC zum Überspringen" +msgstr "Drücken Sie ESC, um zu überspringen" msgid "CTRL+C to reset" msgstr "Strg+C zum zurücksetzen" @@ -853,7 +853,7 @@ msgid "Profiles must have unique name, but profile definitions with duplicate na msgstr "Profile müssen einen eindeutige Namen haben, aber Profildefinition mit gleichem Namen gefunden: {}" msgid "Select one or more devices to use and configure" -msgstr "Bitte wählen Sie ein oder mehrere Geräte aus, die konfiguriert und verwendet werden sollen" +msgstr "Wählen Sie ein oder mehrere Geräte aus, die konfiguriert und verwendet werden sollen" msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?" msgstr "Wenn Sie die Laufwerksauswahl zurücksetzen, dann wird das auch das Laufwerkslayout zurückgesetzt. Sind Sie sicher?" @@ -915,7 +915,7 @@ msgid "Partition mount-points are relative to inside the installation, the boot msgstr "Die Einhängeorte sind relativ zur Installation, boot würde beispielsweise /boot entsprechen." msgid "If mountpoint /boot is set, then the partition will also be marked as bootable." -msgstr "Wenn der Einhängeort auf /boot gesetzt ist, wird die Partition ebenfalls als bootbar makiert." +msgstr "Wenn der Einhängeort auf /boot gesetzt ist, wird die Partition ebenfalls als bootbar markiert." msgid "Mountpoint: " msgstr "Einhängeort: " @@ -927,10 +927,10 @@ msgid "Total sectors: {}" msgstr "Sektoren insgesamt: {}" msgid "Enter the start sector (default: {}): " -msgstr "Bitte geben Sie den Startsektor ein (Standard: {}): " +msgstr "Geben Sie den Startsektor ein (Standard: {}): " msgid "Enter the end sector of the partition (percentage or block number, default: {}): " -msgstr "Bitte geben Sie den Endsektor der Partition ein (Prozent oder Blocknummer, Standard: {}): " +msgstr "Geben Sie den Endsektor der Partition ein (Prozent oder Blocknummer, Standard: {}): " msgid "This will remove all newly added partitions, continue?" msgstr "Dies wird alle neu hinzugefügten Partitionen entfernen, fortfahren?" @@ -968,7 +968,7 @@ msgid "Iteration time must be at most 120000ms" msgstr "Die Entschlüsselungsdauer darf maximal 120000 ms betragen" msgid "Please enter a valid number" -msgstr "Bitte geben Sie eine gültige Zahl ein" +msgstr "Geben Sie eine gültige Zahl ein" msgid "Partitions" msgstr "Partitionen" @@ -1068,7 +1068,7 @@ msgid "" msgstr "" "\n" "\n" -"Bitte wählen sie einen Grafiktreiber aus oder leer lassen um alle quelloffenen Treiber zu installieren" +"Wählen sie einen Grafiktreiber aus oder leer lassen um alle quelloffenen Treiber zu installieren" msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)" msgstr "Sway benötigt Zugriff auf ihren Seat (Sammlung von Hardwaregeräten wie Tastatur, Maus, usw.)" @@ -1080,7 +1080,7 @@ msgid "" msgstr "" "\n" "\n" -"Option auswählen, um Sway Zugriff auf deine Hardware zu geben" +"Option auswählen, um Sway Zugriff auf Ihre Hardware zu geben" msgid "Graphics driver" msgstr "Grafiktreiber" @@ -1183,10 +1183,10 @@ msgid "If no unit is provided, the value is interpreted as sectors" msgstr "Wenn keine Einheit angegeben wurde, wird der Wert als Sektoren interpretiert" msgid "Enter start (default: sector {}): " -msgstr "Bitte geben Sie den Anfang ein (Standard: Sektor {}): " +msgstr "Geben Sie den Anfang ein (Standard: Sektor {}): " msgid "Enter end (default: {}): " -msgstr "Bitte geben Sie das Ende ein (Standard: {}): " +msgstr "Geben Sie das Ende ein (Standard: {}): " msgid "Unable to determine fido2 devices. Is libfido2 installed?" msgstr "Fehler beim Finden der fido2 Geräte. Ist libfido2 installiert?" @@ -1239,7 +1239,7 @@ msgid "" msgstr "" "\n" "\n" -"Eine Option auswählen, um Hyprland Zugriff auf deine Hardware zu geben" +"Eine Option auswählen, um Hyprland Zugriff auf Ihre Hardware zu geben" msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..." msgstr "Alle eingegebenen Werte können mit einer Einheit angegeben werden: %, B, KB, KiB, MB, MiB..." @@ -1297,7 +1297,7 @@ msgid "Use NetworkManager (necessary to configure internet graphically in GNOME msgstr "NetworkManager nutzen (notwendig, um Internetverbindungen grafisch in GNOME und KDE Plasma einzustellen)" msgid "Select a LVM option" -msgstr "Bitte wählen Sie eine LVM-Option aus" +msgstr "Wählen Sie eine LVM-Option aus" msgid "Partitioning" msgstr "Partitionierung" @@ -1318,7 +1318,7 @@ msgid "LVM volumes to be encrypted" msgstr "LVM-Volumes, die verschlüsselt werden sollen" msgid "Select which LVM volumes to encrypt" -msgstr "Bitte wählen Sie aus, welche LVM-Volumes verschlüsselt werden sollen" +msgstr "Wählen Sie aus, welche LVM-Volumes verschlüsselt werden sollen" msgid "Default layout" msgstr "Standardlayout" @@ -1348,10 +1348,10 @@ msgid " (default)" msgstr " (Standard)" msgid "Press Ctrl+h for help" -msgstr "Drücken Sie Strg+h für Hilfe" +msgstr "Drücken Sie Strg+h, für Hilfe" msgid "Choose an option to give Sway access to your hardware" -msgstr "Eine Option auswählen, um Sway Zugriff auf deine Hardware zu geben" +msgstr "Eine Option auswählen, um Sway Zugriff auf Ihre Hardware zu geben" msgid "Seat access" msgstr "Seat-Zugriff" @@ -1378,10 +1378,10 @@ msgid "Invalid size" msgstr "Ungültige Größe" msgid "Start (default: sector {}): " -msgstr "Bitte geben Sie den Anfang ein (Standard: Sektor {}): " +msgstr "Geben Sie den Anfang ein (Standard: Sektor {}): " msgid "End (default: {}): " -msgstr "Bitte geben Sie das Ende ein (Standard: {}): " +msgstr "Geben Sie das Ende ein (Standard: {}): " msgid "Subvolume name" msgstr "Name des Subvolumes" @@ -1427,13 +1427,13 @@ msgid "IP address" msgstr "IP-Adresse" msgid "Enter your gateway (router) IP address (leave blank for none)" -msgstr "Bitte geben Sie die IP-Adresse des Gateways (Router) ein (leer lassen für keines)" +msgstr "Geben Sie die IP-Adresse des Gateways (Router) ein (leer lassen für keines)" msgid "Gateway address" msgstr "Gateway-Adresse" msgid "Enter your DNS servers with space separated (leave blank for none)" -msgstr "Bitte geben Sie die DNS-Server ein (mit Leerzeichen getrennt; leer lassen für keinen Server)" +msgstr "Geben Sie die DNS-Server ein (mit Leerzeichen getrennt; leer lassen für keinen Server)" msgid "DNS servers" msgstr "DNS-Server" @@ -1665,13 +1665,13 @@ msgid "labwc needs access to your seat (collection of hardware devices i.e. keyb msgstr "labwc benötigt Zugriff auf ihren Seat (Sammlung von Hardwaregeräten wie Tastatur, Maus, usw.)" msgid "Choose an option to give labwc access to your hardware" -msgstr "Option auswählen, um labwc Zugriff auf deine Hardware zu geben" +msgstr "Option auswählen, um labwc Zugriff auf Ihre Hardware zu geben" msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)" msgstr "niri benötigt Zugriff auf ihren Seat (Sammlung von Hardwaregeräten wie Tastatur, Maus, usw.)" msgid "Choose an option to give niri access to your hardware" -msgstr "Option auswählen, um niri Zugriff auf deine Hardware zu geben" +msgstr "Option auswählen, um niri Zugriff auf Ihre Hardware zu geben" msgid "Mark/Unmark as ESP" msgstr "Als ESP markieren bzw. nicht markieren" @@ -1696,7 +1696,7 @@ msgstr "Was möchten Sie als nächstes tun?" #, python-brace-format msgid "Select which mode to configure for \"{}\"" -msgstr "Bitte wählen Sie einen Modus zur Konfiguration von \"{}\"" +msgstr "Wählen Sie einen Modus zur Konfiguration von \"{}\"" msgid "Incorrect credentials file decryption password" msgstr "Ungültiges Passwort für die Entschlüsselung der Anmeldedaten-Datei" diff --git a/archinstall/locales/el/LC_MESSAGES/base.mo b/archinstall/locales/el/LC_MESSAGES/base.mo index ec706852ed4a11b00ed252e921572f9c0d3b38f4..cee51a48df5cd78c3c70966eda3d8ec0fd3e8c3a 100644 GIT binary patch delta 5551 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 S`ER>L!Ceg!P2V0`=6?XtTW*8^ delta 11218 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 ZJ_T2*`B|j9#^)jKrw*6#M1S7i>wnw^HoE`- diff --git a/archinstall/locales/fr/LC_MESSAGES/base.po b/archinstall/locales/fr/LC_MESSAGES/base.po index f44dbfd17d..7c98ab268f 100644 --- a/archinstall/locales/fr/LC_MESSAGES/base.po +++ b/archinstall/locales/fr/LC_MESSAGES/base.po @@ -71,6 +71,7 @@ msgstr "Sélectionner une interface réseau à configurer" msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" msgstr "Sélectionner le mode à configurer pour \"{}\" ou ignorer pour utiliser le mode par défaut \"{}\"" +#, python-brace-format msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " msgstr "Entrer l'IP et le sous-réseau pour {} (exemple : 192.168.0.5/24) : " @@ -584,6 +585,7 @@ msgstr "Sélectionner les options de sous-volume souhaitées " msgid "Define users with sudo privilege, by username: " msgstr "Définir les utilisateurs avec le privilège sudo, par nom d'utilisateur : " +#, python-brace-format msgid "[!] A log file has been created here: {}" msgstr "[!] Un fichier journal a été créé ici : {}" @@ -842,9 +844,11 @@ msgstr "Archinstall nécessite des privilèges root pour s'exécuter. Voir --hel msgid "Select an execution mode" msgstr "Sélectionner un mode d'exécution" +#, python-brace-format msgid "Unable to fetch profile from specified url: {}" msgstr "Impossible de récupérer le profil à partir de l'URL spécifiée : {}" +#, python-brace-format msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" msgstr "Les profils doivent avoir un nom unique, mais des définitions de profil avec un nom en double ont été trouvées : {}" @@ -863,9 +867,11 @@ msgstr "Sélectionner une option de partitionnement" msgid "Enter the root directory of the mounted devices: " msgstr "Entrer le répertoire racine des périphériques montés : " +#, python-brace-format msgid "Minimum capacity for /home partition: {}GiB\n" msgstr "Capacité minimale pour la partition /home : {} Gio\n" +#, python-brace-format msgid "Minimum capacity for Arch Linux partition: {}GiB" msgstr "Capacité minimale pour la partition Arch Linux : {} Gio" @@ -929,9 +935,11 @@ msgstr "Saisir le secteur de fin de la partition (pourcentage ou numéro de bloc msgid "This will remove all newly added partitions, continue?" msgstr "Cela supprimera toutes les partitions nouvellement ajoutées, voulez-vous continuer ?" +#, python-brace-format msgid "Partition management: {}" msgstr "Gestion des partitions : {}" +#, python-brace-format msgid "Total length: {}" msgstr "Taille total : {}" @@ -992,6 +1000,7 @@ msgstr "Inconnu" msgid "Partition encryption" msgstr "Chiffrement des partitions" +#, python-brace-format msgid " ! Formatting {} in " msgstr " ! Formatage {} dans " @@ -1016,6 +1025,7 @@ msgstr "Retour" msgid "Please chose which greeter to install for the chosen profiles: {}" msgstr "Veuillez choisir le greeter (interface de connexion) à installer pour les profils choisis : {}" +#, python-brace-format msgid "Environment type: {}" msgstr "Type d'environnement : {}" @@ -1208,6 +1218,7 @@ msgstr "" "\n" "Note :\n" +#, python-brace-format msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" msgstr " - Valeur maximale recommandée : {} (Autorise {} téléchargements parallèles à la fois)" @@ -1271,6 +1282,7 @@ msgstr "Désactiver la copie à l'écriture (CoW)" msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" msgstr "Fournit une sélection d'environnements de bureau et de gestionnaires de fenêtres en mosaïque, par ex. GNOME, KDE Plasma, Sway" +#, python-brace-format msgid "Configuration type: {}" msgstr "Type de configuration : {}" @@ -1397,6 +1409,7 @@ msgstr "Le nom d'utilisateur que vous avez saisi est invalide" msgid "Username" msgstr "Nom d'utilisateur" +#, python-brace-format msgid "Should \"{}\" be a superuser (sudo)?\n" msgstr "Le \"{}\" doit-il être un superutilisateur (sudo) ?\n" @@ -1463,6 +1476,7 @@ msgstr "Répertoire" msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)" msgstr "Entrer un répertoire pour que la(les) configuration(s) soit(ent) enregistrée(s) (complétion par tabulation activée)" +#, python-brace-format msgid "Do you want to save the configuration file(s) to {}?" msgstr "Voulez-vous enregistrer le(s) fichier(s) de configuration dans {} ?" @@ -1508,12 +1522,15 @@ msgstr "Nom" msgid "Signature check" msgstr "Vérification de la signature" +#, python-brace-format msgid "Selected free space segment on device {}:" msgstr "Segment d’espace libre sélectionné sur le périphérique {} :" +#, python-brace-format msgid "Size: {} / {}" msgstr "Taille : {} / {}" +#, python-brace-format msgid "Size (default: {}): " msgstr "Taille (par défaut : {}): " @@ -1680,7 +1697,7 @@ msgstr "Installation complétée" msgid "What would you like to do next?" msgstr "Voulez-vous continuer ?" -#, fuzzy +#, fuzzy, python-brace-format msgid "Select which mode to configure for \"{}\"" msgstr "Sélectionner le mode à configurer pour \"{}\" ou ignorer pour utiliser le mode par défaut \"{}\"" @@ -1704,10 +1721,78 @@ msgstr "Voulez-vous enregistrer le(s) fichier(s) de configuration dans {} ?" msgid "Credentials file encryption password" msgstr "Mot de passe de l'encryption du disque" -#, fuzzy +#, fuzzy, python-brace-format msgid "Repositories: {}" msgstr "Nom du dépôt" +#, fuzzy +msgid "New version available" +msgstr "Nouvelle version disponible" + +#, fuzzy +msgid "Passwordless login" +msgstr "Connexion sans mot de passe" + +msgid "Second factor login" +msgstr "Connexion à deux facteurs" + +msgid "Bluetooth" +msgstr "Bluetooth" + +#, fuzzy +msgid "Would you like to configure Bluetooth?" +msgstr "Voulez-vous configurer le Bluetooth ?" + +msgid "Authentication" +msgstr "Authentification" + +msgid "Applications" +msgstr "Applications" + +msgid "U2F login method: " +msgstr "Méthode de connexion U2F : " + +msgid "Passwordless sudo: " +msgstr "Sudo sans mot de passe : " + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "Type de snapshot Btrfs : {}" + +msgid "Syncing the system..." +msgstr "Synchronisation du système..." + +#, fuzzy +msgid "Value cannot be empty" +msgstr "La valeur ne peut pas être vide" + +msgid "Snapshot type" +msgstr "Type de snapshot" + +#, fuzzy, python-brace-format +msgid "Snapshot type: {}" +msgstr "Type de snapshot : {}" + +msgid "U2F login setup" +msgstr "Configuration de la connexion U2F" + +msgid "No U2F devices found" +msgstr "Pas de périphériques U2F trouvés" + +msgid "U2F Login Method" +msgstr "Méthode de connexion U2F" + +#, fuzzy +msgid "Enable passwordless sudo?" +msgstr "Activer sudo sans mot de passe ?" + +#, fuzzy, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "Configuration du périphérique U2F pour l'utilisateur : {}" + +msgid "You may need to enter the PIN and then touch your U2F device to register it" +msgstr "Vous devez peut-être entrer le code PIN, puis toucher votre périphérique U2F pour l'enregistrer" + #, python-brace-format #~ msgid "Edit {origkey} :" #~ msgstr "Modifier {origkey} :" diff --git a/archinstall/locales/ga/LC_MESSAGES/base.po b/archinstall/locales/ga/LC_MESSAGES/base.po index 530a87475c..b9d58c394b 100644 --- a/archinstall/locales/ga/LC_MESSAGES/base.po +++ b/archinstall/locales/ga/LC_MESSAGES/base.po @@ -71,6 +71,7 @@ msgstr "Roghnaigh comhéadan líonra amháin le chumrú" msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" msgstr "Roghnaigh an mód a chumrú le haghaidh \"{}\" nó scipeáil chun an mód réamhshocraithe \"{}\" a úsáid" +#, python-brace-format msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " msgstr "Cuir isteach an IP agus an subnet do {} (mar shampla: 192.168.0.5/24): " @@ -584,6 +585,7 @@ msgstr "Roghnaigh na roghanna subvolume atá ag teastáil " msgid "Define users with sudo privilege, by username: " msgstr "Sainmhínigh úsáideoirí a bhfuil pribhléid sudo acu, de réir ainm úsáideora: " +#, python-brace-format msgid "[!] A log file has been created here: {}" msgstr "[!] Cruthaíodh logchomhad anseo: {}" @@ -842,9 +844,11 @@ msgstr "Éilíonn Archinstall pribhléidí fréimhe chun é a rith. Féach --hel msgid "Select an execution mode" msgstr "Roghnaigh modh forghníomhaithe" +#, python-brace-format msgid "Unable to fetch profile from specified url: {}" msgstr "Ní féidir próifíl a fháil ón url sonraithe: {}" +#, python-brace-format msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" msgstr "Caithfidh ainm uathúil a bheith ag próifílí, ach aimsíodh sainmhínithe próifíle le hainm dúblach: {}" @@ -863,9 +867,11 @@ msgstr "Roghnaigh rogha deighilte" msgid "Enter the root directory of the mounted devices: " msgstr "Cuir isteach eolaire fréamhacha na ngléasanna gléasta: " +#, python-brace-format msgid "Minimum capacity for /home partition: {}GiB\n" msgstr "Toilleadh íosta le haghaidh /deighilt baile: {}GiB\n" +#, python-brace-format msgid "Minimum capacity for Arch Linux partition: {}GiB" msgstr "Toilleadh íosta do dheighilt Arch Linux: {}GiB" @@ -929,9 +935,11 @@ msgstr "Cuir isteach earnáil deiridh na críochdheighilte (céatadán nó blocu msgid "This will remove all newly added partitions, continue?" msgstr "Bainfidh sé seo gach deighilt nua-chur leis, leanúint ar aghaidh?" +#, python-brace-format msgid "Partition management: {}" msgstr "Bainistíocht críochdheighilte: {}" +#, python-brace-format msgid "Total length: {}" msgstr "Fad iomlán: {}" @@ -992,6 +1000,7 @@ msgstr "Anaithnid" msgid "Partition encryption" msgstr "Criptiú críochdheighilte" +#, python-brace-format msgid " ! Formatting {} in " msgstr " ! Formáidiú {} in " @@ -1016,6 +1025,7 @@ msgstr "Ar ais" msgid "Please chose which greeter to install for the chosen profiles: {}" msgstr "Roghnaigh cé acu beannaí le suiteáil do na próifílí roghnaithe: {}" +#, python-brace-format msgid "Environment type: {}" msgstr "Cineál timpeallachta: {}" @@ -1208,6 +1218,7 @@ msgstr "" "\n" "Nóta:\n" +#, python-brace-format msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" msgstr " - Uasluach molta : {} ( Ceadaítear {} íoslódálacha comhthreomhara ag an am céanna )" @@ -1271,6 +1282,7 @@ msgstr "Díchumasaigh Cóipeáil-ar-Scríobh" msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" msgstr "Soláthraíonn sé rogha timpeallachtaí deisce agus bainisteoirí fuinneog tíleála, e.g. GNOME, Plasma KDE, Sway" +#, python-brace-format msgid "Configuration type: {}" msgstr "Cineál cumraíochta: {}" @@ -1414,7 +1426,7 @@ msgstr "Tá an t-ainm úsáideora a d'iontráil tú neamhbhailí. Bain triail ei msgid "Username" msgstr "Ainm Úsáideora: " -#, fuzzy +#, fuzzy, python-brace-format msgid "Should \"{}\" be a superuser (sudo)?\n" msgstr "Ar cheart \"{}\" a bheith ina shár-úsáideoir (sudo)?" @@ -1496,7 +1508,7 @@ msgstr "" "Iontráil eolaire don chumraíocht(s) atá le sábháil (cumasaíodh comhlánú an táb)\n" "Sábháil eolaire: " -#, fuzzy +#, fuzzy, python-brace-format msgid "Do you want to save the configuration file(s) to {}?" msgstr "" "Ar mhaith leat {} comhad cumraíochta a shábháil sa suíomh seo a leanas?\n" @@ -1556,15 +1568,15 @@ msgstr "" msgid "Signature check" msgstr "Roghnaigh an rogha seiceála sínithe" -#, fuzzy +#, fuzzy, python-brace-format msgid "Selected free space segment on device {}:" msgstr "Earnálacha saor in aisce faoi láthair ar ghléas {}:" -#, fuzzy +#, fuzzy, python-brace-format msgid "Size: {} / {}" msgstr "Iomlán: {} / {}" -#, fuzzy +#, fuzzy, python-brace-format msgid "Size (default: {}): " msgstr "Cuir isteach an deireadh (réamhshocraithe: {}): " @@ -1764,7 +1776,7 @@ msgstr "" msgid "What would you like to do next?" msgstr "Ar mhaith leat comhbhrú BTRFS a úsáid?" -#, fuzzy +#, fuzzy, python-brace-format msgid "Select which mode to configure for \"{}\"" msgstr "Roghnaigh an mód a chumrú le haghaidh \"{}\" nó scipeáil chun an mód réamhshocraithe \"{}\" a úsáid" @@ -1791,6 +1803,73 @@ msgstr "" msgid "Credentials file encryption password" msgstr "Pasfhocal criptithe" -#, fuzzy +#, fuzzy, python-brace-format msgid "Repositories: {}" msgstr "Réigiún scáthán" + +#, fuzzy +msgid "New version available" +msgstr "Níl aon ghléas HSM ar fáil" + +#, fuzzy +msgid "Passwordless login" +msgstr "Pasfhocal" + +msgid "Second factor login" +msgstr "" + +msgid "Bluetooth" +msgstr "" + +#, fuzzy +msgid "Would you like to configure Bluetooth?" +msgstr "Ar mhaith leat comhbhrú BTRFS a úsáid?" + +msgid "Authentication" +msgstr "" + +msgid "Applications" +msgstr "" + +msgid "U2F login method: " +msgstr "" + +msgid "Passwordless sudo: " +msgstr "" + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "" + +msgid "Syncing the system..." +msgstr "" + +msgid "Value cannot be empty" +msgstr "" + +msgid "Snapshot type" +msgstr "" + +#, fuzzy, python-brace-format +msgid "Snapshot type: {}" +msgstr "Cineál timpeallachta: {}" + +msgid "U2F login setup" +msgstr "" + +msgid "No U2F devices found" +msgstr "" + +msgid "U2F Login Method" +msgstr "" + +#, fuzzy +msgid "Enable passwordless sudo?" +msgstr "Iontráil pasfhocal: " + +#, fuzzy, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "Roghnaigh gléas FIDO2 le húsáid le haghaidh HSM" + +msgid "You may need to enter the PIN and then touch your U2F device to register it" +msgstr "" diff --git a/archinstall/locales/he/LC_MESSAGES/base.po b/archinstall/locales/he/LC_MESSAGES/base.po index d3f9ecebea..e1de1a5855 100644 --- a/archinstall/locales/he/LC_MESSAGES/base.po +++ b/archinstall/locales/he/LC_MESSAGES/base.po @@ -71,6 +71,7 @@ msgstr "נא לבחור מנשק רשת להגדרה" msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" msgstr "נא לבחור איזה מצב להגדרה עבור „{}“ או לדלג כדי להשתמש במצב ברירת המחדל „{}“" +#, python-brace-format msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " msgstr "נא למלא IP ורשת־משנה (סאבנט) עבור {} (למשל: 192.168.0.5/24): " @@ -589,6 +590,7 @@ msgstr "נא לבחור את אפשרויות התת־כרך הרצויות " msgid "Define users with sudo privilege, by username: " msgstr "הגדרת משתמשים עם הרשאת על (sudo), לפי שם משתמש: " +#, python-brace-format msgid "[!] A log file has been created here: {}" msgstr "[!] כאן נוצר קובץ יומן: {}" @@ -849,9 +851,11 @@ msgstr "‫Archinstall דורש הרשאות עליונות (root) כדי לעל msgid "Select an execution mode" msgstr "נא לבחור מצב הפעלה" +#, python-brace-format msgid "Unable to fetch profile from specified url: {}" msgstr "לא ניתן למשוך את הפרופיל מהכתובת שצוינה: {}" +#, python-brace-format msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" msgstr "השמות של הפרופילים חייבים להיות יחודיים, אך נמצאו הגדרות פרופילים עם שמות כפולים: {}" @@ -870,9 +874,11 @@ msgstr "נא לבחור אפשרויות מחיצות" msgid "Enter the root directory of the mounted devices: " msgstr "נא למלא את תיקיית השורש של ההתקנים המעוגנים: " +#, python-brace-format msgid "Minimum capacity for /home partition: {}GiB\n" msgstr "קיבולת מזערית למחיצת ‎/home: {} ג״ב\n" +#, python-brace-format msgid "Minimum capacity for Arch Linux partition: {}GiB" msgstr "קיבולת מזערית למחיצת Arch Linux: {} ג״ב" @@ -936,9 +942,11 @@ msgstr "נא למלא את מקטע (סקטור) הסוף של המחיצה (א msgid "This will remove all newly added partitions, continue?" msgstr "הפעולה הזאת תסיר את המחיצות שנוספו, להמשיך?" +#, python-brace-format msgid "Partition management: {}" msgstr "ניהול מחיצות: {}" +#, python-brace-format msgid "Total length: {}" msgstr "אורך כולל: {}" @@ -999,6 +1007,7 @@ msgstr "לא ידוע" msgid "Partition encryption" msgstr "הצפנת מחיצה" +#, python-brace-format msgid " ! Formatting {} in " msgstr " ! {} מפורמט תחת " @@ -1023,6 +1032,7 @@ msgstr "חזרה" msgid "Please chose which greeter to install for the chosen profiles: {}" msgstr "נא לבחור את מערכת קבלת הפנים לפרופילים הנבחרים: {}" +#, python-brace-format msgid "Environment type: {}" msgstr "סוג סביבה: {}" @@ -1216,6 +1226,7 @@ msgstr "" "\n" "‫הערה:‬\n" +#, python-brace-format msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" msgstr " - הערך המרבי המומלץ: {} ( מאפשר {} הורדות במקביל בכל עת )" @@ -1279,6 +1290,7 @@ msgstr "השבתת העתקה בעת כתיבה" msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" msgstr "מספק מבחר סביבות שולחן עבודה ומנהלי ריצוף חלונות, למשל: GNOME,‏ KDE פלזמה, Sway" +#, python-brace-format msgid "Configuration type: {}" msgstr "סוג הגדרה: {}" @@ -1405,6 +1417,7 @@ msgstr "שם המשתמש שמילאת שגוי" msgid "Username" msgstr "שם משתמש" +#, python-brace-format msgid "Should \"{}\" be a superuser (sudo)?\n" msgstr "האם ל־„{}“ אמורות להיות הרשאות על (sudo)?\n" @@ -1471,6 +1484,7 @@ msgstr "תיקייה" msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)" msgstr "נא למלא תיקייה לשמירת ההגדרות (אפשר להשלים עם tab)" +#, python-brace-format msgid "Do you want to save the configuration file(s) to {}?" msgstr "לשמור את קובצי ההגדרות אל {}?" @@ -1516,12 +1530,15 @@ msgstr "שם" msgid "Signature check" msgstr "בדיקת חתימות" +#, python-brace-format msgid "Selected free space segment on device {}:" msgstr "כמות המקטעים (הסגמנטים) הנבחרים בכונן {}:" +#, python-brace-format msgid "Size: {} / {}" msgstr "גודל: {} / {}" +#, python-brace-format msgid "Size (default: {}): " msgstr "גודל (ברירת מחדל: {}): " @@ -1713,7 +1730,7 @@ msgstr "" msgid "What would you like to do next?" msgstr "להמשיך?" -#, fuzzy +#, fuzzy, python-brace-format msgid "Select which mode to configure for \"{}\"" msgstr "נא לבחור איזה מצב להגדרה עבור „{}“ או לדלג כדי להשתמש במצב ברירת המחדל „{}“" @@ -1737,6 +1754,73 @@ msgstr "לשמור את קובצי ההגדרות אל {}?" msgid "Credentials file encryption password" msgstr "סיסמת הצפנת כונן" -#, fuzzy +#, fuzzy, python-brace-format msgid "Repositories: {}" msgstr "שם אתר המראה" + +#, fuzzy +msgid "New version available" +msgstr "אין התקני HSM זמינים" + +#, fuzzy +msgid "Passwordless login" +msgstr "סיסמה" + +msgid "Second factor login" +msgstr "" + +msgid "Bluetooth" +msgstr "" + +#, fuzzy +msgid "Would you like to configure Bluetooth?" +msgstr "להמשיך?" + +msgid "Authentication" +msgstr "" + +msgid "Applications" +msgstr "" + +msgid "U2F login method: " +msgstr "" + +msgid "Passwordless sudo: " +msgstr "" + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "" + +msgid "Syncing the system..." +msgstr "" + +msgid "Value cannot be empty" +msgstr "" + +msgid "Snapshot type" +msgstr "" + +#, fuzzy, python-brace-format +msgid "Snapshot type: {}" +msgstr "סוג סביבה: {}" + +msgid "U2F login setup" +msgstr "" + +msgid "No U2F devices found" +msgstr "" + +msgid "U2F Login Method" +msgstr "" + +#, fuzzy +msgid "Enable passwordless sudo?" +msgstr "נא למלא סיסמה: " + +#, fuzzy, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "נא לבחור את התקן ה־FIDO2 לשימוש עבור HSM" + +msgid "You may need to enter the PIN and then touch your U2F device to register it" +msgstr "" diff --git a/archinstall/locales/hi/LC_MESSAGES/base.po b/archinstall/locales/hi/LC_MESSAGES/base.po index bfc987053a..95b93e0526 100644 --- a/archinstall/locales/hi/LC_MESSAGES/base.po +++ b/archinstall/locales/hi/LC_MESSAGES/base.po @@ -71,6 +71,7 @@ msgstr "" msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" msgstr "" +#, python-brace-format msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " msgstr "" @@ -542,6 +543,7 @@ msgstr "" msgid "Define users with sudo privilege, by username: " msgstr "" +#, python-brace-format msgid "[!] A log file has been created here: {}" msgstr "" @@ -793,9 +795,11 @@ msgstr "" msgid "Select an execution mode" msgstr "" +#, python-brace-format msgid "Unable to fetch profile from specified url: {}" msgstr "" +#, python-brace-format msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" msgstr "" @@ -814,9 +818,11 @@ msgstr "" msgid "Enter the root directory of the mounted devices: " msgstr "" +#, python-brace-format msgid "Minimum capacity for /home partition: {}GiB\n" msgstr "" +#, python-brace-format msgid "Minimum capacity for Arch Linux partition: {}GiB" msgstr "" @@ -880,9 +886,11 @@ msgstr "" msgid "This will remove all newly added partitions, continue?" msgstr "" +#, python-brace-format msgid "Partition management: {}" msgstr "" +#, python-brace-format msgid "Total length: {}" msgstr "" @@ -943,6 +951,7 @@ msgstr "" msgid "Partition encryption" msgstr "" +#, python-brace-format msgid " ! Formatting {} in " msgstr "" @@ -967,6 +976,7 @@ msgstr "" msgid "Please chose which greeter to install for the chosen profiles: {}" msgstr "" +#, python-brace-format msgid "Environment type: {}" msgstr "" @@ -1146,6 +1156,7 @@ msgid "" "Note:\n" msgstr "" +#, python-brace-format msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" msgstr "" @@ -1207,6 +1218,7 @@ msgstr "" msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" msgstr "" +#, python-brace-format msgid "Configuration type: {}" msgstr "" @@ -1336,7 +1348,7 @@ msgstr "" msgid "Username" msgstr "" -#, fuzzy +#, fuzzy, python-brace-format msgid "Should \"{}\" be a superuser (sudo)?\n" msgstr "क्या यह user एक superuser होना चाहिए (sudoer)?" @@ -1404,6 +1416,7 @@ msgstr "" msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)" msgstr "" +#, python-brace-format msgid "Do you want to save the configuration file(s) to {}?" msgstr "" @@ -1450,12 +1463,15 @@ msgstr "" msgid "Signature check" msgstr "" +#, python-brace-format msgid "Selected free space segment on device {}:" msgstr "" +#, python-brace-format msgid "Size: {} / {}" msgstr "" +#, python-brace-format msgid "Size (default: {}): " msgstr "" @@ -1623,6 +1639,7 @@ msgstr "" msgid "What would you like to do next?" msgstr "क्या आप swap के लिए zram इस्तेमाल करना चाहेंगे?" +#, python-brace-format msgid "Select which mode to configure for \"{}\"" msgstr "" @@ -1641,5 +1658,71 @@ msgstr "" msgid "Credentials file encryption password" msgstr "" +#, python-brace-format msgid "Repositories: {}" msgstr "" + +msgid "New version available" +msgstr "" + +#, fuzzy +msgid "Passwordless login" +msgstr "पासवर्ड" + +msgid "Second factor login" +msgstr "" + +msgid "Bluetooth" +msgstr "" + +#, fuzzy +msgid "Would you like to configure Bluetooth?" +msgstr "क्या आप swap के लिए zram इस्तेमाल करना चाहेंगे?" + +msgid "Authentication" +msgstr "" + +msgid "Applications" +msgstr "" + +msgid "U2F login method: " +msgstr "" + +msgid "Passwordless sudo: " +msgstr "" + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "" + +msgid "Syncing the system..." +msgstr "" + +msgid "Value cannot be empty" +msgstr "" + +msgid "Snapshot type" +msgstr "" + +#, python-brace-format +msgid "Snapshot type: {}" +msgstr "" + +msgid "U2F login setup" +msgstr "" + +msgid "No U2F devices found" +msgstr "" + +msgid "U2F Login Method" +msgstr "" + +msgid "Enable passwordless sudo?" +msgstr "" + +#, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "" + +msgid "You may need to enter the PIN and then touch your U2F device to register it" +msgstr "" diff --git a/archinstall/locales/hu/LC_MESSAGES/base.mo b/archinstall/locales/hu/LC_MESSAGES/base.mo index 1b6f9570ce39639da022a14b34f52ea723e2cf50..9c2e49cd5343aa9319837fe55c378e305521b057 100644 GIT binary patch delta 13035 zcmZ|V2YeLO+Q;!B2`Pk7l28+16A(g&08*v*-g{e;4cTOq4cR3~6c+_-h^UAZK@Exu zf+(v92m(eF0R_E?QUpa%EFdb1az)RN(uiPIV zI29kU)M85tv#eyiT*UdxJZYFQmI2HRpU9Efvp0`AA=SihNNCE#crfH_zf zx8Qg@j)~ZYgUexmbX!)y8bw0~>_VNeW(#wHBFrK$#WC2ZrDcu4d$2MdwLOm&$**Dz zmP@y+VVHS$BJYZR?XlO*QU=@55ar76L-XZI0Ad)YOH~0u_6A2^)RiqWp(2E)*u?a@Ifq(hml#ZKF377h}|%}jb$~# zUYLr7SQ(e12J`|}z>TO2?!X8B)Qz4)4fGNQqG?3mYD!ocBgs=x7f!?Kc$=M% zMqMx$Rq{EQfQzsymSB6_ik#c}8TrpjYisf;sDUpSv3Fcn#UmdoD%II1FR+f#p?a1$L&i}fys z787cY%5^X{M~!?W>VmVd20nr+`Fd0(w%Pdys5Nua&d($3+qz=gfZNyk#sp|Y(I`fh z{vOl^AHaBAin`MmQ5W86=SNX@{Jrg;sDZ?FGX2TefV?T{yrWQeJQ1s47OFylJ89@b z3$Pk4M^)ez)CG5=26POQ@f>PS!)~)I)}_@R2Vg$xgxgWam!e942sN-HsKx!2onJx* z6tJ$-&VEY6a>7JM8?Dy+5J5W%ZzcFly00 zhTM~N7AImVJ2k)n_QzMTKK_X*T;HnO({%JgUC@Jk)_MVTqVKRPrty-{T5zM@19u@W zN9!e2Wlo~j#3j^Rm+5WtSk!Z$jLe?Z0B2z)28w8$q~XR9eawM7Q6=7I`x!=&pT}^# zggW76T!hz=C)irl*Q|lPIEnm2)NxJvnJHf>aPPEQkSXPfz9wdYL2S0 zvLdh%MqzWTjcrkn?P%0-dB`+db5R%EjXLfCYEgfOBQR{Bc_oiVRd)42>aSIKf)1v` zI*(edO$M10bi`Z8$72JWi*fiOM&cIKz;5H*0o1@xU@U%t8t@Ouy;!g@Ft^_;IomHIfUq!(<dp#K$E`x0@O4xr4q!_> zhdRF6Nb}{EhI-ltqK+@c3S8ehMuVzY=TVEJ!zfeg1*kh)jvBxkOvKHo3%`e1_ywvG zeMXzgjKrGcQ!pBfQOD22cwB`ExCsL)NhuADbRTN9A44sU>!?N4Z48eZPQpBV4Rxof zW6kF}VHNU0s0(GFE^sGS#z#<7vBq{iYN|Jn<@whL_t3#jSo={Qbc{1Eh}Jlnd?h;Z z57g?OFy2hn9hgG?0O|%_LRD%9YONeZy$3!PDWh`vdRN zXidje)CZeSF>^Bxb)jsmg#pw6R-@L)>!>?8fm*b`Vh8Lxm2XbG1685jcq^X82AIS= z_Qf8U%4w~KXlO*6PzRhw4J2xsxnN6FY5Sp``$?#$B^z}|+fk3>m#9S*mtjhsjH%@9 zZ6{(~@&LBLXR)Ea|Buknfq$VMx0Fm%+Qt|`-VwEUx}w&|C{#rl@8ysO!m5T^ zBQsC~ybs&sQmliAP_N)0QEM!Dy4jzD0WFf}XxxD(ktf6&n{7%O#Jc3Cu^EQD&6_P9 z3&=CkkDuTe?4M(P<5`0v$*-g4ekA3YjSKO1EbB2(-CZ8)&$_ejqeFN8HR{f~N4ELES?t?AK z18Zn#j*nmy{2d42EljKiG6PkzT}TnEQrv^-GtF_Au^D;SBJ(?+7j@weurdCIy5rPY zywF%qX@3{FQ?Vg_npMVOAosDW&>J&Dc9 zV_A8+(~h=zsQ#z1r=I^qp$5-nu^GrXJkJ5sPF3ApHIHaJjM$#f&4jS)~u~q#PzL4{NSdo5}brJ=JHa(S*Qd5Ko+u=xTF$Lr2QU97WTGP;uA()DJs5yHCHR9*( zd^_sIhf$w9g_ZFSjK|pd<~>jwN0S$!O8o&2$7^^C4y8;i8>?sm^;e00phG8~aIZO$ z8#RDCQ7@*)upd^q&&>5$bdWE^2;6}B{Hs_WcVQ%cjaoAoPy@Y!wK3*?^Iej5KP7k2 z(TWazU?i#%6Ho`vMpa}vCgGc?fqjbg@B-Gw_y_pi0B^-?d=}kU{y~!$p`NbO$dhfA zUuf3OoPgcffW6pp0_S4NL*@f(umbrZtd6I!241oA%8Sh0Ho|K3_rY>F1!FJ=JEI?~ zVh}6he$<)>9H%jm#ue0wdp>Nw9w(#bZZS5)U8p;~h;=Z2v004isM7X8Rc4f(=b|n! z2fN`)%)*n{4|_Zky0L(@h(O7TXV~DT#X2tdaVt_rzBim_%dJG8PQJi8^u8ax+JLunqa6 z*dO1s^Y|6Kj>-Gt2waEy{52emlUAAwY(Ra!{*&hTiI`5l6FcCgC#nB!G#almzu&u2 zCpv&CZR6GEgtuc=^7pU@p2BgM`jq{iK+XAMsN*(aZG0Ew@Eq!VzaaN$b$y!Ofbp}Z z1N@pq!~2YREXtOc4^+V#^w&k5@HPy`kr<0(k#ks?I20q+n8$4t@{X~lpcdaZ=*1sV zm6`Ia`3>l0EF^Cbc+NcUD^Vp*T5A?z7HSdQj=JCiY>1Dd-f(YXBA&r9cm?&m4|(3a zV#i@E@&Fd$YII}b3+8Xx??Qb(aGZt~$&aYVsP&8HIq!vS$=%o-ORx%lgpv3SM&m_{ z!YimsUB?Kly3Sl639FO0Kvke0Cg5`91_Rax8hZS;q2}xptcI7dB9>ooDv*pCKpN`! z&R7n|V{3F_BV388xEFQ&dDNZ$h21dWCG+@>!e~AJB{Zh7V?C-8aU0C9P{VNm`9f4B zKE=9Naie)kT45Ub6l{d|qgHhgb^Jx!`Y)UJ#$?;27|Z^H7<&FcqoF(f2BYx`s+86y zbEnl%C2xf~t^?{t)gSdfn24G>uiZZvRpQ4`i}rccl&nWB>P@H$zmEYO@FfkM=o~i0 z-%%w_eZ|~yXH*HNVN;xib#N_eZug=dzf;&7|BV%~`>W>j!|?&~BGmELX7i<1V>9*7 zBu}HGJ1#;Ua2U(sw^#`;qbgE1XiUaD@>Zw|m7q%cD%QlEs73i1Ho-5@fpM>y^EbnI z@;aX)xaySolfygapk)>b*@}AfjJ*Y*z995w=Py_iC zHHD`!4!=fC_2mGK*)*=9N+LGL=C*o4)b)iLn;@rX3)rB#|qTqxrXW3bEhfsEYv_&+U~(b^7E*H zUc+Rp_LiwgYn)5&MV;poYT$KunLp4B!y)8PhYaxMqoL=%%WhMF`KXbv!nXJ}>W;74 z*4tzL7JD#e(f=S0!k;i7yS!}{-OJdE`~-H#lv2xDf|;nb@;mC^pR9WCm|rF*V{7tx zSPQpeRXmECq6_H8@V%y_d8j*k3RT*J*apvGCroHdS_3OF5;tQV+=hD0j-lRo-`f50`z-4r@^sXc>_QFX2x?##PyDFS95YVk-H2SPs8Kt*Kuz3L70UHl5Z@3T=`4?KY@-A0tzsCz{gR&~zN1g)ild!P zw58pI_?gf)k-ln#wuZKY%c%Zrm+2@&Y$M8Y(q}`xJlEu35F70L812)s#O6bYL6WS~xeh@*Jp_(;dWOyK@Q-r$2(h zHb6hI-`*EXUmm%(Z)^+j3G!=pu6>jB!`#1GW~&X?i9d)44o)`R|M>X~{gL*Geqm1^ z+MEAz1dENnd+1wE?6ddnrf(MQ&#^nvfe7$4g*Ki#YXcp(*?A4r<2HtH(ccbZ@l`yE z+QPY0p1RQA*M-s6c8!?M{zdjNp-z6V#QxsOaqMmE4{H9K(ValFrK5}ep_w?4xQl+R z?6r13&Cs@$pTp=|iSw`#ae($+xQuw3_>lOBzBqeeG_CjO({>fNgxb`95RE^GF6{UO z=Z1EeKey@NQlck)D=`kqt$WKww`_O+xaiFwWZ*BEWyX^zWXqon5zTW^aa<0d^0gs z9c;~MdvyQfN#+o*(y^LIAnKA=A-*Is2yH{?uRv&f4$E*if6{)#?$aA|D6x~6PoD$F z+4~-%tygb(yApNm{^wNxci1tJ$fWZSp>LDTXbu~R<3xM*T_8RtUNpO{ZnU*MkI{DfAzQw40@kf0_Kk&p_0qvF=m%Q@J0`RL z2(f^uN2C(^8uk)zb4;#stc1h$A-1lepXQ%#meT%?eT#`3+j-hwk!;ia_oop@BoTYr zG0Q&ibMhx{`p_HXH?~sxox~D4?!f|k$B(pMqumcr*?sTOu6pAR>2ndc(D#h?-+2BL zIpA$NwLNY4`)3sWUz7c8@7Io>?7d&oSDTng-jjHQ_E+|C9{i2iW9O&s&&-Qz8LUf~}kT^$M3$q&SY1kM?;JZXC+WAixuSBX5$j#Ws`<}4&>)4`pOcY(7qi%z^u?-^9PU@ z=(|8ZiKuV)C)0P5c3GlU8HU@54sEH#y>`12gLs&H8u0*8)9$Zp`>5>#_SL8T1F@HO zWxR^oek491pF*@Fej*0YcL#n=w4nWOmH7mr?M=LhzlAcUgh3po{U`ly9AWqO#+CFX z644x^EuL6J{ENOhL>}!+L>TRH7$nk&O~h{E#ujK#>oQT5s7x&719#$D;y7(>`t`a2 zkx%%Ejzl)m#NJOcv`rv?oYpGbMeHZ;C$7*}h?$sLFj zM7xC8$y*ZxnJ&NA>(92j^V8#XX1WTk?*76opTn2$EbwJ}{SN=^ z0#^se9dm-+TCa{ya1=OwzFFSFOpnXQK{GSGU4ox>>Y146n&l{R75cc6!&&5Xdz{le zt|c{wHLE--y|*LNRpica`5al^nfaN)9>a!)r`~iHk9WE|-x~UVPaJ%BWWBPLGrakk zjx1+}-&^Pi9T?m+u2)ow%kOvRPj}2LaQyH2IenpHrq5NV;V!A-tQ)N2oL{E)%{O9= zxH${m*0O2C%2XLKJ3m9`^JlvpzS%y%E3a9zX2EYVmPe*D{DB&vW01?A?aj1wz0g1$ zd7+LDj+?rCF8|De;GCT3@JfyhXMR5Qo91%3@(TR3gMqyLWh!O4r_U^OIlA8{{F0x% ziNW69HQ{~ooUxlT`>v$(Xx z=gkfNc~8GG75lpVE@riKqrY^W&+4}1nNRBUb)*d*IkcfQ+U@fdJFUM*Z4GzjXZng= zh0|RA(k&i8|D@G@gm#ic<JG7jd`nv@8J#ru}Mh8=nB3JO)r``|ieB)@RBm3rY za-vM9-<#{mDlN(J#|+N!IdSM<*Jpg%+Vq(c5~Izb%oh3 z2JUcqmRx(OM@?6r!|(KzmUvXApz7Py6Hameb#hvuV(M z!(h|^I~zcX}P m@y+YN&*wr9TCty7&0rB_dyB0>|2(yet1;{%rsLSIvi}1=VsV}T delta 11529 zcmZA734Bf0+Q;#gK_W3E5hO@TVk#o0nCGF0p~g~GH6pf7!P1K{0#?UyEtR&;A#xVv)C1HVr7i4ZOn7n z8%yIB48|jvVvNU}aThd>w>Mmj-MHWmj=<*Jy+5wUK6oF)@aekNAs9kF7K3ma_QH8s z1h1hV-a<7nA0zNVLGGbd^=ylt#4?;{fTb`IOW^ZZ3`e;<6LsV1s2j-{YR&wD1#5tdWN*|O%EVsyK_lkB0tMA-sH3nf*2L1-7S+IhsF6u`W}$kP zjq33VWVx6%?)+KQTF67)?>l7BjA>#!mVlaq4ow(;6;h~B%NJlIeux^xy@`?dhs#5o*&bJQHbOn9 zlgs;Ib@CTcH(rS9@iHufYf&S#3-zEw7=ag1Q~N#Yd7k?e)S_@EO#8ngGCigRGR-Cf zyW+d38~%#A{vm4UgId^zmBixY(JrrvYEV;D1KVRO?1E3@9AsoX=1U41+Uuy6{pxc6 zmJBC(Bx>%uU=N&vL+~sz8>S9-)liQ__4EzYZd#4}V{Y+B8?4;gPH7U-XEOz3dA`|0 zK@a%4pn_rNYF*F(+hZDPwQfhAY5duf&tp4O1J_^|{0ysMR6Ap0usteIM%`~7@{h^o z58Wr2o44WlrZWYtfjOvsz8ZNsnbW9|d4O8|p&jgy#-Q?AsD0i788p)g$K!O�Qvy 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 diff --git a/archinstall/locales/hu/LC_MESSAGES/base.po b/archinstall/locales/hu/LC_MESSAGES/base.po index 3bda28bc18..9bc46f9f34 100644 --- a/archinstall/locales/hu/LC_MESSAGES/base.po +++ b/archinstall/locales/hu/LC_MESSAGES/base.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" "PO-Revision-Date: \n" -"Last-Translator: summoner \n" +"Last-Translator: summoner \n" "Language-Team: \n" "Language: hu\n" "MIME-Version: 1.0\n" @@ -27,10 +27,10 @@ msgid "Would you like to use swap on zram?" msgstr "Biztosan cserehelyet akar használni a zRam-on?" msgid "Desired hostname for the installation: " -msgstr "A kiszolgáló neve a telepítéshez: " +msgstr "Gép neve a telepítéshez: " msgid "Username for required superuser with sudo privileges: " -msgstr "A rendszergazda felhasználó neve a számítógép használatához szükséges „sudo” jogosultságokkal: " +msgstr "A rendszergazda felhasználóneve a számítógép használatához szükséges „sudo” jogosultságokkal: " msgid "Any additional users to install (leave blank for no users): " msgstr "További felhasználók hozzáadása a telepítéshez (hagyja üresen, ha nem akar több felhasználót hozzáadni): " @@ -71,6 +71,7 @@ msgstr "Válasszon ki egy hálózati csatolót a konfiguráláshoz" msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" msgstr "Válassza ki a konfigurálandó módot a következőhöz: „{}”, vagy hagyja ki ezt a lépést az alapértelmezett „{}” mód használatához" +#, python-brace-format msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " msgstr "Adja meg az IP-címét és az alhálózatát (például: 192.168.0.5/24) a következőhöz: {}: " @@ -339,7 +340,7 @@ msgid "Abort" msgstr "Megszakítás" msgid "Hostname" -msgstr "Kiszolgálónév" +msgstr "Gép neve" msgid "Not configured, unavailable unless setup manually" msgstr "Nincs konfigurálva, nem érhető el, kivéve, ha kézzel állítja be" @@ -469,7 +470,7 @@ msgid "" "Define a new user\n" msgstr "" "\n" -"Új felhasználó definiálása\n" +"Új felhasználó meghatározása\n" msgid "User Name : " msgstr "Felhasználónév : " @@ -505,7 +506,7 @@ msgid "Save user configuration" msgstr "Felhasználói konfiguráció mentése" msgid "Save user credentials" -msgstr "Felhasználói hitelesítő adatok mentése" +msgstr "Felhasználói hitelesítési adatok mentése" msgid "Save disk layout" msgstr "Lemezelrendezés mentése" @@ -586,6 +587,7 @@ msgstr "Válassza ki az alkötetbeállításokat " msgid "Define users with sudo privilege, by username: " msgstr "A „sudo” jogosultsággal rendelkező felhasználók meghatározása a felhasználónév alapján: " +#, python-brace-format msgid "[!] A log file has been created here: {}" msgstr "[!] A naplófájl itt jött létre: {}" @@ -844,9 +846,11 @@ msgstr "Az Archinstall futtatásához root-jogosultságok szükségesek. Tovább msgid "Select an execution mode" msgstr "Válasszon ki egy végrehajtási módot" +#, python-brace-format msgid "Unable to fetch profile from specified url: {}" msgstr "Nem sikerült lekérni a profilt a megadott webcímről: {}" +#, python-brace-format msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" msgstr "A profiloknak egyedi névvel kell rendelkezniük, de ismétlődő névvel rendelkező profildefiníciók találhatók: {}" @@ -865,9 +869,11 @@ msgstr "Válasszon ki egy particionálási beállítást" msgid "Enter the root directory of the mounted devices: " msgstr "Adja meg a csatolt eszközök gyökérkönyvtárát: " +#, python-brace-format msgid "Minimum capacity for /home partition: {}GiB\n" msgstr "A „/home” partíció minimális kapacitása: {} GB\n" +#, python-brace-format msgid "Minimum capacity for Arch Linux partition: {}GiB" msgstr "Az Arch Linux partíció minimális kapacitása: {} GB" @@ -931,9 +937,11 @@ msgstr "Adja meg a partíció végszektorát (százalékban vagy blokkszámban, msgid "This will remove all newly added partitions, continue?" msgstr "Ezzel eltávolítja az összes újonnan hozzáadott partíciót, folytatja?" +#, python-brace-format msgid "Partition management: {}" msgstr "Partíciókezelés: {}" +#, python-brace-format msgid "Total length: {}" msgstr "Teljes hossz: {}" @@ -994,6 +1002,7 @@ msgstr "Ismeretlen" msgid "Partition encryption" msgstr "Partíciótitkosítás" +#, python-brace-format msgid " ! Formatting {} in " msgstr " ! {} formázása erre: " @@ -1018,6 +1027,7 @@ msgstr "Vissza" msgid "Please chose which greeter to install for the chosen profiles: {}" msgstr "Válassza ki a telepítendő bejelentkezési segédet a kiválasztott profilokhoz: {}" +#, python-brace-format msgid "Environment type: {}" msgstr "Környezet típusa: {}" @@ -1210,6 +1220,7 @@ msgstr "" "\n" "Megjegyzés:\n" +#, python-brace-format msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" msgstr " - Maximális ajánlott érték : {} ( Egyszerre {} párhuzamos letöltést tesz lehetővé )" @@ -1273,6 +1284,7 @@ msgstr "Adatmásolás letiltása íráskor" msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" msgstr "Asztali környezetek és csempés ablakkezelők széles választékát kínálja, pl. GNOME, KDE Plasma, Sway" +#, python-brace-format msgid "Configuration type: {}" msgstr "Konfigurációtípus: {}" @@ -1399,6 +1411,7 @@ msgstr "A megadott felhasználónév érvénytelen" msgid "Username" msgstr "Felhasználónév" +#, python-brace-format msgid "Should \"{}\" be a superuser (sudo)?\n" msgstr "A(z) „{}” nevű felhasználónak rendszergazdának (sudoer) kell lennie?\n" @@ -1465,6 +1478,7 @@ msgstr "Könyvtár" msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)" msgstr "Adjon meg egy könyvtárat a mentendő konfiguráció(k) számára (a tabulátoros kiegészítés engedélyezve van)" +#, python-brace-format msgid "Do you want to save the configuration file(s) to {}?" msgstr "Szeretné elmenteni a konfigurációs fájl(oka)t a következő helyre: {}?" @@ -1510,12 +1524,15 @@ msgstr "Név" msgid "Signature check" msgstr "Aláírás-ellenőrzés" +#, python-brace-format msgid "Selected free space segment on device {}:" msgstr "A kiválasztott szabad szakaszok a(z) {} eszközön:" +#, python-brace-format msgid "Size: {} / {}" msgstr "Méret: {} / {}" +#, python-brace-format msgid "Size (default: {}): " msgstr "Méret (alapértelmezett: {}): " @@ -1678,11 +1695,12 @@ msgstr "A telepítés sikeresen befejeződött" msgid "What would you like to do next?" msgstr "Mit szeretne tenni?" +#, python-brace-format msgid "Select which mode to configure for \"{}\"" msgstr "Válassza ki a konfigurálandó módot a következőhöz: „{}”" msgid "Incorrect credentials file decryption password" -msgstr "Helytelen a hitelesítőadat-fájl visszafejtési jelszava" +msgstr "Helytelen a jelszó a hitelesítési adatok fájljának visszafejtéséhez" msgid "Incorrect password" msgstr "Helytelen jelszó" @@ -1696,5 +1714,69 @@ msgstr "Szeretné titkosítani a user_credentials.json fájlt?" msgid "Credentials file encryption password" msgstr "A hitelesítőadat-fájl titkosítási jelszava" +#, python-brace-format msgid "Repositories: {}" msgstr "Tárolók: {}" + +msgid "New version available" +msgstr "Új verzió érhető el" + +msgid "Passwordless login" +msgstr "Jelszó nélküli bejelentkezés" + +msgid "Second factor login" +msgstr "Második lépcsős bejelentkezés" + +msgid "Bluetooth" +msgstr "Bluetooth" + +msgid "Would you like to configure Bluetooth?" +msgstr "Szeretné konfigurálni a Bluetooth-t?" + +msgid "Authentication" +msgstr "Hitelesítés" + +msgid "Applications" +msgstr "Alkalmazások" + +msgid "U2F login method: " +msgstr "U2F bejelentkezési eljárás: " + +msgid "Passwordless sudo: " +msgstr "Jelszó nélküli sudo: " + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "BTRFS-pillanatkép típusa: {}" + +msgid "Syncing the system..." +msgstr "Rendszer szinkronizálása…" + +msgid "Value cannot be empty" +msgstr "Az érték nem lehet üres" + +msgid "Snapshot type" +msgstr "Pillanatkép típusa" + +#, python-brace-format +msgid "Snapshot type: {}" +msgstr "Pillanatkép típusa: {}" + +msgid "U2F login setup" +msgstr "U2F bejelentkezés beállítása" + +msgid "No U2F devices found" +msgstr "Nem található U2F-eszköz" + +msgid "U2F Login Method" +msgstr "U2F bejelentkezési eljárás" + +msgid "Enable passwordless sudo?" +msgstr "Engedélyezi a jelszó nélküli sudo-t?" + +#, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "U2F-eszköz beállítása a következő felhasználónak: {}" + +msgid "You may need to enter the PIN and then touch your U2F device to register it" +msgstr "Lehet, hogy meg kell adnia a PIN-kódot, majd ki kell választania az U2F-eszközt a regisztrációhoz" diff --git a/archinstall/locales/id/LC_MESSAGES/base.po b/archinstall/locales/id/LC_MESSAGES/base.po index 8d0b4476aa..559a1f03b8 100644 --- a/archinstall/locales/id/LC_MESSAGES/base.po +++ b/archinstall/locales/id/LC_MESSAGES/base.po @@ -71,6 +71,7 @@ msgstr "Pilih satu interface jaringan untuk dikonfigurasi" msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" msgstr "Pilih mode mana yang akan dikonfigurasi untuk \"{}\" atau lewati untuk menggunakan mode default \"{}\"" +#, python-brace-format msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " msgstr "Masukkan IP dan subnet untuk {} (contoh: 192.168.0.5/24): " @@ -584,6 +585,7 @@ msgstr "Pilih opsi subvolume yang diinginkan " msgid "Define users with sudo privilege, by username: " msgstr "Tentukan pengguna dengan hak sudo, berdasarkan nama pengguna: " +#, python-brace-format msgid "[!] A log file has been created here: {}" msgstr "[!] File log telah dibuat di sini: {}" @@ -843,9 +845,11 @@ msgstr "" msgid "Select an execution mode" msgstr "Pilih tindakan untuk '{}'" +#, python-brace-format msgid "Unable to fetch profile from specified url: {}" msgstr "" +#, python-brace-format msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" msgstr "" @@ -869,11 +873,11 @@ msgstr "Hapus partisi" msgid "Enter the root directory of the mounted devices: " msgstr "Masukkan direktori untuk konfigurasi yang akan disimpan: " -#, fuzzy +#, fuzzy, python-brace-format msgid "Minimum capacity for /home partition: {}GiB\n" msgstr "Kapasitas minimum untuk partisi /home: {}GB\n" -#, fuzzy +#, fuzzy, python-brace-format msgid "Minimum capacity for Arch Linux partition: {}GiB" msgstr "Kapasitas minimum untuk partisi Arch Linux: {}GB" @@ -949,9 +953,11 @@ msgstr "Masukkan sektor akhir partisi (persentase atau nomor blok, mis: {}): " msgid "This will remove all newly added partitions, continue?" msgstr "" +#, python-brace-format msgid "Partition management: {}" msgstr "" +#, python-brace-format msgid "Total length: {}" msgstr "" @@ -1017,6 +1023,7 @@ msgstr "" msgid "Partition encryption" msgstr "" +#, python-brace-format msgid " ! Formatting {} in " msgstr "" @@ -1044,6 +1051,7 @@ msgstr "" msgid "Please chose which greeter to install for the chosen profiles: {}" msgstr "" +#, python-brace-format msgid "Environment type: {}" msgstr "" @@ -1257,7 +1265,7 @@ msgstr "" " (Masukkan nilai antara 1 hingga {})\n" "Catatan:" -#, fuzzy +#, fuzzy, python-brace-format msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" msgstr " - Nilai maksimum : {} ( Memungkinkan {} unduhan paralel, memungkinkan {} unduhan sekaligus)" @@ -1325,7 +1333,7 @@ msgstr "" msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" msgstr "Menyediakan pilihan desktop environment dan tiling window manager, cth. gnome, kde, sway" -#, fuzzy +#, fuzzy, python-brace-format msgid "Configuration type: {}" msgstr "Tidak ada konfigurasi" @@ -1476,7 +1484,7 @@ msgstr "Nama pengguna yang Anda masukkan tidak valid. Coba lagi" msgid "Username" msgstr "Nama Pengguna : " -#, fuzzy +#, fuzzy, python-brace-format msgid "Should \"{}\" be a superuser (sudo)?\n" msgstr "Haruskah \"{}\" menjadi superuser (sudo)?" @@ -1554,7 +1562,7 @@ msgstr "" msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)" msgstr "Masukkan direktori untuk konfigurasi yang akan disimpan: " -#, fuzzy +#, fuzzy, python-brace-format msgid "Do you want to save the configuration file(s) to {}?" msgstr "Simpan konfigurasi" @@ -1606,13 +1614,15 @@ msgstr "" msgid "Signature check" msgstr "Pilih interface untuk ditambahkan" +#, python-brace-format msgid "Selected free space segment on device {}:" msgstr "" +#, python-brace-format msgid "Size: {} / {}" msgstr "" -#, fuzzy +#, fuzzy, python-brace-format msgid "Size (default: {}): " msgstr "Masukkan sektor awal (persentase atau nomor blok, default: {}): " @@ -1799,7 +1809,7 @@ msgstr "" msgid "What would you like to do next?" msgstr "Apakah Anda ingin menggunakan kompresi BTRFS?" -#, fuzzy +#, fuzzy, python-brace-format msgid "Select which mode to configure for \"{}\"" msgstr "Pilih mode mana yang akan dikonfigurasi untuk \"{}\" atau lewati untuk menggunakan mode default \"{}\"" @@ -1823,6 +1833,72 @@ msgstr "Simpan konfigurasi" msgid "Credentials file encryption password" msgstr "Kata sandi enkripsi" -#, fuzzy +#, fuzzy, python-brace-format msgid "Repositories: {}" msgstr "Wilayah mirror" + +msgid "New version available" +msgstr "" + +#, fuzzy +msgid "Passwordless login" +msgstr "Kata sandi root" + +msgid "Second factor login" +msgstr "" + +msgid "Bluetooth" +msgstr "" + +#, fuzzy +msgid "Would you like to configure Bluetooth?" +msgstr "Apakah Anda ingin menggunakan kompresi BTRFS?" + +msgid "Authentication" +msgstr "" + +msgid "Applications" +msgstr "" + +msgid "U2F login method: " +msgstr "" + +msgid "Passwordless sudo: " +msgstr "" + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "" + +msgid "Syncing the system..." +msgstr "" + +msgid "Value cannot be empty" +msgstr "" + +msgid "Snapshot type" +msgstr "" + +#, fuzzy, python-brace-format +msgid "Snapshot type: {}" +msgstr "Tidak ada konfigurasi" + +msgid "U2F login setup" +msgstr "" + +msgid "No U2F devices found" +msgstr "" + +msgid "U2F Login Method" +msgstr "" + +#, fuzzy +msgid "Enable passwordless sudo?" +msgstr "Masukan kata sandi: " + +#, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "" + +msgid "You may need to enter the PIN and then touch your U2F device to register it" +msgstr "" diff --git a/archinstall/locales/it/LC_MESSAGES/base.mo b/archinstall/locales/it/LC_MESSAGES/base.mo index 03564f3f846b7e9f6a88482e90febb1ecacacacc..464a73d20cd2a9f4ac9e737f795dc04d7e8ddf75 100644 GIT binary patch delta 12931 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\n" -"X-Generator: Poedit 3.6\n" +"X-Generator: Poedit 3.7\n" "X-Poedit-Basepath: ../..\n" "X-Poedit-SearchPath-0: base.pot\n" @@ -27,7 +27,7 @@ msgid "And one more time for verification: " msgstr "E ancora una volta per verifica: " msgid "Would you like to use swap on zram?" -msgstr "Vorresti usare lo swap su zram?" +msgstr "Desideri usare lo swap su zram?" msgid "Desired hostname for the installation: " msgstr "Nome host desiderato per l'installazione: " @@ -45,7 +45,7 @@ msgid "Select a timezone" msgstr "Seleziona un fuso orario" msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?" -msgstr "Vorresti usare GRUB come bootloader invece di systemd-boot?" +msgstr "Desideri usare GRUB come bootloader invece di systemd-boot?" msgid "Choose a bootloader" msgstr "Scegli un bootloader" @@ -60,7 +60,7 @@ msgid "If you desire a web browser, such as firefox or chromium, you may specify msgstr "Se desideri un browser web, come firefox o chromium, puoi specificarlo nel seguente prompt." msgid "Write additional packages to install (space separated, leave blank to skip): " -msgstr "Scrivi pacchetti aggiuntivi da installare (separati da spazi, lascia vuoto per saltare): " +msgstr "Scrivi i pacchetti aggiuntivi da installare (separati da spazi, lascia vuoto per saltare): " msgid "Copy ISO network configuration to installation" msgstr "Copia la configurazione di rete ISO nell'installazione" @@ -74,6 +74,7 @@ msgstr "Seleziona un'interfaccia di rete da configurare" msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" msgstr "Seleziona la modalità da configurare per \"{}\" o salta per utilizzare la modalità predefinita \"{}\"" +#, python-brace-format msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " msgstr "Inserisci l'IP e la sottorete per {} (esempio: 192.168.0.5/24): " @@ -388,7 +389,7 @@ msgid "Verifying that additional packages exist (this might take a few seconds)" msgstr "Verifico l'esistenza dei pacchetti aggiuntivi (potrebbe richiedere alcuni secondi)" msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n" -msgstr "Vorresti utilizzare la sincronizzazione automatica dell'ora (NTP) con i server orari predefiniti?\n" +msgstr "Desideri usare la sincronizzazione automatica dell'ora (NTP) con i server orari predefiniti?\n" msgid "" "Hardware time and other post-configuration steps might be required in order for NTP to work.\n" @@ -587,17 +588,18 @@ msgstr "Seleziona le opzioni del sottovolume desiderate " msgid "Define users with sudo privilege, by username: " msgstr "Definisci gli utenti con privilegi sudo, per nome utente: " +#, python-brace-format msgid "[!] A log file has been created here: {}" msgstr "[!] Un file di log è stato creato qui: {}" msgid "Would you like to use BTRFS subvolumes with a default structure?" -msgstr "Desideri utilizzare i sottovolumi BTRFS con una struttura predefinita?" +msgstr "Desideri usare i sottovolumi BTRFS con una struttura predefinita?" msgid "Would you like to use BTRFS compression?" -msgstr "Vorresti usare la compressione BTRFS?" +msgstr "Desideri usare la compressione BTRFS?" msgid "Would you like to create a separate partition for /home?" -msgstr "Vorresti creare una partizione separata per /home?" +msgstr "Desideri creare una partizione separata per /home?" msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n" msgstr "Le unità selezionate non hanno la capacità minima richiesta per un suggerimento automatico\n" @@ -672,7 +674,7 @@ msgid "Press Enter to continue." msgstr "Premi Invio per continuare." msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?" -msgstr "Vorresti eseguire il chroot nell'installazione appena creata e fare la configurazione post-installazione?" +msgstr "Desideri eseguire il chroot nell'installazione appena creata e fare la configurazione post-installazione?" msgid "Are you sure you want to reset this setting?" msgstr "Sei sicuro di voler ripristinare questa impostazione?" @@ -845,9 +847,11 @@ msgstr "Archinstall richiede i privilegi di root per essere eseguito. Vedi --hel msgid "Select an execution mode" msgstr "Seleziona una modalità d’esecuzione" +#, python-brace-format msgid "Unable to fetch profile from specified url: {}" msgstr "Impossibile recuperare il profilo dall’URL specificato: {}" +#, python-brace-format msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" msgstr "I profili devono avere un nome univoco, ma sono state trovate definizioni di profilo con nome duplicato: {}" @@ -866,9 +870,11 @@ msgstr "Selezione opzione di partizionamento" msgid "Enter the root directory of the mounted devices: " msgstr "Inserisci la directory principale dei dispositivi montati: " +#, python-brace-format msgid "Minimum capacity for /home partition: {}GiB\n" msgstr "Capacità minima per la partizione /home: {}GiB\n" +#, python-brace-format msgid "Minimum capacity for Arch Linux partition: {}GiB" msgstr "Capacità minima per la partizione Arch Linux: {}GiB" @@ -932,9 +938,11 @@ msgstr "Inserisci il settore finale della partizione (percentuale o numero di bl msgid "This will remove all newly added partitions, continue?" msgstr "Questo rimuoverà tutte le partizioni appena aggiunte, continuare?" +#, python-brace-format msgid "Partition management: {}" msgstr "Gestione partizione: {}" +#, python-brace-format msgid "Total length: {}" msgstr "Lunghezza totale: {}" @@ -995,6 +1003,7 @@ msgstr "Sconosciuto" msgid "Partition encryption" msgstr "Crittografia partizione" +#, python-brace-format msgid " ! Formatting {} in " msgstr " ! Formattazione {} in " @@ -1019,6 +1028,7 @@ msgstr "Indietro" msgid "Please chose which greeter to install for the chosen profiles: {}" msgstr "Scegli quale messaggio di benvenuto installare per i profili scelti: {}" +#, python-brace-format msgid "Environment type: {}" msgstr "Tipo di ambiente: {}" @@ -1211,6 +1221,7 @@ msgstr "" "\n" "Nota:\n" +#, python-brace-format msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" msgstr " - Valore massimo raccomandato : {} ( Consente {} download paralleli)" @@ -1236,7 +1247,7 @@ msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB... msgstr "Tutti i valori immessi possono avere come suffisso un’unità: %, B, KB, KiB, MB, MiB…" msgid "Would you like to use unified kernel images?" -msgstr "Vorresti usare le immagini kernel unificate?" +msgstr "Desideri usare le immagini kernel unificate?" msgid "Unified kernel images" msgstr "Immagini kernel unificate" @@ -1263,7 +1274,7 @@ msgid "Mark/Unmark as nodatacow" msgstr "Seleziona/Deseleziona come nodatacow" msgid "Would you like to use compression or disable CoW?" -msgstr "Vorresti usare la compressione o disabilitare CoW?" +msgstr "Desideri usare la compressione o disabilitare CoW?" msgid "Use compression" msgstr "Usa la compressione" @@ -1274,6 +1285,7 @@ msgstr "Disabilita Copy-on-Write" msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" msgstr "Fornisce una selezione di ambienti desktop e gestori di finestre, per esempio GNOME, KDE Plasma, Sway" +#, python-brace-format msgid "Configuration type: {}" msgstr "Tipo configurazione: {}" @@ -1400,6 +1412,7 @@ msgstr "Il nome utente inserito non è valido" msgid "Username" msgstr "Nome utente" +#, python-brace-format msgid "Should \"{}\" be a superuser (sudo)?\n" msgstr "\"{}\" dovrebbe essere un superuser (sudo)?\n" @@ -1458,7 +1471,7 @@ msgid "Not a valid directory" msgstr "Non è una cartella valida" msgid "Would you like to continue?" -msgstr "Vorresti continuare?" +msgstr "Desideri continuare?" msgid "Directory" msgstr "Cartella" @@ -1466,6 +1479,7 @@ msgstr "Cartella" msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)" msgstr "Inserisci una cartella dove salvare le configurazioni (completamento col tasto tab abilitato)" +#, python-brace-format msgid "Do you want to save the configuration file(s) to {}?" msgstr "Vuoi salvare i file di configurazione in {}?" @@ -1511,12 +1525,15 @@ msgstr "Nome" msgid "Signature check" msgstr "Controllo della firma" +#, python-brace-format msgid "Selected free space segment on device {}:" msgstr "Segmento di spazio libero selezionato sul dispositivo {}:" +#, python-brace-format msgid "Size: {} / {}" msgstr "Dimensione: {} / {}" +#, python-brace-format msgid "Size (default: {}): " msgstr "Dimensione (predefinita: {}): " @@ -1677,8 +1694,9 @@ msgid "Installation completed" msgstr "Installazione completata" msgid "What would you like to do next?" -msgstr "Cosa vorresti fare dopo?" +msgstr "Cosa desideri fare dopo?" +#, python-brace-format msgid "Select which mode to configure for \"{}\"" msgstr "Seleziona la modalità da configurare per \"{}\"" @@ -1697,5 +1715,69 @@ msgstr "Vuoi criptare il file di user_credentials.json?" msgid "Credentials file encryption password" msgstr "Password di crittazione del file delle credenziali" +#, python-brace-format msgid "Repositories: {}" msgstr "Repository: {}" + +msgid "New version available" +msgstr "Nuova versione disponibile" + +msgid "Passwordless login" +msgstr "Accesso senza password" + +msgid "Second factor login" +msgstr "Accesso con secondo fattore" + +msgid "Bluetooth" +msgstr "Bluetooth" + +msgid "Would you like to configure Bluetooth?" +msgstr "Desideri configurare il Bluetooth?" + +msgid "Authentication" +msgstr "Autenticazione" + +msgid "Applications" +msgstr "Applicazioni" + +msgid "U2F login method: " +msgstr "Metodo di accesso U2F: " + +msgid "Passwordless sudo: " +msgstr "Sudo senza password: " + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "Tipo di snapshot Btrfs: {}" + +msgid "Syncing the system..." +msgstr "Sincronizzazione del sistema in corso…" + +msgid "Value cannot be empty" +msgstr "Il valore non può essere vuoto" + +msgid "Snapshot type" +msgstr "Tipo di snapshot" + +#, python-brace-format +msgid "Snapshot type: {}" +msgstr "Tipo di snapshot: {}" + +msgid "U2F login setup" +msgstr "Imposta accesso U2F" + +msgid "No U2F devices found" +msgstr "Nessun dispositivo U2F trovato" + +msgid "U2F Login Method" +msgstr "Metodo di accesso U2F" + +msgid "Enable passwordless sudo?" +msgstr "Attivare sudo senza password?" + +#, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "Impostazione dispositivo U2F per l'utente: {}" + +msgid "You may need to enter the PIN and then touch your U2F device to register it" +msgstr "Devi inserire il PIN e toccare il tuo dispositivo U2F per registrarlo" diff --git a/archinstall/locales/ja/LC_MESSAGES/base.mo b/archinstall/locales/ja/LC_MESSAGES/base.mo index 714febb2adc15886d0acfcdc96afc3654665f409..089f843ae80caa5f64a0e91df5bbbedb1f1d6f22 100644 GIT binary patch delta 12919 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 PfX}na=S{sbIp6;PH#@tY delta 11432 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 diff --git a/archinstall/locales/ja/LC_MESSAGES/base.po b/archinstall/locales/ja/LC_MESSAGES/base.po index e031ea0020..b7b7713303 100644 --- a/archinstall/locales/ja/LC_MESSAGES/base.po +++ b/archinstall/locales/ja/LC_MESSAGES/base.po @@ -71,6 +71,7 @@ msgstr "設定するネットワークインターフェイスを 1 つ選択" msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" msgstr "どのモードを \"{}\" に設定するかを選択。スキップでデフォルトモード \"{}\" を使用" +#, python-brace-format msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " msgstr "{} の IP とサブネットを入力(例: 192.168.0.5/24): " @@ -584,6 +585,7 @@ msgstr "サブボリュームのオプションを選択" msgid "Define users with sudo privilege, by username: " msgstr "sudo 権限を持つユーザーを、ユーザー名で定義: " +#, python-brace-format msgid "[!] A log file has been created here: {}" msgstr "[!] ここにログファイルが作成されました: {}" @@ -842,9 +844,11 @@ msgstr "Archinstall を実行するには root 権限が必要です。詳細に msgid "Select an execution mode" msgstr "実行モードを選択" +#, python-brace-format msgid "Unable to fetch profile from specified url: {}" msgstr "指定された URL からプロファイルを取得できません: {}" +#, python-brace-format msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" msgstr "プロファイルには一意の名前が必要ですが、重複した名前のプロファイル定義が見つかりました: {}" @@ -863,9 +867,11 @@ msgstr "パーティション作成のオプションを選択" msgid "Enter the root directory of the mounted devices: " msgstr "マウントしているデバイスのルートディレクトリを入力: " +#, python-brace-format msgid "Minimum capacity for /home partition: {}GiB\n" msgstr "/home パーティションの最小容量: {}GiB\n" +#, python-brace-format msgid "Minimum capacity for Arch Linux partition: {}GiB" msgstr "Arch Linux パーティションの最小容量: {}GiB" @@ -929,9 +935,11 @@ msgstr "パーティションの終了セクターを入力(パーセンテー msgid "This will remove all newly added partitions, continue?" msgstr "これは新しく追加されたパーティションをすべて削除します。続けますか?" +#, python-brace-format msgid "Partition management: {}" msgstr "パーティションを管理: {}" +#, python-brace-format msgid "Total length: {}" msgstr "全体のサイズ: {}" @@ -992,6 +1000,7 @@ msgstr "不明" msgid "Partition encryption" msgstr "パーティションの暗号化" +#, python-brace-format msgid " ! Formatting {} in " msgstr " ! {} のフォーマットまで " @@ -1016,6 +1025,7 @@ msgstr "戻る" msgid "Please chose which greeter to install for the chosen profiles: {}" msgstr "選択したプロファイルにインストールするグリーターを選択: {}" +#, python-brace-format msgid "Environment type: {}" msgstr "環境のタイプ: {}" @@ -1208,6 +1218,7 @@ msgstr "" "\n" "注意:\n" +#, python-brace-format msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" msgstr " - 最大推奨値 : {} (1度に {} 個の並列ダウンロードを許可する)" @@ -1271,6 +1282,7 @@ msgstr "コピーオンライトを無効にする" msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" msgstr "デスクトップ環境とタイルウィンドウマネージャーの選択を提供します。例: GNOME, KDE Plasma, Sway" +#, python-brace-format msgid "Configuration type: {}" msgstr "設定タイプ: {}" @@ -1397,6 +1409,7 @@ msgstr "入力したユーザー名は無効です" msgid "Username" msgstr "ユーザー名" +#, python-brace-format msgid "Should \"{}\" be a superuser (sudo)?\n" msgstr "\"{}\" はスーパーユーザーに昇格しますか(sudo)?\n" @@ -1463,6 +1476,7 @@ msgstr "ディレクトリ" msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)" msgstr "設定を保存するディレクトリを入力(Tab で補完可能)" +#, python-brace-format msgid "Do you want to save the configuration file(s) to {}?" msgstr "設定ファイルを次の場所に保存しますか? {}" @@ -1508,12 +1522,15 @@ msgstr "名前" msgid "Signature check" msgstr "署名チェック" +#, python-brace-format msgid "Selected free space segment on device {}:" msgstr "デバイス {} の選択された空きスペースセグメント:" +#, python-brace-format msgid "Size: {} / {}" msgstr "サイズ: {} / {}" +#, python-brace-format msgid "Size (default: {}): " msgstr "サイズ (デフォルト: {}): " @@ -1676,6 +1693,7 @@ msgstr "インストール完了" msgid "What would you like to do next?" msgstr "次は何をしますか?" +#, python-brace-format msgid "Select which mode to configure for \"{}\"" msgstr "「{}」に設定するモードを選択" @@ -1694,5 +1712,69 @@ msgstr "user_credentials.json ファイルを暗号化しますか?" msgid "Credentials file encryption password" msgstr "認証情報ファイルの暗号化パスワード" +#, python-brace-format msgid "Repositories: {}" msgstr "リポジトリ: {}" + +msgid "New version available" +msgstr "新しいバージョンが利用可能" + +msgid "Passwordless login" +msgstr "パスワードなしのログイン" + +msgid "Second factor login" +msgstr "2要素ログイン" + +msgid "Bluetooth" +msgstr "Bluetooth" + +msgid "Would you like to configure Bluetooth?" +msgstr "Bluetooth を設定しますか?" + +msgid "Authentication" +msgstr "認証" + +msgid "Applications" +msgstr "アプリケーション" + +msgid "U2F login method: " +msgstr "U2F ログインメソッド: " + +msgid "Passwordless sudo: " +msgstr "パスワードなしの sudo: " + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "Btrfs スナップショットのタイプ: {}" + +msgid "Syncing the system..." +msgstr "システムを同期..." + +msgid "Value cannot be empty" +msgstr "値は空にできません" + +msgid "Snapshot type" +msgstr "スナップショットのタイプ" + +#, python-brace-format +msgid "Snapshot type: {}" +msgstr "スナップショットのタイプ: {}" + +msgid "U2F login setup" +msgstr "U2F ログインの設定" + +msgid "No U2F devices found" +msgstr "U2F デバイスが見つかりません" + +msgid "U2F Login Method" +msgstr "U2F ログインメソッド" + +msgid "Enable passwordless sudo?" +msgstr "パスワードなしの sudo を有効にしますか?" + +#, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "ユーザー用 U2F デバイスの設定: {}" + +msgid "You may need to enter the PIN and then touch your U2F device to register it" +msgstr "PIN を入力したのち U2F デバイスをタッチして登録しなければならない場合があります" diff --git a/archinstall/locales/ka/LC_MESSAGES/base.po b/archinstall/locales/ka/LC_MESSAGES/base.po index efd6947fe1..85a34051aa 100644 --- a/archinstall/locales/ka/LC_MESSAGES/base.po +++ b/archinstall/locales/ka/LC_MESSAGES/base.po @@ -72,6 +72,7 @@ msgstr "მოსარგებად ერთ-ერთი ქსელის msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" msgstr "აირჩიეთ მოსარგები რეჟიმი \"{}\"-სთვის ან გამოტოვეთ ნაგულისხმევი რეჟიმის \"{}\" გამოსაყენებლად" +#, python-brace-format msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " msgstr "შეიყვანეთ IP მისამართი და ქვექსელი {}-სთვის (მაგ: 192.168.0.5/24): " @@ -585,6 +586,7 @@ msgstr "აირჩიეთ სასურველი ქვეტომი msgid "Define users with sudo privilege, by username: " msgstr "აღწერეთ sudo-ის პრივილეგიების მქონე მომხმარებლები, მათი სახელით: " +#, python-brace-format msgid "[!] A log file has been created here: {}" msgstr "[!] ჟურნალის ფაილის მდებარეობა: {}" @@ -843,9 +845,11 @@ msgstr "Archinstall-ს გასაშვებად root მომხმა msgid "Select an execution mode" msgstr "აირჩიეთ შესრულების რეჟიმი" +#, python-brace-format msgid "Unable to fetch profile from specified url: {}" msgstr "პროფილის მიღება შეუძლებელია მითითებული ბმულიდან: {}" +#, python-brace-format msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" msgstr "პროფილებს უნიკალური სახელი უნდა ჰქონდეთ, მაგრამ აღმოჩენილია პროფილის აღწერები გამეორებადი სახელით: {}" @@ -864,9 +868,11 @@ msgstr "აირჩიეთ დისკის დაყოფის პარ msgid "Enter the root directory of the mounted devices: " msgstr "შეიყვანეთ მიმაგრებული მოწყობილობების ძირითადი საქაღალდე: " +#, python-brace-format msgid "Minimum capacity for /home partition: {}GiB\n" msgstr "მინიმალური სივრცე დანაყოფისთვის /home: {}გიბ\n" +#, python-brace-format msgid "Minimum capacity for Arch Linux partition: {}GiB" msgstr "მინიმალური სივრცე Arch Linux-ის დანაყოფისთვის: {}გიბ" @@ -930,9 +936,11 @@ msgstr "შეიყვანეთ დანაყოფის ბოლო ს msgid "This will remove all newly added partitions, continue?" msgstr "ეს ყველა ახლად დამატებულ დანაყოფს წაშლის. გავაგრძელო?" +#, python-brace-format msgid "Partition management: {}" msgstr "დანაყოფების მართვა: {}" +#, python-brace-format msgid "Total length: {}" msgstr "ჯამური სიგრძე: {}" @@ -993,6 +1001,7 @@ msgstr "უცნობი" msgid "Partition encryption" msgstr "დანაყოფის დაშიფვრა" +#, python-brace-format msgid " ! Formatting {} in " msgstr " ! {}-ის დაფორმატება ფორმატში " @@ -1017,6 +1026,7 @@ msgstr "უკან" msgid "Please chose which greeter to install for the chosen profiles: {}" msgstr "აირჩიეთ, რომელი მისალმების ეკრანის დაყენება გნებავთ არჩეული პროფილებისთვის: {}" +#, python-brace-format msgid "Environment type: {}" msgstr "გარემოს ტიპი: {}" @@ -1209,6 +1219,7 @@ msgstr "" "\n" "შენიშვნა:\n" +#, python-brace-format msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" msgstr " - მინიმალური მნიშვნელობა : {} ( დაუშვებს {} პარალელურ გადმოწერას )" @@ -1272,6 +1283,7 @@ msgstr "ჩაწერისას-დაკოპირების გათ msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" msgstr "მოგაწვდით სამუშაო გარემოებისა და ფანჯრების მმართველების არჩევანს. მაგ: GNOME, KDE Plasma, Sway" +#, python-brace-format msgid "Configuration type: {}" msgstr "მორგების ტიპი: {}" @@ -1415,7 +1427,7 @@ msgstr "შეყვანილი მომხმარებლის სა msgid "Username" msgstr "მომხმარებლის სახელი : " -#, fuzzy +#, fuzzy, python-brace-format msgid "Should \"{}\" be a superuser (sudo)?\n" msgstr "იყოს \"{}\" ზემომხმარებელი(sudo)?" @@ -1497,7 +1509,7 @@ msgstr "" "შეიყვანეთ საქაღალდე კონფიგურაცი(ებ)-ის შესანახად (ტაბით დასრულება ჩართულია)\n" "შენახვის საქაღალდე: " -#, fuzzy +#, fuzzy, python-brace-format msgid "Do you want to save the configuration file(s) to {}?" msgstr "" "გნებავთ, შეინახოთ {} კონფიგურაციის ფაილები შემდეგ მისამართზე?\n" @@ -1556,15 +1568,15 @@ msgstr "" msgid "Signature check" msgstr "აირჩიეთ ხელმოწერის შემოწმების პარამეტრი" -#, fuzzy +#, fuzzy, python-brace-format msgid "Selected free space segment on device {}:" msgstr "ამჟამად თავისუფალი სექტორები მოწყობილობაზე {}:" -#, fuzzy +#, fuzzy, python-brace-format msgid "Size: {} / {}" msgstr "სულ: {} / {}" -#, fuzzy +#, fuzzy, python-brace-format msgid "Size (default: {}): " msgstr "შეიყვანეთ ბოლო სექტორი (ნაგულისხმევი: {}): " @@ -1764,7 +1776,7 @@ msgstr "" msgid "What would you like to do next?" msgstr "გნებავთ BTRFS-ის შეკუმშვის გამოყენება?" -#, fuzzy +#, fuzzy, python-brace-format msgid "Select which mode to configure for \"{}\"" msgstr "აირჩიეთ მოსარგები რეჟიმი \"{}\"-სთვის ან გამოტოვეთ ნაგულისხმევი რეჟიმის \"{}\" გამოსაყენებლად" @@ -1791,6 +1803,73 @@ msgstr "" msgid "Credentials file encryption password" msgstr "დაშიფვრის პაროლი" -#, fuzzy +#, fuzzy, python-brace-format msgid "Repositories: {}" msgstr "სარკის რეგიონი" + +#, fuzzy +msgid "New version available" +msgstr "HSM მოწყობილობები მიუწვდომელია" + +#, fuzzy +msgid "Passwordless login" +msgstr "პაროლი" + +msgid "Second factor login" +msgstr "" + +msgid "Bluetooth" +msgstr "" + +#, fuzzy +msgid "Would you like to configure Bluetooth?" +msgstr "გნებავთ BTRFS-ის შეკუმშვის გამოყენება?" + +msgid "Authentication" +msgstr "" + +msgid "Applications" +msgstr "" + +msgid "U2F login method: " +msgstr "" + +msgid "Passwordless sudo: " +msgstr "" + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "" + +msgid "Syncing the system..." +msgstr "" + +msgid "Value cannot be empty" +msgstr "" + +msgid "Snapshot type" +msgstr "" + +#, fuzzy, python-brace-format +msgid "Snapshot type: {}" +msgstr "გარემოს ტიპი: {}" + +msgid "U2F login setup" +msgstr "" + +msgid "No U2F devices found" +msgstr "" + +msgid "U2F Login Method" +msgstr "" + +#, fuzzy +msgid "Enable passwordless sudo?" +msgstr "შეიყვანეთ პაროლი: " + +#, fuzzy, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "აირჩიეთ HSM-სთვის გამოსაყენებელი FIDO2 მოწყობილობა" + +msgid "You may need to enter the PIN and then touch your U2F device to register it" +msgstr "" diff --git a/archinstall/locales/ko/LC_MESSAGES/base.po b/archinstall/locales/ko/LC_MESSAGES/base.po index df9c9c4b02..ad47daa0a5 100644 --- a/archinstall/locales/ko/LC_MESSAGES/base.po +++ b/archinstall/locales/ko/LC_MESSAGES/base.po @@ -71,6 +71,7 @@ msgstr "구성할 네트워크 인터페이스를 하나 선택하세요" msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" msgstr "\"{}\" 에 대해 구성할 모드를 선택하거나 기본 모드 \"{}\" 을(를) 사용하도록 건너뛰세요" +#, python-brace-format msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " msgstr "{} 의 IP와 서브넷을 입력하세요 (예시: 192.168.0.5/24): " @@ -584,6 +585,7 @@ msgstr "원하는 하위 볼륨 옵션을 선택하세요 " msgid "Define users with sudo privilege, by username: " msgstr "sudo 권한을 가질 사용자 이름을 입력하세요: " +#, python-brace-format msgid "[!] A log file has been created here: {}" msgstr "[!] 로그파일이 다음 경로에 생성되었습니다: {}" @@ -844,9 +846,11 @@ msgstr "" msgid "Select an execution mode" msgstr "'{}' 에 대한 작업 선택" +#, python-brace-format msgid "Unable to fetch profile from specified url: {}" msgstr "" +#, python-brace-format msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" msgstr "" @@ -870,11 +874,11 @@ msgstr "파티션 제거" msgid "Enter the root directory of the mounted devices: " msgstr "저장할 구성의 디렉토리를 입력하세요: " -#, fuzzy +#, fuzzy, python-brace-format msgid "Minimum capacity for /home partition: {}GiB\n" msgstr "Arch Linux 파티션의 최대 용량: {}GB\n" -#, fuzzy +#, fuzzy, python-brace-format msgid "Minimum capacity for Arch Linux partition: {}GiB" msgstr "Arch Linux 파티션의 최소 용량: {}GB" @@ -950,9 +954,11 @@ msgstr "파티션의 끝 섹터를 입력하세요 (백분율 또는 블록 번 msgid "This will remove all newly added partitions, continue?" msgstr "" +#, python-brace-format msgid "Partition management: {}" msgstr "" +#, python-brace-format msgid "Total length: {}" msgstr "" @@ -1018,6 +1024,7 @@ msgstr "" msgid "Partition encryption" msgstr "" +#, python-brace-format msgid " ! Formatting {} in " msgstr "" @@ -1045,6 +1052,7 @@ msgstr "" msgid "Please chose which greeter to install for the chosen profiles: {}" msgstr "" +#, python-brace-format msgid "Environment type: {}" msgstr "" @@ -1258,7 +1266,7 @@ msgstr "" " (1 부터 {} 까지의 숫자중 하나를 입력하세요)\n" "메모:" -#, fuzzy +#, fuzzy, python-brace-format msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" msgstr " - 최댓값 : {} ( {} 개의 병렬 다운로드 허용, 한 번에 {} 개의 다운로드 허용 )" @@ -1326,7 +1334,7 @@ msgstr "" msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" msgstr "gnome, kde, sway 같은 다양한 데스크탑 환경 및 타일링 창 관리자를 제공합니다" -#, fuzzy +#, fuzzy, python-brace-format msgid "Configuration type: {}" msgstr "구성 없음" @@ -1477,7 +1485,7 @@ msgstr "입력한 사용자 이름이 잘못되었습니다. 다시 시도하세 msgid "Username" msgstr "사용자명 : " -#, fuzzy +#, fuzzy, python-brace-format msgid "Should \"{}\" be a superuser (sudo)?\n" msgstr "\"{}\"은(는) 슈퍼유저여야 합니까 (sudo)?" @@ -1555,7 +1563,7 @@ msgstr "" msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)" msgstr "저장할 구성의 디렉토리를 입력하세요: " -#, fuzzy +#, fuzzy, python-brace-format msgid "Do you want to save the configuration file(s) to {}?" msgstr "구성 저장" @@ -1607,13 +1615,15 @@ msgstr "" msgid "Signature check" msgstr "추가할 인터페이스 선택" +#, python-brace-format msgid "Selected free space segment on device {}:" msgstr "" +#, python-brace-format msgid "Size: {} / {}" msgstr "" -#, fuzzy +#, fuzzy, python-brace-format msgid "Size (default: {}): " msgstr "시작 섹터를 입력하세요 (백분율 또는 블록 번호, 기본값: {}): " @@ -1800,7 +1810,7 @@ msgstr "" msgid "What would you like to do next?" msgstr "BTRFS 압축을 사용하시겠습니까?" -#, fuzzy +#, fuzzy, python-brace-format msgid "Select which mode to configure for \"{}\"" msgstr "\"{}\" 에 대해 구성할 모드를 선택하거나 기본 모드 \"{}\" 을(를) 사용하도록 건너뛰세요" @@ -1824,6 +1834,72 @@ msgstr "구성 저장" msgid "Credentials file encryption password" msgstr "비밀번호 암호화" -#, fuzzy +#, fuzzy, python-brace-format msgid "Repositories: {}" msgstr "미러 위치" + +msgid "New version available" +msgstr "" + +#, fuzzy +msgid "Passwordless login" +msgstr "루트 비밀번호" + +msgid "Second factor login" +msgstr "" + +msgid "Bluetooth" +msgstr "" + +#, fuzzy +msgid "Would you like to configure Bluetooth?" +msgstr "BTRFS 압축을 사용하시겠습니까?" + +msgid "Authentication" +msgstr "" + +msgid "Applications" +msgstr "" + +msgid "U2F login method: " +msgstr "" + +msgid "Passwordless sudo: " +msgstr "" + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "" + +msgid "Syncing the system..." +msgstr "" + +msgid "Value cannot be empty" +msgstr "" + +msgid "Snapshot type" +msgstr "" + +#, fuzzy, python-brace-format +msgid "Snapshot type: {}" +msgstr "구성 없음" + +msgid "U2F login setup" +msgstr "" + +msgid "No U2F devices found" +msgstr "" + +msgid "U2F Login Method" +msgstr "" + +#, fuzzy +msgid "Enable passwordless sudo?" +msgstr "비밀번호를 입력하세요: " + +#, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "" + +msgid "You may need to enter the PIN and then touch your U2F device to register it" +msgstr "" diff --git a/archinstall/locales/languages.json b/archinstall/locales/languages.json index 915a6c5e87..afaa1aed74 100644 --- a/archinstall/locales/languages.json +++ b/archinstall/locales/languages.json @@ -171,7 +171,7 @@ {"abbr": "ug", "lang": "Uighur"}, {"abbr": "uk", "lang": "Ukrainian"}, {"abbr": "ur", "lang": "Urdu", "translated_lang": "اردو"}, - {"abbr": "uz", "lang": "Uzbek"}, + {"abbr": "uz", "lang": "Uzbek", "translated_lang": "O'zbek"}, {"abbr": "ve", "lang": "Venda"}, {"abbr": "vi", "lang": "Vietnamese"}, {"abbr": "vo", "lang": "Volapük"}, diff --git a/archinstall/locales/lt/LC_MESSAGES/base.po b/archinstall/locales/lt/LC_MESSAGES/base.po index 715b53010f..b192da5644 100644 --- a/archinstall/locales/lt/LC_MESSAGES/base.po +++ b/archinstall/locales/lt/LC_MESSAGES/base.po @@ -71,6 +71,7 @@ msgstr "" msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" msgstr "" +#, python-brace-format msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " msgstr "" @@ -542,6 +543,7 @@ msgstr "" msgid "Define users with sudo privilege, by username: " msgstr "" +#, python-brace-format msgid "[!] A log file has been created here: {}" msgstr "" @@ -793,9 +795,11 @@ msgstr "" msgid "Select an execution mode" msgstr "" +#, python-brace-format msgid "Unable to fetch profile from specified url: {}" msgstr "" +#, python-brace-format msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" msgstr "" @@ -814,9 +818,11 @@ msgstr "" msgid "Enter the root directory of the mounted devices: " msgstr "" +#, python-brace-format msgid "Minimum capacity for /home partition: {}GiB\n" msgstr "" +#, python-brace-format msgid "Minimum capacity for Arch Linux partition: {}GiB" msgstr "" @@ -880,9 +886,11 @@ msgstr "" msgid "This will remove all newly added partitions, continue?" msgstr "" +#, python-brace-format msgid "Partition management: {}" msgstr "" +#, python-brace-format msgid "Total length: {}" msgstr "" @@ -943,6 +951,7 @@ msgstr "Nežinomas" msgid "Partition encryption" msgstr "" +#, python-brace-format msgid " ! Formatting {} in " msgstr "" @@ -967,6 +976,7 @@ msgstr "Atgal" msgid "Please chose which greeter to install for the chosen profiles: {}" msgstr "" +#, python-brace-format msgid "Environment type: {}" msgstr "" @@ -1146,6 +1156,7 @@ msgid "" "Note:\n" msgstr "" +#, python-brace-format msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" msgstr "" @@ -1207,7 +1218,7 @@ msgstr "" msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" msgstr "" -#, fuzzy +#, fuzzy, python-brace-format msgid "Configuration type: {}" msgstr "Nėra konfigūracijos" @@ -1344,7 +1355,7 @@ msgstr "" msgid "Username" msgstr "Vartotojo vardas :" -#, fuzzy +#, fuzzy, python-brace-format msgid "Should \"{}\" be a superuser (sudo)?\n" msgstr "Ar noritė padarity šitą vartotoją supervartotoju (sudoer)" @@ -1415,6 +1426,7 @@ msgstr "" msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)" msgstr "" +#, python-brace-format msgid "Do you want to save the configuration file(s) to {}?" msgstr "" @@ -1462,13 +1474,15 @@ msgstr "" msgid "Signature check" msgstr "" +#, python-brace-format msgid "Selected free space segment on device {}:" msgstr "" -#, fuzzy +#, fuzzy, python-brace-format msgid "Size: {} / {}" msgstr "Iš viso: {} / {}" +#, python-brace-format msgid "Size (default: {}): " msgstr "" @@ -1646,6 +1660,7 @@ msgstr "" msgid "What would you like to do next?" msgstr "" +#, python-brace-format msgid "Select which mode to configure for \"{}\"" msgstr "" @@ -1665,6 +1680,71 @@ msgstr "" msgid "Credentials file encryption password" msgstr "" -#, fuzzy +#, fuzzy, python-brace-format msgid "Repositories: {}" msgstr "Pagrindinio kompiuterio vardas" + +msgid "New version available" +msgstr "" + +#, fuzzy +msgid "Passwordless login" +msgstr "Slaptažodis" + +msgid "Second factor login" +msgstr "" + +msgid "Bluetooth" +msgstr "" + +msgid "Would you like to configure Bluetooth?" +msgstr "" + +msgid "Authentication" +msgstr "" + +msgid "Applications" +msgstr "" + +msgid "U2F login method: " +msgstr "" + +msgid "Passwordless sudo: " +msgstr "" + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "" + +msgid "Syncing the system..." +msgstr "" + +msgid "Value cannot be empty" +msgstr "" + +msgid "Snapshot type" +msgstr "" + +#, fuzzy, python-brace-format +msgid "Snapshot type: {}" +msgstr "Nėra konfigūracijos" + +msgid "U2F login setup" +msgstr "" + +msgid "No U2F devices found" +msgstr "" + +msgid "U2F Login Method" +msgstr "" + +#, fuzzy +msgid "Enable passwordless sudo?" +msgstr "Iveskite slaptažodžį" + +#, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "" + +msgid "You may need to enter the PIN and then touch your U2F device to register it" +msgstr "" diff --git a/archinstall/locales/nl/LC_MESSAGES/base.mo b/archinstall/locales/nl/LC_MESSAGES/base.mo index 6f33f8baaad15e8e7d028cc41512d763f2564ca1..df87ea92134f0be7e174d2307199c5e487b8838f 100644 GIT binary patch delta 3445 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 diff --git a/archinstall/locales/nl/LC_MESSAGES/base.po b/archinstall/locales/nl/LC_MESSAGES/base.po index 7b5e078955..b2a3de417b 100644 --- a/archinstall/locales/nl/LC_MESSAGES/base.po +++ b/archinstall/locales/nl/LC_MESSAGES/base.po @@ -72,6 +72,7 @@ msgstr "Kies een in te stellen netwerkkaart" msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" msgstr "Geef aan welke modus moet worden gebruikt bij ‘{}’ of sla over om de standaardmodus (‘{}’) te gebruiken" +#, python-brace-format msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " msgstr "Voer het ip-adres en subnet in van ‘{}’ (voorbeeld: 192.168.0.5/24): " @@ -589,6 +590,7 @@ msgstr "Stel gewenste subvolume-opties in " msgid "Define users with sudo privilege, by username: " msgstr "Gebruikersnamen van gebruikers met sudo-rechten: " +#, fuzzy, python-brace-format msgid "[!] A log file has been created here: {}" msgstr "[!] Er is een logboek aangemaakt: {} {}" @@ -871,9 +873,11 @@ msgstr "" msgid "Select an execution mode" msgstr "Kies een actie voor '{}'" +#, python-brace-format msgid "Unable to fetch profile from specified url: {}" msgstr "" +#, python-brace-format msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" msgstr "" @@ -896,9 +900,11 @@ msgstr "Partitie verwijderen" msgid "Enter the root directory of the mounted devices: " msgstr "Voer de naam in van de map waarin de configuratie(s) moet(en) worden vastgelegd: " +#, python-brace-format msgid "Minimum capacity for /home partition: {}GiB\n" msgstr "" +#, python-brace-format msgid "Minimum capacity for Arch Linux partition: {}GiB" msgstr "" @@ -974,9 +980,11 @@ msgstr "Voer de eindsector in (percentage of bloknummer - bijvoorbeeld: {}): " msgid "This will remove all newly added partitions, continue?" msgstr "" +#, python-brace-format msgid "Partition management: {}" msgstr "" +#, python-brace-format msgid "Total length: {}" msgstr "" @@ -1043,6 +1051,7 @@ msgstr "" msgid "Partition encryption" msgstr "" +#, python-brace-format msgid " ! Formatting {} in " msgstr "" @@ -1070,6 +1079,7 @@ msgstr "" msgid "Please chose which greeter to install for the chosen profiles: {}" msgstr "" +#, python-brace-format msgid "Environment type: {}" msgstr "" @@ -1276,6 +1286,7 @@ msgid "" "Note:\n" msgstr "" +#, python-brace-format msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" msgstr "" @@ -1340,7 +1351,7 @@ msgstr "" msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" msgstr "" -#, fuzzy +#, fuzzy, python-brace-format msgid "Configuration type: {}" msgstr "Geen configuratie" @@ -1488,7 +1499,7 @@ msgstr "" msgid "Username" msgstr "Gebruikersnaam: " -#, fuzzy +#, fuzzy, python-brace-format msgid "Should \"{}\" be a superuser (sudo)?\n" msgstr "Moet {} gebruiker een beheerder (sudoer) worden?" @@ -1566,7 +1577,7 @@ msgstr "" msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)" msgstr "Voer de naam in van de map waarin de configuratie(s) moet(en) worden vastgelegd: " -#, fuzzy +#, fuzzy, python-brace-format msgid "Do you want to save the configuration file(s) to {}?" msgstr "Configuratie vastleggen" @@ -1618,13 +1629,15 @@ msgstr "" msgid "Signature check" msgstr "Kies een schijfindeling" +#, python-brace-format msgid "Selected free space segment on device {}:" msgstr "" +#, python-brace-format msgid "Size: {} / {}" msgstr "" -#, fuzzy +#, fuzzy, python-brace-format msgid "Size (default: {}): " msgstr "Voer de beginsector in (percentage of bloknummer - standaard: {}): " @@ -1809,7 +1822,7 @@ msgstr "" msgid "What would you like to do next?" msgstr "Wilt u wisselgeheugen i.c.m. zram gebruiken?" -#, fuzzy +#, fuzzy, python-brace-format msgid "Select which mode to configure for \"{}\"" msgstr "Geef aan welke modus moet worden gebruikt bij ‘{}’ of sla over om de standaardmodus (‘{}’) te gebruiken" @@ -1833,10 +1846,76 @@ msgstr "Configuratie vastleggen" msgid "Credentials file encryption password" msgstr "Versleutelwachtwoord instellen" -#, fuzzy +#, fuzzy, python-brace-format msgid "Repositories: {}" msgstr "Spiegelserverregio" +msgid "New version available" +msgstr "" + +#, fuzzy +msgid "Passwordless login" +msgstr "Rootwachtwoord" + +msgid "Second factor login" +msgstr "" + +msgid "Bluetooth" +msgstr "" + +#, fuzzy +msgid "Would you like to configure Bluetooth?" +msgstr "Wilt u wisselgeheugen i.c.m. zram gebruiken?" + +msgid "Authentication" +msgstr "" + +msgid "Applications" +msgstr "" + +msgid "U2F login method: " +msgstr "" + +msgid "Passwordless sudo: " +msgstr "" + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "" + +msgid "Syncing the system..." +msgstr "" + +msgid "Value cannot be empty" +msgstr "" + +msgid "Snapshot type" +msgstr "" + +#, fuzzy, python-brace-format +msgid "Snapshot type: {}" +msgstr "Geen configuratie" + +msgid "U2F login setup" +msgstr "" + +msgid "No U2F devices found" +msgstr "" + +msgid "U2F Login Method" +msgstr "" + +#, fuzzy +msgid "Enable passwordless sudo?" +msgstr "Voer een wachtwoord in: " + +#, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "" + +msgid "You may need to enter the PIN and then touch your U2F device to register it" +msgstr "" + #~ msgid "Add :" #~ msgstr "Toevoegen:" diff --git a/archinstall/locales/pl/LC_MESSAGES/base.po b/archinstall/locales/pl/LC_MESSAGES/base.po index de80c94ef8..a4599603e2 100644 --- a/archinstall/locales/pl/LC_MESSAGES/base.po +++ b/archinstall/locales/pl/LC_MESSAGES/base.po @@ -71,6 +71,7 @@ msgstr "Wybierz jeden interfejs sieciowy do skonfigurowania" msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" msgstr "Wybierz który tryb ma być skonfigurowany dla \"{}\" lub pomiń, aby użyć trybu domyślnego \"{}\"" +#, python-brace-format msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " msgstr "Wprowadź adres IP i podsieć dla {} (przykład: 192.168.0.5/24): " @@ -581,6 +582,7 @@ msgstr "Wybierz opcje subwoluminu " msgid "Define users with sudo privilege, by username: " msgstr "Określanie użytkowników z uprawnieniami sudo według nazwy użytkownika: " +#, python-brace-format msgid "[!] A log file has been created here: {}" msgstr "[!] Plik dziennika został zapisany tutaj: {}" @@ -839,9 +841,11 @@ msgstr "Archinstall wymaga uprawnień administratora do uruchomienia. Użyj --he msgid "Select an execution mode" msgstr "Wybierz tryb uruchamiania" +#, python-brace-format msgid "Unable to fetch profile from specified url: {}" msgstr "Nie można pobrać profilu z podanego url: {}" +#, python-brace-format msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" msgstr "Profile muszą mieć unikalne nazwy, a znaleziono istniejący profil o tej nazwie: {}" @@ -860,9 +864,11 @@ msgstr "Wybierz opcję partycjonowania" msgid "Enter the root directory of the mounted devices: " msgstr "Wprowadź katalog root zamontowanych urządzeń: " +#, python-brace-format msgid "Minimum capacity for /home partition: {}GiB\n" msgstr "Maksymalna pojemność dla partycji /home: {}GiB\n" +#, python-brace-format msgid "Minimum capacity for Arch Linux partition: {}GiB" msgstr "Minimalna pojemność dla partycji Arch Linux: {}GiB" @@ -926,9 +932,11 @@ msgstr "Wprowadź sektor końcowy tej partycji (procent lub numer bloku, domyśl msgid "This will remove all newly added partitions, continue?" msgstr "To usunie wszystkie nowo dodane partycje, kontynuować?" +#, python-brace-format msgid "Partition management: {}" msgstr "Zarządzanie partycją: {}" +#, python-brace-format msgid "Total length: {}" msgstr "Całkowita długość: {}" @@ -989,6 +997,7 @@ msgstr "Nieznane" msgid "Partition encryption" msgstr "Szyfrowanie partycji" +#, python-brace-format msgid " ! Formatting {} in " msgstr " ! Formatowanie {} za " @@ -1013,6 +1022,7 @@ msgstr "Wstecz" msgid "Please chose which greeter to install for the chosen profiles: {}" msgstr "Wybierz który greeter zainstalować dla wybranych profili: {}" +#, python-brace-format msgid "Environment type: {}" msgstr "Typ środowiska: {}" @@ -1205,6 +1215,7 @@ msgstr "" "\n" "Note:\n" +#, python-brace-format msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" msgstr " - Maksymalna rekomendowana wartość : {} ( Zwiększa liczbę zadań o {} )" @@ -1268,6 +1279,7 @@ msgstr "Wyłącz kopiowanie przy zapisie (Copy-on-Write)" msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" msgstr "Dostarcza wybór środowisk graficznych oraz kafelkowych menedżerów okien, np. GNOME, KDE Plasma, Sway" +#, python-brace-format msgid "Configuration type: {}" msgstr "Typ konfiguracji: {}" @@ -1394,6 +1406,7 @@ msgstr "Wprowadzona nazwa użytkownika jest nieprawidłowa" msgid "Username" msgstr "Nazwa użytkownika" +#, python-brace-format msgid "Should \"{}\" be a superuser (sudo)?\n" msgstr "Czy \"{}\" powinien być superuserem (mieć uprawnienia sudo)?\n" @@ -1460,6 +1473,7 @@ msgstr "Katalog" msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)" msgstr "Wprowadź katalog, w którym ma zostać zapisana konfiguracja (uzupełnianie przyciskiem tab jest włączone):" +#, python-brace-format msgid "Do you want to save the configuration file(s) to {}?" msgstr "Czy chcesz zapisać plik(i) konfiguracyjne do {}?" @@ -1505,12 +1519,15 @@ msgstr "Nazwa" msgid "Signature check" msgstr "Sprawdzanie podpisów" +#, python-brace-format msgid "Selected free space segment on device {}:" msgstr "Wybrany segment wolnego miejsca na urządzeniu {}:" +#, python-brace-format msgid "Size: {} / {}" msgstr "Rozmiar: {} / {}" +#, python-brace-format msgid "Size (default: {}): " msgstr "Rozmiar (domyślnie: {}): " @@ -1673,6 +1690,7 @@ msgstr "Instalacja zakończona" msgid "What would you like to do next?" msgstr "Co chcesz robić dalej?" +#, python-brace-format msgid "Select which mode to configure for \"{}\"" msgstr "Wybierz który tryb ma być skonfigurowany dla \"{}\"" @@ -1691,9 +1709,77 @@ msgstr "Czy chcesz zaszyfrować plik user_credentials.json?" msgid "Credentials file encryption password" msgstr "Hasło szyfrujące plik danych uwierzytelniających" +#, python-brace-format msgid "Repositories: {}" msgstr "Repozytoria: {}" +#, fuzzy +msgid "New version available" +msgstr "Brak dostępnych urządzeń HSM" + +#, fuzzy +msgid "Passwordless login" +msgstr "Hasło" + +msgid "Second factor login" +msgstr "" + +msgid "Bluetooth" +msgstr "" + +#, fuzzy +msgid "Would you like to configure Bluetooth?" +msgstr "Czy chcesz kontynuować?" + +msgid "Authentication" +msgstr "" + +msgid "Applications" +msgstr "" + +msgid "U2F login method: " +msgstr "" + +msgid "Passwordless sudo: " +msgstr "" + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "" + +msgid "Syncing the system..." +msgstr "" + +msgid "Value cannot be empty" +msgstr "" + +msgid "Snapshot type" +msgstr "" + +#, fuzzy, python-brace-format +msgid "Snapshot type: {}" +msgstr "Typ środowiska: {}" + +msgid "U2F login setup" +msgstr "" + +msgid "No U2F devices found" +msgstr "" + +msgid "U2F Login Method" +msgstr "" + +#, fuzzy +msgid "Enable passwordless sudo?" +msgstr "Wprowadź hasło: " + +#, fuzzy, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "Wybierz urządzenie FIDO2 do użycia z HSM" + +msgid "You may need to enter the PIN and then touch your U2F device to register it" +msgstr "" + #~ msgid "When picking a directory to save configuration files to, by default we will ignore the following folders: " #~ msgstr "Podczas wybierania katalogu do zapisywania plików konfiguracyjnych, domyślnie ignorowane są następujące foldery: " diff --git a/archinstall/locales/pt/LC_MESSAGES/base.po b/archinstall/locales/pt/LC_MESSAGES/base.po index d6988e7918..06f6ce244e 100644 --- a/archinstall/locales/pt/LC_MESSAGES/base.po +++ b/archinstall/locales/pt/LC_MESSAGES/base.po @@ -75,6 +75,7 @@ msgstr "Selecionar uma interface de rede para configurar" msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" msgstr "Selecionar qual o modo a configurar para \"{}\" ou ignorar para usar o modo predefinido \"{}\"" +#, python-brace-format msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " msgstr "Inserir o IP e sub-rede para {} (exemplo: 192.168.0.5/24): " @@ -588,6 +589,7 @@ msgstr "Selecionar as opções desejadas do subvolume " msgid "Define users with sudo privilege, by username: " msgstr "Definir utilizadores com privilégio sudo, por nome de utilizador: " +#, python-brace-format msgid "[!] A log file has been created here: {}" msgstr "[!] Um ficheiro de registo foi criado aqui: {}" @@ -846,9 +848,11 @@ msgstr "O archinstall requer privilégios root para ser executado. Ver --help pa msgid "Select an execution mode" msgstr "Selecionar um modo de execução" +#, python-brace-format msgid "Unable to fetch profile from specified url: {}" msgstr "Não foi possível obter o perfil a partir do URL especificado: {}" +#, python-brace-format msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" msgstr "Os perfis devem ter nomes únicos, mas foram encontradas definições de perfil com nomes duplicados: {}" @@ -867,9 +871,11 @@ msgstr "Selecionar uma opção de particionamento" msgid "Enter the root directory of the mounted devices: " msgstr "Inserir o diretório root dos dispositivos montados: " +#, python-brace-format msgid "Minimum capacity for /home partition: {}GiB\n" msgstr "Capacidade mínima para partição /home : {}GiB\n" +#, python-brace-format msgid "Minimum capacity for Arch Linux partition: {}GiB" msgstr "Capacidade mínima para a partição do Arch Linux: {}GiB" @@ -933,9 +939,11 @@ msgstr "Inserir o setor final da partição (percentagem ou número de bloco, pr msgid "This will remove all newly added partitions, continue?" msgstr "Isto irá remover todas as partições recém adicionadas, continuar?" +#, python-brace-format msgid "Partition management: {}" msgstr "Gestão de partições: {}" +#, python-brace-format msgid "Total length: {}" msgstr "Tamanho total: {}" @@ -996,6 +1004,7 @@ msgstr "Desconhecido" msgid "Partition encryption" msgstr "Encriptação de partições" +#, python-brace-format msgid " ! Formatting {} in " msgstr " ! A formatar {} em " @@ -1020,6 +1029,7 @@ msgstr "Voltar" msgid "Please chose which greeter to install for the chosen profiles: {}" msgstr "Escolher qual a interface gráfica de início de sessão a instalar para os perfis escolhidos: {}" +#, python-brace-format msgid "Environment type: {}" msgstr "Tipo de ambiente: {}" @@ -1213,6 +1223,7 @@ msgstr "" "\n" "Nota:\n" +#, python-brace-format msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" msgstr " - Valor máximo recomendado : {} ( Permite {} transferências paralelas de cada vez )" @@ -1276,6 +1287,7 @@ msgstr "Desativar Copy-on-Write" msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" msgstr "Disponibiliza uma seleção de ambientes gráficos e gestores de janelas em mosaico, por exemplo, GNOME, KDE Plasma, Sway" +#, python-brace-format msgid "Configuration type: {}" msgstr "Tipo de configuração: {}" @@ -1402,6 +1414,7 @@ msgstr "O nome de utilizador introduzido é inválido" msgid "Username" msgstr "Nome de utilizador" +#, python-brace-format msgid "Should \"{}\" be a superuser (sudo)?\n" msgstr "Deverá \"{}\" ser um superutilizador (sudo)?\n" @@ -1468,6 +1481,7 @@ msgstr "Diretório" msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)" msgstr "Introduzir um diretório para a(s) configuração(ões) a guardar (preenchimento com a tecla Tab ativado)" +#, python-brace-format msgid "Do you want to save the configuration file(s) to {}?" msgstr "Pretende guardar o(s) ficheiro(s) de configuração em {}?" @@ -1513,12 +1527,15 @@ msgstr "Nome" msgid "Signature check" msgstr "Verificação de assinatura" +#, python-brace-format msgid "Selected free space segment on device {}:" msgstr "Segmento de espaço livre selecionado no dispositivo {}:" +#, python-brace-format msgid "Size: {} / {}" msgstr "Tamanho: {} / {}" +#, python-brace-format msgid "Size (default: {}): " msgstr "Tamanho (predefinido: {}): " @@ -1681,6 +1698,7 @@ msgstr "Instalação concluída" msgid "What would you like to do next?" msgstr "O que gostaria de fazer a seguir?" +#, python-brace-format msgid "Select which mode to configure for \"{}\"" msgstr "Selecione qual modo configurar para \"{}\"" @@ -1699,5 +1717,74 @@ msgstr "Pretende desencriptar o ficheiro user_credentials.json?" msgid "Credentials file encryption password" msgstr "Palavra-passe de encriptação do ficheiro de credenciais" +#, python-brace-format msgid "Repositories: {}" msgstr "Repositórios: {}" + +#, fuzzy +msgid "New version available" +msgstr "Nenhum dispositivo HSM disponível" + +#, fuzzy +msgid "Passwordless login" +msgstr "Palavra-passe" + +msgid "Second factor login" +msgstr "" + +msgid "Bluetooth" +msgstr "" + +#, fuzzy +msgid "Would you like to configure Bluetooth?" +msgstr "Gostaria de continuar?" + +msgid "Authentication" +msgstr "" + +msgid "Applications" +msgstr "" + +msgid "U2F login method: " +msgstr "" + +msgid "Passwordless sudo: " +msgstr "" + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "" + +msgid "Syncing the system..." +msgstr "" + +#, fuzzy +msgid "Value cannot be empty" +msgstr "O tempo de iteração não pode estar em branco" + +msgid "Snapshot type" +msgstr "" + +#, fuzzy, python-brace-format +msgid "Snapshot type: {}" +msgstr "Tipo de ambiente: {}" + +msgid "U2F login setup" +msgstr "" + +msgid "No U2F devices found" +msgstr "" + +msgid "U2F Login Method" +msgstr "" + +#, fuzzy +msgid "Enable passwordless sudo?" +msgstr "Introduzir uma palavra-passe: " + +#, fuzzy, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "Selecionar um dispositivo FIDO2 para usar como HSM" + +msgid "You may need to enter the PIN and then touch your U2F device to register it" +msgstr "" diff --git a/archinstall/locales/pt_BR/LC_MESSAGES/base.po b/archinstall/locales/pt_BR/LC_MESSAGES/base.po index b4ef06f209..67c352a6eb 100644 --- a/archinstall/locales/pt_BR/LC_MESSAGES/base.po +++ b/archinstall/locales/pt_BR/LC_MESSAGES/base.po @@ -81,6 +81,7 @@ msgstr "Selecione uma interface de rede para configurar" msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" msgstr "Selecione qual modo configurar para \"{}\" ou pule para usar o modo padrão \"{}\"" +#, python-brace-format msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " msgstr "Digite o IP e a sub-rede para {} (exemplo: 192.168.0.5/24): " @@ -594,6 +595,7 @@ msgstr "Selecione as opções desejadas do subvolume " msgid "Define users with sudo privilege, by username: " msgstr "Defina usuários com privilégio sudo, por nome de usuário: " +#, python-brace-format msgid "[!] A log file has been created here: {}" msgstr "[!] Um arquivo de log foi criado aqui: {}" @@ -852,9 +854,11 @@ msgstr "O Archinstall requer privilégios de root para ser executado. Consulte - msgid "Select an execution mode" msgstr "Selecione um modo de execução" +#, python-brace-format msgid "Unable to fetch profile from specified url: {}" msgstr "Não foi possível obter o perfil a partir da URL especificada: {}" +#, python-brace-format msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" msgstr "Os perfis devem ter nomes únicos, mas foram encontradas definições de perfil com nomes duplicados: {}" @@ -873,9 +877,11 @@ msgstr "Selecione uma opção de particionamento" msgid "Enter the root directory of the mounted devices: " msgstr "Digite o diretório raiz dos dispositivos montados: " +#, python-brace-format msgid "Minimum capacity for /home partition: {}GiB\n" msgstr "Capacidade mínima para partição /home : {}GiB\n" +#, python-brace-format msgid "Minimum capacity for Arch Linux partition: {}GiB" msgstr "Capacidade mínima para a partição do Arch Linux: {}GiB" @@ -939,9 +945,11 @@ msgstr "Digite o setor final da partição (porcentagem ou número de bloco, pad msgid "This will remove all newly added partitions, continue?" msgstr "Isso irá remover todas as partições recém-adicionadas, continuar?" +#, python-brace-format msgid "Partition management: {}" msgstr "Gerenciamento de partições: {}" +#, python-brace-format msgid "Total length: {}" msgstr "Tamanho total: {}" @@ -1002,6 +1010,7 @@ msgstr "Desconhecido" msgid "Partition encryption" msgstr "Encriptação de partição" +#, python-brace-format msgid " ! Formatting {} in " msgstr " ! Formatando {} em " @@ -1026,6 +1035,7 @@ msgstr "Voltar" msgid "Please chose which greeter to install for the chosen profiles: {}" msgstr "Por favor, escolha qual greeter instalar para os perfis escolhidos: {}" +#, python-brace-format msgid "Environment type: {}" msgstr "Tipo de ambiente: {}" @@ -1219,6 +1229,7 @@ msgstr "" "\n" "Observação:\n" +#, python-brace-format msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" msgstr " - Valor máximo recomendado : {} ( Permite {} downloads paralelos por vez )" @@ -1282,6 +1293,7 @@ msgstr "Desativar Cópia na Gravação" msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" msgstr "Proporciona uma seleção de ambientes gráficos e gerenciadores de janela como por exemplo gnome, kde, sway" +#, python-brace-format msgid "Configuration type: {}" msgstr "Tipo de configuração: {}" @@ -1409,6 +1421,7 @@ msgstr "O nome de usuário que você digitou é inválido" msgid "Username" msgstr "Nome de usuário" +#, python-brace-format msgid "Should \"{}\" be a superuser (sudo)?\n" msgstr "\"{}\" deve ser um superusuário (sudo)?\n" @@ -1475,6 +1488,7 @@ msgstr "Diretório" msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)" msgstr "Digite um diretório para as configurações serem salvas (completamento de tab ativado):" +#, python-brace-format msgid "Do you want to save the configuration file(s) to {}?" msgstr "Você deseja salvar arquivo(s) de configuração para {}?" @@ -1520,12 +1534,15 @@ msgstr "Nome" msgid "Signature check" msgstr "Verificação de assinatura" +#, python-brace-format msgid "Selected free space segment on device {}:" msgstr "Segmento de espaço livre selecionado no dispositivo {}:" +#, python-brace-format msgid "Size: {} / {}" msgstr "Tamanho: {} / {}" +#, python-brace-format msgid "Size (default: {}): " msgstr "Tamanho (padrão: {}): " @@ -1688,6 +1705,7 @@ msgstr "Instalação concluída" msgid "What would you like to do next?" msgstr "O que você gostaria de fazer a seguir?" +#, python-brace-format msgid "Select which mode to configure for \"{}\"" msgstr "Selecione qual modo configurar para \"{}\"" @@ -1706,8 +1724,76 @@ msgstr "Você deseja criptografar o arquivo user_credentials.json?" msgid "Credentials file encryption password" msgstr "Senha para criptografar o arquivo de credenciais" +#, python-brace-format msgid "Repositories: {}" msgstr "Repositórios: {}" +#, fuzzy +msgid "New version available" +msgstr "Nenhum dispositivo HSM disponível" + +#, fuzzy +msgid "Passwordless login" +msgstr "Senha" + +msgid "Second factor login" +msgstr "" + +msgid "Bluetooth" +msgstr "" + +#, fuzzy +msgid "Would you like to configure Bluetooth?" +msgstr "Deseja continuar?" + +msgid "Authentication" +msgstr "" + +msgid "Applications" +msgstr "" + +msgid "U2F login method: " +msgstr "" + +msgid "Passwordless sudo: " +msgstr "" + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "" + +msgid "Syncing the system..." +msgstr "" + +msgid "Value cannot be empty" +msgstr "" + +msgid "Snapshot type" +msgstr "" + +#, fuzzy, python-brace-format +msgid "Snapshot type: {}" +msgstr "Tipo de ambiente: {}" + +msgid "U2F login setup" +msgstr "" + +msgid "No U2F devices found" +msgstr "" + +msgid "U2F Login Method" +msgstr "" + +#, fuzzy +msgid "Enable passwordless sudo?" +msgstr "Digite uma senha: " + +#, fuzzy, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "Selecione um dispositivo FIDO2 para usar como HSM" + +msgid "You may need to enter the PIN and then touch your U2F device to register it" +msgstr "" + #~ msgid "When picking a directory to save configuration files to, by default we will ignore the following folders: " #~ msgstr "Ao selecionar um diretório para salvar arquivos de configuração, por padrão nós ignoramos as seguintes pastas: " diff --git a/archinstall/locales/ro/LC_MESSAGES/base.po b/archinstall/locales/ro/LC_MESSAGES/base.po index 4da4795bfe..e7694ecd72 100644 --- a/archinstall/locales/ro/LC_MESSAGES/base.po +++ b/archinstall/locales/ro/LC_MESSAGES/base.po @@ -71,6 +71,7 @@ msgstr "Selectați o interfață de rețea pentru configurare" msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" msgstr "Selectați modul de configurare pentru \"{}\" sau folosiți modul predefinit \"{}\"" +#, python-brace-format msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " msgstr "Introduceți IP-ul și subrețeaua pentru {} (example: 192.168.0.5/24): " @@ -584,6 +585,7 @@ msgstr "Selectați opțiunile dorite pentru subvolum " msgid "Define users with sudo privilege, by username: " msgstr "Definiți utilizatorii cu privilegii sudo, după nume utilizator: " +#, python-brace-format msgid "[!] A log file has been created here: {}" msgstr "[!] Un fișier de jurnal a fost creat aici: {}" @@ -842,9 +844,11 @@ msgstr "Archinstall necesită privilegii avansate pentru execuție. Vedeți --he msgid "Select an execution mode" msgstr "Selectați un mod de execuție" +#, python-brace-format msgid "Unable to fetch profile from specified url: {}" msgstr "Nu se poate prelua profilul de la URL-ul specificat: {}" +#, python-brace-format msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" msgstr "Profilurile trebuie să aibă nume unicate, dar definiții de profil cu nume duplicate au fost găsite: {}" @@ -863,9 +867,11 @@ msgstr "Selectați o opțiune de partiționare" msgid "Enter the root directory of the mounted devices: " msgstr "Introduceți directorul rădăcină a dispozitivelor montate: " +#, python-brace-format msgid "Minimum capacity for /home partition: {}GiB\n" msgstr "Capacitatea minimă pentru partiția /home: {}GB\n" +#, python-brace-format msgid "Minimum capacity for Arch Linux partition: {}GiB" msgstr "Capacitatea minimă pentru partiția Arch Linux: {}GB" @@ -929,9 +935,11 @@ msgstr "Introduceți sectorul de final pentru partiționare (procentaj sau numă msgid "This will remove all newly added partitions, continue?" msgstr "Această acțiune va șterge toate partițiile noi adăugate, continuați?" +#, python-brace-format msgid "Partition management: {}" msgstr "Managementul partiției: {}" +#, python-brace-format msgid "Total length: {}" msgstr "Lungime totală: {}" @@ -992,6 +1000,7 @@ msgstr "Neștiut" msgid "Partition encryption" msgstr "Criptare partiție" +#, python-brace-format msgid " ! Formatting {} in " msgstr " ! Se formatează {} in " @@ -1016,6 +1025,7 @@ msgstr "Înapoi" msgid "Please chose which greeter to install for the chosen profiles: {}" msgstr "Vă rog selectați un manager de afișare pentru profilurile selectate: {}" +#, python-brace-format msgid "Environment type: {}" msgstr "Tip mediu: {}" @@ -1208,6 +1218,7 @@ msgstr "" "\n" "Notă:\n" +#, python-brace-format msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" msgstr " - Valoare minimă : {} ( Permite {} descărcări simultane în același timp )" @@ -1279,7 +1290,7 @@ msgstr "" msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" msgstr "Oferă o selecție de medii de lucru și manageri de ferestre precum GNOME, KDE, Sway" -#, fuzzy +#, fuzzy, python-brace-format msgid "Configuration type: {}" msgstr "Configurație" @@ -1435,7 +1446,7 @@ msgstr "Numele de utilizator adăugat este invalid. Încercați din nou" msgid "Username" msgstr "Nume utilizator : " -#, fuzzy +#, fuzzy, python-brace-format msgid "Should \"{}\" be a superuser (sudo)?\n" msgstr "Ar trebui ca \"{}\" să fie un utilizator cu privilegii (sudo)?" @@ -1517,7 +1528,7 @@ msgstr "" "Introduceți un director pentru salvarea configurării (configurațiilor, completare automată cu Tab activată)\n" "Directorul pentru salvare: " -#, fuzzy +#, fuzzy, python-brace-format msgid "Do you want to save the configuration file(s) to {}?" msgstr "" "Doriți să salvați fișierele de configurare {} în această locație?\n" @@ -1576,15 +1587,15 @@ msgstr "" msgid "Signature check" msgstr "Selectați opțiunea pentru verificarea semnăturii" -#, fuzzy +#, fuzzy, python-brace-format msgid "Selected free space segment on device {}:" msgstr "Sectoarele libere curente de pe dispozitiv {}:" -#, fuzzy +#, fuzzy, python-brace-format msgid "Size: {} / {}" msgstr "Total: {} / {}" -#, fuzzy +#, fuzzy, python-brace-format msgid "Size (default: {}): " msgstr "Introduceți final (predefinit: {}): " @@ -1784,7 +1795,7 @@ msgstr "" msgid "What would you like to do next?" msgstr "Doriți să folosiți compresie pentru BTRFS?" -#, fuzzy +#, fuzzy, python-brace-format msgid "Select which mode to configure for \"{}\"" msgstr "Selectați modul de configurare pentru \"{}\" sau folosiți modul predefinit \"{}\"" @@ -1811,6 +1822,73 @@ msgstr "" msgid "Credentials file encryption password" msgstr "Parola de criptare" -#, fuzzy +#, fuzzy, python-brace-format msgid "Repositories: {}" msgstr "Regiune de oglindire" + +#, fuzzy +msgid "New version available" +msgstr "Nicun dispozitiv HSM disponibil" + +#, fuzzy +msgid "Passwordless login" +msgstr "Parola" + +msgid "Second factor login" +msgstr "" + +msgid "Bluetooth" +msgstr "" + +#, fuzzy +msgid "Would you like to configure Bluetooth?" +msgstr "Doriți să folosiți compresie pentru BTRFS?" + +msgid "Authentication" +msgstr "" + +msgid "Applications" +msgstr "" + +msgid "U2F login method: " +msgstr "" + +msgid "Passwordless sudo: " +msgstr "" + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "" + +msgid "Syncing the system..." +msgstr "" + +msgid "Value cannot be empty" +msgstr "" + +msgid "Snapshot type" +msgstr "" + +#, fuzzy, python-brace-format +msgid "Snapshot type: {}" +msgstr "Tip mediu: {}" + +msgid "U2F login setup" +msgstr "" + +msgid "No U2F devices found" +msgstr "" + +msgid "U2F Login Method" +msgstr "" + +#, fuzzy +msgid "Enable passwordless sudo?" +msgstr "Introduceți o parolă: " + +#, fuzzy, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "Selectați utilizarea unui device FID02 pentru HSM" + +msgid "You may need to enter the PIN and then touch your U2F device to register it" +msgstr "" diff --git a/archinstall/locales/ru/LC_MESSAGES/base.po b/archinstall/locales/ru/LC_MESSAGES/base.po index 7e9d64ee40..cfc1a89a1c 100644 --- a/archinstall/locales/ru/LC_MESSAGES/base.po +++ b/archinstall/locales/ru/LC_MESSAGES/base.po @@ -72,6 +72,7 @@ msgstr "Выберите один сетевой интерфейс для на msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" msgstr "Выберите режим для конфигурации \"{}\" или пропустите, чтобы использовать режим по умолчанию \"{}\"." +#, python-brace-format msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " msgstr "Введите IP-адрес и подсеть для {} (пример: 192.168.0.5/24): " @@ -585,6 +586,7 @@ msgstr "Выберите нужные параметры подтома " msgid "Define users with sudo privilege, by username: " msgstr "Определите пользователей с привилегией sudo по имени пользователя: " +#, python-brace-format msgid "[!] A log file has been created here: {}" msgstr "[!] Здесь был создан файл журнала: {}" @@ -843,9 +845,11 @@ msgstr "Для запуска Archinstall требуются привилеги msgid "Select an execution mode" msgstr "Выберите режим выполнения" +#, python-brace-format msgid "Unable to fetch profile from specified url: {}" msgstr "Невозможно получить профиль из указанного url: {}" +#, python-brace-format msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" msgstr "Профили должны иметь уникальное имя, но найдены определения профиля с дублирующимся именем: {}" @@ -864,9 +868,11 @@ msgstr "Выберите вариант разбивки на разделы" msgid "Enter the root directory of the mounted devices: " msgstr "Введите корневой каталог смонтированных устройств: " +#, python-brace-format msgid "Minimum capacity for /home partition: {}GiB\n" msgstr "Минимальный размер раздела /home: {}GiB\n" +#, python-brace-format msgid "Minimum capacity for Arch Linux partition: {}GiB" msgstr "Минимальный размер раздела Arch Linux: {}GiB" @@ -930,9 +936,11 @@ msgstr "Введите конечный сектор раздела (проце msgid "This will remove all newly added partitions, continue?" msgstr "Это приведет к удалению всех вновь добавленных разделов, продолжить?" +#, python-brace-format msgid "Partition management: {}" msgstr "Управление разделом: {}" +#, python-brace-format msgid "Total length: {}" msgstr "Весь размер: {}" @@ -993,6 +1001,7 @@ msgstr "Неизвестно" msgid "Partition encryption" msgstr "Шифрование раздела" +#, python-brace-format msgid " ! Formatting {} in " msgstr " ! Форматирование {} в " @@ -1017,6 +1026,7 @@ msgstr "Назад" msgid "Please chose which greeter to install for the chosen profiles: {}" msgstr "Пожалуйста, выберите, какой экран приветствия установить для выбранных профилей: {}" +#, python-brace-format msgid "Environment type: {}" msgstr "Тип окружения рабочего стола: {}" @@ -1209,6 +1219,7 @@ msgstr "" "\n" "Примечание:\n" +#, python-brace-format msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" msgstr " - Максимальное рекомендуемое значение: {} ( Позволяет {} параллельных загрузок одновременно )" @@ -1272,6 +1283,7 @@ msgstr "Отключить копирование при записи (CoW)" msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" msgstr "Предоставляет выбор окружений рабочего стола и тайловых оконных менеджеров, например, GNOME, KDE Plasma, Sway" +#, python-brace-format msgid "Configuration type: {}" msgstr "Тип конфигурации: {}" @@ -1398,6 +1410,7 @@ msgstr "Введенное вами имя пользователя недейс msgid "Username" msgstr "Имя пользователя" +#, python-brace-format msgid "Should \"{}\" be a superuser (sudo)?\n" msgstr "Должен ли \"{}\" быть суперпользователем (sudo)?\n" @@ -1464,6 +1477,7 @@ msgstr "Каталог" msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)" msgstr "Введите каталог для сохранения конфигурации (-ций) (включено заполнение вкладок)" +#, python-brace-format msgid "Do you want to save the configuration file(s) to {}?" msgstr "Хотите ли вы сохранить файл(ы) конфигурации в {}?" @@ -1509,12 +1523,15 @@ msgstr "Имя" msgid "Signature check" msgstr "Проверка подписи" +#, python-brace-format msgid "Selected free space segment on device {}:" msgstr "Выбранный сегмент свободного пространства на устройстве {}:" +#, python-brace-format msgid "Size: {} / {}" msgstr "Размер: {} / {}" +#, python-brace-format msgid "Size (default: {}): " msgstr "Размер (по умолчанию: {}): " @@ -1706,7 +1723,7 @@ msgstr "" msgid "What would you like to do next?" msgstr "Вы хотите продолжить?" -#, fuzzy +#, fuzzy, python-brace-format msgid "Select which mode to configure for \"{}\"" msgstr "Выберите режим для конфигурации \"{}\" или пропустите, чтобы использовать режим по умолчанию \"{}\"." @@ -1730,6 +1747,73 @@ msgstr "Хотите ли вы сохранить файл(ы) конфигур msgid "Credentials file encryption password" msgstr "Пароль шифрования диска" -#, fuzzy +#, fuzzy, python-brace-format msgid "Repositories: {}" msgstr "Название зеркала" + +#, fuzzy +msgid "New version available" +msgstr "Нет доступных устройств HSM" + +#, fuzzy +msgid "Passwordless login" +msgstr "Пароль" + +msgid "Second factor login" +msgstr "" + +msgid "Bluetooth" +msgstr "" + +#, fuzzy +msgid "Would you like to configure Bluetooth?" +msgstr "Вы хотите продолжить?" + +msgid "Authentication" +msgstr "" + +msgid "Applications" +msgstr "" + +msgid "U2F login method: " +msgstr "" + +msgid "Passwordless sudo: " +msgstr "" + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "" + +msgid "Syncing the system..." +msgstr "" + +msgid "Value cannot be empty" +msgstr "" + +msgid "Snapshot type" +msgstr "" + +#, fuzzy, python-brace-format +msgid "Snapshot type: {}" +msgstr "Тип окружения рабочего стола: {}" + +msgid "U2F login setup" +msgstr "" + +msgid "No U2F devices found" +msgstr "" + +msgid "U2F Login Method" +msgstr "" + +#, fuzzy +msgid "Enable passwordless sudo?" +msgstr "Введите пароль: " + +#, fuzzy, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "Выберите устройство FIDO2 для использования в качестве HSM" + +msgid "You may need to enter the PIN and then touch your U2F device to register it" +msgstr "" diff --git a/archinstall/locales/sv/LC_MESSAGES/base.mo b/archinstall/locales/sv/LC_MESSAGES/base.mo index ea5b17891c8d2800b6d3e162bd443f4f90ec94fb..4b4cd5c8fd693785c13d9c0a46b99088568904e9 100644 GIT binary patch delta 12725 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 R$;T9VbG=nP-Z)V6{{Zs^nQ#CA delta 11419 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%0DHQY&PYe-xozwPR0sMB1o{d)hHMAz^R`I!Ii zr0z|;MC5Hb>@S^HV7$wBJGGo+h&seR*H+jW;?Dh>tAC>QZlj3#&qeEzFCeb{r>(5} zKpx5L8%8`yj39nt$6aLA`nO)>>0~FdE|H&H%UWA4q7-dk5^Q>YyJ@UnqH&?!;eSOI zpiS%gY1+0DN#sj#kvm4O=knxzT&;IOdzX{?H{M-lEp4B;da6^C(trI1?EH!JFfp5a z9&whuFV-eT5jBZ=v}yatVtB`x=V{k=(AkE(0{M@`Tdu7GGKc-|kssKvRr0Od_mrOB zOTlXLZ&}!i&|7YfZ8B%vK9;!Q#pVA8yasMx4ceNJAI8a88Gj-4Jux3U5_y|e*LGJt z>)O55Nq%s}UbpiL>RoxC!Y8Qza>sl@-IVy|Kl_z#V*dneNz5Q$M_eGkM9d>v5!yD> zK9e|4-d_FBcgVlnb#}BQUZrIW(TL!EhdP%ilx2 zNt@w|I77z~U5HoyGyf?0Man@(i95vW{uX}el5Zsc1M{|HB-zxwi_9q^k~)_-=Z<*} z%8PL?CZDZ66Syvp<9A>TluA=Z>%C z97y|6@ z+8z*Z6TcH0x&RzVXzPZRY-&zA^JvSyM~JgTifdelqjeH(gV^yg@jX%0Hko`p)zjqB zuHK2~Ty8inZ@W+4hIpBV-PoNtMx3Djnc(jlW;*c}k&kw5Phoz}@9kh~bJeM@-n^}# zJNO9JAtou@&bfI9;s0pgg3X8x#6ph z?KAehLDAeb^q_u$d_3`{)?qYpfMOMXMQD3KR3U$i=uf_%7)3-7(`g$^B$MZ&wkpKi zL{(Rt(9o>DNhN(1A9+7G>q5ORvv${yDKL8U_>rUg4;nny7o4~<#P>a)9eR``NYUxNiF3wX-;3M{*yFSy)^%_nx8%*@(&ucR+vMXf+zzg7D}vnIY( z+c)T)gR!A2PcAhl7N7X&#MZ3NYooHp9Zd2SKNJ(>8*$>v(5$G;FyGy?v0+)~uD0}@ zx!OCxH{iy)e7?kA>lX5@{QGFo*6jSA9s$dGg?ox`ZC1e3I(X~jMLnehmVFW8DYtc4 Jq^ExV{{sZVinIU# diff --git a/archinstall/locales/uk/LC_MESSAGES/base.po b/archinstall/locales/uk/LC_MESSAGES/base.po index 76aa89ec9a..11b9504a9b 100644 --- a/archinstall/locales/uk/LC_MESSAGES/base.po +++ b/archinstall/locales/uk/LC_MESSAGES/base.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" "PO-Revision-Date: \n" -"Last-Translator: TSEPLNK \n" +"Last-Translator: TSEPLNK\n" "Language-Team: \n" "Language: uk\n" "MIME-Version: 1.0\n" @@ -27,7 +27,7 @@ msgid "Would you like to use swap on zram?" msgstr "Бажаєте використовувати підкачку на zram?" msgid "Desired hostname for the installation: " -msgstr "Бажане ім'я хоста для встановлення: " +msgstr "Бажане ім'я хоста: " msgid "Username for required superuser with sudo privileges: " msgstr "Ім’я користувача для необхідного суперкористувача з правами sudo: " @@ -71,6 +71,7 @@ msgstr "Оберіть один мережевий інтерфейс для н msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" msgstr "Виберіть, режим для налаштування \"{}\" або пропустіть, щоб використовувати режим за замовчуванням \"{}\"" +#, python-brace-format msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " msgstr "Введіть IP-адресу та підмережу для {} (наприклад: 192.168.0.5/24): " @@ -97,7 +98,7 @@ msgid "Enter a desired filesystem type for the partition" msgstr "Введіть бажаний тип файлової системи для розділу" msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): " -msgstr "Введіть початкове місце (в одиницях parted: s, GB, %, тощо; за замовчуванням: {}): " +msgstr "Введіть початкове місце (у розділених одиницях: s, GB, %, тощо; за замовчуванням: {}): " msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): " msgstr "Введіть кінцеве місце (в одиницях parted: s, GB, %, тощо; наприклад: {}): " @@ -584,6 +585,7 @@ msgstr "Оберіть потрібні параметри підтому " msgid "Define users with sudo privilege, by username: " msgstr "Визначте користувачів із привілеєм sudo за іменем користувача: " +#, python-brace-format msgid "[!] A log file has been created here: {}" msgstr "[!] Файл журналу було створено тут: {}" @@ -842,9 +844,11 @@ msgstr "Archinstall потребує привілегії суперкорист msgid "Select an execution mode" msgstr "Виберіть режим виконання" +#, python-brace-format msgid "Unable to fetch profile from specified url: {}" msgstr "Не вдалося отримати профіль з вказаного URL: {}" +#, python-brace-format msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" msgstr "Профілі повинні мати унікальні назви, але виявлено дублікати назв профілів: {}" @@ -863,9 +867,11 @@ msgstr "Оберіть існуючу опцію" msgid "Enter the root directory of the mounted devices: " msgstr "Введіть кореневий каталог змонтованих пристроїв: " +#, python-brace-format msgid "Minimum capacity for /home partition: {}GiB\n" msgstr "Мінімальна ємність для розділу /home: {} Гб\n" +#, python-brace-format msgid "Minimum capacity for Arch Linux partition: {}GiB" msgstr "Мінімальна ємність для розділу Arch Linux: {} Гб" @@ -929,9 +935,11 @@ msgstr "Введіть кінцевий сектор розділу (відсо msgid "This will remove all newly added partitions, continue?" msgstr "Це видалить усі щойно додані розділи, продовжити?" +#, python-brace-format msgid "Partition management: {}" msgstr "Управління розділами: {}" +#, python-brace-format msgid "Total length: {}" msgstr "Загальна довжина: {}" @@ -992,6 +1000,7 @@ msgstr "Невідомо" msgid "Partition encryption" msgstr "Шифрування розділу" +#, python-brace-format msgid " ! Formatting {} in " msgstr " ! Форматування {} в " @@ -1016,6 +1025,7 @@ msgstr "Назад" msgid "Please chose which greeter to install for the chosen profiles: {}" msgstr "Будь ласка, виберіть, який вітальник встановити для обраних профілів: {}" +#, python-brace-format msgid "Environment type: {}" msgstr "Тип середовища: {}" @@ -1208,8 +1218,9 @@ msgstr "" "\n" "Примітка:\n" +#, python-brace-format msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" -msgstr " - Максимальне значення : {} ( Дозволяє {} паралельних завантажень, дозволяє {} завантажень за раз )" +msgstr " - Максимальне рекомендоване значення : {} ( Дозволяє {} паралельних завантажень за раз )" msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n" msgstr " - Вимкнути/Типово : 0 ( Вимикає паралельне завантаження, дозволяє лише 1 завантаження за раз )\n" @@ -1271,6 +1282,7 @@ msgstr "Вимкнути Copy-on-Write" msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" msgstr "Надає вибір середовищ робочого столу та тайлінгових диспетчерів вікон, наприклад GNOME, KDE Plasma, Sway" +#, python-brace-format msgid "Configuration type: {}" msgstr "Тип конфігурації: {}" @@ -1397,6 +1409,7 @@ msgstr "Введене вами ім'я користувача недійсне" msgid "Username" msgstr "Ім'я користувача" +#, python-brace-format msgid "Should \"{}\" be a superuser (sudo)?\n" msgstr "Чи має \"{}\" бути суперкористувачем (sudo)?\n" @@ -1422,7 +1435,7 @@ msgid "Enter your DNS servers with space separated (leave blank for none)" msgstr "Введіть ваші DNS-сервери (розділені пробілами, залиште порожнім якщо їх немає):" msgid "DNS servers" -msgstr "DNS - сервера" +msgstr "DNS- сервера" msgid "Configure interfaces" msgstr "Налаштування інтерфейсів" @@ -1463,6 +1476,7 @@ msgstr "Каталог" msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)" msgstr "Введіть каталог для конфігурацій, які потрібно зберегти:" +#, python-brace-format msgid "Do you want to save the configuration file(s) to {}?" msgstr "Чи бажаєте зберегти файл (и) конфігурацій до {}?" @@ -1508,12 +1522,15 @@ msgstr "Назва" msgid "Signature check" msgstr "Перевірка підпису шифрування" +#, python-brace-format msgid "Selected free space segment on device {}:" msgstr "Обраний сегмент вільного місця на пристрої {}:" +#, python-brace-format msgid "Size: {} / {}" msgstr "Розмір: {} / {}" +#, python-brace-format msgid "Size (default: {}): " msgstr "Розмір (типово: {}): " @@ -1668,7 +1685,7 @@ msgid "Reboot system" msgstr "Перезавантажити систему" msgid "chroot into installation for post-installation configurations" -msgstr "бажаєте підключитися використовуючи chroot до новоствореної інсталяції та виконати додаткову конфігурацію після інсталяції" +msgstr "бажаєте підключитися використовуючи chroot до новоствореної інсталяції та виконати додаткову конфігурацію" msgid "Installation completed" msgstr "Встановлення завершено" @@ -1676,6 +1693,7 @@ msgstr "Встановлення завершено" msgid "What would you like to do next?" msgstr "Що ви хочете зробити наступним?" +#, python-brace-format msgid "Select which mode to configure for \"{}\"" msgstr "Виберіть, режим для налаштування \"{}\"" @@ -1694,5 +1712,69 @@ msgstr "Чи бажаєте зашифрувати user_credintials.json?" msgid "Credentials file encryption password" msgstr "Пароль розшифрування файлу облікових даних" +#, python-brace-format msgid "Repositories: {}" msgstr "Репоиторії: {}" + +msgid "New version available" +msgstr "Доступна нова версія" + +msgid "Passwordless login" +msgstr "Вхід без паролю" + +msgid "Second factor login" +msgstr "Другий фактор входу" + +msgid "Bluetooth" +msgstr "Bluetooth" + +msgid "Would you like to configure Bluetooth?" +msgstr "Бажаєте налаштувати Bluetooth?" + +msgid "Authentication" +msgstr "Автентифікація" + +msgid "Applications" +msgstr "Додатки" + +msgid "U2F login method: " +msgstr "Метод входу для пристрою двофакторної автентифікації: " + +msgid "Passwordless sudo: " +msgstr "Sudo без паролю: " + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "Тип знімку Btrfs: {}" + +msgid "Syncing the system..." +msgstr "Синхронізація системи..." + +msgid "Value cannot be empty" +msgstr "Значення не може бути пустим" + +msgid "Snapshot type" +msgstr "Тип знімку" + +#, python-brace-format +msgid "Snapshot type: {}" +msgstr "Тип знімку: {}" + +msgid "U2F login setup" +msgstr "Налаштування входу з пристроєм двофакторної авторизації" + +msgid "No U2F devices found" +msgstr "Не знайдено жодного пристрою двофакторної автентифікації" + +msgid "U2F Login Method" +msgstr "Метод входу для пристрою двофакторної автентифікації" + +msgid "Enable passwordless sudo?" +msgstr "Увімкнути sudo без паролю?" + +#, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "Налаштування пристроя двофакторної автентифікації для користувача: {}" + +msgid "You may need to enter the PIN and then touch your U2F device to register it" +msgstr "Ви повинні написати PIN та потім торкнутися вашого пристрою двофакторної авторизації, щоб зареєструвати його" diff --git a/archinstall/locales/uz/LC_MESSAGES/base.mo b/archinstall/locales/uz/LC_MESSAGES/base.mo new file mode 100644 index 0000000000000000000000000000000000000000..4c74be2a4e857decde75741c4c40720fa0783ce3 GIT binary patch literal 53452 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�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, 2025. +# +msgid "" +msgstr "" +"Project-Id-Version: archinstall\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-10-07 12:00+0500\n" +"PO-Revision-Date: 2025-10-07 12:00+0500\n" +"Last-Translator: Muhammadyoqub \n" +"Language-Team: Uzbek\n" +"Language: uz\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "[!] A log file has been created here: {} {}" +msgstr "[!] Log fayl bu yerda yaratildi: {} {}" + +#, fuzzy +msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues" +msgstr "Iltimos, ushbu muammo (va fayl) haqida https://github.com/archlinux/archinstall/issues manziliga xabar bering" + +msgid "Do you really want to abort?" +msgstr "Haqiqatan ham to'xtatmoqchimisiz?" + +msgid "And one more time for verification: " +msgstr "Tekshirish uchun yana bir marta kiriting: " + +msgid "Would you like to use swap on zram?" +msgstr "Zram'da swap'dan foydalanmoqchimisiz?" + +msgid "Desired hostname for the installation: " +msgstr "O'rnatish uchun host nomini kiriting: " + +msgid "Username for required superuser with sudo privileges: " +msgstr "Sudo imtiyozlariga ega superuser uchun foydalanuvchi nomi: " + +msgid "Any additional users to install (leave blank for no users): " +msgstr "Qo'shimcha foydalanuvchilar (kerak bo'lmasa, bo'sh qoldiring): " + +msgid "Should this user be a superuser (sudoer)?" +msgstr "Ushbu foydalanuvchi superuser (sudoer) bo'lishi kerakmi?" + +msgid "Select a timezone" +msgstr "Vaqt mintaqasini tanlang" + +msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?" +msgstr "Systemd-boot o'rniga GRUB bootloader'idan foydalanmoqchimisiz?" + +msgid "Choose a bootloader" +msgstr "Bootloader'ni tanlang" + +msgid "Choose an audio server" +msgstr "Audio serverni tanlang" + +msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed." +msgstr "Faqat base, base-devel, linux, linux-firmware, efibootmgr va ixtiyoriy profil paketlari o'rnatiladi." + +msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt." +msgstr "Agar Firefox yoki Chromium kabi veb-brauzer kerak bo'lsa, uni keyingi qadamda belgilashingiz mumkin." + +msgid "Write additional packages to install (space separated, leave blank to skip): " +msgstr "Qo'shimcha paketlarni probel bilan ajratib yozing (o'tkazib yuborish uchun bo'sh qoldiring): " + +msgid "Copy ISO network configuration to installation" +msgstr "ISO tarmoq konfiguratsiyasini o'rnatishga nusxalash" + +msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)" +msgstr "NetworkManager'dan foydalanish (GNOME va KDE'da internetni grafik interfeysda sozlash uchun zarur)" + +msgid "Select one network interface to configure" +msgstr "Sozlash uchun bitta tarmoq interfeysini tanlang" + +msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\"" +msgstr "\"{}\" uchun qaysi rejimni sozlashni tanlang yoki standart \"{}\" rejimini ishlatish uchun o'tkazib yuboring" + +#, python-brace-format +msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): " +msgstr "{} uchun IP va quyi tarmoqni kiriting (masalan: 192.168.0.5/24): " + +msgid "Enter your gateway (router) IP address or leave blank for none: " +msgstr "Shlyuz (router) IP manzilini kiriting yoki bo'sh qoldiring: " + +msgid "Enter your DNS servers (space separated, blank for none): " +msgstr "DNS serverlarni kiriting (probel bilan ajrating, kerakmas bo'lsa bo'sh qoldiring): " + +msgid "Select which filesystem your main partition should use" +msgstr "Asosiy bo'lim uchun fayl tizimini tanlang" + +msgid "Current partition layout" +msgstr "Joriy bo'limlar sxemasi" + +msgid "" +"Select what to do with\n" +"{}" +msgstr "" +"Nima qilishni tanlang\n" +"{}" + +msgid "Enter a desired filesystem type for the partition" +msgstr "Bo'lim uchun kerakli fayl tizimi turini kiriting" + +msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): " +msgstr "Boshlang'ich joylashuvni kiriting (birliklar: s, GB, %, va hk.; standart: {}): " + +msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): " +msgstr "Tugash joylashuvini kiriting (birliklar: s, GB, %, va hk.; masalan: {}): " + +msgid "{} contains queued partitions, this will remove those, are you sure?" +msgstr "{} navbatga qo'yilgan bo'limlarni o'z ichiga oladi. Bu amallar bekor qilinadi, ishonchingiz komilmi?" + +msgid "" +"{}\n" +"\n" +"Select by index which partitions to delete" +msgstr "" +"{}\n" +"\n" +"O'chiriladigan bo'limlarni indeks bo'yicha tanlang" + +msgid "" +"{}\n" +"\n" +"Select by index which partition to mount where" +msgstr "" +"{}\n" +"\n" +"Qaysi bo'limni qayerga biriktirishni indeks bo'yicha tanlang" + +msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example." +msgstr " * Bo'limlarni biriktirish nuqtalari o'rnatilayotgan tizimga nisbatan olinadi, masalan, /boot." + +msgid "Select where to mount partition (leave blank to remove mountpoint): " +msgstr "Bo'limni biriktirish nuqtasini tanlang (o'chirish uchun bo'sh qoldiring): " + +msgid "" +"{}\n" +"\n" +"Select which partition to mask for formatting" +msgstr "" +"{}\n" +"\n" +"Formatlanadigan bo'limni tanlang" + +msgid "" +"{}\n" +"\n" +"Select which partition to mark as encrypted" +msgstr "" +"{}\n" +"\n" +"Shifrlanadigan bo'limni tanlang" + +msgid "" +"{}\n" +"\n" +"Select which partition to mark as bootable" +msgstr "" +"{}\n" +"\n" +"Yuklanuvchi (bootable) deb belgilash uchun bo'limni tanlang" + +msgid "" +"{}\n" +"\n" +"Select which partition to set a filesystem on" +msgstr "" +"{}\n" +"\n" +"Qaysi bo'limga fayl tizimi o'rnatishni tanlang" + +msgid "Enter a desired filesystem type for the partition: " +msgstr "Bo'lim uchun kerakli fayl tizimi turini kiriting: " + +msgid "Archinstall language" +msgstr "Archinstall tili" + +msgid "Wipe all selected drives and use a best-effort default partition layout" +msgstr "Barcha tanlangan disklarni tozalash va tavsiya etilgan standart bo'limlar sxemasini qo'llash" + +msgid "Select what to do with each individual drive (followed by partition usage)" +msgstr "Har bir disk bilan nima qilishni tanlang (so'ngra bo'limlardan foydalanish)" + +msgid "Select what you wish to do with the selected block devices" +msgstr "Tanlangan blokli qurilmalar bilan nima qilmoqchi ekaningizni tanlang" + +msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments" +msgstr "Bu oldindan dasturlashtirilgan profillar ro'yxati. Ular ish stoli muhitlari kabi narsalarni o'rnatishni osonlashtirishi mumkin" + +msgid "Select keyboard layout" +msgstr "Klaviatura tartibini tanlang" + +msgid "Select one of the regions to download packages from" +msgstr "Paketlarni yuklab olish uchun hududlardan birini tanlang" + +msgid "Select one or more hard drives to use and configure" +msgstr "Foydalanish va sozlash uchun bir yoki bir nechta qattiq diskni tanlang" + +msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options." +msgstr "AMD qurilmangiz bilan eng yaxshi moslik uchun to'liq ochiq kodli yoki AMD/ATI variantlaridan birini tanlashingiz tavsiya etiladi." + +msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n" +msgstr "Intel qurilmangiz bilan eng yaxshi moslik uchun to'liq ochiq kodli yoki Intel variantlaridan birini tanlashingiz tavsiya etiladi.\n" + +msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n" +msgstr "Nvidia qurilmangiz bilan eng yaxshi moslik uchun Nvidia'ning mulkiy drayveridan foydalanishingiz tavsiya etiladi.\n" + +msgid "" +"\n" +"\n" +"Select a graphics driver or leave blank to install all open-source drivers" +msgstr "" +"\n" +"\n" +"Grafik drayverni tanlang yoki barcha ochiq kodli drayverlarni o'rnatish uchun bo'sh qoldiring" + +msgid "All open-source (default)" +msgstr "Barcha ochiq kodli (standart)" + +msgid "Choose which kernels to use or leave blank for default \"{}\"" +msgstr "Qaysi yadrolardan foydalanishni tanlang yoki standart \"{}\" uchun bo'sh qoldiring" + +msgid "Choose which locale language to use" +msgstr "Lokal tilini tanlang" + +msgid "Choose which locale encoding to use" +msgstr "Lokal kodlashni tanlang" + +msgid "Select one of the values shown below: " +msgstr "Quyida ko'rsatilgan qiymatlardan birini tanlang: " + +msgid "Select one or more of the options below: " +msgstr "Quyidagi variantlardan birini yoki bir nechtasini tanlang: " + +msgid "Adding partition...." +msgstr "Bo'lim qo'shilmoqda..." + +msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's." +msgstr "Davom etish uchun to'g'ri fayl tizimi turini (fs-type) kiritishingiz kerak. Mavjud turlar uchun `man parted` buyrug'iga qarang." + +msgid "Error: Listing profiles on URL \"{}\" resulted in:" +msgstr "Xato: \"{}\" URL manzilidagi profillar ro'yxatini olishda xatolik yuz berdi:" + +msgid "Error: Could not decode \"{}\" result as JSON:" +msgstr "Xato: \"{}\" natijasini JSON formatida o'qib bo'lmadi:" + +msgid "Keyboard layout" +msgstr "Klaviatura tartibi" + +msgid "Mirror region" +msgstr "Ko'zgu hududi" + +msgid "Locale language" +msgstr "Lokal tili" + +msgid "Locale encoding" +msgstr "Lokal kodlash" + +msgid "Drive(s)" +msgstr "Disk(lar)" + +msgid "Disk layout" +msgstr "Disk sxemasi" + +msgid "Encryption password" +msgstr "Shifrlash paroli" + +msgid "Swap" +msgstr "Swap" + +msgid "Bootloader" +msgstr "Bootloader" + +msgid "Root password" +msgstr "Root paroli" + +msgid "Superuser account" +msgstr "Superuser hisobi" + +msgid "User account" +msgstr "Foydalanuvchi hisobi" + +msgid "Profile" +msgstr "Profil" + +msgid "Audio" +msgstr "Audio" + +msgid "Kernels" +msgstr "Yadrolar" + +msgid "Additional packages" +msgstr "Qo'shimcha paketlar" + +msgid "Network configuration" +msgstr "Tarmoq konfiguratsiyasi" + +msgid "Automatic time sync (NTP)" +msgstr "Vaqtni avtomatik sinxronlash (NTP)" + +msgid "Install ({} config(s) missing)" +msgstr "O'rnatish ({} ta konfiguratsiya yetishmayapti)" + +msgid "" +"You decided to skip harddrive selection\n" +"and will use whatever drive-setup is mounted at {} (experimental)\n" +"WARNING: Archinstall won't check the suitability of this setup\n" +"Do you wish to continue?" +msgstr "" +"Siz qattiq disk tanlashni o'tkazib yubordingiz\n" +"va {} manziliga biriktirilgan mavjud disk sozlamalaridan foydalanasiz (eksperimental)\n" +"DIQQAT: Archinstall bu sozlamaning mosligini tekshirmaydi.\n" +"Davom etishni xohlaysizmi?" + +msgid "Re-using partition instance: {}" +msgstr "Mavjud bo'limdan qayta foydalanish: {}" + +msgid "Create a new partition" +msgstr "Yangi bo'lim yaratish" + +msgid "Delete a partition" +msgstr "Bo'limni o'chirish" + +msgid "Clear/Delete all partitions" +msgstr "Barcha bo'limlarni tozalash/o'chirish" + +msgid "Assign mount-point for a partition" +msgstr "Bo'lim uchun biriktirish nuqtasini belgilash" + +msgid "Mark/Unmark a partition to be formatted (wipes data)" +msgstr "Bo'limni formatlash uchun belgilash/bekor qilish (ma'lumotlarni o'chiradi)" + +msgid "Mark/Unmark a partition as encrypted" +msgstr "Bo'limni shifrlangan deb belgilash/bekor qilish" + +msgid "Mark/Unmark a partition as bootable (automatic for /boot)" +msgstr "Bo'limni yuklanuvchi deb belgilash/bekor qilish (/boot uchun avtomatik)" + +msgid "Set desired filesystem for a partition" +msgstr "Bo'lim uchun fayl tizimini o'rnatish" + +msgid "Abort" +msgstr "To'xtatish" + +msgid "Hostname" +msgstr "Host nomi" + +msgid "Not configured, unavailable unless setup manually" +msgstr "Sozlanmagan, qo'lda sozlanmaguncha mavjud emas" + +msgid "Timezone" +msgstr "Vaqt mintaqasi" + +msgid "Set/Modify the below options" +msgstr "Quyidagi parametrlarni o'rnatish/o'zgartirish" + +msgid "Install" +msgstr "O'rnatish" + +msgid "" +"Use ESC to skip\n" +"\n" +msgstr "" +"O'tkazib yuborish uchun ESC tugmasini bosing\n" +"\n" + +msgid "Suggest partition layout" +msgstr "Bo'limlar sxemasini taklif qilish" + +msgid "Enter a password: " +msgstr "Parolni kiriting: " + +msgid "Enter a encryption password for {}" +msgstr "{} uchun shifrlash parolini kiriting" + +msgid "Enter disk encryption password (leave blank for no encryption): " +msgstr "Diskni shifrlash parolini kiriting (shifrlash kerak bo'lmasa, bo'sh qoldiring): " + +msgid "Create a required super-user with sudo privileges: " +msgstr "Sudo imtiyozlariga ega superuser yarating: " + +msgid "Enter root password (leave blank to disable root): " +msgstr "Root parolini kiriting (root hisobini o'chirish uchun bo'sh qoldiring): " + +msgid "Password for user \"{}\": " +msgstr "\"{}\" foydalanuvchisining paroli: " + +msgid "Verifying that additional packages exist (this might take a few seconds)" +msgstr "Qo'shimcha paketlar mavjudligi tekshirilmoqda (bu bir necha soniya vaqt olishi mumkin)" + +msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n" +msgstr "Standart vaqt serverlari yordamida vaqtni avtomatik sinxronlashdan (NTP) foydalanmoqchimisiz?\n" + +msgid "" +"Hardware time and other post-configuration steps might be required in order for NTP to work.\n" +"For more information, please check the Arch wiki" +msgstr "" +"NTP to'g'ri ishlashi uchun qurilma vaqtini va boshqa qo'shimcha sozlamalarni to'g'rilash talab qilinishi mumkin.\n" +"Batafsil ma'lumot uchun Arch Wiki'ga qarang" + +msgid "Enter a username to create an additional user (leave blank to skip): " +msgstr "Qo'shimcha foydalanuvchi yaratish uchun nom kiriting (o'tkazib yuborish uchun bo'sh qoldiring): " + +msgid "Use ESC to skip\n" +msgstr "O'tkazib yuborish uchun ESC tugmasini bosing\n" + +msgid "" +"\n" +" Choose an object from the list, and select one of the available actions for it to execute" +msgstr "" +"\n" +" Ro'yxatdan obyektni tanlang va u uchun mavjud amallardan birini bajaring" + +msgid "Cancel" +msgstr "Bekor qilish" + +msgid "Confirm and exit" +msgstr "Tasdiqlash va chiqish" + +msgid "Add" +msgstr "Qo'shish" + +msgid "Copy" +msgstr "Nusxalash" + +msgid "Edit" +msgstr "Tahrirlash" + +msgid "Delete" +msgstr "O'chirish" + +msgid "Select an action for '{}'" +msgstr "'{}' uchun amalni tanlang" + +msgid "Copy to new key:" +msgstr "Yangi kalitga nusxalash:" + +msgid "Unknown nic type: {}. Possible values are {}" +msgstr "Noma'lum tarmoq kartasi turi: {}. Mumkin bo'lgan qiymatlar: {}" + +msgid "" +"\n" +"This is your chosen configuration:" +msgstr "" +"\n" +"Siz tanlagan konfiguratsiya:" + +msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate." +msgstr "Pacman allaqachon ishlamoqda. To'xtashi uchun maksimal 10 daqiqa kutiladi." + +msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall." +msgstr "Oldindan mavjud bo'lgan pacman qulfi olib tashlanmadi. Archinstall'dan foydalanishdan oldin barcha pacman sessiyalarini tozalang." + +msgid "Choose which optional additional repositories to enable" +msgstr "Qo'shimcha (ixtiyoriy) repozitoriylardan qaysilarini yoqishni tanlang" + +msgid "Add a user" +msgstr "Foydalanuvchi qo'shish" + +msgid "Change password" +msgstr "Parolni o'zgartirish" + +msgid "Promote/Demote user" +msgstr "Foydalanuvchi maqomini o'zgartirish" + +msgid "Delete User" +msgstr "Foydalanuvchini o'chirish" + +msgid "" +"\n" +"Define a new user\n" +msgstr "" +"\n" +"Yangi foydalanuvchini belgilash\n" + +msgid "User Name : " +msgstr "Foydalanuvchi nomi: " + +msgid "Should {} be a superuser (sudoer)?" +msgstr "{} superuser (sudoer) bo'lishi kerakmi?" + +msgid "Define users with sudo privilege: " +msgstr "Sudo imtiyoziga ega foydalanuvchilarni belgilang: " + +msgid "No network configuration" +msgstr "Tarmoq konfiguratsiyasi yo'q" + +msgid "Set desired subvolumes on a btrfs partition" +msgstr "Btrfs bo'limida kerakli subvolume'larni o'rnatish" + +msgid "" +"{}\n" +"\n" +"Select which partition to set subvolumes on" +msgstr "" +"{}\n" +"\n" +"Qaysi bo'limda subvolume'lar o'rnatishni tanlang" + +msgid "Manage btrfs subvolumes for current partition" +msgstr "Joriy bo'lim uchun btrfs subvolume'larini boshqarish" + +msgid "No configuration" +msgstr "Konfiguratsiya yo'q" + +msgid "Save user configuration" +msgstr "Foydalanuvchi konfiguratsiyasini saqlash" + +msgid "Save user credentials" +msgstr "Foydalanuvchi hisob ma'lumotlarini saqlash" + +msgid "Save disk layout" +msgstr "Disk sxemasini saqlash" + +msgid "Save all" +msgstr "Barchasini saqlash" + +msgid "Choose which configuration to save" +msgstr "Qaysi konfiguratsiyani saqlashni tanlang" + +msgid "Enter a directory for the configuration(s) to be saved: " +msgstr "Konfiguratsiya(lar) saqlanadigan katalogni kiriting: " + +msgid "Not a valid directory: {}" +msgstr "Yaroqsiz katalog: {}" + +msgid "The password you are using seems to be weak," +msgstr "Siz kiritgan parol zaif ko'rinadi," + +msgid "are you sure you want to use it?" +msgstr "shunda ham uni ishlatmoqchimisiz?" + +msgid "Optional repositories" +msgstr "Ixtiyoriy repozitoriylar" + +msgid "Save configuration" +msgstr "Konfiguratsiyani saqlash" + +msgid "Missing configurations:\n" +msgstr "Yetishmayotgan konfiguratsiyalar:\n" + +msgid "Either root-password or at least 1 superuser must be specified" +msgstr "Root paroli yoki kamida 1 ta superuser ko'rsatilishi shart" + +msgid "Manage superuser accounts: " +msgstr "Superuser hisoblarini boshqarish: " + +msgid "Manage ordinary user accounts: " +msgstr "Oddiy foydalanuvchi hisoblarini boshqarish: " + +msgid " Subvolume :{:16}" +msgstr " Subvolume :{:16}" + +msgid " mounted at {:16}" +msgstr " biriktirildi: {:16}" + +msgid " with option {}" +msgstr " {} parametri bilan" + +msgid "" +"\n" +" Fill the desired values for a new subvolume \n" +msgstr "" +"\n" +" Yangi subvolume uchun kerakli qiymatlarni to'ldiring \n" + +msgid "Subvolume name " +msgstr "Subvolume nomi " + +msgid "Subvolume mountpoint" +msgstr "Subvolume biriktirish nuqtasi" + +msgid "Subvolume options" +msgstr "Subvolume parametrlari" + +msgid "Save" +msgstr "Saqlash" + +msgid "Subvolume name :" +msgstr "Subvolume nomi:" + +msgid "Select a mount point :" +msgstr "Biriktirish nuqtasini tanlang:" + +msgid "Select the desired subvolume options " +msgstr "Kerakli subvolume parametrlarini tanlang " + +msgid "Define users with sudo privilege, by username: " +msgstr "Sudo imtiyoziga ega foydalanuvchilarni nomi bo'yicha belgilang: " + +#, python-brace-format +msgid "[!] A log file has been created here: {}" +msgstr "[!] Log fayl bu yerda yaratildi: {}" + +msgid "Would you like to use BTRFS subvolumes with a default structure?" +msgstr "BTRFS subvolume'larini standart struktura bilan ishlatmoqchimisiz?" + +msgid "Would you like to use BTRFS compression?" +msgstr "BTRFS siqishdan foydalanmoqchimisiz?" + +msgid "Would you like to create a separate partition for /home?" +msgstr "/home uchun alohida bo'lim yaratmoqchimisiz?" + +msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n" +msgstr "Tanlangan disklar avtomatik taklif uchun minimal sig'imga ega emas\n" + +msgid "Minimum capacity for /home partition: {}GB\n" +msgstr "/home bo'limi uchun minimal sig'im: {}GB\n" + +msgid "Minimum capacity for Arch Linux partition: {}GB" +msgstr "Arch Linux bo'limi uchun minimal sig'im: {}GB" + +msgid "Continue" +msgstr "Davom etish" + +msgid "yes" +msgstr "ha" + +msgid "no" +msgstr "yo'q" + +msgid "set: {}" +msgstr "o'rnatildi: {}" + +msgid "Manual configuration setting must be a list" +msgstr "Qo'lda konfiguratsiya sozlamasi ro'yxat shaklida bo'lishi kerak" + +msgid "No iface specified for manual configuration" +msgstr "Qo'lda sozlash uchun interfeys ko'rsatilmagan" + +msgid "Manual nic configuration with no auto DHCP requires an IP address" +msgstr "Avtomatik DHCP'siz tarmoq kartasini qo'lda sozlash uchun IP manzil talab qilinadi" + +msgid "Add interface" +msgstr "Interfeys qo'shish" + +msgid "Edit interface" +msgstr "Interfeysni tahrirlash" + +msgid "Delete interface" +msgstr "Interfeysni o'chirish" + +msgid "Select interface to add" +msgstr "Qo'shish uchun interfeysni tanlang" + +msgid "Manual configuration" +msgstr "Qo'lda sozlash" + +msgid "Mark/Unmark a partition as compressed (btrfs only)" +msgstr "Bo'limni siqilgan deb belgilash/bekor qilish (faqat btrfs)" + +msgid "The password you are using seems to be weak, are you sure you want to use it?" +msgstr "Siz kiritgan parol zaif ko'rinadi. Shunda ham uni ishlatmoqchimisiz?" + +msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway" +msgstr "Ish stoli muhitlari va oyna menejerlari tanlovi (masalan, GNOME, KDE, Sway)." + +msgid "Select your desired desktop environment" +msgstr "Kerakli ish stoli muhitini tanlang" + +msgid "A very basic installation that allows you to customize Arch Linux as you see fit." +msgstr "Arch Linux'ni o'z xohishingizga ko'ra moslashtirish imkonini beruvchi asosiy o'rnatish." + +msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb" +msgstr "O'rnatish va yoqish uchun turli server paketlari tanlovi (masalan, httpd, nginx, mariadb)." + +msgid "Choose which servers to install, if none then a minimal installation will be done" +msgstr "Qaysi serverlarni o'rnatishni tanlang, agar tanlanmasa, minimal o'rnatish amalga oshiriladi" + +msgid "Installs a minimal system as well as xorg and graphics drivers." +msgstr "Minimal tizim hamda Xorg va grafik drayverlarni o'rnatadi." + +msgid "Press Enter to continue." +msgstr "Davom etish uchun Enter tugmasini bosing." + +msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?" +msgstr "Yangi yaratilgan tizimga chroot qilib, o'rnatishdan keyingi sozlamalarni bajarmoqchimisiz?" + +msgid "Are you sure you want to reset this setting?" +msgstr "Haqiqatan ham bu sozlamani bekor qilmoqchimisiz?" + +msgid "Select one or more hard drives to use and configure\n" +msgstr "Foydalanish va sozlash uchun bir yoki bir nechta qattiq diskni tanlang\n" + +msgid "Any modifications to the existing setting will reset the disk layout!" +msgstr "Joriy sozlamalarga kiritilgan har qanday o'zgartirish disk sxemasini bekor qiladi!" + +msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?" +msgstr "Agar disk tanlovini o'zgartirsangiz, joriy disk sxemasi ham bekor qilinadi. Ishonchingiz komilmi?" + +msgid "Save and exit" +msgstr "Saqlash va chiqish" + +msgid "" +"{}\n" +"contains queued partitions, this will remove those, are you sure?" +msgstr "" +"{}\n" +"navbatga qo'yilgan bo'limlarni o'z ichiga oladi. Bu amallar bekor qilinadi, ishonchingiz komilmi?" + +msgid "No audio server" +msgstr "Audio server yo'q" + +msgid "(default)" +msgstr "(standart)" + +msgid "Use ESC to skip" +msgstr "O'tkazib yuborish uchun ESC tugmasini bosing" + +msgid "" +"Use CTRL+C to reset current selection\n" +"\n" +msgstr "" +"Joriy tanlovni bekor qilish uchun CTRL+C tugmasini bosing\n" +"\n" + +msgid "Copy to: " +msgstr "Nusxalash:" + +msgid "Edit: " +msgstr "Tahrirlash:" + +msgid "Key: " +msgstr "Kalit:" + +msgid "Edit {}: " +msgstr "{} tahrirlash:" + +msgid "Add: " +msgstr "Qo'shish:" + +msgid "Value: " +msgstr "Qiymat:" + +msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)" +msgstr "Disk tanlash va bo'limlashni o'tkazib yuborib, /mnt manziliga biriktirilgan mavjud disk sozlamasidan foydalanishingiz mumkin (eksperimental)" + +msgid "Select one of the disks or skip and use /mnt as default" +msgstr "Disklardan birini tanlang yoki o'tkazib yuborib, /mnt'dan standart sifatida foydalaning" + +msgid "Select which partitions to mark for formatting:" +msgstr "Formatlash uchun qaysi bo'limlarni belgilashni tanlang:" + +msgid "Use HSM to unlock encrypted drive" +msgstr "Shifrlangan diskni ochish uchun HSM'dan foydalanish" + +msgid "Device" +msgstr "Qurilma" + +msgid "Size" +msgstr "Hajm" + +msgid "Free space" +msgstr "Bo'sh joy" + +msgid "Bus-type" +msgstr "Shina turi" + +msgid "Either root-password or at least 1 user with sudo privileges must be specified" +msgstr "Root paroli yoki sudo imtiyoziga ega kamida 1 ta foydalanuvchi ko'rsatilishi shart" + +msgid "Enter username (leave blank to skip): " +msgstr "Foydalanuvchi nomini kiriting (o'tkazib yuborish uchun bo'sh qoldiring): " + +msgid "The username you entered is invalid. Try again" +msgstr "Siz kiritgan foydalanuvchi nomi yaroqsiz. Qayta urining." + +msgid "Should \"{}\" be a superuser (sudo)?" +msgstr "\"{}\" superuser (sudo) bo'lishi kerakmi?" + +msgid "Select which partitions to encrypt" +msgstr "Qaysi bo'limlarni shifrlashni tanlang" + +msgid "very weak" +msgstr "juda zaif" + +msgid "weak" +msgstr "zaif" + +msgid "moderate" +msgstr "o'rtacha" + +msgid "strong" +msgstr "kuchli" + +msgid "Add subvolume" +msgstr "Subvolume qo'shish" + +msgid "Edit subvolume" +msgstr "Subvolume'ni tahrirlash" + +msgid "Delete subvolume" +msgstr "Subvolume'ni o'chirish" + +msgid "Configured {} interfaces" +msgstr "{} ta interfeys sozlandi" + +msgid "This option enables the number of parallel downloads that can occur during installation" +msgstr "Bu parametr o'rnatish vaqtida bir vaqtning o'zida nechta yuklab olish mumkinligini belgilaydi" + +msgid "" +"Enter the number of parallel downloads to be enabled.\n" +" (Enter a value between 1 to {})\n" +"Note:" +msgstr "" +"Parallel yuklab olishlar sonini kiriting.\n" +" (1 dan {} gacha qiymat kiriting)\n" +"Eslatma:" + +#, fuzzy +msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )" +msgstr " - Maksimal qiymat: {} ({} ta parallel yuklab olishga, bir vaqtda {} ta yuklab olishga ruxsat beradi)" + +#, fuzzy +msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )" +msgstr " - Minimal qiymat: 1 (1 ta parallel yuklab olishga, bir vaqtda 2 ta yuklab olishga ruxsat beradi)" + +msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )" +msgstr " - O'chirish/Standart: 0 (Parallel yuklab olishni o'chiradi, bir vaqtda faqat 1 ta yuklab olishga ruxsat beradi)" + +#, python-brace-format +msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]" +msgstr "Yaroqsiz qiymat! Qayta urining [1 dan {max_downloads} gacha yoki o'chirish uchun 0]" + +msgid "Parallel Downloads" +msgstr "Parallel yuklab olishlar" + +msgid "ESC to skip" +msgstr "ESC - O'tkazib yuborish" + +msgid "CTRL+C to reset" +msgstr "CTRL+C - Bekor qilish" + +msgid "TAB to select" +msgstr "TAB - Tanlash" + +msgid "[Default value: 0] > " +msgstr "[Standart qiymat: 0] > " + +msgid "To be able to use this translation, please install a font manually that supports the language." +msgstr "Ushbu tarjimadan foydalanish uchun tilni qo'llab-quvvatlaydigan shriftni qo'lda o'rnating." + +msgid "The font should be stored as {}" +msgstr "Shrift {} sifatida saqlanishi kerak" + +msgid "Archinstall requires root privileges to run. See --help for more." +msgstr "Archinstall'ni ishga tushirish uchun root huquqlari talab qilinadi. Batafsil ma'lumot uchun --help'ga qarang." + +msgid "Select an execution mode" +msgstr "Bajarish rejimini tanlang" + +#, python-brace-format +msgid "Unable to fetch profile from specified url: {}" +msgstr "Ko'rsatilgan URL'dan profilni olib bo'lmadi: {}" + +#, python-brace-format +msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}" +msgstr "Profillar noyob nomga ega bo'lishi kerak, lekin bir xil nomli profillar topildi: {}" + +msgid "Select one or more devices to use and configure" +msgstr "Foydalanish va sozlash uchun bir yoki bir nechta qurilmani tanlang" + +msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?" +msgstr "Agar qurilma tanlovini o'zgartirsangiz, joriy disk sxemasi ham bekor qilinadi. Ishonchingiz komilmi?" + +msgid "Existing Partitions" +msgstr "Mavjud bo'limlar" + +msgid "Select a partitioning option" +msgstr "Bo'limlash variantini tanlang" + +msgid "Enter the root directory of the mounted devices: " +msgstr "Biriktirilgan qurilmalarning root katalogini kiriting: " + +#, python-brace-format +msgid "Minimum capacity for /home partition: {}GiB\n" +msgstr "/home bo'limi uchun minimal sig'im: {}GiB\n" + +#, python-brace-format +msgid "Minimum capacity for Arch Linux partition: {}GiB" +msgstr "Arch Linux bo'limi uchun minimal sig'im: {}GiB" + +msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments" +msgstr "Bu oldindan dasturlashtirilgan profiles_bck ro'yxati. Ular ish stoli muhitlari kabi narsalarni o'rnatishni osonlashtirishi mumkin" + +msgid "Current profile selection" +msgstr "Joriy profil tanlovi" + +msgid "Remove all newly added partitions" +msgstr "Barcha yangi qo'shilgan bo'limlarni o'chirish" + +msgid "Assign mountpoint" +msgstr "Biriktirish nuqtasini belgilash" + +msgid "Mark/Unmark to be formatted (wipes data)" +msgstr "Formatlash uchun belgilash/bekor qilish (ma'lumotlarni o'chiradi)" + +msgid "Mark/Unmark as bootable" +msgstr "Yuklanuvchi deb belgilash/bekor qilish" + +msgid "Change filesystem" +msgstr "Fayl tizimini o'zgartirish" + +msgid "Mark/Unmark as compressed" +msgstr "Siqilgan deb belgilash/bekor qilish" + +msgid "Set subvolumes" +msgstr "Subvolume'larni sozlash" + +msgid "Delete partition" +msgstr "Bo'limni o'chirish" + +msgid "Partition" +msgstr "Bo'lim" + +msgid "This partition is currently encrypted, to format it a filesystem has to be specified" +msgstr "Bu bo'lim hozirda shifrlangan. Uni formatlash uchun fayl tizimi ko'rsatilishi kerak." + +msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example." +msgstr "Bo'limlarni biriktirish nuqtalari o'rnatilayotgan tizimga nisbatan olinadi, masalan, /boot." + +msgid "If mountpoint /boot is set, then the partition will also be marked as bootable." +msgstr "Agar /boot biriktirish nuqtasi o'rnatilsa, bu bo'lim avtomatik tarzda yuklanuvchi deb belgilanadi." + +msgid "Mountpoint: " +msgstr "Biriktirish nuqtasi: " + +msgid "Current free sectors on device {}:" +msgstr "{} qurilmasidagi joriy bo'sh sektorlar:" + +msgid "Total sectors: {}" +msgstr "Jami sektorlar: {}" + +msgid "Enter the start sector (default: {}): " +msgstr "Boshlang'ich sektorni kiriting (standart: {}): " + +msgid "Enter the end sector of the partition (percentage or block number, default: {}): " +msgstr "Bo'limning tugash sektorini kiriting (foizda yoki blok raqami, standart: {}): " + +msgid "This will remove all newly added partitions, continue?" +msgstr "Bu barcha yangi qo'shilgan bo'limlarni o'chirib tashlaydi, davom etasizmi?" + +#, python-brace-format +msgid "Partition management: {}" +msgstr "Bo'limlarni boshqarish: {}" + +#, python-brace-format +msgid "Total length: {}" +msgstr "Umumiy uzunlik: {}" + +msgid "Encryption type" +msgstr "Shifrlash turi" + +msgid "Iteration time" +msgstr "Iteratsiya vaqti" + +msgid "Enter iteration time for LUKS encryption (in milliseconds)" +msgstr "LUKS shifrlash uchun iteratsiya vaqtini kiriting (millisekundda)" + +msgid "Higher values increase security but slow down boot time" +msgstr "Yuqori qiymatlar xavfsizlikni oshiradi, lekin tizim yuklanishini sekinlashtiradi" + +msgid "Default: 10000ms, Recommended range: 1000-60000" +msgstr "Standart: 10000ms, Tavsiya etilgan oraliq: 1000-60000" + +msgid "Iteration time cannot be empty" +msgstr "Iteratsiya vaqti bo'sh bo'lishi mumkin emas" + +msgid "Iteration time must be at least 100ms" +msgstr "Iteratsiya vaqti kamida 100ms bo'lishi kerak" + +msgid "Iteration time must be at most 120000ms" +msgstr "Iteratsiya vaqti ko'pi bilan 120000ms bo'lishi kerak" + +msgid "Please enter a valid number" +msgstr "Iltimos, yaroqli raqam kiriting" + +msgid "Partitions" +msgstr "Bo'limlar" + +msgid "No HSM devices available" +msgstr "HSM qurilmalari mavjud emas" + +msgid "Partitions to be encrypted" +msgstr "Shifrlanadigan bo'limlar" + +msgid "Select disk encryption option" +msgstr "Diskni shifrlash variantini tanlang" + +msgid "Select a FIDO2 device to use for HSM" +msgstr "HSM uchun FIDO2 qurilmasini tanlang" + +msgid "Use a best-effort default partition layout" +msgstr "Tavsiya etilgan standart bo'limlar sxemasidan foydalanish" + +msgid "Manual Partitioning" +msgstr "Qo'lda bo'limlash" + +msgid "Pre-mounted configuration" +msgstr "Oldindan biriktirilgan konfiguratsiya" + +msgid "Unknown" +msgstr "Noma'lum" + +msgid "Partition encryption" +msgstr "Bo'limni shifrlash" + +#, python-brace-format +msgid " ! Formatting {} in " +msgstr " ! {} formatlanmoqda " + +#, fuzzy +msgid "← Back" +msgstr "Orqaga" + +msgid "Disk encryption" +msgstr "Diskni shifrlash" + +msgid "Configuration" +msgstr "Konfiguratsiya" + +msgid "Password" +msgstr "Parol" + +msgid "All settings will be reset, are you sure?" +msgstr "Barcha sozlamalar bekor qilinadi, ishonchingiz komilmi?" + +msgid "Back" +msgstr "Orqaga" + +msgid "Please chose which greeter to install for the chosen profiles: {}" +msgstr "Tanlangan profillar uchun qaysi greeter'ni o'rnatishni tanlang: {}" + +#, python-brace-format +msgid "Environment type: {}" +msgstr "Muhit turi: {}" + +msgid "The proprietary Nvidia driver is not supported by Sway. It is likely that you will run into issues, are you okay with that?" +msgstr "Nvidia'ning mulkiy drayveri Sway tomonidan qo'llab-quvvatlanmaydi. Muammolarga duch kelishingiz mumkin. Shunda ham davom etasizmi?" + +msgid "Installed packages" +msgstr "O'rnatilgan paketlar" + +msgid "Add profile" +msgstr "Profil qo'shish" + +msgid "Edit profile" +msgstr "Profilni tahrirlash" + +msgid "Delete profile" +msgstr "Profilni o'chirish" + +msgid "Profile name: " +msgstr "Profil nomi: " + +msgid "The profile name you entered is already in use. Try again" +msgstr "Siz kiritgan profil nomi allaqachon mavjud. Qayta urining." + +msgid "Packages to be install with this profile (space separated, leave blank to skip): " +msgstr "Bu profil bilan o'rnatiladigan paketlar (probel bilan ajrating, bo'sh qoldiring): " + +msgid "Services to be enabled with this profile (space separated, leave blank to skip): " +msgstr "Bu profil bilan yoqiladigan xizmatlar (probel bilan ajrating, bo'sh qoldiring): " + +msgid "Should this profile be enabled for installation?" +msgstr "Bu profil o'rnatish uchun yoqilsinmi?" + +msgid "Create your own" +msgstr "O'zingiz yaratish" + +msgid "" +"\n" +"Select a graphics driver or leave blank to install all open-source drivers" +msgstr "" +"\n" +"Grafik drayverni tanlang yoki barcha ochiq kodli drayverlarni o'rnatish uchun bo'sh qoldiring" + +msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)" +msgstr "Sway sizning seat'ingizga (klaviatura, sichqoncha kabi qurilmalar to'plami) kirish huquqiga muhtoj" + +msgid "" +"\n" +"\n" +"Choose an option to give Sway access to your hardware" +msgstr "" +"\n" +"\n" +"Sway'ga qurilmalaringizga kirish huquqini berish variantini tanlang" + +msgid "Graphics driver" +msgstr "Grafik drayver" + +msgid "Greeter" +msgstr "Greeter" + +msgid "Please chose which greeter to install" +msgstr "Qaysi greeter'ni o'rnatishni tanlang" + +msgid "This is a list of pre-programmed default_profiles" +msgstr "Bu oldindan dasturlashtirilgan standart profillar (default_profiles) ro'yxati" + +msgid "Disk configuration" +msgstr "Disk konfiguratsiyasi" + +msgid "Profiles" +msgstr "Profillar" + +msgid "Finding possible directories to save configuration files ..." +msgstr "Konfiguratsiya fayllarini saqlash uchun mumkin bo'lgan kataloglar qidirilmoqda..." + +msgid "Select directory (or directories) for saving configuration files" +msgstr "Konfiguratsiya fayllarini saqlash uchun katalog(lar)ni tanlang" + +msgid "Add a custom mirror" +msgstr "Maxsus ko'zgu qo'shish" + +msgid "Change custom mirror" +msgstr "Maxsus ko'zguni o'zgartirish" + +msgid "Delete custom mirror" +msgstr "Maxsus ko'zguni o'chirish" + +msgid "Enter name (leave blank to skip): " +msgstr "Nomini kiriting (o'tkazib yuborish uchun bo'sh qoldiring): " + +msgid "Enter url (leave blank to skip): " +msgstr "URL manzilini kiriting (o'tkazib yuborish uchun bo'sh qoldiring): " + +msgid "Select signature check option" +msgstr "Imzo tekshirish variantini tanlang" + +msgid "Select signature option" +msgstr "Imzo variantini tanlang" + +msgid "Custom mirrors" +msgstr "Maxsus ko'zgular" + +msgid "Defined" +msgstr "Belgilangan" + +msgid "Save user configuration (including disk layout)" +msgstr "Foydalanuvchi konfiguratsiyasini (disk sxemasi bilan birga) saqlash" + +msgid "" +"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n" +"Save directory: " +msgstr "" +"Konfiguratsiya(lar) saqlanadigan katalogni kiriting (TAB orqali to'ldirish mavjud)\n" +"Saqlash katalogi: " + +msgid "" +"Do you want to save {} configuration file(s) in the following location?\n" +"\n" +"{}" +msgstr "" +"{} ta konfiguratsiya faylini quyidagi manzilda saqlashni xohlaysizmi?\n" +"\n" +"{}" + +msgid "Saving {} configuration files to {}" +msgstr "{} ta konfiguratsiya fayli {} manziliga saqlanmoqda" + +msgid "Mirrors" +msgstr "Ko'zgular" + +msgid "Mirror regions" +msgstr "Ko'zgu hududlari" + +#, fuzzy +msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )" +msgstr " - Maksimal qiymat: {} ({} ta parallel yuklab olishga, bir vaqtda {max_downloads+1} ta yuklab olishga ruxsat beradi)" + +msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]" +msgstr "Yaroqsiz qiymat! Qayta urining [1 dan {} gacha yoki o'chirish uchun 0]" + +msgid "Locales" +msgstr "Lokallar" + +msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)" +msgstr "NetworkManager'dan foydalanish (GNOME va KDE'da internetni grafik interfeysda sozlash uchun zarur)" + +msgid "Total: {} / {}" +msgstr "Jami: {} / {}" + +msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..." +msgstr "Barcha kiritilgan qiymatlar o'lchov birligi bilan tugashi mumkin: B, KB, KiB, MB, MiB..." + +msgid "If no unit is provided, the value is interpreted as sectors" +msgstr "Agar o'lchov birligi ko'rsatilmasa, qiymat sektorlarda hisoblanadi" + +msgid "Enter start (default: sector {}): " +msgstr "Boshlanishni kiriting (standart: {} sektori): " + +msgid "Enter end (default: {}): " +msgstr "Tugashni kiriting (standart: {}): " + +msgid "Unable to determine fido2 devices. Is libfido2 installed?" +msgstr "Fido2 qurilmalarini aniqlab bo'lmadi. Libfido2 o'rnatilganmi?" + +msgid "Path" +msgstr "Yo'l" + +msgid "Manufacturer" +msgstr "Ishlab chiqaruvchi" + +msgid "Product" +msgstr "Mahsulot" + +#, python-brace-format +msgid "Invalid configuration: {error}" +msgstr "Yaroqsiz konfiguratsiya: {error}" + +msgid "Type" +msgstr "Tur" + +msgid "This option enables the number of parallel downloads that can occur during package downloads" +msgstr "Bu parametr paketlarni yuklab olish vaqtida bir vaqtning o'zida nechta yuklab olish mumkinligini belgilaydi" + +msgid "" +"Enter the number of parallel downloads to be enabled.\n" +"\n" +"Note:\n" +msgstr "" +"Parallel yuklab olishlar sonini kiriting.\n" +"\n" +"Eslatma:\n" + +#, python-brace-format +msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )" +msgstr " - Tavsiya etilgan maksimal qiymat: {} (Bir vaqtda {} ta parallel yuklab olishga ruxsat beradi)" + +msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n" +msgstr " - O'chirish/Standart: 0 (Parallel yuklab olishni o'chiradi, bir vaqtda faqat 1 ta yuklab olishga ruxsat beradi)\n" + +msgid "Invalid input! Try again with a valid input [or 0 to disable]" +msgstr "Yaroqsiz qiymat! Qayta urining [yoki o'chirish uchun 0]" + +msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)" +msgstr "Hyprland sizning seat'ingizga (klaviatura, sichqoncha kabi qurilmalar to'plami) kirish huquqiga muhtoj" + +msgid "" +"\n" +"\n" +"Choose an option to give Hyprland access to your hardware" +msgstr "" +"\n" +"\n" +"Hyprland'ga qurilmalaringizga kirish huquqini berish variantini tanlang" + +msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..." +msgstr "Barcha kiritilgan qiymatlar o'lchov birligi bilan tugashi mumkin: %, B, KB, KiB, MB, MiB..." + +msgid "Would you like to use unified kernel images?" +msgstr "Yagona yadro obrazlaridan (UKI) foydalanmoqchimisiz?" + +msgid "Unified kernel images" +msgstr "Yagona yadro obrazlari (UKI)" + +msgid "Waiting for time sync (timedatectl show) to complete." +msgstr "Vaqt sinxronizatsiyasi (timedatectl show) tugashi kutilmoqda." + +msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/" +msgstr "Vaqt sinxronizatsiyasi tugamayapti. Vaqtinchalik yechimlar uchun hujjatlarni ko'rib chiqing: https://archinstall.readthedocs.io/" + +msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)" +msgstr "Avtomatik vaqt sinxronizatsiyasini kutish o'tkazib yuborilmoqda (agar o'rnatish paytida vaqt noto'g'ri bo'lsa, bu muammolarga olib kelishi mumkin)" + +msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete." +msgstr "Arch Linux kalitlar zanjiri (keyring) sinxronizatsiyasi tugashi kutilmoqda." + +msgid "Selected profiles: " +msgstr "Tanlangan profillar: " + +msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/" +msgstr "Vaqt sinxronizatsiyasi tugamayapti. Vaqtinchalik yechimlar uchun hujjatlarni ko'rib chiqing: https://archinstall.readthedocs.io/" + +msgid "Mark/Unmark as nodatacow" +msgstr "nodatacow deb belgilash/bekor qilish" + +msgid "Would you like to use compression or disable CoW?" +msgstr "Siqishdan foydalanmoqchimisiz yoki CoW'ni o'chirmoqchimisiz?" + +msgid "Use compression" +msgstr "Siqishdan foydalanish" + +msgid "Disable Copy-on-Write" +msgstr "Copy-on-Write'ni o'chirish" + +msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway" +msgstr "Ish stoli muhitlari va oyna menejerlari tanlovi (masalan, GNOME, KDE Plasma, Sway)." + +#, python-brace-format +msgid "Configuration type: {}" +msgstr "Konfiguratsiya turi: {}" + +msgid "LVM configuration type" +msgstr "LVM konfiguratsiya turi" + +msgid "LVM disk encryption with more than 2 partitions is currently not supported" +msgstr "2 dan ortiq bo'limga ega LVM disk shifrlash hozirda qo'llab-quvvatlanmaydi" + +msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)" +msgstr "NetworkManager'dan foydalanish (GNOME va KDE Plasma'da internetni grafik interfeysda sozlash uchun zarur)" + +msgid "Select a LVM option" +msgstr "LVM variantini tanlang" + +msgid "Partitioning" +msgstr "Bo'limlash" + +msgid "Logical Volume Management (LVM)" +msgstr "Mantiqiy hajmlarni boshqarish (LVM)" + +msgid "Physical volumes" +msgstr "Fizik hajmlar" + +msgid "Volumes" +msgstr "Hajmlar" + +msgid "LVM volumes" +msgstr "LVM hajmlari" + +msgid "LVM volumes to be encrypted" +msgstr "Shifrlanadigan LVM hajmlari" + +msgid "Select which LVM volumes to encrypt" +msgstr "Qaysi LVM hajmlarini shifrlashni tanlang" + +msgid "Default layout" +msgstr "Standart sxema" + +msgid "No Encryption" +msgstr "Shifrlashsiz" + +msgid "LUKS" +msgstr "LUKS" + +msgid "LVM on LUKS" +msgstr "LUKS ustida LVM" + +msgid "LUKS on LVM" +msgstr "LVM ustida LUKS" + +msgid "Yes" +msgstr "Ha" + +msgid "No" +msgstr "Yo'q" + +msgid "Archinstall help" +msgstr "Archinstall yordami" + +msgid " (default)" +msgstr " (standart)" + +msgid "Press Ctrl+h for help" +msgstr "Yordam uchun Ctrl+h tugmasini bosing" + +msgid "Choose an option to give Sway access to your hardware" +msgstr "Sway'ga qurilmalaringizga kirish huquqini berish variantini tanlang" + +msgid "Seat access" +msgstr "Seat'ga kirish" + +msgid "Mountpoint" +msgstr "Biriktirish nuqtasi" + +msgid "HSM" +msgstr "HSM" + +msgid "Enter disk encryption password (leave blank for no encryption)" +msgstr "Diskni shifrlash parolini kiriting (shifrlash kerak bo'lmasa, bo'sh qoldiring)" + +msgid "Disk encryption password" +msgstr "Diskni shifrlash paroli" + +msgid "Partition - New" +msgstr "Bo'lim - Yangi" + +msgid "Filesystem" +msgstr "Fayl tizimi" + +msgid "Invalid size" +msgstr "Yaroqsiz hajm" + +msgid "Start (default: sector {}): " +msgstr "Boshlanish (standart: {} sektor): " + +msgid "End (default: {}): " +msgstr "Tugash (standart: {}): " + +msgid "Subvolume name" +msgstr "Subvolume nomi" + +msgid "Disk configuration type" +msgstr "Disk konfiguratsiyasi turi" + +msgid "Root mount directory" +msgstr "Root biriktirish katalogi" + +msgid "Select language" +msgstr "Tilni tanlang" + +msgid "Write additional packages to install (space separated, leave blank to skip)" +msgstr "Qo'shimcha paketlarni probel bilan ajratib yozing (o'tkazib yuborish uchun bo'sh qoldiring)" + +msgid "Invalid download number" +msgstr "Yaroqsiz yuklab olishlar soni" + +msgid "Number downloads" +msgstr "Yuklab olishlar soni" + +msgid "The username you entered is invalid" +msgstr "Siz kiritgan foydalanuvchi nomi yaroqsiz" + +msgid "Username" +msgstr "Foydalanuvchi nomi" + +#, python-brace-format +msgid "Should \"{}\" be a superuser (sudo)?\n" +msgstr "\"{}\" superuser (sudo) bo'lishi kerakmi?\n" + +msgid "Interfaces" +msgstr "Interfeyslar" + +msgid "You need to enter a valid IP in IP-config mode" +msgstr "IP-config rejimida yaroqli IP manzil kiritishingiz kerak" + +msgid "Modes" +msgstr "Rejimlar" + +msgid "IP address" +msgstr "IP manzil" + +msgid "Enter your gateway (router) IP address (leave blank for none)" +msgstr "Shlyuz (router) IP manzilini kiriting (bo'sh qoldiring)" + +msgid "Gateway address" +msgstr "Shlyuz manzili" + +msgid "Enter your DNS servers with space separated (leave blank for none)" +msgstr "DNS serverlarni probel bilan ajratib kiriting (bo'sh qoldiring)" + +msgid "DNS servers" +msgstr "DNS serverlar" + +msgid "Configure interfaces" +msgstr "Interfeyslarni sozlash" + +msgid "Kernel" +msgstr "Yadro" + +msgid "UEFI is not detected and some options are disabled" +msgstr "UEFI aniqlanmadi, shu sababli ba'zi parametrlar o'chirildi" + +msgid "Info" +msgstr "Ma'lumot" + +msgid "The proprietary Nvidia driver is not supported by Sway." +msgstr "Nvidia'ning mulkiy drayveri Sway tomonidan qo'llab-quvvatlanmaydi." + +msgid "It is likely that you will run into issues, are you okay with that?" +msgstr "Muammolarga duch kelishingiz mumkin. Shunda ham davom etasizmi?" + +msgid "Main profile" +msgstr "Asosiy profil" + +msgid "Confirm password" +msgstr "Parolni tasdiqlang" + +msgid "The confirmation password did not match, please try again" +msgstr "Parollar mos kelmadi, iltimos, qayta urining" + +msgid "Not a valid directory" +msgstr "Yaroqsiz katalog" + +msgid "Would you like to continue?" +msgstr "Davom etishni xohlaysizmi?" + +msgid "Directory" +msgstr "Katalog" + +msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)" +msgstr "Konfiguratsiya(lar) saqlanadigan katalogni kiriting (TAB orqali to'ldirish mavjud)" + +#, python-brace-format +msgid "Do you want to save the configuration file(s) to {}?" +msgstr "Konfiguratsiya fayl(lar)ini {} manzilida saqlashni xohlaysizmi?" + +msgid "Enabled" +msgstr "Yoqilgan" + +msgid "Disabled" +msgstr "O'chirilgan" + +msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues" +msgstr "Iltimos, ushbu muammo (va fayl) haqida https://github.com/archlinux/archinstall/issues manziliga xabar bering" + +msgid "Mirror name" +msgstr "Ko'zgu nomi" + +msgid "Url" +msgstr "URL" + +msgid "Select signature check" +msgstr "Imzo tekshirishni tanlang" + +msgid "Select execution mode" +msgstr "Bajarish rejimini tanlang" + +msgid "Press ? for help" +msgstr "Yordam uchun ? tugmasini bosing" + +msgid "Choose an option to give Hyprland access to your hardware" +msgstr "Hyprland'ga qurilmalaringizga kirish huquqini berish variantini tanlang" + +msgid "Additional repositories" +msgstr "Qo'shimcha repozitoriylar" + +msgid "NTP" +msgstr "NTP" + +msgid "Swap on zram" +msgstr "Zram'da swap" + +msgid "Name" +msgstr "Nom" + +msgid "Signature check" +msgstr "Imzo tekshiruvi" + +#, python-brace-format +msgid "Selected free space segment on device {}:" +msgstr "{} qurilmasidagi tanlangan bo'sh joy segmenti:" + +#, python-brace-format +msgid "Size: {} / {}" +msgstr "Hajm: {} / {}" + +#, python-brace-format +msgid "Size (default: {}): " +msgstr "Hajm (standart: {}): " + +msgid "HSM device" +msgstr "HSM qurilmasi" + +msgid "Some packages could not be found in the repository" +msgstr "Ba'zi paketlar repozitoriyda topilmadi" + +msgid "User" +msgstr "Foydalanuvchi" + +msgid "The specified configuration will be applied" +msgstr "Ko'rsatilgan konfiguratsiya qo'llaniladi" + +msgid "Wipe" +msgstr "Tozalash" + +msgid "Mark/Unmark as XBOOTLDR" +msgstr "XBOOTLDR deb belgilash/bekor qilish" + +msgid "Loading packages..." +msgstr "Paketlar yuklanmoqda..." + +msgid "Select any packages from the below list that should be installed additionally" +msgstr "Quyidagi ro'yxatdan qo'shimcha o'rnatiladigan paketlarni tanlang" + +msgid "Add a custom repository" +msgstr "Maxsus repozitoriy qo'shish" + +msgid "Change custom repository" +msgstr "Maxsus repozitoriyni o'zgartirish" + +msgid "Delete custom repository" +msgstr "Maxsus repozitoriyni o'chirish" + +msgid "Repository name" +msgstr "Repozitoriy nomi" + +msgid "Add a custom server" +msgstr "Maxsus server qo'shish" + +msgid "Change custom server" +msgstr "Maxsus serverni o'zgartirish" + +msgid "Delete custom server" +msgstr "Maxsus serverni o'chirish" + +msgid "Server url" +msgstr "Server URL'i" + +msgid "Select regions" +msgstr "Hududlarni tanlang" + +msgid "Add custom servers" +msgstr "Maxsus serverlar qo'shish" + +msgid "Add custom repository" +msgstr "Maxsus repozitoriy qo'shish" + +msgid "Loading mirror regions..." +msgstr "Ko'zgu hududlari yuklanmoqda..." + +msgid "Mirrors and repositories" +msgstr "Ko'zgular va repozitoriylar" + +msgid "Selected mirror regions" +msgstr "Tanlangan ko'zgu hududlari" + +msgid "Custom servers" +msgstr "Maxsus serverlar" + +msgid "Custom repositories" +msgstr "Maxsus repozitoriylar" + +msgid "Only ASCII characters are supported" +msgstr "Faqat ASCII belgilari qo'llab-quvvatlanadi" + +msgid "Show help" +msgstr "Yordamni ko'rsatish" + +msgid "Exit help" +msgstr "Yordamdan chiqish" + +msgid "Preview scroll up" +msgstr "Oldindan ko'rish (yuqoriga)" + +msgid "Preview scroll down" +msgstr "Oldindan ko'rish (pastga)" + +msgid "Move up" +msgstr "Yuqoriga" + +msgid "Move down" +msgstr "Pastga" + +msgid "Move right" +msgstr "O'ngga" + +msgid "Move left" +msgstr "Chapga" + +msgid "Jump to entry" +msgstr "Bandga o'tish" + +msgid "Skip selection (if available)" +msgstr "Tanlovni o'tkazib yuborish (agar mumkin bo'lsa)" + +msgid "Reset selection (if available)" +msgstr "Tanlovni bekor qilish (agar mumkin bo'lsa)" + +msgid "Select on single select" +msgstr "Tanlash (yakka tanlov)" + +msgid "Select on multi select" +msgstr "Tanlash (ko'p tanlov)" + +msgid "Reset" +msgstr "Bekor qilish" + +msgid "Skip selection menu" +msgstr "Tanlov menyusini o'tkazib yuborish" + +msgid "Start search mode" +msgstr "Qidiruv rejimini boshlash" + +msgid "Exit search mode" +msgstr "Qidiruv rejimidan chiqish" + +msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)" +msgstr "labwc sizning seat'ingizga (klaviatura, sichqoncha kabi qurilmalar to'plami) kirish huquqiga muhtoj" + +msgid "Choose an option to give labwc access to your hardware" +msgstr "labwc'ga qurilmalaringizga kirish huquqini berish variantini tanlang" + +msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)" +msgstr "niri sizning seat'ingizga (klaviatura, sichqoncha kabi qurilmalar to'plami) kirish huquqiga muhtoj" + +msgid "Choose an option to give niri access to your hardware" +msgstr "niri'ga qurilmalaringizga kirish huquqini berish variantini tanlang" + +msgid "Mark/Unmark as ESP" +msgstr "ESP deb belgilash/bekor qilish" + +msgid "Package group:" +msgstr "Paketlar guruhi:" + +msgid "Exit archinstall" +msgstr "Archinstall'dan chiqish" + +msgid "Reboot system" +msgstr "Tizimni qayta yuklash" + +msgid "chroot into installation for post-installation configurations" +msgstr "O'rnatishdan keyingi sozlamalar uchun tizimga chroot qilish" + +msgid "Installation completed" +msgstr "O'rnatish yakunlandi" + +msgid "What would you like to do next?" +msgstr "Keyin nima qilishni xohlaysiz?" + +#, python-brace-format +msgid "Select which mode to configure for \"{}\"" +msgstr "\"{}\" uchun qaysi rejimni sozlashni tanlang" + +msgid "Incorrect credentials file decryption password" +msgstr "Hisob ma'lumotlari faylining shifrini ochish paroli noto'g'ri" + +msgid "Incorrect password" +msgstr "Parol noto'g'ri" + +msgid "Credentials file decryption password" +msgstr "Hisob ma'lumotlari faylini shifrini ochish paroli" + +msgid "Do you want to encrypt the user_credentials.json file?" +msgstr "user_credentials.json faylidagi hisob ma'lumotlarini shifrlashni xohlaysizmi?" + +msgid "Credentials file encryption password" +msgstr "Hisob ma'lumotlari faylini shifrlash paroli" + +#, python-brace-format +msgid "Repositories: {}" +msgstr "Repozitoriylar: {}" + +msgid "New version available" +msgstr "Yangi versiya mavjud" + +msgid "Passwordless login" +msgstr "Parolsiz kirish" + +msgid "Second factor login" +msgstr "Ikki faktorli kirish" + +msgid "Bluetooth" +msgstr "Bluetooth" + +msgid "Would you like to configure Bluetooth?" +msgstr "Bluetooth'ni sozlashni xohlaysizmi?" + +msgid "Authentication" +msgstr "Autentifikatsiya" + +msgid "Applications" +msgstr "Ilovalar" + +msgid "U2F login method: " +msgstr "U2F orqali kirish usuli: " + +msgid "Passwordless sudo: " +msgstr "Parolsiz sudo: " + +#, python-brace-format +msgid "Btrfs snapshot type: {}" +msgstr "Btrfs snapshot turi: {}" + +msgid "Syncing the system..." +msgstr "Tizim sinxronizatsiya qilinmoqda..." + +msgid "Value cannot be empty" +msgstr "Qiymat bo'sh bo'lishi mumkin emas" + +msgid "Snapshot type" +msgstr "Snapshot turi" + +#, python-brace-format +msgid "Snapshot type: {}" +msgstr "Snapshot turi: {}" + +msgid "U2F login setup" +msgstr "U2F orqali kirishni sozlash" + +msgid "No U2F devices found" +msgstr "U2F qurilmalari topilmadi" + +msgid "U2F Login Method" +msgstr "U2F orqali kirish usuli" + +msgid "Enable passwordless sudo?" +msgstr "Parolsiz sudo yoqilsinmi?" + +#, python-brace-format +msgid "Setting up U2F device for user: {}" +msgstr "Foydalanuvchi {} uchun U2F qurilmasi sozlanmoqda" + +msgid "You may need to enter the PIN and then touch your U2F device to register it" +msgstr "Ro'yxatdan o'tkazish uchun PIN-kodni kiritib, U2F qurilmangizga teginishingiz kerak bo'lishi mumkin" + +#~ msgid "    Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues" +#~ msgstr "    Iltimos, ushbu muammo (va fayl) haqida https://github.com/archlinux/archinstall/issues manziliga xabar bering" diff --git a/archinstall/tui/menu_item.py b/archinstall/tui/menu_item.py index 3b8366b136..741e447d35 100644 --- a/archinstall/tui/menu_item.py +++ b/archinstall/tui/menu_item.py @@ -33,16 +33,16 @@ def get_value(self) -> Any: return self.value @classmethod - def yes(cls) -> 'MenuItem': + def yes(cls, action: Callable[[Any], Any] | None = None) -> 'MenuItem': if cls._yes is None: - cls._yes = cls(tr('Yes'), value=True) + cls._yes = cls(tr('Yes'), value=True, key='yes', action=action) return cls._yes @classmethod - def no(cls) -> 'MenuItem': + def no(cls, action: Callable[[Any], Any] | None = None) -> 'MenuItem': if cls._no is None: - cls._no = cls(tr('No'), value=True) + cls._no = cls(tr('No'), value=False, key='no', action=action) return cls._no @@ -223,6 +223,10 @@ def _default_suffix(self, item: MenuItem) -> str: return tr(' (default)') return '' + def set_action_for_all(self, action: Callable[[Any], Any]) -> None: + for item in self.items: + item.action = action + @cached_property def items(self) -> list[MenuItem]: pattern = self._filter_pattern.lower() diff --git a/archinstall/tui/ui/__init__.py b/archinstall/tui/ui/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/archinstall/tui/ui/components.py b/archinstall/tui/ui/components.py new file mode 100644 index 0000000000..4a7c5d061a --- /dev/null +++ b/archinstall/tui/ui/components.py @@ -0,0 +1,509 @@ +from __future__ import annotations + +from collections.abc import Awaitable, Callable +from typing import Any, TypeVar, override + +from textual import work +from textual.app import App, ComposeResult +from textual.binding import Binding +from textual.containers import Center, Horizontal, Vertical +from textual.events import Key +from textual.screen import Screen +from textual.widgets import Button, DataTable, Input, LoadingIndicator, Static + +from archinstall.lib.output import debug +from archinstall.lib.translationhandler import tr +from archinstall.tui.menu_item import MenuItem, MenuItemGroup +from archinstall.tui.ui.result import Result, ResultType + +ValueT = TypeVar('ValueT') + + +class BaseScreen(Screen[Result[ValueT]]): + BINDINGS = [ # noqa: RUF012 + Binding('escape', 'cancel_operation', 'Cancel', show=True), + Binding('ctrl+c', 'reset_operation', 'Reset', show=True), + ] + + def __init__(self, allow_skip: bool = False, allow_reset: bool = False): + super().__init__() + self._allow_skip = allow_skip + self._allow_reset = allow_reset + + def action_cancel_operation(self) -> None: + if self._allow_skip: + self.dismiss(Result(ResultType.Skip, None)) # type: ignore[unused-awaitable] + + def action_reset_operation(self) -> None: + if self._allow_reset: + self.dismiss(Result(ResultType.Reset, None)) # type: ignore[unused-awaitable] + + def _compose_header(self) -> ComposeResult: + """Compose the app header if global header text is available.""" + if tui.global_header: + yield Static(tui.global_header, classes='app-header') + + +class LoadingScreen(BaseScreen[None]): + CSS = """ + LoadingScreen { + align: center middle; + } + + .dialog { + align: center middle; + width: 100%; + border: none; + background: transparent; + } + + .header { + text-align: center; + margin-bottom: 1; + } + + LoadingIndicator { + align: center middle; + } + """ + + def __init__( + self, + timer: int, + header: str | None = None, + ): + super().__init__() + self._timer = timer + self._header = header + + async def run(self) -> Result[None]: + return await tui.show(self) + + @override + def compose(self) -> ComposeResult: + yield from self._compose_header() + + with Center(): + with Vertical(classes='dialog'): + if self._header: + yield Static(self._header, classes='header') + yield Center(LoadingIndicator()) # ensures indicator is centered too + + def on_mount(self) -> None: + self.set_timer(self._timer, self.action_pop_screen) + + def action_pop_screen(self) -> None: + self.dismiss() # type: ignore[unused-awaitable] + + +class ConfirmationScreen(BaseScreen[ValueT]): + BINDINGS = [ # noqa: RUF012 + Binding('l', 'focus_right', 'Focus right', show=True), + Binding('h', 'focus_left', 'Focus left', show=True), + Binding('right', 'focus_right', 'Focus right', show=True), + Binding('left', 'focus_left', 'Focus left', show=True), + ] + + CSS = """ + ConfirmationScreen { + align: center middle; + } + + .dialog-wrapper { + align: center middle; + height: 100%; + width: 100%; + } + + .dialog { + width: 80; + height: 10; + border: none; + background: transparent; + } + + .dialog-content { + padding: 1; + height: 100%; + } + + .message { + text-align: center; + margin-bottom: 1; + } + + .buttons { + align: center middle; + background: transparent; + } + + Button { + width: 4; + height: 3; + background: transparent; + margin: 0 1; + } + + Button.-active { + background: #1793D1; + color: white; + border: none; + text-style: none; + } + """ + + def __init__( + self, + group: MenuItemGroup, + header: str, + allow_skip: bool = False, + allow_reset: bool = False, + ): + super().__init__(allow_skip, allow_reset) + self._group = group + self._header = header + + async def run(self) -> Result[ValueT]: + return await tui.show(self) + + @override + def compose(self) -> ComposeResult: + yield from self._compose_header() + + with Center(classes='dialog-wrapper'): + with Vertical(classes='dialog'): + with Vertical(classes='dialog-content'): + yield Static(self._header, classes='message') + with Horizontal(classes='buttons'): + for item in self._group.items: + yield Button(item.text, id=item.key) + + def on_mount(self) -> None: + self.update_selection() + + def update_selection(self) -> None: + focused = self._group.focus_item + buttons = self.query(Button) + + if not focused: + return + + for button in buttons: + if button.id == focused.key: + button.add_class('-active') + button.focus() + else: + button.remove_class('-active') + + def action_focus_right(self) -> None: + self._group.focus_next() + self.update_selection() + + def action_focus_left(self) -> None: + self._group.focus_prev() + self.update_selection() + + def on_key(self, event: Key) -> None: + if event.key == 'enter': + item = self._group.focus_item + if not item: + return None + self.dismiss(Result(ResultType.Selection, item.value)) # type: ignore[unused-awaitable] + + +class NotifyScreen(ConfirmationScreen[ValueT]): + def __init__(self, header: str): + group = MenuItemGroup([MenuItem(tr('Ok'))]) + super().__init__(group, header) + + +class InputScreen(BaseScreen[str]): + CSS = """ + InputScreen { + } + + .dialog-wrapper { + align: center middle; + height: 100%; + width: 100%; + } + + .input-dialog { + width: 60; + height: 10; + border: none; + background: transparent; + } + + .input-content { + padding: 1; + height: 100%; + } + + .input-header { + text-align: center; + margin: 0 0; + color: white; + text-style: bold; + background: transparent; + } + + .input-prompt { + text-align: center; + margin: 0 0 1 0; + background: transparent; + } + + Input { + margin: 1 2; + border: solid $accent; + background: transparent; + height: 3; + } + + Input .input--cursor { + color: white; + } + + Input:focus { + border: solid $primary; + } + """ + + def __init__( + self, + header: str, + placeholder: str | None = None, + password: bool = False, + default_value: str | None = None, + allow_reset: bool = False, + allow_skip: bool = False, + ): + super().__init__(allow_skip, allow_reset) + self._header = header + self._placeholder = placeholder or '' + self._password = password + self._default_value = default_value or '' + self._allow_reset = allow_reset + self._allow_skip = allow_skip + + async def run(self) -> Result[str]: + return await tui.show(self) + + @override + def compose(self) -> ComposeResult: + yield from self._compose_header() + + with Center(classes='dialog-wrapper'): + with Vertical(classes='input-dialog'): + with Vertical(classes='input-content'): + yield Static(self._header, classes='input-header') + yield Input( + placeholder=self._placeholder, + password=self._password, + value=self._default_value, + id='main_input', + ) + + def on_mount(self) -> None: + input_field = self.query_one('#main_input', Input) + input_field.focus() + + def on_key(self, event: Key) -> None: + if event.key == 'enter': + input_field = self.query_one('#main_input', Input) + value = input_field.value + self.dismiss(Result(ResultType.Selection, value)) # type: ignore[unused-awaitable] + + +class TableSelectionScreen(BaseScreen[ValueT]): + BINDINGS = [ # noqa: RUF012 + Binding('j', 'cursor_down', 'Down', show=True), + Binding('k', 'cursor_up', 'Up', show=True), + ] + + CSS = """ + TableSelectionScreen { + align: center middle; + background: transparent; + } + + DataTable { + height: auto; + width: auto; + border: none; + background: transparent; + } + + DataTable .datatable--header { + background: transparent; + border: solid; + } + + .content-container { + width: auto; + min-height: 10; + min-width: 40; + align: center middle; + background: transparent; + } + + .header { + text-align: center; + margin-bottom: 1; + } + + LoadingIndicator { + height: auto; + background: transparent; + } + """ + + def __init__( + self, + header: str | None = None, + data: list[ValueT] | None = None, + data_callback: Callable[[], Awaitable[list[ValueT]]] | None = None, + allow_reset: bool = False, + allow_skip: bool = False, + loading_header: str | None = None, + ): + super().__init__(allow_skip, allow_reset) + self._header = header + self._data = data + self._data_callback = data_callback + self._loading_header = loading_header + + if self._data is None and self._data_callback is None: + raise ValueError('Either data or data_callback must be provided') + + async def run(self) -> Result[ValueT]: + return await tui.show(self) + + def action_cursor_down(self) -> None: + table = self.query_one(DataTable) + if table.cursor_row is not None: + next_row = min(table.cursor_row + 1, len(table.rows) - 1) + table.move_cursor(row=next_row, column=table.cursor_column or 0) + + def action_cursor_up(self) -> None: + table = self.query_one(DataTable) + if table.cursor_row is not None: + prev_row = max(table.cursor_row - 1, 0) + table.move_cursor(row=prev_row, column=table.cursor_column or 0) + + @override + def compose(self) -> ComposeResult: + yield from self._compose_header() + + with Center(): + with Vertical(classes='content-container'): + if self._header: + yield Static(self._header, classes='header', id='header') + + if self._loading_header: + yield Static(self._loading_header, classes='header', id='loading-header') + + yield LoadingIndicator(id='loader') + yield DataTable(id='data_table') + + def on_mount(self) -> None: + self._display_header(True) + data_table = self.query_one(DataTable) + data_table.cell_padding = 2 + + if self._data: + self._put_data_to_table(data_table, self._data) + else: + self._load_data(data_table) + + @work + async def _load_data(self, table: DataTable[ValueT]) -> None: + assert self._data_callback is not None + data = await self._data_callback() + self._put_data_to_table(table, data) + + def _display_header(self, is_loading: bool) -> None: + try: + loading_header = self.query_one('#loading-header', Static) + header = self.query_one('#header', Static) + loading_header.display = is_loading + header.display = not is_loading + except Exception: + pass + + def _put_data_to_table(self, table: DataTable[ValueT], data: list[ValueT]) -> None: + if not data: + self.dismiss(Result(ResultType.Selection, None)) # type: ignore[unused-awaitable] + return + + cols = list(data[0].table_data().keys()) # type: ignore[attr-defined] + table.add_columns(*cols) + + for d in data: + row_values = list(d.table_data().values()) # type: ignore[attr-defined] + table.add_row(*row_values, key=d) # type: ignore[arg-type] + + table.cursor_type = 'row' + table.display = True + + loader = self.query_one('#loader') + loader.display = False + self._display_header(False) + table.focus() + + def on_data_table_row_selected(self, event: DataTable.RowSelected) -> None: + data: ValueT = event.row_key.value # type: ignore[assignment] + self.dismiss(Result(ResultType.Selection, data)) # type: ignore[unused-awaitable] + + +class TApp(App[Any]): + CSS = """ + .app-header { + dock: top; + height: auto; + width: 100%; + content-align: center middle; + background: $primary; + color: white; + text-style: bold; + } + """ + + def __init__(self) -> None: + super().__init__(ansi_color=True) + self._main = None + self._global_header: str | None = None + + @property + def global_header(self) -> str | None: + return self._global_header + + @global_header.setter + def global_header(self, value: str | None) -> None: + self._global_header = value + + def set_main(self, main: Any) -> None: + self._main = main + + def on_mount(self) -> None: + self._run_worker() + + @work + async def _run_worker(self) -> None: + try: + if self._main is not None: + await self._main.run() # type: ignore[unreachable] + except Exception as err: + debug(f'Error while running main app: {err}') + raise err from err + + @work + async def _show_async(self, screen: Screen[Result[ValueT]]) -> Result[ValueT]: + return await self.push_screen_wait(screen) + + async def show(self, screen: Screen[Result[ValueT]]) -> Result[ValueT]: + return await self._show_async(screen).wait() + + +tui = TApp() diff --git a/archinstall/tui/ui/result.py b/archinstall/tui/ui/result.py new file mode 100644 index 0000000000..c4e92468a5 --- /dev/null +++ b/archinstall/tui/ui/result.py @@ -0,0 +1,26 @@ +from dataclasses import dataclass +from enum import Enum, auto +from typing import cast + + +class ResultType(Enum): + Selection = auto() + Skip = auto() + Reset = auto() + + +@dataclass +class Result[ValueT]: + type_: ResultType + _data: ValueT | list[ValueT] | None + + def has_data(self) -> bool: + return self._data is not None + + def value(self) -> ValueT: + assert type(self._data) is not list and self._data is not None + return cast(ValueT, self._data) + + def values(self) -> list[ValueT]: + assert type(self._data) is list + return cast(list[ValueT], self._data) diff --git a/pyproject.toml b/pyproject.toml index 40e6a3cb92..d3102467a9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "archinstall" -version = "3.0.10" +version = "3.0.11" description = "Arch Linux installer - guided, templates etc." authors = [ {name = "Anton Hvornum", email = "anton@hvornum.se"}, @@ -19,8 +19,10 @@ classifiers = [ ] dependencies = [ "pyparted>=3.13.0", - "pydantic==2.11.9", + "pydantic==2.12.3", "cryptography>=45.0.7", + "textual>=5.3.0", + "pytest-mock>=3.15.1", ] [project.urls] @@ -34,9 +36,8 @@ dev = [ "mypy==1.18.2", "flake8==7.3.0", "pre-commit==4.3.0", - "ruff==0.13.1", - "pylint==3.3.8", - "pylint-pydantic==0.3.5", + "ruff==0.14.1", + "pylint==4.0.2", "pytest==8.4.2", ] doc = ["sphinx"] @@ -137,7 +138,6 @@ ignore-paths = [ "^build/", "^docs/", ] -load-plugins = ["pylint_pydantic"] persistent = false py-version = "3.12" recursive = true From 5b5e387e7290aec6bb81cf05ddbd3e0d87afafc8 Mon Sep 17 00:00:00 2001 From: Daniel Girtler Date: Tue, 21 Oct 2025 21:29:53 +1100 Subject: [PATCH 2/2] Update --- archinstall/__init__.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/archinstall/__init__.py b/archinstall/__init__.py index ee39ddc8ac..0cd69865b2 100644 --- a/archinstall/__init__.py +++ b/archinstall/__init__.py @@ -49,10 +49,6 @@ def _check_online() -> None: if not success: exit(0) - if not arch_config_handler.args.skip_wifi_check: - if not wifi_handler.setup(): - exit(0) - def _fetch_arch_db() -> None: info('Fetching Arch Linux package database...')