Repository: archlinux/archinstall
Branch: master
Commit: 1764b4971d8a
Files: 291
Total size: 2.7 MB
Directory structure:
gitextract_v4no44_h/
├── .editorconfig
├── .flake8
├── .github/
│ ├── CODEOWNERS
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE/
│ │ ├── 01_bug.yml
│ │ └── 02_feature.yml
│ └── workflows/
│ ├── bandit.yaml
│ ├── flake8.yaml
│ ├── github-pages.yml
│ ├── iso-build.yaml
│ ├── mypy.yaml
│ ├── pylint.yaml
│ ├── pytest.yaml
│ ├── python-build.yml
│ ├── python-publish.yml
│ ├── ruff-format.yaml
│ ├── ruff-lint.yaml
│ └── translation-check.yaml
├── .gitignore
├── .gitlab-ci.yml
├── .pre-commit-config.yaml
├── .pypirc
├── .readthedocs.yaml
├── CONTRIBUTING.md
├── LICENSE
├── PKGBUILD
├── README.md
├── archinstall/
│ ├── __init__.py
│ ├── __main__.py
│ ├── applications/
│ │ ├── audio.py
│ │ ├── bluetooth.py
│ │ ├── firewall.py
│ │ ├── power_management.py
│ │ └── print_service.py
│ ├── default_profiles/
│ │ ├── __init__.py
│ │ ├── desktop.py
│ │ ├── desktops/
│ │ │ ├── __init__.py
│ │ │ ├── awesome.py
│ │ │ ├── bspwm.py
│ │ │ ├── budgie.py
│ │ │ ├── cinnamon.py
│ │ │ ├── cosmic.py
│ │ │ ├── cutefish.py
│ │ │ ├── deepin.py
│ │ │ ├── enlightenment.py
│ │ │ ├── gnome.py
│ │ │ ├── hyprland.py
│ │ │ ├── i3.py
│ │ │ ├── labwc.py
│ │ │ ├── lxqt.py
│ │ │ ├── mate.py
│ │ │ ├── niri.py
│ │ │ ├── plasma.py
│ │ │ ├── qtile.py
│ │ │ ├── river.py
│ │ │ ├── sway.py
│ │ │ ├── xfce4.py
│ │ │ └── xmonad.py
│ │ ├── minimal.py
│ │ ├── profile.py
│ │ ├── server.py
│ │ ├── servers/
│ │ │ ├── __init__.py
│ │ │ ├── cockpit.py
│ │ │ ├── docker.py
│ │ │ ├── httpd.py
│ │ │ ├── lighttpd.py
│ │ │ ├── mariadb.py
│ │ │ ├── nginx.py
│ │ │ ├── postgresql.py
│ │ │ ├── sshd.py
│ │ │ └── tomcat.py
│ │ └── xorg.py
│ ├── lib/
│ │ ├── __init__.py
│ │ ├── applications/
│ │ │ ├── __init__.py
│ │ │ ├── application_handler.py
│ │ │ └── application_menu.py
│ │ ├── args.py
│ │ ├── authentication/
│ │ │ ├── __init__.py
│ │ │ ├── authentication_handler.py
│ │ │ └── authentication_menu.py
│ │ ├── boot.py
│ │ ├── bootloader/
│ │ │ ├── __init__.py
│ │ │ └── bootloader_menu.py
│ │ ├── command.py
│ │ ├── configuration.py
│ │ ├── crypt.py
│ │ ├── disk/
│ │ │ ├── __init__.py
│ │ │ ├── device_handler.py
│ │ │ ├── disk_menu.py
│ │ │ ├── encryption_menu.py
│ │ │ ├── fido.py
│ │ │ ├── filesystem.py
│ │ │ ├── lvm.py
│ │ │ ├── partitioning_menu.py
│ │ │ ├── subvolume_menu.py
│ │ │ └── utils.py
│ │ ├── exceptions.py
│ │ ├── global_menu.py
│ │ ├── hardware.py
│ │ ├── installer.py
│ │ ├── interactions/
│ │ │ ├── __init__.py
│ │ │ ├── disk_conf.py
│ │ │ ├── general_conf.py
│ │ │ └── system_conf.py
│ │ ├── locale/
│ │ │ ├── __init__.py
│ │ │ ├── locale_menu.py
│ │ │ └── utils.py
│ │ ├── luks.py
│ │ ├── menu/
│ │ │ ├── __init__.py
│ │ │ ├── abstract_menu.py
│ │ │ ├── helpers.py
│ │ │ ├── list_manager.py
│ │ │ ├── menu_helper.py
│ │ │ └── util.py
│ │ ├── mirror/
│ │ │ ├── __init__.py
│ │ │ ├── mirror_handler.py
│ │ │ └── mirror_menu.py
│ │ ├── models/
│ │ │ ├── __init__.py
│ │ │ ├── application.py
│ │ │ ├── authentication.py
│ │ │ ├── bootloader.py
│ │ │ ├── device.py
│ │ │ ├── locale.py
│ │ │ ├── mirrors.py
│ │ │ ├── network.py
│ │ │ ├── packages.py
│ │ │ ├── profile.py
│ │ │ └── users.py
│ │ ├── network/
│ │ │ ├── __init__.py
│ │ │ ├── network_handler.py
│ │ │ ├── network_menu.py
│ │ │ ├── wifi_handler.py
│ │ │ └── wpa_supplicant.py
│ │ ├── networking.py
│ │ ├── output.py
│ │ ├── packages/
│ │ │ ├── __init__.py
│ │ │ ├── packages.py
│ │ │ └── util.py
│ │ ├── pacman/
│ │ │ ├── __init__.py
│ │ │ ├── config.py
│ │ │ └── pacman.py
│ │ ├── plugins.py
│ │ ├── profile/
│ │ │ ├── __init__.py
│ │ │ ├── profile_menu.py
│ │ │ └── profiles_handler.py
│ │ ├── translationhandler.py
│ │ ├── user/
│ │ │ ├── __init__.py
│ │ │ └── user_menu.py
│ │ ├── utils/
│ │ │ ├── __init__.py
│ │ │ ├── encoding.py
│ │ │ └── util.py
│ │ └── version.py
│ ├── locales/
│ │ ├── README.md
│ │ ├── ar/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── base.pot
│ │ ├── ca/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── cs/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── de/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── el/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── en/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── es/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── et/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── fi/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── fr/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── ga/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── gl/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── he/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── hi/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── hu/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── id/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── it/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── ja/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── ka/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── ko/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── ku/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── languages.json
│ │ ├── locales_generator.sh
│ │ ├── lt/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── ne/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── nl/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── pl/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── pt/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── pt_BR/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── ro/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── ru/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── sv/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── ta/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── tr/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── uk/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── ur/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── uz/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ ├── zh-CN/
│ │ │ └── LC_MESSAGES/
│ │ │ ├── base.mo
│ │ │ └── base.po
│ │ └── zh-TW/
│ │ └── LC_MESSAGES/
│ │ ├── base.mo
│ │ └── base.po
│ ├── main.py
│ ├── scripts/
│ │ ├── __init__.py
│ │ ├── guided.py
│ │ ├── minimal.py
│ │ └── only_hd.py
│ └── tui/
│ ├── __init__.py
│ ├── curses_menu.py
│ ├── help.py
│ ├── menu_item.py
│ ├── result.py
│ ├── types.py
│ └── ui/
│ ├── __init__.py
│ ├── components.py
│ ├── menu_item.py
│ └── result.py
├── docs/
│ ├── Makefile
│ ├── README.md
│ ├── _static/
│ │ ├── logo.pride.psd
│ │ ├── logo.psd
│ │ └── style.css
│ ├── _templates/
│ │ └── layout.html
│ ├── archinstall/
│ │ ├── Installer.rst
│ │ └── plugins.rst
│ ├── cli_parameters/
│ │ └── config/
│ │ ├── config_options.csv
│ │ ├── custom_commands.rst
│ │ ├── disk_config.rst
│ │ ├── disk_encryption.rst
│ │ └── manual_options.csv
│ ├── conf.py
│ ├── examples/
│ │ └── python.rst
│ ├── flowcharts/
│ │ └── DiskSelectionProcess.drawio
│ ├── help/
│ │ ├── discord.rst
│ │ ├── known_issues.rst
│ │ └── report_bug.rst
│ ├── index.rst
│ ├── installing/
│ │ ├── guided.rst
│ │ └── python.rst
│ └── pull_request_template.md
├── examples/
│ ├── auto_discovery_mounted.py
│ ├── config-sample.json
│ ├── creds-sample.json
│ ├── custom-command-sample.json
│ ├── disk_layouts-sample.json
│ └── full_automated_installation.py
├── pyproject.toml
└── tests/
├── __init__.py
├── conftest.py
├── data/
│ ├── __init__.py
│ ├── mirrorlists/
│ │ ├── test_multiple_countries
│ │ ├── test_no_country
│ │ └── test_with_country
│ ├── test_config.json
│ ├── test_creds.json
│ ├── test_deprecated_audio_config.json
│ ├── test_deprecated_creds_config.json
│ ├── test_deprecated_mirror_config.json
│ └── test_encrypted_creds.json
├── test_args.py
├── test_configuration_output.py
├── test_mirrorlist.py
└── test_password_strength.py
================================================
FILE CONTENTS
================================================
================================================
FILE: .editorconfig
================================================
# http://editorconfig.org
# See coding conventions in CONTRIBUTING.md
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
[*.py]
indent_style = tab
indent_size = 4
trim_trailing_whitespace = true
================================================
FILE: .flake8
================================================
[flake8]
count = True
ignore = W191,W503,E704,E203
max-complexity = 40
max-line-length = 160
show-source = True
statistics = True
exclude = .git,__pycache__,build,docs,actions-runner
================================================
FILE: .github/CODEOWNERS
================================================
# As per https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners#example-of-a-codeowners-file
* @Torxed
# Any PKGBUILD changes should tag grazzolini
/PKGBUILDs/ @grazzolini
/PKGBUILD @grazzolini
================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms
github: [archlinux]
custom: ['https://archlinux.org/donate/']
================================================
FILE: .github/ISSUE_TEMPLATE/01_bug.yml
================================================
name: bug report
description: archinstall crashed or could not install properly?
body:
- type: markdown
attributes:
value: >
Please read the ~5 known issues first:
https://archinstall.archlinux.page/help/known_issues.html
- type: markdown
attributes:
value: >
**NOTE: Always try the latest official ISO**
- type: input
id: iso
attributes:
label: Which ISO version are you using?
description: 'Always use the latest ISO version'
placeholder: '"2024-12-01" or "Dec 1:st"'
validations:
required: true
- type: textarea
id: bug-report
attributes:
label: The installation log
description: 'note: located at `/var/log/archinstall/install.log`'
placeholder: |
Hardware model detected: Dell Inc. Precision 7670; UEFI mode: True
Processor model detected: 12th Gen Intel(R) Core(TM) i7-12850HX
Memory statistics: 31111048 available out of 32545396 total installed
Disk states before installing: {'blockdevices': ... }
Testing connectivity to the Arch Linux mirrors ...
...
render: json
validations:
required: true
- type: markdown
attributes:
value: >
**Note**: Assuming you have network connectivity,
you can easily post the installation log using the following command:
`curl -F'file=@/var/log/archinstall/install.log' https://0x0.st`
- type: textarea
id: freeform
attributes:
label: describe the problem
description: >
Please describe your issue as best as you can.
And please consider personal preferences vs what the recommended
steps/values are in https://wiki.archlinux.org/title/Installation_guide
as we try to abide by them as best we can.
value: |
#### Description of the issue
I was installing on X hardware ...
Then X Y Z happened and archinstall crashed ...
#### Virtual machine config:
```xml
my-arch-machine
...
```
```console
/usr/bin/qemu-system-x86_64 -name guest=my-arch-machine,debug-threads=on -object ...
```
validations:
required: true
- type: markdown
attributes:
value: >
**Note**: Feel free to modify the textarea above as you wish.
But it will grately help us in testing if we can generate the specific qemu command line,
for instance via:
`sudo virsh domxml-to-native qemu-argv --domain my-arch-machine`
================================================
FILE: .github/ISSUE_TEMPLATE/02_feature.yml
================================================
name: feature request
description: a new feature!
body:
- type: markdown
attributes:
value: >
Please read our short mission statement before requesting more features:
https://github.com/archlinux/archinstall?tab=readme-ov-file#mission-statement
- type: textarea
id: freeform
attributes:
label: describe the request
description: >
Feel free to write any feature you think others might benefit from:
validations:
required: true
================================================
FILE: .github/workflows/bandit.yaml
================================================
on: [ push, pull_request ]
name: Bandit security checkup
jobs:
bandit:
runs-on: ubuntu-latest
container:
image: archlinux/archlinux:latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- run: pacman --noconfirm -Syu bandit
- name: Security checkup with Bandit
run: bandit -r archinstall || exit 0
================================================
FILE: .github/workflows/flake8.yaml
================================================
on: [ push, pull_request ]
name: flake8 linting
jobs:
flake8:
runs-on: ubuntu-latest
container:
image: archlinux/archlinux:latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Prepare arch
run: |
pacman-key --init
pacman --noconfirm -Sy archlinux-keyring
pacman --noconfirm -Syyu
pacman --noconfirm -Sy python-pip python-pyparted pkgconfig gcc
- run: pip install --break-system-packages --upgrade pip
# this will install the exact version of flake8 that is in the pyproject.toml file
- name: Install archinstall dependencies
run: pip install --break-system-packages .[dev]
- run: python --version
- run: flake8 --version
- name: Lint with flake8
run: flake8
================================================
FILE: .github/workflows/github-pages.yml
================================================
name: documentation
on:
push:
paths:
- "docs/**"
pull_request:
paths:
- "docs/**"
workflow_dispatch:
permissions:
contents: write
jobs:
docs:
runs-on: ubuntu-latest
container:
image: archlinux/archlinux:latest
options: --privileged
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
- name: Install pre-dependencies
run: |
pacman -Sy --noconfirm tree git python-pyparted python-setuptools python-sphinx python-sphinx_rtd_theme python-build python-installer python-wheel
- name: Sphinx build
run: |
sphinx-build docs _build
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4
if: ${{ github.event_name != 'pull_request' }}
with:
publish_branch: gh-pages
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: _build/
force_orphan: true
enable_jekyll: false # This is required to preserve _static (and thus the theme)
cname: archinstall.archlinux.page
================================================
FILE: .github/workflows/iso-build.yaml
================================================
# This workflow will build an Arch Linux ISO file with the commit on it
name: Build Arch ISO with ArchInstall Commit
on:
push:
branches:
- master
- main # In case we adopt this convention in the future
pull_request:
paths-ignore:
- 'docs/**'
- '**.editorconfig'
- '**.gitignore'
- '**.md'
- 'LICENSE'
- 'PKGBUILD'
release:
types:
- created
jobs:
build:
runs-on: ubuntu-latest
container:
image: archlinux/archlinux:latest
options: --privileged
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- run: pwd
- run: find .
- run: cat /etc/os-release
- run: pacman-key --init
- run: pacman --noconfirm -Sy archlinux-keyring
- run: ./build_iso.sh
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7
with:
name: Arch Live ISO
path: /tmp/archlive/out/*.iso
================================================
FILE: .github/workflows/mypy.yaml
================================================
on: [ push, pull_request ]
name: mypy type checking
jobs:
mypy:
runs-on: ubuntu-latest
container:
image: archlinux/archlinux:latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Prepare arch
run: |
pacman-key --init
pacman --noconfirm -Sy archlinux-keyring
pacman --noconfirm -Syyu
pacman --noconfirm -Sy python-pip python-pyparted pkgconfig gcc
- run: pip install --break-system-packages --upgrade pip
# this will install the exact version of mypy that is in the pyproject.toml file
- name: Install archinstall dependencies
run: pip install --break-system-packages .[dev]
- run: python --version
- run: mypy --version
- name: run mypy
run: mypy --config-file pyproject.toml
================================================
FILE: .github/workflows/pylint.yaml
================================================
on: [ push, pull_request ]
name: Pylint linting
jobs:
pylint:
runs-on: ubuntu-latest
container:
image: archlinux/archlinux:latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Prepare arch
run: |
pacman-key --init
pacman --noconfirm -Sy archlinux-keyring
pacman --noconfirm -Syyu
pacman --noconfirm -Sy python-pip python-pyparted pkgconfig gcc
- run: pip install --break-system-packages --upgrade pip
- name: Install Pylint
run: pip install --break-system-packages .[dev]
- run: python --version
- run: pylint --version
- name: Lint with Pylint
run: pylint .
================================================
FILE: .github/workflows/pytest.yaml
================================================
on: [ push, pull_request ]
name: pytest test validation
jobs:
pytest:
runs-on: ubuntu-latest
container:
image: archlinux/archlinux:latest
options: --privileged
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Prepare arch
run: |
pacman-key --init
pacman --noconfirm -Sy archlinux-keyring
pacman --noconfirm -Syyu
pacman --noconfirm -Sy python-pip python-pyparted pkgconfig gcc
- run: pip install --break-system-packages --upgrade pip
- name: Install archinstall dependencies
run: pip install --break-system-packages .[dev]
- name: Test with pytest
run: pytest
================================================
FILE: .github/workflows/python-build.yml
================================================
# This workflow will build Python packages on every commit.
name: Build archinstall
on: [ push, pull_request ]
jobs:
deploy:
runs-on: ubuntu-latest
container:
image: archlinux/archlinux:latest
options: --privileged
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Prepare arch
run: |
pacman-key --init
pacman --noconfirm -Sy archlinux-keyring
pacman --noconfirm -Syyu
pacman --noconfirm -Sy python-uv python-setuptools python-pip
pacman --noconfirm -Sy python-pyparted python-pydantic python-textual
- name: Remove existing archinstall (if any)
run:
uv pip uninstall archinstall --break-system-packages --system
- name: Build archinstall
run: uv build --no-build-isolation --wheel
- name: Install archinstall
run: |
uv pip install dist/*.whl --break-system-packages --system --no-build --no-deps
- name: Run archinstall
run: |
python -V
archinstall --script guided -v
archinstall --script only_hd -v
archinstall --script minimal -v
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7
with:
name: archinstall
path: dist/*
================================================
FILE: .github/workflows/python-publish.yml
================================================
# This workflow will upload a Python Package when a release is created
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
name: Upload archinstall to PyPi
on:
release:
types: [ published ]
jobs:
deploy:
runs-on: ubuntu-latest
permissions:
# IMPORTANT: this permission is mandatory for Trusted Publishing
id-token: write
container:
image: archlinux/archlinux:latest
options: --privileged
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Prepare arch
run: |
pacman-key --init
pacman --noconfirm -Sy archlinux-keyring
pacman --noconfirm -Syyu
pacman --noconfirm -Sy python python-uv python-setuptools python-pip python-pyparted python-pydantic python-textual
- name: Build archinstall
run: |
uv build --no-build-isolation --wheel
- name: Publish archinstall to PyPi
run: |
uv publish --trusted-publishing always
================================================
FILE: .github/workflows/ruff-format.yaml
================================================
on: [ push, pull_request ]
name: ruff check formatting
jobs:
ruff_format_check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: astral-sh/ruff-action@4919ec5cf1f49eff0871dbcea0da843445b837e6 # v3.6.1
- run: ruff format --diff
================================================
FILE: .github/workflows/ruff-lint.yaml
================================================
on: [ push, pull_request ]
name: ruff check linting
jobs:
ruff:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: astral-sh/ruff-action@4919ec5cf1f49eff0871dbcea0da843445b837e6 # v3.6.1
================================================
FILE: .github/workflows/translation-check.yaml
================================================
#on:
# push:
# paths:
# - 'archinstall/locales/**'
# pull_request:
# paths:
# - 'archinstall/locales/**'
#name: Verify local_generate script was run on translation changes
#jobs:
# translation-check:
# runs-on: ubuntu-latest
# container:
# image: archlinux/archlinux:latest
# steps:
# - uses: actions/checkout@v4
# - run: pacman --noconfirm -Syu python git diffutils
# - name: Verify all translation scripts are up to date
# run: |
# cd ..
# cp -r archinstall archinstall_orig
# cd archinstall/archinstall/locales
# bash locales_generator.sh 1> /dev/null
# cd ../../..
# git diff \
# --quiet --no-index --name-only \
# archinstall_orig/archinstall/locales \
# archinstall/archinstall/locales \
# || (echo "Translation files have not been updated after translation, please run ./locales_generator.sh once more and commit" && exit 1)
================================================
FILE: .gitignore
================================================
**/**__pycache__
SAFETY_LOCK
**/**old.*
**/**.img
**/**pwfile
**/**build
**/**dist
**/**.egg*
**/**.sh
!archinstall/locales/locales_generator.sh
**/**.egg-info/
**/**build/
**/**src/
**/**pkg/
**/**dist/
**/**archinstall.build/
**/**archinstall-v*/
**/**.pkg.*.xz
**/**archinstall-*.tar.gz
**/**.zst
**/**.network
**/**.target
**/**.qcow2
**/**.log
**/**.fd
/test*.py
**/archiso
/guided.py
venv
.venv
.idea/**
**/install.log
.DS_Store
**/cmd_history.txt
**/*.*~
/*.sig
/*.json
requirements.txt
/.gitconfig
/actions-runner
/cmd_output.txt
node_modules/
uv.lock
================================================
FILE: .gitlab-ci.yml
================================================
# This file contains GitLab CI/CD configuration for the ArchInstall project.
# It defines several jobs that get run when a new commit is made, and is comparable to the GitHub workflows.
# There is an expectation that a runner exists that has the --privileged flag enabled for the build ISO job to run correctly.
# These jobs should leverage the same tag as that runner. If necessary, change the tag from 'docker' to the one it uses.
# All jobs will be run in the official archlinux container image, so we will declare that here.
image: archlinux/archlinux:latest
# This can be used to handle common actions. In this case, we do a pacman -Sy to make sure repos are ready to use.
before_script:
- pacman -Sy
stages:
- lint
- test
- build
- publish
mypy:
stage: lint
tags:
- docker
script:
- pacman --noconfirm -Syu python mypy
- mypy . --ignore-missing-imports || exit 0
flake8:
stage: lint
tags:
- docker
script:
- pacman --noconfirm -Syu python python-pip
- python -m pip install --upgrade pip
- pip install flake8
- flake8 . --count --select=E9,F63,F7 --show-source --statistics
- flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
# We currently do not have unit tests implemented but this stage is written in anticipation of their future usage.
# When a stage name is preceded with a '.' it's treated as "disabled" by GitLab and is not executed, so it's fine for it to be declared.
.pytest:
stage: test
tags:
- docker
script:
- pacman --noconfirm -Syu python python-pip
- python -m pip install --upgrade pip
- pip install pytest
- pytest
# This stage might fail with exit code 137 on a shared runner. This is probably due to the CPU/memory consumption needed to run the build.
build_iso:
stage: build
tags:
- docker
script:
- pwd
- find .
- cat /etc/os-release
- mkdir -p /tmp/archlive/airootfs/root/archinstall-git; cp -r . /tmp/archlive/airootfs/root/archinstall-git
- echo "pip uninstall archinstall -y; cd archinstall-git; python setup.py install" > /tmp/archlive/airootfs/root/.zprofile
- echo "echo \"This is an unofficial ISO for development and testing of archinstall. No support will be provided.\"" >> /tmp/archlive/airootfs/root/.zprofile
- echo "echo \"This ISO was built from Git SHA $CI_COMMIT_SHA\"" >> /tmp/archlive/airootfs/root/.zprofile
- echo "echo \"Type archinstall to launch the installer.\"" >> /tmp/archlive/airootfs/root/.zprofile
- cat /tmp/archlive/airootfs/root/.zprofile
- pacman --noconfirm -S git archiso
- cp -r /usr/share/archiso/configs/releng/* /tmp/archlive
- echo -e "git\npython\npython-pip\npython-setuptools" >> /tmp/archlive/packages.x86_64
- find /tmp/archlive
- cd /tmp/archlive; mkarchiso -v -w work/ -o out/ ./
artifacts:
name: "Arch Live ISO"
paths:
- /tmp/archlive/out/*.iso
expire_in: 1 week
## This job only runs when a tag is created on the master branch. This is because we do not want to try to publish to PyPi every time we commit.
## The following CI/CD variables need to be set to the PyPi username and password in the GitLab project's settings for this stage to work.
# * FLIT_USERNAME
# * FLIT_PASSWORD
publish_pypi:
stage: publish
tags:
- docker
script:
- pacman --noconfirm -S python python-pip
- python -m pip install --upgrade pip
- pip install setuptools wheel flit
- flit
only:
- tags
except:
- branches
================================================
FILE: .pre-commit-config.yaml
================================================
default_stages: ['pre-commit']
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.15.7
hooks:
# fix unused imports and sort them
- id: ruff
args: ["--extend-select", "I", "--fix"]
# format the code
- id: ruff-format
# run the linter
- id: ruff
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
# general hooks:
- id: check-added-large-files # Prevent giant files from being committed
args: ['--maxkb=5000']
- id: check-merge-conflict # Check for files that contain merge conflict strings
- id: check-symlinks # Checks for symlinks which do not point to anything
- id: check-yaml # Attempts to load all yaml files to verify syntax
- id: destroyed-symlinks # Detects symlinks which are changed to regular files
- id: detect-private-key # Checks for the existence of private keys
# Python specific hooks:
- id: check-ast # Simply check whether files parse as valid python
- id: check-docstring-first # Checks for a common error of placing code before the docstring
- repo: https://github.com/pycqa/flake8
rev: 7.3.0
hooks:
- id: flake8
args: [--config=.flake8]
fail_fast: true
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.19.1
hooks:
- id: mypy
args: [
'--config-file=pyproject.toml'
]
fail_fast: true
additional_dependencies:
- pydantic
- pytest
- cryptography
- textual
- repo: local
hooks:
- id: pylint
name: pylint
entry: pylint
language: system
types: [python]
fail_fast: true
require_serial: true
================================================
FILE: .pypirc
================================================
[distutils]
index-servers =
pypi
[pypi]
repository = https://upload.pypi.org/legacy/
================================================
FILE: .readthedocs.yaml
================================================
# .readthedocs.yml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
version: 2
sphinx:
builder: html
configuration: docs/conf.py
fail_on_warning: true
build:
os: "ubuntu-22.04"
tools:
python: "3.12"
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to archinstall
Any contributions through pull requests are welcome as this project aims to be a community based project to ease some Arch Linux installation steps.
Bear in mind that in the future this repo might be transferred to the official [GitLab repo under Arch Linux](http://gitlab.archlinux.org/archlinux/) *(if GitLab becomes open to the general public)*.
Therefore, guidelines and style changes to the code might come into effect as well as guidelines surrounding bug reporting and discussions.
## Branches
`master` is currently the default branch, and that's where all future feature work is being done, this means that `master` is a living entity and will most likely never be in a fully stable state.
For stable releases, please see the tagged commits.
Patch releases will be done against their own branches, branched from stable tagged releases and will be named according to the version it will become on release.
*(Patches to `v2.1.4` will be done on branch `v2.1.5` for instance)*.
## Discussions
Currently, questions, bugs and suggestions should be reported through [GitHub issue tracker](https://github.com/archlinux/archinstall/issues).
For less formal discussions there is also an [archinstall Discord server](https://discord.gg/aDeMffrxNg).
## Coding convention
ArchInstall's goal is to follow [PEP8](https://www.python.org/dev/peps/pep-0008/) as best as it can with some minor exceptions.
The exceptions to PEP8 are:
* Archinstall uses [tabs instead of spaces](https://www.python.org/dev/peps/pep-0008/#tabs-or-spaces) simply to make it
easier for non-IDE developers to navigate the code *(Tab display-width should be equal to 4 spaces)*. Exception to the
rule are comments that need fine-tuned indentation for documentation purposes.
* [Line length](https://www.python.org/dev/peps/pep-0008/#maximum-line-length) a maximum line length is enforced via flake8 with 160 characters
* Archinstall should always be saved with **Unix-formatted line endings** and no other platform-specific formats.
* [String quotes](https://www.python.org/dev/peps/pep-0008/#string-quotes) follow PEP8, the exception being when
creating formatted strings, double-quoted strings are *preferred* but not required on the outer edges *(
Example: `f"Welcome {name}"` rather than `f'Welcome {name}'`)*.
Most of these style guidelines have been put into place after the fact *(in an attempt to clean up the code)*.
There might therefore be older code which does not follow the coding convention and the code is subject to change.
## Git hooks
`archinstall` ships pre-commit hooks that make it easier to run checks such as `mypy`, `ruff check`, and `flake8` locally.
The checks are listed in `.pre-commit-config.yaml` and can be installed via
```
pre-commit install
```
This will install the pre-commit hook and run it every time a `git commit` is executed.
## Documentation
If you'd like to contribute to the documentation, refer to [this guide](docs/README.md) on how to build the documentation locally.
## Submitting Changes
Archinstall uses GitHub's pull-request workflow and all contributions in terms of code should be done through pull requests.
Anyone interested in archinstall may review your code. One of the core developers will merge your pull request when they
think it is ready. For every pull request, we aim to promptly either merge it or say why it is not yet ready; if you go
a few days without a reply, please feel free to ping the thread by adding a new comment.
To get your pull request merged sooner, you should explain why you are making the change. For example, you can point to
a code sample that is outdated in terms of Arch Linux command lines. It is also helpful to add links to online
documentation or to the implementation of the code you are changing.
Also, do not squash your commits after you have submitted a pull request, as this erases context during review. We will
squash commits when the pull request is merged.
Maintainer:
* Anton Hvornum ([@Torxed](https://github.com/Torxed))
[Contributors](https://github.com/archlinux/archinstall/graphs/contributors)
================================================
FILE: LICENSE
================================================
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
Copyright (C)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
Copyright (C)
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
.
================================================
FILE: PKGBUILD
================================================
# Maintainer: David Runge
# Maintainer: Giancarlo Razzolini
# Maintainer: Anton Hvornum
# Contributor: Anton Hvornum
# Contributor: demostanis worlds
pkgname=archinstall
pkgver=3.0.15
pkgrel=1
pkgdesc="Just another guided/automated Arch Linux installer with a twist"
arch=(any)
url="https://github.com/archlinux/archinstall"
license=(GPL-3.0-only)
depends=(
'arch-install-scripts'
'btrfs-progs'
'coreutils'
'cryptsetup'
'dosfstools'
'e2fsprogs'
'glibc'
'kbd'
'libcrypt.so'
'libxcrypt'
'pciutils'
'procps-ng'
'python'
'python-cryptography'
'python-pydantic'
'python-pyparted'
'python-textual'
'python-markdown-it-py'
'python-linkify-it-py'
'systemd'
'util-linux'
'xfsprogs'
'lvm2'
'f2fs-tools'
'libfido2'
)
makedepends=(
'python-build'
'python-installer'
'python-setuptools'
'python-sphinx'
'python-wheel'
'python-sphinx_rtd_theme'
'python-pylint'
'ruff'
)
optdepends=(
'python-systemd: Adds journald logging'
)
provides=(python-archinstall archinstall)
conflicts=(python-archinstall archinstall-git)
replaces=(python-archinstall archinstall-git)
source=(
$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/$pkgver.tar.gz
$pkgname-$pkgver.tar.gz.sig::$url/releases/download/$pkgver/$pkgname-$pkgver.tar.gz.sig
)
sha512sums=()
b2sums=()
validpgpkeys=('8AA2213C8464C82D879C8127D4B58E897A929F2E') # torxed@archlinux.org
check() {
cd $pkgname-$pkgver
ruff check
}
pkgver() {
cd $pkgname-$pkgver
awk '$1 ~ /^__version__/ {gsub("\"", ""); print $3}' archinstall/__init__.py
}
build() {
cd $pkgname-$pkgver
python -m build --wheel --no-isolation
PYTHONDONTWRITEBYTECODE=1 make man -C docs
}
package() {
cd "$pkgname-$pkgver"
python -m installer --destdir="$pkgdir" dist/*.whl
install -vDm 644 docs/_build/man/archinstall.1 -t "$pkgdir/usr/share/man/man1/"
}
================================================
FILE: README.md
================================================
# Arch Installer
[](https://github.com/archlinux/archinstall/actions/workflows/flake8.yaml)
Just another guided/automated [Arch Linux](https://wiki.archlinux.org/index.php/Arch_Linux) installer with a twist.
The installer also doubles as a python library to install Arch Linux and manage services, packages, and other things inside the installed system *(Usually from a live medium or from an existing installation)*.
* archinstall [discord](https://discord.gg/aDeMffrxNg) server
* archinstall [#archinstall:matrix.org](https://matrix.to/#/#archinstall:matrix.org) Matrix channel
* archinstall [#archinstall@irc.libera.chat:6697](https://web.libera.chat/?channel=#archinstall)
* archinstall [documentation](https://archinstall.archlinux.page/)
# Installation & Usage
> [!TIP]
> In the ISO you are root by default. Use sudo if running from an existing system.
```shell
pacman-key --init
pacman -Sy archinstall
archinstall
```
Alternative ways to install are `git clone` the repository (and is better since you get the latest code regardless of [build date](https://archlinux.org/packages/?sort=&q=archinstall)) or `pip install --upgrade archinstall`.
## Upgrade `archinstall` on live Arch ISO image
Upgrading archinstall on the ISO needs to be done via a full system upgrade using
```shell
pacman -Syu
```
When booting from a live USB, the space on the ramdisk is limited and may not be sufficient to allow running a re-installation or upgrade of the installer.
In case one runs into this issue, any of the following can be used
* Resize the root partition https://wiki.archlinux.org/title/Archiso#Adjusting_the_size_of_the_root_file_system
* Specify the boot parameter copytoram=y (https://gitlab.archlinux.org/archlinux/mkinitcpio/mkinitcpio-archiso/-/blob/master/docs/README.bootparams#L26) which will copy the root filesystem to tmpfs
## Running the [guided](https://github.com/archlinux/archinstall/blob/master/archinstall/scripts/guided.py) installer
Assuming you are on an Arch Linux live-ISO or installed via `pip`, `archinstall` will use the `guided` script by default
```shell
archinstall
```
similar goes for running the [guided](https://github.com/archlinux/archinstall/blob/master/archinstall/scripts/guided.py) installer using `git
```shell
git clone https://github.com/archlinux/archinstall
cd archinstall
python -m archinstall $@
```
To run alternative scripts using the `--script` parameter
```
archinstall --script
```
#### Advanced
Some additional options that most users do not need are hidden behind the `--advanced` flag and all options/args can be consulted through `-h` or `--help`.
## Running from a declarative configuration file or URL
`archinstall` can be run with a JSON configuration file. There are 2 different configuration files to consider,
the `user_configuration.json` contains all general installation configuration, whereas the `user_credentials.json`
contains the sensitive user configuration such as user password, root password, and encryption password.
An example of the user configuration file can be found here
[configuration file](https://github.com/archlinux/archinstall/blob/master/examples/config-sample.json)
and an example of the credentials configuration here
[credentials file](https://github.com/archlinux/archinstall/blob/master/examples/creds-sample.json).
**HINT:** The configuration files can be auto-generated by starting `archinstall`, configuring all desired menu
points and then going to `Save configuration`.
To load the configuration file into `archinstall` run the following command
```shell
archinstall --config --creds
```
### Credentials configuration file encryption
By default, all user account credentials are hashed with `yescrypt` and only the hash is stored in the saved `user_credentials.json` file.
This is not possible for disk encryption password which needs to be stored in plaintext to be able to apply it.
However, when selecting to save configuration files, `archinstall` will prompt for the option to encrypt the `user_credentials.json` file content.
A prompt will require to enter a encryption password to encrypt the file. When providing an encrypted `user_configuration.json` as a argument with `--creds `
there are multiple ways to provide the decryption key:
* Provide the decryption key via the command line argument `--creds-decryption-key `
* Store the encryption key in the environment variable `ARCHINSTALL_CREDS_DECRYPTION_KEY` which will be read automatically
* If none of the above is provided a prompt will be shown to enter the decryption key manually
# Help or Issues
If you come across any issues, kindly submit your issue here on GitHub or post your query in the
[discord](https://discord.gg/aDeMffrxNg) help channel.
When submitting an issue, please:
* Provide the stacktrace of the output if applicable
* Attach the `/var/log/archinstall/install.log` to the issue ticket. This helps us help you!
* To extract the log from the ISO image, one way is to use
```shell
curl -F'file=@/var/log/archinstall/install.log' https://0x0.st
```
# Available Languages
Archinstall is available in different languages which have been contributed and are maintained by the community.
The language can be switched inside the installer (first menu entry). Bear in mind that not all languages provide
full translations as we rely on contributors to do the translations. Each language has an indicator that shows
how much has been translated.
Any contributions to the translations are more than welcome,
to get started please follow [the guide](https://github.com/archlinux/archinstall/blob/master/archinstall/locales/README.md)
## Fonts
The ISO does not ship with all fonts needed for different languages.
Fonts that use a different character set than Latin will not be displayed correctly. If those languages
want to be selected then a proper font has to be set manually in the console.
All available console fonts can be found in `/usr/share/kbd/consolefonts` and set with `setfont LatGrkCyr-8x16`.
# Scripting your own installation
## Scripting interactive installation
For an example of a fully scripted, interactive installation please refer to the example
[interactive_installation.py](https://github.com/archlinux/archinstall/blob/master/archinstall/scripts/guided.py)
> **To create your own ISO with this script in it:** Follow [ArchISO](https://wiki.archlinux.org/index.php/archiso)'s guide on creating your own ISO.
## Script non-interactive automated installation
For an example of a fully scripted, automated installation please refer to the example
[full_automated_installation.py](https://github.com/archlinux/archinstall/blob/master/examples/full_automated_installation.py)
# Profiles
`archinstall` comes with a set of pre-configured profiles available for selection during the installation process.
- [Desktop](https://github.com/archlinux/archinstall/tree/master/archinstall/default_profiles/desktops)
- [Server](https://github.com/archlinux/archinstall/tree/master/archinstall/default_profiles/servers)
The profiles' definitions and the packages they will install can be directly viewed in the menu, or
[default profiles](https://github.com/archlinux/archinstall/tree/master/archinstall/default_profiles)
# Testing
## Using a Live ISO Image
If you want to test a commit, branch, or bleeding edge release from the repository using the standard Arch Linux Live ISO image,
replace the archinstall version with a newer one and execute the subsequent steps defined below.
1. You need a working network connection
2. Install the build requirements with `pacman -Sy; pacman -S git python-pip gcc pkgconf`
*(note that this may or may not work depending on your RAM and current state of the squashfs maximum filesystem free space)*
3. Uninstall the previous version of archinstall with `pip uninstall --break-system-packages archinstall`
4. Now clone the latest repository with `git clone https://github.com/archlinux/archinstall`
5. Enter the repository with `cd archinstall`
*At this stage, you can choose to check out a feature branch for instance with `git checkout v2.3.1-rc1`*
6. To run the source code, there are 2 different options:
- Run a specific branch version from source directly using `python -m archinstall`, in most cases this will work just fine, the
rare case it will not work is if the source has introduced any new dependencies that are not installed yet
- Installing the branch version with `pip install --break-system-packages .` and `archinstall`
## Without a Live ISO Image
To test this without a live ISO, the simplest approach is to use a local image and create a loop device.
This can be done by installing `pacman -S arch-install-scripts util-linux` locally and doing the following:
# truncate -s 20G testimage.img
# losetup --partscan --show ./testimage.img
# pip install --upgrade archinstall
# python -m archinstall --script guided
# qemu-system-x86_64 -enable-kvm -machine q35,accel=kvm -device intel-iommu -cpu host -m 4096 -boot order=d -drive file=./testimage.img,format=raw -drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/OVMF.4m.fd -drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/OVMF.4m.fd
This will create a *20 GB* `testimage.img` and create a loop device which we can use to format and install to.
`archinstall` is installed and executed in [guided mode](#docs-todo). Once the installation is complete, ~~you can use qemu/kvm to boot the test media.~~
*(You'd actually need to do some EFI magic in order to point the EFI vars to the partition 0 in the test medium, so this won't work entirely out of the box, but that gives you a general idea of what we're going for here)*
There's also a [Building and Testing](https://github.com/archlinux/archinstall/wiki/Building-and-Testing) guide.
It will go through everything from packaging, building and running *(with qemu)* the installer against a dev branch.
## Boot an Arch ISO image in a VM
You may want to boot an ISO image in a VM to test `archinstall` in there.
* Download the latest [Arch ISO](https://archlinux.org/download/)
* Use the the below command to boot the ISO in a VM
```
qemu-system-x86_64 -enable-kvm \
-machine q35,accel=kvm -device intel-iommu \
-cpu host -m 4096 -boot order=d \
-drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/OVMF.4m.fd \
-drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/OVMF.4m.fd \
-drive file=./archlinux-2025.12.01-x86_64.iso,format=raw
```
HINT: For espeakup support
```
qemu-system-x86_64 -enable-kvm \
-machine q35,accel=kvm -device intel-iommu \
-cpu host -m 4096 -boot order=d \
-drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/OVMF.4m.fd \
-drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/OVMF.4m.fd \
-drive file=./archlinux-2025.12.01-x86_64.iso,format=raw \
-device intel-hda -device hda-duplex,audiodev=snd0 \
-audiodev pa,id=snd0,server=/run/user/1000/pulse/native
```
# FAQ
## Keyring out-of-date
For a description of the problem see https://archinstall.archlinux.page/help/known_issues.html#keyring-is-out-of-date-2213 and discussion in issue https://github.com/archlinux/archinstall/issues/2213.
For a quick fix the below command will install the latest keyrings
```pacman -Sy archlinux-keyring```
## How to dual boot with Windows
To install Arch Linux alongside an existing Windows installation using `archinstall`, follow these steps:
1. Ensure some unallocated space is available for the Linux installation after the Windows installation.
2. Boot into the ISO and run `archinstall`.
3. Choose `Disk configuration` -> `Manual partitioning`.
4. Select the disk on which Windows resides.
5. Select `Create a new partition`.
6. Choose a filesystem type.
7. Determine the start and end sectors for the new partition location (values can be suffixed with various units).
8. Assign the mountpoint `/` to the new partition.
9. Assign the `Boot/ESP` partition the mountpoint `/boot` from the partitioning menu.
10. Confirm your settings and exit to the main menu by choosing `Confirm and exit`.
11. Modify any additional settings for your installation as necessary.
12. Start the installation upon completion of setup.
# Mission Statement
Archinstall promises to ship a [guided installer](https://github.com/archlinux/archinstall/blob/master/archinstall/scripts/guided.py) that follows
the [Arch Linux Principles](https://wiki.archlinux.org/index.php/Arch_Linux#Principles) as well as a library to manage services, packages, and other Arch Linux aspects.
The guided installer ensures a user-friendly experience, offering optional selections throughout the process. Emphasizing its flexible nature, these options are never obligatory.
In addition, the decision to use the guided installer remains entirely with the user, reflecting the Linux philosophy of providing full freedom and flexibility.
---
Archinstall primarily functions as a flexible library for managing services, packages, and other elements within an Arch Linux system.
This core library is the backbone for the guided installer that Archinstall provides. It is also designed to be used by those who wish to script their own custom installations.
Therefore, Archinstall will try its best to not introduce any breaking changes except for major releases which may break backward compatibility after notifying about such changes.
# Contributing
Please see [CONTRIBUTING.md](https://github.com/archlinux/archinstall/blob/master/CONTRIBUTING.md)
================================================
FILE: archinstall/__init__.py
================================================
from archinstall.lib.plugins import plugin
__all__ = ['plugin']
================================================
FILE: archinstall/__main__.py
================================================
import sys
from archinstall.main import main
if __name__ == '__main__':
sys.exit(main())
================================================
FILE: archinstall/applications/audio.py
================================================
from __future__ import annotations
from typing import TYPE_CHECKING
from archinstall.lib.hardware import SysInfo
from archinstall.lib.models.application import Audio, AudioConfiguration
from archinstall.lib.models.users import User
from archinstall.lib.output import debug
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
class AudioApp:
@property
def pulseaudio_packages(self) -> list[str]:
return [
'pulseaudio',
]
@property
def pipewire_packages(self) -> list[str]:
return [
'pipewire',
'pipewire-alsa',
'pipewire-jack',
'pipewire-pulse',
'gst-plugin-pipewire',
'libpulse',
'wireplumber',
]
def _enable_pipewire(
self,
install_session: Installer,
users: list[User] | None = None,
) -> None:
if users is None:
return
for user in users:
# Create the full path for enabling the pipewire systemd items
service_dir = install_session.target / 'home' / user.username / '.config' / 'systemd' / 'user' / 'default.target.wants'
service_dir.mkdir(parents=True, exist_ok=True)
# Set ownership of the entire user catalogue
install_session.arch_chroot(f'chown -R {user.username}:{user.username} /home/{user.username}')
# symlink in the correct pipewire systemd items
install_session.arch_chroot(
f'ln -sf /usr/lib/systemd/user/pipewire-pulse.service /home/{user.username}/.config/systemd/user/default.target.wants/pipewire-pulse.service',
run_as=user.username,
)
install_session.arch_chroot(
f'ln -sf /usr/lib/systemd/user/pipewire-pulse.socket /home/{user.username}/.config/systemd/user/default.target.wants/pipewire-pulse.socket',
run_as=user.username,
)
def install(
self,
install_session: Installer,
audio_config: AudioConfiguration,
users: list[User] | None = None,
) -> None:
debug(f'Installing audio server: {audio_config.audio.value}')
if audio_config.audio == Audio.NO_AUDIO:
debug('No audio server selected, skipping installation.')
return
if SysInfo.requires_sof_fw():
install_session.add_additional_packages('sof-firmware')
if SysInfo.requires_alsa_fw():
install_session.add_additional_packages('alsa-firmware')
match audio_config.audio:
case Audio.PIPEWIRE:
install_session.add_additional_packages(self.pipewire_packages)
self._enable_pipewire(install_session, users)
case Audio.PULSEAUDIO:
install_session.add_additional_packages(self.pulseaudio_packages)
================================================
FILE: archinstall/applications/bluetooth.py
================================================
from __future__ import annotations
from typing import TYPE_CHECKING
from archinstall.lib.output import debug
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
class BluetoothApp:
@property
def packages(self) -> list[str]:
return [
'bluez',
'bluez-utils',
]
@property
def services(self) -> list[str]:
return [
'bluetooth.service',
]
def install(self, install_session: Installer) -> None:
debug('Installing Bluetooth')
install_session.add_additional_packages(self.packages)
install_session.enable_service(self.services)
================================================
FILE: archinstall/applications/firewall.py
================================================
from __future__ import annotations
from typing import TYPE_CHECKING
from archinstall.lib.models.application import Firewall, FirewallConfiguration
from archinstall.lib.output import debug
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
class FirewallApp:
@property
def ufw_packages(self) -> list[str]:
return [
'ufw',
]
@property
def fwd_packages(self) -> list[str]:
return [
'firewalld',
]
@property
def ufw_services(self) -> list[str]:
return [
'ufw.service',
]
@property
def fwd_services(self) -> list[str]:
return [
'firewalld.service',
]
def install(
self,
install_session: Installer,
firewall_config: FirewallConfiguration,
) -> None:
debug(f'Installing firewall: {firewall_config.firewall.value}')
match firewall_config.firewall:
case Firewall.UFW:
install_session.add_additional_packages(self.ufw_packages)
install_session.enable_service(self.ufw_services)
# write default conf file to enabled
ufw_conf = install_session.target / 'etc/ufw/ufw.conf'
ufw_conf.write_text(ufw_conf.read_text().replace('ENABLED=no', 'ENABLED=yes'))
case Firewall.FWD:
install_session.add_additional_packages(self.fwd_packages)
install_session.enable_service(self.fwd_services)
================================================
FILE: archinstall/applications/power_management.py
================================================
from __future__ import annotations
from typing import TYPE_CHECKING
from archinstall.lib.models.application import PowerManagement, PowerManagementConfiguration
from archinstall.lib.output import debug
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
class PowerManagementApp:
@property
def ppd_packages(self) -> list[str]:
return [
'power-profiles-daemon',
]
@property
def tuned_packages(self) -> list[str]:
return [
'tuned',
'tuned-ppd',
]
def install(
self,
install_session: Installer,
power_management_config: PowerManagementConfiguration,
) -> None:
debug(f'Installing power management daemon: {power_management_config.power_management.value}')
match power_management_config.power_management:
case PowerManagement.POWER_PROFILES_DAEMON:
install_session.add_additional_packages(self.ppd_packages)
case PowerManagement.TUNED:
install_session.add_additional_packages(self.tuned_packages)
================================================
FILE: archinstall/applications/print_service.py
================================================
from __future__ import annotations
from typing import TYPE_CHECKING
from archinstall.lib.output import debug
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
class PrintServiceApp:
@property
def packages(self) -> list[str]:
return ['cups', 'system-config-printer', 'cups-pk-helper']
@property
def services(self) -> list[str]:
return [
'cups.service',
]
def install(self, install_session: Installer) -> None:
debug('Installing print service')
install_session.add_additional_packages(self.packages)
install_session.enable_service(self.services)
================================================
FILE: archinstall/default_profiles/__init__.py
================================================
================================================
FILE: archinstall/default_profiles/desktop.py
================================================
from __future__ import annotations
from typing import TYPE_CHECKING, Self, override
from archinstall.default_profiles.profile import GreeterType, Profile, ProfileType, SelectResult
from archinstall.lib.menu.helpers import Selection
from archinstall.lib.output import info
from archinstall.lib.profile.profiles_handler import profile_handler
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
class DesktopProfile(Profile):
def __init__(self, current_selection: list[Self] = []) -> None:
super().__init__(
'Desktop',
ProfileType.Desktop,
current_selection=current_selection,
support_greeter=True,
)
@property
@override
def packages(self) -> list[str]:
return [
'nano',
'vim',
'openssh',
'htop',
'wget',
'smartmontools',
'xdg-utils',
]
@property
@override
def default_greeter_type(self) -> GreeterType | None:
combined_greeters: dict[GreeterType, int] = {}
for profile in self.current_selection:
if profile.default_greeter_type:
combined_greeters.setdefault(profile.default_greeter_type, 0)
combined_greeters[profile.default_greeter_type] += 1
if len(combined_greeters) >= 1:
return list(combined_greeters)[0]
return None
async def _do_on_select_profiles(self) -> None:
for profile in self.current_selection:
await profile.do_on_select()
@override
async def do_on_select(self) -> SelectResult:
items = [
MenuItem(
p.name,
value=p,
preview_action=lambda x: x.value.preview_text() if x.value else None,
)
for p in profile_handler.get_desktop_profiles()
]
group = MenuItemGroup(items, sort_items=True, sort_case_sensitive=False)
group.set_selected_by_value(self.current_selection)
result = await Selection[Self](
group,
multi=True,
allow_reset=True,
allow_skip=True,
preview_location='right',
).show()
match result.type_:
case ResultType.Selection:
self.current_selection = result.get_values()
await self._do_on_select_profiles()
return SelectResult.NewSelection
case ResultType.Skip:
return SelectResult.SameSelection
case ResultType.Reset:
return SelectResult.ResetCurrent
@override
def post_install(self, install_session: Installer) -> None:
for profile in self.current_selection:
profile.post_install(install_session)
@override
def install(self, install_session: Installer) -> None:
# Install common packages for all desktop environments
install_session.add_additional_packages(self.packages)
for profile in self.current_selection:
info(f'Installing profile {profile.name}...')
install_session.add_additional_packages(profile.packages)
install_session.enable_service(profile.services)
profile.install(install_session)
================================================
FILE: archinstall/default_profiles/desktops/__init__.py
================================================
from enum import Enum
class SeatAccess(Enum):
seatd = 'seatd'
polkit = 'polkit'
================================================
FILE: archinstall/default_profiles/desktops/awesome.py
================================================
from __future__ import annotations
from typing import TYPE_CHECKING, override
from archinstall.default_profiles.profile import ProfileType
from archinstall.default_profiles.xorg import XorgProfile
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
class AwesomeProfile(XorgProfile):
def __init__(self) -> None:
super().__init__('Awesome', ProfileType.WindowMgr)
@property
@override
def packages(self) -> list[str]:
return super().packages + [
'awesome',
'alacritty',
'xorg-xinit',
'xorg-xrandr',
'xterm',
'feh',
'slock',
'terminus-font',
'gnu-free-fonts',
'ttf-liberation',
'xsel',
]
@override
def install(self, install_session: Installer) -> None:
super().install(install_session)
# TODO: Copy a full configuration to ~/.config/awesome/rc.lua instead.
with open(f'{install_session.target}/etc/xdg/awesome/rc.lua') as fh:
awesome_lua = fh.read()
# Replace xterm with alacritty for a smoother experience.
awesome_lua = awesome_lua.replace('"xterm"', '"alacritty"')
with open(f'{install_session.target}/etc/xdg/awesome/rc.lua', 'w') as fh:
fh.write(awesome_lua)
# TODO: Configure the right-click-menu to contain the above packages that were installed. (as a user config)
# TODO: check if we selected a greeter,
# but for now, awesome is intended to run without one.
with open(f'{install_session.target}/etc/X11/xinit/xinitrc') as xinitrc:
xinitrc_data = xinitrc.read()
for line in xinitrc_data.split('\n'):
if 'twm &' in line:
xinitrc_data = xinitrc_data.replace(line, f'# {line}')
if 'xclock' in line:
xinitrc_data = xinitrc_data.replace(line, f'# {line}')
if 'xterm' in line:
xinitrc_data = xinitrc_data.replace(line, f'# {line}')
xinitrc_data += '\n'
xinitrc_data += 'exec awesome\n'
with open(f'{install_session.target}/etc/X11/xinit/xinitrc', 'w') as xinitrc:
xinitrc.write(xinitrc_data)
================================================
FILE: archinstall/default_profiles/desktops/bspwm.py
================================================
from typing import override
from archinstall.default_profiles.profile import GreeterType, ProfileType
from archinstall.default_profiles.xorg import XorgProfile
class BspwmProfile(XorgProfile):
def __init__(self) -> None:
super().__init__('Bspwm', ProfileType.WindowMgr)
@property
@override
def packages(self) -> list[str]:
# return super().packages + [
return [
'bspwm',
'sxhkd',
'dmenu',
'xdo',
'rxvt-unicode',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm
================================================
FILE: archinstall/default_profiles/desktops/budgie.py
================================================
from typing import override
from archinstall.default_profiles.profile import GreeterType, ProfileType
from archinstall.default_profiles.xorg import XorgProfile
class BudgieProfile(XorgProfile):
def __init__(self) -> None:
super().__init__('Budgie', ProfileType.DesktopEnv)
@property
@override
def packages(self) -> list[str]:
return [
'materia-gtk-theme',
'budgie',
'mate-terminal',
'nemo',
'papirus-icon-theme',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.LightdmSlick
================================================
FILE: archinstall/default_profiles/desktops/cinnamon.py
================================================
from typing import override
from archinstall.default_profiles.profile import GreeterType, ProfileType
from archinstall.default_profiles.xorg import XorgProfile
class CinnamonProfile(XorgProfile):
def __init__(self) -> None:
super().__init__('Cinnamon', ProfileType.DesktopEnv)
@property
@override
def packages(self) -> list[str]:
return [
'cinnamon',
'system-config-printer',
'gnome-keyring',
'gnome-terminal',
'engrampa',
'gnome-screenshot',
'gvfs-smb',
'xed',
'xdg-user-dirs-gtk',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm
================================================
FILE: archinstall/default_profiles/desktops/cosmic.py
================================================
from typing import override
from archinstall.default_profiles.profile import GreeterType, ProfileType
from archinstall.default_profiles.xorg import XorgProfile
class CosmicProfile(XorgProfile):
def __init__(self) -> None:
super().__init__('Cosmic', ProfileType.DesktopEnv)
@property
@override
def packages(self) -> list[str]:
return [
'cosmic',
'xdg-user-dirs',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.CosmicSession
================================================
FILE: archinstall/default_profiles/desktops/cutefish.py
================================================
from typing import override
from archinstall.default_profiles.profile import GreeterType, ProfileType
from archinstall.default_profiles.xorg import XorgProfile
class CutefishProfile(XorgProfile):
def __init__(self) -> None:
super().__init__('Cutefish', ProfileType.DesktopEnv)
@property
@override
def packages(self) -> list[str]:
return [
'cutefish',
'noto-fonts',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Sddm
================================================
FILE: archinstall/default_profiles/desktops/deepin.py
================================================
from typing import override
from archinstall.default_profiles.profile import GreeterType, ProfileType
from archinstall.default_profiles.xorg import XorgProfile
class DeepinProfile(XorgProfile):
def __init__(self) -> None:
super().__init__('Deepin', ProfileType.DesktopEnv)
@property
@override
def packages(self) -> list[str]:
return [
'deepin',
'deepin-terminal',
'deepin-editor',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm
================================================
FILE: archinstall/default_profiles/desktops/enlightenment.py
================================================
from typing import override
from archinstall.default_profiles.profile import GreeterType, ProfileType
from archinstall.default_profiles.xorg import XorgProfile
class EnlightenmentProfile(XorgProfile):
def __init__(self) -> None:
super().__init__('Enlightenment', ProfileType.WindowMgr)
@property
@override
def packages(self) -> list[str]:
return [
'enlightenment',
'terminology',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm
================================================
FILE: archinstall/default_profiles/desktops/gnome.py
================================================
from typing import override
from archinstall.default_profiles.profile import GreeterType, ProfileType
from archinstall.default_profiles.xorg import XorgProfile
class GnomeProfile(XorgProfile):
def __init__(self) -> None:
super().__init__('GNOME', ProfileType.DesktopEnv)
@property
@override
def packages(self) -> list[str]:
return [
'gnome',
'gnome-tweaks',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Gdm
================================================
FILE: archinstall/default_profiles/desktops/hyprland.py
================================================
from typing import override
from archinstall.default_profiles.desktops import SeatAccess
from archinstall.default_profiles.profile import GreeterType, ProfileType
from archinstall.default_profiles.xorg import XorgProfile
from archinstall.lib.menu.helpers import Selection
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType
class HyprlandProfile(XorgProfile):
def __init__(self) -> None:
super().__init__('Hyprland', ProfileType.DesktopEnv)
self.custom_settings = {'seat_access': None}
@property
@override
def packages(self) -> list[str]:
return [
'hyprland',
'dunst',
'kitty',
'uwsm',
'dolphin',
'wofi',
'xdg-desktop-portal-hyprland',
'qt5-wayland',
'qt6-wayland',
'polkit-kde-agent',
'grim',
'slurp',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Sddm
@property
@override
def services(self) -> list[str]:
if pref := self.custom_settings.get('seat_access', None):
return [pref]
return []
async def _select_seat_access(self) -> None:
# need to activate seat service and add to seat group
header = tr('Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)')
header += '\n' + tr('Choose an option to give Hyprland access to your hardware') + '\n'
items = [MenuItem(s.value, value=s) for s in SeatAccess]
group = MenuItemGroup(items, sort_items=True)
default = self.custom_settings.get('seat_access', None)
group.set_default_by_value(default)
result = await Selection[SeatAccess](
group,
header=header,
allow_skip=False,
).show()
if result.type_ == ResultType.Selection:
self.custom_settings['seat_access'] = result.get_value().value
@override
async def do_on_select(self) -> None:
await self._select_seat_access()
================================================
FILE: archinstall/default_profiles/desktops/i3.py
================================================
from typing import override
from archinstall.default_profiles.profile import GreeterType, ProfileType
from archinstall.default_profiles.xorg import XorgProfile
class I3wmProfile(XorgProfile):
def __init__(self) -> None:
super().__init__('i3-wm', ProfileType.WindowMgr)
@property
@override
def packages(self) -> list[str]:
return [
'i3-wm',
'i3lock',
'i3status',
'i3blocks',
'xss-lock',
'xterm',
'lightdm-gtk-greeter',
'lightdm',
'dmenu',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm
================================================
FILE: archinstall/default_profiles/desktops/labwc.py
================================================
from typing import override
from archinstall.default_profiles.desktops import SeatAccess
from archinstall.default_profiles.profile import GreeterType, ProfileType
from archinstall.default_profiles.xorg import XorgProfile
from archinstall.lib.menu.helpers import Selection
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType
class LabwcProfile(XorgProfile):
def __init__(self) -> None:
super().__init__(
'Labwc',
ProfileType.WindowMgr,
)
self.custom_settings = {'seat_access': None}
@property
@override
def packages(self) -> list[str]:
additional = []
if seat := self.custom_settings.get('seat_access', None):
additional = [seat]
return [
'alacritty',
'labwc',
] + additional
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm
@property
@override
def services(self) -> list[str]:
if pref := self.custom_settings.get('seat_access', None):
return [pref]
return []
async def _select_seat_access(self) -> None:
# need to activate seat service and add to seat group
header = tr('labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)')
header += '\n' + tr('Choose an option to give labwc access to your hardware') + '\n'
items = [MenuItem(s.value, value=s) for s in SeatAccess]
group = MenuItemGroup(items, sort_items=True)
default = self.custom_settings.get('seat_access', None)
group.set_default_by_value(default)
result = await Selection[SeatAccess](
group,
header=header,
allow_skip=False,
).show()
if result.type_ == ResultType.Selection:
self.custom_settings['seat_access'] = result.get_value().value
@override
async def do_on_select(self) -> None:
await self._select_seat_access()
================================================
FILE: archinstall/default_profiles/desktops/lxqt.py
================================================
from typing import override
from archinstall.default_profiles.profile import GreeterType, ProfileType
from archinstall.default_profiles.xorg import XorgProfile
class LxqtProfile(XorgProfile):
def __init__(self) -> None:
super().__init__('Lxqt', ProfileType.DesktopEnv)
# NOTE: SDDM is the only officially supported greeter for LXQt, so unlike other DEs, lightdm is not used here.
# LXQt works with lightdm, but since this is not supported, we will not default to this.
# https://github.com/lxqt/lxqt/issues/795
@property
@override
def packages(self) -> list[str]:
return [
'lxqt',
'breeze-icons',
'oxygen-icons',
'xdg-utils',
'ttf-freefont',
'l3afpad',
'slock',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Sddm
================================================
FILE: archinstall/default_profiles/desktops/mate.py
================================================
from typing import override
from archinstall.default_profiles.profile import GreeterType, ProfileType
from archinstall.default_profiles.xorg import XorgProfile
class MateProfile(XorgProfile):
def __init__(self) -> None:
super().__init__('Mate', ProfileType.DesktopEnv)
@property
@override
def packages(self) -> list[str]:
return [
'mate',
'mate-extra',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm
================================================
FILE: archinstall/default_profiles/desktops/niri.py
================================================
from typing import override
from archinstall.default_profiles.desktops import SeatAccess
from archinstall.default_profiles.profile import GreeterType, ProfileType
from archinstall.default_profiles.xorg import XorgProfile
from archinstall.lib.menu.helpers import Selection
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType
class NiriProfile(XorgProfile):
def __init__(self) -> None:
super().__init__(
'Niri',
ProfileType.WindowMgr,
)
self.custom_settings = {'seat_access': None}
@property
@override
def packages(self) -> list[str]:
additional = []
if seat := self.custom_settings.get('seat_access', None):
additional = [seat]
return [
'niri',
'alacritty',
'fuzzel',
'mako',
'xorg-xwayland',
'waybar',
'swaybg',
'swayidle',
'swaylock',
'xdg-desktop-portal-gnome',
] + additional
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm
@property
@override
def services(self) -> list[str]:
if pref := self.custom_settings.get('seat_access', None):
return [pref]
return []
async def _select_seat_access(self) -> None:
# need to activate seat service and add to seat group
header = tr('niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)')
header += '\n' + tr('Choose an option to give niri access to your hardware') + '\n'
items = [MenuItem(s.value, value=s) for s in SeatAccess]
group = MenuItemGroup(items, sort_items=True)
default = self.custom_settings.get('seat_access', None)
group.set_default_by_value(default)
result = await Selection[SeatAccess](
group,
header=header,
allow_skip=False,
).show()
if result.type_ == ResultType.Selection:
self.custom_settings['seat_access'] = result.get_value().value
@override
async def do_on_select(self) -> None:
await self._select_seat_access()
================================================
FILE: archinstall/default_profiles/desktops/plasma.py
================================================
from typing import override
from archinstall.default_profiles.profile import GreeterType, ProfileType
from archinstall.default_profiles.xorg import XorgProfile
class PlasmaProfile(XorgProfile):
def __init__(self) -> None:
super().__init__('KDE Plasma', ProfileType.DesktopEnv)
@property
@override
def packages(self) -> list[str]:
return [
'plasma-desktop',
'konsole',
'kate',
'dolphin',
'ark',
'plasma-workspace',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.PlasmaLoginManager
================================================
FILE: archinstall/default_profiles/desktops/qtile.py
================================================
from typing import override
from archinstall.default_profiles.profile import GreeterType, ProfileType
from archinstall.default_profiles.xorg import XorgProfile
class QtileProfile(XorgProfile):
def __init__(self) -> None:
super().__init__('Qtile', ProfileType.WindowMgr)
@property
@override
def packages(self) -> list[str]:
return [
'qtile',
'alacritty',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm
================================================
FILE: archinstall/default_profiles/desktops/river.py
================================================
from typing import override
from archinstall.default_profiles.profile import GreeterType, ProfileType
from archinstall.default_profiles.xorg import XorgProfile
class RiverProfile(XorgProfile):
def __init__(self) -> None:
super().__init__('River', ProfileType.WindowMgr)
@property
@override
def packages(self) -> list[str]:
return [
'foot',
'xdg-desktop-portal-wlr',
'river',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm
================================================
FILE: archinstall/default_profiles/desktops/sway.py
================================================
from typing import override
from archinstall.default_profiles.desktops import SeatAccess
from archinstall.default_profiles.profile import GreeterType, ProfileType
from archinstall.default_profiles.xorg import XorgProfile
from archinstall.lib.menu.helpers import Selection
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType
class SwayProfile(XorgProfile):
def __init__(self) -> None:
super().__init__(
'Sway',
ProfileType.WindowMgr,
)
self.custom_settings = {'seat_access': None}
@property
@override
def packages(self) -> list[str]:
additional = []
if seat := self.custom_settings.get('seat_access', None):
additional = [seat]
return [
'sway',
'swaybg',
'swaylock',
'swayidle',
'waybar',
'wmenu',
'brightnessctl',
'grim',
'slurp',
'pavucontrol',
'foot',
'xorg-xwayland',
] + additional
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm
@property
@override
def services(self) -> list[str]:
if pref := self.custom_settings.get('seat_access', None):
return [pref]
return []
async def _select_seat_access(self) -> None:
# need to activate seat service and add to seat group
header = tr('Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)')
header += '\n' + tr('Choose an option to give Sway access to your hardware') + '\n'
items = [MenuItem(s.value, value=s) for s in SeatAccess]
group = MenuItemGroup(items, sort_items=True)
default = self.custom_settings.get('seat_access', None)
group.set_default_by_value(default)
result = await Selection[SeatAccess](
group,
header=header,
allow_skip=False,
).show()
if result.type_ == ResultType.Selection:
self.custom_settings['seat_access'] = result.get_value().value
@override
async def do_on_select(self) -> None:
await self._select_seat_access()
================================================
FILE: archinstall/default_profiles/desktops/xfce4.py
================================================
from typing import override
from archinstall.default_profiles.profile import GreeterType, ProfileType
from archinstall.default_profiles.xorg import XorgProfile
class Xfce4Profile(XorgProfile):
def __init__(self) -> None:
super().__init__('Xfce4', ProfileType.DesktopEnv)
@property
@override
def packages(self) -> list[str]:
return [
'xfce4',
'xfce4-goodies',
'pavucontrol',
'gvfs',
'xarchiver',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm
================================================
FILE: archinstall/default_profiles/desktops/xmonad.py
================================================
from typing import override
from archinstall.default_profiles.profile import GreeterType, ProfileType
from archinstall.default_profiles.xorg import XorgProfile
class XmonadProfile(XorgProfile):
def __init__(self) -> None:
super().__init__('Xmonad', ProfileType.WindowMgr)
@property
@override
def packages(self) -> list[str]:
return [
'xmonad',
'xmonad-contrib',
'xmonad-extras',
'xterm',
'dmenu',
]
@property
@override
def default_greeter_type(self) -> GreeterType:
return GreeterType.Lightdm
================================================
FILE: archinstall/default_profiles/minimal.py
================================================
from archinstall.default_profiles.profile import Profile, ProfileType
class MinimalProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Minimal',
ProfileType.Minimal,
)
================================================
FILE: archinstall/default_profiles/profile.py
================================================
from __future__ import annotations
from enum import Enum, auto
from typing import TYPE_CHECKING, Self
from archinstall.lib.translationhandler import tr
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
from archinstall.lib.models.users import User
class ProfileType(Enum):
# top level default_profiles
Server = 'Server'
Desktop = 'Desktop'
Xorg = 'Xorg'
Minimal = 'Minimal'
Custom = 'Custom'
# detailed selection default_profiles
ServerType = 'ServerType'
WindowMgr = 'Window Manager'
DesktopEnv = 'Desktop Environment'
CustomType = 'CustomType'
# special things
Application = 'Application'
class GreeterType(Enum):
Lightdm = 'lightdm-gtk-greeter'
LightdmSlick = 'lightdm-slick-greeter'
Sddm = 'sddm'
Gdm = 'gdm'
Ly = 'ly'
CosmicSession = 'cosmic-greeter'
PlasmaLoginManager = 'plasma-login-manager'
class SelectResult(Enum):
NewSelection = auto()
SameSelection = auto()
ResetCurrent = auto()
class Profile:
def __init__(
self,
name: str,
profile_type: ProfileType,
current_selection: list[Self] = [],
packages: list[str] = [],
services: list[str] = [],
support_gfx_driver: bool = False,
support_greeter: bool = False,
) -> None:
self.name = name
self.profile_type = profile_type
self.custom_settings: dict[str, str | None] = {}
self._support_gfx_driver = support_gfx_driver
self._support_greeter = support_greeter
# self.gfx_driver: str | None = None
self.current_selection = current_selection
self._packages = packages
self._services = services
# Only used for custom default_profiles
self.custom_enabled = False
@property
def packages(self) -> list[str]:
"""
Returns a list of packages that should be installed when
this profile is among the chosen ones
"""
return self._packages
@property
def services(self) -> list[str]:
"""
Returns a list of services that should be enabled when
this profile is among the chosen ones
"""
return self._services
@property
def default_greeter_type(self) -> GreeterType | None:
"""
Setting a default greeter type for a desktop profile
"""
return None
def install(self, install_session: Installer) -> None:
"""
Performs installation steps when this profile was selected
"""
def post_install(self, install_session: Installer) -> None:
"""
Hook that will be called when the installation process is
finished and custom installation steps for specific default_profiles
are needed
"""
def provision(self, install_session: Installer, users: list[User]) -> None:
"""
Hook that will be called when the installation process is
finished and user configuration for specific default_profiles
is needed
"""
def json(self) -> dict[str, str]:
"""
Returns a json representation of the profile
"""
return {}
async def do_on_select(self) -> SelectResult | None:
"""
Hook that will be called when a profile is selected
"""
return SelectResult.NewSelection
def set_custom_settings(self, settings: dict[str, str | None]) -> None:
"""
Set the custom settings for the profile.
This is also called when the settings are parsed from the config
and can be overridden to perform further actions based on the profile
"""
self.custom_settings = settings
def current_selection_names(self) -> list[str]:
if self.current_selection:
return [s.name for s in self.current_selection]
return []
def reset(self) -> None:
self.current_selection = []
def is_top_level_profile(self) -> bool:
top_levels = [ProfileType.Desktop, ProfileType.Server, ProfileType.Xorg, ProfileType.Minimal, ProfileType.Custom]
return self.profile_type in top_levels
def is_desktop_profile(self) -> bool:
return self.profile_type == ProfileType.Desktop
def is_server_type_profile(self) -> bool:
return self.profile_type == ProfileType.ServerType
def is_desktop_type_profile(self) -> bool:
return self.profile_type == ProfileType.DesktopEnv or self.profile_type == ProfileType.WindowMgr
def is_xorg_type_profile(self) -> bool:
return self.profile_type == ProfileType.Xorg
def is_custom_type_profile(self) -> bool:
return self.profile_type == ProfileType.CustomType
def is_graphic_driver_supported(self) -> bool:
if not self.current_selection:
return self._support_gfx_driver
else:
if any([p._support_gfx_driver for p in self.current_selection]):
return True
return False
def is_greeter_supported(self) -> bool:
return self._support_greeter
def preview_text(self) -> str:
"""
Override this method to provide a preview text for the profile
"""
return self.packages_text()
def packages_text(self, include_sub_packages: bool = False) -> str:
packages = set()
if self.packages:
packages = set(self.packages)
if include_sub_packages:
for sub_profile in self.current_selection:
if sub_profile.packages:
packages.update(sub_profile.packages)
text = tr('Installed packages') + ':\n'
for pkg in sorted(packages):
text += f'\t- {pkg}\n'
return text
================================================
FILE: archinstall/default_profiles/server.py
================================================
from __future__ import annotations
from typing import TYPE_CHECKING, Self, override
from archinstall.default_profiles.profile import Profile, ProfileType, SelectResult
from archinstall.lib.menu.helpers import Selection
from archinstall.lib.output import info
from archinstall.lib.profile.profiles_handler import profile_handler
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
from archinstall.lib.models.users import User
class ServerProfile(Profile):
def __init__(self, current_value: list[Self] = []):
super().__init__(
'Server',
ProfileType.Server,
current_selection=current_value,
)
@override
async def do_on_select(self) -> SelectResult:
items = [
MenuItem(
p.name,
value=p,
preview_action=lambda x: x.value.preview_text() if x.value else None,
)
for p in profile_handler.get_server_profiles()
]
group = MenuItemGroup(items, sort_items=True)
group.set_selected_by_value(self.current_selection)
result = await Selection[Self](
group,
allow_reset=True,
allow_skip=True,
multi=True,
preview_location='right',
).show()
match result.type_:
case ResultType.Selection:
selections = result.get_values()
self.current_selection = selections
return SelectResult.NewSelection
case ResultType.Skip:
return SelectResult.SameSelection
case ResultType.Reset:
return SelectResult.ResetCurrent
@override
def provision(self, install_session: Installer, users: list[User]) -> None:
for profile in self.current_selection:
profile.provision(install_session, users)
@override
def post_install(self, install_session: Installer) -> None:
for profile in self.current_selection:
profile.post_install(install_session)
@override
def install(self, install_session: Installer) -> None:
server_info = self.current_selection_names()
details = ', '.join(server_info)
info(f'Now installing the selected servers: {details}')
for server in self.current_selection:
info(f'Installing {server.name}...')
install_session.add_additional_packages(server.packages)
install_session.enable_service(server.services)
server.install(install_session)
info('If your selections included multiple servers with the same port, you may have to reconfigure them.')
================================================
FILE: archinstall/default_profiles/servers/__init__.py
================================================
================================================
FILE: archinstall/default_profiles/servers/cockpit.py
================================================
from typing import override
from archinstall.default_profiles.profile import Profile, ProfileType
class CockpitProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Cockpit',
ProfileType.ServerType,
)
@property
@override
def packages(self) -> list[str]:
return ['cockpit', 'udisks2', 'packagekit']
@property
@override
def services(self) -> list[str]:
return ['cockpit.socket']
================================================
FILE: archinstall/default_profiles/servers/docker.py
================================================
from __future__ import annotations
from typing import TYPE_CHECKING, override
from archinstall.default_profiles.profile import Profile, ProfileType
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
from archinstall.lib.models.users import User
class DockerProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Docker',
ProfileType.ServerType,
)
@property
@override
def packages(self) -> list[str]:
return ['docker']
@property
@override
def services(self) -> list[str]:
return ['docker']
@override
def provision(self, install_session: Installer, users: list[User]) -> None:
for user in users:
install_session.arch_chroot(f'usermod -a -G docker {user.username}')
================================================
FILE: archinstall/default_profiles/servers/httpd.py
================================================
from typing import override
from archinstall.default_profiles.profile import Profile, ProfileType
class HttpdProfile(Profile):
def __init__(self) -> None:
super().__init__(
'httpd',
ProfileType.ServerType,
)
@property
@override
def packages(self) -> list[str]:
return ['apache']
@property
@override
def services(self) -> list[str]:
return ['httpd']
================================================
FILE: archinstall/default_profiles/servers/lighttpd.py
================================================
from typing import override
from archinstall.default_profiles.profile import Profile, ProfileType
class LighttpdProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Lighttpd',
ProfileType.ServerType,
)
@property
@override
def packages(self) -> list[str]:
return ['lighttpd']
@property
@override
def services(self) -> list[str]:
return ['lighttpd']
================================================
FILE: archinstall/default_profiles/servers/mariadb.py
================================================
from __future__ import annotations
from typing import TYPE_CHECKING, override
from archinstall.default_profiles.profile import Profile, ProfileType
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
class MariadbProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Mariadb',
ProfileType.ServerType,
)
@property
@override
def packages(self) -> list[str]:
return ['mariadb']
@property
@override
def services(self) -> list[str]:
return ['mariadb']
@override
def post_install(self, install_session: Installer) -> None:
install_session.arch_chroot('mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql')
================================================
FILE: archinstall/default_profiles/servers/nginx.py
================================================
from typing import override
from archinstall.default_profiles.profile import Profile, ProfileType
class NginxProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Nginx',
ProfileType.ServerType,
)
@property
@override
def packages(self) -> list[str]:
return ['nginx']
@property
@override
def services(self) -> list[str]:
return ['nginx']
================================================
FILE: archinstall/default_profiles/servers/postgresql.py
================================================
from __future__ import annotations
from typing import TYPE_CHECKING, override
from archinstall.default_profiles.profile import Profile, ProfileType
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
class PostgresqlProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Postgresql',
ProfileType.ServerType,
)
@property
@override
def packages(self) -> list[str]:
return ['postgresql']
@property
@override
def services(self) -> list[str]:
return ['postgresql']
@override
def post_install(self, install_session: Installer) -> None:
install_session.arch_chroot('initdb -D /var/lib/postgres/data', run_as='postgres')
================================================
FILE: archinstall/default_profiles/servers/sshd.py
================================================
from typing import override
from archinstall.default_profiles.profile import Profile, ProfileType
class SshdProfile(Profile):
def __init__(self) -> None:
super().__init__(
'sshd',
ProfileType.ServerType,
)
@property
@override
def packages(self) -> list[str]:
return ['openssh']
@property
@override
def services(self) -> list[str]:
return ['sshd']
================================================
FILE: archinstall/default_profiles/servers/tomcat.py
================================================
from typing import override
from archinstall.default_profiles.profile import Profile, ProfileType
class TomcatProfile(Profile):
def __init__(self) -> None:
super().__init__(
'Tomcat',
ProfileType.ServerType,
)
@property
@override
def packages(self) -> list[str]:
return ['tomcat10']
@property
@override
def services(self) -> list[str]:
return ['tomcat10']
================================================
FILE: archinstall/default_profiles/xorg.py
================================================
from typing import override
from archinstall.default_profiles.profile import Profile, ProfileType
from archinstall.lib.translationhandler import tr
class XorgProfile(Profile):
def __init__(
self,
name: str = 'Xorg',
profile_type: ProfileType = ProfileType.Xorg,
):
super().__init__(
name,
profile_type,
support_gfx_driver=True,
)
@override
def preview_text(self) -> str:
text = tr('Environment type: {}').format(self.profile_type.value)
if packages := self.packages_text():
text += f'\n{packages}'
return text
@property
@override
def packages(self) -> list[str]:
return [
'xorg-server',
]
================================================
FILE: archinstall/lib/__init__.py
================================================
================================================
FILE: archinstall/lib/applications/__init__.py
================================================
================================================
FILE: archinstall/lib/applications/application_handler.py
================================================
from __future__ import annotations
from typing import TYPE_CHECKING
from archinstall.applications.audio import AudioApp
from archinstall.applications.bluetooth import BluetoothApp
from archinstall.applications.firewall import FirewallApp
from archinstall.applications.power_management import PowerManagementApp
from archinstall.applications.print_service import PrintServiceApp
from archinstall.lib.models import Audio
from archinstall.lib.models.application import ApplicationConfiguration
from archinstall.lib.models.users import User
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
class ApplicationHandler:
def __init__(self) -> None:
pass
def install_applications(self, install_session: Installer, app_config: ApplicationConfiguration, users: list[User] | None = None) -> None:
if app_config.bluetooth_config and app_config.bluetooth_config.enabled:
BluetoothApp().install(install_session)
if app_config.audio_config and app_config.audio_config.audio != Audio.NO_AUDIO:
AudioApp().install(
install_session,
app_config.audio_config,
users,
)
if app_config.power_management_config:
PowerManagementApp().install(
install_session,
app_config.power_management_config,
)
if app_config.print_service_config and app_config.print_service_config.enabled:
PrintServiceApp().install(install_session)
if app_config.firewall_config:
FirewallApp().install(
install_session,
app_config.firewall_config,
)
================================================
FILE: archinstall/lib/applications/application_menu.py
================================================
from typing import override
from archinstall.lib.hardware import SysInfo
from archinstall.lib.menu.abstract_menu import AbstractSubMenu
from archinstall.lib.menu.helpers import Confirmation, Selection
from archinstall.lib.models.application import (
ApplicationConfiguration,
Audio,
AudioConfiguration,
BluetoothConfiguration,
Firewall,
FirewallConfiguration,
PowerManagement,
PowerManagementConfiguration,
PrintServiceConfiguration,
)
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType
class ApplicationMenu(AbstractSubMenu[ApplicationConfiguration]):
def __init__(
self,
preset: ApplicationConfiguration | None = None,
):
if preset:
self._app_config = preset
else:
self._app_config = ApplicationConfiguration()
menu_options = self._define_menu_options()
self._item_group = MenuItemGroup(menu_options, checkmarks=True)
super().__init__(
self._item_group,
config=self._app_config,
allow_reset=True,
)
@override
async def show(self) -> ApplicationConfiguration | None:
_ = await super().show()
return self._app_config
def _define_menu_options(self) -> list[MenuItem]:
return [
MenuItem(
text=tr('Bluetooth'),
action=select_bluetooth,
value=self._app_config.bluetooth_config,
preview_action=self._prev_bluetooth,
key='bluetooth_config',
),
MenuItem(
text=tr('Audio'),
action=select_audio,
preview_action=self._prev_audio,
key='audio_config',
),
MenuItem(
text=tr('Print service'),
action=select_print_service,
preview_action=self._prev_print_service,
key='print_service_config',
),
MenuItem(
text=tr('Power management'),
action=select_power_management,
preview_action=self._prev_power_management,
enabled=SysInfo.has_battery(),
key='power_management_config',
),
MenuItem(
text=tr('Firewall'),
action=select_firewall,
preview_action=self._prev_firewall,
key='firewall_config',
),
]
def _prev_power_management(self, item: MenuItem) -> str | None:
if item.value is not None:
config: PowerManagementConfiguration = item.value
return f'{tr("Power management")}: {config.power_management.value}'
return None
def _prev_bluetooth(self, item: MenuItem) -> str | None:
if item.value is not None:
bluetooth_config: BluetoothConfiguration = item.value
output = f'{tr("Bluetooth")}: '
output += tr('Enabled') if bluetooth_config.enabled else tr('Disabled')
return output
return None
def _prev_audio(self, item: MenuItem) -> str | None:
if item.value is not None:
config: AudioConfiguration = item.value
return f'{tr("Audio")}: {config.audio.value}'
return None
def _prev_print_service(self, item: MenuItem) -> str | None:
if item.value is not None:
print_service_config: PrintServiceConfiguration = item.value
output = f'{tr("Print service")}: '
output += tr('Enabled') if print_service_config.enabled else tr('Disabled')
return output
return None
def _prev_firewall(self, item: MenuItem) -> str | None:
if item.value is not None:
config: FirewallConfiguration = item.value
return f'{tr("Firewall")}: {config.firewall.value}'
return None
async def select_power_management(preset: PowerManagementConfiguration | None = None) -> PowerManagementConfiguration | None:
group = MenuItemGroup.from_enum(PowerManagement)
if preset:
group.set_focus_by_value(preset.power_management)
result = await Selection[PowerManagement](
group,
allow_skip=True,
allow_reset=True,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Selection:
return PowerManagementConfiguration(power_management=result.get_value())
case ResultType.Reset:
return None
async def select_bluetooth(preset: BluetoothConfiguration | None) -> BluetoothConfiguration | None:
header = tr('Would you like to configure Bluetooth?') + '\n'
preset_val = preset.enabled if preset else False
result = await Confirmation(
header=header,
allow_skip=True,
preset=preset_val,
).show()
match result.type_:
case ResultType.Selection:
return BluetoothConfiguration(result.get_value())
case ResultType.Skip:
return preset
case _:
raise ValueError('Unhandled result type')
async def select_print_service(preset: PrintServiceConfiguration | None) -> PrintServiceConfiguration | None:
header = tr('Would you like to configure the print service?') + '\n'
preset_val = preset.enabled if preset else False
result = await Confirmation(
header=header,
allow_skip=True,
preset=preset_val,
).show()
match result.type_:
case ResultType.Selection:
result.get_value()
return PrintServiceConfiguration(result.get_value())
case ResultType.Skip:
return preset
case _:
raise ValueError('Unhandled result type')
async def select_audio(preset: AudioConfiguration | None = None) -> AudioConfiguration | None:
items = [MenuItem(a.value, value=a) for a in Audio]
group = MenuItemGroup(items)
if preset:
group.set_focus_by_value(preset.audio)
result = await Selection[Audio](
group,
header=tr('Select audio configuration'),
allow_skip=True,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Selection:
return AudioConfiguration(audio=result.get_value())
case ResultType.Reset:
raise ValueError('Unhandled result type')
async def select_firewall(preset: FirewallConfiguration | None = None) -> FirewallConfiguration | None:
group = MenuItemGroup.from_enum(Firewall)
if preset:
group.set_focus_by_value(preset.firewall)
result = await Selection[Firewall](
group,
allow_skip=True,
allow_reset=True,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Selection:
return FirewallConfiguration(firewall=result.get_value())
case ResultType.Reset:
return None
================================================
FILE: archinstall/lib/args.py
================================================
import argparse
import json
import os
import sys
import urllib.error
import urllib.parse
from argparse import ArgumentParser, Namespace
from dataclasses import dataclass, field
from pathlib import Path
from typing import Any, Self
from urllib.request import Request, urlopen
from pydantic.dataclasses import dataclass as p_dataclass
from archinstall.lib.crypt import decrypt
from archinstall.lib.menu.util import get_password
from archinstall.lib.models.application import ApplicationConfiguration, ZramConfiguration
from archinstall.lib.models.authentication import AuthenticationConfiguration
from archinstall.lib.models.bootloader import Bootloader, BootloaderConfiguration
from archinstall.lib.models.device import DiskEncryption, DiskLayoutConfiguration
from archinstall.lib.models.locale import LocaleConfiguration
from archinstall.lib.models.mirrors import MirrorConfiguration
from archinstall.lib.models.network import NetworkConfiguration
from archinstall.lib.models.packages import Repository
from archinstall.lib.models.profile import ProfileConfiguration
from archinstall.lib.models.users import Password, User, UserSerialization
from archinstall.lib.output import debug, error, logger, warn
from archinstall.lib.plugins import load_plugin
from archinstall.lib.translationhandler import Language, tr, translation_handler
from archinstall.lib.version import get_version
from archinstall.tui.ui.components import tui
@p_dataclass
class Arguments:
config: Path | None = None
config_url: str | None = None
creds: Path | None = None
creds_url: str | None = None
creds_decryption_key: str | None = None
silent: bool = False
dry_run: bool = False
script: str | None = None
mountpoint: Path = Path('/mnt')
skip_ntp: bool = False
skip_wkd: bool = False
skip_boot: bool = False
debug: bool = False
offline: bool = False
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
@dataclass
class ArchConfig:
version: str | None = None
script: str | None = None
locale_config: LocaleConfiguration | None = None
archinstall_language: Language = field(default_factory=lambda: translation_handler.get_language_by_abbr('en'))
disk_config: DiskLayoutConfiguration | None = None
profile_config: ProfileConfiguration | None = None
mirror_config: MirrorConfiguration | None = None
network_config: NetworkConfiguration | None = None
bootloader_config: BootloaderConfiguration | None = None
app_config: ApplicationConfiguration | None = None
auth_config: AuthenticationConfiguration | None = None
swap: ZramConfiguration | None = None
hostname: str = 'archlinux'
kernels: list[str] = field(default_factory=lambda: ['linux'])
ntp: bool = True
packages: list[str] = field(default_factory=list)
parallel_downloads: int = 0
timezone: str = 'UTC'
services: list[str] = field(default_factory=list)
custom_commands: list[str] = field(default_factory=list)
def unsafe_config(self) -> dict[str, Any]:
config: dict[str, list[UserSerialization] | str | None] = {}
if self.auth_config:
if self.auth_config.users:
config['users'] = [user.json() for user in self.auth_config.users]
if self.auth_config.root_enc_password:
config['root_enc_password'] = self.auth_config.root_enc_password.enc_password
if self.disk_config:
disk_encryption = self.disk_config.disk_encryption
if disk_encryption and disk_encryption.encryption_password:
config['encryption_password'] = disk_encryption.encryption_password.plaintext
return config
def safe_config(self) -> dict[str, Any]:
config: Any = {
'version': self.version,
'script': self.script,
'archinstall-language': self.archinstall_language.json(),
'hostname': self.hostname,
'kernels': self.kernels,
'ntp': self.ntp,
'packages': self.packages,
'parallel_downloads': self.parallel_downloads,
'swap': self.swap,
'timezone': self.timezone,
'services': self.services,
'custom_commands': self.custom_commands,
'bootloader_config': self.bootloader_config.json() if self.bootloader_config else None,
'app_config': self.app_config.json() if self.app_config else None,
'auth_config': self.auth_config.json() if self.auth_config else None,
}
if self.locale_config:
config['locale_config'] = self.locale_config.json()
if self.disk_config:
config['disk_config'] = self.disk_config.json()
if self.profile_config:
config['profile_config'] = self.profile_config.json()
if self.mirror_config:
config['mirror_config'] = self.mirror_config.json()
if self.network_config:
config['network_config'] = self.network_config.json()
return config
@classmethod
def from_config(cls, args_config: dict[str, Any], args: Arguments) -> Self:
arch_config = cls()
arch_config.locale_config = LocaleConfiguration.parse_arg(args_config)
if script := args_config.get('script', None):
arch_config.script = script
if archinstall_lang := args_config.get('archinstall-language', None):
arch_config.archinstall_language = translation_handler.get_language_by_name(archinstall_lang)
if disk_config := args_config.get('disk_config', {}):
enc_password = args_config.get('encryption_password', '')
password = Password(plaintext=enc_password) if enc_password else None
arch_config.disk_config = DiskLayoutConfiguration.parse_arg(disk_config, password)
# DEPRECATED
# backwards compatibility for main level disk_encryption entry
disk_encryption: DiskEncryption | None = None
if args_config.get('disk_encryption', None) is not None and arch_config.disk_config is not None:
disk_encryption = DiskEncryption.parse_arg(
arch_config.disk_config,
args_config['disk_encryption'],
Password(plaintext=args_config.get('encryption_password', '')),
)
if disk_encryption:
arch_config.disk_config.disk_encryption = disk_encryption
if profile_config := args_config.get('profile_config', None):
arch_config.profile_config = ProfileConfiguration.parse_arg(profile_config)
if mirror_config := args_config.get('mirror_config', None):
backwards_compatible_repo = []
if additional_repositories := args_config.get('additional-repositories', []):
backwards_compatible_repo = [Repository(r) for r in additional_repositories]
arch_config.mirror_config = MirrorConfiguration.parse_args(
mirror_config,
backwards_compatible_repo,
)
if net_config := args_config.get('network_config', None):
arch_config.network_config = NetworkConfiguration.parse_arg(net_config)
if bootloader_config_dict := args_config.get('bootloader_config', None):
arch_config.bootloader_config = BootloaderConfiguration.parse_arg(bootloader_config_dict, args.skip_boot)
# DEPRECATED: separate bootloader and uki fields (backward compatibility)
elif bootloader_str := args_config.get('bootloader', None):
bootloader = Bootloader.from_arg(bootloader_str, args.skip_boot)
uki = args_config.get('uki', False)
if uki and not bootloader.has_uki_support():
uki = False
arch_config.bootloader_config = BootloaderConfiguration(bootloader=bootloader, uki=uki, removable=True)
# deprecated: backwards compatibility
audio_config_args = args_config.get('audio_config', None)
app_config_args = args_config.get('app_config', None)
if audio_config_args is not None or app_config_args is not None:
arch_config.app_config = ApplicationConfiguration.parse_arg(app_config_args, audio_config_args)
if auth_config_args := args_config.get('auth_config', None):
arch_config.auth_config = AuthenticationConfiguration.parse_arg(auth_config_args)
if hostname := args_config.get('hostname', ''):
arch_config.hostname = hostname
if kernels := args_config.get('kernels', []):
arch_config.kernels = kernels
arch_config.ntp = args_config.get('ntp', True)
if packages := args_config.get('packages', []):
arch_config.packages = packages
if parallel_downloads := args_config.get('parallel_downloads', 0):
arch_config.parallel_downloads = parallel_downloads
swap_arg = args_config.get('swap')
if swap_arg is not None:
arch_config.swap = ZramConfiguration.parse_arg(swap_arg)
if timezone := args_config.get('timezone', 'UTC'):
arch_config.timezone = timezone
if services := args_config.get('services', []):
arch_config.services = services
# DEPRECATED: backwards compatibility
root_password = None
if root_password := args_config.get('!root-password', None):
root_password = Password(plaintext=root_password)
if enc_password := args_config.get('root_enc_password', None):
root_password = Password(enc_password=enc_password)
if root_password is not None:
if arch_config.auth_config is None:
arch_config.auth_config = AuthenticationConfiguration()
arch_config.auth_config.root_enc_password = root_password
# DEPRECATED: backwards compatibility
users: list[User] = []
if args_users := args_config.get('!users', None):
users = User.parse_arguments(args_users)
if args_users := args_config.get('users', None):
users = User.parse_arguments(args_users)
if users:
if arch_config.auth_config is None:
arch_config.auth_config = AuthenticationConfiguration()
arch_config.auth_config.users = users
if custom_commands := args_config.get('custom_commands', []):
arch_config.custom_commands = custom_commands
return arch_config
class ArchConfigHandler:
def __init__(self) -> None:
self._parser: ArgumentParser = self._define_arguments()
args: Arguments = self._parse_args()
self._args = args
config = self._parse_config()
try:
self._config = ArchConfig.from_config(config, args)
self._config.version = get_version()
except ValueError as err:
warn(str(err))
sys.exit(1)
@property
def config(self) -> ArchConfig:
return self._config
@property
def args(self) -> Arguments:
return self._args
def get_script(self) -> str:
if script := self.args.script:
return script
if script := self.config.script:
return script
return 'guided'
def print_help(self) -> None:
self._parser.print_help()
def _define_arguments(self) -> ArgumentParser:
parser = ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument(
'-v',
'--version',
action='version',
default=False,
version='%(prog)s ' + get_version(),
)
parser.add_argument(
'--config',
type=Path,
nargs='?',
default=None,
help='JSON configuration file',
)
parser.add_argument(
'--config-url',
type=str,
nargs='?',
default=None,
help='Url to a JSON configuration file',
)
parser.add_argument(
'--creds',
type=Path,
nargs='?',
default=None,
help='JSON credentials configuration file',
)
parser.add_argument(
'--creds-url',
type=str,
nargs='?',
default=None,
help='Url to a JSON credentials configuration file',
)
parser.add_argument(
'--creds-decryption-key',
type=str,
nargs='?',
default=None,
help='Decryption key for credentials file',
)
parser.add_argument(
'--silent',
action='store_true',
default=False,
help='WARNING: Disables all prompts for input and confirmation. If no configuration is provided, this is ignored',
)
parser.add_argument(
'--dry-run',
'--dry_run',
action='store_true',
default=False,
help='Generates a configuration file and then exits instead of performing an installation',
)
parser.add_argument(
'--script',
nargs='?',
help='Script to run for installation',
type=str,
)
parser.add_argument(
'--mountpoint',
type=Path,
nargs='?',
default=Path('/mnt'),
help='Define an alternate mount point for installation',
)
parser.add_argument(
'--skip-ntp',
action='store_true',
help='Disables NTP checks during installation',
default=False,
)
parser.add_argument(
'--skip-wkd',
action='store_true',
help='Disables checking if archlinux keyring wkd sync is complete.',
default=False,
)
parser.add_argument(
'--skip-boot',
action='store_true',
help='Disables installation of a boot loader (note: only use this when problems arise with the boot loader step).',
default=False,
)
parser.add_argument(
'--debug',
action='store_true',
default=False,
help='Adds debug info into the log',
)
parser.add_argument(
'--offline',
action='store_true',
default=False,
help='Disabled online upstream services such as package search and key-ring auto update.',
)
parser.add_argument(
'--no-pkg-lookups',
action='store_true',
default=False,
help='Disabled package validation specifically prior to starting installation.',
)
parser.add_argument(
'--plugin',
nargs='?',
type=str,
default=None,
help='File path to a plugin to load',
)
parser.add_argument(
'--skip-version-check',
action='store_true',
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',
default=False,
help='Enabled advanced options',
)
parser.add_argument(
'--verbose',
action='store_true',
default=False,
help='Enabled verbose options',
)
return parser
def _parse_args(self) -> Arguments:
argparse_args = vars(self._parser.parse_args())
args: Arguments = Arguments(**argparse_args)
# amend the parameters (check internal consistency)
# Installation can't be silent if config is not passed
if args.config is None and args.config_url is None:
args.silent = False
if args.debug:
warn(f'Warning: --debug mode will write certain credentials to {logger.path}!')
if args.plugin:
plugin_path = Path(args.plugin)
load_plugin(plugin_path)
if args.creds_decryption_key is None:
if os.environ.get('ARCHINSTALL_CREDS_DECRYPTION_KEY'):
args.creds_decryption_key = os.environ.get('ARCHINSTALL_CREDS_DECRYPTION_KEY')
return args
def _parse_config(self) -> dict[str, Any]:
config: dict[str, Any] = {}
config_data: str | None = None
creds_data: str | None = None
if self._args.config is not None:
config_data = self._read_file(self._args.config)
elif self._args.config_url is not None:
config_data = self._fetch_from_url(self._args.config_url)
if config_data is not None:
config.update(json.loads(config_data))
if self._args.creds is not None:
creds_data = self._read_file(self._args.creds)
elif self._args.creds_url is not None:
creds_data = self._fetch_from_url(self._args.creds_url)
if creds_data is not None:
json_data = self._process_creds_data(creds_data)
if json_data is not None:
config.update(json_data)
config = self._cleanup_config(config)
return config
def _process_creds_data(self, creds_data: str) -> dict[str, Any] | None:
if creds_data.startswith('$'): # encrypted data
if self._args.creds_decryption_key is not None:
try:
creds_data = decrypt(creds_data, self._args.creds_decryption_key)
return json.loads(creds_data)
except ValueError as err:
if 'Invalid password' in str(err):
error(tr('Incorrect credentials file decryption password'))
sys.exit(1)
else:
debug(f'Error decrypting credentials file: {err}')
raise err from err
else:
header = tr('Enter credentials file decryption password')
wrong_pwd_text = tr('Incorrect password')
prompt = header
while True:
decryption_pwd: Password | None = tui.run(
lambda p=prompt: get_password( # type: ignore[misc]
header=p,
allow_skip=False,
no_confirmation=True,
)
)
if not decryption_pwd:
return None
try:
creds_data = decrypt(creds_data, decryption_pwd.plaintext)
break
except ValueError as err:
if 'Invalid password' in str(err):
debug('Incorrect credentials file decryption password')
prompt = f'{header}' + f'\n\n{wrong_pwd_text}'
else:
debug(f'Error decrypting credentials file: {err}')
raise err from err
return json.loads(creds_data)
def _fetch_from_url(self, url: str) -> str:
if urllib.parse.urlparse(url).scheme:
try:
req = Request(url, headers={'User-Agent': 'ArchInstall'})
with urlopen(req) as resp:
return resp.read().decode('utf-8')
except urllib.error.HTTPError as err:
error(f'Could not fetch JSON from {url}: {err}')
else:
error('Not a valid url')
sys.exit(1)
def _read_file(self, path: Path) -> str:
if not path.exists():
error(f'Could not find file {path}')
sys.exit(1)
return path.read_text()
def _cleanup_config(self, config: Namespace | dict[str, Any]) -> dict[str, Any]:
clean_args = {}
for key, val in config.items():
if isinstance(val, dict):
val = self._cleanup_config(val)
if val is not None:
clean_args[key] = val
return clean_args
================================================
FILE: archinstall/lib/authentication/__init__.py
================================================
================================================
FILE: archinstall/lib/authentication/authentication_handler.py
================================================
from __future__ import annotations
import getpass
from pathlib import Path
from typing import TYPE_CHECKING
from archinstall.lib.command import SysCommandWorker
from archinstall.lib.models.authentication import AuthenticationConfiguration, U2FLoginConfiguration, U2FLoginMethod
from archinstall.lib.models.users import User
from archinstall.lib.output import debug, info
from archinstall.lib.translationhandler import tr
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
class AuthenticationHandler:
def setup_auth(
self,
install_session: Installer,
auth_config: AuthenticationConfiguration,
hostname: str,
) -> None:
if auth_config.u2f_config and auth_config.users is not None:
self._setup_u2f_login(install_session, auth_config.u2f_config, auth_config.users, hostname)
def _setup_u2f_login(self, install_session: Installer, u2f_config: U2FLoginConfiguration, users: list[User], hostname: str) -> None:
self._configure_u2f_mapping(install_session, u2f_config, users, hostname)
self._update_pam_config(install_session, u2f_config)
def _update_pam_config(
self,
install_session: Installer,
u2f_config: U2FLoginConfiguration,
) -> None:
match u2f_config.u2f_login_method:
case U2FLoginMethod.Passwordless:
config_entry = 'auth sufficient pam_u2f.so authfile=/etc/u2f_mappings cue'
case U2FLoginMethod.SecondFactor:
config_entry = 'auth required pam_u2f.so authfile=/etc/u2f_mappings cue'
case _:
raise ValueError(f'Unknown U2F login method: {u2f_config.u2f_login_method}')
debug(f'U2F PAM configuration: {config_entry}')
debug(f'Passwordless sudo enabled: {u2f_config.passwordless_sudo}')
sudo_config = install_session.target / 'etc/pam.d/sudo'
sys_login = install_session.target / 'etc/pam.d/system-login'
if u2f_config.passwordless_sudo:
self._add_u2f_entry(sudo_config, config_entry)
self._add_u2f_entry(sys_login, config_entry)
def _add_u2f_entry(self, file: Path, entry: str) -> None:
if not file.exists():
debug(f'File does not exist: {file}')
return None
content = file.read_text().splitlines()
# remove any existing u2f auth entry
content = [line for line in content if 'pam_u2f.so' not in line]
# add the u2f auth entry as the first one after comments
for i, line in enumerate(content):
if not line.startswith('#'):
content.insert(i, entry)
break
else:
content.append(entry)
file.write_text('\n'.join(content) + '\n')
def _configure_u2f_mapping(
self,
install_session: Installer,
u2f_config: U2FLoginConfiguration,
users: list[User],
hostname: str,
) -> None:
debug(f'Setting up U2F login: {u2f_config.u2f_login_method.value}')
install_session.pacman.strap('pam-u2f')
print(tr(f'Setting up U2F login: {u2f_config.u2f_login_method.value}'))
# https://developers.yubico.com/pam-u2f/
u2f_auth_file = install_session.target / 'etc/u2f_mappings'
u2f_auth_file.touch()
existing_keys = u2f_auth_file.read_text()
registered_keys: list[str] = []
for user in users:
print('')
info(tr('Setting up U2F device for user: {}').format(user.username))
info(tr('You may need to enter the PIN and then touch your U2F device to register it'))
cmd = ' '.join(
['arch-chroot', '-S', str(install_session.target), 'pamu2fcfg', '-u', user.username, '-o', f'pam://{hostname}', '-i', f'pam://{hostname}']
)
debug(f'Enrolling U2F device: {cmd}')
worker = SysCommandWorker(cmd, peek_output=True)
pin_inputted = False
while worker.is_alive():
if pin_inputted is False:
if bytes('enter pin for', 'UTF-8') in worker._trace_log.lower():
worker.write(bytes(getpass.getpass(''), 'UTF-8'))
pin_inputted = True
output = worker.decode().strip().splitlines()
debug(f'Output from pamu2fcfg: {output}')
key = output[-1].strip()
registered_keys.append(key)
all_keys = '\n'.join(registered_keys)
if existing_keys:
existing_keys += f'\n{all_keys}'
else:
existing_keys = all_keys
u2f_auth_file.write_text(existing_keys)
================================================
FILE: archinstall/lib/authentication/authentication_menu.py
================================================
from typing import override
from archinstall.lib.disk.fido import Fido2
from archinstall.lib.menu.abstract_menu import AbstractSubMenu
from archinstall.lib.menu.helpers import Confirmation, Selection
from archinstall.lib.menu.util import get_password
from archinstall.lib.models.authentication import AuthenticationConfiguration, U2FLoginConfiguration, U2FLoginMethod
from archinstall.lib.models.users import Password, User
from archinstall.lib.output import FormattedOutput
from archinstall.lib.translationhandler import tr
from archinstall.lib.user.user_menu import select_users
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType
class AuthenticationMenu(AbstractSubMenu[AuthenticationConfiguration]):
def __init__(self, preset: AuthenticationConfiguration | None = None):
if preset:
self._auth_config = preset
else:
self._auth_config = AuthenticationConfiguration()
menu_options = self._define_menu_options()
self._item_group = MenuItemGroup(menu_options, checkmarks=True)
super().__init__(
self._item_group,
config=self._auth_config,
allow_reset=True,
)
@override
async def show(self) -> AuthenticationConfiguration | None:
return await super().show()
def _define_menu_options(self) -> list[MenuItem]:
return [
MenuItem(
text=tr('Root password'),
action=lambda x: select_root_password(),
preview_action=self._prev_root_pwd,
key='root_enc_password',
),
MenuItem(
text=tr('User account'),
action=self._create_user_account,
preview_action=self._prev_users,
key='users',
),
MenuItem(
text=tr('U2F login setup'),
action=select_u2f_login,
value=self._auth_config.u2f_config,
preview_action=self._prev_u2f_login,
key='u2f_config',
),
]
async def _create_user_account(self, preset: list[User] | None = None) -> list[User]:
preset = [] if preset is None else preset
users = await select_users(preset=preset)
return users
def _prev_users(self, item: MenuItem) -> str | None:
users: list[User] | None = item.value
if users:
return FormattedOutput.as_table(users)
return None
def _prev_root_pwd(self, item: MenuItem) -> str | None:
if item.value is not None:
password: Password = item.value
return f'{tr("Root password")}: {password.hidden()}'
return None
def _depends_on_u2f(self) -> bool:
devices = Fido2.get_fido2_devices()
if not devices:
return False
return True
def _prev_u2f_login(self, item: MenuItem) -> str | None:
if item.value is not None:
u2f_config: U2FLoginConfiguration = item.value
login_method = u2f_config.u2f_login_method.display_value()
output = tr('U2F login method: ') + login_method
output += '\n'
output += tr('Passwordless sudo: ') + (tr('Enabled') if u2f_config.passwordless_sudo else tr('Disabled'))
return output
devices = Fido2.get_fido2_devices()
if not devices:
return tr('No U2F devices found')
return None
async def select_root_password() -> Password | None:
password = await get_password(header=tr('Enter root password'), allow_skip=True)
return password
async def select_u2f_login(preset: U2FLoginConfiguration | None) -> U2FLoginConfiguration | None:
devices = Fido2.get_fido2_devices()
if not devices:
return None
items = []
for method in U2FLoginMethod:
items.append(MenuItem(method.display_value(), value=method))
group = MenuItemGroup(items)
if preset is not None:
group.set_selected_by_value(preset.u2f_login_method)
result = await Selection[U2FLoginMethod](
group,
allow_skip=True,
allow_reset=True,
).show()
match result.type_:
case ResultType.Selection:
u2f_method = result.get_value()
header = tr('Enable passwordless sudo?')
result_sudo = await Confirmation(
header=header,
allow_skip=True,
preset=False,
).show()
passwordless_sudo = result_sudo.item() == MenuItem.yes()
return U2FLoginConfiguration(
u2f_login_method=u2f_method,
passwordless_sudo=passwordless_sudo,
)
case ResultType.Skip:
return preset
case ResultType.Reset:
return None
================================================
FILE: archinstall/lib/boot.py
================================================
import time
from collections.abc import Iterator
from pathlib import Path
from types import TracebackType
from typing import ClassVar, Self
from archinstall.lib.command import SysCommand, SysCommandWorker, locate_binary
from archinstall.lib.exceptions import SysCallError
from archinstall.lib.output import error
class Boot:
_active_boot: ClassVar[Self | None] = None
def __init__(self, path: Path | str):
if isinstance(path, Path):
path = str(path)
self.path = path
self.container_name = 'archinstall'
self.session: SysCommandWorker | None = None
self.ready = False
def __enter__(self) -> Self:
if Boot._active_boot and Boot._active_boot.path != self.path:
raise KeyError('Archinstall only supports booting up one instance and another session is already active.')
if Boot._active_boot:
self.session = Boot._active_boot.session
self.ready = Boot._active_boot.ready
else:
# '-P' or --console=pipe could help us not having to do a bunch
# of os.write() calls, but instead use pipes (stdin, stdout and stderr) as usual.
self.session = SysCommandWorker(
[
'systemd-nspawn',
'-D',
self.path,
'--timezone=off',
'-b',
'--no-pager',
'--machine',
self.container_name,
]
)
if not self.ready and self.session:
while self.session.is_alive():
if b' login:' in self.session:
self.ready = True
break
Boot._active_boot = self
return self
def __exit__(self, exc_type: type[BaseException] | None, exc_value: BaseException | None, traceback: TracebackType | None) -> None:
# b''.join(sys_command('sync')) # No need to, since the underlying fs() object will call sync.
# TODO: https://stackoverflow.com/questions/28157929/how-to-safely-handle-an-exception-inside-a-context-manager
if exc_type is not None:
error(
str(exc_value),
f'The error above occurred in a temporary boot-up of the installation {self.path!r}',
)
shutdown = None
shutdown_exit_code: int | None = -1
try:
shutdown = SysCommand(f'systemd-run --machine={self.container_name} --pty shutdown now')
except SysCallError as err:
shutdown_exit_code = err.exit_code
if self.session:
while self.session.is_alive():
time.sleep(0.25)
if shutdown and shutdown.exit_code:
shutdown_exit_code = shutdown.exit_code
if self.session and (self.session.exit_code == 0 or shutdown_exit_code == 0):
Boot._active_boot = None
else:
session_exit_code = self.session.exit_code if self.session else -1
raise SysCallError(
f'Could not shut down temporary boot of {self.path!r}: {session_exit_code}/{shutdown_exit_code}',
exit_code=next(filter(bool, [session_exit_code, shutdown_exit_code])),
)
def __iter__(self) -> Iterator[bytes]:
if self.session:
yield from self.session
def __contains__(self, key: bytes) -> bool:
if self.session is None:
return False
return key in self.session
def is_alive(self) -> bool:
if self.session is None:
return False
return self.session.is_alive()
def SysCommand(self, cmd: list[str], *args, **kwargs) -> SysCommand: # type: ignore[no-untyped-def]
if cmd[0][0] != '/' and cmd[0][:2] != './':
# This check is also done in SysCommand & SysCommandWorker.
# However, that check is done for `machinectl` and not for our chroot command.
# So this wrapper for SysCommand will do this additionally.
cmd[0] = locate_binary(cmd[0])
return SysCommand(['systemd-run', f'--machine={self.container_name}', '--pty', *cmd], *args, **kwargs)
def SysCommandWorker(self, cmd: list[str], *args, **kwargs) -> SysCommandWorker: # type: ignore[no-untyped-def]
if cmd[0][0] != '/' and cmd[0][:2] != './':
cmd[0] = locate_binary(cmd[0])
return SysCommandWorker(['systemd-run', f'--machine={self.container_name}', '--pty', *cmd], *args, **kwargs)
================================================
FILE: archinstall/lib/bootloader/__init__.py
================================================
================================================
FILE: archinstall/lib/bootloader/bootloader_menu.py
================================================
import textwrap
from typing import override
from archinstall.lib.menu.abstract_menu import AbstractSubMenu
from archinstall.lib.menu.helpers import Confirmation, Selection
from archinstall.lib.models.bootloader import Bootloader, BootloaderConfiguration
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType
class BootloaderMenu(AbstractSubMenu[BootloaderConfiguration]):
def __init__(
self,
bootloader_conf: BootloaderConfiguration,
uefi: bool,
skip_boot: bool = False,
):
self._bootloader_conf = bootloader_conf
self._skip_boot = skip_boot
self._uefi = uefi
menu_options = self._define_menu_options()
self._item_group = MenuItemGroup(menu_options, sort_items=False, checkmarks=True)
super().__init__(
self._item_group,
config=self._bootloader_conf,
allow_reset=False,
)
def _define_menu_options(self) -> list[MenuItem]:
bootloader = self._bootloader_conf.bootloader
# UKI availability
uki_enabled = self._uefi and bootloader.has_uki_support()
if not uki_enabled:
self._bootloader_conf.uki = False
# Removable availability
removable_enabled = self._uefi and bootloader.has_removable_support()
if not removable_enabled:
self._bootloader_conf.removable = False
return [
MenuItem(
text=tr('Bootloader'),
action=self._select_bootloader,
value=self._bootloader_conf.bootloader,
preview_action=self._prev_bootloader,
mandatory=True,
key='bootloader',
),
MenuItem(
text=tr('Unified kernel images'),
action=self._select_uki,
value=self._bootloader_conf.uki,
preview_action=self._prev_uki,
key='uki',
enabled=uki_enabled,
),
MenuItem(
text=tr('Install to removable location'),
action=self._select_removable,
value=self._bootloader_conf.removable,
preview_action=self._prev_removable,
key='removable',
enabled=removable_enabled,
),
]
def _prev_bootloader(self, item: MenuItem) -> str | None:
if item.value:
return f'{tr("Bootloader")}: {item.value.value}'
return None
def _prev_uki(self, item: MenuItem) -> str | None:
uki_text = f'{tr("Unified kernel images")}'
if item.value:
return f'{uki_text}: {tr("Enabled")}'
else:
return f'{uki_text}: {tr("Disabled")}'
def _prev_removable(self, item: MenuItem) -> str | None:
if item.value:
return tr('Will install to /EFI/BOOT/ (removable location, safe default)')
return tr('Will install to custom location with NVRAM entry')
@override
async def show(self) -> BootloaderConfiguration:
_ = await super().show()
return self._bootloader_conf
async def _select_bootloader(self, preset: Bootloader | None) -> Bootloader | None:
bootloader = await select_bootloader(preset, self._uefi, self._skip_boot)
if bootloader:
# Update UKI option based on bootloader
uki_item = self._menu_item_group.find_by_key('uki')
if not self._uefi or not bootloader.has_uki_support():
uki_item.enabled = False
uki_item.value = False
self._bootloader_conf.uki = False
else:
uki_item.enabled = True
# Update removable option based on bootloader
removable_item = self._menu_item_group.find_by_key('removable')
if not self._uefi or not bootloader.has_removable_support():
removable_item.enabled = False
removable_item.value = False
self._bootloader_conf.removable = False
else:
if not removable_item.enabled:
removable_item.value = True
self._bootloader_conf.removable = True
removable_item.enabled = True
return bootloader
async def _select_uki(self, preset: bool) -> bool:
prompt = tr('Would you like to use unified kernel images?') + '\n'
result = await Confirmation(header=prompt, allow_skip=True, preset=preset).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Selection:
return result.item() == MenuItem.yes()
case ResultType.Reset:
raise ValueError('Unhandled result type')
async def _select_removable(self, preset: bool) -> bool:
prompt = (
tr('Would you like to install the bootloader to the default removable media search location?')
+ '\n\n'
+ tr('This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:')
+ '\n\n • '
+ tr('Firmware that does not properly support NVRAM boot entries like most MSI motherboards,')
+ '\n '
+ tr('most Apple Macs, many laptops...')
+ '\n • '
+ tr('USB drives or other portable external media.')
+ '\n • '
+ tr('Systems where you want the disk to be bootable on any computer.')
+ '\n\n'
+ tr(
textwrap.dedent(
"""\
If you do not know what this means, LEAVE THIS OPTION ENABLED, as it is the safe default.
It is suggested to disable this if none of the above apply, as it makes installing multiple
EFI bootloaders on the same disk easier, and it will not overwrite whatever bootloader
was previously installed at the default removable media search location, if any.
It may also make the installation more resilient in case of dual-booting with Windows,
as Windows is known to sometimes erase or replace the bootloader installed at the removable
location.
"""
)
)
+ '\n'
)
result = await Confirmation(
header=prompt,
allow_skip=True,
preset=preset,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Selection:
return result.get_value()
case ResultType.Reset:
raise ValueError('Unhandled result type')
async def select_bootloader(
preset: Bootloader | None,
uefi: bool,
skip_boot: bool = False,
) -> Bootloader | None:
options = []
hidden_options = []
header = tr('Select bootloader to install')
default = Bootloader.get_default(uefi, skip_boot)
if not skip_boot:
hidden_options += [Bootloader.NO_BOOTLOADER]
if not uefi:
options += [Bootloader.Grub, Bootloader.Limine]
header += '\n' + tr('UEFI is not detected and some options are disabled')
else:
options += [b for b in Bootloader if b not in hidden_options]
items = [MenuItem(o.value, value=o) for o in options]
group = MenuItemGroup(items)
group.set_default_by_value(default)
group.set_focus_by_value(preset)
result = await Selection[Bootloader](
group,
header=header,
allow_skip=True,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Selection:
return result.get_value()
case ResultType.Reset:
raise ValueError('Unhandled result type')
================================================
FILE: archinstall/lib/command.py
================================================
import os
import shlex
import stat
import subprocess
import sys
import time
from collections.abc import Iterator
from select import EPOLLHUP, EPOLLIN, epoll
from shutil import which
from types import TracebackType
from typing import Any, Self, override
from archinstall.lib.exceptions import RequirementError, SysCallError
from archinstall.lib.output import debug, error, logger
from archinstall.lib.utils.encoding import clear_vt100_escape_codes
class SysCommandWorker:
def __init__(
self,
cmd: str | list[str],
peek_output: bool | None = False,
environment_vars: dict[str, str] | None = None,
working_directory: str = './',
remove_vt100_escape_codes_from_lines: bool = True,
):
if isinstance(cmd, str):
cmd = shlex.split(cmd)
if cmd and not cmd[0].startswith(('/', './')): # Path() does not work well
cmd[0] = locate_binary(cmd[0])
self.cmd = cmd
self.peek_output = peek_output
# define the standard locale for command outputs. For now the C ascii one. Can be overridden
self.environment_vars = {'LC_ALL': 'C'}
if environment_vars:
self.environment_vars.update(environment_vars)
self.working_directory = working_directory
self.exit_code: int | None = None
self._trace_log = b''
self._trace_log_pos = 0
self.poll_object = epoll()
self.child_fd: int | None = None
self.started: float | None = None
self.ended: float | None = None
self.remove_vt100_escape_codes_from_lines: bool = remove_vt100_escape_codes_from_lines
def __contains__(self, key: bytes) -> bool:
"""
Contains will also move the current buffert position forward.
This is to avoid re-checking the same data when looking for output.
"""
assert isinstance(key, bytes)
index = self._trace_log.find(key, self._trace_log_pos)
if index >= 0:
self._trace_log_pos += index + len(key)
return True
return False
def __iter__(self, *args: str, **kwargs: dict[str, Any]) -> Iterator[bytes]:
last_line = self._trace_log.rfind(b'\n')
lines = filter(None, self._trace_log[self._trace_log_pos : last_line].splitlines())
for line in lines:
if self.remove_vt100_escape_codes_from_lines:
line = clear_vt100_escape_codes(line)
yield line + b'\n'
self._trace_log_pos = last_line
@override
def __repr__(self) -> str:
self.make_sure_we_are_executing()
return str(self._trace_log)
@override
def __str__(self) -> str:
try:
return self._trace_log.decode('utf-8')
except UnicodeDecodeError:
return str(self._trace_log)
def __enter__(self) -> Self:
return self
def __exit__(self, exc_type: type[BaseException] | None, exc_value: BaseException | None, traceback: TracebackType | None) -> None:
# b''.join(sys_command('sync')) # No need to, since the underlying fs() object will call sync.
# TODO: https://stackoverflow.com/questions/28157929/how-to-safely-handle-an-exception-inside-a-context-manager
if self.child_fd:
try:
os.close(self.child_fd)
except Exception:
pass
if self.peek_output:
# To make sure any peaked output didn't leave us hanging
# on the same line we were on.
sys.stdout.write('\n')
sys.stdout.flush()
if exc_type is not None:
debug(str(exc_value))
if self.exit_code != 0:
raise SysCallError(
f'{self.cmd} exited with abnormal exit code [{self.exit_code}]: {str(self)[-500:]}',
self.exit_code,
worker_log=self._trace_log,
)
def is_alive(self) -> bool:
self.poll()
if self.started and self.ended is None:
return True
return False
def write(self, data: bytes, line_ending: bool = True) -> int:
assert isinstance(data, bytes) # TODO: Maybe we can support str as well and encode it
self.make_sure_we_are_executing()
if self.child_fd:
return os.write(self.child_fd, data + (b'\n' if line_ending else b''))
return 0
def make_sure_we_are_executing(self) -> bool:
if not self.started:
return self.execute()
return True
def tell(self) -> int:
self.make_sure_we_are_executing()
return self._trace_log_pos
def seek(self, pos: int) -> None:
self.make_sure_we_are_executing()
# Safety check to ensure 0 < pos < len(tracelog)
self._trace_log_pos = min(max(0, pos), len(self._trace_log))
def peak(self, output: str | bytes) -> bool:
if self.peek_output:
if isinstance(output, bytes):
try:
output = output.decode('UTF-8')
except UnicodeDecodeError:
return False
_cmd_output(output)
sys.stdout.write(output)
sys.stdout.flush()
return True
def poll(self) -> None:
self.make_sure_we_are_executing()
if self.child_fd:
got_output = False
for _fileno, _event in self.poll_object.poll(0.1):
try:
output = os.read(self.child_fd, 8192)
got_output = True
self.peak(output)
self._trace_log += output
except OSError:
self.ended = time.time()
break
if self.ended or (not got_output and not _pid_exists(self.pid)):
self.ended = time.time()
try:
wait_status = os.waitpid(self.pid, 0)[1]
self.exit_code = os.waitstatus_to_exitcode(wait_status)
except ChildProcessError:
try:
wait_status = os.waitpid(self.child_fd, 0)[1]
self.exit_code = os.waitstatus_to_exitcode(wait_status)
except ChildProcessError:
self.exit_code = 1
def execute(self) -> bool:
import pty
if (old_dir := os.getcwd()) != self.working_directory:
os.chdir(str(self.working_directory))
# Note: If for any reason, we get a Python exception between here
# and until os.close(), the traceback will get locked inside
# stdout of the child_fd object. `os.read(self.child_fd, 8192)` is the
# only way to get the traceback without losing it.
self.pid, self.child_fd = pty.fork()
# https://stackoverflow.com/questions/4022600/python-pty-fork-how-does-it-work
if not self.pid:
_cmd_history(self.cmd)
try:
os.execve(self.cmd[0], list(self.cmd), {**os.environ, **self.environment_vars})
except FileNotFoundError:
error(f'{self.cmd[0]} does not exist.')
self.exit_code = 1
return False
else:
# Only parent process moves back to the original working directory
os.chdir(old_dir)
self.started = time.time()
self.poll_object.register(self.child_fd, EPOLLIN | EPOLLHUP)
return True
def decode(self, encoding: str = 'UTF-8') -> str:
return self._trace_log.decode(encoding)
class SysCommand:
def __init__(
self,
cmd: str | list[str],
peek_output: bool | None = False,
environment_vars: dict[str, str] | None = None,
working_directory: str = './',
remove_vt100_escape_codes_from_lines: bool = True,
):
self.cmd = cmd
self.peek_output = peek_output
self.environment_vars = environment_vars
self.working_directory = working_directory
self.remove_vt100_escape_codes_from_lines = remove_vt100_escape_codes_from_lines
self.session: SysCommandWorker | None = None
self.create_session()
def __enter__(self) -> SysCommandWorker | None:
return self.session
def __exit__(self, exc_type: type[BaseException] | None, exc_value: BaseException | None, traceback: TracebackType | None) -> None:
# b''.join(sys_command('sync')) # No need to, since the underlying fs() object will call sync.
# TODO: https://stackoverflow.com/questions/28157929/how-to-safely-handle-an-exception-inside-a-context-manager
if exc_type is not None:
error(str(exc_value))
def __iter__(self, *args: list[Any], **kwargs: dict[str, Any]) -> Iterator[bytes]:
if self.session:
yield from self.session
def __getitem__(self, key: slice) -> bytes:
if not self.session:
raise KeyError('SysCommand() does not have an active session.')
elif type(key) is slice:
start = key.start or 0
end = key.stop or len(self.session._trace_log)
return self.session._trace_log[start:end]
else:
raise ValueError("SysCommand() doesn't have key & value pairs, only slices, SysCommand('ls')[:10] as an example.")
@override
def __repr__(self, *args: list[Any], **kwargs: dict[str, Any]) -> str:
return self.decode('UTF-8', errors='backslashreplace') or ''
def create_session(self) -> bool:
"""
Initiates a :ref:`SysCommandWorker` session in this class ``.session``.
It then proceeds to poll the process until it ends, after which it also
clears any printed output if ``.peek_output=True``.
"""
if self.session:
return True
with SysCommandWorker(
self.cmd,
peek_output=self.peek_output,
environment_vars=self.environment_vars,
remove_vt100_escape_codes_from_lines=self.remove_vt100_escape_codes_from_lines,
working_directory=self.working_directory,
) as session:
self.session = session
while not self.session.ended:
self.session.poll()
if self.peek_output:
sys.stdout.write('\n')
sys.stdout.flush()
return True
def decode(self, encoding: str = 'utf-8', errors: str = 'backslashreplace', strip: bool = True) -> str:
if not self.session:
raise ValueError('No session available to decode')
val = self.session._trace_log.decode(encoding, errors=errors)
if strip:
return val.strip()
return val
def output(self, remove_cr: bool = True) -> bytes:
if not self.session:
raise ValueError('No session available')
if remove_cr:
return self.session._trace_log.replace(b'\r\n', b'\n')
return self.session._trace_log
@property
def exit_code(self) -> int | None:
if self.session:
return self.session.exit_code
else:
return None
@property
def trace_log(self) -> bytes | None:
if self.session:
return self.session._trace_log
return None
def run(
cmd: list[str],
input_data: bytes | None = None,
) -> subprocess.CompletedProcess[bytes]:
_cmd_history(cmd)
return subprocess.run(
cmd,
input=input_data,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
check=True,
)
def locate_binary(name: str) -> str:
if path := which(name):
return path
raise RequirementError(f'Binary {name} does not exist.')
def _pid_exists(pid: int) -> bool:
try:
return any(subprocess.check_output(['ps', '--no-headers', '-o', 'pid', '-p', str(pid)]).strip())
except subprocess.CalledProcessError:
return False
def _cmd_history(cmd: list[str]) -> None:
content = f'{time.time()} {cmd}\n'
_append_log('cmd_history.txt', content)
def _cmd_output(output: str) -> None:
_append_log('cmd_output.txt', output)
def _append_log(file: str, content: str) -> None:
path = logger.directory / file
change_perm = not path.exists()
try:
with path.open('a') as f:
f.write(content)
if change_perm:
path.chmod(stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP)
except (PermissionError, FileNotFoundError):
# If the file does not exist, ignore the error
pass
================================================
FILE: archinstall/lib/configuration.py
================================================
import json
import readline
import stat
from pathlib import Path
from typing import Any
from pydantic import TypeAdapter
from archinstall.lib.args import ArchConfig
from archinstall.lib.crypt import encrypt
from archinstall.lib.menu.helpers import Confirmation, Selection
from archinstall.lib.menu.util import get_password, prompt_dir
from archinstall.lib.output import debug, logger, warn
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType
class ConfigurationOutput:
def __init__(self, config: ArchConfig):
"""
Configuration output handler to parse the existing
configuration data structure and prepare for output on the
console and for saving it to configuration files
:param config: Archinstall configuration object
:type config: ArchConfig
"""
self._config = config
self._default_save_path = logger.directory
self._user_config_file = Path('user_configuration.json')
self._user_creds_file = Path('user_credentials.json')
@property
def user_configuration_file(self) -> Path:
return self._user_config_file
@property
def user_credentials_file(self) -> Path:
return self._user_creds_file
def user_config_to_json(self) -> str:
config = self._config.safe_config()
adapter = TypeAdapter(dict[str, Any])
python_dict = adapter.dump_python(config)
return json.dumps(python_dict, indent=4, sort_keys=True)
def user_credentials_to_json(self) -> str:
config = self._config.unsafe_config()
adapter = TypeAdapter(dict[str, Any])
python_dict = adapter.dump_python(config)
return json.dumps(python_dict, indent=4, sort_keys=True)
def write_debug(self) -> None:
debug(' -- Chosen configuration --')
debug(self.user_config_to_json())
async def confirm_config(self) -> bool:
header = f'{tr("The specified configuration will be applied")}. '
header += tr('Would you like to continue?') + '\n'
group = MenuItemGroup.yes_no()
group.set_preview_for_all(lambda x: self.user_config_to_json())
result = await Confirmation(
group=group,
header=header,
allow_skip=False,
preset=True,
preview_location='bottom',
preview_header=tr('Configuration preview'),
).show()
if not result.get_value():
return False
return True
def _is_valid_path(self, dest_path: Path) -> bool:
dest_path_ok = dest_path.exists() and dest_path.is_dir()
if not dest_path_ok:
warn(
f'Destination directory {dest_path.resolve()} does not exist or is not a directory\n.',
'Configuration files can not be saved',
)
return dest_path_ok
def save_user_config(self, dest_path: Path) -> None:
if self._is_valid_path(dest_path):
target = dest_path / self._user_config_file
target.write_text(self.user_config_to_json())
target.chmod(stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP)
def save_user_creds(
self,
dest_path: Path,
password: str | None = None,
) -> None:
data = self.user_credentials_to_json()
if password:
data = encrypt(password, data)
if self._is_valid_path(dest_path):
target = dest_path / self._user_creds_file
target.write_text(data)
target.chmod(stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP)
def save(
self,
dest_path: Path | None = None,
creds: bool = False,
password: str | None = None,
) -> None:
save_path = dest_path or self._default_save_path
if self._is_valid_path(save_path):
self.save_user_config(save_path)
if creds:
self.save_user_creds(save_path, password=password)
async def save_config(config: ArchConfig) -> None:
def preview(item: MenuItem) -> str | None:
match item.value:
case 'user_config':
serialized = config_output.user_config_to_json()
return f'{config_output.user_configuration_file}\n{serialized}'
case 'user_creds':
if maybe_serial := config_output.user_credentials_to_json():
return f'{config_output.user_credentials_file}\n{maybe_serial}'
return tr('No configuration')
case 'all':
output = [str(config_output.user_configuration_file)]
config_output.user_credentials_to_json()
output.append(str(config_output.user_credentials_file))
return '\n'.join(output)
return None
config_output = ConfigurationOutput(config)
items = [
MenuItem(
tr('Save user configuration (including disk layout)'),
value='user_config',
preview_action=preview,
),
MenuItem(
tr('Save user credentials'),
value='user_creds',
preview_action=preview,
),
MenuItem(
tr('Save all'),
value='all',
preview_action=preview,
),
]
group = MenuItemGroup(items)
result = await Selection[str](
group,
allow_skip=True,
preview_location='right',
).show()
match result.type_:
case ResultType.Skip:
return
case ResultType.Selection:
save_option = result.get_value()
case _:
raise ValueError('Unhandled return type')
readline.set_completer_delims('\t\n=')
readline.parse_and_bind('tab: complete')
dest_path = await prompt_dir(
tr('Enter a directory for the configuration(s) to be saved') + '\n',
allow_skip=True,
)
if not dest_path:
return
header = tr('Do you want to save the configuration file(s) to {}?').format(dest_path)
save_result = await Confirmation(
header=header,
allow_skip=False,
preset=True,
).show()
match save_result.type_:
case ResultType.Selection:
if not save_result.get_value():
return
case _:
return
debug(f'Saving configuration files to {dest_path.absolute()}')
header = tr('Do you want to encrypt the user_credentials.json file?')
enc_result = await Confirmation(
header=header,
allow_skip=False,
preset=False,
).show()
enc_password: str | None = None
if enc_result.type_ == ResultType.Selection:
if enc_result.get_value():
password = await get_password(
header=tr('Credentials file encryption password'),
allow_skip=True,
)
if password:
enc_password = password.plaintext
match save_option:
case 'user_config':
config_output.save_user_config(dest_path)
case 'user_creds':
config_output.save_user_creds(dest_path, password=enc_password)
case 'all':
config_output.save(dest_path, creds=True, password=enc_password)
================================================
FILE: archinstall/lib/crypt.py
================================================
import base64
import ctypes
import os
from pathlib import Path
from cryptography.fernet import Fernet, InvalidToken
from cryptography.hazmat.primitives.kdf.argon2 import Argon2id
from archinstall.lib.output import debug
libcrypt = ctypes.CDLL('libcrypt.so')
libcrypt.crypt.argtypes = [ctypes.c_char_p, ctypes.c_char_p]
libcrypt.crypt.restype = ctypes.c_char_p
libcrypt.crypt_gensalt.argtypes = [ctypes.c_char_p, ctypes.c_ulong, ctypes.c_char_p, ctypes.c_int]
libcrypt.crypt_gensalt.restype = ctypes.c_char_p
LOGIN_DEFS = Path('/etc/login.defs')
def _search_login_defs(key: str) -> str | None:
defs = LOGIN_DEFS.read_text()
for line in defs.split('\n'):
line = line.strip()
if line.startswith('#'):
continue
if line.startswith(key):
value = line.split(' ')[1]
return value
return None
def crypt_gen_salt(prefix: str | bytes, rounds: int) -> bytes:
if isinstance(prefix, str):
prefix = prefix.encode('utf-8')
setting = libcrypt.crypt_gensalt(prefix, rounds, None, 0)
if setting is None:
raise ValueError(f'crypt_gensalt() returned NULL for prefix {prefix!r} and rounds {rounds}')
return setting
def crypt_yescrypt(plaintext: str) -> str:
"""
By default chpasswd in Arch uses PAM to hash the password with crypt_yescrypt
the PAM code https://github.com/linux-pam/linux-pam/blob/master/modules/pam_unix/support.c
shows that the hashing rounds are determined from YESCRYPT_COST_FACTOR in /etc/login.defs
If no value was specified (or commented out) a default of 5 is chosen
"""
value = _search_login_defs('YESCRYPT_COST_FACTOR')
if value is not None:
rounds = int(value)
if rounds < 3:
rounds = 3
elif rounds > 11:
rounds = 11
else:
rounds = 5
debug(f'Creating yescrypt hash with rounds {rounds}')
enc_plaintext = plaintext.encode('utf-8')
salt = crypt_gen_salt('$y$', rounds)
crypt_hash = libcrypt.crypt(enc_plaintext, salt)
if crypt_hash is None:
raise ValueError('crypt() returned NULL')
return crypt_hash.decode('utf-8')
def _get_fernet(salt: bytes, password: str) -> Fernet:
# https://cryptography.io/en/latest/hazmat/primitives/key-derivation-functions/#argon2id
kdf = Argon2id(
salt=salt,
length=32,
iterations=1,
lanes=4,
memory_cost=64 * 1024,
ad=None,
secret=None,
)
key = base64.urlsafe_b64encode(
kdf.derive(
password.encode('utf-8'),
),
)
return Fernet(key)
def encrypt(password: str, data: str) -> str:
salt = os.urandom(16)
f = _get_fernet(salt, password)
token = f.encrypt(data.encode('utf-8'))
encoded_token = base64.urlsafe_b64encode(token).decode('utf-8')
encoded_salt = base64.urlsafe_b64encode(salt).decode('utf-8')
return f'$argon2id${encoded_salt}${encoded_token}'
def decrypt(data: str, password: str) -> str:
_, algo, encoded_salt, encoded_token = data.split('$')
salt = base64.urlsafe_b64decode(encoded_salt)
token = base64.urlsafe_b64decode(encoded_token)
if algo != 'argon2id':
raise ValueError(f'Unsupported algorithm {algo!r}')
f = _get_fernet(salt, password)
try:
decrypted = f.decrypt(token)
except InvalidToken:
raise ValueError('Invalid password')
return decrypted.decode('utf-8')
================================================
FILE: archinstall/lib/disk/__init__.py
================================================
================================================
FILE: archinstall/lib/disk/device_handler.py
================================================
import logging
import os
from pathlib import Path
from parted import Device, Disk, DiskException, FileSystem, Geometry, IOException, Partition, PartitionException, freshDisk, getAllDevices, getDevice, newDisk
from archinstall.lib.command import SysCommand
from archinstall.lib.disk.utils import (
find_lsblk_info,
get_all_lsblk_info,
get_lsblk_info,
mount,
udev_sync,
umount,
)
from archinstall.lib.exceptions import DiskError, SysCallError, UnknownFilesystemFormat
from archinstall.lib.luks import Luks2, unlock_luks2_dev
from archinstall.lib.models.device import (
DEFAULT_ITER_TIME,
BDevice,
BtrfsMountOption,
DeviceModification,
DiskEncryption,
FilesystemType,
LsblkInfo,
ModificationStatus,
PartitionFlag,
PartitionGUID,
PartitionModification,
PartitionTable,
SubvolumeModification,
Unit,
_BtrfsSubvolumeInfo,
_DeviceInfo,
_PartitionInfo,
)
from archinstall.lib.models.users import Password
from archinstall.lib.output import debug, error, info, log
from archinstall.lib.utils.util import is_subpath
class DeviceHandler:
_TMP_BTRFS_MOUNT = Path('/mnt/arch_btrfs')
def __init__(self) -> None:
self._devices: dict[Path, BDevice] = {}
self._partition_table = PartitionTable.default()
self.load_devices()
@property
def devices(self) -> list[BDevice]:
return list(self._devices.values())
@property
def partition_table(self) -> PartitionTable:
return self._partition_table
def load_devices(self) -> None:
block_devices = {}
udev_sync()
all_lsblk_info = get_all_lsblk_info()
devices = getAllDevices()
devices.extend(self.get_loop_devices())
archiso_mountpoint = Path('/run/archiso/airootfs')
for device in devices:
dev_lsblk_info = find_lsblk_info(device.path, all_lsblk_info)
if not dev_lsblk_info:
debug(f'Device lsblk info not found: {device.path}')
continue
if dev_lsblk_info.type == 'rom':
continue
# exclude archiso loop device
if dev_lsblk_info.mountpoint == archiso_mountpoint:
continue
try:
if dev_lsblk_info.pttype:
disk = newDisk(device)
else:
disk = freshDisk(device, self.partition_table.value)
except DiskException as err:
debug(f'Unable to get disk from {device.path}: {err}')
continue
device_info = _DeviceInfo.from_disk(disk)
partition_infos = []
for partition in disk.partitions:
lsblk_info = find_lsblk_info(partition.path, dev_lsblk_info.children)
if not lsblk_info:
debug(f'Partition lsblk info not found: {partition.path}')
continue
fs_type = self._determine_fs_type(partition, lsblk_info)
subvol_infos = []
if fs_type == FilesystemType.Btrfs:
subvol_infos = self.get_btrfs_info(partition.path, lsblk_info)
partition_infos.append(
_PartitionInfo.from_partition(
partition,
lsblk_info,
fs_type,
subvol_infos,
),
)
block_device = BDevice(disk, device_info, partition_infos)
block_devices[block_device.device_info.path] = block_device
self._devices = block_devices
@staticmethod
def get_loop_devices() -> list[Device]:
devices = []
try:
loop_devices = SysCommand(['losetup', '-a'])
except SysCallError as err:
debug(f'Failed to get loop devices: {err}')
else:
for ld_info in str(loop_devices).splitlines():
try:
loop_device_path, _ = ld_info.split(':', maxsplit=1)
except ValueError:
continue
try:
loop_device = getDevice(loop_device_path)
except IOException as err:
debug(f'Failed to get loop device: {err}')
else:
devices.append(loop_device)
return devices
def _determine_fs_type(
self,
partition: Partition,
lsblk_info: LsblkInfo | None = None,
) -> FilesystemType | None:
try:
if partition.fileSystem:
if partition.fileSystem.type == FilesystemType.LinuxSwap.parted_value:
return FilesystemType.LinuxSwap
return FilesystemType(partition.fileSystem.type)
elif lsblk_info is not None:
return FilesystemType(lsblk_info.fstype) if lsblk_info.fstype else None
return None
except ValueError:
debug(f'Could not determine the filesystem: {partition.fileSystem}')
return None
def get_device(self, path: Path) -> BDevice | None:
return self._devices.get(path, None)
def get_device_by_partition_path(self, partition_path: Path) -> BDevice | None:
partition = self.find_partition(partition_path)
if partition:
device: Device = partition.disk.device
return self.get_device(Path(device.path))
return None
def find_partition(self, path: Path) -> _PartitionInfo | None:
for device in self._devices.values():
part = next(filter(lambda x: str(x.path) == str(path), device.partition_infos), None)
if part is not None:
return part
return None
def get_uuid_for_path(self, path: Path) -> str | None:
partition = self.find_partition(path)
return partition.partuuid if partition else None
def get_btrfs_info(
self,
dev_path: Path,
lsblk_info: LsblkInfo | None = None,
) -> list[_BtrfsSubvolumeInfo]:
if not lsblk_info:
lsblk_info = get_lsblk_info(dev_path)
subvol_infos: list[_BtrfsSubvolumeInfo] = []
if not lsblk_info.mountpoint:
mount(dev_path, self._TMP_BTRFS_MOUNT, create_target_mountpoint=True)
mountpoint = self._TMP_BTRFS_MOUNT
else:
# when multiple subvolumes are mounted then the lsblk output may look like
# "mountpoint": "/mnt/archinstall/var/log"
# "mountpoints": ["/mnt/archinstall/var/log", "/mnt/archinstall/home", ..]
# so we'll determine the minimum common path and assume that's the root
try:
common_path = os.path.commonpath(lsblk_info.mountpoints)
except ValueError:
return subvol_infos
mountpoint = Path(common_path)
try:
result = SysCommand(f'btrfs subvolume list {mountpoint}').decode()
except SysCallError as err:
debug(f'Failed to read btrfs subvolume information: {err}')
return subvol_infos
# It is assumed that lsblk will contain the fields as
# "mountpoints": ["/mnt/archinstall/log", "/mnt/archinstall/home", "/mnt/archinstall", ...]
# "fsroots": ["/@log", "/@home", "/@"...]
# we'll thereby map the fsroot, which are the mounted filesystem roots
# to the corresponding mountpoints
btrfs_subvol_info = dict(zip(lsblk_info.fsroots, lsblk_info.mountpoints))
# ID 256 gen 16 top level 5 path @
for line in result.splitlines():
# expected output format:
# ID 257 gen 8 top level 5 path @home
name = Path(line.split(' ')[-1])
sub_vol_mountpoint = btrfs_subvol_info.get('/' / name, None)
subvol_infos.append(_BtrfsSubvolumeInfo(name, sub_vol_mountpoint))
if not lsblk_info.mountpoint:
umount(dev_path)
return subvol_infos
def format(
self,
fs_type: FilesystemType,
path: Path,
additional_parted_options: list[str] = [],
) -> None:
mkfs_type = fs_type.value
command = None
options = []
match fs_type:
case FilesystemType.Btrfs | FilesystemType.Xfs:
# Force overwrite
options.append('-f')
case FilesystemType.F2fs:
options.append('-f')
options.extend(('-O', 'extra_attr'))
case FilesystemType.Ext2 | FilesystemType.Ext3 | FilesystemType.Ext4:
# Force create
options.append('-F')
case FilesystemType.Fat12 | FilesystemType.Fat16 | FilesystemType.Fat32:
mkfs_type = 'fat'
# Set FAT size
options.extend(('-F', fs_type.value.removeprefix(mkfs_type)))
case FilesystemType.LinuxSwap:
command = 'mkswap'
case _:
raise UnknownFilesystemFormat(f'Filetype "{fs_type.value}" is not supported')
if not command:
command = f'mkfs.{mkfs_type}'
cmd = [command, *options, *additional_parted_options, str(path)]
debug('Formatting filesystem:', ' '.join(cmd))
try:
SysCommand(cmd)
except SysCallError as err:
msg = f'Could not format {path} with {fs_type.value}: {err.message}'
error(msg)
raise DiskError(msg) from err
def encrypt(
self,
dev_path: Path,
mapper_name: str | None,
enc_password: Password | None,
lock_after_create: bool = True,
iter_time: int = DEFAULT_ITER_TIME,
) -> Luks2:
luks_handler = Luks2(
dev_path,
mapper_name=mapper_name,
password=enc_password,
)
key_file = luks_handler.encrypt(iter_time=iter_time)
udev_sync()
luks_handler.unlock(key_file=key_file)
if not luks_handler.mapper_dev:
raise DiskError('Failed to unlock luks device')
if lock_after_create:
debug(f'luks2 locking device: {dev_path}')
luks_handler.lock()
return luks_handler
def format_encrypted(
self,
dev_path: Path,
mapper_name: str | None,
fs_type: FilesystemType,
enc_conf: DiskEncryption,
) -> None:
if not enc_conf.encryption_password:
raise ValueError('No encryption password provided')
luks_handler = Luks2(
dev_path,
mapper_name=mapper_name,
password=enc_conf.encryption_password,
)
key_file = luks_handler.encrypt(iter_time=enc_conf.iter_time)
udev_sync()
luks_handler.unlock(key_file=key_file)
if not luks_handler.mapper_dev:
raise DiskError('Failed to unlock luks device')
info(f'luks2 formatting mapper dev: {luks_handler.mapper_dev}')
self.format(fs_type, luks_handler.mapper_dev)
info(f'luks2 locking device: {dev_path}')
luks_handler.lock()
def _setup_partition(
self,
part_mod: PartitionModification,
block_device: BDevice,
disk: Disk,
requires_delete: bool,
) -> None:
# when we require a delete and the partition to be (re)created
# already exists then we have to delete it first
if requires_delete and part_mod.status in [ModificationStatus.Modify, ModificationStatus.Delete]:
info(f'Delete existing partition: {part_mod.safe_dev_path}')
part_info = self.find_partition(part_mod.safe_dev_path)
if not part_info:
raise DiskError(f'No partition for dev path found: {part_mod.safe_dev_path}')
disk.deletePartition(part_info.partition)
if part_mod.status == ModificationStatus.Delete:
return
start_sector = part_mod.start.convert(
Unit.sectors,
block_device.device_info.sector_size,
)
length_sector = part_mod.length.convert(
Unit.sectors,
block_device.device_info.sector_size,
)
geometry = Geometry(
device=block_device.disk.device,
start=start_sector.value,
length=length_sector.value,
)
fs_value = part_mod.safe_fs_type.parted_value
filesystem = FileSystem(type=fs_value, geometry=geometry)
partition = Partition(
disk=disk,
type=part_mod.type.get_partition_code(),
fs=filesystem,
geometry=geometry,
)
for flag in part_mod.flags:
partition.setFlag(flag.flag_id)
debug(f'\tType: {part_mod.type.value}')
debug(f'\tFilesystem: {fs_value}')
debug(f'\tGeometry: {start_sector.value} start sector, {length_sector.value} length')
try:
disk.addPartition(partition=partition, constraint=disk.device.optimalAlignedConstraint)
except PartitionException as ex:
raise DiskError(f'Unable to add partition, most likely due to overlapping sectors: {ex}') from ex
if disk.type == PartitionTable.GPT.value:
if part_mod.is_root():
partition.type_uuid = PartitionGUID.LINUX_ROOT_X86_64.bytes
elif PartitionFlag.LINUX_HOME not in part_mod.flags and part_mod.is_home():
partition.setFlag(PartitionFlag.LINUX_HOME.flag_id)
# the partition has a path now that it has been added
part_mod.dev_path = Path(partition.path)
def fetch_part_info(self, path: Path) -> LsblkInfo:
lsblk_info = get_lsblk_info(path)
if not lsblk_info.partn:
debug(f'Unable to determine new partition number: {path}\n{lsblk_info}')
raise DiskError(f'Unable to determine new partition number: {path}')
if not lsblk_info.partuuid:
debug(f'Unable to determine new partition uuid: {path}\n{lsblk_info}')
raise DiskError(f'Unable to determine new partition uuid: {path}')
if not lsblk_info.uuid:
debug(f'Unable to determine new uuid: {path}\n{lsblk_info}')
raise DiskError(f'Unable to determine new uuid: {path}')
debug(f'partition information found: {lsblk_info.model_dump_json()}')
return lsblk_info
def create_lvm_btrfs_subvolumes(
self,
path: Path,
btrfs_subvols: list[SubvolumeModification],
mount_options: list[str],
) -> None:
info(f'Creating subvolumes: {path}')
mount(path, self._TMP_BTRFS_MOUNT, create_target_mountpoint=True)
for sub_vol in sorted(btrfs_subvols, key=lambda x: x.name):
debug(f'Creating subvolume: {sub_vol.name}')
subvol_path = self._TMP_BTRFS_MOUNT / sub_vol.name
SysCommand(f'btrfs subvolume create -p {subvol_path}')
if BtrfsMountOption.nodatacow.value in mount_options:
try:
SysCommand(f'chattr +C {subvol_path}')
except SysCallError as err:
raise DiskError(f'Could not set nodatacow attribute at {subvol_path}: {err}')
if BtrfsMountOption.compress.value in mount_options:
try:
SysCommand(f'chattr +c {subvol_path}')
except SysCallError as err:
raise DiskError(f'Could not set compress attribute at {subvol_path}: {err}')
umount(path)
def create_btrfs_volumes(
self,
part_mod: PartitionModification,
enc_conf: DiskEncryption | None = None,
) -> None:
info(f'Creating subvolumes: {part_mod.safe_dev_path}')
# unlock the partition first if it's encrypted
if enc_conf is not None and part_mod in enc_conf.partitions:
if not part_mod.mapper_name:
raise ValueError('No device path specified for modification')
luks_handler = unlock_luks2_dev(
part_mod.safe_dev_path,
part_mod.mapper_name,
enc_conf.encryption_password,
)
if not luks_handler.mapper_dev:
raise DiskError('Failed to unlock luks device')
dev_path = luks_handler.mapper_dev
else:
luks_handler = None
dev_path = part_mod.safe_dev_path
mount(
dev_path,
self._TMP_BTRFS_MOUNT,
create_target_mountpoint=True,
options=part_mod.mount_options,
)
for sub_vol in sorted(part_mod.btrfs_subvols, key=lambda x: x.name):
debug(f'Creating subvolume: {sub_vol.name}')
subvol_path = self._TMP_BTRFS_MOUNT / sub_vol.name
SysCommand(f'btrfs subvolume create -p {subvol_path}')
umount(dev_path)
if luks_handler is not None and luks_handler.mapper_dev is not None:
luks_handler.lock()
def umount_all_existing(self, device_path: Path) -> None:
debug(f'Unmounting all existing partitions: {device_path}')
existing_partitions = self._devices[device_path].partition_infos
for partition in existing_partitions:
debug(f'Unmounting: {partition.path}')
# un-mount for existing encrypted partitions
if partition.fs_type == FilesystemType.Crypto_luks:
Luks2(partition.path).lock()
else:
umount(partition.path, recursive=True)
def partition(
self,
modification: DeviceModification,
partition_table: PartitionTable | None = None,
) -> None:
"""
Create a partition table on the block device and create all partitions.
"""
partition_table = partition_table or self.partition_table
# WARNING: the entire device will be wiped and all data lost
if modification.wipe:
if partition_table.is_mbr() and len(modification.partitions) > 3:
raise DiskError('Too many partitions on disk, MBR disks can only have 3 primary partitions')
self.wipe_dev(modification.device)
disk = freshDisk(modification.device.disk.device, partition_table.value)
else:
info(f'Use existing device: {modification.device_path}')
disk = modification.device.disk
info(f'Creating partitions: {modification.device_path}')
# don't touch existing partitions
filtered_part = [p for p in modification.partitions if not p.exists()]
for part_mod in filtered_part:
# if the entire disk got nuked then we don't have to delete
# any existing partitions anymore because they're all gone already
requires_delete = modification.wipe is False
self._setup_partition(part_mod, modification.device, disk, requires_delete=requires_delete)
disk.commit()
# Wipe filesystem/LVM signatures from newly created partitions
# to prevent "signature detected" errors
for part_mod in filtered_part:
if part_mod.dev_path:
debug(f'Wiping signatures from: {part_mod.dev_path}')
SysCommand(f'wipefs --all {part_mod.dev_path}')
# Sync with udev after wiping signatures
if filtered_part:
udev_sync()
def detect_pre_mounted_mods(self, base_mountpoint: Path) -> list[DeviceModification]:
part_mods: dict[Path, list[PartitionModification]] = {}
for device in self.devices:
for part_info in device.partition_infos:
for mountpoint in part_info.mountpoints:
if is_subpath(mountpoint, base_mountpoint):
path = Path(part_info.disk.device.path)
part_mods.setdefault(path, [])
part_mod = PartitionModification.from_existing_partition(part_info)
if part_mod.mountpoint:
part_mod.mountpoint = mountpoint.root / mountpoint.relative_to(base_mountpoint)
else:
for subvol in part_mod.btrfs_subvols:
if sm := subvol.mountpoint:
subvol.mountpoint = sm.root / sm.relative_to(base_mountpoint)
part_mods[path].append(part_mod)
break
device_mods: list[DeviceModification] = []
for device_path, mods in part_mods.items():
device_mod = DeviceModification(self._devices[device_path], False, mods)
device_mods.append(device_mod)
return device_mods
def partprobe(self, path: Path | None = None) -> None:
if path is not None:
command = f'partprobe {path}'
else:
command = 'partprobe'
try:
debug(f'Calling partprobe: {command}')
SysCommand(command)
except SysCallError as err:
if 'have been written, but we have been unable to inform the kernel of the change' in str(err):
log(f'Partprobe was not able to inform the kernel of the new disk state (ignoring error): {err}', fg='gray', level=logging.INFO)
else:
error(f'"{command}" failed to run (continuing anyway): {err}')
def _wipe(self, dev_path: Path) -> None:
"""
Wipe a device (partition or otherwise) of meta-data, be it file system, LVM, etc.
@param dev_path: Device path of the partition to be wiped.
@type dev_path: str
"""
with open(dev_path, 'wb') as p:
p.write(bytearray(1024))
def wipe_dev(self, block_device: BDevice) -> None:
"""
Wipe the block device of meta-data, be it file system, LVM, etc.
This is not intended to be secure, but rather to ensure that
auto-discovery tools don't recognize anything here.
"""
info(f'Wiping partitions and metadata: {block_device.device_info.path}')
for partition in block_device.partition_infos:
luks = Luks2(partition.path)
if luks.isLuks():
luks.erase()
self._wipe(partition.path)
self._wipe(block_device.device_info.path)
device_handler = DeviceHandler()
================================================
FILE: archinstall/lib/disk/disk_menu.py
================================================
from dataclasses import dataclass
from typing import override
from archinstall.lib.disk.encryption_menu import DiskEncryptionMenu
from archinstall.lib.interactions.disk_conf import select_disk_config, select_lvm_config
from archinstall.lib.menu.abstract_menu import AbstractSubMenu
from archinstall.lib.menu.helpers import Selection
from archinstall.lib.models.device import (
DEFAULT_ITER_TIME,
BtrfsOptions,
DiskEncryption,
DiskLayoutConfiguration,
DiskLayoutType,
EncryptionType,
LvmConfiguration,
SnapshotConfig,
SnapshotType,
)
from archinstall.lib.output import FormattedOutput
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType
@dataclass
class DiskMenuConfig:
disk_config: DiskLayoutConfiguration | None
lvm_config: LvmConfiguration | None
btrfs_snapshot_config: SnapshotConfig | None
disk_encryption: DiskEncryption | None
class DiskLayoutConfigurationMenu(AbstractSubMenu[DiskMenuConfig]):
def __init__(self, disk_layout_config: DiskLayoutConfiguration | None):
if not disk_layout_config:
self._disk_menu_config = DiskMenuConfig(
disk_config=None,
lvm_config=None,
btrfs_snapshot_config=None,
disk_encryption=None,
)
else:
snapshot_config = disk_layout_config.btrfs_options.snapshot_config if disk_layout_config.btrfs_options else None
self._disk_menu_config = DiskMenuConfig(
disk_config=disk_layout_config,
lvm_config=disk_layout_config.lvm_config,
disk_encryption=disk_layout_config.disk_encryption,
btrfs_snapshot_config=snapshot_config,
)
menu_options = self._define_menu_options()
self._item_group = MenuItemGroup(menu_options, sort_items=False, checkmarks=True)
super().__init__(
self._item_group,
self._disk_menu_config,
allow_reset=True,
)
def _define_menu_options(self) -> list[MenuItem]:
return [
MenuItem(
text=tr('Partitioning'),
action=self._select_disk_layout_config,
value=self._disk_menu_config.disk_config,
preview_action=self._prev_disk_layouts,
key='disk_config',
),
MenuItem(
text='LVM',
action=self._select_lvm_config,
value=self._disk_menu_config.lvm_config,
preview_action=self._prev_lvm_config,
dependencies=[self._check_dep_lvm],
key='lvm_config',
),
MenuItem(
text=tr('Disk encryption'),
action=self._select_disk_encryption,
preview_action=self._prev_disk_encryption,
dependencies=['disk_config'],
key='disk_encryption',
),
MenuItem(
text='Btrfs snapshots',
action=self._select_btrfs_snapshots,
value=self._disk_menu_config.btrfs_snapshot_config,
preview_action=self._prev_btrfs_snapshots,
dependencies=[self._check_dep_btrfs],
key='btrfs_snapshot_config',
),
]
@override
async def show(self) -> DiskLayoutConfiguration | None: # type: ignore[override]
config: DiskMenuConfig | None = await super().show()
if config is None:
return None
if config.disk_config:
config.disk_config.lvm_config = self._disk_menu_config.lvm_config
config.disk_config.btrfs_options = BtrfsOptions(snapshot_config=self._disk_menu_config.btrfs_snapshot_config)
config.disk_config.disk_encryption = self._disk_menu_config.disk_encryption
return config.disk_config
return None
def _check_dep_lvm(self) -> bool:
disk_layout_conf: DiskLayoutConfiguration | None = self._menu_item_group.find_by_key('disk_config').value
if disk_layout_conf and disk_layout_conf.config_type == DiskLayoutType.Default:
return True
return False
def _check_dep_btrfs(self) -> bool:
disk_layout_conf: DiskLayoutConfiguration | None = self._menu_item_group.find_by_key('disk_config').value
if disk_layout_conf:
return disk_layout_conf.has_default_btrfs_vols()
return False
async def _select_disk_encryption(self, preset: DiskEncryption | None) -> DiskEncryption | None:
disk_config: DiskLayoutConfiguration | None = self._item_group.find_by_key('disk_config').value
lvm_config: LvmConfiguration | None = self._item_group.find_by_key('lvm_config').value
if not disk_config:
return preset
modifications = disk_config.device_modifications
if not DiskEncryption.validate_enc(modifications, lvm_config):
return None
disk_encryption = await DiskEncryptionMenu(modifications, lvm_config=lvm_config, preset=preset).show()
return disk_encryption
async def _select_disk_layout_config(self, preset: DiskLayoutConfiguration | None) -> DiskLayoutConfiguration | None:
disk_config = await select_disk_config(preset)
if disk_config != preset:
self._menu_item_group.find_by_key('lvm_config').value = None
self._menu_item_group.find_by_key('disk_encryption').value = None
return disk_config
async def _select_lvm_config(self, preset: LvmConfiguration | None) -> LvmConfiguration | None:
disk_config: DiskLayoutConfiguration | None = self._item_group.find_by_key('disk_config').value
if not disk_config:
return preset
lvm_config = await select_lvm_config(disk_config, preset=preset)
if lvm_config != preset:
self._menu_item_group.find_by_key('disk_encryption').value = None
return lvm_config
async def _select_btrfs_snapshots(self, preset: SnapshotConfig | None) -> SnapshotConfig | None:
preset_type = preset.snapshot_type if preset else None
group = MenuItemGroup.from_enum(
SnapshotType,
sort_items=True,
preset=preset_type,
)
result = await Selection[SnapshotType](
group,
allow_reset=True,
allow_skip=True,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Reset:
return None
case ResultType.Selection:
return SnapshotConfig(snapshot_type=result.get_value())
def _prev_disk_layouts(self, item: MenuItem) -> str | None:
if not item.value:
return None
disk_layout_conf = item.get_value()
if disk_layout_conf.config_type == DiskLayoutType.Pre_mount:
msg = tr('Configuration type: {}').format(disk_layout_conf.config_type.display_msg()) + '\n'
msg += tr('Mountpoint') + ': ' + str(disk_layout_conf.mountpoint)
return msg
device_mods = [d for d in disk_layout_conf.device_modifications if d.partitions]
if device_mods:
output_partition = '{}: {}\n'.format(tr('Configuration'), disk_layout_conf.config_type.display_msg())
output_btrfs = ''
for mod in device_mods:
# create partition table
partition_table = FormattedOutput.as_table(mod.partitions)
output_partition += f'{mod.device_path}: {mod.device.device_info.model}\n'
output_partition += '{}: {}\n'.format(tr('Wipe'), mod.wipe)
output_partition += partition_table + '\n'
# create btrfs table
btrfs_partitions = [p for p in mod.partitions if p.btrfs_subvols]
for partition in btrfs_partitions:
output_btrfs += FormattedOutput.as_table(partition.btrfs_subvols) + '\n'
output = output_partition + output_btrfs
return output.rstrip()
return None
def _prev_lvm_config(self, item: MenuItem) -> str | None:
if not item.value:
return None
lvm_config: LvmConfiguration = item.value
output = '{}: {}\n'.format(tr('Configuration'), lvm_config.config_type.display_msg())
for vol_gp in lvm_config.vol_groups:
pv_table = FormattedOutput.as_table(vol_gp.pvs)
output += '{}:\n{}'.format(tr('Physical volumes'), pv_table)
output += f'\nVolume Group: {vol_gp.name}'
lvm_volumes = FormattedOutput.as_table(vol_gp.volumes)
output += '\n\n{}:\n{}'.format(tr('Volumes'), lvm_volumes)
return output
return None
def _prev_btrfs_snapshots(self, item: MenuItem) -> str | None:
if not item.value:
return None
snapshot_config: SnapshotConfig = item.value
return tr('Snapshot type: {}').format(snapshot_config.snapshot_type.value)
def _prev_disk_encryption(self, item: MenuItem) -> str | None:
disk_config: DiskLayoutConfiguration | None = self._item_group.find_by_key('disk_config').value
lvm_config: LvmConfiguration | None = self._item_group.find_by_key('lvm_config').value
enc_config: DiskEncryption | None = item.value
if disk_config and not DiskEncryption.validate_enc(disk_config.device_modifications, lvm_config):
return tr('LVM disk encryption with more than 2 partitions is currently not supported')
if enc_config:
enc_type = enc_config.encryption_type
output = tr('Encryption type') + f': {enc_type.type_to_text()}\n'
if enc_config.encryption_password:
output += tr('Password') + f': {enc_config.encryption_password.hidden()}\n'
if enc_type != EncryptionType.NoEncryption:
output += tr('Iteration time') + f': {enc_config.iter_time or DEFAULT_ITER_TIME}ms\n'
if enc_config.partitions:
output += f'Partitions: {len(enc_config.partitions)} selected\n'
elif enc_config.lvm_volumes:
output += f'LVM volumes: {len(enc_config.lvm_volumes)} selected\n'
if enc_config.hsm_device:
output += f'HSM: {enc_config.hsm_device.manufacturer}'
return output
return None
================================================
FILE: archinstall/lib/disk/encryption_menu.py
================================================
from pathlib import Path
from typing import override
from archinstall.lib.disk.fido import Fido2
from archinstall.lib.menu.abstract_menu import AbstractSubMenu
from archinstall.lib.menu.helpers import Input, Selection, Table
from archinstall.lib.menu.menu_helper import MenuHelper
from archinstall.lib.menu.util import get_password
from archinstall.lib.models.device import (
DEFAULT_ITER_TIME,
DeviceModification,
DiskEncryption,
EncryptionType,
Fido2Device,
LvmConfiguration,
LvmVolume,
PartitionModification,
)
from archinstall.lib.models.users import Password
from archinstall.lib.output import FormattedOutput
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType
class DiskEncryptionMenu(AbstractSubMenu[DiskEncryption]):
def __init__(
self,
device_modifications: list[DeviceModification],
lvm_config: LvmConfiguration | None = None,
preset: DiskEncryption | None = None,
):
if preset:
self._enc_config = preset
else:
self._enc_config = DiskEncryption()
self._device_modifications = device_modifications
self._lvm_config = lvm_config
menu_options = self._define_menu_options()
self._item_group = MenuItemGroup(menu_options, sort_items=False, checkmarks=True)
super().__init__(
self._item_group,
self._enc_config,
allow_reset=True,
)
def _define_menu_options(self) -> list[MenuItem]:
return [
MenuItem(
text=tr('Encryption type'),
action=lambda x: select_encryption_type(self._lvm_config, x),
value=self._enc_config.encryption_type,
preview_action=self._prev_type,
key='encryption_type',
),
MenuItem(
text=tr('Encryption password'),
action=lambda x: select_encrypted_password(),
value=self._enc_config.encryption_password,
dependencies=[self._check_dep_enc_type],
preview_action=self._prev_password,
key='encryption_password',
),
MenuItem(
text=tr('Iteration time'),
action=select_iteration_time,
value=self._enc_config.iter_time,
dependencies=[self._check_dep_enc_type],
preview_action=self._prev_iter_time,
key='iter_time',
),
MenuItem(
text=tr('Partitions'),
action=lambda x: select_partitions_to_encrypt(self._device_modifications, x),
value=self._enc_config.partitions,
dependencies=[self._check_dep_partitions],
preview_action=self._prev_partitions,
key='partitions',
),
MenuItem(
text=tr('LVM volumes'),
action=self._select_lvm_vols,
value=self._enc_config.lvm_volumes,
dependencies=[self._check_dep_lvm_vols],
preview_action=self._prev_lvm_vols,
key='lvm_volumes',
),
MenuItem(
text=tr('HSM'),
action=select_hsm,
value=self._enc_config.hsm_device,
dependencies=[self._check_dep_enc_type],
preview_action=self._prev_hsm,
key='hsm_device',
),
]
async def _select_lvm_vols(self, preset: list[LvmVolume]) -> list[LvmVolume]:
if self._lvm_config:
return await select_lvm_vols_to_encrypt(self._lvm_config, preset=preset)
return []
def _check_dep_enc_type(self) -> bool:
enc_type: EncryptionType | None = self._item_group.find_by_key('encryption_type').value
if enc_type and enc_type != EncryptionType.NoEncryption:
return True
return False
def _check_dep_partitions(self) -> bool:
enc_type: EncryptionType | None = self._item_group.find_by_key('encryption_type').value
if enc_type and enc_type in [EncryptionType.Luks, EncryptionType.LvmOnLuks]:
return True
return False
def _check_dep_lvm_vols(self) -> bool:
enc_type: EncryptionType | None = self._item_group.find_by_key('encryption_type').value
if enc_type and enc_type == EncryptionType.LuksOnLvm:
return True
return False
@override
async def show(self) -> DiskEncryption | None:
enc_config = await super().show()
if enc_config is None:
return None
enc_type: EncryptionType | None = self._item_group.find_by_key('encryption_type').value
enc_password: Password | None = self._item_group.find_by_key('encryption_password').value
iter_time: int | None = self._item_group.find_by_key('iter_time').value
enc_partitions = self._item_group.find_by_key('partitions').value
enc_lvm_vols = self._item_group.find_by_key('lvm_volumes').value
assert enc_type is not None
assert enc_partitions is not None
assert enc_lvm_vols is not None
if enc_type in [EncryptionType.Luks, EncryptionType.LvmOnLuks] and enc_partitions:
enc_lvm_vols = []
if enc_type == EncryptionType.LuksOnLvm:
enc_partitions = []
if enc_type != EncryptionType.NoEncryption and enc_password and (enc_partitions or enc_lvm_vols):
return DiskEncryption(
encryption_password=enc_password,
encryption_type=enc_type,
partitions=enc_partitions,
lvm_volumes=enc_lvm_vols,
hsm_device=enc_config.hsm_device,
iter_time=iter_time or DEFAULT_ITER_TIME,
)
return None
def _preview(self, item: MenuItem) -> str | None:
output = ''
if (enc_type := self._prev_type(item)) is not None:
output += enc_type
if (enc_pwd := self._prev_password(item)) is not None:
output += f'\n{enc_pwd}'
if (iter_time := self._prev_iter_time(item)) is not None:
output += f'\n{iter_time}'
if (fido_device := self._prev_hsm(item)) is not None:
output += f'\n{fido_device}'
if (partitions := self._prev_partitions(item)) is not None:
output += f'\n\n{partitions}'
if (lvm := self._prev_lvm_vols(item)) is not None:
output += f'\n\n{lvm}'
if not output:
return None
return output
def _prev_type(self, item: MenuItem) -> str | None:
enc_type = self._item_group.find_by_key('encryption_type').value
if enc_type:
enc_text = enc_type.type_to_text()
return f'{tr("Encryption type")}: {enc_text}'
return None
def _prev_password(self, item: MenuItem) -> str | None:
if item.value:
return f'{tr("Encryption password")}: {item.value.hidden()}'
return None
def _prev_partitions(self, item: MenuItem) -> str | None:
if item.value:
output = tr('Partitions to be encrypted') + '\n'
output += FormattedOutput.as_table(item.value)
return output.rstrip()
return None
def _prev_lvm_vols(self, item: MenuItem) -> str | None:
if item.value:
output = tr('LVM volumes to be encrypted') + '\n'
output += FormattedOutput.as_table(item.value)
return output.rstrip()
return None
def _prev_hsm(self, item: MenuItem) -> str | None:
if not item.value:
return None
fido_device: Fido2Device = item.value
output = str(fido_device.path)
output += f' ({fido_device.manufacturer}, {fido_device.product})'
return f'{tr("HSM device")}: {output}'
def _prev_iter_time(self, item: MenuItem) -> str | None:
if item.value:
iter_time = item.value
enc_type = self._item_group.find_by_key('encryption_type').value
if iter_time and enc_type != EncryptionType.NoEncryption:
return f'{tr("Iteration time")}: {iter_time}ms'
return None
async def select_encryption_type(
lvm_config: LvmConfiguration | None = None,
preset: EncryptionType | None = None,
) -> EncryptionType | None:
options: list[EncryptionType] = []
if lvm_config:
options = [EncryptionType.LvmOnLuks, EncryptionType.LuksOnLvm]
else:
options = [EncryptionType.Luks]
if not preset:
preset = options[0]
preset_value = preset.type_to_text()
items = [MenuItem(o.type_to_text(), value=o) for o in options]
group = MenuItemGroup(items)
group.set_focus_by_value(preset_value)
result = await Selection[EncryptionType](
group,
header=tr('Select encryption type'),
allow_skip=True,
allow_reset=True,
).show()
match result.type_:
case ResultType.Reset:
return None
case ResultType.Skip:
return preset
case ResultType.Selection:
return result.get_value()
async def select_encrypted_password() -> Password | None:
header = tr('Enter disk encryption password (leave blank for no encryption)') + '\n'
password = await get_password(
header=header,
allow_skip=True,
)
return password
async def select_hsm(preset: Fido2Device | None = None) -> Fido2Device | None:
header = tr('Select a FIDO2 device to use for HSM') + '\n'
try:
fido_devices = Fido2.get_cryptenroll_devices()
except ValueError:
return None
if fido_devices:
group = MenuHelper(data=fido_devices).create_menu_group()
result = await Selection[Fido2Device](
group,
header=header,
allow_skip=True,
).show()
match result.type_:
case ResultType.Reset:
return None
case ResultType.Skip:
return preset
case ResultType.Selection:
return result.get_value()
return None
async def select_partitions_to_encrypt(
modification: list[DeviceModification],
preset: list[PartitionModification],
) -> list[PartitionModification]:
partitions: list[PartitionModification] = []
# do not allow encrypting the boot partition
for mod in modification:
partitions += [p for p in mod.partitions if p.mountpoint != Path('/boot') and not p.is_swap()]
# do not allow encrypting existing partitions that are not marked as wipe
avail_partitions = [p for p in partitions if not p.exists()]
if avail_partitions:
group = MenuItemGroup.from_objects(partitions)
group.set_selected_by_value(preset)
result = await Table[PartitionModification](
header=tr('Select disks for the installation'),
group=group,
allow_skip=True,
multi=True,
).show()
match result.type_:
case ResultType.Reset:
return []
case ResultType.Skip:
return preset
case ResultType.Selection:
partitions = result.get_values()
return partitions
return []
async def select_lvm_vols_to_encrypt(
lvm_config: LvmConfiguration,
preset: list[LvmVolume],
) -> list[LvmVolume]:
volumes: list[LvmVolume] = lvm_config.get_all_volumes()
if volumes:
group = MenuItemGroup.from_objects(volumes)
group.set_selected_by_value(preset)
result = await Table[LvmVolume](
header=tr('Select disks for the installation'),
group=group,
allow_skip=True,
multi=True,
).show()
match result.type_:
case ResultType.Reset:
return []
case ResultType.Skip:
return preset
case ResultType.Selection:
volumes = result.get_values()
return volumes
return []
async def select_iteration_time(preset: int | None = None) -> int | None:
header = tr('Enter iteration time for LUKS encryption (in milliseconds)') + '\n'
header += tr('Higher values increase security but slow down boot time') + '\n'
header += tr(f'Default: {DEFAULT_ITER_TIME}ms, Recommended range: 1000-60000') + '\n'
def validate_iter_time(value: str) -> str | None:
try:
iter_time = int(value)
if iter_time < 100:
return tr('Iteration time must be at least 100ms')
if iter_time > 120000:
return tr('Iteration time must be at most 120000ms')
return None
except ValueError:
return tr('Please enter a valid number')
result = await Input(
header=header,
allow_skip=True,
default_value=str(preset) if preset else str(DEFAULT_ITER_TIME),
validator_callback=validate_iter_time,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Selection:
if not result.get_value():
return preset
return int(result.get_value())
case ResultType.Reset:
return None
================================================
FILE: archinstall/lib/disk/fido.py
================================================
import getpass
from pathlib import Path
from typing import ClassVar
from archinstall.lib.command import SysCommand, SysCommandWorker
from archinstall.lib.exceptions import SysCallError
from archinstall.lib.models.device import Fido2Device
from archinstall.lib.models.users import Password
from archinstall.lib.output import error, info
from archinstall.lib.utils.encoding import clear_vt100_escape_codes_from_str
class Fido2:
_loaded_cryptsetup: bool = False
_loaded_u2f: bool = False
_cryptenroll_devices: ClassVar[list[Fido2Device]] = []
_u2f_devices: ClassVar[list[Fido2Device]] = []
@classmethod
def get_fido2_devices(cls) -> list[Fido2Device]:
"""
fido2-tool output example:
/dev/hidraw4: vendor=0x1050, product=0x0407 (Yubico YubiKey OTP+FIDO+CCID)
"""
if not cls._loaded_u2f:
cls._loaded_u2f = True
try:
ret = SysCommand('fido2-token -L').decode()
except Exception as e:
error(f'failed to read fido2 devices: {e}')
return []
fido_devices = clear_vt100_escape_codes_from_str(ret)
if not fido_devices:
return []
for line in fido_devices.splitlines():
path, details = line.replace(',', '').split(':', maxsplit=1)
_, product, manufacturer = details.strip().split(' ', maxsplit=2)
cls._u2f_devices.append(Fido2Device(Path(path.strip()), manufacturer.strip(), product.strip().split('=')[1]))
return cls._u2f_devices
@classmethod
def get_cryptenroll_devices(cls, reload: bool = False) -> list[Fido2Device]:
"""
Uses systemd-cryptenroll to list the FIDO2 devices
connected that supports FIDO2.
Some devices might show up in udevadm as FIDO2 compliant
when they are in fact not.
The drawback of systemd-cryptenroll is that it uses human readable format.
That means we get this weird table like structure that is of no use.
So we'll look for `MANUFACTURER` and `PRODUCT`, we take their index
and we split each line based on those positions.
Output example:
PATH MANUFACTURER PRODUCT
/dev/hidraw1 Yubico YubiKey OTP+FIDO+CCID
"""
# to prevent continuous reloading which will slow
# down moving the cursor in the menu
if not cls._loaded_cryptsetup or reload:
try:
ret = SysCommand('systemd-cryptenroll --fido2-device=list').decode()
except SysCallError:
error('fido2 support is most likely not installed')
raise ValueError('HSM devices can not be detected, is libfido2 installed?')
fido_devices = clear_vt100_escape_codes_from_str(ret)
manufacturer_pos = 0
product_pos = 0
devices = []
for line in fido_devices.split('\r\n'):
if '/dev' not in line:
manufacturer_pos = line.find('MANUFACTURER')
product_pos = line.find('PRODUCT')
continue
path = line[:manufacturer_pos].rstrip()
manufacturer = line[manufacturer_pos:product_pos].rstrip()
product = line[product_pos:]
devices.append(
Fido2Device(Path(path), manufacturer, product),
)
cls._loaded_cryptsetup = True
cls._cryptenroll_devices = devices
return cls._cryptenroll_devices
@staticmethod
def fido2_enroll(hsm_device: Fido2Device, dev_path: Path, password: Password) -> None:
worker = SysCommandWorker(f'systemd-cryptenroll --fido2-device={hsm_device.path} {dev_path}', peek_output=True)
pw_inputted = False
pin_inputted = False
info('You might need to touch the FIDO2 device to unlock it if no prompt comes up after 3 seconds')
while worker.is_alive():
if pw_inputted is False:
if bytes(f'please enter current passphrase for disk {dev_path}', 'UTF-8') in worker._trace_log.lower():
worker.write(bytes(password.plaintext, 'UTF-8'))
pw_inputted = True
elif pin_inputted is False:
if bytes('please enter security token pin', 'UTF-8') in worker._trace_log.lower():
worker.write(bytes(getpass.getpass(' '), 'UTF-8'))
pin_inputted = True
================================================
FILE: archinstall/lib/disk/filesystem.py
================================================
import math
import time
from pathlib import Path
from archinstall.lib.disk.device_handler import device_handler
from archinstall.lib.disk.lvm import (
lvm_group_info,
lvm_pv_create,
lvm_vg_create,
lvm_vol_create,
lvm_vol_info,
lvm_vol_reduce,
)
from archinstall.lib.disk.utils import udev_sync
from archinstall.lib.luks import Luks2
from archinstall.lib.models.device import (
DiskEncryption,
DiskLayoutConfiguration,
DiskLayoutType,
EncryptionType,
FilesystemType,
LvmConfiguration,
LvmVolume,
LvmVolumeGroup,
PartitionModification,
SectorSize,
Size,
Unit,
)
from archinstall.lib.output import debug, info
class FilesystemHandler:
def __init__(self, disk_config: DiskLayoutConfiguration):
self._disk_config = disk_config
self._enc_config = disk_config.disk_encryption
def perform_filesystem_operations(self) -> None:
if self._disk_config.config_type == DiskLayoutType.Pre_mount:
debug('Disk layout configuration is set to pre-mount, not performing any operations')
return
device_mods = [d for d in self._disk_config.device_modifications if d.partitions]
if not device_mods:
debug('No modifications required')
return
# Setup the blockdevice, filesystem (and optionally encryption).
# Once that's done, we'll hand over to perform_installation()
# make sure all devices are unmounted
for mod in device_mods:
device_handler.umount_all_existing(mod.device_path)
for mod in device_mods:
device_handler.partition(mod)
udev_sync()
if self._disk_config.lvm_config:
for mod in device_mods:
if boot_part := mod.get_boot_partition():
debug(f'Formatting boot partition: {boot_part.dev_path}')
self._format_partitions([boot_part])
self.perform_lvm_operations()
else:
for mod in device_mods:
self._format_partitions(mod.partitions)
for part_mod in mod.partitions:
if part_mod.fs_type == FilesystemType.Btrfs and part_mod.is_create_or_modify():
device_handler.create_btrfs_volumes(part_mod, enc_conf=self._enc_config)
def _format_partitions(
self,
partitions: list[PartitionModification],
) -> None:
"""
Format can be given an overriding path, for instance /dev/null to test
the formatting functionality and in essence the support for the given filesystem.
"""
# don't touch existing partitions
create_or_modify_parts = [p for p in partitions if p.is_create_or_modify()]
self._validate_partitions(create_or_modify_parts)
for part_mod in create_or_modify_parts:
# partition will be encrypted
if self._enc_config is not None and part_mod in self._enc_config.partitions:
device_handler.format_encrypted(
part_mod.safe_dev_path,
part_mod.mapper_name,
part_mod.safe_fs_type,
self._enc_config,
)
else:
device_handler.format(part_mod.safe_fs_type, part_mod.safe_dev_path)
# synchronize with udev before using lsblk
udev_sync()
lsblk_info = device_handler.fetch_part_info(part_mod.safe_dev_path)
part_mod.partn = lsblk_info.partn
part_mod.partuuid = lsblk_info.partuuid
part_mod.uuid = lsblk_info.uuid
def _validate_partitions(self, partitions: list[PartitionModification]) -> None:
checks = {
# verify that all partitions have a path set (which implies that they have been created)
lambda x: x.dev_path is None: ValueError('When formatting, all partitions must have a path set'),
# crypto luks is not a valid file system type
lambda x: x.fs_type is FilesystemType.Crypto_luks: ValueError('Crypto luks cannot be set as a filesystem type'),
# file system type must be set
lambda x: x.fs_type is None: ValueError('File system type must be set for modification'),
}
for check, exc in checks.items():
found = next(filter(check, partitions), None)
if found is not None:
raise exc
def perform_lvm_operations(self) -> None:
info('Setting up LVM config...')
if not self._disk_config.lvm_config:
return
if self._enc_config:
self._setup_lvm_encrypted(
self._disk_config.lvm_config,
self._enc_config,
)
else:
self._setup_lvm(self._disk_config.lvm_config)
self._format_lvm_vols(self._disk_config.lvm_config)
def _setup_lvm_encrypted(self, lvm_config: LvmConfiguration, enc_config: DiskEncryption) -> None:
if enc_config.encryption_type == EncryptionType.LvmOnLuks:
enc_mods = self._encrypt_partitions(enc_config, lock_after_create=False)
self._setup_lvm(lvm_config, enc_mods)
self._format_lvm_vols(lvm_config)
# Don't close LVM or LUKS during setup - keep everything active
# The installation phase will handle unlocking and mounting
# Closing causes "parent leaked" and lvchange errors
elif enc_config.encryption_type == EncryptionType.LuksOnLvm:
self._setup_lvm(lvm_config)
enc_vols = self._encrypt_lvm_vols(lvm_config, enc_config, False)
self._format_lvm_vols(lvm_config, enc_vols)
# Lock LUKS devices but keep LVM active
# LVM volumes must remain active for later re-unlock during installation
for luks in enc_vols.values():
luks.lock()
def _setup_lvm(
self,
lvm_config: LvmConfiguration,
enc_mods: dict[PartitionModification, Luks2] = {},
) -> None:
self._lvm_create_pvs(lvm_config, enc_mods)
for vg in lvm_config.vol_groups:
pv_dev_paths = self._get_all_pv_dev_paths(vg.pvs, enc_mods)
lvm_vg_create(pv_dev_paths, vg.name)
# figure out what the actual available size in the group is
vg_info = lvm_group_info(vg.name)
if not vg_info:
raise ValueError('Unable to fetch VG info')
# the actual available LVM Group size will be smaller than the
# total PVs size due to reserved metadata storage etc.
# so we'll have a look at the total avail. size, check the delta
# to the desired sizes and subtract some equally from the actually
# created volume
avail_size = vg_info.vg_size
desired_size = sum([vol.length for vol in vg.volumes], Size(0, Unit.B, SectorSize.default()))
delta = desired_size - avail_size
delta_bytes = delta.convert(Unit.B)
# Round the offset up to the next physical extent (PE, 4 MiB by default)
# to ensure lvcreate`s internal rounding doesn`t consume space reserved
# for subsequent logical volumes.
pe_bytes = Size(4, Unit.MiB, SectorSize.default()).convert(Unit.B)
pe_count = math.ceil(delta_bytes.value / pe_bytes.value)
rounded_offset = pe_count * pe_bytes.value
max_vol_offset = Size(rounded_offset, Unit.B, SectorSize.default())
max_vol = max(vg.volumes, key=lambda x: x.length)
for lv in vg.volumes:
offset = max_vol_offset if lv == max_vol else None
debug(f'vg: {vg.name}, vol: {lv.name}, offset: {offset}')
lvm_vol_create(vg.name, lv, offset)
while True:
debug('Fetching LVM volume info')
lv_info = lvm_vol_info(lv.name)
if lv_info is not None:
break
time.sleep(1)
self._lvm_vol_handle_e2scrub(vg)
def _format_lvm_vols(
self,
lvm_config: LvmConfiguration,
enc_vols: dict[LvmVolume, Luks2] = {},
) -> None:
for vol in lvm_config.get_all_volumes():
if enc_vol := enc_vols.get(vol, None):
if not enc_vol.mapper_dev:
raise ValueError('No mapper device defined')
path = enc_vol.mapper_dev
else:
path = vol.safe_dev_path
# wait a bit otherwise the mkfs will fail as it can't
# find the mapper device yet
device_handler.format(vol.fs_type, path)
if vol.fs_type == FilesystemType.Btrfs:
device_handler.create_lvm_btrfs_subvolumes(path, vol.btrfs_subvols, vol.mount_options)
def _lvm_create_pvs(
self,
lvm_config: LvmConfiguration,
enc_mods: dict[PartitionModification, Luks2] = {},
) -> None:
pv_paths: set[Path] = set()
for vg in lvm_config.vol_groups:
pv_paths |= self._get_all_pv_dev_paths(vg.pvs, enc_mods)
lvm_pv_create(pv_paths)
def _get_all_pv_dev_paths(
self,
pvs: list[PartitionModification],
enc_mods: dict[PartitionModification, Luks2] = {},
) -> set[Path]:
pv_paths: set[Path] = set()
for pv in pvs:
if enc_pv := enc_mods.get(pv, None):
if mapper := enc_pv.mapper_dev:
pv_paths.add(mapper)
else:
pv_paths.add(pv.safe_dev_path)
return pv_paths
def _encrypt_lvm_vols(
self,
lvm_config: LvmConfiguration,
enc_config: DiskEncryption,
lock_after_create: bool = True,
) -> dict[LvmVolume, Luks2]:
enc_vols: dict[LvmVolume, Luks2] = {}
for vol in lvm_config.get_all_volumes():
if vol in enc_config.lvm_volumes:
luks_handler = device_handler.encrypt(
vol.safe_dev_path,
vol.mapper_name,
enc_config.encryption_password,
lock_after_create,
iter_time=enc_config.iter_time,
)
enc_vols[vol] = luks_handler
return enc_vols
def _encrypt_partitions(
self,
enc_config: DiskEncryption,
lock_after_create: bool = True,
) -> dict[PartitionModification, Luks2]:
enc_mods: dict[PartitionModification, Luks2] = {}
for mod in self._disk_config.device_modifications:
partitions = mod.partitions
# don't touch existing partitions
filtered_part = [p for p in partitions if not p.exists()]
self._validate_partitions(filtered_part)
enc_mods = {}
for part_mod in filtered_part:
if part_mod in enc_config.partitions:
luks_handler = device_handler.encrypt(
part_mod.safe_dev_path,
part_mod.mapper_name,
enc_config.encryption_password,
lock_after_create=lock_after_create,
iter_time=enc_config.iter_time,
)
enc_mods[part_mod] = luks_handler
return enc_mods
def _lvm_vol_handle_e2scrub(self, vol_gp: LvmVolumeGroup) -> None:
# from arch wiki:
# If a logical volume will be formatted with ext4, leave at least 256 MiB
# free space in the volume group to allow using e2scrub
if any([vol.fs_type == FilesystemType.Ext4 for vol in vol_gp.volumes]):
largest_vol = max(vol_gp.volumes, key=lambda x: x.length)
lvm_vol_reduce(
largest_vol.safe_dev_path,
Size(256, Unit.MiB, SectorSize.default()),
)
================================================
FILE: archinstall/lib/disk/lvm.py
================================================
import json
import time
from collections.abc import Iterable
from pathlib import Path
from typing import Literal, overload
from archinstall.lib.command import SysCommand, SysCommandWorker
from archinstall.lib.disk.utils import udev_sync
from archinstall.lib.exceptions import SysCallError
from archinstall.lib.models.device import (
LvmGroupInfo,
LvmPVInfo,
LvmVolume,
LvmVolumeGroup,
LvmVolumeInfo,
SectorSize,
Size,
Unit,
)
from archinstall.lib.output import debug
def _lvm_info(
cmd: str,
info_type: Literal['lv', 'vg', 'pvseg'],
) -> LvmVolumeInfo | LvmGroupInfo | LvmPVInfo | None:
raw_info = SysCommand(cmd).decode().split('\n')
# for whatever reason the output sometimes contains
# "File descriptor X leaked leaked on vgs invocation
data = '\n'.join(raw for raw in raw_info if 'File descriptor' not in raw)
debug(f'LVM info: {data}')
reports = json.loads(data)
for report in reports['report']:
if len(report[info_type]) != 1:
raise ValueError('Report does not contain any entry')
entry = report[info_type][0]
match info_type:
case 'pvseg':
return LvmPVInfo(
pv_name=Path(entry['pv_name']),
lv_name=entry['lv_name'],
vg_name=entry['vg_name'],
)
case 'lv':
return LvmVolumeInfo(
lv_name=entry['lv_name'],
vg_name=entry['vg_name'],
lv_size=Size(int(entry['lv_size'][:-1]), Unit.B, SectorSize.default()),
)
case 'vg':
return LvmGroupInfo(
vg_uuid=entry['vg_uuid'],
vg_size=Size(int(entry['vg_size'][:-1]), Unit.B, SectorSize.default()),
)
return None
@overload
def _lvm_info_with_retry(cmd: str, info_type: Literal['lv']) -> LvmVolumeInfo | None: ...
@overload
def _lvm_info_with_retry(cmd: str, info_type: Literal['vg']) -> LvmGroupInfo | None: ...
@overload
def _lvm_info_with_retry(cmd: str, info_type: Literal['pvseg']) -> LvmPVInfo | None: ...
def _lvm_info_with_retry(
cmd: str,
info_type: Literal['lv', 'vg', 'pvseg'],
) -> LvmVolumeInfo | LvmGroupInfo | LvmPVInfo | None:
# Retry for up to 5 mins
max_retries = 100
for attempt in range(max_retries):
try:
return _lvm_info(cmd, info_type)
except ValueError:
if attempt < max_retries - 1:
debug(f'LVM info query failed (attempt {attempt + 1}/{max_retries}), retrying in 3 seconds...')
time.sleep(3)
debug(f'LVM info query failed after {max_retries} attempts')
return None
def lvm_vol_info(lv_name: str) -> LvmVolumeInfo | None:
cmd = f'lvs --reportformat json --unit B -S lv_name={lv_name}'
return _lvm_info_with_retry(cmd, 'lv')
def lvm_group_info(vg_name: str) -> LvmGroupInfo | None:
cmd = f'vgs --reportformat json --unit B -o vg_name,vg_uuid,vg_size -S vg_name={vg_name}'
return _lvm_info_with_retry(cmd, 'vg')
def lvm_pvseg_info(vg_name: str, lv_name: str) -> LvmPVInfo | None:
cmd = f'pvs --segments -o+lv_name,vg_name -S vg_name={vg_name},lv_name={lv_name} --reportformat json '
return _lvm_info_with_retry(cmd, 'pvseg')
def lvm_vol_change(vol: LvmVolume, activate: bool) -> None:
active_flag = 'y' if activate else 'n'
cmd = f'lvchange -a {active_flag} {vol.safe_dev_path}'
debug(f'lvchange volume: {cmd}')
SysCommand(cmd)
def lvm_export_vg(vg: LvmVolumeGroup) -> None:
cmd = f'vgexport {vg.name}'
debug(f'vgexport: {cmd}')
SysCommand(cmd)
def lvm_import_vg(vg: LvmVolumeGroup) -> None:
# Check if the VG is actually exported before trying to import it
check_cmd = f'vgs --noheadings -o vg_exported {vg.name}'
try:
result = SysCommand(check_cmd)
is_exported = result.decode().strip() == 'exported'
except SysCallError:
# VG might not exist yet, skip import
debug(f'Volume group {vg.name} not found, skipping import')
return
if not is_exported:
debug(f'Volume group {vg.name} is already active (not exported), skipping import')
return
cmd = f'vgimport {vg.name}'
debug(f'vgimport: {cmd}')
SysCommand(cmd)
def lvm_vol_reduce(vol_path: Path, amount: Size) -> None:
val = amount.format_size(Unit.B, include_unit=False)
cmd = f'lvreduce -L -{val}B {vol_path}'
debug(f'Reducing LVM volume size: {cmd}')
SysCommand(cmd)
def lvm_pv_create(pvs: Iterable[Path]) -> None:
pvs_str = ' '.join(str(pv) for pv in pvs)
# Signatures are already wiped by wipefs, -f is just for safety
cmd = f'pvcreate -f --yes {pvs_str}'
# note flags used in scripting
debug(f'Creating LVM PVS: {cmd}')
SysCommand(cmd)
# Sync with udev to ensure the PVs are visible
udev_sync()
def lvm_vg_create(pvs: Iterable[Path], vg_name: str) -> None:
pvs_str = ' '.join(str(pv) for pv in pvs)
cmd = f'vgcreate --yes --force {vg_name} {pvs_str}'
debug(f'Creating LVM group: {cmd}')
SysCommand(cmd)
# Sync with udev to ensure the VG is visible
udev_sync()
def lvm_vol_create(vg_name: str, volume: LvmVolume, offset: Size | None = None) -> None:
if offset is not None:
length = volume.length - offset
else:
length = volume.length
length_str = length.format_size(Unit.B, include_unit=False)
cmd = f'lvcreate --yes -L {length_str}B {vg_name} -n {volume.name}'
debug(f'Creating volume: {cmd}')
worker = SysCommandWorker(cmd)
worker.poll()
worker.write(b'y\n', line_ending=False)
volume.vg_name = vg_name
volume.dev_path = Path(f'/dev/{vg_name}/{volume.name}')
================================================
FILE: archinstall/lib/disk/partitioning_menu.py
================================================
import re
from pathlib import Path
from typing import override
from archinstall.lib.disk.subvolume_menu import SubvolumeMenu
from archinstall.lib.menu.helpers import Confirmation, Input, Selection
from archinstall.lib.menu.list_manager import ListManager
from archinstall.lib.menu.util import prompt_dir
from archinstall.lib.models.device import (
BtrfsMountOption,
DeviceModification,
FilesystemType,
ModificationStatus,
PartitionFlag,
PartitionModification,
PartitionTable,
PartitionType,
SectorSize,
Size,
Unit,
)
from archinstall.lib.output import FormattedOutput
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType
class FreeSpace:
def __init__(self, start: Size, end: Size) -> None:
self.start = start
self.end = end
@property
def length(self) -> Size:
return self.end - self.start
def table_data(self) -> dict[str, str]:
"""
Called for displaying data in table format
"""
return {
'Start': self.start.format_size(Unit.sectors, self.start.sector_size, include_unit=False),
'End': self.end.format_size(Unit.sectors, self.start.sector_size, include_unit=False),
'Size': self.length.format_highest(),
}
class DiskSegment:
def __init__(self, segment: PartitionModification | FreeSpace) -> None:
self.segment = segment
def table_data(self) -> dict[str, str]:
"""
Called for displaying data in table format
"""
if isinstance(self.segment, PartitionModification):
return self.segment.table_data()
part_mod = PartitionModification(
status=ModificationStatus.Create,
type=PartitionType._Unknown,
start=self.segment.start,
length=self.segment.length,
)
data = part_mod.table_data()
data.update({'Status': 'free', 'Type': '', 'FS type': ''})
return data
class PartitioningList(ListManager[DiskSegment]):
def __init__(
self,
device_mod: DeviceModification,
partition_table: PartitionTable,
) -> None:
device = device_mod.device
self._device = device
self._wipe = device_mod.wipe
self._buffer = Size(1, Unit.MiB, device.device_info.sector_size)
self._using_gpt = device_mod.using_gpt(partition_table)
self._actions = {
'suggest_partition_layout': tr('Suggest partition layout'),
'remove_added_partitions': tr('Remove all newly added partitions'),
'assign_mountpoint': tr('Assign mountpoint'),
'mark_formatting': tr('Mark/Unmark to be formatted (wipes data)'),
'mark_bootable': tr('Mark/Unmark as bootable'),
}
if self._using_gpt:
self._actions.update(
{
'mark_esp': tr('Mark/Unmark as ESP'),
'mark_xbootldr': tr('Mark/Unmark as XBOOTLDR'),
}
)
self._actions.update(
{
'set_filesystem': tr('Change filesystem'),
'btrfs_mark_compressed': tr('Mark/Unmark as compressed'), # btrfs only
'btrfs_mark_nodatacow': tr('Mark/Unmark as nodatacow'), # btrfs only
'btrfs_set_subvolumes': tr('Set subvolumes'), # btrfs only
'delete_partition': tr('Delete partition'),
}
)
device_partitions = []
if not device_mod.partitions:
# we'll display the existing partitions of the device
for partition in device.partition_infos:
device_partitions.append(
PartitionModification.from_existing_partition(partition),
)
else:
device_partitions = device_mod.partitions
prompt = tr('Partition management: {}').format(device.device_info.path) + '\n'
prompt += tr('Total length: {}').format(device.device_info.total_size.format_size(Unit.MiB))
self._info = prompt + '\n'
display_actions = list(self._actions.values())
super().__init__(
self.as_segments(device_partitions),
display_actions[:1],
display_actions[2:],
self._info + self.wipe_str(),
)
def wipe_str(self) -> str:
return '{}: {}'.format(tr('Wipe'), self._wipe)
def as_segments(self, device_partitions: list[PartitionModification]) -> list[DiskSegment]:
end = self._device.device_info.total_size
if self._using_gpt:
end = end.gpt_end()
end = end.align()
# Reorder device_partitions to move all deleted partitions to the top
device_partitions.sort(key=lambda p: p.is_delete(), reverse=True)
partitions = [DiskSegment(p) for p in device_partitions if not p.is_delete()]
segments = [DiskSegment(p) for p in device_partitions]
if not partitions:
free_space = FreeSpace(self._buffer, end)
if free_space.length > self._buffer:
return segments + [DiskSegment(free_space)]
return segments
first_part_index, first_partition = next(
(i, disk_segment)
for i, disk_segment in enumerate(segments)
if isinstance(disk_segment.segment, PartitionModification) and not disk_segment.segment.is_delete()
)
prev_partition = first_partition
index = 0
for partition in segments[1:]:
index += 1
if isinstance(partition.segment, PartitionModification) and partition.segment.is_delete():
continue
if prev_partition.segment.end < partition.segment.start:
free_space = FreeSpace(prev_partition.segment.end, partition.segment.start)
if free_space.length > self._buffer:
segments.insert(index, DiskSegment(free_space))
index += 1
prev_partition = partition
if first_partition.segment.start > self._buffer:
free_space = FreeSpace(self._buffer, first_partition.segment.start)
if free_space.length > self._buffer:
segments.insert(first_part_index, DiskSegment(free_space))
if partitions[-1].segment.end < end:
free_space = FreeSpace(partitions[-1].segment.end, end)
if free_space.length > self._buffer:
segments.append(DiskSegment(free_space))
return segments
@staticmethod
def get_part_mods(disk_segments: list[DiskSegment]) -> list[PartitionModification]:
return [s.segment for s in disk_segments if isinstance(s.segment, PartitionModification)]
async def show(self) -> DeviceModification | None:
disk_segments = await super()._run()
if not disk_segments:
return None
partitions = self.get_part_mods(disk_segments)
return DeviceModification(self._device, self._wipe, partitions)
@override
async def _run_actions_on_entry(self, entry: DiskSegment) -> None:
# Do not create a menu when the segment is free space
if isinstance(entry.segment, FreeSpace):
self._data = await self.handle_action('', entry, self._data)
else:
await super()._run_actions_on_entry(entry)
@override
def selected_action_display(self, selection: DiskSegment) -> str:
if isinstance(selection.segment, PartitionModification):
if selection.segment.status == ModificationStatus.Create:
return tr('Partition - New')
elif selection.segment.is_delete() and selection.segment.dev_path:
title = tr('Partition') + '\n\n'
title += 'status: delete\n'
title += f'device: {selection.segment.dev_path}\n'
for part in self._device.partition_infos:
if part.path == selection.segment.dev_path:
if part.partuuid:
title += f'partuuid: {part.partuuid}'
return title
return str(selection.segment.dev_path)
return ''
@override
def filter_options(self, selection: DiskSegment, options: list[str]) -> list[str]:
not_filter = []
if isinstance(selection.segment, PartitionModification):
if selection.segment.is_delete():
not_filter = list(self._actions.values())
# only display formatting if the partition exists already
elif not selection.segment.exists():
not_filter += [self._actions['mark_formatting']]
else:
# only allow options if the existing partition
# was marked as formatting, otherwise we run into issues where
# 1. select a new fs -> potentially mark as wipe now
# 2. Switch back to old filesystem -> should unmark wipe now, but
# how do we know it was the original one?
not_filter += [
self._actions['set_filesystem'],
self._actions['mark_bootable'],
]
if self._using_gpt:
not_filter += [
self._actions['mark_esp'],
self._actions['mark_xbootldr'],
]
not_filter += [
self._actions['btrfs_mark_compressed'],
self._actions['btrfs_mark_nodatacow'],
self._actions['btrfs_set_subvolumes'],
]
# non btrfs partitions shouldn't get btrfs options
if selection.segment.fs_type != FilesystemType.Btrfs:
not_filter += [
self._actions['btrfs_mark_compressed'],
self._actions['btrfs_mark_nodatacow'],
self._actions['btrfs_set_subvolumes'],
]
else:
not_filter += [self._actions['assign_mountpoint']]
return [o for o in options if o not in not_filter]
@override
async def handle_action(
self,
action: str,
entry: DiskSegment | None,
data: list[DiskSegment],
) -> list[DiskSegment]:
if not entry:
action_key = [k for k, v in self._actions.items() if v == action][0]
match action_key:
case 'suggest_partition_layout':
part_mods = self.get_part_mods(data)
device_mod = await self._suggest_partition_layout(part_mods)
if device_mod and device_mod.partitions:
data = self.as_segments(device_mod.partitions)
self._wipe = device_mod.wipe
self._prompt = self._info + self.wipe_str()
case 'remove_added_partitions':
if await self._reset_confirmation():
data = [s for s in data if isinstance(s.segment, PartitionModification) and s.segment.is_exists_or_modify()]
elif isinstance(entry.segment, PartitionModification):
partition = entry.segment
action_key = [k for k, v in self._actions.items() if v == action][0]
match action_key:
case 'assign_mountpoint':
new_mountpoint = await self._prompt_mountpoint()
if not partition.is_swap():
if partition.is_home():
partition.invert_flag(PartitionFlag.LINUX_HOME)
partition.mountpoint = new_mountpoint
if partition.is_root():
partition.flags = []
if partition.is_boot():
partition.flags = []
partition.set_flag(PartitionFlag.BOOT)
if self._using_gpt:
partition.set_flag(PartitionFlag.ESP)
if partition.is_home():
partition.flags = []
partition.set_flag(PartitionFlag.LINUX_HOME)
case 'mark_formatting':
await self._prompt_formatting(partition)
case 'mark_bootable':
if not partition.is_swap():
partition.invert_flag(PartitionFlag.BOOT)
case 'mark_esp':
if not partition.is_root() and not partition.is_home() and not partition.is_swap():
if PartitionFlag.XBOOTLDR in partition.flags:
partition.invert_flag(PartitionFlag.XBOOTLDR)
partition.invert_flag(PartitionFlag.ESP)
case 'mark_xbootldr':
if not partition.is_root() and not partition.is_home() and not partition.is_swap():
if PartitionFlag.ESP in partition.flags:
partition.invert_flag(PartitionFlag.ESP)
partition.invert_flag(PartitionFlag.XBOOTLDR)
case 'set_filesystem':
fs_type = await self._prompt_partition_fs_type()
if partition.is_swap():
partition.invert_flag(PartitionFlag.SWAP)
partition.fs_type = fs_type
if partition.is_swap():
partition.mountpoint = None
partition.flags = []
partition.set_flag(PartitionFlag.SWAP)
# btrfs subvolumes will define mountpoints
if fs_type == FilesystemType.Btrfs:
partition.mountpoint = None
case 'btrfs_mark_compressed':
self._toggle_mount_option(partition, BtrfsMountOption.compress)
case 'btrfs_mark_nodatacow':
self._toggle_mount_option(partition, BtrfsMountOption.nodatacow)
case 'btrfs_set_subvolumes':
await self._set_btrfs_subvolumes(partition)
case 'delete_partition':
data = self._delete_partition(partition, data)
else:
part_mods = self.get_part_mods(data)
index = data.index(entry)
part = await self._create_new_partition(entry.segment)
part_mods.insert(index, part)
data = self.as_segments(part_mods)
return data
def _delete_partition(
self,
entry: PartitionModification,
data: list[DiskSegment],
) -> list[DiskSegment]:
if entry.is_exists_or_modify():
entry.status = ModificationStatus.Delete
part_mods = self.get_part_mods(data)
else:
part_mods = [d.segment for d in data if isinstance(d.segment, PartitionModification) and d.segment != entry]
return self.as_segments(part_mods)
def _toggle_mount_option(
self,
partition: PartitionModification,
option: BtrfsMountOption,
) -> None:
if option.value not in partition.mount_options:
if option == BtrfsMountOption.compress:
partition.mount_options = [o for o in partition.mount_options if o != BtrfsMountOption.nodatacow.value]
partition.mount_options = [o for o in partition.mount_options if not o.startswith(BtrfsMountOption.compress.name)]
partition.mount_options.append(option.value)
else:
partition.mount_options = [o for o in partition.mount_options if o != option.value]
async def _set_btrfs_subvolumes(self, partition: PartitionModification) -> None:
subvols = await SubvolumeMenu(
partition.btrfs_subvols,
None,
).show()
if subvols is not None:
partition.btrfs_subvols = subvols
async def _prompt_formatting(self, partition: PartitionModification) -> None:
# an existing partition can toggle between Exist or Modify
if partition.is_modify():
partition.status = ModificationStatus.Exist
return
elif partition.exists():
partition.status = ModificationStatus.Modify
# If we mark a partition for formatting, but the format is CRYPTO LUKS, there's no point in formatting it really
# without asking the user which inner-filesystem they want to use. Since the flag 'encrypted' = True is already set,
# it's safe to change the filesystem for this partition.
if partition.fs_type == FilesystemType.Crypto_luks:
prompt = tr('This partition is currently encrypted, to format it a filesystem has to be specified') + '\n'
fs_type = await self._prompt_partition_fs_type(prompt)
partition.fs_type = fs_type
if fs_type == FilesystemType.Btrfs:
partition.mountpoint = None
async def _prompt_mountpoint(self) -> Path:
header = tr('Partition mount-points are relative to inside the installation, the boot would be /boot as an example.') + '\n\n'
header += tr('Enter a mountpoint')
mountpoint = await prompt_dir(header, validate=False, allow_skip=False)
assert mountpoint
return mountpoint
async def _prompt_partition_fs_type(self, prompt: str | None = None) -> FilesystemType:
fs_types = filter(lambda fs: fs != FilesystemType.Crypto_luks, FilesystemType)
items = [MenuItem(fs.value, value=fs) for fs in fs_types]
group = MenuItemGroup(items, sort_items=False)
result = await Selection[FilesystemType](
group,
header=prompt,
allow_skip=False,
).show()
match result.type_:
case ResultType.Selection:
return result.get_value()
case _:
raise ValueError('Unhandled result type')
def _validate_value(
self,
sector_size: SectorSize,
max_size: Size,
text: str,
) -> Size | None:
match = re.match(r'^\s*([0-9]+)\s*([a-zA-Z%]*)\s*$', text, re.I)
if not match:
return None
str_value, unit = match.groups()
if unit == '%':
value = int(max_size.value * (int(str_value) / 100))
unit = max_size.unit.name
else:
value = int(str_value)
if unit and unit not in Unit.get_all_units():
return None
unit = Unit[unit] if unit else Unit.sectors
size = Size(value, unit, sector_size)
if size.format_highest() == max_size.format_highest():
return max_size
elif size > max_size or size < self._buffer:
return None
return size
async def _prompt_size(self, free_space: FreeSpace) -> Size:
def validate(value: str | None) -> str | None:
if not value:
return None
size = self._validate_value(sector_size, max_size, value)
if not size:
return tr('Invalid size')
return None
device_info = self._device.device_info
sector_size = device_info.sector_size
text = tr('Selected free space segment on device {}:').format(device_info.path) + '\n\n'
free_space_table = FormattedOutput.as_table([free_space])
prompt = text + free_space_table + '\n'
max_sectors = free_space.length.format_size(Unit.sectors, sector_size)
max_bytes = free_space.length.format_size(Unit.B)
prompt += tr('Size: {} / {}').format(max_sectors, max_bytes) + '\n\n'
prompt += tr('All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB...') + '\n'
prompt += tr('If no unit is provided, the value is interpreted as sectors') + '\n\n'
max_size = free_space.length
prompt += tr('Enter a size (default: {}): ').format(max_size.format_highest())
result = await Input(
header=f'{prompt}\b',
allow_skip=True,
validator_callback=validate,
).show()
size: Size | None = None
match result.type_:
case ResultType.Skip:
size = max_size
case ResultType.Selection:
value = result.get_value()
if value:
size = self._validate_value(sector_size, max_size, value)
else:
size = max_size
case _:
raise ValueError('Unhandled result type')
assert size
return size
async def _create_new_partition(self, free_space: FreeSpace) -> PartitionModification:
length = await self._prompt_size(free_space)
fs_type = await self._prompt_partition_fs_type()
mountpoint = None
if fs_type not in (FilesystemType.Btrfs, FilesystemType.LinuxSwap):
mountpoint = await self._prompt_mountpoint()
partition = PartitionModification(
status=ModificationStatus.Create,
type=PartitionType.Primary,
start=free_space.start,
length=length,
fs_type=fs_type,
mountpoint=mountpoint,
)
if partition.mountpoint == Path('/boot'):
partition.set_flag(PartitionFlag.BOOT)
if self._using_gpt:
partition.set_flag(PartitionFlag.ESP)
elif partition.is_swap():
partition.mountpoint = None
partition.flags = []
partition.set_flag(PartitionFlag.SWAP)
return partition
async def _reset_confirmation(self) -> bool:
prompt = tr('This will remove all newly added partitions, continue?') + '\n'
result = await Confirmation(
header=prompt,
allow_skip=False,
allow_reset=False,
).show()
return result.item() == MenuItem.yes()
async def _suggest_partition_layout(
self,
data: list[PartitionModification],
) -> DeviceModification | None:
# if modifications have been done already, inform the user
# that this operation will erase those modifications
if any([not entry.exists() for entry in data]):
if not await self._reset_confirmation():
return None
from archinstall.lib.interactions.disk_conf import suggest_single_disk_layout
return await suggest_single_disk_layout(self._device)
async def manual_partitioning(
device_mod: DeviceModification,
partition_table: PartitionTable,
) -> DeviceModification | None:
menu_list = PartitioningList(device_mod, partition_table)
mod = await menu_list.show()
if not mod:
return None
if menu_list.is_last_choice_cancel():
return device_mod
if mod.partitions:
return mod
return None
================================================
FILE: archinstall/lib/disk/subvolume_menu.py
================================================
from pathlib import Path
from typing import assert_never, override
from archinstall.lib.menu.helpers import Input
from archinstall.lib.menu.list_manager import ListManager
from archinstall.lib.menu.util import prompt_dir
from archinstall.lib.models.device import SubvolumeModification
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.result import ResultType
class SubvolumeMenu(ListManager[SubvolumeModification]):
def __init__(
self,
btrfs_subvols: list[SubvolumeModification],
prompt: str | None = None,
):
self._actions = [
tr('Add subvolume'),
tr('Edit subvolume'),
tr('Delete subvolume'),
]
super().__init__(
btrfs_subvols,
[self._actions[0]],
self._actions[1:],
prompt,
)
async def show(self) -> list[SubvolumeModification] | None:
return await super()._run()
@override
def selected_action_display(self, selection: SubvolumeModification) -> str:
return str(selection.name)
async def _add_subvolume(self, preset: SubvolumeModification | None = None) -> SubvolumeModification | None:
def validate(value: str | None) -> str | None:
if value:
return None
return tr('Value cannot be empty')
result = await Input(
header=tr('Enter subvolume name'),
allow_skip=True,
default_value=str(preset.name) if preset else None,
validator_callback=validate,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Selection:
name = result.get_value()
case ResultType.Reset:
raise ValueError('Unhandled result type')
case _:
assert_never(result.type_)
header = f'{tr("Subvolume name")}: {name}\n\n'
header += tr('Enter subvolume mountpoint')
path = await prompt_dir(
header=header,
allow_skip=True,
validate=True,
must_exist=False,
)
if not path:
return preset
return SubvolumeModification(Path(name), path)
@override
async def handle_action(
self,
action: str,
entry: SubvolumeModification | None,
data: list[SubvolumeModification],
) -> list[SubvolumeModification]:
if action == self._actions[0]:
new_subvolume = await self._add_subvolume()
if new_subvolume is not None:
# in case a user with the same username as an existing user
# was created we'll replace the existing one
data = [d for d in data if d.name != new_subvolume.name]
data += [new_subvolume]
elif entry is not None:
if action == self._actions[1]:
new_subvolume = await self._add_subvolume(entry)
if new_subvolume is not None:
# we'll remove the original subvolume and add the modified version
data = [d for d in data if d.name != entry.name and d.name != new_subvolume.name]
data += [new_subvolume]
elif action == self._actions[2]:
data = [d for d in data if d != entry]
return data
================================================
FILE: archinstall/lib/disk/utils.py
================================================
from pathlib import Path
from pydantic import BaseModel
from archinstall.lib.command import SysCommand
from archinstall.lib.exceptions import DiskError, SysCallError
from archinstall.lib.models.device import LsblkInfo
from archinstall.lib.output import debug, info, warn
class LsblkOutput(BaseModel):
blockdevices: list[LsblkInfo]
def _fetch_lsblk_info(
dev_path: Path | str | None = None,
reverse: bool = False,
full_dev_path: bool = False,
) -> LsblkOutput:
cmd = ['lsblk', '--json', '--bytes', '--output', ','.join(LsblkInfo.fields())]
if reverse:
cmd.append('--inverse')
if full_dev_path:
cmd.append('--paths')
if dev_path:
cmd.append(str(dev_path))
try:
worker = SysCommand(cmd)
except SysCallError as err:
# Get the output minus the message/info from lsblk if it returns a non-zero exit code.
if err.worker_log:
debug(f'Error calling lsblk: {err.worker_log.decode()}')
if dev_path:
raise DiskError(f'Failed to read disk "{dev_path}" with lsblk')
raise err
output = worker.output(remove_cr=False)
return LsblkOutput.model_validate_json(output)
def get_lsblk_info(
dev_path: Path | str,
reverse: bool = False,
full_dev_path: bool = False,
) -> LsblkInfo:
infos = _fetch_lsblk_info(dev_path, reverse=reverse, full_dev_path=full_dev_path)
if infos.blockdevices:
return infos.blockdevices[0]
raise DiskError(f'lsblk failed to retrieve information for "{dev_path}"')
def get_all_lsblk_info() -> list[LsblkInfo]:
return _fetch_lsblk_info().blockdevices
def get_lsblk_output() -> LsblkOutput:
return _fetch_lsblk_info()
def find_lsblk_info(
dev_path: Path | str,
info_list: list[LsblkInfo],
) -> LsblkInfo | None:
if isinstance(dev_path, str):
dev_path = Path(dev_path)
for lsblk_info in info_list:
if lsblk_info.path == dev_path:
return lsblk_info
return None
def get_lsblk_by_mountpoint(mountpoint: Path, as_prefix: bool = False) -> list[LsblkInfo]:
def _check(infos: list[LsblkInfo]) -> list[LsblkInfo]:
devices = []
for entry in infos:
if as_prefix:
matches = [m for m in entry.mountpoints if str(m).startswith(str(mountpoint))]
if matches:
devices += [entry]
elif mountpoint in entry.mountpoints:
devices += [entry]
if len(entry.children) > 0:
if len(match := _check(entry.children)) > 0:
devices += match
return devices
all_info = get_all_lsblk_info()
return _check(all_info)
def disk_layouts() -> str:
try:
lsblk_output = get_lsblk_output()
except SysCallError as err:
warn(f'Could not return disk layouts: {err}')
return ''
return lsblk_output.model_dump_json(indent=4)
def get_parent_device_path(dev_path: Path) -> Path:
lsblk = get_lsblk_info(dev_path)
return Path(f'/dev/{lsblk.pkname}')
def get_unique_path_for_device(dev_path: Path) -> Path | None:
paths = Path('/dev/disk/by-id').glob('*')
linked_targets = {p.resolve(): p for p in paths}
linked_wwn_targets = {p: linked_targets[p] for p in linked_targets if p.name.startswith('wwn-') or p.name.startswith('nvme-eui.')}
if dev_path in linked_wwn_targets:
return linked_wwn_targets[dev_path]
if dev_path in linked_targets:
return linked_targets[dev_path]
return None
def udev_sync() -> None:
try:
SysCommand('udevadm settle')
except SysCallError as err:
debug(f'Failed to synchronize with udev: {err}')
def mount(
dev_path: Path,
target_mountpoint: Path,
mount_fs: str | None = None,
create_target_mountpoint: bool = True,
options: list[str] = [],
) -> None:
if create_target_mountpoint and not target_mountpoint.exists():
target_mountpoint.mkdir(parents=True, exist_ok=True)
if not target_mountpoint.exists():
raise ValueError('Target mountpoint does not exist')
lsblk_info = get_lsblk_info(dev_path)
if target_mountpoint in lsblk_info.mountpoints:
info(f'Device already mounted at {target_mountpoint}')
return
cmd = ['mount']
if len(options):
cmd.extend(('-o', ','.join(options)))
if mount_fs:
cmd.extend(('-t', mount_fs))
cmd.extend((str(dev_path), str(target_mountpoint)))
command = ' '.join(cmd)
debug(f'Mounting {dev_path}: {command}')
try:
SysCommand(command)
except SysCallError as err:
raise DiskError(f'Could not mount {dev_path}: {command}\n{err.message}')
def umount(mountpoint: Path, recursive: bool = False) -> None:
lsblk_info = get_lsblk_info(mountpoint)
if not lsblk_info.mountpoints:
return
debug(f'Partition {mountpoint} is currently mounted at: {[str(m) for m in lsblk_info.mountpoints]}')
cmd = ['umount']
if recursive:
cmd.append('-R')
for path in lsblk_info.mountpoints:
debug(f'Unmounting mountpoint: {path}')
SysCommand(cmd + [str(path)])
def swapon(path: Path) -> None:
try:
SysCommand(['swapon', str(path)])
except SysCallError as err:
raise DiskError(f'Could not enable swap {path}:\n{err.message}')
================================================
FILE: archinstall/lib/exceptions.py
================================================
class RequirementError(Exception):
pass
class DiskError(Exception):
pass
class UnknownFilesystemFormat(Exception):
pass
class SysCallError(Exception):
def __init__(self, message: str, exit_code: int | None = None, worker_log: bytes = b'') -> None:
super().__init__(message)
self.message = message
self.exit_code = exit_code
self.worker_log = worker_log
class HardwareIncompatibilityError(Exception):
pass
class ServiceException(Exception):
pass
class PackageError(Exception):
pass
class Deprecated(Exception):
pass
class DownloadTimeout(Exception):
"""
Download timeout exception raised by DownloadTimer.
"""
================================================
FILE: archinstall/lib/global_menu.py
================================================
from typing import override
from archinstall.lib.applications.application_menu import ApplicationMenu
from archinstall.lib.args import ArchConfig
from archinstall.lib.authentication.authentication_menu import AuthenticationMenu
from archinstall.lib.bootloader.bootloader_menu import BootloaderMenu
from archinstall.lib.configuration import save_config
from archinstall.lib.disk.disk_menu import DiskLayoutConfigurationMenu
from archinstall.lib.hardware import SysInfo
from archinstall.lib.interactions.general_conf import add_number_of_parallel_downloads, select_hostname, select_ntp, select_timezone
from archinstall.lib.interactions.system_conf import select_kernel, select_swap
from archinstall.lib.locale.locale_menu import LocaleMenu
from archinstall.lib.menu.abstract_menu import AbstractMenu, SpecialMenuKey
from archinstall.lib.mirror.mirror_handler import MirrorListHandler
from archinstall.lib.mirror.mirror_menu import MirrorMenu
from archinstall.lib.models.application import ApplicationConfiguration, ZramConfiguration
from archinstall.lib.models.authentication import AuthenticationConfiguration
from archinstall.lib.models.bootloader import Bootloader, BootloaderConfiguration
from archinstall.lib.models.device import DiskLayoutConfiguration, DiskLayoutType, FilesystemType, PartitionModification
from archinstall.lib.models.locale import LocaleConfiguration
from archinstall.lib.models.mirrors import MirrorConfiguration
from archinstall.lib.models.network import NetworkConfiguration, NicType
from archinstall.lib.models.packages import Repository
from archinstall.lib.models.profile import ProfileConfiguration
from archinstall.lib.network.network_menu import select_network
from archinstall.lib.output import FormattedOutput
from archinstall.lib.packages.packages import list_available_packages, select_additional_packages
from archinstall.lib.pacman.config import PacmanConfig
from archinstall.lib.translationhandler import Language, tr, translation_handler
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
class GlobalMenu(AbstractMenu[None]):
def __init__(
self,
arch_config: ArchConfig,
mirror_list_handler: MirrorListHandler | None = None,
skip_boot: bool = False,
title: str | None = None,
) -> None:
self._arch_config = arch_config
self._mirror_list_handler = mirror_list_handler
self._skip_boot = skip_boot
self._uefi = SysInfo.has_uefi()
menu_options = self._get_menu_options()
self._item_group = MenuItemGroup(
menu_options,
sort_items=False,
checkmarks=True,
)
super().__init__(self._item_group, config=arch_config, title=title)
def _get_menu_options(self) -> list[MenuItem]:
menu_options = [
MenuItem(
text=tr('Archinstall language'),
action=self._select_archinstall_language,
preview_action=self._prev_archinstall_language,
key='archinstall_language',
),
MenuItem(
text=tr('Locales'),
value=LocaleConfiguration.default(),
action=self._locale_selection,
preview_action=self._prev_locale,
key='locale_config',
),
MenuItem(
text=tr('Mirrors and repositories'),
action=self._mirror_configuration,
preview_action=self._prev_mirror_config,
key='mirror_config',
),
MenuItem(
text=tr('Disk configuration'),
action=self._select_disk_config,
preview_action=self._prev_disk_config,
mandatory=True,
key='disk_config',
),
MenuItem(
text=tr('Swap'),
value=ZramConfiguration(enabled=True),
action=select_swap,
preview_action=self._prev_swap,
key='swap',
),
MenuItem(
text=tr('Bootloader'),
value=BootloaderConfiguration.get_default(self._uefi, self._skip_boot),
action=self._select_bootloader_config,
preview_action=self._prev_bootloader_config,
key='bootloader_config',
),
MenuItem(
text=tr('Kernels'),
value=['linux'],
action=select_kernel,
preview_action=self._prev_kernel,
mandatory=True,
key='kernels',
),
MenuItem(
text=tr('Hostname'),
value='archlinux',
action=select_hostname,
preview_action=self._prev_hostname,
key='hostname',
),
MenuItem(
text=tr('Authentication'),
action=self._select_authentication,
preview_action=self._prev_authentication,
key='auth_config',
),
MenuItem(
text=tr('Profile'),
action=self._select_profile,
preview_action=self._prev_profile,
key='profile_config',
),
MenuItem(
text=tr('Applications'),
action=self._select_applications,
value=[],
preview_action=self._prev_applications,
key='app_config',
),
MenuItem(
text=tr('Network configuration'),
action=select_network,
value={},
preview_action=self._prev_network_config,
key='network_config',
),
MenuItem(
text=tr('Parallel Downloads'),
action=add_number_of_parallel_downloads,
value=1,
preview_action=self._prev_parallel_dw,
key='parallel_downloads',
),
MenuItem(
text=tr('Additional packages'),
action=self._select_additional_packages,
value=[],
preview_action=self._prev_additional_pkgs,
key='packages',
),
MenuItem(
text=tr('Timezone'),
action=select_timezone,
value='UTC',
preview_action=self._prev_tz,
key='timezone',
),
MenuItem(
text=tr('Automatic time sync (NTP)'),
action=select_ntp,
value=True,
preview_action=self._prev_ntp,
key='ntp',
),
MenuItem(
text='',
read_only=True,
),
MenuItem(
text=tr('Save configuration'),
action=lambda x: self._safe_config(),
key=SpecialMenuKey.SAVE.value,
),
MenuItem(
text=tr('Install'),
preview_action=self._prev_install_invalid_config,
key=SpecialMenuKey.INSTALL.value,
),
MenuItem(
text=tr('Abort'),
key=SpecialMenuKey.ABORT.value,
),
]
return menu_options
async def _safe_config(self) -> None:
# data: dict[str, Any] = {}
# for item in self._item_group.items:
# if item.key is not None:
# data[item.key] = item.value
self.sync_all_to_config()
await save_config(self._arch_config)
def _missing_configs(self) -> list[str]:
item: MenuItem = self._item_group.find_by_key('auth_config')
auth_config: AuthenticationConfiguration | None = item.value
def check(s: str) -> bool:
item = self._item_group.find_by_key(s)
return item.has_value()
def has_superuser() -> bool:
if auth_config and auth_config.users:
return any([u.sudo for u in auth_config.users])
return False
missing = set()
if (auth_config is None or auth_config.root_enc_password is None) and not has_superuser():
missing.add(
tr('Either root-password or at least 1 user with sudo privileges must be specified'),
)
for item in self._item_group.items:
if item.mandatory:
assert item.key is not None
if not check(item.key):
missing.add(item.text)
return list(missing)
@override
def is_config_valid(self) -> bool:
"""
Checks the validity of the current configuration.
"""
if len(self._missing_configs()) != 0:
return False
return self._validate_bootloader() is None
async def _select_archinstall_language(self, preset: Language) -> Language:
from archinstall.lib.interactions.general_conf import select_archinstall_language
language = await select_archinstall_language(translation_handler.translated_languages, preset)
translation_handler.activate(language)
self._update_lang_text()
return language
def _prev_archinstall_language(self, item: MenuItem) -> str | None:
if not item.value:
return None
lang: Language = item.value
return f'{tr("Language")}: {lang.display_name}'
async def _select_applications(self, preset: ApplicationConfiguration | None) -> ApplicationConfiguration | None:
app_config = await ApplicationMenu(preset).show()
return app_config
async def _select_authentication(self, preset: AuthenticationConfiguration | None) -> AuthenticationConfiguration | None:
auth_config = await AuthenticationMenu(preset).show()
return auth_config
def _update_lang_text(self) -> None:
"""
The options for the global menu are generated with a static text;
each entry of the menu needs to be updated with the new translation
"""
new_options = self._get_menu_options()
for o in new_options:
if o.key is not None:
self._item_group.find_by_key(o.key).text = o.text
async def _locale_selection(self, preset: LocaleConfiguration) -> LocaleConfiguration | None:
locale_config = await LocaleMenu(preset).show()
return locale_config
def _prev_locale(self, item: MenuItem) -> str | None:
if not item.value:
return None
config: LocaleConfiguration = item.value
return config.preview()
def _prev_network_config(self, item: MenuItem) -> str | None:
if item.value:
network_config: NetworkConfiguration = item.value
if network_config.type == NicType.MANUAL:
output = FormattedOutput.as_table(network_config.nics)
else:
output = f'{tr("Network configuration")}:\n{network_config.type.display_msg()}'
return output
return None
def _prev_additional_pkgs(self, item: MenuItem) -> str | None:
if item.value:
output = '\n'.join(sorted(item.value))
return output
return None
def _prev_authentication(self, item: MenuItem) -> str | None:
if item.value:
auth_config: AuthenticationConfiguration = item.value
output = ''
if auth_config.root_enc_password:
output += f'{tr("Root password")}: {auth_config.root_enc_password.hidden()}\n'
if auth_config.users:
output += FormattedOutput.as_table(auth_config.users) + '\n'
if auth_config.u2f_config:
u2f_config = auth_config.u2f_config
login_method = u2f_config.u2f_login_method.display_value()
output = tr('U2F login method: ') + login_method
output += '\n'
output += tr('Passwordless sudo: ') + (tr('Enabled') if u2f_config.passwordless_sudo else tr('Disabled'))
return output
return None
def _prev_applications(self, item: MenuItem) -> str | None:
if item.value:
app_config: ApplicationConfiguration = item.value
output = ''
if app_config.bluetooth_config:
output += f'{tr("Bluetooth")}: '
output += tr('Enabled') if app_config.bluetooth_config.enabled else tr('Disabled')
output += '\n'
if app_config.audio_config:
audio_config = app_config.audio_config
output += f'{tr("Audio")}: {audio_config.audio.value}'
output += '\n'
if app_config.print_service_config:
output += f'{tr("Print service")}: '
output += tr('Enabled') if app_config.print_service_config.enabled else tr('Disabled')
output += '\n'
if app_config.power_management_config:
power_management_config = app_config.power_management_config
output += f'{tr("Power management")}: {power_management_config.power_management.value}'
output += '\n'
if app_config.firewall_config:
firewall_config = app_config.firewall_config
output += f'{tr("Firewall")}: {firewall_config.firewall.value}'
output += '\n'
return output
return None
def _prev_tz(self, item: MenuItem) -> str | None:
if item.value:
return f'{tr("Timezone")}: {item.value}'
return None
def _prev_ntp(self, item: MenuItem) -> str | None:
if item.value is not None:
output = f'{tr("NTP")}: '
output += tr('Enabled') if item.value else tr('Disabled')
return output
return None
def _prev_disk_config(self, item: MenuItem) -> str | None:
disk_layout_conf: DiskLayoutConfiguration | None = item.value
if disk_layout_conf:
output = tr('Configuration type: {}').format(disk_layout_conf.config_type.display_msg()) + '\n'
if disk_layout_conf.config_type == DiskLayoutType.Pre_mount:
output += tr('Mountpoint') + ': ' + str(disk_layout_conf.mountpoint)
if disk_layout_conf.lvm_config:
output += '{}: {}'.format(tr('LVM configuration type'), disk_layout_conf.lvm_config.config_type.display_msg()) + '\n'
if disk_layout_conf.disk_encryption:
output += tr('Disk encryption') + ': ' + disk_layout_conf.disk_encryption.encryption_type.type_to_text() + '\n'
if disk_layout_conf.btrfs_options:
btrfs_options = disk_layout_conf.btrfs_options
if btrfs_options.snapshot_config:
output += tr('Btrfs snapshot type: {}').format(btrfs_options.snapshot_config.snapshot_type.value) + '\n'
return output
return None
def _prev_swap(self, item: MenuItem) -> str | None:
if item.value is not None:
output = f'{tr("Swap on zram")}: '
output += tr('Enabled') if item.value.enabled else tr('Disabled')
if item.value.enabled:
output += f'\n{tr("Compression algorithm")}: {item.value.algorithm.value}'
return output
return None
def _prev_hostname(self, item: MenuItem) -> str | None:
if item.value is not None:
return f'{tr("Hostname")}: {item.value}'
return None
def _prev_parallel_dw(self, item: MenuItem) -> str | None:
if item.value is not None:
return f'{tr("Parallel Downloads")}: {item.value}'
return None
def _prev_kernel(self, item: MenuItem) -> str | None:
if item.value:
kernel = ', '.join(item.value)
return f'{tr("Kernel")}: {kernel}'
return None
def _prev_bootloader_config(self, item: MenuItem) -> str | None:
bootloader_config: BootloaderConfiguration | None = item.value
if bootloader_config:
return bootloader_config.preview(self._uefi)
return None
def _validate_bootloader(self) -> str | None:
"""
Checks the selected bootloader is valid for the selected filesystem
type of the boot partition.
Returns [`None`] if the bootloader is valid, otherwise returns a
string with the error message.
"""
bootloader_config: BootloaderConfiguration | None = None
root_partition: PartitionModification | None = None
boot_partition: PartitionModification | None = None
efi_partition: PartitionModification | None = None
bootloader_config = self._item_group.find_by_key('bootloader_config').value
if not bootloader_config or bootloader_config.bootloader == Bootloader.NO_BOOTLOADER:
return None
bootloader = bootloader_config.bootloader
if disk_config := self._item_group.find_by_key('disk_config').value:
for layout in disk_config.device_modifications:
if root_partition := layout.get_root_partition():
break
for layout in disk_config.device_modifications:
if boot_partition := layout.get_boot_partition():
break
if self._uefi:
for layout in disk_config.device_modifications:
if efi_partition := layout.get_efi_partition():
break
else:
return 'No disk layout selected'
if root_partition is None:
return 'Root partition not found'
if boot_partition is None:
return 'Boot partition not found'
if self._uefi:
if efi_partition is None:
return 'EFI system partition (ESP) not found'
if efi_partition.fs_type not in [FilesystemType.Fat12, FilesystemType.Fat16, FilesystemType.Fat32]:
return 'ESP must be formatted as a FAT filesystem'
if bootloader == Bootloader.Limine:
if boot_partition.fs_type not in [FilesystemType.Fat12, FilesystemType.Fat16, FilesystemType.Fat32]:
return 'Limine does not support booting with a non-FAT boot partition'
elif bootloader == Bootloader.Refind:
if not self._uefi:
return 'rEFInd can only be used on UEFI systems'
return None
def _prev_install_invalid_config(self, item: MenuItem) -> str | None:
if missing := self._missing_configs():
text = tr('Missing configurations:\n')
for m in missing:
text += f'- {m}\n'
return text[:-1] # remove last new line
if error := self._validate_bootloader():
return tr(f'Invalid configuration: {error}')
return None
def _prev_profile(self, item: MenuItem) -> str | None:
profile_config: ProfileConfiguration | None = item.value
if profile_config and profile_config.profile:
output = tr('Profiles') + ': '
if profile_names := profile_config.profile.current_selection_names():
output += ', '.join(profile_names) + '\n'
else:
output += profile_config.profile.name + '\n'
if profile_config.gfx_driver:
output += tr('Graphics driver') + ': ' + profile_config.gfx_driver.value + '\n'
if profile_config.greeter:
output += tr('Greeter') + ': ' + profile_config.greeter.value + '\n'
return output
return None
async def _select_disk_config(
self,
preset: DiskLayoutConfiguration | None = None,
) -> DiskLayoutConfiguration | None:
disk_config = await DiskLayoutConfigurationMenu(preset).show()
return disk_config
async def _select_bootloader_config(
self,
preset: BootloaderConfiguration | None = None,
) -> BootloaderConfiguration | None:
if preset is None:
preset = BootloaderConfiguration.get_default(self._uefi, self._skip_boot)
bootloader_config = await BootloaderMenu(preset, self._uefi, self._skip_boot).show()
return bootloader_config
async def _select_profile(self, current_profile: ProfileConfiguration | None) -> ProfileConfiguration | None:
from archinstall.lib.profile.profile_menu import ProfileMenu
profile_config = await ProfileMenu(preset=current_profile).show()
return profile_config
async def _select_additional_packages(self, preset: list[str]) -> list[str]:
config: MirrorConfiguration | None = self._item_group.find_by_key('mirror_config').value
repositories: set[Repository] = set()
if config:
repositories = set(config.optional_repositories)
packages = await select_additional_packages(
preset,
repositories=repositories,
)
return packages
async def _mirror_configuration(self, preset: MirrorConfiguration | None = None) -> MirrorConfiguration | None:
if self._mirror_list_handler is None:
self._mirror_list_handler = MirrorListHandler()
mirror_configuration = await MirrorMenu(self._mirror_list_handler, preset=preset).run()
if mirror_configuration and mirror_configuration.optional_repositories:
# reset the package list cache in case the repository selection has changed
list_available_packages.cache_clear()
# enable the repositories in the config
pacman_config = PacmanConfig(None)
pacman_config.enable(mirror_configuration.optional_repositories)
pacman_config.apply()
return mirror_configuration
def _prev_mirror_config(self, item: MenuItem) -> str | None:
if not item.value:
return None
mirror_config: MirrorConfiguration = item.value
output = ''
if mirror_config.mirror_regions:
title = tr('Selected mirror regions')
divider = '-' * len(title)
regions = mirror_config.region_names
output += f'{title}\n{divider}\n{regions}\n\n'
if mirror_config.custom_servers:
title = tr('Custom servers')
divider = '-' * len(title)
servers = mirror_config.custom_server_urls
output += f'{title}\n{divider}\n{servers}\n\n'
if mirror_config.optional_repositories:
title = tr('Optional repositories')
divider = '-' * len(title)
repos = ', '.join(r.value for r in mirror_config.optional_repositories)
output += f'{title}\n{divider}\n{repos}\n\n'
if mirror_config.custom_repositories:
title = tr('Custom repositories')
table = FormattedOutput.as_table(mirror_config.custom_repositories)
output += f'{title}:\n\n{table}'
return output.strip()
================================================
FILE: archinstall/lib/hardware.py
================================================
import os
from enum import Enum
from functools import cached_property
from pathlib import Path
from typing import Self
from archinstall.lib.command import SysCommand
from archinstall.lib.exceptions import SysCallError
from archinstall.lib.networking import enrich_iface_types, list_interfaces
from archinstall.lib.output import debug
from archinstall.lib.translationhandler import tr
class CpuVendor(Enum):
AuthenticAMD = 'amd'
GenuineIntel = 'intel'
_Unknown = 'unknown'
@classmethod
def get_vendor(cls, name: str) -> Self:
if vendor := getattr(cls, name, None):
return vendor
else:
debug(f"Unknown CPU vendor '{name}' detected.")
return cls._Unknown
def _has_microcode(self) -> bool:
match self:
case CpuVendor.AuthenticAMD | CpuVendor.GenuineIntel:
return True
case _:
return False
def get_ucode(self) -> Path | None:
if self._has_microcode():
return Path(self.value + '-ucode.img')
return None
class GfxPackage(Enum):
Dkms = 'dkms'
IntelMediaDriver = 'intel-media-driver'
LibvaIntelDriver = 'libva-intel-driver'
LibvaMesaDriver = 'libva-mesa-driver'
LibvaNvidiaDriver = 'libva-nvidia-driver'
Mesa = 'mesa'
NvidiaDkms = 'nvidia-dkms'
NvidiaOpenDkms = 'nvidia-open-dkms'
VulkanIntel = 'vulkan-intel'
VulkanRadeon = 'vulkan-radeon'
VulkanNouveau = 'vulkan-nouveau'
Xf86VideoAmdgpu = 'xf86-video-amdgpu'
Xf86VideoAti = 'xf86-video-ati'
Xf86VideoNouveau = 'xf86-video-nouveau'
XorgServer = 'xorg-server'
XorgXinit = 'xorg-xinit'
class GfxDriver(Enum):
AllOpenSource = 'All open-source'
AmdOpenSource = 'AMD / ATI (open-source)'
IntelOpenSource = 'Intel (open-source)'
NvidiaOpenKernel = 'Nvidia (open kernel module for newer GPUs, Turing+)'
NvidiaOpenSource = 'Nvidia (open-source nouveau driver)'
NvidiaProprietary = 'Nvidia (proprietary)'
VMOpenSource = 'VirtualBox (open-source)'
def is_nvidia(self) -> bool:
match self:
case GfxDriver.NvidiaProprietary | GfxDriver.NvidiaOpenSource | GfxDriver.NvidiaOpenKernel:
return True
case _:
return False
def packages_text(self) -> str:
pkg_names = [p.value for p in self.gfx_packages()]
text = tr('Installed packages') + ':\n'
for p in sorted(pkg_names):
text += f'\t- {p}\n'
return text
def gfx_packages(self) -> list[GfxPackage]:
packages = [GfxPackage.XorgServer, GfxPackage.XorgXinit]
match self:
case GfxDriver.AllOpenSource:
packages += [
GfxPackage.Mesa,
GfxPackage.Xf86VideoAmdgpu,
GfxPackage.Xf86VideoAti,
GfxPackage.Xf86VideoNouveau,
GfxPackage.LibvaMesaDriver,
GfxPackage.LibvaIntelDriver,
GfxPackage.IntelMediaDriver,
GfxPackage.VulkanRadeon,
GfxPackage.VulkanIntel,
GfxPackage.VulkanNouveau,
]
case GfxDriver.AmdOpenSource:
packages += [
GfxPackage.Mesa,
GfxPackage.Xf86VideoAmdgpu,
GfxPackage.Xf86VideoAti,
GfxPackage.LibvaMesaDriver,
GfxPackage.VulkanRadeon,
]
case GfxDriver.IntelOpenSource:
packages += [
GfxPackage.Mesa,
GfxPackage.LibvaIntelDriver,
GfxPackage.IntelMediaDriver,
GfxPackage.VulkanIntel,
]
case GfxDriver.NvidiaOpenKernel:
packages += [
GfxPackage.NvidiaOpenDkms,
GfxPackage.Dkms,
GfxPackage.LibvaNvidiaDriver,
]
case GfxDriver.NvidiaOpenSource:
packages += [
GfxPackage.Mesa,
GfxPackage.Xf86VideoNouveau,
GfxPackage.LibvaMesaDriver,
GfxPackage.VulkanNouveau,
]
case GfxDriver.NvidiaProprietary:
packages += [
GfxPackage.NvidiaDkms,
GfxPackage.Dkms,
GfxPackage.LibvaNvidiaDriver,
]
case GfxDriver.VMOpenSource:
packages += [
GfxPackage.Mesa,
]
return packages
class _SysInfo:
def __init__(self) -> None:
pass
@cached_property
def has_battery(self) -> bool:
for type_path in Path('/sys/class/power_supply/').glob('*/type'):
try:
with open(type_path) as f:
if f.read().strip() == 'Battery':
return True
except OSError:
continue
return False
@cached_property
def cpu_info(self) -> dict[str, str]:
"""
Returns system cpu information
"""
cpu_info_path = Path('/proc/cpuinfo')
cpu: dict[str, str] = {}
with cpu_info_path.open() as file:
for line in file:
if line := line.strip():
key, value = line.split(':', maxsplit=1)
cpu[key.strip()] = value.strip()
return cpu
@cached_property
def mem_info(self) -> dict[str, int]:
"""
Returns system memory information
"""
mem_info_path = Path('/proc/meminfo')
mem_info: dict[str, int] = {}
with mem_info_path.open() as file:
for line in file:
key, value = line.strip().split(':')
num = value.split()[0]
mem_info[key] = int(num)
return mem_info
def mem_info_by_key(self, key: str) -> int:
return self.mem_info[key]
@cached_property
def loaded_modules(self) -> list[str]:
"""
Returns loaded kernel modules
"""
modules_path = Path('/proc/modules')
modules: list[str] = []
with modules_path.open() as file:
for line in file:
module = line.split(maxsplit=1)[0]
modules.append(module)
return modules
@cached_property
def graphics_devices(self) -> dict[str, str]:
"""
Returns detected graphics devices (cached)
"""
cards: dict[str, str] = {}
for line in SysCommand('lspci'):
if b' VGA ' in line or b' 3D ' in line:
_, identifier = line.split(b': ', 1)
cards[identifier.strip().decode('UTF-8')] = str(line)
return cards
_sys_info = _SysInfo()
class SysInfo:
@staticmethod
def has_battery() -> bool:
return _sys_info.has_battery
@staticmethod
def has_wifi() -> bool:
ifaces = list(list_interfaces().values())
return 'WIRELESS' in enrich_iface_types(ifaces).values()
@staticmethod
def has_uefi() -> bool:
return os.path.isdir('/sys/firmware/efi')
@staticmethod
def _graphics_devices() -> dict[str, str]:
return _sys_info.graphics_devices
@staticmethod
def has_nvidia_graphics() -> bool:
return any('nvidia' in x.lower() for x in _sys_info.graphics_devices)
@staticmethod
def has_amd_graphics() -> bool:
return any('amd' in x.lower() for x in _sys_info.graphics_devices)
@staticmethod
def has_intel_graphics() -> bool:
return any('intel' in x.lower() for x in _sys_info.graphics_devices)
@staticmethod
def cpu_vendor() -> CpuVendor | None:
if vendor := _sys_info.cpu_info.get('vendor_id'):
return CpuVendor.get_vendor(vendor)
return None
@staticmethod
def cpu_model() -> str | None:
return _sys_info.cpu_info.get('model name', None)
@staticmethod
def sys_vendor() -> str | None:
try:
with open('/sys/devices/virtual/dmi/id/sys_vendor') as vendor:
return vendor.read().strip()
except FileNotFoundError:
return None
@staticmethod
def product_name() -> str | None:
try:
with open('/sys/devices/virtual/dmi/id/product_name') as product:
return product.read().strip()
except FileNotFoundError:
return None
@staticmethod
def mem_available() -> int:
return _sys_info.mem_info_by_key('MemAvailable')
@staticmethod
def mem_free() -> int:
return _sys_info.mem_info_by_key('MemFree')
@staticmethod
def mem_total() -> int:
return _sys_info.mem_info_by_key('MemTotal')
@staticmethod
def virtualization() -> str | None:
try:
return str(SysCommand('systemd-detect-virt')).strip('\r\n')
except SysCallError as err:
debug(f'Could not detect virtual system: {err}')
return None
@staticmethod
def is_vm() -> bool:
try:
result = SysCommand('systemd-detect-virt')
return b'none' not in b''.join(result).lower()
except SysCallError as err:
debug(f'System is not running in a VM: {err}')
return False
@staticmethod
def requires_sof_fw() -> bool:
return 'snd_sof' in _sys_info.loaded_modules
@staticmethod
def requires_alsa_fw() -> bool:
modules = (
'snd_asihpi',
'snd_cs46xx',
'snd_darla20',
'snd_darla24',
'snd_echo3g',
'snd_emu10k1',
'snd_gina20',
'snd_gina24',
'snd_hda_codec_ca0132',
'snd_hdsp',
'snd_indigo',
'snd_indigodj',
'snd_indigodjx',
'snd_indigoio',
'snd_indigoiox',
'snd_layla20',
'snd_layla24',
'snd_mia',
'snd_mixart',
'snd_mona',
'snd_pcxhr',
'snd_vx_lib',
)
for loaded_module in _sys_info.loaded_modules:
if loaded_module in modules:
return True
return False
================================================
FILE: archinstall/lib/installer.py
================================================
import glob
import os
import platform
import re
import shlex
import shutil
import stat
import subprocess
import textwrap
import time
from collections.abc import Callable
from pathlib import Path
from subprocess import CalledProcessError
from types import TracebackType
from typing import Any, Self
from archinstall.lib.boot import Boot
from archinstall.lib.command import SysCommand, run
from archinstall.lib.disk.fido import Fido2
from archinstall.lib.disk.lvm import lvm_import_vg, lvm_pvseg_info, lvm_vol_change
from archinstall.lib.disk.utils import (
get_lsblk_by_mountpoint,
get_lsblk_info,
get_parent_device_path,
get_unique_path_for_device,
mount,
swapon,
)
from archinstall.lib.exceptions import DiskError, HardwareIncompatibilityError, RequirementError, ServiceException, SysCallError
from archinstall.lib.hardware import SysInfo
from archinstall.lib.locale.utils import verify_keyboard_layout, verify_x11_keyboard_layout
from archinstall.lib.luks import Luks2, unlock_luks2_dev
from archinstall.lib.mirror.mirror_handler import MirrorListHandler
from archinstall.lib.models.application import ZramAlgorithm
from archinstall.lib.models.bootloader import Bootloader
from archinstall.lib.models.device import (
DiskEncryption,
DiskLayoutConfiguration,
EncryptionType,
FilesystemType,
LvmVolume,
PartitionModification,
SectorSize,
Size,
SnapshotType,
SubvolumeModification,
Unit,
)
from archinstall.lib.models.locale import LocaleConfiguration
from archinstall.lib.models.mirrors import MirrorConfiguration
from archinstall.lib.models.network import Nic
from archinstall.lib.models.packages import Repository
from archinstall.lib.models.users import User
from archinstall.lib.output import debug, error, info, log, logger, warn
from archinstall.lib.packages.packages import installed_package
from archinstall.lib.pacman.config import PacmanConfig
from archinstall.lib.pacman.pacman import Pacman
from archinstall.lib.plugins import plugins
from archinstall.lib.translationhandler import tr
# Any package that the Installer() is responsible for (optional and the default ones)
__packages__ = ['base', 'sudo', 'linux-firmware', 'linux', 'linux-lts', 'linux-zen', 'linux-hardened']
# Additional packages that are installed if the user is running the Live ISO with accessibility tools enabled
__accessibility_packages__ = ['brltty', 'espeakup', 'alsa-utils']
class Installer:
def __init__(
self,
target: Path,
disk_config: DiskLayoutConfiguration,
base_packages: list[str] = [],
kernels: list[str] | None = None,
silent: bool = False,
):
"""
`Installer()` is the wrapper for most basic installation steps.
It also wraps :py:func:`~archinstall.Installer.pacstrap` among other things.
"""
self._base_packages = base_packages or __packages__[:3]
self.kernels = kernels or ['linux']
self._disk_config = disk_config
self._disk_encryption = disk_config.disk_encryption or DiskEncryption(EncryptionType.NoEncryption)
self.target: Path = target
self.init_time = time.strftime('%Y-%m-%d_%H-%M-%S')
self._helper_flags: dict[str, str | bool | None] = {
'base': False,
'bootloader': None,
}
for kernel in self.kernels:
self._base_packages.append(kernel)
# If using accessibility tools in the live environment, append those to the packages list
if accessibility_tools_in_use():
self._base_packages.extend(__accessibility_packages__)
self.post_base_install: list[Callable] = [] # type: ignore[type-arg]
self._modules: list[str] = []
self._binaries: list[str] = []
self._files: list[str] = []
# systemd, sd-vconsole and sd-encrypt will be replaced by udev, keymap and encrypt
# if HSM is not used to encrypt the root volume. Check mkinitcpio() function for that override.
self._hooks: list[str] = [
'base',
'systemd',
'autodetect',
'microcode',
'modconf',
'kms',
'keyboard',
'sd-vconsole',
'block',
'filesystems',
'fsck',
]
self._kernel_params: list[str] = []
self._fstab_entries: list[str] = []
self._zram_enabled = False
self._disable_fstrim = False
self.pacman = Pacman(self.target, silent)
def __enter__(self) -> Self:
return self
def __exit__(self, exc_type: type[BaseException] | None, exc_value: BaseException | None, traceback: TracebackType | None) -> bool | None:
if exc_type is not None:
error(str(exc_value))
self.sync_log_to_install_medium()
# We avoid printing /mnt/ because that might confuse people if they note it down
# and then reboot, and an identical log file will be found in the ISO medium anyway.
print(tr('[!] A log file has been created here: {}').format(logger.path))
print(tr('Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues'))
# Return None to propagate the exception
return None
info(tr('Syncing the system...'))
os.sync()
if not (missing_steps := self.post_install_check()):
msg = f'Installation completed without any errors.\nLog files temporarily available at {logger.directory}.\nYou may reboot when ready.\n'
log(msg, fg='green')
self.sync_log_to_install_medium()
return True
else:
warn('Some required steps were not successfully installed/configured before leaving the installer:')
for step in missing_steps:
warn(f' - {step}')
warn(f'Detailed error logs can be found at: {logger.directory}')
warn('Submit this zip file as an issue to https://github.com/archlinux/archinstall/issues')
self.sync_log_to_install_medium()
return False
def remove_mod(self, mod: str) -> None:
if mod in self._modules:
self._modules.remove(mod)
def append_mod(self, mod: str) -> None:
if mod not in self._modules:
self._modules.append(mod)
def _verify_service_stop(self, offline: bool, skip_ntp: bool, skip_wkd: bool) -> None:
"""
Certain services might be running that affects the system during installation.
One such service is "reflector.service" which updates /etc/pacman.d/mirrorlist
We need to wait for it before we continue since we opted in to use a custom mirror/region.
"""
if not skip_ntp:
info(tr('Waiting for time sync (timedatectl show) to complete.'))
started_wait = time.time()
notified = False
while True:
if not notified and time.time() - started_wait > 5:
notified = True
warn(tr('Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/'))
time_val = SysCommand('timedatectl show --property=NTPSynchronized --value').decode()
if time_val and time_val.strip() == 'yes':
break
time.sleep(1)
else:
info(tr('Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)'))
if not offline:
info('Waiting for automatic mirror selection (reflector) to complete.')
for _ in range(60):
if self._service_state('reflector') in ('dead', 'failed', 'exited'):
break
time.sleep(1)
else:
warn('Reflector did not complete within 60 seconds, continuing anyway...')
else:
info('Skipped reflector...')
# info('Waiting for pacman-init.service to complete.')
# while self._service_state('pacman-init') not in ('dead', 'failed', 'exited'):
# time.sleep(1)
if not skip_wkd:
info(tr('Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete.'))
# Wait for the timer to kick in
while self._service_started('archlinux-keyring-wkd-sync.timer') is None:
time.sleep(1)
# Wait for the service to enter a finished state
while self._service_state('archlinux-keyring-wkd-sync.service') not in ('dead', 'failed', 'exited'):
time.sleep(1)
def _verify_boot_part(self) -> None:
"""
Check that mounted /boot device has at minimum size for installation
The reason this check is here is to catch pre-mounted device configuration and potentially
configured one that has not gone through any previous checks (e.g. --silence mode)
NOTE: this function should be run AFTER running the mount_ordered_layout function
"""
boot_mount = self.target / 'boot'
lsblk_info = get_lsblk_by_mountpoint(boot_mount)
if len(lsblk_info) > 0:
if lsblk_info[0].size < Size(200, Unit.MiB, SectorSize.default()):
raise DiskError(
f'The boot partition mounted at {boot_mount} is not large enough to install a boot loader. '
f'Please resize it to at least 200MiB and re-run the installation.',
)
def sanity_check(
self,
offline: bool = False,
skip_ntp: bool = False,
skip_wkd: bool = False,
) -> None:
# self._verify_boot_part()
self._verify_service_stop(offline, skip_ntp, skip_wkd)
def mount_ordered_layout(self) -> None:
debug('Mounting ordered layout')
luks_handlers: dict[Any, Luks2] = {}
match self._disk_encryption.encryption_type:
case EncryptionType.NoEncryption:
self._import_lvm()
self._mount_lvm_layout()
case EncryptionType.Luks:
luks_handlers = self._prepare_luks_partitions(self._disk_encryption.partitions)
case EncryptionType.LvmOnLuks:
luks_handlers = self._prepare_luks_partitions(self._disk_encryption.partitions)
self._import_lvm()
self._mount_lvm_layout(luks_handlers)
case EncryptionType.LuksOnLvm:
self._import_lvm()
luks_handlers = self._prepare_luks_lvm(self._disk_encryption.lvm_volumes)
self._mount_lvm_layout(luks_handlers)
# mount all regular partitions
self._mount_partition_layout(luks_handlers)
def _mount_partition_layout(self, luks_handlers: dict[Any, Luks2]) -> None:
debug('Mounting partition layout')
# do not mount any PVs part of the LVM configuration
pvs = []
if self._disk_config.lvm_config:
pvs = self._disk_config.lvm_config.get_all_pvs()
sorted_device_mods = self._disk_config.device_modifications.copy()
# move the device with the root partition to the beginning of the list
for mod in self._disk_config.device_modifications:
if any(partition.is_root() for partition in mod.partitions):
sorted_device_mods.remove(mod)
sorted_device_mods.insert(0, mod)
break
for mod in sorted_device_mods:
not_pv_part_mods = [p for p in mod.partitions if p not in pvs]
# partitions have to mounted in the right order on btrfs the mountpoint will
# be empty as the actual subvolumes are getting mounted instead so we'll use
# '/' just for sorting
sorted_part_mods = sorted(not_pv_part_mods, key=lambda x: x.mountpoint or Path('/'))
for part_mod in sorted_part_mods:
if luks_handler := luks_handlers.get(part_mod):
self._mount_luks_partition(part_mod, luks_handler)
else:
self._mount_partition(part_mod)
def _mount_lvm_layout(self, luks_handlers: dict[Any, Luks2] = {}) -> None:
lvm_config = self._disk_config.lvm_config
if not lvm_config:
debug('No lvm config defined to be mounted')
return
debug('Mounting LVM layout')
for vg in lvm_config.vol_groups:
sorted_vol = sorted(vg.volumes, key=lambda x: x.mountpoint or Path('/'))
for vol in sorted_vol:
if luks_handler := luks_handlers.get(vol):
self._mount_luks_volume(vol, luks_handler)
else:
self._mount_lvm_vol(vol)
def _prepare_luks_partitions(
self,
partitions: list[PartitionModification],
) -> dict[PartitionModification, Luks2]:
return {
part_mod: unlock_luks2_dev(
part_mod.dev_path,
part_mod.mapper_name,
self._disk_encryption.encryption_password,
)
for part_mod in partitions
if part_mod.mapper_name and part_mod.dev_path
}
def _import_lvm(self) -> None:
lvm_config = self._disk_config.lvm_config
if not lvm_config:
debug('No lvm config defined to be imported')
return
for vg in lvm_config.vol_groups:
lvm_import_vg(vg)
for vol in vg.volumes:
lvm_vol_change(vol, True)
def _prepare_luks_lvm(
self,
lvm_volumes: list[LvmVolume],
) -> dict[LvmVolume, Luks2]:
return {
vol: unlock_luks2_dev(
vol.dev_path,
vol.mapper_name,
self._disk_encryption.encryption_password,
)
for vol in lvm_volumes
if vol.mapper_name and vol.dev_path
}
def _mount_partition(self, part_mod: PartitionModification) -> None:
if not part_mod.dev_path:
return
# it would be none if it's btrfs as the subvolumes will have the mountpoints defined
if part_mod.mountpoint:
target = self.target / part_mod.relative_mountpoint
mount(part_mod.dev_path, target, options=part_mod.mount_options)
elif part_mod.fs_type == FilesystemType.Btrfs:
# Only mount BTRFS subvolumes that have mountpoints specified
subvols_with_mountpoints = [sv for sv in part_mod.btrfs_subvols if sv.mountpoint is not None]
if subvols_with_mountpoints:
self._mount_btrfs_subvol(
part_mod.dev_path,
part_mod.btrfs_subvols,
part_mod.mount_options,
)
elif part_mod.is_swap():
swapon(part_mod.dev_path)
def _mount_lvm_vol(self, volume: LvmVolume) -> None:
if volume.fs_type != FilesystemType.Btrfs:
if volume.mountpoint and volume.dev_path:
target = self.target / volume.relative_mountpoint
mount(volume.dev_path, target, options=volume.mount_options)
if volume.fs_type == FilesystemType.Btrfs and volume.dev_path:
# Only mount BTRFS subvolumes that have mountpoints specified
subvols_with_mountpoints = [sv for sv in volume.btrfs_subvols if sv.mountpoint is not None]
if subvols_with_mountpoints:
self._mount_btrfs_subvol(volume.dev_path, volume.btrfs_subvols, volume.mount_options)
def _mount_luks_partition(self, part_mod: PartitionModification, luks_handler: Luks2) -> None:
if not luks_handler.mapper_dev:
return None
if part_mod.fs_type == FilesystemType.Btrfs and part_mod.btrfs_subvols:
# Only mount BTRFS subvolumes that have mountpoints specified
subvols_with_mountpoints = [sv for sv in part_mod.btrfs_subvols if sv.mountpoint is not None]
if subvols_with_mountpoints:
self._mount_btrfs_subvol(luks_handler.mapper_dev, part_mod.btrfs_subvols, part_mod.mount_options)
elif part_mod.mountpoint:
target = self.target / part_mod.relative_mountpoint
mount(luks_handler.mapper_dev, target, options=part_mod.mount_options)
def _mount_luks_volume(self, volume: LvmVolume, luks_handler: Luks2) -> None:
if volume.fs_type != FilesystemType.Btrfs:
if volume.mountpoint and luks_handler.mapper_dev:
target = self.target / volume.relative_mountpoint
mount(luks_handler.mapper_dev, target, options=volume.mount_options)
if volume.fs_type == FilesystemType.Btrfs and luks_handler.mapper_dev:
# Only mount BTRFS subvolumes that have mountpoints specified
subvols_with_mountpoints = [sv for sv in volume.btrfs_subvols if sv.mountpoint is not None]
if subvols_with_mountpoints:
self._mount_btrfs_subvol(luks_handler.mapper_dev, volume.btrfs_subvols, volume.mount_options)
def _mount_btrfs_subvol(
self,
dev_path: Path,
subvolumes: list[SubvolumeModification],
mount_options: list[str] = [],
) -> None:
# Filter out subvolumes without mountpoints to avoid errors when sorting
subvols_with_mountpoints = [sv for sv in subvolumes if sv.mountpoint is not None]
for subvol in sorted(subvols_with_mountpoints, key=lambda x: x.relative_mountpoint):
mountpoint = self.target / subvol.relative_mountpoint
options = mount_options + [f'subvol={subvol.name}']
mount(dev_path, mountpoint, options=options)
def generate_key_files(self) -> None:
match self._disk_encryption.encryption_type:
case EncryptionType.Luks:
self._generate_key_files_partitions()
case EncryptionType.LuksOnLvm:
self._generate_key_file_lvm_volumes()
case EncryptionType.LvmOnLuks:
# currently LvmOnLuks only supports a single
# partitioning layout (boot + partition)
# so we won't need any keyfile generation atm
pass
def _generate_key_files_partitions(self) -> None:
for part_mod in self._disk_encryption.partitions:
gen_enc_file = self._disk_encryption.should_generate_encryption_file(part_mod)
luks_handler = Luks2(
part_mod.safe_dev_path,
mapper_name=part_mod.mapper_name,
password=self._disk_encryption.encryption_password,
)
if gen_enc_file and not part_mod.is_root():
debug(f'Creating key-file: {part_mod.dev_path}')
luks_handler.create_keyfile(self.target)
if part_mod.is_root() and not gen_enc_file:
if self._disk_encryption.hsm_device:
if self._disk_encryption.encryption_password:
Fido2.fido2_enroll(
self._disk_encryption.hsm_device,
part_mod.safe_dev_path,
self._disk_encryption.encryption_password,
)
def _generate_key_file_lvm_volumes(self) -> None:
for vol in self._disk_encryption.lvm_volumes:
gen_enc_file = self._disk_encryption.should_generate_encryption_file(vol)
luks_handler = Luks2(
vol.safe_dev_path,
mapper_name=vol.mapper_name,
password=self._disk_encryption.encryption_password,
)
if gen_enc_file and not vol.is_root():
info(f'Creating key-file: {vol.dev_path}')
luks_handler.create_keyfile(self.target)
if vol.is_root() and not gen_enc_file:
if self._disk_encryption.hsm_device:
if self._disk_encryption.encryption_password:
Fido2.fido2_enroll(
self._disk_encryption.hsm_device,
vol.safe_dev_path,
self._disk_encryption.encryption_password,
)
def sync_log_to_install_medium(self) -> bool:
# Copy over the install log (if there is one) to the install medium if
# at least the base has been strapped in, otherwise we won't have a filesystem/structure to copy to.
if self._helper_flags.get('base-strapped', False) is True:
absolute_logfile = logger.path
if not os.path.isdir(f'{self.target}/{os.path.dirname(absolute_logfile)}'):
os.makedirs(f'{self.target}/{os.path.dirname(absolute_logfile)}')
shutil.copy2(absolute_logfile, f'{self.target}/{absolute_logfile}')
return True
def add_swapfile(self, size: str = '4G', enable_resume: bool = True, file: str = '/swapfile') -> None:
if file[:1] != '/':
file = f'/{file}'
if len(file.strip()) <= 0 or file == '/':
raise ValueError(f'The filename for the swap file has to be a valid path, not: {self.target}{file}')
SysCommand(f'dd if=/dev/zero of={self.target}{file} bs={size} count=1')
SysCommand(f'chmod 0600 {self.target}{file}')
SysCommand(f'mkswap {self.target}{file}')
self._fstab_entries.append(f'{file} none swap defaults 0 0')
if enable_resume:
resume_uuid = SysCommand(f'findmnt -no UUID -T {self.target}{file}').decode()
resume_offset = (
SysCommand(
f'filefrag -v {self.target}{file}',
)
.decode()
.split('0:', 1)[1]
.split(':', 1)[1]
.split('..', 1)[0]
.strip()
)
self._hooks.append('resume')
self._kernel_params.append(f'resume=UUID={resume_uuid}')
self._kernel_params.append(f'resume_offset={resume_offset}')
def post_install_check(self, *args: str, **kwargs: str) -> list[str]:
return [step for step, flag in self._helper_flags.items() if flag is False]
def set_mirrors(
self,
mirror_list_handler: MirrorListHandler,
mirror_config: MirrorConfiguration,
on_target: bool = False,
) -> None:
"""
Set the mirror configuration for the installation.
:param mirror_config: The mirror configuration to use.
:type mirror_config: MirrorConfiguration
:on_target: Whether to set the mirrors on the target system or the live system.
:param on_target: bool
"""
debug('Setting mirrors on ' + ('target' if on_target else 'live system'))
for plugin in plugins.values():
if hasattr(plugin, 'on_mirrors'):
if result := plugin.on_mirrors(mirror_config):
mirror_config = result
root = self.target if on_target else Path('/')
mirrorlist_config = root / 'etc/pacman.d/mirrorlist'
pacman_config = root / 'etc/pacman.conf'
repositories_config = mirror_config.repositories_config()
if repositories_config:
debug(f'Pacman config: {repositories_config}')
with open(pacman_config, 'a') as fp:
fp.write(repositories_config)
regions_config = mirror_config.regions_config(mirror_list_handler, speed_sort=True)
if regions_config:
debug(f'Mirrorlist:\n{regions_config}')
mirrorlist_config.write_text(regions_config)
custom_servers = mirror_config.custom_servers_config()
if custom_servers:
debug(f'Custom servers:\n{custom_servers}')
content = mirrorlist_config.read_text()
mirrorlist_config.write_text(f'{custom_servers}\n\n{content}')
def genfstab(self, flags: str = '-pU') -> None:
fstab_path = self.target / 'etc' / 'fstab'
info(f'Updating {fstab_path}')
try:
gen_fstab = SysCommand(f'genfstab {flags} -f {self.target} {self.target}').output()
except SysCallError as err:
raise RequirementError(f'Could not generate fstab, strapping in packages most likely failed (disk out of space?)\n Error: {err}')
with open(fstab_path, 'ab') as fp:
fp.write(gen_fstab)
if not fstab_path.is_file():
raise RequirementError('Could not create fstab file')
for plugin in plugins.values():
if hasattr(plugin, 'on_genfstab'):
if plugin.on_genfstab(self) is True:
break
with open(fstab_path, 'a') as fp:
for entry in self._fstab_entries:
fp.write(f'{entry}\n')
def set_hostname(self, hostname: str) -> None:
(self.target / 'etc/hostname').write_text(hostname + '\n')
def set_locale(self, locale_config: LocaleConfiguration) -> bool:
modifier = ''
lang = locale_config.sys_lang
encoding = locale_config.sys_enc
# This is a temporary patch to fix #1200
if '.' in locale_config.sys_lang:
lang, potential_encoding = locale_config.sys_lang.split('.', 1)
# Override encoding if encoding is set to the default parameter
# and the "found" encoding differs.
if locale_config.sys_enc == 'UTF-8' and locale_config.sys_enc != potential_encoding:
encoding = potential_encoding
# Make sure we extract the modifier, that way we can put it in if needed.
if '@' in locale_config.sys_lang:
lang, modifier = locale_config.sys_lang.split('@', 1)
modifier = f'@{modifier}'
# - End patch
locale_gen = self.target / 'etc/locale.gen'
locale_gen_lines = locale_gen.read_text().splitlines(True)
# A locale entry in /etc/locale.gen may or may not contain the encoding
# in the first column of the entry; check for both cases.
entry_re = re.compile(rf'#{lang}(\.{encoding})?{modifier} {encoding}')
lang_value = None
for index, line in enumerate(locale_gen_lines):
if entry_re.match(line):
uncommented_line = line.removeprefix('#')
locale_gen_lines[index] = uncommented_line
locale_gen.write_text(''.join(locale_gen_lines))
lang_value = uncommented_line.split()[0]
break
if lang_value is None:
error(f"Invalid locale: language '{locale_config.sys_lang}', encoding '{locale_config.sys_enc}'")
return False
try:
self.arch_chroot('locale-gen')
except SysCallError as e:
error(f'Failed to run locale-gen on target: {e}')
return False
(self.target / 'etc/locale.conf').write_text(f'LANG={lang_value}\n')
return True
def set_timezone(self, zone: str) -> bool:
if not zone:
return True
if not len(zone):
return True # Redundant
for plugin in plugins.values():
if hasattr(plugin, 'on_timezone'):
if result := plugin.on_timezone(zone):
zone = result
if (Path('/usr') / 'share' / 'zoneinfo' / zone).exists():
(Path(self.target) / 'etc' / 'localtime').unlink(missing_ok=True)
self.arch_chroot(f'ln -s /usr/share/zoneinfo/{zone} /etc/localtime')
return True
else:
warn(f'Time zone {zone} does not exist, continuing with system default')
return False
def activate_time_synchronization(self) -> None:
info('Activating systemd-timesyncd for time synchronization using Arch Linux and ntp.org NTP servers')
self.enable_service('systemd-timesyncd')
def enable_espeakup(self) -> None:
info('Enabling espeakup.service for speech synthesis (accessibility)')
self.enable_service('espeakup')
def enable_periodic_trim(self) -> None:
info('Enabling periodic TRIM')
# fstrim is owned by util-linux, a dependency of both base and systemd.
self.enable_service('fstrim.timer')
def enable_service(self, services: str | list[str]) -> None:
if isinstance(services, str):
services = [services]
for service in services:
info(f'Enabling service {service}')
try:
SysCommand(f'systemctl --root={self.target} enable {service}')
except SysCallError as err:
raise ServiceException(f'Unable to start service {service}: {err}')
for plugin in plugins.values():
if hasattr(plugin, 'on_service'):
plugin.on_service(service)
def disable_service(self, services_disable: str | list[str]) -> None:
if isinstance(services_disable, str):
services_disable = [services_disable]
for service in services_disable:
info(f'Disabling service {service}')
try:
SysCommand(f'systemctl --root={self.target} disable {service}')
except SysCallError as err:
raise ServiceException(f'Unable to disable service {service}: {err}')
def run_command(self, cmd: str, peek_output: bool = False) -> SysCommand:
return SysCommand(f'arch-chroot -S {self.target} {cmd}', peek_output=peek_output)
def arch_chroot(self, cmd: str, run_as: str | None = None, peek_output: bool = False) -> SysCommand:
if run_as:
cmd = f'su - {run_as} -c {shlex.quote(cmd)}'
return self.run_command(cmd, peek_output=peek_output)
def drop_to_shell(self) -> None:
subprocess.check_call(f'arch-chroot {self.target}', shell=True)
def configure_nic(self, nic: Nic) -> None:
conf = nic.as_systemd_config()
for plugin in plugins.values():
if hasattr(plugin, 'on_configure_nic'):
conf = (
plugin.on_configure_nic(
nic.iface,
nic.dhcp,
nic.ip,
nic.gateway,
nic.dns,
)
or conf
)
with open(f'{self.target}/etc/systemd/network/10-{nic.iface}.network', 'a') as netconf:
netconf.write(str(conf))
def copy_iso_network_config(self, enable_services: bool = False) -> bool:
# Copy (if any) iwd password and config files
if os.path.isdir('/var/lib/iwd/'):
if psk_files := glob.glob('/var/lib/iwd/*.psk'):
if not os.path.isdir(f'{self.target}/var/lib/iwd'):
os.makedirs(f'{self.target}/var/lib/iwd')
if enable_services:
# If we haven't installed the base yet (function called pre-maturely)
if self._helper_flags.get('base', False) is False:
self._base_packages.append('iwd')
# This function will be called after minimal_installation()
# as a hook for post-installs. This hook is only needed if
# base is not installed yet.
def post_install_enable_iwd_service(*args: str, **kwargs: str) -> None:
self.enable_service('iwd')
self.post_base_install.append(post_install_enable_iwd_service)
# Otherwise, we can go ahead and add the required package
# and enable it's service:
else:
self.pacman.strap('iwd')
self.enable_service('iwd')
for psk in psk_files:
shutil.copy2(psk, f'{self.target}/var/lib/iwd/{os.path.basename(psk)}')
# Enable systemd-resolved by (forcefully) setting a symlink
# For further details see https://wiki.archlinux.org/title/Systemd-resolved#DNS
resolv_config_path = Path(f'{self.target}/etc/resolv.conf')
if resolv_config_path.exists():
os.unlink(resolv_config_path)
os.symlink('/run/systemd/resolve/stub-resolv.conf', resolv_config_path)
# Copy (if any) systemd-networkd config files
if netconfigurations := glob.glob('/etc/systemd/network/*'):
if not os.path.isdir(f'{self.target}/etc/systemd/network/'):
os.makedirs(f'{self.target}/etc/systemd/network/')
for netconf_file in netconfigurations:
shutil.copy2(netconf_file, f'{self.target}/etc/systemd/network/{os.path.basename(netconf_file)}')
if enable_services:
# If we haven't installed the base yet (function called pre-maturely)
if self._helper_flags.get('base', False) is False:
def post_install_enable_networkd_resolved(*args: str, **kwargs: str) -> None:
self.enable_service(['systemd-networkd', 'systemd-resolved'])
self.post_base_install.append(post_install_enable_networkd_resolved)
# Otherwise, we can go ahead and enable the services
else:
self.enable_service(['systemd-networkd', 'systemd-resolved'])
return True
def mkinitcpio(self, flags: list[str]) -> bool:
for plugin in plugins.values():
if hasattr(plugin, 'on_mkinitcpio'):
# Allow plugins to override the usage of mkinitcpio altogether.
if plugin.on_mkinitcpio(self):
return True
with open(f'{self.target}/etc/mkinitcpio.conf', 'r+') as mkinit:
content = mkinit.read()
content = re.sub('\nMODULES=(.*)', f'\nMODULES=({" ".join(self._modules)})', content)
content = re.sub('\nBINARIES=(.*)', f'\nBINARIES=({" ".join(self._binaries)})', content)
content = re.sub('\nFILES=(.*)', f'\nFILES=({" ".join(self._files)})', content)
if not self._disk_encryption.hsm_device:
# For now, if we don't use HSM we revert to the old
# way of setting up encryption hooks for mkinitcpio.
# This is purely for stability reasons, we're going away from this.
# * systemd -> udev
# * sd-vconsole -> keymap
self._hooks = [hook.replace('systemd', 'udev').replace('sd-vconsole', 'keymap consolefont') for hook in self._hooks]
content = re.sub('\nHOOKS=(.*)', f'\nHOOKS=({" ".join(self._hooks)})', content)
mkinit.seek(0)
mkinit.truncate()
mkinit.write(content)
try:
self.arch_chroot(f'mkinitcpio {" ".join(flags)}', peek_output=True)
return True
except SysCallError as e:
if e.worker_log:
log(e.worker_log.decode())
return False
def _get_microcode(self) -> Path | None:
if not SysInfo.is_vm():
if vendor := SysInfo.cpu_vendor():
return vendor.get_ucode()
return None
def _prepare_fs_type(
self,
fs_type: FilesystemType,
mountpoint: Path | None,
) -> None:
if (pkg := fs_type.installation_pkg) is not None:
self._base_packages.append(pkg)
# https://github.com/archlinux/archinstall/issues/1837
if fs_type == FilesystemType.Btrfs:
self._disable_fstrim = True
def _prepare_encrypt(self, before: str = 'filesystems') -> None:
if self._disk_encryption.hsm_device:
# Required by mkinitcpio to add support for fido2-device options
self.pacman.strap('libfido2')
if 'sd-encrypt' not in self._hooks:
self._hooks.insert(self._hooks.index(before), 'sd-encrypt')
else:
if 'encrypt' not in self._hooks:
self._hooks.insert(self._hooks.index(before), 'encrypt')
def minimal_installation(
self,
optional_repositories: list[Repository] = [],
mkinitcpio: bool = True,
hostname: str | None = None,
locale_config: LocaleConfiguration | None = LocaleConfiguration.default(),
) -> None:
if self._disk_config.lvm_config:
lvm = 'lvm2'
self.add_additional_packages(lvm)
self._hooks.insert(self._hooks.index('filesystems') - 1, lvm)
for vg in self._disk_config.lvm_config.vol_groups:
for vol in vg.volumes:
if vol.fs_type is not None:
self._prepare_fs_type(vol.fs_type, vol.mountpoint)
types = (EncryptionType.LvmOnLuks, EncryptionType.LuksOnLvm)
if self._disk_encryption.encryption_type in types:
self._prepare_encrypt(lvm)
else:
for mod in self._disk_config.device_modifications:
for part in mod.partitions:
if part.fs_type is None:
continue
self._prepare_fs_type(part.fs_type, part.mountpoint)
if part in self._disk_encryption.partitions:
self._prepare_encrypt()
if ucode := self._get_microcode():
(self.target / 'boot' / ucode).unlink(missing_ok=True)
self._base_packages.append(ucode.stem)
else:
debug('Archinstall will not install any ucode.')
debug(f'Optional repositories: {optional_repositories}')
# This action takes place on the host system as pacstrap copies over package repository lists.
pacman_conf = PacmanConfig(self.target)
pacman_conf.enable(optional_repositories)
pacman_conf.apply()
if locale_config:
self.set_vconsole(locale_config)
self.pacman.strap(self._base_packages)
self._helper_flags['base-strapped'] = True
pacman_conf.persist()
# Periodic TRIM may improve the performance and longevity of SSDs whilst
# having no adverse effect on other devices. Most distributions enable
# periodic TRIM by default.
#
# https://github.com/archlinux/archinstall/issues/880
# https://github.com/archlinux/archinstall/issues/1837
# https://github.com/archlinux/archinstall/issues/1841
if not self._disable_fstrim:
self.enable_periodic_trim()
# TODO: Support locale and timezone
# os.remove(f'{self.target}/etc/localtime')
# sys_command(f'arch-chroot {self.target} ln -s /usr/share/zoneinfo/{localtime} /etc/localtime')
# sys_command('arch-chroot /mnt hwclock --hctosys --localtime')
if hostname:
self.set_hostname(hostname)
if locale_config:
self.set_locale(locale_config)
self.set_keyboard_language(locale_config.kb_layout)
if mkinitcpio and not self.mkinitcpio(['-P']):
error('Error generating initramfs (continuing anyway)')
self._helper_flags['base'] = True
# Run registered post-install hooks
for function in self.post_base_install:
info(f'Running post-installation hook: {function}')
function(self)
for plugin in plugins.values():
if hasattr(plugin, 'on_install'):
plugin.on_install(self)
def setup_btrfs_snapshot(
self,
snapshot_type: SnapshotType,
bootloader: Bootloader | None = None,
) -> None:
if snapshot_type == SnapshotType.Snapper:
debug('Setting up Btrfs snapper')
self.pacman.strap('snapper')
snapper: dict[str, str] = {
'root': '/',
'home': '/home',
}
for config_name, mountpoint in snapper.items():
command = [
'arch-chroot',
'-S',
str(self.target),
'snapper',
'--no-dbus',
'-c',
config_name,
'create-config',
mountpoint,
]
try:
SysCommand(command, peek_output=True)
except SysCallError as err:
raise DiskError(f'Could not setup Btrfs snapper: {err}')
self.enable_service('snapper-timeline.timer')
self.enable_service('snapper-cleanup.timer')
elif snapshot_type == SnapshotType.Timeshift:
debug('Setting up Btrfs timeshift')
self.pacman.strap('cronie')
self.pacman.strap('timeshift')
self.enable_service('cronie.service')
if bootloader and bootloader == Bootloader.Grub:
debug('Setting up grub integration for either')
self.pacman.strap('grub-btrfs')
self.pacman.strap('inotify-tools')
self._configure_grub_btrfsd(snapshot_type)
self.enable_service('grub-btrfsd.service')
def setup_swap(self, algo: ZramAlgorithm = ZramAlgorithm.ZSTD) -> None:
info('Setting up swap on zram')
self.pacman.strap('zram-generator')
info(f'Zram compression algorithm: {algo.value}')
with open(f'{self.target}/etc/systemd/zram-generator.conf', 'w') as zram_conf:
zram_conf.write('[zram0]\n')
zram_conf.write(f'compression-algorithm = {algo.value}\n')
self.enable_service('systemd-zram-setup@zram0.service')
self._zram_enabled = True
def _get_efi_partition(self) -> PartitionModification | None:
for layout in self._disk_config.device_modifications:
if partition := layout.get_efi_partition():
return partition
return None
def _get_boot_partition(self) -> PartitionModification | None:
for layout in self._disk_config.device_modifications:
if boot := layout.get_boot_partition():
return boot
return None
def _get_root(self) -> PartitionModification | LvmVolume | None:
if self._disk_config.lvm_config:
return self._disk_config.lvm_config.get_root_volume()
else:
for mod in self._disk_config.device_modifications:
if root := mod.get_root_partition():
return root
return None
def _configure_grub_btrfsd(self, snapshot_type: SnapshotType) -> None:
if snapshot_type == SnapshotType.Timeshift:
snapshot_path = '--timeshift-auto'
elif snapshot_type == SnapshotType.Snapper:
snapshot_path = '/.snapshots'
else:
raise ValueError('Unsupported snapshot type')
debug(f'Configuring grub-btrfsd service for {snapshot_type} at {snapshot_path}')
# Works for either snapper or ts just adapting default paths above
# https://www.freedesktop.org/software/systemd/man/latest/systemd.unit.html#id-1.14.3
systemd_dir = self.target / 'etc/systemd/system/grub-btrfsd.service.d'
systemd_dir.mkdir(parents=True, exist_ok=True)
override_conf = systemd_dir / 'override.conf'
config_content = textwrap.dedent(
"""
[Service]
ExecStart=
ExecStart=/usr/bin/grub-btrfsd --syslog {snapshot_path}
"""
).format(snapshot_path=snapshot_path)
override_conf.write_text(config_content)
override_conf.chmod(0o644)
def _get_luks_uuid_from_mapper_dev(self, mapper_dev_path: Path) -> str:
lsblk_info = get_lsblk_info(mapper_dev_path, reverse=True, full_dev_path=True)
if not lsblk_info.children or not lsblk_info.children[0].uuid:
raise ValueError('Unable to determine UUID of luks superblock')
return lsblk_info.children[0].uuid
def _get_kernel_params_partition(
self,
root_partition: PartitionModification,
id_root: bool = True,
partuuid: bool = True,
) -> list[str]:
kernel_parameters = []
if root_partition in self._disk_encryption.partitions:
# TODO: We need to detect if the encrypted device is a whole disk encryption,
# or simply a partition encryption. Right now we assume it's a partition (and we always have)
if self._disk_encryption.hsm_device:
debug(f'Root partition is an encrypted device, identifying by UUID: {root_partition.uuid}')
# Note: UUID must be used, not PARTUUID for sd-encrypt to work
kernel_parameters.append(f'rd.luks.name={root_partition.uuid}=root')
# Note: tpm2-device and fido2-device don't play along very well:
# https://github.com/archlinux/archinstall/pull/1196#issuecomment-1129715645
kernel_parameters.append('rd.luks.options=fido2-device=auto,password-echo=no')
elif partuuid:
debug(f'Root partition is an encrypted device, identifying by PARTUUID: {root_partition.partuuid}')
kernel_parameters.append(f'cryptdevice=PARTUUID={root_partition.partuuid}:root')
else:
debug(f'Root partition is an encrypted device, identifying by UUID: {root_partition.uuid}')
kernel_parameters.append(f'cryptdevice=UUID={root_partition.uuid}:root')
if id_root:
kernel_parameters.append('root=/dev/mapper/root')
elif id_root:
if partuuid:
debug(f'Identifying root partition by PARTUUID: {root_partition.partuuid}')
kernel_parameters.append(f'root=PARTUUID={root_partition.partuuid}')
else:
debug(f'Identifying root partition by UUID: {root_partition.uuid}')
kernel_parameters.append(f'root=UUID={root_partition.uuid}')
return kernel_parameters
def _get_kernel_params_lvm(
self,
lvm: LvmVolume,
) -> list[str]:
kernel_parameters = []
match self._disk_encryption.encryption_type:
case EncryptionType.LvmOnLuks:
if not lvm.vg_name:
raise ValueError(f'Unable to determine VG name for {lvm.name}')
pv_seg_info = lvm_pvseg_info(lvm.vg_name, lvm.name)
if not pv_seg_info:
raise ValueError(f'Unable to determine PV segment info for {lvm.vg_name}/{lvm.name}')
uuid = self._get_luks_uuid_from_mapper_dev(pv_seg_info.pv_name)
if self._disk_encryption.hsm_device:
debug(f'LvmOnLuks, encrypted root partition, HSM, identifying by UUID: {uuid}')
kernel_parameters.append(f'rd.luks.name={uuid}=cryptlvm root={lvm.safe_dev_path}')
else:
debug(f'LvmOnLuks, encrypted root partition, identifying by UUID: {uuid}')
kernel_parameters.append(f'cryptdevice=UUID={uuid}:cryptlvm root={lvm.safe_dev_path}')
case EncryptionType.LuksOnLvm:
uuid = self._get_luks_uuid_from_mapper_dev(lvm.mapper_path)
if self._disk_encryption.hsm_device:
debug(f'LuksOnLvm, encrypted root partition, HSM, identifying by UUID: {uuid}')
kernel_parameters.append(f'rd.luks.name={uuid}=root root=/dev/mapper/root')
else:
debug(f'LuksOnLvm, encrypted root partition, identifying by UUID: {uuid}')
kernel_parameters.append(f'cryptdevice=UUID={uuid}:root root=/dev/mapper/root')
case EncryptionType.NoEncryption:
debug(f'Identifying root lvm by mapper device: {lvm.dev_path}')
kernel_parameters.append(f'root={lvm.safe_dev_path}')
return kernel_parameters
def _get_kernel_params(
self,
root: PartitionModification | LvmVolume,
id_root: bool = True,
partuuid: bool = True,
) -> list[str]:
kernel_parameters = []
if isinstance(root, LvmVolume):
kernel_parameters = self._get_kernel_params_lvm(root)
else:
kernel_parameters = self._get_kernel_params_partition(root, id_root, partuuid)
# Zswap should be disabled when using zram.
# https://github.com/archlinux/archinstall/issues/881
if self._zram_enabled:
kernel_parameters.append('zswap.enabled=0')
if id_root:
for sub_vol in root.btrfs_subvols:
if sub_vol.is_root():
kernel_parameters.append(f'rootflags=subvol={sub_vol.name}')
break
kernel_parameters.append('rw')
kernel_parameters.append(f'rootfstype={root.safe_fs_type.value}')
kernel_parameters.extend(self._kernel_params)
debug(f'kernel parameters: {" ".join(kernel_parameters)}')
return kernel_parameters
def _create_bls_entries(
self,
boot_partition: PartitionModification,
root: PartitionModification | LvmVolume,
entry_name: str,
) -> None:
# Loader entries are stored in $BOOT/loader:
# https://uapi-group.org/specifications/specs/boot_loader_specification/#mount-points
entries_dir = self.target / boot_partition.relative_mountpoint / 'loader/entries'
# Ensure that the $BOOT/loader/entries/ directory exists before trying to create files in it
entries_dir.mkdir(parents=True, exist_ok=True)
entry_template = textwrap.dedent(
f"""\
# Created by: archinstall
# Created on: {self.init_time}
title Arch Linux ({{kernel}})
linux /vmlinuz-{{kernel}}
initrd /initramfs-{{kernel}}.img
options {' '.join(self._get_kernel_params(root))}
""",
)
for kernel in self.kernels:
# Setup the loader entry
name = entry_name.format(kernel=kernel)
entry_conf = entries_dir / name
entry_conf.write_text(entry_template.format(kernel=kernel))
def _add_systemd_bootloader(
self,
boot_partition: PartitionModification,
root: PartitionModification | LvmVolume,
efi_partition: PartitionModification | None,
uki_enabled: bool = False,
) -> None:
debug('Installing systemd bootloader')
self.pacman.strap('efibootmgr')
if not SysInfo.has_uefi():
raise HardwareIncompatibilityError
if not efi_partition:
raise ValueError('Could not detect EFI system partition')
elif not efi_partition.mountpoint:
raise ValueError('EFI system partition is not mounted')
# TODO: Ideally we would want to check if another config
# points towards the same disk and/or partition.
# And in which case we should do some clean up.
bootctl_options = []
if boot_partition != efi_partition:
bootctl_options.append(f'--esp-path={efi_partition.mountpoint}')
bootctl_options.append(f'--boot-path={boot_partition.mountpoint}')
# TODO: This is a temporary workaround to deal with https://github.com/archlinux/archinstall/pull/3396#issuecomment-2996862019
# the systemd_version check can be removed once `--variables=BOOL` is merged into systemd.
systemd_pkg = installed_package('systemd')
# keep the version as a str as it can be something like 257.8-2
if systemd_pkg is not None:
systemd_version = systemd_pkg.version
else:
systemd_version = '257' # This works as a safety workaround for this hot-fix
try:
# Force EFI variables since bootctl detects arch-chroot
# as a container environment since v257 and skips them silently.
# https://github.com/systemd/systemd/issues/36174
if systemd_version >= '258':
self.arch_chroot(f'bootctl --variables=yes {" ".join(bootctl_options)} install')
else:
self.arch_chroot(f'bootctl {" ".join(bootctl_options)} install')
except SysCallError:
if systemd_version >= '258':
# Fallback, try creating the boot loader without touching the EFI variables
self.arch_chroot(f'bootctl --variables=no {" ".join(bootctl_options)} install')
else:
self.arch_chroot(f'bootctl --no-variables {" ".join(bootctl_options)} install')
# Loader configuration is stored in ESP/loader:
# https://man.archlinux.org/man/loader.conf.5
loader_conf = self.target / efi_partition.relative_mountpoint / 'loader/loader.conf'
# Ensure that the ESP/loader/ directory exists before trying to create a file in it
loader_conf.parent.mkdir(parents=True, exist_ok=True)
default_kernel = self.kernels[0]
if uki_enabled:
default_entry = f'arch-{default_kernel}.efi'
else:
entry_name = self.init_time + '_{kernel}.conf'
default_entry = entry_name.format(kernel=default_kernel)
self._create_bls_entries(boot_partition, root, entry_name)
default = f'default {default_entry}'
# Modify or create a loader.conf
try:
loader_data = loader_conf.read_text().splitlines()
except FileNotFoundError:
loader_data = [
default,
'timeout 15',
]
else:
for index, line in enumerate(loader_data):
if line.startswith('default'):
loader_data[index] = default
elif line.startswith('#timeout'):
# We add in the default timeout to support dual-boot
loader_data[index] = line.removeprefix('#')
loader_conf.write_text('\n'.join(loader_data) + '\n')
self._helper_flags['bootloader'] = 'systemd'
def _add_grub_bootloader(
self,
boot_partition: PartitionModification,
root: PartitionModification | LvmVolume,
efi_partition: PartitionModification | None,
uki_enabled: bool = False,
bootloader_removable: bool = False,
) -> None:
debug('Installing grub bootloader')
self.pacman.strap('grub')
info(f'GRUB boot partition: {boot_partition.dev_path}')
boot_dir = Path('/boot')
command = [
'arch-chroot',
'-S',
str(self.target),
'grub-install',
'--debug',
]
if SysInfo.has_uefi():
if not efi_partition:
raise ValueError('Could not detect efi partition')
info(f'GRUB EFI partition: {efi_partition.dev_path}')
self.pacman.strap('efibootmgr') # TODO: Do we need? Yes, but remove from minimal_installation() instead?
boot_dir_arg = []
if boot_partition.mountpoint and boot_partition.mountpoint != boot_dir:
boot_dir_arg.append(f'--boot-directory={boot_partition.mountpoint}')
boot_dir = boot_partition.mountpoint
add_options = [
f'--target={platform.machine()}-efi',
f'--efi-directory={efi_partition.mountpoint}',
*boot_dir_arg,
'--bootloader-id=GRUB',
]
if bootloader_removable:
add_options.append('--removable')
command.extend(add_options)
try:
SysCommand(command, peek_output=True)
except SysCallError as err:
raise DiskError(f'Could not install GRUB to {self.target}{efi_partition.mountpoint}: {err}')
else:
info(f'GRUB boot partition: {boot_partition.dev_path}')
parent_dev_path = get_parent_device_path(boot_partition.safe_dev_path)
add_options = [
'--target=i386-pc',
'--recheck',
str(parent_dev_path),
]
try:
SysCommand(command + add_options, peek_output=True)
except SysCallError as err:
raise DiskError(f'Failed to install GRUB boot on {boot_partition.dev_path}: {err}')
if SysInfo.has_uefi() and uki_enabled:
grub_d = self.target / 'etc/grub.d'
linux_file = grub_d / '10_linux'
uki_file = grub_d / '15_uki'
raw_str_platform = r'\$grub_platform'
space_indent_cmd = ' uki'
content = textwrap.dedent(
f"""\
#! /bin/sh
set -e
cat << EOF
if [ "{raw_str_platform}" = "efi" ]; then
{space_indent_cmd}
fi
EOF
""",
)
try:
mode = linux_file.stat().st_mode
linux_file.chmod(mode & ~(stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH))
uki_file.write_text(content)
uki_file.chmod(mode)
except OSError:
error('Failed to enable UKI menu entries')
else:
grub_default = self.target / 'etc/default/grub'
config = grub_default.read_text()
kernel_parameters = ' '.join(
self._get_kernel_params(root, id_root=False, partuuid=False),
)
config = re.sub(
r'^(GRUB_CMDLINE_LINUX=")(")$',
rf'\1{kernel_parameters}\2',
config,
count=1,
flags=re.MULTILINE,
)
grub_default.write_text(config)
try:
self.arch_chroot(
f'grub-mkconfig -o {boot_dir}/grub/grub.cfg',
)
except SysCallError as err:
raise DiskError(f'Could not configure GRUB: {err}')
self._helper_flags['bootloader'] = 'grub'
def _add_limine_bootloader(
self,
boot_partition: PartitionModification,
efi_partition: PartitionModification | None,
root: PartitionModification | LvmVolume,
uki_enabled: bool = False,
bootloader_removable: bool = False,
) -> None:
debug('Installing Limine bootloader')
self.pacman.strap('limine')
info(f'Limine boot partition: {boot_partition.dev_path}')
limine_path = self.target / 'usr' / 'share' / 'limine'
config_path = None
hook_command = None
if SysInfo.has_uefi():
self.pacman.strap('efibootmgr')
if not efi_partition:
raise ValueError('Could not detect efi partition')
elif not efi_partition.mountpoint:
raise ValueError('EFI partition is not mounted')
info(f'Limine EFI partition: {efi_partition.dev_path}')
parent_dev_path = get_parent_device_path(efi_partition.safe_dev_path)
try:
efi_dir_path = self.target / efi_partition.mountpoint.relative_to('/') / 'EFI'
efi_dir_path_target = efi_partition.mountpoint / 'EFI'
if bootloader_removable:
efi_dir_path = efi_dir_path / 'BOOT'
efi_dir_path_target = efi_dir_path_target / 'BOOT'
boot_limine_path = self.target / 'boot' / 'limine'
boot_limine_path.mkdir(parents=True, exist_ok=True)
config_path = boot_limine_path / 'limine.conf'
else:
efi_dir_path = efi_dir_path / 'arch-limine'
efi_dir_path_target = efi_dir_path_target / 'arch-limine'
config_path = efi_dir_path / 'limine.conf'
efi_dir_path.mkdir(parents=True, exist_ok=True)
for file in ('BOOTIA32.EFI', 'BOOTX64.EFI'):
shutil.copy(limine_path / file, efi_dir_path)
except Exception as err:
raise DiskError(f'Failed to install Limine in {self.target}{efi_partition.mountpoint}: {err}')
hook_command = (
f'/usr/bin/cp /usr/share/limine/BOOTIA32.EFI {efi_dir_path_target}/ && /usr/bin/cp /usr/share/limine/BOOTX64.EFI {efi_dir_path_target}/'
)
if not bootloader_removable:
# Create EFI boot menu entry for Limine.
try:
with open('/sys/firmware/efi/fw_platform_size') as fw_platform_size:
efi_bitness = fw_platform_size.read().strip()
except Exception as err:
raise OSError(f'Could not open or read /sys/firmware/efi/fw_platform_size to determine EFI bitness: {err}')
if efi_bitness == '64':
loader_path = '\\EFI\\arch-limine\\BOOTX64.EFI'
elif efi_bitness == '32':
loader_path = '\\EFI\\arch-limine\\BOOTIA32.EFI'
else:
raise ValueError(f'EFI bitness is neither 32 nor 64 bits. Found "{efi_bitness}".')
try:
SysCommand(
'efibootmgr'
' --create'
f' --disk {parent_dev_path}'
f' --part {efi_partition.partn}'
' --label "Arch Linux Limine Bootloader"'
f" --loader '{loader_path}'"
' --unicode'
' --verbose',
)
except Exception as err:
raise ValueError(f'SysCommand for efibootmgr failed: {err}')
else:
boot_limine_path = self.target / 'boot' / 'limine'
boot_limine_path.mkdir(parents=True, exist_ok=True)
config_path = boot_limine_path / 'limine.conf'
parent_dev_path = get_parent_device_path(boot_partition.safe_dev_path)
if unique_path := get_unique_path_for_device(parent_dev_path):
parent_dev_path = unique_path
try:
# The `limine-bios.sys` file contains stage 3 code.
shutil.copy(limine_path / 'limine-bios.sys', boot_limine_path)
# `limine bios-install` deploys the stage 1 and 2 to the
self.arch_chroot(f'limine bios-install {parent_dev_path}', peek_output=True)
except Exception as err:
raise DiskError(f'Failed to install Limine on {parent_dev_path}: {err}')
hook_command = f'/usr/bin/limine bios-install {parent_dev_path} && /usr/bin/cp /usr/share/limine/limine-bios.sys /boot/limine/'
hook_contents = textwrap.dedent(
f'''\
[Trigger]
Operation = Install
Operation = Upgrade
Type = Package
Target = limine
[Action]
Description = Deploying Limine after upgrade...
When = PostTransaction
Exec = /bin/sh -c "{hook_command}"
''',
)
hooks_dir = self.target / 'etc' / 'pacman.d' / 'hooks'
hooks_dir.mkdir(parents=True, exist_ok=True)
hook_path = hooks_dir / '99-limine.hook'
hook_path.write_text(hook_contents)
kernel_params = ' '.join(self._get_kernel_params(root))
config_contents = 'timeout: 5\n'
path_root = 'boot()'
if efi_partition and boot_partition != efi_partition:
path_root = f'uuid({boot_partition.partuuid})'
for kernel in self.kernels:
if uki_enabled:
entry = [
'protocol: efi',
f'path: boot():/EFI/Linux/arch-{kernel}.efi',
f'cmdline: {kernel_params}',
]
config_contents += f'\n/Arch Linux ({kernel})\n'
config_contents += '\n'.join(f' {it}' for it in entry) + '\n'
else:
entry = [
'protocol: linux',
f'path: {path_root}:/vmlinuz-{kernel}',
f'cmdline: {kernel_params}',
f'module_path: {path_root}:/initramfs-{kernel}.img',
]
config_contents += f'\n/Arch Linux ({kernel})\n'
config_contents += '\n'.join(f' {it}' for it in entry) + '\n'
config_path.write_text(config_contents)
self._helper_flags['bootloader'] = 'limine'
def _add_efistub_bootloader(
self,
boot_partition: PartitionModification,
root: PartitionModification | LvmVolume,
uki_enabled: bool = False,
) -> None:
debug('Installing efistub bootloader')
self.pacman.strap('efibootmgr')
if not SysInfo.has_uefi():
raise HardwareIncompatibilityError
# TODO: Ideally we would want to check if another config
# points towards the same disk and/or partition.
# And in which case we should do some clean up.
if not uki_enabled:
loader = '/vmlinuz-{kernel}'
# EFI standards stipulate backslashes
entries = (
r'initrd=\initramfs-{kernel}.img',
*self._get_kernel_params(root),
)
cmdline = [' '.join(entries)]
else:
loader = '/EFI/Linux/arch-{kernel}.efi'
cmdline = []
parent_dev_path = get_parent_device_path(boot_partition.safe_dev_path)
cmd_template = (
'efibootmgr',
'--create',
'--disk',
str(parent_dev_path),
'--part',
str(boot_partition.partn),
'--label',
'Arch Linux ({kernel})',
'--loader',
loader,
'--unicode',
*cmdline,
'--verbose',
)
for kernel in self.kernels:
# Setup the firmware entry
cmd = [arg.format(kernel=kernel) for arg in cmd_template]
SysCommand(cmd)
self._helper_flags['bootloader'] = 'efistub'
def _add_refind_bootloader(
self,
boot_partition: PartitionModification,
efi_partition: PartitionModification | None,
root: PartitionModification | LvmVolume,
uki_enabled: bool = False,
) -> None:
debug('Installing rEFInd bootloader')
self.pacman.strap('refind')
if not SysInfo.has_uefi():
raise HardwareIncompatibilityError
info(f'rEFInd boot partition: {boot_partition.dev_path}')
if not efi_partition:
raise ValueError('Could not detect EFI system partition')
elif not efi_partition.mountpoint:
raise ValueError('EFI system partition is not mounted')
info(f'rEFInd EFI partition: {efi_partition.dev_path}')
try:
self.arch_chroot('refind-install')
except SysCallError as err:
raise DiskError(f'Could not install rEFInd to {self.target}{efi_partition.mountpoint}: {err}')
if not boot_partition.mountpoint:
raise ValueError('Boot partition is not mounted, cannot write rEFInd config')
boot_is_separate = boot_partition != efi_partition and boot_partition.dev_path != efi_partition.dev_path
if boot_is_separate:
# Separate boot partition (not ESP, not root)
config_path = self.target / boot_partition.mountpoint.relative_to('/') / 'refind_linux.conf'
boot_on_root = False
elif efi_partition.mountpoint == Path('/boot'):
# ESP is mounted at /boot, kernels are on ESP
config_path = self.target / 'boot' / 'refind_linux.conf'
boot_on_root = False
else:
# ESP is elsewhere (/efi, /boot/efi, etc.), kernels are on root filesystem at /boot
config_path = self.target / 'boot' / 'refind_linux.conf'
boot_on_root = True
config_contents = []
kernel_params = ' '.join(self._get_kernel_params(root))
for kernel in self.kernels:
if uki_enabled:
entry = f'"Arch Linux ({kernel}) UKI" "{kernel_params}"'
else:
if boot_on_root:
# Kernels are in /boot subdirectory of root filesystem
if hasattr(root, 'btrfs_subvols') and root.btrfs_subvols:
# Root is btrfs with subvolume, find the root subvolume
root_subvol = next((sv for sv in root.btrfs_subvols if sv.is_root()), None)
if root_subvol:
subvol_name = root_subvol.name
initrd_path = f'initrd={subvol_name}\\boot\\initramfs-{kernel}.img'
else:
initrd_path = f'initrd=\\boot\\initramfs-{kernel}.img'
else:
# Root without btrfs subvolume
initrd_path = f'initrd=\\boot\\initramfs-{kernel}.img'
else:
# Kernels are at root of their partition (ESP or separate boot partition)
initrd_path = f'initrd=\\initramfs-{kernel}.img'
entry = f'"Arch Linux ({kernel})" "{kernel_params} {initrd_path}"'
config_contents.append(entry)
config_path.write_text('\n'.join(config_contents) + '\n')
hook_contents = textwrap.dedent(
"""\
[Trigger]
Operation = Install
Operation = Upgrade
Type = Package
Target = refind
[Action]
Description = Updating rEFInd on ESP
When = PostTransaction
Exec = /usr/bin/refind-install
"""
)
hooks_dir = self.target / 'etc' / 'pacman.d' / 'hooks'
hooks_dir.mkdir(parents=True, exist_ok=True)
hook_path = hooks_dir / '99-refind.hook'
hook_path.write_text(hook_contents)
self._helper_flags['bootloader'] = 'refind'
def _config_uki(
self,
root: PartitionModification | LvmVolume,
efi_partition: PartitionModification | None,
) -> None:
if not efi_partition or not efi_partition.mountpoint:
raise ValueError(f'Could not detect ESP at mountpoint {self.target}')
# Set up kernel command line
with open(self.target / 'etc/kernel/cmdline', 'w') as cmdline:
kernel_parameters = self._get_kernel_params(root)
cmdline.write(' '.join(kernel_parameters) + '\n')
diff_mountpoint = None
if efi_partition.mountpoint != Path('/efi'):
diff_mountpoint = str(efi_partition.mountpoint)
image_re = re.compile('(.+_image="/([^"]+).+\n)')
uki_re = re.compile('#((.+_uki=")/[^/]+(.+\n))')
# Modify .preset files
for kernel in self.kernels:
preset = self.target / 'etc/mkinitcpio.d' / (kernel + '.preset')
config = preset.read_text().splitlines(True)
for index, line in enumerate(config):
# Avoid storing redundant image file
if m := image_re.match(line):
image = self.target / m.group(2)
image.unlink(missing_ok=True)
config[index] = '#' + m.group(1)
elif m := uki_re.match(line):
if diff_mountpoint:
config[index] = m.group(2) + diff_mountpoint + m.group(3)
else:
config[index] = m.group(1)
elif line.startswith('#default_options='):
config[index] = line.removeprefix('#')
preset.write_text(''.join(config))
# Directory for the UKIs
uki_dir = self.target / efi_partition.relative_mountpoint / 'EFI/Linux'
uki_dir.mkdir(parents=True, exist_ok=True)
# Build the UKIs
if not self.mkinitcpio(['-P']):
error('Error generating initramfs (continuing anyway)')
def add_bootloader(self, bootloader: Bootloader, uki_enabled: bool = False, bootloader_removable: bool = False) -> None:
"""
Adds a bootloader to the installation instance.
Archinstall supports one of five types:
* systemd-bootctl
* grub
* limine
* efistub (beta)
* refnd (beta)
:param bootloader: Type of bootloader to be added
:param uki_enabled: Whether to use unified kernel images
:param bootloader_removable: Whether to install to removable media location (UEFI only, for GRUB and Limine)
"""
for plugin in plugins.values():
if hasattr(plugin, 'on_add_bootloader'):
# Allow plugins to override the boot-loader handling.
# This allows for boot configuring and installing bootloaders.
if plugin.on_add_bootloader(self):
return
efi_partition = self._get_efi_partition()
boot_partition = self._get_boot_partition()
root = self._get_root()
if boot_partition is None:
raise ValueError(f'Could not detect boot at mountpoint {self.target}')
if root is None:
raise ValueError(f'Could not detect root at mountpoint {self.target}')
info(f'Adding bootloader {bootloader.value} to {boot_partition.dev_path}')
# validate UKI support
if uki_enabled and not bootloader.has_uki_support():
warn(f'Bootloader {bootloader.value} does not support UKI; disabling.')
uki_enabled = False
# validate removable bootloader option
if bootloader_removable:
if not SysInfo.has_uefi():
warn('Removable install requested but system is not UEFI; disabling.')
bootloader_removable = False
elif not bootloader.has_removable_support():
warn(f'Bootloader {bootloader.value} lacks removable support; disabling.')
bootloader_removable = False
if uki_enabled:
self._config_uki(root, efi_partition)
match bootloader:
case Bootloader.Systemd:
self._add_systemd_bootloader(boot_partition, root, efi_partition, uki_enabled)
case Bootloader.Grub:
self._add_grub_bootloader(boot_partition, root, efi_partition, uki_enabled, bootloader_removable)
case Bootloader.Efistub:
self._add_efistub_bootloader(boot_partition, root, uki_enabled)
case Bootloader.Limine:
self._add_limine_bootloader(boot_partition, efi_partition, root, uki_enabled, bootloader_removable)
case Bootloader.Refind:
self._add_refind_bootloader(boot_partition, efi_partition, root, uki_enabled)
def add_additional_packages(self, packages: str | list[str]) -> None:
return self.pacman.strap(packages)
def enable_sudo(self, user: User, group: bool = False) -> None:
info(f'Enabling sudo permissions for {user.username}')
sudoers_dir = self.target / 'etc/sudoers.d'
# Creates directory if not exists
if not sudoers_dir.exists():
sudoers_dir.mkdir(parents=True)
# Guarantees sudoer confs directory recommended perms
sudoers_dir.chmod(0o440)
# Appends a reference to the sudoers file, because if we are here sudoers.d did not exist yet
with open(self.target / 'etc/sudoers', 'a') as sudoers:
sudoers.write('@includedir /etc/sudoers.d\n')
# We count how many files are there already so we know which number to prefix the file with
num_of_rules_already = len(os.listdir(sudoers_dir))
file_num_str = f'{num_of_rules_already:02d}' # We want 00_user1, 01_user2, etc
# Guarantees that username str does not contain invalid characters for a linux file name:
# \ / : * ? " < > |
safe_username_file_name = re.sub(r'(\\|\/|:|\*|\?|"|<|>|\|)', '', user.username)
rule_file = sudoers_dir / f'{file_num_str}_{safe_username_file_name}'
with rule_file.open('a') as sudoers:
sudoers.write(f'{"%" if group else ""}{user.username} ALL=(ALL) ALL\n')
# Guarantees sudoer conf file recommended perms
rule_file.chmod(0o440)
def create_users(self, users: User | list[User]) -> None:
if not isinstance(users, list):
users = [users]
for user in users:
self._create_user(user)
def _create_user(self, user: User) -> None:
# This plugin hook allows for the plugin to handle the creation of the user.
# Password and Group management is still handled by user_create()
handled_by_plugin = False
for plugin in plugins.values():
if hasattr(plugin, 'on_user_create'):
if result := plugin.on_user_create(self, user):
handled_by_plugin = result
if not handled_by_plugin:
info(f'Creating user {user.username}')
cmd = 'useradd -m'
if user.sudo:
cmd += ' -G wheel'
cmd += f' {user.username}'
try:
self.arch_chroot(cmd)
except SysCallError as err:
raise SystemError(f'Could not create user inside installation: {err}')
for plugin in plugins.values():
if hasattr(plugin, 'on_user_created'):
if result := plugin.on_user_created(self, user):
handled_by_plugin = result
self.set_user_password(user)
for group in user.groups:
self.arch_chroot(f'gpasswd -a {user.username} {group}')
if user.sudo:
self.enable_sudo(user)
def set_user_password(self, user: User) -> bool:
info(f'Setting password for {user.username}')
enc_password = user.password.enc_password
if not enc_password:
debug('User password is empty')
return False
input_data = f'{user.username}:{enc_password}'.encode()
cmd = ['arch-chroot', '-S', str(self.target), 'chpasswd', '--encrypted']
try:
run(cmd, input_data=input_data)
return True
except CalledProcessError as err:
debug(f'Error setting user password: {err}')
return False
def user_set_shell(self, user: str, shell: str) -> bool:
info(f'Setting shell for {user} to {shell}')
try:
self.arch_chroot(f'sh -c "chsh -s {shell} {user}"')
return True
except SysCallError:
return False
def chown(self, owner: str, path: str, options: list[str] = []) -> bool:
cleaned_path = path.replace("'", "\\'")
try:
self.arch_chroot(f"sh -c 'chown {' '.join(options)} {owner} {cleaned_path}'")
return True
except SysCallError:
return False
def set_vconsole(self, locale_config: LocaleConfiguration) -> None:
# use the already set kb layout
kb_vconsole: str = locale_config.kb_layout
# this is the default used in ISO other option for hdpi screens TER16x32
# can be checked using
# zgrep "CONFIG_FONT" /proc/config.gz
# https://wiki.archlinux.org/title/Linux_console#Fonts
font_vconsole = 'default8x16'
# Ensure /etc exists
vconsole_dir: Path = self.target / 'etc'
vconsole_dir.mkdir(parents=True, exist_ok=True)
vconsole_path: Path = vconsole_dir / 'vconsole.conf'
# Write both KEYMAP and FONT to vconsole.conf
vconsole_content = f'KEYMAP={kb_vconsole}\n'
# Corrects another warning
vconsole_content += f'FONT={font_vconsole}\n'
vconsole_path.write_text(vconsole_content)
info(f'Wrote to {vconsole_path} using {kb_vconsole} and {font_vconsole}')
def set_keyboard_language(self, language: str) -> bool:
info(f'Setting keyboard language to {language}')
if len(language.strip()):
if not verify_keyboard_layout(language):
error(f'Invalid keyboard language specified: {language}')
return False
# In accordance with https://github.com/archlinux/archinstall/issues/107#issuecomment-841701968
# Setting an empty keymap first, allows the subsequent call to set layout for both console and x11.
with Boot(self.target) as session:
os.system('systemd-run --machine=archinstall --pty localectl set-keymap ""')
try:
session.SysCommand(['localectl', 'set-keymap', language])
except SysCallError as err:
raise ServiceException(f"Unable to set locale '{language}' for console: {err}")
info(f'Keyboard language for this installation is now set to: {language}')
else:
info('Keyboard language was not changed from default (no language specified)')
return True
def set_x11_keyboard_language(self, language: str) -> bool:
"""
A fallback function to set x11 layout specifically and separately from console layout.
This isn't strictly necessary since .set_keyboard_language() does this as well.
"""
info(f'Setting x11 keyboard language to {language}')
if len(language.strip()):
if not verify_x11_keyboard_layout(language):
error(f'Invalid x11-keyboard language specified: {language}')
return False
with Boot(self.target) as session:
session.SysCommand(['localectl', 'set-x11-keymap', '""'])
try:
session.SysCommand(['localectl', 'set-x11-keymap', language])
except SysCallError as err:
raise ServiceException(f"Unable to set locale '{language}' for X11: {err}")
else:
info('X11-Keyboard language was not changed from default (no language specified)')
return True
def _service_started(self, service_name: str) -> str | None:
if os.path.splitext(service_name)[1] not in ('.service', '.target', '.timer'):
service_name += '.service' # Just to be safe
last_execution_time = (
SysCommand(
f'systemctl show --property=ActiveEnterTimestamp --no-pager {service_name}',
environment_vars={'SYSTEMD_COLORS': '0'},
)
.decode()
.removeprefix('ActiveEnterTimestamp=')
)
if not last_execution_time:
return None
return last_execution_time
def _service_state(self, service_name: str) -> str:
if os.path.splitext(service_name)[1] not in ('.service', '.target', '.timer'):
service_name += '.service' # Just to be safe
return SysCommand(
f'systemctl show --no-pager -p SubState --value {service_name}',
environment_vars={'SYSTEMD_COLORS': '0'},
).decode()
def accessibility_tools_in_use() -> bool:
return os.system('systemctl is-active --quiet espeakup.service') == 0
def run_custom_user_commands(commands: list[str], installation: Installer) -> None:
for index, command in enumerate(commands):
script_path = f'/var/tmp/user-command.{index}.sh'
chroot_path = f'{installation.target}/{script_path}'
info(f'Executing custom command "{command}" ...')
with open(chroot_path, 'w') as user_script:
user_script.write(command)
SysCommand(f'arch-chroot -S {installation.target} bash {script_path}')
os.unlink(chroot_path)
================================================
FILE: archinstall/lib/interactions/__init__.py
================================================
from archinstall.lib.interactions.disk_conf import (
get_default_partition_layout,
select_devices,
select_disk_config,
select_main_filesystem_format,
suggest_multi_disk_layout,
suggest_single_disk_layout,
)
from archinstall.lib.interactions.general_conf import (
add_number_of_parallel_downloads,
select_archinstall_language,
select_hostname,
select_ntp,
select_timezone,
)
from archinstall.lib.interactions.system_conf import select_driver, select_kernel, select_swap
__all__ = [
'add_number_of_parallel_downloads',
'get_default_partition_layout',
'select_archinstall_language',
'select_devices',
'select_disk_config',
'select_driver',
'select_hostname',
'select_kernel',
'select_main_filesystem_format',
'select_ntp',
'select_swap',
'select_timezone',
'suggest_multi_disk_layout',
'suggest_single_disk_layout',
]
================================================
FILE: archinstall/lib/interactions/disk_conf.py
================================================
from pathlib import Path
from archinstall.lib.disk.device_handler import device_handler
from archinstall.lib.disk.partitioning_menu import manual_partitioning
from archinstall.lib.menu.helpers import Confirmation, Notify, Selection, Table
from archinstall.lib.menu.util import prompt_dir
from archinstall.lib.models.device import (
BDevice,
BtrfsMountOption,
DeviceModification,
DiskLayoutConfiguration,
DiskLayoutType,
FilesystemType,
LvmConfiguration,
LvmLayoutType,
LvmVolume,
LvmVolumeGroup,
LvmVolumeStatus,
ModificationStatus,
PartitionFlag,
PartitionModification,
PartitionType,
SectorSize,
Size,
SubvolumeModification,
Unit,
_DeviceInfo,
)
from archinstall.lib.output import FormattedOutput, debug
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType
async def select_devices(preset: list[BDevice] | None = []) -> list[BDevice] | None:
def _preview_device_selection(item: MenuItem) -> str | None:
device: _DeviceInfo = item.value # type: ignore[assignment]
dev = device_handler.get_device(device.path)
if dev and dev.partition_infos:
return FormattedOutput.as_table(dev.partition_infos)
return None
if preset is None:
preset = []
devices = device_handler.devices
items = [
MenuItem(
str(d.device_info.path),
d.device_info,
preview_action=_preview_device_selection,
)
for d in devices
]
presets = [p.device_info for p in preset]
group = MenuItemGroup(items)
group.set_selected_by_value(presets)
result = await Table[_DeviceInfo](
header=tr('Select disks for the installation'),
group=group,
presets=presets,
allow_skip=True,
multi=True,
preview_location='bottom',
preview_header=tr('Partitions'),
).show()
match result.type_:
case ResultType.Reset:
return None
case ResultType.Skip:
return None
case ResultType.Selection:
selected_device_info = result.get_values()
selected_devices = []
for device in devices:
if device.device_info in selected_device_info:
selected_devices.append(device)
return selected_devices
async def get_default_partition_layout(
devices: list[BDevice],
filesystem_type: FilesystemType | None = None,
) -> list[DeviceModification]:
if len(devices) == 1:
device_modification = await suggest_single_disk_layout(
devices[0],
filesystem_type=filesystem_type,
)
return [device_modification]
else:
return await suggest_multi_disk_layout(
devices,
filesystem_type=filesystem_type,
)
async def _manual_partitioning(
preset: list[DeviceModification],
devices: list[BDevice],
) -> list[DeviceModification] | None:
modifications: list[DeviceModification] = []
for device in devices:
mod = next(filter(lambda x: x.device == device, preset), None)
if not mod:
mod = DeviceModification(device, wipe=False)
device_mod = await manual_partitioning(mod, device_handler.partition_table)
if not device_mod:
return None
modifications.append(device_mod)
return modifications
async def select_disk_config(preset: DiskLayoutConfiguration | None = None) -> DiskLayoutConfiguration | None:
default_layout = DiskLayoutType.Default.display_msg()
manual_mode = DiskLayoutType.Manual.display_msg()
pre_mount_mode = DiskLayoutType.Pre_mount.display_msg()
items = [
MenuItem(default_layout, value=default_layout),
MenuItem(manual_mode, value=manual_mode),
MenuItem(pre_mount_mode, value=pre_mount_mode),
]
group = MenuItemGroup(items, sort_items=False)
if preset:
group.set_selected_by_value(preset.config_type.display_msg())
result = await Selection[str](
group,
header=tr('Select a disk configuration'),
allow_skip=True,
allow_reset=True,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Reset:
return None
case ResultType.Selection:
selection = result.get_value()
if selection == pre_mount_mode:
output = tr('Enter root mount directory') + '\n\n'
output += tr('You will use whatever drive-setup is mounted at the specified directory') + '\n'
output += tr("WARNING: Archinstall won't check the suitability of this setup")
path = await prompt_dir(output, allow_skip=True)
if path is None:
return None
mods = device_handler.detect_pre_mounted_mods(path)
return DiskLayoutConfiguration(
config_type=DiskLayoutType.Pre_mount,
device_modifications=mods,
mountpoint=path,
)
preset_devices = [mod.device for mod in preset.device_modifications] if preset else []
devices = await select_devices(preset_devices)
if devices is None:
return preset
if result.get_value() == default_layout:
modifications = await get_default_partition_layout(devices)
if modifications:
return DiskLayoutConfiguration(
config_type=DiskLayoutType.Default,
device_modifications=modifications,
)
elif result.get_value() == manual_mode:
preset_mods = preset.device_modifications if preset else []
partitions = await _manual_partitioning(preset_mods, devices)
if not partitions:
return preset
return DiskLayoutConfiguration(
config_type=DiskLayoutType.Manual,
device_modifications=partitions,
)
return None
async def select_lvm_config(
disk_config: DiskLayoutConfiguration,
preset: LvmConfiguration | None = None,
) -> LvmConfiguration | None:
preset_value = preset.config_type.display_msg() if preset else None
default_mode = LvmLayoutType.Default.display_msg()
items = [MenuItem(default_mode, value=default_mode)]
group = MenuItemGroup(items)
group.set_focus_by_value(preset_value)
result = await Selection[str](
group,
allow_reset=True,
allow_skip=True,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Reset:
return None
case ResultType.Selection:
if result.get_value() == default_mode:
return await suggest_lvm_layout(disk_config)
return None
def _boot_partition(sector_size: SectorSize, using_gpt: bool) -> PartitionModification:
flags = [PartitionFlag.BOOT]
size = Size(1, Unit.GiB, sector_size)
start = Size(1, Unit.MiB, sector_size)
if using_gpt:
flags.append(PartitionFlag.ESP)
# boot partition
return PartitionModification(
status=ModificationStatus.Create,
type=PartitionType.Primary,
start=start,
length=size,
mountpoint=Path('/boot'),
fs_type=FilesystemType.Fat32,
flags=flags,
)
async def select_main_filesystem_format() -> FilesystemType:
items = [
MenuItem('btrfs', value=FilesystemType.Btrfs),
MenuItem('ext4', value=FilesystemType.Ext4),
MenuItem('xfs', value=FilesystemType.Xfs),
MenuItem('f2fs', value=FilesystemType.F2fs),
]
group = MenuItemGroup(items, sort_items=False)
result = await Selection[FilesystemType](
group,
header=tr('Select main filesystem'),
allow_skip=False,
).show()
match result.type_:
case ResultType.Selection:
return result.get_value()
case _:
raise ValueError('Unhandled result type')
async def select_mount_options() -> list[str]:
prompt = tr('Would you like to use compression or disable CoW?') + '\n'
compression = tr('Use compression')
disable_cow = tr('Disable Copy-on-Write')
items = [
MenuItem(compression, value=BtrfsMountOption.compress.value),
MenuItem(disable_cow, value=BtrfsMountOption.nodatacow.value),
]
group = MenuItemGroup(items, sort_items=False)
result = await Selection[str](
group,
header=prompt,
allow_skip=True,
).show()
match result.type_:
case ResultType.Skip:
return []
case ResultType.Selection:
return [result.get_value()]
case _:
raise ValueError('Unhandled result type')
def process_root_partition_size(total_size: Size, sector_size: SectorSize) -> Size:
# root partition size processing
total_device_size = total_size.convert(Unit.GiB)
if total_device_size.value > 500:
# maximum size
return Size(value=50, unit=Unit.GiB, sector_size=sector_size)
elif total_device_size.value < 320:
# minimum size
return Size(value=32, unit=Unit.GiB, sector_size=sector_size)
else:
# 10% of total size
length = total_device_size.value // 10
return Size(value=length, unit=Unit.GiB, sector_size=sector_size)
def get_default_btrfs_subvols() -> list[SubvolumeModification]:
# https://btrfs.wiki.kernel.org/index.php/FAQ
# https://unix.stackexchange.com/questions/246976/btrfs-subvolume-uuid-clash
# https://github.com/classy-giraffe/easy-arch/blob/main/easy-arch.sh
return [
SubvolumeModification(Path('@'), Path('/')),
SubvolumeModification(Path('@home'), Path('/home')),
SubvolumeModification(Path('@log'), Path('/var/log')),
SubvolumeModification(Path('@pkg'), Path('/var/cache/pacman/pkg')),
]
async def suggest_single_disk_layout(
device: BDevice,
filesystem_type: FilesystemType | None = None,
separate_home: bool | None = None,
) -> DeviceModification:
if not filesystem_type:
filesystem_type = await select_main_filesystem_format()
sector_size = device.device_info.sector_size
total_size = device.device_info.total_size
available_space = total_size
min_size_to_allow_home_part = Size(64, Unit.GiB, sector_size)
if filesystem_type == FilesystemType.Btrfs:
prompt = tr('Would you like to use BTRFS subvolumes with a default structure?') + '\n'
result = await Confirmation(
header=prompt,
allow_skip=False,
preset=True,
).show()
using_subvolumes = result.item() == MenuItem.yes()
mount_options = await select_mount_options()
else:
using_subvolumes = False
mount_options = []
device_modification = DeviceModification(device, wipe=True)
using_gpt = device_handler.partition_table.is_gpt()
if using_gpt:
available_space = available_space.gpt_end()
available_space = available_space.align()
# Used for reference: https://wiki.archlinux.org/title/partitioning
boot_partition = _boot_partition(sector_size, using_gpt)
device_modification.add_partition(boot_partition)
if separate_home is False or using_subvolumes or total_size < min_size_to_allow_home_part:
using_home_partition = False
elif separate_home:
using_home_partition = True
else:
prompt = tr('Would you like to create a separate partition for /home?') + '\n'
result = await Confirmation(
header=prompt,
allow_skip=False,
preset=True,
).show()
using_home_partition = result.item() == MenuItem.yes()
# root partition
root_start = boot_partition.start + boot_partition.length
# Set a size for / (/root)
if using_home_partition:
root_length = process_root_partition_size(total_size, sector_size)
else:
root_length = available_space - root_start
root_partition = PartitionModification(
status=ModificationStatus.Create,
type=PartitionType.Primary,
start=root_start,
length=root_length,
mountpoint=Path('/') if not using_subvolumes else None,
fs_type=filesystem_type,
mount_options=mount_options,
)
device_modification.add_partition(root_partition)
if using_subvolumes:
root_partition.btrfs_subvols = get_default_btrfs_subvols()
elif using_home_partition:
# If we don't want to use subvolumes,
# But we want to be able to reuse data between re-installs..
# A second partition for /home would be nice if we have the space for it
home_start = root_partition.start + root_partition.length
home_length = available_space - home_start
flags = []
if using_gpt:
flags.append(PartitionFlag.LINUX_HOME)
home_partition = PartitionModification(
status=ModificationStatus.Create,
type=PartitionType.Primary,
start=home_start,
length=home_length,
mountpoint=Path('/home'),
fs_type=filesystem_type,
mount_options=mount_options,
flags=flags,
)
device_modification.add_partition(home_partition)
return device_modification
async def suggest_multi_disk_layout(
devices: list[BDevice],
filesystem_type: FilesystemType | None = None,
) -> list[DeviceModification]:
if not devices:
return []
# Not really a rock solid foundation of information to stand on, but it's a start:
# https://www.reddit.com/r/btrfs/comments/m287gp/partition_strategy_for_two_physical_disks/
# https://www.reddit.com/r/btrfs/comments/9us4hr/what_is_your_btrfs_partitionsubvolumes_scheme/
min_home_partition_size = Size(40, Unit.GiB, SectorSize.default())
# rough estimate taking in to account user desktops etc. TODO: Catch user packages to detect size?
desired_root_partition_size = Size(32, Unit.GiB, SectorSize.default())
mount_options = []
if not filesystem_type:
filesystem_type = await select_main_filesystem_format()
# find proper disk for /home
possible_devices = [d for d in devices if d.device_info.total_size >= min_home_partition_size]
home_device = max(possible_devices, key=lambda d: d.device_info.total_size) if possible_devices else None
# find proper device for /root
devices_delta = {}
for device in devices:
if device is not home_device:
delta = device.device_info.total_size - desired_root_partition_size
devices_delta[device] = delta
sorted_delta: list[tuple[BDevice, Size]] = sorted(devices_delta.items(), key=lambda x: x[1])
root_device: BDevice | None = sorted_delta[0][0]
if home_device is None or root_device is None:
text = tr('The selected drives do not have the minimum capacity required for an automatic suggestion\n')
text += tr('Minimum capacity for /home partition: {}GiB\n').format(min_home_partition_size.format_size(Unit.GiB))
text += tr('Minimum capacity for Arch Linux partition: {}GiB').format(desired_root_partition_size.format_size(Unit.GiB))
_ = await Notify(text).show()
return []
if filesystem_type == FilesystemType.Btrfs:
mount_options = await select_mount_options()
device_paths = ', '.join(str(d.device_info.path) for d in devices)
debug(f'Suggesting multi-disk-layout for devices: {device_paths}')
debug(f'/root: {root_device.device_info.path}')
debug(f'/home: {home_device.device_info.path}')
root_device_modification = DeviceModification(root_device, wipe=True)
home_device_modification = DeviceModification(home_device, wipe=True)
root_device_sector_size = root_device_modification.device.device_info.sector_size
home_device_sector_size = home_device_modification.device.device_info.sector_size
using_gpt = device_handler.partition_table.is_gpt()
# add boot partition to the root device
boot_partition = _boot_partition(root_device_sector_size, using_gpt)
root_device_modification.add_partition(boot_partition)
root_start = boot_partition.start + boot_partition.length
root_length = root_device.device_info.total_size - root_start
if using_gpt:
root_length = root_length.gpt_end()
root_length = root_length.align()
# add root partition to the root device
root_partition = PartitionModification(
status=ModificationStatus.Create,
type=PartitionType.Primary,
start=root_start,
length=root_length,
mountpoint=Path('/'),
mount_options=mount_options,
fs_type=filesystem_type,
)
root_device_modification.add_partition(root_partition)
home_start = Size(1, Unit.MiB, home_device_sector_size)
home_length = home_device.device_info.total_size - home_start
flags = []
if using_gpt:
home_length = home_length.gpt_end()
flags.append(PartitionFlag.LINUX_HOME)
home_length = home_length.align()
# add home partition to home device
home_partition = PartitionModification(
status=ModificationStatus.Create,
type=PartitionType.Primary,
start=home_start,
length=home_length,
mountpoint=Path('/home'),
mount_options=mount_options,
fs_type=filesystem_type,
flags=flags,
)
home_device_modification.add_partition(home_partition)
return [root_device_modification, home_device_modification]
async def suggest_lvm_layout(
disk_config: DiskLayoutConfiguration,
filesystem_type: FilesystemType | None = None,
vg_grp_name: str = 'ArchinstallVg',
) -> LvmConfiguration:
if disk_config.config_type != DiskLayoutType.Default:
raise ValueError('LVM suggested volumes are only available for default partitioning')
using_subvolumes = False
btrfs_subvols = []
home_volume = True
mount_options = []
if not filesystem_type:
filesystem_type = await select_main_filesystem_format()
if filesystem_type == FilesystemType.Btrfs:
prompt = tr('Would you like to use BTRFS subvolumes with a default structure?') + '\n'
result = await Confirmation(header=prompt, allow_skip=False, preset=True).show()
using_subvolumes = MenuItem.yes() == result.item()
mount_options = await select_mount_options()
if using_subvolumes:
btrfs_subvols = get_default_btrfs_subvols()
home_volume = False
boot_part: PartitionModification | None = None
other_part: list[PartitionModification] = []
for mod in disk_config.device_modifications:
for part in mod.partitions:
if part.is_boot():
boot_part = part
else:
other_part.append(part)
if not boot_part:
raise ValueError('Unable to find boot partition in partition modifications')
total_vol_available = sum(
[p.length for p in other_part],
Size(0, Unit.B, SectorSize.default()),
)
root_vol_size = process_root_partition_size(total_vol_available, SectorSize.default())
home_vol_size = total_vol_available - root_vol_size
lvm_vol_group = LvmVolumeGroup(vg_grp_name, pvs=other_part)
root_vol = LvmVolume(
status=LvmVolumeStatus.Create,
name='root',
fs_type=filesystem_type,
length=root_vol_size,
mountpoint=Path('/'),
btrfs_subvols=btrfs_subvols,
mount_options=mount_options,
)
lvm_vol_group.volumes.append(root_vol)
if home_volume:
home_vol = LvmVolume(
status=LvmVolumeStatus.Create,
name='home',
fs_type=filesystem_type,
length=home_vol_size,
mountpoint=Path('/home'),
)
lvm_vol_group.volumes.append(home_vol)
return LvmConfiguration(LvmLayoutType.Default, [lvm_vol_group])
================================================
FILE: archinstall/lib/interactions/general_conf.py
================================================
from enum import Enum
from pathlib import Path
from archinstall.lib.locale.utils import list_timezones
from archinstall.lib.menu.helpers import Confirmation, Input, Selection
from archinstall.lib.output import warn
from archinstall.lib.translationhandler import Language, tr
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType
class PostInstallationAction(Enum):
EXIT = tr('Exit archinstall')
REBOOT = tr('Reboot system')
CHROOT = tr('chroot into installation for post-installation configurations')
async def select_ntp(preset: bool = True) -> bool:
header = tr('Would you like to use automatic time synchronization (NTP) with the default time servers?\n') + '\n'
header += (
tr(
'Hardware time and other post-configuration steps might be required in order for NTP to work.\nFor more information, please check the Arch wiki',
)
+ '\n'
)
result = await Confirmation(
header=header,
allow_skip=True,
preset=preset,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Selection:
return result.item() == MenuItem.yes()
case _:
raise ValueError('Unhandled return type')
async def select_hostname(preset: str | None = None) -> str | None:
result = await Input(
header=tr('Enter a hostname'),
allow_skip=True,
default_value=preset,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Selection:
hostname = result.get_value()
if len(hostname) < 1:
return None
return hostname
case ResultType.Reset:
raise ValueError('Unhandled result type')
async def select_timezone(preset: str | None = None) -> str | None:
default = 'UTC'
timezones = list_timezones()
items = [MenuItem(tz, value=tz) for tz in timezones]
group = MenuItemGroup(items, sort_items=True)
group.set_selected_by_value(preset)
group.set_default_by_value(default)
result = await Selection[str](
group,
header=tr('Select timezone'),
allow_reset=True,
allow_skip=True,
enable_filter=True,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Reset:
return default
case ResultType.Selection:
return result.get_value()
async def select_language(preset: str | None = None) -> str | None:
from archinstall.lib.locale.locale_menu import select_kb_layout
# We'll raise an exception in an upcoming version.
# from ..exceptions import Deprecated
# raise Deprecated("select_language() has been deprecated, use select_kb_layout() instead.")
# No need to translate this i feel, as it's a short lived message.
warn('select_language() is deprecated, use select_kb_layout() instead. select_language() will be removed in a future version')
return await select_kb_layout(preset)
async def select_archinstall_language(languages: list[Language], preset: Language) -> Language:
# these are the displayed language names which can either be
# the english name of a language or, if present, the
# name of the language in its own language
items = [MenuItem(lang.display_name, lang) for lang in languages]
group = MenuItemGroup(items, sort_items=True)
group.set_focus_by_value(preset)
title = 'NOTE: If a language can not displayed properly, a proper font must be set manually in the console.\n'
title += 'All available fonts can be found in "/usr/share/kbd/consolefonts"\n'
title += 'e.g. setfont LatGrkCyr-8x16 (to display latin/greek/cyrillic characters)\n'
result = await Selection[Language](
header=title,
group=group,
allow_reset=False,
allow_skip=True,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Selection:
return result.get_value()
case ResultType.Reset:
raise ValueError('Language selection not handled')
async def add_number_of_parallel_downloads(preset: int = 1) -> int | None:
max_recommended = 5
header = tr('This option enables the number of parallel downloads that can occur during package downloads') + '\n'
header += tr(' - Maximum recommended value : {} ( Allows {} parallel downloads at a time )').format(max_recommended, max_recommended) + '\n\n'
header += tr('Enter the number of parallel downloads to be enabled')
def validator(s: str) -> str | None:
try:
value = int(s)
if 1 <= value <= max_recommended:
return None
return tr('Value must be between 1 and {}').format(max_recommended)
except Exception:
return tr('Please enter a valid number')
result = await Input(
header=header,
allow_skip=True,
allow_reset=True,
validator_callback=validator,
default_value=str(preset),
).show()
downloads = 1
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Reset:
return downloads
case ResultType.Selection:
downloads = int(result.get_value())
pacman_conf_path = Path('/etc/pacman.conf')
with pacman_conf_path.open() as f: # noqa: ASYNC230
pacman_conf = f.read().split('\n')
with pacman_conf_path.open('w') as fwrite: # noqa: ASYNC230
for line in pacman_conf:
if 'ParallelDownloads' in line:
fwrite.write(f'ParallelDownloads = {downloads}\n')
else:
fwrite.write(f'{line}\n')
return downloads
async def select_post_installation(elapsed_time: float | None = None) -> PostInstallationAction:
header = 'Installation completed'
if elapsed_time is not None:
minutes = int(elapsed_time // 60)
seconds = int(elapsed_time % 60)
header += f' in {minutes}m{seconds}s' + '\n'
header += tr('What would you like to do next?') + '\n'
items = [MenuItem(action.value, value=action) for action in PostInstallationAction]
group = MenuItemGroup(items)
result = await Selection[PostInstallationAction](
group,
header=header,
allow_skip=False,
).show()
match result.type_:
case ResultType.Selection:
return result.get_value()
case _:
raise ValueError('Post installation action not handled')
================================================
FILE: archinstall/lib/interactions/system_conf.py
================================================
from typing import assert_never
from archinstall.lib.hardware import GfxDriver, SysInfo
from archinstall.lib.menu.helpers import Confirmation, Selection
from archinstall.lib.models.application import ZramAlgorithm, ZramConfiguration
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType
async def select_kernel(preset: list[str] = []) -> list[str]:
"""
Asks the user to select a kernel for system.
:return: The string as a selected kernel
:rtype: string
"""
kernels = ['linux', 'linux-lts', 'linux-zen', 'linux-hardened']
default_kernel = 'linux'
items = [MenuItem(k, value=k) for k in kernels]
group = MenuItemGroup(items, sort_items=True)
group.set_default_by_value(default_kernel)
group.set_focus_by_value(default_kernel)
group.set_selected_by_value(preset)
result = await Selection[str](
group,
header=tr('Select which kernel(s) to install'),
allow_skip=True,
allow_reset=True,
multi=True,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Reset:
return []
case ResultType.Selection:
return result.get_values()
async def select_uki(preset: bool = True) -> bool:
prompt = tr('Would you like to use unified kernel images?') + '\n'
result = await Confirmation(header=prompt, allow_skip=True, preset=preset).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Selection:
return result.get_value()
case ResultType.Reset:
raise ValueError('Unhandled result type')
async def select_driver(options: list[GfxDriver] = [], preset: GfxDriver | None = None) -> GfxDriver | None:
"""
Somewhat convoluted function, whose job is simple.
Select a graphics driver from a pre-defined set of popular options.
(The template xorg is for beginner users, not advanced, and should
there for appeal to the general public first and edge cases later)
"""
if not options:
options = [driver for driver in GfxDriver]
items = [
MenuItem(
o.value,
value=o,
preview_action=lambda x: x.value.packages_text() if x.value else None,
)
for o in options
]
group = MenuItemGroup(items, sort_items=True)
group.set_default_by_value(GfxDriver.AllOpenSource)
if preset is not None:
group.set_focus_by_value(preset)
header = ''
if SysInfo.has_amd_graphics():
header += tr('For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options.') + '\n'
if SysInfo.has_intel_graphics():
header += tr('For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n')
if SysInfo.has_nvidia_graphics():
header += tr('For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n')
result = await Selection[GfxDriver](
group,
header=header,
allow_skip=True,
allow_reset=True,
preview_location='right',
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Reset:
return None
case ResultType.Selection:
return result.get_value()
async def select_swap(preset: ZramConfiguration = ZramConfiguration(enabled=True)) -> ZramConfiguration:
prompt = tr('Would you like to use swap on zram?') + '\n'
group = MenuItemGroup.yes_no()
group.set_default_by_value(True)
group.set_focus_by_value(preset.enabled)
result = await Confirmation(
header=prompt,
allow_skip=True,
preset=preset.enabled,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Selection:
enabled = result.item() == MenuItem.yes()
if not enabled:
return ZramConfiguration(enabled=False)
# Ask for compression algorithm
algo_group = MenuItemGroup.from_enum(ZramAlgorithm, sort_items=False)
algo_group.set_default_by_value(ZramAlgorithm.ZSTD)
algo_group.set_focus_by_value(preset.algorithm)
algo_result = await Selection[ZramAlgorithm](
algo_group,
header=tr('Select zram compression algorithm:') + '\n',
allow_skip=True,
).show()
match algo_result.type_:
case ResultType.Skip:
algo = preset.algorithm
case ResultType.Selection:
algo = algo_result.get_value()
case ResultType.Reset:
raise ValueError('Unhandled result type')
case _:
assert_never(algo_result.type_)
return ZramConfiguration(enabled=True, algorithm=algo)
case ResultType.Reset:
raise ValueError('Unhandled result type')
================================================
FILE: archinstall/lib/locale/__init__.py
================================================
from archinstall.lib.locale.utils import (
list_keyboard_languages,
list_locales,
list_timezones,
list_x11_keyboard_languages,
set_kb_layout,
verify_keyboard_layout,
verify_x11_keyboard_layout,
)
__all__ = [
'list_keyboard_languages',
'list_locales',
'list_timezones',
'list_x11_keyboard_languages',
'set_kb_layout',
'verify_keyboard_layout',
'verify_x11_keyboard_layout',
]
================================================
FILE: archinstall/lib/locale/locale_menu.py
================================================
from typing import override
from archinstall.lib.locale.utils import list_keyboard_languages, list_locales, set_kb_layout
from archinstall.lib.menu.abstract_menu import AbstractSubMenu
from archinstall.lib.menu.helpers import Selection
from archinstall.lib.models.locale import LocaleConfiguration
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType
class LocaleMenu(AbstractSubMenu[LocaleConfiguration]):
def __init__(
self,
locale_conf: LocaleConfiguration,
):
self._locale_conf = locale_conf
menu_options = self._define_menu_options()
self._item_group = MenuItemGroup(menu_options, sort_items=False, checkmarks=True)
super().__init__(
self._item_group,
config=self._locale_conf,
allow_reset=True,
)
def _define_menu_options(self) -> list[MenuItem]:
return [
MenuItem(
text=tr('Keyboard layout'),
action=self._select_kb_layout,
value=self._locale_conf.kb_layout,
preview_action=lambda item: item.get_value(),
key='kb_layout',
),
MenuItem(
text=tr('Locale language'),
action=select_locale_lang,
value=self._locale_conf.sys_lang,
preview_action=lambda item: item.get_value(),
key='sys_lang',
),
MenuItem(
text=tr('Locale encoding'),
action=select_locale_enc,
value=self._locale_conf.sys_enc,
preview_action=lambda item: item.get_value(),
key='sys_enc',
),
]
@override
async def show(self) -> LocaleConfiguration | None:
config = await super().show()
if config is None:
config = LocaleConfiguration.default()
return config
async def _select_kb_layout(self, preset: str | None) -> str | None:
kb_lang = await select_kb_layout(preset)
if kb_lang:
set_kb_layout(kb_lang)
return kb_lang
async def select_locale_lang(preset: str | None = None) -> str | None:
locales = list_locales()
locale_lang = set([locale.split()[0] for locale in locales])
items = [MenuItem(ll, value=ll) for ll in locale_lang]
group = MenuItemGroup(items, sort_items=True)
group.set_focus_by_value(preset)
result = await Selection[str](
header=tr('Locale language'),
group=group,
enable_filter=True,
).show()
match result.type_:
case ResultType.Selection:
return result.get_value()
case ResultType.Skip:
return preset
case _:
raise ValueError('Unhandled return type')
async def select_locale_enc(preset: str | None = None) -> str | None:
locales = list_locales()
locale_enc = set([locale.split()[1] for locale in locales])
items = [MenuItem(le, value=le) for le in locale_enc]
group = MenuItemGroup(items, sort_items=True)
group.set_focus_by_value(preset)
result = await Selection[str](
header=tr('Locale encoding'),
group=group,
enable_filter=True,
).show()
match result.type_:
case ResultType.Selection:
return result.get_value()
case ResultType.Skip:
return preset
case _:
raise ValueError('Unhandled return type')
async def select_kb_layout(preset: str | None = None) -> str | None:
"""
Select keyboard layout
:return: The keyboard layout shortcut for the selected layout
:rtype: str
"""
kb_lang = list_keyboard_languages()
# sort alphabetically and then by length
sorted_kb_lang = sorted(kb_lang, key=lambda x: (len(x), x))
items = [MenuItem(lang, value=lang) for lang in sorted_kb_lang]
group = MenuItemGroup(items, sort_items=False)
group.set_focus_by_value(preset)
result = await Selection[str](
header=tr('Keyboard layout'),
group=group,
enable_filter=True,
).show()
match result.type_:
case ResultType.Selection:
return result.get_value()
case ResultType.Skip:
return preset
case _:
raise ValueError('Unhandled return type')
================================================
FILE: archinstall/lib/locale/utils.py
================================================
from archinstall.lib.command import SysCommand
from archinstall.lib.exceptions import ServiceException, SysCallError
from archinstall.lib.output import error
from archinstall.lib.utils.util import running_from_iso
def list_keyboard_languages() -> list[str]:
return (
SysCommand(
'localectl --no-pager list-keymaps',
environment_vars={'SYSTEMD_COLORS': '0'},
)
.decode()
.splitlines()
)
def list_locales() -> list[str]:
locales = []
with open('/usr/share/i18n/SUPPORTED') as file:
for line in file:
if line != 'C.UTF-8 UTF-8\n':
locales.append(line.rstrip())
return locales
def list_x11_keyboard_languages() -> list[str]:
return (
SysCommand(
'localectl --no-pager list-x11-keymap-layouts',
environment_vars={'SYSTEMD_COLORS': '0'},
)
.decode()
.splitlines()
)
def verify_keyboard_layout(layout: str) -> bool:
for language in list_keyboard_languages():
if layout.lower() == language.lower():
return True
return False
def verify_x11_keyboard_layout(layout: str) -> bool:
for language in list_x11_keyboard_languages():
if layout.lower() == language.lower():
return True
return False
def get_kb_layout() -> str:
try:
lines = (
SysCommand(
'localectl --no-pager status',
environment_vars={'SYSTEMD_COLORS': '0'},
)
.decode()
.splitlines()
)
except Exception:
return ''
vcline = ''
for line in lines:
if 'VC Keymap: ' in line:
vcline = line
if vcline == '':
return ''
layout = vcline.split(': ')[1]
if not verify_keyboard_layout(layout):
return ''
return layout
def set_kb_layout(locale: str) -> bool:
if not running_from_iso():
# Skip when running from host - no need to change host keymap
# The target installation keymap is set via installer.set_keyboard_language()
return True
if len(locale.strip()):
if not verify_keyboard_layout(locale):
error(f'Invalid keyboard locale specified: {locale}')
return False
try:
SysCommand(f'localectl set-keymap {locale}')
except SysCallError as err:
raise ServiceException(f"Unable to set locale '{locale}' for console: {err}")
return True
return False
def list_timezones() -> list[str]:
return (
SysCommand(
'timedatectl --no-pager list-timezones',
environment_vars={'SYSTEMD_COLORS': '0'},
)
.decode()
.splitlines()
)
================================================
FILE: archinstall/lib/luks.py
================================================
import shlex
from dataclasses import dataclass
from pathlib import Path
from subprocess import CalledProcessError
from types import TracebackType
from archinstall.lib.command import SysCommand, SysCommandWorker, run
from archinstall.lib.disk.utils import get_lsblk_info, umount
from archinstall.lib.exceptions import DiskError, SysCallError
from archinstall.lib.models.device import DEFAULT_ITER_TIME
from archinstall.lib.models.users import Password
from archinstall.lib.output import debug, info
from archinstall.lib.utils.util import generate_password
@dataclass
class Luks2:
luks_dev_path: Path
mapper_name: str | None = None
password: Password | None = None
key_file: Path | None = None
auto_unmount: bool = False
@property
def mapper_dev(self) -> Path | None:
if self.mapper_name:
return Path(f'/dev/mapper/{self.mapper_name}')
return None
def isLuks(self) -> bool:
try:
SysCommand(f'cryptsetup isLuks {self.luks_dev_path}')
return True
except SysCallError:
return False
def erase(self) -> None:
debug(f'Erasing luks partition: {self.luks_dev_path}')
worker = SysCommandWorker(f'cryptsetup erase {self.luks_dev_path}')
worker.poll()
worker.write(b'YES\n', line_ending=False)
def __enter__(self) -> None:
self.unlock(self.key_file)
def __exit__(self, exc_type: type[BaseException] | None, exc_value: BaseException | None, traceback: TracebackType | None) -> None:
if self.auto_unmount:
self.lock()
def _password_bytes(self) -> bytes:
if not self.password:
raise ValueError('Password for luks2 device was not specified')
if isinstance(self.password, bytes):
return self.password
else:
return bytes(self.password.plaintext, 'UTF-8')
def _get_passphrase_args(
self,
key_file: Path | None = None,
) -> tuple[list[str], bytes | None]:
key_file = key_file or self.key_file
if key_file:
return ['--key-file', str(key_file)], None
return [], self._password_bytes()
def encrypt(
self,
key_size: int = 512,
hash_type: str = 'sha512',
iter_time: int = DEFAULT_ITER_TIME,
key_file: Path | None = None,
) -> Path | None:
debug(f'Luks2 encrypting: {self.luks_dev_path}')
key_file_arg, passphrase = self._get_passphrase_args(key_file)
cmd = [
'cryptsetup',
'--batch-mode',
'--verbose',
'--type',
'luks2',
'--pbkdf',
'argon2id',
'--hash',
hash_type,
'--key-size',
str(key_size),
'--iter-time',
str(iter_time),
*key_file_arg,
'--use-urandom',
'luksFormat',
str(self.luks_dev_path),
]
debug(f'cryptsetup format: {shlex.join(cmd)}')
try:
result = run(cmd, input_data=passphrase)
except CalledProcessError as err:
output = err.stdout.decode().rstrip()
raise DiskError(f'Could not encrypt volume "{self.luks_dev_path}": {output}')
debug(f'cryptsetup luksFormat output: {result.stdout.decode().rstrip()}')
self.key_file = key_file
return key_file
def _get_luks_uuid(self) -> str:
command = f'cryptsetup luksUUID {self.luks_dev_path}'
try:
return SysCommand(command).decode()
except SysCallError as err:
info(f'Unable to get UUID for Luks device: {self.luks_dev_path}')
raise err
def is_unlocked(self) -> bool:
return (mapper_dev := self.mapper_dev) is not None and mapper_dev.is_symlink()
def unlock(self, key_file: Path | None = None) -> None:
"""
Unlocks the luks device, an optional key file location for unlocking can be specified,
otherwise a default location for the key file will be used.
:param key_file: An alternative key file
:type key_file: Path
"""
debug(f'Unlocking luks2 device: {self.luks_dev_path}')
if not self.mapper_name:
raise ValueError('mapper name missing')
key_file_arg, passphrase = self._get_passphrase_args(key_file)
cmd = [
'cryptsetup',
'open',
str(self.luks_dev_path),
str(self.mapper_name),
*key_file_arg,
'--type',
'luks2',
]
result = run(cmd, input_data=passphrase)
debug(f'cryptsetup open output: {result.stdout.decode().rstrip()}')
if not self.is_unlocked():
raise DiskError(f'Failed to open luks2 device: {self.luks_dev_path}')
def lock(self) -> None:
umount(self.luks_dev_path)
# Get crypt-information about the device by doing a reverse lookup starting with the partition path
# For instance: /dev/sda
lsblk_info = get_lsblk_info(self.luks_dev_path)
# For each child (sub-partition/sub-device)
for child in lsblk_info.children:
# Unmount the child location
for mountpoint in child.mountpoints:
debug(f'Unmounting {mountpoint}')
umount(mountpoint, recursive=True)
# And close it if possible.
debug(f'Closing crypt device {child.name}')
SysCommand(f'cryptsetup close {child.name}')
def create_keyfile(self, target_path: Path, override: bool = False) -> None:
"""
Routine to create keyfiles, so it can be moved elsewhere
"""
if self.mapper_name is None:
raise ValueError('Mapper name must be provided')
# Once we store the key as ../xyzloop.key systemd-cryptsetup can
# automatically load this key if we name the device to "xyzloop"
kf_path = Path(f'/etc/cryptsetup-keys.d/{self.mapper_name}.key')
key_file = target_path / kf_path.relative_to(kf_path.root)
crypttab_path = target_path / 'etc/crypttab'
if key_file.exists():
if not override:
info(f'Key file {key_file} already exists, keeping existing')
return
else:
info(f'Key file {key_file} already exists, overriding')
key_file.parent.mkdir(parents=True, exist_ok=True)
pwd = generate_password(length=512)
key_file.write_text(pwd)
key_file.chmod(0o400)
self._add_key(key_file)
self._crypttab(crypttab_path, kf_path, options=['luks', 'key-slot=1'])
def _add_key(self, key_file: Path) -> None:
debug(f'Adding additional key-file {key_file}')
command = f'cryptsetup -q -v luksAddKey {self.luks_dev_path} {key_file}'
worker = SysCommandWorker(command)
pw_injected = False
while worker.is_alive():
if b'Enter any existing passphrase' in worker and pw_injected is False:
worker.write(self._password_bytes())
pw_injected = True
if worker.exit_code != 0:
raise DiskError(f'Could not add encryption key {key_file} to {self.luks_dev_path}: {worker.decode()}')
def _crypttab(
self,
crypttab_path: Path,
key_file: Path,
options: list[str],
) -> None:
debug(f'Adding crypttab entry for key {key_file}')
with open(crypttab_path, 'a') as crypttab:
opt = ','.join(options)
uuid = self._get_luks_uuid()
row = f'{self.mapper_name} UUID={uuid} {key_file} {opt}\n'
crypttab.write(row)
def unlock_luks2_dev(
dev_path: Path,
mapper_name: str,
enc_password: Password | None,
) -> Luks2:
luks_handler = Luks2(dev_path, mapper_name=mapper_name, password=enc_password)
if not luks_handler.is_unlocked():
luks_handler.unlock()
return luks_handler
================================================
FILE: archinstall/lib/menu/__init__.py
================================================
from archinstall.lib.menu.abstract_menu import AbstractMenu, AbstractSubMenu
from archinstall.lib.menu.list_manager import ListManager
__all__ = [
'AbstractMenu',
'AbstractSubMenu',
'ListManager',
]
================================================
FILE: archinstall/lib/menu/abstract_menu.py
================================================
from enum import Enum
from types import TracebackType
from typing import Any, Self, override
from archinstall.lib.menu.helpers import Selection
from archinstall.lib.output import error
from archinstall.lib.translationhandler import tr
from archinstall.tui.types import Chars
from archinstall.tui.ui.components import InstanceRunnable
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType
CONFIG_KEY = '__config__'
class SpecialMenuKey(Enum):
SAVE = f'{CONFIG_KEY}_save'
INSTALL = f'{CONFIG_KEY}_install'
ABORT = f'{CONFIG_KEY}_abort'
@staticmethod
def matches(key: str) -> bool:
return any(key == item.value for item in SpecialMenuKey)
class AbstractMenu[ValueT](InstanceRunnable[ValueT]):
def __init__(
self,
item_group: MenuItemGroup,
config: Any,
title: str | None = None,
auto_cursor: bool = True,
allow_reset: bool = False,
reset_warning: str | None = None,
):
self._menu_item_group = item_group
self._config = config
self.auto_cursor = auto_cursor
self._allow_reset = allow_reset
self._reset_warning = reset_warning
self._title = title
self.is_context_mgr = False
self._sync_from_config()
def __enter__(self, *args: Any, **kwargs: Any) -> Self:
self.is_context_mgr = True
return self
def __exit__(self, exc_type: type[BaseException] | None, exc_value: BaseException | None, traceback: TracebackType | None) -> None:
# TODO: https://stackoverflow.com/questions/28157929/how-to-safely-handle-an-exception-inside-a-context-manager
# TODO: skip processing when it comes from a planified exit
if exc_type is not None:
error(str(exc_value))
print('Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues')
# Return None to propagate the exception
return None
self.sync_all_to_config()
def _sync_from_config(self) -> None:
for item in self._menu_item_group._menu_items:
if item.key is not None and not SpecialMenuKey.matches(item.key):
config_value = getattr(self._config, item.key)
if config_value is not None:
item.value = config_value
def sync_all_to_config(self) -> None:
for item in self._menu_item_group._menu_items:
if item.key:
setattr(self._config, item.key, item.value)
def _sync(self, item: MenuItem) -> None:
if not item.key or SpecialMenuKey.matches(item.key):
return
config_value = getattr(self._config, item.key)
if config_value is not None:
item.value = config_value
elif item.value is not None:
setattr(self._config, item.key, item.value)
def set_enabled(self, key: str, enabled: bool) -> None:
# the __config__ is associated with multiple items
found = False
is_config_key = key == CONFIG_KEY
for item in self._menu_item_group.items:
if item.key:
if item.key == key or (is_config_key and SpecialMenuKey.matches(item.key)):
item.enabled = enabled
found = True
if not found:
raise ValueError(f'No selector found: {key}')
def disable_all(self) -> None:
for item in self._menu_item_group.items:
item.enabled = False
def is_config_valid(self) -> bool:
return True
@override
async def run(self) -> ValueT | None:
return await self.show()
async def show(self) -> ValueT | None:
self._sync_from_config()
while True:
result = await Selection[ValueT](
title=self._title,
group=self._menu_item_group,
allow_skip=False,
allow_reset=self._allow_reset,
preview_location='right',
).show()
match result.type_:
case ResultType.Selection:
item: MenuItem = result.item()
self._menu_item_group.focus_item = item
if item.action is None:
if item.key == SpecialMenuKey.INSTALL.value:
if not self.is_config_valid():
continue
break
elif item.key == SpecialMenuKey.ABORT.value:
return None
else:
break
else:
item.value = await item.action(item.value)
case ResultType.Reset:
return None
case _:
pass
self.sync_all_to_config()
return self._config
class AbstractSubMenu[ValueT](AbstractMenu[ValueT]):
def __init__(
self,
item_group: MenuItemGroup,
config: Any,
auto_cursor: bool = True,
allow_reset: bool = False,
):
back_text = f'{Chars.Right_arrow} ' + tr('Back')
item_group.add_item(MenuItem(text=back_text))
super().__init__(
item_group,
config=config,
auto_cursor=auto_cursor,
allow_reset=allow_reset,
)
================================================
FILE: archinstall/lib/menu/helpers.py
================================================
from collections.abc import Awaitable, Callable
from typing import Any, Literal, override
from textual.validation import ValidationResult, Validator
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.components import InputInfo, InputScreen, LoadingScreen, NotifyScreen, OptionListScreen, SelectListScreen, TableSelectionScreen
from archinstall.tui.ui.menu_item import MenuItemGroup
from archinstall.tui.ui.result import Result, ResultType
class Selection[ValueT]:
def __init__(
self,
group: MenuItemGroup,
header: str | None = None,
title: str | None = None,
allow_skip: bool = True,
allow_reset: bool = False,
preview_location: Literal['right', 'bottom'] | None = None,
multi: bool = False,
enable_filter: bool = False,
):
self._header = header
self._title = title
self._group: MenuItemGroup = group
self._allow_skip = allow_skip
self._allow_reset = allow_reset
self._preview_location = preview_location
self._multi = multi
self._enable_filter = enable_filter
async def show(self) -> Result[ValueT]:
if self._multi:
result = await SelectListScreen[ValueT](
self._group,
header=self._header,
allow_skip=self._allow_skip,
allow_reset=self._allow_reset,
preview_location=self._preview_location,
enable_filter=self._enable_filter,
).run()
else:
result = await OptionListScreen[ValueT](
self._group,
header=self._header,
title=self._title,
allow_skip=self._allow_skip,
allow_reset=self._allow_reset,
preview_location=self._preview_location,
enable_filter=self._enable_filter,
).run()
if result.type_ == ResultType.Reset:
confirmed = await _confirm_reset()
if confirmed.get_value() is False:
return await self.show()
return result
class Confirmation:
def __init__(
self,
header: str,
group: MenuItemGroup | None = None,
allow_skip: bool = True,
allow_reset: bool = False,
preset: bool = False,
preview_location: Literal['bottom'] | None = None,
preview_header: str | None = None,
):
self._header = header
self._allow_skip = allow_skip
self._allow_reset = allow_reset
self._preset = preset
self._preview_location = preview_location
self._preview_header = preview_header
if not group:
self._group = MenuItemGroup.yes_no()
self._group.set_focus_by_value(preset)
else:
self._group = group
async def show(self) -> Result[bool]:
result = await OptionListScreen[bool](
self._group,
header=self._header,
allow_skip=self._allow_skip,
allow_reset=self._allow_reset,
preview_location=self._preview_location,
enable_filter=False,
).run()
if result.type_ == ResultType.Reset:
confirmed = await _confirm_reset()
if confirmed.get_value() is False:
return await self.show()
return result
class Notify:
def __init__(self, header: str):
self._header = header
async def show(self) -> Result[bool]:
_ = await NotifyScreen(header=self._header).run()
return Result.true()
class GenericValidator(Validator):
def __init__(self, validator_callback: Callable[[str], str | None]) -> None:
super().__init__()
self._validator_callback = validator_callback
@override
def validate(self, value: str) -> ValidationResult:
result = self._validator_callback(value)
if result is not None:
return self.failure(result)
return self.success()
class Input:
def __init__(
self,
header: str | None = None,
placeholder: str | None = None,
password: bool = False,
default_value: str | None = None,
allow_skip: bool = True,
allow_reset: bool = False,
validator_callback: Callable[[str], str | None] | None = None,
info_callback: Callable[[str], InputInfo | None] | None = None,
):
self._header = header
self._placeholder = placeholder
self._password = password
self._default_value = default_value
self._allow_skip = allow_skip
self._allow_reset = allow_reset
self._validator_callback = validator_callback
self._info_callback = info_callback
async def show(self) -> Result[str]:
validator = GenericValidator(self._validator_callback) if self._validator_callback else None
result = await InputScreen(
header=self._header,
placeholder=self._placeholder,
password=self._password,
default_value=self._default_value,
allow_skip=self._allow_skip,
allow_reset=self._allow_reset,
validator=validator,
info_callback=self._info_callback,
).run()
if result.type_ == ResultType.Reset:
confirmed = await _confirm_reset()
if confirmed.get_value() is False:
return await self.show()
return result
class Loading[ValueT]:
def __init__(
self,
header: str | None = None,
timer: int = 3,
data_callback: Callable[[], Any] | None = None,
):
self._header = header
self._timer = timer
self._data_callback = data_callback
async def show(self) -> Result[ValueT]:
if self._data_callback:
result = await LoadingScreen[ValueT](
header=self._header,
data_callback=self._data_callback,
).run()
return result
else:
_ = await LoadingScreen(
timer=self._timer,
header=self._header,
).run()
return Result.true()
class Table[ValueT]:
def __init__(
self,
header: str | None = None,
group: MenuItemGroup | None = None,
group_callback: Callable[[], Awaitable[MenuItemGroup]] | None = None,
presets: list[ValueT] | None = None,
allow_reset: bool = False,
allow_skip: bool = False,
loading_header: str | None = None,
multi: bool = False,
preview_location: Literal['bottom'] | None = None,
preview_header: str | None = None,
):
self._header = header
self._group = group
self._data_callback = group_callback
self._loading_header = loading_header
self._allow_skip = allow_skip
self._allow_reset = allow_reset
self._multi = multi
self._presets = presets
self._preview_location = preview_location
self._preview_header = preview_header
if self._group is None and self._data_callback is None:
raise ValueError('Either data or data_callback must be provided')
async def show(self) -> Result[ValueT]:
result = await TableSelectionScreen[ValueT](
header=self._header,
group=self._group,
group_callback=self._data_callback,
allow_skip=self._allow_skip,
allow_reset=self._allow_reset,
loading_header=self._loading_header,
multi=self._multi,
preview_location=self._preview_location,
preview_header=self._preview_header,
).run()
if result.type_ == ResultType.Reset:
confirmed = await _confirm_reset()
if confirmed.get_value() is False:
return await self.show()
return result
async def _confirm_reset() -> Result[bool]:
return await OptionListScreen[bool](
MenuItemGroup.yes_no(),
header=tr('Are you sure you want to reset this setting?'),
allow_skip=False,
allow_reset=False,
).run()
================================================
FILE: archinstall/lib/menu/list_manager.py
================================================
import copy
from typing import cast
from archinstall.lib.menu.helpers import Selection
from archinstall.lib.menu.menu_helper import MenuHelper
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType
class ListManager[ValueT]:
def __init__(
self,
entries: list[ValueT],
base_actions: list[str],
sub_menu_actions: list[str],
prompt: str | None = None,
):
"""
:param prompt: Text which will appear at the header
type param: string
:param entries: list/dict of option to be shown / manipulated
type param: list
:param base_actions: list of actions that is displayed in the main list manager,
usually global actions such as 'Add...'
type param: list
:param sub_menu_actions: list of actions available for a chosen entry
type param: list
"""
self._data = copy.deepcopy(entries)
self._prompt = prompt
self._separator = ''
self._confirm_action = tr('Confirm and exit')
self._cancel_action = tr('Cancel')
self._terminate_actions = [self._confirm_action, self._cancel_action]
self._base_actions = base_actions
self._sub_menu_actions = sub_menu_actions
self._last_choice: ValueT | str | None = None
@property
def last_choice(self) -> ValueT | str | None:
return self._last_choice
def is_last_choice_cancel(self) -> bool:
if self._last_choice is not None:
return self._last_choice == self._cancel_action
return False
async def _run(self) -> list[ValueT] | None:
additional_options = self._base_actions + self._terminate_actions
while True:
group = MenuHelper(
data=self._data,
additional_options=additional_options,
).create_menu_group()
prompt = None
if self._prompt is not None:
prompt = f'{self._prompt}\n\n'
result = await Selection[ValueT | str](
group,
header=prompt,
enable_filter=False,
allow_skip=False,
).show()
match result.type_:
case ResultType.Selection:
value = result.get_value()
case _:
raise ValueError('Unhandled return type')
if value in self._base_actions:
value = cast(str, value)
self._data = await self.handle_action(value, None, self._data)
elif value in self._terminate_actions:
break
else: # an entry of the existing selection was chosen
selected_entry = result.get_value()
selected_entry = cast(ValueT, selected_entry)
await self._run_actions_on_entry(selected_entry)
self._last_choice = value
if result.get_value() == self._cancel_action:
return None
else:
return self._data
async def _run_actions_on_entry(self, entry: ValueT) -> None:
options = self.filter_options(entry, self._sub_menu_actions) + [self._cancel_action]
items = [MenuItem(o, value=o) for o in options]
group = MenuItemGroup(items, sort_items=False)
header = f'{self.selected_action_display(entry)}'
result = await Selection[str](
group,
header=header,
enable_filter=False,
allow_skip=False,
).show()
match result.type_:
case ResultType.Selection:
value = result.get_value()
case _:
raise ValueError('Unhandled return type')
if value != self._cancel_action:
self._data = await self.handle_action(value, entry, self._data)
def selected_action_display(self, selection: ValueT) -> str:
"""
this will return the value to be displayed in the
"Select an action for '{}'" string
"""
raise NotImplementedError('Please implement me in the child class')
async def handle_action(self, action: str, entry: ValueT | None, data: list[ValueT]) -> list[ValueT]:
"""
this function is called when a base action or
a specific action for an entry is triggered
"""
raise NotImplementedError('Please implement me in the child class')
def filter_options(self, selection: ValueT, options: list[str]) -> list[str]:
"""
filter which actions to show for a specific selection
"""
return options
================================================
FILE: archinstall/lib/menu/menu_helper.py
================================================
from archinstall.lib.output import FormattedOutput
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
class MenuHelper[ValueT]:
def __init__(
self,
data: list[ValueT],
additional_options: list[str] = [],
) -> None:
self._separator = ''
self._data = data
self._additional_options = additional_options
def create_menu_group(self) -> MenuItemGroup:
table_data_mapping = self._table_to_data_mapping(self._data)
items = []
for key, value in table_data_mapping.items():
item = MenuItem(key, value=value)
if value is None:
item.read_only = True
items.append(item)
group = MenuItemGroup(items, sort_items=False)
return group
def _table_to_data_mapping(self, data: list[ValueT]) -> dict[str, ValueT | str | None]:
display_data: dict[str, ValueT | str | None] = {}
if data:
table = FormattedOutput.as_table(data)
rows = table.split('\n')
# these are the header rows of the table
display_data = {f'{rows[0]}': None, f'{rows[1]}': None}
for row, entry in zip(rows[2:], data):
display_data[row] = entry
if self._additional_options:
display_data[self._separator] = None
for option in self._additional_options:
display_data[option] = option
return display_data
================================================
FILE: archinstall/lib/menu/util.py
================================================
import sys
import time
from pathlib import Path
from archinstall.lib.menu.helpers import Confirmation, Input
from archinstall.lib.models.users import Password, PasswordStrength
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.components import InputInfo, InputInfoType, tui
from archinstall.tui.ui.result import ResultType
async def get_password(
header: str | None = None,
allow_skip: bool = False,
preset: str | None = None,
no_confirmation: bool = False,
) -> Password | None:
def password_hint(value: str) -> InputInfo | None:
if not value:
return None
strength = PasswordStrength.strength(value)
if strength in (PasswordStrength.VERY_WEAK, PasswordStrength.WEAK):
return InputInfo(message=tr('Password strength: Weak'), info_type=InputInfoType.MsgError)
elif strength == PasswordStrength.MODERATE:
return InputInfo(message=tr('Password strength: Moderate'), info_type=InputInfoType.MsgWarning)
elif strength == PasswordStrength.STRONG:
return InputInfo(message=tr('Password strength: Strong'), info_type=InputInfoType.MsgInfo)
return None
while True:
result = await Input(
header=header,
allow_skip=allow_skip,
default_value=preset,
password=True,
info_callback=password_hint,
).show()
if result.type_ == ResultType.Skip:
if allow_skip:
return None
else:
continue
elif result.type_ == ResultType.Selection:
if not result.get_value():
if allow_skip:
return None
else:
continue
password = Password(plaintext=result.get_value())
break
if no_confirmation:
return password
confirmation_header = f'{tr("Password")}: {password.hidden()}\n\n'
confirmation_header += tr('Confirm password')
def _validate(value: str) -> str | None:
if value != password._plaintext:
return tr('The password did not match, please try again')
return None
result = await Input(
header=confirmation_header,
allow_skip=allow_skip,
password=True,
validator_callback=_validate,
).show()
if result.type_ == ResultType.Skip:
return None
return password
async def prompt_dir(
header: str | None = None,
validate: bool = True,
must_exist: bool = True,
allow_skip: bool = False,
preset: str | None = None,
) -> Path | None:
def validate_path(path: str | None) -> str | None:
if path:
dest_path = Path(path)
if must_exist:
if dest_path.exists() and dest_path.is_dir():
return None
else:
return None
return tr('Not a valid directory')
if validate:
validate_func = validate_path
else:
validate_func = None
result = await Input(
header=header,
allow_skip=allow_skip,
validator_callback=validate_func,
default_value=preset,
).show()
match result.type_:
case ResultType.Skip:
return None
case ResultType.Selection:
if not result.get_value():
return None
return Path(result.get_value())
case _:
return None
async def confirm_abort() -> bool:
prompt = tr('Do you really want to abort?') + '\n'
result = await Confirmation(
header=prompt,
allow_skip=False,
preset=False,
).show()
return result.get_value()
def delayed_warning(message: str) -> bool:
# Issue a final warning before we continue with something un-revertable.
# We count down from 5 to 0.
print(message, end='', flush=True)
try:
countdown = '\n5...4...3...2...1\n'
for c in countdown:
print(c, end='', flush=True)
time.sleep(0.25)
except KeyboardInterrupt:
ret: bool = tui.run(confirm_abort)
if ret:
sys.exit(1)
return True
================================================
FILE: archinstall/lib/mirror/__init__.py
================================================
================================================
FILE: archinstall/lib/mirror/mirror_handler.py
================================================
import time
import urllib
from pathlib import Path
from archinstall.lib.models import MirrorRegion
from archinstall.lib.models.mirrors import MirrorStatusEntryV3, MirrorStatusListV3
from archinstall.lib.networking import fetch_data_from_url
from archinstall.lib.output import debug, info
class MirrorListHandler:
def __init__(
self,
local_mirrorlist: Path = Path('/etc/pacman.d/mirrorlist'),
offline: bool = False,
verbose: bool = False,
) -> None:
self._local_mirrorlist = local_mirrorlist
self._status_mappings: dict[str, list[MirrorStatusEntryV3]] | None = None
self._fetched_remote: bool = False
self.offline = offline
self.verbose = verbose
def _mappings(self) -> dict[str, list[MirrorStatusEntryV3]]:
if self._status_mappings is None:
self.load_mirrors()
assert self._status_mappings is not None
return self._status_mappings
def get_mirror_regions(self) -> list[MirrorRegion]:
available_mirrors = []
mappings = self._mappings()
for region_name, status_entry in mappings.items():
urls = [entry.server_url for entry in status_entry]
region = MirrorRegion(region_name, urls)
available_mirrors.append(region)
return available_mirrors
def load_mirrors(self) -> None:
if self.offline:
self._fetched_remote = False
self.load_local_mirrors()
else:
self._fetched_remote = self.load_remote_mirrors()
debug(f'load mirrors: {self._fetched_remote}')
if not self._fetched_remote:
self.load_local_mirrors()
def load_remote_mirrors(self) -> bool:
url = 'https://archlinux.org/mirrors/status/json/'
attempts = 3
for attempt_nr in range(attempts):
try:
mirrorlist = fetch_data_from_url(url)
self._status_mappings = self._parse_remote_mirror_list(mirrorlist)
return True
except Exception as e:
debug(f'Error while fetching mirror list: {e}')
time.sleep(attempt_nr + 1)
debug('Unable to fetch mirror list remotely, falling back to local mirror list')
return False
def load_local_mirrors(self) -> None:
with self._local_mirrorlist.open('r') as fp:
mirrorlist = fp.read()
self._status_mappings = self._parse_local_mirrors(mirrorlist)
def get_status_by_region(self, region: str, speed_sort: bool) -> list[MirrorStatusEntryV3]:
mappings = self._mappings()
region_list = mappings[region]
# Only sort if we have remote mirror data with score/speed info
# Local mirrors lack this data and can be modified manually before-hand
# Or reflector potentially ran already
if self._fetched_remote and speed_sort:
info('Sorting your selected mirror list based on the speed between you and the individual mirrors (this might take a while)')
# Sort by speed descending (higher is better in bitrate form core.db download)
return sorted(region_list, key=lambda mirror: -mirror.speed)
# just return as-is without sorting?
return region_list
def _parse_remote_mirror_list(self, mirrorlist: str) -> dict[str, list[MirrorStatusEntryV3]]:
context = {'verbose': self.verbose}
mirror_status = MirrorStatusListV3.model_validate_json(mirrorlist, context=context)
sorting_placeholder: dict[str, list[MirrorStatusEntryV3]] = {}
for mirror in mirror_status.urls:
# We filter out mirrors that have bad criteria values
if any(
[
mirror.active is False, # Disabled by mirror-list admins
mirror.last_sync is None, # Has not synced recently
# mirror.score (error rate) over time reported from backend:
# https://github.com/archlinux/archweb/blob/31333d3516c91db9a2f2d12260bd61656c011fd1/mirrors/utils.py#L111C22-L111C66
(mirror.score is None or mirror.score >= 100),
]
):
continue
if mirror.country == '':
# TODO: This should be removed once RFC!29 is merged and completed
# Until then, there are mirrors which lacks data in the backend
# and there is no way of knowing where they're located.
# So we have to assume world-wide
mirror.country = 'Worldwide'
if mirror.url.startswith('http'):
sorting_placeholder.setdefault(mirror.country, []).append(mirror)
sorted_by_regions: dict[str, list[MirrorStatusEntryV3]] = dict(
{region: unsorted_mirrors for region, unsorted_mirrors in sorted(sorting_placeholder.items(), key=lambda item: item[0])}
)
return sorted_by_regions
def _parse_local_mirrors(self, mirrorlist: str) -> dict[str, list[MirrorStatusEntryV3]]:
lines = mirrorlist.splitlines()
# remove empty lines
# lines = [line for line in lines if line]
mirror_list: dict[str, list[MirrorStatusEntryV3]] = {}
current_region = ''
for line in lines:
line = line.strip()
if line.startswith('## '):
current_region = line.replace('## ', '').strip()
mirror_list.setdefault(current_region, [])
if line.startswith('Server = '):
if not current_region:
current_region = 'Local'
mirror_list.setdefault(current_region, [])
url = line.removeprefix('Server = ')
mirror_entry = MirrorStatusEntryV3(
url=url.removesuffix('$repo/os/$arch'),
protocol=urllib.parse.urlparse(url).scheme,
active=True,
country=current_region or 'Worldwide',
# The following values are normally populated by
# archlinux.org mirror-list endpoint, and can't be known
# from just the local mirror-list file.
country_code='WW',
isos=True,
ipv4=True,
ipv6=True,
details='Locally defined mirror',
)
mirror_list[current_region].append(mirror_entry)
return mirror_list
================================================
FILE: archinstall/lib/mirror/mirror_menu.py
================================================
from typing import override
from archinstall.lib.menu.abstract_menu import AbstractSubMenu
from archinstall.lib.menu.helpers import Input, Loading, Selection
from archinstall.lib.menu.list_manager import ListManager
from archinstall.lib.mirror.mirror_handler import MirrorListHandler
from archinstall.lib.models.mirrors import (
CustomRepository,
CustomServer,
MirrorConfiguration,
MirrorRegion,
SignCheck,
SignOption,
)
from archinstall.lib.models.packages import Repository
from archinstall.lib.output import FormattedOutput
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType
class CustomMirrorRepositoriesList(ListManager[CustomRepository]):
def __init__(self, custom_repositories: list[CustomRepository]):
self._actions = [
tr('Add a custom repository'),
tr('Change custom repository'),
tr('Delete custom repository'),
]
super().__init__(
custom_repositories,
[self._actions[0]],
self._actions[1:],
'',
)
async def show(self) -> list[CustomRepository] | None:
return await super()._run()
@override
def selected_action_display(self, selection: CustomRepository) -> str:
return selection.name
@override
async def handle_action(
self,
action: str,
entry: CustomRepository | None,
data: list[CustomRepository],
) -> list[CustomRepository]:
if action == self._actions[0]: # add
new_repo = await self._add_custom_repository()
if new_repo is not None:
data = [d for d in data if d.name != new_repo.name]
data += [new_repo]
elif action == self._actions[1] and entry: # modify repo
new_repo = await self._add_custom_repository(entry)
if new_repo is not None:
data = [d for d in data if d.name != entry.name]
data += [new_repo]
elif action == self._actions[2] and entry: # delete
data = [d for d in data if d != entry]
return data
async def _add_custom_repository(self, preset: CustomRepository | None = None) -> CustomRepository | None:
edit_result = await Input(
header=tr('Enter a respository name'),
allow_skip=True,
default_value=preset.name if preset else None,
).show()
match edit_result.type_:
case ResultType.Selection:
name = edit_result.get_value()
case ResultType.Skip:
return preset
case _:
raise ValueError('Unhandled return type')
header = f'{tr("Name")}: {name}\n'
prompt = f'{header}\n' + tr('Enter the repository url')
edit_result = await Input(
header=prompt,
allow_skip=True,
default_value=preset.url if preset else None,
).show()
match edit_result.type_:
case ResultType.Selection:
url = edit_result.get_value()
case ResultType.Skip:
return preset
case _:
raise ValueError('Unhandled return type')
header += f'{tr("Url")}: {url}\n'
prompt = f'{header}\n' + tr('Select signature check')
sign_chk_items = [MenuItem(s.value, value=s.value) for s in SignCheck]
group = MenuItemGroup(sign_chk_items, sort_items=False)
if preset is not None:
group.set_selected_by_value(preset.sign_check.value)
result = await Selection[SignCheck](
group,
header=prompt,
allow_skip=False,
).show()
match result.type_:
case ResultType.Selection:
sign_check = SignCheck(result.get_value())
case _:
raise ValueError('Unhandled return type')
header += f'{tr("Signature check")}: {sign_check.value}\n'
prompt = f'{header}\n' + tr('Select signature option')
sign_opt_items = [MenuItem(s.value, value=s.value) for s in SignOption]
group = MenuItemGroup(sign_opt_items, sort_items=False)
if preset is not None:
group.set_selected_by_value(preset.sign_option.value)
result = await Selection(
group,
header=prompt,
allow_skip=False,
).show()
match result.type_:
case ResultType.Selection:
sign_opt = SignOption(result.get_value())
case _:
raise ValueError('Unhandled return type')
return CustomRepository(name, url, sign_check, sign_opt)
class CustomMirrorServersList(ListManager[CustomServer]):
def __init__(self, custom_servers: list[CustomServer]):
self._actions = [
tr('Add a custom server'),
tr('Change custom server'),
tr('Delete custom server'),
]
super().__init__(
custom_servers,
[self._actions[0]],
self._actions[1:],
'',
)
async def show(self) -> list[CustomServer] | None:
return await super()._run()
@override
def selected_action_display(self, selection: CustomServer) -> str:
return selection.url
@override
async def handle_action(
self,
action: str,
entry: CustomServer | None,
data: list[CustomServer],
) -> list[CustomServer]:
if action == self._actions[0]: # add
new_server = await self._add_custom_server()
if new_server is not None:
data = [d for d in data if d.url != new_server.url]
data += [new_server]
elif action == self._actions[1] and entry: # modify repo
new_server = await self._add_custom_server(entry)
if new_server is not None:
data = [d for d in data if d.url != entry.url]
data += [new_server]
elif action == self._actions[2] and entry: # delete
data = [d for d in data if d != entry]
return data
async def _add_custom_server(self, preset: CustomServer | None = None) -> CustomServer | None:
edit_result = await Input(
header=tr('Enter server url'),
allow_skip=True,
default_value=preset.url if preset else None,
).show()
match edit_result.type_:
case ResultType.Selection:
uri = edit_result.get_value()
return CustomServer(uri)
case ResultType.Skip:
return preset
case _:
return None
class MirrorMenu(AbstractSubMenu[MirrorConfiguration]):
def __init__(
self,
mirror_list_handler: MirrorListHandler,
preset: MirrorConfiguration | None = None,
):
if preset:
self._mirror_config = preset
else:
self._mirror_config = MirrorConfiguration()
self._mirror_list_handler = mirror_list_handler
menu_options = self._define_menu_options()
self._item_group = MenuItemGroup(menu_options, checkmarks=True)
super().__init__(
self._item_group,
config=self._mirror_config,
allow_reset=True,
)
def _define_menu_options(self) -> list[MenuItem]:
return [
MenuItem(
text=tr('Select regions'),
action=lambda x: select_mirror_regions(self._mirror_list_handler, x),
value=self._mirror_config.mirror_regions,
preview_action=self._prev_regions,
key='mirror_regions',
),
MenuItem(
text=tr('Add custom servers'),
action=add_custom_mirror_servers,
value=self._mirror_config.custom_servers,
preview_action=self._prev_custom_servers,
key='custom_servers',
),
MenuItem(
text=tr('Optional repositories'),
action=select_optional_repositories,
value=[],
preview_action=self._prev_additional_repos,
key='optional_repositories',
),
MenuItem(
text=tr('Add custom repository'),
action=select_custom_mirror,
value=self._mirror_config.custom_repositories,
preview_action=self._prev_custom_mirror,
key='custom_repositories',
),
]
def _prev_regions(self, item: MenuItem) -> str:
regions = item.get_value()
output = ''
for region in regions:
output += f'{region.name}\n'
for url in region.urls:
output += f' - {url}\n'
output += '\n'
return output
def _prev_additional_repos(self, item: MenuItem) -> str | None:
if item.value:
repositories: list[Repository] = item.value
repos = ', '.join(repo.value for repo in repositories)
return f'{tr("Additional repositories")}: {repos}'
return None
def _prev_custom_mirror(self, item: MenuItem) -> str | None:
if not item.value:
return None
custom_mirrors: list[CustomRepository] = item.value
output = FormattedOutput.as_table(custom_mirrors)
return output.strip()
def _prev_custom_servers(self, item: MenuItem) -> str | None:
if not item.value:
return None
custom_servers: list[CustomServer] = item.value
output = '\n'.join(server.url for server in custom_servers)
return output.strip()
@override
async def show(self) -> MirrorConfiguration | None:
return await super().show()
async def select_mirror_regions(
mirror_list_handler: MirrorListHandler,
preset: list[MirrorRegion],
) -> list[MirrorRegion]:
await Loading[None](
header=tr('Loading mirror regions...'),
data_callback=mirror_list_handler.load_mirrors,
).show()
available_regions = mirror_list_handler.get_mirror_regions()
if not available_regions:
return []
preset_regions = [region for region in available_regions if region in preset]
items = [MenuItem(region.name, value=region) for region in available_regions]
group = MenuItemGroup(items, sort_items=True)
group.set_selected_by_value(preset_regions)
result = await Selection[MirrorRegion](
group,
header=tr('Select mirror regions to be enabled'),
allow_reset=True,
allow_skip=True,
multi=True,
enable_filter=True,
).show()
match result.type_:
case ResultType.Skip:
return preset_regions
case ResultType.Reset:
return []
case ResultType.Selection:
selected_mirrors = result.get_values()
return selected_mirrors
async def add_custom_mirror_servers(preset: list[CustomServer] = []) -> list[CustomServer]:
custom_mirrors = await CustomMirrorServersList(preset).show()
if not custom_mirrors:
return preset
return custom_mirrors
async def select_custom_mirror(preset: list[CustomRepository] = []) -> list[CustomRepository]:
custom_mirrors = await CustomMirrorRepositoriesList(preset).show()
if not custom_mirrors:
return preset
return custom_mirrors
async def select_optional_repositories(preset: list[Repository]) -> list[Repository]:
"""
Allows the user to select additional repositories (multilib, and testing) if desired.
:return: The string as a selected repository
:rtype: Repository
"""
repositories = [
Repository.Multilib,
Repository.MultilibTesting,
Repository.CoreTesting,
Repository.ExtraTesting,
]
items = [MenuItem(r.value, value=r) for r in repositories]
group = MenuItemGroup(items, sort_items=False)
group.set_selected_by_value(preset)
result = await Selection[Repository](
group,
header=tr('Select optional repositories to be enabled'),
allow_reset=True,
allow_skip=True,
multi=True,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Reset:
return []
case ResultType.Selection:
return result.get_values()
================================================
FILE: archinstall/lib/models/__init__.py
================================================
from archinstall.lib.models.application import ApplicationConfiguration, Audio, AudioConfiguration, BluetoothConfiguration, PrintServiceConfiguration
from archinstall.lib.models.bootloader import Bootloader
from archinstall.lib.models.device import (
BDevice,
DeviceGeometry,
DeviceModification,
DiskEncryption,
DiskLayoutConfiguration,
DiskLayoutType,
EncryptionType,
Fido2Device,
FilesystemType,
LsblkInfo,
LvmConfiguration,
LvmLayoutType,
LvmVolume,
LvmVolumeGroup,
LvmVolumeStatus,
ModificationStatus,
PartitionFlag,
PartitionModification,
PartitionTable,
PartitionType,
SectorSize,
Size,
SubvolumeModification,
Unit,
_DeviceInfo,
)
from archinstall.lib.models.locale import LocaleConfiguration
from archinstall.lib.models.mirrors import CustomRepository, MirrorConfiguration, MirrorRegion
from archinstall.lib.models.network import NetworkConfiguration, Nic, NicType
from archinstall.lib.models.packages import LocalPackage, PackageSearch, PackageSearchResult, Repository
from archinstall.lib.models.profile import ProfileConfiguration
from archinstall.lib.models.users import PasswordStrength, User
__all__ = [
'ApplicationConfiguration',
'Audio',
'AudioConfiguration',
'BDevice',
'BluetoothConfiguration',
'Bootloader',
'CustomRepository',
'DeviceGeometry',
'DeviceModification',
'DiskEncryption',
'DiskLayoutConfiguration',
'DiskLayoutType',
'EncryptionType',
'Fido2Device',
'FilesystemType',
'LocalPackage',
'LocaleConfiguration',
'LsblkInfo',
'LvmConfiguration',
'LvmLayoutType',
'LvmVolume',
'LvmVolumeGroup',
'LvmVolumeStatus',
'MirrorConfiguration',
'MirrorRegion',
'ModificationStatus',
'NetworkConfiguration',
'Nic',
'NicType',
'PackageSearch',
'PackageSearchResult',
'PartitionFlag',
'PartitionModification',
'PartitionTable',
'PartitionType',
'PasswordStrength',
'PrintServiceConfiguration',
'ProfileConfiguration',
'Repository',
'SectorSize',
'Size',
'SubvolumeModification',
'Unit',
'User',
'_DeviceInfo',
]
================================================
FILE: archinstall/lib/models/application.py
================================================
from dataclasses import dataclass
from enum import StrEnum, auto
from typing import Any, NotRequired, Self, TypedDict
class PowerManagement(StrEnum):
POWER_PROFILES_DAEMON = 'power-profiles-daemon'
TUNED = 'tuned'
class PowerManagementConfigSerialization(TypedDict):
power_management: str
class BluetoothConfigSerialization(TypedDict):
enabled: bool
class Audio(StrEnum):
NO_AUDIO = 'No audio server'
PIPEWIRE = auto()
PULSEAUDIO = auto()
class AudioConfigSerialization(TypedDict):
audio: str
class PrintServiceConfigSerialization(TypedDict):
enabled: bool
class Firewall(StrEnum):
UFW = 'ufw'
FWD = 'firewalld'
class FirewallConfigSerialization(TypedDict):
firewall: str
class ZramAlgorithm(StrEnum):
ZSTD = 'zstd'
LZO_RLE = 'lzo-rle'
LZO = 'lzo'
LZ4 = 'lz4'
LZ4HC = 'lz4hc'
class ApplicationSerialization(TypedDict):
bluetooth_config: NotRequired[BluetoothConfigSerialization]
audio_config: NotRequired[AudioConfigSerialization]
power_management_config: NotRequired[PowerManagementConfigSerialization]
print_service_config: NotRequired[PrintServiceConfigSerialization]
firewall_config: NotRequired[FirewallConfigSerialization]
@dataclass
class AudioConfiguration:
audio: Audio
def json(self) -> AudioConfigSerialization:
return {
'audio': self.audio.value,
}
@classmethod
def parse_arg(cls, arg: dict[str, Any]) -> Self:
return cls(
Audio(arg['audio']),
)
@dataclass
class BluetoothConfiguration:
enabled: bool
def json(self) -> BluetoothConfigSerialization:
return {'enabled': self.enabled}
@classmethod
def parse_arg(cls, arg: BluetoothConfigSerialization) -> Self:
return cls(arg['enabled'])
@dataclass
class PowerManagementConfiguration:
power_management: PowerManagement
def json(self) -> PowerManagementConfigSerialization:
return {
'power_management': self.power_management.value,
}
@classmethod
def parse_arg(cls, arg: PowerManagementConfigSerialization) -> Self:
return cls(
PowerManagement(arg['power_management']),
)
@dataclass
class PrintServiceConfiguration:
enabled: bool
def json(self) -> PrintServiceConfigSerialization:
return {'enabled': self.enabled}
@classmethod
def parse_arg(cls, arg: PrintServiceConfigSerialization) -> Self:
return cls(arg['enabled'])
@dataclass
class FirewallConfiguration:
firewall: Firewall
def json(self) -> FirewallConfigSerialization:
return {
'firewall': self.firewall.value,
}
@classmethod
def parse_arg(cls, arg: dict[str, Any]) -> Self:
return cls(
Firewall(arg['firewall']),
)
@dataclass(frozen=True)
class ZramConfiguration:
enabled: bool
algorithm: ZramAlgorithm = ZramAlgorithm.ZSTD
@classmethod
def parse_arg(cls, arg: bool | dict[str, Any]) -> Self:
if isinstance(arg, bool):
return cls(enabled=arg)
enabled = arg.get('enabled', True)
algo = arg.get('algorithm', arg.get('algo', ZramAlgorithm.ZSTD.value))
return cls(enabled=enabled, algorithm=ZramAlgorithm(algo))
@dataclass
class ApplicationConfiguration:
bluetooth_config: BluetoothConfiguration | None = None
audio_config: AudioConfiguration | None = None
power_management_config: PowerManagementConfiguration | None = None
print_service_config: PrintServiceConfiguration | None = None
firewall_config: FirewallConfiguration | None = None
@classmethod
def parse_arg(
cls,
args: dict[str, Any] | None = None,
old_audio_config: dict[str, Any] | None = None,
) -> Self:
app_config = cls()
if args and (bluetooth_config := args.get('bluetooth_config')) is not None:
app_config.bluetooth_config = BluetoothConfiguration.parse_arg(bluetooth_config)
# deprecated: backwards compatibility
if old_audio_config is not None:
app_config.audio_config = AudioConfiguration.parse_arg(old_audio_config)
if args and (audio_config := args.get('audio_config')) is not None:
app_config.audio_config = AudioConfiguration.parse_arg(audio_config)
if args and (power_management_config := args.get('power_management_config')) is not None:
app_config.power_management_config = PowerManagementConfiguration.parse_arg(power_management_config)
if args and (print_service_config := args.get('print_service_config')) is not None:
app_config.print_service_config = PrintServiceConfiguration.parse_arg(print_service_config)
if args and (firewall_config := args.get('firewall_config')) is not None:
app_config.firewall_config = FirewallConfiguration.parse_arg(firewall_config)
return app_config
def json(self) -> ApplicationSerialization:
config: ApplicationSerialization = {}
if self.bluetooth_config:
config['bluetooth_config'] = self.bluetooth_config.json()
if self.audio_config:
config['audio_config'] = self.audio_config.json()
if self.power_management_config:
config['power_management_config'] = self.power_management_config.json()
if self.print_service_config:
config['print_service_config'] = self.print_service_config.json()
if self.firewall_config:
config['firewall_config'] = self.firewall_config.json()
return config
================================================
FILE: archinstall/lib/models/authentication.py
================================================
from dataclasses import dataclass, field
from enum import Enum
from typing import Any, NotRequired, Self, TypedDict
from archinstall.lib.models.users import Password, User
from archinstall.lib.translationhandler import tr
class U2FLoginConfigSerialization(TypedDict):
u2f_login_method: str
passwordless_sudo: bool
class AuthenticationSerialization(TypedDict):
u2f_config: NotRequired[U2FLoginConfigSerialization]
class U2FLoginMethod(Enum):
Passwordless = 'passwordless'
SecondFactor = 'second_factor'
def display_value(self) -> str:
match self:
case U2FLoginMethod.Passwordless:
return tr('Passwordless login')
case U2FLoginMethod.SecondFactor:
return tr('Second factor login')
case _:
raise ValueError(f'Unknown type: {self}')
@dataclass
class U2FLoginConfiguration:
u2f_login_method: U2FLoginMethod
passwordless_sudo: bool = False
def json(self) -> U2FLoginConfigSerialization:
return {
'u2f_login_method': self.u2f_login_method.value,
'passwordless_sudo': self.passwordless_sudo,
}
@classmethod
def parse_arg(cls, args: U2FLoginConfigSerialization) -> Self | None:
u2f_login_method = args.get('u2f_login_method')
if not u2f_login_method:
return None
u2f_config = cls(u2f_login_method=U2FLoginMethod(u2f_login_method))
u2f_config.u2f_login_method = U2FLoginMethod(u2f_login_method)
if passwordless_sudo := args.get('passwordless_sudo') is not None:
u2f_config.passwordless_sudo = passwordless_sudo
return u2f_config
@dataclass
class AuthenticationConfiguration:
root_enc_password: Password | None = None
users: list[User] = field(default_factory=list)
u2f_config: U2FLoginConfiguration | None = None
@classmethod
def parse_arg(cls, args: dict[str, Any]) -> Self:
auth_config = cls()
if (u2f_config := args.get('u2f_config')) is not None:
auth_config.u2f_config = U2FLoginConfiguration.parse_arg(u2f_config)
if enc_password := args.get('root_enc_password'):
auth_config.root_enc_password = Password(enc_password=enc_password)
return auth_config
def json(self) -> AuthenticationSerialization:
config: AuthenticationSerialization = {}
if self.u2f_config:
config['u2f_config'] = self.u2f_config.json()
return config
================================================
FILE: archinstall/lib/models/bootloader.py
================================================
import sys
from dataclasses import dataclass
from enum import Enum
from typing import Any, Self
from archinstall.lib.output import warn
from archinstall.lib.translationhandler import tr
class Bootloader(Enum):
NO_BOOTLOADER = 'No bootloader'
Systemd = 'Systemd-boot'
Grub = 'Grub'
Efistub = 'Efistub'
Limine = 'Limine'
Refind = 'Refind'
def has_uki_support(self) -> bool:
return self != Bootloader.NO_BOOTLOADER
def has_removable_support(self) -> bool:
match self:
case Bootloader.Grub | Bootloader.Limine:
return True
case _:
return False
def json(self) -> str:
return self.value
@classmethod
def get_default(cls, uefi: bool, skip_boot: bool = False) -> Self:
if skip_boot:
return cls.NO_BOOTLOADER
elif uefi:
return cls.Systemd
else:
return cls.Grub
@classmethod
def from_arg(cls, bootloader: str, skip_boot: bool) -> Self:
# to support old configuration files
bootloader = bootloader.capitalize()
bootloader_options = [e.value for e in cls if e != cls.NO_BOOTLOADER or skip_boot is True]
if bootloader not in bootloader_options:
values = ', '.join(bootloader_options)
warn(f'Invalid bootloader value "{bootloader}". Allowed values: {values}')
sys.exit(1)
return cls(bootloader)
@dataclass
class BootloaderConfiguration:
bootloader: Bootloader
uki: bool = False
removable: bool = True
def json(self) -> dict[str, Any]:
return {'bootloader': self.bootloader.json(), 'uki': self.uki, 'removable': self.removable}
@classmethod
def parse_arg(cls, config: dict[str, Any], skip_boot: bool) -> Self:
bootloader = Bootloader.from_arg(config.get('bootloader', ''), skip_boot)
uki = config.get('uki', False)
removable = config.get('removable', True)
return cls(bootloader=bootloader, uki=uki, removable=removable)
@classmethod
def get_default(cls, uefi: bool, skip_boot: bool = False) -> Self:
bootloader = Bootloader.get_default(uefi, skip_boot)
removable = uefi and bootloader.has_removable_support()
uki = uefi and bootloader.has_uki_support()
return cls(bootloader=bootloader, uki=uki, removable=removable)
def preview(self, uefi: bool) -> str:
text = f'{tr("Bootloader")}: {self.bootloader.value}'
text += '\n'
if uefi and self.bootloader.has_uki_support():
if self.uki:
uki_string = tr('Enabled')
else:
uki_string = tr('Disabled')
text += f'UKI: {uki_string}'
text += '\n'
if uefi and self.bootloader.has_removable_support():
if self.removable:
removable_string = tr('Enabled')
else:
removable_string = tr('Disabled')
text += f'{tr("Removable")}: {removable_string}'
text += '\n'
return text
================================================
FILE: archinstall/lib/models/device.py
================================================
from __future__ import annotations
import builtins
import math
import uuid
from dataclasses import dataclass, field
from enum import Enum
from pathlib import Path
from typing import NotRequired, Self, TypedDict, override
from uuid import UUID
import parted
from parted import Disk, Geometry, Partition
from pydantic import BaseModel, Field, ValidationInfo, field_serializer, field_validator
from archinstall.lib.hardware import SysInfo
from archinstall.lib.models.users import Password
from archinstall.lib.output import debug
from archinstall.lib.translationhandler import tr
ENC_IDENTIFIER = 'ainst'
DEFAULT_ITER_TIME = 10000
class DiskLayoutType(Enum):
Default = 'default_layout'
Manual = 'manual_partitioning'
Pre_mount = 'pre_mounted_config'
def display_msg(self) -> str:
match self:
case DiskLayoutType.Default:
return tr('Use a best-effort default partition layout')
case DiskLayoutType.Manual:
return tr('Manual Partitioning')
case DiskLayoutType.Pre_mount:
return tr('Pre-mounted configuration')
class _DiskLayoutConfigurationSerialization(TypedDict):
config_type: str
device_modifications: NotRequired[list[_DeviceModificationSerialization]]
lvm_config: NotRequired[_LvmConfigurationSerialization]
mountpoint: NotRequired[str]
btrfs_options: NotRequired[_BtrfsOptionsSerialization]
disk_encryption: NotRequired[_DiskEncryptionSerialization]
@dataclass
class DiskLayoutConfiguration:
config_type: DiskLayoutType
device_modifications: list[DeviceModification] = field(default_factory=list)
lvm_config: LvmConfiguration | None = None
disk_encryption: DiskEncryption | None = None
btrfs_options: BtrfsOptions | None = None
# used for pre-mounted config
mountpoint: Path | None = None
def json(self) -> _DiskLayoutConfigurationSerialization:
if self.config_type == DiskLayoutType.Pre_mount:
return {
'config_type': self.config_type.value,
'mountpoint': str(self.mountpoint),
}
else:
config: _DiskLayoutConfigurationSerialization = {
'config_type': self.config_type.value,
'device_modifications': [mod.json() for mod in self.device_modifications],
}
if self.lvm_config:
config['lvm_config'] = self.lvm_config.json()
if self.disk_encryption:
config['disk_encryption'] = self.disk_encryption.json()
if self.btrfs_options:
config['btrfs_options'] = self.btrfs_options.json()
return config
@classmethod
def parse_arg(
cls,
disk_config: _DiskLayoutConfigurationSerialization,
enc_password: Password | None = None,
) -> Self | None:
from archinstall.lib.disk.device_handler import device_handler
device_modifications: list[DeviceModification] = []
config_type = disk_config.get('config_type', None)
if not config_type:
raise ValueError('Missing disk layout configuration: config_type')
config = cls(
config_type=DiskLayoutType(config_type),
device_modifications=device_modifications,
)
if config_type == DiskLayoutType.Pre_mount.value:
if not (mountpoint := disk_config.get('mountpoint')):
raise ValueError('Must set a mountpoint when layout type is pre-mount')
path = Path(str(mountpoint))
mods = device_handler.detect_pre_mounted_mods(path)
device_modifications.extend(mods)
config.mountpoint = path
return config
for entry in disk_config.get('device_modifications', []):
device_path = Path(entry['device']) if entry.get('device', None) else None
if not device_path:
continue
device = device_handler.get_device(device_path)
if not device:
continue
device_modification = DeviceModification(
wipe=entry.get('wipe', False),
device=device,
)
device_partitions: list[PartitionModification] = []
for partition in entry.get('partitions', []):
flags = [flag for f in partition.get('flags', []) if (flag := PartitionFlag.from_string(f))]
device_partition = PartitionModification(
status=ModificationStatus(partition['status']),
fs_type=FilesystemType(partition['fs_type']) if partition.get('fs_type') else None,
start=Size.parse_args(partition['start']),
length=Size.parse_args(partition['size']),
mount_options=partition['mount_options'],
mountpoint=Path(partition['mountpoint']) if partition['mountpoint'] else None,
dev_path=Path(partition['dev_path']) if partition['dev_path'] else None,
type=PartitionType(partition['type']),
flags=flags,
btrfs_subvols=SubvolumeModification.parse_args(partition.get('btrfs', [])),
)
# special 'invisible' attr to internally identify the part mod
device_partition._obj_id = partition['obj_id']
device_partitions.append(device_partition)
device_modification.partitions = device_partitions
device_modifications.append(device_modification)
for dev_mod in device_modifications:
dev_mod.partitions.sort(key=lambda p: (not p.is_delete(), p.start))
non_delete_partitions = [part_mod for part_mod in dev_mod.partitions if not part_mod.is_delete()]
if not non_delete_partitions:
continue
first = non_delete_partitions[0]
if first.status == ModificationStatus.Create and not first.start.is_valid_start():
raise ValueError('First partition must start at no less than 1 MiB')
for i, current_partition in enumerate(non_delete_partitions[1:], start=1):
previous_partition = non_delete_partitions[i - 1]
if current_partition.status == ModificationStatus.Create and current_partition.start < previous_partition.end:
raise ValueError('Partitions overlap')
create_partitions = [part_mod for part_mod in non_delete_partitions if part_mod.status == ModificationStatus.Create]
if not create_partitions:
continue
for part in create_partitions:
if part.start != part.start.align() or part.length != part.length.align():
raise ValueError('Partition is misaligned')
last = create_partitions[-1]
total_size = dev_mod.device.device_info.total_size
if dev_mod.using_gpt(device_handler.partition_table):
if last.end > total_size.gpt_end():
raise ValueError('Partition overlaps backup GPT header')
elif last.end > total_size.align():
raise ValueError('Partition too large for device')
# Parse LVM configuration from settings
if (lvm_arg := disk_config.get('lvm_config', None)) is not None:
config.lvm_config = LvmConfiguration.parse_arg(lvm_arg, config)
if (enc_config := disk_config.get('disk_encryption', None)) is not None:
config.disk_encryption = DiskEncryption.parse_arg(config, enc_config, enc_password)
if config.has_default_btrfs_vols():
if (btrfs_arg := disk_config.get('btrfs_options', None)) is not None:
config.btrfs_options = BtrfsOptions.parse_arg(btrfs_arg)
return config
def has_default_btrfs_vols(self) -> bool:
for mod in self.device_modifications:
for part in mod.partitions:
if not (part.is_create_or_modify() and part.fs_type == FilesystemType.Btrfs):
continue
if any(subvol.is_default_root() for subvol in part.btrfs_subvols):
return True
return False
class PartitionTable(Enum):
GPT = 'gpt'
MBR = 'msdos'
def is_gpt(self) -> bool:
return self == PartitionTable.GPT
def is_mbr(self) -> bool:
return self == PartitionTable.MBR
@classmethod
def default(cls) -> Self:
return cls.GPT if SysInfo.has_uefi() else cls.MBR
class Units(Enum):
BINARY = 'binary'
DECIMAL = 'decimal'
class Unit(Enum):
B = 1 # byte
kB = 1000**1 # kilobyte
MB = 1000**2 # megabyte
GB = 1000**3 # gigabyte
TB = 1000**4 # terabyte
PB = 1000**5 # petabyte
EB = 1000**6 # exabyte
ZB = 1000**7 # zettabyte
YB = 1000**8 # yottabyte
KiB = 1024**1 # kibibyte
MiB = 1024**2 # mebibyte
GiB = 1024**3 # gibibyte
TiB = 1024**4 # tebibyte
PiB = 1024**5 # pebibyte
EiB = 1024**6 # exbibyte
ZiB = 1024**7 # zebibyte
YiB = 1024**8 # yobibyte
sectors = 'sectors' # size in sector
@classmethod
def get_all_units(cls) -> list[str]:
return [u.name for u in cls]
@classmethod
def get_si_units(cls) -> list[Self]:
return [u for u in cls if 'i' not in u.name and u.name != 'sectors']
@classmethod
def get_binary_units(cls) -> list[Self]:
return [u for u in cls if 'i' in u.name or u.name == 'B']
class _SectorSizeSerialization(TypedDict):
value: int
unit: str
@dataclass
class SectorSize:
value: int
unit: Unit
def __post_init__(self) -> None:
match self.unit:
case Unit.sectors:
raise ValueError('Unit type sector not allowed for SectorSize')
@classmethod
def default(cls) -> Self:
return cls(512, Unit.B)
def json(self) -> _SectorSizeSerialization:
return {
'value': self.value,
'unit': self.unit.name,
}
@classmethod
def parse_args(cls, arg: _SectorSizeSerialization) -> Self:
return cls(
arg['value'],
Unit[arg['unit']],
)
def normalize(self) -> int:
"""
will normalize the value of the unit to Byte
"""
return int(self.value * self.unit.value)
class _SizeSerialization(TypedDict):
value: int
unit: str
sector_size: _SectorSizeSerialization
@dataclass
class Size:
value: int
unit: Unit
sector_size: SectorSize
def json(self) -> _SizeSerialization:
return {
'value': self.value,
'unit': self.unit.name,
'sector_size': self.sector_size.json(),
}
@classmethod
def parse_args(cls, size_arg: _SizeSerialization) -> Self:
sector_size = size_arg['sector_size']
return cls(
size_arg['value'],
Unit[size_arg['unit']],
SectorSize.parse_args(sector_size),
)
def convert(
self,
target_unit: Unit,
sector_size: SectorSize | None = None,
) -> Size:
if target_unit == Unit.sectors and sector_size is None:
raise ValueError('If target has unit sector, a sector size must be provided')
if self.unit == target_unit:
return self
elif self.unit == Unit.sectors:
norm = self._normalize()
return Size(norm, Unit.B, self.sector_size).convert(target_unit, sector_size)
else:
if target_unit == Unit.sectors and sector_size is not None:
norm = self._normalize()
sectors = math.ceil(norm / sector_size.value)
return Size(sectors, Unit.sectors, sector_size)
else:
value = int(self._normalize() / target_unit.value)
return Size(value, target_unit, self.sector_size)
def as_text(self) -> str:
return self.format_size(
self.unit,
self.sector_size,
)
def format_size(
self,
target_unit: Unit,
sector_size: SectorSize | None = None,
include_unit: bool = True,
) -> str:
target_size = self.convert(target_unit, sector_size)
if include_unit:
return f'{target_size.value} {target_unit.name}'
return f'{target_size.value}'
def binary_unit_highest(self, include_unit: bool = True) -> str:
binary_units = Unit.get_binary_units()
size = float(self._normalize())
unit = Unit.KiB
base_value = unit.value
for binary_unit in binary_units:
unit = binary_unit
if size < base_value:
break
size /= base_value
formatted_size = f'{size:.1f}'
if formatted_size.endswith('.0'):
formatted_size = formatted_size[:-2]
if not include_unit:
return formatted_size
return f'{formatted_size} {unit.name}'
def si_unit_highest(self, include_unit: bool = True) -> str:
si_units = Unit.get_si_units()
all_si_values = [self.convert(si) for si in si_units]
filtered = filter(lambda x: x.value >= 1, all_si_values)
# we have to get the max by the unit value as we're interested
# in getting the value in the highest possible unit without floats
si_value = max(filtered, key=lambda x: x.unit.value)
if include_unit:
return f'{si_value.value} {si_value.unit.name}'
return f'{si_value.value}'
def format_highest(self, include_unit: bool = True, units: Units = Units.BINARY) -> str:
if units == Units.BINARY:
return self.binary_unit_highest(include_unit)
else:
return self.si_unit_highest(include_unit)
def is_valid_start(self) -> bool:
return self >= Size(1, Unit.MiB, self.sector_size)
def align(self) -> Size:
align_norm = Size(1, Unit.MiB, self.sector_size)._normalize()
src_norm = self._normalize()
return self - Size(abs(src_norm % align_norm), Unit.B, self.sector_size)
def gpt_end(self) -> Size:
return self - Size(1, Unit.MiB, self.sector_size)
def _normalize(self) -> int:
"""
will normalize the value of the unit to Byte
"""
if self.unit == Unit.sectors and self.sector_size is not None:
return self.value * self.sector_size.normalize()
return int(self.value * self.unit.value)
def __sub__(self, other: Self) -> Size:
src_norm = self._normalize()
dest_norm = other._normalize()
return Size(abs(src_norm - dest_norm), Unit.B, self.sector_size)
def __add__(self, other: Self) -> Size:
src_norm = self._normalize()
dest_norm = other._normalize()
return Size(abs(src_norm + dest_norm), Unit.B, self.sector_size)
def __lt__(self, other: Self) -> bool:
return self._normalize() < other._normalize()
def __le__(self, other: Self) -> bool:
return self._normalize() <= other._normalize()
@override
def __eq__(self, other: object) -> bool:
if not isinstance(other, Size):
return NotImplemented
return self._normalize() == other._normalize()
@override
def __ne__(self, other: object) -> bool:
if not isinstance(other, Size):
return NotImplemented
return self._normalize() != other._normalize()
def __gt__(self, other: Self) -> bool:
return self._normalize() > other._normalize()
def __ge__(self, other: Self) -> bool:
return self._normalize() >= other._normalize()
class BtrfsMountOption(Enum):
compress = 'compress=zstd'
nodatacow = 'nodatacow'
@dataclass
class _BtrfsSubvolumeInfo:
name: Path
mountpoint: Path | None
@dataclass
class _PartitionInfo:
partition: Partition
name: str
type: PartitionType
fs_type: FilesystemType | None
path: Path
start: Size
length: Size
flags: list[PartitionFlag]
partn: int | None
partuuid: str | None
uuid: str | None
disk: Disk
mountpoints: list[Path]
btrfs_subvol_infos: list[_BtrfsSubvolumeInfo] = field(default_factory=list)
@property
def sector_size(self) -> SectorSize:
sector_size = self.partition.geometry.device.sectorSize
return SectorSize(sector_size, Unit.B)
def table_data(self) -> dict[str, str]:
end = self.start + self.length
part_info = {
'Name': self.name,
'Type': self.type.value,
'Filesystem': self.fs_type.value if self.fs_type else tr('Unknown'),
'Path': str(self.path),
'Start': self.start.format_size(Unit.sectors, self.sector_size, include_unit=False),
'End': end.format_size(Unit.sectors, self.sector_size, include_unit=False),
'Size': self.length.format_highest(),
'Flags': ', '.join(f.description for f in self.flags),
}
if self.btrfs_subvol_infos:
part_info['Btrfs vol.'] = f'{len(self.btrfs_subvol_infos)} subvolumes'
return part_info
@classmethod
def from_partition(
cls,
partition: Partition,
lsblk_info: LsblkInfo,
fs_type: FilesystemType | None,
btrfs_subvol_infos: list[_BtrfsSubvolumeInfo] = [],
) -> Self:
partition_type = PartitionType.get_type_from_code(partition.type)
flags = [f for f in PartitionFlag if partition.getFlag(f.flag_id)]
start = Size(
partition.geometry.start,
Unit.sectors,
SectorSize(partition.disk.device.sectorSize, Unit.B),
)
length = Size(
int(partition.getLength(unit='B')),
Unit.B,
SectorSize(partition.disk.device.sectorSize, Unit.B),
)
return cls(
partition=partition,
name=partition.get_name(),
type=partition_type,
fs_type=fs_type,
path=Path(partition.path),
start=start,
length=length,
flags=flags,
partn=lsblk_info.partn,
partuuid=lsblk_info.partuuid,
uuid=lsblk_info.uuid,
disk=partition.disk,
mountpoints=lsblk_info.mountpoints,
btrfs_subvol_infos=btrfs_subvol_infos,
)
@dataclass
class _DeviceInfo:
model: str
path: Path
type: str
total_size: Size
free_space_regions: list[DeviceGeometry]
sector_size: SectorSize
read_only: bool
dirty: bool
@override
def __hash__(self) -> int:
return hash(self.path)
def table_data(self) -> dict[str, str | int | bool]:
total_free_space = sum([region.get_length(unit=Unit.MiB) for region in self.free_space_regions])
return {
'Model': self.model,
'Path': str(self.path),
'Type': self.type,
'Size': self.total_size.format_highest(),
'Free space': int(total_free_space),
'Sector size': self.sector_size.value,
'Read only': self.read_only,
}
@classmethod
def from_disk(cls, disk: Disk) -> Self:
device = disk.device
if device.type == 18:
device_type = 'loop'
elif device.type in parted.devices:
device_type = parted.devices[device.type]
else:
debug(f'Device code unknown: {device.type}')
device_type = parted.devices[parted.DEVICE_UNKNOWN]
sector_size = SectorSize(device.sectorSize, Unit.B)
free_space = [DeviceGeometry(g, sector_size) for g in disk.getFreeSpaceRegions()]
return cls(
model=device.model.strip(),
path=Path(device.path),
type=device_type,
sector_size=sector_size,
total_size=Size(int(device.getLength(unit='B')), Unit.B, sector_size),
free_space_regions=free_space,
read_only=device.readOnly,
dirty=device.dirty,
)
class _SubvolumeModificationSerialization(TypedDict):
name: str
mountpoint: str
@dataclass
class SubvolumeModification:
name: Path | str
mountpoint: Path | None = None
@classmethod
def from_existing_subvol_info(cls, info: _BtrfsSubvolumeInfo) -> Self:
return cls(info.name, mountpoint=info.mountpoint)
@classmethod
def parse_args(cls, subvol_args: list[_SubvolumeModificationSerialization]) -> list[Self]:
mods = []
for entry in subvol_args:
if not entry.get('name', None) or not entry.get('mountpoint', None):
debug(f'Subvolume arg is missing name: {entry}')
continue
mountpoint = Path(entry['mountpoint']) if entry['mountpoint'] else None
mods.append(cls(entry['name'], mountpoint))
return mods
@property
def relative_mountpoint(self) -> Path:
"""
Will return the relative path based on the anchor
e.g. Path('/mnt/test') -> Path('mnt/test')
"""
if self.mountpoint is not None:
return self.mountpoint.relative_to(self.mountpoint.anchor)
raise ValueError('Mountpoint is not specified')
def is_root(self) -> bool:
if self.mountpoint:
return self.mountpoint == Path('/')
return False
def is_default_root(self) -> bool:
return self.name == Path('@') and self.is_root()
def json(self) -> _SubvolumeModificationSerialization:
return {'name': str(self.name), 'mountpoint': str(self.mountpoint)}
def table_data(self) -> _SubvolumeModificationSerialization:
return self.json()
class DeviceGeometry:
def __init__(self, geometry: Geometry, sector_size: SectorSize):
self._geometry = geometry
self._sector_size = sector_size
@property
def start(self) -> int:
return self._geometry.start
@property
def end(self) -> int:
return self._geometry.end
def get_length(self, unit: Unit = Unit.sectors) -> int:
return self._geometry.getLength(unit.name)
def table_data(self) -> dict[str, str | int]:
start = Size(self._geometry.start, Unit.sectors, self._sector_size)
end = Size(self._geometry.end, Unit.sectors, self._sector_size)
length = Size(self._geometry.getLength(), Unit.sectors, self._sector_size)
start_str = f'{self._geometry.start} / {start.format_size(Unit.B, include_unit=False)}'
end_str = f'{self._geometry.end} / {end.format_size(Unit.B, include_unit=False)}'
length_str = f'{self._geometry.getLength()} / {length.format_size(Unit.B, include_unit=False)}'
return {
'Sector size': self._sector_size.value,
'Start (sector/B)': start_str,
'End (sector/B)': end_str,
'Size (sectors/B)': length_str,
}
@dataclass
class BDevice:
disk: Disk
device_info: _DeviceInfo
partition_infos: list[_PartitionInfo]
@override
def __hash__(self) -> int:
return hash(self.disk.device.path)
class PartitionType(Enum):
Boot = 'boot'
Primary = 'primary'
_Unknown = 'unknown'
@classmethod
def get_type_from_code(cls, code: int) -> Self:
if code == parted.PARTITION_NORMAL:
return cls.Primary
else:
debug(f'Partition code not supported: {code}')
return cls._Unknown
def get_partition_code(self) -> int | None:
if self == PartitionType.Primary:
return parted.PARTITION_NORMAL
elif self == PartitionType.Boot:
return parted.PARTITION_BOOT
return None
@dataclass(frozen=True)
class PartitionFlagDataMixin:
flag_id: int
alias: str | None = None
class PartitionFlag(PartitionFlagDataMixin, Enum):
BOOT = parted.PARTITION_BOOT
XBOOTLDR = parted.PARTITION_BLS_BOOT, 'bls_boot'
ESP = parted.PARTITION_ESP
LINUX_HOME = parted.PARTITION_LINUX_HOME, 'linux-home'
SWAP = parted.PARTITION_SWAP
@property
def description(self) -> str:
return self.alias or self.name.lower()
@classmethod
def from_string(cls, s: str) -> Self | None:
s = s.lower()
for partition_flag in cls:
if s in (partition_flag.name.lower(), partition_flag.alias):
return partition_flag
debug(f'Partition flag not supported: {s}')
return None
class PartitionGUID(Enum):
"""
A list of Partition type GUIDs (lsblk -o+PARTTYPE) can be found here: https://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_type_GUIDs
"""
LINUX_ROOT_X86_64 = '4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709'
@property
def bytes(self) -> builtins.bytes:
return uuid.UUID(self.value).bytes
class FilesystemType(Enum):
Btrfs = 'btrfs'
Ext2 = 'ext2'
Ext3 = 'ext3'
Ext4 = 'ext4'
F2fs = 'f2fs'
Fat12 = 'fat12'
Fat16 = 'fat16'
Fat32 = 'fat32'
Ntfs = 'ntfs'
Xfs = 'xfs'
LinuxSwap = 'linux-swap'
# this is not a FS known to parted, so be careful
# with the usage from this enum
Crypto_luks = 'crypto_LUKS'
def is_crypto(self) -> bool:
return self == FilesystemType.Crypto_luks
@property
def parted_value(self) -> str:
return self.value + '(v1)' if self == FilesystemType.LinuxSwap else self.value
@property
def installation_pkg(self) -> str | None:
match self:
case FilesystemType.Btrfs:
return 'btrfs-progs'
case FilesystemType.Xfs:
return 'xfsprogs'
case FilesystemType.F2fs:
return 'f2fs-tools'
case _:
return None
class ModificationStatus(Enum):
Exist = 'existing'
Modify = 'modify'
Delete = 'delete'
Create = 'create'
class _PartitionModificationSerialization(TypedDict):
obj_id: str
status: str
type: str
start: _SizeSerialization
size: _SizeSerialization
fs_type: str | None
mountpoint: str | None
mount_options: list[str]
flags: list[str]
btrfs: list[_SubvolumeModificationSerialization]
dev_path: str | None
@dataclass
class PartitionModification:
status: ModificationStatus
type: PartitionType
start: Size
length: Size
fs_type: FilesystemType | None = None
mountpoint: Path | None = None
mount_options: list[str] = field(default_factory=list)
flags: list[PartitionFlag] = field(default_factory=list)
btrfs_subvols: list[SubvolumeModification] = field(default_factory=list)
# only set if the device was created or exists
dev_path: Path | None = None
partn: int | None = None
partuuid: str | None = None
uuid: str | None = None
_obj_id: UUID | str = field(init=False)
def __post_init__(self) -> None:
# needed to use the object as a dictionary key due to hash func
if not hasattr(self, '_obj_id'):
self._obj_id = uuid.uuid4()
if self.is_exists_or_modify() and not self.dev_path:
raise ValueError('If partition marked as existing a path must be set')
if self.fs_type is None and self.status == ModificationStatus.Modify:
raise ValueError('FS type must not be empty on modifications with status type modify')
@override
def __hash__(self) -> int:
return hash(self._obj_id)
@property
def end(self) -> Size:
return self.start + self.length
@property
def obj_id(self) -> str:
if hasattr(self, '_obj_id'):
return str(self._obj_id)
return ''
@property
def safe_dev_path(self) -> Path:
if self.dev_path is None:
raise ValueError('Device path was not set')
return self.dev_path
@property
def safe_fs_type(self) -> FilesystemType:
if self.fs_type is None:
raise ValueError('File system type is not set')
return self.fs_type
@classmethod
def from_existing_partition(cls, partition_info: _PartitionInfo) -> Self:
if partition_info.btrfs_subvol_infos:
mountpoint = None
subvol_mods = []
for i in partition_info.btrfs_subvol_infos:
subvol_mods.append(
SubvolumeModification.from_existing_subvol_info(i),
)
else:
mountpoint = partition_info.mountpoints[0] if partition_info.mountpoints else None
subvol_mods = []
return cls(
status=ModificationStatus.Exist,
type=partition_info.type,
start=partition_info.start,
length=partition_info.length,
fs_type=partition_info.fs_type,
dev_path=partition_info.path,
partn=partition_info.partn,
partuuid=partition_info.partuuid,
uuid=partition_info.uuid,
flags=partition_info.flags,
mountpoint=mountpoint,
btrfs_subvols=subvol_mods,
)
@property
def relative_mountpoint(self) -> Path:
"""
Will return the relative path based on the anchor
e.g. Path('/mnt/test') -> Path('mnt/test')
"""
if self.mountpoint:
return self.mountpoint.relative_to(self.mountpoint.anchor)
raise ValueError('Mountpoint is not specified')
def is_efi(self) -> bool:
return PartitionFlag.ESP in self.flags
def is_boot(self) -> bool:
return PartitionFlag.BOOT in self.flags
def is_root(self) -> bool:
if self.mountpoint is not None:
return self.mountpoint == Path('/')
else:
for subvol in self.btrfs_subvols:
if subvol.is_root():
return True
return False
def is_home(self) -> bool:
if self.mountpoint is not None:
return self.mountpoint == Path('/home')
return False
def is_swap(self) -> bool:
return self.fs_type == FilesystemType.LinuxSwap
def is_modify(self) -> bool:
return self.status == ModificationStatus.Modify
def is_delete(self) -> bool:
return self.status == ModificationStatus.Delete
def exists(self) -> bool:
return self.status == ModificationStatus.Exist
def is_exists_or_modify(self) -> bool:
return self.status in [
ModificationStatus.Exist,
ModificationStatus.Delete,
ModificationStatus.Modify,
]
def is_create_or_modify(self) -> bool:
return self.status in [ModificationStatus.Create, ModificationStatus.Modify]
@property
def mapper_name(self) -> str | None:
if self.is_root():
return 'root'
if self.is_home():
return 'home'
if self.dev_path:
return f'{ENC_IDENTIFIER}{self.dev_path.name}'
return None
def set_flag(self, flag: PartitionFlag) -> None:
if flag not in self.flags:
self.flags.append(flag)
def invert_flag(self, flag: PartitionFlag) -> None:
if flag in self.flags:
self.flags = [f for f in self.flags if f != flag]
else:
self.set_flag(flag)
def json(self) -> _PartitionModificationSerialization:
"""
Called for configuration settings
"""
return {
'obj_id': self.obj_id,
'status': self.status.value,
'type': self.type.value,
'start': self.start.json(),
'size': self.length.json(),
'fs_type': self.fs_type.value if self.fs_type else None,
'mountpoint': str(self.mountpoint) if self.mountpoint else None,
'mount_options': self.mount_options,
'flags': [f.description for f in self.flags],
'dev_path': str(self.dev_path) if self.dev_path else None,
'btrfs': [vol.json() for vol in self.btrfs_subvols],
}
def table_data(self) -> dict[str, str]:
"""
Called for displaying data in table format
"""
part_mod = {
'Status': self.status.value,
'Device': str(self.dev_path) if self.dev_path else '',
'Type': self.type.value,
'Start': self.start.format_size(Unit.sectors, self.start.sector_size, include_unit=False),
'End': self.end.format_size(Unit.sectors, self.start.sector_size, include_unit=False),
'Size': self.length.format_highest(),
'FS type': self.fs_type.value if self.fs_type else 'Unknown',
'Mountpoint': str(self.mountpoint) if self.mountpoint else '',
'Mount options': ', '.join(self.mount_options),
'Flags': ', '.join(f.description for f in self.flags),
}
if self.btrfs_subvols:
part_mod['Btrfs vol.'] = f'{len(self.btrfs_subvols)} subvolumes'
return part_mod
class LvmLayoutType(Enum):
Default = 'default'
# Manual = 'manual_lvm'
def display_msg(self) -> str:
match self:
case LvmLayoutType.Default:
return tr('Default layout')
class _LvmVolumeGroupSerialization(TypedDict):
name: str
lvm_pvs: list[str]
volumes: list[_LvmVolumeSerialization]
@dataclass
class LvmVolumeGroup:
name: str
pvs: list[PartitionModification]
volumes: list[LvmVolume] = field(default_factory=list)
def json(self) -> _LvmVolumeGroupSerialization:
return {
'name': self.name,
'lvm_pvs': [p.obj_id for p in self.pvs],
'volumes': [vol.json() for vol in self.volumes],
}
@classmethod
def parse_arg(cls, arg: _LvmVolumeGroupSerialization, disk_config: DiskLayoutConfiguration) -> Self:
lvm_pvs = []
for mod in disk_config.device_modifications:
for part in mod.partitions:
if part.obj_id in arg.get('lvm_pvs', []):
lvm_pvs.append(part)
return cls(
arg['name'],
lvm_pvs,
[LvmVolume.parse_arg(vol) for vol in arg['volumes']],
)
def contains_lv(self, lv: LvmVolume) -> bool:
return lv in self.volumes
class LvmVolumeStatus(Enum):
Exist = 'existing'
Modify = 'modify'
Delete = 'delete'
Create = 'create'
class _LvmVolumeSerialization(TypedDict):
obj_id: str
status: str
name: str
fs_type: str
length: _SizeSerialization
mountpoint: str | None
mount_options: list[str]
btrfs: list[_SubvolumeModificationSerialization]
@dataclass
class LvmVolume:
status: LvmVolumeStatus
name: str
fs_type: FilesystemType
length: Size
mountpoint: Path | None
mount_options: list[str] = field(default_factory=list)
btrfs_subvols: list[SubvolumeModification] = field(default_factory=list)
# volume group name
vg_name: str | None = None
# mapper device path /dev//
dev_path: Path | None = None
_obj_id: uuid.UUID | str = field(init=False)
def __post_init__(self) -> None:
# needed to use the object as a dictionary key due to hash func
if not hasattr(self, '_obj_id'):
self._obj_id = uuid.uuid4()
@override
def __hash__(self) -> int:
return hash(self._obj_id)
@property
def obj_id(self) -> str:
if hasattr(self, '_obj_id'):
return str(self._obj_id)
return ''
@property
def mapper_name(self) -> str | None:
if self.dev_path:
return f'{ENC_IDENTIFIER}{self.safe_dev_path.name}'
return None
@property
def mapper_path(self) -> Path:
if self.mapper_name:
return Path(f'/dev/mapper/{self.mapper_name}')
raise ValueError('No mapper path set')
@property
def safe_dev_path(self) -> Path:
if self.dev_path:
return self.dev_path
raise ValueError('No device path for volume defined')
@property
def safe_fs_type(self) -> FilesystemType:
if self.fs_type is None:
raise ValueError('File system type is not set')
return self.fs_type
@property
def relative_mountpoint(self) -> Path:
"""
Will return the relative path based on the anchor
e.g. Path('/mnt/test') -> Path('mnt/test')
"""
if self.mountpoint is not None:
return self.mountpoint.relative_to(self.mountpoint.anchor)
raise ValueError('Mountpoint is not specified')
@classmethod
def parse_arg(cls, arg: _LvmVolumeSerialization) -> Self:
volume = cls(
status=LvmVolumeStatus(arg['status']),
name=arg['name'],
fs_type=FilesystemType(arg['fs_type']),
length=Size.parse_args(arg['length']),
mountpoint=Path(arg['mountpoint']) if arg['mountpoint'] else None,
mount_options=arg.get('mount_options', []),
btrfs_subvols=SubvolumeModification.parse_args(arg.get('btrfs', [])),
)
volume._obj_id = arg['obj_id']
return volume
def json(self) -> _LvmVolumeSerialization:
return {
'obj_id': self.obj_id,
'status': self.status.value,
'name': self.name,
'fs_type': self.fs_type.value,
'length': self.length.json(),
'mountpoint': str(self.mountpoint) if self.mountpoint else None,
'mount_options': self.mount_options,
'btrfs': [vol.json() for vol in self.btrfs_subvols],
}
def table_data(self) -> dict[str, str]:
part_mod = {
'Type': self.status.value,
'Name': self.name,
'Size': self.length.format_highest(),
'FS type': self.fs_type.value,
'Mountpoint': str(self.mountpoint) if self.mountpoint else '',
'Mount options': ', '.join(self.mount_options),
'Btrfs': '{} {}'.format(str(len(self.btrfs_subvols)), 'vol'),
}
return part_mod
def is_modify(self) -> bool:
return self.status == LvmVolumeStatus.Modify
def exists(self) -> bool:
return self.status == LvmVolumeStatus.Exist
def is_exists_or_modify(self) -> bool:
return self.status in [LvmVolumeStatus.Exist, LvmVolumeStatus.Modify]
def is_root(self) -> bool:
if self.mountpoint is not None:
return Path('/') == self.mountpoint
else:
for subvol in self.btrfs_subvols:
if subvol.is_root():
return True
return False
@dataclass
class LvmGroupInfo:
vg_size: Size
vg_uuid: str
@dataclass
class LvmVolumeInfo:
lv_name: str
vg_name: str
lv_size: Size
@dataclass
class LvmPVInfo:
pv_name: Path
lv_name: str
vg_name: str
class _LvmConfigurationSerialization(TypedDict):
config_type: str
vol_groups: list[_LvmVolumeGroupSerialization]
@dataclass
class LvmConfiguration:
config_type: LvmLayoutType
vol_groups: list[LvmVolumeGroup]
def __post_init__(self) -> None:
# make sure all volume groups have unique PVs
pvs = []
for group in self.vol_groups:
for pv in group.pvs:
if pv in pvs:
raise ValueError('A PV cannot be used in multiple volume groups')
pvs.append(pv)
def json(self) -> _LvmConfigurationSerialization:
return {
'config_type': self.config_type.value,
'vol_groups': [vol_gr.json() for vol_gr in self.vol_groups],
}
@classmethod
def parse_arg(cls, arg: _LvmConfigurationSerialization, disk_config: DiskLayoutConfiguration) -> Self:
lvm_pvs = []
for mod in disk_config.device_modifications:
for part in mod.partitions:
# FIXME: 'lvm_pvs' does not seem like it can ever exist in the 'arg' serialization
if part.obj_id in arg.get('lvm_pvs', []): # type: ignore[operator]
lvm_pvs.append(part)
return cls(
config_type=LvmLayoutType(arg['config_type']),
vol_groups=[LvmVolumeGroup.parse_arg(vol_group, disk_config) for vol_group in arg['vol_groups']],
)
def get_all_pvs(self) -> list[PartitionModification]:
pvs = []
for vg in self.vol_groups:
pvs += vg.pvs
return pvs
def get_all_volumes(self) -> list[LvmVolume]:
volumes = []
for vg in self.vol_groups:
volumes += vg.volumes
return volumes
def get_root_volume(self) -> LvmVolume | None:
for vg in self.vol_groups:
filtered = next(filter(lambda x: x.is_root(), vg.volumes), None)
if filtered:
return filtered
return None
class _BtrfsOptionsSerialization(TypedDict):
snapshot_config: _SnapshotConfigSerialization | None
class _SnapshotConfigSerialization(TypedDict):
type: str
class SnapshotType(Enum):
Snapper = 'Snapper'
Timeshift = 'Timeshift'
@dataclass
class SnapshotConfig:
snapshot_type: SnapshotType
def json(self) -> _SnapshotConfigSerialization:
return {'type': self.snapshot_type.value}
@classmethod
def parse_args(cls, args: _SnapshotConfigSerialization) -> Self:
return cls(SnapshotType(args['type']))
@dataclass
class BtrfsOptions:
snapshot_config: SnapshotConfig | None
def json(self) -> _BtrfsOptionsSerialization:
return {'snapshot_config': self.snapshot_config.json() if self.snapshot_config else None}
@classmethod
def parse_arg(cls, arg: _BtrfsOptionsSerialization) -> Self | None:
snapshot_args = arg.get('snapshot_config')
if snapshot_args:
snapshot_config = SnapshotConfig.parse_args(snapshot_args)
return cls(snapshot_config)
return None
class _DeviceModificationSerialization(TypedDict):
device: str
wipe: bool
partitions: list[_PartitionModificationSerialization]
@dataclass
class DeviceModification:
device: BDevice
wipe: bool
partitions: list[PartitionModification] = field(default_factory=list)
@property
def device_path(self) -> Path:
return self.device.device_info.path
def using_gpt(self, partition_table: PartitionTable) -> bool:
if self.wipe:
return partition_table.is_gpt()
return self.device.disk.type == PartitionTable.GPT.value
def add_partition(self, partition: PartitionModification) -> None:
self.partitions.append(partition)
def get_efi_partition(self) -> PartitionModification | None:
filtered = filter(lambda x: x.is_efi() and x.mountpoint, self.partitions)
return next(filtered, None)
def get_boot_partition(self) -> PartitionModification | None:
filtered = filter(lambda x: x.is_boot() and x.mountpoint, self.partitions)
return next(filtered, None)
def get_root_partition(self) -> PartitionModification | None:
filtered = filter(lambda x: x.is_root(), self.partitions)
return next(filtered, None)
def json(self) -> _DeviceModificationSerialization:
"""
Called when generating configuration files
"""
return {
'device': str(self.device.device_info.path),
'wipe': self.wipe,
'partitions': [p.json() for p in self.partitions],
}
class EncryptionType(Enum):
NoEncryption = 'no_encryption'
Luks = 'luks'
LvmOnLuks = 'lvm_on_luks'
LuksOnLvm = 'luks_on_lvm'
@classmethod
def _encryption_type_mapper(cls) -> dict[str, Self]:
return {
tr('No Encryption'): cls.NoEncryption,
tr('LUKS'): cls.Luks,
tr('LVM on LUKS'): cls.LvmOnLuks,
tr('LUKS on LVM'): cls.LuksOnLvm,
}
@classmethod
def text_to_type(cls, text: str) -> Self:
mapping = cls._encryption_type_mapper()
return mapping[text]
def type_to_text(self) -> str:
mapping = self._encryption_type_mapper()
type_to_text = {enctype: text for text, enctype in mapping.items()}
return type_to_text[self]
class _DiskEncryptionSerialization(TypedDict):
encryption_type: str
partitions: list[str]
lvm_volumes: list[str]
hsm_device: NotRequired[_Fido2DeviceSerialization]
iter_time: NotRequired[int]
@dataclass
class DiskEncryption:
encryption_type: EncryptionType = EncryptionType.NoEncryption
encryption_password: Password | None = None
partitions: list[PartitionModification] = field(default_factory=list)
lvm_volumes: list[LvmVolume] = field(default_factory=list)
hsm_device: Fido2Device | None = None
iter_time: int = DEFAULT_ITER_TIME
def __post_init__(self) -> None:
if self.encryption_type in [EncryptionType.Luks, EncryptionType.LvmOnLuks] and not self.partitions:
raise ValueError('Luks or LvmOnLuks encryption require partitions to be defined')
if self.encryption_type == EncryptionType.LuksOnLvm and not self.lvm_volumes:
raise ValueError('LuksOnLvm encryption require LMV volumes to be defined')
def should_generate_encryption_file(self, dev: PartitionModification | LvmVolume) -> bool:
if isinstance(dev, PartitionModification):
return dev in self.partitions and dev.mountpoint != Path('/')
else:
return dev in self.lvm_volumes and dev.mountpoint != Path('/')
def json(self) -> _DiskEncryptionSerialization:
obj: _DiskEncryptionSerialization = {
'encryption_type': self.encryption_type.value,
'partitions': [p.obj_id for p in self.partitions],
'lvm_volumes': [vol.obj_id for vol in self.lvm_volumes],
}
if self.hsm_device:
obj['hsm_device'] = self.hsm_device.json()
if self.iter_time != DEFAULT_ITER_TIME: # Only include if not default
obj['iter_time'] = self.iter_time
return obj
@staticmethod
def validate_enc(
modifications: list[DeviceModification],
lvm_config: LvmConfiguration | None = None,
) -> bool:
partitions = []
for mod in modifications:
for part in mod.partitions:
partitions.append(part)
if len(partitions) > 2: # assume one boot and at least 2 additional
if lvm_config:
return False
return True
@classmethod
def parse_arg(
cls,
disk_config: DiskLayoutConfiguration,
disk_encryption: _DiskEncryptionSerialization,
password: Password | None = None,
) -> Self | None:
if not cls.validate_enc(disk_config.device_modifications, disk_config.lvm_config):
return None
if not password:
return None
enc_partitions = []
for mod in disk_config.device_modifications:
for part in mod.partitions:
if part.obj_id in disk_encryption.get('partitions', []):
enc_partitions.append(part)
volumes = []
if disk_config.lvm_config:
for vol in disk_config.lvm_config.get_all_volumes():
if vol.obj_id in disk_encryption.get('lvm_volumes', []):
volumes.append(vol)
enc = cls(
EncryptionType(disk_encryption['encryption_type']),
password,
enc_partitions,
volumes,
)
if hsm := disk_encryption.get('hsm_device', None):
enc.hsm_device = Fido2Device.parse_arg(hsm)
if iter_time := disk_encryption.get('iter_time', None):
enc.iter_time = iter_time
return enc
class _Fido2DeviceSerialization(TypedDict):
path: str
manufacturer: str
product: str
@dataclass
class Fido2Device:
path: Path
manufacturer: str
product: str
def json(self) -> _Fido2DeviceSerialization:
return {
'path': str(self.path),
'manufacturer': self.manufacturer,
'product': self.product,
}
def table_data(self) -> dict[str, str]:
return {
'Path': str(self.path),
'Manufacturer': self.manufacturer,
'Product': self.product,
}
@classmethod
def parse_arg(cls, arg: _Fido2DeviceSerialization) -> Self:
return cls(
Path(arg['path']),
arg['manufacturer'],
arg['product'],
)
class LsblkInfo(BaseModel):
name: str
path: Path
pkname: str | None
log_sec: int = Field(alias='log-sec')
size: Size
pttype: str | None
ptuuid: str | None
rota: bool
tran: str | None
partn: int | None
partuuid: str | None
parttype: str | None
uuid: str | None
fstype: str | None
fsver: str | None
fsavail: int | None
fsuse_percentage: str | None = Field(alias='fsuse%')
type: str | None # may be None for strange behavior with md devices
mountpoint: Path | None
mountpoints: list[Path]
fsroots: list[Path]
children: list[LsblkInfo] = Field(default_factory=list)
@field_validator('size', mode='before')
@classmethod
def convert_size(cls, v: int, info: ValidationInfo) -> Size:
sector_size = SectorSize(info.data['log_sec'], Unit.B)
return Size(v, Unit.B, sector_size)
@field_validator('mountpoints', 'fsroots', mode='before')
@classmethod
def remove_none(cls, v: list[Path | None]) -> list[Path]:
return [item for item in v if item is not None]
@field_serializer('size', when_used='json')
def serialize_size(self, size: Size) -> str:
return size.format_size(Unit.MiB)
@classmethod
def fields(cls) -> list[str]:
return [field.alias or name for name, field in cls.model_fields.items() if name != 'children']
================================================
FILE: archinstall/lib/models/locale.py
================================================
from dataclasses import dataclass
from typing import Any, Self
from archinstall.lib.locale.utils import get_kb_layout
from archinstall.lib.translationhandler import tr
@dataclass
class LocaleConfiguration:
kb_layout: str
sys_lang: str
sys_enc: str
@classmethod
def default(cls) -> Self:
layout = get_kb_layout()
if layout == '':
layout = 'us'
return cls(layout, 'en_US.UTF-8', 'UTF-8')
def json(self) -> dict[str, str]:
return {
'kb_layout': self.kb_layout,
'sys_lang': self.sys_lang,
'sys_enc': self.sys_enc,
}
def preview(self) -> str:
output = '{}: {}\n'.format(tr('Keyboard layout'), self.kb_layout)
output += '{}: {}\n'.format(tr('Locale language'), self.sys_lang)
output += '{}: {}'.format(tr('Locale encoding'), self.sys_enc)
return output
def _load_config(self, args: dict[str, str]) -> None:
if 'sys_lang' in args:
self.sys_lang = args['sys_lang']
if 'sys_enc' in args:
self.sys_enc = args['sys_enc']
if 'kb_layout' in args:
self.kb_layout = args['kb_layout']
@classmethod
def parse_arg(cls, args: dict[str, Any]) -> Self:
default = cls.default()
if 'locale_config' in args:
default._load_config(args['locale_config'])
else:
default._load_config(args)
return default
================================================
FILE: archinstall/lib/models/mirrors.py
================================================
from __future__ import annotations
import datetime
import http.client
import urllib.error
import urllib.parse
import urllib.request
from dataclasses import dataclass, field
from enum import Enum
from typing import TYPE_CHECKING, Any, Self, TypedDict, override
from pydantic import BaseModel, ValidationInfo, field_validator, model_validator
from archinstall.lib.models.packages import Repository
from archinstall.lib.networking import DownloadTimer, ping
from archinstall.lib.output import debug
if TYPE_CHECKING:
from archinstall.lib.mirror.mirror_handler import MirrorListHandler
class MirrorStatusEntryV3(BaseModel):
url: str
protocol: str
active: bool
country: str
country_code: str
isos: bool
ipv4: bool
ipv6: bool
details: str
delay: int | None = None
last_sync: datetime.datetime | None = None
duration_avg: float | None = None
duration_stddev: float | None = None
completion_pct: float | None = None
score: float | None = None
_latency: float | None = None
_speed: float | None = None
_hostname: str | None = None
_port: int | None = None
_speedtest_retries: int | None = None
@property
def server_url(self) -> str:
return f'{self.url}$repo/os/$arch'
@property
def speed(self) -> float:
if self._speed is None:
if not self._speedtest_retries:
self._speedtest_retries = 3
elif self._speedtest_retries < 1:
self._speedtest_retries = 1
retry = 0
while retry < self._speedtest_retries and self._speed is None:
debug(f'Checking download speed of {self._hostname}[{self.score}] by fetching: {self.url}core/os/x86_64/core.db')
req = urllib.request.Request(url=f'{self.url}core/os/x86_64/core.db')
try:
with urllib.request.urlopen(req, None, 5) as handle, DownloadTimer(timeout=5) as timer:
size = len(handle.read())
assert timer.time is not None
self._speed = size / timer.time
debug(f' speed: {self._speed} ({int(self._speed / 1024 / 1024 * 100) / 100}MiB/s)')
# Do not retry error
except urllib.error.URLError as error:
debug(f' speed: ({error}), skip')
self._speed = 0
# Do retry error
except (http.client.IncompleteRead, ConnectionResetError) as error:
debug(f' speed: ({error}), retry')
# Catch all
except Exception as error:
debug(f' speed: ({error}), skip')
self._speed = 0
retry += 1
if self._speed is None:
self._speed = 0
return self._speed
@property
def latency(self) -> float | None:
"""
Latency measures the milliseconds between one ICMP request & response.
It only does so once because we check if self._latency is None, and a ICMP timeout result in -1
We do this because some hosts blocks ICMP so we'll have to rely on .speed() instead which is slower.
"""
if self._latency is None:
debug(f'Checking latency for {self.url}')
assert self._hostname is not None
self._latency = ping(self._hostname, timeout=2)
debug(f' latency: {self._latency}')
return self._latency
@classmethod
@field_validator('score', mode='before')
def validate_score(cls, value: float) -> int | None:
if value is not None:
value = round(value)
debug(f' score: {value}')
return value
@model_validator(mode='after')
def debug_output(self, info: ValidationInfo) -> Self:
self._hostname, *port = urllib.parse.urlparse(self.url).netloc.split(':', 1)
self._port = int(port[0]) if port and len(port) >= 1 else None
if (ctx := info.context) and ctx.get('verbose'):
debug(f'Loaded mirror {self._hostname}' + (f' with current score of {self.score}' if self.score else ''))
return self
class MirrorStatusListV3(BaseModel):
cutoff: int
last_check: datetime.datetime
num_checks: int
urls: list[MirrorStatusEntryV3]
version: int
@model_validator(mode='before')
@classmethod
def check_model(
cls,
data: dict[str, int | datetime.datetime | list[MirrorStatusEntryV3]],
) -> dict[str, int | datetime.datetime | list[MirrorStatusEntryV3]]:
if data.get('version') == 3:
return data
raise ValueError('MirrorStatusListV3 only accepts version 3 data from https://archlinux.org/mirrors/status/json/')
@dataclass
class MirrorRegion:
name: str
urls: list[str]
def json(self) -> dict[str, list[str]]:
return {self.name: self.urls}
@override
def __eq__(self, other: object) -> bool:
if not isinstance(other, MirrorRegion):
return NotImplemented
return self.name == other.name
class SignCheck(Enum):
Never = 'Never'
Optional = 'Optional'
Required = 'Required'
class SignOption(Enum):
TrustedOnly = 'TrustedOnly'
TrustAll = 'TrustAll'
class _CustomRepositorySerialization(TypedDict):
name: str
url: str
sign_check: str
sign_option: str
@dataclass
class CustomRepository:
name: str
url: str
sign_check: SignCheck
sign_option: SignOption
def table_data(self) -> dict[str, str]:
return {
'Name': self.name,
'Url': self.url,
'Sign check': self.sign_check.value,
'Sign options': self.sign_option.value,
}
def json(self) -> _CustomRepositorySerialization:
return {
'name': self.name,
'url': self.url,
'sign_check': self.sign_check.value,
'sign_option': self.sign_option.value,
}
@classmethod
def parse_args(cls, args: list[dict[str, str]]) -> list[Self]:
configs = []
for arg in args:
configs.append(
cls(
arg['name'],
arg['url'],
SignCheck(arg['sign_check']),
SignOption(arg['sign_option']),
),
)
return configs
@dataclass
class CustomServer:
url: str
def table_data(self) -> dict[str, str]:
return {'Url': self.url}
def json(self) -> dict[str, str]:
return {'url': self.url}
@classmethod
def parse_args(cls, args: list[dict[str, str]]) -> list[Self]:
configs = []
for arg in args:
configs.append(
cls(arg['url']),
)
return configs
class _MirrorConfigurationSerialization(TypedDict):
mirror_regions: dict[str, list[str]]
custom_servers: list[CustomServer]
optional_repositories: list[str]
custom_repositories: list[_CustomRepositorySerialization]
@dataclass
class MirrorConfiguration:
mirror_regions: list[MirrorRegion] = field(default_factory=list)
custom_servers: list[CustomServer] = field(default_factory=list)
optional_repositories: list[Repository] = field(default_factory=list)
custom_repositories: list[CustomRepository] = field(default_factory=list)
@property
def region_names(self) -> str:
return '\n'.join(m.name for m in self.mirror_regions)
@property
def custom_server_urls(self) -> str:
return '\n'.join(s.url for s in self.custom_servers)
def json(self) -> _MirrorConfigurationSerialization:
regions = {}
for m in self.mirror_regions:
regions.update(m.json())
return {
'mirror_regions': regions,
'custom_servers': self.custom_servers,
'optional_repositories': [r.value for r in self.optional_repositories],
'custom_repositories': [c.json() for c in self.custom_repositories],
}
def custom_servers_config(self) -> str:
config = ''
if self.custom_servers:
config += '## Custom Servers\n'
for server in self.custom_servers:
config += f'Server = {server.url}\n'
return config.strip()
def regions_config(
self,
mirror_list_handler: MirrorListHandler,
speed_sort: bool = True,
) -> str:
config = ''
for mirror_region in self.mirror_regions:
sorted_stati = mirror_list_handler.get_status_by_region(
mirror_region.name,
speed_sort=speed_sort,
)
config += f'\n\n## {mirror_region.name}\n'
for status in sorted_stati:
config += f'Server = {status.server_url}\n'
return config
def repositories_config(self) -> str:
config = ''
for repo in self.custom_repositories:
config += f'\n\n[{repo.name}]\n'
config += f'SigLevel = {repo.sign_check.value} {repo.sign_option.value}\n'
config += f'Server = {repo.url}\n'
return config
@classmethod
def parse_args(
cls,
args: dict[str, Any],
backwards_compatible_repo: list[Repository] = [],
) -> Self:
config = cls()
mirror_regions = args.get('mirror_regions', [])
if mirror_regions:
for region, urls in mirror_regions.items():
config.mirror_regions.append(MirrorRegion(region, urls))
if args.get('custom_servers'):
config.custom_servers = CustomServer.parse_args(args['custom_servers'])
# backwards compatibility with the new custom_repository
if 'custom_mirrors' in args:
config.custom_repositories = CustomRepository.parse_args(args['custom_mirrors'])
if 'custom_repositories' in args:
config.custom_repositories = CustomRepository.parse_args(args['custom_repositories'])
if 'optional_repositories' in args:
config.optional_repositories = [Repository(r) for r in args['optional_repositories']]
if backwards_compatible_repo:
for r in backwards_compatible_repo:
if r not in config.optional_repositories:
config.optional_repositories.append(r)
return config
================================================
FILE: archinstall/lib/models/network.py
================================================
import re
from dataclasses import dataclass, field
from enum import Enum
from typing import NotRequired, Self, TypedDict, override
from archinstall.lib.output import debug
from archinstall.lib.translationhandler import tr
class NicType(Enum):
ISO = 'iso'
NM = 'nm'
NM_IWD = 'nm_iwd'
MANUAL = 'manual'
def display_msg(self) -> str:
match self:
case NicType.ISO:
return tr('Copy ISO network configuration to installation')
case NicType.NM:
return tr('Use Network Manager (default backend)')
case NicType.NM_IWD:
return tr('Use Network Manager (iwd backend)')
case NicType.MANUAL:
return tr('Manual configuration')
class _NicSerialization(TypedDict):
iface: str | None
ip: str | None
dhcp: bool
gateway: str | None
dns: list[str]
@dataclass
class Nic:
iface: str | None = None
ip: str | None = None
dhcp: bool = True
gateway: str | None = None
dns: list[str] = field(default_factory=list)
def table_data(self) -> dict[str, str | bool | list[str]]:
return {
'iface': self.iface if self.iface else '',
'ip': self.ip if self.ip else '',
'dhcp': self.dhcp,
'gateway': self.gateway if self.gateway else '',
'dns': self.dns,
}
def json(self) -> _NicSerialization:
return {
'iface': self.iface,
'ip': self.ip,
'dhcp': self.dhcp,
'gateway': self.gateway,
'dns': self.dns,
}
@classmethod
def parse_arg(cls, arg: _NicSerialization) -> Self:
return cls(
iface=arg.get('iface', None),
ip=arg.get('ip', None),
dhcp=arg.get('dhcp', True),
gateway=arg.get('gateway', None),
dns=arg.get('dns', []),
)
def as_systemd_config(self) -> str:
match: list[tuple[str, str]] = []
network: list[tuple[str, str]] = []
if self.iface:
match.append(('Name', self.iface))
if self.dhcp:
network.append(('DHCP', 'yes'))
else:
if self.ip:
network.append(('Address', self.ip))
if self.gateway:
network.append(('Gateway', self.gateway))
for dns in self.dns:
network.append(('DNS', dns))
config = {'Match': match, 'Network': network}
config_str = ''
for top, entries in config.items():
config_str += f'[{top}]\n'
config_str += '\n'.join(f'{k}={v}' for k, v in entries)
config_str += '\n\n'
return config_str
class _NetworkConfigurationSerialization(TypedDict):
type: str
nics: NotRequired[list[_NicSerialization]]
@dataclass
class NetworkConfiguration:
type: NicType
nics: list[Nic] = field(default_factory=list)
def json(self) -> _NetworkConfigurationSerialization:
config: _NetworkConfigurationSerialization = {'type': self.type.value}
if self.nics:
config['nics'] = [n.json() for n in self.nics]
return config
@classmethod
def parse_arg(cls, config: _NetworkConfigurationSerialization) -> Self | None:
nic_type = config.get('type', None)
if not nic_type:
return None
match NicType(nic_type):
case NicType.ISO:
return cls(NicType.ISO)
case NicType.NM:
return cls(NicType.NM)
case NicType.MANUAL:
nics_arg = config.get('nics', [])
if nics_arg:
nics = [Nic.parse_arg(n) for n in nics_arg]
return cls(NicType.MANUAL, nics)
return None
@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,
}
@classmethod
def from_wpa(cls, results: str) -> list[Self]:
entries = []
for line in results.splitlines():
line = line.strip()
if not line:
continue
parts = line.split()
if len(parts) != 5:
continue
wifi = cls(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[Self]:
"""
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(
cls(
network_id=int(parts[0]),
ssid=parts[1],
bssid=parts[2],
flags=flags,
)
)
except (ValueError, IndexError):
debug('Parsing error for network output')
return networks
@staticmethod
def _extract_flags(flag_string: str) -> list[str]:
pattern = r'\[([^\]]+)\]'
extracted_values = re.findall(pattern, flag_string)
return extracted_values
================================================
FILE: archinstall/lib/models/packages.py
================================================
from dataclasses import dataclass, field
from enum import Enum
from functools import cached_property
from typing import Any, Self, override
from pydantic import BaseModel
from archinstall.lib.translationhandler import tr
class Repository(Enum):
Core = 'core'
Extra = 'extra'
Multilib = 'multilib'
Testing = 'testing'
MultilibTesting = 'multilib-testing'
CoreTesting = 'core-testing'
ExtraTesting = 'extra-testing'
@dataclass
class PackageSearchResult:
pkgname: str
pkgbase: str
repo: str
arch: str
pkgver: str
pkgrel: str
epoch: int
pkgdesc: str
url: str
filename: str
compressed_size: int
installed_size: int
build_date: str
last_update: str
flag_date: str | None
maintainers: list[str]
packager: str
groups: list[str]
licenses: list[str]
conflicts: list[str]
provides: list[str]
replaces: list[str]
depends: list[str]
optdepends: list[str]
makedepends: list[str]
checkdepends: list[str]
@classmethod
def from_json(cls, data: dict[str, Any]) -> Self:
return cls(**data)
@property
def pkg_version(self) -> str:
return self.pkgver
@override
def __eq__(self, other: object) -> bool:
if not isinstance(other, PackageSearchResult):
return NotImplemented
return self.pkg_version == other.pkg_version
def __lt__(self, other: Self) -> bool:
return self.pkg_version < other.pkg_version
@dataclass
class PackageSearch:
version: int
limit: int
valid: bool
num_pages: int
page: int
results: list[PackageSearchResult]
@classmethod
def from_json(cls, data: dict[str, Any]) -> Self:
results = [PackageSearchResult.from_json(r) for r in data['results']]
return cls(
version=data['version'],
limit=data['limit'],
valid=data['valid'],
num_pages=data['num_pages'],
page=data['page'],
results=results,
)
class LocalPackage(BaseModel):
name: str
version: str
description: str
architecture: str
url: str
licenses: str
groups: str
@override
def __eq__(self, other: object) -> bool:
if not isinstance(other, LocalPackage):
return NotImplemented
return self.version == other.version
def __lt__(self, other: Self) -> bool:
return self.version < other.version
class AvailablePackage(BaseModel):
name: str
architecture: str
build_date: str
depends_on: str
description: str
download_size: str
groups: str
installed_size: str
licenses: str
optional_deps: str
packager: str
provides: str
replaces: str
repository: str
url: str
validated_by: str
version: str
@cached_property
def longest_key(self) -> int:
return max(len(key) for key in self.model_dump().keys())
# return all package info line by line
def info(self) -> str:
output = ''
for key, value in self.model_dump().items():
key = key.replace('_', ' ').capitalize()
key = key.ljust(self.longest_key)
output += f'{key} : {value}\n'
return output
@dataclass
class PackageGroup:
name: str
packages: list[str] = field(default_factory=list)
@classmethod
def from_available_packages(
cls,
packages: dict[str, AvailablePackage],
) -> dict[str, Self]:
pkg_groups: dict[str, Self] = {}
for pkg in packages.values():
if 'None' in pkg.groups:
continue
groups = pkg.groups.split(' ')
for group in groups:
# same group names have multiple spaces in between
if len(group) == 0:
continue
pkg_groups.setdefault(group, cls(group))
pkg_groups[group].packages.append(pkg.name)
return pkg_groups
def info(self) -> str:
output = tr('Package group:') + '\n - '
output += '\n - '.join(self.packages)
return output
================================================
FILE: archinstall/lib/models/profile.py
================================================
from __future__ import annotations
from dataclasses import dataclass
from typing import TYPE_CHECKING, Self, TypedDict
from archinstall.default_profiles.profile import GreeterType, Profile
from archinstall.lib.hardware import GfxDriver
if TYPE_CHECKING:
from archinstall.lib.profile.profiles_handler import ProfileSerialization
class _ProfileConfigurationSerialization(TypedDict):
profile: ProfileSerialization
gfx_driver: str | None
greeter: str | None
@dataclass
class ProfileConfiguration:
profile: Profile | None = None
gfx_driver: GfxDriver | None = None
greeter: GreeterType | None = None
def json(self) -> _ProfileConfigurationSerialization:
from archinstall.lib.profile.profiles_handler import profile_handler
return {
'profile': profile_handler.to_json(self.profile),
'gfx_driver': self.gfx_driver.value if self.gfx_driver else None,
'greeter': self.greeter.value if self.greeter else None,
}
@classmethod
def parse_arg(cls, arg: _ProfileConfigurationSerialization) -> Self:
from archinstall.lib.profile.profiles_handler import profile_handler
profile = profile_handler.parse_profile_config(arg['profile'])
greeter = arg.get('greeter', None)
gfx_driver = arg.get('gfx_driver', None)
return cls(
profile,
GfxDriver(gfx_driver) if gfx_driver else None,
GreeterType(greeter) if greeter else None,
)
================================================
FILE: archinstall/lib/models/users.py
================================================
from dataclasses import dataclass, field
from enum import Enum
from typing import NotRequired, Self, TypedDict, override
from archinstall.lib.crypt import crypt_yescrypt
from archinstall.lib.translationhandler import tr
class PasswordStrength(Enum):
VERY_WEAK = 'very weak'
WEAK = 'weak'
MODERATE = 'moderate'
STRONG = 'strong'
@property
@override
def value(self) -> str: # pylint: disable=invalid-overridden-method
match self:
case PasswordStrength.VERY_WEAK:
return tr('very weak')
case PasswordStrength.WEAK:
return tr('weak')
case PasswordStrength.MODERATE:
return tr('moderate')
case PasswordStrength.STRONG:
return tr('strong')
def color(self) -> str:
match self:
case PasswordStrength.VERY_WEAK:
return 'red'
case PasswordStrength.WEAK:
return 'red'
case PasswordStrength.MODERATE:
return 'yellow'
case PasswordStrength.STRONG:
return 'green'
@classmethod
def strength(cls, password: str) -> Self:
digit = any(character.isdigit() for character in password)
upper = any(character.isupper() for character in password)
lower = any(character.islower() for character in password)
symbol = any(not character.isalnum() for character in password)
return cls._check_password_strength(digit, upper, lower, symbol, len(password))
@classmethod
def _check_password_strength(
cls,
digit: bool,
upper: bool,
lower: bool,
symbol: bool,
length: int,
) -> Self:
# suggested evaluation
# https://github.com/archlinux/archinstall/issues/1304#issuecomment-1146768163
if digit and upper and lower and symbol:
match length:
case num if 13 <= num:
return cls.STRONG
case num if 11 <= num <= 12:
return cls.MODERATE
case num if 7 <= num <= 10:
return cls.WEAK
case num if num <= 6:
return cls.VERY_WEAK
elif digit and upper and lower:
match length:
case num if 14 <= num:
return cls.STRONG
case num if 11 <= num <= 13:
return cls.MODERATE
case num if 7 <= num <= 10:
return cls.WEAK
case num if num <= 6:
return cls.VERY_WEAK
elif upper and lower:
match length:
case num if 15 <= num:
return cls.STRONG
case num if 12 <= num <= 14:
return cls.MODERATE
case num if 7 <= num <= 11:
return cls.WEAK
case num if num <= 6:
return cls.VERY_WEAK
elif lower or upper:
match length:
case num if 18 <= num:
return cls.STRONG
case num if 14 <= num <= 17:
return cls.MODERATE
case num if 9 <= num <= 13:
return cls.WEAK
case num if num <= 8:
return cls.VERY_WEAK
return cls.VERY_WEAK
UserSerialization = TypedDict(
'UserSerialization',
{
'username': str,
'!password': NotRequired[str],
'sudo': bool,
'groups': list[str],
'enc_password': str | None,
},
)
class Password:
def __init__(
self,
plaintext: str = '',
enc_password: str | None = None,
):
if plaintext:
enc_password = crypt_yescrypt(plaintext)
if not plaintext and not enc_password:
raise ValueError('Either plaintext or enc_password must be provided')
self._plaintext = plaintext
self.enc_password = enc_password
@property
def plaintext(self) -> str:
return self._plaintext
@plaintext.setter
def plaintext(self, value: str) -> None:
self._plaintext = value
self.enc_password = crypt_yescrypt(value)
@override
def __eq__(self, other: object) -> bool:
if not isinstance(other, Password):
return NotImplemented
if self._plaintext and other._plaintext:
return self._plaintext == other._plaintext
return self.enc_password == other.enc_password
def hidden(self) -> str:
if self._plaintext:
return '*' * len(self._plaintext)
else:
return '*' * 8
@dataclass
class User:
username: str
password: Password
sudo: bool
groups: list[str] = field(default_factory=list)
@override
def __str__(self) -> str:
# safety overwrite to make sure password is not leaked
return f'User({self.username=}, {self.sudo=}, {self.groups=})'
def table_data(self) -> dict[str, str | bool | list[str]]:
return {
'username': self.username,
'password': self.password.hidden(),
'sudo': self.sudo,
'groups': self.groups,
}
def json(self) -> UserSerialization:
return {
'username': self.username,
'enc_password': self.password.enc_password,
'sudo': self.sudo,
'groups': self.groups,
}
@classmethod
def parse_arguments(
cls,
args: list[UserSerialization],
) -> list[Self]:
users = []
for entry in args:
username = entry.get('username')
password: Password | None = None
groups = entry.get('groups', [])
plaintext = entry.get('!password')
enc_password = entry.get('enc_password')
# DEPRECATED: backwards compatibility
if plaintext:
password = Password(plaintext=plaintext)
elif enc_password:
password = Password(enc_password=enc_password)
if not username or password is None:
continue
user = cls(
username=username,
password=password,
sudo=entry.get('sudo', False) is True,
groups=groups,
)
users.append(user)
return users
================================================
FILE: archinstall/lib/network/__init__.py
================================================
================================================
FILE: archinstall/lib/network/network_handler.py
================================================
from archinstall.lib.installer import Installer
from archinstall.lib.models.network import NetworkConfiguration, NicType
from archinstall.lib.models.profile import ProfileConfiguration
def install_network_config(
network_config: NetworkConfiguration,
installation: Installer,
profile_config: ProfileConfiguration | None = None,
) -> None:
match network_config.type:
case NicType.ISO:
_ = installation.copy_iso_network_config(
enable_services=True, # Sources the ISO network configuration to the install medium.
)
case NicType.NM | NicType.NM_IWD:
packages = ['networkmanager']
if network_config.type == NicType.NM:
packages.append('wpa_supplicant')
else:
packages.append('iwd')
if profile_config and profile_config.profile:
if profile_config.profile.is_desktop_profile():
packages.append('network-manager-applet')
installation.add_additional_packages(packages)
installation.enable_service('NetworkManager.service')
if network_config.type == NicType.NM_IWD:
_configure_nm_iwd(installation)
installation.disable_service('iwd.service')
case NicType.MANUAL:
for nic in network_config.nics:
installation.configure_nic(nic)
installation.enable_service('systemd-networkd')
installation.enable_service('systemd-resolved')
def _configure_nm_iwd(installation: Installer) -> None:
nm_conf_dir = installation.target / 'etc/NetworkManager/conf.d'
nm_conf_dir.mkdir(parents=True, exist_ok=True)
iwd_backend_conf = nm_conf_dir / 'wifi_backend.conf'
_ = iwd_backend_conf.write_text('[device]\nwifi.backend=iwd\n')
================================================
FILE: archinstall/lib/network/network_menu.py
================================================
import ipaddress
from typing import assert_never, override
from archinstall.lib.menu.helpers import Input, Selection
from archinstall.lib.menu.list_manager import ListManager
from archinstall.lib.models.network import NetworkConfiguration, Nic, NicType
from archinstall.lib.networking import list_interfaces
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType
class ManualNetworkConfig(ListManager[Nic]):
def __init__(self, prompt: str, preset: list[Nic]):
self._actions = [
tr('Add interface'),
tr('Edit interface'),
tr('Delete interface'),
]
super().__init__(
preset,
[self._actions[0]],
self._actions[1:],
prompt,
)
async def show(self) -> list[Nic] | None:
return await super()._run()
@override
def selected_action_display(self, selection: Nic) -> str:
return selection.iface if selection.iface else ''
@override
async def handle_action(self, action: str, entry: Nic | None, data: list[Nic]) -> list[Nic]:
if action == self._actions[0]: # add
iface = await self._select_iface(data)
if iface:
nic = Nic(iface=iface)
nic = await self._edit_iface(nic)
data += [nic]
elif entry:
if action == self._actions[1]: # edit interface
data = [d for d in data if d.iface != entry.iface]
nic = await self._edit_iface(entry)
data.append(nic)
elif action == self._actions[2]: # delete
data = [d for d in data if d != entry]
return data
async def _select_iface(self, data: list[Nic]) -> str | None:
all_ifaces = list_interfaces().values()
existing_ifaces = [d.iface for d in data]
available = set(all_ifaces) - set(existing_ifaces)
if not available:
return None
if not available:
return None
items = [MenuItem(i, value=i) for i in available]
group = MenuItemGroup(items, sort_items=True)
result = await Selection[str](
group,
header=tr('Select an interface'),
allow_skip=True,
).show()
match result.type_:
case ResultType.Skip:
return None
case ResultType.Selection:
return result.get_value()
case ResultType.Reset:
raise ValueError('Unhandled result type')
async def _get_ip_address(self, header: str, allow_skip: bool, multi: bool, preset: str | None = None, allow_empty: bool = False) -> str | None:
def validator(ip: str | None) -> str | None:
failure = tr('You need to enter a valid IP in IP-config mode')
if not ip:
if allow_empty:
return None
return failure
if multi:
ips = ip.split(' ')
else:
ips = [ip]
try:
for ip in ips:
ipaddress.ip_interface(ip)
return None
except ValueError:
return failure
result = await Input(
header=header,
validator_callback=validator,
allow_skip=allow_skip,
default_value=preset,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Selection:
return result.get_value()
case ResultType.Reset:
raise ValueError('Unhandled result type')
async def _edit_iface(self, edit_nic: Nic) -> Nic:
iface_name = edit_nic.iface
modes = ['DHCP (auto detect)', 'IP (static)']
default_mode = 'DHCP (auto detect)'
header = tr('Select which mode to configure for "{}"').format(iface_name)
items = [MenuItem(m, value=m) for m in modes]
group = MenuItemGroup(items, sort_items=True)
group.set_default_by_value(default_mode)
result = await Selection[str](
group,
header=header,
allow_skip=False,
).show()
match result.type_:
case ResultType.Selection:
mode = result.get_value()
case ResultType.Reset:
raise ValueError('Unhandled result type')
case ResultType.Skip:
raise ValueError('The mode menu should not be skippable')
case _:
assert_never(result.type_)
if mode == 'IP (static)':
header = tr('Enter the IP and subnet for {} (example: 192.168.0.5/24): ').format(iface_name) + '\n'
ip = await self._get_ip_address(header, False, False)
header = tr('Enter your gateway (router) IP address (leave blank for none)') + '\n'
gateway = await self._get_ip_address(header, True, False, allow_empty=True)
if edit_nic.dns:
display_dns = ' '.join(edit_nic.dns)
else:
display_dns = None
header = tr('Enter your DNS servers with space separated (leave blank for none)') + '\n'
dns_servers = await self._get_ip_address(header, True, True, display_dns, allow_empty=True)
dns = []
if dns_servers is not None:
dns = dns_servers.split(' ')
return Nic(iface=iface_name, ip=ip, gateway=gateway, dns=dns, dhcp=False)
else:
# this will contain network iface names
return Nic(iface=iface_name)
async def select_network(preset: NetworkConfiguration | None) -> NetworkConfiguration | None:
"""
Configure the network on the newly installed system
"""
items = [MenuItem(n.display_msg(), value=n) for n in NicType]
group = MenuItemGroup(items, sort_items=True)
if preset:
group.set_selected_by_value(preset.type)
result = await Selection[NicType](
group,
header=tr('Choose network configuration'),
allow_reset=True,
allow_skip=True,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Reset:
return None
case ResultType.Selection:
config = result.get_value()
match config:
case NicType.ISO:
return NetworkConfiguration(NicType.ISO)
case NicType.NM:
return NetworkConfiguration(NicType.NM)
case NicType.NM_IWD:
return NetworkConfiguration(NicType.NM_IWD)
case NicType.MANUAL:
preset_nics = preset.nics if preset else []
nics = await ManualNetworkConfig(tr('Configure interfaces'), preset_nics).show()
if nics:
return NetworkConfiguration(NicType.MANUAL, nics)
return preset
================================================
FILE: archinstall/lib/network/wifi_handler.py
================================================
from asyncio import sleep
from dataclasses import dataclass
from pathlib import Path
from typing import assert_never, override
from archinstall.lib.command import SysCommand
from archinstall.lib.exceptions import SysCallError
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.ui.components import ConfirmationScreen, InputScreen, InstanceRunnable, LoadingScreen, NotifyScreen, TableSelectionScreen, tui
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import Result, ResultType
@dataclass
class WpaCliResult:
success: bool
response: str | None = None
error: str | None = None
class WifiHandler(InstanceRunnable[bool]):
def __init__(self) -> None:
self._wpa_config: WpaSupplicantConfig = WpaSupplicantConfig()
@override
async def run(self) -> bool | 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')
return False
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.get_value() is False:
return False
case ResultType.Skip | ResultType.Reset:
return False
setup_result = await self._setup_wifi(wifi_iface)
return 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() -> MenuItemGroup:
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 MenuItemGroup([])
await sleep(5)
wifi_networks = self._get_scan_results(wifi_iface)
items = [MenuItem(network.ssid, value=network) for network in wifi_networks]
return MenuItemGroup(items)
result = await TableSelectionScreen[WifiNetwork](
header=tr('Select wifi network to connect to'),
loading_header=tr('Scanning wifi networks...'),
group_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(Result.false())
return False
network = result.get_value()
case ResultType.Skip | ResultType.Reset:
tui.exit(Result.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(timer=3, header='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(timer=5, header='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.get_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
================================================
FILE: archinstall/lib/network/wpa_supplicant.py
================================================
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
================================================
FILE: archinstall/lib/networking.py
================================================
import os
import random
import select
import signal
import socket
import ssl
import struct
import time
from types import FrameType, TracebackType
from typing import Self
from urllib.error import URLError
from urllib.parse import urlencode
from urllib.request import urlopen
from archinstall.lib.exceptions import DownloadTimeout, SysCallError
from archinstall.lib.output import debug, error, info
from archinstall.lib.pacman.pacman import Pacman
class DownloadTimer:
"""
Context manager for timing downloads with timeouts.
"""
def __init__(self, timeout: int = 5):
"""
Args:
timeout:
The download timeout in seconds. The DownloadTimeout exception
will be raised in the context after this many seconds.
"""
self.time: float | None = None
self.start_time: float | None = None
self.timeout = timeout
self.previous_handler = None
self.previous_timer: int | None = None
def raise_timeout(self, signl: int, frame: FrameType | None) -> None:
"""
Raise the DownloadTimeout exception.
"""
raise DownloadTimeout(f'Download timed out after {self.timeout} second(s).')
def __enter__(self) -> Self:
if self.timeout > 0:
self.previous_handler = signal.signal(signal.SIGALRM, self.raise_timeout) # type: ignore[assignment]
self.previous_timer = signal.alarm(self.timeout)
self.start_time = time.time()
return self
def __exit__(self, exc_type: type[BaseException] | None, exc_value: BaseException | None, traceback: TracebackType | None) -> None:
if self.start_time:
time_delta = time.time() - self.start_time
signal.alarm(0)
self.time = time_delta
if self.timeout > 0:
signal.signal(signal.SIGALRM, self.previous_handler)
previous_timer = self.previous_timer
if previous_timer and previous_timer > 0:
remaining_time = int(previous_timer - time_delta)
# The alarm should have been raised during the download.
if remaining_time <= 0:
signal.raise_signal(signal.SIGALRM)
else:
signal.alarm(remaining_time)
self.start_time = None
def get_hw_addr(ifname: str) -> str:
import fcntl
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
ret = fcntl.ioctl(s.fileno(), 0x8927, struct.pack('256s', bytes(ifname, 'utf-8')[:15]))
return ':'.join(f'{b:02x}' for b in ret[18:24])
def list_interfaces(skip_loopback: bool = True) -> dict[str, str]:
interfaces = {}
for _index, iface in socket.if_nameindex():
if skip_loopback and iface == 'lo':
continue
mac = get_hw_addr(iface).replace(':', '-').lower()
interfaces[mac] = iface
return interfaces
def update_keyring() -> bool:
info('Updating archlinux-keyring ...')
try:
Pacman.run('-Sy --noconfirm archlinux-keyring')
return True
except SysCallError:
if os.geteuid() != 0:
error("update_keyring() uses 'pacman -Sy archlinux-keyring' which requires root.")
return False
def enrich_iface_types(interfaces: list[str]) -> dict[str, str]:
result = {}
for iface in interfaces:
if os.path.isdir(f'/sys/class/net/{iface}/bridge/'):
result[iface] = 'BRIDGE'
elif os.path.isfile(f'/sys/class/net/{iface}/tun_flags'):
# ethtool -i {iface}
result[iface] = 'TUN/TAP'
elif os.path.isdir(f'/sys/class/net/{iface}/device'):
if os.path.isdir(f'/sys/class/net/{iface}/wireless/'):
result[iface] = 'WIRELESS'
else:
result[iface] = 'PHYSICAL'
else:
result[iface] = 'UNKNOWN'
return result
def fetch_data_from_url(url: str, params: dict[str, str] | None = None, timeout: int = 30) -> str:
ssl_context = ssl.create_default_context()
ssl_context.check_hostname = False
ssl_context.verify_mode = ssl.CERT_NONE
if params is not None:
encoded = urlencode(params)
full_url = f'{url}?{encoded}'
else:
full_url = url
try:
response = urlopen(full_url, context=ssl_context, timeout=timeout)
data = response.read().decode('UTF-8')
return data
except URLError as e:
raise ValueError(f'Unable to fetch data from url: {url}\n{e}')
except Exception as e:
raise ValueError(f'Unexpected error when parsing response: {e}')
def calc_checksum(icmp_packet: bytes) -> int:
# Calculate the ICMP checksum
checksum = 0
for i in range(0, len(icmp_packet), 2):
checksum += (icmp_packet[i] << 8) + (struct.unpack('B', icmp_packet[i + 1 : i + 2])[0] if len(icmp_packet[i + 1 : i + 2]) else 0)
checksum = (checksum >> 16) + (checksum & 0xFFFF)
checksum = ~checksum & 0xFFFF
return checksum
def build_icmp(payload: bytes) -> bytes:
# Define the ICMP Echo Request packet
icmp_packet = struct.pack('!BBHHH', 8, 0, 0, 0, 1) + payload
checksum = calc_checksum(icmp_packet)
return struct.pack('!BBHHH', 8, 0, checksum, 0, 1) + payload
def ping(hostname: str, timeout: int = 5) -> int:
watchdog = select.epoll()
started = time.time()
random_identifier = f'archinstall-{random.randint(1000, 9999)}'.encode()
# Create a raw socket (requires root, which should be fine on archiso)
icmp_socket = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_ICMP)
watchdog.register(icmp_socket, select.EPOLLIN | select.EPOLLHUP)
icmp_packet = build_icmp(random_identifier)
# Send the ICMP packet
icmp_socket.sendto(icmp_packet, (hostname, 0))
latency = -1
# Gracefully wait for X amount of time
# for a ICMP response or exit with no latency
while latency == -1 and time.time() - started < timeout:
try:
for _fileno, _event in watchdog.poll(0.1):
response, _ = icmp_socket.recvfrom(1024)
icmp_type = struct.unpack('!B', response[20:21])[0]
# Check if it's an Echo Reply (ICMP type 0)
if icmp_type == 0 and response[-len(random_identifier) :] == random_identifier:
latency = round((time.time() - started) * 1000)
break
except OSError as e:
debug(f'Error: {e}')
break
icmp_socket.close()
return latency
================================================
FILE: archinstall/lib/output.py
================================================
import logging
import os
import sys
from collections.abc import Callable
from dataclasses import asdict, is_dataclass
from datetime import UTC, datetime
from enum import Enum
from pathlib import Path
from typing import TYPE_CHECKING, Any
from archinstall.lib.utils.encoding import unicode_ljust, unicode_rjust
if TYPE_CHECKING:
from _typeshed import DataclassInstance
class FormattedOutput:
@staticmethod
def _get_values(
o: 'DataclassInstance',
class_formatter: str | Callable | None = None, # type: ignore[type-arg]
filter_list: list[str] = [],
) -> dict[str, Any]:
"""
the original values returned a dataclass as dict thru the call to some specific methods
this version allows thru the parameter class_formatter to call a dynamically selected formatting method.
Can transmit a filter list to the class_formatter,
"""
if class_formatter:
# if invoked per reference it has to be a standard function or a classmethod.
# A method of an instance does not make sense
if callable(class_formatter):
return class_formatter(o, filter_list)
# if is invoked by name we restrict it to a method of the class. No need to mess more
elif hasattr(o, class_formatter) and callable(getattr(o, class_formatter)):
func = getattr(o, class_formatter)
return func(filter_list)
raise ValueError('Unsupported formatting call')
elif hasattr(o, 'table_data'):
return o.table_data()
elif hasattr(o, 'json'):
return o.json()
elif is_dataclass(o):
return asdict(o)
else:
return o.__dict__ # type: ignore[unreachable]
@classmethod
def as_table(
cls,
obj: list[Any],
class_formatter: str | Callable | None = None, # type: ignore[type-arg]
filter_list: list[str] = [],
capitalize: bool = False,
) -> str:
"""variant of as_table (subtly different code) which has two additional parameters
filter which is a list of fields which will be shown
class_formatter a special method to format the outgoing data
A general comment, the format selected for the output (a string where every data record is separated by newline)
is for compatibility with a print statement
As_table_filter can be a drop in replacement for as_table
"""
raw_data = [cls._get_values(o, class_formatter, filter_list) for o in obj]
# determine the maximum column size
column_width: dict[str, int] = {}
for o in raw_data:
for k, v in o.items():
if not filter_list or k in filter_list:
column_width.setdefault(k, 0)
column_width[k] = max([column_width[k], len(str(v)), len(k)])
if not filter_list:
filter_list = list(column_width.keys())
# create the header lines
output = ''
key_list = []
for key in filter_list:
width = column_width[key]
key = key.replace('!', '').replace('_', ' ')
if capitalize:
key = key.capitalize()
key_list.append(unicode_ljust(key, width))
output += ' | '.join(key_list) + '\n'
output += '-' * len(output) + '\n'
# create the data lines
for record in raw_data:
obj_data = []
for key in filter_list:
width = column_width.get(key, len(key))
value = record.get(key, '')
if '!' in key:
value = '*' * len(value)
if isinstance(value, (int, float)) or (isinstance(value, str) and value.isnumeric()):
obj_data.append(unicode_rjust(str(value), width))
else:
obj_data.append(unicode_ljust(str(value), width))
output += ' | '.join(obj_data) + '\n'
return output
@staticmethod
def as_columns(entries: list[str], cols: int) -> str:
"""
Will format a list into a given number of columns
"""
chunks = []
output = ''
for i in range(0, len(entries), cols):
chunks.append(entries[i : i + cols])
for row in chunks:
out_fmt = '{: <30} ' * len(row)
output += out_fmt.format(*row) + '\n'
return output
class Journald:
@staticmethod
def log(message: str, level: int = logging.DEBUG) -> None:
try:
import systemd.journal # type: ignore[import-not-found]
except ModuleNotFoundError:
return None
log_adapter = logging.getLogger('archinstall')
log_fmt = logging.Formatter('[%(levelname)s]: %(message)s')
log_ch = systemd.journal.JournalHandler()
log_ch.setFormatter(log_fmt)
log_adapter.addHandler(log_ch)
log_adapter.setLevel(logging.DEBUG)
log_adapter.log(level, message)
class Logger:
def __init__(self, path: Path = Path('/var/log/archinstall')) -> None:
self._path = path
@property
def path(self) -> Path:
return self._path / 'install.log'
@property
def directory(self) -> Path:
return self._path
def _check_permissions(self) -> None:
log_file = self.path
try:
self._path.mkdir(exist_ok=True, parents=True)
log_file.touch(exist_ok=True)
with log_file.open('a') as f:
f.write('')
except PermissionError:
# Fallback to creating the log file in the current folder
logger._path = Path('./').absolute()
warn(f'Not enough permission to place log file at {log_file}, creating it in {logger.path} instead')
def log(self, level: int, content: str) -> None:
self._check_permissions()
with self.path.open('a') as f:
ts = _timestamp()
level_name = logging.getLevelName(level)
f.write(f'[{ts}] - {level_name} - {content}\n')
logger = Logger()
def _supports_color() -> bool:
"""
Found first reference here:
https://stackoverflow.com/questions/7445658/how-to-detect-if-the-console-does-support-ansi-escape-codes-in-python
And re-used this:
https://github.com/django/django/blob/master/django/core/management/color.py#L12
Return True if the running system's terminal supports color,
and False otherwise.
"""
supported_platform = sys.platform != 'win32' or 'ANSICON' in os.environ
# isatty is not always implemented, #6223.
is_a_tty = hasattr(sys.stdout, 'isatty') and sys.stdout.isatty()
return supported_platform and is_a_tty
class Font(Enum):
bold = '1'
italic = '3'
underscore = '4'
blink = '5'
reverse = '7'
conceal = '8'
def _stylize_output(
text: str,
fg: str,
bg: str | None,
reset: bool,
font: list[Font] = [],
) -> str:
"""
Heavily influenced by:
https://github.com/django/django/blob/ae8338daf34fd746771e0678081999b656177bae/django/utils/termcolors.py#L13
Color options here:
https://askubuntu.com/questions/528928/how-to-do-underline-bold-italic-strikethrough-color-background-and-size-i
Adds styling to a text given a set of color arguments.
"""
colors = {
'black': '0',
'red': '1',
'green': '2',
'yellow': '3',
'blue': '4',
'magenta': '5',
'cyan': '6',
'white': '7',
'teal': '8;5;109', # Extended 256-bit colors (not always supported)
'orange': '8;5;208', # https://www.lihaoyi.com/post/BuildyourownCommandLinewithANSIescapecodes.html#256-colors
'darkorange': '8;5;202',
'gray': '8;5;246',
'grey': '8;5;246',
'darkgray': '8;5;240',
'lightgray': '8;5;256',
}
foreground = {key: f'3{colors[key]}' for key in colors}
background = {key: f'4{colors[key]}' for key in colors}
code_list = []
if text == '' and reset:
return '\x1b[0m'
code_list.append(foreground[str(fg)])
if bg:
code_list.append(background[str(bg)])
for o in font:
code_list.append(o.value)
ansi = ';'.join(code_list)
return f'\033[{ansi}m{text}\033[0m'
def info(
*msgs: str,
level: int = logging.INFO,
fg: str = 'white',
bg: str | None = None,
reset: bool = False,
font: list[Font] = [],
) -> None:
log(*msgs, level=level, fg=fg, bg=bg, reset=reset, font=font)
def _timestamp() -> str:
now = datetime.now(tz=UTC)
return now.strftime('%Y-%m-%d %H:%M:%S')
def debug(
*msgs: str,
level: int = logging.DEBUG,
fg: str = 'white',
bg: str | None = None,
reset: bool = False,
font: list[Font] = [],
) -> None:
log(*msgs, level=level, fg=fg, bg=bg, reset=reset, font=font)
def error(
*msgs: str,
level: int = logging.ERROR,
fg: str = 'red',
bg: str | None = None,
reset: bool = False,
font: list[Font] = [],
) -> None:
log(*msgs, level=level, fg=fg, bg=bg, reset=reset, font=font)
def warn(
*msgs: str,
level: int = logging.WARNING,
fg: str = 'yellow',
bg: str | None = None,
reset: bool = False,
font: list[Font] = [],
) -> None:
log(*msgs, level=level, fg=fg, bg=bg, reset=reset, font=font)
def log(
*msgs: str,
level: int = logging.INFO,
fg: str = 'white',
bg: str | None = None,
reset: bool = False,
font: list[Font] = [],
) -> None:
text = ' '.join(str(x) for x in msgs)
logger.log(level, text)
# Attempt to colorize the output if supported
# Insert default colors and override with **kwargs
if _supports_color():
text = _stylize_output(text, fg, bg, reset, font)
Journald.log(text, level=level)
if level != logging.DEBUG:
print(text)
================================================
FILE: archinstall/lib/packages/__init__.py
================================================
================================================
FILE: archinstall/lib/packages/packages.py
================================================
from functools import lru_cache
from archinstall.lib.exceptions import SysCallError
from archinstall.lib.menu.helpers import Loading, Notify, Selection
from archinstall.lib.models.packages import AvailablePackage, LocalPackage, PackageGroup, Repository
from archinstall.lib.output import debug
from archinstall.lib.pacman.pacman import Pacman
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType
def installed_package(package: str) -> LocalPackage | None:
try:
package_info = []
for line in Pacman.run(f'-Q --info {package}'):
package_info.append(line.decode().strip())
return _parse_package_output(package_info, LocalPackage)
except SysCallError:
pass
return None
@lru_cache
def check_package_upgrade(package: str) -> str | None:
try:
for line in Pacman.run(f'-Qu {package}'):
return line.decode().strip()
except SysCallError:
debug(f'Failed to check for package upgrades: {package}')
return None
@lru_cache
def list_available_packages(
repositories: tuple[Repository, ...],
) -> dict[str, AvailablePackage]:
"""
Returns a list of all available packages in the database
"""
packages: dict[str, AvailablePackage] = {}
current_package: list[str] = []
filtered_repos = [repo.value for repo in repositories]
try:
Pacman.run('-Sy')
except Exception as e:
debug(f'Failed to sync Arch Linux package database: {e}')
for line in Pacman.run('-S --info'):
dec_line = line.decode().strip()
current_package.append(dec_line)
if dec_line.startswith('Validated'):
if current_package:
avail_pkg = _parse_package_output(current_package, AvailablePackage)
if avail_pkg.repository in filtered_repos:
packages[avail_pkg.name] = avail_pkg
current_package = []
return packages
@lru_cache(maxsize=128)
def _normalize_key_name(key: str) -> str:
return key.strip().lower().replace(' ', '_')
def _parse_package_output[PackageType: (AvailablePackage, LocalPackage)](
package_meta: list[str],
cls: type[PackageType],
) -> PackageType:
package = {}
for line in package_meta:
if ':' in line:
key, value = line.split(':', 1)
key = _normalize_key_name(key)
package[key] = value.strip()
return cls.model_validate(package)
async def select_additional_packages(
preset: list[str] = [],
repositories: set[Repository] = set(),
) -> list[str]:
repositories |= {Repository.Core, Repository.Extra}
respos_text = ', '.join(r.value for r in repositories)
output = tr('Repositories: {}').format(respos_text) + '\n'
output += tr('Loading packages...')
result = await Loading[dict[str, AvailablePackage]](
header=output,
data_callback=lambda: list_available_packages(tuple(repositories)),
).show()
if result.type_ != ResultType.Selection:
debug('Error while loading packages')
return preset
packages = result.get_value()
if not packages:
await Notify(tr('No packages found')).show()
return []
package_groups = PackageGroup.from_available_packages(packages)
# Additional packages (with some light weight error handling for invalid package names)
header = tr('Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed.') + '\n'
header += tr('Note: base-devel is no longer installed by default. Add it here if you need build tools.') + '\n'
header += tr('Select any packages from the below list that should be installed additionally') + '\n'
# there are over 15k packages so this needs to be quick
preset_packages: list[AvailablePackage | PackageGroup] = []
for p in preset:
if p in packages:
preset_packages.append(packages[p])
elif p in package_groups:
preset_packages.append(package_groups[p])
items = [
MenuItem(
name,
value=pkg,
preview_action=lambda x: x.value.info() if x.value else None,
)
for name, pkg in packages.items()
]
items += [
MenuItem(
name,
value=group,
preview_action=lambda x: x.value.info() if x.value else None,
)
for name, group in package_groups.items()
]
menu_group = MenuItemGroup(items, sort_items=True)
menu_group.set_selected_by_value(preset_packages)
pck_result = await Selection[AvailablePackage | PackageGroup](
menu_group,
header=header,
allow_reset=True,
allow_skip=True,
multi=True,
preview_location='right',
enable_filter=True,
).show()
match pck_result.type_:
case ResultType.Skip:
return preset
case ResultType.Reset:
return []
case ResultType.Selection:
selected_pacakges = pck_result.get_values()
return [pkg.name for pkg in selected_pacakges]
================================================
FILE: archinstall/lib/packages/util.py
================================================
from functools import lru_cache
from archinstall.lib.output import debug
from archinstall.lib.packages.packages import check_package_upgrade
@lru_cache(maxsize=128)
def check_version_upgrade() -> str | None:
debug('Checking version')
upgrade = None
upgrade = check_package_upgrade('archinstall')
if upgrade is None:
debug('No archinstall upgrades found')
return None
debug(f'Archinstall latest: {upgrade}')
return upgrade
================================================
FILE: archinstall/lib/pacman/__init__.py
================================================
================================================
FILE: archinstall/lib/pacman/config.py
================================================
import re
from pathlib import Path
from shutil import copy2
from archinstall.lib.models.packages import Repository
class PacmanConfig:
def __init__(self, target: Path | None):
self._config_path = Path('/etc') / 'pacman.conf'
self._config_remote_path: Path | None = None
if target:
self._config_remote_path = target / 'etc' / 'pacman.conf'
self._repositories: list[Repository] = []
def enable(self, repo: Repository | list[Repository]) -> None:
if not isinstance(repo, list):
repo = [repo]
self._repositories += repo
def apply(self) -> None:
if not self._repositories:
return
repos_to_enable = []
for repo in self._repositories:
if repo == Repository.Testing:
repos_to_enable.extend(['core-testing', 'extra-testing', 'multilib-testing'])
else:
repos_to_enable.append(repo.value)
content = self._config_path.read_text().splitlines(keepends=True)
for row, line in enumerate(content):
# Check if this is a commented repository section that needs to be enabled
match = re.match(r'^#\s*\[(.*)\]', line)
if match and match.group(1) in repos_to_enable:
# uncomment the repository section line, properly removing # and any spaces
content[row] = re.sub(r'^#\s*', '', line)
# also uncomment the next line (Include statement) if it exists and is commented
if row + 1 < len(content) and content[row + 1].lstrip().startswith('#'):
content[row + 1] = re.sub(r'^#\s*', '', content[row + 1])
# Write the modified content back to the file
with open(self._config_path, 'w') as f:
f.writelines(content)
def persist(self) -> None:
if self._repositories and self._config_remote_path:
copy2(self._config_path, self._config_remote_path)
================================================
FILE: archinstall/lib/pacman/pacman.py
================================================
import sys
import time
from collections.abc import Callable
from pathlib import Path
from archinstall.lib.command import SysCommand
from archinstall.lib.exceptions import RequirementError
from archinstall.lib.output import error, info, warn
from archinstall.lib.plugins import plugins
from archinstall.lib.translationhandler import tr
class Pacman:
def __init__(self, target: Path, silent: bool = False):
self.synced = False
self.silent = silent
self.target = target
@staticmethod
def run(args: str, default_cmd: str = 'pacman') -> SysCommand:
"""
A centralized function to call `pacman` from.
It also protects us from colliding with other running pacman sessions (if used locally).
The grace period is set to 10 minutes before exiting hard if another pacman instance is running.
"""
pacman_db_lock = Path('/var/lib/pacman/db.lck')
if pacman_db_lock.exists():
warn(tr('Pacman is already running, waiting maximum 10 minutes for it to terminate.'))
started = time.time()
while pacman_db_lock.exists():
time.sleep(0.25)
if time.time() - started > (60 * 10):
error(tr('Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall.'))
sys.exit(1)
return SysCommand(f'{default_cmd} {args}')
def ask(self, error_message: str, bail_message: str, func: Callable, *args, **kwargs) -> None: # type: ignore[no-untyped-def, type-arg]
while True:
try:
func(*args, **kwargs)
break
except Exception as err:
error(f'{error_message}: {err}')
if not self.silent and input('Would you like to re-try this download? (Y/n): ').lower().strip() in 'y':
continue
raise RequirementError(f'{bail_message}: {err}')
def sync(self) -> None:
if self.synced:
return
self.ask(
'Could not sync a new package database',
'Could not sync mirrors',
self.run,
'-Syy',
default_cmd='pacman',
)
self.synced = True
def strap(self, packages: str | list[str]) -> None:
self.sync()
if isinstance(packages, str):
packages = [packages]
for plugin in plugins.values():
if hasattr(plugin, 'on_pacstrap'):
if result := plugin.on_pacstrap(packages):
packages = result
info(f'Installing packages: {packages}')
self.ask(
'Could not strap in packages',
'Pacstrap failed. See /var/log/archinstall/install.log or above message for error details',
SysCommand,
f'pacstrap -C /etc/pacman.conf -K {self.target} {" ".join(packages)} --noconfirm --needed',
peek_output=True,
)
================================================
FILE: archinstall/lib/plugins.py
================================================
import hashlib
import importlib.util
import os
import sys
import urllib.parse
import urllib.request
from importlib import metadata
from pathlib import Path
from archinstall.lib.output import error, info, warn
from archinstall.lib.version import get_version
plugins = {}
# 1: List archinstall.plugin definitions
# 2: Load the plugin entrypoint
# 3: Initiate the plugin and store it as .name in plugins
for plugin_definition in metadata.entry_points().select(group='archinstall.plugin'):
plugin_entrypoint = plugin_definition.load()
try:
plugins[plugin_definition.name] = plugin_entrypoint()
except Exception as err:
error(
f'Error: {err}',
f'The above error was detected when loading the plugin: {plugin_definition}',
)
# @archinstall.plugin decorator hook to programmatically add
# plugins in runtime. Useful in profiles_bck and other things.
def plugin(f, *args, **kwargs) -> None: # type: ignore[no-untyped-def]
plugins[f.__name__] = f
def _localize_path(path: Path) -> Path:
"""
Support structures for load_plugin()
"""
url = urllib.parse.urlparse(str(path))
if url.scheme and url.scheme in ('https', 'http'):
converted_path = Path(f'/tmp/{path.stem}_{hashlib.md5(os.urandom(12)).hexdigest()}.py')
with open(converted_path, 'w') as temp_file:
temp_file.write(urllib.request.urlopen(url.geturl()).read().decode('utf-8'))
return converted_path
else:
return path
def _import_via_path(path: Path, namespace: str | None = None) -> str:
if not namespace:
namespace = os.path.basename(path)
if namespace == '__init__.py':
namespace = path.parent.name
try:
spec = importlib.util.spec_from_file_location(namespace, path)
if spec and spec.loader:
imported = importlib.util.module_from_spec(spec)
sys.modules[namespace] = imported
spec.loader.exec_module(sys.modules[namespace])
return namespace
except Exception as err:
error(
f'Error: {err}',
f'The above error was detected when loading the plugin: {path}',
)
try:
del sys.modules[namespace]
except Exception:
pass
return namespace
def load_plugin(path: Path) -> None:
namespace: str | None = None
parsed_url = urllib.parse.urlparse(str(path))
info(f'Loading plugin from url {parsed_url}')
# The Profile was not a direct match on a remote URL
if not parsed_url.scheme:
# Path was not found in any known examples, check if it's an absolute path
if os.path.isfile(path):
namespace = _import_via_path(path)
elif parsed_url.scheme in ('https', 'http'):
localized = _localize_path(path)
namespace = _import_via_path(localized)
if namespace and namespace in sys.modules:
# Version dependency via __archinstall__version__ variable (if present) in the plugin
# Any errors in version inconsistency will be handled through normal error handling if not defined.
version = get_version()
if version is not None:
version_major_and_minor = version.rsplit('.', 1)[0]
if sys.modules[namespace].__archinstall__version__ < float(version_major_and_minor):
error(f'Plugin {sys.modules[namespace]} does not support the current Archinstall version.')
# Locate the plugin entry-point called Plugin()
# This in accordance with the entry_points() from setup.cfg above
if hasattr(sys.modules[namespace], 'Plugin'):
try:
plugins[namespace] = sys.modules[namespace].Plugin()
info(f'Plugin {plugins[namespace]} has been loaded.')
except Exception as err:
error(
f'Error: {err}',
f'The above error was detected when initiating the plugin: {path}',
)
else:
warn(f"Plugin '{path}' is missing a valid entry-point or is corrupt.")
================================================
FILE: archinstall/lib/profile/__init__.py
================================================
================================================
FILE: archinstall/lib/profile/profile_menu.py
================================================
from typing import override
from archinstall.default_profiles.profile import GreeterType, Profile
from archinstall.lib.hardware import GfxDriver
from archinstall.lib.interactions.system_conf import select_driver
from archinstall.lib.menu.abstract_menu import AbstractSubMenu
from archinstall.lib.menu.helpers import Confirmation, Selection
from archinstall.lib.models.profile import ProfileConfiguration
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import ResultType
class ProfileMenu(AbstractSubMenu[ProfileConfiguration]):
def __init__(
self,
preset: ProfileConfiguration | None = None,
):
if preset:
self._profile_config = preset
else:
self._profile_config = ProfileConfiguration()
menu_options = self._define_menu_options()
self._item_group = MenuItemGroup(menu_options, checkmarks=True)
super().__init__(
self._item_group,
self._profile_config,
allow_reset=True,
)
def _define_menu_options(self) -> list[MenuItem]:
return [
MenuItem(
text=tr('Type'),
action=self._select_profile,
value=self._profile_config.profile,
preview_action=self._preview_profile,
key='profile',
),
MenuItem(
text=tr('Graphics driver'),
action=self._select_gfx_driver,
value=self._profile_config.gfx_driver if self._profile_config.profile and self._profile_config.profile.is_graphic_driver_supported() else None,
preview_action=self._prev_gfx,
enabled=self._profile_config.profile.is_graphic_driver_supported() if self._profile_config.profile else False,
dependencies=['profile'],
key='gfx_driver',
),
MenuItem(
text=tr('Greeter'),
action=lambda x: select_greeter(preset=x),
value=self._profile_config.greeter if self._profile_config.profile and self._profile_config.profile.is_greeter_supported() else None,
enabled=self._profile_config.profile.is_graphic_driver_supported() if self._profile_config.profile else False,
preview_action=self._prev_greeter,
dependencies=['profile'],
key='greeter',
),
]
@override
async def show(self) -> ProfileConfiguration | None:
return await super().show()
async def _select_profile(self, preset: Profile | None) -> Profile | None:
profile = await select_profile(preset)
if profile is not None:
if not profile.is_graphic_driver_supported():
self._item_group.find_by_key('gfx_driver').enabled = False
self._item_group.find_by_key('gfx_driver').value = None
else:
self._item_group.find_by_key('gfx_driver').enabled = True
self._item_group.find_by_key('gfx_driver').value = GfxDriver.AllOpenSource
if not profile.is_greeter_supported():
self._item_group.find_by_key('greeter').enabled = False
self._item_group.find_by_key('greeter').value = None
else:
self._item_group.find_by_key('greeter').enabled = True
self._item_group.find_by_key('greeter').value = profile.default_greeter_type
else:
self._item_group.find_by_key('gfx_driver').value = None
self._item_group.find_by_key('greeter').value = None
return profile
async def _select_gfx_driver(self, preset: GfxDriver | None = None) -> GfxDriver | None:
driver = preset
profile: Profile | None = self._item_group.find_by_key('profile').value
if profile:
if profile.is_graphic_driver_supported():
driver = await select_driver(preset=preset)
if driver and 'Sway' in profile.current_selection_names():
if driver.is_nvidia():
header = tr('The proprietary Nvidia driver is not supported by Sway.') + '\n'
header += tr('It is likely that you will run into issues, are you okay with that?') + '\n'
result = await Confirmation(
header=header,
allow_skip=False,
preset=False,
).show()
if result.get_value():
return preset
return driver
def _prev_gfx(self, item: MenuItem) -> str | None:
if item.value:
driver = item.get_value().value
packages = item.get_value().packages_text()
return f'Driver: {driver}\n{packages}'
return None
def _prev_greeter(self, item: MenuItem) -> str | None:
if item.value:
return f'{tr("Greeter")}: {item.value.value}'
return None
def _preview_profile(self, item: MenuItem) -> str | None:
profile: Profile | None = item.value
text = ''
if profile:
if (sub_profiles := profile.current_selection) is not None:
text += tr('Selected profiles: ')
text += ', '.join(p.name for p in sub_profiles) + '\n'
if packages := profile.packages_text(include_sub_packages=True):
text += f'{packages}'
if text:
return text
return None
async def select_greeter(
profile: Profile | None = None,
preset: GreeterType | None = None,
) -> GreeterType | None:
if not profile or profile.is_greeter_supported():
items = [MenuItem(greeter.value, value=greeter) for greeter in GreeterType]
group = MenuItemGroup(items, sort_items=True)
default: GreeterType | None = None
if preset is not None:
default = preset
elif profile is not None:
default_greeter = profile.default_greeter_type
default = default_greeter if default_greeter else None
group.set_default_by_value(default)
result = await Selection[GreeterType](
group,
header=tr('Select which greeter to install'),
allow_skip=True,
).show()
match result.type_:
case ResultType.Skip:
return preset
case ResultType.Selection:
return result.get_value()
case ResultType.Reset:
raise ValueError('Unhandled result type')
return None
async def select_profile(
current_profile: Profile | None = None,
header: str | None = None,
allow_reset: bool = True,
) -> Profile | None:
from archinstall.lib.profile.profiles_handler import profile_handler
top_level_profiles = profile_handler.get_top_level_profiles()
if header is None:
header = tr('Select a profile type')
items = [MenuItem(p.name, value=p) for p in top_level_profiles]
group = MenuItemGroup(items, sort_items=True)
group.set_selected_by_value(current_profile)
result = await Selection[Profile](
group,
header=header,
allow_reset=allow_reset,
allow_skip=True,
).show()
match result.type_:
case ResultType.Reset:
return None
case ResultType.Skip:
return current_profile
case ResultType.Selection:
profile_selection = result.get_value()
select_result = await profile_selection.do_on_select()
if not select_result:
return None
# we're going to reset the currently selected profile(s) to avoid
# any stale data laying around
match select_result:
case select_result.NewSelection:
profile_handler.reset_top_level_profiles(exclude=[profile_selection])
current_profile = profile_selection
case select_result.ResetCurrent:
profile_handler.reset_top_level_profiles()
current_profile = None
case select_result.SameSelection:
pass
return current_profile
================================================
FILE: archinstall/lib/profile/profiles_handler.py
================================================
from __future__ import annotations
import importlib.util
import inspect
import sys
from collections import Counter
from pathlib import Path
from tempfile import NamedTemporaryFile
from types import ModuleType
from typing import TYPE_CHECKING, NotRequired, TypedDict
from archinstall.default_profiles.profile import GreeterType, Profile
from archinstall.lib.hardware import GfxDriver
from archinstall.lib.models.profile import ProfileConfiguration
from archinstall.lib.networking import fetch_data_from_url
from archinstall.lib.output import debug, error, info
from archinstall.lib.translationhandler import tr
if TYPE_CHECKING:
from archinstall.lib.installer import Installer
class ProfileSerialization(TypedDict):
main: NotRequired[str]
details: NotRequired[list[str]]
custom_settings: NotRequired[dict[str, dict[str, str | None]]]
path: NotRequired[str]
class ProfileHandler:
def __init__(self) -> None:
self._profiles: list[Profile] | None = None
# special variable to keep track of a profile url configuration
# it is merely used to be able to export the path again when a user
# wants to save the configuration
self._url_path: str | None = None
def to_json(self, profile: Profile | None) -> ProfileSerialization:
"""
Serialize the selected profile setting to JSON
"""
data: ProfileSerialization = {}
if profile is not None:
data = {
'main': profile.name,
'details': [profile.name for profile in profile.current_selection],
'custom_settings': {profile.name: profile.custom_settings for profile in profile.current_selection},
}
if self._url_path is not None:
data['path'] = self._url_path
return data
def parse_profile_config(self, profile_config: ProfileSerialization) -> Profile | None:
"""
Deserialize JSON configuration for profile
"""
profile: Profile | None = None
# the order of these is important, we want to
# load all the default_profiles from url and custom
# so that we can then apply whatever was specified
# in the main/detail sections
if url_path := profile_config.get('path', None):
self._url_path = url_path
local_path = Path(url_path)
if local_path.is_file():
profiles = self._process_profile_file(local_path)
self.remove_custom_profiles(profiles)
self.add_custom_profiles(profiles)
else:
self._import_profile_from_url(url_path)
# if custom := profile_config.get('custom', None):
# from archinstall.default_profiles.custom import CustomTypeProfile
# custom_types = []
#
# for entry in custom:
# custom_types.append(
# CustomTypeProfile(
# entry['name'],
# entry['enabled'],
# entry.get('packages', []),
# entry.get('services', [])
# )
# )
#
# self.remove_custom_profiles(custom_types)
# self.add_custom_profiles(custom_types)
#
# # this doesn't mean it's actual going to be set as a selection
# # but we are simply populating the custom profile with all
# # possible custom definitions
# if custom_profile := self.get_profile_by_name('Custom'):
# custom_profile.set_current_selection(custom_types)
if main := profile_config.get('main', None):
profile = self.get_profile_by_name(main) if main else None
if not profile:
return None
valid_sub_profiles: list[Profile] = []
invalid_sub_profiles: list[str] = []
details: list[str] = profile_config.get('details', [])
if details:
for detail in filter(None, details):
# [2024-04-19] TODO: Backwards compatibility after naming change: https://github.com/archlinux/archinstall/pull/2421
# 'Kde' is deprecated, remove this block in a future version
if detail == 'Kde':
detail = 'KDE Plasma'
if sub_profile := self.get_profile_by_name(detail):
valid_sub_profiles.append(sub_profile)
else:
invalid_sub_profiles.append(detail)
if invalid_sub_profiles:
info('No profile definition found: {}'.format(', '.join(invalid_sub_profiles)))
custom_settings = profile_config.get('custom_settings', {})
profile.current_selection = valid_sub_profiles
for sub_profile in valid_sub_profiles:
sub_profile_settings = custom_settings.get(sub_profile.name, {})
if sub_profile_settings:
sub_profile.custom_settings = sub_profile_settings
return profile
@property
def profiles(self) -> list[Profile]:
"""
List of all available default_profiles
"""
self._profiles = self._profiles or self._find_available_profiles()
return self._profiles
def add_custom_profiles(self, profiles: Profile | list[Profile]) -> None:
if not isinstance(profiles, list):
profiles = [profiles]
for profile in profiles:
self.profiles.append(profile)
self._verify_unique_profile_names(self.profiles)
def remove_custom_profiles(self, profiles: Profile | list[Profile]) -> None:
if not isinstance(profiles, list):
profiles = [profiles]
remove_names = [p.name for p in profiles]
self._profiles = [p for p in self.profiles if p.name not in remove_names]
def get_profile_by_name(self, name: str) -> Profile | None:
return next(filter(lambda x: x.name == name, self.profiles), None)
def get_top_level_profiles(self) -> list[Profile]:
return [p for p in self.profiles if p.is_top_level_profile()]
def get_server_profiles(self) -> list[Profile]:
return [p for p in self.profiles if p.is_server_type_profile()]
def get_desktop_profiles(self) -> list[Profile]:
return [p for p in self.profiles if p.is_desktop_type_profile()]
def get_custom_profiles(self) -> list[Profile]:
return [p for p in self.profiles if p.is_custom_type_profile()]
def install_greeter(self, install_session: Installer, greeter: GreeterType) -> None:
packages = []
service = None
service_disable = None
match greeter:
case GreeterType.LightdmSlick:
packages = ['lightdm', 'lightdm-slick-greeter']
service = ['lightdm']
case GreeterType.Lightdm:
packages = ['lightdm', 'lightdm-gtk-greeter']
service = ['lightdm']
case GreeterType.Sddm:
packages = ['sddm']
service = ['sddm']
case GreeterType.Gdm:
packages = ['gdm']
service = ['gdm']
case GreeterType.Ly:
packages = ['ly']
service = ['ly@tty1']
service_disable = ['getty@tty1']
case GreeterType.CosmicSession:
packages = ['cosmic-greeter']
service = ['cosmic-greeter']
case GreeterType.PlasmaLoginManager:
packages = ['plasma-login-manager']
service = ['plasmalogin']
if packages:
install_session.add_additional_packages(packages)
if service:
install_session.enable_service(service)
if service_disable:
install_session.disable_service(service_disable)
# slick-greeter requires a config change
if greeter == GreeterType.LightdmSlick:
path = install_session.target.joinpath('etc/lightdm/lightdm.conf')
with open(path) as file:
filedata = file.read()
filedata = filedata.replace('#greeter-session=example-gtk-gnome', 'greeter-session=lightdm-slick-greeter')
with open(path, 'w') as file:
file.write(filedata)
def install_gfx_driver(self, install_session: Installer, driver: GfxDriver) -> None:
debug(f'Installing GFX driver: {driver.value}')
if driver in [GfxDriver.NvidiaOpenKernel, GfxDriver.NvidiaProprietary]:
headers = [f'{kernel}-headers' for kernel in install_session.kernels]
# Fixes https://github.com/archlinux/archinstall/issues/585
install_session.add_additional_packages(headers)
driver_pkgs = driver.gfx_packages()
pkg_names = [p.value for p in driver_pkgs]
install_session.add_additional_packages(pkg_names)
def install_profile_config(self, install_session: Installer, profile_config: ProfileConfiguration) -> None:
profile = profile_config.profile
if not profile:
return
if profile_config.gfx_driver and (profile.is_xorg_type_profile() or profile.is_desktop_profile()):
self.install_gfx_driver(install_session, profile_config.gfx_driver)
profile.install(install_session)
if profile_config.greeter:
self.install_greeter(install_session, profile_config.greeter)
def _import_profile_from_url(self, url: str) -> None:
"""
Import default_profiles from a url path
"""
try:
data = fetch_data_from_url(url)
b_data = bytes(data, 'utf-8')
with NamedTemporaryFile(delete=False, suffix='.py') as fp:
fp.write(b_data)
filepath = Path(fp.name)
profiles = self._process_profile_file(filepath)
self.remove_custom_profiles(profiles)
self.add_custom_profiles(profiles)
except ValueError:
err = tr('Unable to fetch profile from specified url: {}').format(url)
error(err)
def _load_profile_class(self, module: ModuleType) -> list[Profile]:
"""
Load all default_profiles defined in a module
"""
profiles = []
for v in module.__dict__.values():
if isinstance(v, type) and v.__module__ == module.__name__:
bases = inspect.getmro(v)
if Profile in bases:
try:
cls_ = v()
if isinstance(cls_, Profile):
profiles.append(cls_)
except Exception:
debug(f'Cannot import {module}, it does not appear to be a Profile class')
return profiles
def _verify_unique_profile_names(self, profiles: list[Profile]) -> None:
"""
All profile names have to be unique, this function will verify
that the provided list contains only default_profiles with unique names
"""
counter = Counter([p.name for p in profiles])
duplicates = [x for x in counter.items() if x[1] != 1]
if len(duplicates) > 0:
err = tr('Profiles must have unique name, but profile definitions with duplicate name found: {}').format(duplicates[0][0])
error(err)
sys.exit(1)
def _is_legacy(self, file: Path) -> bool:
"""
Check if the provided profile file contains a
legacy profile definition
"""
with open(file) as fp:
for line in fp.readlines():
if '__packages__' in line:
return True
return False
def _process_profile_file(self, file: Path) -> list[Profile]:
"""
Process a file for profile definitions
"""
if self._is_legacy(file):
info(f'Cannot import {file} because it is no longer supported, please use the new profile format')
return []
if not file.is_file():
info(f'Cannot find profile file {file}')
return []
name = file.name.removesuffix(file.suffix)
debug(f'Importing profile: {file}')
try:
if spec := importlib.util.spec_from_file_location(name, file):
imported = importlib.util.module_from_spec(spec)
if spec.loader is not None:
spec.loader.exec_module(imported)
return self._load_profile_class(imported)
except Exception as e:
error(f'Unable to parse file {file}: {e}')
return []
def _find_available_profiles(self) -> list[Profile]:
"""
Search the profile path for profile definitions
"""
profiles_path = Path(__file__).parents[2] / 'default_profiles'
profiles = []
for file in profiles_path.glob('**/*.py'):
# ignore the abstract default_profiles class
if 'profile.py' in file.name:
continue
profiles += self._process_profile_file(file)
self._verify_unique_profile_names(profiles)
return profiles
def reset_top_level_profiles(self, exclude: list[Profile] = []) -> None:
"""
Reset all top level profile configurations, this is usually necessary
when a new top level profile is selected
"""
excluded_profiles = [p.name for p in exclude]
for profile in self.get_top_level_profiles():
if profile.name not in excluded_profiles:
profile.reset()
profile_handler = ProfileHandler()
================================================
FILE: archinstall/lib/translationhandler.py
================================================
import builtins
import gettext
import json
import os
from dataclasses import dataclass
from pathlib import Path
from typing import override
@dataclass
class Language:
abbr: str
name_en: str
translation: gettext.NullTranslations
translation_percent: int
translated_lang: str | None
@property
def display_name(self) -> str:
name = self.name_en
return f'{name} ({self.translation_percent}%)'
def is_match(self, lang_or_translated_lang: str) -> bool:
if self.name_en == lang_or_translated_lang:
return True
elif self.translated_lang == lang_or_translated_lang:
return True
return False
def json(self) -> str:
return self.name_en
class TranslationHandler:
def __init__(self) -> None:
self._base_pot = 'base.pot'
self._languages = 'languages.json'
self._total_messages = self._get_total_active_messages()
self._translated_languages = self._get_translations()
@property
def translated_languages(self) -> list[Language]:
return self._translated_languages
def _get_translations(self) -> list[Language]:
"""
Load all translated languages and return a list of such
"""
mappings = self._load_language_mappings()
defined_languages = self._provided_translations()
languages = []
for short_form in defined_languages:
mapping_entry: dict[str, str] = next(filter(lambda x: x['abbr'] == short_form, mappings))
abbr = mapping_entry['abbr']
lang = mapping_entry['lang']
translated_lang = mapping_entry.get('translated_lang', None)
try:
# get a translation for a specific language
translation = gettext.translation('base', localedir=self._get_locales_dir(), languages=(abbr, lang))
# calculate the percentage of total translated text to total number of messages
if abbr == 'en':
percent = 100
else:
num_translations = self._get_catalog_size(translation)
percent = int((num_translations / self._total_messages) * 100)
# prevent cases where the .pot file is out of date and the percentage is above 100
percent = min(100, percent)
language = Language(abbr, lang, translation, percent, translated_lang)
languages.append(language)
except FileNotFoundError as err:
raise FileNotFoundError(f"Could not locate language file for '{lang}': {err}")
return languages
def _load_language_mappings(self) -> list[dict[str, str]]:
"""
Load the mapping table of all known languages
"""
locales_dir = self._get_locales_dir()
languages = Path.joinpath(locales_dir, self._languages)
with open(languages) as fp:
return json.load(fp)
def _get_catalog_size(self, translation: gettext.NullTranslations) -> int:
"""
Get the number of translated messages for a translations
"""
# this is a very naughty way of retrieving the data but
# there's no alternative method exposed unfortunately
catalog = translation._catalog # type: ignore[attr-defined]
messages = {k: v for k, v in catalog.items() if k and v}
return len(messages)
def _get_total_active_messages(self) -> int:
"""
Get total messages that could be translated
"""
locales = self._get_locales_dir()
with open(f'{locales}/{self._base_pot}') as fp:
lines = fp.readlines()
msgid_lines = [line for line in lines if 'msgid' in line]
return len(msgid_lines) - 1 # don't count the first line which contains the metadata
def get_language_by_name(self, name: str) -> Language:
"""
Get a language object by it's name, e.g. English
"""
try:
return next(filter(lambda x: x.name_en == name, self._translated_languages))
except Exception:
raise ValueError(f'No language with name found: {name}')
def get_language_by_abbr(self, abbr: str) -> Language:
"""
Get a language object by its abbreviation, e.g. en
"""
try:
return next(filter(lambda x: x.abbr == abbr, self._translated_languages))
except Exception:
raise ValueError(f'No language with abbreviation "{abbr}" found')
def activate(self, language: Language) -> None:
"""
Set the provided language as the current translation
"""
# The install() call has the side effect of assigning GNUTranslations.gettext to builtins._
language.translation.install()
def _get_locales_dir(self) -> Path:
"""
Get the locales directory path
"""
cur_path = Path(__file__).parent.parent
locales_dir = Path.joinpath(cur_path, 'locales')
return locales_dir
def _provided_translations(self) -> list[str]:
"""
Get a list of all known languages
"""
locales_dir = self._get_locales_dir()
filenames = os.listdir(locales_dir)
translation_files = []
for filename in filenames:
if len(filename) == 2 or filename in ['pt_BR', 'zh-CN', 'zh-TW']:
translation_files.append(filename)
return translation_files
class _DeferredTranslation:
def __init__(self, message: str):
self.message = message
@override
def __str__(self) -> str:
if builtins._ is _DeferredTranslation: # type: ignore[attr-defined]
return self.message
# builtins._ is changed from _DeferredTranslation to GNUTranslations.gettext after
# Language.activate() is called
return builtins._(self.message) # type: ignore[attr-defined]
def tr(message: str) -> str:
return str(_DeferredTranslation(message))
builtins._ = _DeferredTranslation # type: ignore[attr-defined]
translation_handler = TranslationHandler()
================================================
FILE: archinstall/lib/user/__init__.py
================================================
================================================
FILE: archinstall/lib/user/user_menu.py
================================================
import re
from typing import override
from archinstall.lib.menu.helpers import Confirmation, Input
from archinstall.lib.menu.list_manager import ListManager
from archinstall.lib.menu.util import get_password
from archinstall.lib.models.users import User
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.menu_item import MenuItem
from archinstall.tui.ui.result import ResultType
class UserList(ListManager[User]):
def __init__(self, prompt: str, lusers: list[User]):
self._actions = [
tr('Add a user'),
tr('Change password'),
tr('Promote/Demote user'),
tr('Delete User'),
]
super().__init__(
lusers,
[self._actions[0]],
self._actions[1:],
prompt,
)
async def show(self) -> list[User] | None:
return await super()._run()
@override
def selected_action_display(self, selection: User) -> str:
return selection.username
@override
async def handle_action(self, action: str, entry: User | None, data: list[User]) -> list[User]:
if action == self._actions[0]: # add
new_user = await self._add_user()
if new_user is not None:
# in case a user with the same username as an existing user
# was created we'll replace the existing one
data = [d for d in data if d.username != new_user.username]
data += [new_user]
elif action == self._actions[1] and entry: # change password
header = f'{tr("User")}: {entry.username}\n'
header += tr('Enter new password')
new_password = await get_password(header=header, allow_skip=True)
if new_password:
user = next(filter(lambda x: x == entry, data))
user.password = new_password
elif action == self._actions[2] and entry: # promote/demote
user = next(filter(lambda x: x == entry, data))
user.sudo = False if user.sudo else True
elif action == self._actions[3] and entry: # delete
data = [d for d in data if d != entry]
return data
def _check_for_correct_username(self, username: str | None) -> str | None:
if username is not None:
if re.match(r'^[a-z_][a-z0-9_-]*\$?$', username) and len(username) <= 32:
return None
return tr('The username you entered is invalid')
async def _add_user(self) -> User | None:
editResult = await Input(
tr('Enter a username'),
allow_skip=True,
validator_callback=self._check_for_correct_username,
).show()
match editResult.type_:
case ResultType.Skip:
return None
case ResultType.Selection:
username = editResult.get_value()
case _:
raise ValueError('Unhandled result type')
if not username:
return None
header = f'{tr("Username")}: {username}\n'
prompt = f'{header}\n' + tr('Enter a password')
password = await get_password(header=prompt, allow_skip=True)
if not password:
return None
header += f'{tr("Password")}: {password.hidden()}\n'
prompt = f'{header}\n' + tr('Should "{}" be a superuser (sudo)?\n').format(username)
result = await Confirmation(
header=prompt,
allow_skip=False,
preset=True,
).show()
match result.type_:
case ResultType.Selection:
sudo = result.item() == MenuItem.yes()
case _:
raise ValueError('Unhandled result type')
return User(username, password, sudo)
async def select_users(prompt: str = '', preset: list[User] = []) -> list[User]:
users = await UserList(prompt, preset).show()
if users is None:
return preset
return users
================================================
FILE: archinstall/lib/utils/__init__.py
================================================
================================================
FILE: archinstall/lib/utils/encoding.py
================================================
import re
import unicodedata
from functools import lru_cache
# https://stackoverflow.com/a/43627833/929999
_VT100_ESCAPE_REGEX = r'\x1B\[[?0-9;]*[a-zA-Z]'
_VT100_ESCAPE_REGEX_BYTES = _VT100_ESCAPE_REGEX.encode()
def clear_vt100_escape_codes(data: bytes) -> bytes:
return re.sub(_VT100_ESCAPE_REGEX_BYTES, b'', data)
def clear_vt100_escape_codes_from_str(data: str) -> str:
return re.sub(_VT100_ESCAPE_REGEX, '', data)
@lru_cache(maxsize=128)
def _is_wide_character(char: str) -> bool:
return unicodedata.east_asian_width(char) in 'FW'
def _count_wchars(string: str) -> int:
"Count the total number of wide characters contained in a string"
return sum(_is_wide_character(c) for c in string)
def unicode_ljust(string: str, width: int, fillbyte: str = ' ') -> str:
"""Return a left-justified unicode string of length width.
>>> unicode_ljust('Hello', 15, '*')
'Hello**********'
>>> unicode_ljust('你好', 15, '*')
'你好***********'
>>> unicode_ljust('안녕하세요', 15, '*')
'안녕하세요*****'
>>> unicode_ljust('こんにちは', 15, '*')
'こんにちは*****'
"""
return string.ljust(width - _count_wchars(string), fillbyte)
def unicode_rjust(string: str, width: int, fillbyte: str = ' ') -> str:
"""Return a right-justified unicode string of length width.
>>> unicode_rjust('Hello', 15, '*')
'**********Hello'
>>> unicode_rjust('你好', 15, '*')
'***********你好'
>>> unicode_rjust('안녕하세요', 15, '*')
'*****안녕하세요'
>>> unicode_rjust('こんにちは', 15, '*')
'*****こんにちは'
"""
return string.rjust(width - _count_wchars(string), fillbyte)
================================================
FILE: archinstall/lib/utils/util.py
================================================
import secrets
import string
from pathlib import Path
from archinstall.lib.output import FormattedOutput
def running_from_iso() -> bool:
"""
Check if running from the archiso environment.
Returns True if /run/archiso/airootfs is a mount point (ISO mode).
Returns False if running from installed system (host mode) for host-to-target install.
"""
return Path('/run/archiso/airootfs').is_mount()
def generate_password(length: int = 64) -> str:
haystack = string.printable # digits, ascii_letters, punctuation (!"#$[] etc) and whitespace
return ''.join(secrets.choice(haystack) for _ in range(length))
def is_subpath(first: Path, second: Path) -> bool:
"""
Check if _first_ a subpath of _second_
"""
try:
first.relative_to(second)
return True
except ValueError:
return False
def format_cols(items: list[str], header: str | None = None) -> str:
if header:
text = f'{header}:\n'
else:
text = ''
nr_items = len(items)
if nr_items <= 4:
col = 1
elif nr_items <= 8:
col = 2
elif nr_items <= 12:
col = 3
else:
col = 4
text += FormattedOutput.as_columns(items, col)
# remove whitespaces on each row
text = '\n'.join(t.strip() for t in text.split('\n'))
return text
================================================
FILE: archinstall/lib/version.py
================================================
from importlib.metadata import version
def get_version() -> str:
try:
return version('archinstall')
except Exception:
return 'Archinstall version not found'
================================================
FILE: archinstall/locales/README.md
================================================
# Nationalization
Archinstall supports multiple languages, which depend on translations coming from the community :)
## Important Note
Before starting a new language translation be aware that a font for that language may not be
available on the ISO.
Fonts that are using a different character set than Latin will not be displayed correctly. If those languages
want to be selected, then a proper font has to be set manually in the console.
All available console fonts can be found in `/usr/share/kbd/consolefonts` and they
can be set with `setfont LatGrkCyr-8x16`.
Also note that for example [grub bootloader](https://www.gnu.org/software/grub/manual/grub/grub.html#Input-terminal) has ASCII limited range:
For full disk encryption (LUKS2) or grub-shell, boot options edit: this means alphanumeric latin characters (one-char-per-keystroke).
Archinstall validates this by making sure your passwords are ASCII compatible.
It is quite trivial through Login-manager and/or Desktop Environment to set other layouts or switching later-on.
For full `at_keyboard` support it is possible through `ckbcomp` See guide [here](https://fitzcarraldoblog.wordpress.com/2019/04/21/how-to-change-the-keymap-keyboard-layout-used-by-the-grub-shell-in-gentoo-linux/) And [ckbcompAUR](https://aur.archlinux.org/packages/ckbcomp)
By default bootloaders look for `vconsole.conf` keymap. Other bootloaders such as `systemd-boot` and `limine` have full keymap support.
## Adding new languages
New languages can be added simply by creating a new folder with the proper language abbreviation (see list `languages.json` if unsure).
Run the following command to create a new template for a language
```
mkdir -p /LC_MESSAGES/ && touch /LC_MESSAGES/base.po
```
After that run the script `./locales_generator.sh ` it will automatically populate the new `base.po` file with the strings that
need to be translated into the new language.
For example the `base.po` might contain something like the following now
```
#: lib/user_interaction.py:82
msgid "Do you really want to abort?"
msgstr ""
```
The `msgid` is the identifier of the string in the code as well as the default text to be displayed, meaning that if no
translation is provided for a language then this is the text that is going to be shown.
## Perform translations
Firstly run the script `./locales_generator.sh ` to update `base.po` to the latest.
To perform translations for a language, the file `base.po` can be edited manually, or the neat `poedit` can be used (https://poedit.net/).
If editing the file manually, write the translation in the `msgstr` part
```
#: lib/user_interaction.py:82
msgid "Do you really want to abort?"
msgstr "Wollen sie wirklich abbrechen?"
```
After the translations have been written, run the script once more `./locales_generator.sh ` and it will auto-generate the `base.mo` file with the included translations.
After that you're all ready to go and enjoy Archinstall in the new language :)
================================================
FILE: archinstall/locales/ar/LC_MESSAGES/base.po
================================================
# Header entry was created by Lokalize.
#
# zer0-x, 2022.
# SPDX-FileCopyrightText: 2024 Omar TS
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2024-11-22 13:44+0100\n"
"Last-Translator: Omar TS \n"
"Language-Team: Arabic \n"
"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"X-Generator: Lokalize 24.08.3\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] مِلَف سِجِل أُنشِأ هُنا: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " يُرجى تسليم تقرير عن هذا الخلل (مع المِلَف) إلى https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "هل تُريدُ حقًا إجهاضَ العَملِيَّة؟"
msgid "And one more time for verification: "
msgstr "ومرة أخرى للتحقق: "
msgid "Would you like to use swap on zram?"
msgstr "هل تريد استخدام swap أو zram؟"
msgid "Desired hostname for the installation: "
msgstr "اسم المضيف المُراد للتثبيت: "
msgid "Username for required superuser with sudo privileges: "
msgstr "اسم المتستخدم لأجل المستخدم الخارِق المطلوب مع امتيازات sudo: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "أي مستخدمين إضافيين للتثبيت (اتركه فارغًا لعدم وجود مستخدمين): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "هل يجب أن يكون هذا المستخدم خارقا (sudoer)؟"
msgid "Select a timezone"
msgstr "حدِّد منطقة زمنية"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "هل ترغب في استخدام GRUB كمُحمّل إقلاع بدلاً من systemd-boot؟"
msgid "Choose a bootloader"
msgstr "اختر مُحمّل الإقلاع"
msgid "Choose an audio server"
msgstr "اختر خادِم صوتيات"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "فقط الحزم مثل base وbase-devel وlinux وlinux-firmware وefibootmgr و حِزم مِلف اختيارية سوف تُثَبَّت."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr ""
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "إذا كنت ترغب في متصفح الويب ، مثل Firefox أو chromium، فيمكنك تحديده في موضِع الكتابة التالي."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "اكتب حزمًا إضافية لتثبيتها (تُفصَل بالمسافات، اتركها فارغة للتخطي): "
msgid "Copy ISO network configuration to installation"
msgstr "انسخ إعداد شبكة الـISO للتثبيت"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "استخدم مُدير الشبكة (ضروري لإعداد الإنترنت باستخدام واجهة رسومية في جنوم و كيدي)"
msgid "Select one network interface to configure"
msgstr "حدِّد واجهة شبكة واحدة للإعداد"
msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
msgstr "حدد الوضع المراد تهيئته لـ\"{}\" أو تخطى لاستخدام الوضع الافتراضي \"{}\""
#, python-brace-format
msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): "
msgstr "أدخِل الIP مع تجزئة الشبكة لـ{} (على سبيل المثال: 192.168.0.5/24): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "أدخل عنوان IP الخاص بالبوابة (جهاز التوجيه) أو اتركه فارغاً لعدم وجود عنوان IP: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "أدخل خوادم DNS الخاصة بك (يجب أن تكون مفصولة بمسافات، أو فارغة في حالة عدم وجود خوادم): "
msgid "Select which filesystem your main partition should use"
msgstr "حدد نظام الملفات الذي يجب أن يستخدمه القسم الرئيسي الخاص بك"
msgid "Current partition layout"
msgstr "تخطيط القسم الحالي"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"حدد ما يجب القيام به باستخدام\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "إدخال نوع نظام الملفات المطلوب للقسم"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "أدخل نقطة البداية (بوحدات مجزأة: s، GB، %، إلخ؛ default: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "أدخل موقع النهاية (بوحدات مجزأة: s، GB، %، إلخ؛ على سبيل المثال: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "تحتوي {} على أقسام مدرجة في قائمة الانتظار، سيؤدي ذلك إلى إزالتها، هل أنت متأكد؟"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"حدد حسب الفهرس الأقسام المراد حذفها"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"اختر حسب الفهرس القسم الذي تريد تحميله حيث"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * نقاط تحميل القسم هي نسبية داخل التثبيت، سيكون الإقلاع /boot كمثال. "
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "حدد مكان تحميل القسم (اتركه فارغاً لإزالة نقطة التحميل): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"حدد القسم المراد إخفاءه للتهيئة"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"حدد القسم المراد وضع علامة على أنه مشفر"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"حدد القسم المراد وضع علامة على أنه قابل للإقلاع"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"حدد القسم المراد وضع علامة على أنه قابل للتمهيد"
msgid "Enter a desired filesystem type for the partition: "
msgstr "أدخل نوع نظام الملفات المطلوب للقسم: "
msgid "Archinstall language"
msgstr "لغات Archinstall"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "امسح جميع محركات الأقراص المحددة واستخدم تخطيط القسم الافتراضي الأفضل من حيث الجهد"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "حدد ما يجب فعله بكل محرك أقراص على حدة (متبوعًا باستخدام القسم)"
msgid "Select what you wish to do with the selected block devices"
msgstr "حدد ما ترغب في القيام به مع أجهزة الكتلة المحددة"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "هذه قائمة بالملفات الشخصية المبرمجة مسبقاً، قد تسهل تثبيت أشياء مثل بيئات سطح المكتب"
msgid "Select keyboard layout"
msgstr "تحديد تخطيط لوحة المفاتيح"
msgid "Select one of the regions to download packages from"
msgstr "اختر إحدى المناطق لتنزيل الحزم منها"
msgid "Select one or more hard drives to use and configure"
msgstr "حدد محرك أقراص ثابت واحد أو أكثر لاستخدامه وإعداده"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "للحصول على أفضل توافق مع أجهزة AMD الخاصة بك، قد ترغب في استخدام إما خيارات جميع المصادر المفتوحة المصدر أو AMD / ATI."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "للحصول على أفضل توافق مع أجهزة Intel الخاصة بك، قد ترغب في استخدام إما جميع الخيارات مفتوحة المصدر أو خيارات Intel.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "للحصول على أفضل توافق مع أجهزة Nvidia الخاصة بك، قد ترغب في استخدام برنامج التشغيل الخاص ب Nvidia.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"حدد برنامج تشغيل رسومات أو اتركه فارغاً لتثبيت جميع برامج التشغيل مفتوحة المصدر"
msgid "All open-source (default)"
msgstr "جميعها مفتوحة المصدر (افتراضي)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "اختر النواة التي تريد استخدامها أو اتركها فارغة للإعداد الافتراضي \"{}\""
msgid "Choose which locale language to use"
msgstr "اختر اللغة المحلية التي تريد استخدامها"
msgid "Choose which locale encoding to use"
msgstr "اختر ترميز الإعدادات المحلية المراد استخدامها"
msgid "Select one of the values shown below: "
msgstr "اختر إحدى القيم الموضحة أدناه: "
msgid "Select one or more of the options below: "
msgstr "حدد واحداً أو أكثر من الخيارات أدناه: "
msgid "Adding partition...."
msgstr "إضافة قسم...."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "تحتاج إلى إدخال نوع fs صالح من أجل المتابعة. انظر 'man parted' لمعرفة نوع fs صالح."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "خطأ: نتج عن إدراج ملفات التعريف على عنوان URL \"{}\":"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "خطأ: تعذر فك تشفير نتيجة \"{}\" كنتيجة JSON:"
msgid "Keyboard layout"
msgstr "تخطيط لوحة المفاتيح"
msgid "Mirror region"
msgstr "منطقة المرايا"
msgid "Locale language"
msgstr "لغة الإعدادات المحلية"
msgid "Locale encoding"
msgstr "ترميز الإعدادات المحلية"
msgid "Drive(s)"
msgstr "محرك (أو محركات)"
msgid "Disk layout"
msgstr "تخطيط القرص"
msgid "Encryption password"
msgstr "كلمة سر التشفير"
msgid "Swap"
msgstr "ذاكرة التبديل(Swap)"
msgid "Bootloader"
msgstr "محمل الإقلاع"
msgid "Root password"
msgstr "كلمة مرور الجذر"
msgid "Superuser account"
msgstr "حساب المستخدم المتميز"
msgid "User account"
msgstr "حساب المستخدم"
msgid "Profile"
msgstr "الملف الشخصي"
msgid "Audio"
msgstr "الصوت"
msgid "Kernels"
msgstr "الأنوية"
msgid "Additional packages"
msgstr "الباقات الإضافية"
msgid "Network configuration"
msgstr "ضبط الشبكة"
msgid "Automatic time sync (NTP)"
msgstr "المزامنة التلقائية للوقت (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "تثبيت ({} الإعداد(ات) مفقودة)"
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 ""
"قررت تخطي اختيار القرص الصلب\n"
"وستستخدم أي إعداد لمحرك الأقراص مثبت على {} (تجريبي)\n"
"تحذير: لن يتحقق برنامج Archinstall من ملاءمة هذا الإعداد\n"
"هل ترغب في المتابعة؟"
msgid "Re-using partition instance: {}"
msgstr "إعادة استخدام مثيل القسم: {}"
msgid "Create a new partition"
msgstr "أنشئ قسماً جديداً"
msgid "Delete a partition"
msgstr "احذف قسماً"
msgid "Clear/Delete all partitions"
msgstr "مسح/حذف جميع الأقسام"
msgid "Assign mount-point for a partition"
msgstr "تعيين نقطة تثبيت لقسم"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "وضع علامة/إلغاء وضع علامة على قسم ليتم تهيئته (مسح البيانات)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "وضع علامة/إلغاء وضع علامة على قسم على أنه مشفر"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "تحديد/إلغاء تحديد قسم على أنه قابل للإقلاع (تلقائي ل /boot)"
msgid "Set desired filesystem for a partition"
msgstr "تعيين نظام الملفات المطلوب للقسم"
msgid "Abort"
msgstr "إلغاء"
msgid "Hostname"
msgstr "اسم المُضيف"
msgid "Not configured, unavailable unless setup manually"
msgstr "غير مهيأ، غير متوفر ما لم يتم إعداده يدوياً"
msgid "Timezone"
msgstr "المنطقة الزمنية"
msgid "Set/Modify the below options"
msgstr "تعيين/تعديل الخيارات التالية"
msgid "Install"
msgstr "التثبيت"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr "استخدم ESC لتخطي\n"
msgid "Suggest partition layout"
msgstr "اقتراح تخطيط التقسيم"
msgid "Enter a password: "
msgstr "أدخل كلمة مرور: "
msgid "Enter a encryption password for {}"
msgstr "أدخل كلمة مرور تشفير لـ {}"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "أدخل كلمة مرور تشفير القرص (اتركها فارغة لعدم وجود تشفير): "
msgid "Create a required super-user with sudo privileges: "
msgstr "أدخل كلمة مرور تشفير القرص (اتركها فارغة لعدم استخدام التشفير): "
msgid "Enter root password (leave blank to disable root): "
msgstr "أدخل كلمة مرور الجذر (اتركها فارغة لتعطيل الجذر): "
msgid "Password for user \"{}\": "
msgstr "كلمة المرور للمستخدم \"{}\": "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "التحقق من وجود حزم إضافية (قد يستغرق ذلك بضع ثوانٍ)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "هل ترغب في استخدام المزامنة التلقائية للوقت (NTP) مع خوادم الوقت الافتراضية؟\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.\n"
"للمزيد من المعلومات، يُرجى مراجعة ويكي Arch"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "أدخل اسم مستخدم لإنشاء مستخدم إضافي (اتركه فارغاً للتخطي): "
msgid "Use ESC to skip\n"
msgstr "استخدم ESC لتخطي\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
" اختر غرضًا من القائمة، وحدد أحد الإجراءات المتاحة لتنفيذه"
msgid "Cancel"
msgstr "إلغاء"
msgid "Confirm and exit"
msgstr "تأكيد وخروج"
msgid "Add"
msgstr "إضافة"
msgid "Copy"
msgstr "نسخ"
msgid "Edit"
msgstr "تعديل"
msgid "Delete"
msgstr "حذف"
msgid "Select an action for '{}'"
msgstr "تحديد إجراء ل '{}'"
msgid "Copy to new key:"
msgstr "نسخ إلى مفتاح جديد:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "نوع nic غير معروف: {}. القيم الممكنة هي {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"هذه هي الإعدادات التي اخترتها:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "باكمان يعمل بالفعل، وينتظر 10 دقائق كحد أقصى حتى ينتهي."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "باكمان يعمل بالفعل، ينتظر 10 دقائق كحد أقصى حتى ينتهي."
msgid "Choose which optional additional repositories to enable"
msgstr "اختر المستودعات الإضافية الاختيارية التي تريد تمكينها"
msgid "Add a user"
msgstr "إضافة مستخدم"
msgid "Change password"
msgstr "تغيير كلمة المرور"
msgid "Promote/Demote user"
msgstr "ترقية/خفض رتبة مستخدم"
msgid "Delete User"
msgstr "حذف المستخدم"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"تعريف مستخدم جديد\n"
msgid "User Name : "
msgstr "اسم المستخدم : "
msgid "Should {} be a superuser (sudoer)?"
msgstr "هل يجب أن يكون {} مستخدمًا خارقًا (سودو)؟"
msgid "Define users with sudo privilege: "
msgstr "تعريف المستخدمين بامتياز sudo: "
msgid "No network configuration"
msgstr "لا يوجد إعداد للشبكة"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "تعيين وحدات التخزين الفرعية المطلوبة على قسم btrfs"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"حدد القسم الذي تريد تعيين وحدات التخزين الفرعية عليه"
msgid "Manage btrfs subvolumes for current partition"
msgstr "إدارة وحدات تخزين btrfs الفرعية للقسم الحالي"
msgid "No configuration"
msgstr "لا يوجد إعدادات"
msgid "Save user configuration"
msgstr "حفظ إعدادات المستخدم"
msgid "Save user credentials"
msgstr "حفظ بيانات اعتماد المستخدم"
msgid "Save disk layout"
msgstr "حفظ تخطيط القرص"
msgid "Save all"
msgstr "حفظ الكل"
msgid "Choose which configuration to save"
msgstr "اختر الإعدادات التي تريد حفظها"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "أدخل مجلداً للإعدادات التي سيتم حفظها: "
msgid "Not a valid directory: {}"
msgstr "ليس مجلدًا صالحًا: {}"
msgid "The password you are using seems to be weak,"
msgstr "يبدو أن كلمة المرور التي تستخدمها ضعيفة,"
msgid "are you sure you want to use it?"
msgstr "هل أنت متأكد من أنك تريد استخدامها؟"
msgid "Optional repositories"
msgstr "المستودعات الاختيارية"
msgid "Save configuration"
msgstr "حفظ الإعدادات"
msgid "Missing configurations:\n"
msgstr "إعدادات مفقودة:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "يجب تحديد إما كلمة مرور الجذر أو على الأقل المستخدم المتميز"
msgid "Manage superuser accounts: "
msgstr "إدارة حسابات المستخدمين المتميزين: "
msgid "Manage ordinary user accounts: "
msgstr "إدارة حسابات المستخدمين العاديين: "
msgid " Subvolume :{:16}"
msgstr " المجلد الفرعي :{:16} "
msgid " mounted at {:16}"
msgstr " مثبتة في {:16} "
msgid " with option {}"
msgstr " مع الخيار {} "
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
" املأ القيم المطلوبة لوحدة التخزين الفرعية الجديدة \n"
msgid "Subvolume name "
msgstr "اسم وحدة التخزين الفرعية "
msgid "Subvolume mountpoint"
msgstr "نقطة تحميل وحدة التخزين الفرعية"
msgid "Subvolume options"
msgstr "خيارات وحدة التخزين الفرعية"
msgid "Save"
msgstr "حفظ"
msgid "Subvolume name :"
msgstr "اسم وحدة التخزين الفرعية :"
msgid "Select a mount point :"
msgstr "حدد نقطة التثبيت :"
msgid "Select the desired subvolume options "
msgstr "حدد خيارات وحدة التخزين الفرعية المطلوبة "
msgid "Define users with sudo privilege, by username: "
msgstr "تحديد المستخدمين الذين لديهم امتياز sudo، حسب اسم المستخدم: "
#, python-brace-format
msgid "[!] A log file has been created here: {}"
msgstr "[!] تم إنشاء ملف سجل هنا: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "هل ترغب في استخدام وحدات التخزين الفرعية BTRFS ذات البنية الافتراضية؟"
msgid "Would you like to use BTRFS compression?"
msgstr "هل ترغب في استخدام ضغط BTRFS؟"
msgid "Would you like to create a separate partition for /home?"
msgstr "هل ترغب في إنشاء قسم منفصل لـ /home؟"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "لا تحتوي محركات الأقراص المحددة على الحد الأدنى من السعة المطلوبة للاقتراح التلقائي\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "الحد الأدنى لسعة القسم /home: {} جيجابايت\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "الحد الأدنى لسعة قسم Arch Linux: {} جيجابايت"
msgid "Continue"
msgstr "متابعة"
msgid "yes"
msgstr "نعم"
msgid "no"
msgstr "لا"
msgid "set: {}"
msgstr "حدد: {}"
msgid "Manual configuration setting must be a list"
msgstr "يجب أن يكون إعداد التكوين اليدوي قائمة"
msgid "No iface specified for manual configuration"
msgstr "لا يوجد وجه (iface) محدد للتكوين اليدوي"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "يتطلب تكوين nic اليدوي مع عدم وجود DHCP التلقائي عنوان IP"
msgid "Add interface"
msgstr "إضافة واجهة"
msgid "Edit interface"
msgstr "تعديل الواجهة"
msgid "Delete interface"
msgstr "حذف الواجهة"
msgid "Select interface to add"
msgstr "حدد واجهة لإضافتها"
msgid "Manual configuration"
msgstr "ضبط يدوي"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "وضع علامة/إلغاء وضع علامة على قسم كقسم مضغوط (btrfs فقط)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "يبدو أن كلمة المرور التي تستخدمها ضعيفة، هل أنت متأكد من أنك تريد استخدامها؟"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "يوفر مجموعة مختارة من بيئات سطح المكتب ومديري نوافذ التجانب، مثل gnome و kde و sway"
msgid "Select your desired desktop environment"
msgstr "حدد بيئة سطح المكتب التي تريدها"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "تثبيت أساسي جداً يسمح لك بتخصيص آرتش لينكس (Arch Linux) كما تراه مناسباً."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "يوفر مجموعة مختارة من حزم الخوادم المختلفة لتثبيتها وتمكينها، مثل httpd و nginx و mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "اختر الخوادم التي سيتم تثبيتها، إذا لم يكن هناك أي خوادم، فسيتم إجراء الحد الأدنى من التثبيت"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "تثبيت الحد الأدنى من النظام بالإضافة إلى إكسورج (xorg) وبرامج تشغيل الرسومات."
msgid "Press Enter to continue."
msgstr "اضغط على Enter للمتابعة."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "هل ترغب في الانتقال (chroot) إلى التثبيت الذي تم إنشاؤه حديثاً وإجراء تهيئة ما بعد التثبيت؟"
msgid "Are you sure you want to reset this setting?"
msgstr "هل أنت متأكد من رغبتك في إعادة ضبط هذا الإعداد؟"
msgid "Select one or more hard drives to use and configure\n"
msgstr "حدد محرك أقراص صلب واحد أو أكثر لاستخدامه وضبطه\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "أي تعديلات على الإعداد الحالي سيعيد ضبط تخطيط القرص!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "إذا قمت بإعادة تعيين اختيار القرص الصلب، فسيؤدي ذلك أيضًا إلى إعادة تعيين تخطيط القرص الحالي. هل أنت متأكد؟"
msgid "Save and exit"
msgstr "الحفظ والخروج"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"تحتوي على أقسام في قائمة الانتظار، سيؤدي ذلك إلى إزالتها، هل أنت متأكد؟"
msgid "No audio server"
msgstr "لا يوجد خادم صوت"
msgid "(default)"
msgstr "(افتراضي)"
msgid "Use ESC to skip"
msgstr "استخدم زر الهروب ESC للتخطي"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"استخدم CTRL+C لإعادة تعيين التحديد الحالي\n"
"\n"
"\n"
msgid "Copy to: "
msgstr "نسخ إلى: "
msgid "Edit: "
msgstr "تعديل: "
msgid "Key: "
msgstr "مفتاح: "
msgid "Edit {}: "
msgstr "تعديل {}: "
msgid "Add: "
msgstr "أضف: "
msgid "Value: "
msgstr "القيمة: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "يمكنك تخطي تحديد محرك أقراص وتقسيمه واستخدام أي إعدادات محرك أقراص مثبتة على /mnt (تجريبي)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "حدد أحد الأقراص أو تخطى واستخدم /mnt كافتراضي"
msgid "Select which partitions to mark for formatting:"
msgstr "حدد الأقسام التي تريد وضع علامة عليها للتهيئة:"
msgid "Use HSM to unlock encrypted drive"
msgstr "استخدام HSM لإلغاء قفل محرك الأقراص المشفر"
msgid "Device"
msgstr "جهاز"
msgid "Size"
msgstr "حجم"
msgid "Free space"
msgstr "مساحة خالية"
msgid "Bus-type"
msgstr "نوع الناقلة"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "يجب تحديد إما كلمة مرور الجذر أو مستخدم واحد على الأقل بامتيازات سودو (sudo)"
msgid "Enter username (leave blank to skip): "
msgstr "أدخل اسم المستخدم (اتركه فارغاً للتخطي): "
msgid "The username you entered is invalid. Try again"
msgstr "اسم المستخدم الذي أدخلته غير صالح. حاول مرة أخرى"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "هل يجب أن يكون \"{}\" مستخدمًا خارقًا (sudo)؟"
msgid "Select which partitions to encrypt"
msgstr "حدد الأقسام المراد تشفيرها"
msgid "very weak"
msgstr "ضعيف جداً"
msgid "weak"
msgstr "ضعيف"
msgid "moderate"
msgstr "متوسط"
msgid "strong"
msgstr "قوي"
msgid "Add subvolume"
msgstr "إضافة حجم فرعي"
msgid "Edit subvolume"
msgstr "تعديل الحجم الفرعي"
msgid "Delete subvolume"
msgstr "حذف الحجم الفرعي"
msgid "Configured {} interfaces"
msgstr "تهيئة {} الواجهات"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "يتيح هذا الخيار عدد التنزيلات المتوازية التي يمكن أن تحدث أثناء التثبيت"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"أدخل عدد التنزيلات المتوازية المراد تمكينها.\n"
" (أدخل قيمة تتراوح بين 1 إلى {})\n"
"ملاحظة: "
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - الحد الأقصى للقيمة : {} (يسمح بـ {} تنزيلات متوازية ، ويسمح بـ {} تنزيلات في المرة الواحدة)"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - الحد الأدنى للقيمة: 1 (يسمح بتنزيل متوازي واحد، ويسمح بتنزيلين في المرة الواحدة)"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - تعطيل/افتراضي: 0 (تعطيل التنزيل المتوازي، يسمح بتنزيل واحد فقط في كل مرة)"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "إدخال غير صالح! حاول مرة أخرى بإدخال صالح [1 إلى {max_downloads}، أو 0 لتعطيل]"
msgid "Parallel Downloads"
msgstr "التنزيلات الموازية"
msgid "ESC to skip"
msgstr "زر الهروب ESC للتخطي"
msgid "CTRL+C to reset"
msgstr "CTRL+C لإعادة التعيين"
msgid "TAB to select"
msgstr "TAB لتحديد"
msgid "[Default value: 0] > "
msgstr "[القيمة الافتراضية: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr ""
"لتتمكن من استخدام هذه الترجمة، يرجى تثبيت الخط يدوياً الذي يدعم اللغة.\n"
"To be able to use this translation, please install a font manually that supports the language."
msgid "The font should be stored as {}"
msgstr "يجب تخزين الخط كـ {}"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "يتطلب أرشِنستال Archinstall امتيازات الجذر للتشغيل. انظر help-- للمزيد من المعلومات."
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) ذات أسماء مكررة: {}"
msgid "Select one or more devices to use and configure"
msgstr "حدد جهازاً واحداً أو أكثر لاستخدامه وإعداده"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "إذا قمت بإعادة تعيين تحديد الجهاز فسيؤدي ذلك أيضاً إلى إعادة تعيين تخطيط القرص الحالي. هل أنت متأكد؟"
msgid "Existing Partitions"
msgstr "الأقسام الموجودة"
msgid "Select a partitioning option"
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)"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "هذه قائمة بالملفات الشخصية المبرمجة مسبقاً_bck، قد تسهل تثبيت أشياء مثل بيئات سطح المكتب"
msgid "Current profile selection"
msgstr "اختيار الملف الشخصي الحالي"
msgid "Remove all newly added partitions"
msgstr "إزالة جميع الأقسام المضافة حديثاً"
msgid "Assign mountpoint"
msgstr "تعيين نقطة التحميل"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "وضع او إلغاء علامة تحديد التهيئة (مسح البيانات)"
msgid "Mark/Unmark as bootable"
msgstr "وضع او إلغاء علامة قابل للإقلاع"
msgid "Change filesystem"
msgstr "تغيير نظام الملفات"
msgid "Mark/Unmark as compressed"
msgstr "وضع او إلغاء علامة كمضغوط"
msgid "Set subvolumes"
msgstr "تعيين المجلدات الفرعية"
msgid "Delete partition"
msgstr "حذف القسم"
msgid "Partition"
msgstr "تقسيم"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "هذا القسم مشفر حالياً، ولتهيئة نظام الملفات يجب تحديد نظام الملفات"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "نقاط تحميل القسم تكون نسبية داخل التثبيت، سيكون الإقلاع /boot كمثال."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "إذا تم تعيين نقطة التثبيت /boot، فسيتم وضع علامة على القسم أيضًا على أنه قابل للإقلاع."
msgid "Mountpoint: "
msgstr " نقطة التثبيت: "
msgid "Current free sectors on device {}:"
msgstr "القطاعات الخالية الحالية على الجهاز {}:"
msgid "Total sectors: {}"
msgstr "إجمالي القطاعات: {}"
msgid "Enter the start sector (default: {}): "
msgstr "أدخل قطاع البداية (افتراضي: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
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 "الطول الإجمالي: {}"
msgid "Encryption type"
msgstr "نوع التشفير"
msgid "Iteration time"
msgstr ""
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr ""
msgid "Higher values increase security but slow down boot time"
msgstr ""
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr ""
msgid "Iteration time cannot be empty"
msgstr ""
msgid "Iteration time must be at least 100ms"
msgstr ""
msgid "Iteration time must be at most 120000ms"
msgstr ""
msgid "Please enter a valid number"
msgstr ""
msgid "Partitions"
msgstr "التقسيمات"
msgid "No HSM devices available"
msgstr "لا توجد أجهزة HSM متوفرة"
msgid "Partitions to be encrypted"
msgstr "الأقسام المراد تشفيرها"
msgid "Select disk encryption option"
msgstr "حدد خيار تشفير القرص"
msgid "Select a FIDO2 device to use for HSM"
msgstr "اختر جهاز FIDO2 لاستخدامه في HSM"
msgid "Use a best-effort default partition layout"
msgstr "استخدم أفضل تخطيط افتراضي للتقسيم الافتراضي"
msgid "Manual Partitioning"
msgstr "التقسيم اليدوي"
msgid "Pre-mounted configuration"
msgstr "تهيئة مثبتة مسبقاً"
msgid "Unknown"
msgstr "غير معروف"
msgid "Partition encryption"
msgstr "تشفير التقسيم"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! تهيئة {} في "
msgid "← Back"
msgstr "رجوع ← "
msgid "Disk encryption"
msgstr "تشفير القرص "
msgid "Configuration"
msgstr "الإعداد "
msgid "Password"
msgstr "كلمة المرور"
msgid "All settings will be reset, are you sure?"
msgstr "ستتم إعادة ضبط جميع الإعدادات، هل أنت متأكد؟"
msgid "Back"
msgstr "رجوع"
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr "يرجى اختيار المُرحِّب الذي سيتم تثبيته للملفات الشخصية المختارة: {}"
#, python-brace-format
msgid "Environment type: {}"
msgstr "نوع البيئة: {}"
msgid "The proprietary Nvidia driver is not supported by Sway. It is likely that you will run into issues, are you okay with that?"
msgstr "برنامج تشغيل Nvidia الخاص غير مدعوم من قبل Sway. من المحتمل أنك ستواجه مشاكل، هل أنت موافق على ذلك؟"
msgid "Installed packages"
msgstr "الحزم المثبّتة"
msgid "Add profile"
msgstr "إضافة ملف شخصي"
msgid "Edit profile"
msgstr "تعديل الملف الشخصي"
msgid "Delete profile"
msgstr "حذف الملف الشخصي"
msgid "Profile name: "
msgstr "اسم الملف الشخصي: "
msgid "The profile name you entered is already in use. Try again"
msgstr "اسم الملف الشخصي الذي أدخلته قيد الاستخدام بالفعل. حاول مرة أخرى"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "اكتب حزمًا إضافية لتثبيتها (تُفصَل بالمسافات، اتركها فارغة للتخطي): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "الخدمات التي سيتم تمكينها مع ملف التعريف هذا (مفصولة بمسافة، اتركها فارغة للتخطي): "
msgid "Should this profile be enabled for installation?"
msgstr "هل يجب تمكين ملف التعريف هذا للتثبيت؟"
msgid "Create your own"
msgstr "اصنع بنفسك"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"حدد برنامج تشغيل رسومات أو اتركه فارغاً لتثبيت جميع برامج التشغيل مفتوحة المصدر"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "يحتاج Sway إلى الوصول إلى مقعدك (مجموعة من الأجهزة مثل لوحة المفاتيح والماوس وغيرها)"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"حدد خياراً لمنح Sway إمكانية الوصول إلى أجهزتك"
msgid "Graphics driver"
msgstr "مشغل الرسومات"
msgid "Greeter"
msgstr "المُرحِّب"
msgid "Please chose which greeter to install"
msgstr "يرجى اختيار المُرحِّب الذي سيتم تثبيته"
msgid "This is a list of pre-programmed default_profiles"
msgstr "هذه قائمة بالملفات الافتراضية المبرمجة مسبقًا"
msgid "Disk configuration"
msgstr "ضبط القرص"
msgid "Profiles"
msgstr "الملفات الشخصية"
msgid "Finding possible directories to save configuration files ..."
msgstr "البحث عن الدلائل المحتملة لحفظ ملفات الإعدادات ..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "تحديد مجلد (أو مجلدات) لحفظ ملفات التكوين"
msgid "Add a custom mirror"
msgstr "إضافة مرآة مخصصة"
msgid "Change custom mirror"
msgstr "تغيير المرآة المخصصة"
msgid "Delete custom mirror"
msgstr "حذف المرآة المخصصة"
msgid "Enter name (leave blank to skip): "
msgstr "أدخل الاسم (اترك الاسم فارغاً للتخطي): "
msgid "Enter url (leave blank to skip): "
msgstr "أدخل عنوان url (اتركه فارغاً للتخطي): "
msgid "Select signature check option"
msgstr "حدد خيار التحقق من التوقيع"
msgid "Select signature option"
msgstr "حدد خيار التوقيع"
msgid "Custom mirrors"
msgstr "مرايا مخصصة"
msgid "Defined"
msgstr "محدد"
msgid "Save user configuration (including disk layout)"
msgstr "حفظ إعدادات المستخدم (بما في ذلك تخطيط القرص)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"أدخل مجلداً للتكوين (التهيئة (التكوينات) المراد حفظها (تم تمكين الإكمال بtab)\n"
"حفظ المجلد: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"هل تريد حفظ ملف (ملفات) الضبط {} في الموقع التالي؟\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "حفظ {} ملفات الإعدادات إلى {}"
msgid "Mirrors"
msgstr "المرايا"
msgid "Mirror regions"
msgstr "مناطق المرايا"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - الحد الأقصى للقيمة : {} (يسمح بـ {} تنزيلات متوازية ، ويسمح بـ {ماكس_تنزيلات + 1} تنزيلات في المرة الواحدة)"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "إدخال غير صالح! حاول مرة أخرى باستخدام إدخال صحيح [1 إلى {}، أو 0 لتعطيل]"
msgid "Locales"
msgstr "المحلية (Locales)"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "استخدم مُدير الشبكة NetworkManager (ضروري لإعداد الإنترنت باستخدام واجهة رسومية في جنوم و كيدي)"
msgid "Total: {} / {}"
msgstr "الإجمالي: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "يمكن إرفاق جميع القيم المدخلة بوحدة: B، KB، KB، KiB، MB، MiB..."
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "إذا لم يتم توفير أي وحدة، يتم تفسير القيمة على أنها قطاعات"
msgid "Enter start (default: sector {}): "
msgstr "أدخل البداية (افتراضي: القطاع {}): "
msgid "Enter end (default: {}): "
msgstr "أدخل النهاية (افتراضي: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "غير قادر على تحديد أجهزة fido2. هل تم تثبيت libfido2؟"
msgid "Path"
msgstr "المسار (Path)"
msgid "Manufacturer"
msgstr "الشركة المصنعة"
msgid "Product"
msgstr "المنتوج"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "تكوين غير صالح: {error}"
msgid "Type"
msgstr "النوع"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "يتيح هذا الخيار عدد التنزيلات المتوازية التي يمكن أن تحدث أثناء تنزيل الحزمة"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"أدخل عدد التنزيلات المتوازية المراد تمكينها.\n"
"\n"
"ملاحظة:\n"
#, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr " - الحد الأقصى للقيمة الموصى بها: {} (يسمح بـ {} تنزيلات متوازية في المرة الواحدة)"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - تعطيل/افتراضي: 0 (تعطيل التنزيل المتوازي، يسمح بتنزيل واحد فقط في كل مرة)\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "إدخال غير صالح! حاول مرة أخرى باستخدام إدخال صحيح [أو 0 لتعطيل]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "تحتاج Hyprland إلى الوصول إلى مقعدك (مجموعة من الأجهزة مثل لوحة المفاتيح والفأرة وغيرها)"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"حدد خيارًا لمنح Hyprland إمكانية الوصول إلى أجهزتك"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "يمكن إرفاق جميع القيم المدخلة بوحدة: ٪، ب، كيلوبايت، كيلوبايت، كيلوبايت، ميغابايت، ميغابايت، ميغابايت..."
msgid "Would you like to use unified kernel images?"
msgstr "هل ترغب في استخدام صور النواة الموحدة؟"
msgid "Unified kernel images"
msgstr "صور النواة الموحدة"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "في انتظار اكتمال مزامنة الوقت (عرض timedatectl timedatectl)."
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "عدم اكتمال مزامنة الوقت، أثناء الانتظار - راجع المستندات لمعرفة الحلول البديلة: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "تخطي انتظار المزامنة التلقائية للوقت (قد يتسبب ذلك في حدوث مشكلات إذا كان الوقت غير متزامن أثناء التثبيت)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "في انتظار اكتمال مزامنة حلقة مفاتيح أرش لينكس (archlinux-keyring-wkd-sync)."
msgid "Selected profiles: "
msgstr "ملفات تعريف مختارة: "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "عدم اكتمال مزامنة الوقت، أثناء انتظارك - راجع المستندات لمعرفة الحلول: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "وضع علامة/إلغاء وضع علامة كـ nodatacow"
msgid "Would you like to use compression or disable CoW?"
msgstr "هل ترغب في استخدام الضغط أو تعطيل CoW؟"
msgid "Use compression"
msgstr "استخدام الضغط"
msgid "Disable Copy-on-Write"
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 "نوع الإعداد: {}"
msgid "LVM configuration type"
msgstr "نوع إعداد LVM"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "تشفير قرص LVM بأكثر من قسمين غير مدعوم حاليًا"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "استخدم مُدير الشبكة NetworkManager (ضروري لإعداد الإنترنت باستخدام واجهة رسومية في جنوم و كيدي)"
msgid "Select a LVM option"
msgstr "حدد خيار LVM"
msgid "Partitioning"
msgstr "تقسيم"
msgid "Logical Volume Management (LVM)"
msgstr "إدارة الحجم المنطقي (LVM)"
msgid "Physical volumes"
msgstr "أحجام فيزيائية"
msgid "Volumes"
msgstr "أحجام"
msgid "LVM volumes"
msgstr "أقسام LVM"
msgid "LVM volumes to be encrypted"
msgstr "أقسام LVM المراد تشفيرها"
msgid "Select which LVM volumes to encrypt"
msgstr "حدد أقسام LVM المراد تشفيرها"
msgid "Default layout"
msgstr "التخطيط الافتراضي"
msgid "No Encryption"
msgstr "لا تشفير"
msgid "LUKS"
msgstr "LUKS"
msgid "LVM on LUKS"
msgstr "LVM على LUKS"
msgid "LUKS on LVM"
msgstr "LUKS على LVM"
msgid "Yes"
msgstr "نعم"
msgid "No"
msgstr "لا"
msgid "Archinstall help"
msgstr "مساعدة Archinstall"
msgid " (default)"
msgstr " (افتراضي)"
msgid "Press Ctrl+h for help"
msgstr "اضغط على Ctrl+h للحصول على المساعدة"
msgid "Choose an option to give Sway access to your hardware"
msgstr "حدد خياراً لمنح Sway إمكانية الوصول إلى أجهزتك"
msgid "Seat access"
msgstr "الوصول إلى المقعد"
msgid "Mountpoint"
msgstr "نقطة الضمّ:"
msgid "HSM"
msgstr "HSM"
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "أدخل كلمة مرور تشفير القرص (اتركها فارغة لعدم وجود تشفير):"
msgid "Disk encryption password"
msgstr "كلمة سر التشفير"
msgid "Partition - New"
msgstr "تقسيم - جديد"
msgid "Filesystem"
msgstr "نظام الملفات"
msgid "Invalid size"
msgstr "الحجم غير صالح"
msgid "Start (default: sector {}): "
msgstr "البداية (افتراضي: القطاع {}): "
msgid "End (default: {}): "
msgstr "النهاية (افتراضي: {}): "
msgid "Subvolume name"
msgstr "اسم وحدة التخزين الفرعية"
msgid "Disk configuration type"
msgstr "نوع ضبط القرص"
msgid "Root mount directory"
msgstr "دليل جذر الضم"
msgid "Select language"
msgstr "حدد لغة"
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "اكتب حزمًا إضافية لتثبيتها (تُفصَل بالمسافات، اتركها فارغة للتخطي):"
msgid "Invalid download number"
msgstr "رقم التنزيل غير صالح"
msgid "Number downloads"
msgstr "عدد التنزيلات"
msgid "The username you entered is invalid"
msgstr "اسم المستخدم الذي أدخلته غير صالح."
msgid "Username"
msgstr "اسم المستخدم"
#, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "هل يجب أن يكون \"{}\" مستخدمًا خارقًا (sudo)؟\n"
msgid "Interfaces"
msgstr "واجهات"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "تحتاج إلى إدخال IP صالح في وضع IP-config"
msgid "Modes"
msgstr "وسائط"
msgid "IP address"
msgstr "عنوان IP"
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "أدخل عنوان IP الخاص بالبوابة (جهاز التوجيه) أو اتركه فارغاً لعدم وجود عنوان IP"
msgid "Gateway address"
msgstr "عنوان البوابة"
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "أدخل خوادم DNS الخاصة بك مفصولة بمسافات (اتركها فارغة في حالة عدم وجود خوادم)"
msgid "DNS servers"
msgstr "خوادم DNS"
msgid "Configure interfaces"
msgstr "تهيئة الواجهات"
msgid "Kernel"
msgstr "النواة"
msgid "UEFI is not detected and some options are disabled"
msgstr "لم يُكتشف UEFI وعطّلتْ بعض الخيارات"
msgid "Info"
msgstr "معلومات"
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "برنامج تشغيل Nvidia المملوك غير مدعوم من قبل Sway."
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "من المحتمل أنك ستواجه مشاكل، هل أنت موافق على ذلك؟"
msgid "Main profile"
msgstr "الملف الشخصي"
msgid "Confirm password"
msgstr "أكّد كلمة المرور"
msgid "The confirmation password did not match, please try again"
msgstr "كلمة المرور التأكيدية غير متطابقة، يرجى المحاولة مرة أخرى"
msgid "Not a valid directory"
msgstr "ليس دليلاً صالحًا"
msgid "Would you like to continue?"
msgstr "هل ترغب في الاستمرار؟"
msgid "Directory"
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 "هل تريد حفظ ملف (ملفات) الضبط إلى {} ؟"
msgid "Enabled"
msgstr "مفعّل"
msgid "Disabled"
msgstr "معطّل"
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr "يُرجى تسليم تقرير عن هذا الخلل (مع المِلَف) إلى https://github.com/archlinux/archinstall/issues"
msgid "Mirror name"
msgstr "اسم المرآة"
msgid "Url"
msgstr "عنوان URL"
msgid "Select signature check"
msgstr "حدد خيار التحقق من التوقيع"
msgid "Select execution mode"
msgstr "حدد وضع التنفيذ"
msgid "Press ? for help"
msgstr "اضغط ؟ للمساعدة"
#, fuzzy
msgid "Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"حدد خيارًا لمنح Hyprland إمكانية الوصول إلى أجهزتك"
#, fuzzy
msgid "Additional repositories"
msgstr "المستودعات الاختيارية"
msgid "NTP"
msgstr ""
msgid "Swap on zram"
msgstr ""
msgid "Name"
msgstr ""
#, fuzzy
msgid "Signature check"
msgstr "حدد خيار التحقق من التوقيع"
#, fuzzy, python-brace-format
msgid "Selected free space segment on device {}:"
msgstr "القطاعات الخالية الحالية على الجهاز {}:"
#, fuzzy, python-brace-format
msgid "Size: {} / {}"
msgstr "الإجمالي: {} / {}"
#, fuzzy, python-brace-format
msgid "Size (default: {}): "
msgstr "النهاية (افتراضي: {}): "
#, fuzzy
msgid "HSM device"
msgstr "جهاز"
msgid "Some packages could not be found in the repository"
msgstr ""
#, fuzzy
msgid "User"
msgstr "اسم المستخدم"
msgid "The specified configuration will be applied"
msgstr ""
msgid "Wipe"
msgstr ""
#, fuzzy
msgid "Mark/Unmark as XBOOTLDR"
msgstr "وضع او إلغاء علامة قابل للإقلاع"
#, fuzzy
msgid "Loading packages..."
msgstr "الباقات الإضافية"
msgid "Select any packages from the below list that should be installed additionally"
msgstr ""
#, fuzzy
msgid "Add a custom repository"
msgstr "إضافة مرآة مخصصة"
#, fuzzy
msgid "Change custom repository"
msgstr "تغيير المرآة المخصصة"
#, fuzzy
msgid "Delete custom repository"
msgstr "حذف المرآة المخصصة"
#, fuzzy
msgid "Repository name"
msgstr "اسم المرآة"
#, fuzzy
msgid "Add a custom server"
msgstr "إضافة مرآة مخصصة"
#, fuzzy
msgid "Change custom server"
msgstr "تغيير المرآة المخصصة"
#, fuzzy
msgid "Delete custom server"
msgstr "حذف المرآة المخصصة"
msgid "Server url"
msgstr ""
#, fuzzy
msgid "Select regions"
msgstr "حدد خيار التوقيع"
#, fuzzy
msgid "Add custom servers"
msgstr "إضافة مرآة مخصصة"
#, fuzzy
msgid "Add custom repository"
msgstr "إضافة مرآة مخصصة"
#, fuzzy
msgid "Loading mirror regions..."
msgstr "مناطق المرايا"
#, fuzzy
msgid "Mirrors and repositories"
msgstr "المستودعات الاختيارية"
#, fuzzy
msgid "Selected mirror regions"
msgstr "مناطق المرايا"
#, fuzzy
msgid "Custom servers"
msgstr "مرايا مخصصة"
#, fuzzy
msgid "Custom repositories"
msgstr "المستودعات الاختيارية"
msgid "Only ASCII characters are supported"
msgstr ""
msgid "Show help"
msgstr ""
msgid "Exit help"
msgstr ""
msgid "Preview scroll up"
msgstr ""
msgid "Preview scroll down"
msgstr ""
msgid "Move up"
msgstr ""
msgid "Move down"
msgstr ""
msgid "Move right"
msgstr ""
msgid "Move left"
msgstr ""
msgid "Jump to entry"
msgstr ""
msgid "Skip selection (if available)"
msgstr ""
msgid "Reset selection (if available)"
msgstr ""
#, fuzzy
msgid "Select on single select"
msgstr "حدد خيار التحقق من التوقيع"
#, fuzzy
msgid "Select on multi select"
msgstr "حدِّد منطقة زمنية"
msgid "Reset"
msgstr ""
#, fuzzy
msgid "Skip selection menu"
msgstr "حدد وضع التنفيذ"
msgid "Start search mode"
msgstr ""
msgid "Exit search mode"
msgstr ""
#, fuzzy
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "يحتاج Sway إلى الوصول إلى مقعدك (مجموعة من الأجهزة مثل لوحة المفاتيح والماوس وغيرها)"
#, fuzzy
msgid "Choose an option to give labwc access to your hardware"
msgstr "حدد خياراً لمنح Sway إمكانية الوصول إلى أجهزتك"
#, fuzzy
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "يحتاج Sway إلى الوصول إلى مقعدك (مجموعة من الأجهزة مثل لوحة المفاتيح والماوس وغيرها)"
#, fuzzy
msgid "Choose an option to give niri access to your hardware"
msgstr "حدد خياراً لمنح Sway إمكانية الوصول إلى أجهزتك"
#, fuzzy
msgid "Mark/Unmark as ESP"
msgstr "وضع او إلغاء علامة قابل للإقلاع"
msgid "Package group:"
msgstr ""
#, fuzzy
msgid "Exit archinstall"
msgstr "مساعدة Archinstall"
#, fuzzy
msgid "Reboot system"
msgstr "نظام الملفات"
#, fuzzy
msgid "chroot into installation for post-installation configurations"
msgstr "هل ترغب في الانتقال (chroot) إلى التثبيت الذي تم إنشاؤه حديثاً وإجراء تهيئة ما بعد التثبيت؟"
msgid "Installation completed"
msgstr ""
#, fuzzy
msgid "What would you like to do next?"
msgstr "هل ترغب في الاستمرار؟"
#, fuzzy, python-brace-format
msgid "Select which mode to configure for \"{}\""
msgstr "حدد الوضع المراد تهيئته لـ\"{}\" أو تخطى لاستخدام الوضع الافتراضي \"{}\""
#, fuzzy
msgid "Incorrect credentials file decryption password"
msgstr "كلمة سر التشفير"
#, fuzzy
msgid "Incorrect password"
msgstr "كلمة مرور الجذر"
#, fuzzy
msgid "Credentials file decryption password"
msgstr "كلمة سر التشفير"
#, fuzzy
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr "هل تريد حفظ ملف (ملفات) الضبط إلى {} ؟"
#, fuzzy
msgid "Credentials file encryption password"
msgstr "كلمة سر التشفير"
#, 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 "Print service"
msgstr ""
#, fuzzy
msgid "Would you like to configure the print service?"
msgstr "هل ترغب في الاستمرار؟"
#, fuzzy
msgid "Power management"
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 ""
msgid "Starting device modifications in "
msgstr ""
#, fuzzy
msgid "No network connection found"
msgstr "لا يوجد إعداد للشبكة"
#, fuzzy
msgid "Would you like to connect to a Wifi?"
msgstr "هل ترغب في الاستمرار؟"
#, fuzzy
msgid "No wifi interface found"
msgstr "تهيئة الواجهات"
#, fuzzy
msgid "Select wifi network to connect to"
msgstr "حدِّد واجهة شبكة واحدة للإعداد"
msgid "Scanning wifi networks..."
msgstr ""
#, fuzzy
msgid "No wifi networks found"
msgstr "لا يوجد إعداد للشبكة"
msgid "Failed setting up wifi"
msgstr ""
#, fuzzy
msgid "Enter wifi password"
msgstr "أدخل كلمة مرور: "
msgid "Ok"
msgstr ""
msgid "Removable"
msgstr ""
msgid "Install to removable location"
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr ""
msgid "Will install to standard location with NVRAM entry"
msgstr ""
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr ""
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr ""
msgid "USB drives or other portable external media."
msgstr ""
msgid "Systems where you want the disk to be bootable on any computer."
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr ""
msgid "Will install to custom location with NVRAM entry"
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr ""
msgid "most Apple Macs, many laptops..."
msgstr ""
#, fuzzy
msgid "Language"
msgstr "لغة الإعدادات المحلية"
msgid "Compression algorithm"
msgstr ""
#, fuzzy
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "فقط الحزم مثل base وbase-devel وlinux وlinux-firmware وefibootmgr و حِزم مِلف اختيارية سوف تُثَبَّت."
#, fuzzy
msgid "Select zram compression algorithm:"
msgstr "حدد نقطة التثبيت :"
msgid "Use Network Manager (default backend)"
msgstr ""
msgid "Use Network Manager (iwd backend)"
msgstr ""
================================================
FILE: archinstall/locales/base.pot
================================================
msgid ""
msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "[!] A log file has been created here: {} {}"
msgstr ""
msgid ""
" Please submit this issue (and file) to https://github.com/archlinux/"
"archinstall/issues"
msgstr ""
msgid "Do you really want to abort?"
msgstr ""
msgid "And one more time for verification: "
msgstr ""
msgid "Would you like to use swap on zram?"
msgstr ""
msgid "Desired hostname for the installation: "
msgstr ""
msgid "Username for required superuser with sudo privileges: "
msgstr ""
msgid "Any additional users to install (leave blank for no users): "
msgstr ""
msgid "Should this user be a superuser (sudoer)?"
msgstr ""
msgid "Select a timezone"
msgstr ""
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr ""
msgid "Choose a bootloader"
msgstr ""
msgid "Choose an audio server"
msgstr ""
msgid ""
"Only packages such as base, base-devel, linux, linux-firmware, efibootmgr "
"and optional profile packages are installed."
msgstr ""
msgid ""
"Note: base-devel is no longer installed by default. Add it here if you need "
"build tools."
msgstr ""
msgid ""
"If you desire a web browser, such as firefox or chromium, you may specify it "
"in the following prompt."
msgstr ""
msgid ""
"Write additional packages to install (space separated, leave blank to skip): "
msgstr ""
msgid "Copy ISO network configuration to installation"
msgstr ""
msgid ""
"Use NetworkManager (necessary for configuring internet graphically in GNOME "
"and KDE)"
msgstr ""
msgid "Select one network interface to configure"
msgstr ""
msgid ""
"Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
msgstr ""
#, python-brace-format
msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): "
msgstr ""
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr ""
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr ""
msgid "Select which filesystem your main partition should use"
msgstr ""
msgid "Current partition layout"
msgstr ""
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
msgid "Enter a desired filesystem type for the partition"
msgstr ""
msgid ""
"Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr ""
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr ""
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr ""
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
msgid ""
" * Partition mount-points are relative to inside the installation, the boot "
"would be /boot as an example."
msgstr ""
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr ""
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
msgid "Enter a desired filesystem type for the partition: "
msgstr ""
msgid "Archinstall language"
msgstr ""
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr ""
msgid ""
"Select what to do with each individual drive (followed by partition usage)"
msgstr ""
msgid "Select what you wish to do with the selected block devices"
msgstr ""
msgid ""
"This is a list of pre-programmed profiles, they might make it easier to "
"install things like desktop environments"
msgstr ""
msgid "Select keyboard layout"
msgstr ""
msgid "Select one of the regions to download packages from"
msgstr ""
msgid "Select one or more hard drives to use and configure"
msgstr ""
msgid ""
"For the best compatibility with your AMD hardware, you may want to use "
"either the all open-source or AMD / ATI options."
msgstr ""
msgid ""
"For the best compatibility with your Intel hardware, you may want to use "
"either the all open-source or Intel options.\n"
msgstr ""
msgid ""
"For the best compatibility with your Nvidia hardware, you may want to use "
"the Nvidia proprietary driver.\n"
msgstr ""
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
msgid "All open-source (default)"
msgstr ""
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr ""
msgid "Choose which locale language to use"
msgstr ""
msgid "Choose which locale encoding to use"
msgstr ""
msgid "Select one of the values shown below: "
msgstr ""
msgid "Select one or more of the options below: "
msgstr ""
msgid "Adding partition...."
msgstr ""
msgid ""
"You need to enter a valid fs-type in order to continue. See `man parted` for "
"valid fs-type's."
msgstr ""
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr ""
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr ""
msgid "Keyboard layout"
msgstr ""
msgid "Mirror region"
msgstr ""
msgid "Locale language"
msgstr ""
msgid "Locale encoding"
msgstr ""
msgid "Drive(s)"
msgstr ""
msgid "Disk layout"
msgstr ""
msgid "Encryption password"
msgstr ""
msgid "Swap"
msgstr ""
msgid "Bootloader"
msgstr ""
msgid "Root password"
msgstr ""
msgid "Superuser account"
msgstr ""
msgid "User account"
msgstr ""
msgid "Profile"
msgstr ""
msgid "Audio"
msgstr ""
msgid "Kernels"
msgstr ""
msgid "Additional packages"
msgstr ""
msgid "Network configuration"
msgstr ""
msgid "Automatic time sync (NTP)"
msgstr ""
msgid "Install ({} config(s) missing)"
msgstr ""
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 ""
msgid "Re-using partition instance: {}"
msgstr ""
msgid "Create a new partition"
msgstr ""
msgid "Delete a partition"
msgstr ""
msgid "Clear/Delete all partitions"
msgstr ""
msgid "Assign mount-point for a partition"
msgstr ""
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr ""
msgid "Mark/Unmark a partition as encrypted"
msgstr ""
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr ""
msgid "Set desired filesystem for a partition"
msgstr ""
msgid "Abort"
msgstr ""
msgid "Hostname"
msgstr ""
msgid "Not configured, unavailable unless setup manually"
msgstr ""
msgid "Timezone"
msgstr ""
msgid "Set/Modify the below options"
msgstr ""
msgid "Install"
msgstr ""
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
msgid "Suggest partition layout"
msgstr ""
msgid "Enter a password: "
msgstr ""
msgid "Enter a encryption password for {}"
msgstr ""
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr ""
msgid "Create a required super-user with sudo privileges: "
msgstr ""
msgid "Enter root password (leave blank to disable root): "
msgstr ""
msgid "Password for user \"{}\": "
msgstr ""
msgid ""
"Verifying that additional packages exist (this might take a few seconds)"
msgstr ""
msgid ""
"Would you like to use automatic time synchronization (NTP) with the default "
"time servers?\n"
msgstr ""
msgid ""
"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 ""
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr ""
msgid "Use ESC to skip\n"
msgstr ""
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for "
"it to execute"
msgstr ""
msgid "Cancel"
msgstr ""
msgid "Confirm and exit"
msgstr ""
msgid "Add"
msgstr ""
msgid "Copy"
msgstr ""
msgid "Edit"
msgstr ""
msgid "Delete"
msgstr ""
msgid "Select an action for '{}'"
msgstr ""
msgid "Copy to new key:"
msgstr ""
msgid "Unknown nic type: {}. Possible values are {}"
msgstr ""
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
msgid ""
"Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr ""
msgid ""
"Pre-existing pacman lock never exited. Please clean up any existing pacman "
"sessions before using archinstall."
msgstr ""
msgid "Choose which optional additional repositories to enable"
msgstr ""
msgid "Add a user"
msgstr ""
msgid "Change password"
msgstr ""
msgid "Promote/Demote user"
msgstr ""
msgid "Delete User"
msgstr ""
msgid ""
"\n"
"Define a new user\n"
msgstr ""
msgid "User Name : "
msgstr ""
msgid "Should {} be a superuser (sudoer)?"
msgstr ""
msgid "Define users with sudo privilege: "
msgstr ""
msgid "No network configuration"
msgstr ""
msgid "Set desired subvolumes on a btrfs partition"
msgstr ""
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
msgid "Manage btrfs subvolumes for current partition"
msgstr ""
msgid "No configuration"
msgstr ""
msgid "Save user configuration"
msgstr ""
msgid "Save user credentials"
msgstr ""
msgid "Save disk layout"
msgstr ""
msgid "Save all"
msgstr ""
msgid "Choose which configuration to save"
msgstr ""
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr ""
msgid "Not a valid directory: {}"
msgstr ""
msgid "The password you are using seems to be weak,"
msgstr ""
msgid "are you sure you want to use it?"
msgstr ""
msgid "Optional repositories"
msgstr ""
msgid "Save configuration"
msgstr ""
msgid "Missing configurations:\n"
msgstr ""
msgid "Either root-password or at least 1 superuser must be specified"
msgstr ""
msgid "Manage superuser accounts: "
msgstr ""
msgid "Manage ordinary user accounts: "
msgstr ""
msgid " Subvolume :{:16}"
msgstr ""
msgid " mounted at {:16}"
msgstr ""
msgid " with option {}"
msgstr ""
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
msgid "Subvolume name "
msgstr ""
msgid "Subvolume mountpoint"
msgstr ""
msgid "Subvolume options"
msgstr ""
msgid "Save"
msgstr ""
msgid "Subvolume name :"
msgstr ""
msgid "Select a mount point :"
msgstr ""
msgid "Select the desired subvolume options "
msgstr ""
msgid "Define users with sudo privilege, by username: "
msgstr ""
#, python-brace-format
msgid "[!] A log file has been created here: {}"
msgstr ""
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr ""
msgid "Would you like to use BTRFS compression?"
msgstr ""
msgid "Would you like to create a separate partition for /home?"
msgstr ""
msgid ""
"The selected drives do not have the minimum capacity required for an "
"automatic suggestion\n"
msgstr ""
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr ""
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr ""
msgid "Continue"
msgstr ""
msgid "yes"
msgstr ""
msgid "no"
msgstr ""
msgid "set: {}"
msgstr ""
msgid "Manual configuration setting must be a list"
msgstr ""
msgid "No iface specified for manual configuration"
msgstr ""
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr ""
msgid "Add interface"
msgstr ""
msgid "Edit interface"
msgstr ""
msgid "Delete interface"
msgstr ""
msgid "Select interface to add"
msgstr ""
msgid "Manual configuration"
msgstr ""
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr ""
msgid ""
"The password you are using seems to be weak, are you sure you want to use it?"
msgstr ""
msgid ""
"Provides a selection of desktop environments and tiling window managers, "
"e.g. gnome, kde, sway"
msgstr ""
msgid "Select your desired desktop environment"
msgstr ""
msgid ""
"A very basic installation that allows you to customize Arch Linux as you see "
"fit."
msgstr ""
msgid ""
"Provides a selection of various server packages to install and enable, e.g. "
"httpd, nginx, mariadb"
msgstr ""
msgid ""
"Choose which servers to install, if none then a minimal installation will be "
"done"
msgstr ""
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr ""
msgid "Press Enter to continue."
msgstr ""
msgid ""
"Would you like to chroot into the newly created installation and perform "
"post-installation configuration?"
msgstr ""
msgid "Are you sure you want to reset this setting?"
msgstr ""
msgid "Select one or more hard drives to use and configure\n"
msgstr ""
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr ""
msgid ""
"If you reset the harddrive selection this will also reset the current disk "
"layout. Are you sure?"
msgstr ""
msgid "Save and exit"
msgstr ""
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
msgid "No audio server"
msgstr ""
msgid "(default)"
msgstr ""
msgid "Use ESC to skip"
msgstr ""
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
msgid "Copy to: "
msgstr ""
msgid "Edit: "
msgstr ""
msgid "Key: "
msgstr ""
msgid "Edit {}: "
msgstr ""
msgid "Add: "
msgstr ""
msgid "Value: "
msgstr ""
msgid ""
"You can skip selecting a drive and partitioning and use whatever drive-setup "
"is mounted at /mnt (experimental)"
msgstr ""
msgid "Select one of the disks or skip and use /mnt as default"
msgstr ""
msgid "Select which partitions to mark for formatting:"
msgstr ""
msgid "Use HSM to unlock encrypted drive"
msgstr ""
msgid "Device"
msgstr ""
msgid "Size"
msgstr ""
msgid "Free space"
msgstr ""
msgid "Bus-type"
msgstr ""
msgid ""
"Either root-password or at least 1 user with sudo privileges must be "
"specified"
msgstr ""
msgid "Enter username (leave blank to skip): "
msgstr ""
msgid "The username you entered is invalid. Try again"
msgstr ""
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr ""
msgid "Select which partitions to encrypt"
msgstr ""
msgid "very weak"
msgstr ""
msgid "weak"
msgstr ""
msgid "moderate"
msgstr ""
msgid "strong"
msgstr ""
msgid "Add subvolume"
msgstr ""
msgid "Edit subvolume"
msgstr ""
msgid "Delete subvolume"
msgstr ""
msgid "Configured {} interfaces"
msgstr ""
msgid ""
"This option enables the number of parallel downloads that can occur during "
"installation"
msgstr ""
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
msgid ""
" - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads "
"at a time )"
msgstr ""
msgid ""
" - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a "
"time )"
msgstr ""
msgid ""
" - Disable/Default : 0 ( Disables parallel downloading, allows only 1 "
"download at a time )"
msgstr ""
#, python-brace-format
msgid ""
"Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to "
"disable]"
msgstr ""
msgid "Parallel Downloads"
msgstr ""
msgid "ESC to skip"
msgstr ""
msgid "CTRL+C to reset"
msgstr ""
msgid "TAB to select"
msgstr ""
msgid "[Default value: 0] > "
msgstr ""
msgid ""
"To be able to use this translation, please install a font manually that "
"supports the language."
msgstr ""
msgid "The font should be stored as {}"
msgstr ""
msgid "Archinstall requires root privileges to run. See --help for more."
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 ""
msgid "Select one or more devices to use and configure"
msgstr ""
msgid ""
"If you reset the device selection this will also reset the current disk "
"layout. Are you sure?"
msgstr ""
msgid "Existing Partitions"
msgstr ""
msgid "Select a partitioning option"
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 ""
msgid ""
"This is a list of pre-programmed profiles_bck, they might make it easier to "
"install things like desktop environments"
msgstr ""
msgid "Current profile selection"
msgstr ""
msgid "Remove all newly added partitions"
msgstr ""
msgid "Assign mountpoint"
msgstr ""
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr ""
msgid "Mark/Unmark as bootable"
msgstr ""
msgid "Change filesystem"
msgstr ""
msgid "Mark/Unmark as compressed"
msgstr ""
msgid "Set subvolumes"
msgstr ""
msgid "Delete partition"
msgstr ""
msgid "Partition"
msgstr ""
msgid ""
"This partition is currently encrypted, to format it a filesystem has to be "
"specified"
msgstr ""
msgid ""
"Partition mount-points are relative to inside the installation, the boot "
"would be /boot as an example."
msgstr ""
msgid ""
"If mountpoint /boot is set, then the partition will also be marked as "
"bootable."
msgstr ""
msgid "Mountpoint: "
msgstr ""
msgid "Current free sectors on device {}:"
msgstr ""
msgid "Total sectors: {}"
msgstr ""
msgid "Enter the start sector (default: {}): "
msgstr ""
msgid ""
"Enter the end sector of the partition (percentage or block number, default: "
"{}): "
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 ""
msgid "Encryption type"
msgstr ""
msgid "Iteration time"
msgstr ""
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr ""
msgid "Higher values increase security but slow down boot time"
msgstr ""
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr ""
msgid "Iteration time cannot be empty"
msgstr ""
msgid "Iteration time must be at least 100ms"
msgstr ""
msgid "Iteration time must be at most 120000ms"
msgstr ""
msgid "Please enter a valid number"
msgstr ""
msgid "Partitions"
msgstr ""
msgid "No HSM devices available"
msgstr ""
msgid "Partitions to be encrypted"
msgstr ""
msgid "Select disk encryption option"
msgstr ""
msgid "Select a FIDO2 device to use for HSM"
msgstr ""
msgid "Use a best-effort default partition layout"
msgstr ""
msgid "Manual Partitioning"
msgstr ""
msgid "Pre-mounted configuration"
msgstr ""
msgid "Unknown"
msgstr ""
msgid "Partition encryption"
msgstr ""
#, python-brace-format
msgid " ! Formatting {} in "
msgstr ""
msgid "← Back"
msgstr ""
msgid "Disk encryption"
msgstr ""
msgid "Configuration"
msgstr ""
msgid "Password"
msgstr ""
msgid "All settings will be reset, are you sure?"
msgstr ""
msgid "Back"
msgstr ""
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr ""
#, python-brace-format
msgid "Environment type: {}"
msgstr ""
msgid ""
"The proprietary Nvidia driver is not supported by Sway. It is likely that "
"you will run into issues, are you okay with that?"
msgstr ""
msgid "Installed packages"
msgstr ""
msgid "Add profile"
msgstr ""
msgid "Edit profile"
msgstr ""
msgid "Delete profile"
msgstr ""
msgid "Profile name: "
msgstr ""
msgid "The profile name you entered is already in use. Try again"
msgstr ""
msgid ""
"Packages to be install with this profile (space separated, leave blank to "
"skip): "
msgstr ""
msgid ""
"Services to be enabled with this profile (space separated, leave blank to "
"skip): "
msgstr ""
msgid "Should this profile be enabled for installation?"
msgstr ""
msgid "Create your own"
msgstr ""
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
msgid ""
"Sway needs access to your seat (collection of hardware devices i.e. "
"keyboard, mouse, etc)"
msgstr ""
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
msgid "Graphics driver"
msgstr ""
msgid "Greeter"
msgstr ""
msgid "Please chose which greeter to install"
msgstr ""
msgid "This is a list of pre-programmed default_profiles"
msgstr ""
msgid "Disk configuration"
msgstr ""
msgid "Profiles"
msgstr ""
msgid "Finding possible directories to save configuration files ..."
msgstr ""
msgid "Select directory (or directories) for saving configuration files"
msgstr ""
msgid "Add a custom mirror"
msgstr ""
msgid "Change custom mirror"
msgstr ""
msgid "Delete custom mirror"
msgstr ""
msgid "Enter name (leave blank to skip): "
msgstr ""
msgid "Enter url (leave blank to skip): "
msgstr ""
msgid "Select signature check option"
msgstr ""
msgid "Select signature option"
msgstr ""
msgid "Custom mirrors"
msgstr ""
msgid "Defined"
msgstr ""
msgid "Save user configuration (including disk layout)"
msgstr ""
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion "
"enabled)\n"
"Save directory: "
msgstr ""
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
msgid "Saving {} configuration files to {}"
msgstr ""
msgid "Mirrors"
msgstr ""
msgid "Mirror regions"
msgstr ""
msgid ""
" - Maximum value : {} ( Allows {} parallel downloads, allows "
"{max_downloads+1} downloads at a time )"
msgstr ""
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr ""
msgid "Locales"
msgstr ""
msgid ""
"Use NetworkManager (necessary to configure internet graphically in GNOME and "
"KDE)"
msgstr ""
msgid "Total: {} / {}"
msgstr ""
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr ""
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr ""
msgid "Enter start (default: sector {}): "
msgstr ""
msgid "Enter end (default: {}): "
msgstr ""
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr ""
msgid "Path"
msgstr ""
msgid "Manufacturer"
msgstr ""
msgid "Product"
msgstr ""
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr ""
msgid "Type"
msgstr ""
msgid ""
"This option enables the number of parallel downloads that can occur during "
"package downloads"
msgstr ""
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
#, python-brace-format
msgid ""
" - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr ""
msgid ""
" - Disable/Default : 0 ( Disables parallel downloading, allows only 1 "
"download at a time )\n"
msgstr ""
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr ""
msgid ""
"Hyprland needs access to your seat (collection of hardware devices i.e. "
"keyboard, mouse, etc)"
msgstr ""
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
msgid ""
"All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr ""
msgid "Would you like to use unified kernel images?"
msgstr ""
msgid "Unified kernel images"
msgstr ""
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr ""
msgid ""
"Time syncronization not completing, while you wait - check the docs for "
"workarounds: https://archinstall.readthedocs.io/"
msgstr ""
msgid ""
"Skipping waiting for automatic time sync (this can cause issues if time is "
"out of sync during installation)"
msgstr ""
msgid ""
"Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr ""
msgid "Selected profiles: "
msgstr ""
msgid ""
"Time synchronization not completing, while you wait - check the docs for "
"workarounds: https://archinstall.readthedocs.io/"
msgstr ""
msgid "Mark/Unmark as nodatacow"
msgstr ""
msgid "Would you like to use compression or disable CoW?"
msgstr ""
msgid "Use compression"
msgstr ""
msgid "Disable Copy-on-Write"
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 ""
msgid "LVM configuration type"
msgstr ""
msgid ""
"LVM disk encryption with more than 2 partitions is currently not supported"
msgstr ""
msgid ""
"Use NetworkManager (necessary to configure internet graphically in GNOME and "
"KDE Plasma)"
msgstr ""
msgid "Select a LVM option"
msgstr ""
msgid "Partitioning"
msgstr ""
msgid "Logical Volume Management (LVM)"
msgstr ""
msgid "Physical volumes"
msgstr ""
msgid "Volumes"
msgstr ""
msgid "LVM volumes"
msgstr ""
msgid "LVM volumes to be encrypted"
msgstr ""
msgid "Select which LVM volumes to encrypt"
msgstr ""
msgid "Default layout"
msgstr ""
msgid "No Encryption"
msgstr ""
msgid "LUKS"
msgstr ""
msgid "LVM on LUKS"
msgstr ""
msgid "LUKS on LVM"
msgstr ""
msgid "Yes"
msgstr ""
msgid "No"
msgstr ""
msgid "Archinstall help"
msgstr ""
msgid " (default)"
msgstr ""
msgid "Press Ctrl+h for help"
msgstr ""
msgid "Choose an option to give Sway access to your hardware"
msgstr ""
msgid "Seat access"
msgstr ""
msgid "Mountpoint"
msgstr ""
msgid "HSM"
msgstr ""
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr ""
msgid "Disk encryption password"
msgstr ""
msgid "Partition - New"
msgstr ""
msgid "Filesystem"
msgstr ""
msgid "Invalid size"
msgstr ""
msgid "Start (default: sector {}): "
msgstr ""
msgid "End (default: {}): "
msgstr ""
msgid "Subvolume name"
msgstr ""
msgid "Disk configuration type"
msgstr ""
msgid "Root mount directory"
msgstr ""
msgid "Select language"
msgstr ""
msgid ""
"Write additional packages to install (space separated, leave blank to skip)"
msgstr ""
msgid "Invalid download number"
msgstr ""
msgid "Number downloads"
msgstr ""
msgid "The username you entered is invalid"
msgstr ""
msgid "Username"
msgstr ""
#, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr ""
msgid "Interfaces"
msgstr ""
msgid "You need to enter a valid IP in IP-config mode"
msgstr ""
msgid "Modes"
msgstr ""
msgid "IP address"
msgstr ""
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr ""
msgid "Gateway address"
msgstr ""
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr ""
msgid "DNS servers"
msgstr ""
msgid "Configure interfaces"
msgstr ""
msgid "Kernel"
msgstr ""
msgid "UEFI is not detected and some options are disabled"
msgstr ""
msgid "Info"
msgstr ""
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr ""
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr ""
msgid "Main profile"
msgstr ""
msgid "Confirm password"
msgstr ""
msgid "The confirmation password did not match, please try again"
msgstr ""
msgid "Not a valid directory"
msgstr ""
msgid "Would you like to continue?"
msgstr ""
msgid "Directory"
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 ""
msgid "Enabled"
msgstr ""
msgid "Disabled"
msgstr ""
msgid ""
"Please submit this issue (and file) to https://github.com/archlinux/"
"archinstall/issues"
msgstr ""
msgid "Mirror name"
msgstr ""
msgid "Url"
msgstr ""
msgid "Select signature check"
msgstr ""
msgid "Select execution mode"
msgstr ""
msgid "Press ? for help"
msgstr ""
msgid "Choose an option to give Hyprland access to your hardware"
msgstr ""
msgid "Additional repositories"
msgstr ""
msgid "NTP"
msgstr ""
msgid "Swap on zram"
msgstr ""
msgid "Name"
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 ""
msgid "HSM device"
msgstr ""
msgid "Some packages could not be found in the repository"
msgstr ""
msgid "User"
msgstr ""
msgid "The specified configuration will be applied"
msgstr ""
msgid "Wipe"
msgstr ""
msgid "Mark/Unmark as XBOOTLDR"
msgstr ""
msgid "Loading packages..."
msgstr ""
msgid ""
"Select any packages from the below list that should be installed additionally"
msgstr ""
msgid "Add a custom repository"
msgstr ""
msgid "Change custom repository"
msgstr ""
msgid "Delete custom repository"
msgstr ""
msgid "Repository name"
msgstr ""
msgid "Add a custom server"
msgstr ""
msgid "Change custom server"
msgstr ""
msgid "Delete custom server"
msgstr ""
msgid "Server url"
msgstr ""
msgid "Select regions"
msgstr ""
msgid "Add custom servers"
msgstr ""
msgid "Add custom repository"
msgstr ""
msgid "Loading mirror regions..."
msgstr ""
msgid "Mirrors and repositories"
msgstr ""
msgid "Selected mirror regions"
msgstr ""
msgid "Custom servers"
msgstr ""
msgid "Custom repositories"
msgstr ""
msgid "Only ASCII characters are supported"
msgstr ""
msgid "Show help"
msgstr ""
msgid "Exit help"
msgstr ""
msgid "Preview scroll up"
msgstr ""
msgid "Preview scroll down"
msgstr ""
msgid "Move up"
msgstr ""
msgid "Move down"
msgstr ""
msgid "Move right"
msgstr ""
msgid "Move left"
msgstr ""
msgid "Jump to entry"
msgstr ""
msgid "Skip selection (if available)"
msgstr ""
msgid "Reset selection (if available)"
msgstr ""
msgid "Select on single select"
msgstr ""
msgid "Select on multi select"
msgstr ""
msgid "Reset"
msgstr ""
msgid "Skip selection menu"
msgstr ""
msgid "Start search mode"
msgstr ""
msgid "Exit search mode"
msgstr ""
msgid ""
"labwc needs access to your seat (collection of hardware devices i.e. "
"keyboard, mouse, etc)"
msgstr ""
msgid "Choose an option to give labwc access to your hardware"
msgstr ""
msgid ""
"niri needs access to your seat (collection of hardware devices i.e. "
"keyboard, mouse, etc)"
msgstr ""
msgid "Choose an option to give niri access to your hardware"
msgstr ""
msgid "Mark/Unmark as ESP"
msgstr ""
msgid "Package group:"
msgstr ""
msgid "Exit archinstall"
msgstr ""
msgid "Reboot system"
msgstr ""
msgid "chroot into installation for post-installation configurations"
msgstr ""
msgid "Installation completed"
msgstr ""
msgid "What would you like to do next?"
msgstr ""
#, python-brace-format
msgid "Select which mode to configure for \"{}\""
msgstr ""
msgid "Incorrect credentials file decryption password"
msgstr ""
msgid "Incorrect password"
msgstr ""
msgid "Credentials file decryption password"
msgstr ""
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr ""
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 ""
msgid "Would you like to configure Bluetooth?"
msgstr ""
msgid "Print service"
msgstr ""
msgid "Would you like to configure the print service?"
msgstr ""
msgid "Power management"
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 ""
#, 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 ""
msgid "Starting device modifications in "
msgstr ""
msgid "No network connection found"
msgstr ""
msgid "Would you like to connect to a Wifi?"
msgstr ""
msgid "No wifi interface found"
msgstr ""
msgid "Select wifi network to connect to"
msgstr ""
msgid "Scanning wifi networks..."
msgstr ""
msgid "No wifi networks found"
msgstr ""
msgid "Failed setting up wifi"
msgstr ""
msgid "Enter wifi password"
msgstr ""
msgid "Ok"
msgstr ""
msgid "Removable"
msgstr ""
msgid "Install to removable location"
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr ""
msgid "Will install to standard location with NVRAM entry"
msgstr ""
msgid ""
"Would you like to install the bootloader to the default removable media "
"search location?"
msgstr ""
msgid ""
"This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is "
"useful for:"
msgstr ""
msgid "USB drives or other portable external media."
msgstr ""
msgid "Systems where you want the disk to be bootable on any computer."
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr ""
msgid "Will install to custom location with NVRAM entry"
msgstr ""
msgid ""
"Firmware that does not properly support NVRAM boot entries like most MSI "
"motherboards,"
msgstr ""
msgid "most Apple Macs, many laptops..."
msgstr ""
msgid "Language"
msgstr ""
msgid "Compression algorithm"
msgstr ""
msgid ""
"Only packages such as base, sudo, linux, linux-firmware, efibootmgr and "
"optional profile packages are installed."
msgstr ""
msgid "Select zram compression algorithm:"
msgstr ""
msgid "Use Network Manager (default backend)"
msgstr ""
msgid "Use Network Manager (iwd backend)"
msgstr ""
msgid "Firewall"
msgstr ""
msgid "Select audio configuration"
msgstr ""
msgid "Enter credentials file decryption password"
msgstr ""
msgid "Enter root password"
msgstr ""
msgid "Select bootloader to install"
msgstr ""
msgid "Configuration preview"
msgstr ""
msgid "Enter a directory for the configuration(s) to be saved"
msgstr ""
msgid "Select encryption type"
msgstr ""
msgid "Select disks for the installation"
msgstr ""
msgid "Enter a mountpoint"
msgstr ""
#, python-brace-format
msgid "Enter a size (default: {}): "
msgstr ""
msgid "Enter subvolume name"
msgstr ""
msgid "Enter subvolume mountpoint"
msgstr ""
msgid "Select a disk configuration"
msgstr ""
msgid "Enter root mount directory"
msgstr ""
msgid "You will use whatever drive-setup is mounted at the specified directory"
msgstr ""
msgid "WARNING: Archinstall won't check the suitability of this setup"
msgstr ""
msgid "Select main filesystem"
msgstr ""
msgid "Enter a hostname"
msgstr ""
msgid "Select timezone"
msgstr ""
msgid "Enter the number of parallel downloads to be enabled"
msgstr ""
#, python-brace-format
msgid "Value must be between 1 and {}"
msgstr ""
msgid "Select which kernel(s) to install"
msgstr ""
msgid "Enter a respository name"
msgstr ""
msgid "Enter the repository url"
msgstr ""
msgid "Enter server url"
msgstr ""
msgid "Select mirror regions to be enabled"
msgstr ""
msgid "Select optional repositories to be enabled"
msgstr ""
msgid "Select an interface"
msgstr ""
msgid "Choose network configuration"
msgstr ""
msgid "No packages found"
msgstr ""
msgid "Select which greeter to install"
msgstr ""
msgid "Select a profile type"
msgstr ""
msgid "Enter new password"
msgstr ""
msgid "Enter a username"
msgstr ""
msgid "Enter a password"
msgstr ""
msgid "The password did not match, please try again"
msgstr ""
msgid "Password strength: Weak"
msgstr ""
msgid "Password strength: Moderate"
msgstr ""
msgid "Password strength: Strong"
msgstr ""
================================================
FILE: archinstall/locales/ca/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.8\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] S'ha creat un fitxer de registre aquí: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Si us plau envieu aquest problema (i fitxer) a https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "Segur que voleu avortar?"
msgid "And one more time for verification: "
msgstr "Una vegada més per a verificar: "
msgid "Would you like to use swap on zram?"
msgstr "Us agradaria utilitzar swap a zram?"
msgid "Desired hostname for the installation: "
msgstr "Nom de host desitjat per a la instal·lació: "
msgid "Username for required superuser with sudo privileges: "
msgstr "Nom d'usuari pel superusuari amb privilegis sudo: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "Algun usuari addicional a instal·lar (deixeu-ho en blanc per no afegir-ne cap): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "Cal que aquest usuari sigui un superusuari (sudoer)?"
msgid "Select a timezone"
msgstr "Seleccioneu una franja horària"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "Voleu utilitzar GRUB com a gestor d'arranc en comptes de systemd-boot?"
msgid "Choose a bootloader"
msgstr "Trieu un gestor d'arranc"
msgid "Choose an audio server"
msgstr "Trieu un servidor d'àudio"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Només s'instal·laran paquets com base, base-devel, linux, linux-firmware, efibootmgr i altres paquets de perfil opcionals."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr ""
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "Si desitgeu un navegador web, com ara firefox o chromium, ho podeu especificar al proper missatge."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "Escriviu paquets addicionals a instal·lar (separats per espais, deixeu-ho en blanc per saltar aquest pas): "
msgid "Copy ISO network configuration to installation"
msgstr "Copiar la configuració de xarxa ISO a la instal·lació"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "Utilitzar NetworkManager (necessari per a configurar internet gràficament a GNOME i KDE)"
msgid "Select one network interface to configure"
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): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "Introduïu la IP de la porta d'enllaç (router) o deixeu-ho en blanc per a no utilitzar-ne cap: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "Introduïu els vostres servidors DNS (separats per espais o deixeu-ho en blanc per a cap): "
msgid "Select which filesystem your main partition should use"
msgstr "Seleccioneu quin sistema de fitxers cal utilitzar a la vostra partició principal"
msgid "Current partition layout"
msgstr "Distribució actual de les particions"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"Seleccioneu què fer amb\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "Introduïu el tipus de sistema de fitxers desitjat per a la partició"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "Introduïu la ubicació d'inici (en unitats dividides: s, GB, %, etc. ; per defecte: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "Introduïu la ubicació final (en unitats dividides: s, GB, %, etc. ; ex.: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} conté particions en cua. Això eliminarà aquestes particions. N'esteu segurs?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"Seleccioneu per índex la ubicació de les particions a eliminar"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"Seleccioneu per índex la ubicació de la partició a muntar"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * Els punts de muntatge de la partició són relatius a l'interior de la instal·lació. Per exemple, /boot seria l'arranc."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "Seleccioneu a on muntar la partició (deixeu-ho en blanc per a eliminar el punt de muntatge): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"Seleccioneu quina partició emmascarar per a formatejar"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"Seleccioneu quina partició marcar com a encriptada"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"Seleccioneu quina partició marcar com a arranc"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"Seleccioneu en quina partició establir un sistema de fitxers"
msgid "Enter a desired filesystem type for the partition: "
msgstr "Introduïu un sistema de fitxers desitjat per a la partició: "
msgid "Archinstall language"
msgstr "Idioma d'Archinstall"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "Esborrar totes les unitats seleccionades i utilitzar una taula de particions òptima predeterminada"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "Seleccioneu què fer amb cada volum individual (seguit de l'ús de la partició)"
msgid "Select what you wish to do with the selected block devices"
msgstr "Seleccioneu que desitgeu fer amb els dispositius de blocs seleccionats"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "Aquesta és una llista de perfils preprogramats que podrien facilitar la instal·lació de coses com entorns d'escriptori"
msgid "Select keyboard layout"
msgstr "Seleccioneu la distribució del teclat"
msgid "Select one of the regions to download packages from"
msgstr "Seleccioneu una de les regions des de la qual descarregar paquets"
msgid "Select one or more hard drives to use and configure"
msgstr "Seleccioneu un o més discos durs per a utilitzar i configurar"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "Per a obtenir la millor compatibilitat amb el vostre hardware AMD, és possible que us interessi utilitzar les opcions de codi obert o d'AMD / ATI."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "Per a obtenir la millor compatibilitat amb el vostre hardware Intel, és possible que us interessi utilitzar les opcions de codi obert o d'Intel.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "Per a obtenir la millor compatibilitat amb el vostre hardware Nvidia, és possible que us interessi utilitzar les opcions de controlador propietari d'Nvidia.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Seleccioneu un controlador gràfic o deixeu-ho en blanc per a instal·lar tots els controladors de codi obert"
msgid "All open-source (default)"
msgstr "Tots els de codi obert (per defecte)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "Escolliu quin kernel utilitzar o deixeu-ho en blanc per utilitzar el kernel per defecte \"{}\""
msgid "Choose which locale language to use"
msgstr "Escolliu quin idioma de localització utilitzar"
msgid "Choose which locale encoding to use"
msgstr "Escolliu quin idioma de codificació utilitzar"
msgid "Select one of the values shown below: "
msgstr "Seleccioneu un dels valors mostrats a sota: "
msgid "Select one or more of the options below: "
msgstr "Seleccioneu una o més de les opcions de sota: "
msgid "Adding partition...."
msgstr "Afegint partició...."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "Necessiteu introduir un fs-type vàlid per a continuar. Veieu `man parted` per a tipus de sistemes de fitxers vàlids."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "Error: L'enllistament de perfils de la URL \"{}\" ha resultat en:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "Error: No s'ha pogut de-codificar el resultat \"{}\" com a JSON:"
msgid "Keyboard layout"
msgstr "Distribució del teclat"
msgid "Mirror region"
msgstr "Regió del servidor"
msgid "Locale language"
msgstr "Idioma local"
msgid "Locale encoding"
msgstr "Codificació local"
msgid "Drive(s)"
msgstr "Disc(s)"
msgid "Disk layout"
msgstr "Disseny del disc"
msgid "Encryption password"
msgstr "Contrasenya de xifrat"
msgid "Swap"
msgstr "Swap"
msgid "Bootloader"
msgstr "Gestor d'arranc"
msgid "Root password"
msgstr "Contrasenya de root"
msgid "Superuser account"
msgstr "Compte de superusuari"
msgid "User account"
msgstr "Compte d'usuari"
msgid "Profile"
msgstr "Perfil"
msgid "Audio"
msgstr "Àudio"
msgid "Kernels"
msgstr "Kernels"
msgid "Additional packages"
msgstr "Paquets addicionals"
msgid "Network configuration"
msgstr "Configuració de la xarxa"
msgid "Automatic time sync (NTP)"
msgstr "Sincronització automàtica de l'hora (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "Instal·lar ({} ajust(s) faltant(s))"
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 ""
"Heu decidit saltar-vos la selecció de disc dur\n"
"i utilitzar la configuració muntada a {} (experimental)\n"
"AVÍS: Archinstall no verificarà la idoneïtat d'aquesta configuració\n"
"Voleu continuar?"
msgid "Re-using partition instance: {}"
msgstr "Re-utilitzant instància de partició: {}"
msgid "Create a new partition"
msgstr "Crear una nova partició"
msgid "Delete a partition"
msgstr "Eliminar una partició"
msgid "Clear/Delete all partitions"
msgstr "Netejar/Eliminar totes les particions"
msgid "Assign mount-point for a partition"
msgstr "Assignar punt de muntatge per a una partició"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "Marcar/Desmarcar una partició per a ser formatada (esborra les dades)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "Marcar/Desmarcar una partició com a encriptada"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "Marcar/Desmarcar una partició com a arranc (automàtic per a /boot)"
msgid "Set desired filesystem for a partition"
msgstr "Establir el sistema de fitxers desitjat per a una partició"
msgid "Abort"
msgstr "Avortar"
msgid "Hostname"
msgstr "Nom del host"
msgid "Not configured, unavailable unless setup manually"
msgstr "No configurat. No disponible a no ser que es configuri manualment"
msgid "Timezone"
msgstr "Franja horària"
msgid "Set/Modify the below options"
msgstr "Establir/Modificar les opcions següents"
msgid "Install"
msgstr "Instal·lar"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"Utilitzar ESC per a saltar\n"
"\n"
msgid "Suggest partition layout"
msgstr "Recomanar el disseny de partició"
msgid "Enter a password: "
msgstr "Introduïu una contrasenya: "
msgid "Enter a encryption password for {}"
msgstr "Introduïu una contrasenya de xifrat per {}"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "Introduïu la contrasenya de xifrat de disc (deixeu-ho en blanc per a no xifrar): "
msgid "Create a required super-user with sudo privileges: "
msgstr "Crear un superusuari requerit amb privilegis sudo: "
msgid "Enter root password (leave blank to disable root): "
msgstr "Introduïu la contrasenya de root (deixeu-ho en blanc per a deshabilitar root): "
msgid "Password for user \"{}\": "
msgstr "Contrasenya per a l'usuari \"{}\": "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "Verificant que els paquets addicionals existeixen (això pot tardar uns segons)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "Voleu utilitzar la sincronització automàtica d'hora (NTP) amb els servidors d'hora predeterminats?\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 ""
"L'hora del hardware i altres passos post-configuració poden ser necessaris per tal que NTP funcioni.\n"
"Per a més informació, consulteu la wiki d'Arch"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "Introduïu un nom d'usuari per a crear un usuari addicional (deixeu-ho en blanc per a saltar): "
msgid "Use ESC to skip\n"
msgstr "Utilitzeu ESC per a ometre\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
" Trieu un objecte de la llista i seleccioneu una de les accions disponibles per a executar"
msgid "Cancel"
msgstr "Cancel·lar"
msgid "Confirm and exit"
msgstr "Confirmar i sortir"
msgid "Add"
msgstr "Afegir"
msgid "Copy"
msgstr "Copiar"
msgid "Edit"
msgstr "Editar"
msgid "Delete"
msgstr "Eliminar"
msgid "Select an action for '{}'"
msgstr "Seleccioneu una acció per a '{}'"
msgid "Copy to new key:"
msgstr "Copiar a clau nova:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "Tipus de nic desconegut: {}. Els valors possibles són {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"Aquesta és la vostra configuració escollida:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman ja està en execució; s'esperarà un màxim de 10 minuts perquè acabi."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "El bloqueig pre-existent de pacman mai s'ha tancat. Si us plau, netegeu qualsevol sessió de pacman existent abans d'utilitzar archinstall."
msgid "Choose which optional additional repositories to enable"
msgstr "Trieu quins repositoris addicionals opcionals cal activar"
msgid "Add a user"
msgstr "Afegir un usuari"
msgid "Change password"
msgstr "Canviar contrasenya"
msgid "Promote/Demote user"
msgstr "Promocionar/Degradar usuari"
msgid "Delete User"
msgstr "Eliminar usuari"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"Definir un usuari nou\n"
msgid "User Name : "
msgstr "Nom d'usuari: "
msgid "Should {} be a superuser (sudoer)?"
msgstr "Cal que {} sigui un superusuari (sudoer)?"
msgid "Define users with sudo privilege: "
msgstr "Definiu usuaris amb privilegis sudo: "
msgid "No network configuration"
msgstr "Sense configuració de xarxa"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Establir els subvolums desitjats a una partició btrfs"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"Seleccioneu en quina partició configurar els subvolums"
msgid "Manage btrfs subvolumes for current partition"
msgstr "Administrar subvolums btrfs per a la partició actual"
msgid "No configuration"
msgstr "Sense configuració"
msgid "Save user configuration"
msgstr "Guardar configuració d'usuari"
msgid "Save user credentials"
msgstr "Guardar credencials d'usuari"
msgid "Save disk layout"
msgstr "Guardar disseny del disc"
msgid "Save all"
msgstr "Guardar tot"
msgid "Choose which configuration to save"
msgstr "Escolliu quina configuració guardar"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "Introduïu un directori on guardar les configuracions: "
msgid "Not a valid directory: {}"
msgstr "Directori invàlid: {}"
msgid "The password you are using seems to be weak,"
msgstr "La contrasenya que esteu utilitzant sembla dèbil,"
msgid "are you sure you want to use it?"
msgstr "segur que voleu utilitzar-la?"
msgid "Optional repositories"
msgstr "Repositoris opcionals"
msgid "Save configuration"
msgstr "Guardar configuració"
msgid "Missing configurations:\n"
msgstr "Configuracions que falten:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "Cal especificar una contrasenya de root o un mínim d'un superusuari"
msgid "Manage superuser accounts: "
msgstr "Gestionar comptes de superusuari: "
msgid "Manage ordinary user accounts: "
msgstr "Gestionar comptes d'usuaris ordinaris: "
msgid " Subvolume :{:16}"
msgstr " Subvolum :{:16}"
msgid " mounted at {:16}"
msgstr " muntat a {:16}"
msgid " with option {}"
msgstr " amb opció {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
" Completeu els valors desitjats per a un nou subvolum\n"
msgid "Subvolume name "
msgstr "Nom del subvolum "
msgid "Subvolume mountpoint"
msgstr "Punt de muntatge del subvolum"
msgid "Subvolume options"
msgstr "Opcions del subvolum"
msgid "Save"
msgstr "Guardar"
msgid "Subvolume name :"
msgstr "Nom del subvolum :"
msgid "Select a mount point :"
msgstr "Seleccioneu un punt de muntatge :"
msgid "Select the desired subvolume options "
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í: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "Us agradaria utilitzar subvolums BTRFS amb una estructura predeterminada?"
msgid "Would you like to use BTRFS compression?"
msgstr "Us agradaria utilitzar la compressió BTRFS?"
msgid "Would you like to create a separate partition for /home?"
msgstr "Us agradaria crear una partició separada per a /home?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "Les unitats seleccionades no tenen la capacitat mínima requerida per una recomanació automàtica\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "Capacitat mínima per la partició /home: {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Capacitat mínima per la partició Arch Linux: {}GB"
msgid "Continue"
msgstr "Continuar"
msgid "yes"
msgstr "sí"
msgid "no"
msgstr "no"
msgid "set: {}"
msgstr "establir: {}"
msgid "Manual configuration setting must be a list"
msgstr "La configuració manual ha de ser una llista"
msgid "No iface specified for manual configuration"
msgstr "No s'ha especificat iface per a la configuració manual"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "La configuració manual de la NIC sense DHCP automàtic necessita una direcció IP"
msgid "Add interface"
msgstr "Afegir interfície"
msgid "Edit interface"
msgstr "Editar interfície"
msgid "Delete interface"
msgstr "Eliminar interfície"
msgid "Select interface to add"
msgstr "Seleccioneu la interfície a afegir"
msgid "Manual configuration"
msgstr "Configuració manual"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "Marcar/Desmarcar una partició com a comprimida (només btrfs)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "La contrasenya que esteu utilitzant sembla dèbil, segur que voleu utilitzar-la?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "Proporciona una selecció d'entorns d'escriptori i gestors de finestres en mosaic, com ara gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "Seleccioneu el vostre entorn d'escriptori desitjat"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "Una instal·lació molt bàsica que us permet personalitzar Arch Linux com us sembli millor."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "Proporciona una selecció de varis paquets de servidor per a instal·lar i habilitar, com ara httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "Escolliu quins servidors instal·lar. Si no n'hi ha cap, es farà una instal·lació mínima"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "Instal·la un sistema mínim, així com controladors xorg i gràfics."
msgid "Press Enter to continue."
msgstr "Polseu Enter per a continuar."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "Us agradaria accedir a la instal·lació acabada de crear i realitzar la configuració posterior a la instal·lació?"
msgid "Are you sure you want to reset this setting?"
msgstr "Segur que voleu re-establir aquesta configuració?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "Seleccioneu un o més discos durs per a utilitzar i configurar\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "Qualsevol modificació a la configuració existent re-establirà el disseny del disc!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "Si re-establiu la selecció del disc dur, això també reiniciarà el disseny actual del disc. N'esteu segurs?"
msgid "Save and exit"
msgstr "Guardar i sortir"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"conté particions a la cua, això les eliminarà, n'esteu segurs?"
msgid "No audio server"
msgstr "Sense servidor d'àudio"
msgid "(default)"
msgstr "(per defecte)"
msgid "Use ESC to skip"
msgstr "Utilitzeu ESC per a ometre"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"Utilitzeu CTRL+C per reiniciar la selecció actual\n"
"\n"
msgid "Copy to: "
msgstr "Copiar a: "
msgid "Edit: "
msgstr "Editar: "
msgid "Key: "
msgstr "Clau: "
msgid "Edit {}: "
msgstr "Editar {}: "
msgid "Add: "
msgstr "Afegir: "
msgid "Value: "
msgstr "Valor: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "Podeu ometre la selecció d'una unitat i la partició i utilitzar qualsevol configuració d'unitat que estigui muntada a /mnt (experimental)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "Seleccioneu un dels discs o ometeu i utilitzeu /mnt com a predeterminat"
msgid "Select which partitions to mark for formatting:"
msgstr "Seleccioneu quines particions marcar per a formatar:"
msgid "Use HSM to unlock encrypted drive"
msgstr "Utilitzar HSM per desbloquejar la unitat xifrada"
msgid "Device"
msgstr "Dispositiu"
msgid "Size"
msgstr "Mida"
msgid "Free space"
msgstr "Espai lliure"
msgid "Bus-type"
msgstr "Tipus de bus"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "S'ha d'especificar una contrasenya de root o un mínim d'un usuari amb privilegis sudo"
msgid "Enter username (leave blank to skip): "
msgstr "Introduïu el nom d'usuari (deixeu-ho en blanc per a ometre): "
msgid "The username you entered is invalid. Try again"
msgstr "El nom d'usuari introduït no és vàlid. Intenteu-ho de nou"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "Cal que \"{}\" sigui un superusuari (sudo)?"
msgid "Select which partitions to encrypt"
msgstr "Seleccioneu quines particions xifrar"
msgid "very weak"
msgstr "molt dèbil"
msgid "weak"
msgstr "dèbil"
msgid "moderate"
msgstr "moderada"
msgid "strong"
msgstr "forta"
msgid "Add subvolume"
msgstr "Afegir subvolum"
msgid "Edit subvolume"
msgstr "Editar subvolum"
msgid "Delete subvolume"
msgstr "Eliminar subvolum"
msgid "Configured {} interfaces"
msgstr "{} interfícies configurades"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "Aquesta opció habilita el número de descàrregues paral·leles que poden haver-hi durant la instal·lació"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"Introduïu el número de descàrregues paral·leles a activar.\n"
" (Introduïu un valor entre 1 i {})\n"
"Nota:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - Valor màxim : {} ( Permet {} descàrregues paral·leles, permet {} descàrregues simultànies )"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - Valor mínim : 1 ( Permet 1 descàrrega paral·lela, permet 2 descàrregues simultànies )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - Deshabilitar/Per defecte : 0 ( Desactiva les descàrregues paral·leles, només permet 1 descàrrega simultània )"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "Entrada no vàlida! Intenteu-ho novament amb una entrada vàlida [1 a {max_downloads}, o 0 per desactivar]"
msgid "Parallel Downloads"
msgstr "Descàrregues paral·leles"
msgid "ESC to skip"
msgstr "ESC per a ometre"
msgid "CTRL+C to reset"
msgstr "CTRL+C per a re-establir"
msgid "TAB to select"
msgstr "TAB per a seleccionar"
msgid "[Default value: 0] > "
msgstr "[Valor per defecte: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "Per a poder utilitzar aquesta traducció, instal·leu manualment una font que suporti l'idioma."
msgid "The font should be stored as {}"
msgstr "La font s'ha de guardar com a {}"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Archinstall necessita permisos de root per a executar-se. Vegeu --help per a més detalls."
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: {}"
msgid "Select one or more devices to use and configure"
msgstr "Seleccioneu un o més dispositius per a utilitzar i configurar"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "Si re-establiu la selecció del dispositiu, això també en re-establirà el seu disseny actual. N'esteu segurs?"
msgid "Existing Partitions"
msgstr "Particions existents"
msgid "Select a partitioning option"
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"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "Aquesta és una llista de profiles_bck preprogramada que podria facilitar la instal·lació de coses com ara entorns d'escriptori"
msgid "Current profile selection"
msgstr "Selecció de perfil actual"
msgid "Remove all newly added partitions"
msgstr "Eliminar totes les particions afegides recentment"
msgid "Assign mountpoint"
msgstr "Assignar punt de muntatge"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "Marcar/Desmarcar per a formatar (esborra les dades)"
msgid "Mark/Unmark as bootable"
msgstr "Marcar/Desmarcar com a arranc"
msgid "Change filesystem"
msgstr "Canviar el sistema de fitxers"
msgid "Mark/Unmark as compressed"
msgstr "Marcar/Desmarcar com a comprimit"
msgid "Set subvolumes"
msgstr "Establir subvolums"
msgid "Delete partition"
msgstr "Eliminar partició"
msgid "Partition"
msgstr "Partició"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "Aquesta partició està actualment xifrada, cal especificar un sistema de fitxers per a formatar-la"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "Els punts de muntatge de la partició són relatius a l'interior de la instal·lació; per exemple, /boot seria l'arranc."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "Si s'estableix el punt de muntatge /boot, la partició també es marcarà com a partició d'arranc."
msgid "Mountpoint: "
msgstr "Punt de muntatge: "
msgid "Current free sectors on device {}:"
msgstr "Sectors lliures actuals al dispositiu {}:"
msgid "Total sectors: {}"
msgstr "Sectors totals: {}"
msgid "Enter the start sector (default: {}): "
msgstr "Introduïu el sector d'inici (per defecte: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
msgstr "Introduïu el sector final de la partició (percentatge o número de bloc, per defecte: {}): "
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: {}"
msgid "Encryption type"
msgstr "Tipus de xifrat"
msgid "Iteration time"
msgstr "Temps d'iteració"
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr "Introduïu el temps d'iteració per al xifrat LUKS (en mil·lisegons)"
msgid "Higher values increase security but slow down boot time"
msgstr "Un valor més alt incrementarà la seguretat però endarrerirà el temps d'arrancada"
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr "Per defecte: 10000ms, Rang recomanat: 1000-60000"
msgid "Iteration time cannot be empty"
msgstr "El temps d'iteració no pot ser buit"
msgid "Iteration time must be at least 100ms"
msgstr "El temps d'iteració ha de ser d'un mínim de 100ms"
msgid "Iteration time must be at most 120000ms"
msgstr "El temps d'iteració ha de ser d'un màxim de 120000ms"
msgid "Please enter a valid number"
msgstr "Si us plau, introduïu un número vàlid"
msgid "Partitions"
msgstr "Particions"
msgid "No HSM devices available"
msgstr "No hi ha dispositius HSM disponibles"
msgid "Partitions to be encrypted"
msgstr "Particions a xifrar"
msgid "Select disk encryption option"
msgstr "Seleccioneu la opció de xifrat de disc"
msgid "Select a FIDO2 device to use for HSM"
msgstr "Seleccioneu un dispositiu FIDO2 per a utilitzar amb HSM"
msgid "Use a best-effort default partition layout"
msgstr "Utilitzar un disseny de partició òptim perdeterminat"
msgid "Manual Partitioning"
msgstr "Partició manual"
msgid "Pre-mounted configuration"
msgstr "Configuració premuntada"
msgid "Unknown"
msgstr "Desconegut"
msgid "Partition encryption"
msgstr "Xifrat de partició"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! Formatant {} en "
msgid "← Back"
msgstr "← Tornar"
msgid "Disk encryption"
msgstr "Xifrat de disc"
msgid "Configuration"
msgstr "Configuració"
msgid "Password"
msgstr "Contrasenya"
msgid "All settings will be reset, are you sure?"
msgstr "Tots els ajusts es reiniciaran, n'esteu segurs?"
msgid "Back"
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: {}"
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 "El controlador propietari d'Nvidia no és compatible amb sway. És possible que experimenteu problemes. Voleu continuar?"
msgid "Installed packages"
msgstr "Paquets instal·lats"
msgid "Add profile"
msgstr "Afegir perfil"
msgid "Edit profile"
msgstr "Editar perfil"
msgid "Delete profile"
msgstr "Eliminar perfil"
msgid "Profile name: "
msgstr "Nom del perfil: "
msgid "The profile name you entered is already in use. Try again"
msgstr "El nom de perfil que heu introduït ja està en ús. Intenteu-ho de nou"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "Paquets que s'instal·laran amb aquest perfil (separats per espais, deixeu-ho en blanc per a ometre): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "Serveis que s'habilitaran amb aquest perfil (separats per espais, deixeu-ho en blanc per a ometre): "
msgid "Should this profile be enabled for installation?"
msgstr "Cal habilitar aquest perfil per la instal·lació?"
msgid "Create your own"
msgstr "Creeu el vostre propi"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"Seleccioneu un controlador gràfic o deixeu-ho en blanc per instal·lar tots els controladors de codi obert"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway necessita accés als vostres dispositius de hardware (teclat, ratolí, etc)"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Escolliu una opció per permetre que Sway accedeixi al vostre hardware"
msgid "Graphics driver"
msgstr "Controlador de gràfics"
msgid "Greeter"
msgstr "Gestor d'inici de sessió"
msgid "Please chose which greeter to install"
msgstr "Si us plau, escolliu quin gestor d'inici de sessió instal·lar"
msgid "This is a list of pre-programmed default_profiles"
msgstr "Això és una llista de default_profiles preprogramada"
msgid "Disk configuration"
msgstr "Configuració del disc"
msgid "Profiles"
msgstr "Perfils"
msgid "Finding possible directories to save configuration files ..."
msgstr "Buscant possibles directoris on guardar els fitxers de configuració ..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "Seleccioneu un directori (o directoris) on guardar els fitxers de configuració"
msgid "Add a custom mirror"
msgstr "Afegir un mirall personalitzat"
msgid "Change custom mirror"
msgstr "Canviar mirall personalitzat"
msgid "Delete custom mirror"
msgstr "Eliminar mirall personalitzat"
msgid "Enter name (leave blank to skip): "
msgstr "Introduïu el nom: (deixeu-ho en blanc per a ometre): "
msgid "Enter url (leave blank to skip): "
msgstr "Introduïu la URL (deixeu-ho en blanc per a ometre): "
msgid "Select signature check option"
msgstr "Seleccioneu la opció de verificació de firma"
msgid "Select signature option"
msgstr "Seleccioneu la opció de firma"
msgid "Custom mirrors"
msgstr "Miralls personalitzats"
msgid "Defined"
msgstr "Definit"
msgid "Save user configuration (including disk layout)"
msgstr "Guardar la configuració de l'usuari (incloent el disseny del disc)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"Introduïu un directori on guardar les configuracions (compleció amb TAB activada)\n"
"Directori d'emmagatzematge: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"Voleu guardar {} fitxer(s) de configuració a la següent ubicació?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "Guardant {} fitxer(s) de configuració a {}"
msgid "Mirrors"
msgstr "Miralls"
msgid "Mirror regions"
msgstr "Regions dels miralls"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - Valor màxim : {} ( Permet {} descàrregues paral·leles, permets {max_downloads+1} descàrregues simultànies )"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "Entrada no vàlida! Intenteu-ho de nou amb una entrada vàlida [1 a {}, o 0 per desactivar]"
msgid "Locales"
msgstr "Llocs"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "Utilitzar NetworkManager (necessari per a configurar internet gràficament a GNOME i KDE)"
msgid "Total: {} / {}"
msgstr "Total: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "Tots els valors introduïts poden tenir una unitat com a sufix: B, KB, KiB, MB, MiB..."
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "Si no es proporciona cap unitat, el valor s'interpreta com sectors"
msgid "Enter start (default: sector {}): "
msgstr "Introduïu l'inici (per defecte: sector {}): "
msgid "Enter end (default: {}): "
msgstr "Introduïu el final (per defecte: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "No es poden determinar els dispositius fido2. Està instal·lat libfido2?"
msgid "Path"
msgstr "Ruta"
msgid "Manufacturer"
msgstr "Fabricant"
msgid "Product"
msgstr "Producte"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "Configuració no vàlida: {error}"
msgid "Type"
msgstr "Tipus"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "Aquesta opció habilita el número de descàrregues paral·leles que poden haver-hi mentre es descarreguen paquets"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"Introduïu el número de descàrregues paral·leles a activar.\n"
"\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 )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - Desactivar/Per defecte : 0 ( Desactiva les descàrregues paral·leles, només permet 1 descàrrega simultània )\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "Entrada no vàlida! Intenteu-ho de nou amb una entrada vàlida [o 0 per a desactivar]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Hyprland necessita accés al vostre seient (col·lecció de dispositius de hardware, és a dir, teclat, ratolí, etc)"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Escolliu una opció per permetre a Hyprland l'accés al vostre hardware"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "Tots els valors introduïts poden tenir un sufix d'unitat: %, B, KB, KiB, MB, MiB..."
msgid "Would you like to use unified kernel images?"
msgstr "Us agradaria utilitzar imatges del kernel unificades?"
msgid "Unified kernel images"
msgstr "Imatges del kernel unificades"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "Esperant a què es completi la sincronització de l'hora (timedatectl show)."
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "La sincronització d'hora no es completa. Mentre espereu - consulteu la documentació per a trobar solucions: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "Ometent l'espera de la sincronització automàtica de l'hora (això pot causar problemes si l'hora no està sincronitzada durant la instal·lació)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "Esperant a què es completi la sincronització del clauer d'Arch Linux (archlinux-keyring-wkd-sync)."
msgid "Selected profiles: "
msgstr "Perfils seleccionats: "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "La sincronització d'hora no es completa. Mentre espereu - consulteu la documentació per a trobar solucions: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "Marcar/Desmarcar com nodatacow"
msgid "Would you like to use compression or disable CoW?"
msgstr "Us agradaria utilitzar compressió o desactivar CoW?"
msgid "Use compression"
msgstr "Utilitzar compressió"
msgid "Disable Copy-on-Write"
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ó: {}"
msgid "LVM configuration type"
msgstr "Tipus de configuració LVM"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "Actualment no s'admet el xifrat de disc LVM amb més de 2 particions"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "Utilitzar NetworkManager (necessari per a configurar internet gràficament a GNOME i KDE Plasma)"
msgid "Select a LVM option"
msgstr "Seleccionar una opció LVM"
msgid "Partitioning"
msgstr "Particionament"
msgid "Logical Volume Management (LVM)"
msgstr "Gestió de volums lògics (LVM)"
msgid "Physical volumes"
msgstr "Volums físics"
msgid "Volumes"
msgstr "Volums"
msgid "LVM volumes"
msgstr "Volums LVM"
msgid "LVM volumes to be encrypted"
msgstr "Volums LVM a xifrar"
msgid "Select which LVM volumes to encrypt"
msgstr "Seleccioneu quins volums LVM cal xifrar"
msgid "Default layout"
msgstr "Disseny predeterminat"
msgid "No Encryption"
msgstr "Sense xifrat"
msgid "LUKS"
msgstr "LUKS"
msgid "LVM on LUKS"
msgstr "LVM en LUKS"
msgid "LUKS on LVM"
msgstr "LUKS en LVM"
msgid "Yes"
msgstr "Sí"
msgid "No"
msgstr "No"
msgid "Archinstall help"
msgstr "Ajuda d'Archinstall"
msgid " (default)"
msgstr " (predeterminat)"
msgid "Press Ctrl+h for help"
msgstr "Polseu Ctrl+h per ajuda"
msgid "Choose an option to give Sway access to your hardware"
msgstr "Escolliu una opció per permetre que Sway accedeixi al vostre hardware"
msgid "Seat access"
msgstr "Accés al seient"
msgid "Mountpoint"
msgstr "Punt de muntatge"
msgid "HSM"
msgstr "HSM"
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "Introduïu la contrasenya del xifrat de disc (deixeu-ho en blanc per a no xifrar)"
msgid "Disk encryption password"
msgstr "Contrasenya del xifrat del disc"
msgid "Partition - New"
msgstr "Partició - Nova"
msgid "Filesystem"
msgstr "Sistema de fitxers"
msgid "Invalid size"
msgstr "Mida invàlida"
msgid "Start (default: sector {}): "
msgstr "Inici (per defecte: sector {}): "
msgid "End (default: {}): "
msgstr "Final (per defecte: {}): "
msgid "Subvolume name"
msgstr "Nom del subvolum"
msgid "Disk configuration type"
msgstr "Tipus de configuració del disc"
msgid "Root mount directory"
msgstr "Directori de muntatge arrel"
msgid "Select language"
msgstr "Seleccioneu l'idioma"
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "Escriviu paquets addicionals per instal·lar (separats per espais; deixeu-ho en blanc per saltar aquest pas):"
msgid "Invalid download number"
msgstr "Número de descàrrega invàlid"
msgid "Number downloads"
msgstr "Número de descàrregues"
msgid "The username you entered is invalid"
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"
msgid "Interfaces"
msgstr "Interfícies"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "Necessiteu introduir una IP vàlida al mode de configuració d'IP"
msgid "Modes"
msgstr "Modes"
msgid "IP address"
msgstr "Adreça IP"
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "Introduïu la IP de la porta d'enllaç (router). Deixeu-ho en blanc per a no utilitzar-ne cap."
msgid "Gateway address"
msgstr "Adreça de la porta d'enllaç"
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "Introduïu els vostres servidors DNS (separats per espais; deixeu-ho en blanc per a cap)"
msgid "DNS servers"
msgstr "Servidors DNS"
msgid "Configure interfaces"
msgstr "Configurar interfícies"
msgid "Kernel"
msgstr "Nuclis"
msgid "UEFI is not detected and some options are disabled"
msgstr "S'han desactivat algunes opcions perquè no s'ha detectat UEFI"
msgid "Info"
msgstr "Info"
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "El controlador propietari Nvidia no és compatible amb Sway."
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "És possible que experimenteu problemes. Voleu continuar?"
msgid "Main profile"
msgstr "Perfil principal"
msgid "Confirm password"
msgstr "Confirmar contrasenya"
msgid "The confirmation password did not match, please try again"
msgstr "La confirmació de la contrasenya no coincideix, si us plau torneu-ho a intentar"
msgid "Not a valid directory"
msgstr "Directori invàlid"
msgid "Would you like to continue?"
msgstr "Voleu continuar?"
msgid "Directory"
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 {}?"
msgid "Enabled"
msgstr "Activat"
msgid "Disabled"
msgstr "Desactivat"
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr "Si us plau, envieu aquest problema (i fitxer) a https://github.com/archlinux/archinstall/issues"
msgid "Mirror name"
msgstr "Nom del mirall"
msgid "Url"
msgstr "Url"
msgid "Select signature check"
msgstr "Seleccionar verificació de signatura"
msgid "Select execution mode"
msgstr "Seleccionar mode d'execució"
msgid "Press ? for help"
msgstr "Polseu ? per accedir a l'ajuda"
msgid "Choose an option to give Hyprland access to your hardware"
msgstr "Escolliu una opció per permetre a Hyprland l'accés al vostre maquinari"
msgid "Additional repositories"
msgstr "Repositoris addicionals"
msgid "NTP"
msgstr "NTP"
msgid "Swap on zram"
msgstr "Swap a zram"
msgid "Name"
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: {}): "
msgid "HSM device"
msgstr "Dispositiu HSM"
msgid "Some packages could not be found in the repository"
msgstr "Alguns paquets no s'han trobat al repositori"
msgid "User"
msgstr "Usuari"
msgid "The specified configuration will be applied"
msgstr "S'aplicarà la configuració especificada"
msgid "Wipe"
msgstr "Esborrat complet"
msgid "Mark/Unmark as XBOOTLDR"
msgstr "Marcar/Desmarcar com XBOOTLDR"
msgid "Loading packages..."
msgstr "Carregant paquets..."
msgid "Select any packages from the below list that should be installed additionally"
msgstr "Seleccioneu qualsevol paquet de la llista de sota a incloure a la instal·lació"
msgid "Add a custom repository"
msgstr "Afegir un repositori personalitzat"
msgid "Change custom repository"
msgstr "Canviar repositori personalitzat"
msgid "Delete custom repository"
msgstr "Eliminar repositori personalitzat"
msgid "Repository name"
msgstr "Nom del repositori"
msgid "Add a custom server"
msgstr "Afegir un servidor personalitzat"
msgid "Change custom server"
msgstr "Canviar servidor personalitzat"
msgid "Delete custom server"
msgstr "Eliminar servidor personalitzat"
msgid "Server url"
msgstr "URL del servidor"
msgid "Select regions"
msgstr "Seleccioneu regions"
msgid "Add custom servers"
msgstr "Afegir servidors personalitzats"
msgid "Add custom repository"
msgstr "Afegir un repositori personalitzat"
msgid "Loading mirror regions..."
msgstr "Carregant regions dels miralls..."
msgid "Mirrors and repositories"
msgstr "Miralls i repositoris"
msgid "Selected mirror regions"
msgstr "Regions de miralls seleccionades"
msgid "Custom servers"
msgstr "Servidors personalitzats"
msgid "Custom repositories"
msgstr "Repositoris personalitzats"
msgid "Only ASCII characters are supported"
msgstr "Només es suporten caràcters ASCII"
msgid "Show help"
msgstr "Mostrar l'ajuda"
msgid "Exit help"
msgstr "Sortir de l'ajuda"
msgid "Preview scroll up"
msgstr "Previsualització amunt"
msgid "Preview scroll down"
msgstr "Previsualització avall"
msgid "Move up"
msgstr "Mou amunt"
msgid "Move down"
msgstr "Mou avall"
msgid "Move right"
msgstr "Mou a la dreta"
msgid "Move left"
msgstr "Mou a l'esquerra"
msgid "Jump to entry"
msgstr "Saltar cap a un registre"
msgid "Skip selection (if available)"
msgstr "Saltar la selecció (si està disponible)"
msgid "Reset selection (if available)"
msgstr "Reiniciar la selecció (si està disponible)"
msgid "Select on single select"
msgstr "Selecció única"
msgid "Select on multi select"
msgstr "Selecció múltiple"
msgid "Reset"
msgstr "Reiniciar"
msgid "Skip selection menu"
msgstr "Saltar el menú de selecció"
msgid "Start search mode"
msgstr "Iniciar el mode de cerca"
msgid "Exit search mode"
msgstr "Sortir del mode de cerca"
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "labwc necessita accés al vostre seient (gestor de dispositius de maquinari, com ara teclat, ratolí, etc)"
msgid "Choose an option to give labwc access to your hardware"
msgstr "Escolliu una opció per permetre que labwc accedeixi al vostre hardware"
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "niri necessita accés al vostre seient (gestor de dispositius de maquinari, com ara teclat, ratolí, etc)"
msgid "Choose an option to give niri access to your hardware"
msgstr "Escolliu una opció per permetre que niri accedeixi al vostre hardware"
msgid "Mark/Unmark as ESP"
msgstr "Marcar/Desmarcar com a ESP"
msgid "Package group:"
msgstr "Group de paquets:"
msgid "Exit archinstall"
msgstr "Sortir d'Archinstall"
msgid "Reboot system"
msgstr "Reiniciar el sistema"
msgid "chroot into installation for post-installation configurations"
msgstr "feu chroot a la instal·lació per a configuracions posteriors"
msgid "Installation completed"
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 \"{}\""
msgid "Incorrect credentials file decryption password"
msgstr "Contrasenya de desencriptació incorrecta pel fitxer de credencials"
msgid "Incorrect password"
msgstr "Contrasenya incorrecta"
msgid "Credentials file decryption password"
msgstr "Contrasenya de desencriptació del fitxer de credencials"
msgid "Do you want to encrypt the user_credentials.json file?"
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: {}"
msgid "New version available"
msgstr "Versió nova disponible"
msgid "Passwordless login"
msgstr "Inici de sessió sense contrasenya"
msgid "Second factor login"
msgstr "Inici de sessió amb segon factor"
msgid "Bluetooth"
msgstr "Bluetooth"
msgid "Would you like to configure Bluetooth?"
msgstr "Voleu configurar el Bluetooth?"
msgid "Print service"
msgstr ""
#, fuzzy
msgid "Would you like to configure the print service?"
msgstr "Voleu configurar el Bluetooth?"
#, fuzzy
msgid "Power management"
msgstr "Gestió de particions: {}"
msgid "Authentication"
msgstr "Autenticació"
msgid "Applications"
msgstr "Aplicacions"
msgid "U2F login method: "
msgstr "Mètode d'inici de sessió U2F: "
msgid "Passwordless sudo: "
msgstr "Sudo sense contrasenya: "
#, python-brace-format
msgid "Btrfs snapshot type: {}"
msgstr "Tipus d'instantània Btrfs: {}"
msgid "Syncing the system..."
msgstr "Sincronitzant el sistema..."
msgid "Value cannot be empty"
msgstr "El valor no pot ser buit"
msgid "Snapshot type"
msgstr "Tipus d'instantània"
#, python-brace-format
msgid "Snapshot type: {}"
msgstr "Tipus d'instantània: {}"
msgid "U2F login setup"
msgstr "Configuració d'autenticació U2F"
msgid "No U2F devices found"
msgstr "No s'han trobat dispositius U2F"
msgid "U2F Login Method"
msgstr "Mètode d'inici de sessió U2F"
msgid "Enable passwordless sudo?"
msgstr "Cal activar sudo sense contrasenya?"
#, python-brace-format
msgid "Setting up U2F device for user: {}"
msgstr "Preparant el dispositiu U2F per a l'usuari: {}"
msgid "You may need to enter the PIN and then touch your U2F device to register it"
msgstr "Pot ser que necessiteu introduir el PIN i tocar el dispositiu U2F per a registrar-lo"
msgid "Starting device modifications in "
msgstr "Començant modificacions del dispositiu en "
msgid "No network connection found"
msgstr "No s'ha trobat cap configuració de xarxa"
msgid "Would you like to connect to a Wifi?"
msgstr "Us voleu connectar al Wifi?"
msgid "No wifi interface found"
msgstr "No s'ha trobat cap interfície wifi"
msgid "Select wifi network to connect to"
msgstr "Seleccioneu la xarxa wifi on connectar-se"
msgid "Scanning wifi networks..."
msgstr "Escanejant xarxes wifi..."
msgid "No wifi networks found"
msgstr "No s'han trobat xarxes wifi"
msgid "Failed setting up wifi"
msgstr "Error configurant el wifi"
msgid "Enter wifi password"
msgstr "Introduïu la contrasenya del wifi"
msgid "Ok"
msgstr "Ok"
msgid "Removable"
msgstr "Extraïble"
msgid "Install to removable location"
msgstr "Instal·lar a un mitjà extraïble"
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr "S'instal·larà a /EFI/BOOT (mitjà extraïble)"
msgid "Will install to standard location with NVRAM entry"
msgstr "S'instal·larà a una ubicació estàndard amb un registre NVRAM"
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr "Voleu instal·lar el bootloader a la ubicació predeterminada del dispositiu extraïble?"
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr "Això instal·larà el bootloader a /EFI/BOOT/BOOTX64.EFI (o similar). És útil per a:"
msgid "USB drives or other portable external media."
msgstr "Llapis USB o altres mitjans extraïbles externs."
msgid "Systems where you want the disk to be bootable on any computer."
msgstr "Sistemes on vulgueu que el dispositiu arranqui en qualsevol ordinador."
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr "Firmware que no suporta registres d'arrancada NVRAM."
#, fuzzy
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr "S'instal·larà a /EFI/BOOT (mitjà extraïble)"
#, fuzzy
msgid "Will install to custom location with NVRAM entry"
msgstr "S'instal·larà a una ubicació estàndard amb un registre NVRAM"
#, fuzzy
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr "Firmware que no suporta registres d'arrancada NVRAM."
msgid "most Apple Macs, many laptops..."
msgstr ""
#, fuzzy
msgid "Language"
msgstr "Idioma local"
msgid "Compression algorithm"
msgstr ""
#, fuzzy
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Només s'instal·laran paquets com base, base-devel, linux, linux-firmware, efibootmgr i altres paquets de perfil opcionals."
#, fuzzy
msgid "Select zram compression algorithm:"
msgstr "Seleccioneu un punt de muntatge :"
msgid "Use Network Manager (default backend)"
msgstr ""
msgid "Use Network Manager (iwd backend)"
msgstr ""
================================================
FILE: archinstall/locales/cs/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: Martin Kozák \n"
"Language-Team: \n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.8\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] Soubor protokolu byl vytvořen zde: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Prosím, informujte nás o této chybě (spolu se souborem) na https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "Skutečně chcete proces přerušit?"
msgid "And one more time for verification: "
msgstr "Ještě jednou pro ověření: "
msgid "Would you like to use swap on zram?"
msgstr "Přejete si použít swap na zram?"
msgid "Desired hostname for the installation: "
msgstr "Název počítače k instalaci: "
msgid "Username for required superuser with sudo privileges: "
msgstr "Uživatelské jméno pro superuživatele s oprávněními sudo: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "Další uživatelé, kteří mají být nainstalováni (ponechte prázdné pro žádné uživatele): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "Má být tento uživatel superuživatelem (sudoer)?"
msgid "Select a timezone"
msgstr "Zvolte časovou zónu"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "Přejete si použít GRUB jako hlavní zavaděč namísto systemd-boot?"
msgid "Choose a bootloader"
msgstr "Zvolte zavaděč"
msgid "Choose an audio server"
msgstr "Zvolte audio server"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Budou nainstalovány pouze balíčky jako base, base-devel, linux, linux-firmware, efibootmgr a volitelné balíčky profilu."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr "Poznámka: balík base-devel se již neinstaluje automaticky. Přidejte jej zde, pokud potřebujete nástroje pro sestavování."
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "Pokud si přejete nainstalovat webový prohlížeč, jako je například Firefox nebo Chromium, můžete jej zadat do následujícího pole."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "Zadejte další balíčky k instalaci (oddělené mezerou, ponechte prázdné k přeskočení): "
msgid "Copy ISO network configuration to installation"
msgstr "Zkopírovat do instalace konfiguraci sítě z ISO"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "Použít NetworkManager (nezbytné pro grafickou konfiguraci v GNOME a KDE)"
msgid "Select one network interface to configure"
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) "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "Zadejte IP vaší brány (routeru) nebo ponechte prázdné pro žádnou: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "Zadejte vaše DNS servery (oddělené mezerou, ponechte prázdné pro žádné): "
msgid "Select which filesystem your main partition should use"
msgstr "Zvolte souborový systém, který se má použít pro váš hlavní oddíl"
msgid "Current partition layout"
msgstr "Aktuální rozdělení disku"
msgid ""
"Select what to do with\n"
"{}"
msgstr "Zvolte co dělat s {}"
msgid "Enter a desired filesystem type for the partition"
msgstr "Zadejte požadovaný souborový systém pro oddíl"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "Zadejte počáteční pozici (jednotky: s, GB, %, atd. ; výchozí: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "Zadejte koncovou pozici (jednotky: s, GB, %, atd. ; např.: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} obsahuje oddíly ve frontě, toto je odstraní, jste si jisti?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"Vyberte podle indexu, které oddíly chcete odstranit"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"Vyberte podle indexu, který oddíl se má připojit kam"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * Přípojné body diskových oddílů jsou relativní uvnitř instalace, například spouštěcí bod by byl /boot."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "Zvolte kam připojit oddíl (ponechte prázdné pro odstranění přípojného bodu): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"Zvolte oddíl, který bude označen ke zformátování"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"Zvolte oddíl, který bude označen jako šifrovaný"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"Zvolte oddíl, který bude označen jako spouštěcí"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"Zvolte oddíl, na kterém bude souborový systém"
msgid "Enter a desired filesystem type for the partition: "
msgstr "Zadejte požadovaný typ souborového systému pro oddíl: "
msgid "Archinstall language"
msgstr "Jazyk pro Archinstall"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "Vymazat všechny vybrané disky a použít chytré výchozí rozdělení oddílů"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "Zvolte, co se má udělat s jednotlivými disky (následováno použitím oddílu)"
msgid "Select what you wish to do with the selected block devices"
msgstr "Zvolte, co si přejete udělat s vybranými blokovými zařízeními"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "Toto je seznam před-programovaných profilů, které by mohly usnadnit instalaci věcí jako jsou desktopová prostředí"
msgid "Select keyboard layout"
msgstr "Zvolte rozložení klávesnice"
msgid "Select one of the regions to download packages from"
msgstr "Zvolte region ze kterého se budou stahovat balíčky"
msgid "Select one or more hard drives to use and configure"
msgstr "Zvolte jeden nebo více pevných disků k použití a konfiguraci"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "Pro nejlepší kompatibilitu s vaším hardwarem AMD můžete použít buď možnost vše open-source nebo AMD / ATI."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "Pro nejlepší kompatibilitu s vaším hardwarem Intel můžete použít buď možnost vše open-source nebo Intel.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "Pro nejlepší kompatibilitu s vaším hardwarem Nvidia můžete použít buď možnost vše open-source nebo proprietární ovladač Nvidia.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"Zvolte ovladač grafické karty nebo ponechte prázdné k instalaci všech open-source ovladačů"
msgid "All open-source (default)"
msgstr "Vše open-source (výchozí)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "Zvolte jádra, která mají být použita, nebo ponechte prázdné pro výchozí \"{}\""
msgid "Choose which locale language to use"
msgstr "Zvolte jazyk lokalizace, který chcete používat"
msgid "Choose which locale encoding to use"
msgstr "Zvolte kódování lokalizace, které chcete používat"
msgid "Select one of the values shown below: "
msgstr "Zvolte jednu z hodnot zobrazenou níže: "
msgid "Select one or more of the options below: "
msgstr "Zvolte jednu nebo více možností níže: "
msgid "Adding partition...."
msgstr "Přidávání nového oddílu..."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "Chcete-li pokračovat, musíte zvolit platný typ souborového systému. Seznam validních typů najdete například ve výstupu `man parted`."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "Chyba: Výpis profilů z URL \"{}\" skončilo výstupem:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "Chyba: Nepodařilo se dekódovat výsledek \"{}\" jako JSON:"
msgid "Keyboard layout"
msgstr "Rozložení klávesnice"
msgid "Mirror region"
msgstr "Oblast zrcadla"
msgid "Locale language"
msgstr "Místní jazyk"
msgid "Locale encoding"
msgstr "Kódování místního jazyka"
msgid "Drive(s)"
msgstr "Disk(y)"
msgid "Disk layout"
msgstr "Rozdělení disku"
msgid "Encryption password"
msgstr "Šifrovací heslo"
msgid "Swap"
msgstr "Swap"
msgid "Bootloader"
msgstr "Zavaděč"
msgid "Root password"
msgstr "Heslo správce (root)"
msgid "Superuser account"
msgstr "Účet superuživatele"
msgid "User account"
msgstr "Uživatelský účet"
msgid "Profile"
msgstr "Profil"
msgid "Audio"
msgstr "Audio"
msgid "Kernels"
msgstr "Jádra"
msgid "Additional packages"
msgstr "Dodatečné balíčky"
msgid "Network configuration"
msgstr "Konfigurace sítě"
msgid "Automatic time sync (NTP)"
msgstr "Automatická synchronizace času (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "Instalovat ({} konfigurace chybí)"
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 ""
"Rozhodli jste se přeskočit výběr pevného disku\n"
"a použijete jakýkoli disk, který je připojen na {} (experimentální)\n"
"VAROVÁNÍ: Archinstall nezkontroluje korektnost takové instalace\n"
"Přejete si pokračovat?"
msgid "Re-using partition instance: {}"
msgstr "Použití existující instance oddílu: {}"
msgid "Create a new partition"
msgstr "Vytvořit nový oddíl"
msgid "Delete a partition"
msgstr "Smazat oddíl"
msgid "Clear/Delete all partitions"
msgstr "Vyčistit/Smazat všechny oddíly"
msgid "Assign mount-point for a partition"
msgstr "Přiřaďte přípojný bod k oddílu"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "Označení/Odznačení oddílu ke zformátování (vymaže data)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "Označení/Odznačení oddílu jako šifrovaného"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "Označení/Odznačení oddílu jako spouštěcího (automatické pro /boot)"
msgid "Set desired filesystem for a partition"
msgstr "Zvolte požadovaný souborový systém pro oddíl"
msgid "Abort"
msgstr "Přerušit"
msgid "Hostname"
msgstr "Název počítače"
msgid "Not configured, unavailable unless setup manually"
msgstr "Nenakonfigurováno, nedostupné mimo ruční instalaci"
msgid "Timezone"
msgstr "Časová zóna"
msgid "Set/Modify the below options"
msgstr "Nastavte/Upravte možnosti níže"
msgid "Install"
msgstr "Instalovat"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"Pomocí ESC přeskočíte\n"
"\n"
msgid "Suggest partition layout"
msgstr "Navrhnout rozdělení oddílů"
msgid "Enter a password: "
msgstr "Zadejte heslo: "
msgid "Enter a encryption password for {}"
msgstr "Zadejte šifrovací heslo pro {}"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "Zadejte šifrovací heslo celého disku (ponechte prázdné pro nepoužití šifrování): "
msgid "Create a required super-user with sudo privileges: "
msgstr "Vytvořte povinný účet superuživatele s oprávněními sudo: "
msgid "Enter root password (leave blank to disable root): "
msgstr "Zadejte heslo uživatele root (ponechte prázdné k zakázání uživatele root): "
msgid "Password for user \"{}\": "
msgstr "Heslo pro uživatele \"{}\": "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "Kontrola existence dodatečných balíčků (to může trvat několik sekund)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "Přejete si použít automatickou synchronizaci času (NTP) pomocí výchozích serverů?\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 ""
"Pro fungování NTP může být vyžadován hardwarový čas a další kroky po konfiguraci.\n"
"Pro další informace navštivte Arch Wiki"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "Zadejte uživatelské jméno k přidání dalšího uživatele (ponechte prázdné k přeskočení): "
msgid "Use ESC to skip\n"
msgstr "Pomocí ESC přeskočíte\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
"Vyberte objekt ze seznamu a zvolte k němu jednu z možných akcí"
msgid "Cancel"
msgstr "Zrušit"
msgid "Confirm and exit"
msgstr "Potvrdit a ukončit"
msgid "Add"
msgstr "Přidat"
msgid "Copy"
msgstr "Kopírovat"
msgid "Edit"
msgstr "Upravit"
msgid "Delete"
msgstr "Smazat"
msgid "Select an action for '{}'"
msgstr "Zvolte akci pro '{}'"
msgid "Copy to new key:"
msgstr "Zkopírovat k novému klíči:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "Neznámý typ nic: {}. Možné hodnoty jsou {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"Toto je vaše konfigurace:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman je již spuštěn, po 10 minutách bude vynuceno jeho ukončení."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "Nalezen zámek předchozí instance pacman. Před používáním archinstall, prosím, vyčistěte všechna existující sezení pacman."
msgid "Choose which optional additional repositories to enable"
msgstr "Vyberte, které dodatečné balíčky mají být povoleny"
msgid "Add a user"
msgstr "Přidat uživatele"
msgid "Change password"
msgstr "Změnit heslo"
msgid "Promote/Demote user"
msgstr "Udělení/Odebrání práv uživatele"
msgid "Delete User"
msgstr "Smazat uživatele"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"Vytvořit nového uživatele\n"
msgid "User Name : "
msgstr "Uživatelské jméno: "
msgid "Should {} be a superuser (sudoer)?"
msgstr "Má být {} superuživatelem (sudoer)?"
msgid "Define users with sudo privilege: "
msgstr "Specifikovat uživatele s oprávněními sudo: "
msgid "No network configuration"
msgstr "Žádná konfigurace sítě"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Nastavení požadované podsvazky na oddílu btrfs"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr "{} Zvolte oddíl, na kterém budou podsvazky nastaveny"
msgid "Manage btrfs subvolumes for current partition"
msgstr "Spravovat podsvazky pro aktuální oddíl"
msgid "No configuration"
msgstr "Žádná konfigurace"
msgid "Save user configuration"
msgstr "Uložit uživatelskou konfiguraci"
msgid "Save user credentials"
msgstr "Uložit přihlašovací údaje"
msgid "Save disk layout"
msgstr "Uložit rozdělení disku"
msgid "Save all"
msgstr "Uložit vše"
msgid "Choose which configuration to save"
msgstr "Vyberte, které konfigurace mají být uloženy"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "Zadejte adresář pro uložení konfigurace (konfigurací): "
msgid "Not a valid directory: {}"
msgstr "Adresář není validní: {}"
msgid "The password you are using seems to be weak,"
msgstr "Vaše heslo se zdá být slabé,"
msgid "are you sure you want to use it?"
msgstr "přejete si ho skutečně použít?"
msgid "Optional repositories"
msgstr "Volitelné repozitáře"
msgid "Save configuration"
msgstr "Uložit konfiguraci"
msgid "Missing configurations:\n"
msgstr "Chybějící konfigurace:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "Musí být zadáno heslo správce (root) nebo musí existovat alespoň jeden superuživatel"
msgid "Manage superuser accounts: "
msgstr "Spravovat účty superuživatele: "
msgid "Manage ordinary user accounts: "
msgstr "Spravovat běžné účty: "
msgid " Subvolume :{:16}"
msgstr " Podsvazek :{:16}"
msgid " mounted at {:16}"
msgstr " připojen na :{:16}"
msgid " with option {}"
msgstr " s přepínačem {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
"Zadejte požadované hodnoty pro nový podsvazek \n"
msgid "Subvolume name "
msgstr "Název podsvazku "
msgid "Subvolume mountpoint"
msgstr "Přípojný bod podsvazku"
msgid "Subvolume options"
msgstr "Přepínače podsvazku"
msgid "Save"
msgstr "Uložit"
msgid "Subvolume name :"
msgstr "Název podsvazku:"
msgid "Select a mount point :"
msgstr "Zvolte přípojný bod:"
msgid "Select the desired subvolume options "
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: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "Přejete si použít výchozí strukturu BTRFS podsvazků?"
msgid "Would you like to use BTRFS compression?"
msgstr "Přejete si použít BTRFS kompresi?"
msgid "Would you like to create a separate partition for /home?"
msgstr "Přejete si vytvořit oddělený oddíl pro /home?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "Vybrané disky nemají dostatečnou kapacitu potřebnou k automatickému návrhu\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "Minimální kapacita pro oddíl /home: {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Minimální kapacita pro oddíl s Arch Linux: {}GB"
msgid "Continue"
msgstr "Pokračovat"
msgid "yes"
msgstr "ano"
msgid "no"
msgstr "ne"
msgid "set: {}"
msgstr "nastavit: {}"
msgid "Manual configuration setting must be a list"
msgstr "Ruční konfigurace musí být seznam"
msgid "No iface specified for manual configuration"
msgstr "Pro ruční konfiguraci nebyl vybrán žádný iface"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "Ruční konfigurace nic bez automatického DHCP vyžaduje IP adresu"
msgid "Add interface"
msgstr "Přidat rozhraní"
msgid "Edit interface"
msgstr "Upravit rozhraní"
msgid "Delete interface"
msgstr "Smazat rozhraní"
msgid "Select interface to add"
msgstr "Zvolit rozhraní k přidání"
msgid "Manual configuration"
msgstr "Ruční konfigurace"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "Označit/Odznačit oddíl s kompresí (jen pro btrfs)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "Vaše heslo se zdá být slabé, chcete ho skutečně použít?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "Nabízí výběr desktopových prostředí a tiling správců oken, např. gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "Zvolte si požadované desktopové prostředí"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "Základní instalace, která vám umožní si nastavit Arch Linux jakkoliv si budete přát."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "Nabízí výběr různých serverových balíčků k instalaci a aktivaci, např. httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "Vyberte, které servery mají být nainstalovány, pokud nezvolíte žádné, bude provedena jen základní instalace"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "Nainstaluje minimalistický systém spolu s xorg a ovladači grafiky."
msgid "Press Enter to continue."
msgstr "Stiskněte ENTER pro pokračování."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "Přejete si vstoupit skrze chroot do své nově vytvořené instalace a provést závěrečnou konfiguraci?"
msgid "Are you sure you want to reset this setting?"
msgstr "Skutečně si přejete resetovat toto nastavení?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "Zvolte jeden nebo více pevných disků k použití a konfiguraci\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "Jakékoliv úpravy stávajícího nastavení resetuje rozdělení disku!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "Pokud resetujete výběr disku, také tím resetujete stávající rozdělení. Přejete si pokračovat?"
msgid "Save and exit"
msgstr "Uložit a ukončit"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"obsahuje oddíly ve frontě, toto je odstraní, jste si jisti?"
msgid "No audio server"
msgstr "Žádný audio server"
msgid "(default)"
msgstr "(výchozí)"
msgid "Use ESC to skip"
msgstr "Pomocí ESC přeskočíte"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr "Pomocí CTRL+C zrušíte stávající výběr\n"
msgid "Copy to: "
msgstr "Zkopírovat do: "
msgid "Edit: "
msgstr "Upravit: "
msgid "Key: "
msgstr "Klíč: "
msgid "Edit {}: "
msgstr "Upravit {}: "
msgid "Add: "
msgstr "Přidat: "
msgid "Value: "
msgstr "Hodnota: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "Můžete přeskočit výběr disku a rozdělení oddílů a použít libovolné rozložení disků, které je připojeno v /mnt (experimentální)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "Zvolte jeden z disků nebo přeskočte a použijte /mnt jako výchozí"
msgid "Select which partitions to mark for formatting:"
msgstr "Zvolte oddíly, které mají být označeny ke zformátování:"
msgid "Use HSM to unlock encrypted drive"
msgstr "Použít HSM k odemykání zašifrovaného disku"
msgid "Device"
msgstr "Zařízení"
msgid "Size"
msgstr "Velikost"
msgid "Free space"
msgstr "Volné místo"
msgid "Bus-type"
msgstr "Typ sběrnice"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "Musí být zadáno heslo správce (root) nebo musí být specifikován alespoň jeden uživatel s sudo oprávněními"
msgid "Enter username (leave blank to skip): "
msgstr "Zadejte uživatelské jméno (ponechte prázdné k přeskočení): "
msgid "The username you entered is invalid. Try again"
msgstr "Zadané uživatelské jméno není platné. Zkuste to znovu"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "Má být \"{}\" superuživatelem (sudoer)?"
msgid "Select which partitions to encrypt"
msgstr "Zvolte oddíl, který bude označen jako šifrovaný"
msgid "very weak"
msgstr "velmi slabé"
msgid "weak"
msgstr "slabé"
msgid "moderate"
msgstr "středně silné"
msgid "strong"
msgstr "silné"
msgid "Add subvolume"
msgstr "Přidat podsvazek"
msgid "Edit subvolume"
msgstr "Upravit podsvazek"
msgid "Delete subvolume"
msgstr "Smazat podsvazek"
msgid "Configured {} interfaces"
msgstr "Nakonfigurováno {} rozhraní"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "Tato možnost povolí specifikovaný počet paralelních stahování, která mohou nastat při instalaci"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"Zadejte povolený počet paralelních stahování.\n"
" (Zadejte hodnotu mezi 1 a {})\n"
"Poznámka:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - Maximální hodnota : {} (Povolí {} paralelních stahování, povolí {} stahování naráz )"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - Minimální hodnota : 1 (Povolí 1 paralelní stahování, povolí 2 stahování naráz)"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - Zakázáno/Výchozí : 0 (Zakáže paralelní stahování, povolí pouze 1 stahování naráz)"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "Neplatný vstup! Zkuste to, prosím, znovu s platným vstupem [1 až {max_downloads}, nebo 0 pro vypnutí]"
msgid "Parallel Downloads"
msgstr "Paralelní stahování"
msgid "ESC to skip"
msgstr "Pomocí ESC přeskočíte"
msgid "CTRL+C to reset"
msgstr "CTRL+C pro zrušení"
msgid "TAB to select"
msgstr "TAB k výběru"
msgid "[Default value: 0] > "
msgstr "[Výchozí hodnota: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "Abyste mohli používat tento překlad, nainstalujte prosím písmo, které zvolený jazyk podporuje."
msgid "The font should be stored as {}"
msgstr "Písmo by mělo být uložené jako {}"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Archinstall vyžaduje ke spuštění oprávnění správce (root). Použijte --help pro více informací."
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: {}"
msgid "Select one or more devices to use and configure"
msgstr "Zvolte jeden nebo více pevných disků k použití a konfiguraci"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "Pokud zrušíte výběr disku, také tím zrušíte stávající rozdělení. Přejete si pokračovat?"
msgid "Existing Partitions"
msgstr "Existující oddíly"
msgid "Select a partitioning option"
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"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "Toto je seznam před-programovaných profilů, které by mohly usnadnit instalaci věcí jako jsou desktopová prostředí"
msgid "Current profile selection"
msgstr "Aktuální výběr profilu"
msgid "Remove all newly added partitions"
msgstr "Smazat všechny nově přidané oddíly"
msgid "Assign mountpoint"
msgstr "Přiřaďte přípojný bod"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "Označení/Odznačení oddílu ke zformátování (vymaže data)"
msgid "Mark/Unmark as bootable"
msgstr "Označit/Odznačit jako spouštěcí"
msgid "Change filesystem"
msgstr "Změnit souborový systém"
msgid "Mark/Unmark as compressed"
msgstr "Označit/Odznačit oddíl s kompresí"
msgid "Set subvolumes"
msgstr "Nastavit podsvazky"
msgid "Delete partition"
msgstr "Smazat oddíl"
msgid "Partition"
msgstr "Diskový oddíl"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "Tento oddíl je zašifrovaný, k naformátování zadejte souborový systém"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "Přípojné body diskových oddílů jsou relativní uvnitř instalace, například spouštěcí bod by byl /boot."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "Pokud je nastaven přípojný bod /boot, oddíl je zároveň označený jako spouštěcí."
msgid "Mountpoint: "
msgstr "Přípojný bod: "
msgid "Current free sectors on device {}:"
msgstr "Momentálně volné sektory na zařízení {}:"
msgid "Total sectors: {}"
msgstr "Celkem sektorů: {}"
msgid "Enter the start sector (default: {}): "
msgstr "Zadejte počáteční sektor (výchozí: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
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: {}"
msgid "Encryption type"
msgstr "Typ šifrování"
msgid "Iteration time"
msgstr "Doba iterace"
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr "Zadejte dobu iterace pro šifrování LUKS (v milisekundách)"
msgid "Higher values increase security but slow down boot time"
msgstr "Vyšší hodnoty zvyšují bezpečnost, ale snižují dobu spouštění"
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr "Výchozí: 10000ms, Doporučený rozsah: 1000-60000"
msgid "Iteration time cannot be empty"
msgstr "Doba iterace nesmí být prázdná"
msgid "Iteration time must be at least 100ms"
msgstr "Doba iterace musí být alespoň 100 ms"
msgid "Iteration time must be at most 120000ms"
msgstr "Doba iterace musí být alespoň 120000ms"
msgid "Please enter a valid number"
msgstr "Prosím zadejte platné číslo"
msgid "Partitions"
msgstr "Diskové oddíly"
msgid "No HSM devices available"
msgstr "Žádné HSM zařízení není dostupné"
msgid "Partitions to be encrypted"
msgstr "Zvolte oddíl k zašifrování"
msgid "Select disk encryption option"
msgstr "Zvolte způsob šifrování disku"
msgid "Select a FIDO2 device to use for HSM"
msgstr "Vyberte FIDO2 zařízení abyste mohli používat HSM"
msgid "Use a best-effort default partition layout"
msgstr "Použít chytré výchozí rozdělení oddílů"
msgid "Manual Partitioning"
msgstr "Ruční rozdělení disku"
msgid "Pre-mounted configuration"
msgstr "Pre-mounted konfigurace"
msgid "Unknown"
msgstr "Neznámý"
msgid "Partition encryption"
msgstr "Šifrování diskového oddílu"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! Formátování {} na "
msgid "← Back"
msgstr "← Zpět"
msgid "Disk encryption"
msgstr "Šifrování disku"
msgid "Configuration"
msgstr "Konfigurace"
msgid "Password"
msgstr "Heslo"
msgid "All settings will be reset, are you sure?"
msgstr "Všechny volby budou zrušeny, jste si jisti?"
msgid "Back"
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í: {}"
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 "Sway nepodporuje proprietární ovladač Nvidia. Pravděpodobně narazíte na problémy, přejete si pokračovat?"
msgid "Installed packages"
msgstr "Instalované balíčky"
msgid "Add profile"
msgstr "Přidat profil"
msgid "Edit profile"
msgstr "Změnit profil"
msgid "Delete profile"
msgstr "Smazat profil"
msgid "Profile name: "
msgstr "Jméno profilu: "
msgid "The profile name you entered is already in use. Try again"
msgstr "Zadaný název profilu již existuje. Zkuste to znovu"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "Zadejte další balíčky k instalaci v tomto profilu (oddělené mezerou, ponechte prázdné k přeskočení): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "Zadejte povolené služby v tomto profilu (oddělené mezerou, ponechte prázdné k přeskočení): "
msgid "Should this profile be enabled for installation?"
msgstr "Má se tento profil použít pro instalaci?"
msgid "Create your own"
msgstr "Vytvořit vlastní"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"Zvolte ovladač grafické karty nebo ponechte prázdné k instalaci všech open-source ovladačů"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway vyžaduje přístup k vašemu sezení (soubor zařízení jako např. klávesnice, myš, atd.)"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Vyberte možnost jak zpřístupnit pro Sway váš hardware"
msgid "Graphics driver"
msgstr "Grafický ovladač"
msgid "Greeter"
msgstr "Přihlašovací obrazovka"
msgid "Please chose which greeter to install"
msgstr "Prosím vyberte přihlašovací obrazovku k instalaci"
msgid "This is a list of pre-programmed default_profiles"
msgstr "Toto je seznam před-programovaných výchozích profilů"
msgid "Disk configuration"
msgstr "Konfigurace disku"
msgid "Profiles"
msgstr "Profily"
msgid "Finding possible directories to save configuration files ..."
msgstr "Hledám možné adresáře k uložení konfiguračních souborů ..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "Zvolte jeden nebo více adresářů k uložení konfiguračních souborů"
msgid "Add a custom mirror"
msgstr "Přidat vlastní zrcadlo"
msgid "Change custom mirror"
msgstr "Změnit vlastní zrcadla"
msgid "Delete custom mirror"
msgstr "Smazat vlastní zrcadla"
msgid "Enter name (leave blank to skip): "
msgstr "Zadejte jméno (ponechte prázdné k přeskočení): "
msgid "Enter url (leave blank to skip): "
msgstr "Zadejte url (ponechte prázdné k přeskočení): "
msgid "Select signature check option"
msgstr "Zvolit možnost kontroly podpisu"
msgid "Select signature option"
msgstr "Zvolit možnost podpisu"
msgid "Custom mirrors"
msgstr "Vlastní zrcadla"
msgid "Defined"
msgstr "Definováno"
msgid "Save user configuration (including disk layout)"
msgstr "Uložit uživatelskou konfiguraci (včetně rozdělení disků)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"Zadejte adresář pro uložení konfigurace (konfigurací). Doplňování pomocí tab je zapnuto\n"
"Adresář pro uložení: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"Chcete uložit {} konfiguračních souborů do následujícího umístění?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "Ukládám {} konfiguračních souborů do {}"
msgid "Mirrors"
msgstr "Zrcadla"
msgid "Mirror regions"
msgstr "Oblasti zrcadel"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - Maximální hodnota : {} (Povolí {} paralelních stahování, povolí {max_downloads+1} stahování naráz )"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "Neplatný vstup! Zkuste to, prosím, znovu s platným vstupem [1 až {}, nebo 0 pro vypnutí]"
msgid "Locales"
msgstr "Lokalizace"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "Použít NetworkManager (nezbytné pro grafickou konfiguraci v GNOME a KDE)"
msgid "Total: {} / {}"
msgstr "Celkem: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "Všechny zadané hodnoty mohou byt doplněny jednotkou: B, KB, KiB, MB, MiB..."
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "Pokud nejsou zadány jednotky, hodnoty jsou brány jako sektory"
msgid "Enter start (default: sector {}): "
msgstr "Zadejte počátek (výchozí: sektor {}): "
msgid "Enter end (default: {}): "
msgstr "Zadejte konec (výchozí: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "Nelze rozpoznat FIDO2 zařízení. Je nainstalován balíček libfido2?"
msgid "Path"
msgstr "Cesta"
msgid "Manufacturer"
msgstr "Výrobce"
msgid "Product"
msgstr "Produkt"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "Chybná konfigurace: {error}"
msgid "Type"
msgstr "Typ"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "Tato možnost povolí specifikovaný počet paralelních stahování, která mohou nastat při instalaci"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"Zadejte povolený počet paralelních stahování.\n"
"\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 )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - Zakázáno/Výchozí : 0 (Zakáže paralelní stahování, povolí pouze 1 stahování naráz)\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "Neplatný vstup! Zkuste to, prosím, znovu s platným vstupem [nebo 0 pro vypnutí]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Hyprland vyžaduje přístup k vašemu sezení (soubor zařízení jako např. klávesnice, myš, atd.)"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Vyberte možnost jak zpřístupnit pro Hyprland váš hardware"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "Všechny zadané hodnoty mohou byt doplněny jednotkou: %, B, KB, KiB, MB, MiB..."
msgid "Would you like to use unified kernel images?"
msgstr "Přejete si použít Unified Kernel Images?"
msgid "Unified kernel images"
msgstr "Unified Kernel Images"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "Čekám na dokončení synchronizace času (timedatectl show)."
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Synchronizace času není dokončena, mezitím se můžete podívat na možnosti řešení: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "Přeskakování čekání na automatickou synchronizaci času (nesynchronizovaný čas může způsobit problémy během instalace)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "Čekám na dokončení synchronizace Arch Linux keyring (archlinux-keyring-wkd-sync)."
msgid "Selected profiles: "
msgstr "Zvolené profily: "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Synchronizace času není dokončena, mezitím se můžete podívat na možnosti řešení: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "Označit/Odznačit jako nodatacow"
msgid "Would you like to use compression or disable CoW?"
msgstr "Přejete si použít kompresi nebo zakázat CoW?"
msgid "Use compression"
msgstr "Použít kompresi"
msgid "Disable Copy-on-Write"
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: {}"
msgid "LVM configuration type"
msgstr "Typ LVM konfigurace"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "LVM šifrování disku s více jak dvěma oddíly není v tuto chvíli podporováno"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "Použít NetworkManager (nezbytné pro grafickou konfiguraci inernetu v GNOME a KDE)"
msgid "Select a LVM option"
msgstr "Zvolte možnost LVM"
msgid "Partitioning"
msgstr "Rozdělení diskových oddílů"
msgid "Logical Volume Management (LVM)"
msgstr "Logical Volume Management (LVM)"
msgid "Physical volumes"
msgstr "Fyzické svazky"
msgid "Volumes"
msgstr "Svazky"
msgid "LVM volumes"
msgstr "LVM svazky"
msgid "LVM volumes to be encrypted"
msgstr "LVM svazky k zašifrování"
msgid "Select which LVM volumes to encrypt"
msgstr "Zvolte LVM svazky k zašifrování"
msgid "Default layout"
msgstr "Výchozí rozložení"
msgid "No Encryption"
msgstr "Žádné šifrování"
msgid "LUKS"
msgstr "LUKS"
msgid "LVM on LUKS"
msgstr "LVM na LUKS"
msgid "LUKS on LVM"
msgstr "LUKS na LVM"
msgid "Yes"
msgstr "Ano"
msgid "No"
msgstr "Ne"
msgid "Archinstall help"
msgstr "Nápověda pro Archinstall"
msgid " (default)"
msgstr " (výchozí)"
msgid "Press Ctrl+h for help"
msgstr "Stiskněte Ctrl+h pro nápovědu"
msgid "Choose an option to give Sway access to your hardware"
msgstr "Vyberte možnost jak zpřístupnit pro Sway váš hardware"
msgid "Seat access"
msgstr "Přístup k sezení"
msgid "Mountpoint"
msgstr "Přípojný bod"
msgid "HSM"
msgstr "HSM"
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "Zadejte heslo pro zašifrování disku (ponechte prázdné pro nepoužití šifrování)"
msgid "Disk encryption password"
msgstr "Heslo pro šifrování disku"
msgid "Partition - New"
msgstr "Diskový oddíl - Nový"
msgid "Filesystem"
msgstr "Souborový systém"
msgid "Invalid size"
msgstr "Neplatná velikost"
msgid "Start (default: sector {}): "
msgstr "Počátek (výchozí: sektor {}): "
msgid "End (default: {}): "
msgstr "Konec (výchozí: {}): "
msgid "Subvolume name"
msgstr "Název podsvazku"
msgid "Disk configuration type"
msgstr "Typ konfigurace disku"
msgid "Root mount directory"
msgstr "Kořenový adresář pro připojení"
msgid "Select language"
msgstr "Zvolte jazyk"
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "Zadejte další balíčky k instalaci (oddělené mezerou, ponechte prázdné k přeskočení)"
msgid "Invalid download number"
msgstr "Neplatný počet stahování"
msgid "Number downloads"
msgstr "Počet stahování"
msgid "The username you entered is invalid"
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"
msgid "Interfaces"
msgstr "Rozhraní"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "Musíte zadat platnou IP adresu"
msgid "Modes"
msgstr "Režimy"
msgid "IP address"
msgstr "IP adresa"
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "Zadejte IP vaší brány (routeru) nebo ponechte prázdné pro žádnou"
msgid "Gateway address"
msgstr "Adresa brány"
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "Zadejte vaše DNS servery (oddělené mezerou, ponechte prázdné pro žádné):"
msgid "DNS servers"
msgstr "DNS servery"
msgid "Configure interfaces"
msgstr "Nakonfigurujte rozhraní"
msgid "Kernel"
msgstr "Jádro"
msgid "UEFI is not detected and some options are disabled"
msgstr "UEFI nebylo nalezeno a některé možnosti jsou vypnuty"
msgid "Info"
msgstr "Info"
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "Sway nepodporuje proprietární ovladač Nvidia."
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "Pravděpodobně narazíte na problémy, přejete si pokračovat?"
msgid "Main profile"
msgstr "Hlavní profil"
msgid "Confirm password"
msgstr "Potvrdit heslo"
msgid "The confirmation password did not match, please try again"
msgstr "Potvrzovací heslo se neshoduje, zkuste to prosím znovu"
msgid "Not a valid directory"
msgstr "Adresář není validní"
msgid "Would you like to continue?"
msgstr "Přejete si pokračovat?"
msgid "Directory"
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 {}?"
msgid "Enabled"
msgstr "Povoleno"
msgid "Disabled"
msgstr "Zakázáno"
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr "Prosím, informujte nás o této chybě (spolu se souborem) na https://github.com/archlinux/archinstall/issues"
msgid "Mirror name"
msgstr "Jméno zrcadla"
msgid "Url"
msgstr "Url"
msgid "Select signature check"
msgstr "Zvolit kontrolu podpisu"
msgid "Select execution mode"
msgstr "Zvolte způsob provedení"
msgid "Press ? for help"
msgstr "Stiskněte ? pro nápovědu"
msgid "Choose an option to give Hyprland access to your hardware"
msgstr "Vyberte možnost jak zpřístupnit pro Hyprland váš hardware"
msgid "Additional repositories"
msgstr "Dodatečné repozitáře"
msgid "NTP"
msgstr "NTP"
msgid "Swap on zram"
msgstr "Swap na zram"
msgid "Name"
msgstr "Jméno"
msgid "Signature check"
msgstr "Kontrola podpisu"
#, python-brace-format
msgid "Selected free space segment on device {}:"
msgstr "Zvolené volné sektory na zařízení {}:"
#, python-brace-format
msgid "Size: {} / {}"
msgstr "Velikost: {} / {}"
#, python-brace-format
msgid "Size (default: {}): "
msgstr "Velikost (výchozí: {}): "
msgid "HSM device"
msgstr "HSM zařízení"
msgid "Some packages could not be found in the repository"
msgstr "Některé balíčky nemohly být nalezeny v repozitáři"
msgid "User"
msgstr "Uživatel"
msgid "The specified configuration will be applied"
msgstr "Bude použita zvolená konfigurace"
msgid "Wipe"
msgstr "Vymazat"
msgid "Mark/Unmark as XBOOTLDR"
msgstr "Označit/Odznačit jako XBOOTLDR"
msgid "Loading packages..."
msgstr "Načítání balíčků..."
msgid "Select any packages from the below list that should be installed additionally"
msgstr "Vyberte balíčky z níže uvedeného seznamu, které by měly být dodatečně nainstalovány"
msgid "Add a custom repository"
msgstr "Přidat vlastní repozitář"
msgid "Change custom repository"
msgstr "Změnit vlastní repozitář"
msgid "Delete custom repository"
msgstr "Smazat vlastní repozitář"
msgid "Repository name"
msgstr "Název repozitáře"
msgid "Add a custom server"
msgstr "Přidat vlastní server"
msgid "Change custom server"
msgstr "Změnit vlastní server"
msgid "Delete custom server"
msgstr "Smazat vlastní server"
msgid "Server url"
msgstr "URL serveru"
msgid "Select regions"
msgstr "Zvolte regiony"
msgid "Add custom servers"
msgstr "Přidat vlastní servery"
msgid "Add custom repository"
msgstr "Přidat vlastní repozitář"
msgid "Loading mirror regions..."
msgstr "Načítání oblastí zrcadel..."
msgid "Mirrors and repositories"
msgstr "Zrcadla a repozitáře"
msgid "Selected mirror regions"
msgstr "Zvolené oblasti zrcadel"
msgid "Custom servers"
msgstr "Vlastní servery"
msgid "Custom repositories"
msgstr "Vlastní repozitáře"
msgid "Only ASCII characters are supported"
msgstr "Jsou podporovány pouze ASCII znaky"
msgid "Show help"
msgstr "Zobrazit nápovědu"
msgid "Exit help"
msgstr "Opustit nápovědu"
msgid "Preview scroll up"
msgstr "Posunout náhled dolů"
msgid "Preview scroll down"
msgstr "Posunout náhled dolů"
msgid "Move up"
msgstr "Posunout nahoru"
msgid "Move down"
msgstr "Posunout dolů"
msgid "Move right"
msgstr "Posunout doprava"
msgid "Move left"
msgstr "Posunout doleva"
msgid "Jump to entry"
msgstr "Přejít na položku"
msgid "Skip selection (if available)"
msgstr "Přeskočit výběr (je-li dostupné)"
msgid "Reset selection (if available)"
msgstr "Zrušit výběr (je-li dostupné)"
msgid "Select on single select"
msgstr "Výběr jedné možnosti"
msgid "Select on multi select"
msgstr "Výběr více možností"
msgid "Reset"
msgstr "Zrušit"
msgid "Skip selection menu"
msgstr "Přeskočit výběr"
msgid "Start search mode"
msgstr "Spustit režim vyhledávání"
msgid "Exit search mode"
msgstr "Opustit režim vyhledávání"
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "labwc vyžaduje přístup k vašemu sezení (soubor zařízení jako např. klávesnice, myš, atd.)"
msgid "Choose an option to give labwc access to your hardware"
msgstr "Vyberte možnost jak zpřístupnit pro labwc váš hardware"
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "niri vyžaduje přístup k vašemu sezení (soubor zařízení jako např. klávesnice, myš, atd.)"
msgid "Choose an option to give niri access to your hardware"
msgstr "Vyberte možnost jak zpřístupnit pro niri váš hardware"
msgid "Mark/Unmark as ESP"
msgstr "Označit/Odznačit jako ESP"
msgid "Package group:"
msgstr "Skupina balíčků:"
msgid "Exit archinstall"
msgstr "Ukončit archinstall"
msgid "Reboot system"
msgstr "Restartovat systém"
msgid "chroot into installation for post-installation configurations"
msgstr "vstoupit skrze chroot do své nově vytvořené instalace a provést závěrečnou konfiguraci"
msgid "Installation completed"
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 \"{}\""
msgid "Incorrect credentials file decryption password"
msgstr "Neplatné heslo pro dešifrování souboru s přihlašovacími údaji"
msgid "Incorrect password"
msgstr "Neplatné heslo"
msgid "Credentials file decryption password"
msgstr "Heslo pro dešifrování souboru s přihlašovacími údaji"
msgid "Do you want to encrypt the user_credentials.json file?"
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: {}"
msgid "New version available"
msgstr "Je dostupná nová verze"
msgid "Passwordless login"
msgstr "Přihlášení bez hesla"
msgid "Second factor login"
msgstr "Dvoufázové přihlášení"
msgid "Bluetooth"
msgstr "Bluetooth"
msgid "Would you like to configure Bluetooth?"
msgstr "Přejete si nastavit Bluetooth?"
msgid "Print service"
msgstr "Tisková služba"
msgid "Would you like to configure the print service?"
msgstr "Přejete si nastavit tiskovou službu?"
msgid "Power management"
msgstr "Správa napájení"
msgid "Authentication"
msgstr "Ověřování"
msgid "Applications"
msgstr "Aplikace"
msgid "U2F login method: "
msgstr "Způsob U2F přihlášení: "
msgid "Passwordless sudo: "
msgstr "Sudo bez hesla: "
#, python-brace-format
msgid "Btrfs snapshot type: {}"
msgstr "Druh Btrfs snímku: {}"
msgid "Syncing the system..."
msgstr "Synchronizování systému..."
msgid "Value cannot be empty"
msgstr "Hodnota nesmí být prázdná"
msgid "Snapshot type"
msgstr "Druh snímku"
#, python-brace-format
msgid "Snapshot type: {}"
msgstr "Druh snímku: {}"
msgid "U2F login setup"
msgstr "Nastavení U2F přihlášení"
msgid "No U2F devices found"
msgstr "Nebylo nalezeno žádné U2F zařízení"
msgid "U2F Login Method"
msgstr "Způsob U2F přihlášení"
msgid "Enable passwordless sudo?"
msgstr "Povolit sudo bez hesla?"
#, python-brace-format
msgid "Setting up U2F device for user: {}"
msgstr "Nastavování U2F zařízení pro uživatele: {}"
msgid "You may need to enter the PIN and then touch your U2F device to register it"
msgstr "Možná budete muset zadat PIN a poté potvrdit na svém U2F zařízení, aby se zaregistrovalo"
msgid "Starting device modifications in "
msgstr "Spouští se úpravy zařízení v "
msgid "No network connection found"
msgstr "Nebylo nalezeno žádné síťové připojení"
msgid "Would you like to connect to a Wifi?"
msgstr "Přejete si připojit se k Wifi?"
msgid "No wifi interface found"
msgstr "Nebyly nalezeno žádné wifi zařízení"
msgid "Select wifi network to connect to"
msgstr "Zvolte ke které wifi se chcete připojit"
msgid "Scanning wifi networks..."
msgstr "Vyhledávání wifi sítí..."
msgid "No wifi networks found"
msgstr "Nebylo nalezeny žádné wifi sítě"
msgid "Failed setting up wifi"
msgstr "Nepodařilo se nastavit wifi"
msgid "Enter wifi password"
msgstr "Zadejte heslo pro wifi"
msgid "Ok"
msgstr "Ok"
msgid "Removable"
msgstr "Vyměnitelné"
msgid "Install to removable location"
msgstr "Nainstalovat na vyměnitelné médium"
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr "Instalace do /EFI/BOOT/ (vyměnitelné umístění)"
msgid "Will install to standard location with NVRAM entry"
msgstr "Instalace na standardní umístění s NVRAM záznamem"
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr "Přejete si nainstalovat zavadeč do výchozího umístění pro vyhledávání vyměnitelných médií?"
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr "Toto nainstaluje zavaděč do /EFI/BOOT/BOOTX64.EFI (nebo podobně), což je užitečné pro:"
msgid "USB drives or other portable external media."
msgstr "USB disky nebo jiná přenosná externí média."
msgid "Systems where you want the disk to be bootable on any computer."
msgstr "Systémy, kde chcete, aby byl disk spouštěcí na jakémkoli počítači."
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr "Firmware, který správně nepodporuje spouštěcí záznamy v NVRAM."
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr "Instalace do /EFI/BOOT/ (vyměnitelné umístění, bezpečná výchozí volba)"
msgid "Will install to custom location with NVRAM entry"
msgstr "Instalace na standardní umístění s NVRAM záznamem"
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr "Firmware, který nepodporuje správně zaváděcí záznamy v NVRAM, jako je tomu u většiny základních desek MSI,"
msgid "most Apple Macs, many laptops..."
msgstr "většina počítačů Apple Mac, mnoho notebooků…"
msgid "Language"
msgstr "Jazyk"
msgid "Compression algorithm"
msgstr "Kompresní algoritmus"
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Budou nainstalovány pouze balíčky jako base, sudo, linux, linux-firmware, efibootmgr a volitelné balíčky profilu."
msgid "Select zram compression algorithm:"
msgstr "Zvolte kompresní algoritmus pro zram:"
msgid "Use Network Manager (default backend)"
msgstr "Použít Network Manager (výchozí backend)"
msgid "Use Network Manager (iwd backend)"
msgstr "Použít Network Manager (iwd backend)"
================================================
FILE: archinstall/locales/de/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.6\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] Eine Logdatei wurde hier erstellt: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Bitte melden Sie das Problem mit der erstellten Datei auf https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "Wollen Sie wirklich abbrechen?"
msgid "And one more time for verification: "
msgstr "Und noch einmal zur Bestätigung: "
msgid "Would you like to use swap on zram?"
msgstr "Möchten Sie Auslagerungsspeicher (Swap) als zram verwenden?"
msgid "Desired hostname for the installation: "
msgstr "Gewünschter Gerätename/Hostname für die Installation: "
msgid "Username for required superuser with sudo privileges: "
msgstr "Benutzername für den erforderlichen Superuser mit sudo Rechten: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "Geben Sie weitere Benutzernamen ein, die installiert werden sollen (leer lassen für keine weiteren Benutzer): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "Soll dieser Benutzer ein Superuser sein (sudoer)?"
msgid "Select a timezone"
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 "Wählen Sie einen Bootloader aus"
msgid "Choose an audio server"
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."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr ""
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "Wenn Sie einen Webbrowser installieren möchten, wie z.B. Firefox oder Chromium, können Sie diese nun eingeben."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "Schreiben Sie zusätzliche Pakete die installiert werden sollen (mit einem Leerzeichen getrennt, zum Überspringen leer lassen): "
msgid "Copy ISO network configuration to installation"
msgstr "ISO-Netzwerk Einstellungen in die Installation kopieren"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "NetworkManager nutzen (notwendig um Internetverbindungen grafisch in GNOME und KDE einzustellen)"
msgid "Select one network interface to configure"
msgstr "Wählen Sie einen Netzwerkadapter zur Konfiguration aus"
msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
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 "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 "Geben Sie das Gateway (Router) IP-Adresse ein (leer lassen für keines): "
msgid "Enter your DNS servers (space separated, blank for none): "
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 "Wählen Sie ein Dateisystem aus, welches für die Hauptpartition verwendet werden soll"
msgid "Current partition layout"
msgstr "Momentanes Partitionslayout"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"Wählen Sie eine Aktion aus für\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
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 "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 "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?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"Wählen Sie anhand vom Index aus, welche Partitionen gelöscht werden sollen"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"Wählen Sie anhand vom Index aus, welche Partitionen wo eingehängt werden sollen"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
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 "Geben Sie an wo die Partition eingehängt werden soll (leer lassen um den Einhängeort zu entfernen): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"Wählen Sie aus, welche Partition formatiert werden soll"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"Wählen Sie aus, welche Partition verschlüsselt werden soll"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"Wählen Sie aus, welche Partition bootfähig markiert werden soll"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"Bitte wählen Sie aus, auf welcher Partition ein Dateisystem erstellt werden soll"
msgid "Enter a desired filesystem type for the partition: "
msgstr "Geben Sie einen gewünschten Dateisystemtyp für die Partition ein: "
msgid "Archinstall language"
msgstr "Sprache für Archinstall"
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 "Geben Sie individuell an, was mit jedem Laufwerk geschehen soll"
msgid "Select what you wish to do with the selected block devices"
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 "Wählen Sie ein Tastaturlayout aus"
msgid "Select one of the regions to download packages from"
msgstr "Wählen Sie eine Region zum herunterladen von Paketen aus"
msgid "Select one or more hard drives to use and configure"
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."
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"
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"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Wählen Sie einen Grafikkartentreiber aus oder leer lassen, um alle quelloffenen Treiber zu installieren"
msgid "All open-source (default)"
msgstr "Alle quelloffenen (Standard)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "Wählen Sie welche Kernel benutzt werden sollen oder leer lassen für Standard \"{}\""
msgid "Choose which locale language to use"
msgstr "Wählen Sie aus, welche lokale Sprache verwendet werden soll"
msgid "Choose which locale encoding to use"
msgstr "Wählen Sie aus, welche lokale Kodierung verwendet werden soll"
msgid "Select one of the values shown below: "
msgstr "Wählen Sie einen der folgenden Werte aus: "
msgid "Select one or more of the options below: "
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 "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:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "Fehler: \"{}\" konnte nicht zu JSON dekodiert werden:"
msgid "Keyboard layout"
msgstr "Tastaturlayout"
msgid "Mirror region"
msgstr "Spiegelserver-Region"
msgid "Locale language"
msgstr "Lokale Sprache"
msgid "Locale encoding"
msgstr "Lokale Kodierung"
msgid "Drive(s)"
msgstr "Laufwerk(e)"
msgid "Disk layout"
msgstr "Laufwerkslayout"
msgid "Encryption password"
msgstr "Verschlüsselungspasswort"
msgid "Swap"
msgstr "Swap"
msgid "Bootloader"
msgstr "Bootloader"
msgid "Root password"
msgstr "Root-Passwort"
msgid "Superuser account"
msgstr "Superuser-Konto"
msgid "User account"
msgstr "Benutzerkonto"
msgid "Profile"
msgstr "Profil"
msgid "Audio"
msgstr "Audio"
msgid "Kernels"
msgstr "Kernel"
msgid "Additional packages"
msgstr "Zusätzliche Pakete"
msgid "Network configuration"
msgstr "Netzwerkkonfiguration"
msgid "Automatic time sync (NTP)"
msgstr "Automatische Zeitsynchronisierung (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "Installieren ({} Konfiguration(en) ausständig)"
msgid ""
"You decided to skip harddrive selection\n"
"and will use whatever drive-setup is mounted at {} (experimental)\n"
"WARNING: Archinstall won't check the suitability of this setup\n"
"Do you wish to continue?"
msgstr ""
"Sie haben sich entschieden, kein Laufwerk auszuwählen\n"
"und somit werden Laufwerkseinstellungen verwendet, welche am Einhängeort {} vorgefunden werden (experimentell)\n"
"WARNUNG: Archinstall wird die Kompatibilität der Einstellung nicht überprüfen\n"
"Wollen Sie trotzdem fortfahren?"
msgid "Re-using partition instance: {}"
msgstr "Wiederverwenden der Partitionsinstanz: {}"
msgid "Create a new partition"
msgstr "Neue Partition erstellen"
msgid "Delete a partition"
msgstr "Partition löschen"
msgid "Clear/Delete all partitions"
msgstr "Alle Partitionen löschen"
msgid "Assign mount-point for a partition"
msgstr "Einhängeort für Partition angeben"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "Markieren, ob eine Partition formatiert werden soll (alle Daten werden gelöscht)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "Markieren, ob eine Partition verschlüsselt werden soll"
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 "Wählen Sie einen Dateisystemtyp für die Partition aus"
msgid "Abort"
msgstr "Abbrechen"
msgid "Hostname"
msgstr "Gerätename/Hostname"
msgid "Not configured, unavailable unless setup manually"
msgstr "Nicht konfiguriert, nicht verfügbar wenn nicht selber eingestellt"
msgid "Timezone"
msgstr "Zeitzone"
msgid "Set/Modify the below options"
msgstr "Setzen/Modifizieren Sie die unten stehenden Einstellungen"
msgid "Install"
msgstr "Installieren"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"ESC um zu überspringen\n"
"\n"
msgid "Suggest partition layout"
msgstr "Ein Partitionslayout vorschlagen"
msgid "Enter a password: "
msgstr "Passwort eingeben: "
msgid "Enter a encryption password for {}"
msgstr "Verschlüsselungspasswort angeben für {}"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "Geben Sie ein Verschlüsselungspasswort ein (leer lassen um Verschlüsselung zu deaktivieren): "
msgid "Create a required super-user with sudo privileges: "
msgstr "Geben Sie einen Superuser mit sudo Privilegien an: "
msgid "Enter root password (leave blank to disable root): "
msgstr "Geben Sie ein Root-Passwort ein (leer lassen um Root zu deaktivieren): "
msgid "Password for user \"{}\": "
msgstr "Passwort für Benutzer \"{}\": "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "Angegebene Pakete werden verifiziert (dies könnte einige Sekunden dauern)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "Möchten Sie die automatische Zeitsynchronisierung (NTP) mit dem Standard Server verwenden?\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 ""
"Hardwarezeit und andere Einstellungsschritte könnten notwendig sein um NTP zu benutzen.\n"
"Für weitere Informationen wenden Sie sich bitte an das Arch wiki"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "Geben Sie einen Benutzernamen ein, um diesen zusätzlich anzulegen (leer lassen zum Überspringen): "
msgid "Use ESC to skip\n"
msgstr "ESC um zu überspringen\n"
#, fuzzy
msgid ""
"\n"
" 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 und eine Aktion, die Sie ausführen möchten."
msgid "Cancel"
msgstr "Abbrechen"
msgid "Confirm and exit"
msgstr "Bestätigen und Schließen"
msgid "Add"
msgstr "Hinzufügen"
msgid "Copy"
msgstr "Kopieren"
msgid "Edit"
msgstr "Bearbeiten"
msgid "Delete"
msgstr "Löschen"
msgid "Select an action for '{}'"
msgstr "Wählen Sie eine Aktion aus für '{}'"
msgid "Copy to new key:"
msgstr "Kopieren zum neuen Schlüssel:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "Nicht erkannter Netzwerkinterfacecontroller: {}. Erlaubte Werte {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"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."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "Existierendes Pacman lock wurde nicht beendet. Bitte beenden Sie existierende Pacman Sessions bevor archinstall benutzt wird."
msgid "Choose which optional additional repositories to enable"
msgstr "Wählen Sie aus, welche zusätzlichen Repositories verwendet werden sollen"
msgid "Add a user"
msgstr "Benutzerkonto hinzufügen"
msgid "Change password"
msgstr "Passwort ändern"
msgid "Promote/Demote user"
msgstr "Benutzerkonto berechtigen/einschränken"
msgid "Delete User"
msgstr "Benutzerkonto löschen"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"Neues Benutzerkonto anlegen\n"
msgid "User Name : "
msgstr "Benutzername: "
msgid "Should {} be a superuser (sudoer)?"
msgstr "Soll {} ein superuser sein (sudoer)?"
msgid "Define users with sudo privilege: "
msgstr "Geben Sie Superuser mit sudo Privilegien an: "
msgid "No network configuration"
msgstr "Keine Netzwerkkonfiguration"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Legen Sie das gewünschte Subvolume für die Btrfs-Partition fest"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"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"
msgid "No configuration"
msgstr "Keine Konfiguration"
msgid "Save user configuration"
msgstr "Benutzerkonfiguration speichern"
msgid "Save user credentials"
msgstr "Benutzeranmeldeinformationen speichern"
msgid "Save disk layout"
msgstr "Laufwerklayout speichern"
msgid "Save all"
msgstr "Alles speichern"
msgid "Choose which configuration to save"
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 "Kein gültiger Ordner: {}"
msgid "The password you are using seems to be weak,"
msgstr "Das gewählte Passwort ist schwach,"
msgid "are you sure you want to use it?"
msgstr "wollen Sie dieses Passwort wirklich verwenden?"
msgid "Optional repositories"
msgstr "Zusätzliche Repositorien"
msgid "Save configuration"
msgstr "Konfiguration speichern"
msgid "Missing configurations:\n"
msgstr "Ausständige Konfigurationen:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "Entweder root Passwort oder mindestens ein Superuser muss konfiguriert sein"
msgid "Manage superuser accounts: "
msgstr "Superuser Konto bearbeiten: "
msgid "Manage ordinary user accounts: "
msgstr "Benutzerkonten bearbeiten: "
msgid " Subvolume :{:16}"
msgstr " Subvolume :{:16}"
msgid " mounted at {:16}"
msgstr " Eingehängt bei {:16}"
msgid " with option {}"
msgstr " mit Option {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
" Geben Sie die gewünschten Werte für ein neues Subvolume an \n"
msgid "Subvolume name "
msgstr "Subvolume-Name "
msgid "Subvolume mountpoint"
msgstr "Subvolume-Einhängeort"
msgid "Subvolume options"
msgstr "Subvolume-Optionen"
msgid "Save"
msgstr "Speichern"
msgid "Subvolume name :"
msgstr "Subvolume-Name:"
msgid "Select a mount point :"
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 "
msgid "Define users with sudo privilege, by username: "
msgstr "Geben Sie Benutzer mit sudo Privilegien an: "
#, python-brace-format
msgid "[!] A log file has been created here: {}"
msgstr "[!] Eine Logdatei wurde hier erstellt: {}"
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?"
msgid "Would you like to create a separate partition for /home?"
msgstr "Möchten Sie eine separate Partition für /home erstellen?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "Die ausgewählten Laufwerke haben nicht genug Speicherplatz für eine automatische Vorgabe\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "Minimaler Speicherplatz für /home Partition: {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Minimaler Speicherplatz für Arch Linux Partition: {}GB"
msgid "Continue"
msgstr "Weiter"
msgid "yes"
msgstr "Ja"
msgid "no"
msgstr "Nein"
msgid "set: {}"
msgstr "gewählt: {}"
msgid "Manual configuration setting must be a list"
msgstr "Manuelle Konfiguration muss eine Liste sein"
msgid "No iface specified for manual configuration"
msgstr "Keine Verbindung angegeben für eine manuelle Konfiguration"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "Manuelle Konfiguration für Netzwerkverbindung ohne automatisches DHCP benötigt eine IP Addresse"
msgid "Add interface"
msgstr "Verbindung hinzufügen"
msgid "Edit interface"
msgstr "Verbindung bearbeiten"
msgid "Delete interface"
msgstr "Verbindung löschen"
msgid "Select interface to add"
msgstr "Wählen Sie eine Verbindung aus, welche hinzugefügt werden soll"
msgid "Manual configuration"
msgstr "Manuelle Konfiguration"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "Partition als komprimiert markieren bzw. nicht komprimiert markieren (nur Btrfs)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "Das gewählte Passwort ist schwach, möchten Sie trotzdem fortfahren?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
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"
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."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "Auswahl von Serverpaketen welche installiert und aktiviert werden sollen, z.B. httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "Wählen Sie die gewünschten Server aus, welche installiert werden sollen. Sonst wird eine Minimalinstallation durchgeführt"
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."
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?"
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 "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 "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?"
msgid "Save and exit"
msgstr "Speichern und Beenden"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"enthält Partitionen in der Warteschlange, diese werden damit entfernt, sind Sie sicher?"
msgid "No audio server"
msgstr "Kein Audioserver"
msgid "(default)"
msgstr "(Standard)"
msgid "Use ESC to skip"
msgstr "Drücken Sie ESC, um zu überspringen"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"Drücken Sie Strg+C, um die aktuelle Auswahl zurückzusetzen\n"
"\n"
msgid "Copy to: "
msgstr "Kopieren nach: "
msgid "Edit: "
msgstr "Bearbeiten: "
msgid "Key: "
msgstr "Schlüssel: "
msgid "Edit {}: "
msgstr "Bearbeiten {}: "
msgid "Add: "
msgstr "Hinzufügen: "
msgid "Value: "
msgstr "Wert: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "Sie können das Auswählen eines Laufwerks überspringen und die Laufwerkseinstellungen verwenden, welche am Einhängeort /mnt vorgefunden werden (experimentell)"
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 "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"
msgid "Device"
msgstr "Gerät"
msgid "Size"
msgstr "Größe"
msgid "Free space"
msgstr "Freier Speicherplatz"
msgid "Bus-type"
msgstr "Bus-Typ"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "Entweder root Passwort oder mindestens ein Superuser muss konfiguriert sein"
msgid "Enter username (leave blank to skip): "
msgstr "Benutzernamen eingeben (leer lassen zum Überspringen): "
msgid "The username you entered is invalid. Try again"
msgstr "Der eingegebene Benutzername ist ungültig. Erneut versuchen"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "Soll {} ein Superuser sein (sudo)?"
msgid "Select which partitions to encrypt"
msgstr "Wählen Sie aus, welche Partitionen verschlüsselt werden sollen"
msgid "very weak"
msgstr "Sehr schwach"
msgid "weak"
msgstr "Schwach"
msgid "moderate"
msgstr "Moderat"
msgid "strong"
msgstr "Stark"
msgid "Add subvolume"
msgstr "Subvolume hinzufügen"
msgid "Edit subvolume"
msgstr "Subvolume bearbeiten"
msgid "Delete subvolume"
msgstr "Subvolume löschen"
msgid "Configured {} interfaces"
msgstr "{} Schnittstellen konfiguriert"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "Diese Option setzt die Nummer an parallelen Downloads, die während der Installation durchgeführt werden"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"Geben Sie die Nummer an parallelen Downloads an.\n"
" (Wert zwischen 1 und {})\n"
"Achtung:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - Maximalwert :{} (Erlaubt {} parallele Downloads, erlaubt {} Downloads gleichzeitig)"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - Minimalwert : 1 (Erlaubt einen parallelen Download, erlaubt zwei Downloads gleichzeitig)"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - Deaktivieren/Standard : 0 (Deaktiviert parallele Downloads, erlaubt nur einen Download gleichzeitig)"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "Ungültige Eingabe! Erneut mit gültiger Eingabe versuchen [1 bis {max_downloads}, oder 0 zum deaktivieren]"
msgid "Parallel Downloads"
msgstr "Parallele Downloads"
msgid "ESC to skip"
msgstr "Drücken Sie ESC, um zu überspringen"
msgid "CTRL+C to reset"
msgstr "Strg+C zum zurücksetzen"
msgid "TAB to select"
msgstr "TAB zum auswählen"
msgid "[Default value: 0] > "
msgstr "[Standardwert: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "Um diese Übersetzung nutzen zu können, installieren Sie bitte manuell eine Schriftart, die diese Sprache unterstützt."
msgid "The font should be stored as {}"
msgstr "Die Schriftart sollte als {} gespeichert werden"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Archinstall benötigt Root-Rechte zum ausführen. Siehe --help für mehr."
msgid "Select an execution mode"
msgstr "Wählen Sie einen Ausführmodus"
#, python-brace-format
msgid "Unable to fetch profile from specified url: {}"
msgstr "Konnte Profil nicht von der angegebenen URL holen: {}"
#, python-brace-format
msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}"
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 "Wählen Sie ein oder mehrere Gerät(e) 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?"
msgid "Existing Partitions"
msgstr "Existierende Partitionen"
msgid "Select a partitioning option"
msgstr "Wählen Sie eine Partitionierungsoption aus"
msgid "Enter the root directory of the mounted devices: "
msgstr "Geben Sie das Stammverzeichnis der eingehängten Geräte an: "
#, python-brace-format
msgid "Minimum capacity for /home partition: {}GiB\n"
msgstr "Minimaler Speicherplatz für /home Partition: {}GB\n"
#, python-brace-format
msgid "Minimum capacity for Arch Linux partition: {}GiB"
msgstr "Minimaler Speicherplatz für Arch Linux Partition: {}GB"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "Dies ist eine Auflistung vorprogrammierter Profile (Backup), die es einfacher ermöglichen, Dinge wie Desktop-Umgebungen zu installieren"
msgid "Current profile selection"
msgstr "Momentane Profilauswahl"
msgid "Remove all newly added partitions"
msgstr "Alle neu hinzugefügten Partitionen entfernen"
msgid "Assign mountpoint"
msgstr "Einhängeort für Partition zuweisen"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "Markieren bzw. nicht markieren zum formatieren (alle Daten werden gelöscht)"
msgid "Mark/Unmark as bootable"
msgstr "Als bootbar markieren bzw. nicht markieren"
msgid "Change filesystem"
msgstr "Dateisystem ändern"
msgid "Mark/Unmark as compressed"
msgstr "Als komprimiert markieren bzw. als nicht komprimiert markieren"
msgid "Set subvolumes"
msgstr "Subvolumes setzen"
msgid "Delete partition"
msgstr "Partition löschen"
msgid "Partition"
msgstr "Partition"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "Diese Partition ist aktuell verschlüsselt, zum formatieren muss ein Dateisystem angegeben werden"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
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 markiert."
msgid "Mountpoint: "
msgstr "Einhängeort: "
msgid "Current free sectors on device {}:"
msgstr "Aktuell freie Sektoren auf dem Gerät {}:"
msgid "Total sectors: {}"
msgstr "Sektoren insgesamt: {}"
msgid "Enter the start sector (default: {}): "
msgstr "Geben Sie den Startsektor ein (Standard: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
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?"
#, python-brace-format
msgid "Partition management: {}"
msgstr "Partitionsverwaltung: {}"
#, python-brace-format
msgid "Total length: {}"
msgstr "Gesamtlänge: {}"
msgid "Encryption type"
msgstr "Verschlüsselungstyp"
msgid "Iteration time"
msgstr "Entschlüsselungsdauer"
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr "Geben Sie die Entschlüsselungsdauer für LUKS in Millisekunden an"
msgid "Higher values increase security but slow down boot time"
msgstr "Höhere Werte verbessern die Sicherheit, verlangsamen aber den Systemstart"
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr "Standard: 10000 ms, Empfohlen: 1000 ms - 60000 ms"
msgid "Iteration time cannot be empty"
msgstr "Die angegebene Entschlüsselungsdauer darf nicht leer sein"
msgid "Iteration time must be at least 100ms"
msgstr "Die Entschlüsselungsdauer muss mindestens 100 ms betragen"
msgid "Iteration time must be at most 120000ms"
msgstr "Die Entschlüsselungsdauer darf maximal 120000 ms betragen"
msgid "Please enter a valid number"
msgstr "Geben Sie eine gültige Zahl ein"
msgid "Partitions"
msgstr "Partitionen"
msgid "No HSM devices available"
msgstr "Kein HSM-Gerät verfügbar"
msgid "Partitions to be encrypted"
msgstr "Partitionen die verschlüsselt werden"
msgid "Select disk encryption option"
msgstr "Laufwerksverschlüsselungsoption auswählen"
msgid "Select a FIDO2 device to use for HSM"
msgstr "FIDO2-Gerät für HSM auswählen"
msgid "Use a best-effort default partition layout"
msgstr "Empfohlenes Partitionslayout verwenden"
msgid "Manual Partitioning"
msgstr "Manuelle Partitionierung"
msgid "Pre-mounted configuration"
msgstr "Voreingehängte Konfiguration"
msgid "Unknown"
msgstr "Unbekannt"
msgid "Partition encryption"
msgstr "Partitionsverschlüsselung"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! Formatiere {} in "
msgid "← Back"
msgstr "← Zurück"
msgid "Disk encryption"
msgstr "Festplattenverschlüsselung"
msgid "Configuration"
msgstr "Konfiguration"
msgid "Password"
msgstr "Passwort"
msgid "All settings will be reset, are you sure?"
msgstr "Alle Einstellungen werden zurückgesetzt. Sind Sie sicher?"
msgid "Back"
msgstr "Zurück"
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr "Bitte einen Greeter (Begrüßer/Anmeldebildschirm) für das ausgewählte Profil auswählen: {}"
#, python-brace-format
msgid "Environment type: {}"
msgstr "Umgebungstyp: {}"
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 "Der proprietäre Nvidia-Treiber wird von Sway nicht unterstützt. Es ist wahrscheinlich, dass Fehler auftreten werden, trotzdem fortfahren?"
msgid "Installed packages"
msgstr "Installiere Pakete"
msgid "Add profile"
msgstr "Profil hinzufügen"
msgid "Edit profile"
msgstr "Profil bearbeiten"
msgid "Delete profile"
msgstr "Profil entfernen"
msgid "Profile name: "
msgstr "Profilname: "
msgid "The profile name you entered is already in use. Try again"
msgstr "Der eingegebene Profilname wird bereits verwendet. Erneut versuchen"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "Zusätzliche Pakete die mit diesem Profil installiert werden sollen (Mit Leerzeichen trennen, leer lassen zum Überspringen): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "Dienste, die mit diesem Profil aktiviert werden sollen (Mit Leerzeichen trennen, leer lassen zum Überspringen): "
msgid "Should this profile be enabled for installation?"
msgstr "Soll dieses Profil für die Installation aktiviert werden?"
msgid "Create your own"
msgstr "Erstellen Sie ein Eigenes"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"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.)"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Option auswählen, um Sway Zugriff auf Ihre Hardware zu geben"
msgid "Graphics driver"
msgstr "Grafiktreiber"
msgid "Greeter"
msgstr "Greeter (Begrüßer/Anmeldebildschirm)"
msgid "Please chose which greeter to install"
msgstr "Bitte den zu installierenden Greeter (Begrüßer/Anmeldebildschirm) auswählen"
msgid "This is a list of pre-programmed default_profiles"
msgstr "Dies ist eine Auflistung vorprogrammierter Standardprofile"
msgid "Disk configuration"
msgstr "Laufwerkskonfiguration"
msgid "Profiles"
msgstr "Profile"
msgid "Finding possible directories to save configuration files ..."
msgstr "Finde mögliche Pfade um Konfigurationsdateien zu speichern..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "Ordner um Konfigurationsdateien zu erstellen auswählen"
msgid "Add a custom mirror"
msgstr "Benutzerdefinierten Spiegelserver hinzufügen"
msgid "Change custom mirror"
msgstr "Benutzerdefinierten Spiegelserver bearbeiten"
msgid "Delete custom mirror"
msgstr "Benutzerdefinierten Spiegelserver löschen"
msgid "Enter name (leave blank to skip): "
msgstr "Name eingeben (leer lassen zum Überspringen): "
msgid "Enter url (leave blank to skip): "
msgstr "URL eingeben (leer lassen zum Überspringen): "
msgid "Select signature check option"
msgstr "Signaturprüfungs-Option auswählen"
msgid "Select signature option"
msgstr "Signatur-Option auswählen"
msgid "Custom mirrors"
msgstr "Benutzerdefinierte Spiegelserver"
msgid "Defined"
msgstr "Definiert"
msgid "Save user configuration (including disk layout)"
msgstr "Benutzerkonfiguration (mit Laufwerkslayout) speichern"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"Geben Sie einen Ordner an, in dem die Konfiguration(en) gespeichert werden sollen (TAB zum vervollständigen)\n"
"Ordner: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"Möchten Sie {} Konfigurationsdatei(en) in folgendem Ordner speichern?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "{} Konfigurationsdateien in {} speichern"
msgid "Mirrors"
msgstr "Spiegelserver"
msgid "Mirror regions"
msgstr "Spiegelserver-Regionen"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - Maximalwert : {} ( Erlaubt {} parallele Downloads, erlaubt {max_downloads+1} Downloads gleichzeitig)"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "Ungültige Eingabe! Erneut mit gültiger Eingabe versuchen [1 bis {}, oder 0 zum deaktivieren]"
msgid "Locales"
msgstr "Lokalisierung"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "NetworkManager nutzen (notwendig um Internetverbindungen grafisch in GNOME und KDE einzustellen)"
msgid "Total: {} / {}"
msgstr "Gesamt: {} / {}"
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..."
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 "Geben Sie den Anfang ein (Standard: Sektor {}): "
msgid "Enter end (default: {}): "
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?"
msgid "Path"
msgstr "Pfad"
msgid "Manufacturer"
msgstr "Hersteller"
msgid "Product"
msgstr "Produkt"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "Ungültige Konfiguration: {error}"
msgid "Type"
msgstr "Typ"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "Diese Option setzt die Anzahl der parallelen Downloads, die während der Paketdownloads stattfinden"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"Geben Sie die Nummer an parallelen Downloads an.\n"
"\n"
"Achtung:\n"
#, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr " - Höchster empfohlener Wert : {} ( Erlaubt {} Downloads gleichzeitig )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - Deaktivieren/Standard : 0 (Deaktiviert parallele Downloads, erlaubt nur einen Download gleichzeitig)\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "Ungültige Eingabe! Erneut mit gültiger Eingabe versuchen [oder 0 zum deaktivieren]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Hyprland benötigt Zugriff auf ihren Seat (Sammlung von Hardwaregeräten wie Tastatur, Maus, usw.)"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"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..."
msgid "Would you like to use unified kernel images?"
msgstr "Möchten Sie Vereinigte Kernel Images verwenden?"
msgid "Unified kernel images"
msgstr "Vereinigte Kernel-Images"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "Warte auf Fertigstellung der Zeitsynchronisierung (timedatectl show)."
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Zeitsynchronisierung wird nicht fertig. Während Sie warten, lesen Sie die Dokumentation für Umgehungen dieses Fehlers durch: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "Überspringe das Warten auf die automatische Zeitsynchronisierung (dies kann Fehler verursachen, wenn die Zeit während der Installation nicht synchronisiert ist.)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "Warte auf die Synchronisierung des Arch Linux-Keyrings (archlinux-keyring-wkd-sync)."
msgid "Selected profiles: "
msgstr "Ausgewählte Profile: "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Die Zeitsynchronisierung wird nicht fertig. während Sie warten, lesen Sie die Dokumentation für Umgehungen dieses Fehlers durch: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "Als nodatacow markieren bzw. nicht markieren"
msgid "Would you like to use compression or disable CoW?"
msgstr "Möchten Sie Komprimierung verwenden oder CoW deaktivieren?"
msgid "Use compression"
msgstr "Komprimierung verwenden"
msgid "Disable Copy-on-Write"
msgstr "Copy-on-Write deaktivieren"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway"
msgstr "Auswahl von Desktopumgebungen und kachelnden Fenstermanagern, z.B. GNOME, KDE Plasma, Sway"
#, python-brace-format
msgid "Configuration type: {}"
msgstr "Konfigurationstyp: {}"
msgid "LVM configuration type"
msgstr "LVM-Konfigurationstyp"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "LVM-Verschlüsselung ist derzeit nicht mit mehr als 2 Partitionen unterstützt"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "NetworkManager nutzen (notwendig, um Internetverbindungen grafisch in GNOME und KDE Plasma einzustellen)"
msgid "Select a LVM option"
msgstr "Wählen Sie eine LVM-Option aus"
msgid "Partitioning"
msgstr "Partitionierung"
msgid "Logical Volume Management (LVM)"
msgstr "Logisches Volumenmanagement (LVM)"
msgid "Physical volumes"
msgstr "Physisches Volumen"
msgid "Volumes"
msgstr "Volumes"
msgid "LVM volumes"
msgstr "LVM-Volumes"
msgid "LVM volumes to be encrypted"
msgstr "LVM-Volumes, die verschlüsselt werden sollen"
msgid "Select which LVM volumes to encrypt"
msgstr "Wählen Sie aus, welche LVM-Volumes verschlüsselt werden sollen"
msgid "Default layout"
msgstr "Standardlayout"
msgid "No Encryption"
msgstr "Keine Verschlüsselung"
msgid "LUKS"
msgstr "LUKS"
msgid "LVM on LUKS"
msgstr "LVM auf LUKS"
msgid "LUKS on LVM"
msgstr "LUKS auf LVM"
msgid "Yes"
msgstr "Ja"
msgid "No"
msgstr "Nein"
msgid "Archinstall help"
msgstr "Hilfe für Archinstall"
msgid " (default)"
msgstr " (Standard)"
msgid "Press Ctrl+h for help"
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 Ihre Hardware zu geben"
msgid "Seat access"
msgstr "Seat-Zugriff"
msgid "Mountpoint"
msgstr "Einhängeort"
msgid "HSM"
msgstr "HSM"
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "Geben Sie ein Verschlüsselungspasswort ein (leer lassen, um Verschlüsselung zu deaktivieren):"
msgid "Disk encryption password"
msgstr "Verschlüsselungspasswort"
msgid "Partition - New"
msgstr "Neue Partition"
msgid "Filesystem"
msgstr "Dateisystem"
msgid "Invalid size"
msgstr "Ungültige Größe"
msgid "Start (default: sector {}): "
msgstr "Geben Sie den Anfang ein (Standard: Sektor {}): "
msgid "End (default: {}): "
msgstr "Geben Sie das Ende ein (Standard: {}): "
msgid "Subvolume name"
msgstr "Name des Subvolumes"
msgid "Disk configuration type"
msgstr "Laufwerkskonfigurationstyp"
msgid "Root mount directory"
msgstr "Einhängeverzeichnis der Root-Partition"
msgid "Select language"
msgstr "Sprache auswählen"
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "Schreiben Sie zusätzliche Pakete, die installiert werden sollen (mit einem Leerzeichen getrennt, zum Überspringen leer lassen):"
msgid "Invalid download number"
msgstr "Ungültige Anzahl an Downloads"
msgid "Number downloads"
msgstr "Anzahl der Downloads"
msgid "The username you entered is invalid"
msgstr "Der eingegebene Benutzername ist ungültig"
msgid "Username"
msgstr "Benutzername"
#, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "Soll \"{}\" ein Superuser sein (sudo)?\n"
msgid "Interfaces"
msgstr "Verbindungen"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "Sie müssen im IP-Konfigurationsmodus eine gültige IP-Adresse eingeben"
msgid "Modes"
msgstr "Modi"
msgid "IP address"
msgstr "IP-Adresse"
msgid "Enter your gateway (router) IP address (leave blank for none)"
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 "Geben Sie die DNS-Server ein (mit Leerzeichen getrennt; leer lassen für keinen Server)"
msgid "DNS servers"
msgstr "DNS-Server"
msgid "Configure interfaces"
msgstr "Schnittstellen konfigurieren"
msgid "Kernel"
msgstr "Kernel"
msgid "UEFI is not detected and some options are disabled"
msgstr "UEFI wurde nicht erkannt. Einige Optionen wurden deaktiviert"
msgid "Info"
msgstr "Info"
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "Der proprietäre Nvidia-Treiber wird von Sway nicht unterstützt."
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "Es ist wahrscheinlich, dass Fehler auftreten werden. Trotzdem fortfahren?"
msgid "Main profile"
msgstr "Hauptprofil"
msgid "Confirm password"
msgstr "Passwort bestätigen"
msgid "The confirmation password did not match, please try again"
msgstr "Das Passwort stimmt nicht überein, bitte versuche es erneut"
msgid "Not a valid directory"
msgstr "Ungültiges Verzeichnis"
msgid "Would you like to continue?"
msgstr "Möchten Sie fortfahren?"
msgid "Directory"
msgstr "Verzeichnis"
msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)"
msgstr "Geben Sie einen Ordner an, in dem die Konfiguration(en) gespeichert werden sollen (Tab zum Vervollständigen)"
#, python-brace-format
msgid "Do you want to save the configuration file(s) to {}?"
msgstr "Möchten Sie die Konfigurationsdatei(en) im Verzeichnis {} speichern?"
msgid "Enabled"
msgstr "Aktiviert"
msgid "Disabled"
msgstr "Deaktiviert"
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr "Bitte melden Sie das Problem mit der erstellten Datei auf https://github.com/archlinux/archinstall/issues"
msgid "Mirror name"
msgstr "Spiegelserver-Name"
msgid "Url"
msgstr "URL"
msgid "Select signature check"
msgstr "Signaturprüfungs-Option auswählen"
msgid "Select execution mode"
msgstr "Wählen Sie einen Ausführungsmodus"
msgid "Press ? for help"
msgstr "Drücke ? für Hilfe"
msgid "Choose an option to give Hyprland access to your hardware"
msgstr "Eine Option auswählen, um Hyprland Zugriff auf Ihre Hardware zu geben"
msgid "Additional repositories"
msgstr "Zusätzliche Repositorien"
msgid "NTP"
msgstr "NTP"
msgid "Swap on zram"
msgstr "Swap auf zram"
msgid "Name"
msgstr "Name"
msgid "Signature check"
msgstr "Signaturprüfung"
#, python-brace-format
msgid "Selected free space segment on device {}:"
msgstr "Ausgewähltes freies Segment auf dem Gerät {}:"
#, python-brace-format
msgid "Size: {} / {}"
msgstr "Größe: {} / {}"
#, python-brace-format
msgid "Size (default: {}): "
msgstr "Größe (Standard: {}): "
msgid "HSM device"
msgstr "HSM-Gerät"
msgid "Some packages could not be found in the repository"
msgstr "Einige Pakete konnten nicht in den Repositorien gefunden werden"
msgid "User"
msgstr "Benutzername"
msgid "The specified configuration will be applied"
msgstr "Die festgelegte Konfiguration wird angewendet"
msgid "Wipe"
msgstr "Löschen"
msgid "Mark/Unmark as XBOOTLDR"
msgstr "Als XBOOTLDR markieren bzw. nicht markieren"
msgid "Loading packages..."
msgstr "Lade Pakete..."
msgid "Select any packages from the below list that should be installed additionally"
msgstr "Wählen Sie Pakete aus, die Sie zusätzlich installieren möchten"
msgid "Add a custom repository"
msgstr "Benutzerdefiniertes Repositorium hinzufügen"
msgid "Change custom repository"
msgstr "Benutzerdefiniertes Repositorium bearbeiten"
msgid "Delete custom repository"
msgstr "Benutzerdefiniertes Repositorium löschen"
msgid "Repository name"
msgstr "Name des Repositoriums"
msgid "Add a custom server"
msgstr "Benutzerdefinierten Spiegelserver hinzufügen"
msgid "Change custom server"
msgstr "Benutzerdefinierten Spiegelserver wechseln"
msgid "Delete custom server"
msgstr "Benutzerdefinierten Spiegelserver löschen"
msgid "Server url"
msgstr "Server-URL"
msgid "Select regions"
msgstr "Regionen auswählen"
msgid "Add custom servers"
msgstr "Benutzerdefinierte Spiegelserver hinzufügen"
msgid "Add custom repository"
msgstr "Benutzerdefiniertes Repositorium hinzufügen"
msgid "Loading mirror regions..."
msgstr "Lade Spiegelserver-Regionen..."
msgid "Mirrors and repositories"
msgstr "Spiegelserver und Paketrepositorien"
msgid "Selected mirror regions"
msgstr "Ausgewählte Spiegelserver-Regionen"
msgid "Custom servers"
msgstr "Benutzerdefinierte Spiegelserver"
msgid "Custom repositories"
msgstr "Zusätzliche Repositorien"
msgid "Only ASCII characters are supported"
msgstr "Es werden nur ASCII-Zeichen unterstützt"
msgid "Show help"
msgstr "Hilfe anzeigen"
msgid "Exit help"
msgstr "Hilfe beenden"
msgid "Preview scroll up"
msgstr "Vorschau nach oben scrollen"
msgid "Preview scroll down"
msgstr "Vorschau nach unten scrollen"
msgid "Move up"
msgstr "Nach oben bewegen"
msgid "Move down"
msgstr "Nach unten bewegen"
msgid "Move right"
msgstr "Nach rechts bewegen"
msgid "Move left"
msgstr "Nach links bewegen"
msgid "Jump to entry"
msgstr "Zum Eintrag springen"
msgid "Skip selection (if available)"
msgstr "Auswahl überspringen (Falls verfügbar)"
msgid "Reset selection (if available)"
msgstr "Auswahl zurücksetzen (Falls verfügbar)"
msgid "Select on single select"
msgstr "Bei Einzelauswahl auswählen"
msgid "Select on multi select"
msgstr "Bei Mehrfachauswahl auswählen"
msgid "Reset"
msgstr "Zurücksetzen"
msgid "Skip selection menu"
msgstr "Auswahlmenü überspringen"
msgid "Start search mode"
msgstr "Suchmodus starten"
msgid "Exit search mode"
msgstr "Suchmodus beenden"
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
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 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 Ihre Hardware zu geben"
msgid "Mark/Unmark as ESP"
msgstr "Als ESP markieren bzw. nicht markieren"
msgid "Package group:"
msgstr "Paketgruppe:"
msgid "Exit archinstall"
msgstr "Archinstall verlassen"
msgid "Reboot system"
msgstr "System neustarten"
msgid "chroot into installation for post-installation configurations"
msgstr "Greifen Sie per chroot auf die neue Installation zu, um weitere Änderungen vorzunehmen"
msgid "Installation completed"
msgstr "Installation abgeschlossen"
msgid "What would you like to do next?"
msgstr "Was möchten Sie als nächstes tun?"
#, python-brace-format
msgid "Select which mode to configure for \"{}\""
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"
msgid "Incorrect password"
msgstr "Falsches Passwort"
msgid "Credentials file decryption password"
msgstr "Passwort für die Entschlüsselung der Anmeldedaten-Datei"
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr "Möchten Sie die Datei user_credentials.json verschlüsseln?"
msgid "Credentials file encryption password"
msgstr "Passwort für die Verschlüsselung der Anmeldedaten-Datei"
#, python-brace-format
msgid "Repositories: {}"
msgstr "Repositorien: {}"
msgid "New version available"
msgstr "Neue Version verfügbar"
msgid "Passwordless login"
msgstr "Login ohne Passwort"
msgid "Second factor login"
msgstr "Zwei-Faktor-Login"
msgid "Bluetooth"
msgstr "Bluetooth"
msgid "Would you like to configure Bluetooth?"
msgstr "Möchten Sie Bluetooth aktivieren?"
msgid "Print service"
msgstr ""
#, fuzzy
msgid "Would you like to configure the print service?"
msgstr "Möchten Sie Bluetooth aktivieren?"
#, fuzzy
msgid "Power management"
msgstr "Partitionsverwaltung: {}"
msgid "Authentication"
msgstr "Authentifizierung"
msgid "Applications"
msgstr "Anwendungen"
msgid "U2F login method: "
msgstr "U2F-Login-Methode: "
msgid "Passwordless sudo: "
msgstr "Sudo ohne Passwort: "
#, python-brace-format
msgid "Btrfs snapshot type: {}"
msgstr "Btrfs-Snapshot-Typ: {}"
msgid "Syncing the system..."
msgstr "Synchronisiere das System..."
msgid "Value cannot be empty"
msgstr "Der Wert darf nicht leer sein"
msgid "Snapshot type"
msgstr "Snapshot-Typ"
#, python-brace-format
msgid "Snapshot type: {}"
msgstr "Snapshot-Typ: {}"
msgid "U2F login setup"
msgstr "U2F Login-Einrichtung"
msgid "No U2F devices found"
msgstr "Keine U2F-Geräte gefunden"
msgid "U2F Login Method"
msgstr "U2F-Login-Methode"
msgid "Enable passwordless sudo?"
msgstr "Möchten Sie sudo ohne Passwort aktivieren?"
#, python-brace-format
msgid "Setting up U2F device for user: {}"
msgstr "Richte U2F-Gerät für den Benutzer {} ein"
msgid "You may need to enter the PIN and then touch your U2F device to register it"
msgstr "Sie müssen möglicherweise Ihre PIN eingeben und danach Ihr U2F-Gerät berühren, um es zu registrieren"
msgid "Starting device modifications in "
msgstr ""
#, fuzzy
msgid "No network connection found"
msgstr "Keine Netzwerkkonfiguration"
#, fuzzy
msgid "Would you like to connect to a Wifi?"
msgstr "Möchten Sie fortfahren?"
#, fuzzy
msgid "No wifi interface found"
msgstr "Schnittstellen konfigurieren"
#, fuzzy
msgid "Select wifi network to connect to"
msgstr "Wählen Sie einen Netzwerkadapter zur Konfiguration aus"
msgid "Scanning wifi networks..."
msgstr ""
#, fuzzy
msgid "No wifi networks found"
msgstr "Keine Netzwerkkonfiguration"
msgid "Failed setting up wifi"
msgstr ""
#, fuzzy
msgid "Enter wifi password"
msgstr "Passwort eingeben: "
msgid "Ok"
msgstr ""
msgid "Removable"
msgstr ""
msgid "Install to removable location"
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr ""
msgid "Will install to standard location with NVRAM entry"
msgstr ""
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr ""
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr ""
msgid "USB drives or other portable external media."
msgstr ""
msgid "Systems where you want the disk to be bootable on any computer."
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr ""
msgid "Will install to custom location with NVRAM entry"
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr ""
msgid "most Apple Macs, many laptops..."
msgstr ""
#, fuzzy
msgid "Language"
msgstr "Lokale Sprache"
msgid "Compression algorithm"
msgstr ""
#, fuzzy
msgid "Only packages such as base, sudo, 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."
#, fuzzy
msgid "Select zram compression algorithm:"
msgstr "Wählen Sie einen Einhängeort aus:"
msgid "Use Network Manager (default backend)"
msgstr ""
msgid "Use Network Manager (iwd backend)"
msgstr ""
#~ msgid "All open-source"
#~ msgstr "Alle quelloffene"
#~ msgid "AMD / ATI (open-source)"
#~ msgstr "AMD / ATI (quelloffen)"
#~ msgid "Intel (open-source)"
#~ msgstr "Intel (quelloffen)"
#~ msgid "Nvidia (open kernel module for newer GPUs, Turing+)"
#~ msgstr "Nvidia (offene Kernelmodule für neuere GPUs, Turing+)"
#~ msgid "Nvidia (open-source nouveau driver)"
#~ msgstr "Nvidia (quelloffener nouveau-Treiber)"
#~ msgid "Nvidia (proprietary)"
#~ msgstr "Nvidia (proprietär)"
#~ msgid "VirtualBox (open-source)"
#~ msgstr "VirtualBox (quelloffen)"
#~ msgid "Never"
#~ msgstr "Nie"
#~ msgid "Optional"
#~ msgstr "Optional"
#~ msgid "Required"
#~ msgstr "Benötigt"
#~ msgid "Window Manager"
#~ msgstr "Fenstermanager"
#~ msgid "Desktop Environment"
#~ msgstr "Desktopumgebung"
================================================
FILE: archinstall/locales/el/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: el\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.1\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] Ένα αρχείο καταγραφής έχει δημιουργηθεί εδώ: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Παρακαλώ επισυνάψτε αυτό το issue (και αρχείο) στο https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "Θέλετε σίγουρα να διακόψετε;"
msgid "And one more time for verification: "
msgstr "Και άλλη μία φορά για επαλήθευση: "
msgid "Would you like to use swap on zram?"
msgstr "Θα θέλατε να χρησιμοποιήσετε swap με zram;"
msgid "Desired hostname for the installation: "
msgstr "Επιθυμητό όνομα υπολογιστή για την εγκατάσταση: "
msgid "Username for required superuser with sudo privileges: "
msgstr "Όνομα χρήστη για τον απαιτούμενο υπερ-χρήστη με δικαιώματα sudo: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "Επιπρόσθετοι χρήστες για την εγκατάσταση (αφήστε κενό για κανέναν χρήστη): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "Θα έπρεπε αυτός ο χρήστης να είναι ένας υπερχρήστης (χρήστης sudo);"
msgid "Select a timezone"
msgstr "Επιλέξτε μία ζώνη ώρας"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "Θα θέλατε να χρησιμοποιήσετε το GRUB ως bootloader αντί του systemd-boot;"
msgid "Choose a bootloader"
msgstr "Επιλέξτε έναν bootloader"
msgid "Choose an audio server"
msgstr "Επιλέξτε έναν διακομιστή ήχου"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Εγκαθίστανται μόνο πακέτα όπως το base, base-devel, linux, linux-firmware, efibootmgr και προαιρετικά πακέτα προφίλ."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr ""
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "Εάν επιθυμείτε έναν περιηγητή διαδικτύου, όπως ο firefox ή ο chromium, πρέπει να το καθορίσετε στο επακόλουθο prompt."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "Γράψτε περαιτέρω πακέτα προς εγκατάσταση (χωρισμένα με κενό, αφήστε άδειο για να παραληφθεί): "
msgid "Copy ISO network configuration to installation"
msgstr "Αντιγραφή διαμόρφωση δικτύου ISO στην εγκατάσταση"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "Χρήση NetworkManager (απαραίτητος για τη διαμόρφωση του δικτύου γραφικά σε GNOME και KDE)"
msgid "Select one network interface to configure"
msgstr "Επιλέξτε μία διεπαφή δικτύου για διαμόρφωση"
msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
msgstr "Επιλέξτε ποιο mode να διαμορφωθεί για το \"{}\" ή παραλείψτε για να χρησιμοποιηθεί το default mode \"{}\""
#, python-brace-format
msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): "
msgstr "Εισάγετε την IP και το υποδίκτυο για το {} (παράδειγμα: 192.168.0.5/24): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "Εισάγετε τη διεύθυνση IP του router σας ή αφήστε κενό για καμία διεύθυνση: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "Εισάγετε τους διακομιστές DNS σας (χωρισμένοι με κενό, αφήστε κενό για κανέναν διακομιστή): "
msgid "Select which filesystem your main partition should use"
msgstr "Επιλέξτε ποιο σύστημα αρχείων θέλετε να χρησιμοποιεί η κύρια διαμέριση"
msgid "Current partition layout"
msgstr "Τρέχουσα διάταξη διαμέρισης"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"Επιλέξτε τι να γίνει με\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "Εισάγετε ένα επιθυμητό τύπο συστήματος αρχείων για τη διαμέριση"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr ""
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr ""
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} περιέχει διαμερίσεις στην ουρά, αυτό θα τις διαγράψει, είστε σίγουρη/ος;"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"Επιλέξτε ποιες διαμερίσεις να διαγραφούν μέσω δείκτη"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"Επιλέξτε ποια διαμέριση να γίνει mount που, μέσω δείκτη"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * Τα σημεία mount της διαμέρισης είναι σχετικά ως προς το εσωτερικό της εγκατάστασης, για παράδειγμα το boot θα ήταν /boot."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "Επιλέξτε που να γίνει mount η διαμέρισιη (αφήστε κενό για να διαγραφεί το σημείο mount): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"Επιλέξτε ποια διαμέριση να μεταμφιεστεί για μορφοποίηση"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"Επιλέξτε ποια διαμέριση να σημειωθεί ως κρυπτογραφημένη"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"Επιλέξτε ποια διαμέριση να σημειωθεί ως bootable"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"Επιλέξτε σε ποια διαμέριση να δημιουργηθεί σύστημα αρχείων"
msgid "Enter a desired filesystem type for the partition: "
msgstr "Εισάγετε τον επιθυμητό τύπο συστήματος αρχείων για αυτήν τη διαμέριση: "
msgid "Archinstall language"
msgstr "Γλώσσα archinstall"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "Διαγραφή όλων των επιλεγμένων δίσκων και χρήση μίας προκαθορισμένης διάταξης βέλτιστης προσπάθειας"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "Επιλέξτε τι να γίνει με κάθε ξεχωριστό δίσκο (με επακόλουθο τη χρήση διαμέρισης)"
msgid "Select what you wish to do with the selected block devices"
msgstr "Επιλέξτε τι θέλετε να κάνετε με τις επιλεγμένες συσκευές block"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "Αυτή είναι μία λίστα με προ-προγραμματισμένα προφίλ, που μπορεί να κάνουν την εγκατάσταση πραγμάτων όπως περιβάλλοντα επιφάνειας εργασίας πιο εύκολη"
msgid "Select keyboard layout"
msgstr "Επιλέξτε διάταξη πληκτρολογίου"
msgid "Select one of the regions to download packages from"
msgstr "Επιλέξτε μία από τις περιοχές από τις οποίες να γίνει λήψη πακέτων"
msgid "Select one or more hard drives to use and configure"
msgstr "Επιλέξτε έναν ή περισσότερους σκληρούς δίσκους προς χρήση και διαμόρφωση"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "Για την καλύτερη συμβατότητα με το AMD υλισμικό σας, ίσως θέλετε να χρησιμοποιήσετε είτε την \"όλα ανοιχτού κώδικα\", είτε την AMD / ATI επιλογή."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "Για την καλύτερη συμβατότητα με το Intel υλισμικό σας, ίσως θέλετε να χρησιμοποιήσετε είτε την \"όλα ανοιχτού κώδικα\", είτε την Intel επιλογή.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "Για την καλύτερη συμβατότητα με το Nvidia υλισμικό σας, ίσως θέλετε να χρησιμοποιήσετε τον ιδιόκτητο οδηγό της Nvidia.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Επιλέξτε έναν οδηγό γραφικών ή αφήστε κενό για να εγκατασταθούν όλοι οι οδηγοί ανοιχτού κώδικα"
msgid "All open-source (default)"
msgstr "Όλα ανοιχτού κώδικα (προκαθορισμένο)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "Επιλέξτε ποιοι kernels να χρησιμοποιηθούν ή αφήστε κενό για το προκαθορισμένο \"{}\""
msgid "Choose which locale language to use"
msgstr "Επιλέξτε ποια τοπική γλώσσα να χρησιμοποιηθεί"
msgid "Choose which locale encoding to use"
msgstr "Επιλέξτε ποια τοπική κωδικοποίηση να χρησιμοποιηθεί"
msgid "Select one of the values shown below: "
msgstr "Επιλέξτε μία από τις τιμές που φαίνονται παρακάτω: "
msgid "Select one or more of the options below: "
msgstr "Επιλέξτε μία ή παραπάνω από τις επιλογές παρακάτω: "
msgid "Adding partition...."
msgstr "Προσθέτωντας τη διαμέριση...."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "Πρέπει να εισάγετε έναν έγκυρο fs-type ώστε να συνεχίσετε. Δείτε `man parted` για έγκυρους fs-type."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "Σφάλμα: Η καταγραφή προφίλ στο URL \"{}\" είχε ως αποτέλεσμα:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "Σφάλμα: Η αποκωδικοποίηση του αποτελέσματος \"{}\" ως JSON ήταν ανεπιτυχής:"
msgid "Keyboard layout"
msgstr "Διάταξη πληκτρολογίου"
msgid "Mirror region"
msgstr "Περιοχή mirror"
msgid "Locale language"
msgstr "Τοπική γλώσσα"
msgid "Locale encoding"
msgstr "Τοπική κωδικοποίηση"
msgid "Drive(s)"
msgstr "Δίσκος(οι)"
msgid "Disk layout"
msgstr "Διάταξη δίσκου"
msgid "Encryption password"
msgstr "Κωδικός κρυπτογράφησης"
msgid "Swap"
msgstr "Swap"
msgid "Bootloader"
msgstr "Bootloader"
msgid "Root password"
msgstr "Κωδικός root"
msgid "Superuser account"
msgstr "Λογαριασμός υπερχρήστη"
msgid "User account"
msgstr "Λογαριασμός χρήστη"
msgid "Profile"
msgstr "Προφίλ"
msgid "Audio"
msgstr "Ήχος"
msgid "Kernels"
msgstr "Kernels"
msgid "Additional packages"
msgstr "Περαιτέρω πακέτα"
msgid "Network configuration"
msgstr "Διαμόρφωση δικτύου"
msgid "Automatic time sync (NTP)"
msgstr "Αυτόματη ενημέρωση ώρας (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "Εγκατάσταση (η/οι {} διαμόρφωση/εις λείπει/ουν)"
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 ""
"Επιλέξατε να παραλείψετε την επιλογή σκληρού δίσκου\n"
"και θα χρησιμοποιηθεί οποιαδήποτε εγκατάσταση δίσκου είναι mount στο {} (πειραματικό)\n"
"ΠΡΟΣΟΧΗ: Το archinstall δεν μπορεί να ελέγξει την καταλληλότητα αυτής της εγκατάστασης\n"
"Θέλετε να συνεχίσετε;"
msgid "Re-using partition instance: {}"
msgstr "Επαναχρησιμοποιώντας την instance διαμέρισης: {}"
msgid "Create a new partition"
msgstr "Δημιουργία καινούργιας διαμέρισης"
msgid "Delete a partition"
msgstr "Διαγραφή διαμέρισης"
msgid "Clear/Delete all partitions"
msgstr "Καθαρισμός/Διαγραφή όλων των διαμερίσεων"
msgid "Assign mount-point for a partition"
msgstr "Εκχώρηση σημείου mount για μία διαμέριση"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "Σημείωση/Ξεμαρκάρισμα διαμέρισης προς μορφοποίηση (διαγράφει τα δεδομένα)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "Σημείωση/Ξεμαρκάρισμα διαμέρισης ως κρυπτογραφημένη"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "Σημείωση/Ξεμαρκάρισμα διαμέρισης ως ικανή για boot (αυτόματο για /boot)"
msgid "Set desired filesystem for a partition"
msgstr "Θέση επιθυμητού συστήματος αρχείων για μία διαμέριση"
msgid "Abort"
msgstr "Εγκατάλειψη"
msgid "Hostname"
msgstr "Όνομα υπολογιστή"
msgid "Not configured, unavailable unless setup manually"
msgstr "Δεν έχει διαμορφωθεί, μη διαθέσιμο εκτός εάν εγκατασταθεί χειροκίνητα"
msgid "Timezone"
msgstr "Ζώνη ώρας"
msgid "Set/Modify the below options"
msgstr "Θέση/Τροποποίηση των παρακάτω επιλογών"
msgid "Install"
msgstr "Εγκατάσταση"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"Χρησιμοποιήστε ESC για παράλειψη\n"
"\n"
msgid "Suggest partition layout"
msgstr "Πρόταση διάταξης διαμέρισης"
msgid "Enter a password: "
msgstr "Εισάγετε κωδικό: "
msgid "Enter a encryption password for {}"
msgstr "Εισάγετε έναν κωδικό κρυπτογράφησης για {}"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "Εισάγετε κωδικό κρυπτογράφησης δίσκου (αφήστε κενό για καμία κρυπτογράφηση): "
msgid "Create a required super-user with sudo privileges: "
msgstr "Δημιουργήστε έναν απαιτούμενο υπερχρήστη με δικαιώματα sudo: "
msgid "Enter root password (leave blank to disable root): "
msgstr "Εισάγετε τον κωδικό root (αφήστε κενό για να απενεργοποιηθεί το root): "
msgid "Password for user \"{}\": "
msgstr "Κωδικός για τον χρήστη \"{}\": "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "Επαληθεύοντας ότι υπάρχουν περαιτέρω πακέτα (μπορεί να πάρει μερικά δευτερόλεπτα)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "Θα θέλατε να χρησιμοποιήσετε αυτόματο συγχρονισμό χρόνου (NTP) με τους προκαθορισμένους διακομιστές χρόνου;\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.\n"
"Για περισσότερες πληροφορίες, παρακαλώ ελέγξτε το Arch wiki"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "Εισάγετε ένα όνομα χρήστη για να δημιουργήσετε έναν ακόμα χρήστη (αφήστε κενό για παράλειψη): "
msgid "Use ESC to skip\n"
msgstr "Χρησιμοποιήστε ESC για παράλειψη\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
"Επιλέξτε ένα αντικείμενο από τη λίστα, και επιλέξτε μία από τις διαθέσιμες επιλογές προς εκτέλεση"
msgid "Cancel"
msgstr "Ακύρωση"
msgid "Confirm and exit"
msgstr "Επιβεβαίωση και έξοδος"
msgid "Add"
msgstr "Προσθήκη"
msgid "Copy"
msgstr "Αντιγραφή"
msgid "Edit"
msgstr "Επεξεργασία"
msgid "Delete"
msgstr "Διαγραφή"
msgid "Select an action for '{}'"
msgstr "Επιλέξτε μία ενέργεια για '{}'"
msgid "Copy to new key:"
msgstr "Αντιγραφή σε νέο κλειδί:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "Άγνωστος τύπος nic: {}. Πιθανές τιμές είναι οι {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"Αυτή είναι η επιλεγμένη σας διαμόρφωση:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Ο Pacman ήδη εκτελείται, αναμονή μέχρι 10 λεπτά ώστε να τερματίσει."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "Η προϋπάρχουσα pacman lock δεν εξήλθε. Παρακαλώ καθαρίστε τυχόν συνεδρίες pacman πριν τη χρήση του archinstall."
msgid "Choose which optional additional repositories to enable"
msgstr "Επιλέξτε ποια προαιρετικά περαιτέρω αποθετήρια να ενεργοποιηθούν"
msgid "Add a user"
msgstr "Προσθήκη χρήστη"
msgid "Change password"
msgstr "Αλλαγή κωδικού"
msgid "Promote/Demote user"
msgstr "Προαγωγή/Υποβιβασμός χρήστη"
msgid "Delete User"
msgstr "Διαγραφή Χρήστη"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"Ορισμός νέου χρήστη\n"
msgid "User Name : "
msgstr "Όνομα Χρήστη : "
msgid "Should {} be a superuser (sudoer)?"
msgstr "Θα έπρεπε ο {} να είναι υπερχρήστης (χρήστης sudo);"
msgid "Define users with sudo privilege: "
msgstr "Καθορίστε τους χρήστες με δικαιώματα sudo: "
msgid "No network configuration"
msgstr "Καμία διαμόρφωση δικτύου"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Θέση επιθυμητών υποόγκων σε μία διαμέριση btrfs"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"Επιλέξτε σε ποια διαμέριση να τεθούν υποόγκοι"
msgid "Manage btrfs subvolumes for current partition"
msgstr "Διαχειριστείτε τους υποόγκους btrfs για την τρέχουσα διαμέριση"
msgid "No configuration"
msgstr "Καμία διαμόρφωση"
msgid "Save user configuration"
msgstr "Αποθήκευση διαμόρφωσης χρήστη"
msgid "Save user credentials"
msgstr "Αποθήκευση στοιχείων χρήστη"
msgid "Save disk layout"
msgstr "Αποθήκευση διάταξης δίσκου"
msgid "Save all"
msgstr "Αποθήκευση όλων"
msgid "Choose which configuration to save"
msgstr "Επιλέξτε ποια διαμόρφωση να αποθηκευτεί"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "Εισάγετε έναν φάκελο για την αποθήκευση της/ων διαμόρφωση/ων: "
msgid "Not a valid directory: {}"
msgstr "Μη έγκυρος φάκελος: {}"
msgid "The password you are using seems to be weak,"
msgstr "Ο κωδικός που χρησιμοποιείτε φαίνεται να είναι αδύναμος,"
msgid "are you sure you want to use it?"
msgstr "είστε σίγουρη/ος ότι θέλετε να τον χρησιμοποιήσετε;"
msgid "Optional repositories"
msgstr "Προαιρετικά αποθετήρια"
msgid "Save configuration"
msgstr "Αποθήκευση διαμόρφωσης"
msgid "Missing configurations:\n"
msgstr "Διαμορφώσεις που λείπουν:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "Πρέπει να καθοριστεί είτε ο κωδικός του root είτε τουλάχιστον 1 υπερχρήστης"
msgid "Manage superuser accounts: "
msgstr "Διαχείριση λογαριασμών υπερχρήστη: "
msgid "Manage ordinary user accounts: "
msgstr "Διαχείριση λογαριασμών κανονικών χρηστών: "
msgid " Subvolume :{:16}"
msgstr " Υποόγκος :{:16}"
msgid " mounted at {:16}"
msgstr " Έχει γίνει mount στο {:16}"
msgid " with option {}"
msgstr " με επιλογή {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
" Συμπληρώστε τις επιθυμητές τιμές για έναν νέο υποόγκο \n"
msgid "Subvolume name "
msgstr "Όνομα υποόγκου "
msgid "Subvolume mountpoint"
msgstr "Σημείο mount υποόγκου"
msgid "Subvolume options"
msgstr "Επιλογές υποόγκου"
msgid "Save"
msgstr "Αποθήκευση"
msgid "Subvolume name :"
msgstr "Όνομα υποόγκου :"
msgid "Select a mount point :"
msgstr "Επιλέξτε ένα σημείο mount :"
msgid "Select the desired subvolume options "
msgstr "Επιλέξτε τις επιθυμητές επιλογές υποόγκου "
msgid "Define users with sudo privilege, by username: "
msgstr "Καθορίστε τους χρήστες με δικαιώματα sudo, μέσω όνομα χρήστη: "
#, python-brace-format
msgid "[!] A log file has been created here: {}"
msgstr "[!] Ένα αρχείο ιστορικού έχει δημιουργηθεί εδώ: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "Θα θέλατε να χρησιμοποιήσετε BTRFS υποόγκους με μία προκαθορισμένη δομή;"
msgid "Would you like to use BTRFS compression?"
msgstr "Θα θέλατε να χρησιμοποιήσετε συμπίεση BTRFS;"
msgid "Would you like to create a separate partition for /home?"
msgstr "Θα θέλατε να δημιουργήσετε μία ξεχωριστή διαμέριση για το /home;"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "Οι επιλεγμένοι δίσκοι δεν έχουν την ελάχιστη χωρητικότητα που απαιτείται για μία αυτόματη πρόταση\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "Ελάχιστη χωρητικότητα για τη διαμέριση /home: {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Ελάχιστη χωρητικότητα για τη διαμέριση Arch Linux: {}GB"
msgid "Continue"
msgstr "Συνέχεια"
msgid "yes"
msgstr "ναι"
msgid "no"
msgstr "οχι"
msgid "set: {}"
msgstr "θέση {}"
msgid "Manual configuration setting must be a list"
msgstr "Η ρύθμιση χειροκίνητης διαμόρφωσης πρέπει να είναι μία λίστα"
msgid "No iface specified for manual configuration"
msgstr "Δεν έχει καθοριστεί iface για χειροκίνητη διαμόρφωση"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "Η χειροκίνητη διαμόρφωση nic χωρίς αυτόματο DHCP απαιτεί μία διεύθυνση IP"
msgid "Add interface"
msgstr "Προσθήκη διεπαφής"
msgid "Edit interface"
msgstr "Επεξεργασία διεπαφής"
msgid "Delete interface"
msgstr "Διαγραφή διεπαφής"
msgid "Select interface to add"
msgstr "Επιλέξτε διεπαφή προς προσθήκη"
msgid "Manual configuration"
msgstr "Χειροκίνητη διαμόρφωση"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "Σημείωση/Ξεμαρκάρισμα μίας διαμέρισως ως συμπιεσμένη (μόνο για btrfs)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "Ο κωδικός που χρησιμοποιείτε φαίνεται να είναι αδύναμος, είστε σίγουρη/ος ότι θέλετε να τον χρησιμοποιήσετε;"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "Παρέχει μία επιλογή από περιβάλλοντα επιφάνειας εργασίας και διαχειριστές tiling παραθύρων, π.χ. gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "Επιλέξτε το επιθυμητό σας περιβάλλον επιφάνειας εργασίας"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "Μία πολύ βασική εγκατάσταση που σας επιτρέπει να προσαρμόσετε τα Arch Linux όπως εσείς κρίνετε κατάλληλο."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "Παρέχει μία επιλογή από ποικίλα πακέτα διακομιστών προς εγκατάσταση και ενεργοποίηση, π.χ. httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "Επιλέξτε ποιους διακομιστές να εγκατασταθούν, αν δεν επιλεχθεί κανένας τότε θα γίνει μία minimal εγκατάσταση"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "Εγκαθιστά ένα minimal σύστημα καθώς και το xorg και οδηγούς γραφικών."
msgid "Press Enter to continue."
msgstr "Πατήστε Enter για να συνεχίσετε."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "Θα θέλατε να κάνετε chroot εντός της καινούργιας εγκατάστασης για περαιτέρω διαμόρφωση;"
msgid "Are you sure you want to reset this setting?"
msgstr "Είστε σίγουρη/ος ότι θέλετε να επαναφέρετε αυτήν τη ρύθμιση;"
msgid "Select one or more hard drives to use and configure\n"
msgstr "Επιλέξτε έναν ή περισσότερους σκληρούς δίσκους προς χρήση και διαμόρφωση\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "Τυχόν τροποποιήσεις στην ήδη υπάρχουσα ρύθμιση θα επαναφέρουν τη διάταξη δίσκου!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "Αν επαναφέρετε την επιλογή σκληρού δίσκου αυτό επίσης θα επαναφέρει την τρέχουσα διάταξη δίσκου. Είστε σίγουρη/ος;"
msgid "Save and exit"
msgstr "Αποθήκευση και έξοδος"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"περιέχει διαμερίσεις στην ουρά, αυτό θα τις διαγράψει, είστε σίγουρη/ος;"
msgid "No audio server"
msgstr "Κανένας διακομιστής ήχου"
msgid "(default)"
msgstr "(προκαθορισμένο)"
msgid "Use ESC to skip"
msgstr "Χρησιμοποιήστε ESC για παράλειψη"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"Χρησιμοποιήστε CTRL+C για να επαναφέρετε την τρέχουσα επιλογή\n"
"\n"
msgid "Copy to: "
msgstr "Αντιγραφή σε: "
msgid "Edit: "
msgstr "Επεξεργασία "
msgid "Key: "
msgstr "Κλειδί: "
msgid "Edit {}: "
msgstr "Επεξεργασία {}: "
msgid "Add: "
msgstr "Προσθήκη: "
msgid "Value: "
msgstr "Τιμή: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "Μπορείτε να παραλείψετε την επιλογή δίσκου και διαμερισμού και να χρησιμοποιήσετε οποιαδήποτε εγκατάσαση δίσκου είναι mount στο /mnt (πειραματικό)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "Επιλέξτε έναν από τους δίσκους ή παραλείψτε και χρησιμοποιήστε το /mnt ως προκαθορισμένο"
msgid "Select which partitions to mark for formatting:"
msgstr "Επιλέξτε ποιες διαμερίσεις να σημειωθούν για μορφοποίηση:"
msgid "Use HSM to unlock encrypted drive"
msgstr "Χρήση HSM για ξεκλείδωμα κρυπτογραφημένου δίσκου"
msgid "Device"
msgstr "Συσκευή"
msgid "Size"
msgstr "Μέγεθος"
msgid "Free space"
msgstr "Ελεύθερος χώρος"
msgid "Bus-type"
msgstr "Τύπος bus"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "Πρέπει να καθοριστεί είτε ο κωδικός root ή τουλάχιστον 1 χρήστης με δικαιώματα sudo"
msgid "Enter username (leave blank to skip): "
msgstr "Εισάγετε όνομα χρήστη (αφήστε κενό για παράλειψη): "
msgid "The username you entered is invalid. Try again"
msgstr "Το όνομα χρήστη που εισάγατε δεν είναι έγκυρο. Προσπαθήστε ξανά"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "Θα έπρεπε ο \"{}\" να είναι υπερχρήστης (sudo);"
msgid "Select which partitions to encrypt"
msgstr "Επιλέξτε ποιες διαμερίσεις να κρυπτογραφηθούν."
msgid "very weak"
msgstr "πολύ αδύναμος"
msgid "weak"
msgstr "αδύναμος"
msgid "moderate"
msgstr "μέτριος"
msgid "strong"
msgstr "ισχυρός"
msgid "Add subvolume"
msgstr "Προσθήκη υποόγκου"
msgid "Edit subvolume"
msgstr "Επεξεργασία υποόγκου"
msgid "Delete subvolume"
msgstr "Διαγραφή υποόγκου"
msgid "Configured {} interfaces"
msgstr "Διαμορφωμένες {} διεπαφές"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "Αυτή η επιλογή θέτει τον αριθμό των παράλληλων λήψεων που μπορούν να συμβούν κατά την εγκατάσταση"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"Εισάγετε τον αριθμό των παράλληλων λήψεων προς ενεργοποίηση.\n"
" (Εισάγετε μία τιμή από 1 μέχρι {})\n"
"Σημείωση:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - Μέγιστη τιμή : {} ( Επιτρέπει {} παράλληλες λήψεις, επιτρέπει {} λήψεις σε μία στιγμή )"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - Ελάχιστη τιμή : 1 ( Επιτρέπει 1 παράλληλη λήψη, επιτρέπει 2 λήψεις σε μία στιγμή )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - Απενεργοποίηση/Προκαθορισμένο : 0 ( Απενεργοποιεί τις παράλληλες λήψεις, επιτρέπει μόνο 1 λήψη σε μία στιγμή )"
#, fuzzy, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "Μη έγκυρη είσοδος! Προσπαθήστε ξανά με μία έγκυρη είσοδο [1 μέχρι {max_downloads}, ή 0 για απενεργοποίηση]"
msgid "Parallel Downloads"
msgstr "Παράλληλες Λήψεις"
#, fuzzy
msgid "ESC to skip"
msgstr "Χρησιμοποιήστε ESC για παράλειψη"
msgid "CTRL+C to reset"
msgstr "CTRL+C για επαναφορά"
msgid "TAB to select"
msgstr "TAB για επιλογή"
msgid "[Default value: 0] > "
msgstr "[Προεπιλεγμένη τιμή: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "Για να μπορείτε να χρησιμοποιήσετε αυτή την μετάφραση, παρακαλώ εγκαταστήστε χειροκίνητα την γραμματοσειρά που υποστηρίζει την γλώσσα."
msgid "The font should be stored as {}"
msgstr "Η γραμματοσειρά θα πρέπει να αποθηκευτεί ως {}"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Το Archinstall απαιτεί δικαιώματα υπερχρήστη για να εκτελεστεί. Δείτε --help for more."
#, fuzzy
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 "Τα προφίλ πρέπει να έχουν μοναδικό όνομα, αλλά βρέθηκαν ορισμοί προφίλ με διπλό όνομα: {}"
#, fuzzy
msgid "Select one or more devices to use and configure"
msgstr "Επιλέξτε έναν ή περισσότερους σκληρούς δίσκους προς χρήση και διαμόρφωση"
#, fuzzy
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "Αν επαναφέρετε την επιλογή σκληρού δίσκου αυτό επίσης θα επαναφέρει την τρέχουσα διάταξη δίσκου. Είστε σίγουρη/ος;"
#, fuzzy
msgid "Existing Partitions"
msgstr "Προσθέτωντας τη διαμέριση...."
#, fuzzy
msgid "Select a partitioning option"
msgstr "Διαγραφή διαμέρισης"
#, fuzzy
msgid "Enter the root directory of the mounted devices: "
msgstr "Εισάγετε έναν φάκελο για την αποθήκευση της/ων διαμόρφωση/ων: "
#, fuzzy, python-brace-format
msgid "Minimum capacity for /home partition: {}GiB\n"
msgstr "Ελάχιστη χωρητικότητα για τη διαμέριση /home: {}GB\n"
#, fuzzy, python-brace-format
msgid "Minimum capacity for Arch Linux partition: {}GiB"
msgstr "Ελάχιστη χωρητικότητα για τη διαμέριση Arch Linux: {}GB"
#, fuzzy
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "Αυτή είναι μία λίστα με προ-προγραμματισμένα προφίλ, που μπορεί να κάνουν την εγκατάσταση πραγμάτων όπως περιβάλλοντα επιφάνειας εργασίας πιο εύκολη"
#, fuzzy
msgid "Current profile selection"
msgstr "Τρέχουσα διάταξη διαμέρισης"
#, fuzzy
msgid "Remove all newly added partitions"
msgstr "Αφαίρεση όλων των νέων διαμερίσεων"
#, fuzzy
msgid "Assign mountpoint"
msgstr "Εκχώρηση σημείου mount για μία διαμέριση"
#, fuzzy
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "Σημείωση/Ξεμαρκάρισμα διαμέρισης προς μορφοποίηση (διαγράφει τα δεδομένα)"
msgid "Mark/Unmark as bootable"
msgstr "Σημείωση/Ξεμαρκάρισμα ως bootable"
msgid "Change filesystem"
msgstr "Αλλαγή συστήματος αρχείων"
#, fuzzy
msgid "Mark/Unmark as compressed"
msgstr "Σημείωση/Ξεμαρκάρισμα μίας διαμέρισως ως συμπιεσμένη (μόνο για btrfs)"
#, fuzzy
msgid "Set subvolumes"
msgstr "Ορισμός υποόγκων"
#, fuzzy
msgid "Delete partition"
msgstr "Διαγραφή διαμέρισης"
msgid "Partition"
msgstr "Διαμέριση"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "Αυτή η διαμέριση είναι κρυπτογραφημένη, για μορφοποίηση πρέπει να οριστεί ένα σύστημα αρχείων"
#, fuzzy
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * Τα σημεία mount της διαμέρισης είναι σχετικά ως προς το εσωτερικό της εγκατάστασης, για παράδειγμα το boot θα ήταν /boot."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr ""
msgid "Mountpoint: "
msgstr ""
msgid "Current free sectors on device {}:"
msgstr ""
#, fuzzy
msgid "Total sectors: {}"
msgstr "Σύνολο sectors: {}"
#, fuzzy
msgid "Enter the start sector (default: {}): "
msgstr "Εισάγετε τον start sector (ποσοστό ή αριθμό block, προκαθορισμένο {}): "
#, fuzzy
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
msgstr "Εισάγετε τον end sector της διαμέρισης (ποσοστό ή αριθμό block, πχ: {}) "
msgid "This will remove all newly added partitions, continue?"
msgstr "Αυτή η ενέργεια θα αφαιρέσει τις νέες διαμερίσεις, συνέχεια;"
#, fuzzy, python-brace-format
msgid "Partition management: {}"
msgstr "Διαχείριση διαμέρισης"
#, python-brace-format
msgid "Total length: {}"
msgstr ""
#, fuzzy
msgid "Encryption type"
msgstr "Κωδικός κρυπτογράφησης"
msgid "Iteration time"
msgstr ""
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr ""
msgid "Higher values increase security but slow down boot time"
msgstr ""
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr ""
msgid "Iteration time cannot be empty"
msgstr ""
msgid "Iteration time must be at least 100ms"
msgstr ""
msgid "Iteration time must be at most 120000ms"
msgstr ""
msgid "Please enter a valid number"
msgstr ""
msgid "Partitions"
msgstr "Διαμερίσεις"
msgid "No HSM devices available"
msgstr "Καμία διαθέσιμη συσκευή HSM"
#, fuzzy
msgid "Partitions to be encrypted"
msgstr "Επιλέξτε ποιες διαμερίσεις να κρυπτογραφηθούν."
msgid "Select disk encryption option"
msgstr "Επιλογή κρυπτογράφησης δίσκου"
msgid "Select a FIDO2 device to use for HSM"
msgstr ""
#, fuzzy
msgid "Use a best-effort default partition layout"
msgstr "Διαγραφή όλων των επιλεγμένων δίσκων και χρήση μίας προκαθορισμένης διάταξης βέλτιστης προσπάθειας"
#, fuzzy
msgid "Manual Partitioning"
msgstr "Χειροκίνητη διαμόρφωση"
#, fuzzy
msgid "Pre-mounted configuration"
msgstr "Καμία διαμόρφωση"
msgid "Unknown"
msgstr "Άγνωστο"
msgid "Partition encryption"
msgstr "Κρυπτογράφηση διαμέρισης"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! Μορφοποίηση {} σε "
msgid "← Back"
msgstr "← Πίσω"
msgid "Disk encryption"
msgstr "Κρυπτογράφηση δίσκου"
#, fuzzy
msgid "Configuration"
msgstr "Καμία διαμόρφωση"
#, fuzzy
msgid "Password"
msgstr "Κωδικός root"
#, fuzzy
msgid "All settings will be reset, are you sure?"
msgstr "{} περιέχει διαμερίσεις στην ουρά, αυτό θα τις διαγράψει, είστε σίγουρη/ος;"
msgid "Back"
msgstr "Πίσω"
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr ""
#, python-brace-format
msgid "Environment type: {}"
msgstr ""
msgid "The proprietary Nvidia driver is not supported by Sway. It is likely that you will run into issues, are you okay with that?"
msgstr ""
#, fuzzy
msgid "Installed packages"
msgstr "Εγκατεστημένα πακέτα"
#, fuzzy
msgid "Add profile"
msgstr "Προσθήκη προφίλ"
#, fuzzy
msgid "Edit profile"
msgstr "Επεξεργασία προφίλ"
#, fuzzy
msgid "Delete profile"
msgstr "Διαγραφή προφίλ"
#, fuzzy
msgid "Profile name: "
msgstr "Όνομα προφίλ: "
#, fuzzy
msgid "The profile name you entered is already in use. Try again"
msgstr "Το όνομα χρήστη που εισάγατε δεν είναι έγκυρο. Προσπαθήστε ξανά"
#, fuzzy
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "Γράψτε περαιτέρω πακέτα προς εγκατάσταση (χωρισμένα με κενό, αφήστε κενό για να παραληφθεί): "
#, fuzzy
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "Γράψτε περαιτέρω πακέτα προς εγκατάσταση (χωρισμένα με κενό, αφήστε κενό για να παραληφθεί): "
msgid "Should this profile be enabled for installation?"
msgstr "Ενεργοποίηση του προφίλ για εγκατάσταση;"
msgid "Create your own"
msgstr "Δημιουργήστε δικό σας"
#, fuzzy
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Επιλέξτε έναν οδηγό γραφικών ή αφήστε κενό για να εγκατασταθούν όλοι οι οδηγοί ανοιχτού κώδικα"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
msgid "Graphics driver"
msgstr "Οδηγός γραφικών"
msgid "Greeter"
msgstr ""
msgid "Please chose which greeter to install"
msgstr ""
msgid "This is a list of pre-programmed default_profiles"
msgstr ""
#, fuzzy
msgid "Disk configuration"
msgstr "Καμία διαμόρφωση"
#, fuzzy
msgid "Profiles"
msgstr "Προφίλ"
msgid "Finding possible directories to save configuration files ..."
msgstr ""
#, fuzzy
msgid "Select directory (or directories) for saving configuration files"
msgstr "Επιλέξτε έναν ή περισσότερους σκληρούς δίσκους προς χρήση και διαμόρφωση"
#, fuzzy
msgid "Add a custom mirror"
msgstr "Προσθήκη custom mirror"
msgid "Change custom mirror"
msgstr "Αλλαγή custom mirror"
msgid "Delete custom mirror"
msgstr "Διαγραφή custom mirror"
#, fuzzy
msgid "Enter name (leave blank to skip): "
msgstr "Εισάγετε όνομα χρήστη (αφήστε κενό για παράλειψη): "
#, fuzzy
msgid "Enter url (leave blank to skip): "
msgstr "Εισάγετε όνομα χρήστη (αφήστε κενό για παράλειψη): "
#, fuzzy
msgid "Select signature check option"
msgstr "Επιλέξτε διεπαφή προς προσθήκη"
#, fuzzy
msgid "Select signature option"
msgstr "Επιλέξτε διεπαφή προς προσθήκη"
msgid "Custom mirrors"
msgstr ""
msgid "Defined"
msgstr ""
#, fuzzy
msgid "Save user configuration (including disk layout)"
msgstr "Αποθήκευση διαμόρφωσης χρήστη"
#, fuzzy
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr "Εισάγετε έναν φάκελο για την αποθήκευση της/ων διαμόρφωση/ων: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
#, fuzzy
msgid "Saving {} configuration files to {}"
msgstr "Αποθήκευση διαμόρφωσης"
#, fuzzy
msgid "Mirrors"
msgstr "Περιοχή mirror"
#, fuzzy
msgid "Mirror regions"
msgstr "Περιοχή mirror"
#, fuzzy
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - Μέγιστη τιμή : {} ( Επιτρέπει {} παράλληλες λήψεις, επιτρέπει {} λήψεις σε μία στιγμή )"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "Μη έγκυρη είσοδος! Προσπαθήστε ξανά με μία έγκυρη είσοδο [1 μέχρι {}, ή 0 για απενεργοποίηση]"
msgid "Locales"
msgstr ""
#, fuzzy
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "Χρήση NetworkManager (απαραίτητος για τη διαμόρφωση του δικτύου γραφικά σε GNOME και KDE)"
msgid "Total: {} / {}"
msgstr "Σύνολο: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr ""
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "Αν δεν έχει δωθεί μονάδα, η τιμή ερμηνεύεται ως sectors"
#, fuzzy
msgid "Enter start (default: sector {}): "
msgstr "Εισάγετε τον start sector (ποσοστό ή αριθμό block, προκαθορισμένο {}): "
#, fuzzy
msgid "Enter end (default: {}): "
msgstr "Εισάγετε τον start sector (ποσοστό ή αριθμό block, προκαθορισμένο {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr ""
msgid "Path"
msgstr "Μονοπάτι"
msgid "Manufacturer"
msgstr "Κατασκευαστής"
msgid "Product"
msgstr "Προϊόν"
#, fuzzy, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "Χειροκίνητη διαμόρφωση"
msgid "Type"
msgstr "Τύπος"
#, fuzzy
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "Αυτή η επιλογή θέτει τον αριθμό των παράλληλων λήψεων που μπορούν να συμβούν κατά την εγκατάσταση"
#, fuzzy
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"Εισάγετε τον αριθμό των παράλληλων λήψεων προς ενεργοποίηση.\n"
" (Εισάγετε μία τιμή από 1 μέχρι {})\n"
"Σημείωση:"
#, fuzzy, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr " - Μέγιστη τιμή : {} ( Επιτρέπει {} παράλληλες λήψεις, επιτρέπει {} λήψεις σε μία στιγμή )"
#, fuzzy
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - Απενεργοποίηση/Προκαθορισμένο : 0 ( Απενεργοποιεί τις παράλληλες λήψεις, επιτρέπει μόνο 1 λήψη σε μία στιγμή )"
#, fuzzy
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "Μη έγκυρη είσοδος! Προσπαθήστε ξανά με μία έγκυρη είσοδο [1 μέχρι {}, ή 0 για απενεργοποίηση]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Διαλέξτε μία επιλογή για να δώσετε πρόσβαση του Hyprland στο υλισμικό σας"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr ""
#, fuzzy
msgid "Would you like to use unified kernel images?"
msgstr "Θα θέλατε να χρησιμοποιήσετε swap με zram;"
msgid "Unified kernel images"
msgstr ""
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "Περιμένοντας να ολοκληρωθεί ο συγχρονισμός του χρόνου (timedatectl show)"
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Ο συγχρονισμός χρόνου δεν ολοκληρώνεται, όσο περιμένετε - ελέγξτε την τεκμηρίωση για λύσεις: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "Παραλείποντας την αναμονή για αυτόματο συγχρονισμό χρόνου (μπορεί να προκαλέσει προβλήματα αν ο χρόνος δεν είναι συγχρονισμένος κατά την εγκατάσταση)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr ""
#, fuzzy
msgid "Selected profiles: "
msgstr "Διαγραφή προφίλ"
#, fuzzy
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Ο συγχρονισμός χρόνου δεν ολοκληρώνεται, όσο περιμένετε - ελέγξτε την τεκμηρίωση για λύσεις: https://archinstall.readthedocs.io/"
#, fuzzy
msgid "Mark/Unmark as nodatacow"
msgstr "Σημείωση/Ξεμαρκάρισμα ως bootable"
#, fuzzy
msgid "Would you like to use compression or disable CoW?"
msgstr "Θα θέλατε να χρησιμοποιήσετε συμπίεση BTRFS;"
msgid "Use compression"
msgstr ""
msgid "Disable Copy-on-Write"
msgstr ""
#, fuzzy
msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway"
msgstr "Παρέχει μία επιλογή από περιβάλλοντα επιφάνειας εργασίας και διαχειριστές tiling παραθύρων, π.χ. gnome, kde, sway"
#, fuzzy, python-brace-format
msgid "Configuration type: {}"
msgstr "Καμία διαμόρφωση"
#, fuzzy
msgid "LVM configuration type"
msgstr "Καμία διαμόρφωση"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr ""
#, fuzzy
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "Χρήση NetworkManager (απαραίτητος για τη διαμόρφωση του δικτύου γραφικά σε GNOME και KDE)"
#, fuzzy
msgid "Select a LVM option"
msgstr "Επιλέξτε μία ζώνη ώρας"
#, fuzzy
msgid "Partitioning"
msgstr "Διαμέριση"
msgid "Logical Volume Management (LVM)"
msgstr ""
msgid "Physical volumes"
msgstr ""
msgid "Volumes"
msgstr ""
#, fuzzy
msgid "LVM volumes"
msgstr "Ορισμός υποόγκων"
#, fuzzy
msgid "LVM volumes to be encrypted"
msgstr "Επιλέξτε ποιες διαμερίσεις να κρυπτογραφηθούν."
#, fuzzy
msgid "Select which LVM volumes to encrypt"
msgstr "Επιλέξτε ποιες διαμερίσεις να κρυπτογραφηθούν."
#, fuzzy
msgid "Default layout"
msgstr "Διάταξη δίσκου"
#, fuzzy
msgid "No Encryption"
msgstr "Κωδικός κρυπτογράφησης"
msgid "LUKS"
msgstr ""
msgid "LVM on LUKS"
msgstr ""
msgid "LUKS on LVM"
msgstr ""
#, fuzzy
msgid "Yes"
msgstr "ναι"
msgid "No"
msgstr ""
#, fuzzy
msgid "Archinstall help"
msgstr "Γλώσσα archinstall"
#, fuzzy
msgid " (default)"
msgstr "(προκαθορισμένο)"
msgid "Press Ctrl+h for help"
msgstr ""
#, fuzzy
msgid "Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Διαλέξτε μία επιλογή για να δώσετε πρόσβαση του Hyprland στο υλισμικό σας"
msgid "Seat access"
msgstr ""
#, fuzzy
msgid "Mountpoint"
msgstr "Εκχώρηση σημείου mount για μία διαμέριση"
msgid "HSM"
msgstr ""
#, fuzzy
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "Εισάγετε κωδικό κρυπτογράφησης δίσκου (αφήστε κενό για καμία κρυπτογράφηση): "
#, fuzzy
msgid "Disk encryption password"
msgstr "Κωδικός κρυπτογράφησης"
#, fuzzy
msgid "Partition - New"
msgstr "Διαμέριση"
#, fuzzy
msgid "Filesystem"
msgstr "Αλλαγή συστήματος αρχείων"
msgid "Invalid size"
msgstr ""
#, fuzzy
msgid "Start (default: sector {}): "
msgstr "Εισάγετε τον start sector (ποσοστό ή αριθμό block, προκαθορισμένο {}): "
#, fuzzy
msgid "End (default: {}): "
msgstr "Εισάγετε τον start sector (ποσοστό ή αριθμό block, προκαθορισμένο {}): "
#, fuzzy
msgid "Subvolume name"
msgstr "Όνομα υποόγκου "
#, fuzzy
msgid "Disk configuration type"
msgstr "Καμία διαμόρφωση"
msgid "Root mount directory"
msgstr ""
#, fuzzy
msgid "Select language"
msgstr "Τοπική γλώσσα"
#, fuzzy
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "Γράψτε περαιτέρω πακέτα προς εγκατάσταση (χωρισμένα με κενό, αφήστε άδειο για να παραληφθεί): "
msgid "Invalid download number"
msgstr ""
msgid "Number downloads"
msgstr ""
#, fuzzy
msgid "The username you entered is invalid"
msgstr "Το όνομα χρήστη που εισάγατε δεν είναι έγκυρο. Προσπαθήστε ξανά"
#, fuzzy
msgid "Username"
msgstr "Όνομα Χρήστη : "
#, fuzzy, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "Θα έπρεπε ο \"{}\" να είναι υπερχρήστης (sudo);"
#, fuzzy
msgid "Interfaces"
msgstr "Προσθήκη διεπαφής"
msgid "You need to enter a valid IP in IP-config mode"
msgstr ""
msgid "Modes"
msgstr ""
msgid "IP address"
msgstr ""
#, fuzzy
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "Εισάγετε τη διεύθυνση IP του router σας ή αφήστε κενό για καμία διεύθυνση: "
msgid "Gateway address"
msgstr ""
#, fuzzy
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "Εισάγετε τους διακομιστές DNS σας (χωρισμένοι με κενό, αφήστε κενό για κανέναν διακομιστή): "
#, fuzzy
msgid "DNS servers"
msgstr "Κανένας διακομιστής ήχου"
#, fuzzy
msgid "Configure interfaces"
msgstr "Διαμορφωμένες {} διεπαφές"
#, fuzzy
msgid "Kernel"
msgstr "Kernels"
msgid "UEFI is not detected and some options are disabled"
msgstr ""
msgid "Info"
msgstr ""
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr ""
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr ""
#, fuzzy
msgid "Main profile"
msgstr "Επεξεργασία προφίλ"
#, fuzzy
msgid "Confirm password"
msgstr "Αλλαγή κωδικού"
msgid "The confirmation password did not match, please try again"
msgstr ""
#, fuzzy
msgid "Not a valid directory"
msgstr "Μη έγκυρος φάκελος: {}"
#, fuzzy
msgid "Would you like to continue?"
msgstr "Θα θέλατε να χρησιμοποιήσετε συμπίεση BTRFS;"
msgid "Directory"
msgstr ""
#, fuzzy
msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)"
msgstr "Εισάγετε έναν φάκελο για την αποθήκευση της/ων διαμόρφωση/ων: "
#, fuzzy, python-brace-format
msgid "Do you want to save the configuration file(s) to {}?"
msgstr "Αποθήκευση διαμόρφωσης"
msgid "Enabled"
msgstr ""
msgid "Disabled"
msgstr ""
#, fuzzy
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Παρακαλώ επισυνάψτε αυτό το issue (και αρχείο) στο https://github.com/archlinux/archinstall/issues"
#, fuzzy
msgid "Mirror name"
msgstr "Περιοχή mirror"
msgid "Url"
msgstr ""
#, fuzzy
msgid "Select signature check"
msgstr "Επιλέξτε διεπαφή προς προσθήκη"
#, fuzzy
msgid "Select execution mode"
msgstr "Επιλέξτε μία ενέργεια για '{}'"
msgid "Press ? for help"
msgstr ""
#, fuzzy
msgid "Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Διαλέξτε μία επιλογή για να δώσετε πρόσβαση του Hyprland στο υλισμικό σας"
#, fuzzy
msgid "Additional repositories"
msgstr "Προαιρετικά αποθετήρια"
msgid "NTP"
msgstr ""
msgid "Swap on zram"
msgstr ""
msgid "Name"
msgstr ""
#, fuzzy
msgid "Signature check"
msgstr "Επιλέξτε διεπαφή προς προσθήκη"
#, python-brace-format
msgid "Selected free space segment on device {}:"
msgstr ""
#, fuzzy, python-brace-format
msgid "Size: {} / {}"
msgstr "Σύνολο: {} / {}"
#, fuzzy, python-brace-format
msgid "Size (default: {}): "
msgstr "Εισάγετε τον start sector (ποσοστό ή αριθμό block, προκαθορισμένο {}): "
#, fuzzy
msgid "HSM device"
msgstr "Συσκευή"
msgid "Some packages could not be found in the repository"
msgstr ""
#, fuzzy
msgid "User"
msgstr "Όνομα Χρήστη : "
msgid "The specified configuration will be applied"
msgstr ""
msgid "Wipe"
msgstr ""
#, fuzzy
msgid "Mark/Unmark as XBOOTLDR"
msgstr "Σημείωση/Ξεμαρκάρισμα ως bootable"
#, fuzzy
msgid "Loading packages..."
msgstr "Περαιτέρω πακέτα"
msgid "Select any packages from the below list that should be installed additionally"
msgstr ""
#, fuzzy
msgid "Add a custom repository"
msgstr "Προσθήκη custom mirror"
#, fuzzy
msgid "Change custom repository"
msgstr "Αλλαγή custom mirror"
#, fuzzy
msgid "Delete custom repository"
msgstr "Διαγραφή custom mirror"
#, fuzzy
msgid "Repository name"
msgstr "Περιοχή mirror"
#, fuzzy
msgid "Add a custom server"
msgstr "Προσθήκη custom mirror"
#, fuzzy
msgid "Change custom server"
msgstr "Αλλαγή custom mirror"
#, fuzzy
msgid "Delete custom server"
msgstr "Διαγραφή custom mirror"
msgid "Server url"
msgstr ""
#, fuzzy
msgid "Select regions"
msgstr "Επιλέξτε διεπαφή προς προσθήκη"
#, fuzzy
msgid "Add custom servers"
msgstr "Προσθήκη custom mirror"
#, fuzzy
msgid "Add custom repository"
msgstr "Προσθήκη custom mirror"
#, fuzzy
msgid "Loading mirror regions..."
msgstr "Περιοχή mirror"
#, fuzzy
msgid "Mirrors and repositories"
msgstr "Προαιρετικά αποθετήρια"
#, fuzzy
msgid "Selected mirror regions"
msgstr "Περιοχή mirror"
#, fuzzy
msgid "Custom servers"
msgstr "Κανένας διακομιστής ήχου"
#, fuzzy
msgid "Custom repositories"
msgstr "Προαιρετικά αποθετήρια"
msgid "Only ASCII characters are supported"
msgstr ""
msgid "Show help"
msgstr ""
msgid "Exit help"
msgstr ""
msgid "Preview scroll up"
msgstr ""
msgid "Preview scroll down"
msgstr ""
msgid "Move up"
msgstr ""
msgid "Move down"
msgstr ""
msgid "Move right"
msgstr ""
msgid "Move left"
msgstr ""
msgid "Jump to entry"
msgstr ""
msgid "Skip selection (if available)"
msgstr ""
msgid "Reset selection (if available)"
msgstr ""
#, fuzzy
msgid "Select on single select"
msgstr "Επιλέξτε διεπαφή προς προσθήκη"
#, fuzzy
msgid "Select on multi select"
msgstr "Επιλέξτε μία ζώνη ώρας"
msgid "Reset"
msgstr ""
#, fuzzy
msgid "Skip selection menu"
msgstr "Επιλέξτε μία ενέργεια για '{}'"
msgid "Start search mode"
msgstr ""
msgid "Exit search mode"
msgstr ""
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
#, fuzzy
msgid "Choose an option to give labwc access to your hardware"
msgstr ""
"\n"
"\n"
"Διαλέξτε μία επιλογή για να δώσετε πρόσβαση του Hyprland στο υλισμικό σας"
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
#, fuzzy
msgid "Choose an option to give niri access to your hardware"
msgstr ""
"\n"
"\n"
"Διαλέξτε μία επιλογή για να δώσετε πρόσβαση του Hyprland στο υλισμικό σας"
#, fuzzy
msgid "Mark/Unmark as ESP"
msgstr "Σημείωση/Ξεμαρκάρισμα ως bootable"
msgid "Package group:"
msgstr ""
#, fuzzy
msgid "Exit archinstall"
msgstr "Γλώσσα archinstall"
#, fuzzy
msgid "Reboot system"
msgstr "Αλλαγή συστήματος αρχείων"
#, fuzzy
msgid "chroot into installation for post-installation configurations"
msgstr "Θα θέλατε να κάνετε chroot εντός της καινούργιας εγκατάστασης για περαιτέρω διαμόρφωση;"
msgid "Installation completed"
msgstr ""
#, fuzzy
msgid "What would you like to do next?"
msgstr "Θα θέλατε να χρησιμοποιήσετε συμπίεση BTRFS;"
#, fuzzy, python-brace-format
msgid "Select which mode to configure for \"{}\""
msgstr "Επιλέξτε ποιο mode να διαμορφωθεί για το \"{}\" ή παραλείψτε για να χρησιμοποιηθεί το default mode \"{}\""
#, fuzzy
msgid "Incorrect credentials file decryption password"
msgstr "Κωδικός κρυπτογράφησης"
#, fuzzy
msgid "Incorrect password"
msgstr "Κωδικός root"
#, fuzzy
msgid "Credentials file decryption password"
msgstr "Κωδικός κρυπτογράφησης"
#, fuzzy
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr "Αποθήκευση διαμόρφωσης"
#, fuzzy
msgid "Credentials file encryption password"
msgstr "Κωδικός κρυπτογράφησης"
#, fuzzy, python-brace-format
msgid "Repositories: {}"
msgstr "Περιοχή mirror"
#, fuzzy
msgid "New version available"
msgstr "Καμία διαθέσιμη συσκευή HSM"
#, fuzzy
msgid "Passwordless login"
msgstr "Κωδικός root"
msgid "Second factor login"
msgstr ""
msgid "Bluetooth"
msgstr ""
#, fuzzy
msgid "Would you like to configure Bluetooth?"
msgstr "Θα θέλατε να χρησιμοποιήσετε συμπίεση BTRFS;"
msgid "Print service"
msgstr ""
#, fuzzy
msgid "Would you like to configure the print service?"
msgstr "Θα θέλατε να χρησιμοποιήσετε συμπίεση BTRFS;"
#, fuzzy
msgid "Power management"
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 "Εισάγετε κωδικό: "
#, 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 "Starting device modifications in "
msgstr ""
#, fuzzy
msgid "No network connection found"
msgstr "Καμία διαμόρφωση δικτύου"
#, fuzzy
msgid "Would you like to connect to a Wifi?"
msgstr "Θα θέλατε να χρησιμοποιήσετε συμπίεση BTRFS;"
#, fuzzy
msgid "No wifi interface found"
msgstr "Διαμορφωμένες {} διεπαφές"
#, fuzzy
msgid "Select wifi network to connect to"
msgstr "Επιλέξτε μία διεπαφή δικτύου για διαμόρφωση"
msgid "Scanning wifi networks..."
msgstr ""
#, fuzzy
msgid "No wifi networks found"
msgstr "Καμία διαμόρφωση δικτύου"
msgid "Failed setting up wifi"
msgstr ""
#, fuzzy
msgid "Enter wifi password"
msgstr "Εισάγετε κωδικό: "
msgid "Ok"
msgstr ""
msgid "Removable"
msgstr ""
msgid "Install to removable location"
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr ""
msgid "Will install to standard location with NVRAM entry"
msgstr ""
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr ""
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr ""
msgid "USB drives or other portable external media."
msgstr ""
msgid "Systems where you want the disk to be bootable on any computer."
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr ""
msgid "Will install to custom location with NVRAM entry"
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr ""
msgid "most Apple Macs, many laptops..."
msgstr ""
#, fuzzy
msgid "Language"
msgstr "Τοπική γλώσσα"
msgid "Compression algorithm"
msgstr ""
#, fuzzy
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Εγκαθίστανται μόνο πακέτα όπως το base, base-devel, linux, linux-firmware, efibootmgr και προαιρετικά πακέτα προφίλ."
#, fuzzy
msgid "Select zram compression algorithm:"
msgstr "Επιλέξτε ένα σημείο mount :"
msgid "Use Network Manager (default backend)"
msgstr ""
msgid "Use Network Manager (iwd backend)"
msgstr ""
================================================
FILE: archinstall/locales/en/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.3\n"
msgid "[!] A log file has been created here: {} {}"
msgstr ""
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr ""
msgid "Do you really want to abort?"
msgstr ""
msgid "And one more time for verification: "
msgstr ""
msgid "Would you like to use swap on zram?"
msgstr ""
msgid "Desired hostname for the installation: "
msgstr ""
msgid "Username for required superuser with sudo privileges: "
msgstr ""
msgid "Any additional users to install (leave blank for no users): "
msgstr ""
msgid "Should this user be a superuser (sudoer)?"
msgstr ""
msgid "Select a timezone"
msgstr ""
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr ""
msgid "Choose a bootloader"
msgstr ""
msgid "Choose an audio server"
msgstr ""
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr ""
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr ""
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr ""
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr ""
msgid "Copy ISO network configuration to installation"
msgstr ""
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr ""
msgid "Select one network interface to configure"
msgstr ""
msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
msgstr ""
#, python-brace-format
msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): "
msgstr ""
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr ""
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr ""
msgid "Select which filesystem your main partition should use"
msgstr ""
msgid "Current partition layout"
msgstr ""
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
msgid "Enter a desired filesystem type for the partition"
msgstr ""
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr ""
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr ""
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr ""
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr ""
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr ""
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
msgid "Enter a desired filesystem type for the partition: "
msgstr ""
msgid "Archinstall language"
msgstr ""
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr ""
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr ""
msgid "Select what you wish to do with the selected block devices"
msgstr ""
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr ""
msgid "Select keyboard layout"
msgstr ""
msgid "Select one of the regions to download packages from"
msgstr ""
msgid "Select one or more hard drives to use and configure"
msgstr ""
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr ""
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr ""
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr ""
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
msgid "All open-source (default)"
msgstr ""
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr ""
msgid "Choose which locale language to use"
msgstr ""
msgid "Choose which locale encoding to use"
msgstr ""
msgid "Select one of the values shown below: "
msgstr ""
msgid "Select one or more of the options below: "
msgstr ""
msgid "Adding partition...."
msgstr ""
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr ""
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr ""
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr ""
msgid "Keyboard layout"
msgstr ""
msgid "Mirror region"
msgstr ""
msgid "Locale language"
msgstr ""
msgid "Locale encoding"
msgstr ""
msgid "Drive(s)"
msgstr ""
msgid "Disk layout"
msgstr ""
msgid "Encryption password"
msgstr ""
msgid "Swap"
msgstr ""
msgid "Bootloader"
msgstr ""
msgid "Root password"
msgstr ""
msgid "Superuser account"
msgstr ""
msgid "User account"
msgstr ""
msgid "Profile"
msgstr ""
msgid "Audio"
msgstr ""
msgid "Kernels"
msgstr ""
msgid "Additional packages"
msgstr ""
msgid "Network configuration"
msgstr ""
msgid "Automatic time sync (NTP)"
msgstr ""
msgid "Install ({} config(s) missing)"
msgstr ""
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 ""
msgid "Re-using partition instance: {}"
msgstr ""
msgid "Create a new partition"
msgstr ""
msgid "Delete a partition"
msgstr ""
msgid "Clear/Delete all partitions"
msgstr ""
msgid "Assign mount-point for a partition"
msgstr ""
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr ""
msgid "Mark/Unmark a partition as encrypted"
msgstr ""
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr ""
msgid "Set desired filesystem for a partition"
msgstr ""
msgid "Abort"
msgstr ""
msgid "Hostname"
msgstr ""
msgid "Not configured, unavailable unless setup manually"
msgstr ""
msgid "Timezone"
msgstr ""
msgid "Set/Modify the below options"
msgstr ""
msgid "Install"
msgstr ""
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
msgid "Suggest partition layout"
msgstr ""
msgid "Enter a password: "
msgstr ""
msgid "Enter a encryption password for {}"
msgstr ""
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr ""
msgid "Create a required super-user with sudo privileges: "
msgstr ""
msgid "Enter root password (leave blank to disable root): "
msgstr ""
msgid "Password for user \"{}\": "
msgstr ""
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr ""
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr ""
msgid ""
"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 ""
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr ""
msgid "Use ESC to skip\n"
msgstr ""
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
msgid "Cancel"
msgstr ""
msgid "Confirm and exit"
msgstr ""
msgid "Add"
msgstr ""
msgid "Copy"
msgstr ""
msgid "Edit"
msgstr ""
msgid "Delete"
msgstr ""
msgid "Select an action for '{}'"
msgstr ""
msgid "Copy to new key:"
msgstr ""
msgid "Unknown nic type: {}. Possible values are {}"
msgstr ""
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr ""
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr ""
msgid "Choose which optional additional repositories to enable"
msgstr ""
msgid "Add a user"
msgstr ""
msgid "Change password"
msgstr ""
msgid "Promote/Demote user"
msgstr ""
msgid "Delete User"
msgstr ""
msgid ""
"\n"
"Define a new user\n"
msgstr ""
msgid "User Name : "
msgstr ""
msgid "Should {} be a superuser (sudoer)?"
msgstr ""
msgid "Define users with sudo privilege: "
msgstr ""
msgid "No network configuration"
msgstr ""
msgid "Set desired subvolumes on a btrfs partition"
msgstr ""
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
msgid "Manage btrfs subvolumes for current partition"
msgstr ""
msgid "No configuration"
msgstr ""
msgid "Save user configuration"
msgstr ""
msgid "Save user credentials"
msgstr ""
msgid "Save disk layout"
msgstr ""
msgid "Save all"
msgstr ""
msgid "Choose which configuration to save"
msgstr ""
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr ""
msgid "Not a valid directory: {}"
msgstr ""
msgid "The password you are using seems to be weak,"
msgstr ""
msgid "are you sure you want to use it?"
msgstr ""
msgid "Optional repositories"
msgstr ""
msgid "Save configuration"
msgstr ""
msgid "Missing configurations:\n"
msgstr ""
msgid "Either root-password or at least 1 superuser must be specified"
msgstr ""
msgid "Manage superuser accounts: "
msgstr ""
msgid "Manage ordinary user accounts: "
msgstr ""
msgid " Subvolume :{:16}"
msgstr ""
msgid " mounted at {:16}"
msgstr ""
msgid " with option {}"
msgstr ""
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
msgid "Subvolume name "
msgstr ""
msgid "Subvolume mountpoint"
msgstr ""
msgid "Subvolume options"
msgstr ""
msgid "Save"
msgstr ""
msgid "Subvolume name :"
msgstr ""
msgid "Select a mount point :"
msgstr ""
msgid "Select the desired subvolume options "
msgstr ""
msgid "Define users with sudo privilege, by username: "
msgstr ""
#, python-brace-format
msgid "[!] A log file has been created here: {}"
msgstr ""
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr ""
msgid "Would you like to use BTRFS compression?"
msgstr ""
msgid "Would you like to create a separate partition for /home?"
msgstr ""
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr ""
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr ""
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr ""
msgid "Continue"
msgstr ""
msgid "yes"
msgstr ""
msgid "no"
msgstr ""
msgid "set: {}"
msgstr ""
msgid "Manual configuration setting must be a list"
msgstr ""
msgid "No iface specified for manual configuration"
msgstr ""
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr ""
msgid "Add interface"
msgstr ""
msgid "Edit interface"
msgstr ""
msgid "Delete interface"
msgstr ""
msgid "Select interface to add"
msgstr ""
msgid "Manual configuration"
msgstr ""
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr ""
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr ""
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr ""
msgid "Select your desired desktop environment"
msgstr ""
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr ""
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr ""
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr ""
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr ""
msgid "Press Enter to continue."
msgstr ""
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr ""
msgid "Are you sure you want to reset this setting?"
msgstr ""
msgid "Select one or more hard drives to use and configure\n"
msgstr ""
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr ""
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr ""
msgid "Save and exit"
msgstr ""
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
msgid "No audio server"
msgstr ""
msgid "(default)"
msgstr ""
msgid "Use ESC to skip"
msgstr ""
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
msgid "Copy to: "
msgstr ""
msgid "Edit: "
msgstr ""
msgid "Key: "
msgstr ""
msgid "Edit {}: "
msgstr ""
msgid "Add: "
msgstr ""
msgid "Value: "
msgstr ""
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr ""
msgid "Select one of the disks or skip and use /mnt as default"
msgstr ""
msgid "Select which partitions to mark for formatting:"
msgstr ""
msgid "Use HSM to unlock encrypted drive"
msgstr ""
msgid "Device"
msgstr ""
msgid "Size"
msgstr ""
msgid "Free space"
msgstr ""
msgid "Bus-type"
msgstr ""
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr ""
msgid "Enter username (leave blank to skip): "
msgstr ""
msgid "The username you entered is invalid. Try again"
msgstr ""
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr ""
msgid "Select which partitions to encrypt"
msgstr ""
msgid "very weak"
msgstr ""
msgid "weak"
msgstr ""
msgid "moderate"
msgstr ""
msgid "strong"
msgstr ""
msgid "Add subvolume"
msgstr ""
msgid "Edit subvolume"
msgstr ""
msgid "Delete subvolume"
msgstr ""
msgid "Configured {} interfaces"
msgstr ""
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr ""
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr ""
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr ""
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr ""
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr ""
msgid "Parallel Downloads"
msgstr ""
msgid "ESC to skip"
msgstr ""
msgid "CTRL+C to reset"
msgstr ""
msgid "TAB to select"
msgstr ""
msgid "[Default value: 0] > "
msgstr ""
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr ""
msgid "The font should be stored as {}"
msgstr ""
msgid "Archinstall requires root privileges to run. See --help for more."
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 ""
msgid "Select one or more devices to use and configure"
msgstr ""
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr ""
msgid "Existing Partitions"
msgstr ""
msgid "Select a partitioning option"
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 ""
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr ""
msgid "Current profile selection"
msgstr ""
msgid "Remove all newly added partitions"
msgstr ""
msgid "Assign mountpoint"
msgstr ""
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr ""
msgid "Mark/Unmark as bootable"
msgstr ""
msgid "Change filesystem"
msgstr ""
msgid "Mark/Unmark as compressed"
msgstr ""
msgid "Set subvolumes"
msgstr ""
msgid "Delete partition"
msgstr ""
msgid "Partition"
msgstr ""
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr ""
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr ""
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr ""
msgid "Mountpoint: "
msgstr ""
msgid "Current free sectors on device {}:"
msgstr ""
msgid "Total sectors: {}"
msgstr ""
msgid "Enter the start sector (default: {}): "
msgstr ""
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
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 ""
msgid "Encryption type"
msgstr ""
msgid "Iteration time"
msgstr ""
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr ""
msgid "Higher values increase security but slow down boot time"
msgstr ""
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr ""
msgid "Iteration time cannot be empty"
msgstr ""
msgid "Iteration time must be at least 100ms"
msgstr ""
msgid "Iteration time must be at most 120000ms"
msgstr ""
msgid "Please enter a valid number"
msgstr ""
msgid "Partitions"
msgstr ""
msgid "No HSM devices available"
msgstr ""
msgid "Partitions to be encrypted"
msgstr ""
msgid "Select disk encryption option"
msgstr ""
msgid "Select a FIDO2 device to use for HSM"
msgstr ""
msgid "Use a best-effort default partition layout"
msgstr ""
msgid "Manual Partitioning"
msgstr ""
msgid "Pre-mounted configuration"
msgstr ""
msgid "Unknown"
msgstr ""
msgid "Partition encryption"
msgstr ""
#, python-brace-format
msgid " ! Formatting {} in "
msgstr ""
msgid "← Back"
msgstr ""
msgid "Disk encryption"
msgstr ""
msgid "Configuration"
msgstr ""
msgid "Password"
msgstr ""
msgid "All settings will be reset, are you sure?"
msgstr ""
msgid "Back"
msgstr ""
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr ""
#, python-brace-format
msgid "Environment type: {}"
msgstr ""
msgid "The proprietary Nvidia driver is not supported by Sway. It is likely that you will run into issues, are you okay with that?"
msgstr ""
msgid "Installed packages"
msgstr ""
msgid "Add profile"
msgstr ""
msgid "Edit profile"
msgstr ""
msgid "Delete profile"
msgstr ""
msgid "Profile name: "
msgstr ""
msgid "The profile name you entered is already in use. Try again"
msgstr ""
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr ""
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr ""
msgid "Should this profile be enabled for installation?"
msgstr ""
msgid "Create your own"
msgstr ""
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
msgid "Graphics driver"
msgstr ""
msgid "Greeter"
msgstr ""
msgid "Please chose which greeter to install"
msgstr ""
msgid "This is a list of pre-programmed default_profiles"
msgstr ""
msgid "Disk configuration"
msgstr ""
msgid "Profiles"
msgstr ""
msgid "Finding possible directories to save configuration files ..."
msgstr ""
msgid "Select directory (or directories) for saving configuration files"
msgstr ""
msgid "Add a custom mirror"
msgstr ""
msgid "Change custom mirror"
msgstr ""
msgid "Delete custom mirror"
msgstr ""
msgid "Enter name (leave blank to skip): "
msgstr ""
msgid "Enter url (leave blank to skip): "
msgstr ""
msgid "Select signature check option"
msgstr ""
msgid "Select signature option"
msgstr ""
msgid "Custom mirrors"
msgstr ""
msgid "Defined"
msgstr ""
msgid "Save user configuration (including disk layout)"
msgstr ""
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
msgid "Saving {} configuration files to {}"
msgstr ""
msgid "Mirrors"
msgstr ""
msgid "Mirror regions"
msgstr ""
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr ""
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr ""
msgid "Locales"
msgstr ""
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr ""
msgid "Total: {} / {}"
msgstr ""
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr ""
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr ""
msgid "Enter start (default: sector {}): "
msgstr ""
msgid "Enter end (default: {}): "
msgstr ""
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr ""
msgid "Path"
msgstr ""
msgid "Manufacturer"
msgstr ""
msgid "Product"
msgstr ""
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr ""
msgid "Type"
msgstr ""
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr ""
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
#, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr ""
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr ""
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr ""
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr ""
msgid "Would you like to use unified kernel images?"
msgstr ""
msgid "Unified kernel images"
msgstr ""
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr ""
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr ""
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr ""
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr ""
msgid "Selected profiles: "
msgstr ""
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr ""
msgid "Mark/Unmark as nodatacow"
msgstr ""
msgid "Would you like to use compression or disable CoW?"
msgstr ""
msgid "Use compression"
msgstr ""
msgid "Disable Copy-on-Write"
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 ""
msgid "LVM configuration type"
msgstr ""
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr ""
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr ""
msgid "Select a LVM option"
msgstr ""
msgid "Partitioning"
msgstr ""
msgid "Logical Volume Management (LVM)"
msgstr ""
msgid "Physical volumes"
msgstr ""
msgid "Volumes"
msgstr ""
msgid "LVM volumes"
msgstr ""
msgid "LVM volumes to be encrypted"
msgstr ""
msgid "Select which LVM volumes to encrypt"
msgstr ""
msgid "Default layout"
msgstr ""
msgid "No Encryption"
msgstr ""
msgid "LUKS"
msgstr ""
msgid "LVM on LUKS"
msgstr ""
msgid "LUKS on LVM"
msgstr ""
msgid "Yes"
msgstr ""
msgid "No"
msgstr ""
msgid "Archinstall help"
msgstr ""
msgid " (default)"
msgstr ""
msgid "Press Ctrl+h for help"
msgstr ""
msgid "Choose an option to give Sway access to your hardware"
msgstr ""
msgid "Seat access"
msgstr ""
msgid "Mountpoint"
msgstr ""
msgid "HSM"
msgstr ""
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr ""
msgid "Disk encryption password"
msgstr ""
msgid "Partition - New"
msgstr ""
msgid "Filesystem"
msgstr ""
msgid "Invalid size"
msgstr ""
msgid "Start (default: sector {}): "
msgstr ""
msgid "End (default: {}): "
msgstr ""
msgid "Subvolume name"
msgstr ""
msgid "Disk configuration type"
msgstr ""
msgid "Root mount directory"
msgstr ""
msgid "Select language"
msgstr ""
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr ""
msgid "Invalid download number"
msgstr ""
msgid "Number downloads"
msgstr ""
msgid "The username you entered is invalid"
msgstr ""
msgid "Username"
msgstr ""
#, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr ""
msgid "Interfaces"
msgstr ""
msgid "You need to enter a valid IP in IP-config mode"
msgstr ""
msgid "Modes"
msgstr ""
msgid "IP address"
msgstr ""
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr ""
msgid "Gateway address"
msgstr ""
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr ""
msgid "DNS servers"
msgstr ""
msgid "Configure interfaces"
msgstr ""
msgid "Kernel"
msgstr ""
msgid "UEFI is not detected and some options are disabled"
msgstr ""
msgid "Info"
msgstr ""
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr ""
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr ""
msgid "Main profile"
msgstr ""
msgid "Confirm password"
msgstr ""
msgid "The confirmation password did not match, please try again"
msgstr ""
msgid "Not a valid directory"
msgstr ""
msgid "Would you like to continue?"
msgstr ""
msgid "Directory"
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 ""
msgid "Enabled"
msgstr ""
msgid "Disabled"
msgstr ""
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr ""
msgid "Mirror name"
msgstr ""
msgid "Url"
msgstr ""
msgid "Select signature check"
msgstr ""
msgid "Select execution mode"
msgstr ""
msgid "Press ? for help"
msgstr ""
msgid "Choose an option to give Hyprland access to your hardware"
msgstr ""
msgid "Additional repositories"
msgstr ""
msgid "NTP"
msgstr ""
msgid "Swap on zram"
msgstr ""
msgid "Name"
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 ""
msgid "HSM device"
msgstr ""
msgid "Some packages could not be found in the repository"
msgstr ""
msgid "User"
msgstr ""
msgid "The specified configuration will be applied"
msgstr ""
msgid "Wipe"
msgstr ""
msgid "Mark/Unmark as XBOOTLDR"
msgstr ""
msgid "Loading packages..."
msgstr ""
msgid "Select any packages from the below list that should be installed additionally"
msgstr ""
msgid "Add a custom repository"
msgstr ""
msgid "Change custom repository"
msgstr ""
msgid "Delete custom repository"
msgstr ""
msgid "Repository name"
msgstr ""
msgid "Add a custom server"
msgstr ""
msgid "Change custom server"
msgstr ""
msgid "Delete custom server"
msgstr ""
msgid "Server url"
msgstr ""
msgid "Select regions"
msgstr ""
msgid "Add custom servers"
msgstr ""
msgid "Add custom repository"
msgstr ""
msgid "Loading mirror regions..."
msgstr ""
msgid "Mirrors and repositories"
msgstr ""
msgid "Selected mirror regions"
msgstr ""
msgid "Custom servers"
msgstr ""
msgid "Custom repositories"
msgstr ""
msgid "Only ASCII characters are supported"
msgstr ""
msgid "Show help"
msgstr ""
msgid "Exit help"
msgstr ""
msgid "Preview scroll up"
msgstr ""
msgid "Preview scroll down"
msgstr ""
msgid "Move up"
msgstr ""
msgid "Move down"
msgstr ""
msgid "Move right"
msgstr ""
msgid "Move left"
msgstr ""
msgid "Jump to entry"
msgstr ""
msgid "Skip selection (if available)"
msgstr ""
msgid "Reset selection (if available)"
msgstr ""
msgid "Select on single select"
msgstr ""
msgid "Select on multi select"
msgstr ""
msgid "Reset"
msgstr ""
msgid "Skip selection menu"
msgstr ""
msgid "Start search mode"
msgstr ""
msgid "Exit search mode"
msgstr ""
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid "Choose an option to give labwc access to your hardware"
msgstr ""
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid "Choose an option to give niri access to your hardware"
msgstr ""
msgid "Mark/Unmark as ESP"
msgstr ""
msgid "Package group:"
msgstr ""
msgid "Exit archinstall"
msgstr ""
msgid "Reboot system"
msgstr ""
msgid "chroot into installation for post-installation configurations"
msgstr ""
msgid "Installation completed"
msgstr ""
msgid "What would you like to do next?"
msgstr ""
#, python-brace-format
msgid "Select which mode to configure for \"{}\""
msgstr ""
msgid "Incorrect credentials file decryption password"
msgstr ""
msgid "Incorrect password"
msgstr ""
msgid "Credentials file decryption password"
msgstr ""
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr ""
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 ""
msgid "Would you like to configure Bluetooth?"
msgstr ""
msgid "Print service"
msgstr ""
msgid "Would you like to configure the print service?"
msgstr ""
msgid "Power management"
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 ""
#, 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 ""
msgid "Starting device modifications in "
msgstr ""
msgid "No network connection found"
msgstr ""
msgid "Would you like to connect to a Wifi?"
msgstr ""
msgid "No wifi interface found"
msgstr ""
msgid "Select wifi network to connect to"
msgstr ""
msgid "Scanning wifi networks..."
msgstr ""
msgid "No wifi networks found"
msgstr ""
msgid "Failed setting up wifi"
msgstr ""
msgid "Enter wifi password"
msgstr ""
msgid "Ok"
msgstr ""
msgid "Removable"
msgstr ""
msgid "Install to removable location"
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr ""
msgid "Will install to standard location with NVRAM entry"
msgstr ""
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr ""
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr ""
msgid "USB drives or other portable external media."
msgstr ""
msgid "Systems where you want the disk to be bootable on any computer."
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr ""
msgid "Will install to custom location with NVRAM entry"
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr ""
msgid "most Apple Macs, many laptops..."
msgstr ""
msgid "Language"
msgstr ""
msgid "Compression algorithm"
msgstr ""
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr ""
msgid "Select zram compression algorithm:"
msgstr ""
msgid "Use Network Manager (default backend)"
msgstr ""
msgid "Use Network Manager (iwd backend)"
msgstr ""
================================================
FILE: archinstall/locales/es/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: esbendev \n"
"Language-Team: \n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.8\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] Se ha creado un archivo de registro aquí: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Por favor envíe este problema (y archivo) a https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "¿Realmente desea abortar?"
msgid "And one more time for verification: "
msgstr "Y una vez más para verificar: "
msgid "Would you like to use swap on zram?"
msgstr "¿Le gustaría usar swap en zram?"
msgid "Desired hostname for the installation: "
msgstr "Nombre de host deseado para la instalación: "
msgid "Username for required superuser with sudo privileges: "
msgstr "Nombre de usuario para el superusuario con privilegios sudo: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "Algún usuario adicional a instalar (déjelo en blanco para no agregar ninguno): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "Debería este usuario ser un superusuario (sudoer)?"
msgid "Select a timezone"
msgstr "Seleccione una zona horaria"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "Le gustaría usar GRUB como gestor de arranque en lugar de systemd-boot?"
msgid "Choose a bootloader"
msgstr "Elija un gestor de arranque"
msgid "Choose an audio server"
msgstr "Elija un servidor de audio"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Solo paquetes como base, base-devel, linux, linux-firmware, efibootmgr y paquetes opcionales de perfil se instalan."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr "Nota: base-devel ya no viene instalado por defecto. Agreguelo aquí si necesita herramientas de build."
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "Si desea un navegador web, como firefox o chromium, puede especificarlo en el siguiente mensaje."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "Escriba paquetes adicionales para instalar (separados por espacios, deje en blanco para omitir): "
msgid "Copy ISO network configuration to installation"
msgstr "Copiar la configuración de red ISO a la instalación"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "Usar NetworkManager (necesario para configurar internet gráficamente en GNOME y KDE)"
msgid "Select one network interface to configure"
msgstr "Seleccione una interfaz de red para configurar"
msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
msgstr "Seleccione qué modo configurar para \"{}\" u omita para usar el modo predeterminado \"{}\""
#, python-brace-format
msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): "
msgstr "Escriba la IP y subred para {} (ejemplo: 192.168.0.5/24): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "Escriba la IP de su puerta de enlace (enrutador) o déjelo en blanco para no usar ninguna: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "Ingrese sus servidores DNS (separados por espacios, en blanco para ninguno): "
msgid "Select which filesystem your main partition should use"
msgstr "Seleccione qué sistema de archivos debe usar su partición principal"
msgid "Current partition layout"
msgstr "Distribución actual de las particiones"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"Seleccione qué hacer con\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "Ingrese un tipo de sistema de archivos deseado para la partición"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "Ingrese la ubicación de inicio (en unidades divididas: s, GB, %, etc. ; predeterminado: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "Ingrese la ubicación final (en unidades divididas: s, GB, %, etc. ; ej.: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} contiene particiones en cola, esto eliminará esas particiones, ¿está seguro?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"Seleccione por índice qué particiones eliminar"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"Seleccione por índice qué partición montar en qué ubicación"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * Los puntos de montaje de la partición son relativos al interior de la instalación, por ejemplo: el arranque sería /boot."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "Seleccione dónde montar la partición (deje en blanco para eliminar el punto de montaje): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"Seleccione qué partición enmascarar para formatear"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"Seleccione qué partición marcar como encriptada"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"Seleccione qué partición marcar como de arranque"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"Seleccione en qué partición establecer un sistema de archivos"
msgid "Enter a desired filesystem type for the partition: "
msgstr "Ingrese un tipo de sistema de archivos deseado para la partición: "
msgid "Archinstall language"
msgstr "Idioma de Archinstall"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "Borrar todas las unidades seleccionadas y usar un diseño de partición predeterminado de mejor esfuerzo"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "Seleccione qué hacer con cada unidad individual (seguido del uso de la partición)"
msgid "Select what you wish to do with the selected block devices"
msgstr "Seleccione lo que desea hacer con los dispositivos de bloque seleccionados"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "Esta es una lista de perfiles preprogramados que podrían facilitar la instalación de cosas como entornos de escritorio"
msgid "Select keyboard layout"
msgstr "Seleccione la distribución del teclado"
msgid "Select one of the regions to download packages from"
msgstr "Seleccione qué región usar para descargar paquetes"
msgid "Select one or more hard drives to use and configure"
msgstr "Seleccione uno o más discos duros para usar y configurar"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "Para obtener la mejor compatibilidad con su hardware AMD, es posible que desee utilizar las opciones de código abierto o AMD / ATI."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "Para obtener la mejor compatibilidad con su hardware Intel, es posible que desee utilizar las opciones de código abierto o de Intel.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "Para obtener la mejor compatibilidad con su hardware de Nvidia, es posible que desee utilizar el controlador patentado de Nvidia.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Seleccione un controlador de gráficos o déjelo en blanco para instalar todos los controladores de código abierto"
msgid "All open-source (default)"
msgstr "Todos de código abierto (predeterminado)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "Elija qué kernel usar o déjelo en blanco para usar el kernel \"{}\" predeterminado"
msgid "Choose which locale language to use"
msgstr "Elija qué idioma local usar"
msgid "Choose which locale encoding to use"
msgstr "Elija qué codificación local usar"
msgid "Select one of the values shown below: "
msgstr "Seleccione uno de los valores que se muestran a continuación: "
msgid "Select one or more of the options below: "
msgstr "Seleccione una o más de las siguientes opciones: "
msgid "Adding partition...."
msgstr "Añadiendo partición..."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "Debe ingresar un tipo de sistema de archivos (fs-type) válido para continuar. Consulte `man parted` para conocer los tipos válidos."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "Error: Listar perfiles en la URL \"{}\" resultó en:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "Error: No se pudo decodificar el resultado \"{}\" como JSON:"
msgid "Keyboard layout"
msgstr "Distribución del teclado"
msgid "Mirror region"
msgstr "Región del servidor"
msgid "Locale language"
msgstr "Idioma local"
msgid "Locale encoding"
msgstr "Codificación local"
msgid "Drive(s)"
msgstr "Disco(s)"
# not sure about this one... we've been saying distribución instead of diseño up to now...
msgid "Disk layout"
msgstr "Diseño del disco"
msgid "Encryption password"
msgstr "Contraseña de cifrado"
msgid "Swap"
msgstr "Swap"
msgid "Bootloader"
msgstr "Gestor de arranque"
msgid "Root password"
msgstr "Contraseña de root"
msgid "Superuser account"
msgstr "Cuenta de superusuario"
msgid "User account"
msgstr "Cuenta de usuario"
msgid "Profile"
msgstr "Perfil"
msgid "Audio"
msgstr "Audio"
msgid "Kernels"
msgstr "Núcleos"
msgid "Additional packages"
msgstr "Paquetes adicionales"
msgid "Network configuration"
msgstr "Configuración de la red"
msgid "Automatic time sync (NTP)"
msgstr "Sincronización automática de hora (NTP)"
# are you installing missing configs or are there missing configs
msgid "Install ({} config(s) missing)"
msgstr "Instalar ({} ajuste(s) faltante(s))"
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 ""
"Ha decidido saltar la selección de discos duros\n"
"y usar la configuración montada en {} (experimental)\n"
"ADVERTENCIA: Archinstall no verificará la idoneidad de esta configuración\n"
"¿Desea continuar?"
msgid "Re-using partition instance: {}"
msgstr "Reutilizando instancia de partición: {}"
msgid "Create a new partition"
msgstr "Crear una nueva partición"
msgid "Delete a partition"
msgstr "Eliminar una partición"
msgid "Clear/Delete all partitions"
msgstr "Limpiar/Eliminar todas las particiones"
msgid "Assign mount-point for a partition"
msgstr "Asignar punto de montaje para una partición"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "Marcar/Desmarcar una partición para ser formateada (borra los datos)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "Marcar/Desmarcar una partición como encriptada"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "Marcar/Desmarcar una partición como arrancable (automática para /boot)"
msgid "Set desired filesystem for a partition"
msgstr "Establecer el sistema de archivos deseado para una partición"
msgid "Abort"
msgstr "Abortar"
msgid "Hostname"
msgstr "Nombre de host"
msgid "Not configured, unavailable unless setup manually"
msgstr "No configurado, no disponible a menos que se configure manualmente"
msgid "Timezone"
msgstr "Zona horaria"
msgid "Set/Modify the below options"
msgstr "Establecer/Modificar las opciones siguientes"
msgid "Install"
msgstr "Instalar"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"Usar ESC para saltar\n"
"\n"
msgid "Suggest partition layout"
msgstr "Sugerir el diseño de partición"
msgid "Enter a password: "
msgstr "Ingrese una contraseña: "
msgid "Enter a encryption password for {}"
msgstr "Ingrese una contraseña de cifrado para {}"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "Ingrese la contraseña de cifrado de disco (deje en blanco para no cifrar): "
msgid "Create a required super-user with sudo privileges: "
msgstr "Crear un super-usuario requerido con privilegios sudo: "
msgid "Enter root password (leave blank to disable root): "
msgstr "Ingrese la contraseña de root (deje en blanco para deshabilitar root): "
msgid "Password for user \"{}\": "
msgstr "Contraseña para el usuario “{}”: "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "Verificando que los paquetes adicionales existen (esto puede tardar unos segundos)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "¿Le gustaría utilizar la sincronización automática de hora (NTP) con los servidores de hora predeterminados?\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 ""
"La hora del hardware y otros pasos post-configuración pueden ser necesarios para que NTP funcione. \n"
"Para más información, por favor, consulte la wiki de Arch"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "Introduzca un nombre de usuario para crear un usuario adicional (deje en blanco para saltar): "
msgid "Use ESC to skip\n"
msgstr "Use ESC para omitir\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
"Elija un objeto de la lista y seleccione una de las acciones disponibles para ejecutar"
msgid "Cancel"
msgstr "Cancelar"
msgid "Confirm and exit"
msgstr "Confirmar y salir"
msgid "Add"
msgstr "Añadir"
msgid "Copy"
msgstr "Copiar"
msgid "Edit"
msgstr "Editar"
msgid "Delete"
msgstr "Eliminar"
msgid "Select an action for '{}'"
msgstr "Seleccione una acción para '{}'"
msgid "Copy to new key:"
msgstr "Copiar a nueva clave:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "Tipo de nic desconocido: {}. Los valores posibles son {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"Esta es su configuración elegida:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman ya se está ejecutando, esperando un máximo de 10 minutos para que finalice."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "El bloqueo de pacman preexistente nunca se cerró. Limpie cualquier sesión de pacman existente antes de usar archinstall."
msgid "Choose which optional additional repositories to enable"
msgstr "Elija qué repositorios adicionales opcionales habilitar"
msgid "Add a user"
msgstr "Añadir un usuario"
msgid "Change password"
msgstr "Cambiar contraseña"
# maybe ascender/descender here?
msgid "Promote/Demote user"
msgstr "Promocionar/Degradar usuario"
msgid "Delete User"
msgstr "Eliminar usuario"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"Definir un nuevo usuario\n"
msgid "User Name : "
msgstr "Nombre de usuario : "
msgid "Should {} be a superuser (sudoer)?"
msgstr "¿Debe {} ser un superusuario (sudoer)?"
msgid "Define users with sudo privilege: "
msgstr "Defina usuarios con privilegio sudo: "
msgid "No network configuration"
msgstr "Sin configuración de red"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Establecer los subvolúmenes deseados en una partición btrfs"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"Seleccione en qué partición configurar los subvolúmenes"
msgid "Manage btrfs subvolumes for current partition"
msgstr "Administrar subvolúmenes btrfs para la partición actual"
msgid "No configuration"
msgstr "Sin configuración"
msgid "Save user configuration"
msgstr "Guardar configuración de usuario"
msgid "Save user credentials"
msgstr "Guardar credenciales de usuario"
msgid "Save disk layout"
msgstr "Guardar diseño de disco"
msgid "Save all"
msgstr "Guardar todo"
msgid "Choose which configuration to save"
msgstr "Elija qué configuración guardar"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "Ingrese un directorio para guardar la(s) configuración(es): "
msgid "Not a valid directory: {}"
msgstr "No es un directorio válido: {}"
msgid "The password you are using seems to be weak,"
msgstr "La contraseña que está utilizando parece ser débil,"
msgid "are you sure you want to use it?"
msgstr "¿Está seguro de querer usarlo?"
msgid "Optional repositories"
msgstr "Repositorios opcionales"
msgid "Save configuration"
msgstr "Guardar configuración"
msgid "Missing configurations:\n"
msgstr "Configuraciones que faltan:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "Debe especificar una contraseña de root o al menos 1 superusuario"
msgid "Manage superuser accounts: "
msgstr "Administrar cuentas de superusuario: "
msgid "Manage ordinary user accounts: "
msgstr "Administrar cuentas de usuario ordinarias: "
msgid " Subvolume :{:16}"
msgstr " Subvolumen :{:16}"
msgid " mounted at {:16}"
msgstr " montado en {:16}"
msgid " with option {}"
msgstr " con opción {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
"Complete los valores deseados para un nuevo subvolumen\n"
msgid "Subvolume name "
msgstr "Nombre del subvolumen "
msgid "Subvolume mountpoint"
msgstr "Punto de montaje del subvolumen"
msgid "Subvolume options"
msgstr "Opciones del subvolumen"
msgid "Save"
msgstr "Guardar"
msgid "Subvolume name :"
msgstr "Nombre del subvolumen :"
msgid "Select a mount point :"
msgstr "Seleccione un punto de montaje :"
msgid "Select the desired subvolume options "
msgstr "Seleccione las opciones de subvolumen deseadas "
msgid "Define users with sudo privilege, by username: "
msgstr "Defina usuarios con privilegio sudo, por nombre de usuario: "
#, python-brace-format
msgid "[!] A log file has been created here: {}"
msgstr "[!] Se ha creado un archivo de registro aquí: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "¿Le gustaría utilizar subvolúmenes BTRFS con una estructura predeterminada?"
msgid "Would you like to use BTRFS compression?"
msgstr "¿Le gustaría usar la compresión BTRFS?"
msgid "Would you like to create a separate partition for /home?"
msgstr "¿Le gustaría crear una partición separada para /home?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "Las unidades seleccionadas no tienen la capacidad mínima requerida para una sugerencia automática\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "Capacidad mínima para la partición /home: {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Capacidad mínima para la partición Arch Linux: {}GB"
msgid "Continue"
msgstr "Continuar"
msgid "yes"
msgstr "sí"
msgid "no"
msgstr "no"
msgid "set: {}"
msgstr "establecer: {}"
msgid "Manual configuration setting must be a list"
msgstr "La configuración manual debe ser una lista."
msgid "No iface specified for manual configuration"
msgstr "No se especificó iface para la configuración manual"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "La configuración manual de la NIC sin DHCP automático requiere una dirección IP"
msgid "Add interface"
msgstr "Añadir interfaz"
msgid "Edit interface"
msgstr "Editar interfaz"
msgid "Delete interface"
msgstr "Eliminar intefaz"
msgid "Select interface to add"
msgstr "Seleccione la interfaz para agregar"
msgid "Manual configuration"
msgstr "Configuración manual"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "Marcar/Desmarcar una partición como comprimida (solo btrfs)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "La contraseña que está utilizando parece ser débil, ¿está seguro de que desea usarla?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "Proporciona una selección de entornos de escritorio y administradores de ventanas en mosaico, p.e. gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "Seleccione su entorno de escritorio deseado"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "Una instalación muy básica que te permite personalizar Arch Linux como mejor te parezca."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "Proporciona una selección de varios paquetes de servidor para instalar y habilitar, p.e. httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "Elija qué servidores instalar, si no hay ninguno, se realizará una instalación mínima"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "Instala un sistema mínimo, así como controladores xorg y gráficos."
msgid "Press Enter to continue."
msgstr "Presione Entrar para continuar."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "¿Le gustaría acceder a la instalación recién creada y realizar la configuración posterior a la instalación?"
msgid "Are you sure you want to reset this setting?"
msgstr "¿Está seguro de que desea restablecer esta configuración?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "Seleccione uno o más discos duros para usar y configurar\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "¡Cualquier modificación a la configuración existente restablecerá el diseño del disco!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "Si restablece la selección del disco duro, esto también restablecerá el diseño actual del disco. ¿Está seguro?"
msgid "Save and exit"
msgstr "Guardar y salir"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"contiene particiones en cola, esto las eliminará, ¿está seguro?"
msgid "No audio server"
msgstr "Sin servidor de audio"
msgid "(default)"
msgstr "(predeterminado)"
msgid "Use ESC to skip"
msgstr "Use ESC para omitir"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"Use CTRL+C para restablecer la selección actual\n"
"\n"
msgid "Copy to: "
msgstr "Copiar a: "
msgid "Edit: "
msgstr "Editar: "
msgid "Key: "
msgstr "Clave: "
msgid "Edit {}: "
msgstr "Editar {}: "
msgid "Add: "
msgstr "Añadir: "
msgid "Value: "
msgstr "Valor: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "Puede omitir la selección de una unidad y la partición y usar cualquier configuración de unidad que esté montada en /mnt (experimental)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "Seleccione uno de los discos u omita y use /mnt como predeterminado"
msgid "Select which partitions to mark for formatting:"
msgstr "Seleccione qué particiones marcar para formatear:"
msgid "Use HSM to unlock encrypted drive"
msgstr "Usar HSM para desbloquear la unidad cifrada"
msgid "Device"
msgstr "Dispositivo"
msgid "Size"
msgstr "Tamaño"
msgid "Free space"
msgstr "Espacio libre"
msgid "Bus-type"
msgstr "Tipo de bus"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "Debe especificar una contraseña de root o al menos 1 usuario con privilegios sudo"
msgid "Enter username (leave blank to skip): "
msgstr "Ingrese el nombre de usuario (déjelo en blanco para omitir): "
msgid "The username you entered is invalid. Try again"
msgstr "El nombre de usuario que ingresó no es válido. Intente nuevamente"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "¿Debe \"{}\" ser un superusuario (sudo)?"
msgid "Select which partitions to encrypt"
msgstr "Seleccione qué particiones cifrar"
msgid "very weak"
msgstr "muy débil"
msgid "weak"
msgstr "débil"
msgid "moderate"
msgstr "moderado"
msgid "strong"
msgstr "fuerte"
msgid "Add subvolume"
msgstr "Agregar subvolumen"
msgid "Edit subvolume"
msgstr "Editar subvolumen"
msgid "Delete subvolume"
msgstr "Eliminar subvolumen"
msgid "Configured {} interfaces"
msgstr "Interfaces {} configuradas"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "Esta opción habilita la cantidad de descargas paralelas que pueden ocurrir durante la instalación"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"Ingrese el número de descargas paralelas que se habilitarán.\n"
" (Ingrese un valor entre 1 y {})\n"
"Nota:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - Valor máximo : {} ( Habilita {} descargas paralelas, permite {} descargas simultáneas )"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - Valor mínimo : 1 ( Habilita 1 descarga paralela, permite 2 descargas simultáneas )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - Deshabilitar/Predeterminado : 0 ( Deshabilita la descarga paralela, permite solo 1 descarga simultánea )"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "¡Entrada no válida! Intente nuevamente con una entrada válida [1 a {max_downloads}, o 0 para deshabilitar]"
msgid "Parallel Downloads"
msgstr "Descargas paralelas"
msgid "ESC to skip"
msgstr "ESC para omitir"
msgid "CTRL+C to reset"
msgstr "CTRL+C para restablecer"
msgid "TAB to select"
msgstr "TAB para seleccionar"
msgid "[Default value: 0] > "
msgstr "[Valor predeterminado: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "Para poder usar esta traducción, instale manualmente una fuente que admita el idioma."
msgid "The font should be stored as {}"
msgstr "La fuente debe almacenarse como {}"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Archinstall requiere privilegios de root para ejecutarse. Consulte --help para más información."
msgid "Select an execution mode"
msgstr "Seleccione un modo de ejecución"
#, python-brace-format
msgid "Unable to fetch profile from specified url: {}"
msgstr "No se puede recuperar el perfil de la URL especificada: {}"
#, python-brace-format
msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}"
msgstr "Los perfiles deben tener un nombre único, pero se encontraron definiciones de perfil con nombre duplicado: {}"
msgid "Select one or more devices to use and configure"
msgstr "Seleccione uno o más dispositivos para usar y configurar"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "Si restablece la selección del dispositivo, esto también restablecerá el diseño actual del disco. ¿Está seguro?"
msgid "Existing Partitions"
msgstr "Particiones existentes"
msgid "Select a partitioning option"
msgstr "Seleccione una opción de partición"
msgid "Enter the root directory of the mounted devices: "
msgstr "Ingrese el directorio raíz de los dispositivos montados: "
#, python-brace-format
msgid "Minimum capacity for /home partition: {}GiB\n"
msgstr "Capacidad mínima para la partición /home: {}GiB\n"
#, python-brace-format
msgid "Minimum capacity for Arch Linux partition: {}GiB"
msgstr "Capacidad mínima para la partición Arch Linux: {}GiB"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "Esta es una lista de profiles_bck preprogramados que podrían facilitar la instalación de cosas como entornos de escritorio"
msgid "Current profile selection"
msgstr "Selección de perfil actual"
msgid "Remove all newly added partitions"
msgstr "Eliminar todas las particiones recién agregadas"
msgid "Assign mountpoint"
msgstr "Asignar punto de montaje"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "Marcar/Desmarcar para formatear (borra datos)"
msgid "Mark/Unmark as bootable"
msgstr "Marcar/Desmarcar como arrancable"
msgid "Change filesystem"
msgstr "Cambiar el sistema de archivos"
msgid "Mark/Unmark as compressed"
msgstr "Marcar/Desmarcar como comprimido"
msgid "Set subvolumes"
msgstr "Establecer subvolúmenes"
msgid "Delete partition"
msgstr "Eliminar partición"
msgid "Partition"
msgstr "Partición"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "Esta partición está actualmente cifrada, para formatearla se debe especificar un sistema de archivos"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "Los puntos de montaje de la partición son relativos al interior de la instalación; el arranque sería /boot como ejemplo."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "Si se establece el punto de montaje /boot, la partición también se marcará como arrancable."
msgid "Mountpoint: "
msgstr "Punto de montaje: "
msgid "Current free sectors on device {}:"
msgstr "Sectores libres actuales en el dispositivo {}:"
msgid "Total sectors: {}"
msgstr "Sectores totales: {}"
msgid "Enter the start sector (default: {}): "
msgstr "Introduzca el sector de inicio (predeterminado: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
msgstr "Ingrese el sector final de la partición (porcentaje o número de bloque, predeterminado: {}): "
msgid "This will remove all newly added partitions, continue?"
msgstr "Esto eliminará todas las particiones recientemente agregadas, ¿continuar?"
#, python-brace-format
msgid "Partition management: {}"
msgstr "Gestión de particiones: {}"
#, python-brace-format
msgid "Total length: {}"
msgstr "Largo total: {}"
msgid "Encryption type"
msgstr "Tipo de cifrado"
msgid "Iteration time"
msgstr "Tiempo de iteración"
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr "Ingrese el tiempo de iteración para cifrado LUKS (en milisegundos)"
msgid "Higher values increase security but slow down boot time"
msgstr "Valores más grandes mejoran la seguridad pero aumentan el tiempo de arranque"
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr "Por defecto: 10000ms, Rango recomendado 1000-60000"
msgid "Iteration time cannot be empty"
msgstr "Tiempo de iteración no puede estar vacío"
msgid "Iteration time must be at least 100ms"
msgstr "Tiempo de iteración no puede menor a 100ms"
msgid "Iteration time must be at most 120000ms"
msgstr "Tiempo de iteración no puede ser mayor a 120000ms"
msgid "Please enter a valid number"
msgstr "Por favor ingrese un número válido"
msgid "Partitions"
msgstr "Particiones"
msgid "No HSM devices available"
msgstr "No hay dispositivos HSM disponibles"
msgid "Partitions to be encrypted"
msgstr "Particiones a cifrar"
msgid "Select disk encryption option"
msgstr "Seleccione la opción de cifrado de disco"
msgid "Select a FIDO2 device to use for HSM"
msgstr "Seleccione un dispositivo FIDO2 para usar con HSM"
msgid "Use a best-effort default partition layout"
msgstr "Utlizar un diseño de partición predeterminado de mejor esfuerzo"
msgid "Manual Partitioning"
msgstr "Partición manual"
msgid "Pre-mounted configuration"
msgstr "Configuración premontada"
msgid "Unknown"
msgstr "Desconocido"
msgid "Partition encryption"
msgstr "Cifrado de partición"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! Formateando {} en "
msgid "← Back"
msgstr "← Regresar"
msgid "Disk encryption"
msgstr "Cifrado de disco"
msgid "Configuration"
msgstr "Configuración"
msgid "Password"
msgstr "Contraseña"
msgid "All settings will be reset, are you sure?"
msgstr "Todos los ajustes se restablecerán, ¿está seguro?"
msgid "Back"
msgstr "Regresar"
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr "Por favor, elija qué gestor de inicio de sesión instalar para los perfiles elegidos: {}"
#, python-brace-format
msgid "Environment type: {}"
msgstr "Tipo de entorno: {}"
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 "El controlador propietario de Nvidia no es compatible con Sway. Es probable que encuentre problemas, ¿Desear continuar?"
msgid "Installed packages"
msgstr "Paquetes instalados"
msgid "Add profile"
msgstr "Agregar perfil"
msgid "Edit profile"
msgstr "Editar perfil"
msgid "Delete profile"
msgstr "Eliminar perfil"
msgid "Profile name: "
msgstr "Nombre de perfil: "
msgid "The profile name you entered is already in use. Try again"
msgstr "El nombre de perfil que ingresó ya está en uso. Intente nuevamente"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "Paquetes que se instalarán con este perfil (separados por espacios, déjelo en blanco para omitir): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "Servicios que se habilitarán con este perfil (separados por espacios, deje en blanco para omitir): "
msgid "Should this profile be enabled for installation?"
msgstr "¿Debería habilitarse este perfil para la instalación?"
msgid "Create your own"
msgstr "Crear tu propio"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"Seleccione un controlador de gráficos o deje en blanco para instalar todos los controladores de código abierto"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway necesita acceso a sus dispositivos de hardware (teclado, mouse, etc.)"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Elija una opción para darle a Sway acceso a su hardware"
msgid "Graphics driver"
msgstr "Controlador de gráficos"
msgid "Greeter"
msgstr "Gestor de inicio de sesión"
msgid "Please chose which greeter to install"
msgstr "Por favor, elija qué gestor de inicio de sesión instalar"
msgid "This is a list of pre-programmed default_profiles"
msgstr "Esta es una lista de default_profiles preprogramados"
msgid "Disk configuration"
msgstr "Configuración del disco"
msgid "Profiles"
msgstr "Perfiles"
msgid "Finding possible directories to save configuration files ..."
msgstr "Encontrar posibles directorios para guardar archivos de configuración..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "Seleccione el directorio (o directorios) para guardar los archivos de configuración"
msgid "Add a custom mirror"
msgstr "Agregar un espejo personalizado"
msgid "Change custom mirror"
msgstr "Cambiar espejo personalizado"
msgid "Delete custom mirror"
msgstr "Eliminar espejo personalizado"
msgid "Enter name (leave blank to skip): "
msgstr "Ingrese el nombre (deje en blanco para omitir): "
msgid "Enter url (leave blank to skip): "
msgstr "Ingrese la URL (deje en blanco para omitir): "
msgid "Select signature check option"
msgstr "Seleccione la opción de verificación de firma"
msgid "Select signature option"
msgstr "Seleccione la opción de firma"
msgid "Custom mirrors"
msgstr "Espejos personalizados"
msgid "Defined"
msgstr "Definido"
msgid "Save user configuration (including disk layout)"
msgstr "Guardar la configuración del usuario (incluido el diseño del disco)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"Ingrese un directorio para guardar las configuraciones (completar con tabulación habilitado)\n"
"Guardar directorio: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"¿Desea guardar {} archivo(s) de configuración en la siguiente ubicación?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "Guardar {} archivos de configuración en {}"
msgid "Mirrors"
msgstr "Espejos"
msgid "Mirror regions"
msgstr "Regiones de espejos"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - Valor máximo : {} ( Habilita {} descargas paralelas, permite {max_downloads+1} descargas simultáneas )"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "¡Entrada no válida! Intente nuevamente con una entrada válida [1 a {}, o 0 para deshabilitar]"
msgid "Locales"
msgstr "Localidades"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "Usar NetworkManager (necesario para configurar internet gráficamente en GNOME y KDE)"
msgid "Total: {} / {}"
msgstr "Total: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "Todos los valores ingresados pueden tener una unidad como sufijo: B, KB, KiB, MB, MiB ..."
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "Si no se proporciona ninguna unidad, el valor se interpreta como sectores"
msgid "Enter start (default: sector {}): "
msgstr "Ingrese el inicio (predeterminado: sector {}): "
msgid "Enter end (default: {}): "
msgstr "Ingrese el final (predeterminado: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "No se pueden determinar los dispositivos fido2. ¿Está instalado libfido2?"
msgid "Path"
msgstr "Ruta"
msgid "Manufacturer"
msgstr "Fabricante"
msgid "Product"
msgstr "Producto"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "Configuración no válida: {error}"
msgid "Type"
msgstr "Tipo"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "Esta opción habilita la cantidad de descargas paralelas que pueden ocurrir durante las descargas de paquetes"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"Ingrese el número de descargas paralelas que se habilitarán.\n"
"\n"
"Nota:\n"
#, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr " - Valor máximo recomendado : {} ( Permite {} descargas paralelas simultáneas )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - Deshabilitar/Predeterminado : 0 ( Deshabilita la descarga paralela, permite solo 1 descarga simultánea )\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "¡Entrada no válida! Intente nuevamente con una entrada válida [o 0 para deshabilitar]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Hyprland necesita acceso a su asiento (colección de dispositivos de hardware, es decir, teclado, mouse, etc.)"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Elija una opción para darle acceso a Hyprland a su hardware"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "Todos los valores introducidos pueden tener como sufijo una unidad: %, B, KB, KiB, MB, MiB..."
msgid "Would you like to use unified kernel images?"
msgstr "¿Le gustaría utilizar imágenes del kernel unificadas?"
msgid "Unified kernel images"
msgstr "Imágenes del kernel unificadas"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "Esperando a que se complete la sincronización de la hora (timedatectl show)."
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "La sincronización de hora no se completa mientras espera - consulte los documentos para encontrar soluciones: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "Saltarse la espera de sincronización automática de la hora (esto puede causar problemas si la hora no está sincronizada durante la instalación)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "Esperando a que se complete la sincronización del llavero de Arch Linux (archlinux-keyring-wkd-sync)."
msgid "Selected profiles: "
msgstr "Perfiles seleccionados: "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "La sincronización de hora no se completa mientras espera - consulte los documentos para encontrar soluciones: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "Marcar/Desmarcar como nodatacow"
msgid "Would you like to use compression or disable CoW?"
msgstr "¿Le gustaría utilizar compresión o desactivar CoW?"
msgid "Use compression"
msgstr "Usar compresión"
msgid "Disable Copy-on-Write"
msgstr "Desactivar copia en escritura"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway"
msgstr "Proporciona una selección de entornos de escritorio y administradores de ventanas en mosaico, p.e. GNOME, KDE Plasma, Sway"
#, python-brace-format
msgid "Configuration type: {}"
msgstr "Tipo de configuración: {}"
msgid "LVM configuration type"
msgstr "Tipo de configuración LVM"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "Actualmente no se admite el cifrado de disco LVM con más de 2 particiones"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "Usar NetworkManager (necesario para configurar internet gráficamente en GNOME y KDE Plasma)"
msgid "Select a LVM option"
msgstr "Seleccione una opción LVM"
msgid "Partitioning"
msgstr "Particionamiento"
msgid "Logical Volume Management (LVM)"
msgstr "Gestión de volúmenes lógicos (LVM)"
msgid "Physical volumes"
msgstr "Volúmenes físicos"
msgid "Volumes"
msgstr "Volúmenes"
msgid "LVM volumes"
msgstr "Volúmenes LVM"
msgid "LVM volumes to be encrypted"
msgstr "Volúmenes LVM a cifrar"
msgid "Select which LVM volumes to encrypt"
msgstr "Seleccione qué volúmenes LVM cifrar"
msgid "Default layout"
msgstr "Diseño predeterminado"
msgid "No Encryption"
msgstr "Sin cifrado"
msgid "LUKS"
msgstr "LUKS"
msgid "LVM on LUKS"
msgstr "LVM en LUKS"
msgid "LUKS on LVM"
msgstr "LUKS en LVM"
msgid "Yes"
msgstr "Sí"
msgid "No"
msgstr "No"
msgid "Archinstall help"
msgstr "Ayuda de archinstall"
msgid " (default)"
msgstr " (predeterminado)"
msgid "Press Ctrl+h for help"
msgstr "Presione Ctrl+h para obtener ayuda"
msgid "Choose an option to give Sway access to your hardware"
msgstr "Elija una opción para darle a Sway acceso a su hardware"
# maybe "Acceso a la estación" or "Gestión de puestos (seats)" could be better?
msgid "Seat access"
msgstr "Acceso al asiento"
msgid "Mountpoint"
msgstr "Punto de montaje"
msgid "HSM"
msgstr "HSM"
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "Ingrese la contraseña de cifrado del disco (deje en blanco si no desea cifrar)"
msgid "Disk encryption password"
msgstr "Contraseña de cifrado de disco"
msgid "Partition - New"
msgstr "Partición - Nueva"
msgid "Filesystem"
msgstr "Sistema de archivos"
msgid "Invalid size"
msgstr "Tamaño no válido"
msgid "Start (default: sector {}): "
msgstr "Inicio (predeterminado: sector {}): "
msgid "End (default: {}): "
msgstr "Fin (predeterminado: {}): "
msgid "Subvolume name"
msgstr "Nombre del subvolumen"
msgid "Disk configuration type"
msgstr "Tipo de configuración del disco"
msgid "Root mount directory"
msgstr "Directorio de montaje raíz"
msgid "Select language"
msgstr "Seleccionar idioma"
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "Escriba paquetes adicionales para instalar (separados por espacios, déjelo en blanco para omitir)"
msgid "Invalid download number"
msgstr "Número de descarga no válido"
msgid "Number downloads"
msgstr "Número de descargas"
msgid "The username you entered is invalid"
msgstr "El nombre de usuario ingresado no es válido"
msgid "Username"
msgstr "Nombre de usuario"
#, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "¿\"{}\" debería ser un superusuario (sudo)?\n"
msgid "Interfaces"
msgstr "Interfaces"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "Debe ingresar una IP válida en el modo de configuración de IP"
msgid "Modes"
msgstr "Modos"
msgid "IP address"
msgstr "Dirección IP"
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "Ingrese la dirección IP de su puerta de enlace (enrutador) (deje en blanco si no hay ninguna)"
msgid "Gateway address"
msgstr "Dirección de puerta de enlace"
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "Ingrese sus servidores DNS separados por espacios (deje en blanco si no hay ninguno)"
msgid "DNS servers"
msgstr "Servidores DNS"
msgid "Configure interfaces"
msgstr "Configurar interfaces"
msgid "Kernel"
msgstr "Núcleo"
msgid "UEFI is not detected and some options are disabled"
msgstr "No se detecta UEFI y algunas opciones están deshabilitadas"
msgid "Info"
msgstr "Info"
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "El controlador patentado de Nvidia no es compatible con Sway."
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "Es probable que tengas problemas. ¿Te parece bien?"
msgid "Main profile"
msgstr "Perfil principal"
msgid "Confirm password"
msgstr "Confirmar contraseña"
msgid "The confirmation password did not match, please try again"
msgstr "La contraseña de confirmación no coincide, por favor intente nuevamente"
msgid "Not a valid directory"
msgstr "No es un directorio válido"
msgid "Would you like to continue?"
msgstr "¿Quiere continuar?"
msgid "Directory"
msgstr "Directorio"
msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)"
msgstr "Ingrese un directorio para guardar las configuraciones (autocompletado de tabulación habilitado)"
#, python-brace-format
msgid "Do you want to save the configuration file(s) to {}?"
msgstr "¿Desea guardar los archivos de configuración en {}?"
msgid "Enabled"
msgstr "Habilitado"
msgid "Disabled"
msgstr "Deshabilitado"
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr "Envíe este problema (y archivo) a https://github.com/archlinux/archinstall/issues"
msgid "Mirror name"
msgstr "Nombre del espejo"
msgid "Url"
msgstr "Url"
msgid "Select signature check"
msgstr "Seleccionar verificación de firma"
msgid "Select execution mode"
msgstr "Seleccionar modo de ejecución"
msgid "Press ? for help"
msgstr "Presione ? para obtener ayuda"
msgid "Choose an option to give Hyprland access to your hardware"
msgstr "Elija una opción para darle a Hyprland acceso a su hardware"
msgid "Additional repositories"
msgstr "Repositorios adicionales"
msgid "NTP"
msgstr "NTP"
msgid "Swap on zram"
msgstr "Swap en zram"
msgid "Name"
msgstr "Nombre"
msgid "Signature check"
msgstr "Comprobación de firma"
#, python-brace-format
msgid "Selected free space segment on device {}:"
msgstr "Segmento de espacio libre seleccionado en el dispositivo {}:"
#, python-brace-format
msgid "Size: {} / {}"
msgstr "Tamaño: {} / {}"
#, python-brace-format
msgid "Size (default: {}): "
msgstr "Tamaño (predeterminado: {}): "
msgid "HSM device"
msgstr "Dispositivo HSM"
msgid "Some packages could not be found in the repository"
msgstr "No se pudieron encontrar algunos paquetes en el repositorio"
msgid "User"
msgstr "Usuario"
msgid "The specified configuration will be applied"
msgstr "Se aplicará la configuración especificada"
msgid "Wipe"
msgstr "Borrar"
msgid "Mark/Unmark as XBOOTLDR"
msgstr "Marcar/Desmarcar como XBOOTLDR"
msgid "Loading packages..."
msgstr "Cargando paquetes..."
msgid "Select any packages from the below list that should be installed additionally"
msgstr "Seleccione cualquier paquete de la lista a continuación que deba instalarse adicionalmente"
msgid "Add a custom repository"
msgstr "Agregar un repositorio personalizado"
msgid "Change custom repository"
msgstr "Cambiar el repositorio personalizado"
msgid "Delete custom repository"
msgstr "Eliminar repositorio personalizado"
msgid "Repository name"
msgstr "Nombre del repositorio"
msgid "Add a custom server"
msgstr "Agregar un servidor personalizado"
msgid "Change custom server"
msgstr "Cambiar servidor personalizado"
msgid "Delete custom server"
msgstr "Eliminar servidor personalizado"
msgid "Server url"
msgstr "URL del servidor"
msgid "Select regions"
msgstr "Seleccione regiones"
msgid "Add custom servers"
msgstr "Agregar servidores personalizados"
msgid "Add custom repository"
msgstr "Agregar repositorio personalizado"
msgid "Loading mirror regions..."
msgstr "Cargando regiones de espejo..."
msgid "Mirrors and repositories"
msgstr "Espejos y repositorios"
msgid "Selected mirror regions"
msgstr "Regiones de espejo seleccionadas"
msgid "Custom servers"
msgstr "Servidores personalizados"
msgid "Custom repositories"
msgstr "Repositorios personalizados"
msgid "Only ASCII characters are supported"
msgstr "Sólo se admiten caracteres ASCII"
msgid "Show help"
msgstr "Mostrar ayuda"
msgid "Exit help"
msgstr "Ayuda para salir"
msgid "Preview scroll up"
msgstr "Subir en vista previa"
msgid "Preview scroll down"
msgstr "Bajar en vista previa"
msgid "Move up"
msgstr "Subir"
msgid "Move down"
msgstr "Bajar"
msgid "Move right"
msgstr "Mover a la derecha"
msgid "Move left"
msgstr "Mover a la izquierda"
msgid "Jump to entry"
msgstr "Saltar a la entrada"
msgid "Skip selection (if available)"
msgstr "Saltar selección (si está disponible)"
msgid "Reset selection (if available)"
msgstr "Restablecer selección (si está disponible)"
msgid "Select on single select"
msgstr "Seleccionar en selección única"
msgid "Select on multi select"
msgstr "Seleccionar en selección múltiple"
msgid "Reset"
msgstr "Restablecer"
msgid "Skip selection menu"
msgstr "Saltar el menú de selección"
msgid "Start search mode"
msgstr "Iniciar modo de búsqueda"
msgid "Exit search mode"
msgstr "Salir del modo de búsqueda"
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "labwc necesita acceso a su asiento (colección de dispositivos de hardware, es decir, teclado, ratón, etc.)"
msgid "Choose an option to give labwc access to your hardware"
msgstr "Elija una opción para darle a labwc acceso a su hardware"
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "niri necesita acceso a su asiento (colección de dispositivos de hardware, es decir, teclado, ratón, etc.)"
msgid "Choose an option to give niri access to your hardware"
msgstr "Elija una opción para darle a niri acceso a su hardware"
msgid "Mark/Unmark as ESP"
msgstr "Marcar/Desmarcar como ESP"
msgid "Package group:"
msgstr "Grupo de paquetes:"
msgid "Exit archinstall"
msgstr "Salir de archinstall"
msgid "Reboot system"
msgstr "Reiniciar el sistema"
msgid "chroot into installation for post-installation configurations"
msgstr "chroot en la instalación para configuraciones posteriores a la instalación"
msgid "Installation completed"
msgstr "Instalación completada"
msgid "What would you like to do next?"
msgstr "¿Qué le gustaría hacer a continuación?"
#, python-brace-format
msgid "Select which mode to configure for \"{}\""
msgstr "Seleccione qué modo configurar para \"{}\""
msgid "Incorrect credentials file decryption password"
msgstr "Contraseña incorrecta para descifrar el archivo de credenciales"
msgid "Incorrect password"
msgstr "Contraseña incorrecta"
msgid "Credentials file decryption password"
msgstr "Contraseña para descifrar el archivo de credenciales"
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr "¿Desea encriptar el archivo user_credentials.json?"
msgid "Credentials file encryption password"
msgstr "Contraseña para cifrar el archivo de credenciales"
#, python-brace-format
msgid "Repositories: {}"
msgstr "Repositorios: {}"
msgid "New version available"
msgstr "Nueva versión disponible"
msgid "Passwordless login"
msgstr "Inicio de sesión sin contraseña"
msgid "Second factor login"
msgstr "Inicio de sesión con factor secundario"
msgid "Bluetooth"
msgstr "Bluetooth"
msgid "Would you like to configure Bluetooth?"
msgstr "¿Desea configurar Bluetooth?"
msgid "Print service"
msgstr "Servicio de impresión"
msgid "Would you like to configure the print service?"
msgstr "¿Desea configurar el servicio de impresión?"
msgid "Power management"
msgstr "Administración de energía"
msgid "Authentication"
msgstr "Autenticación"
msgid "Applications"
msgstr "Aplicaciones"
msgid "U2F login method: "
msgstr "Método de inicio de sesión U2F: "
msgid "Passwordless sudo: "
msgstr "Sudo sin contraseña: "
#, python-brace-format
msgid "Btrfs snapshot type: {}"
msgstr "Tipo de snapshot Btrfs: {}"
msgid "Syncing the system..."
msgstr "Sincronizando el sistema..."
msgid "Value cannot be empty"
msgstr "El valor no puede estár vacío"
msgid "Snapshot type"
msgstr "Tipo de snapshot"
#, python-brace-format
msgid "Snapshot type: {}"
msgstr "Tipo de snapshot: {}"
msgid "U2F login setup"
msgstr "Configuración de inicio de sesión U2F"
msgid "No U2F devices found"
msgstr "No se encontró dispositivos U2F"
msgid "U2F Login Method"
msgstr "Método de inicio de sesión U2F"
msgid "Enable passwordless sudo?"
msgstr "Habilitar sudo sin contraseña?"
#, python-brace-format
msgid "Setting up U2F device for user: {}"
msgstr "Configurando dispositivo U2F para usuario: {}"
msgid "You may need to enter the PIN and then touch your U2F device to register it"
msgstr "Puede que deba ingresar su PIN antes de tocar su dispositivo U2F para registrarlo"
msgid "Starting device modifications in "
msgstr "Iniciando modificaciones en dispositivo en "
msgid "No network connection found"
msgstr "No se encontró una conección de red"
msgid "Would you like to connect to a Wifi?"
msgstr "¿Desea conectarse a Wifi?"
msgid "No wifi interface found"
msgstr "No se encontró ninguna interfaz de wifi"
msgid "Select wifi network to connect to"
msgstr "Seleccione una red de wifi para conectarse"
msgid "Scanning wifi networks..."
msgstr "Buscando redes de wifi..."
msgid "No wifi networks found"
msgstr "No se encontró redes de wifi"
msgid "Failed setting up wifi"
msgstr "Error configurando wifi"
msgid "Enter wifi password"
msgstr "Ingrese contraseña de wifi"
msgid "Ok"
msgstr "Ok"
msgid "Removable"
msgstr "Desmontable"
msgid "Install to removable location"
msgstr "Instalar a ubicación desmontable"
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr "Se instalará en /EFI/BOOT/ (ubicación desmontable)"
msgid "Will install to standard location with NVRAM entry"
msgstr "Se instalará en ubicación estandar con entrada NVRAM"
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr "¿Desea instalar el gestor de arranque en la ubicación predeterminada de búsqueda de medios desmontables?"
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr "Esto instala el gestor de arranque en /EFI/BOOT/BOOTX64.EFI (o similar) lo cual es útil para:"
msgid "USB drives or other portable external media."
msgstr "Disco USB u otros medios portátiles externos."
msgid "Systems where you want the disk to be bootable on any computer."
msgstr "Sistemas donde quiere que el disco sea arrancable en cualquier computadora."
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr "Firmware que no soporta entradas arrancables NVRAM."
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr "Instalará a /EFI/BOOT/ (ubicación desmontable, segura por defecto)"
msgid "Will install to custom location with NVRAM entry"
msgstr "Instalará a ubicación personalizada con entrada NVRAM"
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr "Firmware que no soporta entradas arrancables NVRAM como la mayoría de las placas MSI,"
msgid "most Apple Macs, many laptops..."
msgstr "la mayoría de las Macs Apple, muchas laptops..."
msgid "Language"
msgstr "Idioma local"
msgid "Compression algorithm"
msgstr "Algoritmo de compresión"
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Solo paquetes como base, base-devel, linux, linux-firmware, efibootmgr y paquetes opcionales de perfil se instalan."
msgid "Select zram compression algorithm:"
msgstr "Seleccione algorimto de compresión zram:"
msgid "Use Network Manager (default backend)"
msgstr "Usar Gestor de Red (backend por defecto)"
msgid "Use Network Manager (iwd backend)"
msgstr "Usar gestor de Red (backend iwd)"
msgid "Firewall"
msgstr "Cortafuegos"
msgid "Select audio configuration"
msgstr "Seleccionar configuración de audio"
msgid "Enter credentials file decryption password"
msgstr "Ingrese la contraseña de descifrado del archivo de credenciales"
msgid "Enter root password"
msgstr "Ingrese la contraseña de root"
msgid "Select bootloader to install"
msgstr "Seleccione el gestor de arranque que desea instalar"
msgid "Configuration preview"
msgstr "Vista previa de la configuración"
msgid "Enter a directory for the configuration(s) to be saved"
msgstr "Ingrese un directorio para guardar las configuraciones"
msgid "Select encryption type"
msgstr "Seleccione el tipo de cifrado"
msgid "Select disks for the installation"
msgstr "Seleccione discos para la instalación"
msgid "Enter a mountpoint"
msgstr "Ingrese un punto de montaje"
#, python-brace-format
msgid "Enter a size (default: {}): "
msgstr "Ingrese un tamaño (predeterminado: {}): "
msgid "Enter subvolume name"
msgstr "Ingrese el nombre del subvolumen"
msgid "Enter subvolume mountpoint"
msgstr "Ingrese el punto de montaje del subvolumen"
msgid "Select a disk configuration"
msgstr "Seleccione una configuración de disco"
msgid "Enter root mount directory"
msgstr "Ingrese al directorio de montaje raíz"
msgid "You will use whatever drive-setup is mounted at the specified directory"
msgstr "Utilizará cualquier configuración de unidad que esté montada en el directorio especificado"
msgid "WARNING: Archinstall won't check the suitability of this setup"
msgstr "ADVERTENCIA: Archinstall no comprobará la idoneidad de esta configuración"
msgid "Select main filesystem"
msgstr "Seleccione el sistema de archivos principal"
msgid "Enter a hostname"
msgstr "Ingrese un nombre de host"
msgid "Select timezone"
msgstr "Seleccione una zona horaria"
msgid "Enter the number of parallel downloads to be enabled"
msgstr "Ingrese el número de descargas paralelas que desea habilitar"
#, python-brace-format
msgid "Value must be between 1 and {}"
msgstr "El valor debe estar entre 1 y {}"
msgid "Select which kernel(s) to install"
msgstr "Seleccione qué núcleo(s) desea instalar"
msgid "Enter a respository name"
msgstr "Ingrese un nombre de repositorio"
msgid "Enter the repository url"
msgstr "Ingrese la URL del repositorio"
msgid "Enter server url"
msgstr "Ingrese la URL del servidor"
msgid "Select mirror regions to be enabled"
msgstr "Seleccione las regiones espejo que se habilitarán"
msgid "Select optional repositories to be enabled"
msgstr "Seleccione repositorios opcionales para habilitar"
msgid "Select an interface"
msgstr "Seleccione una interfaz"
msgid "Choose network configuration"
msgstr "Elija la configuración de red"
msgid "No packages found"
msgstr "No se encontraron paquetes"
msgid "Select which greeter to install"
msgstr "Seleccione el saludo que desea instalar"
msgid "Select a profile type"
msgstr "Seleccione un tipo de perfil"
msgid "Enter new password"
msgstr "Ingrese nueva contraseña"
msgid "Enter a username"
msgstr "Ingrese un nombre de usuario"
msgid "Enter a password"
msgstr "Ingrese una contraseña"
msgid "The password did not match, please try again"
msgstr "La contraseña no coincide, por favor inténtelo nuevamente"
#~ msgid "Add :"
#~ msgstr "Añadir :"
#~ msgid "Value :"
#~ msgstr "Valor :"
#, python-brace-format
#~ msgid "Edit {origkey} :"
#~ msgstr "Editar {origkey} :"
#~ msgid "Copy to :"
#~ msgstr "Copiar a :"
#~ msgid "Edite :"
#~ msgstr "Editar :"
#~ msgid "Key :"
#~ msgstr "Clave :"
================================================
FILE: archinstall/locales/et/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: et\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.3\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] Siia on loodud logifail: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Esitage see probleem (ja fail) aadressil https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "Kas sa tahad katkestada?"
msgid "And one more time for verification: "
msgstr "Ja veel kord kinnitamiseks: "
msgid "Would you like to use swap on zram?"
msgstr "Kas soovite zramis kasutada swapi?"
msgid "Desired hostname for the installation: "
msgstr "Installimiseks soovitud hostinimi: "
msgid "Username for required superuser with sudo privileges: "
msgstr "Kasutajanimi nõutud superkasutajale sudo õigustega: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "Lisa kasutajate lisamine(jäta tühjaks kui ei soovi lisa kasutajaid): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "Kas see kasutaja peaks olema superkasutaja (sudo õigustega)"
msgid "Select a timezone"
msgstr "Vali ajatsoon"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "Kas soovite systemd-booti asemel kasutada GRUBi buudilaadijana?"
msgid "Choose a bootloader"
msgstr "Vali buudilaadija"
msgid "Choose an audio server"
msgstr "Vali audio server"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Paigaldatakse ainult sellised paketid nagu base, base-devel, linux, linux-firmware, efibootmgr ja valikulised profiilipaketid."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr ""
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "Kui soovite veebibrauserit, näiteks firefox või chromium, saate selle määrata järgmises viipas."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "Kirjutage paigaldatavad lisapaketid (tühikutega eraldatuna, jätke tühjaks, kui soovite vahele jätta): "
msgid "Copy ISO network configuration to installation"
msgstr "ISO-võrgu konfiguratsiooni kopeerimine paigaldusse"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "Kasutage NetworkManagerit (vajalik interneti graafiliseks konfigureerimiseks GNOME-s ja KDE-s)."
msgid "Select one network interface to configure"
msgstr "Valige üks võrguliides konfigureerimiseks"
msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
msgstr "Valige, millist režiimi soovite konfigureerida \"{}\" või jätke vahele, kasutada vaikimisi režiimi \"{}\""
#, python-brace-format
msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): "
msgstr "Sisestage IP ja alamvõrk {} (näide: 192.168.0.5/24): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "Sisestage oma võrguvärava (ruuteri) IP-aadress või jätke tühjaks, kui see puudub: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "Sisestage oma DNS-serverid (tühikuga eraldatud, jätke tühjaks, kui neid ei ole): "
msgid "Select which filesystem your main partition should use"
msgstr "Valige, millist failisüsteemi teie peamine partitsioon peaks kasutama"
msgid "Current partition layout"
msgstr "Praegune partitsiooni paigutus"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"Valige, mida teha\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "Sisestage partitsiooni jaoks soovitud failisüsteemi tüüp"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "Sisestage alguskoht (parted ühikutes: s, GB, % jne; vaikimisi: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "Sisestage lõpu asukoht (parted ühikutes: s, GB, % jne; näiteks: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} sisaldab järjekorras olevaid partitsioone, see eemaldab need, kas olete kindel?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"\n"
"Valige indeksi järgi, milliseid partitsioone kustutada"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"\n"
"Valige indeksi järgi, millise partitsiooni kuhu paigaldada"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * Partitsioonide kinnituspunktid on suhtelised installeerimise sees, näiteks boot oleks /boot."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "Valige, kuhu partitsiooni paigaldada (jätke tühjaks, et eemaldada paigalduspunkt): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"Valige, millist partitsiooni soovite vormindamiseks maskeerida"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"\n"
"Valige, millist partitsiooni soovite krüpteerituks märkida"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"\n"
"Valige, millist partitsiooni soovite märkida käivitatavaks"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"\n"
"Valige, millisele partitsioonile failisüsteemi määrata"
msgid "Enter a desired filesystem type for the partition: "
msgstr "Sisestage partitsiooni jaoks soovitud failisüsteemi tüüp: "
msgid "Archinstall language"
msgstr "Archinstalli keel"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "Pühkige kõik valitud kettad ja kasutage parimat võimalikku vaikimisi partitsiooni paigutust"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "Valige, mida teha iga üksiku kettaga (järgneb partitsiooni kasutamine)"
msgid "Select what you wish to do with the selected block devices"
msgstr "Valige, mida soovite valitud plokkseadmetega teha"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "See on nimekiri eelprogrammeeritud profiilidest, need võivad lihtsustada selliste asjade nagu töölauakeskkondade paigaldamist"
msgid "Select keyboard layout"
msgstr "Valige klaviatuuri paigutus"
msgid "Select one of the regions to download packages from"
msgstr "Valige üks piirkondadest, kust pakette alla laadida"
msgid "Select one or more hard drives to use and configure"
msgstr "Valige üks või mitu kõvaketast kasutamiseks ja konfigureerimiseks"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "Parima ühilduvuse saavutamiseks oma AMD riistvaraga võiksite kasutada kas kõiki avatud lähtekoodiga või AMD/ATI valikuid."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr ""
"Parima ühilduvuse saavutamiseks oma Inteli riistvaraga võiksite kasutada kas kõiki avatud lähtekoodiga või Inteli valikuid.\n"
"\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr ""
"Parima ühilduvuse saavutamiseks oma Nvidia riistvaraga peaksite kasutama Nvidia enda toodetud draiverit.\n"
"\n"
"\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Valige graafikadraiver või jätke tühjaks, et paigaldada kõik avatud lähtekoodiga draiverid"
msgid "All open-source (default)"
msgstr "Kõik avatud lähtekoodiga (vaikimisi)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "Valige, milliseid tuumasid soovite kasutada või jätke vaikimisi tühjaks \"{}\""
msgid "Choose which locale language to use"
msgstr "Valige, millist asukoha keelt kasutada"
msgid "Choose which locale encoding to use"
msgstr "Valige, millist asukoha kodeeringut kasutada"
msgid "Select one of the values shown below: "
msgstr "Valige üks allpool esitatud väärtustest: "
msgid "Select one or more of the options below: "
msgstr "Valige üks või mitu järgmistest võimalustest: "
msgid "Adding partition...."
msgstr "Partitsiooni lisamine...."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "Partitsiooni lisamine...."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "Viga: URL-i \"{}\" profiilide loetlemine andis tulemuseks:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "Viga: {}\" tulemust JSON-ina dekodeerida:"
msgid "Keyboard layout"
msgstr "Klaviatuuri paigutus"
msgid "Mirror region"
msgstr "Peegelregioon"
msgid "Locale language"
msgstr "Kohalik keel"
msgid "Locale encoding"
msgstr "Kohaliku keele kodeering"
msgid "Drive(s)"
msgstr "Draiv(id)"
msgid "Disk layout"
msgstr "Ketta paigutus"
msgid "Encryption password"
msgstr "Krüpteerimise parool"
msgid "Swap"
msgstr "Swap"
msgid "Bootloader"
msgstr "Buudilaadija"
msgid "Root password"
msgstr "Juur parool"
msgid "Superuser account"
msgstr "Superkasutaja konto"
msgid "User account"
msgstr "Kasutaja konto"
msgid "Profile"
msgstr "Profiil"
msgid "Audio"
msgstr "Audio"
msgid "Kernels"
msgstr "Kernelid"
msgid "Additional packages"
msgstr "Täiendavad paketid"
msgid "Network configuration"
msgstr "Võrgu konfiguratsioon"
msgid "Automatic time sync (NTP)"
msgstr "Automaatne ajasünkroonimine"
msgid "Install ({} config(s) missing)"
msgstr "Install ({} config(id) puudu(vad)"
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 ""
"Sa otsustasid kõvaketta valiku vahele jätta\n"
"ja kasutad mis tahes draivi seadistust, mis on paigaldatud {} (eksperimentaalne)\n"
"HOIATUS: Archinstall ei kontrolli selle seadistuse sobivust\n"
"Kas soovite jätkata?"
msgid "Re-using partition instance: {}"
msgstr "Partitsiooni instantsi taaskasutamine: {}"
msgid "Create a new partition"
msgstr "Uue partitsiooni loomine"
msgid "Delete a partition"
msgstr "Kustuta paritsioon"
msgid "Clear/Delete all partitions"
msgstr "Puhasta/Kustuta kõik partitsioonid"
msgid "Assign mount-point for a partition"
msgstr "Määrake partitsioonile kinnituspunkt"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "Märgistage/mittemärgistage vormindatav partitsioon (kustutab andmed)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "Märgistage/mittemärgistage partitsiooni krüpteerituks"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "Märgistage/mittemärgistage partitsiooni käivitatavaks (automaatne /boot jaoks)"
msgid "Set desired filesystem for a partition"
msgstr "Soovitud failisüsteemi määramine partitsiooni jaoks"
msgid "Abort"
msgstr "Katkesta"
msgid "Hostname"
msgstr "Hostinimi"
msgid "Not configured, unavailable unless setup manually"
msgstr "Ei ole konfigureeritud, ei ole saadaval, kui seda ei ole käsitsi seadistatud"
msgid "Timezone"
msgstr "Ajatsoon"
msgid "Set/Modify the below options"
msgstr "Määrake/muutke järgmisi valikuid"
msgid "Install"
msgstr "Install"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"Kasutage ESC vahelejätmiseks\n"
"\n"
"\n"
"\n"
"\n"
msgid "Suggest partition layout"
msgstr "Soovitage partitsiooni paigutust"
msgid "Enter a password: "
msgstr "Sisestage parool: "
msgid "Enter a encryption password for {}"
msgstr "Sisestage {}'le krüpteerimis parool"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "Sisestage ketta krüpteerimise parool (krüpteerimise puudumisel jätke see tühjaks): "
msgid "Create a required super-user with sudo privileges: "
msgstr "Looge nõutav sudo õigustega superkasutaja: "
msgid "Enter root password (leave blank to disable root): "
msgstr "Sisestage juur parool (jätke tühjaks, et keelata root): "
msgid "Password for user \"{}\": "
msgstr "Kasutaja \"{}\" parool: "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "Täiendavate pakettide olemasolu kontrollimine (see võib võtta paar sekundit)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "Kas soovite kasutada automaatset ajasünkroniseerimist (NTP) vaikimisi ajaserveritega?\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 toimimiseks võib olla vaja riistvara aega ja muid konfiguratsioonijärgseid samme.\n"
"Lisateavet leiate Archi wikist"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "Sisestage kasutajanimi, et luua lisakasutaja (jätke tühjaks, et vahele jätta): "
msgid "Use ESC to skip\n"
msgstr "Kasutage ESC'i et vahele jätta\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
" Valige loetelust objekt ja valige selle täitmiseks üks olemasolevatest toimingutest"
msgid "Cancel"
msgstr "Tühista"
msgid "Confirm and exit"
msgstr "Kinnita ja lahku"
msgid "Add"
msgstr "Lisa"
msgid "Copy"
msgstr "Kopeeri"
msgid "Edit"
msgstr "Muuda"
msgid "Delete"
msgstr "Kustuta"
msgid "Select an action for '{}'"
msgstr "Valige tegevus '{}' jaoks"
msgid "Copy to new key:"
msgstr "Kopeeri uude võtmesse:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "Tundmatu nic-tüüp: {}. Võimalikud väärtused on {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"See on teie valitud konfiguratsioon:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman on juba käivitatud ja ootab maksimaalselt 10 minutit, kuni see lõpeb."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "Eelnev pacmani lukk ei ole kunagi väljunud. Enne archinstall'i kasutamist puhastage olemasolevad pacmani sessioonid."
msgid "Choose which optional additional repositories to enable"
msgstr "Valige, milliseid valikulisi lisa repositooriumeid soovite lubada"
msgid "Add a user"
msgstr "Lisa kasutaja"
msgid "Change password"
msgstr "Muuda parool"
msgid "Promote/Demote user"
msgstr "Edenda/alanda kasutajat"
msgid "Delete User"
msgstr "Kustuta kasutaja"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"Uue kasutaja määramine\n"
msgid "User Name : "
msgstr "Kasutajanimi : "
msgid "Should {} be a superuser (sudoer)?"
msgstr "Kas {} peaks olema superkasutaja (sudoer)?"
msgid "Define users with sudo privilege: "
msgstr "Määrake sudo privileegiga kasutajad: "
msgid "No network configuration"
msgstr "Puudub võrgu konfiguratsioon"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Määrake soovitud alamköited btrfs-i partitsioonile"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"Valige, millisele partitsioonile alamkogumid määrata"
msgid "Manage btrfs subvolumes for current partition"
msgstr "Hallake praeguse partitsiooni btrfs-i alamköiteid"
msgid "No configuration"
msgstr "Puudub konfiguratsioon"
msgid "Save user configuration"
msgstr "Salvesta kasutaja konfiguratsioon"
msgid "Save user credentials"
msgstr "Salvesta kasutaja volitused"
msgid "Save disk layout"
msgstr "Salvesta ketta paigutus"
msgid "Save all"
msgstr "Salvesta kõik"
msgid "Choose which configuration to save"
msgstr "Valige milline konfiguratsioon salvestada"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "Sisestage salvestatava(te) konfiguratsiooni(de) kataloog: "
msgid "Not a valid directory: {}"
msgstr "Ei ole sobiv kataloog: {}"
msgid "The password you are using seems to be weak,"
msgstr "Teie kasutatav salasõna näib olevat nõrk,"
msgid "are you sure you want to use it?"
msgstr "oled sa kindel et soovid seda kasutada?"
msgid "Optional repositories"
msgstr "Valikulised repositooriumid"
msgid "Save configuration"
msgstr "Salvesta konfiguratsioon"
msgid "Missing configurations:\n"
msgstr "Puuduvad konfiguratsioonid:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "Tuleb määrata kas juur-parool või vähemalt 1 superkasutaja"
msgid "Manage superuser accounts: "
msgstr "Hallake superkasutaja kontosi "
msgid "Manage ordinary user accounts: "
msgstr "Hallake tavalisi kasutajaid: "
msgid " Subvolume :{:16}"
msgstr " Alamköide :{:16}"
msgid " mounted at {:16}"
msgstr " paigaldatud {:16}"
msgid " with option {}"
msgstr " koos valikuga {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
" Täida uue alamhulga soovitud väärtused \n"
msgid "Subvolume name "
msgstr "Alamhulga nimi "
msgid "Subvolume mountpoint"
msgstr "Alamhulga kinnituspunkt"
msgid "Subvolume options"
msgstr "Alamhulga valikud"
msgid "Save"
msgstr "Salvesta"
msgid "Subvolume name :"
msgstr "Alamhulga nimi:"
msgid "Select a mount point :"
msgstr "Valige kinnitus punkt :"
msgid "Select the desired subvolume options "
msgstr "Valige soovitud alamhulga valikud "
msgid "Define users with sudo privilege, by username: "
msgstr "Määrake sudo õigustega kasutajad kasutajanime järgi: "
#, python-brace-format
msgid "[!] A log file has been created here: {}"
msgstr "[!] Siin on loodud logifail: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "Kas soovite kasutada BTRFS-i alamkogusid vaikimisi struktuuriga?"
msgid "Would you like to use BTRFS compression?"
msgstr "Kas soovite kasutada BTRFS-i tihendamist?"
msgid "Would you like to create a separate partition for /home?"
msgstr "Kas soovite luua eraldi partitsiooni /home jaoks?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "Valitud ketastel ei ole automaatseks soovituseks vajalikku minimaalset mahtu\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "Minimaalne mahutavus /home partitsioonile: {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Arch Linuxi partitsiooni minimaalne mahutavus: {}GB"
msgid "Continue"
msgstr "Jätka"
msgid "yes"
msgstr "jah"
msgid "no"
msgstr "ei"
msgid "set: {}"
msgstr "seadista: {}"
msgid "Manual configuration setting must be a list"
msgstr "Käsitsi konfiguratsiooniseade peab olema loend"
msgid "No iface specified for manual configuration"
msgstr "Käsitsi seadistamiseks pole iface'i määratud"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "Manuaalne nici konfigureerimine ilma automaatse DHCPta nõuab IP-aadressi"
msgid "Add interface"
msgstr "Lisa liides"
msgid "Edit interface"
msgstr "Muuda liidest"
msgid "Delete interface"
msgstr "Kustutage liides"
msgid "Select interface to add"
msgstr "Valige millist liidest lisada"
msgid "Manual configuration"
msgstr "Manuaalne konfiguratsioon"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "Märgistada/mittemärgistada partitsiooni kompressiooniks (ainult btrfs)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "Teie kasutatav salasõna tundub olevat nõrk, kas olete kindel, et soovite seda kasutada?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "Pakub valikut töölauakeskkondi ja plaadistatavaid aknahaldureid, nt gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "Valige soovitud töölauakeskkonda"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "Väga lihtne paigaldus, mis võimaldab teil Arch Linuxi kohandada vastavalt oma äranägemisele."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "Annab valiku erinevate serveripakettide paigaldamiseks ja aktiveerimiseks, nt httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "Valige, milliseid servereid paigaldada, kui ühtegi ei ole, siis tehakse minimaalne paigaldus"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "Installeerib minimaalse süsteemi ning xorgi ja graafikadraiverid."
msgid "Press Enter to continue."
msgstr "Jätkamiseks vajutage Enter."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "Kas soovite chrootida äsja loodud installatsiooni ja teostada installeerimisjärgset konfigureerimist?"
msgid "Are you sure you want to reset this setting?"
msgstr "Kas olete kindel, et soovite seda seadistust lähtestada?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "Valige üks või mitu kasutatavat kõvaketast ja konfigureerige\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "Olemasoleva seadistuse muutmine lähtestab ketta paigutuse!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "Kui lähtestate kõvaketta valiku, lähtestab see ka praeguse kettapaigutuse. Oled sa kindel?"
msgid "Save and exit"
msgstr "Salvesta ja lahku"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"sisaldab järjekorras olevaid partitsioone, see eemaldab need, oled sa kindel?"
msgid "No audio server"
msgstr "Puudub audio server"
msgid "(default)"
msgstr "(vaikimisi)"
msgid "Use ESC to skip"
msgstr "Kasutage ESC vahelejätmiseks"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"Kasuta CTRL+C praeguse valiku lähtestamiseks\n"
"\n"
msgid "Copy to: "
msgstr "Kopeeri: "
msgid "Edit: "
msgstr "Muuda: "
msgid "Key: "
msgstr "Võti: "
msgid "Edit {}: "
msgstr "Muuda {}: "
msgid "Add: "
msgstr "Lisa: "
msgid "Value: "
msgstr "Väärtus: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "Saad vahele jätta ketta valimise ja partitsioneerimise ning kasutada mis tahes draivi-komplekti, mis on paigaldatud /mnt (eksperimentaalne)."
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "Valige üks ketastest või jätke vahele ja kasutage vaikimisi /mnt"
msgid "Select which partitions to mark for formatting:"
msgstr "Valige, milliseid partitsioone soovite vormindamiseks märkida:"
msgid "Use HSM to unlock encrypted drive"
msgstr "Kasutage HSM-i krüpteeritud draivi avamiseks"
msgid "Device"
msgstr "Seade"
msgid "Size"
msgstr "Suurus"
msgid "Free space"
msgstr "Vaba mälu"
msgid "Bus-type"
msgstr "Bussi tüüp"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "Tuleb määrata kas root-sõna või vähemalt 1 kasutaja, kellel on sudo õigused"
msgid "Enter username (leave blank to skip): "
msgstr "Sisestage kasutajanimi (jätke tühjaks, et vahele jätta): "
msgid "The username you entered is invalid. Try again"
msgstr "Teie sisestatud kasutajanimi ei sobi. Proovige uuesti"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "Kas \"{}\" peaks olema superkasutaja (sudo)?"
msgid "Select which partitions to encrypt"
msgstr "Valige, milliseid partitsioone krüpteerida"
msgid "very weak"
msgstr "väga nõrk"
msgid "weak"
msgstr "nõrk"
msgid "moderate"
msgstr "keskmine"
msgid "strong"
msgstr "tugev"
msgid "Add subvolume"
msgstr "Lisage alamhulk"
msgid "Edit subvolume"
msgstr "Osahulga redigeerimine"
msgid "Delete subvolume"
msgstr "Kustuta osahulk"
msgid "Configured {} interfaces"
msgstr "Konfigureeritud {} liidesed"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "See valik võimaldab installimise ajal valida paralleelsete allalaadimiste arvu"
#, fuzzy
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"Sisestage lubatavate paralleelsete allalaadimiste arv.\n"
" (Sisestage väärtus vahemikus 1 kuni {max_downloads})\n"
"note:"
#, fuzzy
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - Minimaalne väärtus : 1 ( Võimaldab 1 paralleelset allalaadimist, võimaldab 2 allalaadimist korraga )"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - Minimaalne väärtus : 1 ( Võimaldab 1 paralleelset allalaadimist, võimaldab 2 allalaadimist korraga )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - Keela/Vaikimisi : 0 ( keelab paralleelse allalaadimise, võimaldab ainult 1 allalaadimist korraga )"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "Vale sisestus! Proovige uuesti kehtiva sisendiga [1 {max_downloads} või 0 keelamiseks]."
msgid "Parallel Downloads"
msgstr "Paralleelsed allalaadimised"
msgid "ESC to skip"
msgstr "ESC vahelejätmiseks"
msgid "CTRL+C to reset"
msgstr "CTRL+C lähtestamiseks"
msgid "TAB to select"
msgstr "TAB valimiseks"
msgid "[Default value: 0] > "
msgstr "[Vaikimisi väärtus: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "Selleks, et seda tõlget kasutada, paigaldage käsitsi fondi, mis toetab seda keelt."
msgid "The font should be stored as {}"
msgstr "Font tuleks salvestada kujul {}"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Archinstall vajab käivitamiseks juurkasutaja õigusi. Vaata --help."
msgid "Select an execution mode"
msgstr "Valige täitmisrežiim"
#, python-brace-format
msgid "Unable to fetch profile from specified url: {}"
msgstr "Ei õnnestu profiili hankida määratud url'ist: {}"
#, python-brace-format
msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}"
msgstr "Profiilidel peab olema unikaalne nimi, kuid leiti topeltnimega profiilide määratlusi: {}"
msgid "Select one or more devices to use and configure"
msgstr "Valige üks või mitu seadet mida kasutada ja konfigureerida"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "Kui lähtestate seadme valiku, siis lähtestate sellega ka praeguse draivi paigutuse. Kas olete kindel?"
msgid "Existing Partitions"
msgstr "Olemasolevad Jaotused"
msgid "Select a partitioning option"
msgstr "Valige jaotuste valik"
msgid "Enter the root directory of the mounted devices: "
msgstr "Sisestage paigaldatud seadmete juurkataloog: "
#, python-brace-format
msgid "Minimum capacity for /home partition: {}GiB\n"
msgstr "Minimaalne mahutavus /home partitsioonile: {}GiB\n"
#, python-brace-format
msgid "Minimum capacity for Arch Linux partition: {}GiB"
msgstr "Arch Linuxi partitsiooni minimaalne mahutavus: {}GiB"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "See on nimekiri eelprogrammeeritud profiilidest_bck, need võivad lihtsustada selliste asjade nagu töölauakeskkondade paigaldamist"
msgid "Current profile selection"
msgstr "Praegune profiilivalik"
msgid "Remove all newly added partitions"
msgstr "Eemaldage kõik äsja lisatud partitsioonid"
msgid "Assign mountpoint"
msgstr "Määra paigaldamis punkt"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "Märgistada/mittemärgistada vormindamiseks (kustutab andmed)"
msgid "Mark/Unmark as bootable"
msgstr "Märgistada/mittemärgistada käivitatavak"
msgid "Change filesystem"
msgstr "Failisüsteemi muutmine"
msgid "Mark/Unmark as compressed"
msgstr "Märgistada/mittemärgistada kui tihendatud"
msgid "Set subvolumes"
msgstr "Alamköite määramine"
msgid "Delete partition"
msgstr "Kustuta partitsioon"
msgid "Partition"
msgstr "Partitsioon"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "See partitsioon on praegu krüpteeritud, selle vormindamiseks tuleb määrata failisüsteem"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "Partitsiooni kinnituspunktid on suhtelised installeerimise sees, näiteks boot oleks /boot."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "Kui paigalduspunkt /boot on määratud, siis märgitakse partitsioon ka käivitatavaks."
msgid "Mountpoint: "
msgstr "Paigalduspunkt: "
msgid "Current free sectors on device {}:"
msgstr "Praegused vabad sektorid seadmes {}:"
msgid "Total sectors: {}"
msgstr "Sektorid kokku: {}"
msgid "Enter the start sector (default: {}): "
msgstr "Sisestage algussektor (vaikimisi: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
msgstr "Sisestage partitsiooni lõppsektor (protsent või plokkide number, vaikimisi: {}): "
msgid "This will remove all newly added partitions, continue?"
msgstr "See eemaldab kõik äsja lisatud partitsioonid, jätka?"
#, python-brace-format
msgid "Partition management: {}"
msgstr "Partitsiooni haldamine:{}"
#, python-brace-format
msgid "Total length: {}"
msgstr "Kogupikkus: {}"
msgid "Encryption type"
msgstr "Krüpteerimise tüüp"
msgid "Iteration time"
msgstr ""
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr ""
msgid "Higher values increase security but slow down boot time"
msgstr ""
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr ""
msgid "Iteration time cannot be empty"
msgstr ""
msgid "Iteration time must be at least 100ms"
msgstr ""
msgid "Iteration time must be at most 120000ms"
msgstr ""
msgid "Please enter a valid number"
msgstr ""
msgid "Partitions"
msgstr "Partitsioonid"
msgid "No HSM devices available"
msgstr "Puuduvad HSM seadmed"
msgid "Partitions to be encrypted"
msgstr "Krüpteeritavad partitsioonid"
msgid "Select disk encryption option"
msgstr "Valige ketta krüpteerimise valik"
msgid "Select a FIDO2 device to use for HSM"
msgstr "Valige HSM-i jaoks kasutatav FIDO2-seade"
msgid "Use a best-effort default partition layout"
msgstr "Kasutage parimat võimalikku vaikimisi partitsiooni paigutust"
msgid "Manual Partitioning"
msgstr "Käsitsi partitsioneerimine"
msgid "Pre-mounted configuration"
msgstr "Eelnevalt paigaldatud konfiguratsioon"
msgid "Unknown"
msgstr "Tundmatu"
msgid "Partition encryption"
msgstr "Partitsiooni krüpteerimine"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! Vormindamine {} "
msgid "← Back"
msgstr "Tagasi"
msgid "Disk encryption"
msgstr "Ketta krüpteerimine"
msgid "Configuration"
msgstr "Konfiguratsioon"
msgid "Password"
msgstr "Parool"
msgid "All settings will be reset, are you sure?"
msgstr "Kõik seaded lähtestatakse, kas sa oled kindel?"
msgid "Back"
msgstr "Tagasi"
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr "Palun valige millist tervitajat installida valitud profiilidele"
#, python-brace-format
msgid "Environment type: {}"
msgstr "Keskkonna tüüp: {}"
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 "Sway ei toeta Nvidia enda draiverit. Tõenäoliselt tekib teil probleeme, kas teile sobib see?"
msgid "Installed packages"
msgstr "Installeeritud paketid"
msgid "Add profile"
msgstr "Lisa profiil"
msgid "Edit profile"
msgstr "Muuda profiili"
msgid "Delete profile"
msgstr "Kustuta profiil"
msgid "Profile name: "
msgstr "Profiili nimi: "
msgid "The profile name you entered is already in use. Try again"
msgstr "Sisestatud profiili nimi on juba kasutuses. Proovi uuesti"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "Selle profiiliga paigaldatavad paketid (tühikuga eraldatud, jäta tühjaks, et jätta vahele): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "Selle profiiliga lubatavad teenused (tühikuga eraldatud, jäta tühjaks, kui soovid vahele jätta): "
msgid "Should this profile be enabled for installation?"
msgstr "Kas see profiil peaks olema paigaldamiseks lubatud?"
msgid "Create your own"
msgstr "Loo oma"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"Vali graafikadraiver või jäta tühjaks, et paigaldada kõik avatud lähtekoodiga draiverid"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway vajab juurdepääsu teie seatile (riistvaraseadmete kogum, st klaviatuur, hiir jne."
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Valige valik, et anda Sway'le juurdepääs teie riistvarale"
msgid "Graphics driver"
msgstr "Graafika draiver"
msgid "Greeter"
msgstr "Tervitaja"
msgid "Please chose which greeter to install"
msgstr "Palun valige millist tervitajat installida"
msgid "This is a list of pre-programmed default_profiles"
msgstr "See on eelnevalt programmeeritud vaikimisi_profiilide nimekiri"
msgid "Disk configuration"
msgstr "Ketta konfiguratsioon"
msgid "Profiles"
msgstr "Profiilid"
msgid "Finding possible directories to save configuration files ..."
msgstr "Võimalike kataloogide leidmine konfiguratsioonifailide salvestamiseks ..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "Konfigureerimisfailide salvestamise kataloogi (või kataloogide) valimine"
msgid "Add a custom mirror"
msgstr "Lisa kohandatud peegel"
msgid "Change custom mirror"
msgstr "Muuda kohandatud peeglit"
msgid "Delete custom mirror"
msgstr "Kustuta kohandadtud peeglit"
msgid "Enter name (leave blank to skip): "
msgstr "Sisesta nimi (jätke tühjaks, et vahele jätta): "
msgid "Enter url (leave blank to skip): "
msgstr "Sisesta url (jätke tühjaks, et vahele jätta): "
msgid "Select signature check option"
msgstr "Valige allkirja kontrollimise võimalus"
msgid "Select signature option"
msgstr "Valige allkirja valik"
msgid "Custom mirrors"
msgstr "Kohandatud peegel"
msgid "Defined"
msgstr "Defineeritud"
msgid "Save user configuration (including disk layout)"
msgstr "Salvesta kasutaja konfiguratsioon (kaasa arvatud plaadi paigutus)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"Sisestage salvestatava(te) konfiguratsiooni(de) kataloog (vahekaartide täitmine lubatud)\n"
"Salvesta kataloog: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"Kas soovite salvestada {} konfiguratsioonifaili(d) järgmisesse asukohta?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "{} konfiguratsioonifailide salvestamine {}"
msgid "Mirrors"
msgstr "Peeglid"
msgid "Mirror regions"
msgstr "Peegel regioonid"
#, fuzzy
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - Maksimaalne väärtus : {max_downloads} ( Võimaldab {max_downloads} paralleelset allalaadimist, lubab {max_downloads+1} allalaadimist korraga )"
#, fuzzy
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "Vale sisestus! Proovige uuesti kehtiva sisendiga [1 {max_downloads} või 0 keelamiseks]."
msgid "Locales"
msgstr ""
#, fuzzy
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "Kasutage NetworkManagerit (vajalik interneti graafiliseks konfigureerimiseks GNOME-s ja KDE-s)."
#, fuzzy
msgid "Total: {} / {}"
msgstr "Kogupikkus: {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr ""
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr ""
#, fuzzy
msgid "Enter start (default: sector {}): "
msgstr "Sisestage algussektor (vaikimisi: {}): "
#, fuzzy
msgid "Enter end (default: {}): "
msgstr "Sisestage algussektor (vaikimisi: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr ""
msgid "Path"
msgstr ""
msgid "Manufacturer"
msgstr ""
msgid "Product"
msgstr ""
#, fuzzy, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "Manuaalne konfiguratsioon"
msgid "Type"
msgstr ""
#, fuzzy
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "See valik võimaldab installimise ajal valida paralleelsete allalaadimiste arvu"
#, fuzzy
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"Sisestage lubatavate paralleelsete allalaadimiste arv.\n"
" (Sisestage väärtus vahemikus 1 kuni {max_downloads})\n"
"note:"
#, fuzzy, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr " - Minimaalne väärtus : 1 ( Võimaldab 1 paralleelset allalaadimist, võimaldab 2 allalaadimist korraga )"
#, fuzzy
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - Keela/Vaikimisi : 0 ( keelab paralleelse allalaadimise, võimaldab ainult 1 allalaadimist korraga )"
#, fuzzy
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "Vale sisestus! Proovige uuesti kehtiva sisendiga [1 {max_downloads} või 0 keelamiseks]."
#, fuzzy
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway vajab juurdepääsu teie seatile (riistvaraseadmete kogum, st klaviatuur, hiir jne."
#, fuzzy
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Valige valik, et anda Sway'le juurdepääs teie riistvarale"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr ""
#, fuzzy
msgid "Would you like to use unified kernel images?"
msgstr "Kas soovite zramis kasutada swapi?"
msgid "Unified kernel images"
msgstr ""
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr ""
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr ""
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr ""
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr ""
#, fuzzy
msgid "Selected profiles: "
msgstr "Kustuta profiil"
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr ""
#, fuzzy
msgid "Mark/Unmark as nodatacow"
msgstr "Märgistada/mittemärgistada käivitatavak"
#, fuzzy
msgid "Would you like to use compression or disable CoW?"
msgstr "Kas soovite kasutada BTRFS-i tihendamist?"
msgid "Use compression"
msgstr ""
msgid "Disable Copy-on-Write"
msgstr ""
#, fuzzy
msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway"
msgstr "Pakub valikut töölauakeskkondi ja plaadistatavaid aknahaldureid, nt gnome, kde, sway"
#, fuzzy, python-brace-format
msgid "Configuration type: {}"
msgstr "Konfiguratsioon"
#, fuzzy
msgid "LVM configuration type"
msgstr "Puudub konfiguratsioon"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr ""
#, fuzzy
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "Kasutage NetworkManagerit (vajalik interneti graafiliseks konfigureerimiseks GNOME-s ja KDE-s)."
#, fuzzy
msgid "Select a LVM option"
msgstr "Vali ajatsoon"
#, fuzzy
msgid "Partitioning"
msgstr "Partitsioon"
msgid "Logical Volume Management (LVM)"
msgstr ""
msgid "Physical volumes"
msgstr ""
msgid "Volumes"
msgstr ""
#, fuzzy
msgid "LVM volumes"
msgstr "Alamköite määramine"
#, fuzzy
msgid "LVM volumes to be encrypted"
msgstr "Krüpteeritavad partitsioonid"
#, fuzzy
msgid "Select which LVM volumes to encrypt"
msgstr "Valige, milliseid partitsioone krüpteerida"
#, fuzzy
msgid "Default layout"
msgstr "Ketta paigutus"
#, fuzzy
msgid "No Encryption"
msgstr "Krüpteerimise tüüp"
msgid "LUKS"
msgstr ""
msgid "LVM on LUKS"
msgstr ""
msgid "LUKS on LVM"
msgstr ""
#, fuzzy
msgid "Yes"
msgstr "jah"
msgid "No"
msgstr ""
#, fuzzy
msgid "Archinstall help"
msgstr "Archinstalli keel"
#, fuzzy
msgid " (default)"
msgstr "(vaikimisi)"
msgid "Press Ctrl+h for help"
msgstr ""
#, fuzzy
msgid "Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Valige valik, et anda Sway'le juurdepääs teie riistvarale"
msgid "Seat access"
msgstr ""
#, fuzzy
msgid "Mountpoint"
msgstr "Paigalduspunkt: "
msgid "HSM"
msgstr ""
#, fuzzy
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "Sisestage ketta krüpteerimise parool (krüpteerimise puudumisel jätke see tühjaks): "
#, fuzzy
msgid "Disk encryption password"
msgstr "Krüpteerimise parool"
#, fuzzy
msgid "Partition - New"
msgstr "Partitsioon"
#, fuzzy
msgid "Filesystem"
msgstr "Failisüsteemi muutmine"
msgid "Invalid size"
msgstr ""
#, fuzzy
msgid "Start (default: sector {}): "
msgstr "Sisestage algussektor (vaikimisi: {}): "
#, fuzzy
msgid "End (default: {}): "
msgstr "Sisestage algussektor (vaikimisi: {}): "
#, fuzzy
msgid "Subvolume name"
msgstr "Alamhulga nimi "
#, fuzzy
msgid "Disk configuration type"
msgstr "Ketta konfiguratsioon"
msgid "Root mount directory"
msgstr ""
#, fuzzy
msgid "Select language"
msgstr "Kohalik keel"
#, fuzzy
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "Kirjutage paigaldatavad lisapaketid (tühikutega eraldatuna, jätke tühjaks, kui soovite vahele jätta): "
msgid "Invalid download number"
msgstr ""
msgid "Number downloads"
msgstr ""
#, fuzzy
msgid "The username you entered is invalid"
msgstr "Teie sisestatud kasutajanimi ei sobi. Proovige uuesti"
#, fuzzy
msgid "Username"
msgstr "Kasutajanimi : "
#, fuzzy, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "Kas \"{}\" peaks olema superkasutaja (sudo)?"
#, fuzzy
msgid "Interfaces"
msgstr "Lisa liides"
msgid "You need to enter a valid IP in IP-config mode"
msgstr ""
msgid "Modes"
msgstr ""
msgid "IP address"
msgstr ""
#, fuzzy
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "Sisestage oma võrguvärava (ruuteri) IP-aadress või jätke tühjaks, kui see puudub: "
msgid "Gateway address"
msgstr ""
#, fuzzy
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "Sisestage oma DNS-serverid (tühikuga eraldatud, jätke tühjaks, kui neid ei ole): "
#, fuzzy
msgid "DNS servers"
msgstr "Puudub audio server"
#, fuzzy
msgid "Configure interfaces"
msgstr "Konfigureeritud {} liidesed"
#, fuzzy
msgid "Kernel"
msgstr "Kernelid"
msgid "UEFI is not detected and some options are disabled"
msgstr ""
msgid "Info"
msgstr ""
#, fuzzy
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "Sway ei toeta Nvidia enda draiverit. Tõenäoliselt tekib teil probleeme, kas teile sobib see?"
#, fuzzy
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "Sway ei toeta Nvidia enda draiverit. Tõenäoliselt tekib teil probleeme, kas teile sobib see?"
#, fuzzy
msgid "Main profile"
msgstr "Muuda profiili"
#, fuzzy
msgid "Confirm password"
msgstr "Muuda parool"
msgid "The confirmation password did not match, please try again"
msgstr ""
#, fuzzy
msgid "Not a valid directory"
msgstr "Ei ole sobiv kataloog: {}"
#, fuzzy
msgid "Would you like to continue?"
msgstr "Kas soovite kasutada BTRFS-i tihendamist?"
msgid "Directory"
msgstr ""
#, fuzzy
msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)"
msgstr ""
"Sisestage salvestatava(te) konfiguratsiooni(de) kataloog (vahekaartide täitmine lubatud)\n"
"Salvesta kataloog: "
#, fuzzy, python-brace-format
msgid "Do you want to save the configuration file(s) to {}?"
msgstr ""
"Kas soovite salvestada {} konfiguratsioonifaili(d) järgmisesse asukohta?\n"
"\n"
"{}"
msgid "Enabled"
msgstr ""
msgid "Disabled"
msgstr ""
#, fuzzy
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Esitage see probleem (ja fail) aadressil https://github.com/archlinux/archinstall/issues"
#, fuzzy
msgid "Mirror name"
msgstr "Peegelregioon"
msgid "Url"
msgstr ""
#, fuzzy
msgid "Select signature check"
msgstr "Valige allkirja kontrollimise võimalus"
#, fuzzy
msgid "Select execution mode"
msgstr "Valige täitmisrežiim"
msgid "Press ? for help"
msgstr ""
#, fuzzy
msgid "Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Valige valik, et anda Sway'le juurdepääs teie riistvarale"
#, fuzzy
msgid "Additional repositories"
msgstr "Valikulised repositooriumid"
msgid "NTP"
msgstr ""
msgid "Swap on zram"
msgstr ""
msgid "Name"
msgstr ""
#, fuzzy
msgid "Signature check"
msgstr "Valige allkirja kontrollimise võimalus"
#, fuzzy, python-brace-format
msgid "Selected free space segment on device {}:"
msgstr "Praegused vabad sektorid seadmes {}:"
#, fuzzy, python-brace-format
msgid "Size: {} / {}"
msgstr "Kogupikkus: {}"
#, fuzzy, python-brace-format
msgid "Size (default: {}): "
msgstr "Sisestage algussektor (vaikimisi: {}): "
#, fuzzy
msgid "HSM device"
msgstr "Seade"
msgid "Some packages could not be found in the repository"
msgstr ""
#, fuzzy
msgid "User"
msgstr "Kasutajanimi : "
msgid "The specified configuration will be applied"
msgstr ""
msgid "Wipe"
msgstr ""
#, fuzzy
msgid "Mark/Unmark as XBOOTLDR"
msgstr "Märgistada/mittemärgistada käivitatavak"
#, fuzzy
msgid "Loading packages..."
msgstr "Täiendavad paketid"
msgid "Select any packages from the below list that should be installed additionally"
msgstr ""
#, fuzzy
msgid "Add a custom repository"
msgstr "Lisa kohandatud peegel"
#, fuzzy
msgid "Change custom repository"
msgstr "Muuda kohandatud peeglit"
#, fuzzy
msgid "Delete custom repository"
msgstr "Kustuta kohandadtud peeglit"
#, fuzzy
msgid "Repository name"
msgstr "Peegelregioon"
#, fuzzy
msgid "Add a custom server"
msgstr "Lisa kohandatud peegel"
#, fuzzy
msgid "Change custom server"
msgstr "Muuda kohandatud peeglit"
#, fuzzy
msgid "Delete custom server"
msgstr "Kustuta kohandadtud peeglit"
msgid "Server url"
msgstr ""
#, fuzzy
msgid "Select regions"
msgstr "Valige allkirja valik"
#, fuzzy
msgid "Add custom servers"
msgstr "Lisa kohandatud peegel"
#, fuzzy
msgid "Add custom repository"
msgstr "Lisa kohandatud peegel"
#, fuzzy
msgid "Loading mirror regions..."
msgstr "Peegel regioonid"
#, fuzzy
msgid "Mirrors and repositories"
msgstr "Valikulised repositooriumid"
#, fuzzy
msgid "Selected mirror regions"
msgstr "Peegel regioonid"
#, fuzzy
msgid "Custom servers"
msgstr "Kohandatud peegel"
#, fuzzy
msgid "Custom repositories"
msgstr "Valikulised repositooriumid"
msgid "Only ASCII characters are supported"
msgstr ""
msgid "Show help"
msgstr ""
msgid "Exit help"
msgstr ""
msgid "Preview scroll up"
msgstr ""
msgid "Preview scroll down"
msgstr ""
msgid "Move up"
msgstr ""
msgid "Move down"
msgstr ""
msgid "Move right"
msgstr ""
msgid "Move left"
msgstr ""
msgid "Jump to entry"
msgstr ""
msgid "Skip selection (if available)"
msgstr ""
msgid "Reset selection (if available)"
msgstr ""
#, fuzzy
msgid "Select on single select"
msgstr "Valige allkirja kontrollimise võimalus"
#, fuzzy
msgid "Select on multi select"
msgstr "Vali ajatsoon"
msgid "Reset"
msgstr ""
#, fuzzy
msgid "Skip selection menu"
msgstr "Valige täitmisrežiim"
msgid "Start search mode"
msgstr ""
msgid "Exit search mode"
msgstr ""
#, fuzzy
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway vajab juurdepääsu teie seatile (riistvaraseadmete kogum, st klaviatuur, hiir jne."
#, fuzzy
msgid "Choose an option to give labwc access to your hardware"
msgstr ""
"\n"
"\n"
"Valige valik, et anda Sway'le juurdepääs teie riistvarale"
#, fuzzy
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway vajab juurdepääsu teie seatile (riistvaraseadmete kogum, st klaviatuur, hiir jne."
#, fuzzy
msgid "Choose an option to give niri access to your hardware"
msgstr ""
"\n"
"\n"
"Valige valik, et anda Sway'le juurdepääs teie riistvarale"
#, fuzzy
msgid "Mark/Unmark as ESP"
msgstr "Märgistada/mittemärgistada käivitatavak"
msgid "Package group:"
msgstr ""
#, fuzzy
msgid "Exit archinstall"
msgstr "Archinstalli keel"
#, fuzzy
msgid "Reboot system"
msgstr "Failisüsteemi muutmine"
#, fuzzy
msgid "chroot into installation for post-installation configurations"
msgstr "Kas soovite chrootida äsja loodud installatsiooni ja teostada installeerimisjärgset konfigureerimist?"
msgid "Installation completed"
msgstr ""
#, fuzzy
msgid "What would you like to do next?"
msgstr "Kas soovite kasutada BTRFS-i tihendamist?"
#, fuzzy, python-brace-format
msgid "Select which mode to configure for \"{}\""
msgstr "Valige, millist režiimi soovite konfigureerida \"{}\" või jätke vahele, kasutada vaikimisi režiimi \"{}\""
#, fuzzy
msgid "Incorrect credentials file decryption password"
msgstr "Krüpteerimise parool"
#, fuzzy
msgid "Incorrect password"
msgstr "Juur parool"
#, fuzzy
msgid "Credentials file decryption password"
msgstr "Krüpteerimise parool"
#, fuzzy
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr ""
"Kas soovite salvestada {} konfiguratsioonifaili(d) järgmisesse asukohta?\n"
"\n"
"{}"
#, fuzzy
msgid "Credentials file encryption password"
msgstr "Krüpteerimise parool"
#, fuzzy, python-brace-format
msgid "Repositories: {}"
msgstr "Peegelregioon"
#, fuzzy
msgid "New version available"
msgstr "Puuduvad HSM seadmed"
#, fuzzy
msgid "Passwordless login"
msgstr "Parool"
msgid "Second factor login"
msgstr ""
msgid "Bluetooth"
msgstr ""
#, fuzzy
msgid "Would you like to configure Bluetooth?"
msgstr "Kas soovite kasutada BTRFS-i tihendamist?"
msgid "Print service"
msgstr ""
#, fuzzy
msgid "Would you like to configure the print service?"
msgstr "Kas soovite kasutada BTRFS-i tihendamist?"
#, fuzzy
msgid "Power management"
msgstr "Partitsiooni haldamine:{}"
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 "Keskkonna tüüp: {}"
msgid "U2F login setup"
msgstr ""
msgid "No U2F devices found"
msgstr ""
msgid "U2F Login Method"
msgstr ""
#, fuzzy
msgid "Enable passwordless sudo?"
msgstr "Sisestage parool: "
#, fuzzy, python-brace-format
msgid "Setting up U2F device for user: {}"
msgstr "Valige HSM-i jaoks kasutatav FIDO2-seade"
msgid "You may need to enter the PIN and then touch your U2F device to register it"
msgstr ""
msgid "Starting device modifications in "
msgstr ""
#, fuzzy
msgid "No network connection found"
msgstr "Puudub võrgu konfiguratsioon"
#, fuzzy
msgid "Would you like to connect to a Wifi?"
msgstr "Kas soovite kasutada BTRFS-i tihendamist?"
#, fuzzy
msgid "No wifi interface found"
msgstr "Konfigureeritud {} liidesed"
#, fuzzy
msgid "Select wifi network to connect to"
msgstr "Valige üks võrguliides konfigureerimiseks"
msgid "Scanning wifi networks..."
msgstr ""
#, fuzzy
msgid "No wifi networks found"
msgstr "Puudub võrgu konfiguratsioon"
msgid "Failed setting up wifi"
msgstr ""
#, fuzzy
msgid "Enter wifi password"
msgstr "Sisestage parool: "
msgid "Ok"
msgstr ""
msgid "Removable"
msgstr ""
msgid "Install to removable location"
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr ""
msgid "Will install to standard location with NVRAM entry"
msgstr ""
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr ""
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr ""
msgid "USB drives or other portable external media."
msgstr ""
msgid "Systems where you want the disk to be bootable on any computer."
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr ""
msgid "Will install to custom location with NVRAM entry"
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr ""
msgid "most Apple Macs, many laptops..."
msgstr ""
#, fuzzy
msgid "Language"
msgstr "Kohalik keel"
msgid "Compression algorithm"
msgstr ""
#, fuzzy
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Paigaldatakse ainult sellised paketid nagu base, base-devel, linux, linux-firmware, efibootmgr ja valikulised profiilipaketid."
#, fuzzy
msgid "Select zram compression algorithm:"
msgstr "Valige kinnitus punkt :"
msgid "Use Network Manager (default backend)"
msgstr ""
msgid "Use Network Manager (iwd backend)"
msgstr ""
================================================
FILE: archinstall/locales/fi/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: Aleksi Puhakainen \n"
"Language-Team: \n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.3\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] Lokitiedosto luotiin tähän: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Lähetä tämä ongelma (ja tiedosto) osoitteeseen https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "Haluatko todella poistua?"
msgid "And one more time for verification: "
msgstr "Ja vielä kerran vahvistukseksi: "
msgid "Would you like to use swap on zram?"
msgstr "Haluatko käyttää swap:ia zram:ssa?"
msgid "Desired hostname for the installation: "
msgstr "Valitse hostname asennukselle: "
msgid "Username for required superuser with sudo privileges: "
msgstr "Käyttäjänimi superkäyttäjälle, jolla on sudo-oikeudet: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "Muut asennettavat käyttäjät (jätä tyhjäksi, jos ei muita käyttäjiä): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "Pitäisikö tämän käyttäjän olla superkäyttäjä (sudoer)?"
msgid "Select a timezone"
msgstr "Valitse aikavyöhyke"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "Haluatko käyttää GRUB:ia lataimena systemd-bootin sijaan?"
msgid "Choose a bootloader"
msgstr "Valitse käynnistyslatain"
msgid "Choose an audio server"
msgstr "Valitse audiopalvelin"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Vain paketit, kuten base, base-devel, linux, linux-firmware, efibootmgr ja valinnaiset profiili-paketit, asennetaan."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr ""
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "Jos haluat selaimen, kuten firefox tai chromium, voit valita sen seuraavassa kohdassa."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "Kirjoita asennettavat lisäpaketit (välilyönnillä erotettuna, ohita vaihe jättämällä tyhjäksi): "
msgid "Copy ISO network configuration to installation"
msgstr "Kopioi ISO verkkoasetukset asennukseen"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "Käytä NetworkManager ohjelmaa (Internetin graafinen määritys GNOME ja KDE)"
msgid "Select one network interface to configure"
msgstr "Valitse yksi määritettävä verkkoliitäntä"
msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
msgstr "Valitse, mikä tila määritetään \"{}\", tai ohita ja käytä \"{}\" oletusta."
#, python-brace-format
msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): "
msgstr "Anna IP-osoite ja aliverkko {} (esim. 192.168.0.5/24): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "Anna yhdyskäytävän (reitittimen) IP-osoite tai jätä tyhjäksi: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "Anna DNS-osoitteet (välilyönti erottaa kaksi osoitetta toisistaan, tyhjä ei mitään): "
msgid "Select which filesystem your main partition should use"
msgstr "Valitse, mitä tiedostojärjestelmä pääosiolle"
msgid "Current partition layout"
msgstr "Tämänhetkinen osion asettelu"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"Valitse mitä haluat tehdä\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "Anna osiolle haluttu tiedostojärjestelmän tyyppi"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "Anna aloituspaikka (yksiköt: s, GB, %, etc. ; oletus: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "Anna lopetuspaikka (yksiköt: s, GB, %, etc. ; ex: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} sisältää jonossa olevat osiot, tämä poistaa ne, oletko varma?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"Valitse indeksin perusteella, mitkä osiot haluat poistaa"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"Valitse indeksin perusteella, mikä osio liitetään mihin"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * Osioiden liitoskohdat ovat suhteessa asennuksen sisäpuolelle, käynnistys olisi esimerkiksi /boot."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "Valitse, mihin osio asennetaan (jätä tyhjäksi, jos haluat poistaa liitoskohdan): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"Valitse, mikä osio merkitään alustusta varten"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"Valitse, mikä osio merkitään salattavaksi"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"Valitse, mikä osio merkitään käynnistyväksi"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"Valitse, mikä osio merkitään tiedostojärjestelmää varten"
msgid "Enter a desired filesystem type for the partition: "
msgstr "Anna osiolle haluttu tiedostojärjestelmän tyyppi: "
msgid "Archinstall language"
msgstr "Archinstall kieli"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "Pyyhi kaikki valitut asemat ja käytä parasta mahdollista oletusosion asettelua"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "Valitse, mitä tehdään kullekin yksittäiselle asemalle (ja osion käytölle)"
msgid "Select what you wish to do with the selected block devices"
msgstr "Valitse, mitä haluat tehdä valituilla lohkoilla"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "Tämä on lista valmiista profiileista, jotka saattavat helpottaa esimerkiksi työpöytäympäristön asentamista"
msgid "Select keyboard layout"
msgstr "Valitse näppäimistön asettelu"
msgid "Select one of the regions to download packages from"
msgstr "Valitse yksi alueista, joista paketit ladataan"
msgid "Select one or more hard drives to use and configure"
msgstr "Valitse yksi tai useampi kiintolevy käytettäväksi ja määritettäväksi"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "Saat parhaan yhteensopivuuden AMD:n kanssa käyttämällä joko avoimen lähdekoodin vaihtoehtoja tai AMD/ATI valmistajan vaihtoehtoja."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "Saat parhaan yhteensopivuuden Intelin kanssa käyttämällä joko avoimen lähdekoodin vaihtoehtoja tai Intel valmistajan vaihtoehtoja.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "Saat parhaan yhteensopivuuden Nvidian kanssa käyttämällä Nvidia valmistajan omaa ohjainta.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Valitse näytönohjaimen ohjain tai jätä tyhjäksi niin kaikki asennetaan avoimen lähdekoodin ohjaimilla"
msgid "All open-source (default)"
msgstr "Kaikki avoimet lähdekoodit (oletus)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "Valitse käytettävät kernelit tai jätä tyhjäksi oletuksena \"{}\""
msgid "Choose which locale language to use"
msgstr "Valitse käytettävä kieli"
msgid "Choose which locale encoding to use"
msgstr "Valitse käytettävä kielialueen koodaus"
msgid "Select one of the values shown below: "
msgstr "Valitse jokin alla olevista arvoista: "
msgid "Select one or more of the options below: "
msgstr "Valitse yksi tai useampi alla olevista: "
msgid "Adding partition...."
msgstr "Lisätään osiota...."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "Sinun on annettava kelvollinen fs-tyyppi jatkaaksesi. Katso kelvolliset fs-tyypit kohdasta \"man parted\"."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "Virhe: Profiilien luettelointi URL \"{}\" johti:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "Virhe: Tulosta \"{}\" ei voitu purkaa JSON-muodossa:"
msgid "Keyboard layout"
msgstr "Näppäimistö"
msgid "Mirror region"
msgstr "Pakettivarasto"
msgid "Locale language"
msgstr "Kieli"
msgid "Locale encoding"
msgstr "Kieli-koodaus"
msgid "Drive(s)"
msgstr "Levyasemat"
msgid "Disk layout"
msgstr "Levyn asettelu"
msgid "Encryption password"
msgstr "Salauksen salasana"
msgid "Swap"
msgstr "Swap"
msgid "Bootloader"
msgstr "Käynnistyksenlataaja"
msgid "Root password"
msgstr "Root salasana"
msgid "Superuser account"
msgstr "Superkäyttäjätili"
msgid "User account"
msgstr "Käyttäjätili"
msgid "Profile"
msgstr "Profiili"
msgid "Audio"
msgstr "Audio"
msgid "Kernels"
msgstr "Kernelit"
msgid "Additional packages"
msgstr "Lisäpaketit"
msgid "Network configuration"
msgstr "Verkkoasetukset"
msgid "Automatic time sync (NTP)"
msgstr "Autom. kellonajan synkronointi (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "Asenna ({} asetusta puuttuu)"
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 ""
"Päätit ohittaa kiintolevyn valinnan ja käyttää\n"
"mitä tahansa asema-asetusta {} (kokeellinen)\n"
"VAROITUS: Archinstall ei voi tarkista asennuksen sopivuutta\n"
"Haluatko jatkaa?"
msgid "Re-using partition instance: {}"
msgstr "Käytetään osiointi esimerkkiä: {}"
msgid "Create a new partition"
msgstr "Luo uusi osio"
msgid "Delete a partition"
msgstr "Poista osio"
msgid "Clear/Delete all partitions"
msgstr "Tyhjennä/poista kaikki osiot"
msgid "Assign mount-point for a partition"
msgstr "Määritä osion liitoskohta"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "Merkitse/poista osion alustaminen (pyyhkii tiedot)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "Merkitse/poista osio salataan merkintä"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "Merkitse/poista osion merkintä käynnistyväksi (automaattinen /boot)"
msgid "Set desired filesystem for a partition"
msgstr "Aseta osiolle haluttu tiedostojärjestelmä"
msgid "Abort"
msgstr "Keskeytä"
msgid "Hostname"
msgstr "Hostname \"kone-nimi\""
msgid "Not configured, unavailable unless setup manually"
msgstr "Ei määritetty, ei käytettävissä, ellei asennusta ole käsin määritetty"
msgid "Timezone"
msgstr "Aikavyöhyke"
msgid "Set/Modify the below options"
msgstr "Aseta/muokkaa alla olevia asetuksia"
msgid "Install"
msgstr "Asenna"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"Ohita painamalla ESC\n"
"\n"
msgid "Suggest partition layout"
msgstr "Ehdota osion asettelua"
msgid "Enter a password: "
msgstr "Anna salasana: "
msgid "Enter a encryption password for {}"
msgstr "Anna salauksen salasana {}"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "Anna levyn salauksen salasana (jätä tyhjäksi, jos et salaa): "
msgid "Create a required super-user with sudo privileges: "
msgstr "Luo vaadittu superkäyttäjä, jolla on sudo-oikeudet: "
msgid "Enter root password (leave blank to disable root): "
msgstr "Anna root-salasana (jätä tyhjäksi niin root poistetaan käytöstä): "
msgid "Password for user \"{}\": "
msgstr "Salasana käyttäjälle \"{}\": "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "Varmistetaan, että lisäpaketit ovat olemassa (saattaa kestää muutaman sekunnin)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "Haluatko käyttää automaattista ajan synkronointia oletus (NTP) aikapalvelinten kanssa?\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:n toiminta saattaa vaatia laitteistolle muita määrityksen jälkeisiä vaiheita.\n"
"Katso lisätietoja Arch-wiki"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "Luo uusi käyttäjä antamalla käyttäjänimi (jätä tyhjäksi ja ohita): "
msgid "Use ESC to skip\n"
msgstr "Ohita painamalla ESC\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
"Valitse suoritettava toiminto luettelosta"
msgid "Cancel"
msgstr "Peruuta"
msgid "Confirm and exit"
msgstr "Vahvista ja poistu"
msgid "Add"
msgstr "Lisää"
msgid "Copy"
msgstr "Kopioi"
msgid "Edit"
msgstr "Muokkaa"
msgid "Delete"
msgstr "Poista"
msgid "Select an action for '{}'"
msgstr "Valitse toiminta \"{}\""
msgid "Copy to new key:"
msgstr "Kopioi uuteen avaimeen:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "Tuntematon verkkokortin tyyppi: {}. Mahdolliset arvot ovat {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"Tämä on sinun valitsema kokoonpano:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman on jo käynnissä, odota enintään 10 minuuttia sen päättymistä."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "Aiempi pacman-lukko ei ole poistunut. Lopeta kaikki olemassa olevat pacman-istunnot ennen archinstall ohjelman käyttöä."
msgid "Choose which optional additional repositories to enable"
msgstr "Valitse, valinnaiset lisävarastot jotka otetaan käyttöön"
msgid "Add a user"
msgstr "Lisää käyttäjä"
msgid "Change password"
msgstr "Vaihda salasana"
msgid "Promote/Demote user"
msgstr "Korota/alenna käyttäjä"
msgid "Delete User"
msgstr "Poista käyttäjä"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"Määritä uusi käyttäjä\n"
msgid "User Name : "
msgstr "Käyttäjänimi : "
msgid "Should {} be a superuser (sudoer)?"
msgstr "Pitäisikö {} olla superkäyttäjä (sudoer)?"
msgid "Define users with sudo privilege: "
msgstr "Määritä käyttäjät, joilla on sudo-oikeudet: "
msgid "No network configuration"
msgstr "Ei verkkoasetuksia"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Aseta haluamasi alitaltiot btrfs-osioon"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"Valitse, mille osioille alitaltiot asetetaan"
msgid "Manage btrfs subvolumes for current partition"
msgstr "Hallitse nykyisen osion btrfs-alitaltioita"
msgid "No configuration"
msgstr "Ei määritystä"
msgid "Save user configuration"
msgstr "Tallenna käyttäjän määritykset"
msgid "Save user credentials"
msgstr "Tallenna käyttäjän tunnistetiedot"
msgid "Save disk layout"
msgstr "Tallenna levyasettelu"
msgid "Save all"
msgstr "Tallenna kaikki"
msgid "Choose which configuration to save"
msgstr "Valitse tallennettavat määritykset"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "Anna hakemisto tallennettaville määrityksille: "
msgid "Not a valid directory: {}"
msgstr "Hakemisto ei ole kelvollinen: {}"
msgid "The password you are using seems to be weak,"
msgstr "Käyttämäsi salasana vaikuttaa heikolta,"
msgid "are you sure you want to use it?"
msgstr "oletko varma että haluat käyttää sitä?"
msgid "Optional repositories"
msgstr "Valinnaiset arkistot"
msgid "Save configuration"
msgstr "Tallenna määritykset"
msgid "Missing configurations:\n"
msgstr "Puuttuvat määritykset:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "Joko root-salasana tai vähintään yksi pääkäyttäjä on määritettävä"
msgid "Manage superuser accounts: "
msgstr "Hallitse superkäyttäjätilejä: "
msgid "Manage ordinary user accounts: "
msgstr "Hallitse tavallisia käyttäjätilejä: "
msgid " Subvolume :{:16}"
msgstr " Alitaltio :{:16}"
msgid " mounted at {:16}"
msgstr " liitetty {:16}"
msgid " with option {}"
msgstr " valinnalla {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
" Täytä halutut arvot uudelle alitaltiolle \n"
msgid "Subvolume name "
msgstr "Alitaltion nimi "
msgid "Subvolume mountpoint"
msgstr "Alitaltion liitoskohta"
msgid "Subvolume options"
msgstr "Alitaltion valinnat"
msgid "Save"
msgstr "Tallenna"
msgid "Subvolume name :"
msgstr "Alitaltion nimi :"
msgid "Select a mount point :"
msgstr "Valitse liitoskohta :"
msgid "Select the desired subvolume options "
msgstr "Valitse alitaltion asetukset "
msgid "Define users with sudo privilege, by username: "
msgstr "Määritä käyttäjät, joilla on sudo-oikeudet, käyttäjänimen mukaan: "
#, python-brace-format
msgid "[!] A log file has been created here: {}"
msgstr "[!] Lokitiedosto on luotu tähän: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "Haluatko käyttää BTRFS-alitaltioita oletusrakenteena?"
msgid "Would you like to use BTRFS compression?"
msgstr "Haluatko käyttää BTRFS-pakkausta?"
msgid "Would you like to create a separate partition for /home?"
msgstr "Haluatko luoda erillisen osion /home ?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "Valituilla asemilla ei ole automaattiseen ehdotukseen vaadittavaa vähimmäistilaa\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "Minimi tila /home osiolle: {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Minimi tila Arch Linux osiolle: {}GB"
msgid "Continue"
msgstr "Jatka"
msgid "yes"
msgstr "kyllä"
msgid "no"
msgstr "ei"
msgid "set: {}"
msgstr "aseta: {}"
msgid "Manual configuration setting must be a list"
msgstr "Manuaaliset asetukset on oltava lista muodossa"
msgid "No iface specified for manual configuration"
msgstr "Manuaalista määritystä varten iface on tekemättä"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "Manuaalinen verkkokortin määritys ilman autom. DHCP:tä vaatii IP-osoitteen"
msgid "Add interface"
msgstr "Lisää liitäntä"
msgid "Edit interface"
msgstr "Muokkaa liitäntää"
msgid "Delete interface"
msgstr "Poista liitäntä"
msgid "Select interface to add"
msgstr "Valitse lisättävä liitäntä"
msgid "Manual configuration"
msgstr "Käsin määrittely"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "Merkitse/poista osio pakatuksi (vain btrfs)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "Käyttämäsi salasana vaikuttaa heikolta, haluatko käyttää sitä?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "Tarjoaa valikoiman erilaisia työpöytiä ja ikkunointia esim. gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "Valitse haluamasi työpöytä"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "Hyvin kevyt asennus, jonka avulla voit mukauttaa Arch Linuxia haluamallasi tavalla."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "Tarjoaa valikoiman erilaisia palvelinpaketteja ja saatavilla käyttöön esim. httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "Valitse mitkä palvelimet asennetaan. Jos ei yhtään, tehdään pienin mahdollinen asennus"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "Asentaa minimaalisen järjestelmän sekä xorg ja ohjaimet näytönohjaimelle."
msgid "Press Enter to continue."
msgstr "Paina ENTER ja jatka."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "Haluatko chroot:in uuteen asennukseen ja suorittaa asennuksen jälkeiset asetukset?"
msgid "Are you sure you want to reset this setting?"
msgstr "Haluatko varmasti nollata tämän asetuksen?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "Valitse yksi tai useampi kiintolevy määritettäväksi\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "Kaikki muutokset olemassa olevaan asetukseen nollaavat levyasettelun!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "Jos nollaat kiintolevyn valinnan, tämä nollaa myös nykyisen levyasettelun. Oletko varma?"
msgid "Save and exit"
msgstr "Tallenna ja poistu"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"sisältää jonossa olevia osioita, tämä poistaa ne, oletko varma?"
msgid "No audio server"
msgstr "Ei audiopalvelinta"
msgid "(default)"
msgstr "(oletus)"
msgid "Use ESC to skip"
msgstr "Ohita painamalla ESC"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"CTRL+C nollaa nykyisen valinnan\n"
"\n"
msgid "Copy to: "
msgstr "Kopioi…: "
msgid "Edit: "
msgstr "Muokkaa: "
msgid "Key: "
msgstr "Avain: "
msgid "Edit {}: "
msgstr "Muokkaa {}: "
msgid "Add: "
msgstr "Lisää: "
msgid "Value: "
msgstr "Arvo: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "Voit ohittaa aseman valinnan, sekä osioinnin ja käyttää mitä tahansa asemaa, joka on kytketty /mnt hakemistossa (kokeellinen)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "Valitse jokin levyistä tai ohita ja käytä /mnt oletuksena"
msgid "Select which partitions to mark for formatting:"
msgstr "Valitse alustettavat osiot:"
msgid "Use HSM to unlock encrypted drive"
msgstr "Käytä HSM:ää avataksesi salatun aseman"
msgid "Device"
msgstr "Laite"
msgid "Size"
msgstr "Koko"
msgid "Free space"
msgstr "Vapaata tilaa"
msgid "Bus-type"
msgstr "Väylän tyyppi"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "Joko root-salasana tai vähintään yksi käyttäjä, jolla on sudo-oikeudet, on määritettävä"
msgid "Enter username (leave blank to skip): "
msgstr "Anna käyttäjänimi (jätä tyhjäksi ja ohita): "
msgid "The username you entered is invalid. Try again"
msgstr "Antamasi käyttäjänimi ei kelpaa. Yritä uudelleen"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "Pitäisikö \"{}\" olla superkäyttäjä (sudo)?"
msgid "Select which partitions to encrypt"
msgstr "Valitse salattavat osiot"
msgid "very weak"
msgstr "hyvin heikko"
msgid "weak"
msgstr "heikko"
msgid "moderate"
msgstr "kohtalainen"
msgid "strong"
msgstr "vahva"
msgid "Add subvolume"
msgstr "Lisää alitaltio"
msgid "Edit subvolume"
msgstr "Muokkaa alitaltiota"
msgid "Delete subvolume"
msgstr "Poista alitaltio"
msgid "Configured {} interfaces"
msgstr "Määritetty {} liittymää"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "Tämä valinta mahdollistaa asennuksen aikana tapahtuvien rinnakkaisten latausten määrän"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"Anna rinnakkaisten latausten määrä.\n"
" (anna arvo väliltä 1 - {})\n"
"Huomaa:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - Suurin arvo : {} ( sallii {} rinnakkaista latausta, sallii {} latausta kerralla )"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - Pienin arvo : 1 ( sallii 1 rinnakkaisen latauksen, sallii {} 2 latausta kerralla )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - Pois/oletus : 0 ( ei salli rinnakkaisia latauksia, sallii vain 1 latauksen kerralla )"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "Virheellinen arvo! Yritä uudelleen kelvollisella arvolla [1 - {max_downloads}, tai 0 on poistettu]"
msgid "Parallel Downloads"
msgstr "Rinnakkaiset lataukset"
msgid "ESC to skip"
msgstr "Ohita painamalla ESC"
msgid "CTRL+C to reset"
msgstr "CTRL+C nollaa"
msgid "TAB to select"
msgstr "TAB valitsee"
msgid "[Default value: 0] > "
msgstr "[oletusarvo: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "Jotta voit käyttää tätä käännöstä, asenna käsin fontti, joka tukee tätä kieltä."
msgid "The font should be stored as {}"
msgstr "Fontti tulee tallentaa {}"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Archinstall vaatii toimiakseen root oikeudet. Katso --help ja saat lisätietoja."
msgid "Select an execution mode"
msgstr "Valitse suoritustila"
#, python-brace-format
msgid "Unable to fetch profile from specified url: {}"
msgstr "Profiilia ei voi hakea määritetystä URL-osoitteesta: {}"
#, python-brace-format
msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}"
msgstr "Profiilin nimi on oltava yksilöllinen, mutta määrityksistä löytyy päällekkäinen nimi: {}"
msgid "Select one or more devices to use and configure"
msgstr "Valitse yksi tai useampi laite määritettäväksi"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "Jos nollaat laitevalinnan, tämä nollaa myös nykyisen levyasettelun. Oletko varma?"
msgid "Existing Partitions"
msgstr "Olemassa olevat osiot"
msgid "Select a partitioning option"
msgstr "Valitse osiointivaihtoehto"
msgid "Enter the root directory of the mounted devices: "
msgstr "Anna root hahemisto liitetylle laitteelle: "
#, python-brace-format
msgid "Minimum capacity for /home partition: {}GiB\n"
msgstr "Minimi tila /home osiolle: {}GiB\n"
#, python-brace-format
msgid "Minimum capacity for Arch Linux partition: {}GiB"
msgstr "Minimi tila Arch Linux osiolle: {}GiB"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "Lista esiohjelmoiduista profiles_bck paketeista, joka voivat helpottaa asioita, kuten työpöydän asentamista"
msgid "Current profile selection"
msgstr "Nykyinen profiilivalinta"
msgid "Remove all newly added partitions"
msgstr "Poista kaikki juuri lisätyt osiot"
msgid "Assign mountpoint"
msgstr "Määritä liitoskohta"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "Merkitse/poista osion alustaminen (pyyhkii tiedot)"
msgid "Mark/Unmark as bootable"
msgstr "Merkitse/poista käynnistyvä"
msgid "Change filesystem"
msgstr "Vaihda tiedostojärjestelmä"
msgid "Mark/Unmark as compressed"
msgstr "Merkitse/poista pakatuksi"
msgid "Set subvolumes"
msgstr "Aseta alitaltiot"
msgid "Delete partition"
msgstr "Poista osio"
msgid "Partition"
msgstr "Osio"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "Tämä osio on tällä hetkellä salattu, joten sen alustamiseksi on määritettävä tiedostojärjestelmä"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "Osioiden liitoskohdat ovat suhteessa asennuksen sisäpuolelle, käynnistys olisi esimerkiksi /boot."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "Jos liitoskohta /boot on asetettu, myös osio merkitään käynnistettäväksi."
msgid "Mountpoint: "
msgstr "Liitoskohta: "
msgid "Current free sectors on device {}:"
msgstr "Laitteen nykyiset vapaat sektorit {}:"
msgid "Total sectors: {}"
msgstr "Sektoreita kaikkiaan: {}"
msgid "Enter the start sector (default: {}): "
msgstr "Anna aloitussektori (oletus: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
msgstr "Anna osion loppusektori (prosenttina tai lohkonumerona, oletus:: {}): "
msgid "This will remove all newly added partitions, continue?"
msgstr "Tämä poistaa kaikki juuri lisätyt osiot, jatkaako?"
#, python-brace-format
msgid "Partition management: {}"
msgstr "Osioiden hallinta: {}"
#, python-brace-format
msgid "Total length: {}"
msgstr "Kokonaispituus: {}"
msgid "Encryption type"
msgstr "Salaustyyppi"
msgid "Iteration time"
msgstr ""
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr ""
msgid "Higher values increase security but slow down boot time"
msgstr ""
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr ""
msgid "Iteration time cannot be empty"
msgstr ""
msgid "Iteration time must be at least 100ms"
msgstr ""
msgid "Iteration time must be at most 120000ms"
msgstr ""
msgid "Please enter a valid number"
msgstr ""
msgid "Partitions"
msgstr "Osiot"
msgid "No HSM devices available"
msgstr "Ei HSM-laitteita saatavilla"
msgid "Partitions to be encrypted"
msgstr "Salattavat osiot"
msgid "Select disk encryption option"
msgstr "Valitse levyn salausasetus"
msgid "Select a FIDO2 device to use for HSM"
msgstr "Valitse HSM:ään käytettävä FIDO2-laite"
msgid "Use a best-effort default partition layout"
msgstr "Käytä parasta mahdollista oletusosion asettelua"
msgid "Manual Partitioning"
msgstr "Osiointi käsin"
msgid "Pre-mounted configuration"
msgstr "Valmiiksi liitetty kokoonpano"
msgid "Unknown"
msgstr "Tuntematon"
msgid "Partition encryption"
msgstr "Osion salaus"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! Alustetaan {} "
msgid "← Back"
msgstr "← Takaisin"
msgid "Disk encryption"
msgstr "Levyn salaus"
msgid "Configuration"
msgstr "Asetukset"
msgid "Password"
msgstr "Salasana"
msgid "All settings will be reset, are you sure?"
msgstr "Kaikki asetukset nollataan, oletko varma?"
msgid "Back"
msgstr "Takaisin"
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr "Valitse asennettava käyttöliittymä valituille profiileille: {}"
#, python-brace-format
msgid "Environment type: {}"
msgstr "Ympäristötyyppi: {}"
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 "Sway ei tue patentoitua Nvidia-ohjainta. Todennäköistä, että kohtaat joitain ongelmia, kelpaako se silti sinulle?"
msgid "Installed packages"
msgstr "Asennetut paketit"
msgid "Add profile"
msgstr "Lisää profiili"
msgid "Edit profile"
msgstr "Muokkaa profiilia"
msgid "Delete profile"
msgstr "Poista profiili"
msgid "Profile name: "
msgstr "Profiilinimi: "
msgid "The profile name you entered is already in use. Try again"
msgstr "Antamasi profiilinimi on jo käytössä. Yritä uudelleen"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "Tällä profiililla asennettavat paketit (välilyönnillä erotettuna, ohita jättämällä tyhjäksi): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "Palvelut, jotka otetaan käyttöön tällä profiililla (välilyönnillä erotettuna, ohita jättämällä tyhjäksi): "
msgid "Should this profile be enabled for installation?"
msgstr "Pitäisikö tämä profiili ottaa käyttöön asennusta varten?"
msgid "Create your own"
msgstr "Luo sinun oma"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"Valitse näytönohjaimen ohjain tai jätä tyhjäksi niin kaikki asennetaan avoimen lähdekoodin ohjaimilla"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway tarvitsee pääsyn istuntoon (kokoelma laitteistoja, kuten näppäimistö, hiiri jne.)"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Valitse asetus antaaksesi Swaylle pääsyn laitteistoosi"
msgid "Graphics driver"
msgstr "Näytönohjaimen ohjain"
msgid "Greeter"
msgstr "Käyttöliittymä"
msgid "Please chose which greeter to install"
msgstr "Valitse asennettava käyttöliittymä"
msgid "This is a list of pre-programmed default_profiles"
msgstr "Tämä on lista esiohjelmoiduista default_profiles"
msgid "Disk configuration"
msgstr "Kiintolevyn määritys"
msgid "Profiles"
msgstr "Profiilit"
msgid "Finding possible directories to save configuration files ..."
msgstr "Etsitään hakemistoja asetustiedostojen tallentamiseen ..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "Valitse hakemisto (tai hakemistot) asetustiedostojen tallentamiseen"
msgid "Add a custom mirror"
msgstr "Lisää mukautettu peilipaikka"
msgid "Change custom mirror"
msgstr "Vaihda mukautettu peilipaikka"
msgid "Delete custom mirror"
msgstr "Poista mukautettu peilipaikka"
msgid "Enter name (leave blank to skip): "
msgstr "Anna nimi (jätä tyhjäksi ja ohita): "
msgid "Enter url (leave blank to skip): "
msgstr "Anna url (jätä tyhjäksi ja ohita): "
msgid "Select signature check option"
msgstr "Valitse allekirjoituksen tarkistusvaihtoehto"
msgid "Select signature option"
msgstr "Valitse allekirjoituksen asetus"
msgid "Custom mirrors"
msgstr "Mukautetut peilipaikat"
msgid "Defined"
msgstr "Määritelty"
msgid "Save user configuration (including disk layout)"
msgstr "Tallenna käyttäjän asetukset (myös levyasettelu)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"Anna hakemisto tallennettaville määrityksille (välilehden viimeistely käytössä)\n"
"Tallennushakemisto: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"Haluatko tallentaa {} asetustiedostoa seuraavaan paikkaan?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "Tallennetaan {} määritystiedostoa {}"
msgid "Mirrors"
msgstr "Peilipaikat"
msgid "Mirror regions"
msgstr "Peilipaikan maa"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - Suurin arvo : {} ( sallii {} rinnakkaista latausta, sallii {max_downloads+1} latausta kerralla )"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "Virheellinen arvo! Yritä uudelleen kelvollisella arvolla [1 - {}, tai 0 on poistettu]"
msgid "Locales"
msgstr "Alueet"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "Käytä NetworkManager -ohjelmaa (Internetin määritys graafisesti GNOME ja KDE)"
msgid "Total: {} / {}"
msgstr "Yhteensä: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "Kaikki annetut arvot voidaan liittää käyttäen yksikköjä: B, KB, KiB, MB, MiB..."
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "Jos yksikköä ei ole annettu, arvo tulkitaan sektoreiksi"
msgid "Enter start (default: sector {}): "
msgstr "Anna alku (oletus: sektori {}): "
msgid "Enter end (default: {}): "
msgstr "Anna loppu (oletus: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "Fido2-laitteita ei voida määrittää. Onko libfido2 asennettu?"
msgid "Path"
msgstr "Polku"
msgid "Manufacturer"
msgstr "Valmistaja"
msgid "Product"
msgstr "Tuote"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "Virheellinen määritys: {error}"
msgid "Type"
msgstr "Tyyppi"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "Tämä valinta mahdollistaa asennuksen aikana tapahtuvien rinnakkaisten latausten määrän"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"Anna rinnakkaisten latausten määrä.\n"
"\n"
"Huomaa:\n"
#, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr " - Suurin suositeltu arvo : {} ( sallii {} rinnakkaista latausta kerralla )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - Pois/oletus : 0 ( ei salli rinnakkaisia latauksia, sallii vain 1 latauksen kerralla )\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "Virheellinen arvo! Yritä uudelleen kelvollisella arvolla [tai 0 on poistettu]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Hyprland tarvitsee pääsyn istuntoon (kokoelma laitteistoja, kuten näppäimistö, hiiri jne.)"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Valitse asetus antaaksesi Hyprlandille pääsyn laitteistoosi"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "Kaikki annetut arvot voidaan liittää käyttäen yksikköjä: B, KB, KiB, MB, MiB..."
msgid "Would you like to use unified kernel images?"
msgstr "Haluatko käyttää Unified Kernel Images, joka voidaan käynnistää suoraan UEFI-ohjelmistosta?"
msgid "Unified kernel images"
msgstr "UKI Unified Kernel Images"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "Odotetaan ajan synkronoinnin (timedatectl show) päättymistä."
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Ajan synkronointi ei ole valmis, kun odotat voit tarkistaa kiertotapoja: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "Autom. ajan synkronoinnin odottaminen ohitetaan (voi aiheuttaa ongelmia, jos aikaa ei ole synkronoitu asennuksen aikana)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "Odotetaan Arch Linux avainten synkronoinnin valmistumista (archlinux-keyring-wkd-sync)."
msgid "Selected profiles: "
msgstr "Valitut profiilit: "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Ajan synkronointi ei ole valmis, kun odotat voit tarkistaa kiertotapoja: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "Merkitse/poista nodatacow merkintä"
msgid "Would you like to use compression or disable CoW?"
msgstr "Haluatko käyttää pakkausta vai poistaa CoW:n käytöstä?"
msgid "Use compression"
msgstr "Käytä pakkausta"
msgid "Disable Copy-on-Write"
msgstr "Poista kopiointi kirjoittamisen yhteydessä"
#, fuzzy
msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway"
msgstr "Tarjoaa valikoiman erilaisia työpöytiä ja ikkunointia esim. gnome, kde, sway"
#, fuzzy, python-brace-format
msgid "Configuration type: {}"
msgstr "Asetukset"
#, fuzzy
msgid "LVM configuration type"
msgstr "Ei määritystä"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr ""
#, fuzzy
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "Käytä NetworkManager -ohjelmaa (Internetin määritys graafisesti GNOME ja KDE)"
#, fuzzy
msgid "Select a LVM option"
msgstr "Valitse aikavyöhyke"
#, fuzzy
msgid "Partitioning"
msgstr "Osio"
msgid "Logical Volume Management (LVM)"
msgstr ""
msgid "Physical volumes"
msgstr ""
msgid "Volumes"
msgstr ""
#, fuzzy
msgid "LVM volumes"
msgstr "Aseta alitaltiot"
#, fuzzy
msgid "LVM volumes to be encrypted"
msgstr "Salattavat osiot"
#, fuzzy
msgid "Select which LVM volumes to encrypt"
msgstr "Valitse salattavat osiot"
#, fuzzy
msgid "Default layout"
msgstr "Levyn asettelu"
#, fuzzy
msgid "No Encryption"
msgstr "Salaustyyppi"
msgid "LUKS"
msgstr ""
msgid "LVM on LUKS"
msgstr ""
msgid "LUKS on LVM"
msgstr ""
#, fuzzy
msgid "Yes"
msgstr "kyllä"
msgid "No"
msgstr ""
#, fuzzy
msgid "Archinstall help"
msgstr "Archinstall kieli"
#, fuzzy
msgid " (default)"
msgstr "(oletus)"
msgid "Press Ctrl+h for help"
msgstr ""
#, fuzzy
msgid "Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Valitse asetus antaaksesi Swaylle pääsyn laitteistoosi"
msgid "Seat access"
msgstr ""
#, fuzzy
msgid "Mountpoint"
msgstr "Liitoskohta: "
msgid "HSM"
msgstr ""
#, fuzzy
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "Anna levyn salauksen salasana (jätä tyhjäksi, jos et salaa): "
#, fuzzy
msgid "Disk encryption password"
msgstr "Salauksen salasana"
#, fuzzy
msgid "Partition - New"
msgstr "Osio"
#, fuzzy
msgid "Filesystem"
msgstr "Vaihda tiedostojärjestelmä"
msgid "Invalid size"
msgstr ""
#, fuzzy
msgid "Start (default: sector {}): "
msgstr "Anna alku (oletus: sektori {}): "
#, fuzzy
msgid "End (default: {}): "
msgstr "Anna loppu (oletus: {}): "
#, fuzzy
msgid "Subvolume name"
msgstr "Alitaltion nimi "
#, fuzzy
msgid "Disk configuration type"
msgstr "Kiintolevyn määritys"
msgid "Root mount directory"
msgstr ""
#, fuzzy
msgid "Select language"
msgstr "Kieli"
#, fuzzy
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "Kirjoita asennettavat lisäpaketit (välilyönnillä erotettuna, ohita vaihe jättämällä tyhjäksi): "
msgid "Invalid download number"
msgstr ""
msgid "Number downloads"
msgstr ""
#, fuzzy
msgid "The username you entered is invalid"
msgstr "Antamasi käyttäjänimi ei kelpaa. Yritä uudelleen"
#, fuzzy
msgid "Username"
msgstr "Käyttäjänimi : "
#, fuzzy, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "Pitäisikö \"{}\" olla superkäyttäjä (sudo)?"
#, fuzzy
msgid "Interfaces"
msgstr "Lisää liitäntä"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "Sinun on annettava kelvollinen IP-osoite IP-määritystilassa"
msgid "Modes"
msgstr "Tilat"
msgid "IP address"
msgstr "IP osoite"
#, fuzzy
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "Anna yhdyskäytävän (reitittimen) IP-osoite tai jätä tyhjäksi: "
msgid "Gateway address"
msgstr "Yhdyskäytävän osoite"
#, fuzzy
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "Anna DNS-osoitteet (välilyönti erottaa kaksi osoitetta toisistaan, tyhjä ei mitään): "
#, fuzzy
msgid "DNS servers"
msgstr "Ei audiopalvelinta"
#, fuzzy
msgid "Configure interfaces"
msgstr "Määritetty {} liittymää"
#, fuzzy
msgid "Kernel"
msgstr "Kernelit"
msgid "UEFI is not detected and some options are disabled"
msgstr "UEFIa ei tunnisteta ja jotkin asetukset on poistettu käytöstä"
msgid "Info"
msgstr "Informaatio"
#, fuzzy
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "Sway ei tue patentoitua Nvidia-ohjainta. Todennäköistä, että kohtaat joitain ongelmia, kelpaako se silti sinulle?"
#, fuzzy
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "Sway ei tue patentoitua Nvidia-ohjainta. Todennäköistä, että kohtaat joitain ongelmia, kelpaako se silti sinulle?"
#, fuzzy
msgid "Main profile"
msgstr "Muokkaa profiilia"
#, fuzzy
msgid "Confirm password"
msgstr "Vaihda salasana"
msgid "The confirmation password did not match, please try again"
msgstr ""
#, fuzzy
msgid "Not a valid directory"
msgstr "Hakemisto ei ole kelvollinen: {}"
#, fuzzy
msgid "Would you like to continue?"
msgstr "Haluatko käyttää BTRFS-pakkausta?"
msgid "Directory"
msgstr ""
#, fuzzy
msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)"
msgstr ""
"Anna hakemisto tallennettaville määrityksille (välilehden viimeistely käytössä)\n"
"Tallennushakemisto: "
#, fuzzy, python-brace-format
msgid "Do you want to save the configuration file(s) to {}?"
msgstr ""
"Haluatko tallentaa {} asetustiedostoa seuraavaan paikkaan?\n"
"\n"
"{}"
msgid "Enabled"
msgstr "Käytössä"
msgid "Disabled"
msgstr "Pois Käytostä"
#, fuzzy
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Lähetä tämä ongelma (ja tiedosto) osoitteeseen https://github.com/archlinux/archinstall/issues"
#, fuzzy
msgid "Mirror name"
msgstr "Pakettivarasto"
msgid "Url"
msgstr ""
#, fuzzy
msgid "Select signature check"
msgstr "Valitse allekirjoituksen tarkistusvaihtoehto"
#, fuzzy
msgid "Select execution mode"
msgstr "Valitse suoritustila"
msgid "Press ? for help"
msgstr ""
#, fuzzy
msgid "Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Valitse asetus antaaksesi Hyprlandille pääsyn laitteistoosi"
#, fuzzy
msgid "Additional repositories"
msgstr "Valinnaiset arkistot"
msgid "NTP"
msgstr ""
msgid "Swap on zram"
msgstr ""
msgid "Name"
msgstr "Nimi"
#, fuzzy
msgid "Signature check"
msgstr "Valitse allekirjoituksen tarkistusvaihtoehto"
#, fuzzy, python-brace-format
msgid "Selected free space segment on device {}:"
msgstr "Laitteen nykyiset vapaat sektorit {}:"
#, fuzzy, python-brace-format
msgid "Size: {} / {}"
msgstr "Yhteensä: {} / {}"
#, fuzzy, python-brace-format
msgid "Size (default: {}): "
msgstr "Anna loppu (oletus: {}): "
#, fuzzy
msgid "HSM device"
msgstr "Laite"
msgid "Some packages could not be found in the repository"
msgstr ""
#, fuzzy
msgid "User"
msgstr "Käyttäjänimi : "
msgid "The specified configuration will be applied"
msgstr ""
msgid "Wipe"
msgstr ""
#, fuzzy
msgid "Mark/Unmark as XBOOTLDR"
msgstr "Merkitse/poista käynnistyvä"
#, fuzzy
msgid "Loading packages..."
msgstr "Lisäpaketit"
msgid "Select any packages from the below list that should be installed additionally"
msgstr ""
#, fuzzy
msgid "Add a custom repository"
msgstr "Lisää mukautettu peilipaikka"
#, fuzzy
msgid "Change custom repository"
msgstr "Vaihda mukautettu peilipaikka"
#, fuzzy
msgid "Delete custom repository"
msgstr "Poista mukautettu peilipaikka"
#, fuzzy
msgid "Repository name"
msgstr "Pakettivarasto"
#, fuzzy
msgid "Add a custom server"
msgstr "Lisää mukautettu peilipaikka"
#, fuzzy
msgid "Change custom server"
msgstr "Vaihda mukautettu peilipaikka"
#, fuzzy
msgid "Delete custom server"
msgstr "Poista mukautettu peilipaikka"
msgid "Server url"
msgstr ""
#, fuzzy
msgid "Select regions"
msgstr "Valitse allekirjoituksen asetus"
#, fuzzy
msgid "Add custom servers"
msgstr "Lisää mukautettu peilipaikka"
#, fuzzy
msgid "Add custom repository"
msgstr "Lisää mukautettu peilipaikka"
#, fuzzy
msgid "Loading mirror regions..."
msgstr "Peilipaikan maa"
#, fuzzy
msgid "Mirrors and repositories"
msgstr "Valinnaiset arkistot"
#, fuzzy
msgid "Selected mirror regions"
msgstr "Peilipaikan maa"
#, fuzzy
msgid "Custom servers"
msgstr "Mukautetut peilipaikat"
#, fuzzy
msgid "Custom repositories"
msgstr "Valinnaiset arkistot"
msgid "Only ASCII characters are supported"
msgstr ""
msgid "Show help"
msgstr "Näytä apua"
msgid "Exit help"
msgstr ""
msgid "Preview scroll up"
msgstr ""
msgid "Preview scroll down"
msgstr ""
msgid "Move up"
msgstr "Liikku ylös"
msgid "Move down"
msgstr "Liikku alas"
msgid "Move right"
msgstr "Liiku oikealle"
msgid "Move left"
msgstr "Liiku vasemmalle"
msgid "Jump to entry"
msgstr ""
msgid "Skip selection (if available)"
msgstr ""
msgid "Reset selection (if available)"
msgstr ""
#, fuzzy
msgid "Select on single select"
msgstr "Valitse allekirjoituksen tarkistusvaihtoehto"
#, fuzzy
msgid "Select on multi select"
msgstr "Valitse aikavyöhyke"
msgid "Reset"
msgstr ""
#, fuzzy
msgid "Skip selection menu"
msgstr "Valitse suoritustila"
msgid "Start search mode"
msgstr ""
msgid "Exit search mode"
msgstr ""
#, fuzzy
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway tarvitsee pääsyn istuntoon (kokoelma laitteistoja, kuten näppäimistö, hiiri jne.)"
#, fuzzy
msgid "Choose an option to give labwc access to your hardware"
msgstr ""
"\n"
"\n"
"Valitse asetus antaaksesi Swaylle pääsyn laitteistoosi"
#, fuzzy
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway tarvitsee pääsyn istuntoon (kokoelma laitteistoja, kuten näppäimistö, hiiri jne.)"
#, fuzzy
msgid "Choose an option to give niri access to your hardware"
msgstr ""
"\n"
"\n"
"Valitse asetus antaaksesi Swaylle pääsyn laitteistoosi"
#, fuzzy
msgid "Mark/Unmark as ESP"
msgstr "Merkitse/poista käynnistyvä"
msgid "Package group:"
msgstr ""
#, fuzzy
msgid "Exit archinstall"
msgstr "Archinstall kieli"
#, fuzzy
msgid "Reboot system"
msgstr "Vaihda tiedostojärjestelmä"
#, fuzzy
msgid "chroot into installation for post-installation configurations"
msgstr "Haluatko chroot:in uuteen asennukseen ja suorittaa asennuksen jälkeiset asetukset?"
msgid "Installation completed"
msgstr "Lataus valmis"
#, fuzzy
msgid "What would you like to do next?"
msgstr "Haluatko käyttää BTRFS-pakkausta?"
#, fuzzy, python-brace-format
msgid "Select which mode to configure for \"{}\""
msgstr "Valitse, mikä tila määritetään \"{}\", tai ohita ja käytä \"{}\" oletusta."
#, fuzzy
msgid "Incorrect credentials file decryption password"
msgstr "Salauksen salasana"
#, fuzzy
msgid "Incorrect password"
msgstr "Root salasana"
#, fuzzy
msgid "Credentials file decryption password"
msgstr "Salauksen salasana"
#, fuzzy
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr ""
"Haluatko tallentaa {} asetustiedostoa seuraavaan paikkaan?\n"
"\n"
"{}"
#, fuzzy
msgid "Credentials file encryption password"
msgstr "Salauksen salasana"
#, fuzzy, python-brace-format
msgid "Repositories: {}"
msgstr "Pakettivarasto"
#, fuzzy
msgid "New version available"
msgstr "Ei HSM-laitteita saatavilla"
#, fuzzy
msgid "Passwordless login"
msgstr "Salasana"
msgid "Second factor login"
msgstr ""
msgid "Bluetooth"
msgstr ""
#, fuzzy
msgid "Would you like to configure Bluetooth?"
msgstr "Haluatko käyttää BTRFS-pakkausta?"
msgid "Print service"
msgstr ""
#, fuzzy
msgid "Would you like to configure the print service?"
msgstr "Haluatko käyttää BTRFS-pakkausta?"
#, fuzzy
msgid "Power management"
msgstr "Osioiden hallinta: {}"
msgid "Authentication"
msgstr "Todennus"
msgid "Applications"
msgstr ""
msgid "U2F login method: "
msgstr ""
msgid "Passwordless sudo: "
msgstr "Salasanaton sudo"
#, 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 "Ympäristötyyppi: {}"
msgid "U2F login setup"
msgstr ""
msgid "No U2F devices found"
msgstr ""
msgid "U2F Login Method"
msgstr ""
#, fuzzy
msgid "Enable passwordless sudo?"
msgstr "Anna salasana: "
#, fuzzy, python-brace-format
msgid "Setting up U2F device for user: {}"
msgstr "Valitse HSM:ään käytettävä FIDO2-laite"
msgid "You may need to enter the PIN and then touch your U2F device to register it"
msgstr ""
msgid "Starting device modifications in "
msgstr ""
#, fuzzy
msgid "No network connection found"
msgstr "Ei verkkoasetuksia"
#, fuzzy
msgid "Would you like to connect to a Wifi?"
msgstr "Haluatko käyttää BTRFS-pakkausta?"
#, fuzzy
msgid "No wifi interface found"
msgstr "Määritetty {} liittymää"
#, fuzzy
msgid "Select wifi network to connect to"
msgstr "Valitse yksi määritettävä verkkoliitäntä"
msgid "Scanning wifi networks..."
msgstr ""
#, fuzzy
msgid "No wifi networks found"
msgstr "Ei verkkoasetuksia"
msgid "Failed setting up wifi"
msgstr ""
#, fuzzy
msgid "Enter wifi password"
msgstr "Anna salasana: "
msgid "Ok"
msgstr ""
msgid "Removable"
msgstr ""
msgid "Install to removable location"
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr ""
msgid "Will install to standard location with NVRAM entry"
msgstr ""
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr ""
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr ""
msgid "USB drives or other portable external media."
msgstr ""
msgid "Systems where you want the disk to be bootable on any computer."
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr ""
msgid "Will install to custom location with NVRAM entry"
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr ""
msgid "most Apple Macs, many laptops..."
msgstr ""
#, fuzzy
msgid "Language"
msgstr "Kieli"
msgid "Compression algorithm"
msgstr ""
#, fuzzy
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Vain paketit, kuten base, base-devel, linux, linux-firmware, efibootmgr ja valinnaiset profiili-paketit, asennetaan."
#, fuzzy
msgid "Select zram compression algorithm:"
msgstr "Valitse liitoskohta :"
msgid "Use Network Manager (default backend)"
msgstr ""
msgid "Use Network Manager (iwd backend)"
msgstr ""
================================================
FILE: archinstall/locales/fr/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2025-04-11 23:02+0200\n"
"Last-Translator: Roxfr \n"
"Language-Team: \n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.6\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] Un fichier journal a été créé ici : {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Veuillez soumettre ce problème (et le fichier) à https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "Voulez-vous vraiment abandonner ?"
msgid "And one more time for verification: "
msgstr "Et encore une fois pour vérification : "
msgid "Would you like to use swap on zram?"
msgstr "Souhaitez-vous utiliser le swap sur zram ?"
msgid "Desired hostname for the installation: "
msgstr "Nom d'hôte souhaité pour l'installation : "
msgid "Username for required superuser with sudo privileges: "
msgstr "Nom d'utilisateur pour le superutilisateur requis avec les privilèges sudo : "
msgid "Any additional users to install (leave blank for no users): "
msgstr "Utilisateur supplémentaire à installer (laisser vide pour aucun utilisateur) : "
msgid "Should this user be a superuser (sudoer)?"
msgstr "Cet utilisateur doit-il être un superutilisateur (sudoer) ?"
msgid "Select a timezone"
msgstr "Sélectionner un fuseau horaire"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "Souhaitez-vous utiliser GRUB comme chargeur de démarrage au lieu de systemd-boot ?"
msgid "Choose a bootloader"
msgstr "Choisir un chargeur de démarrage"
msgid "Choose an audio server"
msgstr "Choisir un serveur audio"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Seuls les paquets tels que base, base-devel, linux, linux-firmware, efibootmgr et les paquets de profil optionnels sont installés."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr ""
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "Si vous désirez un navigateur Web, tel que firefox ou chrome, vous pouvez le spécifier dans l'invite suivante."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "Saisir les paquets supplémentaires à installer (séparés par des espaces, vide pour ignorer) : "
msgid "Copy ISO network configuration to installation"
msgstr "Copier la configuration réseau ISO dans l'installation"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "Utiliser NetworkManager (nécessaire pour configurer graphiquement Internet dans GNOME et KDE)"
msgid "Select one network interface to configure"
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) : "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "Entrer l'adresse IP de votre passerelle (routeur) ou laisser vide pour aucune : "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "Entrer vos serveurs DNS (séparés par des espaces, vide pour aucun) : "
msgid "Select which filesystem your main partition should use"
msgstr "Sélectionner le système de fichiers que votre partition principale doit utiliser"
msgid "Current partition layout"
msgstr "Disposition actuelle des partitions"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"Sélectionner quoi faire avec\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "Entrer un type de système de fichiers souhaité pour la partition"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "Entrer l'emplacement de départ (en unités séparées : s, Go, %, etc. ; par défaut : {}) : "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "Entrer l'emplacement de fin (en unités séparées : s, Go, %, etc. ; ex : {}) : "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} contient des partitions en file d'attente, cela les supprimera, êtes-vous sûr ?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"Sélectionner par index les partitions à supprimer"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"Sélectionner par index où et quelle partition montée"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * Les points de montage de la partition sont relatifs à l'intérieur de l'installation, le démarrage serait /boot par exemple."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "Sélectionner où monter la partition (laisser vide pour supprimer le point de montage) : "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"Sélectionner la partition à masquer pour le formatage"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"Sélectionner la partition à marquer comme encrypté"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"Sélectionner la partition à marquer comme amorçable"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"Sélectionner la partition sur laquelle définir un système de fichiers"
msgid "Enter a desired filesystem type for the partition: "
msgstr "Entrer un type de système de fichiers souhaité pour la partition : "
msgid "Archinstall language"
msgstr "Langue d'Archinstall"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "Effacer tous les lecteurs sélectionnés et utiliser une disposition de partition par défaut optimale"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "Sélectionner ce qu'il faut faire avec chaque lecteur individuel (suivi de l'utilisation de la partition)"
msgid "Select what you wish to do with the selected block devices"
msgstr "Sélectionner ce que vous souhaitez faire avec les périphériques de bloc sélectionnés"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "Ceci est une liste préprogrammée de profiles, ils pourraient faciliter l'installation d'outils comme les environnements de bureau"
msgid "Select keyboard layout"
msgstr "Sélectionner la disposition du clavier"
msgid "Select one of the regions to download packages from"
msgstr "Sélectionner l'une des régions depuis lesquelles télécharger les paquets"
msgid "Select one or more hard drives to use and configure"
msgstr "Sélectionner un ou plusieurs disques durs à utiliser et à configurer"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "Pour une meilleure compatibilité avec votre matériel AMD, vous pouvez utiliser les options entièrement open source ou AMD / ATI."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "Pour une compatibilité optimale avec votre matériel Intel, vous pouvez utiliser les options entièrement open source ou Intel.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "Pour une meilleure compatibilité avec votre matériel Nvidia, vous pouvez utiliser le pilote propriétaire Nvidia.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Sélectionner un pilote graphique ou laisser vide pour installer tous les pilotes open-source"
msgid "All open-source (default)"
msgstr "Tout open-source (par défaut)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "Choisir les noyaux à utiliser ou laisser vide pour \"{}\" par défaut"
msgid "Choose which locale language to use"
msgstr "Choisir la langue locale à utiliser"
msgid "Choose which locale encoding to use"
msgstr "Choisir quel encodage de paramètres régionaux utiliser"
msgid "Select one of the values shown below: "
msgstr "Sélectionner l'une des valeurs ci-dessous : "
msgid "Select one or more of the options below: "
msgstr "Sélectionner une ou plusieurs des options ci-dessous : "
msgid "Adding partition...."
msgstr "Ajout de la partition...."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "Vous devez entrer un type de fs valide pour continuer. Voir `man parted` pour les types de fs valides."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "Erreur : la liste des profils sur l'URL \"{}\" a entraîné :"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "Erreur : Impossible de décoder le résultat \"{}\" en tant que JSON :"
msgid "Keyboard layout"
msgstr "Disposition du clavier"
msgid "Mirror region"
msgstr "Région miroir"
msgid "Locale language"
msgstr "Langue locale"
msgid "Locale encoding"
msgstr "Encodage des paramètres régionaux"
msgid "Drive(s)"
msgstr "Disques"
msgid "Disk layout"
msgstr "Disposition du disque"
msgid "Encryption password"
msgstr "Mot de passe de chiffrement"
msgid "Swap"
msgstr "Swap"
msgid "Bootloader"
msgstr "Chargeur de démarrage"
msgid "Root password"
msgstr "Mot de passe root"
msgid "Superuser account"
msgstr "Compte superutilisateur"
msgid "User account"
msgstr "Compte utilisateur"
msgid "Profile"
msgstr "Profil"
msgid "Audio"
msgstr "Audio"
msgid "Kernels"
msgstr "Noyaux"
msgid "Additional packages"
msgstr "Paquets supplémentaires"
msgid "Network configuration"
msgstr "Configurer le réseau"
msgid "Automatic time sync (NTP)"
msgstr "Synchronisation automatique de l'heure (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "Installer ({} configuration(s) manquante(s))"
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 ""
"Vous avez décidé d'ignorer la sélection du disque dur\n"
"et vous utiliserez la configuration de disque montée sur {} (expérimental)\n"
"ATTENTION : Archinstall ne vérifiera pas l'adéquation de cette configuration\n"
"Souhaitez-vous continuer ?"
msgid "Re-using partition instance: {}"
msgstr "Réutilisation de l'instance de partition : {}"
msgid "Create a new partition"
msgstr "Créer une nouvelle partition"
msgid "Delete a partition"
msgstr "Supprimer une partition"
msgid "Clear/Delete all partitions"
msgstr "Effacer/Supprimer toutes les partitions"
msgid "Assign mount-point for a partition"
msgstr "Attribuer un point de montage pour une partition"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "Marquer/Démarquer une partition à formater (efface les données)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "Marquer/Démarquer une partition comme encrypté"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "Marquer/Démarquer une partition comme amorçable (automatique pour /boot)"
msgid "Set desired filesystem for a partition"
msgstr "Définir le système de fichiers souhaité pour une partition"
msgid "Abort"
msgstr "Abandonner"
msgid "Hostname"
msgstr "Nom d'hôte"
msgid "Not configured, unavailable unless setup manually"
msgstr "Non configuré, indisponible sauf configuration manuelle"
msgid "Timezone"
msgstr "Fuseau horaire"
msgid "Set/Modify the below options"
msgstr "Définir/Modifier les options ci-dessous"
msgid "Install"
msgstr "Installer"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"Utiliser ESC pour ignorer\n"
"\n"
msgid "Suggest partition layout"
msgstr "Suggérer la disposition des partitions"
msgid "Enter a password: "
msgstr "Entrer un mot de passe : "
msgid "Enter a encryption password for {}"
msgstr "Entrer un mot de passe de chiffrement pour {}"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "Entrer le mot de passe de chiffrement du disque (laisser vide pour aucun chiffrement) : "
msgid "Create a required super-user with sudo privileges: "
msgstr "Créer un super-utilisateur requis avec les privilèges sudo : "
msgid "Enter root password (leave blank to disable root): "
msgstr "Entrer le mot de passe root (laisser vide pour désactiver root) : "
msgid "Password for user \"{}\": "
msgstr "Mot de passe pour l'utilisateur \"{}\" : "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "Vérifier que des paquets supplémentaires existent (cela peut prendre quelques secondes)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "Souhaitez-vous utiliser la synchronisation automatique de l'heure (NTP) avec les serveurs de temps par défaut ?\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 ""
"Le temps matériel et d'autres étapes de post-configuration peuvent être nécessaires pour que NTP fonctionne.\n"
"Pour plus d'informations, veuillez consulter le wiki Arch"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "Entrer un nom d'utilisateur pour créer un utilisateur supplémentaire (laisser vide pour ignorer) : "
msgid "Use ESC to skip\n"
msgstr "Utiliser ESC pour ignorer\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
"Choisir un objet dans la liste et sélectionner l'une des actions disponibles pour qu'il s'exécute"
msgid "Cancel"
msgstr "Annuler"
msgid "Confirm and exit"
msgstr "Confirmer et quitter"
msgid "Add"
msgstr "Ajouter"
msgid "Copy"
msgstr "Copier"
msgid "Edit"
msgstr "Modifier"
msgid "Delete"
msgstr "Supprimer"
msgid "Select an action for '{}'"
msgstr "Sélectionner une action pour '{}'"
msgid "Copy to new key:"
msgstr "Copier vers une nouvelle clé :"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "Type de carte réseau inconnu : {}. Les valeurs possibles sont {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"Voici la configuration choisie :"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman est déjà en cours d'exécution, attendez au maximum 10 minutes pour qu'il se termine."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "Le verrou pacman préexistant n'a jamais été fermé. Veuillez nettoyer toutes les sessions pacman existantes avant d'utiliser archinstall."
msgid "Choose which optional additional repositories to enable"
msgstr "Choisir les dépôts supplémentaires en option à activer"
msgid "Add a user"
msgstr "Ajouter un utilisateur"
msgid "Change password"
msgstr "Changer le mot de passe"
msgid "Promote/Demote user"
msgstr "Promouvoir/Rétrograder l'utilisateur"
msgid "Delete User"
msgstr "Supprimer l'utilisateur"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"Définir un nouveau utilisateur\n"
msgid "User Name : "
msgstr "Nom d'utilisateur : "
msgid "Should {} be a superuser (sudoer)?"
msgstr "Cet utilisateur {} doit-il être un superutilisateur (sudoer) ?"
msgid "Define users with sudo privilege: "
msgstr "Définir les utilisateurs avec le privilège sudo : "
msgid "No network configuration"
msgstr "Aucune configuration réseau"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Définir les sous-volumes souhaités sur une partition btrfs"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"Sélectionner la partition sur laquelle définir les sous-volumes"
msgid "Manage btrfs subvolumes for current partition"
msgstr "Gérer les sous-volumes btrfs pour la partition actuelle"
msgid "No configuration"
msgstr "Aucune configuration"
msgid "Save user configuration"
msgstr "Enregistrer la configuration utilisateur"
msgid "Save user credentials"
msgstr "Enregistrer les informations d'identification de l'utilisateur"
msgid "Save disk layout"
msgstr "Enregistrer la disposition du disque"
msgid "Save all"
msgstr "Tout enregistrer"
msgid "Choose which configuration to save"
msgstr "Choisir la configuration à enregistrer"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "Saisir un répertoire pour la ou les configuration(s) à enregistrer : "
msgid "Not a valid directory: {}"
msgstr "Répertoire non valide : {}"
msgid "The password you are using seems to be weak,"
msgstr "Le mot de passe que vous utilisez semble faible,"
msgid "are you sure you want to use it?"
msgstr "êtes-vous sûr de vouloir l'utiliser ?"
msgid "Optional repositories"
msgstr "Dépôts supplémentaires"
msgid "Save configuration"
msgstr "Enregistrer la configuration"
msgid "Missing configurations:\n"
msgstr "Configurations manquantes :\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "Le mot de passe root ou au moins 1 superutilisateur doit être spécifié"
msgid "Manage superuser accounts: "
msgstr "Gérer les comptes de superutilisateur : "
msgid "Manage ordinary user accounts: "
msgstr "Gérer les comptes d'utilisateurs ordinaires : "
msgid " Subvolume :{:16}"
msgstr " Sous-volume : {:16}"
msgid " mounted at {:16}"
msgstr " monté à {:16}"
msgid " with option {}"
msgstr " avec option {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
" Remplir les valeurs souhaitées pour un nouveau sous-volume \n"
msgid "Subvolume name "
msgstr "Nom du sous-volume "
msgid "Subvolume mountpoint"
msgstr "Point de montage du sous-volume"
msgid "Subvolume options"
msgstr "Options de sous-volume"
msgid "Save"
msgstr "Sauvegarder"
msgid "Subvolume name :"
msgstr "Nom du sous-volume :"
msgid "Select a mount point :"
msgstr "Sélectionner un point de montage :"
msgid "Select the desired subvolume options "
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 : {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "Souhaitez-vous utiliser des sous-volumes BTRFS avec une structure par défaut ?"
msgid "Would you like to use BTRFS compression?"
msgstr "Souhaitez-vous utiliser la compression BTRFS ?"
msgid "Would you like to create a separate partition for /home?"
msgstr "Souhaitez-vous créer une partition séparée pour /home ?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "Les disques sélectionnés n'ont pas la capacité minimale requise pour une suggestion automatique\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "Capacité minimale pour la partition /home : {} Go\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Capacité minimale pour la partition Arch Linux : {} Go"
msgid "Continue"
msgstr "Poursuivre"
msgid "yes"
msgstr "oui"
msgid "no"
msgstr "non"
msgid "set: {}"
msgstr "définir : {}"
msgid "Manual configuration setting must be a list"
msgstr "Le paramètre de configuration manuelle doit être une liste"
msgid "No iface specified for manual configuration"
msgstr "Aucun iface spécifié pour la configuration manuelle"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "La configuration manuelle de la carte réseau sans DHCP automatique nécessite une adresse IP"
msgid "Add interface"
msgstr "Ajouter une interface"
msgid "Edit interface"
msgstr "Modifier l'interface"
msgid "Delete interface"
msgstr "Supprimer l'interface"
msgid "Select interface to add"
msgstr "Sélectionner l'interface à ajouter"
msgid "Manual configuration"
msgstr "Configuration manuelle"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "Marquer/Démarquer une partition comme compressée (btrfs uniquement)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "Le mot de passe que vous utilisez semble faible, êtes-vous sûr de vouloir l'utiliser ?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "Fournit une sélection d'environnements de bureau et de gestionnaires de fenêtres en mosaïque, par ex. gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "Sélectionner l'environnement de bureau souhaité"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "Une installation très basique qui vous permet de personnaliser Arch Linux comme bon vous semble."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "Fournit une sélection de divers paquets de serveur à installer et à activer, par ex. httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "Choisir les serveurs à installer, s'il n'y en a pas, alors une installation minimale sera effectuée"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "Installe un système minimal ainsi que les pilotes graphiques et xorg."
msgid "Press Enter to continue."
msgstr "Appuyer sur Entrée pour continuer."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "Souhaitez-vous chrooter dans l'installation nouvellement créée et effectuer la configuration post-installation ?"
msgid "Are you sure you want to reset this setting?"
msgstr "Voulez-vous vraiment réinitialiser ce paramètre ?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "Sélectionner un ou plusieurs disques durs à utiliser et à configurer\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "Toute modification du paramètre existant réinitialisera la disposition du disque !"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "Si vous réinitialisez la sélection du disque dur, cela réinitialisera également la disposition actuelle du disque. Êtes-vous sûr ?"
msgid "Save and exit"
msgstr "Sauvegarder et quitter"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"contient des partitions en file d'attente, cela les supprimera, êtes-vous sûr ?"
msgid "No audio server"
msgstr "Pas de serveur audio"
msgid "(default)"
msgstr "(par défaut)"
msgid "Use ESC to skip"
msgstr "Utiliser ESC pour ignorer"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"Utiliser CTRL+C pour réinitialiser la sélection actuelle\n"
"\n"
msgid "Copy to: "
msgstr "Copier vers : "
msgid "Edit: "
msgstr "Modifier : "
msgid "Key: "
msgstr "Clé : "
msgid "Edit {}: "
msgstr "Modifier {} : "
msgid "Add: "
msgstr "Ajouter : "
msgid "Value: "
msgstr "Valeur : "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "Vous pouvez ignorer la sélection d'un lecteur et le partitionnement et utiliser n'importe quelle configuration de lecteur montée sur /mnt (expérimental)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "Sélectionner l'un des disques ou ignorer et utiliser /mnt par défaut"
msgid "Select which partitions to mark for formatting:"
msgstr "Sélectionner la partition à masquer pour le formatage:"
msgid "Use HSM to unlock encrypted drive"
msgstr "Utiliser HSM pour déverrouiller le lecteur chiffré"
msgid "Device"
msgstr "Dispositif"
msgid "Size"
msgstr "Taille"
msgid "Free space"
msgstr "Espace libre"
msgid "Bus-type"
msgstr "Type de bus"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "Le mot de passe root ou au moins 1 utilisateur avec des privilèges sudo doit être spécifié"
msgid "Enter username (leave blank to skip): "
msgstr "Entrer le nom d'utilisateur (laisser vide pour ignorer) : "
msgid "The username you entered is invalid. Try again"
msgstr "Le nom d'utilisateur que vous avez saisi n'est pas valide. Réessayer"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "\"{}\" devrait-il être un superutilisateur (sudo) ?"
msgid "Select which partitions to encrypt"
msgstr "Sélectionner les partitions à encrypter"
msgid "very weak"
msgstr "très faible"
msgid "weak"
msgstr "faible"
msgid "moderate"
msgstr "modéré"
msgid "strong"
msgstr "fort"
msgid "Add subvolume"
msgstr "Ajouter un sous-volume"
msgid "Edit subvolume"
msgstr "Modifier le sous-volume"
msgid "Delete subvolume"
msgstr "Supprimer le sous-volume"
msgid "Configured {} interfaces"
msgstr "Interfaces {} configurées"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "Cette option active le nombre de téléchargements parallèles qui peuvent se produire pendant l'installation"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"Saisir le nombre de téléchargements parallèles à activer.\n"
" (Entrer une valeur comprise entre 1 et {})\n"
"Note :"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - Valeur maximale : {} (Autorise {} téléchargements parallèles, autorise {} téléchargements à la fois)"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - Valeur minimale : 1 (Autorise 1 téléchargement parallèle, autorise 2 téléchargements à la fois)"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - Désactiver/Défaut : 0 (Désactive le téléchargement parallèle, n'autorise qu'un seul téléchargement à la fois)"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "Entrée invalide ! Réessayer avec une entrée valide [1 pour {max_downloads}, ou 0 pour désactiver]"
msgid "Parallel Downloads"
msgstr "Téléchargements parallèles"
msgid "ESC to skip"
msgstr "ESC pour ignorer"
msgid "CTRL+C to reset"
msgstr "CTRL+C pour réinitialiser"
msgid "TAB to select"
msgstr "TAB pour sélectionner"
msgid "[Default value: 0] > "
msgstr "[Valeur par défaut : 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "Pour pouvoir utiliser cette traduction, veuillez installer manuellement une police prenant en charge la langue."
msgid "The font should be stored as {}"
msgstr "La police d'écriture doit être stockée sous {}"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Archinstall nécessite des privilèges root pour s'exécuter. Voir --help pour plus d'informations."
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 : {}"
msgid "Select one or more devices to use and configure"
msgstr "Sélectionner un ou plusieurs périphériques à utiliser et à configurer"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "Si vous réinitialisez la sélection de périphérique, cela réinitialisera également la disposition actuelle du disque. Etes-vous sûr ?"
msgid "Existing Partitions"
msgstr "Partitions existantes"
msgid "Select a partitioning option"
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"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "Ceci est une liste préprogrammée de profiles_bck, ils pourraient faciliter l'installation de choses comme les environnements de bureau"
msgid "Current profile selection"
msgstr "Sélection du profil actuel"
msgid "Remove all newly added partitions"
msgstr "Supprimer toutes les partitions nouvellement ajoutées"
msgid "Assign mountpoint"
msgstr "Attribuer un point de montage"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "Marquer/Démarquer à formater (efface les données)"
msgid "Mark/Unmark as bootable"
msgstr "Marquer/Démarquer comme amorçable"
msgid "Change filesystem"
msgstr "Changer le système de fichiers"
msgid "Mark/Unmark as compressed"
msgstr "Marquer/Démarquer comme compressé"
msgid "Set subvolumes"
msgstr "Définir des sous-volumes"
msgid "Delete partition"
msgstr "Supprimer la partition"
msgid "Partition"
msgstr "Partition"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "Cette partition est actuellement encrypté, pour la formater, un système de fichiers doit être spécifié"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "Les points de montage de partition sont relatifs à l'intérieur de l'installation, le démarrage serait /boot par exemple."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "Si le point de montage /boot est défini, la partition sera également marquée comme amorçable."
msgid "Mountpoint: "
msgstr "Point de montage : "
msgid "Current free sectors on device {}:"
msgstr "Secteurs actuellement libres sur le périphérique {} :"
msgid "Total sectors: {}"
msgstr "Total des secteurs : {}"
msgid "Enter the start sector (default: {}): "
msgstr "Saisir le secteur de début (par défaut : {}) : "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
msgstr "Saisir le secteur de fin de la partition (pourcentage ou numéro de bloc, par défaut : {}) : "
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 : {}"
msgid "Encryption type"
msgstr "Type de chiffrement"
msgid "Iteration time"
msgstr ""
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr ""
msgid "Higher values increase security but slow down boot time"
msgstr "Des valeurs plus grandes peuvent agrandir la sécurité, mais peuvent ralentir le temps de démarrage"
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr "Par défaut: 10000ms, range recommandé: 1000-60000"
msgid "Iteration time cannot be empty"
msgstr "Le temps d'itération ne peut pas être vide"
msgid "Iteration time must be at least 100ms"
msgstr "Le temps d'itération doit être d'au moins 100 ms"
msgid "Iteration time must be at most 120000ms"
msgstr "Le temps d'itération doit être au maximum 120000 ms"
msgid "Please enter a valid number"
msgstr "S'il vous plaît entrez un nombre valide"
msgid "Partitions"
msgstr "Partitions"
msgid "No HSM devices available"
msgstr "Aucun périphérique HSM disponible"
msgid "Partitions to be encrypted"
msgstr "Partitions à encrypter"
msgid "Select disk encryption option"
msgstr "Sélectionner l'option de chiffrement du disque"
msgid "Select a FIDO2 device to use for HSM"
msgstr "Sélectionner un périphérique FIDO2 à utiliser pour HSM"
msgid "Use a best-effort default partition layout"
msgstr "Utiliser une disposition de partition optimale par défaut"
msgid "Manual Partitioning"
msgstr "Partitionnement manuel"
msgid "Pre-mounted configuration"
msgstr "Configuration pré-montée"
msgid "Unknown"
msgstr "Inconnu"
msgid "Partition encryption"
msgstr "Chiffrement des partitions"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! Formatage {} dans "
msgid "← Back"
msgstr "← Retour"
msgid "Disk encryption"
msgstr "Chiffrement du disque"
msgid "Configuration"
msgstr "Configuration"
msgid "Password"
msgstr "Mot de passe"
msgid "All settings will be reset, are you sure?"
msgstr "Tous les paramètres seront réinitialisés, êtes-vous sûr ?"
msgid "Back"
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 : {}"
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 "Le pilote Nvidia propriétaire n'est pas pris en charge par Sway. Il est probable que vous rencontriez des problèmes, êtes-vous d'accord avec cela ?"
msgid "Installed packages"
msgstr "Paquets installés"
msgid "Add profile"
msgstr "Ajouter un profil"
msgid "Edit profile"
msgstr "Modifier le profil"
msgid "Delete profile"
msgstr "Supprimer le profil"
msgid "Profile name: "
msgstr "Nom de profil : "
msgid "The profile name you entered is already in use. Try again"
msgstr "Le nom de profil que vous avez saisi est déjà utilisé. Essayer à nouveau"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "Saisir les paquets à installer avec ce profil (séparés par des espaces, vide pour ignorer) : "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "Saisir les services à activer avec ce profil (séparés par des espaces, vide pour ignorer) : "
msgid "Should this profile be enabled for installation?"
msgstr "Ce profil doit-il être activé pour l'installation ?"
msgid "Create your own"
msgstr "Créer le votre"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"Sélectionner un pilote graphique ou laisser vide pour installer tous les pilotes open source"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway a besoin d'accéder à votre espace (ensemble de périphériques matériels : clavier, souris, etc.)"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Choisir une option pour permettre à Sway d'accéder à votre matériel"
msgid "Graphics driver"
msgstr "Pilote graphique"
msgid "Greeter"
msgstr "Greeter (interface de connexion)"
msgid "Please chose which greeter to install"
msgstr "Veuillez choisir le greeter (interface de connexion) à installer"
msgid "This is a list of pre-programmed default_profiles"
msgstr "Il s'agit d'une liste préprogrammée de default_profiles par défaut"
msgid "Disk configuration"
msgstr "Configuration du disque"
msgid "Profiles"
msgstr "Profils"
msgid "Finding possible directories to save configuration files ..."
msgstr "Recherche des répertoires possibles pour enregistrer les fichiers de configuration..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "Sélectionner le répertoire (ou les répertoires) pour enregistrer les fichiers de configuration"
msgid "Add a custom mirror"
msgstr "Ajouter un miroir personnalisé"
msgid "Change custom mirror"
msgstr "Changer le miroir personnalisé"
msgid "Delete custom mirror"
msgstr "Supprimer le miroir personnalisé"
msgid "Enter name (leave blank to skip): "
msgstr "Entrer le nom (laisser vide pour ignorer) : "
msgid "Enter url (leave blank to skip): "
msgstr "Entrer l'URL (laisser vide pour ignorer) : "
msgid "Select signature check option"
msgstr "Sélectionner l'option de vérification de signature"
msgid "Select signature option"
msgstr "Sélectionner l'option de signature"
msgid "Custom mirrors"
msgstr "Miroirs personnalisés"
msgid "Defined"
msgstr "Défini"
msgid "Save user configuration (including disk layout)"
msgstr "Enregistrer la configuration utilisateur (y compris la disposition du disque)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"Saisir un répertoire pour la/les configuration(s) à enregistrer (complétion par tabulation activée)\n"
"Entrer le nom du répertoire de sauvegarde : "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"Voulez-vous enregistrer {} fichier(s) de configuration à l'emplacement suivant ?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "Enregistrement de {} fichiers de configuration dans {}"
msgid "Mirrors"
msgstr "Miroirs"
msgid "Mirror regions"
msgstr "Régions miroir"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - Valeur maximale : {} (Autorise {} téléchargements parallèles, autorise {max_downloads+1} téléchargements à la fois)"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "Entrée invalide ! Réessayer avec une entrée valide [1 pour {}, ou 0 pour désactiver]"
msgid "Locales"
msgstr "Paramètres régionaux"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "Utiliser NetworkManager (nécessaire pour configurer graphiquement internet dans GNOME et KDE)"
msgid "Total: {} / {}"
msgstr "Total (taille) : {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "Toutes les valeurs saisies peuvent être saccompagnées par une unité : B, KB, KiB, MB, MiB..."
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "Si aucune unité n'est fournie, la valeur est interprétée comme des secteurs\""
msgid "Enter start (default: sector {}): "
msgstr "Saisir le secteur de début (par défaut : secteur {}) : "
msgid "Enter end (default: {}): "
msgstr "Saisir le secteur de fin (par défaut : secteur {}) : "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "Impossible de déterminer les appareils fido2. Est-ce que libfido2 est installé ?"
msgid "Path"
msgstr "Chemin"
msgid "Manufacturer"
msgstr "Fabricant"
msgid "Product"
msgstr "Produit"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "Configuration invalide : {error}"
msgid "Type"
msgstr "Type"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "Cette option active le nombre de téléchargements parallèles pouvant avoir lieu lors des téléchargements des paquets"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"Saisir le nombre de téléchargements parallèles à activer.\n"
"\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)"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - Désactiver/Par défaut : 0 (Désactive le téléchargement parallèle, autorise un seul téléchargement à la fois)\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "Entrée invalide ! Réessayer avec une entrée valide [ou 0 pour désactiver]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Hyprland a besoin d'accéder à votre espace (ensemble de périphériques matériels, par exemple clavier, souris, etc)"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Choisir une option pour donner à Hyprland l'accès à votre matériel"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "Toutes les valeurs saisies peuvent être accompagnées par une unité : %, B, KB, KiB, MB, MiB..."
msgid "Would you like to use unified kernel images?"
msgstr "Souhaitez-vous utiliser des images de noyau unifiées ?"
msgid "Unified kernel images"
msgstr "Images du noyau unifiées"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "En attente de la fin de la synchronisation de l'heure (timedatectl show) de finir."
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "La synchronisation de l'heure ne se termine pas, veuillez consulter la documentation afin de trouver des solutions de contournement : https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "Ignorer l'attente de la synchronisation automatique de l'heure (cela peut entraîner des problèmes si l'heure n'est pas synchronisée lors de l'installation)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "En attente de la fin de la synchronisation du trousseau de clés d'Arch Linux (archlinux-keyring-wkd-sync) de finir."
msgid "Selected profiles: "
msgstr "Profils sélectionnés : "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "La synchronisation de l'heure ne se termine pas, veuillez consulter la documentation afin de trouver des solutions de contournement : https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "Marquer/Démarquer comme nodatacow"
msgid "Would you like to use compression or disable CoW?"
msgstr "Souhaitez-vous utiliser la compression ou désactiver la copie à l'écriture (CoW) ?"
msgid "Use compression"
msgstr "Utiliser la compression"
msgid "Disable Copy-on-Write"
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 : {}"
msgid "LVM configuration type"
msgstr "Type de configuration LVM"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "Le chiffrement de disque LVM avec plus de 2 partitions n'est actuellement pas pris en charge"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "Utiliser NetworkManager (nécessaire pour configurer internet graphiquement dans GNOME et KDE Plasma)"
msgid "Select a LVM option"
msgstr "Sélectionner une option LVM"
msgid "Partitioning"
msgstr "Partitionnement"
msgid "Logical Volume Management (LVM)"
msgstr "Gestion des volumes logiques (LVM)"
msgid "Physical volumes"
msgstr "Volumes physiques"
msgid "Volumes"
msgstr "Volumes"
msgid "LVM volumes"
msgstr "Volumes LVM"
msgid "LVM volumes to be encrypted"
msgstr "Volumes LVM à encrypter"
msgid "Select which LVM volumes to encrypt"
msgstr "Sélectionner les volumes LVM à encrypter"
msgid "Default layout"
msgstr "Disposition par défaut"
msgid "No Encryption"
msgstr "Pas de chiffrement"
msgid "LUKS"
msgstr "Configuration de la clé unifiée Linux (LUKS)"
msgid "LVM on LUKS"
msgstr "LVM sur LUKS (sécurité maximale)"
msgid "LUKS on LVM"
msgstr "LUKS sur LVM (flexibilité)"
msgid "Yes"
msgstr "Oui"
msgid "No"
msgstr "Non"
msgid "Archinstall help"
msgstr "Aide pour Archinstall"
msgid " (default)"
msgstr " (par défaut)"
msgid "Press Ctrl+h for help"
msgstr "Appuyer sur Ctrl+h pour obtenir de l'aide"
msgid "Choose an option to give Sway access to your hardware"
msgstr "Choisir une option pour permettre à Sway d'accéder à votre matériel"
msgid "Seat access"
msgstr "Accès au siège"
msgid "Mountpoint"
msgstr "Point de montage"
msgid "HSM"
msgstr "Gestion hiérarchique du stockage (HSM)"
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "Entrer le mot de passe de chiffrement du disque (laisser vide pour aucun chiffrement)"
msgid "Disk encryption password"
msgstr "Mot de passe de chiffrement du disque"
msgid "Partition - New"
msgstr "Partition - Nouveau"
msgid "Filesystem"
msgstr "Système de fichiers"
msgid "Invalid size"
msgstr "Taille invalide"
msgid "Start (default: sector {}): "
msgstr "Démarrer (par défaut : secteur {}): "
msgid "End (default: {}): "
msgstr "Fin (par défaut : {}): "
msgid "Subvolume name"
msgstr "Nom du sous-volume"
msgid "Disk configuration type"
msgstr "Type de configuration du disque"
msgid "Root mount directory"
msgstr "Répertoire de montage racine"
msgid "Select language"
msgstr "Sélectionner la langue"
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "Écrire les paquets supplémentaires à installer (séparés par des espaces, laisser vide pour ignorer)"
msgid "Invalid download number"
msgstr "Numéro de téléchargement invalide"
msgid "Number downloads"
msgstr "Nombre de téléchargements"
msgid "The username you entered is invalid"
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"
msgid "Interfaces"
msgstr "Interfaces"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "Vous devez entrer une adresse IP valide en mode IP-config"
msgid "Modes"
msgstr "Modes"
msgid "IP address"
msgstr "Adresse IP"
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "Entrer l'adresse IP de votre passerelle (routeur) (laisser vide pour aucun)"
msgid "Gateway address"
msgstr "Adresse de passerelle"
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "Entrer vos serveurs DNS séparés par des espaces (laisser vide pour aucun)"
msgid "DNS servers"
msgstr "Serveurs DNS"
msgid "Configure interfaces"
msgstr "Configurer les interfaces"
msgid "Kernel"
msgstr "Noyau"
msgid "UEFI is not detected and some options are disabled"
msgstr "L'UEFI n'est pas détecté et certaines options sont désactivées"
msgid "Info"
msgstr "Info"
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "Le pilote propriétaire Nvidia n'est pas supporté par Sway."
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "Il est probable que vous rencontriez des problèmes, êtes-vous d'accord avec cela ?"
msgid "Main profile"
msgstr "Profil principal"
msgid "Confirm password"
msgstr "Confirmer le mot de passe"
msgid "The confirmation password did not match, please try again"
msgstr "Le mot de passe de confirmation ne correspond pas, veuillez réessayer"
msgid "Not a valid directory"
msgstr "Ce n'est pas un répertoire valide"
msgid "Would you like to continue?"
msgstr "Voulez-vous continuer ?"
msgid "Directory"
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 {} ?"
msgid "Enabled"
msgstr "Activé"
msgid "Disabled"
msgstr "Désactivé"
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr "Veuillez soumettre ce problème (et fichier) à https://github.com/archlinux/archinstall/issues"
msgid "Mirror name"
msgstr "Nom du miroir"
msgid "Url"
msgstr "Url"
msgid "Select signature check"
msgstr "Sélectionner la vérification de la signature"
msgid "Select execution mode"
msgstr "Sélectionner le mode d'exécution"
msgid "Press ? for help"
msgstr "Appuyer sur ? pour obtenir de l'aide"
msgid "Choose an option to give Hyprland access to your hardware"
msgstr "Choisir une option pour donner à Hyprland l'accès à votre matériel"
msgid "Additional repositories"
msgstr "Dépôts supplémentaires"
msgid "NTP"
msgstr "NTP"
msgid "Swap on zram"
msgstr "Swap sur zram"
msgid "Name"
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 : {}): "
msgid "HSM device"
msgstr "Périphérique HSM"
msgid "Some packages could not be found in the repository"
msgstr "Certains paquets sont introuvables dans le dépôt"
msgid "User"
msgstr "Utilisateur"
msgid "The specified configuration will be applied"
msgstr "La configuration spécifiée sera appliquée"
msgid "Wipe"
msgstr "Effacer"
msgid "Mark/Unmark as XBOOTLDR"
msgstr "Marquer/Démarquer comme XBOOTLDR"
msgid "Loading packages..."
msgstr "Chargement des paquets..."
msgid "Select any packages from the below list that should be installed additionally"
msgstr "Sélectionner les paquets à installer en supplément dans la liste ci-dessous"
msgid "Add a custom repository"
msgstr "Ajouter un dépôt personnalisé"
msgid "Change custom repository"
msgstr "Modifier le dépôt personnalisé"
msgid "Delete custom repository"
msgstr "Supprimer le dépôt personnalisé"
msgid "Repository name"
msgstr "Nom du dépôt"
msgid "Add a custom server"
msgstr "Ajouter un serveur personnalisé"
msgid "Change custom server"
msgstr "Modifier le serveur personnalisé"
msgid "Delete custom server"
msgstr "Supprimer le serveur personnalisé"
msgid "Server url"
msgstr "URL du serveur"
msgid "Select regions"
msgstr "Sélectionner des régions"
msgid "Add custom servers"
msgstr "Ajouter des serveurs personnalisés"
msgid "Add custom repository"
msgstr "Ajouter un dépôt personnalisé"
msgid "Loading mirror regions..."
msgstr "Chargement des régions miroirs..."
msgid "Mirrors and repositories"
msgstr "Miroirs et dépôts"
msgid "Selected mirror regions"
msgstr "Régions de miroirs sélectionnées"
msgid "Custom servers"
msgstr "Serveurs personnalisés"
msgid "Custom repositories"
msgstr "Dépôts personnalisés"
msgid "Only ASCII characters are supported"
msgstr "Seuls les caractères ASCII sont pris en charge"
msgid "Show help"
msgstr "Afficher de l'aide"
msgid "Exit help"
msgstr "Quitter l’aide"
msgid "Preview scroll up"
msgstr "Faire défiler l’aperçu vers le haut"
msgid "Preview scroll down"
msgstr "Faire défiler l’aperçu vers le bas"
msgid "Move up"
msgstr "Déplacer vers le haut"
msgid "Move down"
msgstr "Déplacer vers le bas"
msgid "Move right"
msgstr "Déplacer vers la droite"
msgid "Move left"
msgstr "Déplacer vers la gauche"
msgid "Jump to entry"
msgstr "Aller à l’entrée"
msgid "Skip selection (if available)"
msgstr "Ignorer la sélection (si disponible)"
msgid "Reset selection (if available)"
msgstr "Réinitialiser la sélection (si disponible)"
msgid "Select on single select"
msgstr "Sélectionner sur sélection unique"
msgid "Select on multi select"
msgstr "Sélectionner sur sélection multiple"
msgid "Reset"
msgstr "Réinitialiser"
msgid "Skip selection menu"
msgstr "Passer le menu de sélection"
msgid "Start search mode"
msgstr "Démarrer le mode de recherche"
msgid "Exit search mode"
msgstr "Quitter le mode de recherche"
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "labwc a besoin d’accéder à votre siège (ensemble d’appareils matériels, c’est-à-dire clavier, souris, etc.)"
msgid "Choose an option to give labwc access to your hardware"
msgstr "Choisir une option pour donner à labwc l’accès à votre matériel"
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "niri a besoin d’accéder à vos périphériques (ensemble d’appareils matériels, c’est-à-dire clavier, souris, etc.)"
msgid "Choose an option to give niri access to your hardware"
msgstr "Choisir une option pour donner à niri l’accès à votre matériel"
msgid "Mark/Unmark as ESP"
msgstr "Marquer/Démarquer comme ESP"
msgid "Package group:"
msgstr "Groupe de paquets :"
#, fuzzy
msgid "Exit archinstall"
msgstr "Sortir d'Archinstall"
#, fuzzy
msgid "Reboot system"
msgstr "Redémarrer le système"
#, fuzzy
msgid "chroot into installation for post-installation configurations"
msgstr "Souhaitez-vous chrooter dans l'installation nouvellement créée et effectuer la configuration post-installation ?"
msgid "Installation completed"
msgstr "Installation complétée"
#, fuzzy
msgid "What would you like to do next?"
msgstr "Voulez-vous continuer ?"
#, 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 \"{}\""
#, fuzzy
msgid "Incorrect credentials file decryption password"
msgstr "Mot de passe de déchiffrement du disque"
#, fuzzy
msgid "Incorrect password"
msgstr "Mot de passe incorrect"
#, fuzzy
msgid "Credentials file decryption password"
msgstr "Mot de passe de déchiffrement du disque"
#, fuzzy
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr "Voulez-vous enregistrer le(s) fichier(s) de configuration dans {} ?"
#, fuzzy
msgid "Credentials file encryption password"
msgstr "Mot de passe de l'encryption du disque"
#, 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 "Print service"
msgstr ""
#, fuzzy
msgid "Would you like to configure the print service?"
msgstr "Voulez-vous configurer le Bluetooth ?"
#, fuzzy
msgid "Power management"
msgstr "Gestion des partitions : {}"
msgid "Authentication"
msgstr "Authentification"
msgid "Applications"
msgstr "Applications"
msgid "U2F login method: "
msgstr "Méthode\tde connexion U2F : "
msgid "Passwordless sudo: "
msgstr "Sudo sans mot de passe : "
#, python-brace-format
msgid "Btrfs snapshot type: {}"
msgstr "Type de\tsnapshot 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"
msgid "Starting device modifications in "
msgstr ""
#, fuzzy
msgid "No network connection found"
msgstr "Aucune configuration réseau"
#, fuzzy
msgid "Would you like to connect to a Wifi?"
msgstr "Voulez-vous continuer ?"
#, fuzzy
msgid "No wifi interface found"
msgstr "Configurer les interfaces"
#, fuzzy
msgid "Select wifi network to connect to"
msgstr "Sélectionner une interface réseau à configurer"
msgid "Scanning wifi networks..."
msgstr ""
#, fuzzy
msgid "No wifi networks found"
msgstr "Aucune configuration réseau"
msgid "Failed setting up wifi"
msgstr ""
#, fuzzy
msgid "Enter wifi password"
msgstr "Entrer un mot de passe : "
msgid "Ok"
msgstr ""
msgid "Removable"
msgstr ""
msgid "Install to removable location"
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr ""
msgid "Will install to standard location with NVRAM entry"
msgstr ""
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr ""
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr ""
msgid "USB drives or other portable external media."
msgstr ""
msgid "Systems where you want the disk to be bootable on any computer."
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr ""
msgid "Will install to custom location with NVRAM entry"
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr ""
msgid "most Apple Macs, many laptops..."
msgstr ""
#, fuzzy
msgid "Language"
msgstr "Langue locale"
msgid "Compression algorithm"
msgstr ""
#, fuzzy
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Seuls les paquets tels que base, base-devel, linux, linux-firmware, efibootmgr et les paquets de profil optionnels sont installés."
#, fuzzy
msgid "Select zram compression algorithm:"
msgstr "Sélectionner un point de montage :"
msgid "Use Network Manager (default backend)"
msgstr ""
msgid "Use Network Manager (iwd backend)"
msgstr ""
#, python-brace-format
#~ msgid "Edit {origkey} :"
#~ msgstr "Modifier {origkey} :"
================================================
FILE: archinstall/locales/ga/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: Aindriú Mac Giolla Eoin \n"
"Language-Team: \n"
"Language: ga\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.4.4\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] Cruthaíodh logchomhad anseo: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Cuir isteach an tsaincheist seo (agus an comhad) chuig https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "Ar mhaith leat tobscoir?"
msgid "And one more time for verification: "
msgstr "Agus uair amháin eile le haghaidh fíoraithe: "
msgid "Would you like to use swap on zram?"
msgstr "Ar mhaith leat úsáid a bhaint as babhtáil ar zram?"
msgid "Desired hostname for the installation: "
msgstr "An t-óstainm inmhianaithe don suiteáil: "
msgid "Username for required superuser with sudo privileges: "
msgstr "Ainm úsáideora le haghaidh sár-úsáideoir riachtanach le pribhléidí sudo: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "Aon úsáideoirí breise le suiteáil (fág bán gan aon úsáideoir): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "Ar cheart don úsáideoir seo a bheith ina shár-úsáideoir (sudoer)?"
msgid "Select a timezone"
msgstr "Roghnaigh crios ama"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "Ar mhaith leat GRUB a úsáid mar bootloader in ionad systemd-boot?"
msgid "Choose a bootloader"
msgstr "Roghnaigh lódálaí tosaithe"
msgid "Choose an audio server"
msgstr "Roghnaigh freastalaí fuaime"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Ní shuiteáiltear ach pacáistí cosúil le pacáistí bonn, base-devel, linux, linux-firmware, efibootmgr agus próifíl roghnach."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr ""
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "Más mian leat brabhsálaí gréasáin, mar firefox nó cróimiam, is féidir leat é a shonrú sa leid seo a leanas."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "Scríobh pacáistí breise le suiteáil (spás scartha, fág bán le scipeáil): "
msgid "Copy ISO network configuration to installation"
msgstr "Cóipeáil cumraíocht líonra ISO chuig an suiteáil"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "Úsáid NetworkManager (riachtanach chun an t-idirlíon a chumrú go grafach i GNOME agus KDE)"
msgid "Select one network interface to configure"
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): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "Cuir isteach do sheoladh IP geata (ródaire) nó fág bán é: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "Cuir isteach do fhreastalaithe DNS (spás scartha, folamh gan aon cheann): "
msgid "Select which filesystem your main partition should use"
msgstr "Roghnaigh cén córas comhaid ar cheart do do phríomh-dheighilt a úsáid"
msgid "Current partition layout"
msgstr "Leagan amach na críochdheighilte reatha"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"Roghnaigh cad atá le déanamh leis\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "Cuir isteach cineál córais comhaid atá ag teastáil don deighilt"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "Cuir isteach an suíomh tosaithe (in aonaid dheighilte: s, GB, %, etc. ; réamhshocrú: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "Cuir isteach an suíomh deiridh (in aonaid dheighilte: s, GB, %, etc.; ex: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} tá deighiltí ciúáilte, bainfidh sé seo iad, an bhfuil tú cinnte?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"Roghnaigh de réir innéacs cé na deighiltí atá le scriosadh"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"Roghnaigh de réir innéacs cén deighilt a ghairfidh tú"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * Tá mount-pointí críochdheighilte i gcoibhneas leis an taobh istigh den suiteáil, bheadh an tosaithe / tosaithe mar shampla."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "Roghnaigh cá háit ar cheart an deighilt a shuiteáil (fág bán chun an pointe sléibhe a bhaint): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"Roghnaigh an deighilt le masc le haghaidh formáidithe"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"Roghnaigh an deighilt lena mharcáil mar chriptithe"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"Roghnaigh an deighilt atá le marcáil mar bootable"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"Roghnaigh an deighilt chun córas comhaid a shocrú air"
msgid "Enter a desired filesystem type for the partition: "
msgstr "Cuir isteach cineál córais comhad atá ag teastáil don deighilt: "
msgid "Archinstall language"
msgstr "Teanga Archinstall"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "Scrios gach tiomántán roghnaithe agus bain úsáid as leagan amach deighilte réamhshocraithe is fearr iarrachta"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "Roghnaigh cad atá le déanamh le gach tiomántán aonair (agus úsáid deighilte ina dhiaidh sin)"
msgid "Select what you wish to do with the selected block devices"
msgstr "Roghnaigh cad is mian leat a dhéanamh leis na feistí bloc roghnaithe"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "Is liosta é seo de phróifílí réamhchláraithe, b'fhéidir go n-éascódh siad rudaí cosúil le timpeallachtaí deisce a shuiteáil"
msgid "Select keyboard layout"
msgstr "Roghnaigh leagan amach an mhéarchláir"
msgid "Select one of the regions to download packages from"
msgstr "Roghnaigh ceann de na réigiúin chun pacáistí a íoslódáil uaidh"
msgid "Select one or more hard drives to use and configure"
msgstr "Roghnaigh tiomántán crua amháin nó níos mó le húsáid agus cumraigh"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "Chun an chomhoiriúnacht is fearr le do chrua-earraí AMD, b'fhéidir gur mhaith leat na roghanna uile foinse oscailte nó AMD / ATI a úsáid."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "Chun an chomhoiriúnacht is fearr le do chrua-earraí Intel, b'fhéidir gur mhaith leat na roghanna uile foinse oscailte nó Intel a úsáid.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "Chun an comhoiriúnacht is fearr le do chrua-earraí Nvidia, b'fhéidir gur mhaith leat an tiománaí dílseánaigh Nvidia a úsáid.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Roghnaigh tiománaí grafaicí nó fág bán é chun gach tiománaí foinse oscailte a shuiteáil"
msgid "All open-source (default)"
msgstr "Gach foinse oscailte (réamhshocraithe)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "Roghnaigh cé na heithneanna le húsáid nó fág bán don réamhshocrú \"{}\""
msgid "Choose which locale language to use"
msgstr "Roghnaigh cén teanga logánta is cóir a úsáid"
msgid "Choose which locale encoding to use"
msgstr "Roghnaigh cén ionchódú locale is cóir a úsáid"
msgid "Select one of the values shown below: "
msgstr "Roghnaigh ceann amháin de na luachanna a thaispeántar thíos: "
msgid "Select one or more of the options below: "
msgstr "Roghnaigh ceann amháin nó níos mó de na roghanna thíos: "
msgid "Adding partition...."
msgstr "Deighilt á cur leis...."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "Ní mór duit cineál bailí fs-type a chur isteach chun leanúint ar aghaidh. Féach man parted le haghaidh cineálacha fs-type bailí."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "Earráid: Mar thoradh ar liostú próifílí ar URL \"{}\" bhí:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "Earráid: Níorbh fhéidir an toradh \"{}\" a dhíchódú mar JSON:"
msgid "Keyboard layout"
msgstr "Leagan amach méarchlár"
msgid "Mirror region"
msgstr "Réigiún scáthán"
msgid "Locale language"
msgstr "Teanga logánta"
msgid "Locale encoding"
msgstr "Ionchódú locale"
msgid "Drive(s)"
msgstr "Tiomántán(í)"
msgid "Disk layout"
msgstr "Leagan amach diosca"
msgid "Encryption password"
msgstr "Pasfhocal criptithe"
msgid "Swap"
msgstr "Babhtáil"
msgid "Bootloader"
msgstr "Lódálaí Tosaithe"
msgid "Root password"
msgstr "Pasfhocal Root"
msgid "Superuser account"
msgstr "Cuntas sár-úsáideoir"
msgid "User account"
msgstr "Cuntas úsáideora"
msgid "Profile"
msgstr "Próifíl"
msgid "Audio"
msgstr "Fuaime"
msgid "Kernels"
msgstr "Eithne"
msgid "Additional packages"
msgstr "Pacáistí breise"
msgid "Network configuration"
msgstr "Cumraíocht líonra"
msgid "Automatic time sync (NTP)"
msgstr "Sioncronú ama uathoibríoch (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "Suiteáil ({} config(s) in easnamh)"
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 ""
"Shocraigh tú an rogha tiomántán crua a scipeáil\n"
"agus úsáidfidh sé cibé tiomántán atá gléasta ag {} (turgnamhach)\n"
"RABHADH: Ní seiceálfaidh Archinstall oiriúnacht an tsocraithe seo\n"
"Ar mhaith leat leanúint ar aghaidh?"
msgid "Re-using partition instance: {}"
msgstr "Mar shampla deighilte a athúsáid: {}"
msgid "Create a new partition"
msgstr "Cruthaigh deighilt nua"
msgid "Delete a partition"
msgstr "Scrios deighilt"
msgid "Clear/Delete all partitions"
msgstr "Glan/Scrios gach Deighiltí"
msgid "Assign mount-point for a partition"
msgstr "Sann mount-point le haghaidh críochdheighilte"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "Marcáil/Dímharcáil deighilt atá le formáidiú (síolraigh na sonraí)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "Marcáil/Dímharcáil críochdheighilt mar atá criptithe"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "Marcáil/Dímharcáil críochdheighilt mar bootable (uathoibríoch le haghaidh /boot)"
msgid "Set desired filesystem for a partition"
msgstr "Socraigh córas comhaid atá ag teastáil le haghaidh críochdheighilte"
msgid "Abort"
msgstr "Tobscoir"
msgid "Hostname"
msgstr "Óstainm"
msgid "Not configured, unavailable unless setup manually"
msgstr "Gan a bheith cumraithe, níl sé ar fáil mura socraítear é de láimh"
msgid "Timezone"
msgstr "Crios ama"
msgid "Set/Modify the below options"
msgstr "Socraigh/Athraigh na roghanna thíos"
msgid "Install"
msgstr "Suiteáil"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"Úsáid ESC chun scipeáil\n"
"\n"
msgid "Suggest partition layout"
msgstr "Mol leagan amach na críochdheighilte"
msgid "Enter a password: "
msgstr "Iontráil pasfhocal: "
msgid "Enter a encryption password for {}"
msgstr "Cuir isteach pasfhocal criptithe le haghaidh {}"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "Cuir isteach pasfhocal criptithe diosca (fág bán gan aon chriptiú): "
msgid "Create a required super-user with sudo privileges: "
msgstr "Cruthaigh sár-úsáideoir riachtanach le pribhléidí sudo: "
msgid "Enter root password (leave blank to disable root): "
msgstr "Cuir isteach pasfhocal fréimhe (fág bán chun an fhréamh a dhíchumasú): "
msgid "Password for user \"{}\": "
msgstr "Pasfhocal don úsáideoir \"{}\": "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "Ag fíorú go bhfuil pacáistí breise ann (seans go dtógfaidh sé seo cúpla soicind)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "Ar mhaith leat sioncrónú ama uathoibríoch (NTP) a úsáid leis na freastalaithe réamhshocraithe ama?\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 ""
"D’fhéadfadh go mbeadh am crua-earraí agus céimeanna eile iarchumraíochta ag teastáil le go n-oibreoidh NTP.\n"
"Le haghaidh tuilleadh eolais, seiceáil le do thoil an vicí Arch"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "Cuir isteach ainm úsáideora chun úsáideoir breise a chruthú (fág bán chun scipeáil): "
msgid "Use ESC to skip\n"
msgstr "Úsáid ESC chun scipeáil\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
"Roghnaigh rud ón liosta, agus roghnaigh ceann de na gníomhartha atá ar fáil chun é a fhorghníomhú"
msgid "Cancel"
msgstr "Cealaigh"
msgid "Confirm and exit"
msgstr "Deimhnigh agus scoir"
msgid "Add"
msgstr "Cuir"
msgid "Copy"
msgstr "Cóip"
msgid "Edit"
msgstr "Cuir in eagar"
msgid "Delete"
msgstr "Scrios"
msgid "Select an action for '{}'"
msgstr "Roghnaigh gníomh le haghaidh '{}'"
msgid "Copy to new key:"
msgstr "Cóipeáil chuig eochair nua:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "Cineál nic anaithnid: {}. Is iad na luachanna féideartha ná {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"Seo é do chumraíocht roghnaithe:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Tá PacmanName ag rith cheana féin, ag fanacht 10 nóiméad ar a mhéad chun é a fhoirceannadh."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "Níor imigh an glas pacmannach a bhí ann cheana. Glan suas aon seisiúin PacmanName atá ann cheana féin le do thoil roimh úsáid a bhaint as archinstall."
msgid "Choose which optional additional repositories to enable"
msgstr "Roghnaigh na stórtha breise roghnacha le cumasú"
msgid "Add a user"
msgstr "Cuir úsáideoir leis"
msgid "Change password"
msgstr "Athraigh pasfhocal"
msgid "Promote/Demote user"
msgstr "Úsáideoir a chur chun cinn/a dhíspeagadh"
msgid "Delete User"
msgstr "Scrios Úsáideoir"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"Sainmhínigh úsáideoir nua\n"
msgid "User Name : "
msgstr "Ainm Úsáideora: "
msgid "Should {} be a superuser (sudoer)?"
msgstr "Ar cheart go mbeadh {} ina shár-úsáideoir (sudoer)?"
msgid "Define users with sudo privilege: "
msgstr "Sainmhínigh úsáideoirí a bhfuil pribhléid sudo acu: "
msgid "No network configuration"
msgstr "Gan cumraíocht líonra"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Socraigh fo-imleabhair atá ag teastáil ar dheighilt btrfs"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"Roghnaigh cén deighilt ar cheart fo-imleabhair a shocrú"
msgid "Manage btrfs subvolumes for current partition"
msgstr "Bainistigh fo-imleabhair btrfs don deighilt reatha"
msgid "No configuration"
msgstr "Gan cumraíocht"
msgid "Save user configuration"
msgstr "Sábháil cumraíocht úsáideora"
msgid "Save user credentials"
msgstr "Sábháil dintiúir úsáideora"
msgid "Save disk layout"
msgstr "Sábháil leagan amach diosca"
msgid "Save all"
msgstr "Sábháil go léir"
msgid "Choose which configuration to save"
msgstr "Roghnaigh cén chumraíocht atá le sábháil"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "Cuir isteach eolaire don chumraíocht(s) atá le sábháil: "
msgid "Not a valid directory: {}"
msgstr "Ní eolaire bailí é: {}"
msgid "The password you are using seems to be weak,"
msgstr "Is cosúil go bhfuil an pasfhocal atá in úsáid agat lag,"
msgid "are you sure you want to use it?"
msgstr "an bhfuil tú cinnte gur mhaith leat é a úsáid?"
msgid "Optional repositories"
msgstr "Taisclanna roghnacha"
msgid "Save configuration"
msgstr "Sábháil cumraíocht"
msgid "Missing configurations:\n"
msgstr "Cumraíochtaí in easnamh:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "Ní mór fréimhe pasfhocal nó ar a laghad 1 shár-úsáideoir a shonrú"
msgid "Manage superuser accounts: "
msgstr "Bainistigh cuntais sár-úsáideoirí: "
msgid "Manage ordinary user accounts: "
msgstr "Bainistigh gnáthchuntais úsáideora: "
msgid " Subvolume :{:16}"
msgstr " Fo-imleabhar :{:16}"
msgid " mounted at {:16}"
msgstr " suite ar {:16}"
msgid " with option {}"
msgstr " le rogha {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
"Líon isteach na luachanna atá ag teastáil le haghaidh fo-imleabhar nua\n"
msgid "Subvolume name "
msgstr "Ainm fo-imleabhar "
msgid "Subvolume mountpoint"
msgstr "Pointe sléibhe subvolume"
msgid "Subvolume options"
msgstr "Roghanna subvolume"
msgid "Save"
msgstr "Sábháil"
msgid "Subvolume name :"
msgstr "Ainm fo-imleabhar :"
msgid "Select a mount point :"
msgstr "Roghnaigh pointe gléasta :"
msgid "Select the desired subvolume options "
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: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "Ar mhaith leat fo-imleabhair BTRFS a úsáid le struchtúr réamhshocraithe?"
msgid "Would you like to use BTRFS compression?"
msgstr "Ar mhaith leat comhbhrú BTRFS a úsáid?"
msgid "Would you like to create a separate partition for /home?"
msgstr "Ar mhaith leat críochdheighilt ar leith a chruthú don /home?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "Níl an acmhainn íosta ag na tiomántáin roghnaithe le haghaidh moladh uathoibríoch\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "Toilleadh íosta le haghaidh /deighilt baile: {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Toilleadh íosta do dheighilt Arch Linux: {}GB"
msgid "Continue"
msgstr "Lean ort"
msgid "yes"
msgstr "tá"
msgid "no"
msgstr "níl"
msgid "set: {}"
msgstr "socrú: {}"
msgid "Manual configuration setting must be a list"
msgstr "Ní mór liosta a bheith i socrú cumraíochta láimhe"
msgid "No iface specified for manual configuration"
msgstr "Níl iface sonraithe do chumraíocht láimhe"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "Teastaíonn seoladh IP ó chumraíocht láimhe nic gan DHCP uathoibríoch"
msgid "Add interface"
msgstr "Cuir comhéadan leis"
msgid "Edit interface"
msgstr "Cuir comhéadan in eagar"
msgid "Delete interface"
msgstr "Scrios comhéadan"
msgid "Select interface to add"
msgstr "Roghnaigh comhéadan le cur leis"
msgid "Manual configuration"
msgstr "Cumraíocht láimhe"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "Marcáil/Dímharcáil deighilt mar chomhbhrúite (btrfs amháin)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "Is cosúil go bhfuil an pasfhocal atá in úsáid agat lag, an bhfuil tú cinnte gur mhaith leat é a úsáid?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "Soláthraíonn sé rogha timpeallachtaí deisce agus bainisteoirí fuinneog tíleála, e.g. gnome, kde, smacht"
msgid "Select your desired desktop environment"
msgstr "Roghnaigh do thimpeallacht deisce atá ag teastáil"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "Suiteáil an-bhunúsach a ligeann duit Arch Linux a shaincheapadh mar is cuí leat."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "Soláthraíonn sé rogha de phacáistí freastalaí éagsúla le suiteáil agus le cumasú, m.sh. httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "Roghnaigh cé na freastalaithe atá le suiteáil, mura bhfuil ann dóibh, déanfar suiteáil íosta"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "Suiteáil córas íosta chomh maith le tiománaithe xorg agus grafaicí."
msgid "Press Enter to continue."
msgstr "Brúigh Enter chun leanúint ar aghaidh."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "Ar mhaith leat an tsuiteáil nuachruthaithe a chrosadh agus cumraíocht iar-shuiteála a dhéanamh?"
msgid "Are you sure you want to reset this setting?"
msgstr "An bhfuil tú cinnte gur mhaith leat an socrú seo a athshocrú?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "Roghnaigh tiomántán crua amháin nó níos mó le húsáid agus cumraigh\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "Athshocróidh aon athruithe ar an socrú reatha leagan amach an diosca!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "Má athshocraíonn tú an rogha tiomántán crua athshocróidh sé seo leagan amach reatha an diosca freisin. An bhfuil tú cinnte?"
msgid "Save and exit"
msgstr "Sábháil agus scoir"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"ina bhfuil deighiltí ciúáilte, bainfidh sé seo iad, an bhfuil tú cinnte?"
msgid "No audio server"
msgstr "Gan freastalaí fuaime"
msgid "(default)"
msgstr "(réamhshocraithe)"
msgid "Use ESC to skip"
msgstr "Úsáid ESC chun scipeáil"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"Úsáid CTRL+C chun an rogha reatha a athshocrú\n"
"\n"
msgid "Copy to: "
msgstr "Cóipeáil chuig: "
msgid "Edit: "
msgstr "Cuir: "
msgid "Key: "
msgstr "Eochair: "
msgid "Edit {}: "
msgstr "Cuir {} in eagar: "
msgid "Add: "
msgstr "Cuir leis: "
msgid "Value: "
msgstr "Luach: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "Is féidir leat scipeáil tiomántán agus deighilt a roghnú agus úsáid a bhaint as cibé socrú tiomántán atá suite ag /mnt (turgnamhach)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "Roghnaigh ceann amháin de na dioscaí nó scipeáil agus úsáid / mnt mar réamhshocrú"
msgid "Select which partitions to mark for formatting:"
msgstr "Roghnaigh na deighiltí atá le marcáil le haghaidh formáidithe:"
msgid "Use HSM to unlock encrypted drive"
msgstr "Úsáid HSM chun tiomántán criptithe a dhíghlasáil"
msgid "Device"
msgstr "Gléas"
msgid "Size"
msgstr "Méid"
msgid "Free space"
msgstr "Spás saor in aisce"
msgid "Bus-type"
msgstr "Cineál bus"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "Ní mór focal faire fréimhe nó 1 úsáideoir ar a laghad a bhfuil pribhléidí sudo aige a shonrú"
msgid "Enter username (leave blank to skip): "
msgstr "Cuir isteach ainm úsáideora (fág bán chun scipeáil): "
msgid "The username you entered is invalid. Try again"
msgstr "Tá an t-ainm úsáideora a d'iontráil tú neamhbhailí. Bain triail eile as"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "Ar cheart \"{}\" a bheith ina shár-úsáideoir (sudo)?"
msgid "Select which partitions to encrypt"
msgstr "Roghnaigh na deighiltí atá le criptiú"
msgid "very weak"
msgstr "an-lag"
msgid "weak"
msgstr "lag"
msgid "moderate"
msgstr "measartha"
msgid "strong"
msgstr "láidir"
msgid "Add subvolume"
msgstr "Cuir fo-imleabhar leis"
msgid "Edit subvolume"
msgstr "Cuir fo-imleabhar in eagar"
msgid "Delete subvolume"
msgstr "Scrios fo-imleabhar"
msgid "Configured {} interfaces"
msgstr "Comhéadain {} cumraithe"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "Cumasaíonn an rogha seo líon na n-íoslódálacha comhthreomhara is féidir a dhéanamh le linn na suiteála"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"Cuir isteach líon na n-íoslódálacha comhthreomhara atá le cumasú.\n"
" (Iontráil luach idir 1 agus {})\n"
"Nóta:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - Uasluach : {} ( Ligeann sé seo do {} íoslódálacha comhthreomhara, ceadaíonn sé {} íoslódálacha ag an am céanna )"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - Íosluach : 1 (Ceadaítear 1 íoslódáil chomhthreomhar, ceadaíonn sé 2 íosluchtú ag an am)"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - Díchumasaigh / Réamhshocrú: 0 (Díchumasaigh íoslódáil comhthreomhar, ní cheadaítear ach 1 íoslódáil ag an am)"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "Ionchur neamhbhailí! Bain triail eile as le hionchur bailí [1 go {max_downloads}, nó 0 le díchumasú]"
msgid "Parallel Downloads"
msgstr "Comhuaineach íosluchtuithe"
msgid "ESC to skip"
msgstr "ESC a scipeáil"
msgid "CTRL+C to reset"
msgstr "CTRL+C le hathshocrú"
msgid "TAB to select"
msgstr "Tab le roghnú"
msgid "[Default value: 0] > "
msgstr "[Luach réamhshocraithe: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "Chun an t-aistriúchán seo a úsáid, suiteáil cló de láimh a thacaíonn leis an teanga."
msgid "The font should be stored as {}"
msgstr "Ba cheart an cló a stóráil mar {}"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Éilíonn Archinstall pribhléidí fréimhe chun é a rith. Féach --help le haghaidh tuilleadh."
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: {}"
msgid "Select one or more devices to use and configure"
msgstr "Roghnaigh gléas amháin nó níos mó le húsáid agus cumraigh"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "Má athshocraíonn tú an rogha gléis athshocróidh sé seo leagan amach reatha an diosca freisin. An bhfuil tú cinnte?"
msgid "Existing Partitions"
msgstr "Deighiltí Láithreacha"
msgid "Select a partitioning option"
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"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "Seo liosta de profiles_bck réamhchláraithe, seans go mbeidh sé níos fusa rudaí cosúil le timpeallachtaí deisce a shuiteáil"
msgid "Current profile selection"
msgstr "Roghnú próifíle reatha"
msgid "Remove all newly added partitions"
msgstr "Bain gach deighilt nua-chur leis"
msgid "Assign mountpoint"
msgstr "Sann pointe sléibhe"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "Marcáil/Dímharcáil le formáidiú (síolraigh na sonraí)"
msgid "Mark/Unmark as bootable"
msgstr "Marcáil/Dímharcáil mar bootable"
msgid "Change filesystem"
msgstr "Athraigh córas comhaid"
msgid "Mark/Unmark as compressed"
msgstr "Marcáil/Dímharcáil mar chomhbhrúite"
msgid "Set subvolumes"
msgstr "Socraigh fo-imleabhair"
msgid "Delete partition"
msgstr "Scrios an deighilt"
msgid "Partition"
msgstr "Deighiltí"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "Tá an deighilt seo criptithe faoi láthair, chun é a fhormáid ní mór córas comhaid a shonrú"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "Tá na pointí gléasta deighilte i gcoibhneas leis an taobh istigh den suiteáil, bheadh an tosaithe mar shampla."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "Má tá mountpoint /boot socraithe, ansin marcálfar an deighilt mar bootable freisin."
msgid "Mountpoint: "
msgstr "Mountpoint: "
msgid "Current free sectors on device {}:"
msgstr "Earnálacha saor in aisce faoi láthair ar ghléas {}:"
msgid "Total sectors: {}"
msgstr "Earnálacha iomlána: {}"
msgid "Enter the start sector (default: {}): "
msgstr "Cuir isteach an earnáil tosaithe (réamhshocrú: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
msgstr "Cuir isteach earnáil deiridh na críochdheighilte (céatadán nó blocuimhir, réamhshocrú: {}): "
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: {}"
msgid "Encryption type"
msgstr "Cineál criptithe"
msgid "Iteration time"
msgstr ""
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr ""
msgid "Higher values increase security but slow down boot time"
msgstr ""
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr ""
msgid "Iteration time cannot be empty"
msgstr ""
msgid "Iteration time must be at least 100ms"
msgstr ""
msgid "Iteration time must be at most 120000ms"
msgstr ""
msgid "Please enter a valid number"
msgstr ""
msgid "Partitions"
msgstr "Deighiltí"
msgid "No HSM devices available"
msgstr "Níl aon ghléas HSM ar fáil"
msgid "Partitions to be encrypted"
msgstr "Deighiltí le bheith criptithe"
msgid "Select disk encryption option"
msgstr "Roghnaigh rogha criptithe diosca"
msgid "Select a FIDO2 device to use for HSM"
msgstr "Roghnaigh gléas FIDO2 le húsáid le haghaidh HSM"
msgid "Use a best-effort default partition layout"
msgstr "Bain úsáid as leagan amach deighilte réamhshocraithe is fearr-iarracht"
msgid "Manual Partitioning"
msgstr "Deighilt láimhe"
msgid "Pre-mounted configuration"
msgstr "Cumraíocht réamhshuiteáilte"
msgid "Unknown"
msgstr "Anaithnid"
msgid "Partition encryption"
msgstr "Criptiú críochdheighilte"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! Formáidiú {} in "
msgid "← Back"
msgstr "← Ar ais"
msgid "Disk encryption"
msgstr "Criptiú diosca"
msgid "Configuration"
msgstr "Cumraíocht"
msgid "Password"
msgstr "Pasfhocal"
msgid "All settings will be reset, are you sure?"
msgstr "Athshocrófar gach socrú, an bhfuil tú cinnte?"
msgid "Back"
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: {}"
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 "Níl an tiománaí dílseánaigh Nvidia tacaithe ag Sway. Is dócha go mbeidh fadhbanna agat, an bhfuil tú ceart go leor leis sin?"
msgid "Installed packages"
msgstr "Pacáistí suiteáilte"
msgid "Add profile"
msgstr "Cuir próifíl leis"
msgid "Edit profile"
msgstr "Cuir próifíl in eagar"
msgid "Delete profile"
msgstr "Scrios próifíl"
msgid "Profile name: "
msgstr "Ainm próifíle: "
msgid "The profile name you entered is already in use. Try again"
msgstr "Tá an t-ainm próifíle a d'iontráil tú in úsáid cheana féin. Bain triail eile as"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "Pacáistí atá le suiteáil leis an bpróifíl seo (spás scartha, fág bán le scipeáil): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "Seirbhísí atá le cumasú leis an bpróifíl seo (spás scartha, fág bán chun scipeáil): "
msgid "Should this profile be enabled for installation?"
msgstr "Ar cheart an phróifíl seo a chumasú le haghaidh suiteáil?"
msgid "Create your own"
msgstr "Cruthaigh do chuid féin"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"Roghnaigh tiománaí grafaicí nó fág bán é chun gach tiománaí foinse oscailte a shuiteáil"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Teastaíonn rochtain ó Sway ar do shuíochán (bailiúchán de ghléasanna crua-earraí i.e. méarchlár, luch, srl)"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Roghnaigh rogha chun rochtain a thabhairt do Sway ar do chrua-earraí"
msgid "Graphics driver"
msgstr "Tiománaí grafaicí"
msgid "Greeter"
msgstr "Beannóir"
msgid "Please chose which greeter to install"
msgstr "Roghnaigh cé acu beannaitheoir atá le suiteáil"
msgid "This is a list of pre-programmed default_profiles"
msgstr "Seo liosta de default_profiles réamhchláraithe"
msgid "Disk configuration"
msgstr "Cumraíocht diosca"
msgid "Profiles"
msgstr "Próifílí"
msgid "Finding possible directories to save configuration files ..."
msgstr "Eolaire féideartha a aimsiú chun comhaid cumraíochta a shábháil ..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "Roghnaigh eolaire (nó eolairí) chun comhaid cumraíochta a shábháil"
msgid "Add a custom mirror"
msgstr "Cuir scáthán saincheaptha leis"
msgid "Change custom mirror"
msgstr "Athraigh scáthán saincheaptha"
msgid "Delete custom mirror"
msgstr "Scrios scáthán saincheaptha"
msgid "Enter name (leave blank to skip): "
msgstr "Iontráil ainm (fág bán chun scipeáil): "
msgid "Enter url (leave blank to skip): "
msgstr "Cuir isteach url (fág bán chun scipeáil): "
msgid "Select signature check option"
msgstr "Roghnaigh an rogha seiceála sínithe"
msgid "Select signature option"
msgstr "Roghnaigh an rogha sínithe"
msgid "Custom mirrors"
msgstr "Scátháin saincheaptha"
msgid "Defined"
msgstr "Sainithe"
msgid "Save user configuration (including disk layout)"
msgstr "Sábháil cumraíocht úsáideora (leagan amach diosca san áireamh)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
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: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"Ar mhaith leat {} comhad cumraíochta a shábháil sa suíomh seo a leanas?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "{} comhad cumraíochta á sábháil go {}"
msgid "Mirrors"
msgstr "Scátháin"
msgid "Mirror regions"
msgstr "Réigiúin scátháin"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - Uasluach : {} ( Ligeann sé seo {} íoslódálacha comhthreomhara, ceadaítear {max_downloads+1} íosluchtú ag an am céanna )"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "Ionchur neamhbhailí! Bain triail eile as le hionchur bailí [1 go {}, nó 0 le díchumasú]"
msgid "Locales"
msgstr "Áitiúlachtaí"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "Úsáid NetworkManager (riachtanach chun an t-idirlíon a chumrú go grafach i GNOME agus KDE)"
msgid "Total: {} / {}"
msgstr "Iomlán: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "Is féidir gach luach a iontráladh a iarmhír le haonad: B, KB, KiB, MB, MiB..."
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "Mura gcuirtear aonad ar fáil, léirmhínítear an luach mar earnálacha"
msgid "Enter start (default: sector {}): "
msgstr "Cuir isteach tús (réamhshocrú: earnáil {}): "
msgid "Enter end (default: {}): "
msgstr "Cuir isteach an deireadh (réamhshocraithe: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "Ní féidir gléasanna fido2 a chinneadh. An bhfuil libfido2 suiteáilte?"
msgid "Path"
msgstr "Cosán"
msgid "Manufacturer"
msgstr "Monaróir"
msgid "Product"
msgstr "Táirge"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "Cumraíocht neamhbhailí: {error}"
msgid "Type"
msgstr "Cineál"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "Cumasaíonn an rogha seo líon na n-íoslódálacha comhthreomhara is féidir a dhéanamh le linn íoslódálacha pacáiste"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"Cuir isteach líon na n-íoslódálacha comhthreomhara atá le cumasú.\n"
"\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 )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - Díchumasaigh / Réamhshocrú: 0 (Díchumasaigh íoslódáil comhthreomhar, ní cheadaítear ach 1 íoslódáil ag an am)\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "Ionchur neamhbhailí! Bain triail eile as le hionchur bailí [nó 0 le díchumasú]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Teastaíonn rochtain ar do shuíochán ó Hyprland (bailiúchán de ghléasanna crua-earraí, i.e. méarchlár, luch, srl)"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Roghnaigh rogha chun rochtain a thabhairt do Hyprland ar do chrua-earraí"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "Is féidir gach luach a iontráladh a iarmhír le haonad: %, B, KB, KiB, MB, MiB..."
msgid "Would you like to use unified kernel images?"
msgstr "Ar mhaith leat íomhánna eithne aontaithe a úsáid?"
msgid "Unified kernel images"
msgstr "Íomhánna eithne aontaithe"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "Ag fanacht le sioncronú ama (timedatectl show) le cur i gcrích."
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Níl an sioncrónú ama críochnaithe, agus tú ag fanacht - seiceáil na doiciméid le haghaidh réitigh oibre: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "Gan bacadh le feithimh le haghaidh sioncronaithe ama uathoibríoch (féadfaidh sé seo fadhbanna a chruthú má bhíonn an t-am as sioncronaithe le linn na suiteála)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "Ag fanacht le sioncronú eochairfháinne Arch Linux (archlinux-keyring-wkd-sync) a chur i gcrích."
msgid "Selected profiles: "
msgstr "Próifílí roghnaithe: "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Níl an sioncrónú ama críochnaithe, agus tú ag fanacht - seiceáil na doiciméid le haghaidh réitigh oibre: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "Marcáil/Dímharcáil mar bhó nodata"
msgid "Would you like to use compression or disable CoW?"
msgstr "Ar mhaith leat comhbhrú a úsáid nó CoW a dhíchumasú?"
msgid "Use compression"
msgstr "Bain úsáid as comhbhrú"
msgid "Disable Copy-on-Write"
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: {}"
msgid "LVM configuration type"
msgstr "Cineál cumraíochta LVM"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "Ní thacaítear le criptiú diosca LVM le níos mó ná 2 dheighilt faoi láthair"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "Úsáid NetworkManager (riachtanach chun an t-idirlíon a chumrú go grafach i GNOME agus KDE Plasma)"
msgid "Select a LVM option"
msgstr "Roghnaigh rogha LVM"
msgid "Partitioning"
msgstr "Deighilt"
msgid "Logical Volume Management (LVM)"
msgstr "Bainistíocht Toirt Loighciúil (LVM)"
msgid "Physical volumes"
msgstr "Toirteanna fisiceacha"
msgid "Volumes"
msgstr "Imleabhair"
msgid "LVM volumes"
msgstr "Toirteanna LVM"
msgid "LVM volumes to be encrypted"
msgstr "Toirteanna LVM le criptiú"
msgid "Select which LVM volumes to encrypt"
msgstr "Roghnaigh cé na méideanna LVM atá le criptiú"
msgid "Default layout"
msgstr "Leagan amach réamhshocraithe"
msgid "No Encryption"
msgstr "Gan Criptiú"
msgid "LUKS"
msgstr "LUKS"
msgid "LVM on LUKS"
msgstr "LVM ar LUKS"
msgid "LUKS on LVM"
msgstr "LUKS ar LVM"
msgid "Yes"
msgstr "Tá"
msgid "No"
msgstr "Níl"
msgid "Archinstall help"
msgstr "Cabhair Archinstall"
msgid " (default)"
msgstr " (réamhshocraithe)"
msgid "Press Ctrl+h for help"
msgstr "Brúigh Ctrl+h chun cabhair a fháil"
#, fuzzy
msgid "Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Roghnaigh rogha chun rochtain a thabhairt do Sway ar do chrua-earraí"
msgid "Seat access"
msgstr ""
#, fuzzy
msgid "Mountpoint"
msgstr "Mountpoint: "
msgid "HSM"
msgstr ""
#, fuzzy
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "Cuir isteach pasfhocal criptithe diosca (fág bán gan aon chriptiú): "
#, fuzzy
msgid "Disk encryption password"
msgstr "Pasfhocal criptithe"
#, fuzzy
msgid "Partition - New"
msgstr "Deighiltí"
#, fuzzy
msgid "Filesystem"
msgstr "Athraigh córas comhaid"
msgid "Invalid size"
msgstr ""
#, fuzzy
msgid "Start (default: sector {}): "
msgstr "Cuir isteach tús (réamhshocrú: earnáil {}): "
#, fuzzy
msgid "End (default: {}): "
msgstr "Cuir isteach an deireadh (réamhshocraithe: {}): "
#, fuzzy
msgid "Subvolume name"
msgstr "Ainm fo-imleabhar "
#, fuzzy
msgid "Disk configuration type"
msgstr "Cumraíocht diosca"
msgid "Root mount directory"
msgstr ""
#, fuzzy
msgid "Select language"
msgstr "Teanga logánta"
#, fuzzy
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "Scríobh pacáistí breise le suiteáil (spás scartha, fág bán le scipeáil): "
msgid "Invalid download number"
msgstr ""
msgid "Number downloads"
msgstr ""
#, fuzzy
msgid "The username you entered is invalid"
msgstr "Tá an t-ainm úsáideora a d'iontráil tú neamhbhailí. Bain triail eile as"
#, fuzzy
msgid "Username"
msgstr "Ainm Úsáideora: "
#, fuzzy, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "Ar cheart \"{}\" a bheith ina shár-úsáideoir (sudo)?"
#, fuzzy
msgid "Interfaces"
msgstr "Cuir comhéadan leis"
msgid "You need to enter a valid IP in IP-config mode"
msgstr ""
msgid "Modes"
msgstr ""
msgid "IP address"
msgstr ""
#, fuzzy
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "Cuir isteach do sheoladh IP geata (ródaire) nó fág bán é: "
msgid "Gateway address"
msgstr ""
#, fuzzy
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "Cuir isteach do fhreastalaithe DNS (spás scartha, folamh gan aon cheann): "
#, fuzzy
msgid "DNS servers"
msgstr "Gan freastalaí fuaime"
#, fuzzy
msgid "Configure interfaces"
msgstr "Comhéadain {} cumraithe"
#, fuzzy
msgid "Kernel"
msgstr "Eithne"
msgid "UEFI is not detected and some options are disabled"
msgstr ""
msgid "Info"
msgstr ""
#, fuzzy
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "Níl an tiománaí dílseánaigh Nvidia tacaithe ag Sway. Is dócha go mbeidh fadhbanna agat, an bhfuil tú ceart go leor leis sin?"
#, fuzzy
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "Níl an tiománaí dílseánaigh Nvidia tacaithe ag Sway. Is dócha go mbeidh fadhbanna agat, an bhfuil tú ceart go leor leis sin?"
#, fuzzy
msgid "Main profile"
msgstr "Cuir próifíl in eagar"
#, fuzzy
msgid "Confirm password"
msgstr "Athraigh pasfhocal"
msgid "The confirmation password did not match, please try again"
msgstr ""
#, fuzzy
msgid "Not a valid directory"
msgstr "Ní eolaire bailí é: {}"
#, fuzzy
msgid "Would you like to continue?"
msgstr "Ar mhaith leat comhbhrú BTRFS a úsáid?"
msgid "Directory"
msgstr ""
#, fuzzy
msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)"
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, 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"
"\n"
"{}"
msgid "Enabled"
msgstr ""
msgid "Disabled"
msgstr ""
#, fuzzy
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Cuir isteach an tsaincheist seo (agus an comhad) chuig https://github.com/archlinux/archinstall/issues"
#, fuzzy
msgid "Mirror name"
msgstr "Réigiún scáthán"
msgid "Url"
msgstr ""
#, fuzzy
msgid "Select signature check"
msgstr "Roghnaigh an rogha seiceála sínithe"
#, fuzzy
msgid "Select execution mode"
msgstr "Roghnaigh modh forghníomhaithe"
#, fuzzy
msgid "Press ? for help"
msgstr "Brúigh Ctrl+h chun cabhair a fháil"
#, fuzzy
msgid "Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Roghnaigh rogha chun rochtain a thabhairt do Hyprland ar do chrua-earraí"
#, fuzzy
msgid "Additional repositories"
msgstr "Taisclanna roghnacha"
msgid "NTP"
msgstr ""
msgid "Swap on zram"
msgstr ""
msgid "Name"
msgstr ""
#, fuzzy
msgid "Signature check"
msgstr "Roghnaigh an rogha seiceála sínithe"
#, fuzzy, python-brace-format
msgid "Selected free space segment on device {}:"
msgstr "Earnálacha saor in aisce faoi láthair ar ghléas {}:"
#, fuzzy, python-brace-format
msgid "Size: {} / {}"
msgstr "Iomlán: {} / {}"
#, fuzzy, python-brace-format
msgid "Size (default: {}): "
msgstr "Cuir isteach an deireadh (réamhshocraithe: {}): "
#, fuzzy
msgid "HSM device"
msgstr "Gléas"
msgid "Some packages could not be found in the repository"
msgstr ""
#, fuzzy
msgid "User"
msgstr "Ainm Úsáideora: "
msgid "The specified configuration will be applied"
msgstr ""
msgid "Wipe"
msgstr ""
#, fuzzy
msgid "Mark/Unmark as XBOOTLDR"
msgstr "Marcáil/Dímharcáil mar bootable"
#, fuzzy
msgid "Loading packages..."
msgstr "Pacáistí breise"
msgid "Select any packages from the below list that should be installed additionally"
msgstr ""
#, fuzzy
msgid "Add a custom repository"
msgstr "Cuir scáthán saincheaptha leis"
#, fuzzy
msgid "Change custom repository"
msgstr "Athraigh scáthán saincheaptha"
#, fuzzy
msgid "Delete custom repository"
msgstr "Scrios scáthán saincheaptha"
#, fuzzy
msgid "Repository name"
msgstr "Réigiún scáthán"
#, fuzzy
msgid "Add a custom server"
msgstr "Cuir scáthán saincheaptha leis"
#, fuzzy
msgid "Change custom server"
msgstr "Athraigh scáthán saincheaptha"
#, fuzzy
msgid "Delete custom server"
msgstr "Scrios scáthán saincheaptha"
msgid "Server url"
msgstr ""
#, fuzzy
msgid "Select regions"
msgstr "Roghnaigh an rogha sínithe"
#, fuzzy
msgid "Add custom servers"
msgstr "Cuir scáthán saincheaptha leis"
#, fuzzy
msgid "Add custom repository"
msgstr "Cuir scáthán saincheaptha leis"
#, fuzzy
msgid "Loading mirror regions..."
msgstr "Réigiúin scátháin"
#, fuzzy
msgid "Mirrors and repositories"
msgstr "Taisclanna roghnacha"
#, fuzzy
msgid "Selected mirror regions"
msgstr "Réigiúin scátháin"
#, fuzzy
msgid "Custom servers"
msgstr "Scátháin saincheaptha"
#, fuzzy
msgid "Custom repositories"
msgstr "Taisclanna roghnacha"
msgid "Only ASCII characters are supported"
msgstr ""
msgid "Show help"
msgstr ""
msgid "Exit help"
msgstr ""
msgid "Preview scroll up"
msgstr ""
msgid "Preview scroll down"
msgstr ""
msgid "Move up"
msgstr ""
msgid "Move down"
msgstr ""
msgid "Move right"
msgstr ""
msgid "Move left"
msgstr ""
msgid "Jump to entry"
msgstr ""
msgid "Skip selection (if available)"
msgstr ""
msgid "Reset selection (if available)"
msgstr ""
#, fuzzy
msgid "Select on single select"
msgstr "Roghnaigh an rogha seiceála sínithe"
#, fuzzy
msgid "Select on multi select"
msgstr "Roghnaigh crios ama"
msgid "Reset"
msgstr ""
#, fuzzy
msgid "Skip selection menu"
msgstr "Roghnaigh modh forghníomhaithe"
msgid "Start search mode"
msgstr ""
msgid "Exit search mode"
msgstr ""
#, fuzzy
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Teastaíonn rochtain ó Sway ar do shuíochán (bailiúchán de ghléasanna crua-earraí i.e. méarchlár, luch, srl)"
#, fuzzy
msgid "Choose an option to give labwc access to your hardware"
msgstr ""
"\n"
"\n"
"Roghnaigh rogha chun rochtain a thabhairt do Sway ar do chrua-earraí"
#, fuzzy
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Teastaíonn rochtain ó Sway ar do shuíochán (bailiúchán de ghléasanna crua-earraí i.e. méarchlár, luch, srl)"
#, fuzzy
msgid "Choose an option to give niri access to your hardware"
msgstr ""
"\n"
"\n"
"Roghnaigh rogha chun rochtain a thabhairt do Sway ar do chrua-earraí"
#, fuzzy
msgid "Mark/Unmark as ESP"
msgstr "Marcáil/Dímharcáil mar bootable"
msgid "Package group:"
msgstr ""
#, fuzzy
msgid "Exit archinstall"
msgstr "Cabhair Archinstall"
#, fuzzy
msgid "Reboot system"
msgstr "Athraigh córas comhaid"
#, fuzzy
msgid "chroot into installation for post-installation configurations"
msgstr "Ar mhaith leat an tsuiteáil nuachruthaithe a chrosadh agus cumraíocht iar-shuiteála a dhéanamh?"
msgid "Installation completed"
msgstr ""
#, fuzzy
msgid "What would you like to do next?"
msgstr "Ar mhaith leat comhbhrú BTRFS a úsáid?"
#, 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"
#, fuzzy
msgid "Incorrect credentials file decryption password"
msgstr "Pasfhocal criptithe"
#, fuzzy
msgid "Incorrect password"
msgstr "Pasfhocal Root"
#, fuzzy
msgid "Credentials file decryption password"
msgstr "Pasfhocal criptithe"
#, fuzzy
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr ""
"Ar mhaith leat {} comhad cumraíochta a shábháil sa suíomh seo a leanas?\n"
"\n"
"{}"
#, fuzzy
msgid "Credentials file encryption password"
msgstr "Pasfhocal criptithe"
#, 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 "Print service"
msgstr ""
#, fuzzy
msgid "Would you like to configure the print service?"
msgstr "Ar mhaith leat comhbhrú BTRFS a úsáid?"
#, fuzzy
msgid "Power management"
msgstr "Bainistíocht críochdheighilte: {}"
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 ""
msgid "Starting device modifications in "
msgstr ""
#, fuzzy
msgid "No network connection found"
msgstr "Gan cumraíocht líonra"
#, fuzzy
msgid "Would you like to connect to a Wifi?"
msgstr "Ar mhaith leat comhbhrú BTRFS a úsáid?"
#, fuzzy
msgid "No wifi interface found"
msgstr "Comhéadain {} cumraithe"
#, fuzzy
msgid "Select wifi network to connect to"
msgstr "Roghnaigh comhéadan líonra amháin le chumrú"
msgid "Scanning wifi networks..."
msgstr ""
#, fuzzy
msgid "No wifi networks found"
msgstr "Gan cumraíocht líonra"
msgid "Failed setting up wifi"
msgstr ""
#, fuzzy
msgid "Enter wifi password"
msgstr "Iontráil pasfhocal: "
msgid "Ok"
msgstr ""
msgid "Removable"
msgstr ""
msgid "Install to removable location"
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr ""
msgid "Will install to standard location with NVRAM entry"
msgstr ""
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr ""
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr ""
msgid "USB drives or other portable external media."
msgstr ""
msgid "Systems where you want the disk to be bootable on any computer."
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr ""
msgid "Will install to custom location with NVRAM entry"
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr ""
msgid "most Apple Macs, many laptops..."
msgstr ""
#, fuzzy
msgid "Language"
msgstr "Teanga logánta"
msgid "Compression algorithm"
msgstr ""
#, fuzzy
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Ní shuiteáiltear ach pacáistí cosúil le pacáistí bonn, base-devel, linux, linux-firmware, efibootmgr agus próifíl roghnach."
#, fuzzy
msgid "Select zram compression algorithm:"
msgstr "Roghnaigh pointe gléasta :"
msgid "Use Network Manager (default backend)"
msgstr ""
msgid "Use Network Manager (iwd backend)"
msgstr ""
================================================
FILE: archinstall/locales/gl/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: gaelgnz \n"
"Language-Team: \n"
"Language: gl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.8\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] Se ha creado un archivo de registro aquí: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Por favor envíe este problema (e archivo) a https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "¿Realmente desexas abortar?"
msgid "And one more time for verification: "
msgstr "E unha vez mais para verificar: "
msgid "Would you like to use swap on zram?"
msgstr "¿Gustarialle usar swap en zram?"
msgid "Desired hostname for the installation: "
msgstr "Nome do host desexado para a instalación: "
msgid "Username for required superuser with sudo privileges: "
msgstr "Nome de usuario para o superusuario con privilegios sudo: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "Algún usuario adicional a instalar (dexalo en blanco para non agregar ninguno): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "Debería este usuario ser un superusuario (sudoer)?"
msgid "Select a timezone"
msgstr "Seleccione unha zona horaria"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "Gustarialle usar GRUB como xestor de arranque en lugar de systemd-boot?"
msgid "Choose a bootloader"
msgstr "Elixa un xestor de arranque"
msgid "Choose an audio server"
msgstr "Elixa un servidor de audio"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "So paquetes como base, base-devel, linux, linux-firmware, efibootmgr e paquetes opcionales de perfil instalaranse."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr "Nota: base-devel xa non veñe instalado por defecto. Agreguelo aquí se necesita herramientas de build."
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "Si deseaxa un navegador web, como firefox o chromium, pode especificalo non seguiente mensaxe."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "Escriba paquetes adicionais para instalar (separados por espazos, dexe en blanco para omitir): "
msgid "Copy ISO network configuration to installation"
msgstr "Copiar a configuración de red ISO a instalación"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "Usar NetworkManager (necesario para configurar internet gráficamente en GNOME y KDE)"
msgid "Select one network interface to configure"
msgstr "Seleccione unha interfaz de red para configurar"
msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
msgstr "Seleccione qué modo configurar para \"{}\" ou omita para usar o modo predeterminado \"{}\""
#, python-brace-format
msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): "
msgstr "Escriba a IP e subred para {} (ejemplo: 192.168.0.5/24): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "Escriba a IP de a sua porta de enlace (enrutador) ou dexelo en branco para non usar ningunha: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "Ingrese os seus servidores DNS (separados por espazos, en branco para ningun): "
msgid "Select which filesystem your main partition should use"
msgstr "Seleccione qué sistema de archivos debe usar a sua partición principal"
msgid "Current partition layout"
msgstr "Distribución actual das particions"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"Seleccione qué hacer con\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "Ingrese un tipo de sistema de arquivos desexado para a partición"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "Ingrese a ubicación de inicio (en unidades divididas: s, GB, %, etc. ; predeterminado: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "Ingrese a ubicación final (en unidades divididas: s, GB, %, etc. ; ej.: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} contén particions en cola, esto eliminará esas particións, ¿está seguro?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"Seleccione por índice qué particions eliminar"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"Seleccione por índice qué partición montar en qué ubicación"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * Os puntos de montaxe da partición son relativos ao interior da instalación, por exemplo: o arranque sería /boot."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "Seleccione onde montar a partición (dexela en branco para eliminar o punto de montaje): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"Seleccione cal partición enmascarar para formatear"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"Seleccione cal partición marcar como encriptada"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"Seleccione cal partición marcar como de arranque"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"Seleccione en cal partición establecer un sistema de arquivos"
msgid "Enter a desired filesystem type for the partition: "
msgstr "Ingrese un tipo de sistema de arquivos desexado para a partición: "
msgid "Archinstall language"
msgstr "Idioma de Archinstall"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "Borrar todas as unidades seleccionadas e usar un diseño de partición predeterminado de mellor esforzo"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "Seleccione qué hacer con cada unidad individual (seguido do uso da partición)"
msgid "Select what you wish to do with the selected block devices"
msgstr "Seleccione o que desexa hacer con os dispositivos de bloque seleccionados"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "Esta es unha lista de perfils preprogramados que podrían facilitarche a instalación de cousas como entornos de escritorio"
msgid "Select keyboard layout"
msgstr "Seleccione a distribución do teclado"
msgid "Select one of the regions to download packages from"
msgstr "Seleccione qué rexión usar para descargar paquetes"
msgid "Select one or more hard drives to use and configure"
msgstr "Seleccione uno o mais discos duros para usar e configurar"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "Para obtener a mellor compatibilidade con o seu hardware AMD, e posible que desexe utilizar as opcions de código aberto ou AMD / ATI."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "Para obtener a mellor compatibilidade con o seu hardware Intel, e posible que desexe utilizar as opciones de código abierto ou de Intel.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "Para obtener a mellor compatibilidade con o seu hardware de Nvidia, e posible que desexe utilizar o controlador patentado de Nvidia.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Seleccione un controlador de gráficos ou dexelo en branco para instalar todos os controladores de código abierto"
msgid "All open-source (default)"
msgstr "Todos de código aberto (predeterminado)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "Escoxa qué kernel usar o déjelo en branco para usar o kernel \"{}\" predeterminado"
msgid "Choose which locale language to use"
msgstr "Escoxa qué idioma local usar"
msgid "Choose which locale encoding to use"
msgstr "Escoxa qué codificación local usar"
msgid "Select one of the values shown below: "
msgstr "Seleccione uno de os valores que se muestran a continuación: "
msgid "Select one or more of the options below: "
msgstr "Seleccione unha o más das siguientes opciones: "
msgid "Adding partition...."
msgstr "Añadiendo partición..."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "Debe ingresar un tipo de sistema de archivos (fs-type) válido para continuar. Consulte `man parted` para conocer os tipos válidos."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "Error: Listar perfiles na URL \"{}\" resultó en:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "Error: No se pudo decodificar el resultado \"{}\" como JSON:"
msgid "Keyboard layout"
msgstr "Distribución do teclado"
msgid "Mirror region"
msgstr "Región do servidor"
msgid "Locale language"
msgstr "Idioma local"
msgid "Locale encoding"
msgstr "Codificación local"
msgid "Drive(s)"
msgstr "Disco(s)"
# not sure about this one... we've been saying distribución instead of diseño up to now...
msgid "Disk layout"
msgstr "Diseño do disco"
msgid "Encryption password"
msgstr "Contraseña de cifrado"
msgid "Swap"
msgstr "Swap"
msgid "Bootloader"
msgstr "xestor de arranque"
msgid "Root password"
msgstr "Contraseña de root"
msgid "Superuser account"
msgstr "Conta de superusuario"
msgid "User account"
msgstr "Conta de usuario"
msgid "Profile"
msgstr "Perfil"
msgid "Audio"
msgstr "Audio"
msgid "Kernels"
msgstr "Núcleos"
msgid "Additional packages"
msgstr "Paquetes adicionais"
msgid "Network configuration"
msgstr "Configuración da red"
msgid "Automatic time sync (NTP)"
msgstr "Sincronización automática de hora (NTP)"
# are you installing missing configs or are there missing configs
msgid "Install ({} config(s) missing)"
msgstr "Instalar ({} ajuste(s) faltante(s))"
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 ""
"Ha decidido saltar a selección de discos duros\n"
"y usar a configuración montada en {} (experimental)\n"
"ADVERTENCIA: Archinstall no verificará a idoneidad de esta configuración\n"
"¿Desexa continuar?"
msgid "Re-using partition instance: {}"
msgstr "Reutilizando instancia de partición: {}"
msgid "Create a new partition"
msgstr "Crear unha nueva partición"
msgid "Delete a partition"
msgstr "Eliminar unha partición"
msgid "Clear/Delete all partitions"
msgstr "Limpiar/Eliminar todas as particións"
msgid "Assign mount-point for a partition"
msgstr "Asignar punto de montaje para unha partición"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "Marcar/Desmarcar unha partición para ser formateada (borra os datos)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "Marcar/Desmarcar unha partición como encriptada"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "Marcar/Desmarcar unha partición como arrancable (automática para /boot)"
msgid "Set desired filesystem for a partition"
msgstr "Establecer el sistema de archivos deseado para unha partición"
msgid "Abort"
msgstr "Abortar"
msgid "Hostname"
msgstr "Nome de host"
msgid "Not configured, unavailable unless setup manually"
msgstr "No configurado, no disponible a menos que se configure manualmente"
msgid "Timezone"
msgstr "Zona horaria"
msgid "Set/Modify the below options"
msgstr "Establecer/Modificar as opciones siguientes"
msgid "Install"
msgstr "Instalar"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"Usar ESC para saltar\n"
"\n"
msgid "Suggest partition layout"
msgstr "Sugerir el diseño de partición"
msgid "Enter a password: "
msgstr "Ingrese unha contraseña: "
msgid "Enter a encryption password for {}"
msgstr "Ingrese unha contraseña de cifrado para {}"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "Ingrese a contraseña de cifrado de disco (deje en blanco para no cifrar): "
msgid "Create a required super-user with sudo privileges: "
msgstr "Crear un super-usuario requerido con privilexios sudo: "
msgid "Enter root password (leave blank to disable root): "
msgstr "Ingrese a contraseña de root (deje en blanco para deshabilitar root): "
msgid "Password for user \"{}\": "
msgstr "Contraseña para o usuario “{}”: "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "Verificando que os paquetes adicionais existen (esto pode tardar unos segundos)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "¿Gustarialle utilizar a sincronización automática de hora (NTP) con os servidores de hora predeterminados?\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 ""
"A hora do hardware y otros pasos post-configuración poden ser necesarios para que NTP funcione. \n"
"Para más información, por favor, consulte a wiki de Arch"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "Introduzca un nome de usuario para crear un usuario adicional (deje en blanco para saltar): "
msgid "Use ESC to skip\n"
msgstr "Use ESC para omitir\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
"Escoxa un objeto da lista y seleccione unha das acciones disponibles para ejecutar"
msgid "Cancel"
msgstr "Cancelar"
msgid "Confirm and exit"
msgstr "Confirmar e salir"
msgid "Add"
msgstr "Añadir"
msgid "Copy"
msgstr "Copiar"
msgid "Edit"
msgstr "Editar"
msgid "Delete"
msgstr "Eliminar"
msgid "Select an action for '{}'"
msgstr "Seleccione unha acción para '{}'"
msgid "Copy to new key:"
msgstr "Copiar a nueva clave:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "Tipo de nic desconocido: {}. os valores posibles son {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"Esta es su configuración elegida:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman ya se está ejecutando, esperando un máximo de 10 minutos para que finalice."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "o bloqueo de pacman preexistente nunca se cerró. Limpie cualquier sesión de pacman existente antes de usar archinstall."
msgid "Choose which optional additional repositories to enable"
msgstr "Escoxa qué repositorios adicionais opcionales habilitar"
msgid "Add a user"
msgstr "Añadir un usuario"
msgid "Change password"
msgstr "Cambiar contraseña"
# maybe ascender/descender here?
msgid "Promote/Demote user"
msgstr "Promocionar/Degradar usuario"
msgid "Delete User"
msgstr "Eliminar usuario"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"Definir un nuevo usuario\n"
msgid "User Name : "
msgstr "Nome de usuario : "
msgid "Should {} be a superuser (sudoer)?"
msgstr "¿Debe {} ser un superusuario (sudoer)?"
msgid "Define users with sudo privilege: "
msgstr "Defina usuarios con privilegio sudo: "
msgid "No network configuration"
msgstr "Sin configuración de red"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Establecer os subvolúmenes deseados en unha partición btrfs"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"Seleccione en qué partición configurar os subvolúmenes"
msgid "Manage btrfs subvolumes for current partition"
msgstr "Administrar subvolúmenes btrfs para la partición actual"
msgid "No configuration"
msgstr "Sin configuración"
msgid "Save user configuration"
msgstr "Guardar configuración de usuario"
msgid "Save user credentials"
msgstr "Guardar credenciales de usuario"
msgid "Save disk layout"
msgstr "Guardar diseño de disco"
msgid "Save all"
msgstr "Guardar todo"
msgid "Choose which configuration to save"
msgstr "Escoxa qué configuración guardar"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "Ingrese un directorio para guardar a(s) configuración(es): "
msgid "Not a valid directory: {}"
msgstr "No es un directorio válido: {}"
msgid "The password you are using seems to be weak,"
msgstr "A contraseña que está utilizando parece ser débil,"
msgid "are you sure you want to use it?"
msgstr "¿Está seguro de querer usarlo?"
msgid "Optional repositories"
msgstr "Repositorios opcionales"
msgid "Save configuration"
msgstr "Guardar configuración"
msgid "Missing configurations:\n"
msgstr "Configuraciones que faltan:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "Debe especificar unha contraseña de root o al menos 1 superusuario"
msgid "Manage superuser accounts: "
msgstr "Administrar cuentas de superusuario: "
msgid "Manage ordinary user accounts: "
msgstr "Administrar cuentas de usuario ordinarias: "
msgid " Subvolume :{:16}"
msgstr " Subvolumen :{:16}"
msgid " mounted at {:16}"
msgstr " montado en {:16}"
msgid " with option {}"
msgstr " con opción {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
"Complete os valores deseados para un nuevo subvolumen\n"
msgid "Subvolume name "
msgstr "Nome do subvolumen "
msgid "Subvolume mountpoint"
msgstr "Punto de montaje do subvolumen"
msgid "Subvolume options"
msgstr "Opciones do subvolumen"
msgid "Save"
msgstr "Guardar"
msgid "Subvolume name :"
msgstr "Nome do subvolumen :"
msgid "Select a mount point :"
msgstr "Seleccione un punto de montaje :"
msgid "Select the desired subvolume options "
msgstr "Seleccione as opciones de subvolumen deseadas "
msgid "Define users with sudo privilege, by username: "
msgstr "Defina usuarios con privilexio sudo, por nome de usuario: "
#, python-brace-format
msgid "[!] A log file has been created here: {}"
msgstr "[!] Se ha creado un archivo de registro aquí: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "¿Le gustaría utilizar subvolúmenes BTRFS con unha estructura predeterminada?"
msgid "Would you like to use BTRFS compression?"
msgstr "¿Le gustaría usar a compresión BTRFS?"
msgid "Would you like to create a separate partition for /home?"
msgstr "¿Le gustaría crear unha partición separada para /home?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "As unidades seleccionadas no tienna capacidad mínima requerida para unha sugerencia automática\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "Capacidad mínima para a partición /home: {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Capacidad mínima para a partición Arch Linux: {}GB"
msgid "Continue"
msgstr "Continuar"
msgid "yes"
msgstr "sí"
msgid "no"
msgstr "no"
msgid "set: {}"
msgstr "establecer: {}"
msgid "Manual configuration setting must be a list"
msgstr "A configuración manual debe ser unha lista."
msgid "No iface specified for manual configuration"
msgstr "No se especificó iface para a configuración manual"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "A configuración manual da NIC sin DHCP automático requiere unha dirección IP"
msgid "Add interface"
msgstr "Añadir interfaz"
msgid "Edit interface"
msgstr "Editar interfaz"
msgid "Delete interface"
msgstr "Eliminar intefaz"
msgid "Select interface to add"
msgstr "Seleccione a interfaz para agregar"
msgid "Manual configuration"
msgstr "Configuración manual"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "Marcar/Desmarcar unha partición como comprimida (solo btrfs)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "A contraseña que está utilizando parece ser débil, ¿está seguro de que desea usarla?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "Proporciona unha selección de entornos de escritorio y administradores de ventanas en mosaico, p.e. gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "Seleccione su entorno de escritorio deseado"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "unha instalación muy básica que te permite personalizar Arch Linux como mejor te parezca."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "Proporciona unha selección de varios paquetes de servidor para instalar y habilitar, p.e. httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "Escoxa qué servidores instalar, si no hay ninguno, se realizará unha instalación mínima"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "Instala un sistema mínimo, así como controladores xorg y gráficos."
msgid "Press Enter to continue."
msgstr "Presione Entrar para continuar."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "¿Gustarialle acceder a la instalación recién creada e realizar a configuración posterior á instalación?"
msgid "Are you sure you want to reset this setting?"
msgstr "¿Está seguro de que desea restablecer esta configuración?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "Seleccione uno ou miss discos duros para usar e configurar\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "¡Cualquier modificación a a configuración existente restablecerá el diseño do disco!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "Se restablece a selección do disco duro, esto tamén restablecerá o diseño actual do disco. ¿Está seguro?"
msgid "Save and exit"
msgstr "Guardar y salir"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"contiene particións en cola, esto as eliminará, ¿está seguro?"
msgid "No audio server"
msgstr "Sin servidor de audio"
msgid "(default)"
msgstr "(predeterminado)"
msgid "Use ESC to skip"
msgstr "Use ESC para omitir"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"Use CTRL+C para restablecer a selección actual\n"
"\n"
msgid "Copy to: "
msgstr "Copiar a: "
msgid "Edit: "
msgstr "Editar: "
msgid "Key: "
msgstr "Clave: "
msgid "Edit {}: "
msgstr "Editar {}: "
msgid "Add: "
msgstr "Añadir: "
msgid "Value: "
msgstr "Valor: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "pode omitir a selección de unha unidad y a partición y usar cualquier configuración de unidad que esté montada en /mnt (experimental)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "Seleccione uno de os discos u omita y use /mnt como predeterminado"
msgid "Select which partitions to mark for formatting:"
msgstr "Seleccione qué particións marcar para formatear:"
msgid "Use HSM to unlock encrypted drive"
msgstr "Usar HSM para desbloquear a unidad cifrada"
msgid "Device"
msgstr "Dispositivo"
msgid "Size"
msgstr "Tamaño"
msgid "Free space"
msgstr "Espacio libre"
msgid "Bus-type"
msgstr "Tipo de bus"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "Debe especificar unha contraseña de root o al menos 1 usuario con privilegios sudo"
msgid "Enter username (leave blank to skip): "
msgstr "Ingrese el nombre de usuario (déjelo en blanco para omitir): "
msgid "The username you entered is invalid. Try again"
msgstr "o nombre de usuario que ingresó no es válido. Intente nuevamente"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "¿Debe \"{}\" ser un superusuario (sudo)?"
msgid "Select which partitions to encrypt"
msgstr "Seleccione qué particións cifrar"
msgid "very weak"
msgstr "muy débil"
msgid "weak"
msgstr "débil"
msgid "moderate"
msgstr "moderado"
msgid "strong"
msgstr "fuerte"
msgid "Add subvolume"
msgstr "Agregar subvolumen"
msgid "Edit subvolume"
msgstr "Editar subvolumen"
msgid "Delete subvolume"
msgstr "Eliminar subvolumen"
msgid "Configured {} interfaces"
msgstr "Interfaces {} configuradas"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "Esta opción habilita a cantidad de descargas paralelas que poden ocurrir durante a instalación"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"Ingrese el número de descargas paralelas que se habilitarán.\n"
" (Ingrese un valor entre 1 y {})\n"
"Nota:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - Valor máximo : {} ( Habilita {} descargas paralelas, permite {} descargas simultáneas )"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - Valor mínimo : 1 ( Habilita 1 descarga paralela, permite 2 descargas simultáneas )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - Deshabilitar/Predeterminado : 0 ( Deshabilita a descarga paralea, permite solo 1 descarga simultánea )"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "¡Entrada no válida! Intente nuevamente con unha entrada válida [1 a {max_downloads}, o 0 para deshabilitar]"
msgid "Parallel Downloads"
msgstr "Descargas paralelas"
msgid "ESC to skip"
msgstr "ESC para omitir"
msgid "CTRL+C to reset"
msgstr "CTRL+C para restablecer"
msgid "TAB to select"
msgstr "TAB para seleccionar"
msgid "[Default value: 0] > "
msgstr "[Valor predeterminado: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "Para poder usar esta traducción, instale manualmente unha fonte que admita el idioma."
msgid "The font should be stored as {}"
msgstr "A fonte debe almacenarse como {}"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Archinstall require privilegios de root para ejecutarse. Consulte --help para más información."
msgid "Select an execution mode"
msgstr "Seleccione un modo de execución"
#, python-brace-format
msgid "Unable to fetch profile from specified url: {}"
msgstr "No se pode recuperar el perfil da URL especificada: {}"
#, python-brace-format
msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}"
msgstr "os perfiles deben tener un nombre único, pero se encontraron definiciones de perfil con nombre duplicado: {}"
msgid "Select one or more devices to use and configure"
msgstr "Seleccione uno o más dispositivos para usar y configurar"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "Si restablece la selección do dispositivo, esto también restablecerá el diseño actual do disco. ¿Está seguro?"
msgid "Existing Partitions"
msgstr "particións existentes"
msgid "Select a partitioning option"
msgstr "Seleccione unha opción de partición"
msgid "Enter the root directory of the mounted devices: "
msgstr "Ingrese el directorio raíz de os dispositivos montados: "
#, python-brace-format
msgid "Minimum capacity for /home partition: {}GiB\n"
msgstr "Capacidad mínima para la partición /home: {}GiB\n"
#, python-brace-format
msgid "Minimum capacity for Arch Linux partition: {}GiB"
msgstr "Capacidad mínima para la partición Arch Linux: {}GiB"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "Esta es unha lista de profiles_bck preprogramados que podrían facilitar la instalación de cosas como entornos de escritorio"
msgid "Current profile selection"
msgstr "Selección de perfil actual"
msgid "Remove all newly added partitions"
msgstr "Eliminar todas las particións recién agregadas"
msgid "Assign mountpoint"
msgstr "Asignar punto de montaje"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "Marcar/Desmarcar para formatear (borra datos)"
msgid "Mark/Unmark as bootable"
msgstr "Marcar/Desmarcar como arrancable"
msgid "Change filesystem"
msgstr "Cambiar el sistema de archivos"
msgid "Mark/Unmark as compressed"
msgstr "Marcar/Desmarcar como comprimido"
msgid "Set subvolumes"
msgstr "Establecer subvolúmenes"
msgid "Delete partition"
msgstr "Eliminar partición"
msgid "Partition"
msgstr "Partición"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "Esta partición está actualmente cifrada, para formatearla se debe especificar un sistema de archivos"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "os puntos de montaje da partición son relativos al interior da instalación; el arranque sería /boot como ejemplo."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "Si se establece el punto de montaje /boot, la partición también se marcará como arrancable."
msgid "Mountpoint: "
msgstr "Punto de montaje: "
msgid "Current free sectors on device {}:"
msgstr "Sectores libres actuales en el dispositivo {}:"
msgid "Total sectors: {}"
msgstr "Sectores totales: {}"
msgid "Enter the start sector (default: {}): "
msgstr "Introduzca el sector de inicio (predeterminado: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
msgstr "Ingrese el sector final da partición (porcentaje o número de bloque, predeterminado: {}): "
msgid "This will remove all newly added partitions, continue?"
msgstr "Esto eliminará todas las particións recientemente agregadas, ¿continuar?"
#, python-brace-format
msgid "Partition management: {}"
msgstr "Gestión de particións: {}"
#, python-brace-format
msgid "Total length: {}"
msgstr "Largo total: {}"
msgid "Encryption type"
msgstr "Tipo de cifrado"
msgid "Iteration time"
msgstr "Tiempo de iteración"
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr "Ingrese el tiempo de iteración para cifrado LUKS (en milisegundos)"
msgid "Higher values increase security but slow down boot time"
msgstr "Valores más grandes mejoran la seguridad pero aumentan el tiempo de arranque"
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr "Por defecto: 10000ms, Rango recomendado 1000-60000"
msgid "Iteration time cannot be empty"
msgstr "Tiempo de iteración no pode estar vacío"
msgid "Iteration time must be at least 100ms"
msgstr "Tiempo de iteración no pode menor a 100ms"
msgid "Iteration time must be at most 120000ms"
msgstr "Tiempo de iteración no pode ser mayor a 120000ms"
msgid "Please enter a valid number"
msgstr "Por favor ingrese un número válido"
msgid "Partitions"
msgstr "particións"
msgid "No HSM devices available"
msgstr "Non hai dispositivos HSM disponibles"
msgid "Partitions to be encrypted"
msgstr "particións a cifrar"
msgid "Select disk encryption option"
msgstr "Seleccione la opción de cifrado de disco"
msgid "Select a FIDO2 device to use for HSM"
msgstr "Seleccione un dispositivo FIDO2 para usar con HSM"
msgid "Use a best-effort default partition layout"
msgstr "Utlizar un diseño de partición predeterminado de mejor esfuerzo"
msgid "Manual Partitioning"
msgstr "Partición manual"
msgid "Pre-mounted configuration"
msgstr "Configuración premontada"
msgid "Unknown"
msgstr "Desconocido"
msgid "Partition encryption"
msgstr "Cifrado de partición"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! Formateando {} en "
msgid "← Back"
msgstr "← Regresar"
msgid "Disk encryption"
msgstr "Cifrado de disco"
msgid "Configuration"
msgstr "Configuración"
msgid "Password"
msgstr "Contraseña"
msgid "All settings will be reset, are you sure?"
msgstr "Todos os ajustes se restablecerán, ¿está seguro?"
msgid "Back"
msgstr "Regresar"
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr "Por favor, elixa qué xestor de inicio de sesión instalar para os perfiles elegidos: {}"
#, python-brace-format
msgid "Environment type: {}"
msgstr "Tipo de entorno: {}"
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 "O controlador propietario de Nvidia no es compatible con Sway. Es probable que encuentre problemas, ¿Desexar continuar?"
msgid "Installed packages"
msgstr "Paquetes instalados"
msgid "Add profile"
msgstr "Agregar perfil"
msgid "Edit profile"
msgstr "Editar perfil"
msgid "Delete profile"
msgstr "Eliminar perfil"
msgid "Profile name: "
msgstr "Nome de perfil: "
msgid "The profile name you entered is already in use. Try again"
msgstr "El nombre de perfil que ingresó ya está en uso. Intente nuevamente"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "Paquetes que se instalarasen con este perfil (separados por espacios, déjelo en blanco para omitir): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "Servicios que se habilitarán con este perfil (separados por espacios, deje en blanco para omitir): "
msgid "Should this profile be enabled for installation?"
msgstr "¿Debería habilitarse este perfil para la instalación?"
msgid "Create your own"
msgstr "Crear tu propio"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"Seleccione un controlador de gráficos o deje en blanco para instalar todos os controladores de código abierto"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway necesita acceso a sus dispositivos de hardware (teclado, mouse, etc.)"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Escoxa unha opción para darle a Sway acceso a su hardware"
msgid "Graphics driver"
msgstr "Controlador de gráficos"
msgid "Greeter"
msgstr "xestor de inicio de sesión"
msgid "Please chose which greeter to install"
msgstr "Por favor, elixa qué xestor de inicio de sesión instalar"
msgid "This is a list of pre-programmed default_profiles"
msgstr "Esta es unha lista de default_profiles preprogramados"
msgid "Disk configuration"
msgstr "Configuración do disco"
msgid "Profiles"
msgstr "Perfiles"
msgid "Finding possible directories to save configuration files ..."
msgstr "Encontrar posibles directorios para guardar archivos de configuración..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "Seleccione el directorio (o directorios) para guardar os archivos de configuración"
msgid "Add a custom mirror"
msgstr "Agregar un espejo personalizado"
msgid "Change custom mirror"
msgstr "Cambiar espejo personalizado"
msgid "Delete custom mirror"
msgstr "Eliminar espejo personalizado"
msgid "Enter name (leave blank to skip): "
msgstr "Ingrese el nombre (deje en blanco para omitir): "
msgid "Enter url (leave blank to skip): "
msgstr "Ingrese la URL (deje en blanco para omitir): "
msgid "Select signature check option"
msgstr "Seleccione la opción de verificación de firma"
msgid "Select signature option"
msgstr "Seleccione la opción de firma"
msgid "Custom mirrors"
msgstr "Espejos personalizados"
msgid "Defined"
msgstr "Definido"
msgid "Save user configuration (including disk layout)"
msgstr "Guardar la configuración do usuario (incluido el diseño do disco)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"Ingrese un directorio para guardar las configuraciones (completar con tabulación habilitado)\n"
"Guardar directorio: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"¿Desexa guardar {} archivo(s) de configuración na siguiente ubicación?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "Guardar {} archivos de configuración en {}"
msgid "Mirrors"
msgstr "Espellos"
msgid "Mirror regions"
msgstr "Rexions de espejos"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - Valor máximo : {} ( Habilita {} descargas paralelas, permite {max_downloads+1} descargas simultáneas )"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "¡Entrada no válida! Intente nuevamente con unha entrada válida [1 a {}, o 0 para deshabilitar]"
msgid "Locales"
msgstr "Localidades"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "Usar NetworkManager (necesario para configurar internet gráficamente en GNOME y KDE)"
msgid "Total: {} / {}"
msgstr "Total: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "Todos os valores ingresados poden tener unha unidad como sufijo: B, KB, KiB, MB, MiB ..."
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "Se non se proporciona ningunha unidad, o valor se interpreta como sectores"
msgid "Enter start (default: sector {}): "
msgstr "Ingrese el inicio (predeterminado: sector {}): "
msgid "Enter end (default: {}): "
msgstr "Ingrese el final (predeterminado: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "Non se pode determinar os dispositivos fido2. ¿Está instalado libfido2?"
msgid "Path"
msgstr "Ruta"
msgid "Manufacturer"
msgstr "Fabricante"
msgid "Product"
msgstr "Producto"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "Configuración no válida: {error}"
msgid "Type"
msgstr "Tipo"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "Esta opción habilita a cantidade de descargas paralelas que poden ocurrir durante as descargas de paquetes"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"Ingrese el número de descargas paralelas que se habilitarán.\n"
"\n"
"Nota:\n"
#, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr " - Valor máximo recomendado : {} ( Permite {} descargas paralelas simultáneas )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - Deshabilitar/Predeterminado : 0 ( Deshabilita la descarga paralela, permite solo 1 descarga simultánea )\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "¡Entrada non válida! Intente novamente con unha entrada válida [ou 0 para deshabilitar]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Hyprland necesita acceso ao seu asiento (colección de dispositivos de hardware, es decir, teclado, mouse, etc.)"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Escoxa unha opción para darle acceso a Hyprland a su hardware"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "Todos os valores introducidos poden tener como sufijo unha unidad: %, B, KB, KiB, MB, MiB..."
msgid "Would you like to use unified kernel images?"
msgstr "¿Gustarialle utilizar imágenes do kernel unificadas?"
msgid "Unified kernel images"
msgstr "Imaxes do kernel unificadas"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "Esperando a que se complete la sincronización da hora (timedatectl show)."
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "A sincronización de hora no se completa mientras espera - consulte os documentos para encontrar soluciones: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "Saltarse la espera de sincronización automática da hora (esto pode causar problemas si la hora no está sincronizada durante la instalación)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "Esperando a que se complete la sincronización do llavero de Arch Linux (archlinux-keyring-wkd-sync)."
msgid "Selected profiles: "
msgstr "Perfiles seleccionados: "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "A sincronización de hora no se completa mientras espera - consulte os documentos para encontrar soluciones: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "Marcar/Desmarcar como nodatacow"
msgid "Would you like to use compression or disable CoW?"
msgstr "¿Le gustaría utilizar compresión o desactivar CoW?"
msgid "Use compression"
msgstr "Usar compresión"
msgid "Disable Copy-on-Write"
msgstr "Desactivar copia en escritura"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway"
msgstr "Proporciona unha selección de entornos de escritorio y administradores de ventanas en mosaico, p.e. GNOME, KDE Plasma, Sway"
#, python-brace-format
msgid "Configuration type: {}"
msgstr "Tipo de configuración: {}"
msgid "LVM configuration type"
msgstr "Tipo de configuración LVM"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "Actualmente no se admite el cifrado de disco LVM con más de 2 particións"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "Usar NetworkManager (necesario para configurar internet gráficamente en GNOME y KDE Plasma)"
msgid "Select a LVM option"
msgstr "Seleccione unha opción LVM"
msgid "Partitioning"
msgstr "Particionamiento"
msgid "Logical Volume Management (LVM)"
msgstr "Gestión de volúmenes lógicos (LVM)"
msgid "Physical volumes"
msgstr "Volúmenes físicos"
msgid "Volumes"
msgstr "Volúmenes"
msgid "LVM volumes"
msgstr "Volúmenes LVM"
msgid "LVM volumes to be encrypted"
msgstr "Volúmenes LVM a cifrar"
msgid "Select which LVM volumes to encrypt"
msgstr "Seleccione qué volúmenes LVM cifrar"
msgid "Default layout"
msgstr "Diseño predeterminado"
msgid "No Encryption"
msgstr "Sen cifrado"
msgid "LUKS"
msgstr "LUKS"
msgid "LVM on LUKS"
msgstr "LVM en LUKS"
msgid "LUKS on LVM"
msgstr "LUKS en LVM"
msgid "Yes"
msgstr "Sí"
msgid "No"
msgstr "No"
msgid "Archinstall help"
msgstr "axuda de archinstall"
msgid " (default)"
msgstr " (predeterminado)"
msgid "Press Ctrl+h for help"
msgstr "Presione Ctrl+h para obtener axuda"
msgid "Choose an option to give Sway access to your hardware"
msgstr "Escoxa unha opción para darle a Sway acceso a su hardware"
# maybe "Acceso a la estación" or "Gestión de puestos (seats)" could be better?
msgid "Seat access"
msgstr "Acceso al asiento"
msgid "Mountpoint"
msgstr "Punto de montaje"
msgid "HSM"
msgstr "HSM"
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "Ingrese la contraseña de cifrado do disco (deje en blanco si no desea cifrar)"
msgid "Disk encryption password"
msgstr "Contraseña de cifrado de disco"
msgid "Partition - New"
msgstr "Partición - nova"
msgid "Filesystem"
msgstr "Sistema de archivos"
msgid "Invalid size"
msgstr "Tamaño no válido"
msgid "Start (default: sector {}): "
msgstr "Inicio (predeterminado: sector {}): "
msgid "End (default: {}): "
msgstr "Fin (predeterminado: {}): "
msgid "Subvolume name"
msgstr "Nome do subvolumen"
msgid "Disk configuration type"
msgstr "Tipo de configuración do disco"
msgid "Root mount directory"
msgstr "Directorio de montaxe raíz"
msgid "Select language"
msgstr "Seleccionar idioma"
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "Escriba paquetes adicionais para instalar (separados por espacios, déxelo en blanco para omitir)"
msgid "Invalid download number"
msgstr "Número de descarga no válido"
msgid "Number downloads"
msgstr "Número de descargas"
msgid "The username you entered is invalid"
msgstr "O nome de usuario ingresado no es válido"
msgid "Username"
msgstr "Nome de usuario"
#, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "¿\"{}\" debería ser un superusuario (sudo)?\n"
msgid "Interfaces"
msgstr "Interfaces"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "Debe ingresar unha IP válida en el modo de configuración de IP"
msgid "Modes"
msgstr "Modos"
msgid "IP address"
msgstr "Dirección IP"
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "Ingrese la dirección IP de su puerta de enlace (enrutador) (deje en blanco si no hay ninguna)"
msgid "Gateway address"
msgstr "Dirección de puerta de enlace"
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "Ingrese sus servidores DNS separados por espacios (deje en blanco si no hay ninguno)"
msgid "DNS servers"
msgstr "Servidores DNS"
msgid "Configure interfaces"
msgstr "Configurar interfaces"
msgid "Kernel"
msgstr "Núcleo"
msgid "UEFI is not detected and some options are disabled"
msgstr "No se detecta UEFI ou algunhas opciones están deshabilitadas"
msgid "Info"
msgstr "Info"
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "O controlador patentado de Nvidia non e compatible con Sway."
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "Es probable que tengas problemas. ¿Te parece bien?"
msgid "Main profile"
msgstr "Perfil principal"
msgid "Confirm password"
msgstr "Confirmar contraseña"
msgid "The confirmation password did not match, please try again"
msgstr "A contraseña de confirmación no coincide, por favor intente nuevamente"
msgid "Not a valid directory"
msgstr "No es un directorio válido"
msgid "Would you like to continue?"
msgstr "¿Quiere continuar?"
msgid "Directory"
msgstr "Directorio"
msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)"
msgstr "Ingrese un directorio para guardar las configuraciones (autocompletado de tabulación habilitado)"
#, python-brace-format
msgid "Do you want to save the configuration file(s) to {}?"
msgstr "¿Desexa guardar os archivos de configuración en {}?"
msgid "Enabled"
msgstr "Habilitado"
msgid "Disabled"
msgstr "Deshabilitado"
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr "Envíe este problema (y archivo) a https://github.com/archlinux/archinstall/issues"
msgid "Mirror name"
msgstr "Nome do espejo"
msgid "Url"
msgstr "Url"
msgid "Select signature check"
msgstr "Seleccionar verificación de firma"
msgid "Select execution mode"
msgstr "Seleccionar modo de execución"
msgid "Press ? for help"
msgstr "Presione ? para obtener axuda"
msgid "Choose an option to give Hyprland access to your hardware"
msgstr "Escoxa unha opción para darle a Hyprland acceso a su hardware"
msgid "Additional repositories"
msgstr "Repositorios adicionais"
msgid "NTP"
msgstr "NTP"
msgid "Swap on zram"
msgstr "Swap en zram"
msgid "Name"
msgstr "Nome"
msgid "Signature check"
msgstr "Comprobación de firma"
#, python-brace-format
msgid "Selected free space segment on device {}:"
msgstr "Segmento de espazo libre seleccionado no dispositivo {}:"
#, python-brace-format
msgid "Size: {} / {}"
msgstr "Tamaño: {} / {}"
#, python-brace-format
msgid "Size (default: {}): "
msgstr "Tamaño (predeterminado: {}): "
msgid "HSM device"
msgstr "Dispositivo HSM"
msgid "Some packages could not be found in the repository"
msgstr "No se pudieron encontrar algunos paquetes en el repositorio"
msgid "User"
msgstr "Usuario"
msgid "The specified configuration will be applied"
msgstr "Aplicarase la configuración especificada"
msgid "Wipe"
msgstr "Borrar"
msgid "Mark/Unmark as XBOOTLDR"
msgstr "Marcar/Desmarcar como XBOOTLDR"
msgid "Loading packages..."
msgstr "Cargando paquetes..."
msgid "Select any packages from the below list that should be installed additionally"
msgstr "Seleccione cualquier paquete da lista a continuación que deba instalarse adicionalmente"
msgid "Add a custom repository"
msgstr "Agregar un repositorio personalizado"
msgid "Change custom repository"
msgstr "Cambiar el repositorio personalizado"
msgid "Delete custom repository"
msgstr "Eliminar repositorio personalizado"
msgid "Repository name"
msgstr "Nome do repositorio"
msgid "Add a custom server"
msgstr "Agregar un servidor personalizado"
msgid "Change custom server"
msgstr "Cambiar servidor personalizado"
msgid "Delete custom server"
msgstr "Eliminar servidor personalizado"
msgid "Server url"
msgstr "URL do servidor"
msgid "Select regions"
msgstr "Seleccione regiones"
msgid "Add custom servers"
msgstr "Agregar servidores personalizados"
msgid "Add custom repository"
msgstr "Agregar repositorio personalizado"
msgid "Loading mirror regions..."
msgstr "Cargando regiones de espejo..."
msgid "Mirrors and repositories"
msgstr "Espejos y repositorios"
msgid "Selected mirror regions"
msgstr "Regiones de espejo seleccionadas"
msgid "Custom servers"
msgstr "Servidores personalizados"
msgid "Custom repositories"
msgstr "Repositorios personalizados"
msgid "Only ASCII characters are supported"
msgstr "Sólo admitense caracteres ASCII"
msgid "Show help"
msgstr "Mostrar axuda"
msgid "Exit help"
msgstr "Axuda para salir"
msgid "Preview scroll up"
msgstr "Subir en vista previa"
msgid "Preview scroll down"
msgstr "Bajar en vista previa"
msgid "Move up"
msgstr "Subir"
msgid "Move down"
msgstr "Bajar"
msgid "Move right"
msgstr "Mover a la dereita"
msgid "Move left"
msgstr "Mover a la esquerda"
msgid "Jump to entry"
msgstr "Saltar á entrada"
msgid "Skip selection (if available)"
msgstr "Saltar selección (si está disponible)"
msgid "Reset selection (if available)"
msgstr "Restablecer selección (si está disponible)"
msgid "Select on single select"
msgstr "Seleccionar en selección única"
msgid "Select on multi select"
msgstr "Seleccionar en selección múltiple"
msgid "Reset"
msgstr "Restablecer"
msgid "Skip selection menu"
msgstr "Saltar el menú de selección"
msgid "Start search mode"
msgstr "Iniciar modo de búsqueda"
msgid "Exit search mode"
msgstr "Salir do modo de búsqueda"
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "labwc necesita acceso a o seu asiento (colección de dispositivos de hardware, es decir, teclado, ratón, etc.)"
msgid "Choose an option to give labwc access to your hardware"
msgstr "Escoxa unha opción para darle a labwc acceso a su hardware"
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "niri necesita acceso a su asiento (colección de dispositivos de hardware, es decir, teclado, ratón, etc.)"
msgid "Choose an option to give niri access to your hardware"
msgstr "Escoxa unha opción para darle a niri acceso a su hardware"
msgid "Mark/Unmark as ESP"
msgstr "Marcar/Desmarcar como ESP"
msgid "Package group:"
msgstr "Grupo de paquetes:"
msgid "Exit archinstall"
msgstr "Salir de archinstall"
msgid "Reboot system"
msgstr "Reiniciar el sistema"
msgid "chroot into installation for post-installation configurations"
msgstr "chroot na instalación para configuraciones posteriores a la instalación"
msgid "Installation completed"
msgstr "Instalación completada"
msgid "What would you like to do next?"
msgstr "¿Qué lle gustaría hacer a continuación?"
#, python-brace-format
msgid "Select which mode to configure for \"{}\""
msgstr "Seleccione qué modo configurar para \"{}\""
msgid "Incorrect credentials file decryption password"
msgstr "Contraseña incorrecta para descifrar el archivo de credenciales"
msgid "Incorrect password"
msgstr "Contraseña incorrecta"
msgid "Credentials file decryption password"
msgstr "Contraseña para descifrar el archivo de credenciales"
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr "¿Desexa encriptar el archivo user_credentials.json?"
msgid "Credentials file encryption password"
msgstr "Contraseña para cifrar el archivo de credenciales"
#, python-brace-format
msgid "Repositories: {}"
msgstr "Repositorios: {}"
msgid "New version available"
msgstr "Nova versión disponible"
msgid "Passwordless login"
msgstr "Inicio de sesión sin contraseña"
msgid "Second factor login"
msgstr "Inicio de sesión con factor secundario"
msgid "Bluetooth"
msgstr "Bluetooth"
msgid "Would you like to configure Bluetooth?"
msgstr "¿Desexa configurar Bluetooth?"
msgid "Print service"
msgstr "Servicio de impresión"
msgid "Would you like to configure the print service?"
msgstr "¿Desexa configurar el servicio de impresión?"
msgid "Power management"
msgstr "Administración de energía"
msgid "Authentication"
msgstr "Autenticación"
msgid "Applications"
msgstr "Aplicacións"
msgid "U2F login method: "
msgstr "Método de inicio de sesión U2F: "
msgid "Passwordless sudo: "
msgstr "Sudo sen contraseña: "
#, python-brace-format
msgid "Btrfs snapshot type: {}"
msgstr "Tipo de snapshot Btrfs: {}"
msgid "Syncing the system..."
msgstr "Sincronizando o sistema..."
msgid "Value cannot be empty"
msgstr "O valor no pode estár vacío"
msgid "Snapshot type"
msgstr "Tipo de snapshot"
#, python-brace-format
msgid "Snapshot type: {}"
msgstr "Tipo de snapshot: {}"
msgid "U2F login setup"
msgstr "Configuración de inicio de sesión U2F"
msgid "No U2F devices found"
msgstr "No se encontró dispositivos U2F"
msgid "U2F Login Method"
msgstr "Método de inicio de sesión U2F"
msgid "Enable passwordless sudo?"
msgstr "Habilitar sudo sin contraseña?"
#, python-brace-format
msgid "Setting up U2F device for user: {}"
msgstr "Configurando dispositivo U2F para usuario: {}"
msgid "You may need to enter the PIN and then touch your U2F device to register it"
msgstr "pode que deba ingresar su PIN antes de tocar su dispositivo U2F para registrarlo"
msgid "Starting device modifications in "
msgstr "Iniciando modificaciones en dispositivo en "
msgid "No network connection found"
msgstr "No se encontró unha conección de red"
msgid "Would you like to connect to a Wifi?"
msgstr "¿Desexa conectarse a Wifi?"
msgid "No wifi interface found"
msgstr "No se encontró ningunha interfaz de wifi"
msgid "Select wifi network to connect to"
msgstr "Seleccione unha red de wifi para conectarse"
msgid "Scanning wifi networks..."
msgstr "Buscando redes de wifi..."
msgid "No wifi networks found"
msgstr "No se encontró redes de wifi"
msgid "Failed setting up wifi"
msgstr "Error configurando wifi"
msgid "Enter wifi password"
msgstr "Ingrese contraseña de wifi"
msgid "Ok"
msgstr "Ok"
msgid "Removable"
msgstr "Desmontable"
msgid "Install to removable location"
msgstr "Instalar a ubicación desmontable"
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr "Se instalarase en /EFI/BOOT/ (ubicación desmontable)"
msgid "Will install to standard location with NVRAM entry"
msgstr "Se instalarase en ubicación estandar con entrada NVRAM"
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr "¿Desexa instalar el xestor de arranque na ubicación predeterminada de búsqueda de medios desmontables?"
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr "Esto instala el xestor de arranque en /EFI/BOOT/BOOTX64.EFI (o similar) lo cual es útil para:"
msgid "USB drives or other portable external media."
msgstr "Disco USB u otros medios portátiles externos."
msgid "Systems where you want the disk to be bootable on any computer."
msgstr "Sistemas donde quiere que el disco sea arrancable en cualquier computadora."
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr "Firmware que non soporta entradas arrancables NVRAM."
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr "Instalarase a /EFI/BOOT/ (ubicación desmontable, segura por defecto)"
msgid "Will install to custom location with NVRAM entry"
msgstr "Instalarase a ubicación personalizada con entrada NVRAM"
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr "Firmware que non soporta entradas arrancables NVRAM como la mayoría das placas MSI,"
msgid "most Apple Macs, many laptops..."
msgstr "A mayoría das Macs Apple, moitas laptops..."
msgid "Language"
msgstr "Idioma local"
msgid "Compression algorithm"
msgstr "Algoritmo de compresión"
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Solo paquetes como base, base-devel, linux, linux-firmware, efibootmgr y paquetes opcionales de perfil se instalan."
msgid "Select zram compression algorithm:"
msgstr "Seleccione algorimto de compresión zram:"
msgid "Use Network Manager (default backend)"
msgstr "Usar xestor de Red (backend por defecto)"
msgid "Use Network Manager (iwd backend)"
msgstr "Usar xestor de Red (backend iwd)"
msgid "Firewall"
msgstr ""
#, fuzzy
msgid "Select audio configuration"
msgstr "Guardar configuración de usuario"
#, fuzzy
msgid "Enter credentials file decryption password"
msgstr "Contraseña para descifrar el archivo de credenciales"
#, fuzzy
msgid "Enter root password"
msgstr "Ingrese unha contraseña: "
msgid "Select bootloader to install"
msgstr ""
#, fuzzy
msgid "Configuration preview"
msgstr "Configuración"
#, fuzzy
msgid "Enter a directory for the configuration(s) to be saved"
msgstr "Ingrese un directorio para guardar a(s) configuración(es): "
#, fuzzy
msgid "Select encryption type"
msgstr "Tipo de cifrado"
#, fuzzy
msgid "Select disks for the installation"
msgstr "Nome do host desexado para a instalación: "
#, fuzzy
msgid "Enter a mountpoint"
msgstr "Seleccione un punto de montaje :"
#, fuzzy, python-brace-format
msgid "Enter a size (default: {}): "
msgstr "Ingrese el final (predeterminado: {}): "
#, fuzzy
msgid "Enter subvolume name"
msgstr "Nome do subvolumen"
#, fuzzy
msgid "Enter subvolume mountpoint"
msgstr "Punto de montaje do subvolumen"
#, fuzzy
msgid "Select a disk configuration"
msgstr "Configuración do disco"
#, fuzzy
msgid "Enter root mount directory"
msgstr "Directorio de montaxe raíz"
msgid "You will use whatever drive-setup is mounted at the specified directory"
msgstr ""
msgid "WARNING: Archinstall won't check the suitability of this setup"
msgstr ""
#, fuzzy
msgid "Select main filesystem"
msgstr "Cambiar el sistema de archivos"
msgid "Enter a hostname"
msgstr ""
#, fuzzy
msgid "Select timezone"
msgstr "Seleccione unha zona horaria"
#, fuzzy
msgid "Enter the number of parallel downloads to be enabled"
msgstr ""
"Ingrese el número de descargas paralelas que se habilitarán.\n"
"\n"
"Nota:\n"
#, python-brace-format
msgid "Value must be between 1 and {}"
msgstr ""
#, fuzzy
msgid "Select which kernel(s) to install"
msgstr "Por favor, elixa qué xestor de inicio de sesión instalar"
#, fuzzy
msgid "Enter a respository name"
msgstr "Nome do repositorio"
#, fuzzy
msgid "Enter the repository url"
msgstr "Cambiar el repositorio personalizado"
#, fuzzy
msgid "Enter server url"
msgstr "URL do servidor"
#, fuzzy
msgid "Select mirror regions to be enabled"
msgstr "Regiones de espejo seleccionadas"
#, fuzzy
msgid "Select optional repositories to be enabled"
msgstr "Escoxa qué repositorios adicionais opcionales habilitar"
#, fuzzy
msgid "Select an interface"
msgstr "Eliminar intefaz"
#, fuzzy
msgid "Choose network configuration"
msgstr "Sin configuración de red"
#, fuzzy
msgid "No packages found"
msgstr "No se encontró dispositivos U2F"
#, fuzzy
msgid "Select which greeter to install"
msgstr "Por favor, elixa qué xestor de inicio de sesión instalar"
#, fuzzy
msgid "Select a profile type"
msgstr "Perfiles seleccionados: "
#, fuzzy
msgid "Enter new password"
msgstr "Ingrese contraseña de wifi"
msgid "Enter a username"
msgstr ""
#, fuzzy
msgid "Enter a password"
msgstr "Ingrese unha contraseña: "
#, fuzzy
msgid "The password did not match, please try again"
msgstr "A contraseña de confirmación no coincide, por favor intente nuevamente"
#~ msgid "Add :"
#~ msgstr "Añadir :"
#~ msgid "Value :"
#~ msgstr "Valor :"
#, python-brace-format
#~ msgid "Edit {origkey} :"
#~ msgstr "Editar {origkey} :"
#~ msgid "Copy to :"
#~ msgstr "Copiar a :"
#~ msgid "Edite :"
#~ msgstr "Editar :"
#~ msgid "Key :"
#~ msgstr "Clave :"
================================================
FILE: archinstall/locales/he/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: Yaron Shahrabani \n"
"Language-Team: \n"
"Language: he\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.5\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] כאן נוצר קובץ היומן: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " נא להגיש דיווח על הבעיה הזאת (ואת הקובץ) דרך https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "לבטל את התהליך?"
msgid "And one more time for verification: "
msgstr "ופעם נוספת לאימות: "
msgid "Would you like to use swap on zram?"
msgstr "להשתמש בשטח החלפה ב־zram?"
msgid "Desired hostname for the installation: "
msgstr "שם מארח רצוי להתקנה: "
msgid "Username for required superuser with sudo privileges: "
msgstr "שם למשתמש העל הנחוץ עם הרשאות על: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "משתמשים נוספים להתקנה (ריק משמעו אין עוד משתמשים): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "זה אמור להיות משתמש על (sudoer)?"
msgid "Select a timezone"
msgstr "בחירת אזור זמן"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "להשתמש ב־GRUB כמנהל טעינה על פני systemd-boot?"
msgid "Choose a bootloader"
msgstr "נא לבחור מנהל טעינה"
msgid "Choose an audio server"
msgstr "נא לבחור שרת שמע"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "רק חבילות כגוןbase, base-devel, linux, linux-firmware, efibootmgr וחבילות פרופיל כרשות מותקנות."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr ""
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "כדי שיותקן דפדפן כגון firefox או chromium אפשר לציין זאת בבקשה הבאה."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "נא לכתוב חבילות נוספות להתקנה (להפריד ברווחים, להשאיר ריק כדי לדלג): "
msgid "Copy ISO network configuration to installation"
msgstr "העתקת הגדרות הרשת מה־ISO להתקנה"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "להשתמש ב־NetworkManager (חיוני להגדרת האינטרנט עם כלים חזותיים ב־GNOME וב־KDE)"
msgid "Select one network interface to configure"
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): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "נא למלא את כתובת ה־IP של שער הגישה (ראוטר) או להשאיר ריק כדי לא להגדיר: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "נא למלא את שרתי ה־DNS שלך (להפריד ברווחים, להשאיר ריק אם אין): "
msgid "Select which filesystem your main partition should use"
msgstr "נא לבחור באיזו מערכת קבצים צריכה להשתמש המחיצה הראשית שלך"
msgid "Current partition layout"
msgstr "פריסת מחיצות נוכחית"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"נא לבחור מה לעשות עם\n"
"{}"
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, %, וכו׳ ; ברירת מחדל: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "נא למלא את מיקום הסוף (ביחידות של parted: s, GB, %, וכו׳ ; למשל: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} מכיל מחיצות ממתינות, פעולה זו תסיר אותן, להמשיך?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"בחירה לפי מפתח אילו מחיצות למחוק"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"בחירה לפי מפתח אילו מחיצות לעגן ואיפה"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * נקודות העגינה של המחיצה הן יחסיות למערכת ההתקנה, מחיצת הטעינה למשל תהיה /boot."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "נא לבחור להיכן לעגן את המחיצה (להשאיר ריק כדי להסיר את נקודת העגינה): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"נא לבחור איזו מחיצה לסמן לפרמוט"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"נא לבחור איזו מחיצה לסמן להצפנה"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"נא לבחור איזו מחיצה לסמן כזמינה לטעינה"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"נא לבחור על איזו מחיצה להגדיר מערכת קבצים"
msgid "Enter a desired filesystem type for the partition: "
msgstr "נא לציין סוג מערכת קבצים רצויה למחיצה: "
msgid "Archinstall language"
msgstr "השפה של Archinstall"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "למחוק את כל הכוננים הנבחרים ולהשתמש בפריסת מחיצות כברירת מחדל על בסיס מאמץ מיטבי"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "לבחור מה לעשות עם כל כונן בנפרד (עם אופן השימוש במחיצה בסוף)"
msgid "Select what you wish to do with the selected block devices"
msgstr "נא לבחור מה לעשות עם התקני הבלוק הנבחרים"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "זאת רשימה של פרופילים שנכתבו מראש, הם עשויים להקל על התקנת דברים כמו סביבות שולחן עבודה"
msgid "Select keyboard layout"
msgstr "נא לבחור פריסת מקלדת"
msgid "Select one of the regions to download packages from"
msgstr "נא לבחור את אחר מהאזורים להוריד ממנו חבילות"
msgid "Select one or more hard drives to use and configure"
msgstr "נא לבחור כונן קשיח אחד או יותר לשימוש והגדרה"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "לתאימות המיטבית עם חומרת ה־AMD שלך, כדאי להשתמש או באפשרות של קוד פתוח לחלוטין או ב־AMD / ATI."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "לתאימות המיטבית עם חומרת האינטל שלך, כדאי להשתמש או באפשרות של קוד פתוח לחלוטין או באינטל.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "לתאימות המיטבית עם חומרת ה־Nvidia שלך, כדאי להשתמש במנהל ההתקן הקנייני של Nvidia.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"נא לבחור מנהל התקן גרפי או להשאיר ריק כדי להתקין מנהלי התקנים בקוד פתוח לגמרי"
msgid "All open-source (default)"
msgstr "הכול בקוד פתוח (ברירת מחדל)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "נא לבחור אילו ליבות להשתמש או להשאיר ריק לברירת המחדל „{}”"
msgid "Choose which locale language to use"
msgstr "נא לבחור באיזו שפה של הגדרה אזורית להשתמש"
msgid "Choose which locale encoding to use"
msgstr "נא לבחור איזה קידוד של הגדרה אזורית להשתמש"
msgid "Select one of the values shown below: "
msgstr "נא לבחור את אחד מהערכים שמופיע להלן: "
msgid "Select one or more of the options below: "
msgstr "יש לבחור באפשרות אחת או יותר מאלו שלהלן: "
msgid "Adding partition...."
msgstr "נוספת מחיצה…"
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "יש למלא סוג מערכת קבצים תקפה כדי להמשיך. ניתן לעיין ב־`man parted` לקבלת רשימת סוגי מערכת הקבצים התקפות."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "שגיאה: הצגת הפרופילים בכתובת „{}“ הניבה:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "לא ניתן לפענח את התוצאה „{}“ כ־JSON:"
msgid "Keyboard layout"
msgstr "פריסת מקלדת"
msgid "Mirror region"
msgstr "אזור אתר מראה"
msgid "Locale language"
msgstr "שפת ההגדרה האזורית"
msgid "Locale encoding"
msgstr "קידוד ההגדרה האזורית"
msgid "Drive(s)"
msgstr "כוננים"
msgid "Disk layout"
msgstr "פריסת כוננים"
msgid "Encryption password"
msgstr "סיסמת הצפנה"
msgid "Swap"
msgstr "שטח החלפה"
msgid "Bootloader"
msgstr "מנהל טעינה"
msgid "Root password"
msgstr "סיסמת root (משתמש עליון)"
msgid "Superuser account"
msgstr "חשבון משתמש־על"
msgid "User account"
msgstr "חשבון משתמש"
msgid "Profile"
msgstr "פרופיל"
msgid "Audio"
msgstr "שמע"
msgid "Kernels"
msgstr "ליבות"
msgid "Additional packages"
msgstr "חבילות נוספות"
msgid "Network configuration"
msgstr "הגדרות רשת"
msgid "Automatic time sync (NTP)"
msgstr "סנכרון זמן אוטומטי (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "התקנה ({} הגדרות חסרות)"
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 ""
"החלטת לוותר על בחירת כוננים קשיחים\n"
"\n"
"ולהשתמש בתצורת הכוננים שמעוגנת על {} כמו שהיא (ניסיוני)\n"
"\n"
"אזהרה: Archinstall won't check the suitability of this setup\n"
"\n"
"Do you wish to continue?"
msgid "Re-using partition instance: {}"
msgstr "שימוש מחדש בעותק של מחיצה: {}"
msgid "Create a new partition"
msgstr "יצירת מחיצה חדשה"
msgid "Delete a partition"
msgstr "מחיקת מחיצה"
msgid "Clear/Delete all partitions"
msgstr "פינוי/מחיקה של כל המחיצות"
msgid "Assign mount-point for a partition"
msgstr "הקצאת נקודת עגינה למחיצה"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "סימון/ביטול סימון מחיצה לפרמוט (מחיקה מוחלטת של הנתונים)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "סימון/ביטול סימון מחיצה כמוצפנת"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "סימון/ביטול סימון מחיצה כרשאית טעינה (אוטומטית ל־/boot)"
msgid "Set desired filesystem for a partition"
msgstr "נא להגדיר מערכת קבצים רצויה למחיצה"
msgid "Abort"
msgstr "ביטול"
msgid "Hostname"
msgstr "שם מארח"
msgid "Not configured, unavailable unless setup manually"
msgstr "לא מוגדר, לא זמין למעט במקרה של התקנה ידנית"
msgid "Timezone"
msgstr "אזור זמן"
msgid "Set/Modify the below options"
msgstr "הגדרת/שינוי האפשרויות הבאות"
msgid "Install"
msgstr "התקנה"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"להשתמש ב־ESC כדי לצאת\n"
"\n"
msgid "Suggest partition layout"
msgstr "הצעת פריסת מחיצות"
msgid "Enter a password: "
msgstr "נא למלא סיסמה: "
msgid "Enter a encryption password for {}"
msgstr "נא למלא סיסמת הצפנה עבור {}"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "נא למלא סיסמה להצפנת הכונן (להשאיר ריק כדי לא להגדיר הצפנה): "
msgid "Create a required super-user with sudo privileges: "
msgstr "יצירת משתמש על נחוץ עם הרשאות sudo: "
msgid "Enter root password (leave blank to disable root): "
msgstr "נא למלא סיסמה למשתמש העליון (יש להשאיר ריק כדי להשבית את root): "
msgid "Password for user \"{}\": "
msgstr "סיסמה למשתמש „{}“: "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "מתבצע וידוא שחבילות נוספות קיימות (יכול לקחת כמה שניות)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "להשתמש בסנכרון שעון אוטומטי (NTP) מול שרתי התזמון כברירת מחדל?\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 יעבוד.\n"
"למידע נוסף, נא לפנות לוויקי של Arch"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "נא למלא שם משתמש כדי ליצור משתמש נוסף (ריק כדי לדלג): "
msgid "Use ESC to skip\n"
msgstr "יש להשתמש ב־ESC כדי לדלג\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
"נא לבחור עצם מהרשימה ולבחור באחת מהאפשרויות הזמינות עבורו כדי להפעיל אותו"
msgid "Cancel"
msgstr "הסגה"
msgid "Confirm and exit"
msgstr "אישור ויציאה"
msgid "Add"
msgstr "הוספה"
msgid "Copy"
msgstr "העתקה"
msgid "Edit"
msgstr "עריכה"
msgid "Delete"
msgstr "מחיקה"
msgid "Select an action for '{}'"
msgstr "נא לבחור פעולה עבור ‚{}’"
msgid "Copy to new key:"
msgstr "העתקה למפתח חדש:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "סוג מתאם תקשורת לא ידוע: {}. הערכים האפשריים הם {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"זאת ההגדרה שבחרת:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman כבר פועל, נמתין למשך 10 דקות לכל היותר עד לסיומו."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "נעילת ה־pacman הקודמת מעולם לא נסגרה. נא לנקות הפעלות קיימות של pacman בטרם הפעלת archinstall."
msgid "Choose which optional additional repositories to enable"
msgstr "נא לבחור אילו מאגרים נוספים להפעיל כרשות"
msgid "Add a user"
msgstr "הוספת משתמש"
msgid "Change password"
msgstr "החלפת סיסמה"
msgid "Promote/Demote user"
msgstr "קידום/הסגת משתמש"
msgid "Delete User"
msgstr "מחיקת משתמש"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"הגדרת משתמש חדש\n"
msgid "User Name : "
msgstr "שם משתמש : "
msgid "Should {} be a superuser (sudoer)?"
msgstr "האם {} אמור לקבל הרשאות על (sudoer)?"
msgid "Define users with sudo privilege: "
msgstr "הגדרת משתמשים עם הרשאת sudo: "
msgid "No network configuration"
msgstr "אין הגדרות רשת"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "הגדרת תת־כרכים רצויים במחיצת BTRFS"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"נא לבחור תחת איזו מחיצה להגדיר תת־כרכים"
msgid "Manage btrfs subvolumes for current partition"
msgstr "ניהול תת־כרכי BTRFS למחיצה הנוכחית"
msgid "No configuration"
msgstr "אין הגדרה"
msgid "Save user configuration"
msgstr "שמירת הגדרת משתמש"
msgid "Save user credentials"
msgstr "שמירת פרטי משתמש"
msgid "Save disk layout"
msgstr "שמירת פריסת כונן"
msgid "Save all"
msgstr "לשמור הכול"
msgid "Choose which configuration to save"
msgstr "נא לבחור אילו הגדרות לשמור"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "נא למלא את התיקייה להגדרות לשמירה: "
msgid "Not a valid directory: {}"
msgstr "אינה תיקייה תקפה: {}"
msgid "The password you are using seems to be weak,"
msgstr "הסיסמה שבחרת נראית חלשה,"
msgid "are you sure you want to use it?"
msgstr "בכל זאת להשתמש בה?"
msgid "Optional repositories"
msgstr "מאגרי רשות"
msgid "Save configuration"
msgstr "שמירת הגדרה"
msgid "Missing configurations:\n"
msgstr ""
"הגדרות חסרות:\n"
"\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "יש לציין או סיסמה למשתמש העליון (root) או לפחות משתמש אחד עם הרשאות על (sudo)"
msgid "Manage superuser accounts: "
msgstr "ניהול משתמשים עם הרשאות על: "
msgid "Manage ordinary user accounts: "
msgstr "ניהול חשבונות משתמשים רגילים: "
msgid " Subvolume :{:16}"
msgstr " תת־כרך :{:16}"
msgid " mounted at {:16}"
msgstr " מעוגן תחת {:16}"
msgid " with option {}"
msgstr " עם האפשרות {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
" נא למלא את הערכים הרצויים לתת־כרך חדש \n"
msgid "Subvolume name "
msgstr "שם תת־כרך "
msgid "Subvolume mountpoint"
msgstr "נק׳ עיגון תת־כרך"
msgid "Subvolume options"
msgstr "אפשרויות תת־כרך"
msgid "Save"
msgstr "שמירה"
msgid "Subvolume name :"
msgstr "שם תת־כרך :"
msgid "Select a mount point :"
msgstr "נא לבחור נק׳ עגינה :"
msgid "Select the desired subvolume options "
msgstr "נא לבחור את אפשרויות התת־כרך הרצויות "
msgid "Define users with sudo privilege, by username: "
msgstr "הגדרת משתמשים עם הרשאת על (sudo), לפי שם משתמש: "
#, python-brace-format
msgid "[!] A log file has been created here: {}"
msgstr "[!] כאן נוצר קובץ יומן: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "להשתמש בתת־כרכים של BTRFS במבנה ברירת המחדל?"
msgid "Would you like to use BTRFS compression?"
msgstr "להשתמש בדחיסה של BTRFS?"
msgid "Would you like to create a separate partition for /home?"
msgstr "ליצור מחיצה נפרדת ל־/home?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "לכוננים הנבחרים אין את הקיבולת המזערית הנחוצה להצעות אוטומטיות\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "הקיבולת המזערית למחיצת /home: {}ג״ב\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "הקיבולת המזערית למחיצת /home: {}ג״ב"
msgid "Continue"
msgstr "המשך"
msgid "yes"
msgstr "כן"
msgid "no"
msgstr "לא"
msgid "set: {}"
msgstr "הוגדר: {}"
msgid "Manual configuration setting must be a list"
msgstr "רשומת ההגדרה הידנית חייבת להיות רשימה"
msgid "No iface specified for manual configuration"
msgstr "לא צוין iface להגדרה ידנית"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "הגדרת מתאם תקשורת ללא DHCP אוטומטי דורש כתובת IP"
msgid "Add interface"
msgstr "הוספת מנשק"
msgid "Edit interface"
msgstr "עריכת מנשק"
msgid "Delete interface"
msgstr "מחיקת מנשק"
msgid "Select interface to add"
msgstr "נא לבחור מנשק להוספה"
msgid "Manual configuration"
msgstr "הגדרה ידנית"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "סימון/ביטול סימון מחיצה כדחוסה (btrfs בלבד)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "נראה שהסיסמה שבחרת חלשה, בכל זאת להשתמש בה?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "מספק מבחר סביבות שולחן עבודה ומנהלי ריצוף חלונות, למשל: gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "נא לבחור את סביבת שולחן העבודה הרצויה לך"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "התקנה בסיסית מאוד שמאפשרת לך להתאים את Arch Linux בדיוק לדרך שנוחה לך."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "מספק מבחר חבילות שרת להתקנה ולהפעלה, למשל: httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "נא לבחור אילו שרתים להתקין, אם אין אז תבוצע התקנה מזערית"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "מתקין מערכת מזערית בנוסף ל־xorg ולמנהלי התקנים גרפיים."
msgid "Press Enter to continue."
msgstr "נא ללחוץ על Enter כדי להמשיך."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "האם להיכנס להתקנה החדשה שיצרת עם chroot (העמסת סביבה) לביצוע הגדרות שלאחר התקנה?"
msgid "Are you sure you want to reset this setting?"
msgstr "לאפס את ההגדרה הזאת?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "נא לבחור כונן אחד או או יותר לשימוש ולהגדרה\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "כל שינוי שהוא להגדרה הקיימת יאפס את פריסת הכוננים!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "איפוס בחירת הכוננים יאפס גם את פריסת הכוננים הנוכחית. להמשיך?"
msgid "Save and exit"
msgstr "לשמור ולצאת"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"מכיל מחיצות שממתינות בתור, הפעולה הזאת תסיר אותן, להמשיך?"
msgid "No audio server"
msgstr "אין שרת שמע"
msgid "(default)"
msgstr "(ברירת מחדל)"
msgid "Use ESC to skip"
msgstr "יש להשתמש ב־ESC כדי לדלג"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"יש להשתמש ב־CTRL+C כדי לאפס את הבחירה הנוכחית\n"
"\n"
"\n"
"\n"
msgid "Copy to: "
msgstr "העתקה אל: "
msgid "Edit: "
msgstr "עריכה: "
msgid "Key: "
msgstr "מפתח: "
msgid "Edit {}: "
msgstr "עריכת {}: "
msgid "Add: "
msgstr "הוספה: "
msgid "Value: "
msgstr "ערך: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "אפשר לדלג על בחירת כונן וחלוקה למחיצות ולהשתמש בתצורת הכוננים שמעוגנת תחת /mnt כפי שהיא (ניסיוני)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "נא לבחור אחד מהכוננים או לדלג ולהשתמש ב־/mnt כברירת מחדל"
msgid "Select which partitions to mark for formatting:"
msgstr "נא לבחור אילו מחיצות לסמן לפרמוט:"
msgid "Use HSM to unlock encrypted drive"
msgstr "להשתמש ב־HSM לשחרור כונן מוצפן"
msgid "Device"
msgstr "התקן"
msgid "Size"
msgstr "גודל"
msgid "Free space"
msgstr "מקום פנוי"
msgid "Bus-type"
msgstr "סוג אפיק"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "יש לציין או סיסמה למשתמש העליון (root) או לפחות משתמש אחד עם הרשאות על (sudo)"
msgid "Enter username (leave blank to skip): "
msgstr "נא למלא שם משתמש (להשאיר ריק כדי לדלג): "
msgid "The username you entered is invalid. Try again"
msgstr "שם המשתמש שמילאת שגוי. נא לנסות שוב"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "האם ל־„{}“ אמורות להיות הרשאות על (sudo)?"
msgid "Select which partitions to encrypt"
msgstr "נא לבחור איזו מחיצה להצפין"
msgid "very weak"
msgstr "חלשה מאוד"
msgid "weak"
msgstr "חלשה"
msgid "moderate"
msgstr "מתונה"
msgid "strong"
msgstr "חזקה"
msgid "Add subvolume"
msgstr "הוספת תת־כרך"
msgid "Edit subvolume"
msgstr "עריכת תת־כרך"
msgid "Delete subvolume"
msgstr "מחיקת תת־כרך"
msgid "Configured {} interfaces"
msgstr "הוגדרו {} מנשקים"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "האפשרות הזאת מאפשרת מספר הורדות במקביל שיכולות להתרחש במהלך התקנה"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"נא למלא את מספר ההורדות המקביליות שתהיינה פעילות.\n"
" (אמור להיות ערך בין 1 ל־{})\n"
"הערה:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - ערך מרבי : {} ( מאפשר {} הורדות במקביל, מאפשר {} הורדות בבת אחת )"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - ערך מזערי : 1 ( מאפשר כל הורדות במקביל, מאפשר שתי הורדות בו־זמנית )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - השבתה/ברירת מחדל : 0 ( השבתת הורדה במקביל, מאפשר הורדה אחת בבת אחת )"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "קלט שגוי! נא לנסות שוב עם קלט תקין [1 עד {max_downloads}, או 0 להשבתה]"
msgid "Parallel Downloads"
msgstr "הורדות במקביל"
msgid "ESC to skip"
msgstr "ESC לדילוג"
msgid "CTRL+C to reset"
msgstr "CTRL+C לאיפוס"
msgid "TAB to select"
msgstr "TAB לבחירה"
msgid "[Default value: 0] > "
msgstr "[ערך ברירת מחדל: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "כדי להשתמש בתרגום הזה, נא להתקין את הגופן שתומך בשפה הזאת ידנית."
msgid "The font should be stored as {}"
msgstr "יש לאחסן את הגופן בתור {}"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Archinstall דורש הרשאות עליונות (root) כדי לעלות. --help לקבלת מידע נוסף."
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 "השמות של הפרופילים חייבים להיות יחודיים, אך נמצאו הגדרות פרופילים עם שמות כפולים: {}"
msgid "Select one or more devices to use and configure"
msgstr "נא לבחור התקן או יותר לשימוש ולהגדרה"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "איפוס בחירת ההתקנים יאפס גם את פריסת הכוננים הנוכחית. להמשיך?"
msgid "Existing Partitions"
msgstr "מחיצות קיימות"
msgid "Select a partitioning option"
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: {} ג״ב"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "זאת רשימה של פרופילי גיבוי שנכתבו מראש, הם עשויים להקל על התקנת דברים כמו סביבות שולחן עבודה"
msgid "Current profile selection"
msgstr "בחירת הפרופיל הנוכחי"
msgid "Remove all newly added partitions"
msgstr "הסרת כל המחיצות החדשות שנוספו"
msgid "Assign mountpoint"
msgstr "הקצאת נקודת עגינה"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "סימון/ביטול סימן לפרמוט (מוחה את הנתונים)"
msgid "Mark/Unmark as bootable"
msgstr "סימון/ביטול סימון כזמין לטעינה"
msgid "Change filesystem"
msgstr "החלפת מערכת קבצים"
msgid "Mark/Unmark as compressed"
msgstr "סימון/ביטול סימון כמכווץ"
msgid "Set subvolumes"
msgstr "הגדרת תת־כרכים"
msgid "Delete partition"
msgstr "מחיקת מחיצה"
msgid "Partition"
msgstr "מחיצה"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "המחיצה הזאת מוצפנת כרגע, כדי לפרמט אותה צריך להגדיר מערכת קבצים"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "נקודות העגינה של המחיצה הן יחסיות למערכת ההתקנה, מחיצת הטעינה למשל תהיה /boot."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "אם מוגדרת נקודת עגינה על /boot, אז המחיצה תסומן כזמינה לטעינה."
msgid "Mountpoint: "
msgstr "נקודת עגינה: "
msgid "Current free sectors on device {}:"
msgstr "כמות המקטעים (סקטורים) הפנויים כרגע בכונן {}:"
msgid "Total sectors: {}"
msgstr "סך כל המקטעים (סקטורים): {}"
msgid "Enter the start sector (default: {}): "
msgstr "נא למלא את מקטע (סקטור) ההתחלה (ברירת מחדל: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
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 "אורך כולל: {}"
msgid "Encryption type"
msgstr "סוג הצפנה"
msgid "Iteration time"
msgstr ""
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr ""
msgid "Higher values increase security but slow down boot time"
msgstr ""
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr ""
msgid "Iteration time cannot be empty"
msgstr ""
msgid "Iteration time must be at least 100ms"
msgstr ""
msgid "Iteration time must be at most 120000ms"
msgstr ""
msgid "Please enter a valid number"
msgstr ""
msgid "Partitions"
msgstr "מחיצות"
msgid "No HSM devices available"
msgstr "אין התקני HSM זמינים"
msgid "Partitions to be encrypted"
msgstr "מחיצות להצפנה"
msgid "Select disk encryption option"
msgstr "נא לבחור אפשרויות להצפנת כונן"
msgid "Select a FIDO2 device to use for HSM"
msgstr "נא לבחור את התקן ה־FIDO2 לשימוש עבור HSM"
msgid "Use a best-effort default partition layout"
msgstr "להשתמש בפריסת מחיצות כברירת מחדל על בסיס מאמץ מיטבי"
msgid "Manual Partitioning"
msgstr "חלוקה ידנית למחיצות"
msgid "Pre-mounted configuration"
msgstr "הגדרות לעיגון שבוצע"
msgid "Unknown"
msgstr "לא ידוע"
msgid "Partition encryption"
msgstr "הצפנת מחיצה"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! {} מפורמט תחת "
msgid "← Back"
msgstr "→ חזרה"
msgid "Disk encryption"
msgstr "הצפנת כונן"
msgid "Configuration"
msgstr "הגדרות"
msgid "Password"
msgstr "סיסמה"
msgid "All settings will be reset, are you sure?"
msgstr "כל ההגדרות תאופסנה, להמשיך?"
msgid "Back"
msgstr "חזרה"
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr "נא לבחור את מערכת קבלת הפנים לפרופילים הנבחרים: {}"
#, python-brace-format
msgid "Environment type: {}"
msgstr "סוג סביבה: {}"
msgid "The proprietary Nvidia driver is not supported by Sway. It is likely that you will run into issues, are you okay with that?"
msgstr "ב־Sway אין תמיכה במנהל ההתקן של Nvidia. כנראה שזה יוביל לבעיות, זה בסדר מבחינתך?"
msgid "Installed packages"
msgstr "חבילות מותקנות"
msgid "Add profile"
msgstr "הוספת פרופיל"
msgid "Edit profile"
msgstr "עריכת פרופיל"
msgid "Delete profile"
msgstr "מחיקת פרופיל"
msgid "Profile name: "
msgstr "שם הפרופיל: "
msgid "The profile name you entered is already in use. Try again"
msgstr "שם הפרופיל שמילאת כבר קיים. נא לנסות שוב"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "חבילות להתקנה עם הפרופיל הזה (להפריד ברווחים, ריק יוביל לדילוג על השלב הזה): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "שירותים להפעלה עם הפרופיל הזה (להפריד ברווחים, ריק יוביל לדילוג על השלב הזה): "
msgid "Should this profile be enabled for installation?"
msgstr "להפעיל את הפרופיל הזה להתקנה?"
msgid "Create your own"
msgstr "יצירת אחד משלך"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"נא לבחור מנהל התקן גרפי או להשאיר ריק כדי להתקין את מנהל ההתקן שכולו בקוד פתוח"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway צריך גישה למושב (אוסף של התקני חומרה כמו למשל מקלדת, עכבר וכו׳) שלך"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"נא לבחור אפשרות לתת ל־Sway גישה לחומרה שלך"
msgid "Graphics driver"
msgstr "מנהלי התקני גרפיים"
msgid "Greeter"
msgstr "מערכת קבלת פנים"
msgid "Please chose which greeter to install"
msgstr "נא לבחור איזו מערכת קבלת פנים להתקין"
msgid "This is a list of pre-programmed default_profiles"
msgstr "זאת רשימה של פרופילים ברירת מחדל שנכתבו מראש"
msgid "Disk configuration"
msgstr "הגדרת כונן"
msgid "Profiles"
msgstr "פרופילים"
msgid "Finding possible directories to save configuration files ..."
msgstr "מתבצע חיפוש אחר תיקיות אפשריות לשמירת קובצי ההגדרות…"
msgid "Select directory (or directories) for saving configuration files"
msgstr "נא לבחור תיקייה (או תיקיות) לשמירת קובצי ההגדרות"
msgid "Add a custom mirror"
msgstr "הוספת אתר מראה משלך"
msgid "Change custom mirror"
msgstr "החלפת אתר מראה משלך"
msgid "Delete custom mirror"
msgstr "מחיקת אתר מראה משלך"
msgid "Enter name (leave blank to skip): "
msgstr "נא למלא שם (ריק לדילוג): "
msgid "Enter url (leave blank to skip): "
msgstr "נא למלא כתובת (ריק לדילוג): "
msgid "Select signature check option"
msgstr "בחירת אפשרות בדיקת חתימות"
msgid "Select signature option"
msgstr "בחירת אפשרות חתימות"
msgid "Custom mirrors"
msgstr "אתרי מראה משלך"
msgid "Defined"
msgstr "מוגדר"
msgid "Save user configuration (including disk layout)"
msgstr "שמירת הגדרות משתמש (כולל פריסת כוננים)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"נא למלא תיקייה לשמירת ההגדרות (אפשר להשלים עם tab)\n"
"\n"
"תיקיית השמירה: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"לשמור את {} קובצי ההגדרות בתיקייה הבאה?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "קובצי ההגדרות {} נשמרים אל {}"
msgid "Mirrors"
msgstr "אתרי מראה"
msgid "Mirror regions"
msgstr "אזורי אתרי מראה"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - ערך מרבי : {} ( מאפשר {} הורדות במקביל, מאפשר {max_downloads+1} הורדות במקביל )"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "קלט שגוי! נא לנסות שוב עם קלט תקין [1 עד {}, או 0 להשבתה]"
msgid "Locales"
msgstr "הגדרות אזוריות"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "להשתמש ב־NetworkManager (נחוץ להגדרת האינטרנט באופן גרפי ב־GNOME וב־KDE)"
msgid "Total: {} / {}"
msgstr "סך הכול: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "אפשר להוסיף יחידה לכל ערך שהוא שהזנת: %, B, KB, KiB, MB, MiB…"
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "אם לא צוין ערך, הערך יפורש בתוך סקטורים (מגזרים)"
msgid "Enter start (default: sector {}): "
msgstr "נא למלא התחלה (ברירת מחדל: סקטור {}): "
msgid "Enter end (default: {}): "
msgstr "נא למלא סוף (ברירת מחדל: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "לא ניתן למצוא התקני fido2. libfido2 מותקן?"
msgid "Path"
msgstr "נתיב"
msgid "Manufacturer"
msgstr "יצרן"
msgid "Product"
msgstr "מוצר"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "הגדרה שגויה: {error}"
msgid "Type"
msgstr "סוג"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "אפשרות זו מאפשרת כמה הורדות במקביל לטובת הורדות של חבילות"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"נא למלא את מספר ההורדות המקביליות להפעלה.\n"
"\n"
"הערה:\n"
#, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr " - הערך המרבי המומלץ: {} ( מאפשר {} הורדות במקביל בכל עת )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - השבתה/ברירת מחדל : 0 ( משבית הורדות מקביליות, מאפשר רק הורדה אחת כל פעם )\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "קלט שגוי! נא לנסות שוב עם קלט תקין [או 0 להשבתה]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Hyprland צריך גישה למושב שלך (seat - אוסף של התקני חומרה, כלומר מקלדת, עכבר וכו׳)"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"נא לבחור אפשרות כדי לתת ל־Hyprland גישה לחומרה שלך"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "אפשר להוסיף יחידה לכל ערך שהוא: %, B, KB, KiB, MB, MiB…"
msgid "Would you like to use unified kernel images?"
msgstr "להשתמש בדמויות ליבה אחודות (UKI)?"
msgid "Unified kernel images"
msgstr "דמויות ליבה אחודות"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "בהמתנה להשלמת סנכרון השעון (timedatectl show)."
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "סנכרון זמן לא מסתיים, בזמן ההמתנה - כדאי לחפש צורות לעקוף את זה במסמכים: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "לדלג על המתנה לסנכרון השעון אוטומטית (יכול לגרום לבעיות אם השעה לא מסונכרנת במהלך ההתקנה)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "בהמתנה לסיום סנכרון מחזיק מפתחות של Arch Linux (archlinux-keyring-wkd-sync)."
msgid "Selected profiles: "
msgstr "פרופילים נבחרים: "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "סנכרון זמן לא מסתיים, בזמן ההמתנה - אפשר לחפש צורות לעקוף את זה במסמכים: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "סימון/ביטול סימון כ־nodatacow"
msgid "Would you like to use compression or disable CoW?"
msgstr "להשתמש בדחיסה או להשבית את CoW?"
msgid "Use compression"
msgstr "להשתמש בדחיסה"
msgid "Disable Copy-on-Write"
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 "סוג הגדרה: {}"
msgid "LVM configuration type"
msgstr "סוג הגדרת LVM"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "הצפנת כונן LVM עם יותר משתי מחיצות אינה נתמכת כרגע"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "להשתמש ב־NetworkManager (נחוץ להגדרת האינטרנט באופן גרפי ב־GNOME וב־KDE פלזמה)"
msgid "Select a LVM option"
msgstr "בחירת אפשרות LVM"
msgid "Partitioning"
msgstr "חלוקה למחיצות"
msgid "Logical Volume Management (LVM)"
msgstr "ניהול כרכים לוגיים (LVM)"
msgid "Physical volumes"
msgstr "כרכים פיזיים"
msgid "Volumes"
msgstr "כרכים"
msgid "LVM volumes"
msgstr "כרכי LVM"
msgid "LVM volumes to be encrypted"
msgstr "כרכי LVM להצפנה"
msgid "Select which LVM volumes to encrypt"
msgstr "נא לבחור אילו כרכי LVM להצפין"
msgid "Default layout"
msgstr "פריסת ברירת מחדל"
msgid "No Encryption"
msgstr "אין הצפנה"
msgid "LUKS"
msgstr "LUKS"
msgid "LVM on LUKS"
msgstr "LVM על גבי LUKS"
msgid "LUKS on LVM"
msgstr "LUKS על גבי LVM"
msgid "Yes"
msgstr "כן"
msgid "No"
msgstr "לא"
msgid "Archinstall help"
msgstr "העזרה של Archinstall"
msgid " (default)"
msgstr " (ברירת מחדל)"
msgid "Press Ctrl+h for help"
msgstr "לחיצה על Ctrl+h תפנה לעזרה"
msgid "Choose an option to give Sway access to your hardware"
msgstr "נא לבחור אפשרות לתת ל־Sway גישה לחומרה שלך"
msgid "Seat access"
msgstr "גישה למושב"
msgid "Mountpoint"
msgstr "נקודת עגינה"
msgid "HSM"
msgstr "HSM"
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "נא למלא סיסמה להצפנת הכונן (להשאיר ריק כדי לא להגדיר הצפנה)"
msgid "Disk encryption password"
msgstr "סיסמת הצפנת כונן"
msgid "Partition - New"
msgstr "מחיצה - חדשה"
msgid "Filesystem"
msgstr "מערכת קבצים"
msgid "Invalid size"
msgstr "גודל שגוי"
msgid "Start (default: sector {}): "
msgstr "התחלה (ברירת מחדל: סקטור {}): "
msgid "End (default: {}): "
msgstr "סוף (ברירת מחדל: {}): "
msgid "Subvolume name"
msgstr "שם תת־כרך"
msgid "Disk configuration type"
msgstr "סוג הגדרת כונן"
msgid "Root mount directory"
msgstr "תיקיית עגינת שורש"
msgid "Select language"
msgstr "בחירת שפה"
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "נא לכתוב חבילות נוספות להתקנה (להפריד ברווחים, להשאיר ריק כדי לדלג)"
msgid "Invalid download number"
msgstr "מספר ההורדה שגוי"
msgid "Number downloads"
msgstr "מספר ההורדות"
msgid "The username you entered is invalid"
msgstr "שם המשתמש שמילאת שגוי"
msgid "Username"
msgstr "שם משתמש"
#, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "האם ל־„{}“ אמורות להיות הרשאות על (sudo)?\n"
msgid "Interfaces"
msgstr "מנשקים"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "יש למלא כתובת IP תקפה במצב הגדרות IP"
msgid "Modes"
msgstr "מצבים"
msgid "IP address"
msgstr "כתובת IP"
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "נא למלא את כתובת ה־IP של שער הגישה (ראוטר - או להשאיר ריק כדי לא להגדיר)"
msgid "Gateway address"
msgstr "כתובת שער גישה"
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "נא למלא את שרתי ה־DNS שלך (להפריד ברווחים, להשאיר ריק אם אין)"
msgid "DNS servers"
msgstr "שרתי DNS"
msgid "Configure interfaces"
msgstr "הגדרת מנשקים"
msgid "Kernel"
msgstr "ליבה"
msgid "UEFI is not detected and some options are disabled"
msgstr "לא זוהה UEFI וחלק מהאפשרויות מושבתות"
msgid "Info"
msgstr "פרטים"
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "ב־Sway אין תמיכה במנהל ההתקן הקנייני של Nvidia."
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "כנראה שזה יוביל לבעיות, זה בסדר מבחינתך?"
msgid "Main profile"
msgstr "פרופיל ראשי"
msgid "Confirm password"
msgstr "אישור סיסמה"
msgid "The confirmation password did not match, please try again"
msgstr "סיסמת האישור לא תואמת, נא לנסות שוב"
msgid "Not a valid directory"
msgstr "אינה תיקייה תקפה"
msgid "Would you like to continue?"
msgstr "להמשיך?"
msgid "Directory"
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 "לשמור את קובצי ההגדרות אל {}?"
msgid "Enabled"
msgstr "פעיל"
msgid "Disabled"
msgstr "מושבת"
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr "נא להגיש דיווח על הבעיה הזאת (ואת הקובץ) דרך https://github.com/archlinux/archinstall/issues"
msgid "Mirror name"
msgstr "שם אתר המראה"
msgid "Url"
msgstr "כתובת"
msgid "Select signature check"
msgstr "בחירת בדיקת חתימות"
msgid "Select execution mode"
msgstr "בחירת מצב הפעלה"
msgid "Press ? for help"
msgstr "נא ללחוץ על ? לעזרה"
msgid "Choose an option to give Hyprland access to your hardware"
msgstr "נא לבחור אפשרות כדי לתת ל־Hyprland גישה לחומרה שלך"
msgid "Additional repositories"
msgstr "מאגרים נוספים"
msgid "NTP"
msgstr "NTP"
msgid "Swap on zram"
msgstr "החלפה ב־zram"
msgid "Name"
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 "גודל (ברירת מחדל: {}): "
msgid "HSM device"
msgstr "התקן HSM"
msgid "Some packages could not be found in the repository"
msgstr "חלק מהחבילות לא נמצאו במאגר"
msgid "User"
msgstr "משתמש"
msgid "The specified configuration will be applied"
msgstr "ההגדרות שצוינו תחולנה"
msgid "Wipe"
msgstr ""
#, fuzzy
msgid "Mark/Unmark as XBOOTLDR"
msgstr "סימון/ביטול סימון כזמין לטעינה"
#, fuzzy
msgid "Loading packages..."
msgstr "חבילות נוספות"
msgid "Select any packages from the below list that should be installed additionally"
msgstr ""
#, fuzzy
msgid "Add a custom repository"
msgstr "הוספת אתר מראה משלך"
#, fuzzy
msgid "Change custom repository"
msgstr "החלפת אתר מראה משלך"
#, fuzzy
msgid "Delete custom repository"
msgstr "מחיקת אתר מראה משלך"
#, fuzzy
msgid "Repository name"
msgstr "שם אתר המראה"
#, fuzzy
msgid "Add a custom server"
msgstr "הוספת אתר מראה משלך"
#, fuzzy
msgid "Change custom server"
msgstr "החלפת אתר מראה משלך"
#, fuzzy
msgid "Delete custom server"
msgstr "מחיקת אתר מראה משלך"
msgid "Server url"
msgstr ""
#, fuzzy
msgid "Select regions"
msgstr "בחירת אפשרות חתימות"
#, fuzzy
msgid "Add custom servers"
msgstr "הוספת אתר מראה משלך"
#, fuzzy
msgid "Add custom repository"
msgstr "הוספת אתר מראה משלך"
#, fuzzy
msgid "Loading mirror regions..."
msgstr "אזורי אתרי מראה"
#, fuzzy
msgid "Mirrors and repositories"
msgstr "מאגרי רשות"
#, fuzzy
msgid "Selected mirror regions"
msgstr "אזורי אתרי מראה"
#, fuzzy
msgid "Custom servers"
msgstr "אתרי מראה משלך"
#, fuzzy
msgid "Custom repositories"
msgstr "מאגרי רשות"
msgid "Only ASCII characters are supported"
msgstr ""
msgid "Show help"
msgstr ""
msgid "Exit help"
msgstr ""
msgid "Preview scroll up"
msgstr ""
msgid "Preview scroll down"
msgstr ""
msgid "Move up"
msgstr ""
msgid "Move down"
msgstr ""
msgid "Move right"
msgstr ""
msgid "Move left"
msgstr ""
msgid "Jump to entry"
msgstr ""
msgid "Skip selection (if available)"
msgstr ""
msgid "Reset selection (if available)"
msgstr ""
#, fuzzy
msgid "Select on single select"
msgstr "בחירת בדיקת חתימות"
#, fuzzy
msgid "Select on multi select"
msgstr "בחירת אזור זמן"
msgid "Reset"
msgstr ""
#, fuzzy
msgid "Skip selection menu"
msgstr "בחירת מצב הפעלה"
msgid "Start search mode"
msgstr ""
msgid "Exit search mode"
msgstr ""
#, fuzzy
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway צריך גישה למושב (אוסף של התקני חומרה כמו למשל מקלדת, עכבר וכו׳) שלך"
#, fuzzy
msgid "Choose an option to give labwc access to your hardware"
msgstr "נא לבחור אפשרות לתת ל־Sway גישה לחומרה שלך"
#, fuzzy
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway צריך גישה למושב (אוסף של התקני חומרה כמו למשל מקלדת, עכבר וכו׳) שלך"
#, fuzzy
msgid "Choose an option to give niri access to your hardware"
msgstr "נא לבחור אפשרות לתת ל־Sway גישה לחומרה שלך"
#, fuzzy
msgid "Mark/Unmark as ESP"
msgstr "סימון/ביטול סימון כזמין לטעינה"
msgid "Package group:"
msgstr ""
#, fuzzy
msgid "Exit archinstall"
msgstr "העזרה של Archinstall"
#, fuzzy
msgid "Reboot system"
msgstr "מערכת קבצים"
#, fuzzy
msgid "chroot into installation for post-installation configurations"
msgstr "האם להיכנס להתקנה החדשה שיצרת עם chroot (העמסת סביבה) לביצוע הגדרות שלאחר התקנה?"
msgid "Installation completed"
msgstr ""
#, fuzzy
msgid "What would you like to do next?"
msgstr "להמשיך?"
#, fuzzy, python-brace-format
msgid "Select which mode to configure for \"{}\""
msgstr "נא לבחור איזה מצב להגדרה עבור „{}“ או לדלג כדי להשתמש במצב ברירת המחדל „{}“"
#, fuzzy
msgid "Incorrect credentials file decryption password"
msgstr "סיסמת הצפנת כונן"
#, fuzzy
msgid "Incorrect password"
msgstr "סיסמת root (משתמש עליון)"
#, fuzzy
msgid "Credentials file decryption password"
msgstr "סיסמת הצפנת כונן"
#, fuzzy
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr "לשמור את קובצי ההגדרות אל {}?"
#, fuzzy
msgid "Credentials file encryption password"
msgstr "סיסמת הצפנת כונן"
#, 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 "Print service"
msgstr ""
#, fuzzy
msgid "Would you like to configure the print service?"
msgstr "להמשיך?"
#, fuzzy
msgid "Power management"
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 ""
msgid "Starting device modifications in "
msgstr ""
#, fuzzy
msgid "No network connection found"
msgstr "אין הגדרות רשת"
#, fuzzy
msgid "Would you like to connect to a Wifi?"
msgstr "להמשיך?"
#, fuzzy
msgid "No wifi interface found"
msgstr "הגדרת מנשקים"
#, fuzzy
msgid "Select wifi network to connect to"
msgstr "נא לבחור מנשק רשת להגדרה"
msgid "Scanning wifi networks..."
msgstr ""
#, fuzzy
msgid "No wifi networks found"
msgstr "אין הגדרות רשת"
msgid "Failed setting up wifi"
msgstr ""
#, fuzzy
msgid "Enter wifi password"
msgstr "נא למלא סיסמה: "
msgid "Ok"
msgstr ""
msgid "Removable"
msgstr ""
msgid "Install to removable location"
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr ""
msgid "Will install to standard location with NVRAM entry"
msgstr ""
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr ""
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr ""
msgid "USB drives or other portable external media."
msgstr ""
msgid "Systems where you want the disk to be bootable on any computer."
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr ""
msgid "Will install to custom location with NVRAM entry"
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr ""
msgid "most Apple Macs, many laptops..."
msgstr ""
#, fuzzy
msgid "Language"
msgstr "שפת ההגדרה האזורית"
msgid "Compression algorithm"
msgstr ""
#, fuzzy
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "רק חבילות כגוןbase, base-devel, linux, linux-firmware, efibootmgr וחבילות פרופיל כרשות מותקנות."
#, fuzzy
msgid "Select zram compression algorithm:"
msgstr "נא לבחור נק׳ עגינה :"
msgid "Use Network Manager (default backend)"
msgstr ""
msgid "Use Network Manager (iwd backend)"
msgstr ""
================================================
FILE: archinstall/locales/hi/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: Atharv \n"
"Language-Team: \n"
"Language: he\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.5\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] यहाँ एक लॉग फ़ाइल बनाई गई है: {} {}"
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr "कृपया इस समस्या (और फ़ाइल) को https://github.com/archlinux/archinstall/issues पर सबमिट करें।"
msgid "Do you really want to abort?"
msgstr "क्या आप वाकई रद्द करना चाहते हैं?"
msgid "And one more time for verification: "
msgstr "सत्यापन के लिए एक बार और: "
msgid "Would you like to use swap on zram?"
msgstr "क्या आप swap के लिए zram इस्तेमाल करना चाहेंगे?"
msgid "Desired hostname for the installation: "
msgstr "इच्छित होस्ट का नाम (hostname) इंस्टालेशन के लिए: "
msgid "Username for required superuser with sudo privileges: "
msgstr "sudo प्रिविलेज वाले ज़रूरी सुपरयूज़र के लिए यूज़रनेम: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "इंस्टॉल करने के लिए कोई अतिरिक्त यूज़र (कोई यूज़र नहीं होने पर खाली छोड़ दें): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "क्या यह user एक superuser होना चाहिए (sudoer)?"
msgid "Select a timezone"
msgstr "समयक्षेत्र चुनें"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "क्या आप systemd-boot की जगह GRUB को बूटलोडर के रूप में इस्तेमाल करना चाहेंगे?"
msgid "Choose a bootloader"
msgstr "एक bootloader चुनें"
msgid "Choose an audio server"
msgstr "एक audio server चुनें"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "केवल बेस, बेस-डेवल, लिनक्स, लिनक्स-फर्मवेयर, efibootmgr और ऑप्शनल प्रोफ़ाइल पैकेज जैसे पैकेज ही इंस्टॉल किए जाते हैं।"
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr "ध्यान दें: base-devel अब डिफ़ॉल्ट रूप से इंस्टॉल नहीं होता है। अगर आपको बिल्ड टूल्स की ज़रूरत है तो इसे यहाँ जोड़ें।"
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "अगर आप फ़ायरफ़ॉक्स या क्रोमियम जैसा वेब ब्राउज़र चाहते हैं, तो आप इसे नीचे दिए गए प्रॉम्प्ट में बता सकते हैं।"
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "अन्य packages का नाम लिखें (स्पेस छोड़कर, अन्यथा खाली छोड़ें): "
msgid "Copy ISO network configuration to installation"
msgstr "ISO नेटवर्क कॉन्फ़िगरेशन को इंस्टॉलेशन में कॉपी करें"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "NetworkManager का इस्तेमाल करें (GNOME और KDE में ग्राफिकली इंटरनेट कॉन्फ़िगर करने के लिए ज़रूरी है)"
msgid "Select one network interface to configure"
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): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "अपना गेटवे (राउटर) IP एड्रेस डालें या अगर कोई नहीं है तो खाली छोड़ दें: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "अपने DNS सर्वर डालें (स्पेस से अलग करें, कोई नहीं के लिए खाली छोड़ें): "
msgid "Select which filesystem your main partition should use"
msgstr "चुनें कि आपका मुख्य पार्टीशन किस फ़ाइलसिस्टम का उपयोग करेगा"
msgid "Current partition layout"
msgstr "वर्तमान partition (विभाजन) लेआउट"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"चुनें कि इसके साथ क्या करना है\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "पार्टीशन के लिए मनचाहा फ़ाइलसिस्टम टाइप डालें"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "शुरुआती लोकेशन डालें (पार्टेड यूनिट्स में: s, GB, %, वगैरह; डिफ़ॉल्ट: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "अंतिम लोकेशन डालें (अलग-अलग यूनिट में: s, GB, %, आदि; उदाहरण: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} में कतारबद्ध (queued) पार्टीशन हैं, इससे वे हट जाएंगे, क्या आप पक्का हैं?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"इंडेक्स (index) द्वारा चुनें कि कौन से पार्टीशन हटाने हैं"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"इंडेक्स द्वारा चुनें कि कौन सा पार्टीशन कहाँ माउंट करना है"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * पार्टीशन माउंट-पॉइंट इंस्टॉलेशन के अंदर के सापेक्ष (relative) हैं, उदाहरण के लिए बूट /boot होगा।"
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "चुनें कि पार्टीशन को कहाँ माउंट करना है (माउंटपॉइंट हटाने के लिए खाली छोड़ें): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"चुनें कि फ़ॉर्मेटिंग के लिए किस पार्टीशन को मार्क (mask) करना है"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"चुनें कि किस पार्टीशन को एनक्रिप्टेड (encrypted) मार्क करना है"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"चुनें कि किस पार्टीशन को बूट करने योग्य (bootable) मार्क करना है"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"चुनें कि किस पार्टीशन पर फ़ाइलसिस्टम सेट करना है"
msgid "Enter a desired filesystem type for the partition: "
msgstr "पार्टीशन के लिए वांछित फ़ाइलसिस्टम टाइप दर्ज करें: "
msgid "Archinstall language"
msgstr "Archinstall की भाषा"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "सभी चयनित ड्राइव्स को वाइप (Wipe) करें और सर्वोत्तम-प्रयास डिफ़ॉल्ट पार्टीशन लेआउट का उपयोग करें"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "चुनें कि प्रत्येक अलग ड्राइव के साथ क्या करना है (जिसके बाद पार्टीशन उपयोग आता है)"
msgid "Select what you wish to do with the selected block devices"
msgstr "चुनें कि आप चयनित ब्लॉक डिवाइसेज के साथ क्या करना चाहते हैं"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "यह पूर्व-प्रोग्राम किए गए प्रोफ़ाइल की सूची है, ये डेस्कटॉप एनवायरनमेंट जैसी चीजों को इंस्टॉल करना आसान बना सकते हैं"
msgid "Select keyboard layout"
msgstr "कीबोर्ड लेआउट चुनें"
msgid "Select one of the regions to download packages from"
msgstr "पैकेज डाउनलोड करने के लिए क्षेत्रों (regions) में से एक चुनें"
msgid "Select one or more hard drives to use and configure"
msgstr "उपयोग और कॉन्फ़िगर करने के लिए एक या अधिक हार्ड ड्राइव चुनें"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "अपने AMD हार्डवेयर के साथ सर्वोत्तम अनुकूलता के लिए, आप सभी ओपन-सोर्स या AMD / ATI विकल्पों का उपयोग करना चाह सकते हैं।"
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "अपने Intel हार्डवेयर के साथ सर्वोत्तम अनुकूलता के लिए, आप सभी ओपन-सोर्स या Intel विकल्पों का उपयोग करना चाह सकते हैं।\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "अपने Nvidia हार्डवेयर के साथ सर्वोत्तम अनुकूलता के लिए, आप Nvidia प्रोप्राइटरी (proprietary) ड्राइवर का उपयोग करना चाह सकते हैं।\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"एक ग्राफिक्स ड्राइवर चुनें या सभी ओपन-सोर्स ड्राइवरों को इंस्टॉल करने के लिए खाली छोड़ दें"
msgid "All open-source (default)"
msgstr "सभी ओपन-सोर्स (डिफ़ॉल्ट)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "चुनें कि कौन से कर्नेल (kernels) का उपयोग करना है या डिफ़ॉल्ट \"{}\" के लिए खाली छोड़ दें"
msgid "Choose which locale language to use"
msgstr "उपयोग करने के लिए लोकेल (locale) भाषा चुनें"
msgid "Choose which locale encoding to use"
msgstr "उपयोग करने के लिए लोकेल एन्कोडिंग चुनें"
msgid "Select one of the values shown below: "
msgstr "नीचे दिखाए गए मानों में से एक चुनें: "
msgid "Select one or more of the options below: "
msgstr "नीचे दिए गए विकल्पों में से एक या अधिक चुनें: "
msgid "Adding partition...."
msgstr "पार्टीशन जोड़ा जा रहा है...."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "जारी रखने के लिए आपको एक मान्य fs-type दर्ज करना होगा। मान्य fs-type के लिए `man parted` देखें।"
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "त्रुटि: URL \"{}\" पर प्रोफ़ाइल लिस्ट करने का परिणाम यह रहा:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "त्रुटि: \"{}\" परिणाम को JSON के रूप में डिकोड नहीं किया जा सका:"
msgid "Keyboard layout"
msgstr "कीबोर्ड लेआउट"
msgid "Mirror region"
msgstr "मिरर क्षेत्र (Mirror region)"
msgid "Locale language"
msgstr "लोकेल भाषा"
msgid "Locale encoding"
msgstr "लोकेल एन्कोडिंग"
msgid "Drive(s)"
msgstr "ड्राइव(s)"
msgid "Disk layout"
msgstr "डिस्क लेआउट"
msgid "Encryption password"
msgstr "एन्क्रिप्शन पासवर्ड"
msgid "Swap"
msgstr "स्वैप (Swap)"
msgid "Bootloader"
msgstr "बूटलोडर"
msgid "Root password"
msgstr "रूट पासवर्ड"
msgid "Superuser account"
msgstr "सुपरयूज़र खाता"
msgid "User account"
msgstr "उपयोगकर्ता खाता"
msgid "Profile"
msgstr "प्रोफ़ाइल"
msgid "Audio"
msgstr "ऑडियो"
msgid "Kernels"
msgstr "कर्नेल (Kernels)"
msgid "Additional packages"
msgstr "अतिरिक्त पैकेज"
msgid "Network configuration"
msgstr "नेटवर्क कॉन्फ़िगरेशन"
msgid "Automatic time sync (NTP)"
msgstr "स्वचालित समय सिंक (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "इंस्टॉल करें ({} कॉन्फ़िगरेशन गायब है/हैं)"
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 ""
"आपने हार्डड्राइव चयन छोड़ने का निर्णय लिया है\n"
"और जो भी ड्राइव-सेटअप {} पर माउंट है उसका उपयोग करेंगे (प्रयोगात्मक)\n"
"चेतावनी: Archinstall इस सेटअप की उपयुक्तता की जाँच नहीं करेगा\n"
"क्या आप जारी रखना चाहते हैं?"
msgid "Re-using partition instance: {}"
msgstr "पार्टीशन इंस्टेंस का पुनः उपयोग: {}"
msgid "Create a new partition"
msgstr "एक नया पार्टीशन बनाएँ"
msgid "Delete a partition"
msgstr "एक पार्टीशन हटाएँ"
msgid "Clear/Delete all partitions"
msgstr "सभी पार्टीशन साफ़ करें/हटाएँ"
msgid "Assign mount-point for a partition"
msgstr "पार्टीशन के लिए माउंट-पॉइंट असाइन करें"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "फ़ॉर्मेट किए जाने वाले पार्टीशन को मार्क/अनमार्क करें (डेटा मिटा देता है)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "पार्टीशन को एनक्रिप्टेड के रूप में मार्क/अनमार्क करें"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "पार्टीशन को बूट करने योग्य मार्क/अनमार्क करें (/boot के लिए स्वचालित)"
msgid "Set desired filesystem for a partition"
msgstr "पार्टीशन के लिए वांछित फ़ाइलसिस्टम सेट करें"
msgid "Abort"
msgstr "रद्द करें"
msgid "Hostname"
msgstr "होस्टनेम (Hostname)"
msgid "Not configured, unavailable unless setup manually"
msgstr "कॉन्फ़िगर नहीं किया गया, जब तक मैन्युअल रूप से सेटअप न हो तब तक अनुपलब्ध"
msgid "Timezone"
msgstr "समयक्षेत्र"
msgid "Set/Modify the below options"
msgstr "नीचे दिए गए विकल्पों को सेट/संशोधित करें"
msgid "Install"
msgstr "इंस्टॉल करें"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"छोड़ने के लिए ESC का उपयोग करें\n"
"\n"
msgid "Suggest partition layout"
msgstr "पार्टीशन लेआउट का सुझाव दें"
msgid "Enter a password: "
msgstr "पासवर्ड दर्ज करें: "
msgid "Enter a encryption password for {}"
msgstr "{} के लिए एन्क्रिप्शन पासवर्ड दर्ज करें"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "डिस्क एन्क्रिप्शन पासवर्ड दर्ज करें (एन्क्रिप्शन नहीं के लिए खाली छोड़ दें): "
msgid "Create a required super-user with sudo privileges: "
msgstr "sudo विशेषाधिकारों के साथ एक आवश्यक सुपर-यूज़र बनाएँ: "
msgid "Enter root password (leave blank to disable root): "
msgstr "रूट पासवर्ड दर्ज करें (रूट को अक्षम करने के लिए खाली छोड़ दें): "
msgid "Password for user \"{}\": "
msgstr "उपयोगकर्ता \"{}\" के लिए पासवर्ड: "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "सत्यापित किया जा रहा है कि अतिरिक्त पैकेज मौजूद हैं (इसमें कुछ सेकंड लग सकते हैं)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "क्या आप डिफ़ॉल्ट समय सर्वरों के साथ स्वचालित समय तुल्यकालन (NTP) का उपयोग करना चाहेंगे?\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 के काम करने के लिए हार्डवेयर समय और अन्य पोस्ट-कॉन्फ़िगरेशन चरणों की आवश्यकता हो सकती है।\n"
"अधिक जानकारी के लिए, कृपया Arch wiki देखें"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "अतिरिक्त उपयोगकर्ता बनाने के लिए यूज़रनेम दर्ज करें (छोड़ने के लिए खाली छोड़ दें): "
msgid "Use ESC to skip\n"
msgstr "छोड़ने के लिए ESC का उपयोग करें\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
" सूची से एक ऑब्जेक्ट चुनें, और इसे निष्पादित करने के लिए उपलब्ध क्रियाओं में से एक चुनें"
msgid "Cancel"
msgstr "रद्द करें"
msgid "Confirm and exit"
msgstr "पुष्टि करें और बाहर निकलें"
msgid "Add"
msgstr "जोड़ें"
msgid "Copy"
msgstr "कॉपी करें"
msgid "Edit"
msgstr "संपादित करें"
msgid "Delete"
msgstr "हटाएँ"
msgid "Select an action for '{}'"
msgstr "'{}' के लिए एक क्रिया चुनें"
msgid "Copy to new key:"
msgstr "नई कुंजी (key) पर कॉपी करें:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "अज्ञात nic प्रकार: {}। संभावित मान {} हैं"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"यह आपका चुना हुआ कॉन्फ़िगरेशन है:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman पहले से चल रहा है, इसके समाप्त होने के लिए अधिकतम 10 मिनट प्रतीक्षा की जा रही है।"
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "पहले से मौजूद pacman लॉक कभी बाहर नहीं निकला। कृपया archinstall का उपयोग करने से पहले किसी भी मौजूदा pacman सत्र को साफ़ करें।"
msgid "Choose which optional additional repositories to enable"
msgstr "चुनें कि कौन से वैकल्पिक अतिरिक्त रिपॉजिटरी को सक्षम करना है"
msgid "Add a user"
msgstr "एक उपयोगकर्ता जोड़ें"
msgid "Change password"
msgstr "पासवर्ड बदलें"
msgid "Promote/Demote user"
msgstr "उपयोगकर्ता को प्रमोट/डितेम (Promote/Demote) करें"
msgid "Delete User"
msgstr "उपयोगकर्ता हटाएँ"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"एक नया उपयोगकर्ता परिभाषित करें\n"
msgid "User Name : "
msgstr "उपयोगकर्ता नाम : "
msgid "Should {} be a superuser (sudoer)?"
msgstr "क्या {} को सुपरयूज़र (sudoer) होना चाहिए?"
msgid "Define users with sudo privilege: "
msgstr "sudo विशेषाधिकार वाले उपयोगकर्ताओं को परिभाषित करें: "
msgid "No network configuration"
msgstr "कोई नेटवर्क कॉन्फ़िगरेशन नहीं"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "btrfs पार्टीशन पर वांछित सबवॉल्यूम (subvolumes) सेट करें"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"चुनें कि किस पार्टीशन पर सबवॉल्यूम सेट करने हैं"
msgid "Manage btrfs subvolumes for current partition"
msgstr "वर्तमान पार्टीशन के लिए btrfs सबवॉल्यूम प्रबंधित करें"
msgid "No configuration"
msgstr "कोई कॉन्फ़िगरेशन नहीं"
msgid "Save user configuration"
msgstr "उपयोगकर्ता कॉन्फ़िगरेशन सहेजें"
msgid "Save user credentials"
msgstr "उपयोगकर्ता क्रेडेंशियल्स सहेजें"
msgid "Save disk layout"
msgstr "डिस्क लेआउट सहेजें"
msgid "Save all"
msgstr "सभी सहेजें"
msgid "Choose which configuration to save"
msgstr "चुनें कि कौन सा कॉन्फ़िगरेशन सहेजना है"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "कॉन्फ़िगरेशन सहेजने के लिए डायरेक्टरी दर्ज करें: "
msgid "Not a valid directory: {}"
msgstr "मान्य डायरेक्टरी नहीं है: {}"
msgid "The password you are using seems to be weak,"
msgstr "आप जो पासवर्ड इस्तेमाल कर रहे हैं वह कमजोर लग रहा है,"
msgid "are you sure you want to use it?"
msgstr "क्या आप वाकई इसका उपयोग करना चाहते हैं?"
msgid "Optional repositories"
msgstr "वैकल्पिक रिपॉजिटरी"
msgid "Save configuration"
msgstr "कॉन्फ़िगरेशन सहेजें"
msgid "Missing configurations:\n"
msgstr "लापता कॉन्फ़िगरेशन:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "या तो रूट-पासवर्ड या कम से कम 1 सुपरयूज़र निर्दिष्ट होना चाहिए"
msgid "Manage superuser accounts: "
msgstr "सुपरयूज़र खाते प्रबंधित करें: "
msgid "Manage ordinary user accounts: "
msgstr "साधारण उपयोगकर्ता खाते प्रबंधित करें: "
msgid " Subvolume :{:16}"
msgstr " सबवॉल्यूम :{:16}"
msgid " mounted at {:16}"
msgstr " यहाँ माउंट किया गया {:16}"
msgid " with option {}"
msgstr " विकल्प {} के साथ"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
" नए सबवॉल्यूम के लिए वांछित मान भरें \n"
msgid "Subvolume name "
msgstr "सबवॉल्यूम का नाम "
msgid "Subvolume mountpoint"
msgstr "सबवॉल्यूम माउंटपॉइंट"
msgid "Subvolume options"
msgstr "सबवॉल्यूम विकल्प"
msgid "Save"
msgstr "सहेजें"
msgid "Subvolume name :"
msgstr "सबवॉल्यूम का नाम :"
msgid "Select a mount point :"
msgstr "माउंट पॉइंट चुनें :"
msgid "Select the desired subvolume options "
msgstr "वांछित सबवॉल्यूम विकल्प चुनें "
msgid "Define users with sudo privilege, by username: "
msgstr "उपयोगकर्ता नाम से, sudo विशेषाधिकार वाले उपयोगकर्ताओं को परिभाषित करें: "
#, python-brace-format
msgid "[!] A log file has been created here: {}"
msgstr "[!] यहाँ एक लॉग फ़ाइल बनाई गई है: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "क्या आप डिफ़ॉल्ट संरचना के साथ BTRFS सबवॉल्यूम का उपयोग करना चाहेंगे?"
msgid "Would you like to use BTRFS compression?"
msgstr "क्या आप BTRFS कम्प्रेशन का उपयोग करना चाहेंगे?"
msgid "Would you like to create a separate partition for /home?"
msgstr "क्या आप /home के लिए एक अलग पार्टीशन बनाना चाहेंगे?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "चयनित ड्राइव्स में स्वचालित सुझाव के लिए आवश्यक न्यूनतम क्षमता नहीं है\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "/home पार्टीशन के लिए न्यूनतम क्षमता: {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Arch Linux पार्टीशन के लिए न्यूनतम क्षमता: {}GB"
msgid "Continue"
msgstr "जारी रखें"
msgid "yes"
msgstr "हाँ"
msgid "no"
msgstr "नहीं"
msgid "set: {}"
msgstr "सेट: {}"
msgid "Manual configuration setting must be a list"
msgstr "मैन्युअल कॉन्फ़िगरेशन सेटिंग एक सूची होनी चाहिए"
msgid "No iface specified for manual configuration"
msgstr "मैन्युअल कॉन्फ़िगरेशन के लिए कोई iface निर्दिष्ट नहीं है"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "बिना ऑटो DHCP वाले मैन्युअल nic कॉन्फ़िगरेशन के लिए IP पते की आवश्यकता होती है"
msgid "Add interface"
msgstr "इंटरफ़ेस जोड़ें"
msgid "Edit interface"
msgstr "इंटरफ़ेस संपादित करें"
msgid "Delete interface"
msgstr "इंटरफ़ेस हटाएँ"
msgid "Select interface to add"
msgstr "जोड़ने के लिए इंटरफ़ेस चुनें"
msgid "Manual configuration"
msgstr "मैन्युअल कॉन्फ़िगरेशन"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "पार्टीशन को कम्प्रेश्ड (केवल btrfs) के रूप में मार्क/अनमार्क करें"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "आप जो पासवर्ड इस्तेमाल कर रहे हैं वह कमजोर लग रहा है, क्या आप वाकई इसका उपयोग करना चाहते हैं?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "डेस्कटॉप एनवायरनमेंट और टाइलिंग विंडो मैनेजर का चयन प्रदान करता है, जैसे gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "अपना वांछित डेस्कटॉप एनवायरनमेंट चुनें"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "एक बहुत ही बुनियादी इंस्टॉलेशन जो आपको अपनी इच्छानुसार Arch Linux को अनुकूलित करने की अनुमति देता है।"
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "इंस्टॉल और सक्षम करने के लिए विभिन्न सर्वर पैकेजों का चयन प्रदान करता है, जैसे httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "चुनें कि कौन से सर्वर इंस्टॉल करने हैं, यदि कोई नहीं तो न्यूनतम इंस्टॉलेशन किया जाएगा"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "एक न्यूनतम सिस्टम के साथ-साथ xorg और ग्राफिक्स ड्राइवर इंस्टॉल करता है।"
msgid "Press Enter to continue."
msgstr "जारी रखने के लिए Enter दबाएँ।"
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "क्या आप नव निर्मित इंस्टॉलेशन में chroot करना चाहते हैं और पोस्ट-इंस्टॉलेशन कॉन्फ़िगरेशन करना चाहते हैं?"
msgid "Are you sure you want to reset this setting?"
msgstr "क्या आप वाकई इस सेटिंग को रीसेट करना चाहते हैं?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "उपयोग और कॉन्फ़िगर करने के लिए एक या अधिक हार्ड ड्राइव चुनें\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "मौजूदा सेटिंग में कोई भी संशोधन डिस्क लेआउट को रीसेट कर देगा!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "यदि आप हार्डड्राइव चयन को रीसेट करते हैं तो यह वर्तमान डिस्क लेआउट को भी रीसेट कर देगा। क्या आप पक्का हैं?"
msgid "Save and exit"
msgstr "सहेजें और छोड़ें"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"में कतारबद्ध पार्टीशन हैं, इससे वे हट जाएंगे, क्या आप पक्का हैं?"
msgid "No audio server"
msgstr "कोई ऑडियो सर्वर नहीं"
msgid "(default)"
msgstr "(डिफ़ॉल्ट)"
msgid "Use ESC to skip"
msgstr "छोड़ने के लिए ESC का उपयोग करें"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"वर्तमान चयन को रीसेट करने के लिए CTRL+C का उपयोग करें\n"
"\n"
msgid "Copy to: "
msgstr "यहाँ कॉपी करें: "
msgid "Edit: "
msgstr "संपादित करें: "
msgid "Key: "
msgstr "कुंजी (Key): "
msgid "Edit {}: "
msgstr "संपादित करें {}: "
msgid "Add: "
msgstr "जोड़ें: "
msgid "Value: "
msgstr "मान (Value): "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "आप ड्राइव का चयन और विभाजन छोड़ सकते हैं और /mnt पर माउंट किए गए किसी भी ड्राइव-सेटअप का उपयोग कर सकते हैं (प्रयोगात्मक)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "डिस्क में से एक का चयन करें या छोड़ दें और डिफ़ॉल्ट के रूप में /mnt का उपयोग करें"
msgid "Select which partitions to mark for formatting:"
msgstr "चुनें कि फ़ॉर्मेटिंग के लिए किन पार्टीशन को मार्क करना है:"
msgid "Use HSM to unlock encrypted drive"
msgstr "एन्क्रिप्टेड ड्राइव को अनलॉक करने के लिए HSM का उपयोग करें"
msgid "Device"
msgstr "डिवाइस"
msgid "Size"
msgstr "आकार"
msgid "Free space"
msgstr "खाली जगह"
msgid "Bus-type"
msgstr "बस-प्रकार (Bus-type)"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "या तो रूट-पासवर्ड या sudo विशेषाधिकार वाले कम से कम 1 उपयोगकर्ता को निर्दिष्ट किया जाना चाहिए"
msgid "Enter username (leave blank to skip): "
msgstr "यूज़रनेम दर्ज करें (छोड़ने के लिए खाली छोड़ दें): "
msgid "The username you entered is invalid. Try again"
msgstr "आपके द्वारा दर्ज किया गया यूज़रनेम अमान्य है। पुनः प्रयास करें"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "क्या \"{}\" को superuser (sudo) होना चाहिए?"
msgid "Select which partitions to encrypt"
msgstr "चुनें कि किन पार्टीशन को एनक्रिप्ट करना है"
msgid "very weak"
msgstr "बहुत कमजोर"
msgid "weak"
msgstr "कमजोर"
msgid "moderate"
msgstr "मध्यम"
msgid "strong"
msgstr "मज़बूत"
msgid "Add subvolume"
msgstr "सबवॉल्यूम जोड़ें"
msgid "Edit subvolume"
msgstr "सबवॉल्यूम संपादित करें"
msgid "Delete subvolume"
msgstr "सबवॉल्यूम हटाएँ"
msgid "Configured {} interfaces"
msgstr "{} इंटरफ़ेस कॉन्फ़िगर किए गए"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "यह विकल्प उन समानांतर (parallel) डाउनलोडों की संख्या को सक्षम करता है जो इंस्टॉलेशन के दौरान हो सकते हैं"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"सक्षम किए जाने वाले समानांतर डाउनलोड की संख्या दर्ज करें।\n"
" (1 से {} के बीच मान दर्ज करें)\n"
"नोट:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - अधिकतम मान : {} ( {} समानांतर डाउनलोड की अनुमति देता है, एक समय में {} डाउनलोड की अनुमति देता है )"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - न्यूनतम मान : 1 ( 1 समानांतर डाउनलोड की अनुमति देता है, एक समय में 2 डाउनलोड की अनुमति देता है )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - अक्षम/डिफ़ॉल्ट : 0 ( समानांतर डाउनलोडिंग को अक्षम करता है, एक समय में केवल 1 डाउनलोड की अनुमति देता है )"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "अमान्य इनपुट! एक मान्य इनपुट के साथ पुनः प्रयास करें [1 से {max_downloads}, या अक्षम करने के लिए 0]"
msgid "Parallel Downloads"
msgstr "समानांतर डाउनलोड"
msgid "ESC to skip"
msgstr "छोड़ने के लिए ESC दबाएँ"
msgid "CTRL+C to reset"
msgstr "रीसेट करने के लिए CTRL+C"
msgid "TAB to select"
msgstr "चुनने के लिए TAB"
msgid "[Default value: 0] > "
msgstr "[डिफ़ॉल्ट मान: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "इस अनुवाद का उपयोग करने में सक्षम होने के लिए, कृपया मैन्युअल रूप से एक फ़ॉन्ट इंस्टॉल करें जो भाषा का समर्थन करता हो।"
msgid "The font should be stored as {}"
msgstr "फ़ॉन्ट को {} के रूप में संग्रहीत किया जाना चाहिए"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Archinstall को चलाने के लिए रूट विशेषाधिकारों की आवश्यकता होती है। अधिक जानकारी के लिए --help देखें।"
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 "प्रोफ़ाइल का नाम अद्वितीय होना चाहिए, लेकिन डुप्लिकेट नाम वाले प्रोफ़ाइल परिभाषाएँ मिलीं: {}"
msgid "Select one or more devices to use and configure"
msgstr "उपयोग और कॉन्फ़िगर करने के लिए एक या अधिक डिवाइस चुनें"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "यदि आप डिवाइस चयन को रीसेट करते हैं तो यह वर्तमान डिस्क लेआउट को भी रीसेट कर देगा। क्या आप पक्का हैं?"
msgid "Existing Partitions"
msgstr "मौजूदा पार्टीशन"
msgid "Select a partitioning option"
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"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "यह पूर्व-प्रोग्राम किए गए profiles_bck की सूची है, ये डेस्कटॉप एनवायरनमेंट जैसी चीजों को इंस्टॉल करना आसान बना सकते हैं"
msgid "Current profile selection"
msgstr "वर्तमान प्रोफ़ाइल चयन"
msgid "Remove all newly added partitions"
msgstr "सभी नए जोड़े गए पार्टीशन हटाएँ"
msgid "Assign mountpoint"
msgstr "माउंटपॉइंट असाइन करें"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "फ़ॉर्मेट करने के लिए मार्क/अनमार्क करें (डेटा मिटाता है)"
msgid "Mark/Unmark as bootable"
msgstr "बूट करने योग्य के रूप में मार्क/अनमार्क करें"
msgid "Change filesystem"
msgstr "फ़ाइलसिस्टम बदलें"
msgid "Mark/Unmark as compressed"
msgstr "कम्प्रेश्ड के रूप में मार्क/अनमार्क करें"
msgid "Set subvolumes"
msgstr "सबवॉल्यूम सेट करें"
msgid "Delete partition"
msgstr "पार्टीशन हटाएँ"
msgid "Partition"
msgstr "पार्टीशन"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "यह पार्टीशन वर्तमान में एनक्रिप्टेड है, इसे फ़ॉर्मेट करने के लिए एक फ़ाइलसिस्टम निर्दिष्ट करना होगा"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "पार्टीशन माउंट-पॉइंट इंस्टॉलेशन के अंदर के सापेक्ष (relative) हैं, उदाहरण के लिए बूट /boot होगा।"
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "यदि माउंटपॉइंट /boot सेट है, तो पार्टीशन को बूट करने योग्य भी मार्क किया जाएगा।"
msgid "Mountpoint: "
msgstr "माउंटपॉइंट: "
msgid "Current free sectors on device {}:"
msgstr "डिवाइस {} पर वर्तमान मुक्त सेक्टर:"
msgid "Total sectors: {}"
msgstr "कुल सेक्टर: {}"
msgid "Enter the start sector (default: {}): "
msgstr "प्रारंभिक सेक्टर दर्ज करें (डिफ़ॉल्ट: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
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 "कुल लंबाई: {}"
msgid "Encryption type"
msgstr "एन्क्रिप्शन प्रकार"
msgid "Iteration time"
msgstr "इटरेशन समय (Iteration time)"
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr "LUKS एन्क्रिप्शन के लिए इटरेशन समय दर्ज करें (मिलीसेकंड में)"
msgid "Higher values increase security but slow down boot time"
msgstr "उच्च मान सुरक्षा बढ़ाते हैं लेकिन बूट समय धीमा करते हैं"
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr "डिफ़ॉल्ट: 10000ms, अनुशंसित सीमा: 1000-60000"
msgid "Iteration time cannot be empty"
msgstr "इटरेशन समय खाली नहीं हो सकता"
msgid "Iteration time must be at least 100ms"
msgstr "इटरेशन समय कम से कम 100ms होना चाहिए"
msgid "Iteration time must be at most 120000ms"
msgstr "इटरेशन समय अधिकतम 120000ms होना चाहिए"
msgid "Please enter a valid number"
msgstr "कृपया एक मान्य संख्या दर्ज करें"
msgid "Partitions"
msgstr "पार्टीशन"
msgid "No HSM devices available"
msgstr "कोई HSM डिवाइस उपलब्ध नहीं है"
msgid "Partitions to be encrypted"
msgstr "एनक्रिप्ट किए जाने वाले पार्टीशन"
msgid "Select disk encryption option"
msgstr "डिस्क एन्क्रिप्शन विकल्प चुनें"
msgid "Select a FIDO2 device to use for HSM"
msgstr "HSM के लिए उपयोग करने के लिए FIDO2 डिवाइस चुनें"
msgid "Use a best-effort default partition layout"
msgstr "सर्वोत्तम-प्रयास डिफ़ॉल्ट पार्टीशन लेआउट का उपयोग करें"
msgid "Manual Partitioning"
msgstr "मैन्युअल विभाजन"
msgid "Pre-mounted configuration"
msgstr "पूर्व-माउंटेड कॉन्फ़िगरेशन"
msgid "Unknown"
msgstr "अज्ञात"
msgid "Partition encryption"
msgstr "पार्टीशन एन्क्रिप्शन"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! {} को इसमें फ़ॉर्मेट किया जा रहा है "
msgid "← Back"
msgstr "← वापस"
msgid "Disk encryption"
msgstr "डिस्क एन्क्रिप्शन"
msgid "Configuration"
msgstr "कॉन्फ़िगरेशन"
msgid "Password"
msgstr "पासवर्ड"
msgid "All settings will be reset, are you sure?"
msgstr "सभी सेटिंग्स रीसेट हो जाएंगी, क्या आप पक्का हैं?"
msgid "Back"
msgstr "वापस"
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr "कृपया चुनें कि चुने गए प्रोफ़ाइल के लिए कौन सा ग्रीटर (greeter) इंस्टॉल करना है: {}"
#, python-brace-format
msgid "Environment type: {}"
msgstr "एन्वायरनमेंट प्रकार: {}"
msgid "The proprietary Nvidia driver is not supported by Sway. It is likely that you will run into issues, are you okay with that?"
msgstr "प्रोप्राइटरी Nvidia ड्राइवर Sway द्वारा समर्थित नहीं है। संभावना है कि आपको समस्याओं का सामना करना पड़ेगा, क्या आप इसके साथ ठीक हैं?"
msgid "Installed packages"
msgstr "इंस्टॉल किए गए पैकेज"
msgid "Add profile"
msgstr "प्रोफ़ाइल जोड़ें"
msgid "Edit profile"
msgstr "प्रोफ़ाइल संपादित करें"
msgid "Delete profile"
msgstr "प्रोफ़ाइल हटाएँ"
msgid "Profile name: "
msgstr "प्रोफ़ाइल नाम: "
msgid "The profile name you entered is already in use. Try again"
msgstr "आपके द्वारा दर्ज किया गया प्रोफ़ाइल नाम पहले से उपयोग में है। पुनः प्रयास करें"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "इस प्रोफ़ाइल के साथ इंस्टॉल किए जाने वाले पैकेज (स्पेस से अलग करें, छोड़ने के लिए खाली छोड़ें): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "इस प्रोफ़ाइल के साथ सक्षम की जाने वाली सेवाएँ (स्पेस से अलग करें, छोड़ने के लिए खाली छोड़ें): "
msgid "Should this profile be enabled for installation?"
msgstr "क्या इस प्रोफ़ाइल को इंस्टॉलेशन के लिए सक्षम किया जाना चाहिए?"
msgid "Create your own"
msgstr "अपना स्वयं का बनाएँ"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"एक ग्राफिक्स ड्राइवर चुनें या सभी ओपन-सोर्स ड्राइवरों को इंस्टॉल करने के लिए खाली छोड़ दें"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway को आपकी सीट (हार्डवेयर डिवाइसेज का संग्रह यानी कीबोर्ड, माउस, आदि) तक पहुंच की आवश्यकता है"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Sway को अपने हार्डवेयर तक पहुंच देने के लिए एक विकल्प चुनें"
msgid "Graphics driver"
msgstr "ग्राफिक्स ड्राइवर"
msgid "Greeter"
msgstr "ग्रीटर (Greeter)"
msgid "Please chose which greeter to install"
msgstr "कृपया चुनें कि कौन सा ग्रीटर इंस्टॉल करना है"
msgid "This is a list of pre-programmed default_profiles"
msgstr "यह पूर्व-प्रोग्राम किए गए default_profiles की सूची है"
msgid "Disk configuration"
msgstr "डिस्क कॉन्फ़िगरेशन"
msgid "Profiles"
msgstr "प्रोफ़ाइल"
msgid "Finding possible directories to save configuration files ..."
msgstr "कॉन्फ़िगरेशन फ़ाइलों को सहेजने के लिए संभावित डायरेक्टरी खोजी जा रही हैं..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "कॉन्फ़िगरेशन फ़ाइलों को सहेजने के लिए डायरेक्टरी (या डायरेक्टरीज़) चुनें"
msgid "Add a custom mirror"
msgstr "एक कस्टम मिरर जोड़ें"
msgid "Change custom mirror"
msgstr "कस्टम मिरर बदलें"
msgid "Delete custom mirror"
msgstr "कस्टम मिरर हटाएँ"
msgid "Enter name (leave blank to skip): "
msgstr "नाम दर्ज करें (छोड़ने के लिए खाली छोड़ें): "
msgid "Enter url (leave blank to skip): "
msgstr "url दर्ज करें (छोड़ने के लिए खाली छोड़ें): "
msgid "Select signature check option"
msgstr "हस्ताक्षर जाँच (signature check) विकल्प चुनें"
msgid "Select signature option"
msgstr "हस्ताक्षर विकल्प चुनें"
msgid "Custom mirrors"
msgstr "कस्टम मिरर"
msgid "Defined"
msgstr "परिभाषित"
msgid "Save user configuration (including disk layout)"
msgstr "उपयोगकर्ता कॉन्फ़िगरेशन सहेजें (डिस्क लेआउट सहित)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"कॉन्फ़िगरेशन सहेजने के लिए डायरेक्टरी दर्ज करें (tab completion enabled)\n"
"सेव डायरेक्टरी: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"क्या आप निम्नलिखित स्थान पर {} कॉन्फ़िगरेशन फ़ाइल(लें) सहेजना चाहते हैं?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "{} कॉन्फ़िगरेशन फ़ाइलों को {} में सहेजा जा रहा है"
msgid "Mirrors"
msgstr "मिरर (Mirrors)"
msgid "Mirror regions"
msgstr "मिरर क्षेत्र"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - अधिकतम मान : {} ( {} समानांतर डाउनलोड की अनुमति देता है, एक समय में {max_downloads+1} डाउनलोड की अनुमति देता है )"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "अमान्य इनपुट! एक मान्य इनपुट के साथ पुनः प्रयास करें [1 से {}, या अक्षम करने के लिए 0]"
msgid "Locales"
msgstr "लोकेल्स (Locales)"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "NetworkManager का उपयोग करें (GNOME और KDE में ग्राफिक रूप से इंटरनेट कॉन्फ़िगर करने के लिए आवश्यक)"
msgid "Total: {} / {}"
msgstr "कुल: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "सभी दर्ज मानों को एक इकाई के साथ जोड़ा जा सकता है: B, KB, KiB, MB, MiB..."
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "यदि कोई इकाई प्रदान नहीं की गई है, तो मान को सेक्टर के रूप में समझा जाता है"
msgid "Enter start (default: sector {}): "
msgstr "प्रारंभ दर्ज करें (डिफ़ॉल्ट: सेक्टर {}): "
msgid "Enter end (default: {}): "
msgstr "अंत दर्ज करें (डिफ़ॉल्ट: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "fido2 डिवाइस निर्धारित करने में असमर्थ। क्या libfido2 इंस्टॉल है?"
msgid "Path"
msgstr "पथ (Path)"
msgid "Manufacturer"
msgstr "निर्माता"
msgid "Product"
msgstr "उत्पाद"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "अमान्य कॉन्फ़िगरेशन: {error}"
msgid "Type"
msgstr "प्रकार"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "यह विकल्प उन समानांतर डाउनलोडों की संख्या को सक्षम करता है जो पैकेज डाउनलोड के दौरान हो सकते हैं"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"सक्षम किए जाने वाले समानांतर डाउनलोड की संख्या दर्ज करें।\n"
"\n"
"नोट:\n"
#, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr " - अधिकतम अनुशंसित मान : {} ( एक समय में {} समानांतर डाउनलोड की अनुमति देता है )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - अक्षम/डिफ़ॉल्ट : 0 ( समानांतर डाउनलोडिंग को अक्षम करता है, एक समय में केवल 1 डाउनलोड की अनुमति देता है )\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "अमान्य इनपुट! एक मान्य इनपुट के साथ पुनः प्रयास करें [या अक्षम करने के लिए 0]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Hyprland को आपकी सीट (हार्डवेयर डिवाइसेज का संग्रह यानी कीबोर्ड, माउस, आदि) तक पहुंच की आवश्यकता है"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Hyprland को अपने हार्डवेयर तक पहुंच देने के लिए एक विकल्प चुनें"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "सभी दर्ज मानों को एक इकाई के साथ जोड़ा जा सकता है: %, B, KB, KiB, MB, MiB..."
msgid "Would you like to use unified kernel images?"
msgstr "क्या आप यूनिफाइड कर्नेल इमेज (unified kernel images) का उपयोग करना चाहेंगे?"
msgid "Unified kernel images"
msgstr "यूनिफाइड कर्नेल इमेज"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "टाइम सिंक (timedatectl show) पूरा होने की प्रतीक्षा की जा रही है।"
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "समय तुल्यकालन (Time synchronization) पूरा नहीं हो रहा है, प्रतीक्षा करते समय - वर्कअराउंड के लिए डॉक्स देखें: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "स्वचालित समय सिंक की प्रतीक्षा छोड़ी जा रही है (यदि इंस्टॉलेशन के दौरान समय सिंक से बाहर है तो इससे समस्याएं हो सकती हैं)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "Arch Linux कीरिंग सिंक (archlinux-keyring-wkd-sync) पूरा होने की प्रतीक्षा की जा रही है।"
msgid "Selected profiles: "
msgstr "चयनित प्रोफ़ाइल: "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "समय तुल्यकालन (Time synchronization) पूरा नहीं हो रहा है, प्रतीक्षा करते समय - वर्कअराउंड के लिए डॉक्स देखें: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "nodatacow के रूप में मार्क/अनमार्क करें"
msgid "Would you like to use compression or disable CoW?"
msgstr "क्या आप compression का उपयोग करना चाहते हैं या CoW को बंद करना चाहते हैं?"
msgid "Use compression"
msgstr "कम्प्रेशन का उपयोग करें"
msgid "Disable Copy-on-Write"
msgstr "Copy-on-Write (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 "कॉन्फ़िगरेशन प्रकार: {}"
msgid "LVM configuration type"
msgstr "LVM कॉन्फ़िगरेशन प्रकार"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "2 से अधिक पार्टीशन के साथ LVM डिस्क एन्क्रिप्शन वर्तमान में समर्थित नहीं है"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "NetworkManager का उपयोग करें (GNOME और KDE Plasma में ग्राफिक रूप से इंटरनेट कॉन्फ़िगर करने के लिए आवश्यक)"
msgid "Select a LVM option"
msgstr "एक LVM विकल्प चुनें"
msgid "Partitioning"
msgstr "विभाजन (Partitioning)"
msgid "Logical Volume Management (LVM)"
msgstr "लॉजिकल वॉल्यूम मैनेजमेंट (LVM)"
msgid "Physical volumes"
msgstr "फिजिकल वॉल्यूम (Physical volumes)"
msgid "Volumes"
msgstr "वॉल्यूम (Volumes)"
msgid "LVM volumes"
msgstr "LVM वॉल्यूम"
msgid "LVM volumes to be encrypted"
msgstr "LVM वॉल्यूम जिन्हें एनक्रिप्ट किया जाना है"
msgid "Select which LVM volumes to encrypt"
msgstr "चुनें कि किन LVM वॉल्यूम को एनक्रिप्ट करना है"
msgid "Default layout"
msgstr "डिफ़ॉल्ट लेआउट"
msgid "No Encryption"
msgstr "कोई एन्क्रिप्शन नहीं"
msgid "LUKS"
msgstr "LUKS"
msgid "LVM on LUKS"
msgstr "LVM on LUKS"
msgid "LUKS on LVM"
msgstr "LUKS on LVM"
msgid "Yes"
msgstr "हाँ"
msgid "No"
msgstr "नहीं"
msgid "Archinstall help"
msgstr "Archinstall मदद"
msgid " (default)"
msgstr " (डिफ़ॉल्ट)"
msgid "Press Ctrl+h for help"
msgstr "मदद के लिए Ctrl+h दबाएँ"
msgid "Choose an option to give Sway access to your hardware"
msgstr "Sway को अपने हार्डवेयर तक पहुंच देने के लिए एक विकल्प चुनें"
msgid "Seat access"
msgstr "सीट एक्सेस"
msgid "Mountpoint"
msgstr "माउंटपॉइंट"
msgid "HSM"
msgstr "HSM"
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "डिस्क एन्क्रिप्शन पासवर्ड दर्ज करें (एन्क्रिप्शन नहीं के लिए खाली छोड़ दें)"
msgid "Disk encryption password"
msgstr "डिस्क एन्क्रिप्शन पासवर्ड"
msgid "Partition - New"
msgstr "पार्टीशन - नया"
msgid "Filesystem"
msgstr "फ़ाइलसिस्टम"
msgid "Invalid size"
msgstr "अमान्य आकार"
msgid "Start (default: sector {}): "
msgstr "प्रारंभ (डिफ़ॉल्ट: सेक्टर {}): "
msgid "End (default: {}): "
msgstr "अंत (डिफ़ॉल्ट: {}): "
msgid "Subvolume name"
msgstr "सबवॉल्यूम का नाम"
msgid "Disk configuration type"
msgstr "डिस्क कॉन्फ़िगरेशन प्रकार"
msgid "Root mount directory"
msgstr "रूट माउंट डायरेक्टरी"
msgid "Select language"
msgstr "भाषा चुनें"
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "स्थापित करने के लिए अतिरिक्त पैकेज लिखें (स्पेस से अलग करें, छोड़ने के लिए खाली छोड़ें)"
msgid "Invalid download number"
msgstr "अमान्य डाउनलोड संख्या"
msgid "Number downloads"
msgstr "डाउनलोड संख्या"
msgid "The username you entered is invalid"
msgstr "आपके द्वारा दर्ज किया गया यूज़रनेम अमान्य है"
msgid "Username"
msgstr "उपयोगकर्ता नाम"
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "क्या \"{}\" को superuser (sudo) होना चाहिए?\n"
msgid "Interfaces"
msgstr "इंटरफ़ेस"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "IP-config मोड में आपको एक मान्य IP दर्ज करना होगा"
msgid "Modes"
msgstr "मोड"
msgid "IP address"
msgstr "IP पता"
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "अपना गेटवे (राउटर) IP पता दर्ज करें (कोई नहीं के लिए खाली छोड़ दें)"
msgid "Gateway address"
msgstr "गेटवे पता"
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "अपने DNS सर्वर स्पेस से अलग करके दर्ज करें (कोई नहीं के लिए खाली छोड़ दें)"
msgid "DNS servers"
msgstr "DNS सर्वर"
msgid "Configure interfaces"
msgstr "इंटरफ़ेस कॉन्फ़िगर करें"
msgid "Kernel"
msgstr "कर्नेल (Kernel)"
msgid "UEFI is not detected and some options are disabled"
msgstr "UEFI का पता नहीं चला है और कुछ विकल्प अक्षम हैं"
msgid "Info"
msgstr "जानकारी"
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "प्रोप्राइटरी Nvidia ड्राइवर Sway द्वारा समर्थित नहीं है।"
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "संभावना है कि आपको समस्याओं का सामना करना पड़ेगा, क्या आप इसके साथ ठीक हैं?"
msgid "Main profile"
msgstr "मुख्य प्रोफ़ाइल"
msgid "Confirm password"
msgstr "पासवर्ड की पुष्टि करें"
msgid "The confirmation password did not match, please try again"
msgstr "पुष्टि पासवर्ड मेल नहीं खाता, कृपया पुनः प्रयास करें"
msgid "Not a valid directory"
msgstr "एक मान्य डायरेक्टरी नहीं है"
msgid "Would you like to continue?"
msgstr "क्या आप जारी रखना चाहते हैं?"
msgid "Directory"
msgstr "डायरेक्टरी"
msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)"
msgstr "कॉन्फ़िगरेशन सहेजने के लिए डायरेक्टरी दर्ज करें (tab completion enabled)"
#, python-brace-format
msgid "Do you want to save the configuration file(s) to {}?"
msgstr "क्या आप कॉन्फ़िगरेशन फ़ाइल(लें) को {} में सहेजना चाहते हैं?"
msgid "Enabled"
msgstr "सक्षम"
msgid "Disabled"
msgstr "अक्षम"
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr "कृपया इस समस्या (और फ़ाइल) को https://github.com/archlinux/archinstall/issues पर सबमिट करें"
msgid "Mirror name"
msgstr "मिरर का नाम"
msgid "Url"
msgstr "Url"
msgid "Select signature check"
msgstr "हस्ताक्षर जाँच चुनें"
msgid "Select execution mode"
msgstr "निष्पादन मोड का चयन करें"
msgid "Press ? for help"
msgstr "मदद के लिए ? दबाएँ"
msgid "Choose an option to give Hyprland access to your hardware"
msgstr "Hyprland को अपने हार्डवेयर तक पहुंच देने के लिए एक विकल्प चुनें"
msgid "Additional repositories"
msgstr "अतिरिक्त रिपॉजिटरी"
msgid "NTP"
msgstr "NTP"
msgid "Swap on zram"
msgstr "zram पर स्वैप"
msgid "Name"
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 "आकार (डिफ़ॉल्ट: {}): "
msgid "HSM device"
msgstr "HSM डिवाइस"
msgid "Some packages could not be found in the repository"
msgstr "रिपॉजिटरी में कुछ पैकेज नहीं मिले"
msgid "User"
msgstr "उपयोगकर्ता"
msgid "The specified configuration will be applied"
msgstr "निर्दिष्ट कॉन्फ़िगरेशन लागू किया जाएगा"
msgid "Wipe"
msgstr "वाइप (Wipe)"
msgid "Mark/Unmark as XBOOTLDR"
msgstr "XBOOTLDR के रूप में मार्क/अनमार्क करें"
msgid "Loading packages..."
msgstr "पैकेज लोड हो रहे हैं..."
msgid "Select any packages from the below list that should be installed additionally"
msgstr "नीचे दी गई सूची से कोई भी पैकेज चुनें जिसे अतिरिक्त रूप से इंस्टॉल किया जाना चाहिए"
msgid "Add a custom repository"
msgstr "एक कस्टम रिपॉजिटरी जोड़ें"
msgid "Change custom repository"
msgstr "कस्टम रिपॉजिटरी बदलें"
msgid "Delete custom repository"
msgstr "कस्टम रिपॉजिटरी हटाएँ"
msgid "Repository name"
msgstr "रिपॉजिटरी का नाम"
msgid "Add a custom server"
msgstr "एक कस्टम सर्वर जोड़ें"
msgid "Change custom server"
msgstr "कस्टम सर्वर बदलें"
msgid "Delete custom server"
msgstr "कस्टम सर्वर हटाएँ"
msgid "Server url"
msgstr "सर्वर url"
msgid "Select regions"
msgstr "क्षेत्र चुनें"
msgid "Add custom servers"
msgstr "कस्टम सर्वर जोड़ें"
msgid "Add custom repository"
msgstr "कस्टम रिपॉजिटरी जोड़ें"
msgid "Loading mirror regions..."
msgstr "मिरर क्षेत्र लोड हो रहे हैं..."
msgid "Mirrors and repositories"
msgstr "मिरर और रिपॉजिटरी"
msgid "Selected mirror regions"
msgstr "चयनित मिरर क्षेत्र"
msgid "Custom servers"
msgstr "कस्टम सर्वर"
msgid "Custom repositories"
msgstr "कस्टम रिपॉजिटरी"
msgid "Only ASCII characters are supported"
msgstr "केवल ASCII वर्ण समर्थित हैं"
msgid "Show help"
msgstr "मदद दिखायें"
msgid "Exit help"
msgstr "मदद छोड़ें"
msgid "Preview scroll up"
msgstr "प्रिव्यू ऊपर स्क्रॉल करें"
msgid "Preview scroll down"
msgstr "प्रिव्यू नीचे स्क्रॉल करें"
msgid "Move up"
msgstr "ऊपर बढ़ो"
msgid "Move down"
msgstr "नीचे जाएँ"
msgid "Move right"
msgstr "दाएँ जाएँ"
msgid "Move left"
msgstr "बाएँ जाएँ"
msgid "Jump to entry"
msgstr "प्रवेश पर जाएँ"
msgid "Skip selection (if available)"
msgstr "चयन छोड़ें (यदि उपलब्ध हो)"
msgid "Reset selection (if available)"
msgstr "चयन रीसेट करें (यदि उपलब्ध हो)"
msgid "Select on single select"
msgstr "एकल चयन पर चयन करें"
msgid "Select on multi select"
msgstr "बहु चयन पर चयन करें"
msgid "Reset"
msgstr "रीसेट"
msgid "Skip selection menu"
msgstr "चयन मेनू छोड़ें"
msgid "Start search mode"
msgstr "खोज मोड शुरू करें"
msgid "Exit search mode"
msgstr "खोज मोड से बाहर निकलें"
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "labwc को आपकी सीट (हार्डवेयर डिवाइसेज का संग्रह यानी कीबोर्ड, माउस, आदि) तक पहुंच की आवश्यकता है"
msgid "Choose an option to give labwc access to your hardware"
msgstr "labwc को अपने हार्डवेयर तक पहुंच देने के लिए एक विकल्प चुनें"
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "niri को आपकी सीट (हार्डवेयर डिवाइसेज का संग्रह यानी कीबोर्ड, माउस, आदि) तक पहुंच की आवश्यकता है"
msgid "Choose an option to give niri access to your hardware"
msgstr "niri को अपने हार्डवेयर तक पहुंच देने के लिए एक विकल्प चुनें"
msgid "Mark/Unmark as ESP"
msgstr "ESP के रूप में चिह्नित/अचिह्नित करें"
msgid "Package group:"
msgstr "पैकेज समूह:"
msgid "Exit archinstall"
msgstr "archinstall से बाहर निकलें"
msgid "Reboot system"
msgstr "सिस्टम रीबूट करें"
msgid "chroot into installation for post-installation configurations"
msgstr "स्थापना के बाद के कॉन्फ़िगरेशन के लिए इंस्टॉलेशन में chroot करें"
msgid "Installation completed"
msgstr "स्थापना पूरी हुई"
msgid "What would you like to do next?"
msgstr "अब आप क्या करना चाहेंगे?"
#, python-brace-format
msgid "Select which mode to configure for \"{}\""
msgstr "\"{}\" के लिए कौन सा मोड कॉन्फ़िगर करना है, चुनें"
msgid "Incorrect credentials file decryption password"
msgstr "गलत क्रेडेंशियल्स फ़ाइल डिक्रिप्शन पासवर्ड"
msgid "Incorrect password"
msgstr "गलत पासवर्ड"
msgid "Credentials file decryption password"
msgstr "क्रेडेंशियल्स फ़ाइल डिक्रिप्शन पासवर्ड"
msgid "Do you want to encrypt the user_credentials.json file?"
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 "सेकंड फैक्टर लॉगिन"
msgid "Bluetooth"
msgstr "ब्लूटूथ"
msgid "Would you like to configure Bluetooth?"
msgstr "क्या आप ब्लूटूथ कॉन्फ़िगर करना चाहेंगे?"
msgid "Print service"
msgstr "प्रिंट सेवा"
msgid "Would you like to configure the print service?"
msgstr "क्या आप print सेवा को कॉन्फ़िगर करना चाहेंगे?"
msgid "Power management"
msgstr "पावर मैनेजमेंट"
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 "इसे रजिस्टर करने के लिए आपको पिन दर्ज करने और फिर अपने U2F डिवाइस को टच करने की आवश्यकता हो सकती है"
msgid "Starting device modifications in "
msgstr "डिवाइस संशोधन शुरू हो रहा है "
msgid "No network connection found"
msgstr "कोई नेटवर्क कनेक्शन नहीं मिला"
msgid "Would you like to connect to a Wifi?"
msgstr "क्या आप wifi से कनेक्ट करना चाहेंगे?"
msgid "No wifi interface found"
msgstr "कोई वाई-फाई इंटरफ़ेस नहीं मिला"
msgid "Select wifi network to connect to"
msgstr "कनेक्ट करने के लिए वाई-फाई नेटवर्क चुनें"
msgid "Scanning wifi networks..."
msgstr "वाई-फाई नेटवर्क स्कैन किए जा रहे हैं..."
msgid "No wifi networks found"
msgstr "कोई वाई-फाई नेटवर्क नहीं मिला"
msgid "Failed setting up wifi"
msgstr "वाई-फाई सेटअप विफल रहा"
msgid "Enter wifi password"
msgstr "वाई-फाई पासवर्ड दर्ज करें"
msgid "Ok"
msgstr "ठीक है"
msgid "Removable"
msgstr "रिमूवेबल"
msgid "Install to removable location"
msgstr "रिमूवेबल लोकेशन पर इंस्टॉल करें"
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr "/EFI/BOOT/ (रिमूवेबल लोकेशन) पर इंस्टॉल होगा"
msgid "Will install to standard location with NVRAM entry"
msgstr "NVRAM एंट्री के साथ मानक स्थान पर इंस्टॉल होगा"
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr "क्या आप बूटलोडर को डिफ़ॉल्ट रिमूवेबल मीडिया सर्च लोकेशन पर इंस्टॉल करना चाहेंगे?"
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr "यह बूटलोडर को /EFI/BOOT/BOOTX64.EFI (या समान) पर इंस्टॉल करता है जो इसके लिए उपयोगी है:"
msgid "USB drives or other portable external media."
msgstr "USB ड्राइव या अन्य पोर्टेबल बाहरी मीडिया।"
msgid "Systems where you want the disk to be bootable on any computer."
msgstr "ऐसे सिस्टम जहाँ आप चाहते हैं कि डिस्क किसी भी कंप्यूटर पर बूट करने योग्य हो।"
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr "फ़र्मवेयर जो NVRAM बूट प्रविष्टियों का ठीक से समर्थन नहीं करता है।"
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr "/EFI/BOOT/ (रिमूवेबल लोकेशन, सुरक्षित डिफ़ॉल्ट) पर इंस्टॉल होगा"
msgid "Will install to custom location with NVRAM entry"
msgstr "NVRAM एंट्री के साथ कस्टम स्थान पर इंस्टॉल होगा"
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr "फ़र्मवेयर जो अधिकांश MSI मदरबोर्ड की तरह NVRAM बूट प्रविष्टियों का ठीक से समर्थन नहीं करता है,"
msgid "most Apple Macs, many laptops..."
msgstr "अधिकांश Apple Mac, कई लैपटॉप..."
msgid "Language"
msgstr "एक भाषा चुनें"
msgid "Compression algorithm"
msgstr "संपीड़न एल्गोरिथ्म"
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "केवल base, sudo, linux, linux-firmware, efibootmgr और वैकल्पिक प्रोफ़ाइल पैकेज ही इंस्टॉल किए गए हैं।"
msgid "Select zram compression algorithm:"
msgstr "Zram संपीड़न एल्गोरिथ्म का चयन करें:"
msgid "Use Network Manager (default backend)"
msgstr "नेटवर्क मैनेजर का उपयोग करें (डिफ़ॉल्ट बैकएंड)"
msgid "Use Network Manager (iwd backend)"
msgstr "नेटवर्क मैनेजर का उपयोग करें (iwd बैकएंड)"
================================================
FILE: archinstall/locales/hu/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: summoner \n"
"Language-Team: \n"
"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.8\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] A naplófájl itt jött létre: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Jelentse ezt a problémát (a naplófájllal együtt) itt: https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "Biztosan megszakítja?"
msgid "And one more time for verification: "
msgstr "És még egyszer az ellenőrzéshez: "
msgid "Would you like to use swap on zram?"
msgstr "Szeretne zRam alapú cserehelyet használni?"
msgid "Desired hostname for the installation: "
msgstr "Gép neve a telepítéshez: "
msgid "Username for required superuser with sudo privileges: "
msgstr "A sudo-jogosultságokkal rendelkező rendszergazda felhasználóneve: "
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): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "Rendelkezzen ez a felhasználó rendszergazdai (sudo) jogosultságokkal?"
msgid "Select a timezone"
msgstr "Időzóna kiválasztása"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "Szeretné használni a GRUB-ot rendszerbetöltőként a systemd-boot helyett?"
msgid "Choose a bootloader"
msgstr "Válasszon ki egy rendszerbetöltőt"
msgid "Choose an audio server"
msgstr "Válasszon ki egy hangkiszolgálót"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Csak az olyan csomagok, mint a base, base-devel, linux, linux-firmware, efibootmgr és a nem kötelező profilcsomagok lesznek telepítve."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr "Megjegyzés: a base-devel már nem települ alapértelmezettként. Ha szüksége van az összeállítási eszközökre, akkor itt adhatja hozzá a telepítéshez."
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "Ha olyan böngészőre vágyik, mint például a Firefox vagy a Chromium, akkor azt a következő promptban adhatja meg."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "Írjon be további csomagneveket a telepítéshez (szóközzel elválasztva; hagyja üresen a kihagyáshoz): "
msgid "Copy ISO network configuration to installation"
msgstr "Másolja be az ISO hálózati konfigurációt a telepítéshez"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "A hálózatkezelő használata (szükséges az internet grafikus konfigurálásához GNOME-ban és KDE-ben)"
msgid "Select one network interface to configure"
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 a(z) {} IP-címét és alhálózatát (például: 192.168.0.5/24): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "Adja meg az átjáró (elosztó) IP-címét (hagyja üresen, ha nincs ilyen): "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "Adja meg a DNS-kiszolgálókat (szóközzel elválasztva; hagyja üresen, ha nincsenek ilyenek): "
msgid "Select which filesystem your main partition should use"
msgstr "Válassza ki, hogy a fő partíció milyen fájlrendszert használjon"
msgid "Current partition layout"
msgstr "A partíció jelenlegi elrendezése"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"Válassza ki, hogy mi legyen a teendő a következővel:\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "Adja meg a partíció fájlrendszertípusát"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "Adja meg a kezdési helyet (a Parteddal kompatibilis egységekben: s, GB, %, stb.; alapértelmezett: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "Adja meg a befejezési helyet (felosztott egységekben: s, GB, %, stb.; például: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "A(z) {} sorban álló partíciókat tartalmaz, ez eltávolítja azokat, biztos benne?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"Index alapján válassza ki a törlendő partíciókat"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"Index alapján válassza ki, hogy melyik partíció hová legyen csatolva"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * A partíció csatolási pontjai a telepítésen belülre vonatkoznak, a „boot” például „/boot” lesz."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "Válassza ki, hogy hová legyen csatolva a partíció (hagyja üresen a csatolási pont eltávolításához): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"Válassza ki a formázásra megjelölendő partíció(ka)t"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"Válassza ki a titkosításra megjelölendő partíció(ka)t"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"Válassza ki a rendszerbetöltőként megjelölendő partíciót"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"Válassza ki, hogy melyik partícióra legyen beállítva a fájlrendszer"
msgid "Enter a desired filesystem type for the partition: "
msgstr "Adja meg a partíció fájlrendszertípusát: "
msgid "Archinstall language"
msgstr "Az Archinstall nyelve"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "Törölje az összes kiválasztott meghajtót, és használja a lehető legjobb beállítást lehetővé tévő alapértelmezett partícióelrendezést"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "Válassza ki, hogy mit tegyen a telepítő az egyes meghajtókkal (ezt a partícióhasználat követi)"
msgid "Select what you wish to do with the selected block devices"
msgstr "Válassza ki, hogy mit tegyen a telepítő a kiválasztott blokkeszközökkel"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "Ez az előre programozott profilok listája, amelyek megkönnyíthetik az olyan dolgok telepítését, mint például az asztali környezetek"
msgid "Select keyboard layout"
msgstr "Válassza ki a billentyűzetkiosztást"
msgid "Select one of the regions to download packages from"
msgstr "Válassza ki a régiót a csomagok letöltéséhez"
msgid "Select one or more hard drives to use and configure"
msgstr "Válasszon ki egy vagy több meghajtót a használathoz és a konfiguráláshoz"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "Az AMD hardverrel való legjobb kompatibilitás érdekében érdemes lehet az összes nyílt forráskódú vagy az AMD / ATI beállítást használni."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "Az Intel hardverrel való legjobb kompatibilitás érdekében érdemes lehet az összes nyílt forráskódú vagy az Intel beállítást használni.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "Az Nvidia hardverrel való legjobb kompatibilitás érdekében érdemes lehet az Nvidia saját fejlesztésű, zárt illesztőprogramját használni.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Válasszon ki egy grafikus illesztőprogramot vagy hagyja üresen az összes nyílt forráskódú illesztőprogram telepítéséhez"
msgid "All open-source (default)"
msgstr "Összes nyílt forráskódú (alapértelmezett)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "Válassza ki a használandó kerneleket, vagy hagyja üresen az alapértelmezett „{}” kernel használatához"
msgid "Choose which locale language to use"
msgstr "Válassza ki a használandó területi nyelvet"
msgid "Choose which locale encoding to use"
msgstr "Válassza ki a használandó nyelvi kódolást"
msgid "Select one of the values shown below: "
msgstr "Válasszon az alábbi értékek egyikéből: "
msgid "Select one or more of the options below: "
msgstr "Válasszon ki egyet vagy többet az alábbi beállítások közül: "
msgid "Adding partition...."
msgstr "Partíció hozzáadása…"
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "A folytatáshoz meg kell adnia egy érvényes fs-típust. Az érvényes fs-típusok megtekinthetők a „man parted” részben."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "Hiba: A(z) „{}” webcímen lévő profilok listázása a következőket eredményezte:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "Hiba: Nem sikerült dekódolni a(z) „{}” eredményt JSON-ként:"
msgid "Keyboard layout"
msgstr "Billentyűzetkiosztás"
msgid "Mirror region"
msgstr "Tükörrégió"
msgid "Locale language"
msgstr "Helyi nyelv"
msgid "Locale encoding"
msgstr "Helyi kódolás"
msgid "Drive(s)"
msgstr "Meghajtó(k)"
msgid "Disk layout"
msgstr "Lemezelrendezés"
msgid "Encryption password"
msgstr "Titkosítási jelszó"
msgid "Swap"
msgstr "Cserehely"
msgid "Bootloader"
msgstr "Rendszerbetöltő"
msgid "Root password"
msgstr "Root-jelszó"
msgid "Superuser account"
msgstr "Rendszergazdai fiók"
msgid "User account"
msgstr "Felhasználói fiók"
msgid "Profile"
msgstr "Profil"
msgid "Audio"
msgstr "Hang"
msgid "Kernels"
msgstr "Kernelek"
msgid "Additional packages"
msgstr "További csomagok"
msgid "Network configuration"
msgstr "Hálózati konfiguráció"
msgid "Automatic time sync (NTP)"
msgstr "Automatikus időszinkronizálás (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "Telepítés ({} konfiguráció hiányzik)"
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 ""
"Ön úgy döntött, hogy kihagyja a merevlemez kiválasztását\n"
"és azt a meghajtóbeállítást fogja használni, amely a(z) {} helyen van csatolva (kísérleti)\n"
"FIGYELMEZTETÉS: Az Archinstall nem ellenőrzi ennek a beállításnak a megfelelőségét\n"
"Biztosan folytatni akarja?"
msgid "Re-using partition instance: {}"
msgstr "Partíciópéldány ismételt felhasználása: {}"
msgid "Create a new partition"
msgstr "Új partíció létrehozása"
msgid "Delete a partition"
msgstr "Partíció törlése"
msgid "Clear/Delete all partitions"
msgstr "Az összes partíció tisztítása/törlése"
msgid "Assign mount-point for a partition"
msgstr "Csatolási pont hozzárendelése egy partícióhoz"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "Egy partíció megjelölése/elvetése mint formázandó (adatok törlése)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "Egy partíció megjelölése/elvetése mint titkosított"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "Egy partíció megjelölése/elvetése mint rendszerindító (automatikus a „/boot” esetében)"
msgid "Set desired filesystem for a partition"
msgstr "Állítsa be a partíció fájlrendszertípusát"
msgid "Abort"
msgstr "Megszakítás"
msgid "Hostname"
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"
msgid "Timezone"
msgstr "Időzóna"
msgid "Set/Modify the below options"
msgstr "Az alábbi beállítások beállítása/módosítása"
msgid "Install"
msgstr "Telepítés"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"ESC → a kihagyáshoz\n"
"\n"
msgid "Suggest partition layout"
msgstr "Partícióelrendezési javaslat"
msgid "Enter a password: "
msgstr "Adjon meg egy jelszót: "
msgid "Enter a encryption password for {}"
msgstr "Adjon meg egy titkosítási jelszót a következőhöz: {}"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "Adjon meg egy jelszót a lemez titkosításához (hagyja üresen, ha nem akarja titkosítani): "
msgid "Create a required super-user with sudo privileges: "
msgstr "Hozzon létre egy szükséges rendszergazdát „sudo” jogosultságokkal: "
msgid "Enter root password (leave blank to disable root): "
msgstr "Adjon meg egy root-jelszót (hagyja üresen a „root” letiltásához): "
msgid "Password for user \"{}\": "
msgstr "A(z) „{}” nevű felhasználó jelszava: "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "További csomagok létezésének ellenőrzése (ez eltarthat néhány másodpercig)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "Szeretné használni az automatikus időszinkronizálást (NTP) az alapértelmezett kiszolgálókkal?\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 ""
"Az NTP működéséhez szükség lehet a hardveridőre és egyéb utólagos konfigurációs lépésekre.\n"
"További információkért tekintse meg az Arch wiki-t"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "Adjon meg egy felhasználónevet egy további felhasználó létrehozásához (üresen hagyva ez a lépés kihagyható): "
msgid "Use ESC to skip\n"
msgstr ""
"ESC → a kihagyáshoz\n"
"\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
"Válasszon ki egy objektumot a listából, majd válasszon ki egyet a végrehajtandó műveletek közül"
msgid "Cancel"
msgstr "Mégse"
msgid "Confirm and exit"
msgstr "Megerősítés és kilépés"
msgid "Add"
msgstr "Hozzáadás"
msgid "Copy"
msgstr "Másolás"
msgid "Edit"
msgstr "Szerkesztés"
msgid "Delete"
msgstr "Törlés"
msgid "Select an action for '{}'"
msgstr "Válasszon ki egy műveletet a következőhöz: „{}”"
msgid "Copy to new key:"
msgstr "Másolás új kulcsba:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "Ismeretlen nic-típus: {}. Lehetséges értékek: {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"Ez az ön által választott konfiguráció:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "A Pacman már fut, várjon maximum 10 percet a megszakításával."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "A már meglévő pacman-zár soha nem lép ki. Az Archinstall használata előtt tisztítsa meg a meglévő pacman-munkameneteket."
msgid "Choose which optional additional repositories to enable"
msgstr "Válassza ki a további (nem kötelező) engedélyezendő tárolókat"
msgid "Add a user"
msgstr "Felhasználó hozzáadása"
msgid "Change password"
msgstr "Jelszó módosítása"
msgid "Promote/Demote user"
msgstr "Felhasználó előléptetése/lefokozása"
msgid "Delete User"
msgstr "Felhasználó törlése"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"Új felhasználó meghatározása\n"
msgid "User Name : "
msgstr "Felhasználónév: "
msgid "Should {} be a superuser (sudoer)?"
msgstr "{} rendszergazda (sudoer) legyen?"
msgid "Define users with sudo privilege: "
msgstr "A „sudo” jogosultsággal rendelkező felhasználók meghatározása: "
msgid "No network configuration"
msgstr "Nincs hálózati konfiguráció"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Állítsa be egy BTRFS-partíció alköteteit"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"Válassza ki, hogy melyik partícióra legyenek beállítva az alkötetek"
msgid "Manage btrfs subvolumes for current partition"
msgstr "A jelenlegi partíció BTRFS-alköteteinek kezelése"
msgid "No configuration"
msgstr "Nincs konfiguráció"
msgid "Save user configuration"
msgstr "Felhasználói konfiguráció mentése"
msgid "Save user credentials"
msgstr "Felhasználói hitelesítési adatok mentése"
msgid "Save disk layout"
msgstr "Lemezelrendezés mentése"
msgid "Save all"
msgstr "Összes mentése"
msgid "Choose which configuration to save"
msgstr "Válassza ki a mentendő konfiguráció(ka)t"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "Adjon meg egy könyvtárat a mentendő konfiguráció(k) számára: "
msgid "Not a valid directory: {}"
msgstr "Érvénytelen könyvtár: {}"
msgid "The password you are using seems to be weak,"
msgstr "Úgy tűnik, hogy a megadott jelszó gyenge,"
msgid "are you sure you want to use it?"
msgstr "biztosan használni akarja?"
msgid "Optional repositories"
msgstr "Nem kötelező tárolók"
msgid "Save configuration"
msgstr "Konfiguráció mentése"
msgid "Missing configurations:\n"
msgstr "Hiányzó konfigurációk:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "Meg kell adni egy root-jelszót vagy legalább 1 rendszergazdát"
msgid "Manage superuser accounts: "
msgstr "Rendszergazdai fiókok kezelése: "
msgid "Manage ordinary user accounts: "
msgstr "Normál felhasználói fiókok kezelése: "
msgid " Subvolume :{:16}"
msgstr " Alkötet: {:16}"
msgid " mounted at {:16}"
msgstr " csatolási pont: {:16}"
msgid " with option {}"
msgstr " a következő beállítással: {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
"Adja meg az értékeket egy új alkötethez \n"
msgid "Subvolume name "
msgstr "Alkötet neve "
msgid "Subvolume mountpoint"
msgstr "Alkötet csatolási pontja"
msgid "Subvolume options"
msgstr "Alkötetbeállítások"
msgid "Save"
msgstr "Mentés"
msgid "Subvolume name :"
msgstr "Alkötet neve:"
msgid "Select a mount point :"
msgstr "Válasszon ki egy csatolási pontot:"
msgid "Select the desired subvolume options "
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: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "Szeretne BTRFS-alköteteket alapértelmezett struktúrával használni?"
msgid "Would you like to use BTRFS compression?"
msgstr "Szeretne BTRFS-tömörítést használni?"
msgid "Would you like to create a separate partition for /home?"
msgstr "Szeretne egy külön partíciót létrehozni a „/home” számára?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "A kiválasztott meghajtók nem rendelkeznek az automatikus javaslathoz szükséges minimális kapacitással.\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "A „/home” partíció minimális kapacitása: {} GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Az Arch Linux-partíció minimális kapacitása: {} GB"
msgid "Continue"
msgstr "Folytatás"
msgid "yes"
msgstr "igen"
msgid "no"
msgstr "nem"
msgid "set: {}"
msgstr "beállítás: {}"
msgid "Manual configuration setting must be a list"
msgstr "A kézi konfigurációs beállításnak egy listának kell lennie"
msgid "No iface specified for manual configuration"
msgstr "Nincs megadva iface a kézi konfigurációhoz"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "A kézi nic-konfiguráció automatikus DHCP nélkül egy IP-címet igényel"
msgid "Add interface"
msgstr "Csatoló hozzáadása"
msgid "Edit interface"
msgstr "Csatoló szerkesztése"
msgid "Delete interface"
msgstr "Csatoló törlése"
msgid "Select interface to add"
msgstr "Válassza ki a hozzáadandó csatolót"
msgid "Manual configuration"
msgstr "Kézi konfiguráció"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "A partíció megjelölése/elvetése mint tömörített (csak BTRFS)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "Úgy tűnik, hogy a megadott jelszó gyenge. Biztosan használni akarja?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "Asztali környezetek és ablakkezelők széles választékát kínálja, például: gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "Válassza ki az asztali környezetet"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "Egy nagyon alapszintű telepítés, amely lehetővé teszi, hogy az Arch Linuxot saját belátása szerint testre szabja."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "Különböző kiszolgálócsomagok széles választékát kínálja a telepítéshez és az engedélyezéshez, például: httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "Válassza ki, hogy mely kiszolgálók legyenek telepítve, ha egyiket sem választja ki, akkor minimális telepítés történik"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "Telepít egy minimális rendszert, valamint az xorg-ot és a grafikus illesztőprogramokat."
msgid "Press Enter to continue."
msgstr "A folytatáshoz nyomja meg az „Entert”."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "Szeretne chroot-olni az újonnan létrehozott telepítésbe, és elvégezni a telepítés utáni konfigurációt?"
msgid "Are you sure you want to reset this setting?"
msgstr "Biztosan vissza akarja állítani ezt a beállítást alapértelmezettre?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "Válasszon ki egy vagy több meghajtót a használathoz és konfiguráláshoz.\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "A meglévő beállítások bármilyen módosítása visszaállítja a lemezelrendezést az alapértelmezettre!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "Ha alapértelmezettre állítja a meghajtókiválasztást, akkor a jelenlegi lemezelrendezést is visszaállítja. Biztos benne?"
msgid "Save and exit"
msgstr "Mentés és kilépés"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"sorban álló partíciót tartalmaz, ez eltávolítja azokat, biztos benne?"
msgid "No audio server"
msgstr "Nincs kiválasztva hangkiszolgáló"
msgid "(default)"
msgstr "(alapértelmezett)"
msgid "Use ESC to skip"
msgstr "ESC → a kihagyáshoz"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"CTRL+C → a jelenlegi kiválasztás visszaállításához\n"
"\n"
msgid "Copy to: "
msgstr "Másolás ide: "
msgid "Edit: "
msgstr "Szerkesztés: "
msgid "Key: "
msgstr "Kulcs: "
msgid "Edit {}: "
msgstr "{} szerkesztése: "
msgid "Add: "
msgstr "Hozzáadás: "
msgid "Value: "
msgstr "Érték: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "Kihagyhatja a meghajtó kiválasztását és a particionálást, továbbá bármilyen meghajtóbeállítást használhat, amely az „/mnt” könyvtárhoz van csatolva (kísérleti)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "Válassza ki az egyik lemezt, vagy hagyja ki ezt a lépést és használja az „/mnt” csatolási pontot alapértelmezettként"
msgid "Select which partitions to mark for formatting:"
msgstr "Válassza ki a formázásra megjelölendő partíciókat:"
msgid "Use HSM to unlock encrypted drive"
msgstr "HSM használata a titkosított meghajtó feloldásához"
msgid "Device"
msgstr "Eszköz"
msgid "Size"
msgstr "Méret"
msgid "Free space"
msgstr "Szabad terület"
msgid "Bus-type"
msgstr "Busztípus"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "Meg kell adni egy root-jelszót, vagy legalább 1 „sudo” jogosultsággal rendelkező felhasználót"
msgid "Enter username (leave blank to skip): "
msgstr "Felhasználónév megadása (hagyja üresen a kihagyáshoz): "
msgid "The username you entered is invalid. Try again"
msgstr "A megadott felhasználónév érvénytelen. Próbálja újra"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "A(z) „{}” nevű felhasználónak rendszergazdának (sudoer) kell lennie?"
msgid "Select which partitions to encrypt"
msgstr "Válassza ki a titkosítandó partíciókat"
msgid "very weak"
msgstr "nagyon gyenge"
msgid "weak"
msgstr "gyenge"
msgid "moderate"
msgstr "közepes"
msgid "strong"
msgstr "erős"
msgid "Add subvolume"
msgstr "Alkötet hozzáadása"
msgid "Edit subvolume"
msgstr "Alkötet szerkesztése"
msgid "Delete subvolume"
msgstr "Alkötet törlése"
msgid "Configured {} interfaces"
msgstr "{} konfigurált csatoló"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "Ez a beállítás lehetővé teszi, hogy telepítéskor hány párhuzamos letöltés történhet"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"Adja meg az engedélyezendő párhuzamos letöltések számát.\n"
" (Adjon meg egy értéket 1 és {} között)\n"
"Megjegyzés:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - Maximális érték: {} ({} párhuzamos letöltést tesz lehetővé egyszerre {} szálon)"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - Minimális érték: 1 (1 párhuzamos letöltést tesz lehetővé, egyszerre 2 szálon)"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - Letiltás/alapértelmezett: 0 (Kikapcsolja a párhuzamos letöltést, egyszerre csak 1 szálon teszi lehetővé a letöltést)"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "Érvénytelen bemenet! Próbálja újra egy érvényes bemenettel [1-től {max_downloads}-ig, vagy 0-t a letiltáshoz]"
msgid "Parallel Downloads"
msgstr "Párhuzamos letöltések"
msgid "ESC to skip"
msgstr "ESC → a kihagyáshoz"
msgid "CTRL+C to reset"
msgstr "CTRL+C → a visszaállításhoz"
msgid "TAB to select"
msgstr "TAB → a kiválasztáshoz"
msgid "[Default value: 0] > "
msgstr "[Alapértelmezett érték: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "A fordítás használatához telepítsen kézileg egy olyan betűtípust, amelyik támogatja ezt a nyelvet."
msgid "The font should be stored as {}"
msgstr "A betűtípust úgy kell eltárolni mint {}"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Az Archinstall futtatásához root-jogosultságok szükségesek. További információkért tekintse meg a súgót: --help."
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: {}"
msgid "Select one or more devices to use and configure"
msgstr "Válasszon ki egy vagy több eszközt a használathoz és a konfiguráláshoz"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "Ha visszaállítja az eszközkiválasztást, akkor a jelenlegi lemezelrendezést is visszaállítja. Biztos benne?"
msgid "Existing Partitions"
msgstr "Meglévő partíciók"
msgid "Select a partitioning option"
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: {} GiB\n"
#, python-brace-format
msgid "Minimum capacity for Arch Linux partition: {}GiB"
msgstr "Az Arch Linux-partíció minimális kapacitása: {} GiB"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "Ez az előre programozott profiles_bck lista, ami megkönnyítheti az olyan dolgok telepítését, mint például az asztali környezetekét"
msgid "Current profile selection"
msgstr "Jelenlegi profil kiválasztása"
msgid "Remove all newly added partitions"
msgstr "Az összes újonnan hozzáadott partíció eltávolítása"
msgid "Assign mountpoint"
msgstr "Csatolási pont hozzárendelése"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "Megjelölés/elvetés mint formázandó (adatok törlése)"
msgid "Mark/Unmark as bootable"
msgstr "Megjelölés/elvetés mint rendszerindító"
msgid "Change filesystem"
msgstr "Fájlrendszer módosítása"
msgid "Mark/Unmark as compressed"
msgstr "Megjelölés/elvetés mint tömörített"
msgid "Set subvolumes"
msgstr "Alkötetek beállítása"
msgid "Delete partition"
msgstr "Partíció törlése"
msgid "Partition"
msgstr "Partíció"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "Ez a partíció jelenleg titkosított, a formázásához meg kell adni egy fájlrendszert"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "A partíció csatolási pontok a telepítésen belülre vonatkoznak, a „boot” például „/boot” lesz."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "Ha a „/boot” csatolási pont be van állítva, akkor a partíció is rendszerbetöltőnek lesz megjelölve."
msgid "Mountpoint: "
msgstr "Csatolási pont: "
msgid "Current free sectors on device {}:"
msgstr "Jelenlegi szabad szektorok a(z) {} eszközön:"
msgid "Total sectors: {}"
msgstr "Összes szektor: {}"
msgid "Enter the start sector (default: {}): "
msgstr "Adja meg a kezdési szektort (alapértelmezett: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
msgstr "Adja meg a partíció végszektorát (százalékban vagy blokkszámban, alapértelmezett: {}): "
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: {}"
msgid "Encryption type"
msgstr "Titkosítástípus"
msgid "Iteration time"
msgstr "Iterációs idő"
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr "Adja meg az iterációs időt a LUKS-titkosításhoz (ezredmásodpercben)"
msgid "Higher values increase security but slow down boot time"
msgstr "A nagyobb értékek növelik a biztonságot, de lassítják a rendszerindítást"
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr "Alapértelmezett: 10 000 ms, ajánlott tartomány: 1 000 - 60 000"
msgid "Iteration time cannot be empty"
msgstr "Az iterációs idő nem lehet üres"
msgid "Iteration time must be at least 100ms"
msgstr "Az iterációs időnek legalább 100 ms-nek kell lennie"
msgid "Iteration time must be at most 120000ms"
msgstr "Az iterációs idő legfeljebb 120 000 ms lehet"
msgid "Please enter a valid number"
msgstr "Adjon meg egy érvényes számot"
msgid "Partitions"
msgstr "Partíciók"
msgid "No HSM devices available"
msgstr "Nem állnak rendelkezésre HSM-eszközök"
msgid "Partitions to be encrypted"
msgstr "Titkosítandó partíciók"
msgid "Select disk encryption option"
msgstr "Válasszon ki egy lemeztitkosítási beállítást"
msgid "Select a FIDO2 device to use for HSM"
msgstr "Válassza ki a HSM-hez használandó FIDO2-eszközt"
msgid "Use a best-effort default partition layout"
msgstr "A lehető legjobb beállítást lehetővé tévő alapértelmezett partícióelrendezés használata"
msgid "Manual Partitioning"
msgstr "Kézi particionálás"
msgid "Pre-mounted configuration"
msgstr "Előcsatolt konfiguráció"
msgid "Unknown"
msgstr "Ismeretlen"
msgid "Partition encryption"
msgstr "Partíciótitkosítás"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! {} formázása erre: "
msgid "← Back"
msgstr "← Vissza"
msgid "Disk encryption"
msgstr "Lemeztitkosítás"
msgid "Configuration"
msgstr "Konfiguráció"
msgid "Password"
msgstr "Jelszó"
msgid "All settings will be reset, are you sure?"
msgstr "Az összes beállítás vissza lesz állítva az alapértelmezettre, biztos benne?"
msgid "Back"
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: {}"
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 "A Sway nem támogatja az Nvidia saját fejlesztésű, zárt illesztőprogramját. Valószínű, hogy problémákba fog ütközni, rendben van ez így?"
msgid "Installed packages"
msgstr "Telepített csomagok"
msgid "Add profile"
msgstr "Profil hozzáadása"
msgid "Edit profile"
msgstr "Profil szerkesztése"
msgid "Delete profile"
msgstr "Profil törlése"
msgid "Profile name: "
msgstr "Profil neve: "
msgid "The profile name you entered is already in use. Try again"
msgstr "A megadott profilnév már használatban van. Próbálja újra"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "Ezzel a profillal telepítendő csomagok (szóközzel elválasztva; hagyja üresen a kihagyáshoz): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "A profillal engedélyezendő szolgáltatások (szóközzel elválasztva; hagyja üresen a kihagyáshoz): "
msgid "Should this profile be enabled for installation?"
msgstr "Engedélyezi ezt a profilt a telepítéshez?"
msgid "Create your own"
msgstr "Hozza létre a sajátját"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"Válasszon ki egy grafikus illesztőprogramot, vagy hagyja üresen az összes nyílt forráskódú illesztőprogram telepítéséhez"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "A Swaynek hozzáférésre van szüksége az Ön munkamenetéhez (olyan hardvereszközök gyűjteményéhez, mint például a billentyűzet, az egér, stb.)"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Válasszon ki egy beállítást, hogy engedélyezze a Sway számára a hardverekhez való hozzáférést"
msgid "Graphics driver"
msgstr "Grafikus illesztőprogram"
msgid "Greeter"
msgstr "Bejelentkezési segéd"
msgid "Please chose which greeter to install"
msgstr "Válassza ki a telepítendő bejelentkezési segédet"
msgid "This is a list of pre-programmed default_profiles"
msgstr "Ez az előre programozott „default_profiles” listája"
msgid "Disk configuration"
msgstr "Lemezkonfiguráció"
msgid "Profiles"
msgstr "Profilok"
msgid "Finding possible directories to save configuration files ..."
msgstr "Lehetséges könyvtárak keresése a konfigurációs fájlok mentéséhez…"
msgid "Select directory (or directories) for saving configuration files"
msgstr "Válassza ki a könyvtára(ka)t a konfigurációs fájlok mentéséhez"
msgid "Add a custom mirror"
msgstr "Egyéni tükör hozzáadása"
msgid "Change custom mirror"
msgstr "Egyéni tükör módosítása"
msgid "Delete custom mirror"
msgstr "Egyéni tükör törlése"
msgid "Enter name (leave blank to skip): "
msgstr "Adjon meg egy nevet (hagyja üresen a kihagyáshoz): "
msgid "Enter url (leave blank to skip): "
msgstr "Adjon megy egy webcímet (hagyja üresen a kihagyáshoz): "
msgid "Select signature check option"
msgstr "Válasszon ki egy aláírás-ellenőrzési beállítást"
msgid "Select signature option"
msgstr "Válasszon ki egy aláírásbeállítást"
msgid "Custom mirrors"
msgstr "Egyéni tükrök"
msgid "Defined"
msgstr "Meghatározott"
msgid "Save user configuration (including disk layout)"
msgstr "Felhasználói konfiguráció mentése (beleértve a lemezelrendezést is)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
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)\n"
"Mentési könyvtár: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"Szeretné elmenteni a(z) {} konfigurációs fájlt a következő helyre?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "{} konfigurációs fájl mentése ide: {}"
msgid "Mirrors"
msgstr "Tükrök"
msgid "Mirror regions"
msgstr "Tükörrégiók"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - Maximális érték: {} ({} párhuzamos letöltést tesz lehetővé, egyszerre {max_downloads+1} szálon)"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "Érvénytelen bemenet! Próbálja újra egy érvényes bemenettel [1-től {}-ig, vagy 0-t a letiltáshoz]"
msgid "Locales"
msgstr "Nyelvi beállítások"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "A hálózatkezelő használata (szükséges az internet grafikus konfigurálásához GNOME-ban és KDE-ben)"
msgid "Total: {} / {}"
msgstr "Összesen: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "Az összes beírt értéket mértékegységekkel kell ellátni: B, KB, KiB, MB, MiB…"
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "Ha nincs mértékegység megadva, akkor az értéket szektorokként értelmezi"
msgid "Enter start (default: sector {}): "
msgstr "Kezdési hely megadása (alapértelmezett: {} szektor): "
msgid "Enter end (default: {}): "
msgstr "Végpont megadása (alapértelmezett: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "Nem sikerült meghatározni a FIDO2-eszközöket. Telepítve van a libfido2?"
msgid "Path"
msgstr "Elérési útvonal"
msgid "Manufacturer"
msgstr "Gyártó"
msgid "Product"
msgstr "Termék"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "Érvénytelen konfiguráció: {error}"
msgid "Type"
msgstr "Típus"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "Ez a beállítás engedélyezi a csomagletöltéskor a lehetséges párhuzamos letöltések számát"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"Adja meg az engedélyezendő párhuzamos letöltések számát.\n"
"\n"
"Megjegyzés:\n"
#, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr " - Maximális ajánlott érték: {} ({} párhuzamos letöltést tesz lehetővé egyszerre)"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - Letiltás/Alapértelmezett: 0 (Kikapcsolja a párhuzamos letöltést, egyszerre csak 1 letöltést tesz lehetővé)\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "Érvénytelen bemenet! Próbálja újra egy érvényes bemenettel [vagy 0-t a letiltáshoz]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "A Hyprlandnek hozzáférésre van szüksége az Ön munkamenetéhez (olyan hardvereszközök gyűjteményéhez, mint például a billentyűzet, az egér, stb.)"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Válasszon ki egy beállítást, hogy engedélyezze a Hyprland számára a hardverekhez való hozzáférést"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "Az összes beírt értéket mértékegységgel kell ellátni: %, B, KB, KiB, MB, MiB…"
msgid "Would you like to use unified kernel images?"
msgstr "Szeretne egységesített kernelképeket (UKI) használni?"
msgid "Unified kernel images"
msgstr "Egységesített kernelképek (UKI)"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "Várakozás az időszinkronizálás (timedatectl show) befejezésére."
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Az időszinkronizálás nem fejeződik be, amíg várakozik - tekintse meg a dokumentációban a megoldásokat: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "Az automatikus időszinkronizálásra való várakozás kihagyása (ez problémákat okozhat, ha az idő nincs szinkronban a telepítéskor)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "Várakozás az Arch Linux-kulcstartó szinkronizálásának (archlinux-keyring-wkd-sync) befejezésére."
msgid "Selected profiles: "
msgstr "Kiválasztott profil: "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Az időszinkronizálás nem fejeződik be, amíg várakozik - tekintse meg a dokumentációban a megoldásokat: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "Megjelölés/elvetés mint „nodatacow”"
msgid "Would you like to use compression or disable CoW?"
msgstr "Szeretne tömörítést használni vagy letiltani az adatmásolást íráskor?"
msgid "Use compression"
msgstr "Tömörítés használata"
msgid "Disable Copy-on-Write"
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, például: GNOME, KDE Plasma, Sway"
#, python-brace-format
msgid "Configuration type: {}"
msgstr "Konfigurációtípus: {}"
msgid "LVM configuration type"
msgstr "LVM-konfigurációtípus"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "Az LVM-lemez titkosítása 2-nél több partícióval jelenleg nem támogatott"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "A hálózatkezelő használata (szükséges az internet grafikus konfigurálásához GNOME-ban és KDE Plasma-ban)"
msgid "Select a LVM option"
msgstr "Válasszon ki egy LVM-beállítást"
msgid "Partitioning"
msgstr "Particionálás"
msgid "Logical Volume Management (LVM)"
msgstr "Logikai kötetkezelő (LVM)"
msgid "Physical volumes"
msgstr "Fizikai kötetek"
msgid "Volumes"
msgstr "Kötetek"
msgid "LVM volumes"
msgstr "LVM-kötetek"
msgid "LVM volumes to be encrypted"
msgstr "Titkosítandó LVM-kötetek"
msgid "Select which LVM volumes to encrypt"
msgstr "Válassza ki a titkosítandó LVM-köteteket"
msgid "Default layout"
msgstr "Alapértelmezett elrendezés"
msgid "No Encryption"
msgstr "Nincs titkosítás"
msgid "LUKS"
msgstr "LUKS"
msgid "LVM on LUKS"
msgstr "LVM a LUKS fölött"
msgid "LUKS on LVM"
msgstr "LUKS az LVM fölött"
msgid "Yes"
msgstr "Igen"
msgid "No"
msgstr "Nem"
msgid "Archinstall help"
msgstr "Archinstall súgó"
msgid " (default)"
msgstr " (alapértelmezett)"
msgid "Press Ctrl+h for help"
msgstr "CTRL+h → a súgó megjelenítéséhez"
msgid "Choose an option to give Sway access to your hardware"
msgstr "Válasszon ki egy beállítást, hogy engedélyezze a Sway számára a hardverekhez való hozzáférést"
msgid "Seat access"
msgstr "Hozzáférés a munkaállomáshoz"
msgid "Mountpoint"
msgstr "Csatolási pont"
msgid "HSM"
msgstr "HSM"
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "Adjon meg egy jelszót a lemez titkosításához (hagyja üresen, ha nem akarja titkosítani)"
msgid "Disk encryption password"
msgstr "Lemeztitkosítási jelszó"
msgid "Partition - New"
msgstr "Partíció - új"
msgid "Filesystem"
msgstr "Fájlrendszer"
msgid "Invalid size"
msgstr "Érvénytelen méret"
msgid "Start (default: sector {}): "
msgstr "Kezdési hely megadása (alapértelmezett: {} szektor): "
msgid "End (default: {}): "
msgstr "Végpont megadása (alapértelmezett: {}): "
msgid "Subvolume name"
msgstr "Alkötet neve"
msgid "Disk configuration type"
msgstr "Lemezkonfiguráció típusa"
msgid "Root mount directory"
msgstr "Root csatolási könyvtár"
msgid "Select language"
msgstr "Nyelv kiválasztása"
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "Írjon be további csomagneveket a telepítéshez (szóközzel elválasztva; hagyja üresen a kihagyáshoz)"
msgid "Invalid download number"
msgstr "Érvénytelen érték lett megadva a párhuzamos letöltések számához"
msgid "Number downloads"
msgstr "Párhuzamos letöltések száma"
msgid "The username you entered is invalid"
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"
msgid "Interfaces"
msgstr "Csatolók"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "Meg kell adnia egy érvényes IP-címet az IP-cím-konfigurációs módban"
msgid "Modes"
msgstr "Módok"
msgid "IP address"
msgstr "IP-cím"
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "Adja meg az átjáró (elosztó) IP-címét (hagyja üresen, ha nincs ilyen)"
msgid "Gateway address"
msgstr "Átjárócím"
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "Adja meg a DNS-kiszolgálókat (szóközzel elválasztva; hagyja üresen, ha nincsenek ilyenek)"
msgid "DNS servers"
msgstr "DNS-kiszolgálók"
msgid "Configure interfaces"
msgstr "Csatolók konfigurálása"
msgid "Kernel"
msgstr "Kernel"
msgid "UEFI is not detected and some options are disabled"
msgstr "A rendszer nem észlelt UEFI-módot, ezért egyes beállítások le vannak tiltva"
msgid "Info"
msgstr "Információ"
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "A Sway nem támogatja az Nvidia saját fejlesztésű, zárt illesztőprogramját."
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "Valószínű, hogy problémákba fog ütközni, rendben van ez így?"
msgid "Main profile"
msgstr "Fő profil"
msgid "Confirm password"
msgstr "Jelszó megerősítése"
msgid "The confirmation password did not match, please try again"
msgstr "A megerősítéshez használt jelszó nem egyezik meg, próbálja újra"
msgid "Not a valid directory"
msgstr "Érvénytelen könyvtár"
msgid "Would you like to continue?"
msgstr "Szeretné folytatni?"
msgid "Directory"
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: {}?"
msgid "Enabled"
msgstr "Engedélyezve"
msgid "Disabled"
msgstr "Letiltva"
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr "Jelentse ezt a problémát (a naplófájllal együtt) itt: https://github.com/archlinux/archinstall/issues"
msgid "Mirror name"
msgstr "Tükörnév"
msgid "Url"
msgstr "Webcím"
msgid "Select signature check"
msgstr "Aláírás-ellenőrzés kiválasztása"
msgid "Select execution mode"
msgstr "Végrehajtási mód kiválasztása"
msgid "Press ? for help"
msgstr "? → a súgó megjelenítéséhez"
msgid "Choose an option to give Hyprland access to your hardware"
msgstr "Válasszon ki egy beállítást, hogy engedélyezze a Hyprland számára a hardverekhez való hozzáférést"
msgid "Additional repositories"
msgstr "További tárolók"
msgid "NTP"
msgstr "NTP"
msgid "Swap on zram"
msgstr "Swap a zRam fölött"
msgid "Name"
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: {}): "
msgid "HSM device"
msgstr "HSM-eszköz"
msgid "Some packages could not be found in the repository"
msgstr "Néhány csomag nem található a tárolóban"
msgid "User"
msgstr "Felhasználó"
msgid "The specified configuration will be applied"
msgstr "A megadott konfiguráció lesz alkalmazva"
msgid "Wipe"
msgstr "Törlés"
msgid "Mark/Unmark as XBOOTLDR"
msgstr "Megjelölés/elvetés mint XBOOTLDR"
msgid "Loading packages..."
msgstr "Csomagok betöltése…"
msgid "Select any packages from the below list that should be installed additionally"
msgstr "Válassza ki az alábbi listából azokat a csomagokat, amelyeket hozzá akar adni a telepítéshez"
msgid "Add a custom repository"
msgstr "Egyéni tároló hozzáadása"
msgid "Change custom repository"
msgstr "Egyéni tároló módosítása"
msgid "Delete custom repository"
msgstr "Egyéni tároló törlése"
msgid "Repository name"
msgstr "Tároló neve"
msgid "Add a custom server"
msgstr "Egyéni kiszolgáló hozzáadása"
msgid "Change custom server"
msgstr "Egyéni kiszolgáló módosítása"
msgid "Delete custom server"
msgstr "Egyéni kiszolgáló törlése"
msgid "Server url"
msgstr "Kiszolgáló webcíme"
msgid "Select regions"
msgstr "Régiók kiválasztása"
msgid "Add custom servers"
msgstr "Egyéni kiszolgálók hozzáadása"
msgid "Add custom repository"
msgstr "Egyéni tároló hozzáadása"
msgid "Loading mirror regions..."
msgstr "Tükörrégiók betöltése…"
msgid "Mirrors and repositories"
msgstr "Tükrök és tárolók"
msgid "Selected mirror regions"
msgstr "Kiválasztott tükörrégiók"
msgid "Custom servers"
msgstr "Egyéni kiszolgálók"
msgid "Custom repositories"
msgstr "Egyéni tárolók"
msgid "Only ASCII characters are supported"
msgstr "Csak ASCII karakterek támogatottak"
msgid "Show help"
msgstr "Súgó megjelenítése"
msgid "Exit help"
msgstr "Kilépés a súgóból"
msgid "Preview scroll up"
msgstr "Előnézet felfelé görgetése"
msgid "Preview scroll down"
msgstr "Előnézet lefelé görgetése"
msgid "Move up"
msgstr "Felfelé léptetés"
msgid "Move down"
msgstr "Lefelé léptetés"
msgid "Move right"
msgstr "Jobbra léptetés"
msgid "Move left"
msgstr "Balra léptetés"
msgid "Jump to entry"
msgstr "Ugrás a bejegyzésre"
msgid "Skip selection (if available)"
msgstr "Kiválasztás kihagyása (ha elérhető)"
msgid "Reset selection (if available)"
msgstr "Kiválasztás visszaállítása (ha elérhető)"
msgid "Select on single select"
msgstr "Egyetlen elem kiválasztása"
msgid "Select on multi select"
msgstr "Több elem kiválasztása"
msgid "Reset"
msgstr "Visszaállítás"
msgid "Skip selection menu"
msgstr "Kiválasztási menü kihagyása"
msgid "Start search mode"
msgstr "Keresési mód indítása"
msgid "Exit search mode"
msgstr "Kilépés a keresési módból"
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "A Labwc-nek hozzáférésre van szüksége az Ön munkamenetéhez (olyan hardvereszközök gyűjteményéhez, mint például a billentyűzet, az egér, stb.)"
msgid "Choose an option to give labwc access to your hardware"
msgstr "Válasszon ki egy beállítást, hogy engedélyezze a Labwc számára a hardverekhez való hozzáférést"
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "A Nirinek hozzáférésre van szüksége az Ön munkamenetéhez (olyan hardvereszközök gyűjteményéhez, mint például a billentyűzet, az egér, stb.)"
msgid "Choose an option to give niri access to your hardware"
msgstr "Válasszon ki egy beállítást, hogy engedélyezze a Niri számára a hardverekhez való hozzáférést"
msgid "Mark/Unmark as ESP"
msgstr "Megjelölés/elvetés mint EFI-rendszerpartíció (ESP)"
msgid "Package group:"
msgstr "Csomagcsoport:"
msgid "Exit archinstall"
msgstr "Kilépés az Archinstallból"
msgid "Reboot system"
msgstr "Rendszer újraindítása"
msgid "chroot into installation for post-installation configurations"
msgstr "Belépés a telepített rendszer gyökerébe (chroot) a telepítés utáni konfigurációk elvégzéséhez"
msgid "Installation completed"
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 jelszó a hitelesítési adatok fájljának visszafejtéséhez"
msgid "Incorrect password"
msgstr "Helytelen jelszó"
msgid "Credentials file decryption password"
msgstr "A hitelesítőadat-fájl visszafejtési jelszava"
msgid "Do you want to encrypt the user_credentials.json file?"
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 "Print service"
msgstr "Nyomtatási szolgáltatás"
msgid "Would you like to configure the print service?"
msgstr "Szeretné konfigurálni a nyomtatási szolgáltatást?"
msgid "Power management"
msgstr "Energiagazdálkodás"
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"
msgid "Starting device modifications in "
msgstr "Eszközmódosítások indítása a következőben: "
msgid "No network connection found"
msgstr "Nem található hálózati kapcsolat"
msgid "Would you like to connect to a Wifi?"
msgstr "Szeretne kapcsolódni egy Wi-Fi-hálózathoz?"
msgid "No wifi interface found"
msgstr "Nem található Wi-Fi-csatoló"
msgid "Select wifi network to connect to"
msgstr "Válassza ki azt a Wi-Fi-hálózatot, amelyhez kapcsolódni szeretne"
msgid "Scanning wifi networks..."
msgstr "Wi-Fi-hálózatok keresése…"
msgid "No wifi networks found"
msgstr "Nem találhatók Wi-Fi-hálózatok"
msgid "Failed setting up wifi"
msgstr "Nem sikerült beállítani a Wi-Fi-t"
msgid "Enter wifi password"
msgstr "Adja meg a Wi-Fi-jelszót"
msgid "Ok"
msgstr "OK"
msgid "Removable"
msgstr "Cserélhető adathordozó"
msgid "Install to removable location"
msgstr "Telepítés cserélhető adathordozóra"
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr "Telepítés helye: /EFI/BOOT/ (cserélhető adathordozó)"
msgid "Will install to standard location with NVRAM entry"
msgstr "Telepítés szabványos helyre, NVRAM-bejegyzéssel"
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr "Szeretné a rendszerbetöltőt a cserélhető adathordozók alapértelmezett keresési helyére telepíteni?"
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr "Ez a rendszerbetöltőt az /EFI/BOOT/BOOTX64.EFI (vagy hasonló) helyre telepíti, ami hasznos lehet a következőkhöz:"
msgid "USB drives or other portable external media."
msgstr "USB-meghajtóknál vagy egyéb hordozható, külső adathordozóknál."
msgid "Systems where you want the disk to be bootable on any computer."
msgstr "Olyan rendszereknél, ahol azt szeretné, hogy a lemez bármely számítógépen indítható legyen."
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr "Olyan firmware-eknél, amelyek nem támogatják megfelelően az NVRAM-rendszerindítási bejegyzéseket."
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr "Telepítés helye: /EFI/BOOT/ (cserélhető adathordozó, biztonságos alapértelmezett)"
msgid "Will install to custom location with NVRAM entry"
msgstr "Telepítés egyénileg kiválasztott helyre, NVRAM-bejegyzéssel"
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr "Olyan firmware, amely nem támogatja megfelelően az NVRAM-rendszerindító bejegyzéseket, mint a legtöbb MSI-alaplap,"
msgid "most Apple Macs, many laptops..."
msgstr "a legtöbb Apple Mac és számos egyéb laptop…"
msgid "Language"
msgstr "Nyelv"
msgid "Compression algorithm"
msgstr "Tömörítési algoritmus"
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Csak az olyan csomagok, mint a base, sudo, linux, linux-firmware, efibootmgr és a nem kötelező profilcsomagok lesznek telepítve."
msgid "Select zram compression algorithm:"
msgstr "Válassza ki a zRam tömörítési algoritmust:"
msgid "Use Network Manager (default backend)"
msgstr "Hálózatkezelő használata (alapértelmezett háttérprogram)"
msgid "Use Network Manager (iwd backend)"
msgstr "Hálózatkezelő használata (iwd-háttérprogram)"
================================================
FILE: archinstall/locales/id/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: Ali Rohman \n"
"Language-Team: \n"
"Language: id\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.2.2\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] File log telah dibuat di sini: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Silakan kirimkan masalah ini (dan file) ke https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "Apakah Anda benar-benar ingin membatalkan?"
msgid "And one more time for verification: "
msgstr "Dan sekali lagi untuk verifikasi: "
msgid "Would you like to use swap on zram?"
msgstr "Apakah Anda ingin menggunakan swap di zram?"
msgid "Desired hostname for the installation: "
msgstr "Nama host yang diinginkan untuk instalasi: "
msgid "Username for required superuser with sudo privileges: "
msgstr "Nama pengguna untuk superuser yang diperlukan dengan hak sudo: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "Beberapa pengguna tambahan untuk dipasang (biarkan kosong untuk tidak menambahkan): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "Haruskah pengguna ini menjadi superuser (sudoer)?"
msgid "Select a timezone"
msgstr "Pilih zona waktu"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "Apakah Anda ingin menggunakan GRUB sebagai bootloader daripada systemd-boot?"
msgid "Choose a bootloader"
msgstr "Pilih bootloader"
msgid "Choose an audio server"
msgstr "Pilih server audio"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Hanya paket seperti base, base-devel, linux, linux-firmware, efibootmgr dan paket profil opsional yang diinstal."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr ""
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "Jika Anda menginginkan web browser, seperti firefox atau chromium, Anda dapat menentukannya di prompt berikut."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "Ketik paket tambahan untuk diinstal (dipisahkan dengan spasi, biarkan kosong untuk dilewati): "
msgid "Copy ISO network configuration to installation"
msgstr "Salin konfigurasi jaringan ISO ke instalasi"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "Gunakan NetworkManager (diperlukan untuk mengkonfigurasi internet secara grafis di GNOME dan KDE)"
msgid "Select one network interface to configure"
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): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "Masukkan IP gateway (router) Anda atau biarkan kosong untuk tidak menggunakan apa pun: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "Masukkan server DNS Anda (dipisahkan dengan spasi, untuk kosongkan tidak menggunakan apa pun): "
msgid "Select which filesystem your main partition should use"
msgstr "Pilih filesystem mana yang harus digunakan partisi utama Anda"
msgid "Current partition layout"
msgstr "Tata letak partisi saat ini"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"Pilih apa yang harus dilakukan dengan\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "Masukkan jenis filesystem yang diinginkan untuk partisi"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "Masukkan lokasi awal (dalam satuan parted: s, GB, %, dll. ; default: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "Masukkan lokasi akhir (dalam satuan parted: s, GB, %, dll. ; cth: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} berisi partisi yang telah di-queue, tindakan ini akan menghapusnya, apakah Anda yakin?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"Pilih berdasarkan indeks partisi mana yang akan dihapus"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"Pilih berdasarkan indeks partisi mana yang akan di mount"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * Mount point partisi relatif terhadap di dalam instalasi, boot akan menjadi /boot sebagai contoh."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "Pilih tempat untuk memasang partisi (biarkan kosong untuk menghapus mountpoint): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"Pilih partisi mana yang akan di mask untuk pemformatan"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"Pilih partisi mana yang akan ditandai sebagai terenkripsi"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"Pilih partisi mana yang akan ditandai sebagai bootable"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"Pilih partisi mana untuk mengatur sistem file"
msgid "Enter a desired filesystem type for the partition: "
msgstr "Masukkan jenis filesystem yang diinginkan untuk partisi: "
msgid "Archinstall language"
msgstr "Bahasa Archinstall"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "Hapus semua drive yang dipilih dan gunakan upaya terbaik tata letak partisi default"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "Pilih apa yang harus dilakukan dengan setiap drive individu (diikuti dengan penggunaan partisi)"
msgid "Select what you wish to do with the selected block devices"
msgstr "Pilih apa yang ingin Anda lakukan dengan perangkat blok yang dipilih"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "Ini adalah daftar profil yang telah diprogram sebelumnya, mereka mungkin memudahkan untuk menginstal hal-hal seperti desktop environment"
msgid "Select keyboard layout"
msgstr "Pilih tata letak keyboard"
msgid "Select one of the regions to download packages from"
msgstr "Pilih salah satu wilayah untuk mengunduh paket dari mana"
msgid "Select one or more hard drives to use and configure"
msgstr "Pilih satu atau lebih hard drive untuk digunakan dan dikonfigurasi"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "Untuk kompatibilitas terbaik dengan perangkat keras AMD Anda, Anda mungkin ingin menggunakan opsi semua sumber terbuka atau AMD / ATI."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "Untuk kompatibilitas terbaik dengan perangkat keras Intel Anda, Anda mungkin ingin menggunakan opsi semua sumber terbuka atau Intel.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "Untuk kompatibilitas terbaik dengan perangkat keras Nvidia Anda, Anda mungkin ingin menggunakan driver proprietary Nvidia.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Pilih driver grafis atau biarkan kosong untuk menginstal semua driver open-source"
msgid "All open-source (default)"
msgstr "Semua sumber terbuka (default)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "Pilih kernel mana yang akan digunakan atau biarkan kosong untuk \"{}\" default"
msgid "Choose which locale language to use"
msgstr "Pilih locale bahasa yang akan digunakan"
msgid "Choose which locale encoding to use"
msgstr "Pilih locale encoding yang akan digunakan"
msgid "Select one of the values shown below: "
msgstr "Pilih salah satu nilai yang ditunjukkan di bawah ini: "
msgid "Select one or more of the options below: "
msgstr "Pilih satu atau beberapa opsi di bawah ini: "
msgid "Adding partition...."
msgstr "Menambahkan partisi...."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "Anda harus memasukkan tipe fs yang valid untuk melanjutkan. Lihat `man parted` untuk tipe fs yang valid."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "Kesalahan: Mencantumkan profil pada URL \"{}\" mengakibatkan:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "Kesalahan: Tidak dapat mendekode hasil \"{}\" sebagai JSON:"
msgid "Keyboard layout"
msgstr "Tata letak keyboard"
msgid "Mirror region"
msgstr "Wilayah mirror"
msgid "Locale language"
msgstr "Locale language"
msgid "Locale encoding"
msgstr "Locale encoding"
msgid "Drive(s)"
msgstr "Drive"
msgid "Disk layout"
msgstr "Tata letak disk"
msgid "Encryption password"
msgstr "Kata sandi enkripsi"
msgid "Swap"
msgstr "Swap"
msgid "Bootloader"
msgstr "Bootloader"
msgid "Root password"
msgstr "Kata sandi root"
msgid "Superuser account"
msgstr "Akun superuser"
msgid "User account"
msgstr "Akun pengguna"
msgid "Profile"
msgstr "Profil"
msgid "Audio"
msgstr "Audio"
msgid "Kernels"
msgstr "Kernel"
msgid "Additional packages"
msgstr "Paket tambahan"
msgid "Network configuration"
msgstr "Konfigurasi jaringan"
msgid "Automatic time sync (NTP)"
msgstr "Sinkronisasi waktu otomatis (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "Instal ({} konfigurasi tidak ada)"
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 ""
"Anda memutuskan untuk melewati pemilihan harddisk\n"
"dan akan menggunakan pengaturan drive apa pun yang dipasang di {} (eksperimental)\n"
"PERINGATAN: Archinstall tidak akan memeriksa kesesuaian pengaturan ini\n"
"Apakah Anda ingin melanjutkan?"
msgid "Re-using partition instance: {}"
msgstr "Menggunakan kembali instance partisi: {}"
msgid "Create a new partition"
msgstr "Buat partisi baru"
msgid "Delete a partition"
msgstr "Hapus partisi"
msgid "Clear/Delete all partitions"
msgstr "Bersihkan/Hapus semua partisi"
msgid "Assign mount-point for a partition"
msgstr "Tetapkan titik-mount untuk sebuah partisi"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "Tandai/Hapus tanda partisi yang akan diformat (menghapus data)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "Tandai/Hapus tanda partisi sebagai terenkripsi"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "Tandai/Hapus tanda partisi sebagai bootable (otomatis untuk /boot)"
msgid "Set desired filesystem for a partition"
msgstr "Atur filesystem yang diinginkan untuk sebuah partisi"
msgid "Abort"
msgstr "Batalkan"
msgid "Hostname"
msgstr "Hostname"
msgid "Not configured, unavailable unless setup manually"
msgstr "Tidak dikonfigurasi, tidak tersedia kecuali diatur secara manual"
msgid "Timezone"
msgstr "Zona waktu"
msgid "Set/Modify the below options"
msgstr "Atur/Ubah opsi di bawah ini"
msgid "Install"
msgstr "Install"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"Gunakan ESC untuk melewati\n"
"\n"
msgid "Suggest partition layout"
msgstr "Saran tata letak partisi"
msgid "Enter a password: "
msgstr "Masukan kata sandi: "
msgid "Enter a encryption password for {}"
msgstr "Masukkan sandi enkripsi untuk {}"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "Masukkan kata sandi enkripsi disk (biarkan kosong jika tidak ada enkripsi): "
msgid "Create a required super-user with sudo privileges: "
msgstr "Buat pengguna super yang diperlukan dengan hak sudo: "
msgid "Enter root password (leave blank to disable root): "
msgstr "Masukkan kata sandi root (biarkan kosong untuk menonaktifkan root): "
msgid "Password for user \"{}\": "
msgstr "Kata sandi untuk pengguna \"{}\": "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "Memverifikasi bahwa ada paket tambahan (ini mungkin memakan waktu beberapa detik)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "Apakah Anda ingin menggunakan sinkronisasi waktu otomatis (NTP) dengan server waktu default?\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 ""
"Waktu perangkat keras dan langkah-langkah pasca-konfigurasi lainnya mungkin diperlukan agar NTP berfungsi.\n"
"Untuk informasi lebih lanjut, silakan periksa Arch wiki"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "Masukkan nama pengguna untuk membuat pengguna tambahan (biarkan kosong untuk melewati): "
msgid "Use ESC to skip\n"
msgstr "Gunakan ESC untuk melewati\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
"Pilih objek dari daftar, dan pilih salah satu tindakan yang tersedia untuk dieksekusi"
msgid "Cancel"
msgstr "Batalkan"
msgid "Confirm and exit"
msgstr "Konfirmasi dan keluar"
msgid "Add"
msgstr "Tambah"
msgid "Copy"
msgstr "Salin"
msgid "Edit"
msgstr "Edit"
msgid "Delete"
msgstr "Hapus"
msgid "Select an action for '{}'"
msgstr "Pilih tindakan untuk '{}'"
msgid "Copy to new key:"
msgstr "Salin ke kunci baru:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "Jenis nic tidak dikenal: {}. Nilai yang mungkin adalah {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"Ini adalah konfigurasi yang Anda pilih:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman sudah berjalan, menunggu maksimal 10 menit untuk berhenti."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "Pacman lock yang sudah ada tidak pernah keluar. Harap bersihkan sesi pacman yang ada sebelum menggunakan archinstall."
msgid "Choose which optional additional repositories to enable"
msgstr "Pilih repositori tambahan opsional mana yang akan diaktifkan"
msgid "Add a user"
msgstr "Tambahkan pengguna"
msgid "Change password"
msgstr "Ganti kata sandi"
msgid "Promote/Demote user"
msgstr "Promosikan/Turunkan pengguna"
msgid "Delete User"
msgstr "Hapus pengguna"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"Tentukan pengguna baru\n"
msgid "User Name : "
msgstr "Nama Pengguna : "
msgid "Should {} be a superuser (sudoer)?"
msgstr "Haruskah {} menjadi superuser (sudoer)?"
msgid "Define users with sudo privilege: "
msgstr "Tentukan pengguna dengan hak sudo: "
msgid "No network configuration"
msgstr "Tidak ada konfigurasi jaringan"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Atur subvolume yang diinginkan pada partisi btrfs"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"Pilih partisi mana untuk mengatur subvolume"
msgid "Manage btrfs subvolumes for current partition"
msgstr "Kelola subvolume btrfs untuk partisi saat ini"
msgid "No configuration"
msgstr "Tidak ada konfigurasi"
msgid "Save user configuration"
msgstr "Simpan konfigurasi pengguna"
msgid "Save user credentials"
msgstr "Simpan kredensial pengguna"
msgid "Save disk layout"
msgstr "Simpan tata letak disk"
msgid "Save all"
msgstr "Simpan semua"
msgid "Choose which configuration to save"
msgstr "Pilih konfigurasi mana yang akan disimpan"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "Masukkan direktori untuk konfigurasi yang akan disimpan: "
msgid "Not a valid directory: {}"
msgstr "Bukan direktori yang valid: {}"
msgid "The password you are using seems to be weak,"
msgstr "Kata sandi yang Anda gunakan tampaknya lemah,"
msgid "are you sure you want to use it?"
msgstr "apakah Anda yakin ingin menggunakannya?"
msgid "Optional repositories"
msgstr "Repositori opsional"
msgid "Save configuration"
msgstr "Simpan konfigurasi"
msgid "Missing configurations:\n"
msgstr "Konfigurasi tidak ada: \n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "Salah satu root-password atau setidaknya 1 superuser harus ditentukan"
msgid "Manage superuser accounts: "
msgstr "Kelola akun superuser: "
msgid "Manage ordinary user accounts: "
msgstr "Kelola akun pengguna biasa: "
msgid " Subvolume :{:16}"
msgstr " Subvolume :{:16}"
msgid " mounted at {:16}"
msgstr " di mount di {:16}"
msgid " with option {}"
msgstr " dengan opsi {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
"Isi nilai yang diinginkan untuk subvolume baru\n"
msgid "Subvolume name "
msgstr "Nama subvolume "
msgid "Subvolume mountpoint"
msgstr "Titik mount subvolume"
msgid "Subvolume options"
msgstr "Opsi subvolume"
msgid "Save"
msgstr "Simpan"
msgid "Subvolume name :"
msgstr "Nama subvolume :"
msgid "Select a mount point :"
msgstr "Pilih titik mount :"
msgid "Select the desired subvolume options "
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: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "Apakah Anda ingin menggunakan subvolume BTRFS dengan struktur default?"
msgid "Would you like to use BTRFS compression?"
msgstr "Apakah Anda ingin menggunakan kompresi BTRFS?"
msgid "Would you like to create a separate partition for /home?"
msgstr "Apakah Anda ingin membuat partisi terpisah untuk /home?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "Drive yang dipilih tidak memiliki kapasitas minimum yang diperlukan untuk saran otomatis\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "Kapasitas minimum untuk partisi /home: {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Kapasitas minimum untuk partisi Arch Linux: {}GB"
msgid "Continue"
msgstr "Lanjutkan"
msgid "yes"
msgstr "ya"
msgid "no"
msgstr "tidak"
msgid "set: {}"
msgstr "atur: {}"
msgid "Manual configuration setting must be a list"
msgstr "Pengaturan konfigurasi manual harus berupa list"
msgid "No iface specified for manual configuration"
msgstr "Tidak ada iface yang ditentukan untuk konfigurasi manual"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "Konfigurasi nic manual tanpa DHCP otomatis memerlukan alamat IP"
msgid "Add interface"
msgstr "Tambahkan interface"
msgid "Edit interface"
msgstr "Edit interface"
msgid "Delete interface"
msgstr "Hapus interface"
msgid "Select interface to add"
msgstr "Pilih interface untuk ditambahkan"
msgid "Manual configuration"
msgstr "Konfigurasi manual"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "Tandai/Hapus tanda partisi sebagai terkompresi (hanya btrfs)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "Kata sandi yang Anda gunakan tampaknya lemah, apakah Anda yakin ingin menggunakannya?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "Menyediakan pilihan desktop environment dan tiling window manager, cth. gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "Pilih desktop environment yang Anda inginkan"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "Instalasi yang sangat basic yang memungkinkan Anda untuk menyesuaikan Arch Linux sesuai keinginan Anda."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "Menyediakan pilihan berbagai paket server untuk diinstal dan diaktifkan, cth. httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "Pilih server mana yang akan diinstal, jika tidak ada maka instalasi minimal akan dilakukan"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "Install sistem minimal serta xorg dan driver grafis."
msgid "Press Enter to continue."
msgstr "Tekan Enter untuk melanjutkan."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "Apakah Anda ingin melakukan chroot ke instalasi yang baru dibuat dan melakukan konfigurasi pasca-instalasi?"
msgid "Are you sure you want to reset this setting?"
msgstr "Anda yakin ingin menyetel ulang setelan ini?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "Pilih satu atau lebih hard drive untuk digunakan dan dikonfigurasi\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "Setiap modifikasi pada pengaturan yang ada akan mengatur ulang tata letak disk!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "Jika Anda mengatur ulang pilihan harddrive, ini juga akan mengatur ulang tata letak disk saat ini. Apakah Anda yakin?"
msgid "Save and exit"
msgstr "Simpan dan keluar"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"berisi partisi yang mengantri, ini akan menghapusnya, apakah Anda yakin?"
msgid "No audio server"
msgstr "Tidak ada server audio"
msgid "(default)"
msgstr "(default)"
msgid "Use ESC to skip"
msgstr "Gunakan ESC untuk melewati"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"Gunakan CTRL + C untuk mengatur ulang pilihan saat ini\n"
"\n"
msgid "Copy to: "
msgstr "Salin ke: "
msgid "Edit: "
msgstr "Edit: "
msgid "Key: "
msgstr "Kunci: "
msgid "Edit {}: "
msgstr "Edit {}: "
msgid "Add: "
msgstr "Tambah: "
msgid "Value: "
msgstr "Nilai: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "Anda dapat melewatkan memilih drive dan mempartisi dan menggunakan pengaturan drive apa pun yang dipasang di /mnt (eksperimental)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "Pilih salah satu disk atau lewati dan gunakan /mnt sebagai default"
msgid "Select which partitions to mark for formatting:"
msgstr "Pilih partisi mana yang akan ditandai untuk pemformatan:"
msgid "Use HSM to unlock encrypted drive"
msgstr "Gunakan HSM untuk membuka kunci drive terenkripsi"
msgid "Device"
msgstr "Perangkat"
msgid "Size"
msgstr "Ukuran"
msgid "Free space"
msgstr "Ruang kosong"
msgid "Bus-type"
msgstr "Tipe bus"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "Baik kata sandi root atau setidaknya 1 pengguna dengan hak sudo harus ditentukan"
msgid "Enter username (leave blank to skip): "
msgstr "Masukkan nama pengguna (kosongkan untuk melewati): "
msgid "The username you entered is invalid. Try again"
msgstr "Nama pengguna yang Anda masukkan tidak valid. Coba lagi"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "Haruskah \"{}\" menjadi superuser (sudo)?"
msgid "Select which partitions to encrypt"
msgstr "Pilih partisi mana yang akan dienkripsi"
msgid "very weak"
msgstr "sangat lemah"
msgid "weak"
msgstr "lemah"
msgid "moderate"
msgstr "sedang"
msgid "strong"
msgstr "kuat"
msgid "Add subvolume"
msgstr "Tambah subvolume"
msgid "Edit subvolume"
msgstr "Edit subvolume"
msgid "Delete subvolume"
msgstr "Hapus subvolume"
msgid "Configured {} interfaces"
msgstr "Interface {} dikonfigurasi"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "Opsi ini memungkinkan jumlah unduhan paralel yang dapat terjadi selama instalasi"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"Masukkan jumlah unduhan paralel yang akan diaktifkan.\n"
" (Masukkan nilai antara 1 hingga {})\n"
"Catatan:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - Nilai maksimum : {} ( Memungkinkan {} unduhan paralel, memungkinkan {} unduhan sekaligus)"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - Nilai minimum : 1 (Mengizinkan 1 unduhan paralel, memungkinkan 2 unduhan sekaligus)"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - Nonaktifkan/Default: 0 (Menonaktifkan pengunduhan paralel, hanya mengizinkan 1 unduhan pada satu waktu)"
#, fuzzy, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "Input tidak valid! Coba lagi dengan input yang valid [1 untuk {}, atau 0 untuk menonaktifkan]"
msgid "Parallel Downloads"
msgstr "Unduhan Paralel"
msgid "ESC to skip"
msgstr "ESC untuk melewati"
msgid "CTRL+C to reset"
msgstr "CTRL + C untuk mengatur ulang"
msgid "TAB to select"
msgstr "TAB untuk memilih"
msgid "[Default value: 0] > "
msgstr "[Nilai default: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr ""
msgid "The font should be stored as {}"
msgstr ""
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr ""
#, fuzzy
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 ""
#, fuzzy
msgid "Select one or more devices to use and configure"
msgstr "Pilih satu atau lebih hard drive untuk digunakan dan dikonfigurasi"
#, fuzzy
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "Jika Anda mengatur ulang pilihan harddrive, ini juga akan mengatur ulang tata letak disk saat ini. Apakah Anda yakin?"
#, fuzzy
msgid "Existing Partitions"
msgstr "Menambahkan partisi...."
#, fuzzy
msgid "Select a partitioning option"
msgstr "Hapus partisi"
#, fuzzy
msgid "Enter the root directory of the mounted devices: "
msgstr "Masukkan direktori untuk konfigurasi yang akan disimpan: "
#, fuzzy, python-brace-format
msgid "Minimum capacity for /home partition: {}GiB\n"
msgstr "Kapasitas minimum untuk partisi /home: {}GB\n"
#, fuzzy, python-brace-format
msgid "Minimum capacity for Arch Linux partition: {}GiB"
msgstr "Kapasitas minimum untuk partisi Arch Linux: {}GB"
#, fuzzy
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "Ini adalah daftar profil yang telah diprogram sebelumnya, mereka mungkin memudahkan untuk menginstal hal-hal seperti desktop environment"
#, fuzzy
msgid "Current profile selection"
msgstr "Tata letak partisi saat ini"
#, fuzzy
msgid "Remove all newly added partitions"
msgstr "Buat partisi baru"
#, fuzzy
msgid "Assign mountpoint"
msgstr "Tetapkan titik-mount untuk sebuah partisi"
#, fuzzy
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "Tandai/Hapus tanda partisi yang akan diformat (menghapus data)"
msgid "Mark/Unmark as bootable"
msgstr ""
msgid "Change filesystem"
msgstr ""
#, fuzzy
msgid "Mark/Unmark as compressed"
msgstr "Tandai/Hapus tanda partisi sebagai terkompresi (hanya btrfs)"
#, fuzzy
msgid "Set subvolumes"
msgstr "Hapus subvolume"
#, fuzzy
msgid "Delete partition"
msgstr "Hapus partisi"
msgid "Partition"
msgstr ""
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr ""
#, fuzzy
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * Mount point partisi relatif terhadap di dalam instalasi, boot akan menjadi /boot sebagai contoh."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr ""
msgid "Mountpoint: "
msgstr ""
msgid "Current free sectors on device {}:"
msgstr ""
#, fuzzy
msgid "Total sectors: {}"
msgstr "Bukan direktori yang valid: {}"
#, fuzzy
msgid "Enter the start sector (default: {}): "
msgstr "Masukkan sektor awal (persentase atau nomor blok, default: {}): "
#, fuzzy
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
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 ""
#, fuzzy
msgid "Encryption type"
msgstr "Kata sandi enkripsi"
msgid "Iteration time"
msgstr ""
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr ""
msgid "Higher values increase security but slow down boot time"
msgstr ""
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr ""
msgid "Iteration time cannot be empty"
msgstr ""
msgid "Iteration time must be at least 100ms"
msgstr ""
msgid "Iteration time must be at most 120000ms"
msgstr ""
msgid "Please enter a valid number"
msgstr ""
msgid "Partitions"
msgstr ""
msgid "No HSM devices available"
msgstr ""
#, fuzzy
msgid "Partitions to be encrypted"
msgstr "Pilih partisi mana yang akan dienkripsi"
msgid "Select disk encryption option"
msgstr ""
msgid "Select a FIDO2 device to use for HSM"
msgstr ""
#, fuzzy
msgid "Use a best-effort default partition layout"
msgstr "Hapus semua drive yang dipilih dan gunakan upaya terbaik tata letak partisi default"
#, fuzzy
msgid "Manual Partitioning"
msgstr "Konfigurasi manual"
#, fuzzy
msgid "Pre-mounted configuration"
msgstr "Tidak ada konfigurasi"
msgid "Unknown"
msgstr ""
msgid "Partition encryption"
msgstr ""
#, python-brace-format
msgid " ! Formatting {} in "
msgstr ""
msgid "← Back"
msgstr ""
msgid "Disk encryption"
msgstr ""
#, fuzzy
msgid "Configuration"
msgstr "Tidak ada konfigurasi"
#, fuzzy
msgid "Password"
msgstr "Kata sandi root"
#, fuzzy
msgid "All settings will be reset, are you sure?"
msgstr "{} berisi partisi yang mengantri, ini akan menghapusnya, apakah Anda yakin?"
msgid "Back"
msgstr ""
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr ""
#, python-brace-format
msgid "Environment type: {}"
msgstr ""
msgid "The proprietary Nvidia driver is not supported by Sway. It is likely that you will run into issues, are you okay with that?"
msgstr ""
#, fuzzy
msgid "Installed packages"
msgstr "Paket tambahan"
#, fuzzy
msgid "Add profile"
msgstr "Profil"
#, fuzzy
msgid "Edit profile"
msgstr "Profil"
#, fuzzy
msgid "Delete profile"
msgstr "Hapus interface"
#, fuzzy
msgid "Profile name: "
msgstr "Profil"
#, fuzzy
msgid "The profile name you entered is already in use. Try again"
msgstr "Nama pengguna yang Anda masukkan tidak valid. Coba lagi"
#, fuzzy
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "Ketik paket tambahan untuk diinstal (dipisahkan dengan spasi, biarkan kosong untuk dilewati): "
#, fuzzy
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "Ketik paket tambahan untuk diinstal (dipisahkan dengan spasi, biarkan kosong untuk dilewati): "
msgid "Should this profile be enabled for installation?"
msgstr ""
msgid "Create your own"
msgstr ""
#, fuzzy
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Pilih driver grafis atau biarkan kosong untuk menginstal semua driver open-source"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
msgid "Graphics driver"
msgstr ""
msgid "Greeter"
msgstr ""
msgid "Please chose which greeter to install"
msgstr ""
msgid "This is a list of pre-programmed default_profiles"
msgstr ""
#, fuzzy
msgid "Disk configuration"
msgstr "Tidak ada konfigurasi"
#, fuzzy
msgid "Profiles"
msgstr "Profil"
msgid "Finding possible directories to save configuration files ..."
msgstr ""
#, fuzzy
msgid "Select directory (or directories) for saving configuration files"
msgstr "Pilih satu atau lebih hard drive untuk digunakan dan dikonfigurasi"
#, fuzzy
msgid "Add a custom mirror"
msgstr "Tambahkan pengguna"
msgid "Change custom mirror"
msgstr ""
msgid "Delete custom mirror"
msgstr ""
#, fuzzy
msgid "Enter name (leave blank to skip): "
msgstr "Masukkan nama pengguna (kosongkan untuk melewati): "
#, fuzzy
msgid "Enter url (leave blank to skip): "
msgstr "Masukkan nama pengguna (kosongkan untuk melewati): "
#, fuzzy
msgid "Select signature check option"
msgstr "Pilih interface untuk ditambahkan"
#, fuzzy
msgid "Select signature option"
msgstr "Pilih interface untuk ditambahkan"
msgid "Custom mirrors"
msgstr ""
msgid "Defined"
msgstr ""
#, fuzzy
msgid "Save user configuration (including disk layout)"
msgstr "Simpan konfigurasi pengguna"
#, fuzzy
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr "Masukkan direktori untuk konfigurasi yang akan disimpan: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
#, fuzzy
msgid "Saving {} configuration files to {}"
msgstr "Simpan konfigurasi"
#, fuzzy
msgid "Mirrors"
msgstr "Wilayah mirror"
#, fuzzy
msgid "Mirror regions"
msgstr "Wilayah mirror"
#, fuzzy
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - Nilai maksimum : {} ( Memungkinkan {} unduhan paralel, memungkinkan {} unduhan sekaligus)"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "Input tidak valid! Coba lagi dengan input yang valid [1 untuk {}, atau 0 untuk menonaktifkan]"
msgid "Locales"
msgstr ""
#, fuzzy
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "Gunakan NetworkManager (diperlukan untuk mengkonfigurasi internet secara grafis di GNOME dan KDE)"
msgid "Total: {} / {}"
msgstr ""
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr ""
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr ""
#, fuzzy
msgid "Enter start (default: sector {}): "
msgstr "Masukkan sektor awal (persentase atau nomor blok, default: {}): "
#, fuzzy
msgid "Enter end (default: {}): "
msgstr "Masukkan sektor awal (persentase atau nomor blok, default: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr ""
msgid "Path"
msgstr ""
msgid "Manufacturer"
msgstr ""
msgid "Product"
msgstr ""
#, fuzzy, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "Konfigurasi manual"
msgid "Type"
msgstr ""
#, fuzzy
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "Opsi ini memungkinkan jumlah unduhan paralel yang dapat terjadi selama instalasi"
#, fuzzy
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"Masukkan jumlah unduhan paralel yang akan diaktifkan.\n"
" (Masukkan nilai antara 1 hingga {})\n"
"Catatan:"
#, fuzzy, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr " - Nilai maksimum : {} ( Memungkinkan {} unduhan paralel, memungkinkan {} unduhan sekaligus)"
#, fuzzy
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - Nonaktifkan/Default: 0 (Menonaktifkan pengunduhan paralel, hanya mengizinkan 1 unduhan pada satu waktu)"
#, fuzzy
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "Input tidak valid! Coba lagi dengan input yang valid [1 untuk {}, atau 0 untuk menonaktifkan]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr ""
#, fuzzy
msgid "Would you like to use unified kernel images?"
msgstr "Apakah Anda ingin menggunakan swap di zram?"
msgid "Unified kernel images"
msgstr ""
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr ""
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr ""
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr ""
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr ""
#, fuzzy
msgid "Selected profiles: "
msgstr "Hapus interface"
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr ""
#, fuzzy
msgid "Mark/Unmark as nodatacow"
msgstr "Tandai/Hapus tanda partisi sebagai terkompresi (hanya btrfs)"
#, fuzzy
msgid "Would you like to use compression or disable CoW?"
msgstr "Apakah Anda ingin menggunakan kompresi BTRFS?"
msgid "Use compression"
msgstr ""
msgid "Disable Copy-on-Write"
msgstr ""
#, fuzzy
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, python-brace-format
msgid "Configuration type: {}"
msgstr "Tidak ada konfigurasi"
#, fuzzy
msgid "LVM configuration type"
msgstr "Tidak ada konfigurasi"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr ""
#, fuzzy
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "Gunakan NetworkManager (diperlukan untuk mengkonfigurasi internet secara grafis di GNOME dan KDE)"
#, fuzzy
msgid "Select a LVM option"
msgstr "Pilih zona waktu"
#, fuzzy
msgid "Partitioning"
msgstr "Konfigurasi manual"
msgid "Logical Volume Management (LVM)"
msgstr ""
msgid "Physical volumes"
msgstr ""
msgid "Volumes"
msgstr ""
#, fuzzy
msgid "LVM volumes"
msgstr "Hapus subvolume"
#, fuzzy
msgid "LVM volumes to be encrypted"
msgstr "Pilih partisi mana yang akan dienkripsi"
#, fuzzy
msgid "Select which LVM volumes to encrypt"
msgstr "Pilih partisi mana yang akan dienkripsi"
#, fuzzy
msgid "Default layout"
msgstr "Tata letak disk"
#, fuzzy
msgid "No Encryption"
msgstr "Kata sandi enkripsi"
msgid "LUKS"
msgstr ""
msgid "LVM on LUKS"
msgstr ""
msgid "LUKS on LVM"
msgstr ""
#, fuzzy
msgid "Yes"
msgstr "ya"
msgid "No"
msgstr ""
#, fuzzy
msgid "Archinstall help"
msgstr "Bahasa Archinstall"
#, fuzzy
msgid " (default)"
msgstr "(default)"
msgid "Press Ctrl+h for help"
msgstr ""
msgid "Choose an option to give Sway access to your hardware"
msgstr ""
msgid "Seat access"
msgstr ""
#, fuzzy
msgid "Mountpoint"
msgstr "Tetapkan titik-mount untuk sebuah partisi"
msgid "HSM"
msgstr ""
#, fuzzy
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "Masukkan kata sandi enkripsi disk (biarkan kosong jika tidak ada enkripsi): "
#, fuzzy
msgid "Disk encryption password"
msgstr "Kata sandi enkripsi"
#, fuzzy
msgid "Partition - New"
msgstr "Konfigurasi manual"
msgid "Filesystem"
msgstr ""
msgid "Invalid size"
msgstr ""
#, fuzzy
msgid "Start (default: sector {}): "
msgstr "Masukkan sektor awal (persentase atau nomor blok, default: {}): "
#, fuzzy
msgid "End (default: {}): "
msgstr "Masukkan sektor awal (persentase atau nomor blok, default: {}): "
#, fuzzy
msgid "Subvolume name"
msgstr "Nama subvolume "
#, fuzzy
msgid "Disk configuration type"
msgstr "Tidak ada konfigurasi"
msgid "Root mount directory"
msgstr ""
#, fuzzy
msgid "Select language"
msgstr "Locale language"
#, fuzzy
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "Ketik paket tambahan untuk diinstal (dipisahkan dengan spasi, biarkan kosong untuk dilewati): "
msgid "Invalid download number"
msgstr ""
msgid "Number downloads"
msgstr ""
#, fuzzy
msgid "The username you entered is invalid"
msgstr "Nama pengguna yang Anda masukkan tidak valid. Coba lagi"
#, fuzzy
msgid "Username"
msgstr "Nama Pengguna : "
#, fuzzy, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "Haruskah \"{}\" menjadi superuser (sudo)?"
#, fuzzy
msgid "Interfaces"
msgstr "Tambahkan interface"
msgid "You need to enter a valid IP in IP-config mode"
msgstr ""
msgid "Modes"
msgstr ""
msgid "IP address"
msgstr ""
#, fuzzy
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "Masukkan IP gateway (router) Anda atau biarkan kosong untuk tidak menggunakan apa pun: "
msgid "Gateway address"
msgstr ""
#, fuzzy
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "Masukkan server DNS Anda (dipisahkan dengan spasi, untuk kosongkan tidak menggunakan apa pun): "
#, fuzzy
msgid "DNS servers"
msgstr "Tidak ada server audio"
#, fuzzy
msgid "Configure interfaces"
msgstr "Interface {} dikonfigurasi"
#, fuzzy
msgid "Kernel"
msgstr "Kernel"
msgid "UEFI is not detected and some options are disabled"
msgstr ""
msgid "Info"
msgstr ""
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr ""
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr ""
#, fuzzy
msgid "Main profile"
msgstr "Profil"
#, fuzzy
msgid "Confirm password"
msgstr "Ganti kata sandi"
msgid "The confirmation password did not match, please try again"
msgstr ""
#, fuzzy
msgid "Not a valid directory"
msgstr "Bukan direktori yang valid: {}"
#, fuzzy
msgid "Would you like to continue?"
msgstr "Apakah Anda ingin menggunakan kompresi BTRFS?"
msgid "Directory"
msgstr ""
#, fuzzy
msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)"
msgstr "Masukkan direktori untuk konfigurasi yang akan disimpan: "
#, fuzzy, python-brace-format
msgid "Do you want to save the configuration file(s) to {}?"
msgstr "Simpan konfigurasi"
msgid "Enabled"
msgstr ""
msgid "Disabled"
msgstr ""
#, fuzzy
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Silakan kirimkan masalah ini (dan file) ke https://github.com/archlinux/archinstall/issues"
#, fuzzy
msgid "Mirror name"
msgstr "Wilayah mirror"
msgid "Url"
msgstr ""
#, fuzzy
msgid "Select signature check"
msgstr "Pilih interface untuk ditambahkan"
#, fuzzy
msgid "Select execution mode"
msgstr "Pilih tindakan untuk '{}'"
msgid "Press ? for help"
msgstr ""
msgid "Choose an option to give Hyprland access to your hardware"
msgstr ""
#, fuzzy
msgid "Additional repositories"
msgstr "Repositori opsional"
msgid "NTP"
msgstr ""
msgid "Swap on zram"
msgstr ""
msgid "Name"
msgstr ""
#, fuzzy
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, python-brace-format
msgid "Size (default: {}): "
msgstr "Masukkan sektor awal (persentase atau nomor blok, default: {}): "
#, fuzzy
msgid "HSM device"
msgstr "Perangkat"
msgid "Some packages could not be found in the repository"
msgstr ""
#, fuzzy
msgid "User"
msgstr "Nama Pengguna : "
msgid "The specified configuration will be applied"
msgstr ""
msgid "Wipe"
msgstr ""
#, fuzzy
msgid "Mark/Unmark as XBOOTLDR"
msgstr "Tandai/Hapus tanda partisi sebagai terkompresi (hanya btrfs)"
#, fuzzy
msgid "Loading packages..."
msgstr "Paket tambahan"
msgid "Select any packages from the below list that should be installed additionally"
msgstr ""
#, fuzzy
msgid "Add a custom repository"
msgstr "Tambahkan pengguna"
msgid "Change custom repository"
msgstr ""
msgid "Delete custom repository"
msgstr ""
#, fuzzy
msgid "Repository name"
msgstr "Wilayah mirror"
#, fuzzy
msgid "Add a custom server"
msgstr "Tambahkan pengguna"
#, fuzzy
msgid "Change custom server"
msgstr "Pilih server audio"
#, fuzzy
msgid "Delete custom server"
msgstr "Hapus pengguna"
msgid "Server url"
msgstr ""
#, fuzzy
msgid "Select regions"
msgstr "Pilih interface untuk ditambahkan"
#, fuzzy
msgid "Add custom servers"
msgstr "Tambahkan pengguna"
#, fuzzy
msgid "Add custom repository"
msgstr "Tambahkan pengguna"
#, fuzzy
msgid "Loading mirror regions..."
msgstr "Wilayah mirror"
#, fuzzy
msgid "Mirrors and repositories"
msgstr "Repositori opsional"
#, fuzzy
msgid "Selected mirror regions"
msgstr "Wilayah mirror"
#, fuzzy
msgid "Custom servers"
msgstr "Tidak ada server audio"
#, fuzzy
msgid "Custom repositories"
msgstr "Repositori opsional"
msgid "Only ASCII characters are supported"
msgstr ""
msgid "Show help"
msgstr ""
msgid "Exit help"
msgstr ""
msgid "Preview scroll up"
msgstr ""
msgid "Preview scroll down"
msgstr ""
msgid "Move up"
msgstr ""
msgid "Move down"
msgstr ""
msgid "Move right"
msgstr ""
msgid "Move left"
msgstr ""
msgid "Jump to entry"
msgstr ""
msgid "Skip selection (if available)"
msgstr ""
msgid "Reset selection (if available)"
msgstr ""
#, fuzzy
msgid "Select on single select"
msgstr "Pilih interface untuk ditambahkan"
#, fuzzy
msgid "Select on multi select"
msgstr "Pilih zona waktu"
msgid "Reset"
msgstr ""
#, fuzzy
msgid "Skip selection menu"
msgstr "Pilih tindakan untuk '{}'"
msgid "Start search mode"
msgstr ""
msgid "Exit search mode"
msgstr ""
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid "Choose an option to give labwc access to your hardware"
msgstr ""
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid "Choose an option to give niri access to your hardware"
msgstr ""
#, fuzzy
msgid "Mark/Unmark as ESP"
msgstr "Tandai/Hapus tanda partisi sebagai terkompresi (hanya btrfs)"
msgid "Package group:"
msgstr ""
#, fuzzy
msgid "Exit archinstall"
msgstr "Bahasa Archinstall"
msgid "Reboot system"
msgstr ""
#, fuzzy
msgid "chroot into installation for post-installation configurations"
msgstr "Apakah Anda ingin melakukan chroot ke instalasi yang baru dibuat dan melakukan konfigurasi pasca-instalasi?"
msgid "Installation completed"
msgstr ""
#, fuzzy
msgid "What would you like to do next?"
msgstr "Apakah Anda ingin menggunakan kompresi BTRFS?"
#, 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 \"{}\""
#, fuzzy
msgid "Incorrect credentials file decryption password"
msgstr "Kata sandi enkripsi"
#, fuzzy
msgid "Incorrect password"
msgstr "Kata sandi root"
#, fuzzy
msgid "Credentials file decryption password"
msgstr "Kata sandi enkripsi"
#, fuzzy
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr "Simpan konfigurasi"
#, fuzzy
msgid "Credentials file encryption password"
msgstr "Kata sandi enkripsi"
#, 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 "Print service"
msgstr ""
#, fuzzy
msgid "Would you like to configure the print service?"
msgstr "Apakah Anda ingin menggunakan kompresi BTRFS?"
msgid "Power management"
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 "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 ""
msgid "Starting device modifications in "
msgstr ""
#, fuzzy
msgid "No network connection found"
msgstr "Tidak ada konfigurasi jaringan"
#, fuzzy
msgid "Would you like to connect to a Wifi?"
msgstr "Apakah Anda ingin menggunakan kompresi BTRFS?"
#, fuzzy
msgid "No wifi interface found"
msgstr "Interface {} dikonfigurasi"
#, fuzzy
msgid "Select wifi network to connect to"
msgstr "Pilih satu interface jaringan untuk dikonfigurasi"
msgid "Scanning wifi networks..."
msgstr ""
#, fuzzy
msgid "No wifi networks found"
msgstr "Tidak ada konfigurasi jaringan"
msgid "Failed setting up wifi"
msgstr ""
#, fuzzy
msgid "Enter wifi password"
msgstr "Masukan kata sandi: "
msgid "Ok"
msgstr ""
msgid "Removable"
msgstr ""
msgid "Install to removable location"
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr ""
msgid "Will install to standard location with NVRAM entry"
msgstr ""
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr ""
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr ""
msgid "USB drives or other portable external media."
msgstr ""
msgid "Systems where you want the disk to be bootable on any computer."
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr ""
msgid "Will install to custom location with NVRAM entry"
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr ""
msgid "most Apple Macs, many laptops..."
msgstr ""
#, fuzzy
msgid "Language"
msgstr "Locale language"
msgid "Compression algorithm"
msgstr ""
#, fuzzy
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Hanya paket seperti base, base-devel, linux, linux-firmware, efibootmgr dan paket profil opsional yang diinstal."
#, fuzzy
msgid "Select zram compression algorithm:"
msgstr "Pilih titik mount :"
msgid "Use Network Manager (default backend)"
msgstr ""
msgid "Use Network Manager (iwd backend)"
msgstr ""
================================================
FILE: archinstall/locales/it/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2026-01-20 19:23+0100\n"
"Last-Translator: Van Matten\n"
"Language-Team: Alessio Cuccovillo , Van Matten\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.8\n"
"X-Poedit-Basepath: ../..\n"
"X-Poedit-SearchPath-0: base.pot\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] Un file di log è stato creato qui: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Invia questo problema (e il file) a https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "Vuoi davvero interrompere?"
msgid "And one more time for verification: "
msgstr "E ancora una volta per verifica: "
msgid "Would you like to use swap on zram?"
msgstr "Desideri usare lo swap su zram?"
msgid "Desired hostname for the installation: "
msgstr "Nome host desiderato per l'installazione: "
msgid "Username for required superuser with sudo privileges: "
msgstr "Nome utente per il superuser richiesto con privilegi sudo: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "Eventuali utenti aggiuntivi da installare (lascia vuoto per nessun utente): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "Questo utente dovrebbe essere un superuser (sudoer)?"
msgid "Select a timezone"
msgstr "Seleziona un fuso orario"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "Desideri usare GRUB come bootloader invece di systemd-boot?"
msgid "Choose a bootloader"
msgstr "Scegli un bootloader"
msgid "Choose an audio server"
msgstr "Scegli un server audio"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Vengono installati solo pacchetti come base, base-devel, linux, linux-firmware, efibootmgr e pacchetti di profilo opzionali."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr "Nota: base-devel non è più installato di default. Aggiungilo qui se ti servono i build tools."
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
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 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"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "Usa NetworkManager (necessario per configurare graficamente Internet in GNOME e KDE)"
msgid "Select one network interface to configure"
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): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "Inserisci l'indirizzo IP del tuo gateway (router) o lascia vuoto per nessuno: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "Inserisci i tuoi server DNS (separati da spazi, vuoto per nessuno): "
msgid "Select which filesystem your main partition should use"
msgstr "Seleziona quale filesystem dovrebbe usare la tua partizione principale"
msgid "Current partition layout"
msgstr "Layout della partizione corrente"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"Seleziona cosa fare con\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "Inserisci un tipo di filesystem desiderato per la partizione"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "Inserisci la posizione iniziale (in unità separate: s, GB, %, ecc.; impostazione predefinita: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "Inserisci la posizione finale (in unità separate: s, GB, %, ecc.; es: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} contiene partizioni in coda, questo le rimuoverà, sei sicuro?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"Seleziona per indice quali partizioni eliminare"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"Seleziona per indice quale partizione montare dove"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * I punti di mount della partizione sono relativi all'interno dell'installazione, per esempio l'avvio sarebbe /boot."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "Seleziona dove montare la partizione (lascia vuoto per rimuovere il punto di mount): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"Seleziona quale partizione mascherare per la formattazione"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"Seleziona quale partizione contrassegnare come crittografata"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"Seleziona quale partizione contrassegnare come avviabile"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"Seleziona su quale partizione impostare un filesystem"
msgid "Enter a desired filesystem type for the partition: "
msgstr "Inserisci un tipo di filesystem desiderato per la partizione: "
msgid "Archinstall language"
msgstr "Lingua di Archinstall"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "Cancella tutte le unità selezionate e utilizza un layout di partizione predefinito ottimale"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "Seleziona cosa fare con ogni singola unità (seguito dall'utilizzo della partizione)"
msgid "Select what you wish to do with the selected block devices"
msgstr "Seleziona cosa desideri fare con i dispositivi a blocchi selezionati"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "Questo è un elenco di profili pre-programmati, che potrebbero semplificare l'installazione di elementi come gli ambienti desktop"
msgid "Select keyboard layout"
msgstr "Seleziona il layout della tastiera"
msgid "Select one of the regions to download packages from"
msgstr "Seleziona una delle regioni da cui scaricare i pacchetti"
msgid "Select one or more hard drives to use and configure"
msgstr "Seleziona uno o più dischi rigidi da utilizzare e configurare"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "Per la migliore compatibilità con il tuo hardware AMD, potresti voler utilizzare tutte le opzioni open source o AMD / ATI."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "Per la migliore compatibilità con il tuo hardware Intel, potresti voler utilizzare tutte le opzioni open source o Intel.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "Per la migliore compatibilità con il tuo hardware Nvidia, potresti voler utilizzare il driver proprietario Nvidia.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Seleziona un driver grafico o lascia vuoto per installare tutti i driver open source"
msgid "All open-source (default)"
msgstr "Tutti gli open source (predefinito)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "Scegli quali kernel usare o lascia vuoto per il predefinito \"{}\""
msgid "Choose which locale language to use"
msgstr "Scegli quale lingua locale utilizzare"
msgid "Choose which locale encoding to use"
msgstr "Scegli quale codifica locale utilizzare"
msgid "Select one of the values shown below: "
msgstr "Seleziona uno dei valori mostrati di seguito: "
msgid "Select one or more of the options below: "
msgstr "Seleziona una o più delle seguenti opzioni "
msgid "Adding partition...."
msgstr "Aggiungendo la partizione...."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "Devi inserire un tipo di filesystem valido per continuare. Vedi `man parted` per tipi di filesystem validi."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "Errore: l'elenco dei profili sull'URL \"{}\" ha prodotto:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "Errore: impossibile decodificare il risultato \"{}\" come JSON:"
msgid "Keyboard layout"
msgstr "Layout della tastiera"
msgid "Mirror region"
msgstr "Regione dei mirror"
msgid "Locale language"
msgstr "Lingua locale"
msgid "Locale encoding"
msgstr "Codifica locale"
msgid "Drive(s)"
msgstr "Dischi"
msgid "Disk layout"
msgstr "Layout del disco"
msgid "Encryption password"
msgstr "Password di crittografia"
msgid "Swap"
msgstr "Swap"
msgid "Bootloader"
msgstr "Bootloader"
msgid "Root password"
msgstr "Password di root"
msgid "Superuser account"
msgstr "Account superuser"
msgid "User account"
msgstr "Account utente"
msgid "Profile"
msgstr "Profilo"
msgid "Audio"
msgstr "Audio"
msgid "Kernels"
msgstr "Kernel"
msgid "Additional packages"
msgstr "Pacchetti aggiuntivi"
msgid "Network configuration"
msgstr "Configurazione di rete"
msgid "Automatic time sync (NTP)"
msgstr "Sincronizzazione automatica dell'ora (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "Installa ({} configurazioni mancanti)"
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 ""
"Hai deciso di saltare la selezione del disco rigido\n"
"e utilizzerà qualsiasi configurazione dell'unità montata su {} (sperimentale)\n"
"ATTENZIONE: Archinstall non verificherà l'idoneità di questa configurazione\n"
"Vuoi continuare?"
msgid "Re-using partition instance: {}"
msgstr "Riutilizzo dell'istanza di partizione: {}"
msgid "Create a new partition"
msgstr "Crea una nuova partizione"
msgid "Delete a partition"
msgstr "Elimina una partizione"
msgid "Clear/Delete all partitions"
msgstr "Cancella/Elimina tutte le partizioni"
msgid "Assign mount-point for a partition"
msgstr "Assegna punto di mount per una partizione"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "Seleziona/Deseleziona una partizione da formattare (cancella i dati)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "Seleziona/Deseleziona una partizione come crittografata"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "Seleziona/Deseleziona una partizione come avviabile (automatico per /boot)"
msgid "Set desired filesystem for a partition"
msgstr "Imposta il filesystem desiderato per una partizione"
msgid "Abort"
msgstr "Interrompi"
msgid "Hostname"
msgstr "Nome host"
msgid "Not configured, unavailable unless setup manually"
msgstr "Non configurato, non disponibile a meno che non venga configurato manualmente"
msgid "Timezone"
msgstr "Fuso orario"
msgid "Set/Modify the below options"
msgstr "Imposta/Modifica le seguenti opzioni"
msgid "Install"
msgstr "Installa"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"Usa ESC per saltare\n"
"\n"
msgid "Suggest partition layout"
msgstr "Suggerisci il layout della partizione"
msgid "Enter a password: "
msgstr "Inserisci una password: "
msgid "Enter a encryption password for {}"
msgstr "Inserisci una password di crittografia per {}"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "Inserisci la password di crittografia del disco (lasciare vuoto per nessuna crittografia): "
msgid "Create a required super-user with sudo privileges: "
msgstr "Crea un superuser richiesto con privilegi sudo: "
msgid "Enter root password (leave blank to disable root): "
msgstr "Inserisci la password di root (lascia vuoto per disabilitare il root): "
msgid "Password for user \"{}\": "
msgstr "Password per l'utente \"{}\": "
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 "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"
"For more information, please check the Arch wiki"
msgstr ""
"Per il funzionamento di NTP potrebbero essere necessari l'ora dell'hardware e altri passaggi successivi alla configurazione.\n"
"Per ulteriori informazioni, consultare Arch Wiki"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "Inserisci un nome utente per creare un utente aggiuntivo (lascia vuoto per saltare): "
msgid "Use ESC to skip\n"
msgstr "Usa ESC per saltare\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
" Scegli un oggetto dall'elenco e seleziona una delle azioni disponibili per l'esecuzione"
msgid "Cancel"
msgstr "Annulla"
msgid "Confirm and exit"
msgstr "Conferma ed esci"
msgid "Add"
msgstr "Aggiungi"
msgid "Copy"
msgstr "Copia"
msgid "Edit"
msgstr "Modifica"
msgid "Delete"
msgstr "Elimina"
msgid "Select an action for '{}'"
msgstr "Seleziona un'azione per '{}'"
msgid "Copy to new key:"
msgstr "Copia su nuova chiave:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "Tipo nic sconosciuto: {}. I valori possibili sono {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"Questa è la configurazione scelta:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman è già in esecuzione, in attesa di un massimo di 10 minuti per la sua terminazione."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "Il lock di pacman preesistente non è mai terminato. Rimuovi ogni sessione pacman esistente prima di usare archinstall."
msgid "Choose which optional additional repositories to enable"
msgstr "Scegli quali repository aggiuntivi facoltativi abilitare"
msgid "Add a user"
msgstr "Aggiungi un utente"
msgid "Change password"
msgstr "Cambia password"
msgid "Promote/Demote user"
msgstr "Promuovi/Retrocedi un utente"
msgid "Delete User"
msgstr "Elimina utente"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"Definisci un nuovo utente\n"
msgid "User Name : "
msgstr "Nome utente : "
msgid "Should {} be a superuser (sudoer)?"
msgstr "{} dovrebbe essere un superuser (sudoer)?"
msgid "Define users with sudo privilege: "
msgstr "Definisci utenti con privilegi sudo: "
msgid "No network configuration"
msgstr "Nessuna configurazione di rete"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Imposta i sottovolumi desiderati su una partizione btrfs"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"Seleziona su quale partizione impostare i sottovolumi"
msgid "Manage btrfs subvolumes for current partition"
msgstr "Gestisci i sottovolumi btrfs per la partizione corrente"
msgid "No configuration"
msgstr "Nessuna configurazione"
msgid "Save user configuration"
msgstr "Salva configurazione utente"
msgid "Save user credentials"
msgstr "Salva le credenziali dell'utente"
msgid "Save disk layout"
msgstr "Salva layout del disco"
msgid "Save all"
msgstr "Salva tutto"
msgid "Choose which configuration to save"
msgstr "Scegli quale configurazione salvare"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "Inserisci una cartella in cui salvare le configurazioni: "
msgid "Not a valid directory: {}"
msgstr "Cartella non valida: {}"
msgid "The password you are using seems to be weak,"
msgstr "La password che stai utilizzando sembra essere debole,"
msgid "are you sure you want to use it?"
msgstr "sei sicuro di volerla usare?"
msgid "Optional repositories"
msgstr "Repository opzionali"
msgid "Save configuration"
msgstr "Salva configurazione"
msgid "Missing configurations:\n"
msgstr "Configurazioni mancanti:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "È necessario specificare la password di root o almeno 1 superuser"
msgid "Manage superuser accounts: "
msgstr "Gestisci account superuser: "
msgid "Manage ordinary user accounts: "
msgstr "Gestisci gli account utente ordinari: "
msgid " Subvolume :{:16}"
msgstr " Sottovolume :{:16}"
msgid " mounted at {:16}"
msgstr " montato su {:16}"
msgid " with option {}"
msgstr " con opzione {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
" Riempi i valori desiderati per un nuovo sottovolume \n"
msgid "Subvolume name "
msgstr "Nome del sottovolume "
msgid "Subvolume mountpoint"
msgstr "Punto di mount del sottovolume"
msgid "Subvolume options"
msgstr "Opzioni del sottovolume"
msgid "Save"
msgstr "Salva"
msgid "Subvolume name :"
msgstr "Nome del sottovolume :"
msgid "Select a mount point :"
msgstr "Seleziona un punto di mount:"
msgid "Select the desired subvolume options "
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 usare i sottovolumi BTRFS con una struttura predefinita?"
msgid "Would you like to use BTRFS compression?"
msgstr "Desideri usare la compressione BTRFS?"
msgid "Would you like to create a separate partition for /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"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "Capacità minima per la partizione /home: {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Capacità minima per la partizione Arch Linux: {}GB"
msgid "Continue"
msgstr "Continua"
msgid "yes"
msgstr "sì"
msgid "no"
msgstr "no"
msgid "set: {}"
msgstr "imposta: {}"
msgid "Manual configuration setting must be a list"
msgstr "L'impostazione della configurazione manuale deve essere un elenco"
msgid "No iface specified for manual configuration"
msgstr "Nessuna iface specificata per la configurazione manuale"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "La configurazione manuale del nic senza DHCP automatico richiede un indirizzo IP"
msgid "Add interface"
msgstr "Aggiungi interfaccia"
msgid "Edit interface"
msgstr "Modifica interfaccia"
msgid "Delete interface"
msgstr "Elimina interfaccia"
msgid "Select interface to add"
msgstr "Seleziona l'interfaccia da aggiungere"
msgid "Manual configuration"
msgstr "Configurazione manuale"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "Seleziona/Deseleziona una partizione come compressa (solo btrfs)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "La password che stai utilizzando sembra essere debole, sei sicuro di volerla usare?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "Fornisce una selezione di ambienti desktop e gestori di finestre, per esempio gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "Seleziona l'ambiente desktop desiderato"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "Un'installazione molto semplice che ti consente di personalizzare Arch Linux come meglio credi."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "Fornisce una selezione di vari pacchetti server da installare e abilitare, per esempio httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "Scegli quali server installare, se nessuno verrà eseguita un'installazione minima"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "Installa un sistema minimo oltre a xorg e driver grafici."
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 "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?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "Seleziona uno o più dischi rigidi da utilizzare e configurare\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "Qualsiasi modifica all'impostazione esistente ripristinerà il layout del disco!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "Se si ripristina la selezione del disco rigido, verrà ripristinato anche il layout del disco corrente. Sei sicuro?"
msgid "Save and exit"
msgstr "Salva ed esci"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"contiene partizioni in coda, questo le rimuoverà, sei sicuro?"
msgid "No audio server"
msgstr "Nessun server audio"
msgid "(default)"
msgstr "(predefinito)"
msgid "Use ESC to skip"
msgstr "Usa ESC per saltare"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"Usa CTRL+C per reimpostare la selezione corrente\n"
"\n"
msgid "Copy to: "
msgstr "Copia su: "
msgid "Edit: "
msgstr "Modifica: "
msgid "Key: "
msgstr "Chiave: "
msgid "Edit {}: "
msgstr "Modifica {}: "
msgid "Add: "
msgstr "Aggiungi: "
msgid "Value: "
msgstr "Valore: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "Puoi saltare la selezione e il partizionamento di un'unità e utilizzare qualsiasi configurazione di unità sia montata in /mnt (sperimentale)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "Seleziona uno dei dischi o salta e usa /mnt come predefinito"
msgid "Select which partitions to mark for formatting:"
msgstr "Seleziona quali partizioni contrassegnare per la formattazione:"
msgid "Use HSM to unlock encrypted drive"
msgstr "Utilizza HSM per sbloccare l'unità crittografata"
msgid "Device"
msgstr "Dispositivo"
msgid "Size"
msgstr "Dimensione"
msgid "Free space"
msgstr "Spazio libero"
msgid "Bus-type"
msgstr "Tipo di bus"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "È necessario specificare la password di root o almeno 1 utente con privilegi sudo"
msgid "Enter username (leave blank to skip): "
msgstr "Inserisci il nome utente (lascia vuoto per saltare): "
msgid "The username you entered is invalid. Try again"
msgstr "Il nome utente inserito non è valido. Riprova"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "\"{}\" dovrebbe essere un superuser (sudo)?"
msgid "Select which partitions to encrypt"
msgstr "Seleziona le partizioni da crittografare"
msgid "very weak"
msgstr "molto debole"
msgid "weak"
msgstr "debole"
msgid "moderate"
msgstr "discreta"
msgid "strong"
msgstr "forte"
msgid "Add subvolume"
msgstr "Aggiungi sottovolume"
msgid "Edit subvolume"
msgstr "Modifica sottovolume"
msgid "Delete subvolume"
msgstr "Elimina sottovolume"
msgid "Configured {} interfaces"
msgstr "Interfacce {} configurate"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "Questa opzione consente di impostare il numero di download paralleli che possono avvenire durante l'installazione"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"Inserisci il numero di download paralleli da abilitare.\n"
" (Inserisci un valore compreso tra 1 e {})\n"
"Nota:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - Valore massimo : {} ( Consente {} download parallelo, consente {} download alla volta )"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - Valore minimo : 1 ( Consente 1 download parallelo, consente 2 download alla volta )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - Disabilita/Predefinito : 0 ( Disabilita il download parallelo, consente solo 1 download alla volta )"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "Input non valido! Riprova con un input valido [da 1 a {max_downloads}, o 0 per disabilitare]."
msgid "Parallel Downloads"
msgstr "Download paralleli"
msgid "ESC to skip"
msgstr "ESC per saltare"
msgid "CTRL+C to reset"
msgstr "CTRL+C per resettare"
msgid "TAB to select"
msgstr "TAB per selezionare"
msgid "[Default value: 0] > "
msgstr "[Valore predefinito: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "Per poter utilizzare questa traduzione, installa manualmente un font che supporti la lingua."
msgid "The font should be stored as {}"
msgstr "Il carattere dovrebbe essere memorizzato come {}"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Archinstall richiede i privilegi di root per essere eseguito. Vedi --help per ulteriori informazioni."
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: {}"
msgid "Select one or more devices to use and configure"
msgstr "Seleziona uno o più dispositivi da utilizzare e configurare"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "Se si ripristina la selezione del disco rigido, verrà ripristinato anche il layout del disco corrente. Sei sicuro?"
msgid "Existing Partitions"
msgstr "Partizioni esistenti"
msgid "Select a partitioning option"
msgstr "Selezione opzione di partizionamento"
msgid "Enter the root directory of the mounted devices: "
msgstr "Inserisci la cartella 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"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "Questo è un elenco di profili pre-programmati, che potrebbero semplificare l'installazione di elementi come gli ambienti desktop"
msgid "Current profile selection"
msgstr "Selezione profilo corrente"
msgid "Remove all newly added partitions"
msgstr "Elimina tutte le partizioni appena aggiunte"
msgid "Assign mountpoint"
msgstr "Assegna punto di mount"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "Seleziona/Deseleziona come da formattare (cancella i dati)"
msgid "Mark/Unmark as bootable"
msgstr "Contrassegna/Deseleziona come avviabile"
msgid "Change filesystem"
msgstr "Cambia filesystem"
msgid "Mark/Unmark as compressed"
msgstr "Seleziona/Deseleziona come compressa"
msgid "Set subvolumes"
msgstr "Imposta sottovolumi"
msgid "Delete partition"
msgstr "Elimina partizione"
msgid "Partition"
msgstr "Partizione"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "Questa partizione è attualmente crittografata, per formattarla è necessario specificare un filesystem"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "I punti di mount della partizione sono relativi all'interno dell'installazione, l'avvio sarebbe per esempio /boot."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "Se il punto di mount /boot è impostato, anche la partizione sarà contrassegnata come avviabile."
msgid "Mountpoint: "
msgstr "Punto di mount: "
msgid "Current free sectors on device {}:"
msgstr "Settori attualmente liberi sul dispositivo {}:"
msgid "Total sectors: {}"
msgstr "Settori totali: {}"
msgid "Enter the start sector (default: {}): "
msgstr "Inserisci il settore iniziale (predefinito: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
msgstr "Inserisci il settore finale della partizione (percentuale o numero di blocco, predefinito: {}): "
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: {}"
msgid "Encryption type"
msgstr "Tipo di crittografia"
msgid "Iteration time"
msgstr "Tempo di iterazione"
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr "Inserisci il tempo di iterazione per la crittografia LUKS (in millisecondi)"
msgid "Higher values increase security but slow down boot time"
msgstr "Valori alti aumentano la sicurezza ma rallentano l'avvio"
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr "Predefinito: 10000 ms, Intervallo consigliato: 1000-60000"
msgid "Iteration time cannot be empty"
msgstr "Il tempo di iterazione non può essere vuoto"
msgid "Iteration time must be at least 100ms"
msgstr "Il tempo di iterazione deve essere almeno 100 ms"
msgid "Iteration time must be at most 120000ms"
msgstr "Il tempo di iterazione deve essere al massimo 120000 ms"
msgid "Please enter a valid number"
msgstr "Inserisci un numero valido"
msgid "Partitions"
msgstr "Partizioni"
msgid "No HSM devices available"
msgstr "Nessun dispositivo HSM disponibile"
msgid "Partitions to be encrypted"
msgstr "Partizioni da crittografare"
msgid "Select disk encryption option"
msgstr "Selezione opzione per crittografia disco"
msgid "Select a FIDO2 device to use for HSM"
msgstr "Seleziona un dispositivo FIDO2 da utilizzare per HSM"
msgid "Use a best-effort default partition layout"
msgstr "Utilizza un layout di partizione predefinito ottimale"
msgid "Manual Partitioning"
msgstr "Partizionamento manuale"
msgid "Pre-mounted configuration"
msgstr "Configurazione pre caricata"
msgid "Unknown"
msgstr "Sconosciuto"
msgid "Partition encryption"
msgstr "Crittografia partizione"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! Formattazione {} in "
msgid "← Back"
msgstr "← Indietro"
msgid "Disk encryption"
msgstr "Crittografia disco"
msgid "Configuration"
msgstr "Configurazione"
msgid "Password"
msgstr "Password"
msgid "All settings will be reset, are you sure?"
msgstr "Tutte le impostazioni verranno resettate, sei sicuro?"
msgid "Back"
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: {}"
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 "Il driver proprietario Nvidia non è supportato da Sway. È probabile che incontrerai dei problemi, ti va bene?"
msgid "Installed packages"
msgstr "Pacchetti installati"
msgid "Add profile"
msgstr "Aggiungi profilo"
msgid "Edit profile"
msgstr "Modifica profilo"
msgid "Delete profile"
msgstr "Elimina profilo"
msgid "Profile name: "
msgstr "Nome profilo: "
msgid "The profile name you entered is already in use. Try again"
msgstr "Il nome utente inserito non è già in uso. Riprova"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "Pacchetti da installare con questo profilo (separati da spazi, lascia vuoto per saltare): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "Servizi da abilitare con questo profilo (separati da spazi, lascia vuoto per saltare): "
msgid "Should this profile be enabled for installation?"
msgstr "Questo profilo dovrebbe essere abilitato per l’installazione?"
msgid "Create your own"
msgstr "Crea il tuo"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"Seleziona un driver grafico o lascia vuoto per installare tutti i driver open source"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway ha bisogno dell’accesso al tuo posto (insieme di dispositivi hardware, ad esempio tastiera, mouse, ecc.)"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Scegli un’opzione per concedere a Sway l’accesso al tuo hardware"
msgid "Graphics driver"
msgstr "Driver grafici"
msgid "Greeter"
msgstr "Programma di benvenuto"
msgid "Please chose which greeter to install"
msgstr "Scegli quale programma di benvenuto installare"
msgid "This is a list of pre-programmed default_profiles"
msgstr "Questo è un elenco di default_profiles preprogrammati"
msgid "Disk configuration"
msgstr "Configurazione disco"
msgid "Profiles"
msgstr "Profili"
msgid "Finding possible directories to save configuration files ..."
msgstr "Ricerca di possibili cartelle in cui salvare i file di configurazione ..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "Seleziona una o più cartelle in cui salvare i file di configurazione"
msgid "Add a custom mirror"
msgstr "Aggiungi un mirror personalizzato"
msgid "Change custom mirror"
msgstr "Cambia mirror personalizzato"
msgid "Delete custom mirror"
msgstr "Elimina mirror personalizzato"
msgid "Enter name (leave blank to skip): "
msgstr "Inserisci il nome (lascia vuoto per saltare): "
msgid "Enter url (leave blank to skip): "
msgstr "Inserisci url (lascia vuoto per saltare): "
msgid "Select signature check option"
msgstr "Seleziona opzione di controllo della firma"
msgid "Select signature option"
msgstr "Seleziona opzioni di firma"
msgid "Custom mirrors"
msgstr "Mirror personalizzati"
msgid "Defined"
msgstr "Definito"
msgid "Save user configuration (including disk layout)"
msgstr "Salva configurazione utente (incluso layout del disco)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"Inserisci una cartella in cui salvare le configurazioni (completamento col tasto tab abilitato)\n"
"Cartella di salvataggio: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"Vuoi salvare i file di configurazione {} nel seguente percorso?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "Salva file di configurazione {} in {}"
msgid "Mirrors"
msgstr "Mirror"
msgid "Mirror regions"
msgstr "Regione dei mirror"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - Valore massimo : {} ( Consente {} download paralleli, consente {max_downloads+1} downloads alla volta )"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "Input non valido! Riprova con un input valido [da 1 a {}, o 0 per disabilitare]."
msgid "Locales"
msgstr "Localizzazione"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "Usa NetworkManager (necessario per configurare graficamente Internet in GNOME e KDE)"
msgid "Total: {} / {}"
msgstr "Totale: {} / {}"
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 "If no unit is provided, the value is interpreted as sectors"
msgstr "Se non viene fornita alcuna unità, il valore viene interpretato come settori"
msgid "Enter start (default: sector {}): "
msgstr "Inserisci inizio (predefinito: {}): "
msgid "Enter end (default: {}): "
msgstr "Inserisci fine (predefinito: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "Impossibile determinare i dispositivi fido2. libfido2 è installato?"
msgid "Path"
msgstr "Percorso"
msgid "Manufacturer"
msgstr "Costruttore"
msgid "Product"
msgstr "Prodotto"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "Configurazione non valida: {error}"
msgid "Type"
msgstr "Tipo"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "Questa opzione consente di impostare il numero di download paralleli che possono avvenire durante l'installazione"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"Inserisci il numero di download paralleli da abilitare.\n"
"\n"
"Nota:\n"
#, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr " - Valore massimo raccomandato : {} ( Consente {} download paralleli)"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - Disabilita/Predefinito : 0 ( Disabilita il download parallelo, consente solo 1 download alla volta )\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "Input non valido! Riprova con un input valido [0 per disabilitare]."
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Hyprland ha bisogno dell’accesso al tuo posto (insieme di dispositivi hardware, ad esempio tastiera, mouse, ecc.)"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Scegli un’opzione per concedere a Hyprland l'accesso al tuo hardware a Hyprland"
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 "Desideri usare le immagini kernel unificate?"
msgid "Unified kernel images"
msgstr "Immagini kernel unificate"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "In attesa del completamento della sincronizzazione dell’orario (timedatectl show)"
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "La sincronizzazione dell’orario non si sta completando, mentre aspetti leggi la documentazione alla ricerca di una soluzione: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "Salto l’attesa della sincronizzazione automatica dell’ora (potrebbe causare problemi se l’orario non è sincronizzato durante l’installazione)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "In attesa che la sincronizzazione del portachiavi di Arch Linux (archlinux-keyring-wkd-sync) sia completa."
msgid "Selected profiles: "
msgstr "Profili selezionati: "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "La sincronizzazione dell’orario non si sta completando, in attesa, leggi la documentazione alla ricerca di una soluzione: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "Seleziona/Deseleziona come nodatacow"
msgid "Would you like to use compression or disable CoW?"
msgstr "Desideri usare la compressione o disabilitare CoW?"
msgid "Use compression"
msgstr "Usa la compressione"
msgid "Disable Copy-on-Write"
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: {}"
msgid "LVM configuration type"
msgstr "Tipo configurazione LVM"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "La crittografia del disco LVM con più di 2 partizioni non è supportata al momento"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "Usa NetworkManager (necessario per configurare graficamente Internet in GNOME e KDE Plasma)"
msgid "Select a LVM option"
msgstr "Seleziona una opzione LVM"
msgid "Partitioning"
msgstr "Partizionamento in corso"
msgid "Logical Volume Management (LVM)"
msgstr "Logical Volume Management (LVM)"
msgid "Physical volumes"
msgstr "Volumi fisici"
msgid "Volumes"
msgstr "Volumi"
msgid "LVM volumes"
msgstr "Volumi LVM"
msgid "LVM volumes to be encrypted"
msgstr "Volumi LVM da crittografare"
msgid "Select which LVM volumes to encrypt"
msgstr "Seleziona volumi LVM da crittografare"
msgid "Default layout"
msgstr "Layout predefinito"
msgid "No Encryption"
msgstr "Nessuna crittografia"
msgid "LUKS"
msgstr "LUKS"
msgid "LVM on LUKS"
msgstr "LVM su LUKS"
msgid "LUKS on LVM"
msgstr "LUKS su LVM"
msgid "Yes"
msgstr "Sì"
msgid "No"
msgstr "No"
msgid "Archinstall help"
msgstr "Aiuto di Archinstall"
msgid " (default)"
msgstr " (predefinito)"
msgid "Press Ctrl+h for help"
msgstr "Premi CTRL+H per aiuto"
msgid "Choose an option to give Sway access to your hardware"
msgstr "Scegli un’opzione per concedere a Sway l’accesso al tuo hardware"
msgid "Seat access"
msgstr "Accesso al posto"
msgid "Mountpoint"
msgstr "Punto di mount"
msgid "HSM"
msgstr "HSM"
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "Inserisci la password di crittografia del disco (lascia vuoto per nessuna crittografia)"
msgid "Disk encryption password"
msgstr "Password di crittografia del disco"
msgid "Partition - New"
msgstr "Partizione - Nuova"
msgid "Filesystem"
msgstr "Filesystem"
msgid "Invalid size"
msgstr "Dimensione non valida"
msgid "Start (default: sector {}): "
msgstr "Inizio (predefinito: settore{}): "
msgid "End (default: {}): "
msgstr "Fine (predefinito: {}): "
msgid "Subvolume name"
msgstr "Nome del sottovolume"
msgid "Disk configuration type"
msgstr "Tipo configurazione disco"
msgid "Root mount directory"
msgstr "Cartella di montaggio del root"
msgid "Select language"
msgstr "Seleziona lingua"
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "Scrivi i pacchetti aggiuntivi da installare (separati da spazi, lascia vuoto per saltare)"
msgid "Invalid download number"
msgstr "Numero di download non valido"
msgid "Number downloads"
msgstr "Numero di download"
msgid "The username you entered is invalid"
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"
msgid "Interfaces"
msgstr "Interfacce"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "Devi inserire un IP valido nella modalità IP-config"
msgid "Modes"
msgstr "Modalità"
msgid "IP address"
msgstr "Indirizzo IP"
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "Inserisci l'indirizzo IP del tuo gateway (router) o lascia vuoto per nessuno"
msgid "Gateway address"
msgstr "Indirizzo gateway"
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "Inserisci i tuoi server DNS (separati da spazi, vuoto per nessuno)"
msgid "DNS servers"
msgstr "Server DNS"
msgid "Configure interfaces"
msgstr "Configurazione interfacce"
msgid "Kernel"
msgstr "Kernel"
msgid "UEFI is not detected and some options are disabled"
msgstr "L'UEFI non è stato rilevato ed alcune opzioni sono disattivate"
msgid "Info"
msgstr "Info"
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "Il driver proprietario Nvidia non è supportato da Sway."
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "È possibile che incorrerai in problemi, ti va bene?"
msgid "Main profile"
msgstr "Profilo principale"
msgid "Confirm password"
msgstr "Conferma password"
msgid "The confirmation password did not match, please try again"
msgstr "Le password non corrispondono, prova di nuovo"
msgid "Not a valid directory"
msgstr "Non è una cartella valida"
msgid "Would you like to continue?"
msgstr "Desideri continuare?"
msgid "Directory"
msgstr "Cartella"
msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)"
msgstr "Inserisci una cartella in cui 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 {}?"
msgid "Enabled"
msgstr "Attivato"
msgid "Disabled"
msgstr "Disattivato"
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr "Invia questo problema (e il file) a https://github.com/archlinux/archinstall/issues"
msgid "Mirror name"
msgstr "Nome mirror"
msgid "Url"
msgstr "URL"
msgid "Select signature check"
msgstr "Seleziona controllo della firma"
msgid "Select execution mode"
msgstr "Seleziona una modalità d’esecuzione"
msgid "Press ? for help"
msgstr "Premi ? per aiuto"
msgid "Choose an option to give Hyprland access to your hardware"
msgstr "Scegli un’opzione per concedere a Hyprland l'accesso al tuo hardware"
msgid "Additional repositories"
msgstr "Repository aggiuntive"
msgid "NTP"
msgstr "NTP"
msgid "Swap on zram"
msgstr "Swap su zram"
msgid "Name"
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: {}): "
msgid "HSM device"
msgstr "Dispositivo HSM"
msgid "Some packages could not be found in the repository"
msgstr "Alcuni pacchetti non sono stati trovati nella repository"
msgid "User"
msgstr "Utente"
msgid "The specified configuration will be applied"
msgstr "La configurazione specificata verrà applicata"
msgid "Wipe"
msgstr "Cancella"
msgid "Mark/Unmark as XBOOTLDR"
msgstr "Contrassegna/Deseleziona come XBOOTLDR"
msgid "Loading packages..."
msgstr "Caricamento pacchetti in corso..."
msgid "Select any packages from the below list that should be installed additionally"
msgstr "Seleziona dalla lista sotto i pacchetti da installare"
msgid "Add a custom repository"
msgstr "Aggiungi una repository personalizzata"
msgid "Change custom repository"
msgstr "Cambia repository personalizzata"
msgid "Delete custom repository"
msgstr "Elimina repository personalizzata"
msgid "Repository name"
msgstr "Nome repository"
msgid "Add a custom server"
msgstr "Aggiungi un server personalizzato"
msgid "Change custom server"
msgstr "Cambia server personalizzato"
msgid "Delete custom server"
msgstr "Elimina server personalizzato"
msgid "Server url"
msgstr "URL server"
msgid "Select regions"
msgstr "Seleziona regioni"
msgid "Add custom servers"
msgstr "Aggiungi server personalizzati"
msgid "Add custom repository"
msgstr "Aggiungi repository personalizzate"
msgid "Loading mirror regions..."
msgstr "Caricamento regioni dei mirror in corso..."
msgid "Mirrors and repositories"
msgstr "Mirror e repository"
msgid "Selected mirror regions"
msgstr "Regioni dei mirror selezionate"
msgid "Custom servers"
msgstr "Server personalizzati"
msgid "Custom repositories"
msgstr "Repository personalizzate"
msgid "Only ASCII characters are supported"
msgstr "Sono supportati solo caratteri ASCII"
msgid "Show help"
msgstr "Mostra aiuto"
msgid "Exit help"
msgstr "Chiudi aiuto"
msgid "Preview scroll up"
msgstr "Anteprima scorrimento vero l'alto"
msgid "Preview scroll down"
msgstr "Anteprima scorrimento vero il basso"
msgid "Move up"
msgstr "Muovi su"
msgid "Move down"
msgstr "Muovi giù"
msgid "Move right"
msgstr "Muovi a destra"
msgid "Move left"
msgstr "Muovi a sinistra"
msgid "Jump to entry"
msgstr "Vai alla voce"
msgid "Skip selection (if available)"
msgstr "Salta selezione (se disponibile)"
msgid "Reset selection (if available)"
msgstr "Ripristina selezione (se disponibile)"
msgid "Select on single select"
msgstr "Seleziona con selezione singola"
msgid "Select on multi select"
msgstr "Seleziona con selezione multipla"
msgid "Reset"
msgstr "Ripristina"
msgid "Skip selection menu"
msgstr "Salta menu di selezione"
msgid "Start search mode"
msgstr "Avvia modalità ricerca"
msgid "Exit search mode"
msgstr "Chiudi modalità ricerca"
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "labwc ha bisogno dell’accesso al tuo posto (insieme di dispositivi hardware, ad esempio tastiera, mouse, ecc.)"
msgid "Choose an option to give labwc access to your hardware"
msgstr "Scegli un’opzione per concedere a labwc l’accesso al tuo hardware"
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "niri ha bisogno dell’accesso al tuo posto (insieme di dispositivi hardware, ad esempio tastiera, mouse, ecc.)"
msgid "Choose an option to give niri access to your hardware"
msgstr "Scegli un’opzione per concedere a niri l’accesso al tuo hardware"
msgid "Mark/Unmark as ESP"
msgstr "Contrassegna/Deseleziona come ESP"
msgid "Package group:"
msgstr "Gruppo di pacchetti:"
msgid "Exit archinstall"
msgstr "Esci da archinstall"
msgid "Reboot system"
msgstr "Riavvia il sistema"
msgid "chroot into installation for post-installation configurations"
msgstr "chroot nell'installazione per la configurazione post-installazione"
msgid "Installation completed"
msgstr "Installazione completata"
msgid "What would you like to do next?"
msgstr "Cosa desideri fare dopo?"
#, python-brace-format
msgid "Select which mode to configure for \"{}\""
msgstr "Seleziona la modalità da configurare per \"{}\""
msgid "Incorrect credentials file decryption password"
msgstr "Password di decrittazione del file delle credenziali errata"
msgid "Incorrect password"
msgstr "Password errata"
msgid "Credentials file decryption password"
msgstr "Password di decrittazione del file delle credenziali"
msgid "Do you want to encrypt the user_credentials.json file?"
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 "Print service"
msgstr "Servizio di stampa"
msgid "Would you like to configure the print service?"
msgstr "Desideri configurare il Servizio di stampa?"
msgid "Power management"
msgstr "Gestione energetica"
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"
msgid "Starting device modifications in "
msgstr "Avvio delle modifiche del dispositivo in "
msgid "No network connection found"
msgstr "Nessuna connessione di rete trovata"
msgid "Would you like to connect to a Wifi?"
msgstr "Desideri connetterti ad una Wi-FI?"
msgid "No wifi interface found"
msgstr "Nessuna interfaccia Wi-Fi trovata"
msgid "Select wifi network to connect to"
msgstr "Seleziona una rete Wi-Fi a cui connettersi"
msgid "Scanning wifi networks..."
msgstr "Scansione reti Wi-Fi in corso..."
msgid "No wifi networks found"
msgstr "Nessuna rete Wi-Fi trovata"
msgid "Failed setting up wifi"
msgstr "Impostazione del Wi-Fi non riuscita"
msgid "Enter wifi password"
msgstr "Inserisci la password del Wi-Fi"
msgid "Ok"
msgstr "Ok"
msgid "Removable"
msgstr "Rimovibile"
msgid "Install to removable location"
msgstr "Installa in una posizione rimovibile"
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr "Verrà installato in /EFI/BOOT/ (posizione rimovibile)"
msgid "Will install to standard location with NVRAM entry"
msgstr "Verrà installato nella posizione standard con voce di avvio NVRAM"
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr "Desideri installare il bootloader nella posizione predefinita di ricerca dei supporti rimovibili?"
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr "Questo installa il bootloader in /EFI/BOOT/BOOTX64.EFI (or simile) che è utile per:"
msgid "USB drives or other portable external media."
msgstr "Unità USB o altri supporti esterni portatili."
msgid "Systems where you want the disk to be bootable on any computer."
msgstr "Sistemi in cui si desidera che il disco sia avviabile da qualsiasi computer."
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr "Firmware che non supporta correttamente voci di avvio NVRAM."
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr "Verrà installato in /EFI/BOOT/ (posizione rimovibile, predefinita sicura)"
msgid "Will install to custom location with NVRAM entry"
msgstr "Verrà installato nella posizione personalizzata con voce di avvio NVRAM"
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr "Firmware che non supporta correttamente voci di avvio NVRAM come la maggior parte delle schede madri MSI,"
msgid "most Apple Macs, many laptops..."
msgstr "dei Mac di Apple, molti portatili..."
msgid "Language"
msgstr "Lingua"
msgid "Compression algorithm"
msgstr "Algoritmo di compressione"
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Vengono installati solo pacchetti come base, sudo, linux, linux-firmware, efibootmgr e pacchetti di profilo opzionali."
msgid "Select zram compression algorithm:"
msgstr "Seleziona un algoritmo di compressione zram:"
msgid "Use Network Manager (default backend)"
msgstr "Usa NetworkManager (backend predefinito)"
msgid "Use Network Manager (iwd backend)"
msgstr "Usa NetworkManager (backend iwd)"
msgid "Firewall"
msgstr "Firewall"
msgid "Enter credentials file decryption password"
msgstr "Inserici la password di decrittazione del file delle credenziali"
msgid "Configuration preview"
msgstr "Anteprima della configurazione"
msgid "Enter a directory for the configuration(s) to be saved"
msgstr "Inserisci una cartella in cui salvare le configurazioni"
msgid "Enter a respository name"
msgstr "Inserisci il nome di un repository"
msgid "Enter the repository url"
msgstr "Inserisci l'URL della repository"
msgid "Enter server url"
msgstr "Inserisci l'URL del server"
msgid "Select mirror regions to be enabled"
msgstr "Seleziona quali regioni dei mirror abilitare"
msgid "Select optional repositories to be enabled"
msgstr "Seleziona quali repository aggiuntive opzionali abilitare"
msgid "Select audio configuration"
msgstr "Seleziona la configurazione audio"
msgid "Enter root password"
msgstr "Inserisci la password di root"
msgid "Select bootloader to install"
msgstr "Seleziona il bootloader da installare"
msgid "Select encryption type"
msgstr "Seleziona il tipo di crittografia"
msgid "Select disks for the installation"
msgstr "Seleziona il disco per l'installazione"
msgid "Enter a mountpoint"
msgstr "Inserisci un punto di mount"
#, python-brace-format
msgid "Enter a size (default: {}): "
msgstr "Inserisci una dimensione (predefinita: {}): "
msgid "Enter subvolume name"
msgstr "Inserisci il nome del sottovolume"
msgid "Enter subvolume mountpoint"
msgstr "Inserisci il punto di mount del sottovolume"
msgid "Select a disk configuration"
msgstr "Seleziona una configurazione del disco"
msgid "Enter root mount directory"
msgstr "Inserisci la cartella di montaggio del root"
msgid "You will use whatever drive-setup is mounted at the specified directory"
msgstr "Userai qualunque configurazione del disco che sia montata nella cartella specificata"
msgid "WARNING: Archinstall won't check the suitability of this setup"
msgstr "ATTENZIONE: Archinstall non verificherà la compatibilità di di questa configurazione"
msgid "Select main filesystem"
msgstr "Seleziona il filesystem principale"
msgid "Enter a hostname"
msgstr "Inserisci un nome dell'host"
msgid "Select timezone"
msgstr "Seleziona il fuso orario"
msgid "No packages found"
msgstr "Nessun pacchetto trovato"
msgid "Enter the number of parallel downloads to be enabled"
msgstr "Inserisci il numero di download in parallelo da abilitare"
#, python-brace-format
msgid "Value must be between 1 and {}"
msgstr "Il valore deve essere tra 1 e {}"
msgid "Enter new password"
msgstr "Inserisci una nuova password"
msgid "Enter a username"
msgstr "Inserisci un nome utente"
msgid "Enter a password"
msgstr "Inserisci una password"
msgid "Select an interface"
msgstr "Seleziona un'interfaccia"
msgid "Choose network configuration"
msgstr "Scegli la configurazione di rete"
msgid "Select which kernel(s) to install"
msgstr "Scegli quali kernel installare"
msgid "Select which greeter to install"
msgstr "Seleziona quale schermata di benvenuto installare"
msgid "Select a profile type"
msgstr "Seleziona un tipo di profilo"
msgid "The password did not match, please try again"
msgstr "La password non corrisponde, prova ancora"
================================================
FILE: archinstall/locales/ja/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: UTUMI Hirosi \n"
"Language-Team: \n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.8\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] ここにログファイルが作成されました: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " この問題(およびファイル)を https://github.com/archlinux/archinstall/issues に送信してください"
msgid "Do you really want to abort?"
msgstr "本当に中止しますか?"
msgid "And one more time for verification: "
msgstr "確認のためにもう1度: "
msgid "Would you like to use swap on zram?"
msgstr "zram でスワップを使用しますか?"
msgid "Desired hostname for the installation: "
msgstr "インストール時のホスト名: "
msgid "Username for required superuser with sudo privileges: "
msgstr "sudo 権限を持つスーパーユーザーのユーザー名: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "インストールする追加のユーザー(ユーザーがない場合は無記入): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "このユーザーはスーパーユーザーに昇格しますか(sudoer)?"
msgid "Select a timezone"
msgstr "タイムゾーンを選択"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "systemd-boot の代わりに GRUB をブートローダーとして使用しますか?"
msgid "Choose a bootloader"
msgstr "ブートローダーを選択"
msgid "Choose an audio server"
msgstr "オーディオサーバーを選択"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "base, base-devel, linux, linux-firmware, efibootmgr などのパッケージとオプションのプロファイルパッケージのみがインストールされます。"
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr "注意: base-devel はデフォルトではインストールされなくなりました。ビルドツールが必要な場合は、ここで追加してください。"
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "firefox や chromium などのウェブブラウザーをインストールする場合は、次のプロンプトで指定できます。"
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "追加でインストールするパッケージを書く(スペースで区切る。無記入でスキップ): "
msgid "Copy ISO network configuration to installation"
msgstr "ISO ネットワーク設定をインストール環境にコピー"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "NetworkManager を使用(GNOME と KDE でインターネットをグラフィカルに設定するのに必要)"
msgid "Select one network interface to configure"
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): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "ゲートウェイ(ルーター)の IP アドレスを入力。無い場合は無記入: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "DNS サーバーを入力(スペースで区切る。無い場合は無記入): "
msgid "Select which filesystem your main partition should use"
msgstr "メインパーティションで使用するファイルシステムを選択"
msgid "Current partition layout"
msgstr "現在のパーティションレイアウト"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"何をするか選択\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "パーティションのファイルシステムを入力"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "開始場所を入力(単位: s, GB, % など。デフォルト: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "終了場所を入力(単位: s, GB, % など。例: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} にはキューに入っているパーティションが含まれます。それらが削除されますがよろしいですか?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"削除するパーティションをインデックスで選択"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"どのパーティションをどこにマウントするかをインデックスで選択"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "* パーティションのマウントポイントはインストールにおける相対的なものであり、例として boot は /boot になります。"
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "パーティションをマウントする場所を選択(無記入でマウントポイントを削除): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"フォーマット対象としてマークするパーティションを選択"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"暗号化対象としてマークするパーティションを選択"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"ブータブルとしてマークするパーティションを選択"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"ファイルシステムを設定するパーティションを選択"
msgid "Enter a desired filesystem type for the partition: "
msgstr "パーティションのファイルシステムを入力: "
msgid "Archinstall language"
msgstr "Archinstall の言語"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "選択したすべてのドライブを消去し、ベストエフォートのデフォルトパーティションレイアウトを使用する"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "個々のドライブをどうするかを選択(次にパーティションの使用方法が続く)"
msgid "Select what you wish to do with the selected block devices"
msgstr "選択したブロックデバイスで何をするかを選択"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "これは事前にプログラムされたプロファイルのリストです。デスクトップ環境などのインストールが簡単になる可能性があります"
msgid "Select keyboard layout"
msgstr "キーボードレイアウトを選択"
msgid "Select one of the regions to download packages from"
msgstr "パッケージをダウンロードする地域を 1 つ選択"
msgid "Select one or more hard drives to use and configure"
msgstr "使用・設定する 1 つ以上のハードドライブを選択"
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 ハードウェアとの互換性を最大限に高めるには、すべてのオープンソースまたは AMD/ATI オプションのいずれかを使用することをお勧めします。"
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "Intel ハードウェアとの互換性を最大限に高めるには、すべてのオープンソースまたは Intel オプションのいずれかを使用することをお勧めします。\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "Nvidia ハードウェアとの互換性を最大限に高めるには、Nvidia 独自のドライバーを使用することをお勧めします。\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"グラフィックドライバーを選択するか、無記入ですべてのオープンソースドライバーをインストール"
msgid "All open-source (default)"
msgstr "すべてのオープンソース(デフォルト)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "使用するカーネルを選択。無記入でデフォルトの \"{}\""
msgid "Choose which locale language to use"
msgstr "使用するロケール言語を選択"
msgid "Choose which locale encoding to use"
msgstr "使用するロケール エンコーディングを選択"
msgid "Select one of the values shown below: "
msgstr "以下の値のいずれかを選択: "
msgid "Select one or more of the options below: "
msgstr "以下のオプションを 1 つ以上選択: "
msgid "Adding partition...."
msgstr "パーティションを追加...."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "続行するには、有効な fs-type を入力する必要があります。有効な fs-type については、 `man parted` を参照してください。"
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "エラー: URL \"{}\" のプロファイルをリストすると、次の結果が発生:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "エラー: \"{}\" の結果を JSON としてデコードできませんでした:"
msgid "Keyboard layout"
msgstr "キーボードレイアウト"
msgid "Mirror region"
msgstr "ミラーの地域"
msgid "Locale language"
msgstr "ロケール言語"
msgid "Locale encoding"
msgstr "ロケールエンコーディング"
msgid "Drive(s)"
msgstr "ドライブ"
msgid "Disk layout"
msgstr "ディスクレイアウト"
msgid "Encryption password"
msgstr "暗号化パスワード"
msgid "Swap"
msgstr "スワップ"
msgid "Bootloader"
msgstr "ブートローダー"
msgid "Root password"
msgstr "root パスワード"
msgid "Superuser account"
msgstr "スーパーユーザーアカウント"
msgid "User account"
msgstr "ユーザーアカウント"
msgid "Profile"
msgstr "プロファイル"
msgid "Audio"
msgstr "オーディオ"
msgid "Kernels"
msgstr "カーネル"
msgid "Additional packages"
msgstr "追加パッケージ"
msgid "Network configuration"
msgstr "ネットワーク設定"
msgid "Automatic time sync (NTP)"
msgstr "時刻の自動同期(NTP)"
msgid "Install ({} config(s) missing)"
msgstr "インストール({} 個の設定がありません)"
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 ""
"ハードドライブの選択をスキップし、\n"
"{} にマウントしているドライブのセットアップを使用します(実験的)\n"
"警告: Archinstall はこのセットアップの適合性をチェックしません\n"
"続行しますか?"
msgid "Re-using partition instance: {}"
msgstr "パーティションインスタンスの再利用: {}"
msgid "Create a new partition"
msgstr "新しいパーティションを作成"
msgid "Delete a partition"
msgstr "パーティションを削除"
msgid "Clear/Delete all partitions"
msgstr "すべてのパーティションをクリア/削除"
msgid "Assign mount-point for a partition"
msgstr "パーティションにマウントポイントを割り当てる"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "フォーマットするパーティションとしてマーク/マーク解除(データを消去)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "暗号化するパーティションとしてマーク/マーク解除"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "ブータブルパーティションとしてマーク/マーク解除(/boot の場合は自動)"
msgid "Set desired filesystem for a partition"
msgstr "パーティションのファイルシステムを設定"
msgid "Abort"
msgstr "中止"
msgid "Hostname"
msgstr "ホスト名"
msgid "Not configured, unavailable unless setup manually"
msgstr "未設定。手動で設定しない限り使用できません"
msgid "Timezone"
msgstr "タイムゾーン"
msgid "Set/Modify the below options"
msgstr "以下のオプションを設定/変更"
msgid "Install"
msgstr "インストール"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"Esc でスキップ\n"
"\n"
msgid "Suggest partition layout"
msgstr "パーティションレイアウトを提案"
msgid "Enter a password: "
msgstr "パスワードを入力: "
msgid "Enter a encryption password for {}"
msgstr "{} の暗号化パスワードを入力"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "ディスクの暗号化パスワードを入力(暗号化しない場合は無記入): "
msgid "Create a required super-user with sudo privileges: "
msgstr "sudo 権限を持つスーパーユーザーを作成: "
msgid "Enter root password (leave blank to disable root): "
msgstr "root パスワードを入力(root を無効にする場合は無記入): "
msgid "Password for user \"{}\": "
msgstr "ユーザー \"{}\" のパスワード: "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "追加のパッケージが存在することを確認(これには数秒かかる場合があります)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "デフォルトのタイムサーバーで時刻の自動同期(NTP)を使用しますか?\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 が機能するには、ハードウェアクロックおよびその他の設定後のステップが必要になる場合があります。\n"
"詳細については Arch wiki を確認してください"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "ユーザー名を入力して追加ユーザーを作成(無記入でスキップ): "
msgid "Use ESC to skip\n"
msgstr "Esc でスキップ\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
"リストからオブジェクトを選択し、そのオブジェクトで実行できるアクションの 1 つを選択"
msgid "Cancel"
msgstr "キャンセル"
msgid "Confirm and exit"
msgstr "確認して終了"
msgid "Add"
msgstr "追加"
msgid "Copy"
msgstr "コピー"
msgid "Edit"
msgstr "編集"
msgid "Delete"
msgstr "削除"
msgid "Select an action for '{}'"
msgstr "'{}' へのアクションを選択"
msgid "Copy to new key:"
msgstr "新しいキーにコピー:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "不明な NIC タイプ: {}。可能な値は {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"これが選択した設定です:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman はすでに実行されており、終了するまで最大 10 分間待機します。"
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "既存の pacman のロックが終了しませんでした。Archinstall を使用する前に、既存の pacman セッションをクリーンアップしてください。"
msgid "Choose which optional additional repositories to enable"
msgstr "オプションで有効にする追加リポジトリを選択"
msgid "Add a user"
msgstr "ユーザーを追加"
msgid "Change password"
msgstr "パスワードを変更"
msgid "Promote/Demote user"
msgstr "ユーザーを昇格/降格"
msgid "Delete User"
msgstr "ユーザーを削除"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"新しいユーザーを定義\n"
msgid "User Name : "
msgstr "ユーザー名: "
msgid "Should {} be a superuser (sudoer)?"
msgstr "{} はスーパーユーザーに昇格しますか(sudoer)?"
msgid "Define users with sudo privilege: "
msgstr "sudo 権限を持つユーザーを定義: "
msgid "No network configuration"
msgstr "ネットワーク設定なし"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Btrfs パーティションに必要なサブボリュームを設定"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"サブボリュームを設定するパーティションを選択"
msgid "Manage btrfs subvolumes for current partition"
msgstr "現在のパーティションの Btrfs サブボリュームを管理"
msgid "No configuration"
msgstr "設定なし"
msgid "Save user configuration"
msgstr "ユーザー設定を保存"
msgid "Save user credentials"
msgstr "ユーザーの認証情報を保存"
msgid "Save disk layout"
msgstr "ディスクレイアウトを保存"
msgid "Save all"
msgstr "すべて保存"
msgid "Choose which configuration to save"
msgstr "保存する設定を選択"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "設定を保存するディレクトリを入力: "
msgid "Not a valid directory: {}"
msgstr "有効なディレクトリではありません: {}"
msgid "The password you are using seems to be weak,"
msgstr "使用しているパスワードは弱いようです、"
msgid "are you sure you want to use it?"
msgstr "本当に使用してもよろしいですか?"
msgid "Optional repositories"
msgstr "オプションリポジトリ"
msgid "Save configuration"
msgstr "設定を保存"
msgid "Missing configurations:\n"
msgstr "設定が存在しません:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "root パスワードか、1人以上のスーパーユーザーを指定してください"
msgid "Manage superuser accounts: "
msgstr "スーパーユーザーアカウントを管理: "
msgid "Manage ordinary user accounts: "
msgstr "一般ユーザーのアカウントを管理: "
msgid " Subvolume :{:16}"
msgstr " サブボリューム :{:16}"
msgid " mounted at {:16}"
msgstr " マウント場所 {:16}"
msgid " with option {}"
msgstr " 次のオプションで {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
" 新しいサブボリュームに必要な値を入力 \n"
msgid "Subvolume name "
msgstr "サブボリューム名 "
msgid "Subvolume mountpoint"
msgstr "サブボリュームのマウントポイント"
msgid "Subvolume options"
msgstr "サブボリュームのオプション"
msgid "Save"
msgstr "保存"
msgid "Subvolume name :"
msgstr "サブボリューム名:"
msgid "Select a mount point :"
msgstr "マウントポイントを選択:"
msgid "Select the desired subvolume options "
msgstr "サブボリュームのオプションを選択"
msgid "Define users with sudo privilege, by username: "
msgstr "sudo 権限を持つユーザーを、ユーザー名で定義: "
#, python-brace-format
msgid "[!] A log file has been created here: {}"
msgstr "[!] ここにログファイルが作成されました: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "デフォルトの設定で Btrfs サブボリュームを使用しますか?"
msgid "Would you like to use BTRFS compression?"
msgstr "Btrfs の圧縮を使用しますか?"
msgid "Would you like to create a separate partition for /home?"
msgstr "/home 用に別のパーティションを作成しますか?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "選択したドライブには、自動提案に必要な最小容量がありません\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "/home パーティションの最小容量: {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Arch Linux パーティションの最小容量: {}GB"
msgid "Continue"
msgstr "続行"
msgid "yes"
msgstr "yes"
msgid "no"
msgstr "no"
msgid "set: {}"
msgstr "セット: {}"
msgid "Manual configuration setting must be a list"
msgstr "手動設定はリストである必要があります"
msgid "No iface specified for manual configuration"
msgstr "手動設定に iface が指定されていません"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "自動 DHCP を使用しない手動 NIC 設定には、IP アドレスが必要です"
msgid "Add interface"
msgstr "インターフェイスを追加"
msgid "Edit interface"
msgstr "インターフェイスを編集"
msgid "Delete interface"
msgstr "インターフェイスを削除"
msgid "Select interface to add"
msgstr "追加するインターフェースを選択"
msgid "Manual configuration"
msgstr "手動設定"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "圧縮するパーティションとしてマーク/マーク解除(Btrfs のみ)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "使用しているパスワードは弱いようですが、本当に使用してもよろしいですか?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "デスクトップ環境とタイルウィンドウマネージャーの選択を提供します。e.g. gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "デスクトップ環境を選択"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "Arch Linux を必要に応じてカスタマイズできる非常に基本的なインストールです。"
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "さまざまなサーバー パッケージの選択肢を提供します。e.g. httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "インストールするサーバーを選択。存在しない場合は最小限のインストールが実行されます"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "最小限のシステムと xorg およびグラフィックドライバーをインストール。"
msgid "Press Enter to continue."
msgstr "Enter キーで続行します。"
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "新しく作成したインストールに chroot して、インストール後の設定を実行しますか?"
msgid "Are you sure you want to reset this setting?"
msgstr "この設定をリセットしてもよろしいですか?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "使用・設定する 1 つ以上のハードドライブを選択\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "既存の設定を変更すると、ディスクレイアウトがリセットされます!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "ハードドライブの選択をリセットすると、現在のディスクレイアウトもリセットされます。よろしいですか?"
msgid "Save and exit"
msgstr "保存して終了"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"キューに入れられたパーティションが含まれています。削除しますがよろしいですか?"
msgid "No audio server"
msgstr "オーディオサーバーなし"
msgid "(default)"
msgstr "(デフォルト)"
msgid "Use ESC to skip"
msgstr "Esc でスキップ"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"Ctrl+C で現在の選択をリセット\n"
"\n"
msgid "Copy to: "
msgstr "コピー先: "
msgid "Edit: "
msgstr "編集: "
msgid "Key: "
msgstr "キー: "
msgid "Edit {}: "
msgstr "編集 {}: "
msgid "Add: "
msgstr "追加: "
msgid "Value: "
msgstr "値: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "ドライブ選択とパーティション作成をスキップして、/mnt にマウントしているドライブのセットアップを使用できます(実験的)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "いずれかのディスクを選択するか、スキップして /mnt をデフォルトとして使用"
msgid "Select which partitions to mark for formatting:"
msgstr "フォーマットするパーティションを選択:"
msgid "Use HSM to unlock encrypted drive"
msgstr "HSM を使用して暗号化されたドライブのロックを解除"
msgid "Device"
msgstr "デバイス"
msgid "Size"
msgstr "サイズ"
msgid "Free space"
msgstr "空き容量"
msgid "Bus-type"
msgstr "Bus タイプ"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "root パスワードか、1人以上の sudo 権限を持つユーザーを指定する必要があります"
msgid "Enter username (leave blank to skip): "
msgstr "ユーザー名を入力(無記入でスキップ): "
msgid "The username you entered is invalid. Try again"
msgstr "入力したユーザー名は無効です。もう1度やり直してください"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "\"{}\" はスーパーユーザーに昇格しますか(sudo)?"
msgid "Select which partitions to encrypt"
msgstr "暗号化するパーティションを選択"
msgid "very weak"
msgstr "非常に弱い"
msgid "weak"
msgstr "弱い"
msgid "moderate"
msgstr "中程度"
msgid "strong"
msgstr "強い"
msgid "Add subvolume"
msgstr "サブボリュームを追加"
msgid "Edit subvolume"
msgstr "サブボリュームを編集"
msgid "Delete subvolume"
msgstr "サブボリュームを削除"
msgid "Configured {} interfaces"
msgstr "設定した {} インターフェース"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "このオプションは、インストール中に実行できる並列ダウンロードの数を有効にします"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"有効にする並列ダウンロードの数を入力してください。\n"
" (1 から {} の値を入力)\n"
"注意:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - 最大値 : {} ({} 個の並列ダウンロードを許可して、1度に {} 個のダウンロードを許可する)"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - 最小値 : 1 (1 個の並列ダウンロードを許可して、1度に 2 個のダウンロードを許可する)"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - 無効/デフォルト : 0 (並列ダウンロードを無効にして、1度に 1 個のみダウンロードを許可する)"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "無効な入力です!有効な入力を使用して再試行してください [1 - {max_downloads}、0 で無効]"
msgid "Parallel Downloads"
msgstr "並行ダウンロード"
msgid "ESC to skip"
msgstr "Esc でスキップ"
msgid "CTRL+C to reset"
msgstr "Ctrl+C でリセット"
msgid "TAB to select"
msgstr "Tab で選択"
msgid "[Default value: 0] > "
msgstr "[デフォルト値: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "この翻訳を使用できるようにするには、その言語をサポートするフォントを手動でインストールしてください。"
msgid "The font should be stored as {}"
msgstr "フォントは {} として保存する必要があります"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Archinstall を実行するには root 権限が必要です。詳細については --help を参照してください。"
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 "プロファイルには一意の名前が必要ですが、重複した名前のプロファイル定義が見つかりました: {}"
msgid "Select one or more devices to use and configure"
msgstr "使用・設定する 1 つ以上のデバイスを選択"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "デバイスの選択をリセットすると、現在のディスクレイアウトもリセットされます。よろしいですか?"
msgid "Existing Partitions"
msgstr "既存のパーティション"
msgid "Select a partitioning option"
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"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "これは事前にプログラムされたプロファイルのリストです。デスクトップ環境などのインストールが簡単になる可能性があります"
msgid "Current profile selection"
msgstr "現在のプロファイルの選択"
msgid "Remove all newly added partitions"
msgstr "新しく追加されたパーティションをすべて削除"
msgid "Assign mountpoint"
msgstr "マウントポイントを割り当てる"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "フォーマット対象としてマーク/マーク解除(データを消去)"
msgid "Mark/Unmark as bootable"
msgstr "ブータブルとしてマーク/マーク解除"
msgid "Change filesystem"
msgstr "ファイルシステムを変更"
msgid "Mark/Unmark as compressed"
msgstr "圧縮対象としてマーク/マーク解除"
msgid "Set subvolumes"
msgstr "サブボリュームを設定"
msgid "Delete partition"
msgstr "パーティションを削除"
msgid "Partition"
msgstr "パーティション"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "このパーティションは現在暗号化されています。フォーマットするにはファイルシステムを指定してください"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "パーティションのマウントポイントはインストールにおける相対的なもので、例として boot は /boot になります。"
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "マウントポイントに /boot が設定された場合、パーティションはブータブルとしてマークされます。"
msgid "Mountpoint: "
msgstr "マウントポイント: "
msgid "Current free sectors on device {}:"
msgstr "デバイス {} の現在の空きセクター:"
msgid "Total sectors: {}"
msgstr "総セクター数: {}"
msgid "Enter the start sector (default: {}): "
msgstr "開始セクターを入力(デフォルト: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
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 "全体のサイズ: {}"
msgid "Encryption type"
msgstr "暗号化のタイプ"
msgid "Iteration time"
msgstr "反復時間"
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr "LUKS 暗号化のイテレーション時間(ミリ秒単位)を入力"
msgid "Higher values increase security but slow down boot time"
msgstr "値を大きくするとセキュリティは向上しますが、起動時間が遅くなります"
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr "デフォルト: 10000ms, 推奨範囲: 1000-60000"
msgid "Iteration time cannot be empty"
msgstr "イテレーション時間は空にできません"
msgid "Iteration time must be at least 100ms"
msgstr "イテレーション時間は最低 100ms にしてください"
msgid "Iteration time must be at most 120000ms"
msgstr "イテレーション時間は最大 120000ms にしてください"
msgid "Please enter a valid number"
msgstr "有効な数字を入力してください"
msgid "Partitions"
msgstr "パーティション"
msgid "No HSM devices available"
msgstr "利用可能な HSM デバイスがありません"
msgid "Partitions to be encrypted"
msgstr "暗号化するパーティション"
msgid "Select disk encryption option"
msgstr "ディスクの暗号化オプションを選択"
msgid "Select a FIDO2 device to use for HSM"
msgstr "HSM に使用する FIDO2 デバイスを選択"
msgid "Use a best-effort default partition layout"
msgstr "ベストエフォートのデフォルトパーティションレイアウトを使用"
msgid "Manual Partitioning"
msgstr "手動でパーティションを作成"
msgid "Pre-mounted configuration"
msgstr "現在のマウント設定"
msgid "Unknown"
msgstr "不明"
msgid "Partition encryption"
msgstr "パーティションの暗号化"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! {} のフォーマットまで "
msgid "← Back"
msgstr "← 戻る"
msgid "Disk encryption"
msgstr "ディスクの暗号化"
msgid "Configuration"
msgstr "設定"
msgid "Password"
msgstr "パスワード"
msgid "All settings will be reset, are you sure?"
msgstr "すべての設定がリセットされます。よろしいですか?"
msgid "Back"
msgstr "戻る"
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr "選択したプロファイルにインストールするグリーターを選択: {}"
#, python-brace-format
msgid "Environment type: {}"
msgstr "環境のタイプ: {}"
msgid "The proprietary Nvidia driver is not supported by Sway. It is likely that you will run into issues, are you okay with that?"
msgstr "プロプライエタリの Nvidia ドライバーは Sway ではサポートされていません。問題が発生する可能性がありますが、よろしいですか?"
msgid "Installed packages"
msgstr "インストールするパッケージ"
msgid "Add profile"
msgstr "プロファイルを追加"
msgid "Edit profile"
msgstr "プロファイルを編集"
msgid "Delete profile"
msgstr "プロファイルを削除"
msgid "Profile name: "
msgstr "プロファイル名: "
msgid "The profile name you entered is already in use. Try again"
msgstr "入力したプロファイル名はすでに使用されています。もう1度やり直してください"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "このプロファイルでインストールするパッケージ(スペースで区切る。無記入でスキップ): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "このプロファイルで有効にするサービス(スペースで区切る。未記入でスキップ): "
msgid "Should this profile be enabled for installation?"
msgstr "このプロファイルのインストールを有効にしますか?"
msgid "Create your own"
msgstr "自分で作成"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"グラフィックドライバーを選択。無記入ですべてのオープンソースドライバーをインストール"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway はお使いの Seat(キーボード、マウスなどのハードウェアデバイス群)にアクセスする必要があります"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Sway にハードウェアへのアクセスを許可するオプションを選択"
msgid "Graphics driver"
msgstr "グラフィックドライバー"
msgid "Greeter"
msgstr "グリーター"
msgid "Please chose which greeter to install"
msgstr "インストールするグリーターを選択"
msgid "This is a list of pre-programmed default_profiles"
msgstr "これは、事前にプログラムされた default_profile のリストです"
msgid "Disk configuration"
msgstr "ディスクの設定"
msgid "Profiles"
msgstr "プロファイル"
msgid "Finding possible directories to save configuration files ..."
msgstr "設定ファイルを保存できるディレクトリを検索しています..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "設定ファイルを保存するディレクトリを選択"
msgid "Add a custom mirror"
msgstr "カスタムミラーを追加"
msgid "Change custom mirror"
msgstr "カスタムミラーを変更"
msgid "Delete custom mirror"
msgstr "カスタムミラーを削除"
msgid "Enter name (leave blank to skip): "
msgstr "名前を入力(無記入でスキップ): "
msgid "Enter url (leave blank to skip): "
msgstr "URL を入力(未記入でスキップ): "
msgid "Select signature check option"
msgstr "署名チェックのオプションを選択"
msgid "Select signature option"
msgstr "署名オプションを選択"
msgid "Custom mirrors"
msgstr "カスタムミラー"
msgid "Defined"
msgstr "定義済み"
msgid "Save user configuration (including disk layout)"
msgstr "ユーザー設定を保存(ディスクレイアウトを含む)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"設定を保存するディレクトリを入力(Tab で補完可能)\n"
"保存ディレクトリ: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"{} 設定ファイルを次の場所に保存しますか?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "{} 設定ファイルを {} に保存"
msgid "Mirrors"
msgstr "ミラー"
msgid "Mirror regions"
msgstr "ミラーの地域"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - 最大値 : {}({} 個の並列ダウンロードを許可し、1度に {max_downloads+1} 個のダウンロードを許可する)"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "無効な入力です!有効な入力でやり直してください [1 から {}、または 0 で無効]"
msgid "Locales"
msgstr "ロケール"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "NetworkManager を使用(GNOME と KDE でインターネットをグラフィカルに設定するのに必要)"
msgid "Total: {} / {}"
msgstr "全体: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "入力したすべての値に、B、KB、KiB、MB、MiB などの単位を付けることができます。"
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "単位が指定されていない場合、値はセクターとして解釈されます"
msgid "Enter start (default: sector {}): "
msgstr "開始値を入力(デフォルト: セクター {}): "
msgid "Enter end (default: {}): "
msgstr "終了値を入力(デフォルト: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "fido2 デバイスを特定できません。lifido2 はインストールされていますか?"
msgid "Path"
msgstr "パス"
msgid "Manufacturer"
msgstr "メーカー"
msgid "Product"
msgstr "製品"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "無効な設定: {error}"
msgid "Type"
msgstr "タイプ"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "このオプションは、パッケージのダウンロード中に実行できる並列ダウンロードの数を設定します"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"並列ダウンロードの数を入力してください。\n"
"\n"
"注意:\n"
#, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr " - 最大推奨値 : {} (1度に {} 個の並列ダウンロードを許可する)"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - 無効/デフォルト : 0 (並列ダウンロードを無効にして、1度に 1 個のダウンロードのみ許可する)\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "無効な入力です!有効な入力でやり直してください(無効にする場合は 0)"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Hyprland はお使いの Seat(キーボード、マウスなどのハードウェアデバイス群)にアクセスする必要があります"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Hyprland にハードウェアへのアクセスを許可するオプションを選択"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "入力したすべての値に、%、B、KB、KiB、MB、MiB などの単位を付けることができます。"
msgid "Would you like to use unified kernel images?"
msgstr "Unified カーネルイメージを使用しますか?"
msgid "Unified kernel images"
msgstr "Unified カーネルイメージ"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "時刻の同期(timedatectl show)が完了するのを待機しています。"
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "待機中に時刻同期が完了しません - 回避策についてはドキュメントを確認してください: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "自動での時刻同期の待機をスキップします(インストール中に時刻が同期していない場合は、問題が発生する可能性があります)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "Arch Linux キーリングの同期(archlinux-keyring-wkd-sync)が完了するのを待っています。"
msgid "Selected profiles: "
msgstr "選択したプロファイル: "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "待機中に時刻同期が完了しません - 回避策についてはドキュメントを確認してください: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "nodatacow としてマーク/マーク解除"
msgid "Would you like to use compression or disable CoW?"
msgstr "圧縮を使用しますか、それとも CoW を無効にしますか?"
msgid "Use compression"
msgstr "圧縮する"
msgid "Disable Copy-on-Write"
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 "設定タイプ: {}"
msgid "LVM configuration type"
msgstr "LVM の設定タイプ"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "パーティションが2個を超える場合の LVM ディスク暗号化は、現在サポートしていません"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "NetworkManager を使用する(GNOME と KDE Plasma でインターネットをグラフィカルに設定するのに必要)"
msgid "Select a LVM option"
msgstr "LVM のオプションを選択"
msgid "Partitioning"
msgstr "パーティションを作成"
msgid "Logical Volume Management (LVM)"
msgstr "論理ボリューム管理(LVM)"
msgid "Physical volumes"
msgstr "物理ボリューム"
msgid "Volumes"
msgstr "ボリューム"
msgid "LVM volumes"
msgstr "LVM ボリューム"
msgid "LVM volumes to be encrypted"
msgstr "暗号化する LVM ボリューム"
msgid "Select which LVM volumes to encrypt"
msgstr "暗号化する LVM ボリュームを選択"
msgid "Default layout"
msgstr "デフォルトのレイアウト"
msgid "No Encryption"
msgstr "暗号化なし"
msgid "LUKS"
msgstr "LUKS"
msgid "LVM on LUKS"
msgstr "LUKS 上の LVM"
msgid "LUKS on LVM"
msgstr "LVM 上の LUKS"
msgid "Yes"
msgstr "Yes"
msgid "No"
msgstr "No"
msgid "Archinstall help"
msgstr "Archinstall ヘルプ"
msgid " (default)"
msgstr " (デフォルト)"
msgid "Press Ctrl+h for help"
msgstr "Ctrl+H でヘルプを表示"
msgid "Choose an option to give Sway access to your hardware"
msgstr "Sway にハードウェアへのアクセスを許可するオプションを選択"
msgid "Seat access"
msgstr "Seat アクセス"
msgid "Mountpoint"
msgstr "マウントポイント"
msgid "HSM"
msgstr "HSM"
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "ディスクの暗号化パスワードを入力(暗号化しない場合は無記入)"
msgid "Disk encryption password"
msgstr "ディスク暗号化パスワード"
msgid "Partition - New"
msgstr "パーティション - 新規"
msgid "Filesystem"
msgstr "ファイルシステム"
msgid "Invalid size"
msgstr "無効なサイズ"
msgid "Start (default: sector {}): "
msgstr "開始値(デフォルト: セクター {}): "
msgid "End (default: {}): "
msgstr "終了値(デフォルト: {}): "
msgid "Subvolume name"
msgstr "サブボリューム名"
msgid "Disk configuration type"
msgstr "ディスク設定のタイプ"
msgid "Root mount directory"
msgstr "ルートマウントディレクトリ"
msgid "Select language"
msgstr "言語を選択"
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "追加でインストールするパッケージを書く(スペースで区切る。無記入でスキップ)"
msgid "Invalid download number"
msgstr "ダウンロード数が無効です"
msgid "Number downloads"
msgstr "ダウンロード数"
msgid "The username you entered is invalid"
msgstr "入力したユーザー名は無効です"
msgid "Username"
msgstr "ユーザー名"
#, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "\"{}\" はスーパーユーザーに昇格しますか(sudo)?\n"
msgid "Interfaces"
msgstr "インターフェイス"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "IP設定モードで有効なIPを入力する必要があります"
msgid "Modes"
msgstr "モード"
msgid "IP address"
msgstr "IPアドレス"
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "ゲートウェイ(ルーター)の IP アドレスを入力。無い場合は無記入"
msgid "Gateway address"
msgstr "ゲートウェイアドレス"
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "DNS サーバーをスペースで区切って入力(無い場合は無記入)"
msgid "DNS servers"
msgstr "DNSサーバー"
msgid "Configure interfaces"
msgstr "インターフェースを設定"
msgid "Kernel"
msgstr "カーネル"
msgid "UEFI is not detected and some options are disabled"
msgstr "UEFIが検出されず、一部のオプションが無効になります"
msgid "Info"
msgstr "情報"
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "プロプライエタリの Nvidia ドライバーは Sway ではサポートされていません。"
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "問題が発生する可能性が高いですが、よろしいですか?"
msgid "Main profile"
msgstr "メインプロファイル"
msgid "Confirm password"
msgstr "パスワードを確認"
msgid "The confirmation password did not match, please try again"
msgstr "確認のパスワードが一致しませんでした。もう一度試してください"
msgid "Not a valid directory"
msgstr "有効なディレクトリではありません"
msgid "Would you like to continue?"
msgstr "続行しますか?"
msgid "Directory"
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 "設定ファイルを次の場所に保存しますか? {}"
msgid "Enabled"
msgstr "有効"
msgid "Disabled"
msgstr "無効"
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr "この問題(およびファイル)を https://github.com/archlinux/archinstall/issues に送信してください"
msgid "Mirror name"
msgstr "ミラーの名前"
msgid "Url"
msgstr "URL"
msgid "Select signature check"
msgstr "署名チェックを選択"
msgid "Select execution mode"
msgstr "実行モードを選択"
msgid "Press ? for help"
msgstr "? を押すとヘルプを表示"
msgid "Choose an option to give Hyprland access to your hardware"
msgstr "Hyprland にハードウェアへのアクセスを許可するオプションを選択"
msgid "Additional repositories"
msgstr "追加リポジトリ"
msgid "NTP"
msgstr "NTP"
msgid "Swap on zram"
msgstr "zram のスワップ"
msgid "Name"
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 "サイズ (デフォルト: {}): "
msgid "HSM device"
msgstr "HSM デバイス"
msgid "Some packages could not be found in the repository"
msgstr "リポジトリ内にいくつかのパッケージが見つかりませんでした"
msgid "User"
msgstr "ユーザー"
msgid "The specified configuration will be applied"
msgstr "指定された設定が適用されます"
msgid "Wipe"
msgstr "ワイプ"
msgid "Mark/Unmark as XBOOTLDR"
msgstr "XBOOTLDR としてマーク/マーク解除"
msgid "Loading packages..."
msgstr "パッケージを読み込んでいます..."
msgid "Select any packages from the below list that should be installed additionally"
msgstr "追加でインストールする必要があるパッケージをリストから選択してください"
msgid "Add a custom repository"
msgstr "カスタムリポジトリを追加"
msgid "Change custom repository"
msgstr "カスタムリポジトリを変更"
msgid "Delete custom repository"
msgstr "カスタムリポジトリを削除"
msgid "Repository name"
msgstr "リポジトリ名"
msgid "Add a custom server"
msgstr "カスタムサーバーを追加"
msgid "Change custom server"
msgstr "カスタムサーバーを変更"
msgid "Delete custom server"
msgstr "カスタムサーバーを削除"
msgid "Server url"
msgstr "サーバー URL"
msgid "Select regions"
msgstr "地域を選択"
msgid "Add custom servers"
msgstr "カスタムサーバーを追加"
msgid "Add custom repository"
msgstr "カスタムリポジトリを追加"
msgid "Loading mirror regions..."
msgstr "ミラーの地域を読み込んでいます..."
msgid "Mirrors and repositories"
msgstr "ミラーとリポジトリ"
msgid "Selected mirror regions"
msgstr "選択されたミラーの地域"
msgid "Custom servers"
msgstr "カスタムサーバー"
msgid "Custom repositories"
msgstr "カスタムリポジトリ"
msgid "Only ASCII characters are supported"
msgstr "ASCII 文字のみサポートされます"
msgid "Show help"
msgstr "ヘルプを表示"
msgid "Exit help"
msgstr "ヘルプを終了"
msgid "Preview scroll up"
msgstr "プレビューを上にスクロール"
msgid "Preview scroll down"
msgstr "プレビューを下にスクロール"
msgid "Move up"
msgstr "上に移動"
msgid "Move down"
msgstr "下に移動"
msgid "Move right"
msgstr "右に移動"
msgid "Move left"
msgstr "左に移動"
msgid "Jump to entry"
msgstr "エントリーへジャンプ"
msgid "Skip selection (if available)"
msgstr "選択をスキップ(利用可能な場合)"
msgid "Reset selection (if available)"
msgstr "選択をリセット(利用可能な場合)"
msgid "Select on single select"
msgstr "単一で選択"
msgid "Select on multi select"
msgstr "複数で選択"
msgid "Reset"
msgstr "リセット"
msgid "Skip selection menu"
msgstr "選択メニューをスキップ"
msgid "Start search mode"
msgstr "検索モードを開始"
msgid "Exit search mode"
msgstr "検索モードを終了"
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "labwc はお使いの Seat(キーボード、マウスなどのハードウェアデバイス群)にアクセスする必要があります"
msgid "Choose an option to give labwc access to your hardware"
msgstr "labwc にハードウェアへのアクセスを許可するオプションを選択"
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "niri はお使いの Seat(キーボード、マウスなどのハードウェアデバイス群)にアクセスする必要があります"
msgid "Choose an option to give niri access to your hardware"
msgstr "niri にハードウェアへのアクセスを許可するオプションを選択"
msgid "Mark/Unmark as ESP"
msgstr "ESP としてマーク/マーク解除"
msgid "Package group:"
msgstr "パッケージグループ:"
msgid "Exit archinstall"
msgstr "archinstall を終了"
msgid "Reboot system"
msgstr "システムを再起動"
msgid "chroot into installation for post-installation configurations"
msgstr "インストール後の設定を行うためインストールディレクトリに chroot する"
msgid "Installation completed"
msgstr "インストール完了"
msgid "What would you like to do next?"
msgstr "次は何をしますか?"
#, python-brace-format
msgid "Select which mode to configure for \"{}\""
msgstr "「{}」に設定するモードを選択"
msgid "Incorrect credentials file decryption password"
msgstr "認証情報ファイルの復号化パスワードが正しくありません"
msgid "Incorrect password"
msgstr "パスワードが間違っています"
msgid "Credentials file decryption password"
msgstr "認証情報ファイルの復号化パスワード"
msgid "Do you want to encrypt the user_credentials.json file?"
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 "Print service"
msgstr "印刷サービス"
msgid "Would you like to configure the print service?"
msgstr "印刷サービスを設定しますか?"
msgid "Power management"
msgstr "電力管理"
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 デバイスをタッチして登録しなければならない場合があります"
msgid "Starting device modifications in "
msgstr "次の場所でデバイスの変更を開始しています "
msgid "No network connection found"
msgstr "ネットワーク接続が見つかりません"
msgid "Would you like to connect to a Wifi?"
msgstr "Wi-Fi に接続しますか?"
msgid "No wifi interface found"
msgstr "Wi-Fi インターフェースが見つかりません"
msgid "Select wifi network to connect to"
msgstr "接続する Wi-Fi ネットワークを選択"
msgid "Scanning wifi networks..."
msgstr "Wi-Fi ネットワークをスキャンしています..."
msgid "No wifi networks found"
msgstr "Wi-Fi ネットワークが見つかりません"
msgid "Failed setting up wifi"
msgstr "Wi-Fi の設定に失敗しました"
msgid "Enter wifi password"
msgstr "Wi-Fi パスワードを入力"
msgid "Ok"
msgstr "OK"
msgid "Removable"
msgstr "リムーバブル"
msgid "Install to removable location"
msgstr "リムーバブルな場所にインストールする"
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr "/EFI/BOOT/ (リムーバブルな場所) にインストールする"
msgid "Will install to standard location with NVRAM entry"
msgstr "NVRAM エントリーのある標準の場所にインストールする"
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr "ブートローダーをデフォルトのリムーバブルメディアの検索場所にインストールしますか?"
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr "ブートローダーが /EFI/BOOT/BOOTX64.EFI (または類似の場所) にインストールされ、次の場合に役立ちます:"
msgid "USB drives or other portable external media."
msgstr "USB ドライブまたは他のポータブル外部メディア。"
msgid "Systems where you want the disk to be bootable on any computer."
msgstr "ディスクをどのコンピューターでも起動できるようにするシステム。"
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr "NVRAM ブートエントリーを適切にサポートしていないファームウェア。"
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr "/EFI/BOOT/(リムーバブルな場所、安全なデフォルト)にインストール"
msgid "Will install to custom location with NVRAM entry"
msgstr "NVRAM エントリーを使用してカスタムした場所にインストール"
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr "ほとんどの MSI マザーボードのように NVRAM ブートエントリーを適切にサポートしていないファームウェア、"
msgid "most Apple Macs, many laptops..."
msgstr "ほとんどの Apple Mac、多くのラップトップ..."
msgid "Language"
msgstr "言語"
msgid "Compression algorithm"
msgstr "圧縮アルゴリズム"
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "base、sudo、linux、linux-firmware、efibootmgr などのパッケージとオプションのプロファイルパッケージのみがインストールされます。"
msgid "Select zram compression algorithm:"
msgstr "zram 圧縮アルゴリズムを選択:"
msgid "Use Network Manager (default backend)"
msgstr "NetworkManager(デフォルトのバックエンド)を使用する"
msgid "Use Network Manager (iwd backend)"
msgstr "NetworkManager (iwd バックエンド) を使用する"
msgid "Firewall"
msgstr "ファイアウォール"
msgid "Select audio configuration"
msgstr "オーディオ設定を選択"
msgid "Enter credentials file decryption password"
msgstr "認証情報ファイルの復号パスワードを入力"
msgid "Enter root password"
msgstr "ルートパスワードを入力"
msgid "Select bootloader to install"
msgstr "インストールするブートローダーを選択"
msgid "Configuration preview"
msgstr "設定プレビュー"
msgid "Enter a directory for the configuration(s) to be saved"
msgstr "設定を保存するディレクトリを入力"
msgid "Select encryption type"
msgstr "暗号化のタイプを選択"
msgid "Select disks for the installation"
msgstr "インストール用のディスクを選択"
msgid "Enter a mountpoint"
msgstr "マウントポイントを入力"
#, python-brace-format
msgid "Enter a size (default: {}): "
msgstr "サイズを入力(デフォルト: {}): "
msgid "Enter subvolume name"
msgstr "サブボリューム名を入力"
msgid "Enter subvolume mountpoint"
msgstr "サブボリュームのマウントポイントを入力"
msgid "Select a disk configuration"
msgstr "ディスクの設定を選択"
msgid "Enter root mount directory"
msgstr "ルートマウントディレクトリを入力"
msgid "You will use whatever drive-setup is mounted at the specified directory"
msgstr "指定されたディレクトリにマウントされているドライブの設定を使用します"
msgid "WARNING: Archinstall won't check the suitability of this setup"
msgstr "警告: Archinstall はこのセットアップの適合性をチェックしません"
msgid "Select main filesystem"
msgstr "メインファイルシステムを選択"
msgid "Enter a hostname"
msgstr "ホスト名を入力"
msgid "Select timezone"
msgstr "タイムゾーンを選択"
msgid "Enter the number of parallel downloads to be enabled"
msgstr "有効にする並列ダウンロード数を入力"
#, python-brace-format
msgid "Value must be between 1 and {}"
msgstr "値は 1 から {} までの範囲にしてください"
msgid "Select which kernel(s) to install"
msgstr "インストールするカーネルを選択"
msgid "Enter a respository name"
msgstr "リポジトリ名を入力"
msgid "Enter the repository url"
msgstr "リポジトリの URL を入力"
msgid "Enter server url"
msgstr "サーバーの URL を入力"
msgid "Select mirror regions to be enabled"
msgstr "有効にするミラー地域を選択"
msgid "Select optional repositories to be enabled"
msgstr "有効にするオプションリポジトリを選択"
msgid "Select an interface"
msgstr "インターフェースを選択"
msgid "Choose network configuration"
msgstr "ネットワーク設定を選択"
msgid "No packages found"
msgstr "パッケージが見つかりません"
msgid "Select which greeter to install"
msgstr "インストールするグリーターを選択"
msgid "Select a profile type"
msgstr "プロファイルのタイプを選択"
msgid "Enter new password"
msgstr "新しいパスワードを入力"
msgid "Enter a username"
msgstr "ユーザー名を入力"
msgid "Enter a password"
msgstr "パスワードを入力"
msgid "The password did not match, please try again"
msgstr "パスワードが一致しません。もう一度試してください"
================================================
FILE: archinstall/locales/ka/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: archinstall\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: Temuri Doghonadze \n"
"Language-Team: Georgian <(nothing)>\n"
"Language: ka\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.3.2\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] ჟურნალის ფაილი შეიქმნა აქ: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " ეს პრობლემა და ფაილი გადმოგვიგზავნეთ ბმულზე https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "გნებავთ, გააუქმოთ?"
msgid "And one more time for verification: "
msgstr "და კიდევ ერთხელ, გადასამოწმებლად: "
msgid "Would you like to use swap on zram?"
msgstr "გნებავთ სვოპის ZRAM-ზე გამოყენება?"
msgid "Desired hostname for the installation: "
msgstr "ჰოსტის სასურველი სახელი, დაყენებისთვის: "
msgid "Username for required superuser with sudo privileges: "
msgstr "Sudo პრივილეგიების მქონე ზემომხმარებლის მომხმარებლის სახელი: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "დამატებითი მომხმარებლები დასაყენებლად (მომხმარებლების გარეშე გასაგრძელებლად ცარიელი დატოვეთ): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "უნდა იყოს ეს მომხმარებელი ზემომხმარებელი (sudoer)?"
msgid "Select a timezone"
msgstr "აირჩიეთ დროის სარტყელი"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "გნებავთ ჩამტვირთავად system-boot-ის მაგიერ GRUB-ი გამოიყენოთ?"
msgid "Choose a bootloader"
msgstr "აირჩიეთ ჩამტვირთავი"
msgid "Choose an audio server"
msgstr "აირჩიეთ აუდიოსერვერი"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "მოხდება მხოლოდ ისეთი პაკეტების დაყენება, როგორებიცაა base, base-devel, linux, linux-firmware, efibootmgr და არასავალდებულო პროფილის პაკეტი."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr ""
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "თუ გნებავთ ბრაუზერის, როგორებიცაა firefox ან chromium, ქონა, შემდეგი რამ უნდა მიუთითოთ."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "დამატებითი პაკეტები დასაყენებლად (გამოტოვებით გამოყოფილი, გამოსატოვებლად ცარიელი დატოვეთ): "
msgid "Copy ISO network configuration to installation"
msgstr "ISO-ის ქსელის კონფიგურაციის კოპირება დაყენების დროს"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "NetworkManager-ის გამოყენება (აუცილებელია ინტერნეტის GNOME/KDE-დან მოსარგებად)"
msgid "Select one network interface to configure"
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): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "აირჩიეთ ნაგულისხმევი რაუტერის IP მისამართი, ან ცარიელი დატოვეთ: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "შეიყვანეთ თქვენი DNS სერვერების მისამართები (გამოყოფილი ცარიელი ადგილით. ცარიელი, თუ არ გნებავთ, გამოიყენოთ): "
msgid "Select which filesystem your main partition should use"
msgstr "რომელ ფაილურ სისტემას გამოიყენებს თქვენი მთავარი დანაყოფი"
msgid "Current partition layout"
msgstr "მიმდინარე დანაყოფების განლაგება"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"აირჩიეთ, რა მოუვა\n"
"{}"
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, % და ა.შ. ; ნაგულისხმევი: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "აირჩიეთ დასრულების მდებარეობა (parted-ის ერთეულებში: s, GB, % და ა.შ. ; მაგ: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} რიგში ჩაყენებულ დანაყოფებს შეიცავს. ეს წაშლის მათ. დარწმუნებული ბრძანდებით?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"წასაშლელი დანაყოფების ინდექსით არჩევა"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"ინდექსით არჩევა, რომელი დანაყოფი სად იქნება მიმაგრებული"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * დანაყოფის მიმაგრების წერტილები შედარებითია დაყენების შიგნით. ჩატვირთვა, მაგალითად, /boot შეიძლება, იყოს."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "აირჩიეთ, სად გნებავთ მიამაგროთ დანაყოფი (მიმაგრების წერტილის წასაშლელად დატოვეთ ის ცარიელი): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"აირჩიეთ, რომელი დანაყოფი იქნება მონიშნული ფორმატირებისთვის"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"აირჩიეთ, რომელი დანაყოფი მოინიშნება, როგორც დაშიფრული"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"აირჩიეთ, რომელი დანაყოფი მოინიშნება, როგორც ჩატვირთვადი"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"აირჩიეთ, ფაილური სისტემა რომელ დანაყოფზე დავაყენო"
msgid "Enter a desired filesystem type for the partition: "
msgstr "შეიყვანეთ დანაყოფის სასურველი ფაილური სისტემის ტიპი: "
msgid "Archinstall language"
msgstr "Archinstall-ის ენა"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "მონიშნულ დისკებზე ყველაფრის წაშლა და დანაყოფების განლაგების საუკეთესო განლაგების გამოყენება"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "აირჩიეთ, რა ვუყო ინდივიდუალურ დისკს (დანაყოფების გამოყენების შემდეგ)"
msgid "Select what you wish to do with the selected block devices"
msgstr "აირჩიეთ, მონიშნულ ბლოკურ მოწყობილობებს რა გნებავთ, უქნათ"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "ეს წინასწარ მითითებული პროფილების სიაა. მათი დახმარებით ისეთი რამების, როგორიცაა სამუშაო მაგიდის გარემოები, დაყენება უფრო ადვილია"
msgid "Select keyboard layout"
msgstr "აირჩიეთ კლავიატურის განლაგება"
msgid "Select one of the regions to download packages from"
msgstr "აირჩიეთ რეგიონი პაკეტების გადმოსაწერად"
msgid "Select one or more hard drives to use and configure"
msgstr "აირჩიეთ ერთი ან მეტი მყარი დისკი და მოირგეთ"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "თქვენს AMD-ის აპარატურასთან საუკეთესო თავსებადობისთვის შეგიძლიათ როგორც სრულად ღია კოდის მქონე, ისე AMD/ATI-ის ვარიანტები გამოიყენოთ."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "Intel-ის აპარატურასთან საუკეთესო თავსებადობისთვის შეგიძლიათ მათი სრულად ღია კოდის მქონე ვარიანტი გამოიყენოთ.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "Nvidia-ის თქვენს აპარატურასთან საუკეთესო თავსებადობისთვის შეიძლება Nvidia-ის დახურული კოდის მქონე დრაივერის დაყენება გნებავდეთ.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"აირჩიეთ გრაფიკის დრაივერი ან, ღია კოდის მქონე დრაივერის დასაყენებლად, ცარიელი დატოვეთ"
msgid "All open-source (default)"
msgstr "ყველა ღია კოდით (ნაგულისხმევი)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "აირჩიეთ, რომელი ბირთვი გნებავთ, გამოიყენოთ. ან ნაგულისხმევისთვის (\"{}\") ცარიელი დატოვეთ"
msgid "Choose which locale language to use"
msgstr "აირჩიეთ, რომელი ლოკალის ენა გნებავთ, გამოიყენოთ"
msgid "Choose which locale encoding to use"
msgstr "აირჩიეთ, რომელი ლოკალის კოდირება გნებავთ, გამოიყენოთ"
msgid "Select one of the values shown below: "
msgstr "აირჩიეთ ერთ-ერთი ქვემოთ მოყვანილი მნიშვნელობებიდან: "
msgid "Select one or more of the options below: "
msgstr "აირჩეთ ერთი ან მეტი პარამეტრი ქვემოდან: "
msgid "Adding partition...."
msgstr "დანაყოფის დამატება..."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "გასაგრძელებლად აუცილებელია სწორი fs-type შეიყვანოთ. ხელმისაწვდომი სიის სანახავად იხილეთ 'man parted'."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "შეცდომა: URL-ზე \"{}\" პროფილების ჩამოთვლის შედეგია:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "შეცდომა: \"{}\" შედეგის JSON-ის სახით გაშიფვრა შეუძლებელია:"
msgid "Keyboard layout"
msgstr "კლავიატურის განლაგება"
msgid "Mirror region"
msgstr "სარკის რეგიონი"
msgid "Locale language"
msgstr "ლოკალის ენა"
msgid "Locale encoding"
msgstr "ლოკალის კოდირება"
msgid "Drive(s)"
msgstr "დისკები"
msgid "Disk layout"
msgstr "დისკის განლაგება"
msgid "Encryption password"
msgstr "დაშიფვრის პაროლი"
msgid "Swap"
msgstr "სვოპი"
msgid "Bootloader"
msgstr "ჩამტვირთავი"
msgid "Root password"
msgstr "Root-ის პაროლი"
msgid "Superuser account"
msgstr "ზემომხმარებლის ანგარიში"
msgid "User account"
msgstr "მომხმარებლის ანგარიში"
msgid "Profile"
msgstr "პროფილი"
msgid "Audio"
msgstr "აუდიო"
msgid "Kernels"
msgstr "ბირთვები"
msgid "Additional packages"
msgstr "დამატებითი პაკეტები"
msgid "Network configuration"
msgstr "ქსელის მორგება"
msgid "Automatic time sync (NTP)"
msgstr "დროის ავტომატური სინქრონიზაცია (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "დაყენება (აკლია {} კონფიგურაცია)"
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 ""
"გადაწყვიტეთ, გამოტოვოთ მყარი დისკის არჩევანი\n"
"და გამოიყენოთ ის, რაც {}-ზეა მიმაგრებული (ექსპერიმენტალური)\n"
"გაფრთხილება: Archinstall-ს ამ მორგების სტაბილურობის გადამოწმება არ შეუძლია.\n"
"გნებავთ, გააგრძელოთ?"
msgid "Re-using partition instance: {}"
msgstr "დანაყოფის ასლის თავიდან გამოყენება: {}"
msgid "Create a new partition"
msgstr "ახალი დანაყოფის შექმნა"
msgid "Delete a partition"
msgstr "დანაყოფის წაშლა"
msgid "Clear/Delete all partitions"
msgstr "დანაყოფების გასუფთავება/წაშლა"
msgid "Assign mount-point for a partition"
msgstr "დანაყოფის მიმაგრების წერტილის მინიჭება"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "დანაყოფის დასაფორმატებლობის ჭდის მოხსნა/დადება (მონაცემები წაიშლება)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "დანაყოფის დაშიფრულობის ჭდის დადება/მოხსნა"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "დანაყოფის ჩატვირთვადობის ჭდის მოხსნა/დადება (ავტომატურია /boot-სთვის)"
msgid "Set desired filesystem for a partition"
msgstr "აირჩიეთ დანაყოფის სასურველი ფაილური სისტემა"
msgid "Abort"
msgstr "გაუქმება"
msgid "Hostname"
msgstr "ჰოსტის სახელი"
msgid "Not configured, unavailable unless setup manually"
msgstr "მორგებული არაა. მიუწვდომელია, სანამ ხელით არ მოირგებთ"
msgid "Timezone"
msgstr "დროის სარტყელი"
msgid "Set/Modify the below options"
msgstr "დააყენეთ/შეცვალეთ ქვედა პარამეტრები"
msgid "Install"
msgstr "დაყენება"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"გამოსატოვებლად გამოიყენეთ ღილაკი Esc\n"
"\n"
msgid "Suggest partition layout"
msgstr "დანაყოფების განლაგების მინიშნება"
msgid "Enter a password: "
msgstr "შეიყვანეთ პაროლი: "
msgid "Enter a encryption password for {}"
msgstr "შეიყვანეთ {}-ის დაშიფვრის პაროლი"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "შეიყვანეთ დისკის დაშიფვრის პაროლი (დაშიფვრის გასათიშად დატოვეთ ცარიელი): "
msgid "Create a required super-user with sudo privileges: "
msgstr "Sudo-ის პრივილეგიების სმქონე აუცილებელი ზემომხმარებლის: "
msgid "Enter root password (leave blank to disable root): "
msgstr "შეიყვანეთ root-ის პაროლი (თუ გნებავთ, გათიშოთ root, ცარიელი დატოვეთ): "
msgid "Password for user \"{}\": "
msgstr "პაროლი მომხმარებლისთვის \"{}\": "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "დამატებითი პაკეტების არსებობის შემოწმება (ამას რამდენიმე წამი შეიძლება დასჭირდეს)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "გნებავთ დროის ავტომატური სინქრონიზაციის (NTP) ნაგულისხმევი დროის სერვერებით გამოყენება?\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-ის ასამუშავებლად აპარატურული დრო და სხვა დაყენების-შემდგომი ნაბიჯები დაგჭირდებათ.\n"
"მეტი ინფორმაციისთვის იხილეთ Arch-ის დოკუმენტაცია"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "დამატებითი მომხმარებლის შესაქმნელად შეიყვანეთ მისი სახელი (გამოსატოვებლად ცარიელი დატოვეთ): "
msgid "Use ESC to skip\n"
msgstr "გამოსატოვებლად გამოიყენეთ ღილაკი Esc\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
" შესასრულებლად აირჩიეთ ობიექტი სიიდან და აირჩიეთ მისთვის ხელმისაწვდომი ქმედება"
msgid "Cancel"
msgstr "შეწყვეტა"
msgid "Confirm and exit"
msgstr "დადასტურება და გასვლა"
msgid "Add"
msgstr "დამატება"
msgid "Copy"
msgstr "კოპირება"
msgid "Edit"
msgstr "ჩასწორება"
msgid "Delete"
msgstr "წაშლა"
msgid "Select an action for '{}'"
msgstr "აირჩიეთ ქმედება '{}'-სთვის"
msgid "Copy to new key:"
msgstr "ახალ გასაღებში კოპირება:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "NIC-ის უცნობი ტიპი: {}. შესაძლო მნიშვნელობებია {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"ეს თქვენი არჩეული კონფიგურაციაა:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman- უკვე გაშვებულია. მოკვლამდე 10 წუთი დაველოდები."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "წინასწარ packman-ის ბლოკი არასდროს არსებობდა. Archinstall-ის დაყენებამდე აუცილებელია pacman-ს სესიების მოსუფთავება აუცილებელია."
msgid "Choose which optional additional repositories to enable"
msgstr "აირჩიეთ, რომელი არასავალდებულო დამატებითი რეპოზიტორია გნებავთ, ჩართოთ"
msgid "Add a user"
msgstr "მომხმარებლის დამატება"
msgid "Change password"
msgstr "პაროლის შეცვლა"
msgid "Promote/Demote user"
msgstr "მომხმარებლის დაწინაურება/ჩამოქვეითება"
msgid "Delete User"
msgstr "მომხმარებლის წაშლა"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"აღწერეთ ახალი მომხმარებელი\n"
msgid "User Name : "
msgstr "მომხმარებლის სახელი : "
msgid "Should {} be a superuser (sudoer)?"
msgstr "იყოს {} ზემომხმარებელი (sudoer)?"
msgid "Define users with sudo privilege: "
msgstr "აღწერეთ sudo პრივილეგიის მქონე მომხმარებლები: "
msgid "No network configuration"
msgstr "ქსელის მორგების გარეშე"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "დააყენეთ Btrfs დანაყოფის სასურველი ქვეტომები"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"აირჩიეთ, რომელ დანაყოფზე აპირებთ ქვეტომების დაყენებას"
msgid "Manage btrfs subvolumes for current partition"
msgstr "Btrfs-ის ქვეტომების მართვა მიმდინარე დანაყოფისთვის"
msgid "No configuration"
msgstr "მორგების გარეშე"
msgid "Save user configuration"
msgstr "მომხმარებლის კონფიგურაციის შენახვა"
msgid "Save user credentials"
msgstr "მომხმარებლის ავტორიზაციის დეტალების შენახვა"
msgid "Save disk layout"
msgstr "დისკის განლაგების შენახვა"
msgid "Save all"
msgstr "ყველაფრის შენახვა"
msgid "Choose which configuration to save"
msgstr "აირჩიეთ, რომელი კონფიგურაცია შევინახო"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "შეიყვანეთ საქაღალდე, სადაც კონფიგურაცი(ებ)-ი იქნება შენახული: "
msgid "Not a valid directory: {}"
msgstr "არასწორი საქაღალდე: {}"
msgid "The password you are using seems to be weak,"
msgstr "პაროლი, რომელიც შეიყვანეთ, სუსტია,"
msgid "are you sure you want to use it?"
msgstr "დარწმუნებული ბრძანდებით, რომ გნებავთ, გამოიყენოთ ის?"
msgid "Optional repositories"
msgstr "არასავალდებულო რეპოზიტორიები"
msgid "Save configuration"
msgstr "კონფიგურაციი შენახვა"
msgid "Missing configurations:\n"
msgstr "ნაკლული კონფიგურაციები:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "შეიყვანეთ root-ის პაროლი ან მიუთითეთ 1 ზემომხმარებელი მაინც"
msgid "Manage superuser accounts: "
msgstr "ზემომხმარებლის ანგარიშების მართვა: "
msgid "Manage ordinary user accounts: "
msgstr "ჩვეულებრივი მომხმარებლის ანგარიშების მართვა: "
msgid " Subvolume :{:16}"
msgstr " ქვეტომი :{:16}"
msgid " mounted at {:16}"
msgstr " მიმაგრების წერტილი {:16}"
msgid " with option {}"
msgstr " პარამეტრით {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
"შეავსეთ სასურველი მნიშვნელობები ახალი ქვეტომისთვის \n"
msgid "Subvolume name "
msgstr "ქვეტომის სახელი "
msgid "Subvolume mountpoint"
msgstr "ქვეტომის მიმაგრების წერტილი"
msgid "Subvolume options"
msgstr "ქვეტომის მორგება"
msgid "Save"
msgstr "შენახვა"
msgid "Subvolume name :"
msgstr "ქვეტომის სახელი :"
msgid "Select a mount point :"
msgstr "აირჩიეთ მიმაგრების წერტილი :"
msgid "Select the desired subvolume options "
msgstr "აირჩიეთ სასურველი ქვეტომის პარამეტრები "
msgid "Define users with sudo privilege, by username: "
msgstr "აღწერეთ sudo-ის პრივილეგიების მქონე მომხმარებლები, მათი სახელით: "
#, python-brace-format
msgid "[!] A log file has been created here: {}"
msgstr "[!] ჟურნალის ფაილის მდებარეობა: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "გნებავთ BTRFS-ის ქვეტომები ნაგულისხმევი სტრუქტურით გამოიყენოთ?"
msgid "Would you like to use BTRFS compression?"
msgstr "გნებავთ BTRFS-ის შეკუმშვის გამოყენება?"
msgid "Would you like to create a separate partition for /home?"
msgstr "გნებავთ /home-სთვის ცალკე დანაყოფი შექმნათ?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "მონიშნულ დისკებზე ავტომატურად დასაყენებლად საკმარისი მინიმალური ადგილი აღმოჩენილი არაა\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "მინიმალური სივრცე დანაყოფისთვის /home: {}გბ\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "მინიმალური სივრცე ArchLinux-ის დანაყოფისთვის: {}გბ"
msgid "Continue"
msgstr "გაგრძელება"
msgid "yes"
msgstr "დიახ"
msgid "no"
msgstr "არა"
msgid "set: {}"
msgstr "დაყენება: {}"
msgid "Manual configuration setting must be a list"
msgstr "მორგებული კონფიგურაციის პარამეტრი სია უნდა იყოს"
msgid "No iface specified for manual configuration"
msgstr "მორგებული კონფიგურაციისთვის ინტერფეისი მითითებული არაა"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "NIC-ის DHCP-ის გარეშე მოსარგებად IP მისამართის მითითება აუცილებელია"
msgid "Add interface"
msgstr "ინტერფეისის დამატება"
msgid "Edit interface"
msgstr "ინტერფეისის ჩასწორება"
msgid "Delete interface"
msgstr "ინტერფეისის წაშლა"
msgid "Select interface to add"
msgstr "აირჩიეთ დასამატებელი ინტერფეისი"
msgid "Manual configuration"
msgstr "ხელით მორგება"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "დანაყოფზე შეკუმშულობის ჭდის მოხსნა/დადება (მხოლოდ btrfs)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "როგორც ჩანს პაროლი, რომელსაც იყენებთ, სუსტია. დარწმუნებული ბრძანდებით, რომ გნებავთ, გამოიყენოთ ის?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "მოგაწვდით სამუშაო გარემოებისა და ფანჯრების მმართველების არჩევანს. მაგ: gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "აირჩიეთ სასურველი სამუშაო მაგიდის გარემო"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "მინიმალური დაყენება, რომელიც საშუალებას გაძლევთ, Arch Linux სურვილისამებრ მოირგოთ."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "სერვერის ისეთი პაკეტების დაყენება და ჩართვა, როგორიცაა httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "აირჩიეთ, რომელი სერვერების დაყენება გნებავთ. თუ არაფერს შეიყვანთ, მინიმალური დაყენება მოხდება"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "აყენებს მინიმალურ სისტემას, ასევე xorg-ს და გრაფიკის დრაივერებს."
msgid "Press Enter to continue."
msgstr "გასაგრძელებლად დააჭირეთ Enter-ს."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "გნებავთ chroot ახალ დაყენებულ სისტემაში და დაყენების შემდეგი კონფიგურაციის გაშვება?"
msgid "Are you sure you want to reset this setting?"
msgstr "დარწმუნებული ბრძანდებით, რომ გნებავთ, დააბრუნოთ ეს პარამეტრი?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "მოსარგებად და გამოსაყენებლად აირჩიეთ ერთი ან მეტი მყარი დისკი\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "არსებული პარამეტრის ნებისმიერი ცვლილება დისკის განლაგებას საწყის მნიშვნელობებზე დააბრუნებს!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "ეს მყარი დისკის არჩევანს და მიმდინარე დისკის განლაგებას საწყის მნიშვნელობებზე დააბრუნებს. დარწმუნებული ბრძანდებით?"
msgid "Save and exit"
msgstr "შენახვა და გასვლა"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"რიგში ჩაყენებულ დანაყოფებს შეიცავს. ეს წაშლის მათ. დარწმუნებული ბრძანდებით?"
msgid "No audio server"
msgstr "აუდიოსერვერის გრეშე"
msgid "(default)"
msgstr "(ნაგულისხმევი)"
msgid "Use ESC to skip"
msgstr "გამოსატოვებლად გამოიყენეთ ღილაკი Esc"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"მიმდინარე მონიშვნის დასაბრუნებლად დააწექით CTRL+C\n"
"\n"
msgid "Copy to: "
msgstr "კოპირება: "
msgid "Edit: "
msgstr "ჩასწორება: "
msgid "Key: "
msgstr "გასაღები: "
msgid "Edit {}: "
msgstr "ჩასწორება {}: "
msgid "Add: "
msgstr "დამატება: "
msgid "Value: "
msgstr "მნიშვნელობა: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "შეგიძლიათ დისკის არჩევანი და დაყოფა გამოტოვოთ და გამოიყენოთ სასურველი დისკი, რომელიც /mnt-ზეა მიმაგრებული (ექსპერიმენტალური)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "აირჩიეთ ერტი ან მეტი დისკი ან გამოტოვება და ნაგულისხმევი /mnt-ის გამოყენება"
msgid "Select which partitions to mark for formatting:"
msgstr "აირჩიეთ, რომელი დანაყოფები მოვნიშნო დასაფორმატებლად:"
msgid "Use HSM to unlock encrypted drive"
msgstr "დაშიფრული დისკის გასახსნელად HSM-ის გამოყენება"
msgid "Device"
msgstr "მოწყობილობა"
msgid "Size"
msgstr "ზომა"
msgid "Free space"
msgstr "თავისუფალი ადგილი"
msgid "Bus-type"
msgstr "მატარებლის-ტიპი"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "Root-ის პაროლის ან მინიმუმ 1 sudo-ის პრივილეგიების მქონე მომხმარებლის მითითება აუცილებელია"
msgid "Enter username (leave blank to skip): "
msgstr "შეიყვანეთ მომხმარებლი სახელი (გამოსატოვებლად ცარიელი დატოვეთ): "
msgid "The username you entered is invalid. Try again"
msgstr "შეყვანილი მომხმარებლის სახელი არასწორია. კიდევ სცადეთ"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "იყოს \"{}\" ზემომხმარებელი(sudo)?"
msgid "Select which partitions to encrypt"
msgstr "არჩიეთ დასაშიფრი დანაყოფები"
msgid "very weak"
msgstr "ძალიან სუსტი"
msgid "weak"
msgstr "სუსტი"
msgid "moderate"
msgstr "საშუალო"
msgid "strong"
msgstr "ძლიერი"
msgid "Add subvolume"
msgstr "ქვეტომის დამატება"
msgid "Edit subvolume"
msgstr "ქვეტომის ჩასწორება"
msgid "Delete subvolume"
msgstr "ქვეტომის წაშლა"
msgid "Configured {} interfaces"
msgstr "მორგებულია {} ინტერფეისი"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "ეს პარამეტრი დაყენებისას მითითებული რაოდენობის პარალელურ გადმოწერას დაუშვებს"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"შეიყვანეთ დასაშვები პარალელური გადმოწერების რაოდენობა.\n"
" (შეიყვანეთ მნიშვნელობა 1-დან {}-მდე)\n"
"დაიმახსოვრეთ:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - მინიმალური მნიშვნელობა : {} ( დაუშვებს {} პარალელურ გადმოწერას, დაუშვებს {} ერთდროულ გადმოწერას )"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - მინიმალური მნიშვნელობა : 1 ( დაუშვებს 1 პარალელურ გადმოწერას, დაუშვებს 2 ერთდროულ გადმოწერას )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - გამორთვა/ნაგულისხმევი : 0 ( პარალელური გადმოწერების გათიშვა. დროის ერთ მომენტში მხოლოდ ერთი გადმოწერა მოხდება )"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "შეყვანილი რიცხვი არასწორია! თავიდან სცადეთ [1-დან {max_downloads}-მდე, ან 0, გასათიშად]"
msgid "Parallel Downloads"
msgstr "პარალელური გადმოწერები"
msgid "ESC to skip"
msgstr "გამოსატოვებლად ღილაკი Esc"
msgid "CTRL+C to reset"
msgstr "დასაბრუნებლად CTRL+C"
msgid "TAB to select"
msgstr "ასარჩევად TAB"
msgid "[Default value: 0] > "
msgstr "[ნაგულისხმევი მნიშვნელობა: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "თარგმანის გამოსაყენებლად ფონტი, რომელსაც ენის მხარდაჭერა გააჩნია, ხელით უნდა დააყენოთ."
msgid "The font should be stored as {}"
msgstr "ფონტი {}-ში უნდა იყოს შენახული"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Archinstall-ს გასაშვებად root მომხმარებლის პრივილეგიები სჭირდება. მეტი ინფორმაციისთვის იხილეთ --help."
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 "პროფილებს უნიკალური სახელი უნდა ჰქონდეთ, მაგრამ აღმოჩენილია პროფილის აღწერები გამეორებადი სახელით: {}"
msgid "Select one or more devices to use and configure"
msgstr "აირჩიეთ ერთი ან მეტი მოწყობილობა და მოირგეთ"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "ეს მყარი დისკის არჩევანს და მიმდინარე დისკის განლაგებას საწყის მნიშვნელობებზე დააბრუნებს. დარწმუნებული ბრძანდებით?"
msgid "Existing Partitions"
msgstr "არსებული დანაყოფები"
msgid "Select a partitioning option"
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-ის დანაყოფისთვის: {}გიბ"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "ეს წინასწარ მითითებული profiles_bck-ის სიაა. მათი დახმარებით ისეთი რამების, როგორიცაა სამუშაო მაგიდის გარემოები, დაყენება უფრო ადვილია"
msgid "Current profile selection"
msgstr "მიმდინარე პროფილის არჩევანი"
msgid "Remove all newly added partitions"
msgstr "ყველა ახლად დამატებული დანაყოფის წაშლა"
msgid "Assign mountpoint"
msgstr "მიმაგრების წერტილის მინიჭება"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "დასაფორმატებულობის ჭდის მოხსნა/დადება (მონაცემები წაიშლება)"
msgid "Mark/Unmark as bootable"
msgstr "ჩატვირთვადი ალმის დაყენება/მოხსნა"
msgid "Change filesystem"
msgstr "ფაილური სისტემის შეცვლა"
msgid "Mark/Unmark as compressed"
msgstr "შეკუმშულად მონიშვნა/მონიშვნის მოხსნა"
msgid "Set subvolumes"
msgstr "ქვეტომების დაყენება"
msgid "Delete partition"
msgstr "დანაყოფის წაშლა"
msgid "Partition"
msgstr "დანაყოფი"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "ეს დანაყოფი ამჟამად დაშიფრულია. დასაფორმატებლად აუცილებელია ფაილური სისტემის მითითება"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "დანაყოფის მიმაგრების წერტილები შედარებითია დაყენების შიგნით. ჩატვირთვა, მაგალითად, /boot შეიძლება, იყოს."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "თუ /boot მიმაგრების წერტილი დაყენებულია, ეს დანაყოფი ასევე მოინიშნება, როგორც ჩატვირთვადი."
msgid "Mountpoint: "
msgstr "მიმაგრების წერტილი: "
msgid "Current free sectors on device {}:"
msgstr "ამჟამად თავისუფალი სექტორები მოწყობილობაზე {}:"
msgid "Total sectors: {}"
msgstr "სექტორები ჯამში: {}"
msgid "Enter the start sector (default: {}): "
msgstr "შეიყვანეთ საწყისი სექტორი (ნაგულისხმევი: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
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 "ჯამური სიგრძე: {}"
msgid "Encryption type"
msgstr "დაშიფვრის ტიპი"
msgid "Iteration time"
msgstr ""
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr ""
msgid "Higher values increase security but slow down boot time"
msgstr ""
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr ""
msgid "Iteration time cannot be empty"
msgstr ""
msgid "Iteration time must be at least 100ms"
msgstr ""
msgid "Iteration time must be at most 120000ms"
msgstr ""
msgid "Please enter a valid number"
msgstr ""
msgid "Partitions"
msgstr "დანაყოფები"
msgid "No HSM devices available"
msgstr "HSM მოწყობილობები მიუწვდომელია"
msgid "Partitions to be encrypted"
msgstr "დასაშიფრი დანაყოფები"
msgid "Select disk encryption option"
msgstr "აირჩიეთ დისკის დაშიფვრის პარამეტრი"
msgid "Select a FIDO2 device to use for HSM"
msgstr "აირჩიეთ HSM-სთვის გამოსაყენებელი FIDO2 მოწყობილობა"
msgid "Use a best-effort default partition layout"
msgstr "დანაყოფების განლაგების საუკეთესო განლაგების გამოყენება"
msgid "Manual Partitioning"
msgstr "ხელით დაყოფა"
msgid "Pre-mounted configuration"
msgstr "წინასწარ მიმაგრებული კონფიგურაცია"
msgid "Unknown"
msgstr "უცნობი"
msgid "Partition encryption"
msgstr "დანაყოფის დაშიფვრა"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! {}-ის დაფორმატება ფორმატში "
msgid "← Back"
msgstr "← უკან"
msgid "Disk encryption"
msgstr "დისკის დაშიფვრა"
msgid "Configuration"
msgstr "მორგება"
msgid "Password"
msgstr "პაროლი"
msgid "All settings will be reset, are you sure?"
msgstr "ყველა პარამეტრი დაბრუნდება. დარწმუნებული ბრძანდებით?"
msgid "Back"
msgstr "უკან"
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr "აირჩიეთ, რომელი მისალმების ეკრანის დაყენება გნებავთ არჩეული პროფილებისთვის: {}"
#, python-brace-format
msgid "Environment type: {}"
msgstr "გარემოს ტიპი: {}"
msgid "The proprietary Nvidia driver is not supported by Sway. It is likely that you will run into issues, are you okay with that?"
msgstr "Sway-ის დახურული კოდის მქონე Nvidia-ის დრაივერის მხარდაჭერა არ გააჩნია. როგორც ჩანს, შარში ყოფთ თავს. დარწმუნებული ბრძანდებით?"
msgid "Installed packages"
msgstr "დაყენებული პაკეტები"
msgid "Add profile"
msgstr "პროფილის დამატება"
msgid "Edit profile"
msgstr "პროფილის ჩასწორება"
msgid "Delete profile"
msgstr "პროფილის წაშლა"
msgid "Profile name: "
msgstr "პროფილის სახელი: "
msgid "The profile name you entered is already in use. Try again"
msgstr "შეყვანილი პროფილის სახელი უკვე გამოიყენება. კიდევ სცადეთ"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "ამ პროფილთან დასაყენებელი პაკეტები (ჰარეებით გამოყოფილი, გამოსატოვებლად ცარიელი დატოვეთ): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "ამ პროფილთან ჩასართავი სერვისები (ჰარეებით გამოყოფილი, გამოსატოვებლად ცარიელი დატოვეთ): "
msgid "Should this profile be enabled for installation?"
msgstr "უნდა ჩაირთოს თუ არა ეს პროფილი დაყენებისთვის?"
msgid "Create your own"
msgstr "შექმენით საკუთარი"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"აირჩიეთ გრაფიკის დრაივერი ან, ღია კოდის მქონე დრაივერის დასაყენებლად, ცარიელი დატოვეთ"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway-ს თქვენს სამუშაო ადგილთან (აპარატურასთან, როგორიცაა კლავიატურა, თაგუნა და ა.შ>) წვდომა სჭირდება"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"აირჩიეთ ეს პარამეტრი, რომ Sway-ს თქვენს აპარატურასთან წვდომა მისცეთ"
msgid "Graphics driver"
msgstr "გრაფიკის დრაივერი"
msgid "Greeter"
msgstr "მისამების ეკრანი"
msgid "Please chose which greeter to install"
msgstr "აირჩიეთ, რომელი მისალმების ეკრანის დაყენება გნებავთ"
msgid "This is a list of pre-programmed default_profiles"
msgstr "ეს წინასწარ დაპროგრამებული ნაგულისხმევი პროფილების სიაა"
msgid "Disk configuration"
msgstr "დისკის მორგება"
msgid "Profiles"
msgstr "პროფილები"
msgid "Finding possible directories to save configuration files ..."
msgstr "მიმდინარეობს კონფიგურაციის ფაილების შესანახად შესაძლო საქაღალდეების ძებნა ..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "აირჩიეთ საქაღალდე (ან საქაღალდეები) კონფიგურაციის ფაილების შესანახად"
msgid "Add a custom mirror"
msgstr "მორგებული სარკის დამატება"
msgid "Change custom mirror"
msgstr "მორგებული სარკის შეცვლა"
msgid "Delete custom mirror"
msgstr "მორგებული სარკის წაშლა"
msgid "Enter name (leave blank to skip): "
msgstr "შეიყვანეთ სახელი (გამოსატოვებლად ცარიელი დატოვეთ): "
msgid "Enter url (leave blank to skip): "
msgstr "შეიყვანეთ ბმული (გამოსატოვებლად ცარიელი დატოვეთ): "
msgid "Select signature check option"
msgstr "აირჩიეთ ხელმოწერის შემოწმების პარამეტრი"
msgid "Select signature option"
msgstr "აირჩიეთ ხელმოწერის პარამეტრი"
msgid "Custom mirrors"
msgstr "მორგებული სარკეები"
msgid "Defined"
msgstr "აღწერილია"
msgid "Save user configuration (including disk layout)"
msgstr "მომხმარებლის კონფიგურაციის შენახვა (დისკის განლაგების ჩართვით)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"შეიყვანეთ საქაღალდე კონფიგურაცი(ებ)-ის შესანახად (ტაბით დასრულება ჩართულია)\n"
"შენახვის საქაღალდე: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"გნებავთ, შეინახოთ {} კონფიგურაციის ფაილები შემდეგ მისამართზე?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "{}-კონფიგურაციის ფაილების შენახვა {}-ზე"
msgid "Mirrors"
msgstr "სარკეები"
msgid "Mirror regions"
msgstr "სარკის რეგიონები"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - მინიმალური მნიშვნელობა : {} ( დაუშვებს {} პარალელურ გადმოწერას, დაუშვებს {მაქს_გადმოწერები+1} ერთდროულ გადმოწერას )"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "შეყვანილი რიცხვი არასწორია! თავიდან სცადეთ [1-დან {}-მდე, ან 0, გასათიშად]"
msgid "Locales"
msgstr "ლოკალები"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "NetworkManager-ის გამოყენება (აუცილებელია ინტერნეტის GNOME/KDE-დან მოსარგებად)"
msgid "Total: {} / {}"
msgstr "სულ: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "ყველა შეყვანილ მნიშვნელობად სუფიქსად შეგიძლიათ მიუთითოთ ერთეული: B, KB, KiB, MB, MiB..."
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "თუ ერთეული მითითებული არაა, მნიშვნელობა სექტორების რაოდენობად იქნება აღქმული"
msgid "Enter start (default: sector {}): "
msgstr "შეიყვანეთ საწყისი სექტორი (ნაგულისხმევი: {}): "
msgid "Enter end (default: {}): "
msgstr "შეიყვანეთ ბოლო სექტორი (ნაგულისხმევი: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "შეცდომა fido2 მოწყობილობების დადგენისას. libfido2 დაყენებული გაქვთ?"
msgid "Path"
msgstr "ბილიკი"
msgid "Manufacturer"
msgstr "მწარმოებელი"
msgid "Product"
msgstr "პროდუქტი"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "არასწორი კონფიგურაცია: {error}"
msgid "Type"
msgstr "ტიპი"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "ეს პარამეტრი დაყენებისას მითითებული რაოდენობის პარალელურ გადმოწერას დაუშვებს"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"შეიყვანეთ დასაშვები პარალელური გადმოწერების რაოდენობა.\n"
"\n"
"შენიშვნა:\n"
#, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr " - მინიმალური მნიშვნელობა : {} ( დაუშვებს {} პარალელურ გადმოწერას )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - გამორთვა/ნაგულისხმევი : 0 ( პარალელური გადმოწერების გათიშვა. დროის ერთ მომენტში მხოლოდ ერთი გადმოწერა მოხდება )\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "შეყვანილი რიცხვი არასწორია! თავიდან სცადეთ [ან დააყენეთ 0, გასათიშად]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Hyperland-ს თქვენს სამუშაო ადგილთან (აპარატურასთან, როგორიცაა კლავიატურა, თაგუნა და ა.შ>) წვდომა სჭირდება"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"აირჩიეთ ეს პარამეტრი, რომ Hyperland-ს თქვენს აპარატურასთან წვდომა მისცეთ"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "ყველა შეყვანილ მნიშვნელობად სუფიქსად შეგიძლიათ მიუთითოთ ერთეული: B, KB, KiB, MB, MiB..."
msgid "Would you like to use unified kernel images?"
msgstr "გნებავთ გაერთიანებული ბირთვის დისკის ასლის ფაილების გამოყენება?"
msgid "Unified kernel images"
msgstr "გაერთიანებული ბირთვის დისკის ასლის ფაილები"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "დროის სინქრონიზაციის (timedatectl show) დასრულების მოლოდინი."
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "დროის სინქრონიზაცია არ სრულდება. სანამ ელოდებით, შეამოწმეთ დოკუმენტაცია, როგორ აიცილოთ ეს თავიდან: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "ავტომატური დროის სინქრონიზაციის მოლოდინის გამოტოვება (ამას შეუძლია, პრობლემები გამოიწვიოს, თუ დრო დაყენებისას აირევა)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "ველოდები Arch Linux-ის ბრელოკის სინქრონიზაციის (archlinux-keyring-wkd-sync) დასრულებას."
msgid "Selected profiles: "
msgstr "მონიშნული პროფილები: "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "დროის სინქრონიზაცია არ სრულდება. სანამ ელოდებით, შეამოწმეთ დოკუმენტაცია, როგორ აიცილოთ ეს თავიდან: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "'nodatacow' ალმის დასმა/მოხსნა"
msgid "Would you like to use compression or disable CoW?"
msgstr "შეკუმშვის გამოყენება გნებავთ, თუ CoW-ის გათიშვა?"
msgid "Use compression"
msgstr "შეკუმშვის გამოყენება"
msgid "Disable Copy-on-Write"
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 "მორგების ტიპი: {}"
msgid "LVM configuration type"
msgstr "LVM-ის კონფიგურაციის ტიპი"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "LVM დისკის დაშიფვრა ორზე მეტი დანაყოფით ამჟამად მხარდაჭერილი არაა"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "NetworkManager-ის გამოყენება (აუცილებელია ინტერნეტის GNOME/KDE Plasma-დან მოსარგებად)"
msgid "Select a LVM option"
msgstr "აირჩიეთ LVM-ის პარამეტრი"
msgid "Partitioning"
msgstr "დაყოფა"
msgid "Logical Volume Management (LVM)"
msgstr "ლოგიკური ტომების მართვა (LVM)"
msgid "Physical volumes"
msgstr "ფიზიკური ტომები"
msgid "Volumes"
msgstr "ტომები"
msgid "LVM volumes"
msgstr "LVM-ის ტომები"
msgid "LVM volumes to be encrypted"
msgstr "დასაშიფრი LVM-ის ტომები"
msgid "Select which LVM volumes to encrypt"
msgstr "აირჩიეთ, რომელი LVM-ის ტომი დაიშიფროს"
msgid "Default layout"
msgstr "ნაგულისხმები განლაგება"
msgid "No Encryption"
msgstr "დაშიფვრის გარეშე"
msgid "LUKS"
msgstr "LUKS"
msgid "LVM on LUKS"
msgstr "LVM LUKS-ზე"
msgid "LUKS on LVM"
msgstr "LUKS LVM-ზე"
msgid "Yes"
msgstr "დიახ"
msgid "No"
msgstr "არა"
msgid "Archinstall help"
msgstr "Archinstall-ის დახმარება"
msgid " (default)"
msgstr " (ნაგულისხმევი)"
msgid "Press Ctrl+h for help"
msgstr ""
#, fuzzy
msgid "Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"აირჩიეთ ეს პარამეტრი, რომ Sway-ს თქვენს აპარატურასთან წვდომა მისცეთ"
msgid "Seat access"
msgstr ""
#, fuzzy
msgid "Mountpoint"
msgstr "მიმაგრების წერტილი: "
msgid "HSM"
msgstr ""
#, fuzzy
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "შეიყვანეთ დისკის დაშიფვრის პაროლი (დაშიფვრის გასათიშად დატოვეთ ცარიელი): "
#, fuzzy
msgid "Disk encryption password"
msgstr "დაშიფვრის პაროლი"
#, fuzzy
msgid "Partition - New"
msgstr "დანაყოფი"
#, fuzzy
msgid "Filesystem"
msgstr "ფაილური სისტემის შეცვლა"
msgid "Invalid size"
msgstr ""
#, fuzzy
msgid "Start (default: sector {}): "
msgstr "შეიყვანეთ საწყისი სექტორი (ნაგულისხმევი: {}): "
#, fuzzy
msgid "End (default: {}): "
msgstr "შეიყვანეთ ბოლო სექტორი (ნაგულისხმევი: {}): "
#, fuzzy
msgid "Subvolume name"
msgstr "ქვეტომის სახელი "
#, fuzzy
msgid "Disk configuration type"
msgstr "დისკის მორგება"
msgid "Root mount directory"
msgstr ""
#, fuzzy
msgid "Select language"
msgstr "ლოკალის ენა"
#, fuzzy
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "დამატებითი პაკეტები დასაყენებლად (გამოტოვებით გამოყოფილი, გამოსატოვებლად ცარიელი დატოვეთ): "
msgid "Invalid download number"
msgstr ""
msgid "Number downloads"
msgstr ""
#, fuzzy
msgid "The username you entered is invalid"
msgstr "შეყვანილი მომხმარებლის სახელი არასწორია. კიდევ სცადეთ"
#, fuzzy
msgid "Username"
msgstr "მომხმარებლის სახელი : "
#, fuzzy, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "იყოს \"{}\" ზემომხმარებელი(sudo)?"
#, fuzzy
msgid "Interfaces"
msgstr "ინტერფეისის დამატება"
msgid "You need to enter a valid IP in IP-config mode"
msgstr ""
msgid "Modes"
msgstr ""
msgid "IP address"
msgstr ""
#, fuzzy
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "აირჩიეთ ნაგულისხმევი რაუტერის IP მისამართი, ან ცარიელი დატოვეთ: "
msgid "Gateway address"
msgstr ""
#, fuzzy
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "შეიყვანეთ თქვენი DNS სერვერების მისამართები (გამოყოფილი ცარიელი ადგილით. ცარიელი, თუ არ გნებავთ, გამოიყენოთ): "
#, fuzzy
msgid "DNS servers"
msgstr "აუდიოსერვერის გრეშე"
#, fuzzy
msgid "Configure interfaces"
msgstr "მორგებულია {} ინტერფეისი"
#, fuzzy
msgid "Kernel"
msgstr "ბირთვები"
msgid "UEFI is not detected and some options are disabled"
msgstr ""
msgid "Info"
msgstr ""
#, fuzzy
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "Sway-ის დახურული კოდის მქონე Nvidia-ის დრაივერის მხარდაჭერა არ გააჩნია. როგორც ჩანს, შარში ყოფთ თავს. დარწმუნებული ბრძანდებით?"
#, fuzzy
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "Sway-ის დახურული კოდის მქონე Nvidia-ის დრაივერის მხარდაჭერა არ გააჩნია. როგორც ჩანს, შარში ყოფთ თავს. დარწმუნებული ბრძანდებით?"
#, fuzzy
msgid "Main profile"
msgstr "პროფილის ჩასწორება"
#, fuzzy
msgid "Confirm password"
msgstr "პაროლის შეცვლა"
msgid "The confirmation password did not match, please try again"
msgstr ""
#, fuzzy
msgid "Not a valid directory"
msgstr "არასწორი საქაღალდე: {}"
#, fuzzy
msgid "Would you like to continue?"
msgstr "გნებავთ BTRFS-ის შეკუმშვის გამოყენება?"
msgid "Directory"
msgstr ""
#, fuzzy
msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)"
msgstr ""
"შეიყვანეთ საქაღალდე კონფიგურაცი(ებ)-ის შესანახად (ტაბით დასრულება ჩართულია)\n"
"შენახვის საქაღალდე: "
#, fuzzy, python-brace-format
msgid "Do you want to save the configuration file(s) to {}?"
msgstr ""
"გნებავთ, შეინახოთ {} კონფიგურაციის ფაილები შემდეგ მისამართზე?\n"
"\n"
"{}"
msgid "Enabled"
msgstr ""
msgid "Disabled"
msgstr ""
#, fuzzy
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " ეს პრობლემა და ფაილი გადმოგვიგზავნეთ ბმულზე https://github.com/archlinux/archinstall/issues"
#, fuzzy
msgid "Mirror name"
msgstr "სარკის რეგიონი"
msgid "Url"
msgstr ""
#, fuzzy
msgid "Select signature check"
msgstr "აირჩიეთ ხელმოწერის შემოწმების პარამეტრი"
#, fuzzy
msgid "Select execution mode"
msgstr "აირჩიეთ შესრულების რეჟიმი"
msgid "Press ? for help"
msgstr ""
#, fuzzy
msgid "Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"აირჩიეთ ეს პარამეტრი, რომ Hyperland-ს თქვენს აპარატურასთან წვდომა მისცეთ"
#, fuzzy
msgid "Additional repositories"
msgstr "არასავალდებულო რეპოზიტორიები"
msgid "NTP"
msgstr ""
msgid "Swap on zram"
msgstr ""
msgid "Name"
msgstr ""
#, fuzzy
msgid "Signature check"
msgstr "აირჩიეთ ხელმოწერის შემოწმების პარამეტრი"
#, fuzzy, python-brace-format
msgid "Selected free space segment on device {}:"
msgstr "ამჟამად თავისუფალი სექტორები მოწყობილობაზე {}:"
#, fuzzy, python-brace-format
msgid "Size: {} / {}"
msgstr "სულ: {} / {}"
#, fuzzy, python-brace-format
msgid "Size (default: {}): "
msgstr "შეიყვანეთ ბოლო სექტორი (ნაგულისხმევი: {}): "
#, fuzzy
msgid "HSM device"
msgstr "მოწყობილობა"
msgid "Some packages could not be found in the repository"
msgstr ""
#, fuzzy
msgid "User"
msgstr "მომხმარებლის სახელი : "
msgid "The specified configuration will be applied"
msgstr ""
msgid "Wipe"
msgstr ""
#, fuzzy
msgid "Mark/Unmark as XBOOTLDR"
msgstr "ჩატვირთვადი ალმის დაყენება/მოხსნა"
#, fuzzy
msgid "Loading packages..."
msgstr "დამატებითი პაკეტები"
msgid "Select any packages from the below list that should be installed additionally"
msgstr ""
#, fuzzy
msgid "Add a custom repository"
msgstr "მორგებული სარკის დამატება"
#, fuzzy
msgid "Change custom repository"
msgstr "მორგებული სარკის შეცვლა"
#, fuzzy
msgid "Delete custom repository"
msgstr "მორგებული სარკის წაშლა"
#, fuzzy
msgid "Repository name"
msgstr "სარკის რეგიონი"
#, fuzzy
msgid "Add a custom server"
msgstr "მორგებული სარკის დამატება"
#, fuzzy
msgid "Change custom server"
msgstr "მორგებული სარკის შეცვლა"
#, fuzzy
msgid "Delete custom server"
msgstr "მორგებული სარკის წაშლა"
msgid "Server url"
msgstr ""
#, fuzzy
msgid "Select regions"
msgstr "აირჩიეთ ხელმოწერის პარამეტრი"
#, fuzzy
msgid "Add custom servers"
msgstr "მორგებული სარკის დამატება"
#, fuzzy
msgid "Add custom repository"
msgstr "მორგებული სარკის დამატება"
#, fuzzy
msgid "Loading mirror regions..."
msgstr "სარკის რეგიონები"
#, fuzzy
msgid "Mirrors and repositories"
msgstr "არასავალდებულო რეპოზიტორიები"
#, fuzzy
msgid "Selected mirror regions"
msgstr "სარკის რეგიონები"
#, fuzzy
msgid "Custom servers"
msgstr "მორგებული სარკეები"
#, fuzzy
msgid "Custom repositories"
msgstr "არასავალდებულო რეპოზიტორიები"
msgid "Only ASCII characters are supported"
msgstr ""
msgid "Show help"
msgstr ""
msgid "Exit help"
msgstr ""
msgid "Preview scroll up"
msgstr ""
msgid "Preview scroll down"
msgstr ""
msgid "Move up"
msgstr ""
msgid "Move down"
msgstr ""
msgid "Move right"
msgstr ""
msgid "Move left"
msgstr ""
msgid "Jump to entry"
msgstr ""
msgid "Skip selection (if available)"
msgstr ""
msgid "Reset selection (if available)"
msgstr ""
#, fuzzy
msgid "Select on single select"
msgstr "აირჩიეთ ხელმოწერის შემოწმების პარამეტრი"
#, fuzzy
msgid "Select on multi select"
msgstr "აირჩიეთ დროის სარტყელი"
msgid "Reset"
msgstr ""
#, fuzzy
msgid "Skip selection menu"
msgstr "აირჩიეთ შესრულების რეჟიმი"
msgid "Start search mode"
msgstr ""
msgid "Exit search mode"
msgstr ""
#, fuzzy
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway-ს თქვენს სამუშაო ადგილთან (აპარატურასთან, როგორიცაა კლავიატურა, თაგუნა და ა.შ>) წვდომა სჭირდება"
#, fuzzy
msgid "Choose an option to give labwc access to your hardware"
msgstr ""
"\n"
"\n"
"აირჩიეთ ეს პარამეტრი, რომ Sway-ს თქვენს აპარატურასთან წვდომა მისცეთ"
#, fuzzy
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway-ს თქვენს სამუშაო ადგილთან (აპარატურასთან, როგორიცაა კლავიატურა, თაგუნა და ა.შ>) წვდომა სჭირდება"
#, fuzzy
msgid "Choose an option to give niri access to your hardware"
msgstr ""
"\n"
"\n"
"აირჩიეთ ეს პარამეტრი, რომ Sway-ს თქვენს აპარატურასთან წვდომა მისცეთ"
#, fuzzy
msgid "Mark/Unmark as ESP"
msgstr "ჩატვირთვადი ალმის დაყენება/მოხსნა"
msgid "Package group:"
msgstr ""
#, fuzzy
msgid "Exit archinstall"
msgstr "Archinstall-ის დახმარება"
#, fuzzy
msgid "Reboot system"
msgstr "ფაილური სისტემის შეცვლა"
#, fuzzy
msgid "chroot into installation for post-installation configurations"
msgstr "გნებავთ chroot ახალ დაყენებულ სისტემაში და დაყენების შემდეგი კონფიგურაციის გაშვება?"
msgid "Installation completed"
msgstr ""
#, fuzzy
msgid "What would you like to do next?"
msgstr "გნებავთ BTRFS-ის შეკუმშვის გამოყენება?"
#, fuzzy, python-brace-format
msgid "Select which mode to configure for \"{}\""
msgstr "აირჩიეთ მოსარგები რეჟიმი \"{}\"-სთვის ან გამოტოვეთ ნაგულისხმევი რეჟიმის \"{}\" გამოსაყენებლად"
#, fuzzy
msgid "Incorrect credentials file decryption password"
msgstr "დაშიფვრის პაროლი"
#, fuzzy
msgid "Incorrect password"
msgstr "Root-ის პაროლი"
#, fuzzy
msgid "Credentials file decryption password"
msgstr "დაშიფვრის პაროლი"
#, fuzzy
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr ""
"გნებავთ, შეინახოთ {} კონფიგურაციის ფაილები შემდეგ მისამართზე?\n"
"\n"
"{}"
#, fuzzy
msgid "Credentials file encryption password"
msgstr "დაშიფვრის პაროლი"
#, 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 "Print service"
msgstr ""
#, fuzzy
msgid "Would you like to configure the print service?"
msgstr "გნებავთ BTRFS-ის შეკუმშვის გამოყენება?"
#, fuzzy
msgid "Power management"
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 "აირჩიეთ HSM-სთვის გამოსაყენებელი FIDO2 მოწყობილობა"
msgid "You may need to enter the PIN and then touch your U2F device to register it"
msgstr ""
msgid "Starting device modifications in "
msgstr ""
#, fuzzy
msgid "No network connection found"
msgstr "ქსელის მორგების გარეშე"
#, fuzzy
msgid "Would you like to connect to a Wifi?"
msgstr "გნებავთ BTRFS-ის შეკუმშვის გამოყენება?"
#, fuzzy
msgid "No wifi interface found"
msgstr "მორგებულია {} ინტერფეისი"
#, fuzzy
msgid "Select wifi network to connect to"
msgstr "მოსარგებად ერთ-ერთი ქსელის ინტერფეისი აირჩიეთ"
msgid "Scanning wifi networks..."
msgstr ""
#, fuzzy
msgid "No wifi networks found"
msgstr "ქსელის მორგების გარეშე"
msgid "Failed setting up wifi"
msgstr ""
#, fuzzy
msgid "Enter wifi password"
msgstr "შეიყვანეთ პაროლი: "
msgid "Ok"
msgstr ""
msgid "Removable"
msgstr ""
msgid "Install to removable location"
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr ""
msgid "Will install to standard location with NVRAM entry"
msgstr ""
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr ""
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr ""
msgid "USB drives or other portable external media."
msgstr ""
msgid "Systems where you want the disk to be bootable on any computer."
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr ""
msgid "Will install to custom location with NVRAM entry"
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr ""
msgid "most Apple Macs, many laptops..."
msgstr ""
#, fuzzy
msgid "Language"
msgstr "ლოკალის ენა"
msgid "Compression algorithm"
msgstr ""
#, fuzzy
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "მოხდება მხოლოდ ისეთი პაკეტების დაყენება, როგორებიცაა base, base-devel, linux, linux-firmware, efibootmgr და არასავალდებულო პროფილის პაკეტი."
#, fuzzy
msgid "Select zram compression algorithm:"
msgstr "აირჩიეთ მიმაგრების წერტილი :"
msgid "Use Network Manager (default backend)"
msgstr ""
msgid "Use Network Manager (iwd backend)"
msgstr ""
================================================
FILE: archinstall/locales/ko/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: An Jaebeom \n"
"Language-Team: \n"
"Language: ko\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.1.1\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] 로그파일을 다음의 경로에 생성했습니다: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " 이 문제(및 파일)를 https://github.com/archlinux/archinstall/issues 에 제출하세요"
msgid "Do you really want to abort?"
msgstr "정말 중단하시겠습니까?"
msgid "And one more time for verification: "
msgstr "확인을 위해 한번 더: "
msgid "Would you like to use swap on zram?"
msgstr "zram에서 스왑을 사용하시겠습니까?"
msgid "Desired hostname for the installation: "
msgstr "설치에 원하는 호스트명: "
msgid "Username for required superuser with sudo privileges: "
msgstr "sudo 권한이 있는 필수 슈퍼유저의 사용자명: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "설치할 추가 사용자(없는 경우 비워 둠): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "이 사용자가 슈퍼유저여야 합니까 (sudoer)?"
msgid "Select a timezone"
msgstr "시간대를 선택하세요"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "systemd-boot 대신 GRUB 를 부트로더로 사용하시겠습니까?"
msgid "Choose a bootloader"
msgstr "부트로더를 선택하세요"
msgid "Choose an audio server"
msgstr "오디오 서버를 선택하세요"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "base, base-devel, linux, linux-firmware, efibootmgr 및 선택적 프로파일 패키지와 같은 패키지만 설치됩니다."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr ""
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "만약 파이어폭스나 크로미움같은 웹브라우저를 희망하실 경우 다음 프롬프트에서 지정하실 수 있습니다."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "설치할 추가 패키지 작성하세요 (띄어쓰기로 구분, 건너뛰려면 공백): "
msgid "Copy ISO network configuration to installation"
msgstr "ISO 네트워크 구성을 설치에 복사"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "NetworkManager 사용 (GNOME 이나 KDE 에서 그래픽으로 인터넷을 구성하는 데 필요)"
msgid "Select one network interface to configure"
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): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "게이트웨이(라우터) IP 주소를 입력하시거나 공백으로 두세요: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "DNS 서버를 입력하세요 (띄어쓰기로 구분, 없는 경우 공백): "
msgid "Select which filesystem your main partition should use"
msgstr "주 파티션이 사용해야 하는 파일 시스템을 선택하세요"
msgid "Current partition layout"
msgstr "현재 파티션 레이아웃"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"무엇을 할 것인지 선택하세요\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "파티션에 대해 원하는 파일 시스템 유형을 입력하세요"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr ""
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr ""
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} 에 대기 중인 파티션이 포함되어 있습니다. 그러면 이러한 파티션이 제거됩니다. 정말 진행하시겠습니까?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"삭제할 파티션을 인덱스 값으로 선택하세요"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"마운트할 파티션을 인덱스 값으로 선택하세요"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * 파티션 마운트 포인트는 설치 내부를 기준으로 하며 예를 들어 부팅은 /boot 입니다."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "파티션을 마운트할 위치를 선택하세요 (마운트 포인트 제거는 공백): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"포맷을 위해 마스킹할 파티션 선택"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"암호화를 위해 마스킹할 파티션 선택"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"부팅 가능으로 표시할 파티션 선택"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"파일 시스템을 설정할 파티션 선택"
msgid "Enter a desired filesystem type for the partition: "
msgstr "파티션에 대해 원하는 파일 시스템을 입력하세요: "
msgid "Archinstall language"
msgstr "Archinstall 언어"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "선택한 모든 드라이브를 지우고 최선의 기본 파티션 레이아웃 사용"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "각 개별 드라이브로 수행할 작업을 선택하세요 (파티션 사용 후)"
msgid "Select what you wish to do with the selected block devices"
msgstr "선택한 블록 장치로 수행할 작업을 선택하세요"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "이것은 사전 프로그래밍된 프로필 목록이며 데스크톱 환경과 같은 것을 더 쉽게 설치할 수 있습니다"
msgid "Select keyboard layout"
msgstr "키보드 레이아웃을 선택하세요"
msgid "Select one of the regions to download packages from"
msgstr "패키지를 다운로드할 지역 중 하나를 선택하세요"
msgid "Select one or more hard drives to use and configure"
msgstr "사용하고 구성할 하드 드라이브를 하나 이상 선택하세요"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "AMD 하드웨어와의 최상의 호환성을 위해 모든 오픈 소스 또는 AMD/ATI 옵션을 사용할 수 있습니다."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "인텔 하드웨어와의 최상의 호환성을 위해 모든 오픈 소스 또는 인텔 옵션을 사용할 수 있습니다.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "Nvidia 하드웨어와의 최상의 호환성을 위해 Nvidia 독점 드라이버를 사용할 수 있습니다.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"모든 오픈 소스 드라이버를 설치하려면 그래픽 드라이버를 선택하거나 공백으로 두세요"
msgid "All open-source (default)"
msgstr "전부 오픈소스 (기본값)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "사용할 커널을 선택하시거나 기본 커널인 \"{}\" 을(를) 사용하실 경우 비워두세요"
msgid "Choose which locale language to use"
msgstr "사용할 로케일 언어를 선택하세요"
msgid "Choose which locale encoding to use"
msgstr "사용할 로케일 인코딩을 선택하세요"
msgid "Select one of the values shown below: "
msgstr "아래 표시된 값 중 하나를 선택하세요: "
msgid "Select one or more of the options below: "
msgstr "아래 표시된 값 중 하나 이상을 선택하세요: "
msgid "Adding partition...."
msgstr "파티션 추가 중...."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "계속하려면 유효한 fs-type을 입력해야 합니다. 유효한 fs-type에 대해서는 `man parted`를 참조하세요."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "오류: URL \"{}\"의 프로필 나열 결과:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "오류: \"{}\" 결과를 JSON으로 디코딩할 수 없습니다:"
msgid "Keyboard layout"
msgstr "키보드 레이아웃"
msgid "Mirror region"
msgstr "미러 위치"
msgid "Locale language"
msgstr "로케일 언어"
msgid "Locale encoding"
msgstr "로케일 인코딩"
msgid "Drive(s)"
msgstr "드라이브"
msgid "Disk layout"
msgstr "디스크 레이아웃"
msgid "Encryption password"
msgstr "비밀번호 암호화"
msgid "Swap"
msgstr "스왑"
msgid "Bootloader"
msgstr "부트로더"
msgid "Root password"
msgstr "루트 비밀번호"
msgid "Superuser account"
msgstr "슈퍼유저 계정"
msgid "User account"
msgstr "사용자 계정"
msgid "Profile"
msgstr "프로필"
msgid "Audio"
msgstr "오디오"
msgid "Kernels"
msgstr "커널"
msgid "Additional packages"
msgstr "추가 패키지"
msgid "Network configuration"
msgstr "네트워크 구성"
msgid "Automatic time sync (NTP)"
msgstr "시간 자동 동기화 (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "설치 ({} 개의 설정(들)이 누락됨)"
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 ""
"하드 드라이브 선택을 건너뛰기로 결정했습니다\n"
"{} 에 마운트된 모든 드라이브 설정을 사용합니다 (실험적).\n"
"경고: Archinstall은 이 설정의 적합성을 확인하지 않습니다.\n"
"계속하시겠습니까?"
msgid "Re-using partition instance: {}"
msgstr "파티션 인스턴스 재사용: {}"
msgid "Create a new partition"
msgstr "새 파티션 생성"
msgid "Delete a partition"
msgstr "파티션 제거"
msgid "Clear/Delete all partitions"
msgstr "모든 파티션 제거"
msgid "Assign mount-point for a partition"
msgstr "파티션에 대한 마운트 지점 할당"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "포맷할 파티션 표시/표시 해제 (데이터 삭제)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "암호화된 파티션으로 표시/표시 해제"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "부팅 가능한 파티션으로 표시/표시 해제 (/boot의 경우 자동)"
msgid "Set desired filesystem for a partition"
msgstr "파티션에 대해 원하는 파일 시스템 설정"
msgid "Abort"
msgstr "중단"
msgid "Hostname"
msgstr "호스트명"
msgid "Not configured, unavailable unless setup manually"
msgstr "구성되지 않음, 수동으로 설정하지 않으면 사용할 수 없음"
msgid "Timezone"
msgstr "시간대"
msgid "Set/Modify the below options"
msgstr "아래 옵션 설정/수정"
msgid "Install"
msgstr "설치"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"ESC 키를 사용해 스킵하세요\n"
"\n"
msgid "Suggest partition layout"
msgstr "파티션 레이아웃 제안"
msgid "Enter a password: "
msgstr "비밀번호를 입력하세요: "
msgid "Enter a encryption password for {}"
msgstr "{} 에 대한 암호화 비밀번호 입력"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "디스크를 암호화할 암호를 입력하세요 (암호화하지 않으려면 비워 둠): "
msgid "Create a required super-user with sudo privileges: "
msgstr "sudo 권한이 있는 필수 슈퍼유저를 생성합니다: "
msgid "Enter root password (leave blank to disable root): "
msgstr "루트 비밀번호를 입력하세요 (루트를 비활성화 할 경우 공백): "
msgid "Password for user \"{}\": "
msgstr "사용자 \"{}\" 님에 대한 비밀번호: "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "추가 패키지가 있는지 확인합니다 (몇 초 정도 소요될 수 있음)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "기본 시간 서버와 함께 자동 시간 동기화(NTP)를 사용하시겠습니까?\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가 작동하려면 하드웨어 시간 및 기타 사후 구성 단계가 필요할 수 있습니다.\n"
"더 많은 정보를 확인하시려면, Arch wiki 를 확인하세요"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "추가 사용자를 만들려면 사용자 이름을 입력하세요 (건너뛰려면 공백): "
msgid "Use ESC to skip\n"
msgstr "ESC 키를 사용해 스킵하세요\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
"목록에서 개체를 선택하고 실행 가능한 작업 중 하나를 선택하세요"
msgid "Cancel"
msgstr "취소"
msgid "Confirm and exit"
msgstr "저장 후 종료"
msgid "Add"
msgstr "추가"
msgid "Copy"
msgstr "복사"
msgid "Edit"
msgstr "수정"
msgid "Delete"
msgstr "제거"
msgid "Select an action for '{}'"
msgstr "'{}' 에 대한 작업 선택"
msgid "Copy to new key:"
msgstr "새 키로 복사:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "알 수 없는 nic 타입: {}, 가능한 값은 {} 입니다"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"선택된 구성:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman 이 이미 실행중입니다, 종료될 때까지 최대 10분 대기해야 합니다."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "기존 pacman 잠금이 종료되지 않았습니다. archinstall을 사용하기 전에 기존 pacman 세션을 모두 정리하세요."
msgid "Choose which optional additional repositories to enable"
msgstr "활성화할 선택적 추가 리포지토리를 선택하세요"
msgid "Add a user"
msgstr "사용자 추가"
msgid "Change password"
msgstr "비밀번호 변경"
msgid "Promote/Demote user"
msgstr "사용자 승격/강등"
msgid "Delete User"
msgstr "사용자 제거"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"새 사용자 정의\n"
msgid "User Name : "
msgstr "사용자명 : "
msgid "Should {} be a superuser (sudoer)?"
msgstr "{} 님은 슈퍼유저(sudoer)여야 하나요?"
msgid "Define users with sudo privilege: "
msgstr "sudo 권한이 있는 사용자 정의: "
msgid "No network configuration"
msgstr "네트워크 구성 없음"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "btrfs 파티션에 원하는 하위 볼륨 설정"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"하위 볼륨을 설정할 파티션을 선택하세요"
msgid "Manage btrfs subvolumes for current partition"
msgstr "현재 파티션에 대한 btrfs 하위 볼륨 관리"
msgid "No configuration"
msgstr "구성 없음"
msgid "Save user configuration"
msgstr "사용자 구성 저장"
msgid "Save user credentials"
msgstr "사용자 자격 증명 저장"
msgid "Save disk layout"
msgstr "디스크 레이아웃 저장"
msgid "Save all"
msgstr "모두 저장"
msgid "Choose which configuration to save"
msgstr "저장할 구성을 선택하세요"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "저장할 구성의 디렉토리를 입력하세요: "
msgid "Not a valid directory: {}"
msgstr "올바른 디렉터리가 아닙니다: {}"
msgid "The password you are using seems to be weak,"
msgstr "사용 중인 비밀번호가 보안에 취약한 것 같습니다,"
msgid "are you sure you want to use it?"
msgstr "그래도 사용하시겠습니까?"
msgid "Optional repositories"
msgstr "선택적 저장소"
msgid "Save configuration"
msgstr "구성 저장"
msgid "Missing configurations:\n"
msgstr "누락된 구성들:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "root-password 또는 1명 이상의 슈퍼유저를 지정해야 합니다"
msgid "Manage superuser accounts: "
msgstr "슈퍼유저 계정 관리: "
msgid "Manage ordinary user accounts: "
msgstr "일반 사용자 계정 관리: "
msgid " Subvolume :{:16}"
msgstr " 하위 볼륨 :{:16}"
msgid " mounted at {:16}"
msgstr " {:16} 에 마운트됨"
msgid " with option {}"
msgstr " 옵션 {} 와 함께"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
" 새 하위 볼륨에 대해 원하는 값 채우기 \n"
msgid "Subvolume name "
msgstr "하위 볼륨 이름 "
msgid "Subvolume mountpoint"
msgstr "하위 볼륨 마운트 지점"
msgid "Subvolume options"
msgstr "하위 볼륨 옵션"
msgid "Save"
msgstr "저장"
msgid "Subvolume name :"
msgstr "하위 볼륨 이름 :"
msgid "Select a mount point :"
msgstr "마운트 지점을 선택하세요 :"
msgid "Select the desired subvolume options "
msgstr "원하는 하위 볼륨 옵션을 선택하세요 "
msgid "Define users with sudo privilege, by username: "
msgstr "sudo 권한을 가질 사용자 이름을 입력하세요: "
#, python-brace-format
msgid "[!] A log file has been created here: {}"
msgstr "[!] 로그파일이 다음 경로에 생성되었습니다: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "기본 구조로 BTRFS 하위 볼륨을 사용하시겠습니까?"
msgid "Would you like to use BTRFS compression?"
msgstr "BTRFS 압축을 사용하시겠습니까?"
msgid "Would you like to create a separate partition for /home?"
msgstr "/home 에 대해 별도의 파티션을 생성하시겠습니까?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "선택한 드라이브에 자동 제안에 필요한 최소 용량이 없습니다\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "Arch Linux 파티션의 최대 용량: {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Arch Linux 파티션의 최소 용량: {}GB"
msgid "Continue"
msgstr "계속"
msgid "yes"
msgstr "예"
msgid "no"
msgstr "아니오"
msgid "set: {}"
msgstr "설정: {}"
msgid "Manual configuration setting must be a list"
msgstr "수동 구성 설정은 list여야 합니다"
msgid "No iface specified for manual configuration"
msgstr "수동 구성에 대해 지정된 iface가 없습니다"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "자동 DHCP가 없는 수동 nic 구성에는 IP 주소가 필요합니다"
msgid "Add interface"
msgstr "인터페이스 추가"
msgid "Edit interface"
msgstr "인터페이스 수정"
msgid "Delete interface"
msgstr "인터페이스 제거"
msgid "Select interface to add"
msgstr "추가할 인터페이스 선택"
msgid "Manual configuration"
msgstr "수동 구성"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "파티션을 압축된 것으로 표시/표시 해제(btrfs만 해당)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "사용 중인 비밀번호가 보안에 취약한 것 같습니다. 그래도 사용하시겠습니까?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "gnome, kde, sway 같은 다양한 데스크탑 환경 및 타일링 창 관리자를 제공합니다"
msgid "Select your desired desktop environment"
msgstr "원하는 데스크탑 환경을 선택하세요"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "Arch Linux를 원하는 대로 커스터마이징할 수 있는 매우 기본적인 설치입니다."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "설치 및 활성화할 httpd, nginx, mariadb 같은 다양한 서버 패키지를 제공합니다"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "설치할 서버를 선택하고, 설치하지 않으면 최소 설치가 수행됩니다"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "최소 시스템과 xorg 및 그래픽 드라이버를 설치합니다."
msgid "Press Enter to continue."
msgstr "계속하려면 Enter 키를 누르세요."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "새로 생성된 설치로 chroot 하고 설치 후 구성을 수행하시겠습니까?"
msgid "Are you sure you want to reset this setting?"
msgstr "정말 설정을 초기화 하시겠습니까?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "사용 및 구성할 하드 드라이브를 하나 이상 선택하세요\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "기존 설정을 수정하면 디스크 레이아웃이 재설정됩니다!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "하드 드라이브 선택을 재설정하면 현재 디스크 레이아웃도 재설정됩니다. 정말 진행하시겠습니까?"
msgid "Save and exit"
msgstr "저장하고 종료"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"대기 중인 파티션이 포함되어 있습니다. 그러면 이러한 파티션이 제거됩니다. 정말 진행하시겠습니까?"
msgid "No audio server"
msgstr "오디오 서버가 없습니다"
msgid "(default)"
msgstr "(기본)"
msgid "Use ESC to skip"
msgstr "ESC 키를 사용하여 건너뜁니다"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"CTRL+C 를 이용해 현재 선택을 재설정합니다\n"
"\n"
msgid "Copy to: "
msgstr "다음 경로로 복사: "
msgid "Edit: "
msgstr "수정됨: "
msgid "Key: "
msgstr "키: "
msgid "Edit {}: "
msgstr "수정된 {}: "
msgid "Add: "
msgstr "추가됨: "
msgid "Value: "
msgstr "값: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "드라이브 선택 및 파티셔닝을 건너뛰고 /mnt 에 마운트된 드라이브 설정을 사용할 수 있습니다 (실험용)."
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "디스크 중 하나를 선택하거나 건너뛰고 /mnt 를 기본값으로 사용하세요"
msgid "Select which partitions to mark for formatting:"
msgstr "포맷할 파티션을 선택하세요:"
msgid "Use HSM to unlock encrypted drive"
msgstr "HSM을 사용하여 암호화된 드라이브 잠금 해제"
msgid "Device"
msgstr "장치"
msgid "Size"
msgstr "크기"
msgid "Free space"
msgstr "여유 공간"
msgid "Bus-type"
msgstr "버스 타입"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "root-password 또는 sudo 권한이 있는 사용자 1 명 이상을 지정해야 합니다"
msgid "Enter username (leave blank to skip): "
msgstr "사용자명 입력 (공백일 경우 스킵): "
msgid "The username you entered is invalid. Try again"
msgstr "입력한 사용자 이름이 잘못되었습니다. 다시 시도하세요"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "\"{}\"은(는) 슈퍼유저여야 합니까 (sudo)?"
#, fuzzy
msgid "Select which partitions to encrypt"
msgstr "암호화할 파티션을 선택하세요:"
msgid "very weak"
msgstr "아주 약하게"
msgid "weak"
msgstr "약하게"
msgid "moderate"
msgstr "보통"
msgid "strong"
msgstr "강하게"
msgid "Add subvolume"
msgstr "하위 볼륨 추가"
msgid "Edit subvolume"
msgstr "하위 볼륨 수정"
msgid "Delete subvolume"
msgstr "하위 볼륨 제거"
msgid "Configured {} interfaces"
msgstr "구성된 {} 인터페이스"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "이 옵션은 설치 중에 발생할 수 있는 병렬 다운로드 수를 활성화합니다"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"활성화할 병렬 다운로드 수를 입력하세요.\n"
" (1 부터 {} 까지의 숫자중 하나를 입력하세요)\n"
"메모:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - 최댓값 : {} ( {} 개의 병렬 다운로드 허용, 한 번에 {} 개의 다운로드 허용 )"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - 최솟값 : 1 ( 1 개의 병렬 다운로드 허용, 한 번에 2 개의 다운로드 허용 )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - 비활성화/기본 : - ( 병렬 다운로드 비활성화, 한 번에 1 개의 다운로드만 허용 )"
#, fuzzy, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "잘못된 값입니다! 유효한 값으로 다시 시도해주세요 [1 부터 {} 까지, 비활성화 하려면 0]"
msgid "Parallel Downloads"
msgstr "병렬 다운로드"
msgid "ESC to skip"
msgstr "ESC 키로 스킵"
msgid "CTRL+C to reset"
msgstr "CTRL+C 로 재설정"
msgid "TAB to select"
msgstr "TAB 으로 선택"
msgid "[Default value: 0] > "
msgstr "[기본값: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "이 번역을 사용하려면 해당 언어를 지원하는 글꼴을 수동으로 설치하세요."
msgid "The font should be stored as {}"
msgstr "글꼴은 {} (으)로 저장해야 합니다"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr ""
#, fuzzy
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 ""
#, fuzzy
msgid "Select one or more devices to use and configure"
msgstr "사용하고 구성할 하드 드라이브를 하나 이상 선택하세요"
#, fuzzy
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "하드 드라이브 선택을 재설정하면 현재 디스크 레이아웃도 재설정됩니다. 정말 진행하시겠습니까?"
#, fuzzy
msgid "Existing Partitions"
msgstr "파티션 추가 중...."
#, fuzzy
msgid "Select a partitioning option"
msgstr "파티션 제거"
#, fuzzy
msgid "Enter the root directory of the mounted devices: "
msgstr "저장할 구성의 디렉토리를 입력하세요: "
#, fuzzy, python-brace-format
msgid "Minimum capacity for /home partition: {}GiB\n"
msgstr "Arch Linux 파티션의 최대 용량: {}GB\n"
#, fuzzy, python-brace-format
msgid "Minimum capacity for Arch Linux partition: {}GiB"
msgstr "Arch Linux 파티션의 최소 용량: {}GB"
#, fuzzy
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "이것은 사전 프로그래밍된 프로필 목록이며 데스크톱 환경과 같은 것을 더 쉽게 설치할 수 있습니다"
#, fuzzy
msgid "Current profile selection"
msgstr "현재 파티션 레이아웃"
#, fuzzy
msgid "Remove all newly added partitions"
msgstr "새 파티션 생성"
#, fuzzy
msgid "Assign mountpoint"
msgstr "파티션에 대한 마운트 지점 할당"
#, fuzzy
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "포맷할 파티션 표시/표시 해제 (데이터 삭제)"
msgid "Mark/Unmark as bootable"
msgstr ""
msgid "Change filesystem"
msgstr ""
#, fuzzy
msgid "Mark/Unmark as compressed"
msgstr "파티션을 압축된 것으로 표시/표시 해제(btrfs만 해당)"
#, fuzzy
msgid "Set subvolumes"
msgstr "하위 볼륨 제거"
#, fuzzy
msgid "Delete partition"
msgstr "파티션 제거"
msgid "Partition"
msgstr ""
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr ""
#, fuzzy
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * 파티션 마운트 포인트는 설치 내부를 기준으로 하며 예를 들어 부팅은 /boot 입니다."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr ""
msgid "Mountpoint: "
msgstr ""
msgid "Current free sectors on device {}:"
msgstr ""
#, fuzzy
msgid "Total sectors: {}"
msgstr "올바른 디렉터리가 아닙니다: {}"
#, fuzzy
msgid "Enter the start sector (default: {}): "
msgstr "시작 섹터를 입력하세요 (백분율 또는 블록 번호, 기본값: {}): "
#, fuzzy
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
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 ""
#, fuzzy
msgid "Encryption type"
msgstr "비밀번호 암호화"
msgid "Iteration time"
msgstr ""
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr ""
msgid "Higher values increase security but slow down boot time"
msgstr ""
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr ""
msgid "Iteration time cannot be empty"
msgstr ""
msgid "Iteration time must be at least 100ms"
msgstr ""
msgid "Iteration time must be at most 120000ms"
msgstr ""
msgid "Please enter a valid number"
msgstr ""
msgid "Partitions"
msgstr ""
msgid "No HSM devices available"
msgstr ""
#, fuzzy
msgid "Partitions to be encrypted"
msgstr "암호화할 파티션을 선택하세요:"
msgid "Select disk encryption option"
msgstr ""
msgid "Select a FIDO2 device to use for HSM"
msgstr ""
#, fuzzy
msgid "Use a best-effort default partition layout"
msgstr "선택한 모든 드라이브를 지우고 최선의 기본 파티션 레이아웃 사용"
#, fuzzy
msgid "Manual Partitioning"
msgstr "수동 구성"
#, fuzzy
msgid "Pre-mounted configuration"
msgstr "구성 없음"
msgid "Unknown"
msgstr ""
msgid "Partition encryption"
msgstr ""
#, python-brace-format
msgid " ! Formatting {} in "
msgstr ""
msgid "← Back"
msgstr ""
msgid "Disk encryption"
msgstr ""
#, fuzzy
msgid "Configuration"
msgstr "구성 없음"
#, fuzzy
msgid "Password"
msgstr "루트 비밀번호"
#, fuzzy
msgid "All settings will be reset, are you sure?"
msgstr "{} 에 대기 중인 파티션이 포함되어 있습니다. 그러면 이러한 파티션이 제거됩니다. 정말 진행하시겠습니까?"
msgid "Back"
msgstr ""
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr ""
#, python-brace-format
msgid "Environment type: {}"
msgstr ""
msgid "The proprietary Nvidia driver is not supported by Sway. It is likely that you will run into issues, are you okay with that?"
msgstr ""
#, fuzzy
msgid "Installed packages"
msgstr "추가 패키지"
#, fuzzy
msgid "Add profile"
msgstr "프로필"
#, fuzzy
msgid "Edit profile"
msgstr "프로필"
#, fuzzy
msgid "Delete profile"
msgstr "인터페이스 제거"
#, fuzzy
msgid "Profile name: "
msgstr "프로필"
#, fuzzy
msgid "The profile name you entered is already in use. Try again"
msgstr "입력한 사용자 이름이 잘못되었습니다. 다시 시도하세요"
#, fuzzy
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "설치할 추가 패키지 작성하세요 (띄어쓰기로 구분, 건너뛰려면 공백): "
#, fuzzy
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "설치할 추가 패키지 작성하세요 (띄어쓰기로 구분, 건너뛰려면 공백): "
msgid "Should this profile be enabled for installation?"
msgstr ""
msgid "Create your own"
msgstr ""
#, fuzzy
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"모든 오픈 소스 드라이버를 설치하려면 그래픽 드라이버를 선택하거나 공백으로 두세요"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
msgid "Graphics driver"
msgstr ""
msgid "Greeter"
msgstr ""
msgid "Please chose which greeter to install"
msgstr ""
msgid "This is a list of pre-programmed default_profiles"
msgstr ""
#, fuzzy
msgid "Disk configuration"
msgstr "구성 없음"
#, fuzzy
msgid "Profiles"
msgstr "프로필"
msgid "Finding possible directories to save configuration files ..."
msgstr ""
#, fuzzy
msgid "Select directory (or directories) for saving configuration files"
msgstr "사용하고 구성할 하드 드라이브를 하나 이상 선택하세요"
#, fuzzy
msgid "Add a custom mirror"
msgstr "사용자 추가"
msgid "Change custom mirror"
msgstr ""
msgid "Delete custom mirror"
msgstr ""
#, fuzzy
msgid "Enter name (leave blank to skip): "
msgstr "사용자명 입력 (공백일 경우 스킵): "
#, fuzzy
msgid "Enter url (leave blank to skip): "
msgstr "사용자명 입력 (공백일 경우 스킵): "
#, fuzzy
msgid "Select signature check option"
msgstr "추가할 인터페이스 선택"
#, fuzzy
msgid "Select signature option"
msgstr "추가할 인터페이스 선택"
msgid "Custom mirrors"
msgstr ""
msgid "Defined"
msgstr ""
#, fuzzy
msgid "Save user configuration (including disk layout)"
msgstr "사용자 구성 저장"
#, fuzzy
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr "저장할 구성의 디렉토리를 입력하세요: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
#, fuzzy
msgid "Saving {} configuration files to {}"
msgstr "구성 저장"
#, fuzzy
msgid "Mirrors"
msgstr "미러 위치"
#, fuzzy
msgid "Mirror regions"
msgstr "미러 위치"
#, fuzzy
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - 최댓값 : {} ( {} 개의 병렬 다운로드 허용, 한 번에 {} 개의 다운로드 허용 )"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "잘못된 값입니다! 유효한 값으로 다시 시도해주세요 [1 부터 {} 까지, 비활성화 하려면 0]"
msgid "Locales"
msgstr ""
#, fuzzy
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "NetworkManager 사용 (GNOME 이나 KDE 에서 그래픽으로 인터넷을 구성하는 데 필요)"
msgid "Total: {} / {}"
msgstr ""
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr ""
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr ""
#, fuzzy
msgid "Enter start (default: sector {}): "
msgstr "시작 섹터를 입력하세요 (백분율 또는 블록 번호, 기본값: {}): "
#, fuzzy
msgid "Enter end (default: {}): "
msgstr "시작 섹터를 입력하세요 (백분율 또는 블록 번호, 기본값: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr ""
msgid "Path"
msgstr ""
msgid "Manufacturer"
msgstr ""
msgid "Product"
msgstr ""
#, fuzzy, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "수동 구성"
msgid "Type"
msgstr ""
#, fuzzy
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "이 옵션은 설치 중에 발생할 수 있는 병렬 다운로드 수를 활성화합니다"
#, fuzzy
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"활성화할 병렬 다운로드 수를 입력하세요.\n"
" (1 부터 {} 까지의 숫자중 하나를 입력하세요)\n"
"메모:"
#, fuzzy, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr " - 최댓값 : {} ( {} 개의 병렬 다운로드 허용, 한 번에 {} 개의 다운로드 허용 )"
#, fuzzy
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - 비활성화/기본 : - ( 병렬 다운로드 비활성화, 한 번에 1 개의 다운로드만 허용 )"
#, fuzzy
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "잘못된 값입니다! 유효한 값으로 다시 시도해주세요 [1 부터 {} 까지, 비활성화 하려면 0]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr ""
#, fuzzy
msgid "Would you like to use unified kernel images?"
msgstr "zram에서 스왑을 사용하시겠습니까?"
msgid "Unified kernel images"
msgstr ""
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr ""
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr ""
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr ""
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr ""
#, fuzzy
msgid "Selected profiles: "
msgstr "인터페이스 제거"
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr ""
#, fuzzy
msgid "Mark/Unmark as nodatacow"
msgstr "파티션을 압축된 것으로 표시/표시 해제(btrfs만 해당)"
#, fuzzy
msgid "Would you like to use compression or disable CoW?"
msgstr "BTRFS 압축을 사용하시겠습니까?"
msgid "Use compression"
msgstr ""
msgid "Disable Copy-on-Write"
msgstr ""
#, fuzzy
msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway"
msgstr "gnome, kde, sway 같은 다양한 데스크탑 환경 및 타일링 창 관리자를 제공합니다"
#, fuzzy, python-brace-format
msgid "Configuration type: {}"
msgstr "구성 없음"
#, fuzzy
msgid "LVM configuration type"
msgstr "구성 없음"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr ""
#, fuzzy
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "NetworkManager 사용 (GNOME 이나 KDE 에서 그래픽으로 인터넷을 구성하는 데 필요)"
#, fuzzy
msgid "Select a LVM option"
msgstr "시간대를 선택하세요"
#, fuzzy
msgid "Partitioning"
msgstr "수동 구성"
msgid "Logical Volume Management (LVM)"
msgstr ""
msgid "Physical volumes"
msgstr ""
msgid "Volumes"
msgstr ""
#, fuzzy
msgid "LVM volumes"
msgstr "하위 볼륨 제거"
#, fuzzy
msgid "LVM volumes to be encrypted"
msgstr "암호화할 파티션을 선택하세요:"
#, fuzzy
msgid "Select which LVM volumes to encrypt"
msgstr "암호화할 파티션을 선택하세요:"
#, fuzzy
msgid "Default layout"
msgstr "디스크 레이아웃"
#, fuzzy
msgid "No Encryption"
msgstr "비밀번호 암호화"
msgid "LUKS"
msgstr ""
msgid "LVM on LUKS"
msgstr ""
msgid "LUKS on LVM"
msgstr ""
#, fuzzy
msgid "Yes"
msgstr "예"
msgid "No"
msgstr ""
#, fuzzy
msgid "Archinstall help"
msgstr "Archinstall 언어"
#, fuzzy
msgid " (default)"
msgstr "(기본)"
msgid "Press Ctrl+h for help"
msgstr ""
msgid "Choose an option to give Sway access to your hardware"
msgstr ""
msgid "Seat access"
msgstr ""
#, fuzzy
msgid "Mountpoint"
msgstr "파티션에 대한 마운트 지점 할당"
msgid "HSM"
msgstr ""
#, fuzzy
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "디스크를 암호화할 암호를 입력하세요 (암호화하지 않으려면 비워 둠): "
#, fuzzy
msgid "Disk encryption password"
msgstr "비밀번호 암호화"
#, fuzzy
msgid "Partition - New"
msgstr "수동 구성"
msgid "Filesystem"
msgstr ""
msgid "Invalid size"
msgstr ""
#, fuzzy
msgid "Start (default: sector {}): "
msgstr "시작 섹터를 입력하세요 (백분율 또는 블록 번호, 기본값: {}): "
#, fuzzy
msgid "End (default: {}): "
msgstr "시작 섹터를 입력하세요 (백분율 또는 블록 번호, 기본값: {}): "
#, fuzzy
msgid "Subvolume name"
msgstr "하위 볼륨 이름 "
#, fuzzy
msgid "Disk configuration type"
msgstr "구성 없음"
msgid "Root mount directory"
msgstr ""
#, fuzzy
msgid "Select language"
msgstr "로케일 언어"
#, fuzzy
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "설치할 추가 패키지 작성하세요 (띄어쓰기로 구분, 건너뛰려면 공백): "
msgid "Invalid download number"
msgstr ""
msgid "Number downloads"
msgstr ""
#, fuzzy
msgid "The username you entered is invalid"
msgstr "입력한 사용자 이름이 잘못되었습니다. 다시 시도하세요"
#, fuzzy
msgid "Username"
msgstr "사용자명 : "
#, fuzzy, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "\"{}\"은(는) 슈퍼유저여야 합니까 (sudo)?"
#, fuzzy
msgid "Interfaces"
msgstr "인터페이스 추가"
msgid "You need to enter a valid IP in IP-config mode"
msgstr ""
msgid "Modes"
msgstr ""
msgid "IP address"
msgstr ""
#, fuzzy
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "게이트웨이(라우터) IP 주소를 입력하시거나 공백으로 두세요: "
msgid "Gateway address"
msgstr ""
#, fuzzy
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "DNS 서버를 입력하세요 (띄어쓰기로 구분, 없는 경우 공백): "
#, fuzzy
msgid "DNS servers"
msgstr "오디오 서버가 없습니다"
#, fuzzy
msgid "Configure interfaces"
msgstr "구성된 {} 인터페이스"
#, fuzzy
msgid "Kernel"
msgstr "커널"
msgid "UEFI is not detected and some options are disabled"
msgstr ""
msgid "Info"
msgstr ""
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr ""
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr ""
#, fuzzy
msgid "Main profile"
msgstr "프로필"
#, fuzzy
msgid "Confirm password"
msgstr "비밀번호 변경"
msgid "The confirmation password did not match, please try again"
msgstr ""
#, fuzzy
msgid "Not a valid directory"
msgstr "올바른 디렉터리가 아닙니다: {}"
#, fuzzy
msgid "Would you like to continue?"
msgstr "BTRFS 압축을 사용하시겠습니까?"
msgid "Directory"
msgstr ""
#, fuzzy
msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)"
msgstr "저장할 구성의 디렉토리를 입력하세요: "
#, fuzzy, python-brace-format
msgid "Do you want to save the configuration file(s) to {}?"
msgstr "구성 저장"
msgid "Enabled"
msgstr ""
msgid "Disabled"
msgstr ""
#, fuzzy
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " 이 문제(및 파일)를 https://github.com/archlinux/archinstall/issues 에 제출하세요"
#, fuzzy
msgid "Mirror name"
msgstr "미러 위치"
msgid "Url"
msgstr ""
#, fuzzy
msgid "Select signature check"
msgstr "추가할 인터페이스 선택"
#, fuzzy
msgid "Select execution mode"
msgstr "'{}' 에 대한 작업 선택"
msgid "Press ? for help"
msgstr ""
msgid "Choose an option to give Hyprland access to your hardware"
msgstr ""
#, fuzzy
msgid "Additional repositories"
msgstr "선택적 저장소"
msgid "NTP"
msgstr ""
msgid "Swap on zram"
msgstr ""
msgid "Name"
msgstr ""
#, fuzzy
msgid "Signature check"
msgstr "추가할 인터페이스 선택"
#, python-brace-format
msgid "Selected free space segment on device {}:"
msgstr ""
#, python-brace-format
msgid "Size: {} / {}"
msgstr ""
#, fuzzy, python-brace-format
msgid "Size (default: {}): "
msgstr "시작 섹터를 입력하세요 (백분율 또는 블록 번호, 기본값: {}): "
#, fuzzy
msgid "HSM device"
msgstr "장치"
msgid "Some packages could not be found in the repository"
msgstr ""
#, fuzzy
msgid "User"
msgstr "사용자명 : "
msgid "The specified configuration will be applied"
msgstr ""
msgid "Wipe"
msgstr ""
#, fuzzy
msgid "Mark/Unmark as XBOOTLDR"
msgstr "파티션을 압축된 것으로 표시/표시 해제(btrfs만 해당)"
#, fuzzy
msgid "Loading packages..."
msgstr "추가 패키지"
msgid "Select any packages from the below list that should be installed additionally"
msgstr ""
#, fuzzy
msgid "Add a custom repository"
msgstr "사용자 추가"
msgid "Change custom repository"
msgstr ""
msgid "Delete custom repository"
msgstr ""
#, fuzzy
msgid "Repository name"
msgstr "미러 위치"
#, fuzzy
msgid "Add a custom server"
msgstr "사용자 추가"
#, fuzzy
msgid "Change custom server"
msgstr "오디오 서버를 선택하세요"
#, fuzzy
msgid "Delete custom server"
msgstr "사용자 제거"
msgid "Server url"
msgstr ""
#, fuzzy
msgid "Select regions"
msgstr "추가할 인터페이스 선택"
#, fuzzy
msgid "Add custom servers"
msgstr "사용자 추가"
#, fuzzy
msgid "Add custom repository"
msgstr "사용자 추가"
#, fuzzy
msgid "Loading mirror regions..."
msgstr "미러 위치"
#, fuzzy
msgid "Mirrors and repositories"
msgstr "선택적 저장소"
#, fuzzy
msgid "Selected mirror regions"
msgstr "미러 위치"
#, fuzzy
msgid "Custom servers"
msgstr "오디오 서버가 없습니다"
#, fuzzy
msgid "Custom repositories"
msgstr "선택적 저장소"
msgid "Only ASCII characters are supported"
msgstr ""
msgid "Show help"
msgstr ""
msgid "Exit help"
msgstr ""
msgid "Preview scroll up"
msgstr ""
msgid "Preview scroll down"
msgstr ""
msgid "Move up"
msgstr ""
msgid "Move down"
msgstr ""
msgid "Move right"
msgstr ""
msgid "Move left"
msgstr ""
msgid "Jump to entry"
msgstr ""
msgid "Skip selection (if available)"
msgstr ""
msgid "Reset selection (if available)"
msgstr ""
#, fuzzy
msgid "Select on single select"
msgstr "추가할 인터페이스 선택"
#, fuzzy
msgid "Select on multi select"
msgstr "시간대를 선택하세요"
msgid "Reset"
msgstr ""
#, fuzzy
msgid "Skip selection menu"
msgstr "'{}' 에 대한 작업 선택"
msgid "Start search mode"
msgstr ""
msgid "Exit search mode"
msgstr ""
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid "Choose an option to give labwc access to your hardware"
msgstr ""
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid "Choose an option to give niri access to your hardware"
msgstr ""
#, fuzzy
msgid "Mark/Unmark as ESP"
msgstr "파티션을 압축된 것으로 표시/표시 해제(btrfs만 해당)"
msgid "Package group:"
msgstr ""
#, fuzzy
msgid "Exit archinstall"
msgstr "Archinstall 언어"
msgid "Reboot system"
msgstr ""
#, fuzzy
msgid "chroot into installation for post-installation configurations"
msgstr "새로 생성된 설치로 chroot 하고 설치 후 구성을 수행하시겠습니까?"
msgid "Installation completed"
msgstr ""
#, fuzzy
msgid "What would you like to do next?"
msgstr "BTRFS 압축을 사용하시겠습니까?"
#, fuzzy, python-brace-format
msgid "Select which mode to configure for \"{}\""
msgstr "\"{}\" 에 대해 구성할 모드를 선택하거나 기본 모드 \"{}\" 을(를) 사용하도록 건너뛰세요"
#, fuzzy
msgid "Incorrect credentials file decryption password"
msgstr "비밀번호 암호화"
#, fuzzy
msgid "Incorrect password"
msgstr "루트 비밀번호"
#, fuzzy
msgid "Credentials file decryption password"
msgstr "비밀번호 암호화"
#, fuzzy
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr "구성 저장"
#, fuzzy
msgid "Credentials file encryption password"
msgstr "비밀번호 암호화"
#, 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 "Print service"
msgstr ""
#, fuzzy
msgid "Would you like to configure the print service?"
msgstr "BTRFS 압축을 사용하시겠습니까?"
msgid "Power management"
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 "비밀번호를 입력하세요: "
#, 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 "Starting device modifications in "
msgstr ""
#, fuzzy
msgid "No network connection found"
msgstr "네트워크 구성 없음"
#, fuzzy
msgid "Would you like to connect to a Wifi?"
msgstr "BTRFS 압축을 사용하시겠습니까?"
#, fuzzy
msgid "No wifi interface found"
msgstr "구성된 {} 인터페이스"
#, fuzzy
msgid "Select wifi network to connect to"
msgstr "구성할 네트워크 인터페이스를 하나 선택하세요"
msgid "Scanning wifi networks..."
msgstr ""
#, fuzzy
msgid "No wifi networks found"
msgstr "네트워크 구성 없음"
msgid "Failed setting up wifi"
msgstr ""
#, fuzzy
msgid "Enter wifi password"
msgstr "비밀번호를 입력하세요: "
msgid "Ok"
msgstr ""
msgid "Removable"
msgstr ""
msgid "Install to removable location"
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr ""
msgid "Will install to standard location with NVRAM entry"
msgstr ""
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr ""
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr ""
msgid "USB drives or other portable external media."
msgstr ""
msgid "Systems where you want the disk to be bootable on any computer."
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr ""
msgid "Will install to custom location with NVRAM entry"
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr ""
msgid "most Apple Macs, many laptops..."
msgstr ""
#, fuzzy
msgid "Language"
msgstr "로케일 언어"
msgid "Compression algorithm"
msgstr ""
#, fuzzy
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "base, base-devel, linux, linux-firmware, efibootmgr 및 선택적 프로파일 패키지와 같은 패키지만 설치됩니다."
#, fuzzy
msgid "Select zram compression algorithm:"
msgstr "마운트 지점을 선택하세요 :"
msgid "Use Network Manager (default backend)"
msgstr ""
msgid "Use Network Manager (iwd backend)"
msgstr ""
================================================
FILE: archinstall/locales/ku/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Cyaxares\n"
"Language: ku\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.8\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] Peleke tomarkirinê li vir hat afirandin: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Tika vê pirsgirêkê (û pelê) bişîne bo https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "Tu dixwazî têk bibî?"
msgid "And one more time for verification: "
msgstr "Û careke din ji bo piştrastkriinê: "
msgid "Would you like to use swap on zram?"
msgstr "Tu dixwazî swap li ser zram bi kar bînî?"
msgid "Desired hostname for the installation: "
msgstr "Navê mêvandarê xwestî ji bo sazkirinê: "
msgid "Username for required superuser with sudo privileges: "
msgstr "Navê bikarhêner ji bo superbikarhênerê pêwîst bi mafên sudo yên taybet: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "Her bikarhênerên din ên ku werin sazkirin (ku bikarhêner tune ne vala bihêle): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "Divê ev bikarhêner superbikarhêner (sudoer) be?"
msgid "Select a timezone"
msgstr "Herêmeke demê hilbijêre"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "Tu dixwazî GRUB wekî barkarê destpêkirinê li şûna systemd-boot bi kar bînî?"
msgid "Choose a bootloader"
msgstr "Barkarê destpêkirinê hilbijêre"
msgid "Choose an audio server"
msgstr "Rajekarekî dengî hilbijêre"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Tenê pakêtên wekî base, base-devel, linux, linux-firmware, efibootmgr û pakêtên profîlê yên vebijêrkî tên sazkirin."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr ""
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "Ku tu gerokeke tevnê dixwazî, wekî firefox an chromium, tu dikarî wê di fermana jêrîn de diyar bikî."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "Pakêtên din binivîse ji bo sazkirinê (bi valahiyê veqetandî, bo derbas bikî vala bihêle): "
msgid "Copy ISO network configuration to installation"
msgstr "Sazkariyên tora ISO ya ji bo sazkirinê jê bigire"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "Rêveberiya torê bi kar bîne (ji bo sazkirina înternetê bi awayekî grafîkî di GNOME û KDE de pêdivî ye)"
msgid "Select one network interface to configure"
msgstr "Ji bo sazkirinê navrûyeke torê hilbijêre"
msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
msgstr "Ka kîjan awaya ku bo \"{}\" were rêkxisitin hilbijêre yan derbas bike bo bikaranîna awaya berdest \"{}\""
#, python-brace-format
msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): "
msgstr "IP û bintorê ji bo {} têxîne (mînak: 192.168.0.5/24): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "Navnîşana IP ya dergehê (router) a xwe têxîne yan ku tune be vala bihêle: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "Rajekarên DNS a xwe têxîne (bi valahiyê veqetandî, ku tune be vala bihêle): "
msgid "Select which filesystem your main partition should use"
msgstr "Dabeşkirinê xwe ya sereke divê kîjan pergala pelê bi kar bîne hilbijêre"
msgid "Current partition layout"
msgstr "Şêwaza dabeşkirina heyî"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"Ka tu yê çi bikî bi\n"
"{} re hilbijêre"
msgid "Enter a desired filesystem type for the partition"
msgstr "Cûreyê pergala pelê ya xwestî ji bo dabeşkirinê têxîne"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "Cihê destpêkê têxîne (bi yekîneyên parçekirî: s, GB, %, hwd.; berdest: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "Cihê dawî têxîne (bi yekîneyên parçekirî: s, GB, %, hwd.; mînak: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} tê de dabeşkirinên rêzkirî heye, ev ê wan jê bibe, tu bawer î?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"Li gorî naverokê divê kîjan dabeşkirin werin jêbirin hilbijêre"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"Li gorî naverokê divê kîjan dabeşkirin were siwarkirin hilbijêre"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * Xalên siwarkirina dabeşkirinê bi hundirê sazkirinê ve girêdayî ne, barkirin wê wekî mînak /boot be."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "Cihê ku dabeşkirin lê were siwarkirin hilbijêre (ji bo rakirina xala siwarkirinê vala bihêle): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"Bo dabeşkirin were veşartin ji bo formatkirinê hilbijêre"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"Bo dabeşkirin wekî şîfrekirî were nîşankirin hilbijêre"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"Bo dabeşkirin wekî destpêkbar were nîşankirin hilbijêre"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"Bo dabeşkirin pergaleke pelê li ser were sazkirin hilbijêre"
msgid "Enter a desired filesystem type for the partition: "
msgstr "Cûreyê pergala pelê ya xwestî ji bo dabeşkirinê têxîne: "
msgid "Archinstall language"
msgstr "Zimanê Archinstall"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "Hemû ajokarên hilbijartî jê dibe û şewaza dabeşkirina kesane ya bi têkoşîna herî baş bi kar bîne"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "Ka bi her ajokarekê re tu yê çi bikî (bi bikaranîna dabeşkirinê tê şopandin) hilbijêre"
msgid "Select what you wish to do with the selected block devices"
msgstr "Tiştê ku tu dixwazî bi amûrên astengkirî yên hilbijartî bikî hilbijêre"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "Ev lîsteyek profîlên pêş-bernamekirî ye, dibe ku ew sazkirina tiştên wekî jîngehên sermaseyê hêsantir bikin"
msgid "Select keyboard layout"
msgstr "Şêwaza kilîtdankê hilbijêre"
msgid "Select one of the regions to download packages from"
msgstr "Ji bo daxistina pakêtan yek ji herêman hilbijêre"
msgid "Select one or more hard drives to use and configure"
msgstr "Yek an çend req ajokar hilbijêre da ku bi kar bîn û rêk bixî"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "Ji bo çêtirîn lihevhatin bi reqalavên AMD a te re, dibe ku tu bixwazî vebijêrkên hemû çavkaniya vekirî yên AMD / ATI bi kar bînî."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "Ji bo çêtirîn lihevhatin bi reqalavên Intel a te re, dibe ku tu bixwazî vebijêrkên hemû çavkaniya vekirî yên Intel bi kar bînî.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "Ji bo çêtirîn lihevhatin bi reqalavên Nvidia ya te re, dibe ku tu bixwazî vebijêrkên hemû çavkaniya vekirî yên Nvidia bi kar bînî.\r\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"Ajokareke grafîkê hilbijêre yan vala bihêle da ku hemû ajokarên çavkaniya vekirî werin sazkirin"
msgid "All open-source (default)"
msgstr "Hemû çavkaniya vekirî (berdest)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "Ka kîjan kernel bo bi kar bînî hilbijêre yan ji bo berdest \"{}\" vala bihêle"
msgid "Choose which locale language to use"
msgstr "Ka kîjan zimanê herêmî bo bikaranînê hilbijêre"
msgid "Choose which locale encoding to use"
msgstr "Ka kîjan kodkirina herêmî bo bikaranînê hilbijêre"
msgid "Select one of the values shown below: "
msgstr "Yek ji nirxên ku li jêr tên nîşandan hilbijêre: "
msgid "Select one or more of the options below: "
msgstr "Yek an çend ji vebijêrkên li jêr hilbijêre: "
msgid "Adding partition...."
msgstr "Dabeşkirin tevlî dibe...."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "Ji bo domandinê divê tu cûreyek fs a derbasdar têxînî. Ji bo cûreyên fs a derbasdar li `man partid` binêre."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "Şaşetî: Lîstekirina profîlan li ser girêdanê \"{}\" bû sedema:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "Şaşetî: Encama \"{}\" wekî JSON nehat deşîfrekirin:"
msgid "Keyboard layout"
msgstr "Şêwaza kilîtdankê"
msgid "Mirror region"
msgstr "Herêma eynikê"
msgid "Locale language"
msgstr "Zimanê herêmî"
msgid "Locale encoding"
msgstr "Kodkirina herêmî"
msgid "Drive(s)"
msgstr "Ajokar"
msgid "Disk layout"
msgstr "Şêwaza dîskê"
msgid "Encryption password"
msgstr "Borînpeyva şîfrekirinê"
msgid "Swap"
msgstr "Swap"
msgid "Bootloader"
msgstr "Barkarê destpêkirinê"
msgid "Root password"
msgstr "Borînpeyva Root"
msgid "Superuser account"
msgstr "Jimarê superbikarhêner"
msgid "User account"
msgstr "Jimarê bikarhêner"
msgid "Profile"
msgstr "Profîl"
msgid "Audio"
msgstr "Deng"
msgid "Kernels"
msgstr "Kernel"
msgid "Additional packages"
msgstr "Pakêtên vebijêrkî"
msgid "Network configuration"
msgstr "Sazkirina torê"
msgid "Automatic time sync (NTP)"
msgstr "Hevdemkirina demê ya xweber (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "Sazkirina ({} rêkxisitin(an) wenda ne)"
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 ""
"Te biryar da ku tu yê hilbijartina reqdîsk derbas bikî\n"
"û wê her sazkirina ajokarê çi be ku li {} hatiye sazkirin bi kar bîne (ezmûnkirî)\n"
"ŞIYARÎ: Archinstall wê guncavbûna vê sazkirinê kontrol neke\n"
"Tu dixwazî bidomînî ?"
msgid "Re-using partition instance: {}"
msgstr "Ji nû ve bikaranîna mînaka dabeşkirinê: {}"
msgid "Create a new partition"
msgstr "Dabeşkirineke nû biafrîne"
msgid "Delete a partition"
msgstr "Dabeşkirinekê jê bibe"
msgid "Clear/Delete all partitions"
msgstr "Hemû dabeşkirinan pak bike/ jê bibe"
msgid "Assign mount-point for a partition"
msgstr "Ji bo dabeşkirinê xala-siwarkirinê destnîşan bike"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "Dabeşkirinekê ku bo were formatkirin nîşan bide/nede (daneyan jê dibe)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "Dabeşkirinekê wekî şifrekirî nîşan bide/nede"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "Dabeşkirinekê wekî destpêkbar nîşan bide/nede (xweber ji bo /boot)"
msgid "Set desired filesystem for a partition"
msgstr "Pergala pelê ya xwestî ji bo dabeşkirinê saz bike"
msgid "Abort"
msgstr "Têk bibe"
msgid "Hostname"
msgstr "Navê mêvandar"
msgid "Not configured, unavailable unless setup manually"
msgstr "Nehatiye rêkxisitin, heya ku bi destan saz nekî ne pêkan e"
msgid "Timezone"
msgstr "Herêma demê"
msgid "Set/Modify the below options"
msgstr "Vebijarkên li jêr saz bike/biguherîne"
msgid "Install"
msgstr "Saz bike"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"Bo derbas bikî ESC bi kar bîne \n"
"\n"
msgid "Suggest partition layout"
msgstr "Şewaza dabeşkirinê pêşniyar bike"
msgid "Enter a password: "
msgstr "Borînpeyvekê têxîne: "
msgid "Enter a encryption password for {}"
msgstr "Borînpeyveke şîfrekirî ji bo {} têxîne"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "Borînpeyva şîfrekirinê ya dîskê têxîne (ku şîfrekrin tune be vala bihêle): "
msgid "Create a required super-user with sudo privileges: "
msgstr "Bi mafên sudo yên taybet re super-bikarhênerek pêwist biafirîne: "
msgid "Enter root password (leave blank to disable root): "
msgstr "Borînpeyva root têxîne (ku root neçalak bike vala bihêle ): "
msgid "Password for user \"{}\": "
msgstr "Borînpeyv ji bo bikarhêner \"{}\": "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "Piştrastkirina hebûna pakêtên din bike (ev dibe ku çend çirkeyan bidome)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "Tu dixwazî hevdemkirina demê ya xweber (NTP) bi rajekarên demê yên kesane re bi kar bînî?\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 ""
"Bo ku NTP bixebite, dibe ku demê reqalav û gavên din ên piştî sazkirinê pêwist be.\n"
"\n"
"Ji bo bêtir zanyarî, Tika wiki Arch kontrol bike"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "Bo afirandina bikarhênereke din navê bikarhênereke vebijêrkî têxîne (bo derbas bikî vala bihêle): "
msgid "Use ESC to skip\n"
msgstr "Bo derbas bikî ESC bi kar bîne\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
"Tiştekî ji listeyê hilbijêre, û yek ji çalakiyên heyî ji bo pêkanîna wê hilbijêre"
msgid "Cancel"
msgstr "Têk bibe"
msgid "Confirm and exit"
msgstr "Biperjîne û derkeve"
msgid "Add"
msgstr "Tevlî bike"
msgid "Copy"
msgstr "Jê bigire"
msgid "Edit"
msgstr "Biguherîne"
msgid "Delete"
msgstr "Jê bibe"
msgid "Select an action for '{}'"
msgstr "Çalakiyekê ji bo '{}' hilbijêre"
msgid "Copy to new key:"
msgstr "Bo kilîtê nû jê bigire:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "Çûreya nic nenas e: {}. Nirxên gengaz ev in {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"Ev rêkxisitinê te ya hilbijartî ye:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman jixwe dixebite, herî pir 10 xulekan bimîne benda bidawîbûna wî."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "Kilîtê pacman ya pêş-hebûyî hiç tune bû. Tika berî ku archinstall bi kar bînî, danişînên pacman ên heyî pak bike."
msgid "Choose which optional additional repositories to enable"
msgstr "Ka kîjan depoyên vebijêrkî divê çalak bibe hilbijêre"
msgid "Add a user"
msgstr "Bikarhênerekî tevlî bike"
msgid "Change password"
msgstr "Borînpeyvê biguherîne"
msgid "Promote/Demote user"
msgstr "Bikarhêner blind bike/neke"
msgid "Delete User"
msgstr "Bikarhêner jê bibe"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"Bikarhênereke nû danasîn bike\n"
msgid "User Name : "
msgstr "Navê bikarhêner: "
msgid "Should {} be a superuser (sudoer)?"
msgstr "Divê {} superbikarhênera (sudoer) be?"
msgid "Define users with sudo privilege: "
msgstr "Bikarhênerên bi mafên sudo yên taybet danasîn bike: "
msgid "No network configuration"
msgstr "Rêkxisitina torê tune ye"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Binpeldankên xwestî li ser dabeşekirineke btrfs saz bike"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"Ka kîjan dabeşkirin li ser binpeldank divê saz bibe hilbijêre"
msgid "Manage btrfs subvolumes for current partition"
msgstr "Birêvebirina btrfs ji bo dabeşkirina heyî bi rê ve bibe"
msgid "No configuration"
msgstr "Rêkxisitin tune ye"
msgid "Save user configuration"
msgstr "Rêkxisitinê bikarhêner tomar bike"
msgid "Save user credentials"
msgstr "Bawernameyên bikarhêner tomar bike"
msgid "Save disk layout"
msgstr "Şêwaza dîskê tomar bike"
msgid "Save all"
msgstr "Hemû tomar bike"
msgid "Choose which configuration to save"
msgstr "Ka kîjan rêkxisitin divê tomar bibe hilbijêre"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "Ji bo rêkxisitin ku werin tomarkirin pelrêçekê têxîne: "
msgid "Not a valid directory: {}"
msgstr "Pelrêç nederbasdar e: {}"
msgid "The password you are using seems to be weak,"
msgstr "Ew borînpeyva ku tu bi kar tînî xuya dike lawaz e,"
msgid "are you sure you want to use it?"
msgstr "tu bawer î ku dixwazî wê bi kar bînî?"
msgid "Optional repositories"
msgstr "Depoyên vebijêrkî"
msgid "Save configuration"
msgstr "Rêkxisitinê tomar bike"
msgid "Missing configurations:\n"
msgstr "Rêkxisitinên wenda:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "An borînpeyva root an herî kêm 1 superbikarhêner were diyarkirin"
msgid "Manage superuser accounts: "
msgstr "Jimarên superbikarhêner bi rê ve bibe: "
msgid "Manage ordinary user accounts: "
msgstr "Jimarên bikarhênerên asayî bi rê ve bibe: "
msgid " Subvolume :{:16}"
msgstr " Binpeldank :{:16}"
msgid " mounted at {:16}"
msgstr " li {:16} siwar bûye"
msgid " with option {}"
msgstr " bi vebijêrk {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
"Nirxên xwestî ji bo binpelandkeke nû dagire \n"
msgid "Subvolume name "
msgstr "Navê binpeldankê "
msgid "Subvolume mountpoint"
msgstr "Xala siwarkirinê ya binpeldankê"
msgid "Subvolume options"
msgstr "Vebijêrkên binpeldankê"
msgid "Save"
msgstr "Tomar bike"
msgid "Subvolume name :"
msgstr "Navê binpeldankê :"
msgid "Select a mount point :"
msgstr "Xaleke siwarkirinê hilbijêre:"
msgid "Select the desired subvolume options "
msgstr "Vebijarkên binpeldankê yên xwestî hilbijêre "
msgid "Define users with sudo privilege, by username: "
msgstr "Bikarhênerên bi mafên sudo yên taybet, bi navê bikarhêner danasîn bike: "
#, python-brace-format
msgid "[!] A log file has been created here: {}"
msgstr "[!] Peleke tomarkirinê li vir hat afirandin: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "Tu dixwazî BTRFS bi avahiyeke kesane bi kar bînî?"
msgid "Would you like to use BTRFS compression?"
msgstr "Tu dixwaz î kompressa BTRFS bi kar bînî?"
msgid "Would you like to create a separate partition for /home?"
msgstr "Tu dixwazî ji bo /home beşeke cûda biafrînî?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "Kapasîteya herî kêm a ajokarên hilbijartî a pêwîst ji bo pêşniyareke xweber tune ye\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "Kapasîteya herî kêm ji bo dabeşkirina /home: {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Kapasîteya herî kêm ji bo dabeşkirina Arch Linux: {}GB"
msgid "Continue"
msgstr "Bidomîne"
msgid "yes"
msgstr "erê"
msgid "no"
msgstr "na"
msgid "set: {}"
msgstr "saz bike: {}"
msgid "Manual configuration setting must be a list"
msgstr "Sazkirina rêkxisitinê destî divê lîsteyek be"
msgid "No iface specified for manual configuration"
msgstr "Ji bo rêkxisitina destî iface nehatiye diyarkirin"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "Rêkxisitina nic a destî bê DHCP a xweber pêdiviya navnîşana IP dike"
msgid "Add interface"
msgstr "Navrûyê tevlî bike"
msgid "Edit interface"
msgstr "Navrûyê biguherîne"
msgid "Delete interface"
msgstr "Navrûyê jê bibe"
msgid "Select interface to add"
msgstr "Navrûya ji bo tevlîkirinê hilbijêre"
msgid "Manual configuration"
msgstr "Rêkxisitina destî"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "Dabeşkrinê wekî nîşan bide/nede (tenê btrfs)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "Borînpeyva ku tu bi kar tînî xuya dike ku lawaz e, tu bawer î ku tu dixwazî wê bi kar bînî?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "Hilbijartinekê ji jîngehên sermaseyê û rêveberên çarçoveyan ên sermaseyê peyda dike, mînak gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "Jîngeha sermaseya xwe ya xwestî hilbijêre"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "Sazkirinek pir bingehîn e ku dihêle tu Arch Linux li gorî xwe kesane bikî."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "Hilbijartinek ji pakêtên yên cûrbecûr peyda dike ji bo sazkirin û çalakkirinê, mînak httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "Ka kîjan rajekar divê saz bikî hilbijêre, ku tune bin wê demê sazkirineke biçûk wê were kirin"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "Pergaleke herî biçûk û her wiha ajokarên xorg û ajokarên grafîkan saz dike."
msgid "Press Enter to continue."
msgstr "Bo domandinê Enter bitikîne."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "Tu dixwazî bi chroot têkevî nav sazkirina nû afirandî û rêkxistina piştî-sazkirinê pêk bînî?"
msgid "Are you sure you want to reset this setting?"
msgstr "Tu bi rastî dixwazî vê sazkariyê ji nû ve saz bikî?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "Yek an çend req dîsk hilbijêre ku bi kar bînî û rêkxisitin bixî\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "Her guhertinek li sazkariyên heyî wê şêwaza dîskê ji nû ve saz bike!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "Ku tu hilbijartina dîskê ji nû ve saz bikî, ev ê şewaza dîskê ya heyî jî ji nû ve saz bike. Tu bawer î?"
msgid "Save and exit"
msgstr "Tomar bike û derkeve"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"dabeşkirinên rêzkirî tê de heye, ev ê wan rake, tu bawer î?"
msgid "No audio server"
msgstr "Tu rajekarên dengê tune ye"
msgid "(default)"
msgstr "(berdest)"
msgid "Use ESC to skip"
msgstr "Bo derbas bikî ESC bi kar bîne"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"CTRL + C bi kar bîne da ku hilbijartina heyî ji nû ve saz bikî\n"
"\n"
msgid "Copy to: "
msgstr "Jê bigire bo: "
msgid "Edit: "
msgstr "Biguherîne: "
msgid "Key: "
msgstr "Kilît: "
msgid "Edit {}: "
msgstr "{}: biguherîne "
msgid "Add: "
msgstr "Tevlî bike: "
msgid "Value: "
msgstr "Nirx: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "Tu dikarî hilbijartina ajokar û dabeşkirinê derbas bikî û her sazkirina ajokara ku li /mnt hatiye sazkirin bi kar bînî (ezmûnî)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "Yek ji dîskan hilbijêre yan derbas bike û /mnt wekî berdest bi kar bîne"
msgid "Select which partitions to mark for formatting:"
msgstr "Ka kîjan dabeşkirinên bo formatkirinê werin nîşankirin hilbijêre:"
msgid "Use HSM to unlock encrypted drive"
msgstr "Ji bo vekirina ajokara şîfrekirî HSM bi kar bîne"
msgid "Device"
msgstr "Amûr"
msgid "Size"
msgstr "Mezinahî"
msgid "Free space"
msgstr "Cihê vala"
msgid "Bus-type"
msgstr "Cûreya-Bus"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "An borînpeyva root an herî kêm 1 bikarhênera xwedî mafên sudo yên taybet were destnîşankirin"
msgid "Enter username (leave blank to skip): "
msgstr "Navê bikarhêner têxîne (bo derbas bikî vala bihêle): "
msgid "The username you entered is invalid. Try again"
msgstr "Navê bikarhênerê ku te nivîsand ne derbasdar e. Dîsa hewl bide"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "Divê \"{}\" superbikarhêner (sudo) be?"
msgid "Select which partitions to encrypt"
msgstr "Beşên ku werin şîfrekirin hilbijêre"
msgid "very weak"
msgstr "pir lawaz e"
msgid "weak"
msgstr "lawaz e"
msgid "moderate"
msgstr "navînî e"
msgid "strong"
msgstr "bihêz e"
msgid "Add subvolume"
msgstr "Binpeldankê tevlî bike"
msgid "Edit subvolume"
msgstr "Binpeldankê biguherîne"
msgid "Delete subvolume"
msgstr "Binpeldankê jê bibe"
msgid "Configured {} interfaces"
msgstr "Navrûyên {} ên rêkxistî"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "Ev vebijêrk jimara daxisitinên paralel ên ku dikarin di dema sazkirinê de werin xuyakirin çalak dike"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"Jimara daxisitinên paralel ên ku werin çalakkirin têxîne.\n"
"(Nirxekê di navbera 1 û {} de têxîne)\n"
"Nîşe:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - Nirxa herî pir: {} ( Mafê dide daxisitinên paralel ên {}, mafê dide {} daxisitinan di yek car de )"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - Nirxa herî kêm: 1 ( Mafê dide 1 daxisitina paralel, mafê dide 2 daxisitinan di yek car de )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - Neçalak/Berdest: 0 ( Daxistina paralel neçalak dike, mafê tenê dide 1 daxistin di yek car de )"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "Têketineke nederbasdar! Bi têketineke derbasdar re dîsa hewl bide [1 bo {max_downloads}, an 0 bo neçalakkirinê]"
msgid "Parallel Downloads"
msgstr "Daxistinên parallel"
msgid "ESC to skip"
msgstr "ESC bo derbas bikî"
msgid "CTRL+C to reset"
msgstr "CTRL+C bo jinûvesazkirinê"
msgid "TAB to select"
msgstr "TAB bo hilbijartinê"
msgid "[Default value: 0] > "
msgstr "[Nirxa berdest: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "Ji bo ku tu bikaribî vê wergerê bi kar bînî, tika cûrenivîsekeke ku ziman piştgirî dike bi destan saz bike."
msgid "The font should be stored as {}"
msgstr "Divê çûrenivîs wekî {} were tomarkirin"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Bo xebitandina Archinstall mafên root pêdivî dike. Ji bo bêtir zanyarî li --alîkarî binêre."
msgid "Select an execution mode"
msgstr "Awayeke pêkanînê hilbijêre"
#, python-brace-format
msgid "Unable to fetch profile from specified url: {}"
msgstr "Nikare profîlê ji navnîşana girêdanê ya diyarkirî bîne : {}"
#, python-brace-format
msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}"
msgstr "Pêdivî ye ku profîl nava yekana be, lê pênaseyên profîlê yên bi navên dûbarekirî hatin dîtin: {}"
msgid "Select one or more devices to use and configure"
msgstr "Yek an çend amûran bo bikaranîn û rêkxisitinê hilbijêre"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "Ku tu hilbijartina amûrê ji nû ve saz bikî, ev ê şêwaza dîskê ya heyî jî ji nû ve saz bike. Tu bawer î?"
msgid "Existing Partitions"
msgstr "Dabeşkirinên heyî"
msgid "Select a partitioning option"
msgstr "Vebijêrkeke dabeşkirinê hilbijêre"
msgid "Enter the root directory of the mounted devices: "
msgstr "Peldanka root ya amûrênn siwarkirî têxîne: "
#, python-brace-format
msgid "Minimum capacity for /home partition: {}GiB\n"
msgstr "Kapasîteya herî kêm ji bo dabeşkirina /home: {}GiB\n"
#, python-brace-format
msgid "Minimum capacity for Arch Linux partition: {}GiB"
msgstr "Kapasîteya herî kêm ji bo dabeşkirina Arch Linux: {}GiB"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "Ev lîsteyek ji profiles_bck ên pêş-bernamekirî ye, dibe ku ew sazkirina tiştên wekî jîngehên sermaseyê hêsantir bike"
msgid "Current profile selection"
msgstr "Hilbijartina profîla heyî"
msgid "Remove all newly added partitions"
msgstr "Hemû beşên nû tevlîkirî rake"
msgid "Assign mountpoint"
msgstr "Xala siwarkirinê destnîşan bike"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "Nîşan bike/neke bo were formatkirin (daneyan jê dibe)"
msgid "Mark/Unmark as bootable"
msgstr "Wekî destpêkbar nîşan bide/nede"
msgid "Change filesystem"
msgstr "Pergala pelê biguherîne"
msgid "Mark/Unmark as compressed"
msgstr "Wekî guvaştî nîşan bide/nede"
msgid "Set subvolumes"
msgstr "Binpeldankan saz bike"
msgid "Delete partition"
msgstr "Dabeşkirinê jê bibe"
msgid "Partition"
msgstr "Dabeşkirin"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "Ev dabeşkirin niha şîfrekirî ye, ji bo formatkirina wê divê pergaleke pelan were destnîşankirin"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "Xalên siwarkirina dabeşkirinê bi hundirê sazkirinê ve girêdayî ne, despêkirin wê wekî mînak /boot be."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "Ku xala siwarkirinê /boot hatibe sazkirin, wê demê dabeşkirin jî wê wekî destpêkbar were nîşankirin."
msgid "Mountpoint: "
msgstr "Xala siwarkirinê: "
msgid "Current free sectors on device {}:"
msgstr "Sektorên vala ên niha li ser amûra {}:"
msgid "Total sectors: {}"
msgstr "Tevahiya sektoran: {}"
msgid "Enter the start sector (default: {}): "
msgstr "Sektora destpêkê têxîne (berdest: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
msgstr "Sektora dawî ya dabeşkirinê têxîne (ji sedî an jimareya blokê, kesane: {}): "
msgid "This will remove all newly added partitions, continue?"
msgstr "Ev ê hemû dabeşkirinên nû tevlîkirî rake, bidomînî?"
#, python-brace-format
msgid "Partition management: {}"
msgstr "Rêvebiriya dabeşkirinê: {}"
#, python-brace-format
msgid "Total length: {}"
msgstr "Dirêjahiya tevahî: {}"
msgid "Encryption type"
msgstr "Cûreyê şîfrekirinê"
msgid "Iteration time"
msgstr "Dema dûbarekirinê"
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr "Dema dûbarekirinê ji bo şîfrekirina LUKS têxîne (bi milîçirkeyan)"
msgid "Higher values increase security but slow down boot time"
msgstr "Nirxên bilind ewlehiyê bilind dikin lê di dema destpêkirinê de hêdî dikin"
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr "Kesane: 10000ms, Rêjeya pêşniyarkirî: 1000-60000"
msgid "Iteration time cannot be empty"
msgstr "Dema dûbarekirinê nabe ku vala be"
msgid "Iteration time must be at least 100ms"
msgstr "Dema dûbarekirinê divê herî kêm 100ms be"
msgid "Iteration time must be at most 120000ms"
msgstr "Dema dûbarekirinê divê herî pir 120000ms be"
msgid "Please enter a valid number"
msgstr "Tika jimareke derbasdar têxîne"
msgid "Partitions"
msgstr "Dabeşkirin"
msgid "No HSM devices available"
msgstr "Amûrên HSM tune ne"
msgid "Partitions to be encrypted"
msgstr "Beşên ku werin şîfrekirin"
msgid "Select disk encryption option"
msgstr "Vebijêrka şîfrekirina dîskê hilbijêre"
msgid "Select a FIDO2 device to use for HSM"
msgstr "Amûrek FIDO2 hilbijêre ku ji bo HSM bi kar bînî"
msgid "Use a best-effort default partition layout"
msgstr "Şewaza dabeşkirina kesane ya bi têkoşîna herî baş bi kar bîne"
msgid "Manual Partitioning"
msgstr "Dabeşkirina destî"
msgid "Pre-mounted configuration"
msgstr "Rêkxistina pêş-siwarkirî"
msgid "Unknown"
msgstr "Nenas"
msgid "Partition encryption"
msgstr "Şîfrekirina dabeşkirinê"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! Formatkirina {} di "
msgid "← Back"
msgstr "← Vegere"
msgid "Disk encryption"
msgstr "Şîfrekirina dîskê"
msgid "Configuration"
msgstr "Rêkxistin"
msgid "Password"
msgstr "Borînpeyv"
msgid "All settings will be reset, are you sure?"
msgstr "Hemû sazkarî wê ji nû ve werin sazkirin, tu bawer î?"
msgid "Back"
msgstr "Vegere"
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr "Tika, ji bo profîlên hilbijartî kîjan silavkar divê saz bikî hilbijêre: {}"
#, python-brace-format
msgid "Environment type: {}"
msgstr "Cûreya jîngehê: {}"
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 "Ajokarê xwedan Nvidia ji aliyê Sway ve nayê piştgirîkirin. Dibe ku tu bi pirsgirêkan re rû bi rû werî, tu bi wê re baş î?"
msgid "Installed packages"
msgstr "Pakêtên sazkirî"
msgid "Add profile"
msgstr "Profîlê tevlî bike"
msgid "Edit profile"
msgstr "Profîlê biguherîne"
msgid "Delete profile"
msgstr "Profîlê jê bibe"
msgid "Profile name: "
msgstr "Navê profîlê: "
msgid "The profile name you entered is already in use. Try again"
msgstr "Navê profîlê ku te nivîsand jixwe tê bikaranîn. Dîsa hewl bide"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "Pakêtên ku bi vê profîlê werin sazkirin (bi valahiyê veqetandî, bo derbas bikî vala bihêle): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "Rajearên ku bi vê profîlê re werin çalakkirin (bi valahiyê veqetandî, bo derbas bikî vala bihêle): "
msgid "Should this profile be enabled for installation?"
msgstr "Divê ev profîl ji bo sazkirinê were çalakkirin?"
msgid "Create your own"
msgstr "Ya xwe biafirîne"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"Ajokarek grafîkan hilbijêre yan vala bihêle da ku hemû ajokarên çavkaniya vekirî werin sazkirin"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway gihîştina cihê te pêwîst dike (komek ji req amûran b.m. kilîtdank, mişk, hwd)"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Vebijêrkekê hilbijêre da ku Sway bigihêje reqalavê te"
msgid "Graphics driver"
msgstr "Ajokara grafîkan"
msgid "Greeter"
msgstr "Silavkar"
msgid "Please chose which greeter to install"
msgstr "Tika ka kîjan silavkar divê were sazkirin hilbijêre"
msgid "This is a list of pre-programmed default_profiles"
msgstr "Ev lîsteyek ji profîlên_berdest ên pêş-bernamekirî ye"
msgid "Disk configuration"
msgstr "Rêkxisitina dîskê"
msgid "Profiles"
msgstr "Profîl"
msgid "Finding possible directories to save configuration files ..."
msgstr "Dîtina peldankên gengaz ji bo tomarkirina pelên rêkxisitinê ..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "Ji bo tomarkirina pelên rêkxisitinê pelrêçekê (an jî pelrêçan) hilbijêre"
msgid "Add a custom mirror"
msgstr "Eynika kesane tevlî bike"
msgid "Change custom mirror"
msgstr "Eynika kesane biguherîne"
msgid "Delete custom mirror"
msgstr "Eynika kesane jê bibe"
msgid "Enter name (leave blank to skip): "
msgstr "Navê têxîne (bo derbas bikî vala bihêle): "
msgid "Enter url (leave blank to skip): "
msgstr "Girêdanê têxîne (bo derbas bikî vala bihêle): "
msgid "Select signature check option"
msgstr "Vebijêrka kontrolkirina îmzeyê hilbijêre"
msgid "Select signature option"
msgstr "Vebijêrka îmzeyê hilbijêre"
msgid "Custom mirrors"
msgstr "Eynikên kesane"
msgid "Defined"
msgstr "Danaskirî"
msgid "Save user configuration (including disk layout)"
msgstr "Rêkxisitinên bikarhêner tomar bike (tevlî şêwaza dîskê)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"Ji bo rêkxistin(an) ku werin tomarkirin peldankekê têxîne (bidawîkirina tabê çalak e)\n"
"Pelrêçê tomar bike: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"Tu dixwazî pel(ên) rêkxistî li cihê jêrîn tomar bibin?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "{} pelên rêkxsitinê tên tomarkirin bo {}"
msgid "Mirrors"
msgstr "Eynik"
msgid "Mirror regions"
msgstr "Herêmên eynikê"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - Nirxa herî pir: {} ( Mafê dide {} daxistinên paralel, mafê dide {max_downloads+1} daxistinan di carekê de)"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "Têketineke nederbasdar! Bi têketineke derbasdar dîsa hewl bide [1 heya {}, an 0 ji bo neçalakkirinê]"
msgid "Locales"
msgstr "Ziman"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "NetworkManager bi kar bîne (ji bo rêkxistina înternetê bi awayekî grafîkî di GNOME û KDE de pêdivî ye)"
msgid "Total: {} / {}"
msgstr "Tevahî: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "Hemû nirxên têxistî dikarin bi yekîneyek paşgiran werin veqetandin: B, KB, KiB, MB, MiB..."
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "Ku yekîneyek neyê dayîn, nirx wekî sektor tê şîrovekirin"
msgid "Enter start (default: sector {}): "
msgstr "Destpêkê têxîne (kesane: sektora {}): "
msgid "Enter end (default: {}): "
msgstr "Dawî têxîne (kesane: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "Amûrên fido2 nayên destnîşankirin. Libfido2 hatiye sazkirin?"
msgid "Path"
msgstr "Rêgeh"
msgid "Manufacturer"
msgstr "Afirîner"
msgid "Product"
msgstr "Berhem"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "Rêkxisitina nederbasdar: {error}"
msgid "Type"
msgstr "Cûre"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "Ev vebijêrk jimara daxistinên paralel ên ku dikarin di dema daxistinan pakêtan de xuya dibin çalak dike"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"Jimara daxistinên paralel ên ku werin çalakkirin têxîne.\n"
"\n"
"Nîşe:\n"
#, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr " - Nirxa herî pir a pêşniyarkirî: {} (Mafê dide {} daxisitinên paralel di carekê de)"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - Neçalak/Berdest: 0 ( Daxistina paralel neçalak dike, mafê tenê dide 1 daxistin di carekê de )\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "Têketineke nederbasdar! Bi têketineke derbasdar dîsa hewl bide [an 0 ji bo neçalakkirinê]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Hyprland gihîştina cihê te pêwîst dike(komek ji req amûran b.m. kilîtdank, mişk, hwd)"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Vebijêrkek hilbijêre da ku Hyprland bigihêje reqalavê te"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "Hemû nirxên têketinê dikarin bi yekîneyekê werin paşgirkirin: %, B, KB, KiB, MB, MiB..."
msgid "Would you like to use unified kernel images?"
msgstr "Tu dixwazî wêneyên kernel ên yekgirtî bi kar bînî?"
msgid "Unified kernel images"
msgstr "Wêneyên kernel ên yekgirtî"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "Li benda bidawîbûna hevdemkirina demê ye (nîşandana timedatectl)."
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Hevdemkirina demê bidawî nabe, di dema bendabûnê de - pelbendan ji bo rêgiran kontrol bike: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "Li benda bidawîbûna demê tê derbaskirin (ev dikare bibe sedema pirsgirêkan ku dem neyê hevdemkirin di dema sazkirinê de)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "Li benda bidawîbûna hevdemkirina keyring Arch Linux e (archlinux-keyring-wkd-sync)."
msgid "Selected profiles: "
msgstr "Profîlên hilbijartî: "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Hevdemkirina demê bidawî nabe,di dema bendabûna de - pelpendan ji bo rêgiran kontrol bike: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "Wekî nodatacow nîşan bide/nede"
msgid "Would you like to use compression or disable CoW?"
msgstr "Tu dixwazî CoW biguvîşî bi kar bînî yan neçalak bikî?"
msgid "Use compression"
msgstr "Givaştinê bi kar bîne"
msgid "Disable Copy-on-Write"
msgstr "Jêgirin-li ser-Nivîsandinê neçalak bike"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway"
msgstr "Hilbijartinek ji jîngehên sermaseyê û rêveberên çarçoveyê komkirî peyda dike, mînak: GNOME, KDE Plasma, Sway"
#, python-brace-format
msgid "Configuration type: {}"
msgstr "Çûreya rêkxisitinê: {}"
msgid "LVM configuration type"
msgstr "Cûreya rêkxistinê LVM"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "Şîfrekirina dîskê LVM bi bêtirî 2 beşan niha nayê piştgirîkirin"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "Rêvebirê torê bi kar bîne (ji bo sazkirina înternetê bi grafîkî di GNOME û KDE Plasma de pêdivî ye)"
msgid "Select a LVM option"
msgstr "Vebijêrkeke LVM hilbijêre"
msgid "Partitioning"
msgstr "Dabeşkirin"
msgid "Logical Volume Management (LVM)"
msgstr "Rêvebiriya mezinahiya lojîkî (LVM)"
msgid "Physical volumes"
msgstr "Mezinahiyên fizîkî"
msgid "Volumes"
msgstr "Mezinahî"
msgid "LVM volumes"
msgstr "Peldankên LVM"
msgid "LVM volumes to be encrypted"
msgstr "Peldankên LVM ên ku wê werin şîfrekirin"
msgid "Select which LVM volumes to encrypt"
msgstr "Ka kîjan dabeşkirinên LVM divê were şîfrekirin hilbijêre"
msgid "Default layout"
msgstr "Şêwaza berdest"
msgid "No Encryption"
msgstr "Şîfrekirin tune ye"
msgid "LUKS"
msgstr "LUKS"
msgid "LVM on LUKS"
msgstr "LVM li ser LUKS"
msgid "LUKS on LVM"
msgstr "LUKS li ser LVM"
msgid "Yes"
msgstr "Erê"
msgid "No"
msgstr "Na"
msgid "Archinstall help"
msgstr "Alîkariya Archinstall"
msgid " (default)"
msgstr " (berdest)"
msgid "Press Ctrl+h for help"
msgstr "Ji bo alîkariyê Ctrl+h bitikîne"
msgid "Choose an option to give Sway access to your hardware"
msgstr "Vebijêrkekê hilbijêre da ku Sway bigihêje reqalavê te"
msgid "Seat access"
msgstr "Gihîştina cihê"
msgid "Mountpoint"
msgstr "Xala siwarkirinê"
msgid "HSM"
msgstr "HSM"
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "Borînpeyva şîfrekirina dîskê têxîne (ji bo şîfrekirin tune be vala bihêle)"
msgid "Disk encryption password"
msgstr "Borînpeyva şîfrekirina dîskê"
msgid "Partition - New"
msgstr "Dabeşkirin - Nû"
msgid "Filesystem"
msgstr "Pergala pelê"
msgid "Invalid size"
msgstr "Mezinahî nederbasdar e"
msgid "Start (default: sector {}): "
msgstr "Destpêk (berdest: sektor {}): "
msgid "End (default: {}): "
msgstr "Dawî (berdest: {}): "
msgid "Subvolume name"
msgstr "Navê binpeldankê"
msgid "Disk configuration type"
msgstr "Cûreya rêkxisitinê dîskê"
msgid "Root mount directory"
msgstr "Pelrêça siwarkirina root"
msgid "Select language"
msgstr "Ziman hilbijêre"
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "Ji bo sazkirinê pakêtên din binivîse (bi valahiya veqetandî, bo derbas bikî vala bihêle)"
msgid "Invalid download number"
msgstr "Jimara daxisitinê nederbasdar e"
msgid "Number downloads"
msgstr "Jimara daxistinan"
msgid "The username you entered is invalid"
msgstr "Navê bikarhênerê ku te nivîsand nederbasdar e"
msgid "Username"
msgstr "Navê bikarhêner"
#, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "Divê \"{}\" superbikarhênerek (sudo) be?\n"
msgid "Interfaces"
msgstr "Navrû"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "Pêdivî ye ku tu IP a derbasdar di awaya IP-config de têxînî"
msgid "Modes"
msgstr "Awa"
msgid "IP address"
msgstr "Navnîşana IP"
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "Navnîşana IP ya dergehê (router) a xwe têxîne (ji bo ne yek vala bihêle)"
msgid "Gateway address"
msgstr "Navnîşana dergehê"
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "Rajekarên DNS a xwe bi valahiya veqetandî têxîne (ji bo ne yek vala bihêle)"
msgid "DNS servers"
msgstr "Rajekarên DNS"
msgid "Configure interfaces"
msgstr "Navrûyan rêkxistin bike"
msgid "Kernel"
msgstr "Kernel"
msgid "UEFI is not detected and some options are disabled"
msgstr "UEFI nayê dîtin û hinek vebijêrk neçalak in"
msgid "Info"
msgstr "Zanyarî"
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "Ajokara xwedan Nvidia ji aliya Sway ve nayê piştgirîkirin."
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "Dibe ku tu bi pirsgirêkan re rû bi rû werî, tu bi wê re baş î?"
msgid "Main profile"
msgstr "Profîla sereke"
msgid "Confirm password"
msgstr "Borînpeyvê biperjîne"
msgid "The confirmation password did not match, please try again"
msgstr "Pejirandina borînpeyvê li hev nehat, tika dîsa hewl bide"
msgid "Not a valid directory"
msgstr "Pelrêçek nederbasdar e"
msgid "Would you like to continue?"
msgstr "Dixwazî bidomînî?"
msgid "Directory"
msgstr "Pelrêç"
msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)"
msgstr "Ji bo sazkirin werin tomarkirin pêlrêçekê têxîne (Bidawîkirina tabê çalak e)"
#, python-brace-format
msgid "Do you want to save the configuration file(s) to {}?"
msgstr "Tu dixwazî pel(ên) sazkirinê li {} werin tomarkirin?"
msgid "Enabled"
msgstr "Çalakkirî"
msgid "Disabled"
msgstr "Neçalakkirî"
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr "Tika vê pirsgirêkê (û pelê) bişîne bo https://github.com/archlinux/archinstall/issues"
msgid "Mirror name"
msgstr "Navê eynikê"
msgid "Url"
msgstr "Girêdan"
msgid "Select signature check"
msgstr "Kontrola îmzeyê hilbijêre"
msgid "Select execution mode"
msgstr "Awaya çalakkirinê hilbijêre"
msgid "Press ? for help"
msgstr "Ji bo alîkariyê pêl ? bike"
msgid "Choose an option to give Hyprland access to your hardware"
msgstr "Vebijêrkekê hilbijêre ku Hyprland bigihêje reqalavê te"
msgid "Additional repositories"
msgstr "Depoyên vebijêrkî"
msgid "NTP"
msgstr "NTP"
msgid "Swap on zram"
msgstr "Swap li ser zram"
msgid "Name"
msgstr "Nav"
msgid "Signature check"
msgstr "Kontrolkirina îmzeyê"
#, python-brace-format
msgid "Selected free space segment on device {}:"
msgstr "Beşa cîhê vala ya hilbijartî li ser amûra {}:"
#, python-brace-format
msgid "Size: {} / {}"
msgstr "Mezinahî: {} / {}"
#, python-brace-format
msgid "Size (default: {}): "
msgstr "Mezinahî (berdest: {}): "
msgid "HSM device"
msgstr "Amûra HSM"
msgid "Some packages could not be found in the repository"
msgstr "Hinek pakêt di depoyê de nehatin dîtin"
msgid "User"
msgstr "Bikarhêner"
msgid "The specified configuration will be applied"
msgstr "Sazkariya destnîşankirî wê were sepandin"
msgid "Wipe"
msgstr "Jê bibe"
msgid "Mark/Unmark as XBOOTLDR"
msgstr "Wekî XBOOTLDR nîşan bide/nede"
msgid "Loading packages..."
msgstr "Pakêt tên barkirin..."
msgid "Select any packages from the below list that should be installed additionally"
msgstr "Ji lîsteya jêrîn pakêtên ku divê werin sazkirin hilbijêre"
msgid "Add a custom repository"
msgstr "Depoyek kesane tevlî bike"
msgid "Change custom repository"
msgstr "Depoya kesane biguherîne"
msgid "Delete custom repository"
msgstr "Depoya kesane jê bibe"
msgid "Repository name"
msgstr "Navê depoyê"
msgid "Add a custom server"
msgstr "Rajekarek kesane tevlî bike"
msgid "Change custom server"
msgstr "Rajekara kesane biguherîne"
msgid "Delete custom server"
msgstr "Rajekara kesane jê bibe"
msgid "Server url"
msgstr "Girêdana rajekar"
msgid "Select regions"
msgstr "Herêman hilbijêre"
msgid "Add custom servers"
msgstr "Rajekarên kesane tevlî bike"
msgid "Add custom repository"
msgstr "Depoya kesane tevlî bike"
msgid "Loading mirror regions..."
msgstr "Herêmên eynikê tên barkirin..."
msgid "Mirrors and repositories"
msgstr "Eynik û depo"
msgid "Selected mirror regions"
msgstr "Herêmên eynikê ên hilbijartî"
msgid "Custom servers"
msgstr "Rajekarên kesane"
msgid "Custom repositories"
msgstr "Depoyên kesane"
msgid "Only ASCII characters are supported"
msgstr "Tenê karekterên ASCII tên piştgirîkirin"
msgid "Show help"
msgstr "Alîkariyê nîşan bide"
msgid "Exit help"
msgstr "Ji alîkariyê derkeve"
msgid "Preview scroll up"
msgstr "Pêşdîtina şemitandina jor"
msgid "Preview scroll down"
msgstr "Pêşdîtina şemitandina jêr"
msgid "Move up"
msgstr "Bilivîne jorê"
msgid "Move down"
msgstr "Bilivîne jêrê"
msgid "Move right"
msgstr "Bilivîne rastê"
msgid "Move left"
msgstr "Bilivîne çepê"
msgid "Jump to entry"
msgstr "Biçe bo têketinê"
msgid "Skip selection (if available)"
msgstr "Hilbijartinê derbas bike (ku pêkan be)"
msgid "Reset selection (if available)"
msgstr "Hilbijartinê ji nû ve saz bike (ku pêkan be)"
msgid "Select on single select"
msgstr "Li ser hilbijartina yekane hilbijêre"
msgid "Select on multi select"
msgstr "Li ser çend-hilbijartin hilbijêre"
msgid "Reset"
msgstr "Ji nû ve saz bike"
msgid "Skip selection menu"
msgstr "Menuya hilbijartinê derbas bike"
msgid "Start search mode"
msgstr "Awaya lêgerînê dest pê bike"
msgid "Exit search mode"
msgstr "Awaya lêgerînê bi dawî bike"
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "labwc gihîştina cihê te pêwîst dike (komek ji reqalavan b.m. kilîtdank, mişk, hwd)"
msgid "Choose an option to give labwc access to your hardware"
msgstr "Vebijêrkekê hilbijêre da ku labwc bigihêje reqalavê te"
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "niri gihîştina cihê te pêwîst dike (komek ji reqalavan b.m. kilîtdank, mişk, hwd)"
msgid "Choose an option to give niri access to your hardware"
msgstr "Vebijêrkekê hilbijêre da ku niri bigihêje reqalavê te"
msgid "Mark/Unmark as ESP"
msgstr "Wekî ESP nîşan bide/ nede"
msgid "Package group:"
msgstr "Koma pakêtê:"
msgid "Exit archinstall"
msgstr "Ji archinstall derkeve"
msgid "Reboot system"
msgstr "Pergalê ji nû ve dest bike"
msgid "chroot into installation for post-installation configurations"
msgstr "bi chroot têkeve hundir sazkirinê bo rêkxistina piştî-sazkirinê"
msgid "Installation completed"
msgstr "Sazkirin qediya"
msgid "What would you like to do next?"
msgstr "Tu dixwazî çi bikî paşê?"
#, python-brace-format
msgid "Select which mode to configure for \"{}\""
msgstr "Ka kîjan awa bo sazkirinê ji bo \"{}\" hilbijêre"
msgid "Incorrect credentials file decryption password"
msgstr "Borînpeyva şîfrekirina pelê bawernameyan şaş e"
msgid "Incorrect password"
msgstr "Borînpeyv şaş e"
msgid "Credentials file decryption password"
msgstr "Borînpeyva şîfrekirina pelê bawernameyan"
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr "Tu dixwazî pelê user_credentials.json şîfre bikî?"
msgid "Credentials file encryption password"
msgstr "Borînpeyva şîfrekirina pelê bawernameyan"
#, python-brace-format
msgid "Repositories: {}"
msgstr "Depo: {}"
msgid "New version available"
msgstr "Guhertoya nû heye"
msgid "Passwordless login"
msgstr "Têketina bê borînpeyv"
msgid "Second factor login"
msgstr "Têketina faktora duyemîn"
msgid "Bluetooth"
msgstr "Bluetooth"
msgid "Would you like to configure Bluetooth?"
msgstr "Tu dixwazî Bluetooth saz bikî?"
msgid "Print service"
msgstr ""
#, fuzzy
msgid "Would you like to configure the print service?"
msgstr "Tu dixwazî Bluetooth saz bikî?"
#, fuzzy
msgid "Power management"
msgstr "Rêvebiriya dabeşkirinê: {}"
msgid "Authentication"
msgstr "Rastkirin"
msgid "Applications"
msgstr "Sepan"
msgid "U2F login method: "
msgstr "Rêbaza têketina U2F: "
msgid "Passwordless sudo: "
msgstr "Sudo ya bê borînpeyv: "
#, python-brace-format
msgid "Btrfs snapshot type: {}"
msgstr "Cûreya snapshot ê Btrfs: {}"
msgid "Syncing the system..."
msgstr "Pergal tê hevdemkirin..."
msgid "Value cannot be empty"
msgstr "Nirx nabe ku vala be"
msgid "Snapshot type"
msgstr "Cûreya snapshot"
#, python-brace-format
msgid "Snapshot type: {}"
msgstr "Cûreya snapshot: {}"
msgid "U2F login setup"
msgstr "Sazkirina têketina U2F"
msgid "No U2F devices found"
msgstr "Amûrên U2F nehatin dîtin"
msgid "U2F Login Method"
msgstr "Rêbaza têketina U2F"
msgid "Enable passwordless sudo?"
msgstr "Sudo bê borînpeyv çalak bike?"
#, python-brace-format
msgid "Setting up U2F device for user: {}"
msgstr "Sazkirina amûra U2F ji bo bikarhêner: {}"
msgid "You may need to enter the PIN and then touch your U2F device to register it"
msgstr "Dibe ku tu PIN têxînî û paşê amûrê xwe ya U2F bitikînî da ku wê tomar bikî"
msgid "Starting device modifications in "
msgstr "Guhertinên amûrê dest pê dike di "
msgid "No network connection found"
msgstr "Tu Girêdanên torê nehatin dîtin"
msgid "Would you like to connect to a Wifi?"
msgstr "Tu dixwazî bi Wifi ve girêdayî bibî?"
msgid "No wifi interface found"
msgstr "Tu navrûya wifi nehat dîtin"
msgid "Select wifi network to connect to"
msgstr "Tora wifi hilbijêre ku pê ve girê bidî"
msgid "Scanning wifi networks..."
msgstr "Li torên wifi digere..."
msgid "No wifi networks found"
msgstr "Tu torên wifi nehatin dîtin"
msgid "Failed setting up wifi"
msgstr "Sazkirina wifi têk çû"
msgid "Enter wifi password"
msgstr "Borînpeyva wifi têxîne"
msgid "Ok"
msgstr "Baş e"
msgid "Removable"
msgstr "Jêbirbar"
msgid "Install to removable location"
msgstr "Li cîhê jêbirbar saz bike"
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr "Wê li /EFI/BOOT/ saz bike (cihê jêbirbar)"
msgid "Will install to standard location with NVRAM entry"
msgstr "Wê bi têketina NVRAM li cîhê standard saz bike"
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr "Tu dixwazî barkarê destpêkirinê li cîhê lêgerîna medyaya jêbirbar ya berdest saz bikî?"
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr "Ev barkarê destpêkirinê li /EFI/BOOT/BOOTX64.EFI (an nêzîk) saz dike ku kêrhatî ye ji bo:"
msgid "USB drives or other portable external media."
msgstr "Ajokarên USB an medyaya derveyî ya barkirî yên din."
msgid "Systems where you want the disk to be bootable on any computer."
msgstr "Pergalên ku tu dixwazî dîskê li ser her kombersê destpêkbar be."
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr "Firmware ku têketinên destpêkirina NVRAM bi rêkûpêk piştgirî nake."
#, fuzzy
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr "Wê li /EFI/BOOT/ saz bike (cihê jêbirbar)"
#, fuzzy
msgid "Will install to custom location with NVRAM entry"
msgstr "Wê bi têketina NVRAM li cîhê standard saz bike"
#, fuzzy
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr "Firmware ku têketinên destpêkirina NVRAM bi rêkûpêk piştgirî nake."
msgid "most Apple Macs, many laptops..."
msgstr ""
#, fuzzy
msgid "Language"
msgstr "Zimanê herêmî"
msgid "Compression algorithm"
msgstr ""
#, fuzzy
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Tenê pakêtên wekî base, base-devel, linux, linux-firmware, efibootmgr û pakêtên profîlê yên vebijêrkî tên sazkirin."
#, fuzzy
msgid "Select zram compression algorithm:"
msgstr "Xaleke siwarkirinê hilbijêre:"
msgid "Use Network Manager (default backend)"
msgstr ""
msgid "Use Network Manager (iwd backend)"
msgstr ""
================================================
FILE: archinstall/locales/languages.json
================================================
[{"abbr": "aa", "lang": "Afar"},
{"abbr": "ab", "lang": "Abkhazian"},
{"abbr": "af", "lang": "Afrikaans"},
{"abbr": "ak", "lang": "Akan"},
{"abbr": "am", "lang": "Amharic"},
{"abbr": "ar", "lang": "Arabic"},
{"abbr": "an", "lang": "Aragonese"},
{"abbr": "as", "lang": "Assamese"},
{"abbr": "av", "lang": "Avaric"},
{"abbr": "ae", "lang": "Avestan"},
{"abbr": "ay", "lang": "Aymara"},
{"abbr": "az", "lang": "Azerbaijani"},
{"abbr": "ba", "lang": "Bashkir"},
{"abbr": "bm", "lang": "Bambara"},
{"abbr": "be", "lang": "Belarusian"},
{"abbr": "bn", "lang": "Bengali"},
{"abbr": "bi", "lang": "Bislama"},
{"abbr": "bo", "lang": "Tibetan"},
{"abbr": "bs", "lang": "Bosnian"},
{"abbr": "br", "lang": "Breton"},
{"abbr": "bg", "lang": "Bulgarian"},
{"abbr": "ca", "lang": "Catalan"},
{"abbr": "cs", "lang": "Czech", "translated_lang": "čeština"},
{"abbr": "ch", "lang": "Chamorro"},
{"abbr": "ce", "lang": "Chechen"},
{"abbr": "cu", "lang": "Church Slavic"},
{"abbr": "cv", "lang": "Chuvash"},
{"abbr": "kw", "lang": "Cornish"},
{"abbr": "co", "lang": "Corsican"},
{"abbr": "cr", "lang": "Cree"},
{"abbr": "cy", "lang": "Welsh"},
{"abbr": "da", "lang": "Danish", "translated_lang": "Dansk"},
{"abbr": "de", "lang": "German", "translated_lang": "Deutsch"},
{"abbr": "dv", "lang": "Dhivehi"},
{"abbr": "dz", "lang": "Dzongkha"},
{"abbr": "el", "lang": "Modern Greek (1453-)", "translated_lang": "Ελληνικά"},
{"abbr": "en", "lang": "English"},
{"abbr": "eo", "lang": "Esperanto"},
{"abbr": "et", "lang": "Estonian", "translated_lang": "Eesti" },
{"abbr": "eu", "lang": "Basque"},
{"abbr": "ee", "lang": "Ewe"},
{"abbr": "fo", "lang": "Faroese"},
{"abbr": "fa", "lang": "Persian"},
{"abbr": "fj", "lang": "Fijian"},
{"abbr": "fi", "lang": "Finnish"},
{"abbr": "fr", "lang": "French", "translated_lang": "Français"},
{"abbr": "fy", "lang": "Western Frisian"},
{"abbr": "ff", "lang": "Fulah"},
{"abbr": "gd", "lang": "Scottish Gaelic"},
{"abbr": "ga", "lang": "Irish"},
{"abbr": "gl", "lang": "Galician"},
{"abbr": "gv", "lang": "Manx"},
{"abbr": "gn", "lang": "Guarani"},
{"abbr": "gu", "lang": "Gujarati"},
{"abbr": "ht", "lang": "Haitian"},
{"abbr": "ha", "lang": "Hausa"},
{"abbr": "sh", "lang": "Serbo-Croatian"},
{"abbr": "he", "lang": "Hebrew"},
{"abbr": "hz", "lang": "Herero"},
{"abbr": "hi", "lang": "Hindi"},
{"abbr": "ho", "lang": "Hiri Motu"},
{"abbr": "hr", "lang": "Croatian"},
{"abbr": "hu", "lang": "Hungarian"},
{"abbr": "hy", "lang": "Armenian"},
{"abbr": "ig", "lang": "Igbo"},
{"abbr": "io", "lang": "Ido"},
{"abbr": "ii", "lang": "Sichuan Yi"},
{"abbr": "iu", "lang": "Inuktitut"},
{"abbr": "ie", "lang": "Interlingue"},
{"abbr": "ia", "lang": "Interlingua (International Auxiliary Language Association)"},
{"abbr": "id", "lang": "Indonesian", "translated_lang": "Indonesian"},
{"abbr": "ik", "lang": "Inupiaq"},
{"abbr": "is", "lang": "Icelandic"},
{"abbr": "it", "lang": "Italian", "translated_lang": "Italiano"},
{"abbr": "jv", "lang": "Javanese"},
{"abbr": "ja", "lang": "Japanese"},
{"abbr": "kl", "lang": "Kalaallisut"},
{"abbr": "kn", "lang": "Kannada"},
{"abbr": "ks", "lang": "Kashmiri"},
{"abbr": "ka", "lang": "Georgian"},
{"abbr": "kr", "lang": "Kanuri"},
{"abbr": "kk", "lang": "Kazakh"},
{"abbr": "km", "lang": "Central Khmer"},
{"abbr": "ki", "lang": "Kikuyu"},
{"abbr": "rw", "lang": "Kinyarwanda"},
{"abbr": "ky", "lang": "Kirghiz"},
{"abbr": "kv", "lang": "Komi"},
{"abbr": "kg", "lang": "Kongo"},
{"abbr": "ko", "lang": "Korean", "translated_lang": "한글", "external_dep": true},
{"abbr": "kj", "lang": "Kuanyama"},
{"abbr": "ku", "lang": "Kurdish"},
{"abbr": "lo", "lang": "Lao"},
{"abbr": "la", "lang": "Latin"},
{"abbr": "lv", "lang": "Latvian"},
{"abbr": "li", "lang": "Limburgan"},
{"abbr": "ln", "lang": "Lingala"},
{"abbr": "lt", "lang": "Lithuanian", "translated_lang": "Lietuvių"},
{"abbr": "lb", "lang": "Luxembourgish"},
{"abbr": "lu", "lang": "Luba-Katanga"},
{"abbr": "lg", "lang": "Ganda"},
{"abbr": "mh", "lang": "Marshallese"},
{"abbr": "ml", "lang": "Malayalam"},
{"abbr": "mr", "lang": "Marathi"},
{"abbr": "mk", "lang": "Macedonian"},
{"abbr": "mg", "lang": "Malagasy"},
{"abbr": "mt", "lang": "Maltese"},
{"abbr": "mn", "lang": "Mongolian"},
{"abbr": "mi", "lang": "Maori"},
{"abbr": "ms", "lang": "Malay (macrolanguage)"},
{"abbr": "my", "lang": "Burmese"},
{"abbr": "na", "lang": "Nauru"},
{"abbr": "nv", "lang": "Navajo"},
{"abbr": "nr", "lang": "South Ndebele"},
{"abbr": "nd", "lang": "North Ndebele"},
{"abbr": "ng", "lang": "Ndonga"},
{"abbr": "ne", "lang": "Nepali", "translated_lang": "नेपाली"},
{"abbr": "nl", "lang": "Dutch", "translated_lang": "Nederlands"},
{"abbr": "nn", "lang": "Norwegian Nynorsk"},
{"abbr": "nb", "lang": "Norwegian Bokmål"},
{"abbr": "no", "lang": "Norwegian"},
{"abbr": "ny", "lang": "Nyanja"},
{"abbr": "oc", "lang": "Occitan (post 1500)"},
{"abbr": "oj", "lang": "Ojibwa"},
{"abbr": "or", "lang": "Oriya (macrolanguage)"},
{"abbr": "om", "lang": "Oromo"},
{"abbr": "os", "lang": "Ossetian"},
{"abbr": "pa", "lang": "Panjabi"},
{"abbr": "pi", "lang": "Pali"},
{"abbr": "pl", "lang": "Polish", "translated_lang": "Polski"},
{"abbr": "pt", "lang": "Portuguese", "translated_lang": "Português"},
{"abbr": "pt_BR", "lang": "Brazilian Portuguese", "translated_lang": "Português do Brasil"},
{"abbr": "ps", "lang": "Pushto"},
{"abbr": "qu", "lang": "Quechua"},
{"abbr": "rm", "lang": "Romansh"},
{"abbr": "ro", "lang": "Romanian", "translated_lang": "Română"},
{"abbr": "rn", "lang": "Rundi"},
{"abbr": "ru", "lang": "Russian", "translated_lang": "Русский"},
{"abbr": "sg", "lang": "Sango"},
{"abbr": "sa", "lang": "Sanskrit"},
{"abbr": "si", "lang": "Sinhala"},
{"abbr": "sk", "lang": "Slovak"},
{"abbr": "sl", "lang": "Slovenian"},
{"abbr": "se", "lang": "Northern Sami"},
{"abbr": "sm", "lang": "Samoan"},
{"abbr": "sn", "lang": "Shona"},
{"abbr": "sd", "lang": "Sindhi"},
{"abbr": "so", "lang": "Somali"},
{"abbr": "st", "lang": "Southern Sotho"},
{"abbr": "es", "lang": "Spanish", "translated_lang": "Español"},
{"abbr": "sq", "lang": "Albanian"},
{"abbr": "sc", "lang": "Sardinian"},
{"abbr": "sr", "lang": "Serbian"},
{"abbr": "ss", "lang": "Swati"},
{"abbr": "su", "lang": "Sundanese"},
{"abbr": "sw", "lang": "Swahili (macrolanguage)"},
{"abbr": "sv", "lang": "Swedish", "translated_lang": "Svenska"},
{"abbr": "ty", "lang": "Tahitian"},
{"abbr": "ta", "lang": "Tamil", "translated_lang": "தமிழ்"},
{"abbr": "tt", "lang": "Tatar"},
{"abbr": "te", "lang": "Telugu"},
{"abbr": "tg", "lang": "Tajik"},
{"abbr": "tl", "lang": "Tagalog"},
{"abbr": "th", "lang": "Thai"},
{"abbr": "ti", "lang": "Tigrinya"},
{"abbr": "to", "lang": "Tonga (Tonga Islands)"},
{"abbr": "tn", "lang": "Tswana"},
{"abbr": "ts", "lang": "Tsonga"},
{"abbr": "tk", "lang": "Turkmen"},
{"abbr": "tr", "lang": "Turkish", "translated_lang" : "Türkçe"},
{"abbr": "tw", "lang": "Twi"},
{"abbr": "ug", "lang": "Uighur"},
{"abbr": "uk", "lang": "Ukrainian"},
{"abbr": "ur", "lang": "Urdu", "translated_lang": "اردو"},
{"abbr": "uz", "lang": "Uzbek", "translated_lang": "O'zbek"},
{"abbr": "ve", "lang": "Venda"},
{"abbr": "vi", "lang": "Vietnamese"},
{"abbr": "vo", "lang": "Volapük"},
{"abbr": "wa", "lang": "Walloon"},
{"abbr": "wo", "lang": "Wolof"},
{"abbr": "xh", "lang": "Xhosa"},
{"abbr": "yi", "lang": "Yiddish"},
{"abbr": "yo", "lang": "Yoruba"},
{"abbr": "za", "lang": "Zhuang"},
{"abbr": "zh-CN", "lang": "Simplified Chinese", "translated_lang": "简体中文"},
{"abbr": "zh-TW", "lang": "Traditional Chinese", "translated_lang": "繁體中文"},
{"abbr": "zu", "lang": "Zulu"}]
================================================
FILE: archinstall/locales/locales_generator.sh
================================================
#!/usr/bin/env bash
set -euo pipefail
cd $(dirname "$0")/..
function update_lang() {
file=${1}
echo "Updating: ${file}"
path=$(dirname "${file}")
msgmerge --quiet --no-location --width 512 --backup none --update "${file}" locales/base.pot
msgfmt -o "${path}/base.mo" "${file}"
}
function generate_all() {
for file in $(find locales/ -name "base.po"); do
update_lang "${file}"
done
}
function generate_single_lang() {
lang_file="locales/${1}/LC_MESSAGES/base.po"
if [ ! -f "${lang_file}" ]; then
echo "Language files not found: ${lang_file}"
exit 1
fi
update_lang "${lang_file}"
}
if [ $# -eq 0 ]; then
echo "Usage: ${0} "
echo "Special case 'all' for builds all languages."
exit 1
fi
lang=${1}
# Update the base file containing all translatable strings
find . -type f -iname "*.py" | xargs xgettext --join-existing --no-location --omit-header --keyword='tr' -d base -o locales/base.pot
case "${lang}" in
"all") generate_all;;
*) generate_single_lang "${lang}"
esac
================================================
FILE: archinstall/locales/lt/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: Florijan Demidov https://github.com/FlorijanDem \n"
"Language-Team: \n"
"Language: lt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.3\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] Žurnalo failas įrašytas čia: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Prašome pateiktį šitą problemą (ir failą) https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "Ar jus noritė nutraukti?"
msgid "And one more time for verification: "
msgstr ""
msgid "Would you like to use swap on zram?"
msgstr ""
msgid "Desired hostname for the installation: "
msgstr ""
msgid "Username for required superuser with sudo privileges: "
msgstr ""
msgid "Any additional users to install (leave blank for no users): "
msgstr ""
msgid "Should this user be a superuser (sudoer)?"
msgstr "Ar noritė padarity šitą vartotoją supervartotoju (sudoer)"
msgid "Select a timezone"
msgstr "Išrinkite laiko zona"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "Ar jus norėtum naudoti GRUB paleidyklė, o nė systemd-boot?"
msgid "Choose a bootloader"
msgstr "Išrinkite paleidyklė"
msgid "Choose an audio server"
msgstr "Išrinkite garso serverį"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Tiktai paketai tokie kaip: base, base-devel, linux, linux-firmware, efibootmgr ir neprivalomi paketai bus įdegtį."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr ""
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr ""
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr ""
msgid "Copy ISO network configuration to installation"
msgstr ""
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr ""
msgid "Select one network interface to configure"
msgstr ""
msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
msgstr ""
#, python-brace-format
msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): "
msgstr ""
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr ""
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr ""
msgid "Select which filesystem your main partition should use"
msgstr ""
msgid "Current partition layout"
msgstr ""
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
msgid "Enter a desired filesystem type for the partition"
msgstr ""
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr ""
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr ""
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr ""
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr ""
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr ""
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
msgid "Enter a desired filesystem type for the partition: "
msgstr ""
msgid "Archinstall language"
msgstr "Archinstall liežuvis"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr ""
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr ""
msgid "Select what you wish to do with the selected block devices"
msgstr ""
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr ""
msgid "Select keyboard layout"
msgstr "Išrinkite klaviatūros išdėstyma"
msgid "Select one of the regions to download packages from"
msgstr ""
msgid "Select one or more hard drives to use and configure"
msgstr ""
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr ""
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr ""
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr ""
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
msgid "All open-source (default)"
msgstr ""
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr ""
msgid "Choose which locale language to use"
msgstr ""
msgid "Choose which locale encoding to use"
msgstr ""
msgid "Select one of the values shown below: "
msgstr ""
msgid "Select one or more of the options below: "
msgstr ""
msgid "Adding partition...."
msgstr ""
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr ""
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr ""
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr ""
msgid "Keyboard layout"
msgstr ""
msgid "Mirror region"
msgstr ""
msgid "Locale language"
msgstr "Lokalės liežuvis"
msgid "Locale encoding"
msgstr "Lokalės koduotė"
msgid "Drive(s)"
msgstr ""
msgid "Disk layout"
msgstr ""
msgid "Encryption password"
msgstr ""
msgid "Swap"
msgstr ""
msgid "Bootloader"
msgstr "Paleidyklė"
msgid "Root password"
msgstr "Root Slaptažodis"
msgid "Superuser account"
msgstr "Supervartotojo paskirą"
msgid "User account"
msgstr "Vartotojo paskirą"
msgid "Profile"
msgstr "Profilis"
msgid "Audio"
msgstr "Garsas"
msgid "Kernels"
msgstr "Branduoliai"
msgid "Additional packages"
msgstr ""
msgid "Network configuration"
msgstr "Tinklo konfigūraciją"
msgid "Automatic time sync (NTP)"
msgstr "Automatinė laiko sinchonizaciją"
msgid "Install ({} config(s) missing)"
msgstr "Įdiegti ({} config(s) missing)"
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 ""
msgid "Re-using partition instance: {}"
msgstr ""
msgid "Create a new partition"
msgstr "Padariti naują skaidinį"
msgid "Delete a partition"
msgstr "Šalinti skaidinį"
msgid "Clear/Delete all partitions"
msgstr "Ištrinti/Šalinti visus skaidinius"
msgid "Assign mount-point for a partition"
msgstr ""
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr ""
msgid "Mark/Unmark a partition as encrypted"
msgstr ""
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr ""
msgid "Set desired filesystem for a partition"
msgstr ""
msgid "Abort"
msgstr "Nutraukti"
msgid "Hostname"
msgstr "Pagrindinio kompiuterio vardas"
msgid "Not configured, unavailable unless setup manually"
msgstr ""
msgid "Timezone"
msgstr "Laiko zona"
msgid "Set/Modify the below options"
msgstr ""
msgid "Install"
msgstr "Įdiegti"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr "Naudokit ESC tam, kad praleistį\n"
msgid "Suggest partition layout"
msgstr ""
msgid "Enter a password: "
msgstr "Iveskite slaptažodžį"
msgid "Enter a encryption password for {}"
msgstr ""
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr ""
msgid "Create a required super-user with sudo privileges: "
msgstr ""
msgid "Enter root password (leave blank to disable root): "
msgstr ""
msgid "Password for user \"{}\": "
msgstr "Slaptažodis vartotojo \"{}\": "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr ""
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr ""
msgid ""
"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 ""
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr ""
msgid "Use ESC to skip\n"
msgstr "Naudokit ESC tam, kad praleistį\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
msgid "Cancel"
msgstr ""
msgid "Confirm and exit"
msgstr ""
msgid "Add"
msgstr "Pridėti"
msgid "Copy"
msgstr "Kopijuoti"
msgid "Edit"
msgstr "Redaguoti"
msgid "Delete"
msgstr "Pašalinti"
msgid "Select an action for '{}'"
msgstr ""
msgid "Copy to new key:"
msgstr ""
msgid "Unknown nic type: {}. Possible values are {}"
msgstr ""
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr ""
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr ""
msgid "Choose which optional additional repositories to enable"
msgstr ""
msgid "Add a user"
msgstr "Pridėti vartotoją"
msgid "Change password"
msgstr "Pakeisti slaptažodžį"
msgid "Promote/Demote user"
msgstr ""
msgid "Delete User"
msgstr "Pašalinti vartotoją"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
msgid "User Name : "
msgstr "Vartotojo vardas :"
msgid "Should {} be a superuser (sudoer)?"
msgstr ""
msgid "Define users with sudo privilege: "
msgstr ""
msgid "No network configuration"
msgstr ""
msgid "Set desired subvolumes on a btrfs partition"
msgstr ""
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
msgid "Manage btrfs subvolumes for current partition"
msgstr ""
msgid "No configuration"
msgstr "Nėra konfigūracijos"
msgid "Save user configuration"
msgstr "Išsaugoti vartotojo konfigūraciją"
msgid "Save user credentials"
msgstr ""
msgid "Save disk layout"
msgstr ""
msgid "Save all"
msgstr "Išsaugoti viską"
msgid "Choose which configuration to save"
msgstr ""
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr ""
msgid "Not a valid directory: {}"
msgstr ""
msgid "The password you are using seems to be weak,"
msgstr ""
msgid "are you sure you want to use it?"
msgstr ""
msgid "Optional repositories"
msgstr ""
msgid "Save configuration"
msgstr "Išsaugoti konfigūraciją"
msgid "Missing configurations:\n"
msgstr ""
msgid "Either root-password or at least 1 superuser must be specified"
msgstr ""
msgid "Manage superuser accounts: "
msgstr ""
msgid "Manage ordinary user accounts: "
msgstr ""
msgid " Subvolume :{:16}"
msgstr ""
msgid " mounted at {:16}"
msgstr ""
msgid " with option {}"
msgstr ""
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
msgid "Subvolume name "
msgstr ""
msgid "Subvolume mountpoint"
msgstr ""
msgid "Subvolume options"
msgstr ""
msgid "Save"
msgstr "Išsaugoti"
msgid "Subvolume name :"
msgstr ""
msgid "Select a mount point :"
msgstr ""
msgid "Select the desired subvolume options "
msgstr ""
msgid "Define users with sudo privilege, by username: "
msgstr ""
#, python-brace-format
msgid "[!] A log file has been created here: {}"
msgstr ""
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr ""
msgid "Would you like to use BTRFS compression?"
msgstr ""
msgid "Would you like to create a separate partition for /home?"
msgstr ""
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr ""
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr ""
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr ""
msgid "Continue"
msgstr "Tęsti"
msgid "yes"
msgstr "taip"
msgid "no"
msgstr "nė"
msgid "set: {}"
msgstr ""
msgid "Manual configuration setting must be a list"
msgstr ""
msgid "No iface specified for manual configuration"
msgstr ""
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr ""
msgid "Add interface"
msgstr ""
msgid "Edit interface"
msgstr ""
msgid "Delete interface"
msgstr ""
msgid "Select interface to add"
msgstr ""
msgid "Manual configuration"
msgstr ""
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr ""
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr ""
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr ""
msgid "Select your desired desktop environment"
msgstr ""
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr ""
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr ""
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr ""
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr ""
msgid "Press Enter to continue."
msgstr "Paspauskite Enter tam, kad tęstį."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr ""
msgid "Are you sure you want to reset this setting?"
msgstr ""
msgid "Select one or more hard drives to use and configure\n"
msgstr ""
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr ""
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr ""
msgid "Save and exit"
msgstr ""
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
msgid "No audio server"
msgstr "Bė garso serverio"
msgid "(default)"
msgstr ""
msgid "Use ESC to skip"
msgstr "Naudokit ESC tam, kad praleistį"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
msgid "Copy to: "
msgstr "Kopijuoti į: "
msgid "Edit: "
msgstr "Redaguoti: "
msgid "Key: "
msgstr "Raktas: "
msgid "Edit {}: "
msgstr "Redaguoti {}: "
msgid "Add: "
msgstr "Pridėti: "
msgid "Value: "
msgstr "Reikšmė: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr ""
msgid "Select one of the disks or skip and use /mnt as default"
msgstr ""
msgid "Select which partitions to mark for formatting:"
msgstr ""
msgid "Use HSM to unlock encrypted drive"
msgstr ""
msgid "Device"
msgstr "Įrenginys"
msgid "Size"
msgstr "Didis"
msgid "Free space"
msgstr "Laisva vietą"
msgid "Bus-type"
msgstr ""
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr ""
msgid "Enter username (leave blank to skip): "
msgstr ""
msgid "The username you entered is invalid. Try again"
msgstr ""
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr ""
msgid "Select which partitions to encrypt"
msgstr ""
msgid "very weak"
msgstr "labai silpnas"
msgid "weak"
msgstr "silpnas"
msgid "moderate"
msgstr "vidutinis"
msgid "strong"
msgstr "geras"
msgid "Add subvolume"
msgstr ""
msgid "Edit subvolume"
msgstr ""
msgid "Delete subvolume"
msgstr ""
msgid "Configured {} interfaces"
msgstr ""
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr ""
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr ""
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr ""
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr ""
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr ""
msgid "Parallel Downloads"
msgstr ""
msgid "ESC to skip"
msgstr "ESC tam, kad praleistį"
msgid "CTRL+C to reset"
msgstr ""
msgid "TAB to select"
msgstr "TAB tam, kad išrinktį"
msgid "[Default value: 0] > "
msgstr ""
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr ""
msgid "The font should be stored as {}"
msgstr ""
msgid "Archinstall requires root privileges to run. See --help for more."
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 ""
msgid "Select one or more devices to use and configure"
msgstr ""
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr ""
msgid "Existing Partitions"
msgstr ""
msgid "Select a partitioning option"
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 ""
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr ""
msgid "Current profile selection"
msgstr ""
msgid "Remove all newly added partitions"
msgstr ""
msgid "Assign mountpoint"
msgstr ""
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr ""
msgid "Mark/Unmark as bootable"
msgstr ""
msgid "Change filesystem"
msgstr ""
msgid "Mark/Unmark as compressed"
msgstr ""
msgid "Set subvolumes"
msgstr ""
msgid "Delete partition"
msgstr "Pašalinti skaidynį"
msgid "Partition"
msgstr "Skaidinys"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr ""
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr ""
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr ""
msgid "Mountpoint: "
msgstr ""
msgid "Current free sectors on device {}:"
msgstr ""
msgid "Total sectors: {}"
msgstr ""
msgid "Enter the start sector (default: {}): "
msgstr ""
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
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 ""
msgid "Encryption type"
msgstr ""
msgid "Iteration time"
msgstr ""
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr ""
msgid "Higher values increase security but slow down boot time"
msgstr ""
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr ""
msgid "Iteration time cannot be empty"
msgstr ""
msgid "Iteration time must be at least 100ms"
msgstr ""
msgid "Iteration time must be at most 120000ms"
msgstr ""
msgid "Please enter a valid number"
msgstr ""
msgid "Partitions"
msgstr "Skaidiniai"
msgid "No HSM devices available"
msgstr ""
msgid "Partitions to be encrypted"
msgstr ""
msgid "Select disk encryption option"
msgstr ""
msgid "Select a FIDO2 device to use for HSM"
msgstr ""
msgid "Use a best-effort default partition layout"
msgstr ""
msgid "Manual Partitioning"
msgstr ""
msgid "Pre-mounted configuration"
msgstr ""
msgid "Unknown"
msgstr "Nežinomas"
msgid "Partition encryption"
msgstr ""
#, python-brace-format
msgid " ! Formatting {} in "
msgstr ""
msgid "← Back"
msgstr "← Atgal"
msgid "Disk encryption"
msgstr ""
msgid "Configuration"
msgstr ""
msgid "Password"
msgstr "Slaptažodis"
msgid "All settings will be reset, are you sure?"
msgstr ""
msgid "Back"
msgstr "Atgal"
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr ""
#, python-brace-format
msgid "Environment type: {}"
msgstr ""
msgid "The proprietary Nvidia driver is not supported by Sway. It is likely that you will run into issues, are you okay with that?"
msgstr ""
msgid "Installed packages"
msgstr "Įdiegti paketus"
msgid "Add profile"
msgstr "Pridėti profilį"
msgid "Edit profile"
msgstr "Redaguoti profilį"
msgid "Delete profile"
msgstr "Pašalinti profilį"
msgid "Profile name: "
msgstr "Profilio vardas: "
msgid "The profile name you entered is already in use. Try again"
msgstr ""
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr ""
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr ""
msgid "Should this profile be enabled for installation?"
msgstr ""
msgid "Create your own"
msgstr ""
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
msgid "Graphics driver"
msgstr "Vaizdo plokštės draiveris"
msgid "Greeter"
msgstr ""
msgid "Please chose which greeter to install"
msgstr ""
msgid "This is a list of pre-programmed default_profiles"
msgstr ""
msgid "Disk configuration"
msgstr "Disko konfigūraciją"
msgid "Profiles"
msgstr ""
msgid "Finding possible directories to save configuration files ..."
msgstr ""
msgid "Select directory (or directories) for saving configuration files"
msgstr ""
msgid "Add a custom mirror"
msgstr "Pridėti savo 'custom mirror'"
msgid "Change custom mirror"
msgstr ""
msgid "Delete custom mirror"
msgstr ""
msgid "Enter name (leave blank to skip): "
msgstr ""
msgid "Enter url (leave blank to skip): "
msgstr ""
msgid "Select signature check option"
msgstr ""
msgid "Select signature option"
msgstr ""
msgid "Custom mirrors"
msgstr ""
msgid "Defined"
msgstr ""
msgid "Save user configuration (including disk layout)"
msgstr ""
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
msgid "Saving {} configuration files to {}"
msgstr ""
msgid "Mirrors"
msgstr ""
msgid "Mirror regions"
msgstr ""
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr ""
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr ""
msgid "Locales"
msgstr "Lokalės"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr ""
msgid "Total: {} / {}"
msgstr "Iš viso: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr ""
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr ""
msgid "Enter start (default: sector {}): "
msgstr ""
msgid "Enter end (default: {}): "
msgstr ""
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr ""
msgid "Path"
msgstr ""
msgid "Manufacturer"
msgstr ""
msgid "Product"
msgstr ""
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr ""
msgid "Type"
msgstr ""
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr ""
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
#, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr ""
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr ""
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr ""
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr ""
msgid "Would you like to use unified kernel images?"
msgstr ""
msgid "Unified kernel images"
msgstr ""
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr ""
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr ""
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr ""
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr ""
#, fuzzy
msgid "Selected profiles: "
msgstr "Pašalinti profilį"
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr ""
msgid "Mark/Unmark as nodatacow"
msgstr ""
msgid "Would you like to use compression or disable CoW?"
msgstr ""
msgid "Use compression"
msgstr ""
msgid "Disable Copy-on-Write"
msgstr ""
msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway"
msgstr ""
#, fuzzy, python-brace-format
msgid "Configuration type: {}"
msgstr "Nėra konfigūracijos"
#, fuzzy
msgid "LVM configuration type"
msgstr "Nėra konfigūracijos"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr ""
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr ""
#, fuzzy
msgid "Select a LVM option"
msgstr "Išrinkite laiko zona"
#, fuzzy
msgid "Partitioning"
msgstr "Skaidinys"
msgid "Logical Volume Management (LVM)"
msgstr ""
msgid "Physical volumes"
msgstr ""
msgid "Volumes"
msgstr ""
msgid "LVM volumes"
msgstr ""
msgid "LVM volumes to be encrypted"
msgstr ""
msgid "Select which LVM volumes to encrypt"
msgstr ""
msgid "Default layout"
msgstr ""
#, fuzzy
msgid "No Encryption"
msgstr "Nėra konfigūracijos"
msgid "LUKS"
msgstr ""
msgid "LVM on LUKS"
msgstr ""
msgid "LUKS on LVM"
msgstr ""
#, fuzzy
msgid "Yes"
msgstr "taip"
msgid "No"
msgstr ""
#, fuzzy
msgid "Archinstall help"
msgstr "Archinstall liežuvis"
msgid " (default)"
msgstr ""
msgid "Press Ctrl+h for help"
msgstr ""
msgid "Choose an option to give Sway access to your hardware"
msgstr ""
msgid "Seat access"
msgstr ""
msgid "Mountpoint"
msgstr ""
msgid "HSM"
msgstr ""
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr ""
msgid "Disk encryption password"
msgstr ""
#, fuzzy
msgid "Partition - New"
msgstr "Skaidinys"
msgid "Filesystem"
msgstr ""
msgid "Invalid size"
msgstr ""
msgid "Start (default: sector {}): "
msgstr ""
msgid "End (default: {}): "
msgstr ""
msgid "Subvolume name"
msgstr ""
#, fuzzy
msgid "Disk configuration type"
msgstr "Disko konfigūraciją"
msgid "Root mount directory"
msgstr ""
#, fuzzy
msgid "Select language"
msgstr "Lokalės liežuvis"
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr ""
msgid "Invalid download number"
msgstr ""
msgid "Number downloads"
msgstr ""
msgid "The username you entered is invalid"
msgstr ""
#, fuzzy
msgid "Username"
msgstr "Vartotojo vardas :"
#, fuzzy, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "Ar noritė padarity šitą vartotoją supervartotoju (sudoer)"
msgid "Interfaces"
msgstr ""
msgid "You need to enter a valid IP in IP-config mode"
msgstr ""
msgid "Modes"
msgstr ""
msgid "IP address"
msgstr ""
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr ""
msgid "Gateway address"
msgstr ""
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr ""
#, fuzzy
msgid "DNS servers"
msgstr "Bė garso serverio"
msgid "Configure interfaces"
msgstr ""
#, fuzzy
msgid "Kernel"
msgstr "Branduoliai"
msgid "UEFI is not detected and some options are disabled"
msgstr ""
msgid "Info"
msgstr ""
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr ""
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr ""
#, fuzzy
msgid "Main profile"
msgstr "Redaguoti profilį"
#, fuzzy
msgid "Confirm password"
msgstr "Pakeisti slaptažodžį"
msgid "The confirmation password did not match, please try again"
msgstr ""
msgid "Not a valid directory"
msgstr ""
msgid "Would you like to continue?"
msgstr ""
msgid "Directory"
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 ""
msgid "Enabled"
msgstr ""
msgid "Disabled"
msgstr ""
#, fuzzy
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Prašome pateiktį šitą problemą (ir failą) https://github.com/archlinux/archinstall/issues"
msgid "Mirror name"
msgstr ""
msgid "Url"
msgstr ""
msgid "Select signature check"
msgstr ""
#, fuzzy
msgid "Select execution mode"
msgstr "Išrinkite laiko zona"
msgid "Press ? for help"
msgstr ""
msgid "Choose an option to give Hyprland access to your hardware"
msgstr ""
msgid "Additional repositories"
msgstr ""
msgid "NTP"
msgstr ""
msgid "Swap on zram"
msgstr ""
msgid "Name"
msgstr ""
msgid "Signature check"
msgstr ""
#, python-brace-format
msgid "Selected free space segment on device {}:"
msgstr ""
#, fuzzy, python-brace-format
msgid "Size: {} / {}"
msgstr "Iš viso: {} / {}"
#, python-brace-format
msgid "Size (default: {}): "
msgstr ""
#, fuzzy
msgid "HSM device"
msgstr "Įrenginys"
msgid "Some packages could not be found in the repository"
msgstr ""
#, fuzzy
msgid "User"
msgstr "Vartotojo vardas :"
msgid "The specified configuration will be applied"
msgstr ""
msgid "Wipe"
msgstr ""
msgid "Mark/Unmark as XBOOTLDR"
msgstr ""
msgid "Loading packages..."
msgstr ""
msgid "Select any packages from the below list that should be installed additionally"
msgstr ""
#, fuzzy
msgid "Add a custom repository"
msgstr "Pridėti savo 'custom mirror'"
msgid "Change custom repository"
msgstr ""
msgid "Delete custom repository"
msgstr ""
#, fuzzy
msgid "Repository name"
msgstr "Pagrindinio kompiuterio vardas"
#, fuzzy
msgid "Add a custom server"
msgstr "Pridėti savo 'custom mirror'"
#, fuzzy
msgid "Change custom server"
msgstr "Išrinkite garso serverį"
#, fuzzy
msgid "Delete custom server"
msgstr "Pašalinti vartotoją"
msgid "Server url"
msgstr ""
#, fuzzy
msgid "Select regions"
msgstr "Išrinkite laiko zona"
#, fuzzy
msgid "Add custom servers"
msgstr "Pridėti savo 'custom mirror'"
#, fuzzy
msgid "Add custom repository"
msgstr "Pridėti savo 'custom mirror'"
msgid "Loading mirror regions..."
msgstr ""
msgid "Mirrors and repositories"
msgstr ""
#, fuzzy
msgid "Selected mirror regions"
msgstr "Pašalinti profilį"
#, fuzzy
msgid "Custom servers"
msgstr "Bė garso serverio"
msgid "Custom repositories"
msgstr ""
msgid "Only ASCII characters are supported"
msgstr ""
msgid "Show help"
msgstr ""
msgid "Exit help"
msgstr ""
msgid "Preview scroll up"
msgstr ""
msgid "Preview scroll down"
msgstr ""
msgid "Move up"
msgstr ""
msgid "Move down"
msgstr ""
msgid "Move right"
msgstr ""
msgid "Move left"
msgstr ""
msgid "Jump to entry"
msgstr ""
msgid "Skip selection (if available)"
msgstr ""
msgid "Reset selection (if available)"
msgstr ""
msgid "Select on single select"
msgstr ""
#, fuzzy
msgid "Select on multi select"
msgstr "Išrinkite laiko zona"
msgid "Reset"
msgstr ""
#, fuzzy
msgid "Skip selection menu"
msgstr "Išrinkite laiko zona"
msgid "Start search mode"
msgstr ""
msgid "Exit search mode"
msgstr ""
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid "Choose an option to give labwc access to your hardware"
msgstr ""
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid "Choose an option to give niri access to your hardware"
msgstr ""
msgid "Mark/Unmark as ESP"
msgstr ""
msgid "Package group:"
msgstr ""
#, fuzzy
msgid "Exit archinstall"
msgstr "Archinstall liežuvis"
msgid "Reboot system"
msgstr ""
msgid "chroot into installation for post-installation configurations"
msgstr ""
msgid "Installation completed"
msgstr ""
msgid "What would you like to do next?"
msgstr ""
#, python-brace-format
msgid "Select which mode to configure for \"{}\""
msgstr ""
msgid "Incorrect credentials file decryption password"
msgstr ""
#, fuzzy
msgid "Incorrect password"
msgstr "Root Slaptažodis"
msgid "Credentials file decryption password"
msgstr ""
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr ""
msgid "Credentials file encryption password"
msgstr ""
#, 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 "Print service"
msgstr ""
msgid "Would you like to configure the print service?"
msgstr ""
msgid "Power management"
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 ""
msgid "Starting device modifications in "
msgstr ""
#, fuzzy
msgid "No network connection found"
msgstr "Tinklo konfigūraciją"
msgid "Would you like to connect to a Wifi?"
msgstr ""
msgid "No wifi interface found"
msgstr ""
msgid "Select wifi network to connect to"
msgstr ""
msgid "Scanning wifi networks..."
msgstr ""
msgid "No wifi networks found"
msgstr ""
msgid "Failed setting up wifi"
msgstr ""
#, fuzzy
msgid "Enter wifi password"
msgstr "Iveskite slaptažodžį"
msgid "Ok"
msgstr ""
msgid "Removable"
msgstr ""
msgid "Install to removable location"
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr ""
msgid "Will install to standard location with NVRAM entry"
msgstr ""
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr ""
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr ""
msgid "USB drives or other portable external media."
msgstr ""
msgid "Systems where you want the disk to be bootable on any computer."
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr ""
msgid "Will install to custom location with NVRAM entry"
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr ""
msgid "most Apple Macs, many laptops..."
msgstr ""
#, fuzzy
msgid "Language"
msgstr "Lokalės liežuvis"
msgid "Compression algorithm"
msgstr ""
#, fuzzy
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Tiktai paketai tokie kaip: base, base-devel, linux, linux-firmware, efibootmgr ir neprivalomi paketai bus įdegtį."
msgid "Select zram compression algorithm:"
msgstr ""
msgid "Use Network Manager (default backend)"
msgstr ""
msgid "Use Network Manager (iwd backend)"
msgstr ""
================================================
FILE: archinstall/locales/ne/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] यहाँ एउटा लग फाइल (log file) सिर्जना गरिएको छ: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " कृपया यो समस्या (र फाइल) यहाँ बुझाउनुहोस्: https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "के तपाईं साँच्चै रद्द गर्न चाहनुहुन्छ?"
msgid "And one more time for verification: "
msgstr "र प्रमाणीकरणको लागि फेरि एक पटक: "
msgid "Would you like to use swap on zram?"
msgstr "के तपाईं zram मा swap प्रयोग गर्न चाहनुहुन्छ?"
msgid "Desired hostname for the installation: "
msgstr "स्थापनाको लागि इच्छाएको होस्ट-नाम (hostname): "
msgid "Username for required superuser with sudo privileges: "
msgstr "sudo विशेषाधिकार भएको सुपर-युजर (superuser) को लागि प्रयोगकर्ता-नाम: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "थप्नुपर्ने अन्य कुनै प्रयोगकर्ताहरू (कुनै नभए खाली छोड्नुहोस्): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "के यो प्रयोगकर्ता सुपर-युजर (sudoer) हुनुपर्छ?"
msgid "Select a timezone"
msgstr "समय-क्षेत्र (timezone) चयन गर्नुहोस्"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "के तपाईं systemd-boot को सट्टा GRUB लाई बूटलोडरको रूपमा प्रयोग गर्न चाहनुहुन्छ?"
msgid "Choose a bootloader"
msgstr "बूटलोडर (bootloader) रोज्नुहोस्"
msgid "Choose an audio server"
msgstr "अडियो सर्भर (audio server) रोज्नुहोस्"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "base, base-devel, linux, linux-firmware, efibootmgr र वैकल्पिक प्रोफाइल प्याकेजहरू मात्र स्थापना गरिनेछ।"
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr "नोट: base-devel अब पूर्वनिर्धारित रूपमा स्थापना हुँदैन। यदि तपाईंलाई निर्माण उपकरणहरू (build tools) चाहिन्छ भने यहाँ थप्नुहोस्।"
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "यदि तपाईं फायरफक्स वा क्रोमियम जस्ता वेब ब्राउजर चाहनुहुन्छ भने, अर्को प्रम्प्टमा उल्लेख गर्न सक्नुहुन्छ।"
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "स्थापना गर्नका लागि थप प्याकेजहरू लेख्नुहोस् (स्पेसले छुट्याउनुहोस्, छोड्नको लागि खाली राख्नुहोस्): "
msgid "Copy ISO network configuration to installation"
msgstr "ISO को नेटवर्क कन्फिगरेसन स्थापनामा प्रतिलिपि गर्नुहोस्"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "NetworkManager प्रयोग गर्नुहोस् (GNOME र KDE मा ग्राफिकल रूपमा इन्टरनेट कन्फिगर गर्न आवश्यक छ)"
msgid "Select one network interface to configure"
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): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "तपाईंको गेटवे (राउटर) IP ठेगाना राख्नुहोस् वा कुनै नभए खाली छोड्नुहोस्: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "तपाईंको DNS सर्भरहरू राख्नुहोस् (स्पेसले छुट्याउनुहोस्, कुनै नभए खाली छोड्नुहोस्): "
msgid "Select which filesystem your main partition should use"
msgstr "तपाईंको मुख्य पार्टिसनले कुन फाइल-प्रणाली (filesystem) प्रयोग गर्ने चयन गर्नुहोस्"
msgid "Current partition layout"
msgstr "हालको पार्टिसन लेआउट (partition layout)"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"चयन गर्नुहोस् के गर्ने\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "पार्टिसनको लागि इच्छाएको फाइल-प्रणालीको प्रकार राख्नुहोस्"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "सुरुवात स्थान राख्नुहोस् (parted units मा: s, GB, %, आदि; पूर्वनिर्धारित: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "अन्त्य स्थान राख्नुहोस् (parted units मा: s, GB, %, आदि; उदाहरणका लागि: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} मा लामबद्ध (queued) पार्टिसनहरू छन्, यसले ती हटाउनेछ, के तपाईं पक्का हुनुहुन्छ?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"कुन पार्टिसनहरू मेटाउने हो, अनुक्रमणिका (index) अनुसार चयन गर्नुहोस्"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"कुन पार्टिसन कहाँ माउन्ट (mount) गर्ने हो, अनुक्रमणिका (index) अनुसार चयन गर्नुहोस्"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * पार्टिसन माउन्ट-पोइन्टहरू स्थापना भित्रका हुन्, उदाहरणका लागि बूट /boot हुनेछ।"
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "पार्टिसन कहाँ माउन्ट गर्ने चयन गर्नुहोस् (माउन्ट-पोइन्ट हटाउन खाली छोड्नुहोस्): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"फर्म्याट (format) गर्नको लागि कुन पार्टिसन छान्ने हो, चयन गर्नुहोस्"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"कुन पार्टिसनलाई इन्क्रिप्टेड (encrypted) को रूपमा चिन्ह लगाउने हो, चयन गर्नुहोस्"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"कुन पार्टिसनलाई बूटयोग्य (bootable) को रूपमा चिन्ह लगाउने हो, चयन गर्नुहोस्"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"कुन पार्टिसनमा फाइल-प्रणाली (filesystem) सेट गर्ने हो, चयन गर्नुहोस्"
msgid "Enter a desired filesystem type for the partition: "
msgstr "पार्टिसनको लागि इच्छाएको फाइल-प्रणालीको प्रकार राख्नुहोस्: "
msgid "Archinstall language"
msgstr "Archinstall भाषा"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "सबै चयन गरिएका ड्राइभहरू सफा गर्नुहोस् र उत्तम-प्रयास पूर्वनिर्धारित पार्टिसन लेआउट प्रयोग गर्नुहोस्"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "प्रत्येक व्यक्तिगत ड्राइभसँग के गर्ने चयन गर्नुहोस् (पार्टिसन प्रयोग पछि)"
msgid "Select what you wish to do with the selected block devices"
msgstr "चयन गरिएका ब्लक उपकरणहरू (block devices) सँग तपाईं के गर्न चाहनुहुन्छ, चयन गर्नुहोस्"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "यो पूर्व-प्रोग्राम गरिएका प्रोफाइलहरूको सूची हो, यसले डेस्कटप वातावरण जस्ता चीजहरू स्थापना गर्न सजिलो बनाउन सक्छ"
msgid "Select keyboard layout"
msgstr "किबोर्ड लेआउट चयन गर्नुहोस्"
msgid "Select one of the regions to download packages from"
msgstr "प्याकेजहरू डाउनलोड गर्नका लागि क्षेत्रहरू मध्ये एक चयन गर्नुहोस्"
msgid "Select one or more hard drives to use and configure"
msgstr "प्रयोग र कन्फिगर गर्नको लागि एक वा बढी हार्ड ड्राइभहरू चयन गर्नुहोस्"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "तपाईंको AMD हार्डवेयरसँग उत्तम अनुकूलताको लागि, तपाईं कि त सबै खुला-स्रोत (open-source) वा AMD / ATI विकल्पहरू प्रयोग गर्न सक्नुहुन्छ।"
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "तपाईंको Intel हार्डवेयरसँग उत्तम अनुकूलताको लागि, तपाईं कि त सबै खुला-स्रोत (open-source) वा Intel विकल्पहरू प्रयोग गर्न सक्नुहुन्छ।\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "तपाईंको Nvidia हार्डवेयरसँग उत्तम अनुकूलताको लागि, तपाईं Nvidia प्रोप्राइटरी ड्राइभर प्रयोग गर्न सक्नुहुन्छ।\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"ग्राफिक्स ड्राइभर चयन गर्नुहोस् वा सबै खुला-स्रोत ड्राइभरहरू स्थापना गर्न खाली छोड्नुहोस्"
msgid "All open-source (default)"
msgstr "सबै खुला-स्रोत (पूर्वनिर्धारित)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "कुन कर्नलहरू (kernels) प्रयोग गर्ने रोज्नुहोस् वा पूर्वनिर्धारित \"{}\" को लागि खाली छोड्नुहोस्"
msgid "Choose which locale language to use"
msgstr "कुन लोकेल (locale) भाषा प्रयोग गर्ने रोज्नुहोस्"
msgid "Choose which locale encoding to use"
msgstr "कुन लोकेल इन्कोडिङ (locale encoding) प्रयोग गर्ने रोज्नुहोस्"
msgid "Select one of the values shown below: "
msgstr "तल देखाइएका मानहरू मध्ये एक चयन गर्नुहोस्: "
msgid "Select one or more of the options below: "
msgstr "तलका विकल्पहरू मध्ये एक वा बढी चयन गर्नुहोस्: "
msgid "Adding partition...."
msgstr "पार्टिसन थपिँदैछ...."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "अगाडि बढ्नको लागि तपाईंले मान्य फाइल-प्रणाली प्रकार (fs-type) प्रविष्ट गर्नुपर्छ। मान्य प्रकारहरूको लागि `man parted` हेर्नुहोस्।"
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "त्रुटि: URL \"{}\" मा प्रोफाइलहरू सूचीबद्ध गर्दा यो परिणाम आयो:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "त्रुटि: \"{}\" परिणामलाई JSON को रूपमा डिकोड गर्न सकिएन:"
msgid "Keyboard layout"
msgstr "किबोर्ड लेआउट"
msgid "Mirror region"
msgstr "मिरर क्षेत्र (Mirror region)"
msgid "Locale language"
msgstr "लोकेल भाषा"
msgid "Locale encoding"
msgstr "लोकेल इन्कोडिङ"
msgid "Drive(s)"
msgstr "ड्राइभ(हरू)"
msgid "Disk layout"
msgstr "डिस्क लेआउट"
msgid "Encryption password"
msgstr "इन्क्रिप्सन पासवर्ड"
msgid "Swap"
msgstr "Swap"
msgid "Bootloader"
msgstr "बूटलोडर"
msgid "Root password"
msgstr "रूट (Root) पासवर्ड"
msgid "Superuser account"
msgstr "सुपर-युजर खाता"
msgid "User account"
msgstr "प्रयोगकर्ता खाता"
msgid "Profile"
msgstr "प्रोफाइल"
msgid "Audio"
msgstr "अडियो"
msgid "Kernels"
msgstr "कर्नलहरू (Kernels)"
msgid "Additional packages"
msgstr "थप प्याकेजहरू"
msgid "Network configuration"
msgstr "नेटवर्क कन्फिगरेसन"
msgid "Automatic time sync (NTP)"
msgstr "स्वचालित समय सिङ्क्रोनाइजेसन (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "स्थापना गर्नुहोस् ({} कन्फिगरेसन बाँकी)"
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 ""
"तपाईंले हार्ड-ड्राइभ चयन छोड्ने निर्णय गर्नुभयो\n"
"र {} मा माउन्ट गरिएको जुनकुनै ड्राइभ-सेटअप प्रयोग गरिनेछ (प्रयोगात्मक)\n"
"चेतावनी: Archinstall ले यो सेटअपको उपयुक्तता जाँच गर्ने छैन\n"
"के तपाईं जारी राख्न चाहनुहुन्छ?"
msgid "Re-using partition instance: {}"
msgstr "पार्टिसन उदाहरण पुन: प्रयोग गरिँदै: {}"
msgid "Create a new partition"
msgstr "नयाँ पार्टिसन सिर्जना गर्नुहोस्"
msgid "Delete a partition"
msgstr "पार्टिसन मेटाउनुहोस्"
msgid "Clear/Delete all partitions"
msgstr "सबै पार्टिसनहरू सफा गर्नुहोस्/मेटाउनुहोस्"
msgid "Assign mount-point for a partition"
msgstr "पार्टिसनको लागि माउन्ट-पोइन्ट तोक्नुहोस्"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "पार्टिसन फर्म्याट गर्नको लागि चिन्ह लगाउनुहोस् वा हटाउनुहोस् (डाटा मेटिनेछ)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "पार्टिसनलाई इन्क्रिप्टेडको रूपमा चिन्ह लगाउनुहोस् वा हटाउनुहोस्"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "पार्टिसनलाई बूटयोग्य (bootable) को रूपमा चिन्ह लगाउनुहोस् वा हटाउनुहोस् (/boot को लागि स्वचालित)"
msgid "Set desired filesystem for a partition"
msgstr "पार्टिसनको लागि इच्छाएको फाइल-प्रणाली (filesystem) सेट गर्नुहोस्"
msgid "Abort"
msgstr "रद्द गर्नुहोस्"
msgid "Hostname"
msgstr "होस्टनाम (Hostname)"
msgid "Not configured, unavailable unless setup manually"
msgstr "कन्फिगर गरिएको छैन, म्यानुअल रूपमा सेटअप नगरेसम्म उपलब्ध हुने छैन"
msgid "Timezone"
msgstr "समय-क्षेत्र (Timezone)"
msgid "Set/Modify the below options"
msgstr "तलका विकल्पहरू सेट वा परिमार्जन गर्नुहोस्"
msgid "Install"
msgstr "स्थापना गर्नुहोस्"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"छोड्नको लागि ESC प्रयोग गर्नुहोस्\n"
"\n"
msgid "Suggest partition layout"
msgstr "पार्टिसन लेआउट सुझाव दिनुहोस्"
msgid "Enter a password: "
msgstr "पासवर्ड राख्नुहोस्: "
msgid "Enter a encryption password for {}"
msgstr "{} को लागि इन्क्रिप्सन पासवर्ड राख्नुहोस्"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "डिस्क इन्क्रिप्सन पासवर्ड राख्नुहोस् (इन्क्रिप्सन नचाहिएमा खाली छोड्नुहोस्): "
msgid "Create a required super-user with sudo privileges: "
msgstr "sudo विशेषाधिकार भएको आवश्यक सुपर-युजर (superuser) सिर्जना गर्नुहोस्: "
msgid "Enter root password (leave blank to disable root): "
msgstr "रूट (root) पासवर्ड राख्नुहोस् (रूट असक्षम गर्न खाली छोड्नुहोस्): "
msgid "Password for user \"{}\": "
msgstr "प्रयोगकर्ता \"{}\" को लागि पासवर्ड: "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "थप प्याकेजहरू अवस्थित छन् कि छैनन् भनेर प्रमाणित गरिँदैछ (यसले केही सेकेन्ड लिन सक्छ)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "के तपाईं पूर्वनिर्धारित समय सर्भरहरूसँग स्वचालित समय सिङ्क्रोनाइजेसन (NTP) प्रयोग गर्न चाहनुहुन्छ?\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 ले काम गर्नको लागि हार्डवेयर समय र अन्य पोस्ट-कन्फिगरेसन चरणहरू आवश्यक पर्न सक्छ।\n"
"थप जानकारीको लागि, कृपया Arch wiki जाँच गर्नुहोस्"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "थप प्रयोगकर्ता सिर्जना गर्न प्रयोगकर्ता-नाम राख्नुहोस् (छोड्नको लागि खाली छोड्नुहोस्): "
msgid "Use ESC to skip\n"
msgstr "छोड्नको लागि ESC प्रयोग गर्नुहोस्\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
" सूचीबाट एउटा वस्तु छान्नुहोस्, र यसलाई कार्यान्वयन गर्न उपलब्ध कार्यहरू मध्ये एउटा चयन गर्नुहोस्"
msgid "Cancel"
msgstr "रद्द गर्नुहोस्"
msgid "Confirm and exit"
msgstr "पुष्टि गर्नुहोस् र बाहिर निस्कनुहोस्"
msgid "Add"
msgstr "थप्नुहोस्"
msgid "Copy"
msgstr "प्रतिलिपि गर्नुहोस्"
msgid "Edit"
msgstr "सम्पादन गर्नुहोस्"
msgid "Delete"
msgstr "मेटाउनुहोस्"
msgid "Select an action for '{}'"
msgstr "'{}' को लागि एउटा कार्य चयन गर्नुहोस्"
msgid "Copy to new key:"
msgstr "नयाँ कुञ्जी (key) मा प्रतिलिपि गर्नुहोस्:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "अज्ञात nic प्रकार: {}। सम्भावित मानहरू {} हुन्"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"यो तपाईंले रोज्नुभएको कन्फिगरेसन हो:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman पहिले नै चलिरहेको छ, यसलाई बन्द हुनको लागि अधिकतम १० मिनेट पर्खिँदैछ।"
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "पहिले देखिको pacman लक हटेन। कृपया archinstall प्रयोग गर्नु अघि अवस्थित कुनै पनि pacman सेसनहरू बन्द गर्नुहोस्।"
msgid "Choose which optional additional repositories to enable"
msgstr "सक्षम गर्नका लागि कुन वैकल्पिक थप रिपोजिटरीहरू (repositories) रोज्ने हो, चयन गर्नुहोस्"
msgid "Add a user"
msgstr "प्रयोगकर्ता थप्नुहोस्"
msgid "Change password"
msgstr "पासवर्ड परिवर्तन गर्नुहोस्"
msgid "Promote/Demote user"
msgstr "प्रयोगकर्तालाई बढावा/घटावा (Promote/Demote) गर्नुहोस्"
msgid "Delete User"
msgstr "प्रयोगकर्ता मेटाउनुहोस्"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"नयाँ प्रयोगकर्ता परिभाषित गर्नुहोस्\n"
msgid "User Name : "
msgstr "प्रयोगकर्ताको नाम : "
msgid "Should {} be a superuser (sudoer)?"
msgstr "के {} सुपर-युजर (sudoer) हुनुपर्छ?"
msgid "Define users with sudo privilege: "
msgstr "sudo विशेषाधिकार भएका प्रयोगकर्ताहरू परिभाषित गर्नुहोस्: "
msgid "No network configuration"
msgstr "कुनै नेटवर्क कन्फिगरेसन छैन"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "btrfs पार्टिसनमा इच्छाएको सब-भोल्युमहरू (subvolumes) सेट गर्नुहोस्"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"कुन पार्टिसनमा सब-भोल्युमहरू सेट गर्ने हो, चयन गर्नुहोस्"
msgid "Manage btrfs subvolumes for current partition"
msgstr "हालको पार्टिसनको लागि btrfs सब-भोल्युमहरू व्यवस्थित गर्नुहोस्"
msgid "No configuration"
msgstr "कुनै कन्फिगरेसन छैन"
msgid "Save user configuration"
msgstr "प्रयोगकर्ता कन्फिगरेसन बचत गर्नुहोस्"
msgid "Save user credentials"
msgstr "प्रयोगकर्ताका पत्यारपत्रहरू (credentials) बचत गर्नुहोस्"
msgid "Save disk layout"
msgstr "डिस्क लेआउट बचत गर्नुहोस्"
msgid "Save all"
msgstr "सबै बचत गर्नुहोस्"
msgid "Choose which configuration to save"
msgstr "कुन कन्फिगरेसन बचत गर्ने रोज्नुहोस्"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "कन्फिगरेसन बचत गर्नको लागि एउटा डाइरेक्टरी प्रविष्ट गर्नुहोस्: "
msgid "Not a valid directory: {}"
msgstr "मान्य डाइरेक्टरी होइन: {}"
msgid "The password you are using seems to be weak,"
msgstr "तपाईंले प्रयोग गरिरहनुभएको पासवर्ड कमजोर देखिन्छ,"
msgid "are you sure you want to use it?"
msgstr "के तपाईं निश्चित रूपमा यसलाई प्रयोग गर्न चाहनुहुन्छ?"
msgid "Optional repositories"
msgstr "वैकल्पिक रिपोजिटरीहरू (Optional repositories)"
msgid "Save configuration"
msgstr "कन्फिगरेसन बचत गर्नुहोस्"
msgid "Missing configurations:\n"
msgstr "छुटिरहेका कन्फिगरेसनहरू:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "कि त रूट-पासवर्ड वा कम्तिमा १ सुपर-युजर (superuser) उल्लेख गर्नुपर्छ"
msgid "Manage superuser accounts: "
msgstr "सुपर-युजर खाताहरू व्यवस्थापन गर्नुहोस्: "
msgid "Manage ordinary user accounts: "
msgstr "साधारण प्रयोगकर्ता खाताहरू व्यवस्थापन गर्नुहोस्: "
msgid " Subvolume :{:16}"
msgstr " उप-भोल्युम :{:16}"
msgid " mounted at {:16}"
msgstr " {:16} मा माउन्ट गरिएको"
msgid " with option {}"
msgstr " विकल्प {} सँग"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
" नयाँ उप-भोल्युमको लागि इच्छाएको मानहरू भर्नुहोस् \n"
msgid "Subvolume name "
msgstr "उप-भोल्युमको नाम "
msgid "Subvolume mountpoint"
msgstr "उप-भोल्युम माउन्ट-पोइन्ट"
msgid "Subvolume options"
msgstr "उप-भोल्युम विकल्पहरू"
msgid "Save"
msgstr "बचत गर्नुहोस्"
msgid "Subvolume name :"
msgstr "उप-भोल्युमको नाम :"
msgid "Select a mount point :"
msgstr "माउन्ट पोइन्ट चयन गर्नुहोस् :"
msgid "Select the desired subvolume options "
msgstr "इच्छाएको उप-भोल्युम विकल्पहरू चयन गर्नुहोस् "
msgid "Define users with sudo privilege, by username: "
msgstr "प्रयोगकर्ता-नाम मार्फत sudo विशेषाधिकार भएका प्रयोगकर्ताहरू परिभाषित गर्नुहोस्: "
#, python-brace-format
msgid "[!] A log file has been created here: {}"
msgstr "[!] यहाँ एउटा लग फाइल सिर्जना गरिएको छ: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "के तपाईं पूर्वनिर्धारित ढाँचामा BTRFS उप-भोल्युमहरू प्रयोग गर्न चाहनुहुन्छ?"
msgid "Would you like to use BTRFS compression?"
msgstr "के तपाईं BTRFS कम्प्रेसन (compression) प्रयोग गर्न चाहनुहुन्छ?"
msgid "Would you like to create a separate partition for /home?"
msgstr "के तपाईं /home को लागि छुट्टै पार्टिसन सिर्जना गर्न चाहनुहुन्छ?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "चयन गरिएका ड्राइभहरूमा स्वचालित सुझावको लागि आवश्यक न्यूनतम क्षमता छैन\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "/home पार्टिसनको लागि न्यूनतम क्षमता: {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Arch Linux पार्टिसनको लागि न्यूनतम क्षमता: {}GB"
msgid "Continue"
msgstr "जारी राख्नुहोस्"
msgid "yes"
msgstr "हो"
msgid "no"
msgstr "होइन"
msgid "set: {}"
msgstr "सेट: {}"
msgid "Manual configuration setting must be a list"
msgstr "म्यानुअल कन्फिगरेसन सेटिङ एउटा सूची (list) हुनुपर्छ"
msgid "No iface specified for manual configuration"
msgstr "म्यानुअल कन्फिगरेसनको लागि कुनै iface उल्लेख गरिएको छैन"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "स्वचालित DHCP बिनाको म्यानुअल nic कन्फिगरेसनको लागि IP ठेगाना आवश्यक पर्छ"
msgid "Add interface"
msgstr "इन्टरफेस थप्नुहोस्"
msgid "Edit interface"
msgstr "इन्टरफेस सम्पादन गर्नुहोस्"
msgid "Delete interface"
msgstr "इन्टरफेस मेटाउनुहोस्"
msgid "Select interface to add"
msgstr "थप्नको लागि इन्टरफेस चयन गर्नुहोस्"
msgid "Manual configuration"
msgstr "म्यानुअल कन्फिगरेसन"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "पार्टिसनलाई कम्प्रेस्ड (compressed) को रूपमा चिन्ह लगाउनुहोस् वा हटाउनुहोस् (btrfs को लागि मात्र)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "तपाईंले प्रयोग गरिरहनुभएको पासवर्ड कमजोर देखिन्छ, के तपाईं निश्चित रूपमा यसलाई प्रयोग गर्न चाहनुहुन्छ?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "डेस्कटप वातावरण र टाइलिङ विन्डो प्रबन्धकहरूको छनोट प्रदान गर्दछ, जस्तै: gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "आफ्नो इच्छाएको डेस्कटप वातावरण चयन गर्नुहोस्"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "एकदमै आधारभूत स्थापना जसले तपाईंलाई आफ्नो आवश्यकता अनुसार Arch Linux कस्टमाइज गर्न अनुमति दिन्छ।"
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "स्थापना र सक्षम गर्नका लागि विभिन्न सर्भर प्याकेजहरूको छनोट प्रदान गर्दछ, जस्तै: httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "कुन सर्भरहरू स्थापना गर्ने रोज्नुहोस्, यदि कुनै पनि रोजिएन भने न्यूनतम (minimal) स्थापना गरिनेछ"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "न्यूनतम प्रणालीको साथै xorg र ग्राफिक्स ड्राइभरहरू स्थापना गर्दछ।"
msgid "Press Enter to continue."
msgstr "अगाडि बढ्नको लागि Enter थिच्नुहोस्।"
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "के तपाईं भर्खरै सिर्जना गरिएको स्थापनामा chroot गरेर स्थापना-पश्चातको कन्फिगरेसन गर्न चाहनुहुन्छ?"
msgid "Are you sure you want to reset this setting?"
msgstr "के तपाईं पक्का यो सेटिङ रिसेट गर्न चाहनुहुन्छ?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "प्रयोग र कन्फिगर गर्नको लागि एक वा बढी हार्ड ड्राइभहरू चयन गर्नुहोस्\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "अवस्थित सेटिङमा कुनै पनि परिमार्जनले डिस्क लेआउटलाई रिसेट गर्नेछ!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "यदि तपाईंले हार्ड-ड्राइभ चयन रिसेट गर्नुभयो भने यसले हालको डिस्क लेआउट पनि रिसेट गर्नेछ। के तपाईं पक्का हुनुहुन्छ?"
msgid "Save and exit"
msgstr "बचत गर्नुहोस् र बाहिर निस्कनुहोस्"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"मा लामबद्ध पार्टिसनहरू छन्, यसले ती हटाउनेछ, के तपाईं पक्का हुनुहुन्छ?"
msgid "No audio server"
msgstr "कुनै अडियो सर्भर छैन"
msgid "(default)"
msgstr "(पूर्वनिर्धारित)"
msgid "Use ESC to skip"
msgstr "छोड्नको लागि ESC प्रयोग गर्नुहोस्"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"हालको चयन रिसेट गर्न CTRL+C प्रयोग गर्नुहोस्\n"
"\n"
msgid "Copy to: "
msgstr "यसमा प्रतिलिपि गर्नुहोस्: "
msgid "Edit: "
msgstr "सम्पादन: "
msgid "Key: "
msgstr "कुञ्जी (Key): "
msgid "Edit {}: "
msgstr "सम्पादन {}: "
msgid "Add: "
msgstr "थप्नुहोस्: "
msgid "Value: "
msgstr "मान (Value): "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "तपाईं ड्राइभ चयन र पार्टिसन गर्ने प्रक्रिया छोडेर /mnt मा माउन्ट गरिएको जुनकुनै ड्राइभ-सेटअप प्रयोग गर्न सक्नुहुन्छ (प्रयोगात्मक)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "डिस्कहरू मध्ये एक चयन गर्नुहोस् वा छोडेर /mnt लाई पूर्वनिर्धारितको रूपमा प्रयोग गर्नुहोस्"
msgid "Select which partitions to mark for formatting:"
msgstr "फर्म्याट गर्नका लागि कुन पार्टिसनहरू चिन्ह लगाउने हो, चयन गर्नुहोस्:"
msgid "Use HSM to unlock encrypted drive"
msgstr "इन्क्रिप्टेड ड्राइभ अनलक गर्न HSM प्रयोग गर्नुहोस्"
msgid "Device"
msgstr "उपकरण (Device)"
msgid "Size"
msgstr "साइज"
msgid "Free space"
msgstr "खाली ठाउँ"
msgid "Bus-type"
msgstr "बस-प्रकार (Bus-type)"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "कि त रूट-पासवर्ड वा कम्तिमा १ sudo विशेषाधिकार भएको प्रयोगकर्ता उल्लेख गर्नुपर्छ"
msgid "Enter username (leave blank to skip): "
msgstr "प्रयोगकर्ता-नाम प्रविष्ट गर्नुहोस् (छोड्नको लागि खाली छोड्नुहोस्): "
msgid "The username you entered is invalid. Try again"
msgstr "तपाईंले प्रविष्ट गर्नुभएको प्रयोगकर्ता-नाम अमान्य छ। फेरि प्रयास गर्नुहोस्"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "के \"{}\" सुपर-युजर (sudo) हुनुपर्छ?"
msgid "Select which partitions to encrypt"
msgstr "कुन पार्टिसनहरू इन्क्रिप्ट गर्ने हो, चयन गर्नुहोस्"
msgid "very weak"
msgstr "एकदमै कमजोर"
msgid "weak"
msgstr "कमजोर"
msgid "moderate"
msgstr "मध्यम"
msgid "strong"
msgstr "बलियो"
msgid "Add subvolume"
msgstr "सब-भोल्युम थप्नुहोस्"
msgid "Edit subvolume"
msgstr "सब-भोल्युम सम्पादन गर्नुहोस्"
msgid "Delete subvolume"
msgstr "सब-भोल्युम मेटाउनुहोस्"
msgid "Configured {} interfaces"
msgstr "{} इन्टरफेसहरू कन्फिगर गरियो"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "यो विकल्पले स्थापनाको क्रममा हुन सक्ने समानान्तर डाउनलोड (parallel downloads) को संख्या सक्षम पार्छ"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"सक्षम गरिने समानान्तर डाउनलोडको संख्या प्रविष्ट गर्नुहोस्।\n"
" (१ देखि {} सम्मको मान प्रविष्ट गर्नुहोस्)\n"
"द्रष्टव्य:"
#, fuzzy
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - अधिकतम मान : {} ( यसले {} समानान्तर डाउनलोड र एक पटकमा {} डाउनलोड अनुमति दिन्छ )"
#, fuzzy
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - न्यूनतम मान : १ ( यसले १ समानान्तर डाउनलोड र एक पटकमा २ डाउनलोड अनुमति दिन्छ )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - असक्षम/पूर्वनिर्धारित : ० ( समानान्तर डाउनलोड असक्षम गर्छ, एक पटकमा १ डाउनलोड मात्र अनुमति दिन्छ )"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "अमान्य इनपुट! मान्य इनपुटको साथ पुन: प्रयास गर्नुहोस् [१ देखि {max_downloads}, वा असक्षम गर्न ०]"
msgid "Parallel Downloads"
msgstr "समानान्तर डाउनलोडहरू (Parallel Downloads)"
msgid "ESC to skip"
msgstr "छोड्नको लागि ESC"
msgid "CTRL+C to reset"
msgstr "रिसेट गर्न CTRL+C"
msgid "TAB to select"
msgstr "चयन गर्न TAB"
msgid "[Default value: 0] > "
msgstr "[पूर्वनिर्धारित मान: ०] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "यो अनुवाद प्रयोग गर्न सक्षम हुनको लागि, कृपया यो भाषा समर्थन गर्ने फन्ट म्यानुअल रूपमा स्थापना गर्नुहोस्।"
msgid "The font should be stored as {}"
msgstr "फन्ट {} को रूपमा भण्डारण गरिनुपर्छ"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Archinstall चलाउन रूट (root) विशेषाधिकार चाहिन्छ। थप जानकारीको लागि --help हेर्नुहोस्।"
msgid "Select an execution mode"
msgstr "कार्यान्वयन मोड (execution mode) चयन गर्नुहोस्"
#, 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 "प्रोफाइलहरूको नाम अद्वितीय हुनुपर्छ, तर दोहोरिएको नाम भएका प्रोफाइल परिभाषाहरू फेला परे: {}"
msgid "Select one or more devices to use and configure"
msgstr "प्रयोग र कन्फिगर गर्नको लागि एक वा बढी उपकरणहरू चयन गर्नुहोस्"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "यदि तपाईंले उपकरण चयन रिसेट गर्नुभयो भने यसले हालको डिस्क लेआउट पनि रिसेट गर्नेछ। के तपाईं पक्का हुनुहुन्छ?"
msgid "Existing Partitions"
msgstr "अवस्थित पार्टिसनहरू"
msgid "Select a partitioning option"
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"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "यो पूर्व-प्रोग्राम गरिएका प्रोफाइलहरूको सूची हो, यसले डेस्कटप वातावरण जस्ता चीजहरू स्थापना गर्न सजिलो बनाउन सक्छ"
msgid "Current profile selection"
msgstr "हालको प्रोफाइल चयन"
msgid "Remove all newly added partitions"
msgstr "भर्खरै थपिएका सबै पार्टिसनहरू हटाउनुहोस्"
msgid "Assign mountpoint"
msgstr "माउन्ट-पोइन्ट तोक्नुहोस्"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "फर्म्याट गर्नको लागि चिन्ह लगाउनुहोस् वा हटाउनुहोस् (डाटा मेटिनेछ)"
msgid "Mark/Unmark as bootable"
msgstr "बूटयोग्यको रूपमा चिन्ह लगाउनुहोस् वा हटाउनुहोस्"
msgid "Change filesystem"
msgstr "फाइल-प्रणाली परिवर्तन गर्नुहोस्"
msgid "Mark/Unmark as compressed"
msgstr "कम्प्रेस्डको रूपमा चिन्ह लगाउनुहोस् वा हटाउनुहोस्"
msgid "Set subvolumes"
msgstr "सब-भोल्युमहरू सेट गर्नुहोस्"
msgid "Delete partition"
msgstr "पार्टिसन मेटाउनुहोस्"
msgid "Partition"
msgstr "पार्टिसन"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "यो पार्टिसन हाल इन्क्रिप्टेड छ, यसलाई फर्म्याट गर्नको लागि फाइल-प्रणाली उल्लेख गर्नुपर्छ"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "पार्टिसन माउन्ट-पोइन्टहरू स्थापना भित्रका हुन्, उदाहरणका लागि बूट /boot हुनेछ।"
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "यदि माउन्ट-पोइन्ट /boot सेट गरियो भने, पार्टिसनलाई बूटयोग्यको रूपमा पनि चिन्ह लगाइनेछ।"
msgid "Mountpoint: "
msgstr "माउन्ट-पोइन्ट: "
msgid "Current free sectors on device {}:"
msgstr "उपकरण {} मा हालका खाली सेक्टरहरू (sectors):"
msgid "Total sectors: {}"
msgstr "कुल सेक्टरहरू: {}"
msgid "Enter the start sector (default: {}): "
msgstr "सुरुवात सेक्टर प्रविष्ट गर्नुहोस् (पूर्वनिर्धारित: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
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 ""
msgid "Encryption type"
msgstr ""
msgid "Iteration time"
msgstr ""
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr ""
msgid "Higher values increase security but slow down boot time"
msgstr ""
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr ""
msgid "Iteration time cannot be empty"
msgstr ""
msgid "Iteration time must be at least 100ms"
msgstr ""
msgid "Iteration time must be at most 120000ms"
msgstr ""
msgid "Please enter a valid number"
msgstr ""
msgid "Partitions"
msgstr ""
msgid "No HSM devices available"
msgstr ""
msgid "Partitions to be encrypted"
msgstr ""
msgid "Select disk encryption option"
msgstr ""
msgid "Select a FIDO2 device to use for HSM"
msgstr ""
msgid "Use a best-effort default partition layout"
msgstr ""
msgid "Manual Partitioning"
msgstr ""
msgid "Pre-mounted configuration"
msgstr ""
msgid "Unknown"
msgstr ""
msgid "Partition encryption"
msgstr ""
#, python-brace-format
msgid " ! Formatting {} in "
msgstr ""
msgid "← Back"
msgstr ""
msgid "Disk encryption"
msgstr "डिस्क इन्क्रिप्सन"
msgid "Configuration"
msgstr ""
msgid "Password"
msgstr "पासवर्ड"
msgid "All settings will be reset, are you sure?"
msgstr ""
msgid "Back"
msgstr "पछाडि"
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr ""
#, python-brace-format
msgid "Environment type: {}"
msgstr ""
msgid "The proprietary Nvidia driver is not supported by Sway. It is likely that you will run into issues, are you okay with that?"
msgstr ""
msgid "Installed packages"
msgstr ""
msgid "Add profile"
msgstr ""
msgid "Edit profile"
msgstr ""
msgid "Delete profile"
msgstr ""
msgid "Profile name: "
msgstr ""
msgid "The profile name you entered is already in use. Try again"
msgstr ""
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr ""
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr ""
msgid "Should this profile be enabled for installation?"
msgstr ""
msgid "Create your own"
msgstr ""
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
msgid "Graphics driver"
msgstr ""
msgid "Greeter"
msgstr ""
msgid "Please chose which greeter to install"
msgstr ""
msgid "This is a list of pre-programmed default_profiles"
msgstr ""
msgid "Disk configuration"
msgstr ""
msgid "Profiles"
msgstr ""
msgid "Finding possible directories to save configuration files ..."
msgstr ""
msgid "Select directory (or directories) for saving configuration files"
msgstr ""
msgid "Add a custom mirror"
msgstr ""
msgid "Change custom mirror"
msgstr ""
msgid "Delete custom mirror"
msgstr ""
msgid "Enter name (leave blank to skip): "
msgstr ""
msgid "Enter url (leave blank to skip): "
msgstr ""
msgid "Select signature check option"
msgstr ""
msgid "Select signature option"
msgstr ""
msgid "Custom mirrors"
msgstr ""
msgid "Defined"
msgstr ""
msgid "Save user configuration (including disk layout)"
msgstr ""
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
msgid "Saving {} configuration files to {}"
msgstr ""
msgid "Mirrors"
msgstr ""
msgid "Mirror regions"
msgstr ""
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr ""
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr ""
msgid "Locales"
msgstr ""
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr ""
msgid "Total: {} / {}"
msgstr ""
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr ""
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr ""
msgid "Enter start (default: sector {}): "
msgstr ""
msgid "Enter end (default: {}): "
msgstr ""
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr ""
msgid "Path"
msgstr ""
msgid "Manufacturer"
msgstr ""
msgid "Product"
msgstr ""
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr ""
msgid "Type"
msgstr ""
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr ""
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
#, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr ""
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr ""
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr ""
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr ""
msgid "Would you like to use unified kernel images?"
msgstr ""
msgid "Unified kernel images"
msgstr ""
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr ""
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr ""
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr ""
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr ""
msgid "Selected profiles: "
msgstr ""
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr ""
msgid "Mark/Unmark as nodatacow"
msgstr ""
msgid "Would you like to use compression or disable CoW?"
msgstr ""
msgid "Use compression"
msgstr ""
msgid "Disable Copy-on-Write"
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 ""
msgid "LVM configuration type"
msgstr ""
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr ""
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr ""
msgid "Select a LVM option"
msgstr ""
msgid "Partitioning"
msgstr ""
msgid "Logical Volume Management (LVM)"
msgstr ""
msgid "Physical volumes"
msgstr ""
msgid "Volumes"
msgstr ""
msgid "LVM volumes"
msgstr ""
msgid "LVM volumes to be encrypted"
msgstr ""
msgid "Select which LVM volumes to encrypt"
msgstr ""
msgid "Default layout"
msgstr ""
msgid "No Encryption"
msgstr ""
msgid "LUKS"
msgstr ""
msgid "LVM on LUKS"
msgstr ""
msgid "LUKS on LVM"
msgstr ""
msgid "Yes"
msgstr ""
msgid "No"
msgstr "होइन"
msgid "Archinstall help"
msgstr ""
msgid " (default)"
msgstr ""
msgid "Press Ctrl+h for help"
msgstr ""
msgid "Choose an option to give Sway access to your hardware"
msgstr ""
msgid "Seat access"
msgstr ""
msgid "Mountpoint"
msgstr ""
msgid "HSM"
msgstr ""
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr ""
msgid "Disk encryption password"
msgstr ""
msgid "Partition - New"
msgstr ""
msgid "Filesystem"
msgstr ""
msgid "Invalid size"
msgstr ""
msgid "Start (default: sector {}): "
msgstr ""
msgid "End (default: {}): "
msgstr ""
msgid "Subvolume name"
msgstr ""
msgid "Disk configuration type"
msgstr ""
msgid "Root mount directory"
msgstr ""
msgid "Select language"
msgstr ""
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr ""
msgid "Invalid download number"
msgstr ""
msgid "Number downloads"
msgstr ""
msgid "The username you entered is invalid"
msgstr ""
msgid "Username"
msgstr ""
#, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr ""
msgid "Interfaces"
msgstr ""
msgid "You need to enter a valid IP in IP-config mode"
msgstr ""
msgid "Modes"
msgstr ""
msgid "IP address"
msgstr ""
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr ""
msgid "Gateway address"
msgstr ""
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr ""
msgid "DNS servers"
msgstr ""
msgid "Configure interfaces"
msgstr ""
msgid "Kernel"
msgstr ""
msgid "UEFI is not detected and some options are disabled"
msgstr ""
msgid "Info"
msgstr ""
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr ""
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr ""
msgid "Main profile"
msgstr ""
msgid "Confirm password"
msgstr ""
msgid "The confirmation password did not match, please try again"
msgstr ""
msgid "Not a valid directory"
msgstr ""
msgid "Would you like to continue?"
msgstr ""
msgid "Directory"
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 ""
msgid "Enabled"
msgstr ""
msgid "Disabled"
msgstr ""
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr ""
msgid "Mirror name"
msgstr ""
msgid "Url"
msgstr ""
msgid "Select signature check"
msgstr ""
msgid "Select execution mode"
msgstr ""
msgid "Press ? for help"
msgstr ""
msgid "Choose an option to give Hyprland access to your hardware"
msgstr ""
msgid "Additional repositories"
msgstr ""
msgid "NTP"
msgstr ""
msgid "Swap on zram"
msgstr ""
msgid "Name"
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 ""
msgid "HSM device"
msgstr ""
msgid "Some packages could not be found in the repository"
msgstr ""
msgid "User"
msgstr "प्रयोगकर्ता"
msgid "The specified configuration will be applied"
msgstr ""
msgid "Wipe"
msgstr ""
msgid "Mark/Unmark as XBOOTLDR"
msgstr ""
msgid "Loading packages..."
msgstr ""
msgid "Select any packages from the below list that should be installed additionally"
msgstr ""
msgid "Add a custom repository"
msgstr ""
msgid "Change custom repository"
msgstr ""
msgid "Delete custom repository"
msgstr ""
msgid "Repository name"
msgstr ""
msgid "Add a custom server"
msgstr ""
msgid "Change custom server"
msgstr ""
msgid "Delete custom server"
msgstr ""
msgid "Server url"
msgstr ""
msgid "Select regions"
msgstr ""
msgid "Add custom servers"
msgstr ""
msgid "Add custom repository"
msgstr ""
msgid "Loading mirror regions..."
msgstr ""
msgid "Mirrors and repositories"
msgstr ""
msgid "Selected mirror regions"
msgstr ""
msgid "Custom servers"
msgstr ""
msgid "Custom repositories"
msgstr ""
msgid "Only ASCII characters are supported"
msgstr ""
msgid "Show help"
msgstr ""
msgid "Exit help"
msgstr ""
msgid "Preview scroll up"
msgstr ""
msgid "Preview scroll down"
msgstr ""
msgid "Move up"
msgstr ""
msgid "Move down"
msgstr ""
msgid "Move right"
msgstr ""
msgid "Move left"
msgstr ""
msgid "Jump to entry"
msgstr ""
msgid "Skip selection (if available)"
msgstr ""
msgid "Reset selection (if available)"
msgstr ""
msgid "Select on single select"
msgstr ""
msgid "Select on multi select"
msgstr ""
msgid "Reset"
msgstr ""
msgid "Skip selection menu"
msgstr ""
msgid "Start search mode"
msgstr ""
msgid "Exit search mode"
msgstr ""
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid "Choose an option to give labwc access to your hardware"
msgstr ""
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid "Choose an option to give niri access to your hardware"
msgstr ""
msgid "Mark/Unmark as ESP"
msgstr ""
msgid "Package group:"
msgstr ""
msgid "Exit archinstall"
msgstr ""
msgid "Reboot system"
msgstr ""
msgid "chroot into installation for post-installation configurations"
msgstr ""
msgid "Installation completed"
msgstr ""
msgid "What would you like to do next?"
msgstr ""
#, python-brace-format
msgid "Select which mode to configure for \"{}\""
msgstr ""
msgid "Incorrect credentials file decryption password"
msgstr ""
msgid "Incorrect password"
msgstr ""
msgid "Credentials file decryption password"
msgstr ""
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr ""
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 ""
msgid "Would you like to configure Bluetooth?"
msgstr ""
msgid "Print service"
msgstr ""
msgid "Would you like to configure the print service?"
msgstr ""
msgid "Power management"
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 ""
#, 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 ""
msgid "Starting device modifications in "
msgstr ""
msgid "No network connection found"
msgstr ""
msgid "Would you like to connect to a Wifi?"
msgstr ""
msgid "No wifi interface found"
msgstr ""
msgid "Select wifi network to connect to"
msgstr ""
msgid "Scanning wifi networks..."
msgstr ""
msgid "No wifi networks found"
msgstr ""
msgid "Failed setting up wifi"
msgstr ""
msgid "Enter wifi password"
msgstr ""
msgid "Ok"
msgstr ""
msgid "Removable"
msgstr ""
msgid "Install to removable location"
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr ""
msgid "Will install to standard location with NVRAM entry"
msgstr ""
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr ""
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr ""
msgid "USB drives or other portable external media."
msgstr ""
msgid "Systems where you want the disk to be bootable on any computer."
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr ""
msgid "Will install to custom location with NVRAM entry"
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr ""
msgid "most Apple Macs, many laptops..."
msgstr ""
msgid "Language"
msgstr "भाषा"
msgid "Compression algorithm"
msgstr ""
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr ""
msgid "Select zram compression algorithm:"
msgstr ""
msgid "Use Network Manager (default backend)"
msgstr ""
msgid "Use Network Manager (iwd backend)"
msgstr ""
msgid "Firewall"
msgstr ""
msgid "Select audio configuration"
msgstr ""
msgid "Enter credentials file decryption password"
msgstr ""
msgid "Enter root password"
msgstr ""
msgid "Select bootloader to install"
msgstr ""
msgid "Configuration preview"
msgstr ""
msgid "Enter a directory for the configuration(s) to be saved"
msgstr ""
msgid "Select encryption type"
msgstr ""
msgid "Select disks for the installation"
msgstr ""
msgid "Enter a mountpoint"
msgstr ""
#, python-brace-format
msgid "Enter a size (default: {}): "
msgstr ""
msgid "Enter subvolume name"
msgstr ""
msgid "Enter subvolume mountpoint"
msgstr ""
msgid "Select a disk configuration"
msgstr ""
msgid "Enter root mount directory"
msgstr ""
msgid "You will use whatever drive-setup is mounted at the specified directory"
msgstr ""
msgid "WARNING: Archinstall won't check the suitability of this setup"
msgstr ""
msgid "Select main filesystem"
msgstr ""
msgid "Enter a hostname"
msgstr ""
msgid "Select timezone"
msgstr ""
msgid "Enter the number of parallel downloads to be enabled"
msgstr ""
#, python-brace-format
msgid "Value must be between 1 and {}"
msgstr ""
msgid "Select which kernel(s) to install"
msgstr ""
msgid "Enter a respository name"
msgstr ""
msgid "Enter the repository url"
msgstr ""
msgid "Enter server url"
msgstr ""
msgid "Select mirror regions to be enabled"
msgstr ""
msgid "Select optional repositories to be enabled"
msgstr ""
msgid "Select an interface"
msgstr ""
msgid "Choose network configuration"
msgstr ""
msgid "No packages found"
msgstr ""
msgid "Select which greeter to install"
msgstr ""
msgid "Select a profile type"
msgstr ""
msgid "Enter new password"
msgstr ""
msgid "Enter a username"
msgstr ""
msgid "Enter a password"
msgstr ""
msgid "The password did not match, please try again"
msgstr ""
================================================
FILE: archinstall/locales/nl/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: Heimen Stoffels \n"
"Language-Team: \n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.0.1\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] Er is een logboek aangemaakt: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Meld dit voorval (inclusief het logboek) op https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "Weet u zeker dat u wilt afbreken?"
msgid "And one more time for verification: "
msgstr "Nog eenmaal ter verificatie: "
msgid "Would you like to use swap on zram?"
msgstr "Wilt u wisselgeheugen i.c.m. zram gebruiken?"
msgid "Desired hostname for the installation: "
msgstr "Standaard hostnaam van installatie: "
msgid "Username for required superuser with sudo privileges: "
msgstr "Gebruikersnaam van beheerder met sudo-rechten (vereist): "
msgid "Any additional users to install (leave blank for no users): "
msgstr "Andere toe te voegen gebruikers (laat leeg om niemand toe te voegen): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "Moet deze gebruiker beheerder (sudoer) worden?"
msgid "Select a timezone"
msgstr "Kies een tijdzone"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "Wilt u GRUB gebruiken als opstartlader in plaats van systemd-boot?"
msgid "Choose a bootloader"
msgstr "Kies een opstartlader"
msgid "Choose an audio server"
msgstr "Kies een audioserver"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Er worden alleen basispakketten geïnstalleerd, zoals base, base-devel, linux, linux-firmware, efibootmgr en profielpakketten (optioneel)."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr ""
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "Als u een webbrowser wenst, zoals Firefox of Chromium, dan kunt u dit handmatig aangeven."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "Typ de namen van te installeren pakketten (spatiegescheiden - laat leeg om over te slaan): "
msgid "Copy ISO network configuration to installation"
msgstr "ISO-netwerkinstellingen overzetten naar fysieke installatie"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "NetworkManager gebruiken (benodigd om internetinstellingen grafisch in te stellen in GNOME en KDE)"
msgid "Select one network interface to configure"
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): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "Voer uw eigen gateway-adres (router-ip-adres) in of laag leeg om over te slaan: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "Voer uw eigen dns-servers in (spatiegescheiden - laat leeg om over te slaan): "
msgid "Select which filesystem your main partition should use"
msgstr "Kies het te gebruiken bestandssysteem van de hoofdpartitie"
msgid "Current partition layout"
msgstr "Huidige partitie-indeling"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"Geef aan wat er moet worden gedaan met\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "Kies het gewenste bestandssysteem voor de partitie"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr ""
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr ""
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "‘{}’ bevat in behandeling zijnde partities, welke hierdoor worden verwijderd. Weet u zeker dat u wilt doorgaan?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"Selecteer te verwijderen partities op indexnummer"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"Selecteer aan te koppelen partities op indexnummer"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " *Partitie-aankoppelpunten zijn gekoppeld aan de fysieke installatie. Voorbeeld: ‘boot’ wordt ‘/boot’."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "Geef aan waar de partitie moet worden aangekoppeld (laat leeg om te verwijderen): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"Kies welke partitie moet worden gemaskeerd alvorens te formatteren"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"Kies welke partitie moet worden versleuteld"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"Kies welke partitie moet worden aangemerkt als opstartbaar"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"Kies op welke partitie een bestandssysteem moet worden ingesteld"
msgid "Enter a desired filesystem type for the partition: "
msgstr "Voer de naam in van het gewenste bestandssysteem: "
msgid "Archinstall language"
msgstr "Archinstall-taal"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "Alle geselecteerde schijven formatteren en best mogelijke partitie-indeling gebruiken"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "Geef per schijf aan welke actie moet worden uitgevoerd (gevolgd door partitiegebruik)"
msgid "Select what you wish to do with the selected block devices"
msgstr "Geef aan wat er moet worden gedaan met de gekozen blokapparaten"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "Dit is een vooraf opgestelde lijst met profielen, welke het installeren van zaken als werkomgevingen vereenvoudigt"
msgid "Select keyboard layout"
msgstr "Kies een toetsenbordindeling"
msgid "Select one of the regions to download packages from"
msgstr "Geef aan uit welke regio pakketten moeten worden opgehaald"
msgid "Select one or more hard drives to use and configure"
msgstr "Selecteer één of meer in te stellen harde schijven"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "Op AMD-hardware is het aanbevolen om alle opensource- of AMD-/ATI-opties te kiezen."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "Op Intel-hardware is het aanbevolen om alle opensource- of Intel-opties te kiezen.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "Op Nvidia-hardware is het aanbevolen om het gesloten Nvidia-stuurprogramma te kiezen.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Kies een grafisch stuurprogramma of laat leeg om alle opensource-stuurprogramma's te installeren"
msgid "All open-source (default)"
msgstr "Alle opensource-stuurprogramma's (standaard)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "Kies de te installeren kernels of laat leeg om ‘{}’ te installeren"
msgid "Choose which locale language to use"
msgstr "Kies de te gebruiken taal"
msgid "Choose which locale encoding to use"
msgstr "Kies de te gebruiken taalvariant"
msgid "Select one of the values shown below: "
msgstr "Kies één van onderstaande waarden: "
msgid "Select one or more of the options below: "
msgstr "Kies één van onderstaande opties: "
msgid "Adding partition...."
msgstr "Bezig met toevoegen van partitie…"
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "Voer een geldig bestandssysteemtype in om door te gaan. Bekijk voor meer informatie `man parted`."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "Foutmelding: het opsommen van de profielen op {} leidde tot"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "Foutmelding: ‘{}’ kan niet gedecodeerd worden als json:"
msgid "Keyboard layout"
msgstr "Toetsenbordindeling"
msgid "Mirror region"
msgstr "Spiegelserverregio"
msgid "Locale language"
msgstr "Taal"
msgid "Locale encoding"
msgstr "Taalvariant"
msgid "Drive(s)"
msgstr "Harde schijven"
#, fuzzy
msgid "Disk layout"
msgstr "Schijfindeling vastleggen"
#, fuzzy
msgid "Encryption password"
msgstr "Versleutelwachtwoord instellen"
msgid "Swap"
msgstr "Wisselgeheugen"
msgid "Bootloader"
msgstr "Opstartlader"
#, fuzzy
msgid "Root password"
msgstr "Rootwachtwoord"
msgid "Superuser account"
msgstr "Superuserrechten"
msgid "User account"
msgstr "Gebruikersaccount"
msgid "Profile"
msgstr "Profiel"
msgid "Audio"
msgstr "Audio"
msgid "Kernels"
msgstr "Kernels"
msgid "Additional packages"
msgstr "Aanvullende pakketten"
msgid "Network configuration"
msgstr "Netwerk instellen"
msgid "Automatic time sync (NTP)"
msgstr "Automatische tijdsynchronisatie (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "Installeren ({} confirguratie(s) ontbreekt/ontbreken)"
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 ""
"U heeft de schijfkeuze overgeslagen.\n"
"Hierdoor zal de op {} aangekoppelde schijf worden gebruikt (experimenteel).\n"
"WAARSCHUWING: Archinstall controleert niet of deze schijf geschikt is.\n"
"Weet u zeker dat u wilt doorgaan?"
msgid "Re-using partition instance: {}"
msgstr "De partitie op {} wordt hergebruikt"
msgid "Create a new partition"
msgstr "Partitie aanmaken"
msgid "Delete a partition"
msgstr "Partitie verwijderen"
msgid "Clear/Delete all partitions"
msgstr "Alle partities verwijderen"
msgid "Assign mount-point for a partition"
msgstr "Aankoppelpunt toekennen aan partitie"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "Partitie (de)markeren voor formatteren (alle gegevens worden gewist)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "Partitie (de)markeren voor versleuteling"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "Partitie (de)markeren als opstartbaar (automatisch voor /boot)"
msgid "Set desired filesystem for a partition"
msgstr "Gewenste bestandssysteem van partitie instellen"
msgid "Abort"
msgstr "Afbreken"
msgid "Hostname"
msgstr "Hostnaam"
msgid "Not configured, unavailable unless setup manually"
msgstr "Niet ingesteld en dus niet beschikbaar, tenzij handmatig ingesteld"
msgid "Timezone"
msgstr "Tijdzone"
msgid "Set/Modify the below options"
msgstr "Onderstaande opties instellen/aanpassen"
msgid "Install"
msgstr "Installeren"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"Druk op Esc om over te slaan\n"
"\n"
msgid "Suggest partition layout"
msgstr "Partitie-indeling voorstellen"
msgid "Enter a password: "
msgstr "Voer een wachtwoord in: "
msgid "Enter a encryption password for {}"
msgstr "Voer een versleutelwachtwoord in voor {}"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "Voer een versleutelwachtwoord in voor (laat leeg om niet te versleutelen): "
msgid "Create a required super-user with sudo privileges: "
msgstr "Beheerder met sudo-rechten toevoegen (vereist): "
msgid "Enter root password (leave blank to disable root): "
msgstr "Voer een beheerderswachtwoord in (laat leeg om uit te schakelen): "
msgid "Password for user \"{}\": "
msgstr "Wachtwoord van ‘{}’: "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "Bezig met verifiëren van aanvullende pakketten… (dit kan even duren)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "Wilt u automatische tijdsynchronisatie (NTP) met de standaard tijdservers gebruiken?\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 ""
"De hardwarematige tijd en andere gelijkaardige instelstappen kunnen vereist zijn om NTP te gebruiken.\n"
"Lees voor meer informatie de Arch-wiki."
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "Voer een gebruikersnaam in om een tweede account toe te voegen (laat leeg om over te slaan): "
msgid "Use ESC to skip\n"
msgstr "Druk op Esc om over te slaan\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
" Kies een item van de lijst en kies vervolgens een van de beschikbare acties om uit te voeren"
msgid "Cancel"
msgstr "Annuleren"
msgid "Confirm and exit"
msgstr "Bevestigen en afsluiten"
msgid "Add"
msgstr "Toevoegen"
msgid "Copy"
msgstr "Kopiëren"
msgid "Edit"
msgstr "Bewerken"
msgid "Delete"
msgstr "Verwijderen"
msgid "Select an action for '{}'"
msgstr "Kies een actie voor '{}'"
msgid "Copy to new key:"
msgstr "Kopiëren naar nieuwe sleutel:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "Onbekend nic-type: {}. Mogelijke waarden zijn {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"Dit is de door u gekozen configuratie:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman is al actief. Er wordt maximaal 10 minuten gewacht alvorens het opnieuw te proberen."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "De eerdere Pacman-vergrendeling is niet opgeheven. Sluit actieve Pacman-sessies af alvorens deze installatiewizard te gebruiken."
msgid "Choose which optional additional repositories to enable"
msgstr "Geef aan welke aanvullende pakketbronnen dienen te worden gebruikt (optioneel)"
#, fuzzy
msgid "Add a user"
msgstr "Gebruiker toevoegen"
msgid "Change password"
msgstr "Wachtwoord wijzigen"
msgid "Promote/Demote user"
msgstr "Gebruiker op-/afwaarderen"
msgid "Delete User"
msgstr "Gebruiker verwijderen"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"Stel een nieuwe gebruiker in\n"
msgid "User Name : "
msgstr "Gebruikersnaam: "
msgid "Should {} be a superuser (sudoer)?"
msgstr "Moet {} gebruiker een beheerder (sudoer) worden?"
msgid "Define users with sudo privilege: "
msgstr "Gebruikersnamen van gebruikers met sudo-rechten: "
msgid "No network configuration"
msgstr "Geen netwerkconfiguratie"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Gewenste subvolumes op btrfs-partitie instellen"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"Kies op welke partitie de subvolumes dienen te worden ingesteld"
msgid "Manage btrfs subvolumes for current partition"
msgstr "Btrfs-subvolumes van huidige partitie beheren"
msgid "No configuration"
msgstr "Geen configuratie"
msgid "Save user configuration"
msgstr "Gebruikersconfiguratie vastleggen"
msgid "Save user credentials"
msgstr "Aanmeldgegevens vastleggen"
msgid "Save disk layout"
msgstr "Schijfindeling vastleggen"
msgid "Save all"
msgstr "Alles opslaan"
msgid "Choose which configuration to save"
msgstr "Geef aan welke configuratie er moet worden vastgelegd"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "Voer de naam in van de map waarin de configuratie(s) moet(en) worden vastgelegd: "
msgid "Not a valid directory: {}"
msgstr "Ongeldige map: {}"
msgid "The password you are using seems to be weak,"
msgstr "Het gekozen wachtwoord is zwak."
msgid "are you sure you want to use it?"
msgstr "Weet u zeker dat u het wilt gebruiken?"
msgid "Optional repositories"
msgstr "Aanvullende pakketbronnen"
msgid "Save configuration"
msgstr "Configuratie vastleggen"
msgid "Missing configurations:\n"
msgstr "Ontbrekende configuraties:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "Stel een rootwachtwoord of minimaal één beheerder in"
msgid "Manage superuser accounts: "
msgstr "Beheerdersaccounts beheren: "
msgid "Manage ordinary user accounts: "
msgstr "Beheer reguliere gebruikersaccounts: "
msgid " Subvolume :{:16}"
msgstr " Subvolume :{:16}"
msgid " mounted at {:16}"
msgstr " aangekoppeld op {:16}"
msgid " with option {}"
msgstr " met optie {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
" Voer de gewenste waarden van het nieuwe subvolume in\n"
msgid "Subvolume name "
msgstr "Subvolumenaam "
msgid "Subvolume mountpoint"
msgstr "Subvolume-aankoppelpunt"
msgid "Subvolume options"
msgstr "Subvolume-opties"
msgid "Save"
msgstr "Opslaan"
msgid "Subvolume name :"
msgstr "Subvolumenaam:"
msgid "Select a mount point :"
msgstr "Kies een aankoppelpunt:"
msgid "Select the desired subvolume options "
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: {} {}"
#, fuzzy
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "Wilt u GRUB gebruiken als opstartlader in plaats van systemd-boot?"
#, fuzzy
msgid "Would you like to use BTRFS compression?"
msgstr "Wilt u wisselgeheugen i.c.m. zram gebruiken?"
#, fuzzy
msgid "Would you like to create a separate partition for /home?"
msgstr "Wilt u wisselgeheugen i.c.m. zram gebruiken?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "De geselecteerde stations hebben niet de minimale capaciteit die vereist is voor een automatische suggestie\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "Minimale capaciteit voor de /home partitie: {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Minimale capaciteit voor de Arch Linux partitie: {}GB"
msgid "Continue"
msgstr "Doorgaan"
msgid "yes"
msgstr "ja"
msgid "no"
msgstr "nee"
msgid "set: {}"
msgstr ""
msgid "Manual configuration setting must be a list"
msgstr ""
#, fuzzy
msgid "No iface specified for manual configuration"
msgstr "Gebruikersconfiguratie vastleggen"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr ""
msgid "Add interface"
msgstr "Voeg interface toe"
msgid "Edit interface"
msgstr "Bewerk interface"
#, fuzzy
msgid "Delete interface"
msgstr "Interface verwijderen"
#, fuzzy
msgid "Select interface to add"
msgstr "Kies een in te stellen netwerkkaart"
#, fuzzy
msgid "Manual configuration"
msgstr "Configuratie vastleggen"
#, fuzzy
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "Partitie (de)markeren voor versleuteling"
#, fuzzy
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "Het gekozen wachtwoord is zwak."
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr ""
msgid "Select your desired desktop environment"
msgstr ""
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr ""
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr ""
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr ""
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr ""
msgid "Press Enter to continue."
msgstr "Druk op Enter om door te gaan"
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr ""
#, fuzzy
msgid "Are you sure you want to reset this setting?"
msgstr "Weet u zeker dat u het wilt gebruiken?"
#, fuzzy
msgid "Select one or more hard drives to use and configure\n"
msgstr "Selecteer één of meer in te stellen harde schijven"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr ""
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr ""
#, fuzzy
msgid "Save and exit"
msgstr "Bevestigen en afsluiten"
#, fuzzy
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr "‘{}’ bevat in behandeling zijnde partities, welke hierdoor worden verwijderd. Weet u zeker dat u wilt doorgaan?"
#, fuzzy
msgid "No audio server"
msgstr "Kies een audioserver"
msgid "(default)"
msgstr ""
#, fuzzy
msgid "Use ESC to skip"
msgstr "Druk op Esc om over te slaan\n"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
#, fuzzy
msgid "Copy to: "
msgstr "Kopiëren naar:"
#, fuzzy
msgid "Edit: "
msgstr "Bewerken"
msgid "Key: "
msgstr ""
#, fuzzy
msgid "Edit {}: "
msgstr "Bewerken:"
msgid "Add: "
msgstr ""
#, fuzzy
msgid "Value: "
msgstr "Waarde:"
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr ""
msgid "Select one of the disks or skip and use /mnt as default"
msgstr ""
#, fuzzy
msgid "Select which partitions to mark for formatting:"
msgstr ""
"{}\n"
"\n"
"Kies welke partitie moet worden gemaskeerd alvorens te formatteren"
msgid "Use HSM to unlock encrypted drive"
msgstr "Gebruik HSM om deze drive te ontgrendelen"
msgid "Device"
msgstr "Apparaat"
msgid "Size"
msgstr "Grootte"
msgid "Free space"
msgstr "Beschikbare schrijfruimte"
msgid "Bus-type"
msgstr ""
#, fuzzy
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "Stel een rootwachtwoord of minimaal één beheerder in"
#, fuzzy
msgid "Enter username (leave blank to skip): "
msgstr "Voer een gebruikersnaam in om een tweede account toe te voegen (laat leeg om over te slaan): "
msgid "The username you entered is invalid. Try again"
msgstr ""
#, fuzzy
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "Moet {} gebruiker een beheerder (sudoer) worden?"
#, fuzzy
msgid "Select which partitions to encrypt"
msgstr "Kies welke partitie moet worden versleuteld"
msgid "very weak"
msgstr "Zeer zwak"
msgid "weak"
msgstr "Zwak"
msgid "moderate"
msgstr "Gemiddeld"
msgid "strong"
msgstr "Sterk"
#, fuzzy
msgid "Add subvolume"
msgstr " Subvolume :{:16}"
msgid "Edit subvolume"
msgstr "Subvolume bewerken"
#, fuzzy
msgid "Delete subvolume"
msgstr "Subvolume verwijderen"
msgid "Configured {} interfaces"
msgstr ""
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr ""
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr ""
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr ""
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr ""
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr ""
msgid "Parallel Downloads"
msgstr ""
#, fuzzy
msgid "ESC to skip"
msgstr "Druk op Esc om over te slaan\n"
msgid "CTRL+C to reset"
msgstr "Druk op CTRL+C om te resetten"
msgid "TAB to select"
msgstr "TAB om te selecteren"
msgid "[Default value: 0] > "
msgstr ""
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "Om deze vertaling te gebruiken, installeer handmatig een lettertype die deze taal ondersteund."
msgid "The font should be stored as {}"
msgstr ""
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr ""
#, fuzzy
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 ""
#, fuzzy
msgid "Select one or more devices to use and configure"
msgstr "Selecteer één of meer in te stellen harde schijven"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr ""
#, fuzzy
msgid "Existing Partitions"
msgstr "Bestaande partities"
#, fuzzy
msgid "Select a partitioning option"
msgstr "Selecteer een optie"
#, fuzzy
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 ""
#, fuzzy
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "Dit is een vooraf opgestelde lijst met profielen, welke het installeren van zaken als werkomgevingen vereenvoudigt"
#, fuzzy
msgid "Current profile selection"
msgstr "Huidige partitie-indeling"
#, fuzzy
msgid "Remove all newly added partitions"
msgstr "Partitie aanmaken"
#, fuzzy
msgid "Assign mountpoint"
msgstr "Aankoppelpunt toekennen aan partitie"
#, fuzzy
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "Partitie (de)markeren voor formatteren (alle gegevens worden gewist)"
msgid "Mark/Unmark as bootable"
msgstr ""
msgid "Change filesystem"
msgstr ""
#, fuzzy
msgid "Mark/Unmark as compressed"
msgstr "Partitie (de)markeren voor versleuteling"
#, fuzzy
msgid "Set subvolumes"
msgstr "Gebruiker verwijderen"
#, fuzzy
msgid "Delete partition"
msgstr "Partitie verwijderen"
msgid "Partition"
msgstr "Partitie"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr ""
#, fuzzy
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " *Partitie-aankoppelpunten zijn gekoppeld aan de fysieke installatie. Voorbeeld: ‘boot’ wordt ‘/boot’."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr ""
msgid "Mountpoint: "
msgstr ""
msgid "Current free sectors on device {}:"
msgstr "Vrije sectoren op apparaat {}:"
#, fuzzy
msgid "Total sectors: {}"
msgstr "Ongeldige map: {}"
#, fuzzy
msgid "Enter the start sector (default: {}): "
msgstr "Voer de beginsector in (percentage of bloknummer - standaard: {}): "
#, fuzzy
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
msgstr "Voer de eindsector in (percentage of bloknummer - bijvoorbeeld: {}): "
msgid "This will remove all newly added partitions, continue?"
msgstr "Hiermee worden alle nieuw toegevoegde partities verwijderd. Doorgaan?"
#, python-brace-format
msgid "Partition management: {}"
msgstr ""
#, python-brace-format
msgid "Total length: {}"
msgstr ""
#, fuzzy
msgid "Encryption type"
msgstr "Versleutelwachtwoord instellen"
msgid "Iteration time"
msgstr ""
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr ""
msgid "Higher values increase security but slow down boot time"
msgstr ""
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr "Standaard: 10000ms, Aanbevolen bereik: 1000-60000"
msgid "Iteration time cannot be empty"
msgstr ""
msgid "Iteration time must be at least 100ms"
msgstr ""
msgid "Iteration time must be at most 120000ms"
msgstr ""
msgid "Please enter a valid number"
msgstr "Vul een geldig nummer in"
msgid "Partitions"
msgstr "Partities"
msgid "No HSM devices available"
msgstr ""
#, fuzzy
msgid "Partitions to be encrypted"
msgstr "Kies welke partitie moet worden versleuteld"
#, fuzzy
msgid "Select disk encryption option"
msgstr "Kies een schijfindeling"
msgid "Select a FIDO2 device to use for HSM"
msgstr ""
#, fuzzy
msgid "Use a best-effort default partition layout"
msgstr "Alle geselecteerde schijven formatteren en best mogelijke partitie-indeling gebruiken"
#, fuzzy
msgid "Manual Partitioning"
msgstr "Configuratie vastleggen"
#, fuzzy
msgid "Pre-mounted configuration"
msgstr "Geen configuratie"
msgid "Unknown"
msgstr "Onbekend"
msgid "Partition encryption"
msgstr ""
#, python-brace-format
msgid " ! Formatting {} in "
msgstr ""
msgid "← Back"
msgstr "← Terug"
msgid "Disk encryption"
msgstr ""
#, fuzzy
msgid "Configuration"
msgstr "Geen configuratie"
#, fuzzy
msgid "Password"
msgstr "Rootwachtwoord"
#, fuzzy
msgid "All settings will be reset, are you sure?"
msgstr "‘{}’ bevat in behandeling zijnde partities, welke hierdoor worden verwijderd. Weet u zeker dat u wilt doorgaan?"
msgid "Back"
msgstr "Terug"
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr ""
#, python-brace-format
msgid "Environment type: {}"
msgstr ""
msgid "The proprietary Nvidia driver is not supported by Sway. It is likely that you will run into issues, are you okay with that?"
msgstr ""
#, fuzzy
msgid "Installed packages"
msgstr "Aanvullende pakketten"
#, fuzzy
msgid "Add profile"
msgstr "Profiel"
#, fuzzy
msgid "Edit profile"
msgstr "Profiel"
#, fuzzy
msgid "Delete profile"
msgstr "Gebruiker verwijderen"
#, fuzzy
msgid "Profile name: "
msgstr "Profiel"
msgid "The profile name you entered is already in use. Try again"
msgstr ""
#, fuzzy
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "Typ de namen van te installeren pakketten (spatiegescheiden - laat leeg om over te slaan): "
#, fuzzy
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "Typ de namen van te installeren pakketten (spatiegescheiden - laat leeg om over te slaan): "
msgid "Should this profile be enabled for installation?"
msgstr ""
msgid "Create your own"
msgstr "Maak je eigen"
#, fuzzy
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Kies een grafisch stuurprogramma of laat leeg om alle opensource-stuurprogramma's te installeren"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
msgid "Graphics driver"
msgstr ""
msgid "Greeter"
msgstr ""
msgid "Please chose which greeter to install"
msgstr ""
msgid "This is a list of pre-programmed default_profiles"
msgstr ""
#, fuzzy
msgid "Disk configuration"
msgstr "Geen configuratie"
#, fuzzy
msgid "Profiles"
msgstr "Profiel"
msgid "Finding possible directories to save configuration files ..."
msgstr ""
#, fuzzy
msgid "Select directory (or directories) for saving configuration files"
msgstr "Selecteer één of meer in te stellen harde schijven"
#, fuzzy
msgid "Add a custom mirror"
msgstr "Gebruiker toevoegen"
msgid "Change custom mirror"
msgstr ""
msgid "Delete custom mirror"
msgstr ""
#, fuzzy
msgid "Enter name (leave blank to skip): "
msgstr "Voer een gebruikersnaam in om een tweede account toe te voegen (laat leeg om over te slaan): "
#, fuzzy
msgid "Enter url (leave blank to skip): "
msgstr "Voer een gebruikersnaam in om een tweede account toe te voegen (laat leeg om over te slaan): "
#, fuzzy
msgid "Select signature check option"
msgstr "Kies een schijfindeling"
#, fuzzy
msgid "Select signature option"
msgstr "Kies een schijfindeling"
msgid "Custom mirrors"
msgstr ""
msgid "Defined"
msgstr ""
#, fuzzy
msgid "Save user configuration (including disk layout)"
msgstr "Gebruikersconfiguratie vastleggen"
#, fuzzy
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr "Voer de naam in van de map waarin de configuratie(s) moet(en) worden vastgelegd: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
#, fuzzy
msgid "Saving {} configuration files to {}"
msgstr "Configuratie vastleggen"
#, fuzzy
msgid "Mirrors"
msgstr "Spiegelserverregio"
#, fuzzy
msgid "Mirror regions"
msgstr "Spiegelserverregio"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr ""
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr ""
msgid "Locales"
msgstr ""
#, fuzzy
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "NetworkManager gebruiken (benodigd om internetinstellingen grafisch in te stellen in GNOME en KDE)"
msgid "Total: {} / {}"
msgstr ""
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr ""
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr ""
#, fuzzy
msgid "Enter start (default: sector {}): "
msgstr "Voer de beginsector in (percentage of bloknummer - standaard: {}): "
#, fuzzy
msgid "Enter end (default: {}): "
msgstr "Voer de beginsector in (percentage of bloknummer - standaard: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr ""
msgid "Path"
msgstr ""
msgid "Manufacturer"
msgstr ""
msgid "Product"
msgstr "Product"
#, fuzzy, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "Configuratie vastleggen"
msgid "Type"
msgstr "Type"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr ""
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
#, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr ""
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr ""
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr ""
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr ""
#, fuzzy
msgid "Would you like to use unified kernel images?"
msgstr "Wilt u wisselgeheugen i.c.m. zram gebruiken?"
msgid "Unified kernel images"
msgstr ""
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr ""
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr ""
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr ""
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr ""
#, fuzzy
msgid "Selected profiles: "
msgstr "Gebruiker verwijderen"
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr ""
#, fuzzy
msgid "Mark/Unmark as nodatacow"
msgstr "Partitie (de)markeren voor versleuteling"
#, fuzzy
msgid "Would you like to use compression or disable CoW?"
msgstr "Wilt u wisselgeheugen i.c.m. zram gebruiken?"
msgid "Use compression"
msgstr ""
msgid "Disable Copy-on-Write"
msgstr ""
msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway"
msgstr ""
#, fuzzy, python-brace-format
msgid "Configuration type: {}"
msgstr "Geen configuratie"
#, fuzzy
msgid "LVM configuration type"
msgstr "Geen configuratie"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr ""
#, fuzzy
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "NetworkManager gebruiken (benodigd om internetinstellingen grafisch in te stellen in GNOME en KDE)"
#, fuzzy
msgid "Select a LVM option"
msgstr "Kies een tijdzone"
#, fuzzy
msgid "Partitioning"
msgstr "Configuratie vastleggen"
msgid "Logical Volume Management (LVM)"
msgstr ""
msgid "Physical volumes"
msgstr ""
msgid "Volumes"
msgstr ""
#, fuzzy
msgid "LVM volumes"
msgstr "Gebruiker verwijderen"
#, fuzzy
msgid "LVM volumes to be encrypted"
msgstr "Kies welke partitie moet worden versleuteld"
#, fuzzy
msgid "Select which LVM volumes to encrypt"
msgstr "Kies welke partitie moet worden versleuteld"
#, fuzzy
msgid "Default layout"
msgstr "Schijfindeling vastleggen"
#, fuzzy
msgid "No Encryption"
msgstr "Versleutelwachtwoord instellen"
msgid "LUKS"
msgstr ""
msgid "LVM on LUKS"
msgstr ""
msgid "LUKS on LVM"
msgstr ""
msgid "Yes"
msgstr "Ja"
msgid "No"
msgstr "Nee"
#, fuzzy
msgid "Archinstall help"
msgstr "Archinstall-taal"
msgid " (default)"
msgstr ""
msgid "Press Ctrl+h for help"
msgstr "Toets Crtl+h voor hulp"
msgid "Choose an option to give Sway access to your hardware"
msgstr ""
msgid "Seat access"
msgstr ""
#, fuzzy
msgid "Mountpoint"
msgstr "Aankoppelpunt toekennen aan partitie"
msgid "HSM"
msgstr ""
#, fuzzy
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "Voer een versleutelwachtwoord in voor (laat leeg om niet te versleutelen): "
#, fuzzy
msgid "Disk encryption password"
msgstr "Versleutelwachtwoord instellen"
#, fuzzy
msgid "Partition - New"
msgstr "Configuratie vastleggen"
msgid "Filesystem"
msgstr ""
msgid "Invalid size"
msgstr "Invalide grootte"
#, fuzzy
msgid "Start (default: sector {}): "
msgstr "Voer de beginsector in (percentage of bloknummer - standaard: {}): "
#, fuzzy
msgid "End (default: {}): "
msgstr "Voer de beginsector in (percentage of bloknummer - standaard: {}): "
#, fuzzy
msgid "Subvolume name"
msgstr "Subvolumenaam "
#, fuzzy
msgid "Disk configuration type"
msgstr "Geen configuratie"
msgid "Root mount directory"
msgstr ""
#, fuzzy
msgid "Select language"
msgstr "Taal"
#, fuzzy
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "Typ de namen van te installeren pakketten (spatiegescheiden - laat leeg om over te slaan): "
msgid "Invalid download number"
msgstr "Invalide aantal downloads"
msgid "Number downloads"
msgstr "Aantal downloads"
msgid "The username you entered is invalid"
msgstr "De gebruikersnaam is incorrect"
#, fuzzy
msgid "Username"
msgstr "Gebruikersnaam: "
#, fuzzy, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "Moet {} gebruiker een beheerder (sudoer) worden?"
#, fuzzy
msgid "Interfaces"
msgstr "Gebruiker verwijderen"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "Vul een geldig IP adres in de IP-config modus"
msgid "Modes"
msgstr ""
msgid "IP address"
msgstr "IP adres"
#, fuzzy
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "Voer uw eigen gateway-adres (router-ip-adres) in of laag leeg om over te slaan: "
msgid "Gateway address"
msgstr ""
#, fuzzy
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "Voer uw eigen dns-servers in (spatiegescheiden - laat leeg om over te slaan): "
#, fuzzy
msgid "DNS servers"
msgstr "Kies een audioserver"
#, fuzzy
msgid "Configure interfaces"
msgstr "Gebruiker verwijderen"
#, fuzzy
msgid "Kernel"
msgstr "Kernels"
msgid "UEFI is not detected and some options are disabled"
msgstr "UEFI is niet herkend. Sommige instellingen zullen worden uitgeschakeld"
msgid "Info"
msgstr "Informatie"
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr ""
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr ""
#, fuzzy
msgid "Main profile"
msgstr "Profiel"
#, fuzzy
msgid "Confirm password"
msgstr "Wachtwoord wijzigen"
msgid "The confirmation password did not match, please try again"
msgstr "De wachtwoorden zijn ongelijk. Probeer opnieuw."
#, fuzzy
msgid "Not a valid directory"
msgstr "Ongeldige map: {}"
#, fuzzy
msgid "Would you like to continue?"
msgstr "Wilt u wisselgeheugen i.c.m. zram gebruiken?"
msgid "Directory"
msgstr "Map"
#, fuzzy
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, python-brace-format
msgid "Do you want to save the configuration file(s) to {}?"
msgstr "Configuratie vastleggen"
msgid "Enabled"
msgstr "Ingeschakeld"
msgid "Disabled"
msgstr "Uitgeschakeld"
#, fuzzy
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr "Meld dit voorval (inclusief het logboek) op https://github.com/archlinux/archinstall/issues"
#, fuzzy
msgid "Mirror name"
msgstr "Spiegelserverregio"
msgid "Url"
msgstr ""
#, fuzzy
msgid "Select signature check"
msgstr "Kies een schijfindeling"
#, fuzzy
msgid "Select execution mode"
msgstr "Kies een actie voor '{}'"
msgid "Press ? for help"
msgstr "Toets ? voor hulp"
msgid "Choose an option to give Hyprland access to your hardware"
msgstr ""
#, fuzzy
msgid "Additional repositories"
msgstr "Aanvullende pakketbronnen"
msgid "NTP"
msgstr ""
msgid "Swap on zram"
msgstr ""
msgid "Name"
msgstr ""
#, fuzzy
msgid "Signature check"
msgstr "Kies een schijfindeling"
#, python-brace-format
msgid "Selected free space segment on device {}:"
msgstr ""
#, python-brace-format
msgid "Size: {} / {}"
msgstr "Grootte: {} / {}"
#, fuzzy, python-brace-format
msgid "Size (default: {}): "
msgstr "Voer de beginsector in (percentage of bloknummer - standaard: {}): "
msgid "HSM device"
msgstr ""
msgid "Some packages could not be found in the repository"
msgstr ""
#, fuzzy
msgid "User"
msgstr "Gebruikersnaam: "
msgid "The specified configuration will be applied"
msgstr ""
msgid "Wipe"
msgstr ""
#, fuzzy
msgid "Mark/Unmark as XBOOTLDR"
msgstr "Partitie (de)markeren voor versleuteling"
#, fuzzy
msgid "Loading packages..."
msgstr "Aanvullende pakketten"
msgid "Select any packages from the below list that should be installed additionally"
msgstr ""
#, fuzzy
msgid "Add a custom repository"
msgstr "Gebruiker toevoegen"
msgid "Change custom repository"
msgstr "Gebruiker wijzigen"
msgid "Delete custom repository"
msgstr "Gebruiker verwijderen"
#, fuzzy
msgid "Repository name"
msgstr "Spiegelserverregio"
#, fuzzy
msgid "Add a custom server"
msgstr "Gebruiker toevoegen"
#, fuzzy
msgid "Change custom server"
msgstr "Kies een audioserver"
#, fuzzy
msgid "Delete custom server"
msgstr "Gebruiker verwijderen"
msgid "Server url"
msgstr ""
#, fuzzy
msgid "Select regions"
msgstr "Kies een schijfindeling"
#, fuzzy
msgid "Add custom servers"
msgstr "Gebruiker toevoegen"
#, fuzzy
msgid "Add custom repository"
msgstr "Gebruiker toevoegen"
#, fuzzy
msgid "Loading mirror regions..."
msgstr "Spiegelserverregio"
#, fuzzy
msgid "Mirrors and repositories"
msgstr "Aanvullende pakketbronnen"
#, fuzzy
msgid "Selected mirror regions"
msgstr "Spiegelserverregio"
#, fuzzy
msgid "Custom servers"
msgstr "Kies een audioserver"
#, fuzzy
msgid "Custom repositories"
msgstr "Aanvullende pakketbronnen"
msgid "Only ASCII characters are supported"
msgstr "Alleen ASCII karakters zijn toegestaan"
msgid "Show help"
msgstr "Laat hulp zien"
msgid "Exit help"
msgstr "Sluit hulp af"
msgid "Preview scroll up"
msgstr ""
msgid "Preview scroll down"
msgstr ""
msgid "Move up"
msgstr "Omhoog"
msgid "Move down"
msgstr "Omlaag"
msgid "Move right"
msgstr "Naar rechts"
msgid "Move left"
msgstr "Naar links"
msgid "Jump to entry"
msgstr ""
msgid "Skip selection (if available)"
msgstr ""
msgid "Reset selection (if available)"
msgstr ""
#, fuzzy
msgid "Select on single select"
msgstr "Kies een schijfindeling"
#, fuzzy
msgid "Select on multi select"
msgstr "Kies een tijdzone"
msgid "Reset"
msgstr ""
#, fuzzy
msgid "Skip selection menu"
msgstr "Kies een actie voor '{}'"
msgid "Start search mode"
msgstr "Start zoekmodus"
msgid "Exit search mode"
msgstr "Sluit zoekmodus af"
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid "Choose an option to give labwc access to your hardware"
msgstr ""
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr ""
msgid "Choose an option to give niri access to your hardware"
msgstr ""
#, fuzzy
msgid "Mark/Unmark as ESP"
msgstr "Partitie (de)markeren voor versleuteling"
msgid "Package group:"
msgstr ""
#, fuzzy
msgid "Exit archinstall"
msgstr "Archinstall-taal"
msgid "Reboot system"
msgstr "Systeem opnieuw opstarten"
msgid "chroot into installation for post-installation configurations"
msgstr ""
msgid "Installation completed"
msgstr "Installatie geslaagd"
#, fuzzy
msgid "What would you like to do next?"
msgstr "Wilt u wisselgeheugen i.c.m. zram gebruiken?"
#, 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"
#, fuzzy
msgid "Incorrect credentials file decryption password"
msgstr "Versleutelwachtwoord instellen"
#, fuzzy
msgid "Incorrect password"
msgstr "Rootwachtwoord"
#, fuzzy
msgid "Credentials file decryption password"
msgstr "Versleutelwachtwoord instellen"
#, fuzzy
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr "Configuratie vastleggen"
#, fuzzy
msgid "Credentials file encryption password"
msgstr "Versleutelwachtwoord instellen"
#, fuzzy, python-brace-format
msgid "Repositories: {}"
msgstr "Spiegelserverregio"
msgid "New version available"
msgstr "Nieuwe versie beschikbaar"
#, fuzzy
msgid "Passwordless login"
msgstr "Rootwachtwoord"
msgid "Second factor login"
msgstr "Tweestapsverificatie"
msgid "Bluetooth"
msgstr "Bluetooth"
#, fuzzy
msgid "Would you like to configure Bluetooth?"
msgstr "Wilt u wisselgeheugen i.c.m. zram gebruiken?"
msgid "Print service"
msgstr ""
#, fuzzy
msgid "Would you like to configure the print service?"
msgstr "Wilt u wisselgeheugen i.c.m. zram gebruiken?"
msgid "Power management"
msgstr ""
msgid "Authentication"
msgstr "Authenticatie"
msgid "Applications"
msgstr "Applicaties"
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 "Waarde mag niet leeg zijn"
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 "Starting device modifications in "
msgstr ""
#, fuzzy
msgid "No network connection found"
msgstr "Geen netwerkconfiguratie"
#, fuzzy
msgid "Would you like to connect to a Wifi?"
msgstr "Wilt u wisselgeheugen i.c.m. zram gebruiken?"
#, fuzzy
msgid "No wifi interface found"
msgstr "Gebruiker verwijderen"
#, fuzzy
msgid "Select wifi network to connect to"
msgstr "Kies een in te stellen netwerkkaart"
msgid "Scanning wifi networks..."
msgstr "Wifi netwerken scannen..."
#, fuzzy
msgid "No wifi networks found"
msgstr "Geen netwerkconfiguratie"
msgid "Failed setting up wifi"
msgstr "Mislukt om wifi op te zetten"
#, fuzzy
msgid "Enter wifi password"
msgstr "Voer een wachtwoord in: "
msgid "Ok"
msgstr "Ok"
msgid "Removable"
msgstr "Verwijderbaar"
msgid "Install to removable location"
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr ""
msgid "Will install to standard location with NVRAM entry"
msgstr ""
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr ""
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr ""
msgid "USB drives or other portable external media."
msgstr ""
msgid "Systems where you want the disk to be bootable on any computer."
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr ""
msgid "Will install to custom location with NVRAM entry"
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr ""
msgid "most Apple Macs, many laptops..."
msgstr ""
#, fuzzy
msgid "Language"
msgstr "Taal"
msgid "Compression algorithm"
msgstr ""
#, fuzzy
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Er worden alleen basispakketten geïnstalleerd, zoals base, base-devel, linux, linux-firmware, efibootmgr en profielpakketten (optioneel)."
#, fuzzy
msgid "Select zram compression algorithm:"
msgstr "Kies een aankoppelpunt:"
msgid "Use Network Manager (default backend)"
msgstr ""
msgid "Use Network Manager (iwd backend)"
msgstr ""
#, fuzzy, python-brace-format
#~ msgid "Default: {DEFAULT_ITER_TIME}ms, Recommended range: 1000-60000"
#~ msgstr "Standaard: 10000ms, Aanbevolen bereik: 1000-60000"
#~ msgid "Add :"
#~ msgstr "Toevoegen:"
#~ msgid "Value :"
#~ msgstr "Waarde:"
#, python-brace-format
#~ msgid "Edit {origkey} :"
#~ msgstr "{origkey} bewerken:"
#~ msgid "Copy to :"
#~ msgstr "Kopiëren naar:"
#~ msgid "Edite :"
#~ msgstr "Bewerken:"
#~ msgid "Key :"
#~ msgstr "Sleutel:"
================================================
FILE: archinstall/locales/pl/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: acuteenvy\n"
"Language-Team: \n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.4.2\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] Plik dziennika został stworzony tutaj: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Proszę zgłosić ten błąd (i dołączyć plik) pod adresem https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "Czy na pewno chcesz przerwać?"
msgid "And one more time for verification: "
msgstr "I jeszcze raz w celu weryfikacji: "
msgid "Would you like to use swap on zram?"
msgstr "Czy chcesz używać swap w zramie?"
msgid "Desired hostname for the installation: "
msgstr "Nazwa hosta dla tej instalacji: "
msgid "Username for required superuser with sudo privileges: "
msgstr "Nazwa użytkownika dla wymaganego superusera z uprawnieniami sudo: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "Ewentualni użytkownicy do instalacji (pozostaw puste jeśli nie chcesz tworzyć użytkowników): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "Czy użytkownik powinien być superuserem (mieć uprawnienia sudo)?"
msgid "Select a timezone"
msgstr "Wybierz strefę czasową"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "Czy chcesz użyć GRUB-a jako programu rozruchowego zamiast systemd-boot?"
msgid "Choose a bootloader"
msgstr "Wybierz program rozruchowy"
msgid "Choose an audio server"
msgstr "Wybierz serwer dźwięku"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Instalowane są tylko pakiety takie jak base, base-devel, linux, linux-firmware, efibootmgr i opcjonalne pakiety profili."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr ""
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "Jeśli potrzebujesz przeglądarki internetowej, takiej jak firefox lub chromium, możesz ją określić w następującym oknie dialogowym."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "Wpisz dodatkowe pakiety do zainstalowania (oddzielone spacjami, pozostaw puste aby pominąć): "
msgid "Copy ISO network configuration to installation"
msgstr "Skopiuj ustawienia sieciowe z ISO do instalacji"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "Użyj programu NetworkManager (niezbędne do graficznej konfiguracji Internetu w środowiskach GNOME i KDE)"
msgid "Select one network interface to configure"
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): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "Wprowadź adres IP bramy sieciowej (routera) lub pozostaw puste: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "Wpisz swoje serwery DNS (oddzielone spacjami, lub pozostaw puste): "
msgid "Select which filesystem your main partition should use"
msgstr "Wybierz, który system plików ma być używany na partycji głównej"
msgid "Current partition layout"
msgstr "Aktualny układ partycji"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"Wybierz, co zrobić z\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "Wprowadź żądany typ systemu plików dla partycji"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "Wybierz lokację startową (w jednostkach parted: s, GB, %, itd. ; domyślna: {}) "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "Wybierz lokację końcową (w jednostkach parted: s, GB, %, itd. ; przykład: {}) "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} zawiera partycje oczekujące w kolejce, to spowoduje ich usunięcie. Czy na pewno chcesz to zrobić?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"Wybierz według indeksu, które partycje usunąć"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"Wybierz według indeksu, które partycje zamontować i gdzie"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * Punkty montowania partycji są względne w stosunku do wnętrza instalacji, np. partycja startowa to /boot."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "Wybierz gdzie chcesz zamontować partycję (pozostaw puste, aby usunąć punkt montowania): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"Wybierz partycja która ma zostać sformatowana"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"Wybierz partycja która ma zostać zaszyfrowana"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"Wybierz partycja która ma zostać oznaczona jako startowa (rozruchowa/bootowalna)"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"Wybierz partycję, na której ma zostać utworzony system plików"
msgid "Enter a desired filesystem type for the partition: "
msgstr "Wprowadź typ systemu plików dla partycji: "
msgid "Archinstall language"
msgstr "Język archinstall-a"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "Wymaż wszystkie wybrane dyski i użyj najlepszego domyślnego układu partycji"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "Wybierz, co ma być zrobione z każdym dyskiem z osobna (a następnie z wykorzystaniem partycji)"
msgid "Select what you wish to do with the selected block devices"
msgstr "Wybierz, co chcesz zrobić z wybranymi urządzeniami blokowymi"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "To jest lista wstępnie zaprogramowanych profili, które mogą ułatwić instalację takich rzeczy jak środowiska graficzne"
msgid "Select keyboard layout"
msgstr "Wybierz układ klawiatury"
msgid "Select one of the regions to download packages from"
msgstr "Wybierz jeden z regionów, z których chcesz pobrać pakiety"
msgid "Select one or more hard drives to use and configure"
msgstr "Wybierz jeden lub więcej dysków twardych do użycia i skonfiguruj je"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "Aby uzyskać najlepszą kompatybilność ze sprzętem AMD, warto skorzystać z opcji całkowicie open-source lub AMD / ATI."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "Aby uzyskać najlepszą kompatybilność ze sprzętem Intel, warto skorzystać z opcji całkowicie open-source lub Intel.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "Aby uzyskać najlepszą kompatybilność ze sprzętem firmy Nvidia, warto skorzystać z własnościowego sterownika firmy Nvidia.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Wybierz sterownik graficzny lub pozostaw puste pole, aby zainstalować wszystkie sterowniki open-source"
msgid "All open-source (default)"
msgstr "Wszystkie open-source (domyślnie)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "Wybierz które jądra mają być używane, lub pozostaw puste, aby użyć ustawień domyślnych \"{}\""
msgid "Choose which locale language to use"
msgstr "Wybierz języki, których chcesz używać"
msgid "Choose which locale encoding to use"
msgstr "Wybierz kodowania, których chcesz używać"
msgid "Select one of the values shown below: "
msgstr "Wybierz jedną z poniższych wartości: "
msgid "Select one or more of the options below: "
msgstr "Wybierz jedną lub więcej z poniższych opcji: "
msgid "Adding partition...."
msgstr "Dodawanie partycji..."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "Aby kontynuować, musisz podać poprawny fs-type. Zobacz `man parted`, aby poznać prawidłowe opcje."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "Błąd: Wyśwetlanie profili z URL \"{}\" spowodowało:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "Błąd: Nie można zdekodować \"{}\" jako JSON:"
msgid "Keyboard layout"
msgstr "Układ klawiatury"
msgid "Mirror region"
msgstr "Region serwerów lustrzanych"
msgid "Locale language"
msgstr "Język"
msgid "Locale encoding"
msgstr "Kodowanie"
msgid "Drive(s)"
msgstr "Dyski twarde"
msgid "Disk layout"
msgstr "Układ dysku"
msgid "Encryption password"
msgstr "Hasło szyfrujące"
msgid "Swap"
msgstr "Pamięć wymiany (swap)"
msgid "Bootloader"
msgstr "Program rozruchowy"
msgid "Root password"
msgstr "Hasło roota"
msgid "Superuser account"
msgstr "Konto superusera"
msgid "User account"
msgstr "Konto użytkownika"
msgid "Profile"
msgstr "Profil"
msgid "Audio"
msgstr "Audio"
msgid "Kernels"
msgstr "Jądra"
msgid "Additional packages"
msgstr "Dodatkowe pakiety"
msgid "Network configuration"
msgstr "Konfiguracja sieci"
msgid "Automatic time sync (NTP)"
msgstr "Automatyczna synchronizacja czasu (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "Zainstaluj ({} brakujących konfiguracji)"
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 ""
"Zdecydowano się na pominięcie wyboru dysku twardego\n"
"i użycie konfiguracji dysku zamontowanego w {} (eksperymentalne)\n"
"OSTRZEŻENIE: Archinstall nie sprawdzi poprawności tej konfiguracji\n"
"Czy chcesz kontynuować?"
msgid "Re-using partition instance: {}"
msgstr "Ponowne wykorzystanie instancji partycji: {}"
msgid "Create a new partition"
msgstr "Utwórz nową partycję"
msgid "Delete a partition"
msgstr "Usuń partycję"
msgid "Clear/Delete all partitions"
msgstr "Wyczyść/Usuń wszystkie partycje"
msgid "Assign mount-point for a partition"
msgstr "Przydziel punkt montowania dla partycji"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "Oznacz/odznacz partycję, która ma zostać sformatowana (wymazuje dane)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "Oznacz/odznacz partycję jako zaszyfrowaną"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "Oznacz/odznacz partycję jako startową (rozruchową/bootowalną) (automatyczne dla /boot)"
msgid "Set desired filesystem for a partition"
msgstr "Ustaw system plików dla partycji"
msgid "Abort"
msgstr "Anuluj"
msgid "Hostname"
msgstr "Nazwa hosta"
msgid "Not configured, unavailable unless setup manually"
msgstr "Niedostępna, chyba że zostanie skonfigurowana ręcznie"
msgid "Timezone"
msgstr "Strefa czasowa"
msgid "Set/Modify the below options"
msgstr "Ustaw/modyfikuj poniższe opcje"
msgid "Install"
msgstr "Zainstaluj"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"Użyj ESC aby pominąć\n"
"\n"
msgid "Suggest partition layout"
msgstr "Zasugeruj układ partycji"
msgid "Enter a password: "
msgstr "Wprowadź hasło: "
msgid "Enter a encryption password for {}"
msgstr "Wprowadź hasło szyfrowania dla {}"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "Wprowadź hasło do szyfrowania dysku (pozostaw puste aby nie ustawiać szyfrowania): "
msgid "Create a required super-user with sudo privileges: "
msgstr "Utwórz wymaganego superusera z uprawnieniami sudo: "
msgid "Enter root password (leave blank to disable root): "
msgstr "Wprowadź hasło roota (pozostaw puste, aby wyłączyć roota): "
msgid "Password for user \"{}\": "
msgstr "Hasło użytkownika \"{}\": "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "Sprawdzanie, czy istnieją dodatkowe pakiety (może to potrwać kilka sekund)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "Czy chcesz korzystać z automatycznej synchronizacji czasu (NTP) z domyślnymi serwerami czasu?\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 ""
"Aby NTP działał, może być wymagany czas sprzętowy i inne kroki po konfiguracji.\n"
"Aby uzyskać więcej informacji, proszę sprawdzić Arch wiki"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "Wprowadź nazwę użytkownika, aby utworzyć dodatkowego użytkownika (pozostaw puste, aby pominąć): "
msgid "Use ESC to skip\n"
msgstr "Kliknij ESC aby pominąć\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
" Wybierz obiekt z listy, a następnie wybierz jedno z dostępnych działań do wykonania"
msgid "Cancel"
msgstr "Anuluj"
msgid "Confirm and exit"
msgstr "Potwierdź i wyjdź"
msgid "Add"
msgstr "Dodaj"
msgid "Copy"
msgstr "Kopiuj"
msgid "Edit"
msgstr "Edytuj"
msgid "Delete"
msgstr "Usuń"
msgid "Select an action for '{}'"
msgstr "Wybierz działanie dla '{}'"
msgid "Copy to new key:"
msgstr "Skopiuj do nowego klucza:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "Nieznany typ nic: {}. Możliwe wartości to {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"Wybrana konfiguracja:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman jest już uruchomiony, czekam maksymalnie 10 minut na zakończenie pracy."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "Istniejąca wcześniej blokada pacmana nie została zakończona. Proszę wyczyścić wszystkie istniejące sesje pacmana przed użyciem archinstall-a."
msgid "Choose which optional additional repositories to enable"
msgstr "Wybierz, które z opcjonalnych repozytoriów chcesz włączyć"
msgid "Add a user"
msgstr "Dodaj użytkownika"
msgid "Change password"
msgstr "Zmień hasło"
msgid "Promote/Demote user"
msgstr "Promuj/degraduj użytkownika"
msgid "Delete User"
msgstr "Usuń użytkownika"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"Zdefiniuj nowego użytkownika\n"
msgid "User Name : "
msgstr "Nazwa użytkownika : "
msgid "Should {} be a superuser (sudoer)?"
msgstr "Czy użytkownik {} powinien być superuserem (mieć uprawnienia sudo)?"
msgid "Define users with sudo privilege: "
msgstr "Zdefiniuj użytkowników z uprawnieniami sudo: "
msgid "No network configuration"
msgstr "Brak konfiguracji sieciowej"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Ustawianie żądanych subwoluminów na partycji btrfs"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr "Wybierz partycję, na której mają być ustawione subwoluminy"
msgid "Manage btrfs subvolumes for current partition"
msgstr "Zarządzaj subwoluminami btrfs dla bieżącej partycji"
msgid "No configuration"
msgstr "Brak konfiguracji"
msgid "Save user configuration"
msgstr "Zapisz konfigurację użytkownika"
msgid "Save user credentials"
msgstr "Zapisz dane uwierzytelniające użytkownika"
msgid "Save disk layout"
msgstr "Zapisz układ dysku"
msgid "Save all"
msgstr "Zapisz wszystko"
msgid "Choose which configuration to save"
msgstr "Wybierz, która konfiguracja ma zostać zapisana"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "Wprowadź katalog, w którym ma zostać zapisana konfiguracja: "
msgid "Not a valid directory: {}"
msgstr "Nieprawidłowy katalog: {}"
msgid "The password you are using seems to be weak,"
msgstr "Używane przez Ciebie hasło wydaje się być słabe,"
msgid "are you sure you want to use it?"
msgstr "czy na pewno chcesz go używać?"
msgid "Optional repositories"
msgstr "Opcjonalne repozytoria"
msgid "Save configuration"
msgstr "Zapisz konfigurację"
msgid "Missing configurations:\n"
msgstr "Brakujące konfiguracje:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "Należy podać hasło roota lub stworzyć co najmniej jednego superusera"
msgid "Manage superuser accounts: "
msgstr "Zarządzaj kontami superuserów: "
msgid "Manage ordinary user accounts: "
msgstr "Zarządzaj kontami zwykłych użytkowników: "
msgid " Subvolume :{:16}"
msgstr " Subwolumin :{:16}"
msgid " mounted at {:16}"
msgstr " zamontowany w {:16}"
msgid " with option {}"
msgstr " z opcjami {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
" Wypełnij żądane wartości dla nowego subwoluminu \n"
msgid "Subvolume name "
msgstr "Nazwa subwoluminu "
msgid "Subvolume mountpoint"
msgstr "Punkt montowania subwoluminu"
msgid "Subvolume options"
msgstr "Opcje subwoluminu"
msgid "Save"
msgstr "Zapisz"
msgid "Subvolume name :"
msgstr "Nazwa subwoluminu :"
msgid "Select a mount point :"
msgstr "Wybierz punkt montowania :"
msgid "Select the desired subvolume options "
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: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "Czy chcesz użyć subwoluminów BTRFS z domyślną strukturą?"
msgid "Would you like to use BTRFS compression?"
msgstr "Czy chcesz użyć kompresji BTRFS?"
msgid "Would you like to create a separate partition for /home?"
msgstr "Czy chcesz stworzyć oddzielną partycje dla /home?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "Wybrane dyski nie mają minimalnej wymaganej pojemności dla automatycznej sugestii\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "Maksymalna pojemność dla partycji /home: {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Minimalna pojemność dla partycji Arch Linux: {}GB"
msgid "Continue"
msgstr "Kontynuuj"
msgid "yes"
msgstr "tak"
msgid "no"
msgstr "nie"
msgid "set: {}"
msgstr "ustawiono na: {}"
msgid "Manual configuration setting must be a list"
msgstr "Konfiguracja ustawiona manualnie musi być listą"
msgid "No iface specified for manual configuration"
msgstr "Nie określono interfejsu do ręcznej konfiguracji"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "Ręczna konfiguracja nic bez automatycznego DHCP wymaga podania adresu IP"
msgid "Add interface"
msgstr "Dodaj interfejs"
msgid "Edit interface"
msgstr "Edytuj interfejs"
msgid "Delete interface"
msgstr "Usuń interfejs"
msgid "Select interface to add"
msgstr "Wybierz interfejs sieciowy do dodania"
msgid "Manual configuration"
msgstr "Ręczna konfiguracja"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "Oznacz/odznacz partycje jako skompresowaną (tylko w btrfs)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "Używane przez Ciebie hasło wydaje się być słabe, czy na pewno chcesz go użyć?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "Dostarcza wybór środowisk graficznych oraz kafelkowych menedżerów okien, np. gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "Wybierz środowisko graficzne"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "Bardzo ograniczona instalacja pozwalająca ci dostosowanie Arch Linuxa do twoich upodobań."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "Dostarcza wybór różnych pakietów serwerowych do zainstalowania i uruchomienia, np. httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "Wybierz jakie serwery zainstalować. Jeżeli żadne, wykonana będzie minimalna instalacja"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "Instaluje system podstawowy, a także xorg-a i sterowniki graficzne."
msgid "Press Enter to continue."
msgstr "Naciśnij Enter, aby kontynuować."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "Czy chcesz zchrootować do nowej instalacji i przeprowadzić dodatkową konfigurację?"
msgid "Are you sure you want to reset this setting?"
msgstr "Czy na pewno chcesz zresetować to ustawienie?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "Wybierz jeden lub więcej dysków twardych do użycia i skonfiguruj je\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "Każda zmiana istniejących ustawień zresetuje układ dysków!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "Jeżeli zresetujesz wybór dysków, zresetujesz także obecny układ dysków. Czy na pewno chcesz to zrobić?"
msgid "Save and exit"
msgstr "Zapisz i wyjdź"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"zawiera partycje oczekujące w kolejce, to spowoduje ich usunięcie. Czy na pewno chcesz to zrobić?"
msgid "No audio server"
msgstr "Brak serwera dźwięku"
msgid "(default)"
msgstr "(domyślne)"
msgid "Use ESC to skip"
msgstr "Naciśnij ESC, aby pominąć"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"Użyj CTRL+C, aby zresetować obecny wybór\n"
"\n"
msgid "Copy to: "
msgstr "Kopiuj do: "
msgid "Edit: "
msgstr "Edytuj: "
msgid "Key: "
msgstr "Klucz: "
msgid "Edit {}: "
msgstr "Edytuj {}: "
msgid "Add: "
msgstr "Dodaj: "
msgid "Value: "
msgstr "Wartość: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "Możesz pominąć wybór dysku i partycjonowanie i użyć konfiguracji dysku zamontowanego w /mnt (eksperymentalne)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "Wybierz jeden z dysków lub pomiń i użyj /mnt jako domyślnego"
msgid "Select which partitions to mark for formatting:"
msgstr "Wybierz partycje, które mają zostać sformatowane:"
msgid "Use HSM to unlock encrypted drive"
msgstr "Użyj HSM do odblokowania zaszyfrowanego dysku"
msgid "Device"
msgstr "Urządzenie"
msgid "Size"
msgstr "Rozmiar"
msgid "Free space"
msgstr "Wolne miejsce"
msgid "Bus-type"
msgstr "Typ magistrali"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "Musisz podać hasło roota lub utworzyć co najmniej jednego superusera"
msgid "Enter username (leave blank to skip): "
msgstr "Wprowadź nazwę użytkownika (pozostaw puste, aby pominąć): "
msgid "The username you entered is invalid. Try again"
msgstr "Wprowadzona nazwa użytkownika jest nieprawidłowa. Spróbuj ponownie"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "Czy użytkownik \"{}\" powinien być superuserem (mieć uprawnienia sudo)?"
msgid "Select which partitions to encrypt"
msgstr "Wybierz, które partycje mają zostać zaszyfrowane"
msgid "very weak"
msgstr "bardzo słabe"
msgid "weak"
msgstr "słabe"
msgid "moderate"
msgstr "umiarkowane"
msgid "strong"
msgstr "silne"
msgid "Add subvolume"
msgstr "Dodaj subwolumin"
msgid "Edit subvolume"
msgstr "Edytuj subwolumin"
msgid "Delete subvolume"
msgstr "Usuń subwolumin"
msgid "Configured {} interfaces"
msgstr "Skonfigurowano {} interfejsów"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "Ta opcja pozwala określić maksymalną liczbę pobieranych plików podczas instalacji"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"Wprowadź maksymalną liczbę dodatkowych plików pobieranych jednocześnie.\n"
" (Liczba z zakresu od 1 do {})\n"
"Zauważ:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - Maksymalna wartość : {} ( Zwiększa liczbę zadań o {}, co pozwala na pobieranie {} plików jednocześnie )"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - Minimalna wartość : 1 ( Zwiększa liczbę zadań o 1, co pozwala na pobieranie 2 plików jednocześnie )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - Wyłącz/Domyślne : 0 ( Wyłącza pobieranie wielu plików jednocześnie, więc tylko 1 plik może być pobierany w tym samym czasie )"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "Nieprawidłowa wartość! Spróbuj jeszcze raz z prawidłową wartością [1 do {max_downloads}, lub 0 aby wyłączyć]"
msgid "Parallel Downloads"
msgstr "Pobieranie kilku plików jednocześnie"
msgid "ESC to skip"
msgstr "Naciśnij ESC, aby pominąć"
msgid "CTRL+C to reset"
msgstr "Naciśnij Ctrl+C, aby zresetować"
msgid "TAB to select"
msgstr "Naciśnij Tab, aby wybrać"
msgid "[Default value: 0] > "
msgstr "[Domyślna wartość: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "Aby móc skorzystać z tego tłumaczenia, proszę ręcznie zainstalować czcionkę, która obsługuje ten język."
msgid "The font should be stored as {}"
msgstr "Czcionka powinna być przechowana jako {}"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Archinstall wymaga uprawnień administratora do uruchomienia. Użyj --help, aby uzyskać więcej informacji."
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: {}"
msgid "Select one or more devices to use and configure"
msgstr "Wybierz jedno lub więcej urządzeń do użycia i skonfiguruj je"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "Jeżeli zresetujesz wybór urządzeń, zresetujesz także obecny układ dysków. Czy na pewno chcesz to zrobić?"
msgid "Existing Partitions"
msgstr "Instniejące partycje"
msgid "Select a partitioning option"
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"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "To jest lista wstępnie zaprogramowanych profili (profiles_bck), które mogą ułatwić instalację takich rzeczy jak środowiska graficzne"
msgid "Current profile selection"
msgstr "Aktualny wybór profilu"
msgid "Remove all newly added partitions"
msgstr "Usuń wszystkie nowo dodane partycje"
msgid "Assign mountpoint"
msgstr "Przydziel punkt montowania"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "Zaznacz/odznacz partycję do formatowania (wymazuje dane)"
msgid "Mark/Unmark as bootable"
msgstr "Zaznacz/Odznacz jako bootowalne"
msgid "Change filesystem"
msgstr "Zmień system plików"
msgid "Mark/Unmark as compressed"
msgstr "Oznacz/odznacz partycje jako skompresowaną"
msgid "Set subvolumes"
msgstr "Ustaw podwolumin"
msgid "Delete partition"
msgstr "Usuń partycję"
msgid "Partition"
msgstr "Partycja"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "Wybrana partycja jest zaszyfrowana. Żeby ją sformatować, wybierz system plików"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "Punkty montowania partycji są względne w stosunku do wnętrza instalacji, np. boot to /boot."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "Jeżeli punkt montowania /boot jest wybrany, ta partycja będzie także zaznaczona jako bootowalna."
msgid "Mountpoint: "
msgstr "Punkt montowania: "
msgid "Current free sectors on device {}:"
msgstr "Aktualnie wolne sektory urządzenia {}:"
msgid "Total sectors: {}"
msgstr "Łącznie sektorów: {}"
msgid "Enter the start sector (default: {}): "
msgstr "Wprowadź sektor początkowy (domyślnie: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
msgstr "Wprowadź sektor końcowy tej partycji (procent lub numer bloku, domyślnie: {}): "
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ść: {}"
msgid "Encryption type"
msgstr "Typ szyfrowania"
msgid "Iteration time"
msgstr ""
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr ""
msgid "Higher values increase security but slow down boot time"
msgstr ""
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr ""
msgid "Iteration time cannot be empty"
msgstr ""
msgid "Iteration time must be at least 100ms"
msgstr ""
msgid "Iteration time must be at most 120000ms"
msgstr ""
msgid "Please enter a valid number"
msgstr ""
msgid "Partitions"
msgstr "Partycje"
msgid "No HSM devices available"
msgstr "Brak dostępnych urządzeń HSM"
msgid "Partitions to be encrypted"
msgstr "Partycje do zaszyfrowania"
msgid "Select disk encryption option"
msgstr "Wybierz opcję szyfrowania dysku"
msgid "Select a FIDO2 device to use for HSM"
msgstr "Wybierz urządzenie FIDO2 do użycia z HSM"
msgid "Use a best-effort default partition layout"
msgstr "Użyj najlepszego domyślnego układu partycji"
msgid "Manual Partitioning"
msgstr "Ręczne partycjonowanie"
msgid "Pre-mounted configuration"
msgstr "Wstępnie zamontowana konfiguracja"
msgid "Unknown"
msgstr "Nieznane"
msgid "Partition encryption"
msgstr "Szyfrowanie partycji"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! Formatowanie {} za "
msgid "← Back"
msgstr "← Wstecz"
msgid "Disk encryption"
msgstr "Szyfrowanie dysku"
msgid "Configuration"
msgstr "Konfiguracja"
msgid "Password"
msgstr "Hasło"
msgid "All settings will be reset, are you sure?"
msgstr "Wszystkie ustawienia zostaną zresetowane. Czy na pewno chcesz to zrobić?"
msgid "Back"
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: {}"
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 "Własnościowy sterownik Nvidia nie jest wspierany przez Sway. Prawdopodobnie wystąpią problemy, czy chcesz kontynuować?"
msgid "Installed packages"
msgstr "Zainstalowane pakiety"
msgid "Add profile"
msgstr "Dodaj profil"
msgid "Edit profile"
msgstr "Edytuj profil"
msgid "Delete profile"
msgstr "Usuń profil"
msgid "Profile name: "
msgstr "Nazwa profilu: "
msgid "The profile name you entered is already in use. Try again"
msgstr "Wprowadzona nazwa profilu jest już w użyciu. Spróbuj ponownie"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "Dodatkowe pakiety do zainstalowania na tym profilu (oddzielone spacjami, pozostaw puste aby pominąć): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "Usługi, które mają być włączone na tym profilu (oddzielone spacjami, pozostaw puste aby pominąć): "
msgid "Should this profile be enabled for installation?"
msgstr "Czy ten profil ma być włączony podczas instalacji?"
msgid "Create your own"
msgstr "Utwórz własny"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"Wybierz sterownik graficzny lub pozostaw puste, aby zainstalować wszystkie sterowniki otwartoźródłowe"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway potrzebuje dostępu do twojego seat'a (sprzętu, np. klawiatury, myszki, etc)"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Wybierz opcję, aby nadać Sway dostęp do twojego sprzętu"
msgid "Graphics driver"
msgstr "Sterownik graficzny"
msgid "Greeter"
msgstr "Greeter"
msgid "Please chose which greeter to install"
msgstr "Wybierz, który greeter zainstalować"
msgid "This is a list of pre-programmed default_profiles"
msgstr "To jest lista przygotowanych domyślnych profili (default_profiles)"
msgid "Disk configuration"
msgstr "Konfiguracja dysku"
msgid "Profiles"
msgstr "Profile"
msgid "Finding possible directories to save configuration files ..."
msgstr "Znajdywanie możliwych katalogów do zapisywania plików konfiguracyjnych ..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "Wybierz jeden lub więcej katalogów do zapisywania plików konfiguracyjnych"
msgid "Add a custom mirror"
msgstr "Dodaj niestandardowy serwer lustrzany"
msgid "Change custom mirror"
msgstr "Zmień niestandardowy serwer lustrzany"
msgid "Delete custom mirror"
msgstr "Usuń niestandardowy serwer lustrzany"
msgid "Enter name (leave blank to skip): "
msgstr "Wprowadź nazwę (pozostaw puste, aby pominąć): "
msgid "Enter url (leave blank to skip): "
msgstr "Wprowadź url (pozostaw puste, aby pominąć): "
msgid "Select signature check option"
msgstr "Wybierz układ dysku"
msgid "Select signature option"
msgstr "Wybierz opcję podpisu"
msgid "Custom mirrors"
msgstr "Niestandardowe serwery lustrzane"
msgid "Defined"
msgstr "Zdefiniowane"
msgid "Save user configuration (including disk layout)"
msgstr "Zapisz konfigurację użytkownika (wraz z układem dysku)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"Wprowadź katalog, w którym ma zostać zapisana konfiguracja (uzupełnianie przyciskiem tab jest włączone)\n"
"Katalog zapisu: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"Czy chcesz zapisać plik(i) konfiguracji {} w podanej lokalizacji?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "Zapisywanie {} plików konfiguracyjnych do {}"
msgid "Mirrors"
msgstr "Serwery lustrzane"
msgid "Mirror regions"
msgstr "Regiony serwerów lustrzanych"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - Maksymalna wartość : {} ( Zwiększa liczbę zadań o {}, co pozwala na pobieranie {max_downloads+1} plików jednocześnie )"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "Nieprawidłowa wartość! Spróbuj jeszcze raz z poprawną wartością [1 do {}, lub 0 aby wyłączyć]"
msgid "Locales"
msgstr "Ustawienia regionalne (locale)"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "Użyj programu NetworkManager (niezbędne do graficznej konfiguracji Internetu w GNOME i KDE)"
msgid "Total: {} / {}"
msgstr "Łącznie: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "Do wszystkich wybranych wartości może być dopisana jednostka: B, KB, KiB, MB, MiB..."
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "Jeżeli jednostka nie zostanie podana, wartość zostanie zinterpretowana jako sektory"
msgid "Enter start (default: sector {}): "
msgstr "Wprowadź początek (domyślnie: {}): "
msgid "Enter end (default: {}): "
msgstr "Wprowadź koniec (domyślnie: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "Nie można określić urządzeń fido2. Czy zainstalowano libfido2?"
msgid "Path"
msgstr "Ścieżka"
msgid "Manufacturer"
msgstr "Producent"
msgid "Product"
msgstr "Produkt"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "Niepoprawna konfiguracja: {error}"
msgid "Type"
msgstr "Typ"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "Ta opcja pozwala określić maksymalną liczbę jednocześnie pobieranych pakietów"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"Wprowadź maksymalną liczbę dodatkowych plików pobieranych jednocześnie.\n"
"\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 {} )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - Wyłącz/Domyślne : 0 ( Wyłącza pobieranie wielu plików jednocześnie, więc tylko 1 plik może być pobierany w tym samym czasie )\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "Nieprawidłowa wartość! Spróbuj jeszcze raz z poprawną wartością [lub 0, aby wyłączyć]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Hyprland potrzebuje dostępu do twojego seat'a (sprzętu, np. klawiatury, myszki, etc)"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Wybierz opcję, aby nadać Hyprland dostęp do twojego sprzętu"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "Do wszystkich wybranych wartości może być dopisana jednostka: % B, KB, KiB, MB, MiB..."
msgid "Would you like to use unified kernel images?"
msgstr "Czy chcesz użyć ujednoliconych obrazów jądra?"
msgid "Unified kernel images"
msgstr "Ujednolicone obrazy jądra"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "Oczekiwanie na synchronizację czasu (timedatectl show)."
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Synchronizacja czasu nie powodzi się. Oczekując - sprawdź dokumentację: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "Pomiń oczekiwanie na automatyczną synchronizację czasu (może spowodować problemy podczas instalacji)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "Oczekiwanie na synchronizację Arch Linux keyring (archlinux-keyring-wkd-sync)."
msgid "Selected profiles: "
msgstr "Wybrane profile: "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Synchronizacja czasu nie powodzi się. Oczekując - sprawdź dokumentację: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "Zaznacz/Odznacz jako nodatacow"
msgid "Would you like to use compression or disable CoW?"
msgstr "Czy chcesz użyć kompresji lub wyłączyć CoW?"
msgid "Use compression"
msgstr "Użyj kompresji"
msgid "Disable Copy-on-Write"
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: {}"
msgid "LVM configuration type"
msgstr "Typ konfiguracji LVM"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "Szyfrowanie dysku LVM z więcej niż dwoma partycjami aktualnie nie jest wspierane"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "Użyj programu NetworkManager (niezbędne do graficznej konfiguracji Internetu w GNOME i KDE)"
msgid "Select a LVM option"
msgstr "Wybierz opcję LVM"
msgid "Partitioning"
msgstr "Partycjonowanie"
msgid "Logical Volume Management (LVM)"
msgstr "Zarządzanie Woluminami Logicznymi (LVM)"
msgid "Physical volumes"
msgstr "Fizyczne woluminy"
msgid "Volumes"
msgstr "Woluminy"
msgid "LVM volumes"
msgstr "Woluminy LVM"
msgid "LVM volumes to be encrypted"
msgstr "Woluminy LVM do zaszyfrowania"
msgid "Select which LVM volumes to encrypt"
msgstr "Wybierz, które woluminy LVM mają zostać zaszyfrowane"
msgid "Default layout"
msgstr "Domyślny układ"
msgid "No Encryption"
msgstr "Brak szyfrowania"
msgid "LUKS"
msgstr "LUKS"
msgid "LVM on LUKS"
msgstr "LVM na LUKS"
msgid "LUKS on LVM"
msgstr "LUKS na LVM"
msgid "Yes"
msgstr "Tak"
msgid "No"
msgstr "Nie"
msgid "Archinstall help"
msgstr "Pomoc archinstall-a"
msgid " (default)"
msgstr " (domyślne)"
msgid "Press Ctrl+h for help"
msgstr "Naciśnij Ctrl+h, aby wyświetlić pomoc"
msgid "Choose an option to give Sway access to your hardware"
msgstr "Wybierz opcję, aby nadać Sway dostęp do twojego sprzętu"
msgid "Seat access"
msgstr "Dostęp do seat'a"
msgid "Mountpoint"
msgstr "Punkt montowania"
msgid "HSM"
msgstr "HSM"
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "Wprowadź hasło do szyfrowania dysku (pozostaw puste, aby nie szyfrować):"
msgid "Disk encryption password"
msgstr "Hasło szyfrujące dysk"
msgid "Partition - New"
msgstr "Partycja - Nowa"
msgid "Filesystem"
msgstr "System plików"
msgid "Invalid size"
msgstr "Niepoprawny rozmiar"
msgid "Start (default: sector {}): "
msgstr "Początek (domyślnie: sektor {}): "
msgid "End (default: {}): "
msgstr "Koniec (domyślnie: {}): "
msgid "Subvolume name"
msgstr "Nazwa subwoluminu"
msgid "Disk configuration type"
msgstr "Typ konfiguracji dysku"
msgid "Root mount directory"
msgstr "Katalog montowania root"
msgid "Select language"
msgstr "Wybierz język"
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "Wpisz dodatkowe pakiety do zainstalowania (oddzielone spacjami, pozostaw puste aby pominąć):"
msgid "Invalid download number"
msgstr "Niepoprawna liczba pobrań"
msgid "Number downloads"
msgstr "Liczba pobrań"
msgid "The username you entered is invalid"
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"
msgid "Interfaces"
msgstr "Interfejsy"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "Musisz wprowadzić poprawny adres IP w trybie IP-config"
msgid "Modes"
msgstr "Tryby"
msgid "IP address"
msgstr "Adres IP"
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "Wprowadź adres IP bramy sieciowej (routera) lub pozostaw puste:"
msgid "Gateway address"
msgstr "Adres bramy sieciowej"
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "Wpisz swoje serwery DNS (oddzielone spacjami, lub pozostaw puste):"
msgid "DNS servers"
msgstr "Serwery DNS"
msgid "Configure interfaces"
msgstr "Konfiguruj interfejsy"
msgid "Kernel"
msgstr "Jądro"
msgid "UEFI is not detected and some options are disabled"
msgstr "Nie wykryto UEFI i niektóre opcje są wyłączone"
msgid "Info"
msgstr "Info"
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "Własnościowy sterownik Nvidia nie jest wspierany przez Sway."
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "Prawdopodobnie wystąpią problemy, czy chcesz kontynuować?"
msgid "Main profile"
msgstr "Główny profil"
msgid "Confirm password"
msgstr "Potwierdź hasło"
msgid "The confirmation password did not match, please try again"
msgstr "Hasło potwierdzające nie jest poprawne, proszę spróbować jeszcze raz"
msgid "Not a valid directory"
msgstr "Nieprawidłowy katalog"
msgid "Would you like to continue?"
msgstr "Czy chcesz kontynuować?"
msgid "Directory"
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 {}?"
msgid "Enabled"
msgstr "Włączone"
msgid "Disabled"
msgstr "Wyłączone"
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr "Proszę zgłosić ten błąd (i dołączyć plik) pod adresem https://github.com/archlinux/archinstall/issues"
msgid "Mirror name"
msgstr "Nazwa serwera lustrzanego"
msgid "Url"
msgstr "Url"
msgid "Select signature check"
msgstr "Wybierz sprawdzanie podpisu"
msgid "Select execution mode"
msgstr "Wybierz tryb uruchamiania"
msgid "Press ? for help"
msgstr "Naciśnij ?, aby wyświetlić pomoc"
msgid "Choose an option to give Hyprland access to your hardware"
msgstr "Wybierz opcję, aby nadać Hyprland dostęp do twojego sprzętu"
msgid "Additional repositories"
msgstr "Dodatkowe repozytoria"
msgid "NTP"
msgstr "NTP"
msgid "Swap on zram"
msgstr "Swap na zram"
msgid "Name"
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: {}): "
msgid "HSM device"
msgstr "Urządzenie HSM"
msgid "Some packages could not be found in the repository"
msgstr "Niektóre pakiety nie mogły zostać znalezione w repozytorium"
msgid "User"
msgstr "Użytkownik"
msgid "The specified configuration will be applied"
msgstr "Podana konfiguracja zostanie zastosowana"
msgid "Wipe"
msgstr "Wymaż"
msgid "Mark/Unmark as XBOOTLDR"
msgstr "Zaznacz/Odznacz jako XBOOTLDR"
msgid "Loading packages..."
msgstr "Ładowanie pakietów..."
msgid "Select any packages from the below list that should be installed additionally"
msgstr "Wybierz pakiety z poniższej listy, które powinne być dodatkowo zainstalowane"
msgid "Add a custom repository"
msgstr "Dodaj niestandardowe repozytorium"
msgid "Change custom repository"
msgstr "Zmień niestandardowe repozytorium"
msgid "Delete custom repository"
msgstr "Usuń niestandardowe repozytorium"
msgid "Repository name"
msgstr "Nazwa repozytorium"
msgid "Add a custom server"
msgstr "Dodaj niestandardowy serwer"
msgid "Change custom server"
msgstr "Zmień niestandardowy serwer"
msgid "Delete custom server"
msgstr "Usuń niestandardowy serwer"
msgid "Server url"
msgstr "Url serwera"
msgid "Select regions"
msgstr "Wybierz regiony"
msgid "Add custom servers"
msgstr "Dodaj niestandardowe serwery"
msgid "Add custom repository"
msgstr "Dodaj niestandardowe repozytorium"
msgid "Loading mirror regions..."
msgstr "Ładowanie regionów serwerów lustrzanych..."
msgid "Mirrors and repositories"
msgstr "Serwery lustrzane i repozytoria"
msgid "Selected mirror regions"
msgstr "Wybrane regiony serwerów lustrzanych"
msgid "Custom servers"
msgstr "Niestandardowe serwery lustrzane"
msgid "Custom repositories"
msgstr "Niestandardowe repozytoria"
msgid "Only ASCII characters are supported"
msgstr "Tylko znaki ASCII są wspierane"
msgid "Show help"
msgstr "Pokaż pomoc"
msgid "Exit help"
msgstr "Zamknij pomoc"
msgid "Preview scroll up"
msgstr "Przewiń podgląd w górę"
msgid "Preview scroll down"
msgstr "Przewiń podgląd w dół"
msgid "Move up"
msgstr "Przesuń w górę"
msgid "Move down"
msgstr "Przesuń w dół"
msgid "Move right"
msgstr "Przesuń w prawo"
msgid "Move left"
msgstr "Przesuń w lewo"
msgid "Jump to entry"
msgstr "Przeskocz do wpisu"
msgid "Skip selection (if available)"
msgstr "Pomiń wybór (jeżeli to możliwe)"
msgid "Reset selection (if available)"
msgstr "Zresetuj wybór (jeżeli to możliwe)"
msgid "Select on single select"
msgstr "Wybierz na wyborach pojedynczych"
msgid "Select on multi select"
msgstr "Wybierz na wyborach wielokrotnych"
msgid "Reset"
msgstr "Zresetuj"
msgid "Skip selection menu"
msgstr "Pomiń menu wyboru"
msgid "Start search mode"
msgstr "Wejdź w tryb wyszukiwania"
msgid "Exit search mode"
msgstr "Wyjdź z trybu wyszukiwania"
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "labwc potrzebuje dostępu do twojego seat'a (sprzętu, np. klawiatury, myszki)"
msgid "Choose an option to give labwc access to your hardware"
msgstr "Wybierz opcję, aby nadać labwc dostęp do twojego sprzętu"
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "niri potrzebuje dostępu do twojego seat'a (sprzętu, np. klawiatury, myszki, etc)"
msgid "Choose an option to give niri access to your hardware"
msgstr "Wybierz opcję, aby nadać niri dostęp do twojego sprzętu"
msgid "Mark/Unmark as ESP"
msgstr "Zaznacz/Odznacz jako ESP"
msgid "Package group:"
msgstr "Grupa pakietów:"
msgid "Exit archinstall"
msgstr "Zamknij archinstall-a"
msgid "Reboot system"
msgstr "Uruchom ponownie system"
msgid "chroot into installation for post-installation configurations"
msgstr "zchrootować do nowej instalacji i przeprowadzić dodatkową konfigurację"
msgid "Installation completed"
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 \"{}\""
msgid "Incorrect credentials file decryption password"
msgstr "Niepoprawne hasło odszyfrowujące plik danych uwierzytelniających"
msgid "Incorrect password"
msgstr "Niepoprawne hasło"
msgid "Credentials file decryption password"
msgstr "Hasło odszyfrowujące plik danych uwierzytelniających"
msgid "Do you want to encrypt the user_credentials.json file?"
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 "Print service"
msgstr ""
#, fuzzy
msgid "Would you like to configure the print service?"
msgstr "Czy chcesz kontynuować?"
#, fuzzy
msgid "Power management"
msgstr "Zarządzanie partycją: {}"
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 "Starting device modifications in "
msgstr ""
#, fuzzy
msgid "No network connection found"
msgstr "Brak konfiguracji sieciowej"
#, fuzzy
msgid "Would you like to connect to a Wifi?"
msgstr "Czy chcesz kontynuować?"
#, fuzzy
msgid "No wifi interface found"
msgstr "Konfiguruj interfejsy"
#, fuzzy
msgid "Select wifi network to connect to"
msgstr "Wybierz jeden interfejs sieciowy do skonfigurowania"
msgid "Scanning wifi networks..."
msgstr ""
#, fuzzy
msgid "No wifi networks found"
msgstr "Brak konfiguracji sieciowej"
msgid "Failed setting up wifi"
msgstr ""
#, fuzzy
msgid "Enter wifi password"
msgstr "Wprowadź hasło: "
msgid "Ok"
msgstr ""
msgid "Removable"
msgstr ""
msgid "Install to removable location"
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr ""
msgid "Will install to standard location with NVRAM entry"
msgstr ""
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr ""
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr ""
msgid "USB drives or other portable external media."
msgstr ""
msgid "Systems where you want the disk to be bootable on any computer."
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr ""
msgid "Will install to custom location with NVRAM entry"
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr ""
msgid "most Apple Macs, many laptops..."
msgstr ""
#, fuzzy
msgid "Language"
msgstr "Język"
msgid "Compression algorithm"
msgstr ""
#, fuzzy
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Instalowane są tylko pakiety takie jak base, base-devel, linux, linux-firmware, efibootmgr i opcjonalne pakiety profili."
#, fuzzy
msgid "Select zram compression algorithm:"
msgstr "Wybierz punkt montowania :"
msgid "Use Network Manager (default backend)"
msgstr ""
msgid "Use Network Manager (iwd backend)"
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: "
#~ msgid ""
#~ "Do you want to save {} configuration file(s) in the following locations?\n"
#~ "\n"
#~ "{}"
#~ msgstr ""
#~ "Czy chcesz zapisać {} plików konfiguracyjnych do następujących lokalizacji?\n"
#~ "\n"
#~ "{}"
#~ msgid "Add :"
#~ msgstr "Dodaj :"
#~ msgid "Value :"
#~ msgstr "Wartość :"
#, python-brace-format
#~ msgid "Edit {origkey} :"
#~ msgstr "Edytuj {origkey} :"
#~ msgid "Copy to :"
#~ msgstr "Kopiuj do :"
#~ msgid "Edite :"
#~ msgstr "Edytuj :"
#~ msgid "Key :"
#~ msgstr "Klucz :"
================================================
FILE: archinstall/locales/pt/LC_MESSAGES/base.po
================================================
# Translators:
# Hugo Carvalho
# Luis Antonio
msgid ""
msgstr ""
"Project-Id-Version: archinstall\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2025-21-12 16:08\n"
"Last-Translator: Luis Antonio \n"
"Language-Team: Portuguese \n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.8\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] Foi criado um ficheiro de registo aqui: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Submeta este problema (e ficheiro) para https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "Quer mesmo abortar?"
msgid "And one more time for verification: "
msgstr "E mais uma vez para verificação: "
msgid "Would you like to use swap on zram?"
msgstr "Pretende usar a swap em zram?"
msgid "Desired hostname for the installation: "
msgstr "Nome do computador desejado para a instalação: "
msgid "Username for required superuser with sudo privileges: "
msgstr "Nome de utilizador para o superutilizador com privilégios sudo: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "Algum utilizador adicional para instalar (deixar em branco para nenhum utilizador): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "Deve este utilizador ser um superutilizador (sudoer)?"
msgid "Select a timezone"
msgstr "Selecionar um fuso horário"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "Pretende usar o GRUB como carregador de arranque em vez do systemd-boot?"
msgid "Choose a bootloader"
msgstr "Escolha um carregador de arranque"
msgid "Choose an audio server"
msgstr "Escolha um servidor de áudio"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Apenas pacotes como base, base-devel, linux, linux-firmware, efibootmgr e pacotes opcionais de perfil são instalados."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr ""
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "Se quer um navegador web, como firefox ou chromium, deve especificá-lo na pergunta seguinte."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "Inserir pacotes adicionais a instalar (separados por espaço, deixar em branco para ignorar): "
msgid "Copy ISO network configuration to installation"
msgstr "Copiar a configuração de rede da ISO para a instalação"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "Usar o Gestor de Redes \"NetworkManager\" (necessário para configurar Internet graficamente em GNOME e KDE)"
msgid "Select one network interface to configure"
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): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "Inserir o seu IP de gateway (router) ou deixe em branco para nenhum: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "Inserir os servidores DNS (separados por espaço, deixe em branco para nenhum): "
msgid "Select which filesystem your main partition should use"
msgstr "Selecionar o sistema de ficheiros que a partição principal deve utilizar"
msgid "Current partition layout"
msgstr "Esquema atual da partições"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"Seleciona o que fazer com\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "Inserir o tipo de sistema de ficheiros desejado para a partição"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "Inserir o local inicial (em unidades do parted: s, GB, %, etc. ; predefinido: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "Inserir o local final (em unidades do parted: s, GB, %, etc. ; predefinido: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} contém partições em fila de espera, isto irá removê-las. Tem a certeza?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"Selecionar por índice quais partições remover"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"Selecionar por índice quais partições montar em"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * Os pontos de montagem das partições são relativos ao interior da instalação, o boot seria /boot por exemplo."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "Selecionar onde montar a partição (deixa em branco para remover o ponto de montagem): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"Selecionar a partição a marcar para formatação"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"Selecionar a partição a marcar como encriptada"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"Selecionar a partição a marcar como de arranque"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"Selecionar a partição a definir um sistema de ficheiros"
msgid "Enter a desired filesystem type for the partition: "
msgstr "Introduza o tipo de sistema de ficheiros desejado para a partição: "
msgid "Archinstall language"
msgstr "Idioma do Archinstall"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "Limpar todos os discos selecionados e usar um esquema de partições predefinido de melhor desempenho"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "Selecionar o que fazer com cada disco individual (seguido de uso de partição)"
msgid "Select what you wish to do with the selected block devices"
msgstr "Selecionar o que deseja fazer com os dispositivos de bloco selecionados"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "Esta é uma lista de perfis pré-programados, podem facilitar a instalação de ambientes de trabalho"
msgid "Select keyboard layout"
msgstr "Selecionar o esquema de teclado"
msgid "Select one of the regions to download packages from"
msgstr "Selecionar uma das regiões a partir da qual pretende transferir pacotes"
msgid "Select one or more hard drives to use and configure"
msgstr "Selecionar um ou mais discos rígidos para usar e configurar"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "Para uma melhor compatibilidade com o teu hardware AMD, poderás querer usar a opção de todos os controladores de código-aberto ou com proprietários da AMD / ATI."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "Para uma melhor compatibilidade com o teu hardware Intel, poderás querer usar a opção de todos os controladores de código-aberto ou com proprietários da Intel.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "Para uma melhor compatibilidade com o teu hardware Nvidia, poderás querer usar o controlador proprietário da Nvidia.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Selecionar um controlador de gráficos ou deixa em branco para instalar todos os controladores de código-aberto"
msgid "All open-source (default)"
msgstr "Todos os controladores de código-aberto (predefinido)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "Escolher os kernels a usar ou deixe em branco para a predefinição \"{}\""
msgid "Choose which locale language to use"
msgstr "Escolher qual idioma de localização usar"
msgid "Choose which locale encoding to use"
msgstr "Escolher qual codificação de localização usar"
msgid "Select one of the values shown below: "
msgstr "Selecionar uma das opções mostradas abaixo: "
msgid "Select one or more of the options below: "
msgstr "Selecionar uma ou mais opções abaixo: "
msgid "Adding partition...."
msgstr "Adicionando partição...."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "Precisa de colocar um tipo de sistema de ficheiros valido. Ver o `man parted` para ver as opções validas."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "Erro: a listar os perfis em URL \"{}\" resulta em:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "Erro: não foi possível decodificar \"{}\" como JSON:"
msgid "Keyboard layout"
msgstr "Esquema do teclado"
msgid "Mirror region"
msgstr "Região do espelho"
msgid "Locale language"
msgstr "Idioma de localização"
msgid "Locale encoding"
msgstr "Codificação de localização"
msgid "Drive(s)"
msgstr "Unidade(s)"
msgid "Disk layout"
msgstr "Esquema do disco"
msgid "Encryption password"
msgstr "Palavra-passe de encriptação"
msgid "Swap"
msgstr "Swap"
msgid "Bootloader"
msgstr "Carregador de arranque"
msgid "Root password"
msgstr "Palavra-passe do root"
msgid "Superuser account"
msgstr "Conta de superutilizador"
msgid "User account"
msgstr "Conta de utilizador"
msgid "Profile"
msgstr "Perfil"
msgid "Audio"
msgstr "Áudio"
msgid "Kernels"
msgstr "Kernels"
msgid "Additional packages"
msgstr "Pacotes adicionais"
msgid "Network configuration"
msgstr "Configuração de rede"
msgid "Automatic time sync (NTP)"
msgstr "Sincronização automática de tempo (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "Instalar ({} configuração(s) em falta)"
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 ""
"Decidiu ignorar a seleção de disco rígido\n"
"e usar qualquer configuração de disco rígido montada em {} (experimental)\n"
"ATENÇÃO: O archinstall não verifica a viabilidade desta configuração\n"
"Quer continuar?"
msgid "Re-using partition instance: {}"
msgstr "A reutilizar a instância da partição: {}"
msgid "Create a new partition"
msgstr "Criar uma nova partição"
msgid "Delete a partition"
msgstr "Eliminar uma partição"
msgid "Clear/Delete all partitions"
msgstr "Limpar/Eliminar todas as partições"
msgid "Assign mount-point for a partition"
msgstr "Atribuir um ponto de montagem para uma partição"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "Marcar/Desmarcar uma partição para ser formatada (apaga os dados)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "Marcar/Desmarcar uma partição como encriptada"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "Marcar/Desmarcar uma partição como de arranque (automática para /boot)"
msgid "Set desired filesystem for a partition"
msgstr "Definir o sistema de ficheiros desejado para uma partição"
msgid "Abort"
msgstr "Cancelar"
msgid "Hostname"
msgstr "Nome do computador"
msgid "Not configured, unavailable unless setup manually"
msgstr "Não configurado, indisponível a não ser que seja configurado manualmente"
msgid "Timezone"
msgstr "Fuso horário"
msgid "Set/Modify the below options"
msgstr "Definir/Modificar as opções abaixo"
msgid "Install"
msgstr "Instalar"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"Utilizar ESC para ignorar\n"
"\n"
msgid "Suggest partition layout"
msgstr "Sugerir esquema de partições"
msgid "Enter a password: "
msgstr "Introduzir uma palavra-passe: "
msgid "Enter a encryption password for {}"
msgstr "Introduzir uma palavra-passe de encriptação para {}"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "Introduzir palavra-passe de encriptação do disco (deixar em branco para nenhuma encriptação): "
msgid "Create a required super-user with sudo privileges: "
msgstr "Criar um super-utilizador com privilégios de sudo: "
msgid "Enter root password (leave blank to disable root): "
msgstr "Introduzir palavra-passe do root (deixar em branco para desativar o root): "
msgid "Password for user \"{}\": "
msgstr "Palavra-passe para o utilizador \"{}\": "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "A verificar se existem pacotes adicionais (isto pode demorar alguns segundos)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "Gostaria de utilizar a sincronização automática da hora (NTP) com os servidores de hora predefinidos?\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 ""
"A hora do equipamento e outros passos após a configuração podem ser necessários para que o NTP funcione.\n"
"Para mais informações, consulte a wiki do Arch"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "Introduzir um nome de utilizador para criar um utilizador adicional (deixar em branco para ignorar): "
msgid "Use ESC to skip\n"
msgstr "Utilizar ESC para ignorar\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
" Escolher um objeto da lista, e selecionar uma das ações disponíveis para executar"
msgid "Cancel"
msgstr "Cancelar"
msgid "Confirm and exit"
msgstr "Confirmar e sair"
msgid "Add"
msgstr "Adicionar"
msgid "Copy"
msgstr "Copiar"
msgid "Edit"
msgstr "Editar"
msgid "Delete"
msgstr "Eliminar"
msgid "Select an action for '{}'"
msgstr "Selecionar uma ação para '{}'"
msgid "Copy to new key:"
msgstr "Copiar para nova chave:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "Tipo de NIC desconhecido: {}. Possíveis valores são {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"Esta é a sua configuração escolhida:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "O pacman já está em execução, aguardando no máximo 10 minutos para terminar."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "O bloqueio pré-existente do pacman nunca terminou. Limpar quaisquer sessões pacman existentes antes de usar o archinstall."
msgid "Choose which optional additional repositories to enable"
msgstr "Escolher quais repositórios adicionais opcionais a ativar"
msgid "Add a user"
msgstr "Adicionar utilizador"
msgid "Change password"
msgstr "Alterar a palavra-passe"
msgid "Promote/Demote user"
msgstr "Promover/Demover utilizador"
msgid "Delete User"
msgstr "Eliminar utilizador"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"Definir um novo utilizador\n"
msgid "User Name : "
msgstr "Nome de utilizador : "
msgid "Should {} be a superuser (sudoer)?"
msgstr "{} deve ser um superutilizador (sudoer)?"
msgid "Define users with sudo privilege: "
msgstr "Definir utilizadores com privilégio sudo: "
msgid "No network configuration"
msgstr "Nenhuma configuração de rede"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Definir subvolumes desejados numa partição btrfs"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"Selecione em qual partição definir subvolumes"
msgid "Manage btrfs subvolumes for current partition"
msgstr "Gerir subvolumes btrfs para a partição atual"
msgid "No configuration"
msgstr "Nenhuma configuração"
msgid "Save user configuration"
msgstr "Guardar configuração de utilizador"
msgid "Save user credentials"
msgstr "Guardar credenciais de utilizador"
msgid "Save disk layout"
msgstr "Guardar esquema de disco"
msgid "Save all"
msgstr "Guardar tudo"
msgid "Choose which configuration to save"
msgstr "Escolher qual a configuração a guardar"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "Introduzir um diretório para a(s) configuração(ões) a guardar: "
msgid "Not a valid directory: {}"
msgstr "Não é um diretório válido: {}"
msgid "The password you are using seems to be weak,"
msgstr "A palavra-passe que está a usar parece ser fraca,"
msgid "are you sure you want to use it?"
msgstr "tem a certeza que pretende usá-la?"
msgid "Optional repositories"
msgstr "Repositórios opcionais"
msgid "Save configuration"
msgstr "Guardar configuração"
msgid "Missing configurations:\n"
msgstr "Configurações em falta:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "É necessário especificar uma palavra-passe root ou pelo menos 1 super-utilizador"
msgid "Manage superuser accounts: "
msgstr "Gerir contas de superutilizador: "
msgid "Manage ordinary user accounts: "
msgstr "Gerir contas de utilizador normal: "
msgid " Subvolume :{:16}"
msgstr " Subvolume :{:16}"
msgid " mounted at {:16}"
msgstr " montado em {:16}"
msgid " with option {}"
msgstr " com opção {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
" Preencher os valores desejados para um novo subvolume \n"
msgid "Subvolume name "
msgstr "Nome do subvolume "
msgid "Subvolume mountpoint"
msgstr "Ponto de montagem do subvolume"
msgid "Subvolume options"
msgstr "Opções do subvolume"
msgid "Save"
msgstr "Guardar"
msgid "Subvolume name :"
msgstr "Nome do subvolume :"
msgid "Select a mount point :"
msgstr "Selecionar um ponto de montagem :"
msgid "Select the desired subvolume options "
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: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "Gostaria de usar subvolumes BTRFS com a estrutura predefinida?"
msgid "Would you like to use BTRFS compression?"
msgstr "Gostaria de usar a compressão BTRFS?"
msgid "Would you like to create a separate partition for /home?"
msgstr "Gostaria de criar uma partição separada para /home?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "As unidades selecionadas não tem a capacidade mínima para sugestão automática\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "Capacidade mínima para partição /home : {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Capacidade mínima para a partição do Arch Linux: {}GB"
msgid "Continue"
msgstr "Continuar"
msgid "yes"
msgstr "sim"
msgid "no"
msgstr "não"
msgid "set: {}"
msgstr "definir: {}"
msgid "Manual configuration setting must be a list"
msgstr "A definição da configuração manual deve ser uma lista"
msgid "No iface specified for manual configuration"
msgstr "Nenhuma iface especificada para configuração manual"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "A configuração manual de NIC sem DHCP automático requer um endereço IP"
msgid "Add interface"
msgstr "Adicionar interface"
msgid "Edit interface"
msgstr "Editar interface"
msgid "Delete interface"
msgstr "Eliminar interface"
msgid "Select interface to add"
msgstr "Selecionar interface a adicionar"
msgid "Manual configuration"
msgstr "Configuração manual"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "Marcar/desmarcar a partição como comprimida (apenas btrfs)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "A palavra-passe que está a usar parece ser fraca, tem a certeza que deseja utilizá-la?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "Disponibiliza uma seleção de ambientes gráficos e gestores de janela como por exemplo gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "Selecionar o ambiente gráfico desejado"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "Uma instalação bem básica que permite-lhe personalizar o Arch Linux como desejar."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "Proporciona uma seleção de diversos pacotes do servidor a instalar e ativar como por exemplo httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "Escolher os servidores a instalar, se não houver nenhum, será efetuada uma instalação mínima"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "Instala um sistema mínimo assim como o xorg e controladores de vídeo."
msgid "Press Enter to continue."
msgstr "Prima Enter para continuar."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "Gostaria de fazer chroot na instalação recém-criada e executar a configuração pós-instalação?"
msgid "Are you sure you want to reset this setting?"
msgstr "Tem a certeza que pretende repor esta configuração?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "Selecionar uma ou mais unidades a usar e configurar\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "Quaisquer modificações na configuração existente irá repor o esquema de disco!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "Se repor a seleção da unidade isto também repor o esquema do disco atual. Tem a certeza?"
msgid "Save and exit"
msgstr "Guardar e sair"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"contém partições em fila de espera, isto irá removê-las, tem a certeza?"
msgid "No audio server"
msgstr "Sem servidor de áudio"
msgid "(default)"
msgstr "(predefinição)"
msgid "Use ESC to skip"
msgstr "Utilizar ESC para ignorar"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"Utilizar CTRL+C para repor a seleção atual\n"
"\n"
msgid "Copy to: "
msgstr "Copiar para: "
msgid "Edit: "
msgstr "Editar: "
msgid "Key: "
msgstr "Chave: "
msgid "Edit {}: "
msgstr "Editar {}: "
msgid "Add: "
msgstr "Adicionar: "
msgid "Value: "
msgstr "Valor: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "Pode ignorar a seleção de unidade e particionar seja lá o que estiver montado em /mnt (experimental)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "Selecionar um dos discos ou ignorar e usar /mnt como predefinição"
msgid "Select which partitions to mark for formatting:"
msgstr "Selecionar quais partições a marcar para formatar:"
msgid "Use HSM to unlock encrypted drive"
msgstr "Usar HSM para desbloquear unidade encriptada"
msgid "Device"
msgstr "Dispositivo"
msgid "Size"
msgstr "Tamanho"
msgid "Free space"
msgstr "Espaço livre"
msgid "Bus-type"
msgstr "Tipo de barramento"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "Deve-se especificar uma palavra-passe root ou pelo menos 1 utilizador com privilégios de sudo"
msgid "Enter username (leave blank to skip): "
msgstr "Introduzir um nome de utilizador (deixe em branco para ignorar): "
msgid "The username you entered is invalid. Try again"
msgstr "O nome de utilizador que introduziu é inválido. Tente novamente"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "\"{}\" deve ser um superutilizador (sudo)?"
msgid "Select which partitions to encrypt"
msgstr "Selecionar quais as partições a encriptar"
msgid "very weak"
msgstr "muito fraca"
msgid "weak"
msgstr "fraca"
msgid "moderate"
msgstr "moderada"
msgid "strong"
msgstr "forte"
msgid "Add subvolume"
msgstr "Adicionar subvolume"
msgid "Edit subvolume"
msgstr "Editar subvolume"
msgid "Delete subvolume"
msgstr "Eliminar subvolume"
msgid "Configured {} interfaces"
msgstr "{} interfaces configuradas"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "Esta opção ativa o número de transferências paralelas que podem ocorrer durante a instalação"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"Inserir o número de transferências paralelas a ativar.\n"
" (Inserir um valor entre 1 e {})\n"
"Nota:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - Valor máximo : {} ( Permite {} transferências paralelas, permite {} transferências de cada vez )"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - Valor mínimo : 1 ( Permite 1 transferência paralela, permite 2 transferências de cada vez )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - Desativar/Padrão : 0 ( Desativa as transferências paralelas, permite apenas 1 transferência de cada vez )"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "Entrada inválida! Tente novamente com uma entrada válida [1 para {max_downloads}, ou 0 para desativar]"
msgid "Parallel Downloads"
msgstr "Transferências paralelas"
msgid "ESC to skip"
msgstr "ESC para ignorar"
msgid "CTRL+C to reset"
msgstr "CTRL+C para repor"
msgid "TAB to select"
msgstr "TAB para selecionar"
msgid "[Default value: 0] > "
msgstr "[Valor predefinido: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "Para poder usar esta tradução, instale manualmente um tipo de letra que suporte o idioma."
msgid "The font should be stored as {}"
msgstr "O tipo de letra deve ser armazenado como {}"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "O archinstall requer privilégios root para ser executado. Ver --help para mais informações."
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: {}"
msgid "Select one or more devices to use and configure"
msgstr "Selecionar um ou mais dispositivos a usar e configurar"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "Se repor a seleção do dispositivo, também irá repor o esquema atual do disco. Tem a certeza?"
msgid "Existing Partitions"
msgstr "Partições existentes"
msgid "Select a partitioning option"
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"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "Esta é uma lista de perfis pré-programados, que podem por exemplo facilitar a instalação de ambientes gráficos"
msgid "Current profile selection"
msgstr "Seleção de perfil atual"
msgid "Remove all newly added partitions"
msgstr "Remover todas as partições recém adicionadas"
msgid "Assign mountpoint"
msgstr "Atribuir um ponto de montagem"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "Marcar/Desmarcar para ser formatada (apaga os dados)"
msgid "Mark/Unmark as bootable"
msgstr "Marcar/Desmarcar como partição de arranque"
msgid "Change filesystem"
msgstr "Alterar sistema de ficheiros"
msgid "Mark/Unmark as compressed"
msgstr "Marcar/Desmarcar como comprimida"
msgid "Set subvolumes"
msgstr "Definir subvolumes"
msgid "Delete partition"
msgstr "Eliminar partição"
msgid "Partition"
msgstr "Partição"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "Esta partição está atualmente encriptada. Para a formatar, deve ser especificado um sistema de ficheiros"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "Os pontos de montagem das partições são relativos ao interior da instalação, o boot seria /boot por exemplo."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "Se o ponto de montagem /boot for definido, a partição também será marcada como de arranque."
msgid "Mountpoint: "
msgstr "Ponto de montagem: "
msgid "Current free sectors on device {}:"
msgstr "Atuais setores livres no dispositivo {}:"
msgid "Total sectors: {}"
msgstr "Total de setores: {}"
msgid "Enter the start sector (default: {}): "
msgstr "Inserir o setor inicial (predefinido: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
msgstr "Inserir o setor final da partição (percentagem ou número de bloco, predefinido: {}): "
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: {}"
msgid "Encryption type"
msgstr "Tipo de encriptação"
msgid "Iteration time"
msgstr "Tempo de iteração"
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr "Insira o tempo de iteração para a encriptação LUKS (em milissegundos)"
msgid "Higher values increase security but slow down boot time"
msgstr "Valores mais altos aumentam a segurança, mas diminuem o tempo de arranque"
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr "Predefinido: 10000 ms, intervalo recomendado: 1000-60000"
msgid "Iteration time cannot be empty"
msgstr "O tempo de iteração não pode estar em branco"
msgid "Iteration time must be at least 100ms"
msgstr "O tempo de iteração deve ser de pelo menos 100 ms"
msgid "Iteration time must be at most 120000ms"
msgstr "O tempo de iteração deve ser, no máximo, 120000 ms"
msgid "Please enter a valid number"
msgstr "Insira um número válido"
msgid "Partitions"
msgstr "Partições"
msgid "No HSM devices available"
msgstr "Nenhum dispositivo HSM disponível"
msgid "Partitions to be encrypted"
msgstr "Partições a serem encriptadas"
msgid "Select disk encryption option"
msgstr "Selecionar a opção de encriptação de disco"
msgid "Select a FIDO2 device to use for HSM"
msgstr "Selecionar um dispositivo FIDO2 para usar como HSM"
msgid "Use a best-effort default partition layout"
msgstr "Usar um esquema de partições predefinido de melhor desempenho"
msgid "Manual Partitioning"
msgstr "Particionamento manual"
msgid "Pre-mounted configuration"
msgstr "Configuração pré-montada"
msgid "Unknown"
msgstr "Desconhecido"
msgid "Partition encryption"
msgstr "Encriptação de partições"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! A formatar {} em "
msgid "← Back"
msgstr "← Voltar"
msgid "Disk encryption"
msgstr "Encriptação do disco"
msgid "Configuration"
msgstr "Configuração"
msgid "Password"
msgstr "Palavra-passe"
msgid "All settings will be reset, are you sure?"
msgstr "Todas as definições serão repostas, tem a certeza?"
msgid "Back"
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: {}"
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 "O controlador proprietário Nvidia não é suportado pelo Sway. É provável que encontre problemas. Está de acordo com isso?"
msgid "Installed packages"
msgstr "Pacotes instalados"
msgid "Add profile"
msgstr "Adicionar perfil"
msgid "Edit profile"
msgstr "Editar perfil"
msgid "Delete profile"
msgstr "Eliminar perfil"
msgid "Profile name: "
msgstr "Nome do perfil: "
msgid "The profile name you entered is already in use. Try again"
msgstr "O nome do perfil que introduziu já está a ser utilizado. Tente novamente"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "Pacotes a serem instalados com este perfil (separados por espaço, deixe em branco para ignorar): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "Serviços a serem ativados com este perfil (separados por espaço, deixe em branco para ignorar): "
msgid "Should this profile be enabled for installation?"
msgstr "Este perfil deve ser ativado para a instalação?"
msgid "Create your own"
msgstr "Criar o seu próprio"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Selecionar um controlador gráfico ou deixe em branco para instalar todos os controladores de código aberto"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "O Sway precisa de acesso ao seu \"seat\" (conjunto de dispositivos de hardware, como o teclado, o rato, etc)"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Selecionar uma opção para permitir o acesso do Sway ao seu hardware"
msgid "Graphics driver"
msgstr "Controlador gráfico"
msgid "Greeter"
msgstr "Interface gráfica de início de sessão"
msgid "Please chose which greeter to install"
msgstr "Escolher qual a interface gráfica de início de sessão a instalar"
msgid "This is a list of pre-programmed default_profiles"
msgstr "Esta é uma lista de perfis pré-programados (default_profiles)"
msgid "Disk configuration"
msgstr "Configuração do disco"
msgid "Profiles"
msgstr "Perfis"
msgid "Finding possible directories to save configuration files ..."
msgstr "A procurar possíveis diretórios para guardar os ficheiros de configuração ..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "Selecionar um ou mais diretórios para guardar ficheiros de configuração"
msgid "Add a custom mirror"
msgstr "Adicionar um espelho personalizado"
msgid "Change custom mirror"
msgstr "Alterar espelho personalizado"
msgid "Delete custom mirror"
msgstr "Eliminar espelho personalizado"
msgid "Enter name (leave blank to skip): "
msgstr "Inserir o nome (deixe em branco para ignorar): "
msgid "Enter url (leave blank to skip): "
msgstr "Insira o url (deixe em branco para ignorar): "
msgid "Select signature check option"
msgstr "Selecionar a opção de verificação da assinatura"
msgid "Select signature option"
msgstr "Selecionar a opção de assinatura"
msgid "Custom mirrors"
msgstr "Espelhos personalizados"
msgid "Defined"
msgstr "Definido"
msgid "Save user configuration (including disk layout)"
msgstr "Guardar configuração de utilizador (incluindo esquema do disco)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"Insira um diretório para a(s) configuração(ões) a guardar (preenchimento automático com a tecla tab ativado): \n"
"Guardar diretório: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"Pretende guardar o(s) ficheiro(s) de configuração de {} na seguinte localização?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "A guardar ficheiros de configuração de {} para {}"
msgid "Mirrors"
msgstr "Espelhos"
msgid "Mirror regions"
msgstr "Regiões dos espelhos"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - Valor máximo : {} ( Permite {} transferências paralelas, permite {max_downloads+1} transferências de cada vez )"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "Entrada inválida! Tente novamente com uma entrada válida [1 para {}, ou 0 para desativar]"
msgid "Locales"
msgstr "Localidades"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "Usar o Gestor de Redes \"NetworkManager\" (necessário para configurar a Internet graficamente no GNOME e KDE)"
msgid "Total: {} / {}"
msgstr "Total: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "Todos os valores inseridos podem ser sufixados com uma unidade: B, KB, KiB, MB, MiB..."
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "Se nenhuma unidade for fornecida, o valor será interpretado como setores"
msgid "Enter start (default: sector {}): "
msgstr "Inserir o início (predefinido: sector {}): "
msgid "Enter end (default: {}): "
msgstr "Inserir o fim (predefinido: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "Não foi possível determinar os dispositivos fido2. A libfido2 está instalada?"
msgid "Path"
msgstr "Caminho"
msgid "Manufacturer"
msgstr "Fabricante"
msgid "Product"
msgstr "Produto"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "Configuração inválida: {error}"
msgid "Type"
msgstr "Tipo"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "Esta opção ativa o número de transferências paralelas que podem ocorrer durante as transferências de pacotes"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"Inserir o número de transferências paralelas a ativar.\n"
"\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 )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - Desativar/Predefinido : 0 ( Desativa as transferências paralelas, permite apenas 1 transferência de cada vez )\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "Entrada inválida! Tente novamente com uma entrada válida [ou 0 para desativar]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "O Hyprland precisa de acesso ao seu \"seat\" (conjunto de dispositivos de hardware, como o teclado, o rato, etc)"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Selecionar uma opção para permitir o acesso do Hyprland ao seu hardware"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "Todos os valores inseridos podem ser sufixados com uma unidade: %, B, KB, KiB, MB, MiB..."
msgid "Would you like to use unified kernel images?"
msgstr "Gostaria de usar imagens de kernel unificados?"
msgid "Unified kernel images"
msgstr "Imagens de kernel unificados"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "À espera que a sincronização da hora (timedatectl show) seja concluída."
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "A sincronização da hora não está a ser concluída, enquanto espera - consulte a documentação para obter soluções alternativas: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "Ignorar a espera pela sincronização automática da hora (isto pode causar problemas se a hora estiver dessincronizada durante a instalação)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "À espera que a sincronização do chaveiro do Arch Linux (archlinux-keyring-wkd-sync) seja concluída."
msgid "Selected profiles: "
msgstr "Perfis selecionados: "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "A sincronização da hora não está a ser concluída, enquanto espera - consulte a documentação para obter soluções alternativas: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "Marcar/Desmarcar como nodatacow"
msgid "Would you like to use compression or disable CoW?"
msgstr "Pretende utilizar a compressão ou desativar o CoW?"
msgid "Use compression"
msgstr "Usar compressão"
msgid "Disable Copy-on-Write"
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: {}"
msgid "LVM configuration type"
msgstr "Tipo de configuração LVM"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "A encriptação de disco LVM com mais de 2 partições não é atualmente suportada"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "Usar o Gestor de redes \"NetworkManager\" (necessário para configurar a Internet graficamente no GNOME e no KDE Plasma)"
msgid "Select a LVM option"
msgstr "Selecionar uma opção LVM"
msgid "Partitioning"
msgstr "Particionamento"
msgid "Logical Volume Management (LVM)"
msgstr "Gestão de volumes lógicos (LVM)"
msgid "Physical volumes"
msgstr "Volumes físicos"
msgid "Volumes"
msgstr "Volumes"
msgid "LVM volumes"
msgstr "Volumes LVM"
msgid "LVM volumes to be encrypted"
msgstr "Volumes LVM a encriptar"
msgid "Select which LVM volumes to encrypt"
msgstr "Selecionar os volumes LVM a encriptar"
msgid "Default layout"
msgstr "Estrutura predefinida"
msgid "No Encryption"
msgstr "Sem encriptação"
msgid "LUKS"
msgstr "LUKS"
msgid "LVM on LUKS"
msgstr "LVM em LUKS"
msgid "LUKS on LVM"
msgstr "LUKS em LVM"
msgid "Yes"
msgstr "Sim"
msgid "No"
msgstr "Não"
msgid "Archinstall help"
msgstr "Ajuda do Archinstall"
msgid " (default)"
msgstr " (predefinição)"
msgid "Press Ctrl+h for help"
msgstr "Prima Ctrl+h para obter ajuda"
msgid "Choose an option to give Sway access to your hardware"
msgstr "Escolha uma opção para dar ao Sway acesso ao seu hardware"
msgid "Seat access"
msgstr "Acesso à estação de trabalho"
msgid "Mountpoint"
msgstr "Ponto de montagem"
msgid "HSM"
msgstr "HSM"
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "Introduzir a palavra-passe de encriptação do disco (deixar em branco para não haver encriptação)"
msgid "Disk encryption password"
msgstr "Palavra-passe de encriptação do disco"
msgid "Partition - New"
msgstr "Partição - Nova"
msgid "Filesystem"
msgstr "Sistema de ficheiros"
msgid "Invalid size"
msgstr "Tamanho inválido"
msgid "Start (default: sector {}): "
msgstr "Início (predefinido: sector {}): "
msgid "End (default: {}): "
msgstr "Fim (predefinido: {}): "
msgid "Subvolume name"
msgstr "Nome do subvolume"
msgid "Disk configuration type"
msgstr "Tipo de configuração do disco"
msgid "Root mount directory"
msgstr "Diretório de montagem root"
msgid "Select language"
msgstr "Selecionar idioma"
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "Escreva pacotes adicionais a instalar (separados por espaços, deixe em branco para ignorar)"
msgid "Invalid download number"
msgstr "Número de transferência inválido"
msgid "Number downloads"
msgstr "Número de transferências"
msgid "The username you entered is invalid"
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"
msgid "Interfaces"
msgstr "Interfaces"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "É necessário introduzir um IP válido no modo IP-config"
msgid "Modes"
msgstr "Modos"
msgid "IP address"
msgstr "Endereço de IP"
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "Introduzir o endereço IP do gateway (router) (deixar em branco para nenhum)"
msgid "Gateway address"
msgstr "Endereço do gateway"
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "Introduzir os servidores DNS separados por espaços (deixe em branco para nenhum)"
msgid "DNS servers"
msgstr "Servidores de DNS"
msgid "Configure interfaces"
msgstr "Configurar interfaces"
msgid "Kernel"
msgstr "Kernel"
msgid "UEFI is not detected and some options are disabled"
msgstr "A UEFI não foi detetada e algumas opções estão desativadas"
msgid "Info"
msgstr "Info"
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "O controlador proprietário Nvidia não é suportado pelo Sway."
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "É provável que se depare com problemas. Está de acordo com isso?"
msgid "Main profile"
msgstr "Perfil principal"
msgid "Confirm password"
msgstr "Confirmar palavra-passe"
msgid "The confirmation password did not match, please try again"
msgstr "A palavra-passe de confirmação não coincide, tente novamente"
msgid "Not a valid directory"
msgstr "Não é um diretório válido"
msgid "Would you like to continue?"
msgstr "Gostaria de continuar?"
msgid "Directory"
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 {}?"
msgid "Enabled"
msgstr "Ativado"
msgid "Disabled"
msgstr "Desativado"
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr "Submeta este problema (e ficheiro) para https://github.com/archlinux/archinstall/issues"
msgid "Mirror name"
msgstr "Nome do espelho"
msgid "Url"
msgstr "URL"
msgid "Select signature check"
msgstr "Selecionar verificação de assinatura"
msgid "Select execution mode"
msgstr "Selecionar modo de execução"
msgid "Press ? for help"
msgstr "Prima ? para obter ajuda"
msgid "Choose an option to give Hyprland access to your hardware"
msgstr "Selecionar uma opção para permitir que o Hyprland aceda ao seu hardware"
msgid "Additional repositories"
msgstr "Repositórios adicionais"
msgid "NTP"
msgstr "NTP"
msgid "Swap on zram"
msgstr "Swap em zram"
msgid "Name"
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: {}): "
msgid "HSM device"
msgstr "Dispositivo HSM"
msgid "Some packages could not be found in the repository"
msgstr "Alguns pacotes não foram encontrados no repositório"
msgid "User"
msgstr "Utilizador"
msgid "The specified configuration will be applied"
msgstr "A configuração especificada vai ser aplicada"
msgid "Wipe"
msgstr "Apagar"
msgid "Mark/Unmark as XBOOTLDR"
msgstr "Marcar/Desmarcar como XBOOTLDR"
msgid "Loading packages..."
msgstr "A carregar pacotes..."
msgid "Select any packages from the below list that should be installed additionally"
msgstr "Selecionar na lista abaixo os pacotes que devem ser instalados adicionalmente"
msgid "Add a custom repository"
msgstr "Adicionar um repositório personalizado"
msgid "Change custom repository"
msgstr "Alterar repositório personalizado"
msgid "Delete custom repository"
msgstr "Eliminar repositório personalizado"
msgid "Repository name"
msgstr "Nome do repositório"
msgid "Add a custom server"
msgstr "Adicionar um servidor personalizado"
msgid "Change custom server"
msgstr "Alterar servidor personalizado"
msgid "Delete custom server"
msgstr "Eliminar servidor personalizado"
msgid "Server url"
msgstr "URL do servidor"
msgid "Select regions"
msgstr "Selecionar regiões"
msgid "Add custom servers"
msgstr "Adicionar servidores personalizados"
msgid "Add custom repository"
msgstr "Adicionar repositório personalizado"
msgid "Loading mirror regions..."
msgstr "A carregar regiões dos espelhos..."
msgid "Mirrors and repositories"
msgstr "Espelhos e repositórios"
msgid "Selected mirror regions"
msgstr "Regiões de espelhos selecionadas"
msgid "Custom servers"
msgstr "Servidores personalizados"
msgid "Custom repositories"
msgstr "Repositórios personalizados"
msgid "Only ASCII characters are supported"
msgstr "Apenas caracteres ASCII são suportados"
msgid "Show help"
msgstr "Mostrar ajuda"
msgid "Exit help"
msgstr "Sair da ajuda"
msgid "Preview scroll up"
msgstr "Rolar visualização para cima"
msgid "Preview scroll down"
msgstr "Rolar visualização para baixo"
msgid "Move up"
msgstr "Mover para cima"
msgid "Move down"
msgstr "Mover para baixo"
msgid "Move right"
msgstr "Mover para a direita"
msgid "Move left"
msgstr "Mover para a esquerda"
msgid "Jump to entry"
msgstr "Ir para entrada"
msgid "Skip selection (if available)"
msgstr "Ignorar seleção (se disponível)"
msgid "Reset selection (if available)"
msgstr "Repor seleção (se disponível)"
msgid "Select on single select"
msgstr "Selecionar em escolha única"
msgid "Select on multi select"
msgstr "Selecionar em múltipla escolha"
msgid "Reset"
msgstr "Repor"
msgid "Skip selection menu"
msgstr "Ignorar menu de seleção"
msgid "Start search mode"
msgstr "Iniciar modo de pesquisa"
msgid "Exit search mode"
msgstr "Sair do modo de pesquisa"
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "O labwc precisa de acesso ao seu seat (conjunto de dispositivos de hardware, como teclado, rato etc.)"
msgid "Choose an option to give labwc access to your hardware"
msgstr "Escolha uma opção para conceder ao labwc acesso ao seu hardware"
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "O niri precisa de acesso ao seu seat (conjunto de dispositivos de hardware, como teclado, rato etc.)"
msgid "Choose an option to give niri access to your hardware"
msgstr "Escolha uma opção para conceder ao niri acesso ao seu hardware"
msgid "Mark/Unmark as ESP"
msgstr "Marcar/Desmarcar como ESP"
msgid "Package group:"
msgstr "Grupo de pacotes:"
msgid "Exit archinstall"
msgstr "Sair do archinstall"
msgid "Reboot system"
msgstr "Reiniciar sistema"
msgid "chroot into installation for post-installation configurations"
msgstr "Entrar em chroot na instalação para configurações pós-instalação"
msgid "Installation completed"
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 \"{}\""
msgid "Incorrect credentials file decryption password"
msgstr "Palavra-passe incorreta para desencriptar o ficheiro de credenciais"
msgid "Incorrect password"
msgstr "Palavra-passe incorreta"
msgid "Credentials file decryption password"
msgstr "Palavra-passe para desencriptar o ficheiro de credenciais"
msgid "Do you want to encrypt the user_credentials.json file?"
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: {}"
msgid "New version available"
msgstr "Nova versão disponível"
msgid "Passwordless login"
msgstr "Autenticação sem palavra-passe"
msgid "Second factor login"
msgstr "Início de sessão com segundo fator"
msgid "Bluetooth"
msgstr "Bluetooth"
msgid "Would you like to configure Bluetooth?"
msgstr "Pretende configurar o Bluetooth?"
msgid "Print service"
msgstr ""
#, fuzzy
msgid "Would you like to configure the print service?"
msgstr "Pretende configurar o Bluetooth?"
#, fuzzy
msgid "Power management"
msgstr "Gestão de partições: {}"
msgid "Authentication"
msgstr "Autenticação"
msgid "Applications"
msgstr "Aplicacões"
msgid "U2F login method: "
msgstr "Método de login U2F:"
msgid "Passwordless sudo: "
msgstr "Sudo sem palavra-passe:"
#, python-brace-format
msgid "Btrfs snapshot type: {}"
msgstr "Tipo de snapshot Btrfs: {}"
msgid "Syncing the system..."
msgstr "A sincronizar o sistema…"
msgid "Value cannot be empty"
msgstr "O valor não pode estar vazio"
msgid "Snapshot type"
msgstr "Tipo de snapshot"
#, python-brace-format
msgid "Snapshot type: {}"
msgstr "Tipo de snapshot: {}"
msgid "U2F login setup"
msgstr "Configuração do início de sessão U2F"
msgid "No U2F devices found"
msgstr "Não foram encontrados dispositivos U2F"
msgid "U2F Login Method"
msgstr "Método de início de sessão U2F"
msgid "Enable passwordless sudo?"
msgstr "Ativar sudo sem palavra-passe?"
#, python-brace-format
msgid "Setting up U2F device for user: {}"
msgstr "A configurar o dispositivo U2F para o utilizador: {}"
msgid "You may need to enter the PIN and then touch your U2F device to register it"
msgstr ""
msgid "Starting device modifications in "
msgstr ""
msgid "No network connection found"
msgstr "Não foi encontrada nenhuma ligação de rede"
msgid "Would you like to connect to a Wifi?"
msgstr "Pretende ligar-se a uma rede Wi-Fi?"
msgid "No wifi interface found"
msgstr "Não foi encontrada nenhuma interface Wi-Fi"
msgid "Select wifi network to connect to"
msgstr "Selecionar a rede Wi-Fi à qual ligar"
msgid "Scanning wifi networks..."
msgstr ""
msgid "No wifi networks found"
msgstr "Não foram encontradas redes Wi-Fi"
msgid "Failed setting up wifi"
msgstr ""
msgid "Enter wifi password"
msgstr "Introduza a palavra-passe da rede Wi-Fi"
msgid "Ok"
msgstr ""
msgid "Removable"
msgstr ""
msgid "Install to removable location"
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr ""
msgid "Will install to standard location with NVRAM entry"
msgstr ""
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr ""
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr ""
msgid "USB drives or other portable external media."
msgstr ""
msgid "Systems where you want the disk to be bootable on any computer."
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr ""
msgid "Will install to custom location with NVRAM entry"
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr ""
msgid "most Apple Macs, many laptops..."
msgstr ""
#, fuzzy
msgid "Language"
msgstr "Idioma de localização"
msgid "Compression algorithm"
msgstr ""
#, fuzzy
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Apenas pacotes como base, base-devel, linux, linux-firmware, efibootmgr e pacotes opcionais de perfil são instalados."
#, fuzzy
msgid "Select zram compression algorithm:"
msgstr "Selecionar um ponto de montagem :"
msgid "Use Network Manager (default backend)"
msgstr ""
msgid "Use Network Manager (iwd backend)"
msgstr ""
================================================
FILE: archinstall/locales/pt_BR/LC_MESSAGES/base.po
================================================
# Translators:
# @Cain-dev (cain-dev.github.io)
# Rafael Fontenelle
# Jefferson Michael
# Diogo Silva
# Mário Victor Ribeiro Silva
# Rafael Fontenelle , 2023.
# Luis Antonio
# Luiz Felipe , 2025.
msgid ""
msgstr ""
"Project-Id-Version: archinstall\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2026-02-10 09:26-0300\n"
"Last-Translator: Mário Victor Ribeiro Silva \n"
"Language-Team: \n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 3.8\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] Um arquivo de registro foi criado aqui: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Por favor, envie este problema (e o arquivo) para: https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "Tem certeza de que deseja abortar?"
msgid "And one more time for verification: "
msgstr "Digite novamente para confirmação: "
msgid "Would you like to use swap on zram?"
msgstr "Deseja usar zram como swap?"
msgid "Desired hostname for the installation: "
msgstr "Nome do computador (hostname) desejado para a instalação: "
msgid "Username for required superuser with sudo privileges: "
msgstr "Nome de usuário para a conta administrativa (sudo): "
msgid "Any additional users to install (leave blank for no users): "
msgstr "Criar usuários adicionais (deixe em branco para nenhum): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "Este usuário deve ter previlégios de administrador? (sudo)?"
msgid "Select a timezone"
msgstr "Selecione o fuso horário"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "Deseja usar o GRUB como bootloader em vez do systemd-boot?"
msgid "Choose a bootloader"
msgstr "Escolha um bootloader"
msgid "Choose an audio server"
msgstr "Escolha um servidor de áudio"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Apenas pacotes como base, base-devel, linux, linux-firmware, efibootmgr e pacotes opcionais de perfil são instalados."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr "Observação: o pacote base-devel não é mais instalado por padrão. Adicione-o aqui se precisar de ferramentas de compilação."
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "Se quiser um navegador web, como Firefox ou Chromium, especifique-o no próximo prompt."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "Digite pacotes adicionais para instalar (separados por espaço, deixe em branco para pular): "
msgid "Copy ISO network configuration to installation"
msgstr "Copiar a configuração de rede da ISO para a instalação"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "Usar NetworkManager (necessário para configurar internet graficamente no GNOME e KDE)"
msgid "Select one network interface to configure"
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): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "Digite o IP do gateway (roteador) ou deixe em branco para nenhum: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "Digite os servidores DNS (separados por espaço, deixe em branco para nenhum): "
msgid "Select which filesystem your main partition should use"
msgstr "Selecione qual sistema de arquivos a partição principal deverá usar"
msgid "Current partition layout"
msgstr "Layout de partições atual"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"Selecione o que fazer com\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "Digite o tipo de sistema de arquivos desejado para a partição"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "Digite o local inicial (em unidades do parted: s, GB, %, etc. ; padrão: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "Digite o local final (em unidades do parted: s, GB, %, etc. ; exemplo: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} contém partições na fila; isso irá removê‑las. Tem certeza?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"Selecione por índice quais partições deletar"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"Selecione por índice quais partições montar em"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * Os pontos de montagem são relativos ao sistema instalado; por exemplo, boot fica em /boot."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "Selecione onde montar a partição (deixe em branco para remover o ponto de montagem): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"Selecione qual partição mascarar para formatar"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"Selecione qual partição marcar como encriptada"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"Selecione qual partição marcar como inicializável"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"Selecione qual partição definir um sistema de arquivos"
msgid "Enter a desired filesystem type for the partition: "
msgstr "Insira o tipo de sistema de arquivos desejado para a partição: "
msgid "Archinstall language"
msgstr "Idioma do Archinstall"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "Apagar todos os discos selecionados e usar um esquema de partições padrão de melhor desempenho"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "Selecione o que fazer com cada disco individual (seguido de uso da partição)"
msgid "Select what you wish to do with the selected block devices"
msgstr "Selecione o que deseja fazer com os dispositivos de bloco selecionados"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "Esta é uma lista de perfis pré-programados, que podem por exemplo facilitar a instalação de ambientes gráficos"
msgid "Select keyboard layout"
msgstr "Selecione o layout de teclado"
msgid "Select one of the regions to download packages from"
msgstr "Selecione uma das regiões para baixar os pacotes"
msgid "Select one or more hard drives to use and configure"
msgstr "Selecione um ou mais discos rígidos para usar e configurar"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "Para melhor compatibilidade com seu hardware AMD, recomenda-se usar a opção totalmente open source ou as opções AMD / ATI."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "Para melhor compatibilidade com seu hardware Intel, recomenda-se usar a opção totalmente open source ou as opções Intel.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "Para melhor compatibilidade com seu hardware Nvidia, recomenda-se usar o driver proprietário da Nvidia.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Selecione um driver de vídeo ou deixe em branco para instalar os drivers completamente open-source"
msgid "All open-source (default)"
msgstr "Tudo open-source (padrão)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "Escolhe quais kernels usar ou deixe em branco para o kernel padrão \"{}\""
msgid "Choose which locale language to use"
msgstr "Escolha qual idioma de localização usar"
msgid "Choose which locale encoding to use"
msgstr "Escolha qual codificação de localização usar"
msgid "Select one of the values shown below: "
msgstr "Selecione uma dos valores mostrados abaixo: "
msgid "Select one or more of the options below: "
msgstr "Selecione uma ou mais das opções abaixo: "
msgid "Adding partition...."
msgstr "Adicionando partição...."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "Você precisa definir um tipo de sistema de arquivo válido. Consulte o `man parted` para verificar os tipos de sistemas de arquivo válido."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "Erro: Listando os perfis em URL \"{}\" resulta em:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "Erro: Não foi possível decodificar \"{}\" como JSON:"
msgid "Keyboard layout"
msgstr "Layout do teclado"
msgid "Mirror region"
msgstr "Região do mirror"
msgid "Locale language"
msgstr "Idioma de localização"
msgid "Locale encoding"
msgstr "Codificação de localização"
msgid "Drive(s)"
msgstr "Unidades de armazenamento"
msgid "Disk layout"
msgstr "Layout da unidade"
msgid "Encryption password"
msgstr "Senha de encriptação"
msgid "Swap"
msgstr "Swap"
msgid "Bootloader"
msgstr "Inicializador"
msgid "Root password"
msgstr "Senha de root"
msgid "Superuser account"
msgstr "Conta de superusuário"
msgid "User account"
msgstr "Conta de usuário"
msgid "Profile"
msgstr "Perfil"
msgid "Audio"
msgstr "Áudio"
msgid "Kernels"
msgstr "Kernels"
msgid "Additional packages"
msgstr "Pacotes adicionais"
msgid "Network configuration"
msgstr "Configuração de rede"
msgid "Automatic time sync (NTP)"
msgstr "Sincronização automática de tempo (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "Instalar ({} configuração(s) em falta)"
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 ""
"Você decidiu ignorar a seleção de disco rígido\n"
"e usar qualquer configuração de disco rígido montada em {} (experimental)\n"
"ATENÇÃO: O Archinstall não verifica a viabilidade desta configuração\n"
"Deseja continuar?"
msgid "Re-using partition instance: {}"
msgstr "Reutilizando a instância da partição: {}"
msgid "Create a new partition"
msgstr "Criar uma nova partição"
msgid "Delete a partition"
msgstr "Deletar uma partição"
msgid "Clear/Delete all partitions"
msgstr "Limpar/Deletar todas as partições"
msgid "Assign mount-point for a partition"
msgstr "Atribuir um ponto de montagem para uma partição"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "Marcar/Desmarcar uma partição para ser formatada (apaga os dados)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "Marcar/Desmarcar uma partição como encriptada"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "Marcar/Desmarcar uma partição como inicializável (automática para /boot)"
msgid "Set desired filesystem for a partition"
msgstr "Definir o sistema de arquivos desejado para uma partição"
msgid "Abort"
msgstr "Cancelar"
msgid "Hostname"
msgstr "Nome do computador (hostname)"
msgid "Not configured, unavailable unless setup manually"
msgstr "Não configurado, indisponível a não ser que seja configurado manualmente"
msgid "Timezone"
msgstr "Fuso horário"
msgid "Set/Modify the below options"
msgstr "Definir/Modificar as opções abaixo"
msgid "Install"
msgstr "Instalar"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"Use ESC para pular\n"
"\n"
msgid "Suggest partition layout"
msgstr "Sugerir esquema de partição"
msgid "Enter a password: "
msgstr "Digite uma senha: "
msgid "Enter a encryption password for {}"
msgstr "Digite uma senha de encriptação para {}"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "Digite a senha de encriptação do disco (deixe em branco para não encriptar): "
msgid "Create a required super-user with sudo privileges: "
msgstr "Criar um superusuário requerido com privilégios de sudo: "
msgid "Enter root password (leave blank to disable root): "
msgstr "Digite uma senha de root (deixe em branco para desativar root): "
msgid "Password for user \"{}\": "
msgstr "Senha para o usuário \"{}\": "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "Verificando se existem pacotes adicionais (isto pode demorar alguns segundos)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "Deseja usar sincronização de tempo automática (NTP) com os servidores de tempo padrão?\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 ""
"A hora de hardware e outros passos de pós-configuração podem ser necessários para que o NTP funcione.\n"
"Para mais informações, por favor visite a wiki do Arch"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "Digite um nome de usuário para criar um usuário adicional (deixe em branco para pular): "
msgid "Use ESC to skip\n"
msgstr "Use ESC para pular\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
" Escolha um objeto da lista, e selecione uma das ações disponíveis para executar"
msgid "Cancel"
msgstr "Cancelar"
msgid "Confirm and exit"
msgstr "Confirmar e sair"
msgid "Add"
msgstr "Adicionar"
msgid "Copy"
msgstr "Copiar"
msgid "Edit"
msgstr "Editar"
msgid "Delete"
msgstr "Deletar"
msgid "Select an action for '{}'"
msgstr "Selecione uma ação para '{}'"
msgid "Copy to new key:"
msgstr "Copiar para nova chave:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "Tipo de NIC desconhecido: {}. Possíveis valores são {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"Esta é a configuração escolhida escolhida por você:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "O Pacman já está em execução, aguarde no máximo até 10 minutos para terminar."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "A trava pré-existente do Pacman não terminou. Por favor, limpe as sessões de pacman existentes antes de usar o archinstall."
msgid "Choose which optional additional repositories to enable"
msgstr "Escolha quais repositórios adicionais opcionais ativar"
msgid "Add a user"
msgstr "Adicionar usuário"
msgid "Change password"
msgstr "Mudar senha"
msgid "Promote/Demote user"
msgstr "Promover/Rebaixar usuário"
msgid "Delete User"
msgstr "Deletar usuário"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"Definir um novo usuário\n"
msgid "User Name : "
msgstr "Nome de usuário : "
msgid "Should {} be a superuser (sudoer)?"
msgstr "{} deve ser um superusuário (sudoer)?"
msgid "Define users with sudo privilege: "
msgstr "Defina usuários com privilégio sudo: "
msgid "No network configuration"
msgstr "Nenhuma configuração de rede"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Definir subvolumes desejados numa partição btrfs"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"Selecione em qual partição definir subvolumes"
msgid "Manage btrfs subvolumes for current partition"
msgstr "Administrar subvolumes btrfs para a partição atual"
msgid "No configuration"
msgstr "Nenhuma configuração"
msgid "Save user configuration"
msgstr "Salvar configuração de usuário"
msgid "Save user credentials"
msgstr "Salvar credenciais de usuário"
msgid "Save disk layout"
msgstr "Salvar layout de disco"
msgid "Save all"
msgstr "Salvar tudo"
msgid "Choose which configuration to save"
msgstr "Escolha qual configuração salvar"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "Digite um diretório para as configurações serem salvas: "
msgid "Not a valid directory: {}"
msgstr "Não é um diretório válido: {}"
msgid "The password you are using seems to be weak,"
msgstr "A senha que está usando parece ser fraca,"
msgid "are you sure you want to use it?"
msgstr "tem certeza que deseja usá-la?"
msgid "Optional repositories"
msgstr "Repositórios opcionais"
msgid "Save configuration"
msgstr "Salvar configuração"
msgid "Missing configurations:\n"
msgstr "Configurações em falta:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "Deve se especificar uma senha de root ou pelo menos 1 superusuário"
msgid "Manage superuser accounts: "
msgstr "Administrar contas de superusuário: "
msgid "Manage ordinary user accounts: "
msgstr "Administrar contas de usuário padrão: "
msgid " Subvolume :{:16}"
msgstr " Subvolume :{:16}"
msgid " mounted at {:16}"
msgstr " montado em {:16}"
msgid " with option {}"
msgstr " com opção {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
" Preencha os valores desejados para um novo subvolume \n"
msgid "Subvolume name "
msgstr "Nome do subvolume "
msgid "Subvolume mountpoint"
msgstr "Ponto de montagem do subvolume"
msgid "Subvolume options"
msgstr "Opções do subvolume"
msgid "Save"
msgstr "Salvar"
msgid "Subvolume name :"
msgstr "Nome do subvolume :"
msgid "Select a mount point :"
msgstr "Selecione um ponto de montagem :"
msgid "Select the desired subvolume options "
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: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "Deseja usar subvolumes BTRFS com a estrutura padrão?"
msgid "Would you like to use BTRFS compression?"
msgstr "Deseja usar a compressão BTRFS?"
msgid "Would you like to create a separate partition for /home?"
msgstr "Deseja criar uma partição separada para /home?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "As unidades selecionadas não tem a capacidade mínima para sugestão automática\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "Capacidade mínima para partição /home : {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Capacidade mínima para a partição do Arch Linux: {}GB"
msgid "Continue"
msgstr "Continuar"
msgid "yes"
msgstr "sim"
msgid "no"
msgstr "não"
msgid "set: {}"
msgstr "definir: {}"
msgid "Manual configuration setting must be a list"
msgstr "O ajuste de configuração manual deve ser em lista"
msgid "No iface specified for manual configuration"
msgstr "Nenhum iface especificado para configuração manual"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "A configuração manual de NIC sem DHCP automático requer um endereço IP"
msgid "Add interface"
msgstr "Adicionar interface"
msgid "Edit interface"
msgstr "Editar interface"
msgid "Delete interface"
msgstr "Deletar interface"
msgid "Select interface to add"
msgstr "Selecione interface para adicionar"
msgid "Manual configuration"
msgstr "Configuração manual"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "Marcar/desmarcar a partição como comprimida (apenas btrfs)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "A senha que você está usando parece ser fraca, tem certeza que deseja utilizá-la?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "Proporciona uma seleção de ambientes gráficos e gerenciadores de janela como por exemplo gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "Selecione o ambiente gráfico desejado"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "Uma instalação bem básica que permite a você customizar o Arch Linux como desejar."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "Proporciona uma seleção de diversos pacotes de servidor para instalar e habilitar como por exemplo httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "Selecione quais servidores instalar, se há nenhum uma instalação mínima será feita"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "Instala um sistema mínimo assim como xorg e drivers de vídeo."
msgid "Press Enter to continue."
msgstr "Tecle Enter para continuar."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "Deseja fazer chroot para a nova instalação e realizar configurações pós-instalação?"
msgid "Are you sure you want to reset this setting?"
msgstr "Tem certeza que desejar redefinir essa configuração?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "Selecione uma ou mais unidades para usar e configurar\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "Quaisquer modificações para configurações existentes vão redefinir o layout de disco!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "Se você redefinir a seleção de unidades isso também redefinirá o layout da unidade atual. Tem certeza?"
msgid "Save and exit"
msgstr "Salvar e sair"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"contém partições enfileiradas, isso irá removê-las, tem certeza?"
msgid "No audio server"
msgstr "Sem servidor de áudio"
msgid "(default)"
msgstr "(padrão)"
msgid "Use ESC to skip"
msgstr "Use ESC para pular"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"Use CTRL+C para redefinir a seleção atual\n"
"\n"
msgid "Copy to: "
msgstr "Copiar para: "
msgid "Edit: "
msgstr "Editar: "
msgid "Key: "
msgstr "Chave: "
msgid "Edit {}: "
msgstr "Editar {}: "
msgid "Add: "
msgstr "Adicionar: "
msgid "Value: "
msgstr "Valor: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "Você pode ignorar a seleção de unidade e particionar seja lá o que estiver montado em /mnt (experimental)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "Selecione um dos discos ou ignore e use /mnt como padrão"
msgid "Select which partitions to mark for formatting:"
msgstr "Selecione quais partições marcar para formatar:"
msgid "Use HSM to unlock encrypted drive"
msgstr "Usar HSM para desbloquear unidade encriptada"
msgid "Device"
msgstr "Dispositivo"
msgid "Size"
msgstr "Tamanho"
msgid "Free space"
msgstr "Espaço livre"
msgid "Bus-type"
msgstr "Tipo de barramento"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "Deve-se especificar uma senha de root ou pelo menos 1 usuário com privilégios de sudo"
msgid "Enter username (leave blank to skip): "
msgstr "Digite um nome de usuário (deixe em branco para pular): "
msgid "The username you entered is invalid. Try again"
msgstr "O nome de usuário que você digitou é inválido. Tente novamente"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "\"{}\" deve ser um superusuário (sudo)?"
msgid "Select which partitions to encrypt"
msgstr "Selecione quais partições encriptar"
msgid "very weak"
msgstr "muito fraca"
msgid "weak"
msgstr "fraca"
msgid "moderate"
msgstr "moderada"
msgid "strong"
msgstr "forte"
msgid "Add subvolume"
msgstr "Adicionar subvolume"
msgid "Edit subvolume"
msgstr "Editar subvolume"
msgid "Delete subvolume"
msgstr "Deletar subvolume"
msgid "Configured {} interfaces"
msgstr "{} interfaces configuradas"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "Esta opção habilita o número de downloads paralelos que podem ocorrer durante a instalação"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"Insira o número de downloads paralelos para serem habilitados.\n"
" (Insira um valor entre 1 e {})\n"
"Observação:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - Valor máximo : {} ( Permite {} downloads paralelos, permite {} downloads por vez )"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - Valor mínimo : 1 ( Permite 1 download paralelo, permite 2 downloads por vez )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - Desativar/Padrão : 0 ( Desativa os downloads paralelos, permite apenas 1 download por vez )"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "Entrada inválida! Tente novamente com uma entrada válida [1 para {max_downloads}, ou 0 para desativar]"
msgid "Parallel Downloads"
msgstr "Downloads Paralelos"
msgid "ESC to skip"
msgstr "ESC para sair"
msgid "CTRL+C to reset"
msgstr "CTRL+C para reiniciar"
msgid "TAB to select"
msgstr "TAB para selecionar"
msgid "[Default value: 0] > "
msgstr "[Valor padrão: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "Para poder usar esta tradução, instale manualmente uma fonte que suporte o idioma."
msgid "The font should be stored as {}"
msgstr "A fonte deve ser armazenada como {}"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "O Archinstall requer privilégios de root para ser executado. Consulte --help para mais informações."
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: {}"
msgid "Select one or more devices to use and configure"
msgstr "Selecione um ou mais dispositivos para usar e configurar"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "Se você redefinir a seleção de dispositivo isso também redefinirá o layout do dispositivo atual. Tem certeza?"
msgid "Existing Partitions"
msgstr "Partições existentes"
msgid "Select a partitioning option"
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"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "Esta é uma lista de perfis pré-programados, que podem por exemplo facilitar a instalação de ambientes gráficos"
msgid "Current profile selection"
msgstr "Seleção de perfil atual"
msgid "Remove all newly added partitions"
msgstr "Remova todas as partições recém-adicionadas"
msgid "Assign mountpoint"
msgstr "Atribuir um ponto de montagem"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "Marcar/Desmarcar para ser formatada (apaga os dados)"
msgid "Mark/Unmark as bootable"
msgstr "Marcar/desmarcar como inicializável"
msgid "Change filesystem"
msgstr "Mudar arquivo do sistema"
msgid "Mark/Unmark as compressed"
msgstr "Marcar/desmarcar como comprimida (apenas btrfs)"
msgid "Set subvolumes"
msgstr "Definir subvolumes"
msgid "Delete partition"
msgstr "Deletar partição"
msgid "Partition"
msgstr "Partição"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "Esta partição está criptografada. Para formatá-la, um sistema de arquivos deve ser especificado"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "Os pontos de montagem das partições são relativos aos de dentro da instalação, boot por exemplo seria /boot."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "Se o ponto de montagem /boot for definido, a partição também será marcada como inicializável."
msgid "Mountpoint: "
msgstr "Ponto de montagem: "
msgid "Current free sectors on device {}:"
msgstr "Setores livres no dispositivo {}:"
msgid "Total sectors: {}"
msgstr "Total de setores: {}"
msgid "Enter the start sector (default: {}): "
msgstr "Digite o setor de início (padrão: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
msgstr "Digite o setor final da partição (porcentagem ou número de bloco, padrão: {}): "
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: {}"
msgid "Encryption type"
msgstr "Tipo de encriptação"
msgid "Iteration time"
msgstr "Tempo de iteração"
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr "Insira o tempo de iteração para a criptografia LUKS (em milissegundos)"
msgid "Higher values increase security but slow down boot time"
msgstr "Valores mais altos aumentam a segurança, mas tornam o tempo de inicialização mais lento"
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr "Valor padrão: 10000 ms, intervalo recomendado: 1000-60000"
msgid "Iteration time cannot be empty"
msgstr "O tempo de iteração não pode ser vazio"
msgid "Iteration time must be at least 100ms"
msgstr "O tempo de iteração deve ser de pelo menos 100ms"
msgid "Iteration time must be at most 120000ms"
msgstr "O tempo de iteração deve ser de no máximo 120000ms"
msgid "Please enter a valid number"
msgstr "Por favor, insira um número válido"
msgid "Partitions"
msgstr "Partições"
msgid "No HSM devices available"
msgstr "Nenhum dispositivo HSM disponível"
msgid "Partitions to be encrypted"
msgstr "Partições a serem encriptadas"
msgid "Select disk encryption option"
msgstr "Selecione a opção de encriptação de disco"
msgid "Select a FIDO2 device to use for HSM"
msgstr "Selecione um dispositivo FIDO2 para usar como HSM"
msgid "Use a best-effort default partition layout"
msgstr "Usar um esquema de partições padrão de melhor desempenho"
msgid "Manual Partitioning"
msgstr "Particionamento manual"
msgid "Pre-mounted configuration"
msgstr "Configuração pré-montada"
msgid "Unknown"
msgstr "Desconhecido"
msgid "Partition encryption"
msgstr "Encriptação de partição"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! Formatando {} em "
msgid "← Back"
msgstr "← Voltar"
msgid "Disk encryption"
msgstr "Encriptação de disco"
msgid "Configuration"
msgstr "Configuração"
msgid "Password"
msgstr "Senha"
msgid "All settings will be reset, are you sure?"
msgstr "Todas as configurações serão redefinidas, tem certeza?"
msgid "Back"
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: {}"
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 "O driver proprietário Nvidia não é suportado pelo Sway. É provável que você encontre problemas. Você está de acordo com isso?"
msgid "Installed packages"
msgstr "Pacotes instalados"
msgid "Add profile"
msgstr "Adicionar perfil"
msgid "Edit profile"
msgstr "Editar perfil"
msgid "Delete profile"
msgstr "Deletar perfil"
msgid "Profile name: "
msgstr "Nome do perfil: "
msgid "The profile name you entered is already in use. Try again"
msgstr "O nome do perfil que você digitou já esta em uso. Tente novamente"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "Pacotes a serem instalados com este perfil (separados por espaço, deixe em branco para pular): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "Serviços a serem ativados com este perfil (separados por espaço, deixe em branco para pular): "
msgid "Should this profile be enabled for installation?"
msgstr "Este perfil deve ser ativado para instalação?"
msgid "Create your own"
msgstr "Crie o seu próprio"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Selecione um driver gráfico ou deixe em branco para instalar todos os drivers de código aberto"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "O Sway precisa de acesso ao seu seat (conjunto de dispositivos de hardware, como teclado, mouse, etc)"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Selecione uma opção para permitir o acesso do Sway ao seu hardware"
msgid "Graphics driver"
msgstr "Driver gráfico"
msgid "Greeter"
msgstr "Greeter"
msgid "Please chose which greeter to install"
msgstr "Por favor, escolha qual greeter instalar"
msgid "This is a list of pre-programmed default_profiles"
msgstr "Esta é uma lista de perfis pré-programados (default_profiles)"
msgid "Disk configuration"
msgstr "Configuração do disco"
msgid "Profiles"
msgstr "Perfis"
msgid "Finding possible directories to save configuration files ..."
msgstr "Procurando possiveis diretórios para salvar os arquivos de configuração ..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "Selecione um ou mais diretórios para salvar arquivos de configuração"
msgid "Add a custom mirror"
msgstr "Adicionar mirror personalizado"
msgid "Change custom mirror"
msgstr "Alterar mirror personalizado"
msgid "Delete custom mirror"
msgstr "Excluir mirror personalizado"
msgid "Enter name (leave blank to skip): "
msgstr "Digite o nome (deixe em branco para pular): "
msgid "Enter url (leave blank to skip): "
msgstr "Digite a url (deixe em branco para pular): "
msgid "Select signature check option"
msgstr "Selecione uma opção de verificação de assinatura"
msgid "Select signature option"
msgstr "Selecione uma opção de assinatura"
msgid "Custom mirrors"
msgstr "Mirrors personalizados"
msgid "Defined"
msgstr "Definido"
msgid "Save user configuration (including disk layout)"
msgstr "Salvar configuração de usuário (incluindo layout do disco)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"Digite um diretório para as configurações serem salvas (completamento de tab ativado): \n"
"Salvar diretório: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"Você deseja salvar arquivo(s) de configuração de {} nos locais a seguir?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "Salvando arquivos de configuração de {} para {}"
msgid "Mirrors"
msgstr "Mirrors"
msgid "Mirror regions"
msgstr "Regiões dos mirrors"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - Valor máximo : {} ( Permite {} downloads paralelos, permite {max_downloads+1} downloads por vez )"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "Entrada inválida! Tente novamente com uma entrada válida [1 para {}, ou 0 para desativar]"
msgid "Locales"
msgstr "Localidades"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "Usar NetworkManager (necessário para configurar internet graficamente no GNOME e KDE)"
msgid "Total: {} / {}"
msgstr "Total: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "Todos os valores inseridos podem ser seguidos por uma unidade: B, KB, KiB, MB, MiB..."
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "Se nenhuma unidade for fornecida, o valor será interpretado como setores"
msgid "Enter start (default: sector {}): "
msgstr "Digite o início (padrão: setor {}): "
msgid "Enter end (default: {}): "
msgstr "Digite fim (padrão: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "Incapaz de determinar dispositivos FIDO2. O libfido2 está instalado?"
msgid "Path"
msgstr "Caminho"
msgid "Manufacturer"
msgstr "Fabricante"
msgid "Product"
msgstr "Produto"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "Configuração inválida: {error}"
msgid "Type"
msgstr "Tipo"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "Esta opção habilita o número de downloads paralelos que podem ocorrer durante os downloads de pacotes"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"Insira o número de downloads paralelos para serem habilitados.\n"
"\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 )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - Desativar/Padrão : 0 ( Desativa os downloads paralelos, permite apenas 1 download por vez )\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "Entrada inválida! Tente novamente com uma entrada válida [ou 0 para desativar]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "O Hyprland precisa de acesso ao seu seat (conjunto de dispositivos de hardware, como teclado, mouse, etc)"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Selecione uma opção para permitir o acesso do Hyprland ao seu hardware"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "Todos os valores inseridos podem ser seguidos por uma unidade: B, KB, KiB, MB, MiB..."
msgid "Would you like to use unified kernel images?"
msgstr "Deseja usar imagens de kernel unificados?"
msgid "Unified kernel images"
msgstr "Imagens de kernel unificados"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "Aguardando a sincronização do fuso horário (timedatectl show) ser concluida."
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Sincronização de fuso horário não concluída, enquanto você espera - confira a documentação para soluções alternativas: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "Pulando a espera pela sincronização automática de fuso horário (isso pode causar problemas se o fuso horário estiver desincronizado durante a instalação)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "Aguardando a sincronização do Arch Linux Keyring (archlinux-keyring-wkd-sync) ser concluída."
msgid "Selected profiles: "
msgstr "Perfis selecionados: "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Sincronização de fuso horário não concluída, enquanto você espera - confira a documentação para soluções alternativas: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "Marcar/desmarcar como nodatacow"
msgid "Would you like to use compression or disable CoW?"
msgstr "Você gostaria de usar compressão ou desativar a Cópia na Gravação?"
msgid "Use compression"
msgstr "Usar compressão"
msgid "Disable Copy-on-Write"
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: {}"
msgid "LVM configuration type"
msgstr "Tipo de configuração LVM"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "No momento, não há suporte para a criptografia de disco LVM com mais de duas partições"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "Usar NetworkManager (necessário para configurar internet graficamente no GNOME e KDE)"
msgid "Select a LVM option"
msgstr "Selecione uma opção de LVM (Gerenciador de Volume Logico)"
msgid "Partitioning"
msgstr "Particionamento"
msgid "Logical Volume Management (LVM)"
msgstr "Gerenciamento de Volume Lógico (LVM)"
msgid "Physical volumes"
msgstr "Volumes físicos"
msgid "Volumes"
msgstr "Volumes"
msgid "LVM volumes"
msgstr "Volumes LVM"
msgid "LVM volumes to be encrypted"
msgstr "Volumes LVM a serem encriptados"
msgid "Select which LVM volumes to encrypt"
msgstr "Selecione quais volumes LVM encriptar"
msgid "Default layout"
msgstr "Layout padrão"
msgid "No Encryption"
msgstr "Sem encriptação"
msgid "LUKS"
msgstr "LUKS"
msgid "LVM on LUKS"
msgstr "LVM em LUKS"
msgid "LUKS on LVM"
msgstr "LUKS em LVM"
msgid "Yes"
msgstr "Sim"
msgid "No"
msgstr "Não"
msgid "Archinstall help"
msgstr "Ajuda do archinstall"
msgid " (default)"
msgstr " (padrão)"
msgid "Press Ctrl+h for help"
msgstr "Pressione Ctrl+h para ajuda"
msgid "Choose an option to give Sway access to your hardware"
msgstr "Selecione uma opção para permitir o acesso do Sway ao seu hardware"
msgid "Seat access"
msgstr "Acesso ao seat"
msgid "Mountpoint"
msgstr "Ponto de montagem"
msgid "HSM"
msgstr "Dispositivo HSM"
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "Digite a senha de encriptação do disco (deixe em branco para não encriptar):"
msgid "Disk encryption password"
msgstr "Senha de encriptação do disco"
msgid "Partition - New"
msgstr "Partição - Nova"
msgid "Filesystem"
msgstr "Sistema de arquivos"
msgid "Invalid size"
msgstr "Tamanho inválido"
msgid "Start (default: sector {}): "
msgstr "Início (padrão: setor {}): "
msgid "End (default: {}): "
msgstr "Fim (padrão: {}): "
msgid "Subvolume name"
msgstr "Nome do subvolume"
msgid "Disk configuration type"
msgstr "Tipo de configuração do disco"
msgid "Root mount directory"
msgstr "Diretório de montagem root"
msgid "Select language"
msgstr "Selecione uma linguagem"
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "Digite pacotes adicionais para instalar (separados por espaço, deixe em branco para pular):"
msgid "Invalid download number"
msgstr "Número de download inválido"
msgid "Number downloads"
msgstr "Número de downloads"
msgid "The username you entered is invalid"
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"
msgid "Interfaces"
msgstr "Interfaces"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "Você precisa fornecer um IP válido no modo IP-config"
msgid "Modes"
msgstr "Modos"
msgid "IP address"
msgstr "Endereço IP"
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "Digite o seu IP de gateway (roteador) (deixe em branco para nenhum)"
msgid "Gateway address"
msgstr "Endereço Gateway"
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "Digite os servidores DNS, separados por espaço, (deixe em branco para nenhum):"
msgid "DNS servers"
msgstr "Servidores DNS"
msgid "Configure interfaces"
msgstr "Configurar interfaces"
msgid "Kernel"
msgstr "Kernel"
msgid "UEFI is not detected and some options are disabled"
msgstr "UEFI não foi detectado e algumas opções estão desabilitadas"
msgid "Info"
msgstr "Informação"
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "O driver proprietário Nvidia não é suportado pelo Sway."
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "É provável que você encontre problemas. Você está de acordo com isso?"
msgid "Main profile"
msgstr "Perfil principal"
msgid "Confirm password"
msgstr "Confirmar senha"
msgid "The confirmation password did not match, please try again"
msgstr "A senha de confirmação não correspondeu, por favor tente novamente"
msgid "Not a valid directory"
msgstr "Não é um diretório válido"
msgid "Would you like to continue?"
msgstr "Deseja continuar?"
msgid "Directory"
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 {}?"
msgid "Enabled"
msgstr "Habilitado"
msgid "Disabled"
msgstr "Desabilitado"
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr "Por favor, envie este problema (e o arquivo) para: https://github.com/archlinux/archinstall/issues"
msgid "Mirror name"
msgstr "Nome do Mirror"
msgid "Url"
msgstr "Url"
msgid "Select signature check"
msgstr "Selecione uma opção de verificação de assinatura"
msgid "Select execution mode"
msgstr "Selecione um modo de execução"
msgid "Press ? for help"
msgstr "Pressione ? para ajuda"
msgid "Choose an option to give Hyprland access to your hardware"
msgstr "Selecione uma opção para permitir que Hyprland acesse seu hardware"
msgid "Additional repositories"
msgstr "Repositórios adicionais"
msgid "NTP"
msgstr "NTP"
msgid "Swap on zram"
msgstr "Swap em zram"
msgid "Name"
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: {}): "
msgid "HSM device"
msgstr "Dispositivo HSM"
msgid "Some packages could not be found in the repository"
msgstr "Alguns pacotes não foram encontrados no repositório"
msgid "User"
msgstr "Usuário"
msgid "The specified configuration will be applied"
msgstr "A configuração especificada vai ser aplicada"
msgid "Wipe"
msgstr "Apagar"
msgid "Mark/Unmark as XBOOTLDR"
msgstr "Marcar/Desmarcar como XBOOTLDR"
msgid "Loading packages..."
msgstr "Carregando pacotes..."
msgid "Select any packages from the below list that should be installed additionally"
msgstr "Selecione na lista abaixo os pacotes que devem ser instalados adicionalmente"
msgid "Add a custom repository"
msgstr "Adicionar repositório personalizado"
msgid "Change custom repository"
msgstr "Alterar repositório personalizado"
msgid "Delete custom repository"
msgstr "Remover repositório personalizado"
msgid "Repository name"
msgstr "Nome do repositório"
msgid "Add a custom server"
msgstr "Adicionar servidor personalizado"
msgid "Change custom server"
msgstr "Alterar servidor personalizado"
msgid "Delete custom server"
msgstr "Remover servidor personalizado"
msgid "Server url"
msgstr "URL do servidor"
msgid "Select regions"
msgstr "Selecionar regiões"
msgid "Add custom servers"
msgstr "Adicionar servidores personalizados"
msgid "Add custom repository"
msgstr "Adicionar repositório personalizado"
msgid "Loading mirror regions..."
msgstr "Carregando regiões dos mirrors..."
msgid "Mirrors and repositories"
msgstr "Mirrors e repositórios"
msgid "Selected mirror regions"
msgstr "Regiões dos mirrors selecionadas"
msgid "Custom servers"
msgstr "Servidores personalizados"
msgid "Custom repositories"
msgstr "Repositórios personalizados"
msgid "Only ASCII characters are supported"
msgstr "Apenas caracteres ASCII são suportados"
msgid "Show help"
msgstr "Mostrar ajuda"
msgid "Exit help"
msgstr "Sair da ajuda"
msgid "Preview scroll up"
msgstr "Rolar visualização para cima"
msgid "Preview scroll down"
msgstr "Rolar visualização para baixo"
msgid "Move up"
msgstr "Mover para cima"
msgid "Move down"
msgstr "Mover para baixo"
msgid "Move right"
msgstr "Mover para a direita"
msgid "Move left"
msgstr "Mover para a esquerda"
msgid "Jump to entry"
msgstr "Ir para entrada"
msgid "Skip selection (if available)"
msgstr "Pular seleção (se disponível)"
msgid "Reset selection (if available)"
msgstr "Redefinir seleção (se disponível)"
msgid "Select on single select"
msgstr "Selecionar em escolha única"
msgid "Select on multi select"
msgstr "Selecionar em múltipla escolha"
msgid "Reset"
msgstr "Redefinir"
msgid "Skip selection menu"
msgstr "Pular menu de seleção"
msgid "Start search mode"
msgstr "Iniciar modo de busca"
msgid "Exit search mode"
msgstr "Sair do modo de busca"
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "labwc precisa de acesso ao seu seat (conjunto de dispositivos de hardware, como teclado, mouse etc.)"
msgid "Choose an option to give labwc access to your hardware"
msgstr "Escolha uma opção para conceder ao labwc acesso ao seu hardware"
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "niri precisa de acesso ao seu seat (conjunto de dispositivos de hardware, como teclado, mouse etc.)"
msgid "Choose an option to give niri access to your hardware"
msgstr "Escolha uma opção para conceder ao niri acesso ao seu hardware"
msgid "Mark/Unmark as ESP"
msgstr "Marcar/Desmarcar como ESP"
msgid "Package group:"
msgstr "Grupo de pacotes:"
msgid "Exit archinstall"
msgstr "Sair do archinstall"
msgid "Reboot system"
msgstr "Reiniciar o sistema"
msgid "chroot into installation for post-installation configurations"
msgstr "entrar em chroot na instalação para configurações pós-instalação"
msgid "Installation completed"
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 \"{}\""
msgid "Incorrect credentials file decryption password"
msgstr "Senha incorreta para descriptografar o arquivo de credenciais"
msgid "Incorrect password"
msgstr "Senha incorreta"
msgid "Credentials file decryption password"
msgstr "Senha para descriptografar o arquivo de credenciais"
msgid "Do you want to encrypt the user_credentials.json file?"
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: {}"
msgid "New version available"
msgstr "Nova versão disponível"
msgid "Passwordless login"
msgstr "Login sem senha"
msgid "Second factor login"
msgstr "Autenticação de dois fatores"
msgid "Bluetooth"
msgstr "Bluetooth"
msgid "Would you like to configure Bluetooth?"
msgstr "Deseja configurar o Bluetooth?"
msgid "Print service"
msgstr "Serviço de impressão"
msgid "Would you like to configure the print service?"
msgstr "Deseja configurar o serviço de impressão?"
msgid "Power management"
msgstr "Gerenciamento de energia"
msgid "Authentication"
msgstr "Autenticação"
msgid "Applications"
msgstr "Aplicativos"
msgid "U2F login method: "
msgstr "Método de login U2F: "
msgid "Passwordless sudo: "
msgstr "Sudo sem senha: "
#, python-brace-format
msgid "Btrfs snapshot type: {}"
msgstr "Tipo de snapshot Btrfs: {}"
msgid "Syncing the system..."
msgstr "Sincronizando o sistema..."
msgid "Value cannot be empty"
msgstr "Valor não pode estar vazio"
msgid "Snapshot type"
msgstr "Tipo de snapshot"
#, python-brace-format
msgid "Snapshot type: {}"
msgstr "Tipo de snapshot: {}"
msgid "U2F login setup"
msgstr "Configuração de login U2F"
msgid "No U2F devices found"
msgstr "Nenhum dispositivo U2F encontrado"
msgid "U2F Login Method"
msgstr "Método de login U2F"
msgid "Enable passwordless sudo?"
msgstr "Habilitar sudo sem senha?"
#, python-brace-format
msgid "Setting up U2F device for user: {}"
msgstr "Configurando dispositivo U2F para o usuário: {}"
msgid "You may need to enter the PIN and then touch your U2F device to register it"
msgstr "Talvez seja necessário inserir o PIN e, em seguida, tocar no seu dispositivo U2F para registrá-lo"
msgid "Starting device modifications in "
msgstr "Iniciando modificações no dispositivo em "
msgid "No network connection found"
msgstr "Nenhuma conexão de rede encontrada"
msgid "Would you like to connect to a Wifi?"
msgstr "Deseja se conectar a uma rede Wi-Fi?"
msgid "No wifi interface found"
msgstr "Nenhuma interface Wi-Fi encontrada"
msgid "Select wifi network to connect to"
msgstr "Selecione a rede Wi-Fi à qual deseja se conectar"
msgid "Scanning wifi networks..."
msgstr "Escaneando redes wifi..."
msgid "No wifi networks found"
msgstr "Nenhuma rede Wi-Fi encontrada"
msgid "Failed setting up wifi"
msgstr "Falha ao configurar o Wi-Fi"
msgid "Enter wifi password"
msgstr "Digite a senha do Wi-Fi"
msgid "Ok"
msgstr "Ok"
msgid "Removable"
msgstr "Removível"
msgid "Install to removable location"
msgstr "Instalar em local removível"
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr "Será instalado em /EFI/BOOT/ (local removível)"
msgid "Will install to standard location with NVRAM entry"
msgstr "Será instalado no local padrão com entrada na NVRAM"
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr "Você gostaria de instalar o bootloader no local padrão de busca de mídia removível?"
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr "Isso instala o bootloader em /EFI/BOOT/BOOTX64.EFI (ou similar), o que é útil para:"
msgid "USB drives or other portable external media."
msgstr "Pendrives USB ou outras mídias externas portáteis."
msgid "Systems where you want the disk to be bootable on any computer."
msgstr "Sistemas nos quais você deseja que o disco seja inicializável em qualquer computador."
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr "Firmware que não oferece suporte adequado a entradas de boot na NVRAM."
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr "Será instalado em /EFI/BOOT/ (local removível, padrão seguro)"
msgid "Will install to custom location with NVRAM entry"
msgstr "Será instalado em um local personalizado com entrada NVRAM"
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr "Firmware que não oferece suporte adequado a entradas de boot na NVRAM,"
msgid "most Apple Macs, many laptops..."
msgstr "a maioria dos Macs da Apple, muitos laptops..."
msgid "Language"
msgstr "Idioma"
msgid "Compression algorithm"
msgstr "Algorítimo de compressão"
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Apenas pacotes como base, base-devel, linux, linux-firmware, efibootmgr e pacotes opcionais de perfil são instalados."
msgid "Select zram compression algorithm:"
msgstr "Selecione o algoritmo de compressão zram:"
msgid "Use Network Manager (default backend)"
msgstr "Use o Network Manager (default backend)"
msgid "Use Network Manager (iwd backend)"
msgstr "Use o Network Manager (iwd backend)"
msgid "Firewall"
msgstr "Firewall"
msgid "Select audio configuration"
msgstr "Selecione a configuração de áudio"
msgid "Enter credentials file decryption password"
msgstr "Senha para descriptografar o arquivo de credenciais"
msgid "Enter root password"
msgstr "Digite uma senha do root"
msgid "Select bootloader to install"
msgstr "Selecione o bootloader para instalar"
msgid "Configuration preview"
msgstr "Pré-visualização da configuração"
msgid "Enter a directory for the configuration(s) to be saved"
msgstr "Digite um diretório para as configurações serem salvas"
msgid "Select encryption type"
msgstr "Selecione o tipo de criptografia"
msgid "Select disks for the installation"
msgstr "Selecione os discos para a instalação"
msgid "Enter a mountpoint"
msgstr "Selecione um ponto de montagem"
#, python-brace-format
msgid "Enter a size (default: {}): "
msgstr "Insira um tamanho (padrão: {}): "
msgid "Enter subvolume name"
msgstr "Insira o nome do subvolume"
msgid "Enter subvolume mountpoint"
msgstr "Insira o ponto de montagem do subvolume"
msgid "Select a disk configuration"
msgstr "Selecione uma configuração de disco"
msgid "Enter root mount directory"
msgstr "Digite o diretório de montagem raiz"
msgid "You will use whatever drive-setup is mounted at the specified directory"
msgstr "Você usará qualquer configuração de unidade que esteja montada no diretório especificado"
msgid "WARNING: Archinstall won't check the suitability of this setup"
msgstr "AVISO: O Archinstall não verificará a adequação desta configuração"
msgid "Select main filesystem"
msgstr "Selecione o sistema de arquivos principal"
msgid "Enter a hostname"
msgstr "Insira um nome de host"
msgid "Select timezone"
msgstr "Selecione o fuso horário"
msgid "Enter the number of parallel downloads to be enabled"
msgstr "Insira o número de downloads paralelos para serem habilitados"
#, python-brace-format
msgid "Value must be between 1 and {}"
msgstr "O valor deve estar entre 1 e {}"
msgid "Select which kernel(s) to install"
msgstr "Selecione qual(is) kernel(s) instalar"
msgid "Enter a respository name"
msgstr "Insira o nome do repositório"
msgid "Enter the repository url"
msgstr "Insira o URL do repositório"
msgid "Enter server url"
msgstr "Digite o URL do servidor"
msgid "Select mirror regions to be enabled"
msgstr "Selecione as regiões de espelhamento a serem ativadas"
msgid "Select optional repositories to be enabled"
msgstr "Selecione os repositórios opcionais que deseja ativar"
msgid "Select an interface"
msgstr "Selecione uma interface"
msgid "Choose network configuration"
msgstr "Escolha a configuração de rede"
msgid "No packages found"
msgstr "Nenhum pacote encontrado"
msgid "Select which greeter to install"
msgstr "Por favor, escolha qual greeter instalar"
msgid "Select a profile type"
msgstr "Selecione um tipo de perfil"
msgid "Enter new password"
msgstr "Digite a nova senha"
msgid "Enter a username"
msgstr "Insira um nome de usuário"
msgid "Enter a password"
msgstr "Digite uma senha"
msgid "The password did not match, please try again"
msgstr "A senha não corresponde. Tente novamente"
#~ 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: "
================================================
FILE: archinstall/locales/ro/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: andrewKode iancu.andrei312@gmail.com\n"
"Language-Team: \n"
"Language: ro\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.3.1\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] Un fișier jurnal a fost creat aici: {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Vă rog să raportați problema (și fișierul) la https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "Sunteți sigur(ă) că doriți să închideți?"
msgid "And one more time for verification: "
msgstr "Încă odată pentru verificare: "
msgid "Would you like to use swap on zram?"
msgstr "Doriți să folosiți swap pe zram?"
msgid "Desired hostname for the installation: "
msgstr "Hostname-ul dorit pentru instalare: "
msgid "Username for required superuser with sudo privileges: "
msgstr "Nume utilizator necesar pentru utilizatorul cu drepturi privilegiate: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "Alți utilizatori pentru adăugare (lăsați gol pentru niciunul): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "Acest utilizator ar trebui să aibă drepturi privilegiate (sudoer)?"
msgid "Select a timezone"
msgstr "Selectați un fus orar"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "Doriți să folosiți GRUB ca bootloader în locul systemd-boot?"
msgid "Choose a bootloader"
msgstr "Selectați un bootloader"
msgid "Choose an audio server"
msgstr "Selectați un server audio"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Doar pachetele precum base, base-devel, linux, linux-firmware, egibootmgr și cele opționale de profil sunt instalate."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr ""
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "Dacă doriți un browser, precum firefox sau chromium, puteți să-l specificați în promptul următor."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "Scrieți pachete adiționale pe care doriți să le instalați(separare prin spațiu, lăsați liber pentru a ignora): "
msgid "Copy ISO network configuration to installation"
msgstr "Copiați configurarea ISO prin rețea la instalare"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "Folosiți NetworkManager (necesar pentru configurarea setărilor de rețea într-un mod grafic pentru GNOME și KDE)"
msgid "Select one network interface to configure"
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): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "Introduceți IP-ul gateway-ului (router) sau lăsați liber pentru niciunul: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "Introduceți serverele dumneavoastră DNS (separare prin spațiu, lăsați liber pentru a ignora): "
msgid "Select which filesystem your main partition should use"
msgstr "Selectați sistemul de fișiere dorit pentru partiția dumneavoastră primară"
msgid "Current partition layout"
msgstr "Schema de partiționare curentă"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"Selectați ce doriți să se întâmple cu\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "Introduceți un sistem de fișiere dorit pentru partiția"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "Introduceți sectorul de început (procentaj sau numărul block-ului, predefinit: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "Introduceți locația finală (în unități de partiționare: s, GB, %, etc. ; ex: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} conține partiții în așteptare, acest proces le va șterge, doriți acest lucru?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"Selectați pe baza indexului partițiile pentru ștergere"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"Selectați pe baza indexului partițiile pentru a fi montate și locația"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * Punctele de montare ale partițiilor sunt relevante pentru instalate, de exemplu partiția boot va fi /boot."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "Selectați locul de montare a partiției (lăsați gol pentru a șterge punctul de montare): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"Selectați partiția care urmează să fie marcată pentru formatare"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"Selectați partiția care urmează să fie marcată ca fiind cripitată"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"Selectați partiția care urmează să fie marcată ca fiind bootabilă"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"Selectați partiția pentru care urmează să fie setat un sistem de fișiere"
msgid "Enter a desired filesystem type for the partition: "
msgstr "Introduceți un sistem de fișiere dorit pentru partiție: "
msgid "Archinstall language"
msgstr "Limba pentru Archinstall"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "Șterge toate discurile selectate și folosește cea mai bună schemă de partiționare"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "Selectați ce doriți să se întâmple cu fiecare disc în parte (urmat de capacitatea utilizată dorită)"
msgid "Select what you wish to do with the selected block devices"
msgstr "Selectați ce doriți să faceți cu dispozitivele de tip bloc selectate"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "Aceasta este o listă de profiluri preprogramate, ar putea să ușureze instalarea unor lucruri precum spațiile de lucru"
msgid "Select keyboard layout"
msgstr "Selectați aranjamentul tastaturii"
msgid "Select one of the regions to download packages from"
msgstr "Selectați regiunea pentru care se vor descărca pachetele"
msgid "Select one or more hard drives to use and configure"
msgstr "Selectați unul sau mai multe discuri dure pentru a fi utilizate și configurate"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "Pentru cea mai bună compatibilitate cu hardware-ul dumneavoastră AMD ați putea folosi fie opțiunea All Open-Source sau AMD / ATI."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "Pentru cea mai bună compatibilitate cu hardware-ul dumneavoastră Intel ați putea folosi fie opțiunea All Open-Source sau Intel.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "Pentru cea mai bună compatibilitate cu hardware-ul dumneavoastră Nvidia ați putea folosi opțiunea Nvidia proprietary driver.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Selectați un driver grafic sau lăsați liber pentru a instala toate driverele open-source"
msgid "All open-source (default)"
msgstr "Toate open-source (predefinit)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "Alegeți nucelii care urmează să fie folosiți sau lăsați liber pentru valorarea predefinită \"{}\""
msgid "Choose which locale language to use"
msgstr "Alegeți limba locală pentru utilizare"
msgid "Choose which locale encoding to use"
msgstr "Alegeți codificarea locală pentru utilizare"
msgid "Select one of the values shown below: "
msgstr "Selecați o valoare din cele afișate mai jos: "
msgid "Select one or more of the options below: "
msgstr "Selecați una sau mai multe opțiuni din cele afișate mai jos: "
msgid "Adding partition...."
msgstr "Adaug partiția...."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "Trebuie să introduceți un tip de fișiere de sistem valid pentru a continua. Vedeți 'man parted' pentru tipurile de fișiere de sistem disponibile."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "Eroare: Listare profiluri pe URL \"{}\" rezultate în:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "Eroare: Nu s-a putut decoda rezultatul \"{}\" ca un JSON:"
msgid "Keyboard layout"
msgstr "Aranjament tastatură"
msgid "Mirror region"
msgstr "Regiune de oglindire"
msgid "Locale language"
msgstr "Limba locală"
msgid "Locale encoding"
msgstr "Codarea locală"
msgid "Drive(s)"
msgstr "Disc(uri)"
msgid "Disk layout"
msgstr "Schema discului"
msgid "Encryption password"
msgstr "Parola de criptare"
msgid "Swap"
msgstr "Swap"
msgid "Bootloader"
msgstr "Bootloader"
msgid "Root password"
msgstr "Parola pentru root"
msgid "Superuser account"
msgstr "Cont utilizator privilegiat (root)"
msgid "User account"
msgstr "Cont utilizator"
msgid "Profile"
msgstr "Profil"
msgid "Audio"
msgstr "Audio"
msgid "Kernels"
msgstr "Nuclei"
msgid "Additional packages"
msgstr "Pachete Adiționale"
msgid "Network configuration"
msgstr "Configurarea rețelei"
msgid "Automatic time sync (NTP)"
msgstr "Timpul de sincronizare automate (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "Instalalare ({} lipsă configurație(ii))"
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 ""
"Ați decis să treceți peste selectarea discurilor dure\n"
"și se va folosi orice configurație de disc montată la {} (experimental)\n"
"ATENȚIE: Archinstall nu va verifica compatibilitatea configurării\n"
"Doriți să continuați?"
msgid "Re-using partition instance: {}"
msgstr "Reutilizez instanța partiției: {}"
msgid "Create a new partition"
msgstr "Crează o partiție nouă"
msgid "Delete a partition"
msgstr "Șterge o partiție"
msgid "Clear/Delete all partitions"
msgstr "Curăță/Șterge toate partițile"
msgid "Assign mount-point for a partition"
msgstr "Asignează un punct de montare pentru o partiție"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "Marchează/Demarchează o partiție pentru a fi formatată (șterge toate datele)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "Marchează/Demarchează o partiție pentru a fi criptată"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "Marchează/Demarchează o partiție ca fiind bootabilă (automat pentru /boot)"
msgid "Set desired filesystem for a partition"
msgstr "Setează sistemul de fișiere dorit pentru o partiție"
msgid "Abort"
msgstr "Anulează"
msgid "Hostname"
msgstr "Hostname"
msgid "Not configured, unavailable unless setup manually"
msgstr "Nu este configurat, indisponibil, doar configurat manual"
msgid "Timezone"
msgstr "Fus orar"
msgid "Set/Modify the below options"
msgstr "Setează/Modifică opțiunile de mai jos"
msgid "Install"
msgstr "Instalează"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"Folosiți ESC pentru a ignora\n"
"\n"
msgid "Suggest partition layout"
msgstr "Sugerează o schemă de partiționare"
msgid "Enter a password: "
msgstr "Introduceți o parolă: "
msgid "Enter a encryption password for {}"
msgstr "Introduceți o parolă de criptare pentru {}"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "Introduceți parola de criptare a discului (lăsați liber pentru a evita criptarea): "
msgid "Create a required super-user with sudo privileges: "
msgstr "Crează un utilizator cu privilegii (root): "
msgid "Enter root password (leave blank to disable root): "
msgstr "Introuceți parola pentru root (lăsați liber pentru a dezactiva utilizatorul root): "
msgid "Password for user \"{}\": "
msgstr "Parola pentru utilizatorul \"{}\": "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "Verific dacă pachetele adiționale există (acest proces ar putea dura câteva secunde)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "Doriți să utilizați sincronizarea timpului automat (NTP) cu serverele de timp predefinite?\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 ""
"Timpul pentru hardware alți pași după configurare ar putea fi necesari pentru ca NTP să funcționeze.\n"
"Pentru mai multe informații verificații documentația Arch (Arch Wiki)"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "Introduceți un nume utilizator pentru a crea un user adițional (lăsați liber pentru a ignora): "
msgid "Use ESC to skip\n"
msgstr "Foloți ESC pentru a ignora\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
" Alegeți un obiect din listă și selectați o acțiune disponibilă pentru a fi executată"
msgid "Cancel"
msgstr "Opriți"
msgid "Confirm and exit"
msgstr "Confirmă și ieși"
msgid "Add"
msgstr "Adaugă"
msgid "Copy"
msgstr "Copiază"
msgid "Edit"
msgstr "Editează"
msgid "Delete"
msgstr "Șterge"
msgid "Select an action for '{}'"
msgstr "Selectează o acțiune pentru '{}'"
msgid "Copy to new key:"
msgstr "Copiază la noua cheie:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "Tip necunoscut: {}. Valorile acceptate sunt {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"Aceasta este configurația selectată de către dumneavoastră:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman rulează deja, aștept maxim 10 minute pentru a termina."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "Procesul pacman anterior nu s-a terminat corect. Vă rog, ștergeți orice sesiune de pacman existentă înainte de a continuea cu archinstall."
msgid "Choose which optional additional repositories to enable"
msgstr "Alegeți ce colecție opțională de pachete să fie activată"
msgid "Add a user"
msgstr "Adaugă un utilizator"
msgid "Change password"
msgstr "Schimbă parola"
msgid "Promote/Demote user"
msgstr "Promovează/Retrogradează un utilizator"
msgid "Delete User"
msgstr "Șterge utilizatorul"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"Definește un utilizator nou\n"
msgid "User Name : "
msgstr "Nume utilizator : "
msgid "Should {} be a superuser (sudoer)?"
msgstr "Ar trebui ca {} să fie un utilizator cu privilegii (sudoer)?"
msgid "Define users with sudo privilege: "
msgstr "Definiți utilizatorii cu privilegii sudo: "
msgid "No network configuration"
msgstr "Nu există o configurare de rețea"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Setați subvolumele dorite pe o partiție btrfs"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"Selectați partiția pentru care se vor seta subvolumele"
msgid "Manage btrfs subvolumes for current partition"
msgstr "Administrează subvolumele btrfs pentru partiția curentă"
msgid "No configuration"
msgstr "Nu există configurație"
msgid "Save user configuration"
msgstr "Salvează configurația utilizatorului"
msgid "Save user credentials"
msgstr "Salvează credențialele utilizatorului"
msgid "Save disk layout"
msgstr "Salvează schema discului"
msgid "Save all"
msgstr "Salvați tot"
msgid "Choose which configuration to save"
msgstr "Alegeți configurația dorită pentru salvare"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "Introduceți un director pentru salvarea configurațiilor: "
msgid "Not a valid directory: {}"
msgstr "Nu este un director valid: {}"
msgid "The password you are using seems to be weak,"
msgstr "Parola pe care doriți să o folosiți pare să fie slabă,"
msgid "are you sure you want to use it?"
msgstr "sigur doriți să o folosiți?"
msgid "Optional repositories"
msgstr "Colecții de pachete opționale"
msgid "Save configuration"
msgstr "Salvează configurația"
msgid "Missing configurations:\n"
msgstr "Configurații lipsă:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "Este necesar ca parola pentru utilizatorul root sau măcar un utilizator cu privilegii să fie adăugat"
msgid "Manage superuser accounts: "
msgstr "Administrează conturile pentru utilizatorii cu privilegii: "
msgid "Manage ordinary user accounts: "
msgstr "Adminstrează conturile pentru utilizatorii obișnuiți: "
msgid " Subvolume :{:16}"
msgstr " Subvolum :{:16}"
msgid " mounted at {:16}"
msgstr " montat la {:16}"
msgid " with option {}"
msgstr " cu opțiunea {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
" Completați valorile dorite pentru un subvolum nou \n"
msgid "Subvolume name "
msgstr "Nume subvolum "
msgid "Subvolume mountpoint"
msgstr "Punct de montare subvolum"
msgid "Subvolume options"
msgstr "Opțiuni subvolum"
msgid "Save"
msgstr "Salvează"
msgid "Subvolume name :"
msgstr "Nume subvolum :"
msgid "Select a mount point :"
msgstr "Seleactați un punct de montare :"
msgid "Select the desired subvolume options "
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: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "Doriți să folosiți subvolume BTRFS cu o structură predefinită?"
msgid "Would you like to use BTRFS compression?"
msgstr "Doriți să folosiți compresie pentru BTRFS?"
msgid "Would you like to create a separate partition for /home?"
msgstr "Doriți să creați o partiție separată pentru /home?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "Dispozitivele de stocare selectare nu au o capacitate minimă necesară pentru o sugestie automată\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "Capacitatea minimă pentru partiția /home: {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Capacitatea minimă pentru partiția Arch Linux: {}GB"
msgid "Continue"
msgstr "Continuă"
msgid "yes"
msgstr "da"
msgid "no"
msgstr "nu"
msgid "set: {}"
msgstr "setează: {}"
msgid "Manual configuration setting must be a list"
msgstr "Configurație manuală trebuie să fie o listă"
msgid "No iface specified for manual configuration"
msgstr "Nu a fost menționat iface pentru configurarea manuală"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "Configurarea manuală nic fără un DHCP necesită o adresă IP"
msgid "Add interface"
msgstr "Adaugă interfață"
msgid "Edit interface"
msgstr "Editează interfața"
msgid "Delete interface"
msgstr "Șterge interfața"
msgid "Select interface to add"
msgstr "Selectează interfața pentru adăugare"
msgid "Manual configuration"
msgstr "Configurare manuală"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "Marchează/Demarchează o partiție ca fiind comprimată (doar btrfs)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "Parola utilizată pare să fie slabă, sigur doriți să o folosiți pe aceasta?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "Oferă o selecție de medii de lucru și manageri de ferestre precum GNOME, KDE, Sway"
msgid "Select your desired desktop environment"
msgstr "Selectați mediul de lucru dorit"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "O instalare de bază care vă permite să instalați Arch Linux așa cum vă doriți."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "Oferă o selecție de diferite pachete de sistem pentru instalare și activare precum httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "Alegeți serverele dorite pentru instalare, dacă nu este selectat niciunul se va realiza o instalare minimală"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "Instalează un sistem minimal împreună cu xorg și driverele grafice."
msgid "Press Enter to continue."
msgstr "Apăsați Enter pentru a continua."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "Doriți să folosiți modul chroot pentru a intra în noua instalare și pentru a efectua configurații de post-instalare?"
msgid "Are you sure you want to reset this setting?"
msgstr "Sigur doriți să resetați această setare?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "Selectați unul sau mai multe discuri dure pentru a utiliza și configura\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "Orice modificare aplicată la setările existene vor resta schema de partiționare a discului!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "Dacă resetați selecția de discuri de stocare acest lucru va rezulta în resetarea schemei de partiționare existente a discului. Sigur doriți acest lucru?"
msgid "Save and exit"
msgstr "Salvează și ieși"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"conține partiții în așteptare, acest lucru le va șterge, sigur doriți acest lucru?"
msgid "No audio server"
msgstr "Nu există un server audio"
msgid "(default)"
msgstr "(predefinit)"
msgid "Use ESC to skip"
msgstr "Folosiți ESC pentru a ignora"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"Folosi'i CTRL+C pentru a reseta selecția curentă\n"
"\n"
msgid "Copy to: "
msgstr "Copiază la: "
msgid "Edit: "
msgstr "Editează: "
msgid "Key: "
msgstr "Cheie: "
msgid "Edit {}: "
msgstr "Editează {}: "
msgid "Add: "
msgstr "Adaugă: "
msgid "Value: "
msgstr "Valoare: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "Puteți trece peste selectarea unui dispozitiv de stocare și folosiți orice configurație de partiționare este montată la /mnt (experimental)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "Selectați unul din discuri sau ignorați și folosiți /mnt ca predefinit"
msgid "Select which partitions to mark for formatting:"
msgstr "Selectați partițiile pentru a fi marcate pentru formatare:"
msgid "Use HSM to unlock encrypted drive"
msgstr "Folosiți HSM pentru deblocarea dispozitivului criptat"
msgid "Device"
msgstr "Discpozitiv"
msgid "Size"
msgstr "Mărime"
msgid "Free space"
msgstr "Spațiu liber"
msgid "Bus-type"
msgstr "Tip magistrală"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "O parolă pentru utilizatorul root sau măcar un utilizator cu privilegii sudo trebuie adăugat"
msgid "Enter username (leave blank to skip): "
msgstr "Introduceți numele de utilizator (lăsați gol pentru a ignora): "
msgid "The username you entered is invalid. Try again"
msgstr "Numele de utilizator adăugat este invalid. Încercați din nou"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "Ar trebui ca \"{}\" să fie un utilizator cu privilegii (sudo)?"
msgid "Select which partitions to encrypt"
msgstr "Selectați partițiile pentru criptare"
msgid "very weak"
msgstr "foarte slabă"
msgid "weak"
msgstr "slabă"
msgid "moderate"
msgstr "moderată"
msgid "strong"
msgstr "puetrnică"
msgid "Add subvolume"
msgstr "Adaugă subvolum"
msgid "Edit subvolume"
msgstr "Editează subvolum"
msgid "Delete subvolume"
msgstr "Șterge subvolum"
msgid "Configured {} interfaces"
msgstr "Configurează interfața {}"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "Această opținea setează numărul de descărcări paralele care pot avea loc în timpul instalării"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"Introduceți numărul de descărcări simultane pentru a fi activat.\n"
" (Introduceți o valuare între 1 și {max_downloads})\n"
"Info:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - Valoare minimă : 1 ( Permite o descărcare simultană, permite 2 descărcări simultane )"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - Valoare minimă : 1 ( Permite o descărcare simultană, permite 2 descărcări simultane )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - Dezactivează/Predefinit: 0 (Dezactivează descărcările simultane, permite o singură descărcare simultană )"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "Input invalid! Încercați din nou cu un input valid [1 pentru {max_downloads}, sau 0 pentru dezactivare]"
msgid "Parallel Downloads"
msgstr "Descărcări Simultane"
msgid "ESC to skip"
msgstr "ESC pentru ignorare"
msgid "CTRL+C to reset"
msgstr "CTRL+C pentru resetare"
msgid "TAB to select"
msgstr "TAB pentru a selecta"
msgid "[Default value: 0] > "
msgstr "[Valoare predefinită: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "Pentru a putea folosi această traducere, vă rog să instalați manual un font compatibil cu această limbă."
msgid "The font should be stored as {}"
msgstr "Fontul ar trebui salvat ca {}"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Archinstall necesită privilegii avansate pentru execuție. Vedeți --help pentru mai multe."
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: {}"
msgid "Select one or more devices to use and configure"
msgstr "Selectați unul sau mai multe discuri dure pentru a fi utilizate și configurate"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "Dacă resetați selecția de discuri de stocare acest lucru va rezulta în resetarea schemei de partiționare existente a discului. Sigur doriți acest lucru?"
msgid "Existing Partitions"
msgstr "Partiții Existente"
msgid "Select a partitioning option"
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"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "Aceasta este o listă de profiluri pre-programate \"profiluris_bck\", ar putea să ușureze instalarea unor lucruri precum spațiile de lucru"
msgid "Current profile selection"
msgstr "Selecția curentă a profilului"
msgid "Remove all newly added partitions"
msgstr "Șterge toate partițiile noi adăugate"
msgid "Assign mountpoint"
msgstr "Asignează punctul de montare"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "Marchează/Demarchează pentru formatare (șterge toate datele)"
msgid "Mark/Unmark as bootable"
msgstr "Marchează/Demarchează ca bootabil"
msgid "Change filesystem"
msgstr "Schimbă sistemul de fișiere"
msgid "Mark/Unmark as compressed"
msgstr "Marchează/Demarchează ca comprimat"
msgid "Set subvolumes"
msgstr "Setează subvolumele"
msgid "Delete partition"
msgstr "Șterge partiția"
msgid "Partition"
msgstr "Partiție"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "Partiția curentă este criptată, pentru a fi formatată un sistem de fișiere trebuie specificat"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "Punctele de montare ale partițiilor sunt relevante pentru instalate, de exemplu partiția boot va fi /boot."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "Dacă punctul de montare /boot este setat, atunci partiția va fi marcată ca fiind bootabilă."
msgid "Mountpoint: "
msgstr "Punct de montare: "
msgid "Current free sectors on device {}:"
msgstr "Sectoarele libere curente de pe dispozitiv {}:"
msgid "Total sectors: {}"
msgstr "Toate sectoarele: {}"
msgid "Enter the start sector (default: {}): "
msgstr "Introduceți sectorul de început (predefinit: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
msgstr "Introduceți sectorul de final pentru partiționare (procentaj sau numărul block-ului, predefinit: {}): "
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ă: {}"
msgid "Encryption type"
msgstr "Tipul de criptare"
msgid "Iteration time"
msgstr ""
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr ""
msgid "Higher values increase security but slow down boot time"
msgstr ""
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr ""
msgid "Iteration time cannot be empty"
msgstr ""
msgid "Iteration time must be at least 100ms"
msgstr ""
msgid "Iteration time must be at most 120000ms"
msgstr ""
msgid "Please enter a valid number"
msgstr ""
msgid "Partitions"
msgstr "Partiții"
msgid "No HSM devices available"
msgstr "Nicun dispozitiv HSM disponibil"
msgid "Partitions to be encrypted"
msgstr "Selectați partițiile pentru criptare"
msgid "Select disk encryption option"
msgstr "Selectați opțiunea pentru criptarea discului"
msgid "Select a FIDO2 device to use for HSM"
msgstr "Selectați utilizarea unui device FID02 pentru HSM"
msgid "Use a best-effort default partition layout"
msgstr "Folosește cea mai bună configurație de partiționare"
msgid "Manual Partitioning"
msgstr "Partiționare manuală"
msgid "Pre-mounted configuration"
msgstr "Configurație pre-montată"
msgid "Unknown"
msgstr "Neștiut"
msgid "Partition encryption"
msgstr "Criptare partiție"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! Se formatează {} in "
msgid "← Back"
msgstr "← Înapoi"
msgid "Disk encryption"
msgstr "Criptarea discului"
msgid "Configuration"
msgstr "Configurație"
msgid "Password"
msgstr "Parola"
msgid "All settings will be reset, are you sure?"
msgstr "{} conține partiții în așteptare, acest proces le va șterge, doriți acest lucru?"
msgid "Back"
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: {}"
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 "Driverul proprietar Nvidia nu este compatibil cu Sway. Se poate să aveți probleme, sunteți ok cu asta?"
msgid "Installed packages"
msgstr "Pachete instalate"
msgid "Add profile"
msgstr "Adaugă profil"
msgid "Edit profile"
msgstr "Editează profil"
msgid "Delete profile"
msgstr "Șterge profil"
msgid "Profile name: "
msgstr "Nume profil: "
msgid "The profile name you entered is already in use. Try again"
msgstr "Numele de utilizator adăugat este invalid. Încercați din nou"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "Pachetele care se instalează cu acest profil (separare prin spațiu, lăsați liber pentru a ignora): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "Serviciile activate cu acest profil (separare prin spațiu, lăsați liber pentru a ignora): "
msgid "Should this profile be enabled for installation?"
msgstr "Ar trebui ca acest profil să fie bifat pentru instalare?"
msgid "Create your own"
msgstr "Crează-ți propriul tău"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"Selectați un driver grafic sau lăsați liber pentru a instala toate driverele open-source"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway are nevoie de acces la setup-ul dumneavoastră (colecție de dispozitive hardware ex. tastatura, mouse, etc.)"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Alegeți o opțiune pentru a acorda acces lui Sway la hardware"
msgid "Graphics driver"
msgstr "Driver grafic"
msgid "Greeter"
msgstr "Manager afișare"
msgid "Please chose which greeter to install"
msgstr "Vă rog selectați managerul de afișare pentru instalare"
msgid "This is a list of pre-programmed default_profiles"
msgstr "Aceasta este o listă cu profiluri pre-programate"
msgid "Disk configuration"
msgstr "Configurație disc"
msgid "Profiles"
msgstr "Profiluri"
msgid "Finding possible directories to save configuration files ..."
msgstr "Caut directoare pentru salvarea fișierelor de configurare ..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "Selectați directorul (sau directoarele), pentru salvarea fișierelor de configurare"
msgid "Add a custom mirror"
msgstr "Adaugă o oglindă customizată"
msgid "Change custom mirror"
msgstr "Schimbă oglinda customizată"
msgid "Delete custom mirror"
msgstr "Șterge oglinda customizată"
msgid "Enter name (leave blank to skip): "
msgstr "Introduceți numele (lăsați gol pentru a ignora): "
msgid "Enter url (leave blank to skip): "
msgstr "Introduceți URL (lăsați gol pentru a ignora): "
msgid "Select signature check option"
msgstr "Selectați opțiunea pentru verificarea semnăturii"
msgid "Select signature option"
msgstr "Selectați opțiunea pentru semnătură"
msgid "Custom mirrors"
msgstr "Oglinzi customizate"
msgid "Defined"
msgstr "Definit"
msgid "Save user configuration (including disk layout)"
msgstr "Salvează configurația utilizatorului (schema discului este inclusă)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"Introduceți un director pentru salvarea configurării (configurațiilor, completare automată cu Tab activată)\n"
"Directorul pentru salvare: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"Doriți să salvați fișierele de configurare {} în această locație?\n"
"\n"
"{]"
msgid "Saving {} configuration files to {}"
msgstr "Salvez {} fișierele de configurație la {}"
msgid "Mirrors"
msgstr "Oglinzi"
msgid "Mirror regions"
msgstr "Regiuni oglinzi"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - Valoare maximă : {} ( Permite {} descărcări simultane, permite {max_downloads+1} descărcări în același timp )"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "Input invalid! Încercați din nou cu un input valid [1 la {}, sau 0 pentru dezactivare]"
msgid "Locales"
msgstr "Locale"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "Folosiți NetworkManager (necesar pentru configurarea setărilor de rețea într-un mod grafic pentru GNOME și KDE)"
msgid "Total: {} / {}"
msgstr "Total: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "Toate valorile introduse pot fi notate cu unități precum: B, KB, KiB, MB, MiB ..."
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "Dacă nicio unitate nu este specificate, atunci valorile vor fi interpretate ca sectoare"
msgid "Enter start (default: sector {}): "
msgstr "Introduceți start (predefinit: sector {}): "
msgid "Enter end (default: {}): "
msgstr "Introduceți final (predefinit: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "Nu se pot identifica dispozitive de tip fido2. Este libfido2 instalată?"
msgid "Path"
msgstr "Cale"
msgid "Manufacturer"
msgstr "Producător"
msgid "Product"
msgstr "Produs"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "Configurație invalidă: {error}"
msgid "Type"
msgstr ""
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "Această opțiune setează numărul de descărcări paralele care pot avea loc în timpul instalării"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"Introduceți numărul de descărcări simultane pentru a fi activat.\n"
"\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 )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - Dezactivează/Predefinit: 0 (Dezactivează descărcările simultane, permite o singură descărcare în același timp )\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "Input invalid! Încercați din nou cu un input valid [0 pentru dezactivare]"
#, fuzzy
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway are nevoie de acces la setup-ul dumneavoastră (colecție de dispozitive hardware ex. tastatura, mouse, etc.)"
#, fuzzy
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Alegeți o opțiune pentru a acorda acces lui Sway la hardware"
#, fuzzy
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "Toate valorile introduse pot fi notate cu unități precum: B, KB, KiB, MB, MiB ..."
#, fuzzy
msgid "Would you like to use unified kernel images?"
msgstr "Doriți să folosiți swap pe zram?"
msgid "Unified kernel images"
msgstr ""
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr ""
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr ""
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr ""
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr ""
#, fuzzy
msgid "Selected profiles: "
msgstr "Șterge profil"
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr ""
#, fuzzy
msgid "Mark/Unmark as nodatacow"
msgstr "Marchează/Demarchează ca bootabil"
#, fuzzy
msgid "Would you like to use compression or disable CoW?"
msgstr "Doriți să folosiți compresie pentru BTRFS?"
msgid "Use compression"
msgstr ""
msgid "Disable Copy-on-Write"
msgstr ""
#, fuzzy
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, python-brace-format
msgid "Configuration type: {}"
msgstr "Configurație"
#, fuzzy
msgid "LVM configuration type"
msgstr "Nu există configurație"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr ""
#, fuzzy
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "Folosiți NetworkManager (necesar pentru configurarea setărilor de rețea într-un mod grafic pentru GNOME și KDE)"
#, fuzzy
msgid "Select a LVM option"
msgstr "Selectați un fus orar"
#, fuzzy
msgid "Partitioning"
msgstr "Partiție"
msgid "Logical Volume Management (LVM)"
msgstr ""
msgid "Physical volumes"
msgstr ""
msgid "Volumes"
msgstr ""
#, fuzzy
msgid "LVM volumes"
msgstr "Setează subvolumele"
#, fuzzy
msgid "LVM volumes to be encrypted"
msgstr "Selectați partițiile pentru criptare"
#, fuzzy
msgid "Select which LVM volumes to encrypt"
msgstr "Selectați partițiile pentru criptare"
#, fuzzy
msgid "Default layout"
msgstr "Schema discului"
#, fuzzy
msgid "No Encryption"
msgstr "Tipul de criptare"
msgid "LUKS"
msgstr ""
msgid "LVM on LUKS"
msgstr ""
msgid "LUKS on LVM"
msgstr ""
#, fuzzy
msgid "Yes"
msgstr "da"
msgid "No"
msgstr ""
#, fuzzy
msgid "Archinstall help"
msgstr "Limba pentru Archinstall"
#, fuzzy
msgid " (default)"
msgstr "(predefinit)"
msgid "Press Ctrl+h for help"
msgstr ""
#, fuzzy
msgid "Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Alegeți o opțiune pentru a acorda acces lui Sway la hardware"
msgid "Seat access"
msgstr ""
#, fuzzy
msgid "Mountpoint"
msgstr "Punct de montare: "
msgid "HSM"
msgstr ""
#, fuzzy
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "Introduceți parola de criptare a discului (lăsați liber pentru a evita criptarea): "
#, fuzzy
msgid "Disk encryption password"
msgstr "Parola de criptare"
#, fuzzy
msgid "Partition - New"
msgstr "Partiție"
#, fuzzy
msgid "Filesystem"
msgstr "Schimbă sistemul de fișiere"
msgid "Invalid size"
msgstr ""
#, fuzzy
msgid "Start (default: sector {}): "
msgstr "Introduceți start (predefinit: sector {}): "
#, fuzzy
msgid "End (default: {}): "
msgstr "Introduceți final (predefinit: {}): "
#, fuzzy
msgid "Subvolume name"
msgstr "Nume subvolum "
#, fuzzy
msgid "Disk configuration type"
msgstr "Configurație disc"
msgid "Root mount directory"
msgstr ""
#, fuzzy
msgid "Select language"
msgstr "Limba locală"
#, fuzzy
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "Scrieți pachete adiționale pe care doriți să le instalați(separare prin spațiu, lăsați liber pentru a ignora): "
msgid "Invalid download number"
msgstr ""
msgid "Number downloads"
msgstr ""
#, fuzzy
msgid "The username you entered is invalid"
msgstr "Numele de utilizator adăugat este invalid. Încercați din nou"
#, fuzzy
msgid "Username"
msgstr "Nume utilizator : "
#, fuzzy, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "Ar trebui ca \"{}\" să fie un utilizator cu privilegii (sudo)?"
#, fuzzy
msgid "Interfaces"
msgstr "Adaugă interfață"
msgid "You need to enter a valid IP in IP-config mode"
msgstr ""
msgid "Modes"
msgstr ""
msgid "IP address"
msgstr ""
#, fuzzy
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "Introduceți IP-ul gateway-ului (router) sau lăsați liber pentru niciunul: "
msgid "Gateway address"
msgstr ""
#, fuzzy
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "Introduceți serverele dumneavoastră DNS (separare prin spațiu, lăsați liber pentru a ignora): "
#, fuzzy
msgid "DNS servers"
msgstr "Nu există un server audio"
#, fuzzy
msgid "Configure interfaces"
msgstr "Configurează interfața {}"
#, fuzzy
msgid "Kernel"
msgstr "Nuclei"
msgid "UEFI is not detected and some options are disabled"
msgstr ""
msgid "Info"
msgstr ""
#, fuzzy
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "Driverul proprietar Nvidia nu este compatibil cu Sway. Se poate să aveți probleme, sunteți ok cu asta?"
#, fuzzy
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "Driverul proprietar Nvidia nu este compatibil cu Sway. Se poate să aveți probleme, sunteți ok cu asta?"
#, fuzzy
msgid "Main profile"
msgstr "Editează profil"
#, fuzzy
msgid "Confirm password"
msgstr "Schimbă parola"
msgid "The confirmation password did not match, please try again"
msgstr ""
#, fuzzy
msgid "Not a valid directory"
msgstr "Nu este un director valid: {}"
#, fuzzy
msgid "Would you like to continue?"
msgstr "Doriți să folosiți compresie pentru BTRFS?"
msgid "Directory"
msgstr ""
#, fuzzy
msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)"
msgstr ""
"Introduceți un director pentru salvarea configurării (configurațiilor, completare automată cu Tab activată)\n"
"Directorul pentru salvare: "
#, 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"
"\n"
"{]"
msgid "Enabled"
msgstr ""
msgid "Disabled"
msgstr ""
#, fuzzy
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Vă rog să raportați problema (și fișierul) la https://github.com/archlinux/archinstall/issues"
#, fuzzy
msgid "Mirror name"
msgstr "Regiune de oglindire"
msgid "Url"
msgstr ""
#, fuzzy
msgid "Select signature check"
msgstr "Selectați opțiunea pentru verificarea semnăturii"
#, fuzzy
msgid "Select execution mode"
msgstr "Selectați un mod de execuție"
msgid "Press ? for help"
msgstr ""
#, fuzzy
msgid "Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Alegeți o opțiune pentru a acorda acces lui Sway la hardware"
#, fuzzy
msgid "Additional repositories"
msgstr "Colecții de pachete opționale"
msgid "NTP"
msgstr ""
msgid "Swap on zram"
msgstr ""
msgid "Name"
msgstr ""
#, fuzzy
msgid "Signature check"
msgstr "Selectați opțiunea pentru verificarea semnăturii"
#, fuzzy, python-brace-format
msgid "Selected free space segment on device {}:"
msgstr "Sectoarele libere curente de pe dispozitiv {}:"
#, fuzzy, python-brace-format
msgid "Size: {} / {}"
msgstr "Total: {} / {}"
#, fuzzy, python-brace-format
msgid "Size (default: {}): "
msgstr "Introduceți final (predefinit: {}): "
#, fuzzy
msgid "HSM device"
msgstr "Discpozitiv"
msgid "Some packages could not be found in the repository"
msgstr ""
#, fuzzy
msgid "User"
msgstr "Nume utilizator : "
msgid "The specified configuration will be applied"
msgstr ""
msgid "Wipe"
msgstr ""
#, fuzzy
msgid "Mark/Unmark as XBOOTLDR"
msgstr "Marchează/Demarchează ca bootabil"
#, fuzzy
msgid "Loading packages..."
msgstr "Pachete Adiționale"
msgid "Select any packages from the below list that should be installed additionally"
msgstr ""
#, fuzzy
msgid "Add a custom repository"
msgstr "Adaugă o oglindă customizată"
#, fuzzy
msgid "Change custom repository"
msgstr "Schimbă oglinda customizată"
#, fuzzy
msgid "Delete custom repository"
msgstr "Șterge oglinda customizată"
#, fuzzy
msgid "Repository name"
msgstr "Regiune de oglindire"
#, fuzzy
msgid "Add a custom server"
msgstr "Adaugă o oglindă customizată"
#, fuzzy
msgid "Change custom server"
msgstr "Schimbă oglinda customizată"
#, fuzzy
msgid "Delete custom server"
msgstr "Șterge oglinda customizată"
msgid "Server url"
msgstr ""
#, fuzzy
msgid "Select regions"
msgstr "Selectați opțiunea pentru semnătură"
#, fuzzy
msgid "Add custom servers"
msgstr "Adaugă o oglindă customizată"
#, fuzzy
msgid "Add custom repository"
msgstr "Adaugă o oglindă customizată"
#, fuzzy
msgid "Loading mirror regions..."
msgstr "Regiuni oglinzi"
#, fuzzy
msgid "Mirrors and repositories"
msgstr "Colecții de pachete opționale"
#, fuzzy
msgid "Selected mirror regions"
msgstr "Regiuni oglinzi"
#, fuzzy
msgid "Custom servers"
msgstr "Oglinzi customizate"
#, fuzzy
msgid "Custom repositories"
msgstr "Colecții de pachete opționale"
msgid "Only ASCII characters are supported"
msgstr ""
msgid "Show help"
msgstr ""
msgid "Exit help"
msgstr ""
msgid "Preview scroll up"
msgstr ""
msgid "Preview scroll down"
msgstr ""
msgid "Move up"
msgstr ""
msgid "Move down"
msgstr ""
msgid "Move right"
msgstr ""
msgid "Move left"
msgstr ""
msgid "Jump to entry"
msgstr ""
msgid "Skip selection (if available)"
msgstr ""
msgid "Reset selection (if available)"
msgstr ""
#, fuzzy
msgid "Select on single select"
msgstr "Selectați opțiunea pentru verificarea semnăturii"
#, fuzzy
msgid "Select on multi select"
msgstr "Selectați un fus orar"
msgid "Reset"
msgstr ""
#, fuzzy
msgid "Skip selection menu"
msgstr "Selectați un mod de execuție"
msgid "Start search mode"
msgstr ""
msgid "Exit search mode"
msgstr ""
#, fuzzy
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway are nevoie de acces la setup-ul dumneavoastră (colecție de dispozitive hardware ex. tastatura, mouse, etc.)"
#, fuzzy
msgid "Choose an option to give labwc access to your hardware"
msgstr ""
"\n"
"\n"
"Alegeți o opțiune pentru a acorda acces lui Sway la hardware"
#, fuzzy
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway are nevoie de acces la setup-ul dumneavoastră (colecție de dispozitive hardware ex. tastatura, mouse, etc.)"
#, fuzzy
msgid "Choose an option to give niri access to your hardware"
msgstr ""
"\n"
"\n"
"Alegeți o opțiune pentru a acorda acces lui Sway la hardware"
#, fuzzy
msgid "Mark/Unmark as ESP"
msgstr "Marchează/Demarchează ca bootabil"
msgid "Package group:"
msgstr ""
#, fuzzy
msgid "Exit archinstall"
msgstr "Limba pentru Archinstall"
#, fuzzy
msgid "Reboot system"
msgstr "Schimbă sistemul de fișiere"
#, fuzzy
msgid "chroot into installation for post-installation configurations"
msgstr "Doriți să folosiți modul chroot pentru a intra în noua instalare și pentru a efectua configurații de post-instalare?"
msgid "Installation completed"
msgstr ""
#, fuzzy
msgid "What would you like to do next?"
msgstr "Doriți să folosiți compresie pentru BTRFS?"
#, fuzzy, python-brace-format
msgid "Select which mode to configure for \"{}\""
msgstr "Selectați modul de configurare pentru \"{}\" sau folosiți modul predefinit \"{}\""
#, fuzzy
msgid "Incorrect credentials file decryption password"
msgstr "Parola de criptare"
#, fuzzy
msgid "Incorrect password"
msgstr "Parola pentru root"
#, fuzzy
msgid "Credentials file decryption password"
msgstr "Parola de criptare"
#, fuzzy
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr ""
"Doriți să salvați fișierele de configurare {} în această locație?\n"
"\n"
"{]"
#, fuzzy
msgid "Credentials file encryption password"
msgstr "Parola de criptare"
#, 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 "Print service"
msgstr ""
#, fuzzy
msgid "Would you like to configure the print service?"
msgstr "Doriți să folosiți compresie pentru BTRFS?"
#, fuzzy
msgid "Power management"
msgstr "Managementul partiției: {}"
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 ""
msgid "Starting device modifications in "
msgstr ""
#, fuzzy
msgid "No network connection found"
msgstr "Nu există o configurare de rețea"
#, fuzzy
msgid "Would you like to connect to a Wifi?"
msgstr "Doriți să folosiți compresie pentru BTRFS?"
#, fuzzy
msgid "No wifi interface found"
msgstr "Configurează interfața {}"
#, fuzzy
msgid "Select wifi network to connect to"
msgstr "Selectați o interfață de rețea pentru configurare"
msgid "Scanning wifi networks..."
msgstr ""
#, fuzzy
msgid "No wifi networks found"
msgstr "Nu există o configurare de rețea"
msgid "Failed setting up wifi"
msgstr ""
#, fuzzy
msgid "Enter wifi password"
msgstr "Introduceți o parolă: "
msgid "Ok"
msgstr ""
msgid "Removable"
msgstr ""
msgid "Install to removable location"
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr ""
msgid "Will install to standard location with NVRAM entry"
msgstr ""
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr ""
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr ""
msgid "USB drives or other portable external media."
msgstr ""
msgid "Systems where you want the disk to be bootable on any computer."
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr ""
msgid "Will install to custom location with NVRAM entry"
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr ""
msgid "most Apple Macs, many laptops..."
msgstr ""
#, fuzzy
msgid "Language"
msgstr "Limba locală"
msgid "Compression algorithm"
msgstr ""
#, fuzzy
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Doar pachetele precum base, base-devel, linux, linux-firmware, egibootmgr și cele opționale de profil sunt instalate."
#, fuzzy
msgid "Select zram compression algorithm:"
msgstr "Seleactați un punct de montare :"
msgid "Use Network Manager (default backend)"
msgstr ""
msgid "Use Network Manager (iwd backend)"
msgstr ""
================================================
FILE: archinstall/locales/ru/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: Aleksandr Melman \n"
"Language-Team: \n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
"X-Generator: Poedit 3.5\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] Здесь был создан файл журнала: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Пожалуйста, отправьте эту проблему (и файл) по адресу https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "Вы действительно хотите прекратить?"
msgid "And one more time for verification: "
msgstr "И еще раз для проверки: "
msgid "Would you like to use swap on zram?"
msgstr "Вы хотите использовать подкачку на zram?"
msgid "Desired hostname for the installation: "
msgstr "Желаемое имя хоста для установки: "
msgid "Username for required superuser with sudo privileges: "
msgstr "Имя пользователя для требуемого суперпользователя с привилегиями sudo: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "Любые дополнительные пользователи для установки (оставьте пустым, если пользователей нет): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "Должен ли этот пользователь быть суперпользователем (sudoer)?"
msgid "Select a timezone"
msgstr "Выберите часовой пояс"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "Вы хотите использовать GRUB в качестве загрузчика вместо systemd-boot?"
msgid "Choose a bootloader"
msgstr "Выберите загрузчик"
msgid "Choose an audio server"
msgstr "Выберите звуковой сервер"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Устанавливаются только такие пакеты, как base, base-devel, linux, linux-firmware, efibootmgr и дополнительные пакеты профиля."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr ""
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "Если вы хотите использовать веб-браузер, например, firefox или chromium, вы можете указать его в следующем запросе."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "Напишите дополнительные пакеты для установки (разделите пробелами, оставьте пустым, чтобы пропустить): "
msgid "Copy ISO network configuration to installation"
msgstr "Копировать сетевую конфигурацию ISO в установку"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "Использовать NetworkManager (необходим для графической настройки интернета в GNOME и KDE)"
msgid "Select one network interface to configure"
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): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "Введите IP-адрес вашего шлюза (маршрутизатора) или оставьте пустым, если его нет: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "Введите ваши DNS-серверы (через пробел, пустой - нет): "
msgid "Select which filesystem your main partition should use"
msgstr "Выберите, какую файловую систему должен использовать ваш основной раздел"
msgid "Current partition layout"
msgstr "Текущая разметка разделов"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"Выберите, что делать с\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "Введите желаемый тип файловой системы для раздела"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "Введите начальное значение (в раздельных блоках: с, ГБ, % и т.д.; по умолчанию: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "Введите конечное значение (в раздельных блоках: с, Гб, % и т.д.; например: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} содержит разделы в очереди, это удалит их, вы уверены?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"Выберите по индексу, какие разделы следует удалить"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"Выберите по индексу, какой раздел куда монтировать"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * Точки монтирования разделов являются относительными внутри установки, например, загрузочный будет /boot."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "Выберите куда монтировать раздел (оставьте пустым, чтобы удалить точку монтирования): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"Выберите, какой раздел следует отметить для форматирования"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"Выберите раздел, который следует пометить как зашифрованный"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"Выберите раздел, который следует отметить как загрузочный"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"Выберите раздел, на котором будет установлена файловая система"
msgid "Enter a desired filesystem type for the partition: "
msgstr "Введите желаемый тип файловой системы для раздела: "
msgid "Archinstall language"
msgstr "Язык Archinstall"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "Стереть все выбранные диски и использовать оптимальную схему разделов по умолчанию"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "Выберите, что делать с каждым отдельным диском (с последующим использованием разделов)"
msgid "Select what you wish to do with the selected block devices"
msgstr "Выберите, что вы хотите сделать с выбранными блочными устройствами"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "Это список предварительно запрограммированных профилей, они могут облегчить установку таких вещей, как окружения рабочего стола"
msgid "Select keyboard layout"
msgstr "Выберите раскладку клавиатуры"
msgid "Select one of the regions to download packages from"
msgstr "Выберите один из регионов для загрузки пакетов"
msgid "Select one or more hard drives to use and configure"
msgstr "Выберите один или несколько жестких дисков для использования и настройте их"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "Для наилучшей совместимости с оборудованием AMD вы можете использовать либо все варианты с открытым исходным кодом, либо AMD / ATI."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "Для лучшей совместимости с оборудованием Intel вы можете использовать либо все варианты с открытым исходным кодом, либо Intel.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "Для наилучшей совместимости с оборудованием Nvidia вы можете использовать проприетарный драйвер Nvidia.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Выберите графический драйвер или оставьте пустым, чтобы установить все драйверы с открытым исходным кодом"
msgid "All open-source (default)"
msgstr "Все с открытым исходным кодом (по умолчанию)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "Выберите, какие ядра использовать, или оставьте пустым по умолчанию \"{}\"."
msgid "Choose which locale language to use"
msgstr "Выберите, какой язык локали использовать"
msgid "Choose which locale encoding to use"
msgstr "Выберите, какую кодировку локали использовать"
msgid "Select one of the values shown below: "
msgstr "Выберите одно из значений, показанных ниже: "
msgid "Select one or more of the options below: "
msgstr "Выберите один или несколько из приведенных ниже вариантов: "
msgid "Adding partition...."
msgstr "Добавление раздела...."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "Чтобы продолжить, вам нужно ввести действительный fs-тип. Смотрите `man parted` для правильных fs-типов."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "Ошибка: Перечисление профилей по URL \"{}\" привело к:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "Ошибка: Не удалось декодировать результат \"{}\" как JSON:"
msgid "Keyboard layout"
msgstr "Раскладка клавиатуры"
msgid "Mirror region"
msgstr "Регион зеркала"
msgid "Locale language"
msgstr "Язык локали"
msgid "Locale encoding"
msgstr "Кодировка локали"
msgid "Drive(s)"
msgstr "Диск(и)"
msgid "Disk layout"
msgstr "Разметка диска"
msgid "Encryption password"
msgstr "Пароль шифрования"
msgid "Swap"
msgstr "Подкачка"
msgid "Bootloader"
msgstr "Загрузчик"
msgid "Root password"
msgstr "Пароль root"
msgid "Superuser account"
msgstr "Учетная запись суперпользователя"
msgid "User account"
msgstr "Учетная запись пользователя"
msgid "Profile"
msgstr "Профиль"
msgid "Audio"
msgstr "Звуковой сервер"
msgid "Kernels"
msgstr "Ядра"
msgid "Additional packages"
msgstr "Дополнительные пакеты"
msgid "Network configuration"
msgstr "Настройка сети"
msgid "Automatic time sync (NTP)"
msgstr "Автоматическая синхронизация времени (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "Установить ({} конфигурация(и) отсутствует)"
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 ""
"Вы решили пропустить выбор жесткого диска\n"
"и будете использовать любой диск, смонтированный по адресу {} (экспериментально)\n"
"ПРЕДУПРЕЖДЕНИЕ: Archinstall не будет проверять пригодность этой установки.\n"
"Вы хотите продолжить?"
msgid "Re-using partition instance: {}"
msgstr "Повторное использование экземпляра раздела: {}"
msgid "Create a new partition"
msgstr "Создать новый раздел"
msgid "Delete a partition"
msgstr "Удалить раздел"
msgid "Clear/Delete all partitions"
msgstr "Очистить/удалить все разделы"
msgid "Assign mount-point for a partition"
msgstr "Назначить точку монтирования для раздела"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "Пометить/снять отметку с раздела, который будет отформатирован (стирание данных)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "Пометить/снять отметку с раздела как зашифрованный"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "Пометить/снять отметку с раздела как загрузочный (автоматически для /boot)"
msgid "Set desired filesystem for a partition"
msgstr "Установите желаемую файловую систему для раздела"
msgid "Abort"
msgstr "Прервать"
msgid "Hostname"
msgstr "Имя хоста"
msgid "Not configured, unavailable unless setup manually"
msgstr "Не настроен, недоступен, если не настроен вручную"
msgid "Timezone"
msgstr "Часовой пояс"
msgid "Set/Modify the below options"
msgstr "Установить/изменить следующие параметры"
msgid "Install"
msgstr "Установить"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"Используйте ESC, чтобы пропустить\n"
"\n"
msgid "Suggest partition layout"
msgstr "Предложить разметку разделов"
msgid "Enter a password: "
msgstr "Введите пароль: "
msgid "Enter a encryption password for {}"
msgstr "Введите пароль шифрования для {}"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "Введите пароль шифрования диска (оставьте пустым для отсутствия шифрования): "
msgid "Create a required super-user with sudo privileges: "
msgstr "Создайте необходимого суперпользователя с привилегиями sudo: "
msgid "Enter root password (leave blank to disable root): "
msgstr "Введите пароль root (оставьте пустым, чтобы отключить root): "
msgid "Password for user \"{}\": "
msgstr "Пароль для пользователя \"{}\": "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "Проверка наличия дополнительных пакетов (это может занять несколько секунд)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "Вы хотите использовать автоматическую синхронизацию времени (NTP) с серверами времени по умолчанию?\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 может потребоваться аппаратное время и другие шаги после конфигурации.\n"
"Для получения дополнительной информации, пожалуйста, ознакомьтесь с ArchWiki"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "Введите имя пользователя для создания дополнительного пользователя (оставьте пустым, чтобы пропустить): "
msgid "Use ESC to skip\n"
msgstr "Используйте ESC, чтобы пропустить\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
" Выберите объект из списка и выберите одно из доступных действий для его выполнения"
msgid "Cancel"
msgstr "Отменить"
msgid "Confirm and exit"
msgstr "Подтвердить и выйти"
msgid "Add"
msgstr "Добавить"
msgid "Copy"
msgstr "Копировать"
msgid "Edit"
msgstr "Редактировать"
msgid "Delete"
msgstr "Удалить"
msgid "Select an action for '{}'"
msgstr "Выберите действие для '{}'"
msgid "Copy to new key:"
msgstr "Копировать в новый ключ:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "Неизвестный тип сетевого адаптера: {}. Возможные значения: {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"Это выбранная вами конфигурация:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman уже запущен, ожидание его завершения составляет максимум 10 минут."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "Существовавшая ранее блокировка pacman не завершилась. Пожалуйста, очистите все существующие сессии pacman перед использованием archinstall."
msgid "Choose which optional additional repositories to enable"
msgstr "Выберите, какие дополнительные репозитории следует включить"
msgid "Add a user"
msgstr "Добавить пользователя"
msgid "Change password"
msgstr "Изменить пароль"
msgid "Promote/Demote user"
msgstr "Повысить/понизить пользователя"
msgid "Delete User"
msgstr "Удалить пользователя"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"Укажите нового пользователя\n"
msgid "User Name : "
msgstr "Имя пользователя: "
msgid "Should {} be a superuser (sudoer)?"
msgstr "Должен ли {} быть суперпользователем (sudoer)?"
msgid "Define users with sudo privilege: "
msgstr "Определите пользователей с привилегиями sudo: "
msgid "No network configuration"
msgstr "Нет сетевой конфигурации"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Установите желаемые подтома на раздел btrfs"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"Выберите раздел, на котором будут установлены подтома"
msgid "Manage btrfs subvolumes for current partition"
msgstr "Управление подтомами btrfs для текущего раздела"
msgid "No configuration"
msgstr "Отсутствует конфигурация"
msgid "Save user configuration"
msgstr "Сохранить конфигурацию пользователя"
msgid "Save user credentials"
msgstr "Сохранить учетные данные пользователя"
msgid "Save disk layout"
msgstr "Сохранить разметку диска"
msgid "Save all"
msgstr "Сохранить все"
msgid "Choose which configuration to save"
msgstr "Выберите, какую конфигурацию сохранить"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "Введите каталог для сохранения конфигурации (-ций): "
msgid "Not a valid directory: {}"
msgstr "Недействительный каталог: {}"
msgid "The password you are using seems to be weak,"
msgstr "Пароль, который вы используете, кажется слабым,"
msgid "are you sure you want to use it?"
msgstr "вы уверены, что хотите его использовать?"
msgid "Optional repositories"
msgstr "Дополнительные репозитории"
msgid "Save configuration"
msgstr "Сохранить конфигурацию"
msgid "Missing configurations:\n"
msgstr "Отсутствующие конфигурации:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "Должен быть указан либо пароль root, либо как минимум 1 суперпользователь"
msgid "Manage superuser accounts: "
msgstr "Управление учетными записями суперпользователей: "
msgid "Manage ordinary user accounts: "
msgstr "Управление учетными записями обычных пользователей: "
msgid " Subvolume :{:16}"
msgstr " Подтом :{:16}"
msgid " mounted at {:16}"
msgstr " смонтировано в {:16}"
msgid " with option {}"
msgstr " с параметром {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
" Заполните нужные значения для нового подтома\n"
msgid "Subvolume name "
msgstr "Имя подтома "
msgid "Subvolume mountpoint"
msgstr "Точка монтирования подтома"
msgid "Subvolume options"
msgstr "Параметры подтома"
msgid "Save"
msgstr "Сохранить"
msgid "Subvolume name :"
msgstr "Имя подтома :"
msgid "Select a mount point :"
msgstr "Выберите точку монтирования:"
msgid "Select the desired subvolume options "
msgstr "Выберите нужные параметры подтома "
msgid "Define users with sudo privilege, by username: "
msgstr "Определите пользователей с привилегией sudo по имени пользователя: "
#, python-brace-format
msgid "[!] A log file has been created here: {}"
msgstr "[!] Здесь был создан файл журнала: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "Вы хотите использовать подтома BTRFS со структурой по умолчанию?"
msgid "Would you like to use BTRFS compression?"
msgstr "Хотите ли вы использовать сжатие BTRFS?"
msgid "Would you like to create a separate partition for /home?"
msgstr "Хотите ли вы создать отдельный раздел для /home?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "Выбранные диски не имеют минимальной емкости, необходимой для автоматического предложения\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "Минимальный размер раздела /home: {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Минимальный размер раздела Arch Linux: {}GB"
msgid "Continue"
msgstr "Продолжить"
msgid "yes"
msgstr "да"
msgid "no"
msgstr "нет"
msgid "set: {}"
msgstr "выбор: {}"
msgid "Manual configuration setting must be a list"
msgstr "Ручная настройка конфигурации должна представлять собой список"
msgid "No iface specified for manual configuration"
msgstr "Не указан iface для ручной настройки"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "Ручная конфигурация сетевого адаптера без автоматического DHCP требует IP-адреса"
msgid "Add interface"
msgstr "Добавить интерфейс"
msgid "Edit interface"
msgstr "Редактировать интерфейс"
msgid "Delete interface"
msgstr "Удалить интерфейс"
msgid "Select interface to add"
msgstr "Выберите интерфейс для добавления"
msgid "Manual configuration"
msgstr "Ручная конфигурация"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "Пометить/снять отметку с раздела как сжатый (только для btrfs)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "Пароль, который вы используете, кажется слабым, вы уверены, что хотите его использовать?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "Предоставляет выбор окружений рабочего стола и тайловых оконных менеджеров, например, gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "Выберите желаемое окружение рабочего стола"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "Очень базовая установка, позволяющая настроить Arch Linux по своему усмотрению."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "Предоставляет выбор различных пакетов сервера для установки и включения, например, httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "Выберите серверы для установки, если их нет, то будет выполнена минимальная установка"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "Устанавливает минимальную систему, а также xorg и графические драйверы."
msgid "Press Enter to continue."
msgstr "Нажмите Enter, чтобы продолжить."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "Хотите ли вы использовать chroot в новой созданной установке и выполнить настройку после установки?"
msgid "Are you sure you want to reset this setting?"
msgstr "Вы уверены, что хотите сбросить эту настройку?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "Выберите один или несколько жестких дисков для использования и настройки\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "Любые изменения существующей настройки приведут к сбросу разметки диска!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "Если вы сбросите выбор жесткого диска, это также сбросит текущую разметку диска. Вы уверены?"
msgid "Save and exit"
msgstr "Сохранить и выйти"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"содержит разделы в очереди, это удалит их, вы уверены?"
msgid "No audio server"
msgstr "Отсутствует звуковой сервер"
msgid "(default)"
msgstr "(по умолчанию)"
msgid "Use ESC to skip"
msgstr "Используйте ESC, чтобы пропустить"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"Используйте CTRL+C для сброса текущего выбора\n"
"\n"
msgid "Copy to: "
msgstr "Копировать в: "
msgid "Edit: "
msgstr "Редактировать: "
msgid "Key: "
msgstr "Ключ: "
msgid "Edit {}: "
msgstr "Редактировать {}: "
msgid "Add: "
msgstr "Добавить: "
msgid "Value: "
msgstr "Значение: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "Вы можете не выбирать диск и разметку и использовать любой диск, смонтированный в /mnt (экспериментально)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "Выберите один из дисков или пропустите и используйте /mnt по умолчанию"
msgid "Select which partitions to mark for formatting:"
msgstr "Выберите, какие разделы следует отметить для форматирования:"
msgid "Use HSM to unlock encrypted drive"
msgstr "Использовать HSM для разблокировки зашифрованного диска"
msgid "Device"
msgstr "Устройство"
msgid "Size"
msgstr "Размер"
msgid "Free space"
msgstr "Свободное место"
msgid "Bus-type"
msgstr "Тип шины"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "Должен быть указан либо пароль root, либо хотя бы 1 пользователь с привилегиями sudo"
msgid "Enter username (leave blank to skip): "
msgstr "Введите имя пользователя (оставьте пустым, чтобы пропустить): "
msgid "The username you entered is invalid. Try again"
msgstr "Введенное вами имя пользователя недействительно. Попробуйте еще раз"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "Должен ли \"{}\" быть суперпользователем (sudo)?"
msgid "Select which partitions to encrypt"
msgstr "Выберите разделы для шифрования"
msgid "very weak"
msgstr "очень слабый"
msgid "weak"
msgstr "слабый"
msgid "moderate"
msgstr "умеренный"
msgid "strong"
msgstr "надежный"
msgid "Add subvolume"
msgstr "Добавить подтом"
msgid "Edit subvolume"
msgstr "Редактировать подтом"
msgid "Delete subvolume"
msgstr "Удалить подтом"
msgid "Configured {} interfaces"
msgstr "Настроено интерфейсов: {}"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "Этот параметр определяет количество параллельных загрузок, которые могут происходить во время установки"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"Введите количество параллельных загрузок, которые будут включены.\n"
" (Введите значение от 1 до {})\n"
"Примечание:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - Минимальное значение: {} ( Позволяет {} параллельную загрузку, позволяет {} загрузки одновременно )"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - Минимальное значение: 1 ( Позволяет 1 параллельную загрузку, позволяет 2 загрузки одновременно )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - Отключить/по умолчанию: 0 ( Отключает параллельную загрузку, позволяет только 1 загрузку за один раз )"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "Неверный ввод! Повторите попытку с правильным вводом [1 - {max_downloads}, или 0 - отключить]"
msgid "Parallel Downloads"
msgstr "Параллельные загрузки"
msgid "ESC to skip"
msgstr "ESC, чтобы пропустить"
msgid "CTRL+C to reset"
msgstr "CTRL+C, чтобы сбросить"
msgid "TAB to select"
msgstr "TAB, чтобы выбрать"
msgid "[Default value: 0] > "
msgstr "[Значение по умолчанию: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "Чтобы иметь возможность использовать этот перевод, пожалуйста, установите вручную шрифт, поддерживающий данный язык."
msgid "The font should be stored as {}"
msgstr "Шрифт должен быть сохранен как {}"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Для запуска Archinstall требуются привилегии root. Для получения дополнительной информации смотрите --help."
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 "Профили должны иметь уникальное имя, но найдены определения профиля с дублирующимся именем: {}"
msgid "Select one or more devices to use and configure"
msgstr "Выберите одно или несколько устройств для использования и настройки"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "Если вы сбросите выбор устройства, это также сбросит текущую разметку дисков. Вы уверены?"
msgid "Existing Partitions"
msgstr "Существующие разделы"
msgid "Select a partitioning option"
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"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "Это список предварительно запрограммированных профилей, они могут облегчить установку таких вещей, как окружения рабочего стола"
msgid "Current profile selection"
msgstr "Текущий выбор профиля"
msgid "Remove all newly added partitions"
msgstr "Удалить все вновь добавленные разделы"
msgid "Assign mountpoint"
msgstr "Назначить точку монтирования"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "Пометить/снять отметку для форматирования (стирание данных)"
msgid "Mark/Unmark as bootable"
msgstr "Пометить/снять пометку как загрузочный"
msgid "Change filesystem"
msgstr "Изменить файловую систему"
msgid "Mark/Unmark as compressed"
msgstr "Пометить/снять отметку как сжатый"
msgid "Set subvolumes"
msgstr "Установить подтома"
msgid "Delete partition"
msgstr "Удалить раздел"
msgid "Partition"
msgstr "Раздел"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "Этот раздел в настоящее время зашифрован, для его форматирования необходимо указать файловую систему"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "Точки монтирования разделов являются относительными внутри установки, например, загрузочный раздел будет /boot."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "Если установлена точка монтирования /boot, то раздел также будет помечен как загрузочный."
msgid "Mountpoint: "
msgstr "Точка монтирования: "
msgid "Current free sectors on device {}:"
msgstr "Текущие свободные секторы на устройстве {}:"
msgid "Total sectors: {}"
msgstr "Всего секторов: {}"
msgid "Enter the start sector (default: {}): "
msgstr "Введите начальный сектор (по умолчанию: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
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 "Весь размер: {}"
msgid "Encryption type"
msgstr "Тип шифрования"
msgid "Iteration time"
msgstr ""
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr ""
msgid "Higher values increase security but slow down boot time"
msgstr ""
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr ""
msgid "Iteration time cannot be empty"
msgstr ""
msgid "Iteration time must be at least 100ms"
msgstr ""
msgid "Iteration time must be at most 120000ms"
msgstr ""
msgid "Please enter a valid number"
msgstr ""
msgid "Partitions"
msgstr "Разделы"
msgid "No HSM devices available"
msgstr "Нет доступных устройств HSM"
msgid "Partitions to be encrypted"
msgstr "Разделы, подлежащие шифрованию"
msgid "Select disk encryption option"
msgstr "Выбрать вариант шифрования диска"
msgid "Select a FIDO2 device to use for HSM"
msgstr "Выберите устройство FIDO2 для использования в качестве HSM"
msgid "Use a best-effort default partition layout"
msgstr "Использовать оптимальную схему разделов по умолчанию"
msgid "Manual Partitioning"
msgstr "Ручное разбиение на разделы"
msgid "Pre-mounted configuration"
msgstr "Предварительно смонтированная конфигурация"
msgid "Unknown"
msgstr "Неизвестно"
msgid "Partition encryption"
msgstr "Шифрование раздела"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! Форматирование {} в "
msgid "← Back"
msgstr "← Назад"
msgid "Disk encryption"
msgstr "Шифрование диска"
msgid "Configuration"
msgstr "Конфигурация"
msgid "Password"
msgstr "Пароль"
msgid "All settings will be reset, are you sure?"
msgstr "Все настройки будут сброшены, вы уверены?"
msgid "Back"
msgstr "Назад"
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr "Пожалуйста, выберите, какой экран приветствия установить для выбранных профилей: {}"
#, python-brace-format
msgid "Environment type: {}"
msgstr "Тип окружения рабочего стола: {}"
msgid "The proprietary Nvidia driver is not supported by Sway. It is likely that you will run into issues, are you okay with that?"
msgstr "Проприетарный драйвер Nvidia не поддерживается Sway. Вполне вероятно, что вы столкнетесь с проблемами, вы согласны с этим?"
msgid "Installed packages"
msgstr "Устанавливаемые пакеты"
msgid "Add profile"
msgstr "Добавить профиль"
msgid "Edit profile"
msgstr "Изменить профиль"
msgid "Delete profile"
msgstr "Удалить профиль"
msgid "Profile name: "
msgstr "Имя профиля: "
msgid "The profile name you entered is already in use. Try again"
msgstr "Введенное вами имя профиля уже используется. Попробуйте еще раз"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "Пакеты, которые будут установлены с этим профилем (разделенные пробелами, оставьте пустым, чтобы пропустить): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "Службы, которые должны быть включены с помощью этого профиля (разделенные пробелами, оставьте пустым, чтобы пропустить): "
msgid "Should this profile be enabled for installation?"
msgstr "Должен ли этот профиль быть включен для установки?"
msgid "Create your own"
msgstr "Создать свой собственный"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"Выберите графический драйвер или оставьте пустым, чтобы установить все драйверы с открытым исходным кодом"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway необходим доступ к вашему компьютеру (набор аппаратных устройств, т.е. клавиатура, мышь и т.д.)"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Выберите опцию, чтобы предоставить Sway доступ к вашему оборудованию"
msgid "Graphics driver"
msgstr "Графический драйвер"
msgid "Greeter"
msgstr "Экран приветствия"
msgid "Please chose which greeter to install"
msgstr "Пожалуйста, выберите, какой экран приветствия установить"
msgid "This is a list of pre-programmed default_profiles"
msgstr "Это список запрограммированных по умолчанию профилей"
msgid "Disk configuration"
msgstr "Конфигурация диска"
msgid "Profiles"
msgstr "Профили"
msgid "Finding possible directories to save configuration files ..."
msgstr "Поиск возможных каталогов для сохранения файлов конфигурации ..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "Выберите каталог (или каталоги) для сохранения файлов конфигурации"
msgid "Add a custom mirror"
msgstr "Добавить пользовательское зеркало"
msgid "Change custom mirror"
msgstr "Изменить пользовательское зеркало"
msgid "Delete custom mirror"
msgstr "Удалить пользовательское зеркало"
msgid "Enter name (leave blank to skip): "
msgstr "Введите имя (оставьте пустым, чтобы пропустить): "
msgid "Enter url (leave blank to skip): "
msgstr "Введите адрес (оставьте пустым, чтобы пропустить): "
msgid "Select signature check option"
msgstr "Выбрать вариант проверки подписи"
msgid "Select signature option"
msgstr "Выбрать вариант подписи"
msgid "Custom mirrors"
msgstr "Пользовательские зеркала"
msgid "Defined"
msgstr "Определено"
msgid "Save user configuration (including disk layout)"
msgstr "Сохранить конфигурацию пользователя (включая разметку диска)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"Введите каталог для сохранения конфигурации (-ций) (включено заполнение вкладок)\n"
"Каталог сохранения: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"Хотите ли вы сохранить {} файл(-а) конфигурации в следующем месте?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "Сохранение {} файла(-ов) конфигурации в {}"
msgid "Mirrors"
msgstr "Зеркала"
msgid "Mirror regions"
msgstr "Регионы зеркала"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - Максимальное значение: {} ( Позволяет {} параллельных загрузок, позволяет {max_downloads+1} загрузок одновременно )"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "Неверный ввод! Повторите попытку с правильным вводом [1 - {}, или 0 - отключить]"
msgid "Locales"
msgstr "Локализации"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "Использовать NetworkManager (необходим для графической настройки интернета в GNOME и KDE)"
msgid "Total: {} / {}"
msgstr "Весь размер: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "Все вводимые значения могут иметь суффикс с единицей измерения: Б, Кб, КиБ, Мб, МиБ..."
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "Если единица измерения не указана, то значение интерпретируется как сектор"
msgid "Enter start (default: sector {}): "
msgstr "Введите начало (по умолчанию: сектор {}): "
msgid "Enter end (default: {}): "
msgstr "Введите конец (по умолчанию: сектор {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "Невозможно определить устройства fido2. Установлена ли libfido2?"
msgid "Path"
msgstr "Путь"
msgid "Manufacturer"
msgstr "Производитель"
msgid "Product"
msgstr "Продукт"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "Неверная конфигурация: {error}"
msgid "Type"
msgstr "Тип"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "Этот параметр определяет количество параллельных загрузок, которые могут происходить во время загрузки пакетов"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"Введите количество параллельных загрузок, которые будут включены.\n"
"\n"
"Примечание:\n"
#, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr " - Максимальное рекомендуемое значение: {} ( Позволяет {} параллельных загрузок одновременно )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - Отключить/по умолчанию: 0 ( Отключает параллельную загрузку, позволяет только 1 загрузку за один раз )\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "Неверный ввод! Повторите попытку с правильным вводом [ или 0, чтобы отключить ]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Hyprland необходим доступ к вашему компьютеру ( набор аппаратных устройств, т.е. клавиатура, мышь и т.д. )"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Выберите опцию, чтобы предоставить Hyprland доступ к вашему оборудованию"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "Все вводимые значения могут иметь суффикс с единицей измерения: %, Б, Кб, КиБ, Мб, МиБ..."
msgid "Would you like to use unified kernel images?"
msgstr "Хотите ли Вы использовать унифицированные образы ядра?"
msgid "Unified kernel images"
msgstr "Унифицированные образы ядра"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "Ожидание завершения синхронизации времени (timedatectl show)."
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Синхронизация времени не завершена, пока вы ждете - проверьте документацию на предмет обходных путей: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "Пропуск ожидания автоматической синхронизации времени (это может привести к проблемам, если время не синхронизируется во время установки)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "Ожидание завершения синхронизации связки ключей Arch Linux (archlinux-keyring-wkd-sync)."
msgid "Selected profiles: "
msgstr "Выбранные профили: "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Синхронизация времени не завершена, пока вы ждете - проверьте документацию на предмет обходных путей: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "Пометить/снять пометку как nodatacow"
msgid "Would you like to use compression or disable CoW?"
msgstr "Хотите ли вы использовать сжатие или отключить CoW?"
msgid "Use compression"
msgstr "Использовать сжатие"
msgid "Disable Copy-on-Write"
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 "Тип конфигурации: {}"
msgid "LVM configuration type"
msgstr "Тип конфигурации LVM"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "Шифрование дисков LVM с более чем 2 разделами в настоящее время не поддерживается"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "Использовать NetworkManager (необходим для графической настройки интернета в GNOME и KDE Plasma)"
msgid "Select a LVM option"
msgstr "Выберите вариант LVM"
msgid "Partitioning"
msgstr "Разбивка на разделы"
msgid "Logical Volume Management (LVM)"
msgstr "Управление логическими томами (LVM)"
msgid "Physical volumes"
msgstr "Физические тома"
msgid "Volumes"
msgstr "Тома"
msgid "LVM volumes"
msgstr "Тома LVM"
msgid "LVM volumes to be encrypted"
msgstr "Тома LVM, подлежащие шифрованию"
msgid "Select which LVM volumes to encrypt"
msgstr "Выберите тома LVM для шифрования"
msgid "Default layout"
msgstr "Разметка по умолчанию"
msgid "No Encryption"
msgstr "Нет шифрования"
msgid "LUKS"
msgstr "LUKS"
msgid "LVM on LUKS"
msgstr "LVM на LUKS"
msgid "LUKS on LVM"
msgstr "LUKS на LVM"
msgid "Yes"
msgstr "Да"
msgid "No"
msgstr "Нет"
msgid "Archinstall help"
msgstr "Справка Archinstall"
msgid " (default)"
msgstr " (по умолчанию)"
msgid "Press Ctrl+h for help"
msgstr "Нажмите Ctrl+h для справки"
msgid "Choose an option to give Sway access to your hardware"
msgstr "Выберите опцию, чтобы предоставить Sway доступ к вашему оборудованию"
msgid "Seat access"
msgstr "Доступ к месту"
msgid "Mountpoint"
msgstr "Точка монтирования"
msgid "HSM"
msgstr "HSM"
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "Введите пароль шифрования диска (оставьте пустым для отсутствия шифрования)"
msgid "Disk encryption password"
msgstr "Пароль шифрования диска"
msgid "Partition - New"
msgstr "Раздел - Новый"
msgid "Filesystem"
msgstr "Файловая система"
msgid "Invalid size"
msgstr "Недопустимый размер"
msgid "Start (default: sector {}): "
msgstr "Начало (по умолчанию: сектор {}): "
msgid "End (default: {}): "
msgstr "Конец (по умолчанию: сектор {}): "
msgid "Subvolume name"
msgstr "Имя подтома"
msgid "Disk configuration type"
msgstr "Тип конфигурации диска"
msgid "Root mount directory"
msgstr "Корневой каталог для монтирования"
msgid "Select language"
msgstr "Выбрать язык"
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "Напишите дополнительные пакеты для установки (разделите пробелами, оставьте пустым, чтобы пропустить)"
msgid "Invalid download number"
msgstr "Недопустимое количество загрузок"
msgid "Number downloads"
msgstr "Количество загрузок"
msgid "The username you entered is invalid"
msgstr "Введенное вами имя пользователя недействительно"
msgid "Username"
msgstr "Имя пользователя"
#, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "Должен ли \"{}\" быть суперпользователем (sudo)?\n"
msgid "Interfaces"
msgstr "Интерфейсы"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "Вам необходимо ввести действительный IP-адрес в режиме IP-конфигурации"
msgid "Modes"
msgstr "Режимы"
msgid "IP address"
msgstr "IP-адрес"
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "Введите IP-адрес вашего шлюза (маршрутизатора) (оставьте пустым, если его нет)"
msgid "Gateway address"
msgstr "Адрес шлюза"
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "Введите ваши DNS-серверы, разделяя их пробелами (оставьте пустым, если их нет)"
msgid "DNS servers"
msgstr "DNS-серверы"
msgid "Configure interfaces"
msgstr "Настройка интерфейсов"
msgid "Kernel"
msgstr "Ядро"
msgid "UEFI is not detected and some options are disabled"
msgstr "UEFI не обнаружен и некоторые опции отключены"
msgid "Info"
msgstr "Информация"
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "Проприетарный драйвер Nvidia не поддерживается Sway."
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "Вполне вероятно, что вы столкнетесь с проблемами, вы согласны с этим?"
msgid "Main profile"
msgstr "Главный профиль"
msgid "Confirm password"
msgstr "Подтвердить пароль"
msgid "The confirmation password did not match, please try again"
msgstr "Пароль подтверждения не совпал, попробуйте еще раз"
msgid "Not a valid directory"
msgstr "Недействительный каталог"
msgid "Would you like to continue?"
msgstr "Вы хотите продолжить?"
msgid "Directory"
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 "Хотите ли вы сохранить файл(ы) конфигурации в {}?"
msgid "Enabled"
msgstr "Включено"
msgid "Disabled"
msgstr "Выключено"
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr "Пожалуйста, отправьте эту проблему (и файл) по адресу https://github.com/archlinux/archinstall/issues"
msgid "Mirror name"
msgstr "Название зеркала"
msgid "Url"
msgstr "URL-адрес"
msgid "Select signature check"
msgstr "Выберите проверку подписи"
msgid "Select execution mode"
msgstr "Выберите режим выполнения"
msgid "Press ? for help"
msgstr "Нажмите ? для справки"
msgid "Choose an option to give Hyprland access to your hardware"
msgstr "Выберите опцию, чтобы предоставить Hyprland доступ к вашему оборудованию"
msgid "Additional repositories"
msgstr "Дополнительные репозитории"
msgid "NTP"
msgstr "NTP"
msgid "Swap on zram"
msgstr "Подкачка на zram"
msgid "Name"
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 "Размер (по умолчанию: {}): "
msgid "HSM device"
msgstr "Устройство HSM"
msgid "Some packages could not be found in the repository"
msgstr "Некоторые пакеты не найдены в репозитории"
msgid "User"
msgstr "Пользователь"
msgid "The specified configuration will be applied"
msgstr "Будет применена указанная конфигурация"
msgid "Wipe"
msgstr ""
#, fuzzy
msgid "Mark/Unmark as XBOOTLDR"
msgstr "Пометить/снять пометку как загрузочный"
#, fuzzy
msgid "Loading packages..."
msgstr "Дополнительные пакеты"
msgid "Select any packages from the below list that should be installed additionally"
msgstr ""
#, fuzzy
msgid "Add a custom repository"
msgstr "Добавить пользовательское зеркало"
#, fuzzy
msgid "Change custom repository"
msgstr "Изменить пользовательское зеркало"
#, fuzzy
msgid "Delete custom repository"
msgstr "Удалить пользовательское зеркало"
#, fuzzy
msgid "Repository name"
msgstr "Название зеркала"
#, fuzzy
msgid "Add a custom server"
msgstr "Добавить пользовательское зеркало"
#, fuzzy
msgid "Change custom server"
msgstr "Изменить пользовательское зеркало"
#, fuzzy
msgid "Delete custom server"
msgstr "Удалить пользовательское зеркало"
msgid "Server url"
msgstr ""
#, fuzzy
msgid "Select regions"
msgstr "Выбрать вариант подписи"
#, fuzzy
msgid "Add custom servers"
msgstr "Добавить пользовательское зеркало"
#, fuzzy
msgid "Add custom repository"
msgstr "Добавить пользовательское зеркало"
#, fuzzy
msgid "Loading mirror regions..."
msgstr "Регионы зеркала"
#, fuzzy
msgid "Mirrors and repositories"
msgstr "Дополнительные репозитории"
#, fuzzy
msgid "Selected mirror regions"
msgstr "Регионы зеркала"
#, fuzzy
msgid "Custom servers"
msgstr "Пользовательские зеркала"
#, fuzzy
msgid "Custom repositories"
msgstr "Дополнительные репозитории"
msgid "Only ASCII characters are supported"
msgstr ""
msgid "Show help"
msgstr ""
msgid "Exit help"
msgstr ""
msgid "Preview scroll up"
msgstr ""
msgid "Preview scroll down"
msgstr ""
msgid "Move up"
msgstr ""
msgid "Move down"
msgstr ""
msgid "Move right"
msgstr ""
msgid "Move left"
msgstr ""
msgid "Jump to entry"
msgstr ""
msgid "Skip selection (if available)"
msgstr ""
msgid "Reset selection (if available)"
msgstr ""
#, fuzzy
msgid "Select on single select"
msgstr "Выберите проверку подписи"
#, fuzzy
msgid "Select on multi select"
msgstr "Выберите часовой пояс"
msgid "Reset"
msgstr ""
#, fuzzy
msgid "Skip selection menu"
msgstr "Выберите режим выполнения"
msgid "Start search mode"
msgstr ""
msgid "Exit search mode"
msgstr ""
#, fuzzy
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway необходим доступ к вашему компьютеру (набор аппаратных устройств, т.е. клавиатура, мышь и т.д.)"
#, fuzzy
msgid "Choose an option to give labwc access to your hardware"
msgstr "Выберите опцию, чтобы предоставить Sway доступ к вашему оборудованию"
#, fuzzy
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway необходим доступ к вашему компьютеру (набор аппаратных устройств, т.е. клавиатура, мышь и т.д.)"
#, fuzzy
msgid "Choose an option to give niri access to your hardware"
msgstr "Выберите опцию, чтобы предоставить Sway доступ к вашему оборудованию"
#, fuzzy
msgid "Mark/Unmark as ESP"
msgstr "Пометить/снять пометку как загрузочный"
msgid "Package group:"
msgstr ""
#, fuzzy
msgid "Exit archinstall"
msgstr "Справка Archinstall"
#, fuzzy
msgid "Reboot system"
msgstr "Файловая система"
#, fuzzy
msgid "chroot into installation for post-installation configurations"
msgstr "Хотите ли вы использовать chroot в новой созданной установке и выполнить настройку после установки?"
msgid "Installation completed"
msgstr ""
#, fuzzy
msgid "What would you like to do next?"
msgstr "Вы хотите продолжить?"
#, fuzzy, python-brace-format
msgid "Select which mode to configure for \"{}\""
msgstr "Выберите режим для конфигурации \"{}\" или пропустите, чтобы использовать режим по умолчанию \"{}\"."
#, fuzzy
msgid "Incorrect credentials file decryption password"
msgstr "Пароль шифрования диска"
#, fuzzy
msgid "Incorrect password"
msgstr "Пароль root"
#, fuzzy
msgid "Credentials file decryption password"
msgstr "Пароль шифрования диска"
#, fuzzy
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr "Хотите ли вы сохранить файл(ы) конфигурации в {}?"
#, fuzzy
msgid "Credentials file encryption password"
msgstr "Пароль шифрования диска"
#, 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 "Print service"
msgstr ""
#, fuzzy
msgid "Would you like to configure the print service?"
msgstr "Вы хотите продолжить?"
#, fuzzy
msgid "Power management"
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 ""
msgid "Starting device modifications in "
msgstr ""
#, fuzzy
msgid "No network connection found"
msgstr "Нет сетевой конфигурации"
#, fuzzy
msgid "Would you like to connect to a Wifi?"
msgstr "Вы хотите продолжить?"
#, fuzzy
msgid "No wifi interface found"
msgstr "Настройка интерфейсов"
#, fuzzy
msgid "Select wifi network to connect to"
msgstr "Выберите один сетевой интерфейс для настройки"
msgid "Scanning wifi networks..."
msgstr ""
#, fuzzy
msgid "No wifi networks found"
msgstr "Нет сетевой конфигурации"
msgid "Failed setting up wifi"
msgstr ""
#, fuzzy
msgid "Enter wifi password"
msgstr "Введите пароль: "
msgid "Ok"
msgstr ""
msgid "Removable"
msgstr ""
msgid "Install to removable location"
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr ""
msgid "Will install to standard location with NVRAM entry"
msgstr ""
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr ""
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr ""
msgid "USB drives or other portable external media."
msgstr ""
msgid "Systems where you want the disk to be bootable on any computer."
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr ""
msgid "Will install to custom location with NVRAM entry"
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr ""
msgid "most Apple Macs, many laptops..."
msgstr ""
#, fuzzy
msgid "Language"
msgstr "Язык локали"
msgid "Compression algorithm"
msgstr ""
#, fuzzy
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Устанавливаются только такие пакеты, как base, base-devel, linux, linux-firmware, efibootmgr и дополнительные пакеты профиля."
#, fuzzy
msgid "Select zram compression algorithm:"
msgstr "Выберите точку монтирования:"
msgid "Use Network Manager (default backend)"
msgstr ""
msgid "Use Network Manager (iwd backend)"
msgstr ""
================================================
FILE: archinstall/locales/sv/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.8\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] En logg-fil har skapats här: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Vänligen rapportera detta fel (och logg-filen) till https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "Vill du verkligen avbryta?"
msgid "And one more time for verification: "
msgstr "Och en gång till för verifikation: "
msgid "Would you like to use swap on zram?"
msgstr "Vill du använda swap under zram?"
msgid "Desired hostname for the installation: "
msgstr "Önskat 'värdnamn' för din installation: "
msgid "Username for required superuser with sudo privileges: "
msgstr "Användarnamn för obligatoriska superanvändaren med sudo rättigheter: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "Några ytterligare användare att installera (lämna tomt när du är klar): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "Är detta en superanvändare (sudo-rättigheter)?"
msgid "Select a timezone"
msgstr "Välj en tidszon"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "Vill du använda GRUB istället för systemd-boot som boot-loader?"
msgid "Choose a bootloader"
msgstr "Välj en boot-loader"
msgid "Choose an audio server"
msgstr "Välj en ljud-server"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Enbart paket som base, base-devel, linux, linux-firmware, efibootmgr och självvalda paket är installerade."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr "Observera: base-devel kommer inte att installeras längre som standard. Lägg till det här om du behöver byggverktyg."
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "Om du önskar en webbläsare, exempelvis firefox eller chromium, bör du skriva in dom i följande fält."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "Skriv in ytterligare paket som skall installeras (separerade med mellanslag, lämna tomt för att skippa): "
msgid "Copy ISO network configuration to installation"
msgstr "Kopiera nätverkskonfigurationen från ISO till installationen"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "Använd NetworkManager (nödvändigt för att konfigurera internet i grafiska miljöerna GNOME och KDE)"
msgid "Select one network interface to configure"
msgstr "Välj ett nätverkskort för konfigurering"
msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
msgstr "Välj vilket läge att konfigurera för \"{}\" eller använd standardläge \"{}\""
#, python-brace-format
msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): "
msgstr "Mata in IP och subnät för {} (exempelvis: 192.168.0.5/24): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "Mata in IP-adress till gateway (router) eller lämna tomt för inget: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "Mata in DNS-servrar (separerade med mellanslag, lämna tomt för inget): "
msgid "Select which filesystem your main partition should use"
msgstr "Välj vilket filsystem din huvudpartition skall använda"
msgid "Current partition layout"
msgstr "Nuvarande partitionslayout"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"Välj vad du vill göra med\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "Mata in önskad filsystemtyp för partition"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "Ange startplatsen (i delade enheter: s, GB, %, etc. ; standard: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "Ange slutplatsen (i delade enheter: s, GB, %, etc. ; ex: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} innehåller uppköade partitioner, detta tar bort dessa, är du säker?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"Välj vilket partitionsindex du vill ta bort"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"Välj vilket partitionsindex du vill montera vart"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * Partitionens monteringsplats är relativa till insidan av installationen, boot är exempelvis /boot."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "Välj vart du vill montera partitionen (lämna tomt för att ta bort montering): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"Välj vilken partition som skall markeras för formatering"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"Välj vilken partition som skall markeras för kryptering"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"Välj vilken partition som skall markeras som bootbar"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"Välj vilken partition som du vill välja filsystem till"
msgid "Enter a desired filesystem type for the partition: "
msgstr "Mata in ett önskat filsystem för partitionen: "
msgid "Archinstall language"
msgstr "Språk för detta gränssnitt"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "Töm alla partitioner och använd en generiskt rekommenderad partitionslayout"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "Välj vad som skall hända med varje individuell disk (följt av partitionsanvändning)"
msgid "Select what you wish to do with the selected block devices"
msgstr "Välj vad du önskar göra med valda blockenheterna"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "Detta är en lista med förprogrammerade profiler, dom kan göra installation av exempelvis skrivbordsmiljöer lite enklare"
msgid "Select keyboard layout"
msgstr "Välj tangentbordslayout"
msgid "Select one of the regions to download packages from"
msgstr "Välj en av regionerna för att ladda ner paket ifrån"
msgid "Select one or more hard drives to use and configure"
msgstr "Välj en eller flera hårddiskar som skall användas och konfigureras"
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 bästa kompabilitet med din AMD-hårdvara, vill du förmodligen använda antingen \"öppen mjukvara\" eller \"AMD/ATI\" valet."
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 bästa kompabilitet med din Intel-hårdvara, vill du förmodligen använda antingen \"öppen mjukvara\" eller \"Intel\" valet.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "För bästa kompabilitet med din nVidia-hårdvara, vill du förmodligen använda antingen \"nVidia proprietär drivrutin\".\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Välj en grafikdrivrutin eller lämna blankt för att installera alla med öppen mjukvara"
msgid "All open-source (default)"
msgstr "Alla med öppen mjukvara (standardvalet)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "Välj vilken Linux-kärna du vill använda, lämna tomt för att använda \"{}\""
msgid "Choose which locale language to use"
msgstr "Välj vilket språk du vill använda"
msgid "Choose which locale encoding to use"
msgstr "Välj vilken teckenuppsättning du vill använda"
msgid "Select one of the values shown below: "
msgstr "Välj en av alternativen nedan: "
msgid "Select one or more of the options below: "
msgstr "Välj ett eller flera av följande val: "
msgid "Adding partition...."
msgstr "Skapar en partition...."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "Du måste mata in en supporterad filsystem-typ för att fortsätta. Kör `man parted` för supporterade filsystem."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "Fel: Listning av profiler på \"{}\" resulterade i:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "Fel: Kunde inte tyda \"{}\" resultatet som JSON:"
msgid "Keyboard layout"
msgstr "Tangentbordslayout"
msgid "Mirror region"
msgstr "Region för paketsynk"
msgid "Locale language"
msgstr "Språk du vill använda"
msgid "Locale encoding"
msgstr "Teckenuppsättning du vill använda"
msgid "Drive(s)"
msgstr "Hårddisk(ar)"
msgid "Disk layout"
msgstr "Disklayout"
msgid "Encryption password"
msgstr "Krypterings-lösenord"
msgid "Swap"
msgstr "Swap"
msgid "Bootloader"
msgstr "Boot-loader"
msgid "Root password"
msgstr "Root-lösenord"
msgid "Superuser account"
msgstr "Superanvändar-konto"
msgid "User account"
msgstr "Användarkonto"
msgid "Profile"
msgstr "Profil"
msgid "Audio"
msgstr "Ljud mjukvara"
msgid "Kernels"
msgstr "Linux-kärnor"
msgid "Additional packages"
msgstr "Extra paket"
msgid "Network configuration"
msgstr "Nätverkskonfiguration"
msgid "Automatic time sync (NTP)"
msgstr "Automatisk tidssynk (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "Installera ({} inställningar saknas)"
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 ""
"Du valde att hoppa över hårddiskvalet.\n"
"Archinstall kommer därför använda vad som finns monterat under {} (experimentell)!\n"
"Varning: Archinstall kommer inte kontrollera lämpligheten i diskvalet.\n"
"Vill du fortsätta?"
msgid "Re-using partition instance: {}"
msgstr "Återanvänder disk-instans: {}"
msgid "Create a new partition"
msgstr "Skapa en ny partition"
msgid "Delete a partition"
msgstr "Ta bort en partition"
msgid "Clear/Delete all partitions"
msgstr "Rensa/Ta bort alla partitioner"
msgid "Assign mount-point for a partition"
msgstr "Välj monteringspunkt för en partition"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "Markera/Avmarkera en partition för formatering (tar bort alla dess data)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "Markera/Avmarkera en partition som krypterad"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "Markera/Avmarkera en partition som bootbar (automatiskt gjort för /boot)"
msgid "Set desired filesystem for a partition"
msgstr "Sätt önskat filsystem för partitionen"
msgid "Abort"
msgstr "Avbryt"
msgid "Hostname"
msgstr "Värdnamn"
msgid "Not configured, unavailable unless setup manually"
msgstr "Inte konfigurerad, otillgängligt utan manuell konfigurering"
msgid "Timezone"
msgstr "Tidszon"
msgid "Set/Modify the below options"
msgstr "Sätt eller modifiera nedan alternativ"
msgid "Install"
msgstr "Installera"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"Använd ESC för att hoppa över\n"
"\n"
msgid "Suggest partition layout"
msgstr "Rekommendera en partitionslayout"
msgid "Enter a password: "
msgstr "Mata in ett lösenord: "
msgid "Enter a encryption password for {}"
msgstr "Mata in ett krypterings-lösenord för {}"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "Mata in ett disk-krypteringslösenord (lämna blankt för att hoppa över kryptering): "
msgid "Create a required super-user with sudo privileges: "
msgstr "Skapa ett super-användarkonto med sudo-rättigheter (detta är ett krav): "
msgid "Enter root password (leave blank to disable root): "
msgstr "Mata in ett root-lösenord (lämna blankt för att deaktivera kontot): "
msgid "Password for user \"{}\": "
msgstr "Lösenord för användare \"{}\": "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "Verifierar att valda paket existerar (detta kan ta några sekunder)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "Skulle du vilja använda automatisk tidssynkronisering (NTP) med standard-tidsservrar?\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 ""
"Hårdvaru-tid och annan efterkonfigurering kan behövas för att NTP skall fungera korrekt.\n"
"För mer information, se Arch Wiki-sidan"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "Mata in ett användarnamn för att skapa ytterligare användare (lämna tomt för att hoppa över): "
msgid "Use ESC to skip\n"
msgstr "Använd ESC för att hoppa över\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
"Välj ett objekt från listan, och välj en åtgärd att exekvera"
msgid "Cancel"
msgstr "Avbryt"
msgid "Confirm and exit"
msgstr "Godkänn och gå ur"
msgid "Add"
msgstr "Lägg till"
msgid "Copy"
msgstr "Kopiera"
msgid "Edit"
msgstr "Editera"
msgid "Delete"
msgstr "Ta bort"
msgid "Select an action for '{}'"
msgstr "Välj vad du vill göra med '{}'"
msgid "Copy to new key:"
msgstr "Kopiera till en ny nyckel:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "Okänd NIC typ: {}. Möjliga val är {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"Det här är din valda konfiguration:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman körs redan, väntar max 10 minuter innan vi avbryter."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "Existerande pacman-lås avslutades aldrig. Vänligen rensa upp föregående körningar av pacman-sessioner innan du använder archinstall."
msgid "Choose which optional additional repositories to enable"
msgstr "Välj vilka frivilliga arkiv som ska aktiveras"
msgid "Add a user"
msgstr "Lägg till användare"
msgid "Change password"
msgstr "Byt lösenord"
msgid "Promote/Demote user"
msgstr "Befodra/Degradera användare"
msgid "Delete User"
msgstr "Ta bort användare"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"Skapa ny användare\n"
msgid "User Name : "
msgstr "Användarnamn : "
msgid "Should {} be a superuser (sudoer)?"
msgstr "Är detta en superanvändare (sudo-rättigheter)?"
msgid "Define users with sudo privilege: "
msgstr "Skapa användare med sudo-rättigheter: "
msgid "No network configuration"
msgstr "Ingen nätverkskonfigurering"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Välj önskade sub-volymen på en BTRFS partition"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"Välj vilken partition som du ska sätta sub-volymer på"
msgid "Manage btrfs subvolumes for current partition"
msgstr "Managera BTRFS sub-volymer på nuvarande partition"
msgid "No configuration"
msgstr "Ingen konfiguration"
msgid "Save user configuration"
msgstr "Spara användarkonfigurering"
msgid "Save user credentials"
msgstr "Spara användar-/lösenordsuppgifter"
msgid "Save disk layout"
msgstr "Spara disk konfigurering"
msgid "Save all"
msgstr "Spara alla"
msgid "Choose which configuration to save"
msgstr "Välj vilken konfigurering du vill spara"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "Välj vilken mapp du vill spara konfigurerationerna till: "
msgid "Not a valid directory: {}"
msgstr "Inte en giltig mapp: {}"
msgid "The password you are using seems to be weak,"
msgstr "Lösenordet du angav verkar svagt,"
msgid "are you sure you want to use it?"
msgstr "är du säker på att du vill använda det?"
msgid "Optional repositories"
msgstr "Valfria arkiv"
msgid "Save configuration"
msgstr "Spara konfiguration"
msgid "Missing configurations:\n"
msgstr "Konfigurationer som saknas:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "Antingen måste ett root-lösenord sättas eller 1 superanvändarkonto skapas"
msgid "Manage superuser accounts: "
msgstr "Managera super-användare: "
msgid "Manage ordinary user accounts: "
msgstr "Managera vanliga användarkonton: "
msgid " Subvolume :{:16}"
msgstr " Sub-volym :{:16}"
msgid " mounted at {:16}"
msgstr " Monterad som {:16}"
msgid " with option {}"
msgstr " Med inställningen {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
"Mata in önskvärda värden för nya sub-volymer \n"
msgid "Subvolume name "
msgstr "Namn för Sub-volymen "
msgid "Subvolume mountpoint"
msgstr "Monteringspunkt för sub-volymen"
msgid "Subvolume options"
msgstr "Flaggor för sub-volymen"
msgid "Save"
msgstr "Spara"
msgid "Subvolume name :"
msgstr "Namn på sub-volymen :"
msgid "Select a mount point :"
msgstr "Välj en monteringspunkt :"
msgid "Select the desired subvolume options "
msgstr "Välj önskade inställningar för sub-volymen "
msgid "Define users with sudo privilege, by username: "
msgstr "Definera användarnamn med sudo-rättigheter: "
#, python-brace-format
msgid "[!] A log file has been created here: {}"
msgstr "[!] En logg-fil har skapats här: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "Vill du använda BTRFS sub-volymer med standard-layout?"
msgid "Would you like to use BTRFS compression?"
msgstr "Vill du använda komprimering för BTRFS?"
msgid "Would you like to create a separate partition for /home?"
msgstr "Vill du skapa en separat partition för /home?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "De valda diskarna uppfyller inte minsta lagringskapacitet för automatisk layout-förslag\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "Minsta kapaciteten för /home är: {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Minsta kapaciteten för Arch Linux partitionen är: {}GB"
msgid "Continue"
msgstr "Gå vidare"
msgid "yes"
msgstr "ja"
msgid "no"
msgstr "nej"
msgid "set: {}"
msgstr "sätt: {}"
msgid "Manual configuration setting must be a list"
msgstr "Manuell konfigurering måste vara en lista"
msgid "No iface specified for manual configuration"
msgstr "Inget interface specificerat för manuell konfigurering"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "Manuell NIC-konfiguration utan DHCP kräver en IP adress"
msgid "Add interface"
msgstr "Lägg till interface"
msgid "Edit interface"
msgstr "Editera interface"
msgid "Delete interface"
msgstr "Ta bort interface"
msgid "Select interface to add"
msgstr "Välj ett nätverkskort att lägga till"
msgid "Manual configuration"
msgstr "Manuell konfiguration"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "Markera/Avmarkera en partition för komprimering (BTRFS enbart)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "Lösenordet du angav verkar svagt, är du säker på att du vill använda det?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "Ger ett urval av skrivbordsval och fönsterhanterare, t.ex. Gnome, KDE och sway"
msgid "Select your desired desktop environment"
msgstr "Välj din skrivbordsmiljö"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "En väldigt minimal installation som möjliggör konfigurering av Arch Linux som du själv vill ha det."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "Erbjuder ett urval av olika server-paketeringar, t.ex. httpd, nginx och mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "Välj vilka servrar som ska installeras, om ingen kommer en minimal installation att göras"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "Installerar ett minimal system med xorg och grafikdrivrutiner."
msgid "Press Enter to continue."
msgstr "Tryck på Enter för att fortsätta."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "Vill du hoppa in i det nyligen installerade systemet och utföra förändringar? (skriv 'exit' när du är klart)"
msgid "Are you sure you want to reset this setting?"
msgstr "Vill du verkligen återställa denna inställning?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "Välj en eller flera hårddiskar som skall användas och konfigureras\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "Modiferingar av inställningen kommer återställa disk-konfigureringen!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "Om du återställer hårddiskvalen kommer det också återställa diskuppsättningen. Är du säker?"
msgid "Save and exit"
msgstr "Spara och gå ur"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"innehåller uppköade partitionen och detta kommer ta bort dessa. Är du säker?"
msgid "No audio server"
msgstr "Ingen ljud-server"
msgid "(default)"
msgstr "(standard)"
msgid "Use ESC to skip"
msgstr "Använd ESC för att hoppa över"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"Använd CTRL+C för att återställa valen\n"
"\n"
msgid "Copy to: "
msgstr "Kopiera till: "
msgid "Edit: "
msgstr "Editera: "
msgid "Key: "
msgstr "Nyckel: "
msgid "Edit {}: "
msgstr "Editera {}: "
msgid "Add: "
msgstr "Lägg till: "
msgid "Value: "
msgstr "Värde: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "Du kan hoppa över val av disk och partitionering och använda det som är monterat vid /mnt/archinstall (experimentellt)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "Välj en disk eller hoppa över och använd /mnt/archinstall utan formatering"
msgid "Select which partitions to mark for formatting:"
msgstr "Välj vilken partition som skall markeras för formatering:"
msgid "Use HSM to unlock encrypted drive"
msgstr "Använd HSM för att låsa upp krypterad enhet"
msgid "Device"
msgstr "Enhet"
msgid "Size"
msgstr "Storlek"
msgid "Free space"
msgstr "Fritt utrymme"
msgid "Bus-type"
msgstr "Buss-typ"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "Antingen root-lösenord eller minst 1 användare med sudo-privilegier måste anges"
msgid "Enter username (leave blank to skip): "
msgstr "Ange användarnamn (lämna tomt för att hoppa över): "
msgid "The username you entered is invalid. Try again"
msgstr "Användarnamnet du angav är ogiltigt. Försök igen"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "Ska \"{}\" vara en superanvändare (sudo)?"
msgid "Select which partitions to encrypt"
msgstr "Välj vilka partitioner som ska krypteras"
msgid "very weak"
msgstr "mycket svag"
msgid "weak"
msgstr "svag"
msgid "moderate"
msgstr "måttlig"
msgid "strong"
msgstr "starkt"
msgid "Add subvolume"
msgstr "Lägg till Sub-volym"
msgid "Edit subvolume"
msgstr "Editera Sub-volym"
msgid "Delete subvolume"
msgstr "Ta bort Sub-volym"
msgid "Configured {} interfaces"
msgstr "Konfigurerade {} gränssnitt"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "Detta alternativ aktiverar antalet parallella nedladdningar som kan ske under installationen"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"Ange antalet parallella nedladdningar som ska aktiveras.\n"
" (ange ett värde mellan 1 till {}\n"
"Observera:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - - Maximalt värde: : {} (Tillåter {} parallella nedladdningar, tillåter {} nedladdningar åt gången)"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - Minimalt värde : 1 (Tillåter 1 parallell nedladdning, tillåter 2 nedladdningar åt gången)"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - Inaktivera/Standard: 0 (Inaktiverar parallell nedladdning, tillåter endast en nedladdning åt gången)"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "Ogiltig inmatning! Försök igen med en giltig inmatning [1 till {max_downloads}, eller 0 för att inaktivera]"
msgid "Parallel Downloads"
msgstr "Parallella nedladdningar"
msgid "ESC to skip"
msgstr "ESC för att hoppa över"
msgid "CTRL+C to reset"
msgstr "CTRL+C för att återställa"
msgid "TAB to select"
msgstr "TAB för att välja"
msgid "[Default value: 0] > "
msgstr "[Standardvärde: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "För att kunna använda denna översättning, installera ett teckensnitt manuellt som stöder språket."
msgid "The font should be stored as {}"
msgstr "Teckensnittet ska lagras som {}"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Archinstall kräver root-privilegier för att köras. Se --help för mer."
msgid "Select an execution mode"
msgstr "Välj ett exekveringsläge"
#, python-brace-format
msgid "Unable to fetch profile from specified url: {}"
msgstr "Det gick inte att hämta profilen från angiven webbadress: {}"
#, python-brace-format
msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}"
msgstr "Profiler måste ha ett unikt namn, men profildefinitioner med dubblettnamn hittades: {}"
msgid "Select one or more devices to use and configure"
msgstr "Välj en eller flera enheter att använda och konfigurera"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "Om du återställer enhetsvalet kommer detta också att återställa den aktuella disklayouten. Är du säker?"
msgid "Existing Partitions"
msgstr "Existerande partitioner"
msgid "Select a partitioning option"
msgstr "Välj ett partitioneringsalternativ"
msgid "Enter the root directory of the mounted devices: "
msgstr "Ange rootkatalogen för de monterade enheterna: "
#, python-brace-format
msgid "Minimum capacity for /home partition: {}GiB\n"
msgstr "Minsta kapacitet för /home-partition: {}GiB\n"
#, python-brace-format
msgid "Minimum capacity for Arch Linux partition: {}GiB"
msgstr "Minsta kapacitet för Arch Linux-partition: {}GiB"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "Det här är en lista över förprogrammerade backup profiler, de kan göra det lättare att installera saker som skrivbordsmiljöer"
msgid "Current profile selection"
msgstr "Nuvarande profilval"
msgid "Remove all newly added partitions"
msgstr "Ta bort alla nyligen tillagda partitioner"
msgid "Assign mountpoint"
msgstr "Tilldela monteringspunkt"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "Markera/avmarkera som det som ska formateras (tar bort all data)"
msgid "Mark/Unmark as bootable"
msgstr "Markera/avmarkera som bootbar"
msgid "Change filesystem"
msgstr "Byt filsystem"
msgid "Mark/Unmark as compressed"
msgstr "Markera/avmarkera som komprimerad"
msgid "Set subvolumes"
msgstr "Ställ in subvolymer"
msgid "Delete partition"
msgstr "Ta bort partition"
msgid "Partition"
msgstr "Partition"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "Denna partition är för närvarande krypterad, för att formatera den måste ett filsystem anges"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "Partitionsmonteringspunkter är relativa till inuti installationen, boot skulle vara /boot som ett exempel."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "Om monteringspunkt /boot är inställd kommer partitionen också att markeras som startbar."
msgid "Mountpoint: "
msgstr "Monteringspunkt "
msgid "Current free sectors on device {}:"
msgstr "Aktuella fria sektorer på enheten {}:"
msgid "Total sectors: {}"
msgstr "Totala sektorer: {}"
msgid "Enter the start sector (default: {}): "
msgstr "Ange startsektor (standard: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
msgstr "Ange slutsektorn för partitionen (procent eller blocknummer, standard: {}): "
msgid "This will remove all newly added partitions, continue?"
msgstr "Detta tar bort alla nyligen tillagda partitioner. Fortsätta?"
#, python-brace-format
msgid "Partition management: {}"
msgstr "Partitionshantering: {}"
#, python-brace-format
msgid "Total length: {}"
msgstr "Total längd: {}"
msgid "Encryption type"
msgstr "Krypteringstyp"
msgid "Iteration time"
msgstr "Iterationstid"
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr "Ange iterationstid för LUKS-kryptering (i millisekunder)"
msgid "Higher values increase security but slow down boot time"
msgstr "Högre värde ökar säkerheten men fördröjer uppstartstiden"
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr "Standard: 10000ms, Rekommenderat intervall: 1000-60000"
msgid "Iteration time cannot be empty"
msgstr "Iterationstiden kan inte vara tom"
msgid "Iteration time must be at least 100ms"
msgstr "Iterationstiden måste vara minst 100 ms"
msgid "Iteration time must be at most 120000ms"
msgstr "Iterationstiden får vara högst 120000 ms"
msgid "Please enter a valid number"
msgstr "Var vänlig ange ett giltigt nummer"
msgid "Partitions"
msgstr "Partitioner"
msgid "No HSM devices available"
msgstr "Inga HSM-enheter tillgängliga"
msgid "Partitions to be encrypted"
msgstr "Partitioner som ska krypteras"
msgid "Select disk encryption option"
msgstr "Välj alternativ för diskkryptering"
msgid "Select a FIDO2 device to use for HSM"
msgstr "Välj en FIDO2-enhet att använda för HSM"
msgid "Use a best-effort default partition layout"
msgstr "Använd en generiskt rekommenderad partitionslayout"
msgid "Manual Partitioning"
msgstr "Manuell partitionering"
msgid "Pre-mounted configuration"
msgstr "Förmonterad konfiguration"
msgid "Unknown"
msgstr "Okänd"
msgid "Partition encryption"
msgstr "Partitionskryptering"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! Formaterar {} om "
msgid "← Back"
msgstr "← Tillbaka"
msgid "Disk encryption"
msgstr "Diskkryptering"
msgid "Configuration"
msgstr "Konfiguration"
msgid "Password"
msgstr "Lösenord"
msgid "All settings will be reset, are you sure?"
msgstr "Alla inställningar kommer att återställas, är du säker?"
msgid "Back"
msgstr "Tillbaka"
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr "Vänligen välj vilken displayhanterare du vill installera för de valda profilerna: {}"
#, python-brace-format
msgid "Environment type: {}"
msgstr "Miljötyp: {}"
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 "Den proprietära Nvidia-drivrutinen stöds inte av Sway. Det är troligt att du kommer att stöta på problem, är du okej med det?"
msgid "Installed packages"
msgstr "Installerade paket"
msgid "Add profile"
msgstr "Lägg till profil"
msgid "Edit profile"
msgstr "Redigera profil"
msgid "Delete profile"
msgstr "Ta bort profil"
msgid "Profile name: "
msgstr "Profilnamn: "
msgid "The profile name you entered is already in use. Try again"
msgstr "Profilnamnet du angav används redan. Försök igen"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "Paket som ska installeras med den här profilen (separerade med mellanslag, lämna tomt för att skippa): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "Tjänster som ska aktiveras med den här profilen (separerade med mellanslag, lämna tomt för att skippa): "
msgid "Should this profile be enabled for installation?"
msgstr "Ska denna profil aktiveras för installation?"
msgid "Create your own"
msgstr "Skapa din egen"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"Välj en grafikdrivrutin eller lämna tomt för att installera alla drivrutiner med öppen källkod"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway behöver tillgång till din sitshantering (samling av hårdvaruenheter, t.ex. tangentbord, mus, etc)"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Välj ett alternativ för att ge Sway åtkomst till din hårdvara"
msgid "Graphics driver"
msgstr "Grafik drivrutin"
msgid "Greeter"
msgstr "Displayhanterare"
msgid "Please chose which greeter to install"
msgstr "Välj vilken displayhanterare att installera"
msgid "This is a list of pre-programmed default_profiles"
msgstr "Detta är en lista över förprogrammerade standard_profiler"
msgid "Disk configuration"
msgstr "Diskkonfiguration"
msgid "Profiles"
msgstr "Profiler"
msgid "Finding possible directories to save configuration files ..."
msgstr "Hittar möjliga kataloger att spara konfigurationsfiler i ..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "Välj katalog (eller kataloger) för att spara konfigurationsfiler"
msgid "Add a custom mirror"
msgstr "Lägg till en anpassad spegel"
msgid "Change custom mirror"
msgstr "Ändra anpassad spegel"
msgid "Delete custom mirror"
msgstr "Ta bort anpassad spegel"
msgid "Enter name (leave blank to skip): "
msgstr "Ange namn (lämna tomt för att hoppa över): "
msgid "Enter url (leave blank to skip): "
msgstr "Ange url (lämna tomt för att hoppa över): "
msgid "Select signature check option"
msgstr "Välj signaturkontroll alternativ"
msgid "Select signature option"
msgstr "Välj signaturalternativ"
msgid "Custom mirrors"
msgstr "Anpassade speglar"
msgid "Defined"
msgstr "Definierat"
msgid "Save user configuration (including disk layout)"
msgstr "Spara användarkonfiguration (inklusive disklayout)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"Välj vilken mapp som konfigureratione(rna) ska sparas till TAB-komplettering (aktiverat)\n"
"Sparkatalog: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"Vill du spara {} konfigurationsfil(er) på följande plats?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "Sparar {} konfigurationsfiler till {}"
msgid "Mirrors"
msgstr "Speglar"
msgid "Mirror regions"
msgstr "Spegelregioner"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - Maximalt värde : (Tillåter {} parallella nedladdningar, tillåter {max_downloads+1} nedladdningar åt gången)"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "Ogiltig inmatning! Försök igen med en giltig inmatning [1 till {}, eller 0 för att inaktivera]"
msgid "Locales"
msgstr "Lokaler"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "Använd NetworkManager (nödvändigt för att konfigurera internet grafiskt i GNOME och KDE)"
msgid "Total: {} / {}"
msgstr "Total: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "Alla inmatade värden kan adderas med en enhet: B, KB, KiB, MB, MiB..."
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "Om ingen enhet tillhandahålls tolkas värdet som sektorer"
msgid "Enter start (default: sector {}): "
msgstr "Ange start (standard: sektor {}): "
msgid "Enter end (default: {}): "
msgstr "Ange slut (standard: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "Det går inte att fastställa fido2-enheter. Är libfido2 installerat?"
msgid "Path"
msgstr "Sökväg"
msgid "Manufacturer"
msgstr "Tillverkare"
msgid "Product"
msgstr "Produkt"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "Ogiltig konfiguration: {error}"
msgid "Type"
msgstr "Typ"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "Det här alternativet aktiverar antalet parallella nedladdningar som kan ske under paketnedladdningar"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"Ange antalet parallella nedladdningar som ska aktiveras.\n"
"\n"
"Observera:\n"
#, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr " - Maximalt rekommenderat värde: {} (Tillåter {} parallella nedladdningar åt gången)"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - Inaktivera/Standard: 0 (Inaktiverar parallell nedladdning, tillåter endast en nedladdning åt gången)\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "Ogiltig inmatning! Försök igen med en giltig inmatning [eller 0 för att inaktivera]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Hyprland behöver tillgång till din sitshantering (samling av hårdvaruenheter t.ex. tangentbord, mus, etc)"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Välj ett alternativ för att ge Hyprland åtkomst till din hårdvara"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "Alla inmatade värden kan adderas med en enhet: %, B, KB, KiB, MB, MiB..."
msgid "Would you like to use unified kernel images?"
msgstr "Vill du använda enhetliga kärnavbildningar?"
msgid "Unified kernel images"
msgstr "Enhetliga kärnavbildningar"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "Väntar på att tidssynkroniseringen (timedatectl show) ska slutföras."
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Tidssynkroniseringen slutförs inte medan du väntar - kontrollera dokumentationen för lösningar: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "Hoppa över att vänta på automatisk tidssynkronisering (detta kan orsaka problem om tiden är osynkroniserad under installationen)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "Väntar på att Arch Linux-nyckelringssynkroniseringen (archlinux-keyring-wkd-sync) ska slutföras."
msgid "Selected profiles: "
msgstr "Valda profiler: "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Tidsynkroniseringen slutförs inte medan du väntar - kontrollera dokumentationen för lösningar: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "Markera/avmarkera som nodatacow"
msgid "Would you like to use compression or disable CoW?"
msgstr "Vill du använda komprimering eller inaktivera CoW?"
msgid "Use compression"
msgstr "Använd komprimering"
msgid "Disable Copy-on-Write"
msgstr "Inaktivera Copy-on-Write"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway"
msgstr "Ger ett urval av skrivbordsmiljöer och kaklade fönsterhanterare, t.ex. GNOME, KDE Plasma, Sway"
#, python-brace-format
msgid "Configuration type: {}"
msgstr "Konfigurationstyp: {}"
msgid "LVM configuration type"
msgstr "LVM-konfigurationstyp"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "LVM-diskkryptering med fler än 2 partitioner stöds för närvarande inte"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "Använd NetworkManager (nödvändigt för att konfigurera internet grafiskt i GNOME och KDE Plasma)"
msgid "Select a LVM option"
msgstr "Välj ett LVM-alternativ"
msgid "Partitioning"
msgstr "Partitionering"
msgid "Logical Volume Management (LVM)"
msgstr "Logisk volymhantering (LVM)"
msgid "Physical volumes"
msgstr "Fysiska volymer"
msgid "Volumes"
msgstr "Volymer"
msgid "LVM volumes"
msgstr "LVM-volymer"
msgid "LVM volumes to be encrypted"
msgstr "LVM-volymer som ska krypteras"
msgid "Select which LVM volumes to encrypt"
msgstr "Välj vilka LVM-volymer som ska krypteras"
msgid "Default layout"
msgstr "Standardlayout"
msgid "No Encryption"
msgstr "Ingen kryptering"
msgid "LUKS"
msgstr "LUKS"
msgid "LVM on LUKS"
msgstr "LVM på LUKS"
msgid "LUKS on LVM"
msgstr "LUKS på LVM"
msgid "Yes"
msgstr "Ja"
msgid "No"
msgstr "Nej"
msgid "Archinstall help"
msgstr "Archinstall hjälp"
msgid " (default)"
msgstr " (standard)"
msgid "Press Ctrl+h for help"
msgstr "Tryck på Ctrl+h för hjälp"
msgid "Choose an option to give Sway access to your hardware"
msgstr "Välj ett alternativ för att ge Sway åtkomst till din hårdvara"
msgid "Seat access"
msgstr "Åtkomst av sitshantering"
msgid "Mountpoint"
msgstr "Monteringspunkt"
msgid "HSM"
msgstr "HSM"
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "Mata in ett disk-krypteringslösenord (lämna blankt för att hoppa över kryptering)"
msgid "Disk encryption password"
msgstr "Diskkrypteringslösenord"
msgid "Partition - New"
msgstr "Partition - Ny"
msgid "Filesystem"
msgstr "Filsystem"
msgid "Invalid size"
msgstr "Ogiltig storlek"
msgid "Start (default: sector {}): "
msgstr "Start (standard: sektor {}): "
msgid "End (default: {}): "
msgstr "Slut (standard: {}): "
msgid "Subvolume name"
msgstr "Subvolymens namn"
msgid "Disk configuration type"
msgstr "Diskkonfigurationstyp"
msgid "Root mount directory"
msgstr "Rootmonteringskatalog"
msgid "Select language"
msgstr "Välj språk"
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "Skriv in ytterligare paket som skall installeras (separerade med mellanslag, lämna tomt för att skippa):"
msgid "Invalid download number"
msgstr "Ogiltigt nedladdningsnummer"
msgid "Number downloads"
msgstr "Antal nedladdningar"
msgid "The username you entered is invalid"
msgstr "Användarnamnet du angav är ogiltigt"
msgid "Username"
msgstr "Användarnamn"
#, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "Ska \"{}\" vara en superanvändare (sudo)?\n"
msgid "Interfaces"
msgstr "Gränssnitt"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "Du måste ange en giltig IP i IP-konfigurationsläge"
msgid "Modes"
msgstr "Lägen"
msgid "IP address"
msgstr "IP-adress"
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "Mata in IP-adress till gateway (router) eller lämna tomt för inget"
msgid "Gateway address"
msgstr "Gateway adress"
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "Mata in DNS-servrar (separerade med mellanslag, lämna tomt för inget)"
msgid "DNS servers"
msgstr "DNS-servrar"
msgid "Configure interfaces"
msgstr "Konfigurera gränssnitt"
msgid "Kernel"
msgstr "Kärna"
msgid "UEFI is not detected and some options are disabled"
msgstr "UEFI identifierades inte och vissa alternativ är inaktiverade"
msgid "Info"
msgstr "Information"
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "Den proprietära Nvidia-drivrutinen stöds inte av Sway."
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "Det är troligt att du kommer att stöta på problem, är du okej med det?"
msgid "Main profile"
msgstr "Huvudprofil"
msgid "Confirm password"
msgstr "Bekräfta lösenord"
msgid "The confirmation password did not match, please try again"
msgstr "Bekräftelselösenordet matchade inte, försök igen"
msgid "Not a valid directory"
msgstr "Inte en giltig katalog"
msgid "Would you like to continue?"
msgstr "Vill du fortsätta?"
msgid "Directory"
msgstr "Katalog"
msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)"
msgstr "Ange en katalog för konfigurationen/konfigurationerna som ska sparas (komplettering av flikar aktiverad)"
#, python-brace-format
msgid "Do you want to save the configuration file(s) to {}?"
msgstr "Vill du spara konfigurationsfil(er) till {}?"
msgid "Enabled"
msgstr "Aktiverad"
msgid "Disabled"
msgstr "Inaktiverad"
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr "Vänligen skicka in detta problem (och fil) till https://github.com/archlinux/archinstall/issues"
msgid "Mirror name"
msgstr "Spegelnamn"
msgid "Url"
msgstr "Webbadress"
msgid "Select signature check"
msgstr "Välj signaturkontroll"
msgid "Select execution mode"
msgstr "Välj exekveringsläge"
msgid "Press ? for help"
msgstr "Tryck på ?för hjälp"
msgid "Choose an option to give Hyprland access to your hardware"
msgstr "Välj ett alternativ för att ge Hyprland åtkomst till din hårdvara"
msgid "Additional repositories"
msgstr "Ytterligare arkiv"
msgid "NTP"
msgstr "NTP"
msgid "Swap on zram"
msgstr "Swap på zram"
msgid "Name"
msgstr "Namn"
msgid "Signature check"
msgstr "Signaturkontroll"
#, python-brace-format
msgid "Selected free space segment on device {}:"
msgstr "Valt ledigt utrymmessegment på enheten {}:"
#, python-brace-format
msgid "Size: {} / {}"
msgstr "Storlek: {} / {}"
#, python-brace-format
msgid "Size (default: {}): "
msgstr "Storlek (standard: {}): "
msgid "HSM device"
msgstr "HSM-enhet"
msgid "Some packages could not be found in the repository"
msgstr "Vissa paket kunde inte hittas i arkivet"
msgid "User"
msgstr "Användare"
msgid "The specified configuration will be applied"
msgstr "Den angivna konfigurationen kommer att tillämpas"
msgid "Wipe"
msgstr "Rensa"
msgid "Mark/Unmark as XBOOTLDR"
msgstr "Markera/avmarkera som XBOOTLDR"
msgid "Loading packages..."
msgstr "Laddar paket..."
msgid "Select any packages from the below list that should be installed additionally"
msgstr "Välj alla paket från listan nedan som ska installeras ytterligare"
msgid "Add a custom repository"
msgstr "Lägg till en anpassat arkiv"
msgid "Change custom repository"
msgstr "Ändra anpassat arkiv"
msgid "Delete custom repository"
msgstr "Ta bort anpassat arkiv"
msgid "Repository name"
msgstr "Arkivnamn"
msgid "Add a custom server"
msgstr "Lägg till en anpassad server"
msgid "Change custom server"
msgstr "Ändra anpassad server"
msgid "Delete custom server"
msgstr "Ta bort anpassad server"
msgid "Server url"
msgstr "Server url"
msgid "Select regions"
msgstr "Välj regioner"
msgid "Add custom servers"
msgstr "Lägg till en anpassade servrar"
msgid "Add custom repository"
msgstr "Lägg till ett anpassat arkiv"
msgid "Loading mirror regions..."
msgstr "Laddar spegelregioner..."
msgid "Mirrors and repositories"
msgstr "Speglar och arkiv"
msgid "Selected mirror regions"
msgstr "Valda spegelregioner"
msgid "Custom servers"
msgstr "Anpassade servrar"
msgid "Custom repositories"
msgstr "Anpassade arkiv"
msgid "Only ASCII characters are supported"
msgstr "Endast ASCII-tecken stöds"
msgid "Show help"
msgstr "Visa hjälp"
msgid "Exit help"
msgstr "Avsluta hjälpen"
msgid "Preview scroll up"
msgstr "Förhandsgranska rulla uppåt"
msgid "Preview scroll down"
msgstr "Förhandsgranska rulla nedåt"
msgid "Move up"
msgstr "Flytta upp"
msgid "Move down"
msgstr "Flytta ned"
msgid "Move right"
msgstr "Flytta höger"
msgid "Move left"
msgstr "Flytta vänster"
msgid "Jump to entry"
msgstr "Hoppa till posten"
msgid "Skip selection (if available)"
msgstr "Hoppa över valet (om tillgängligt)"
msgid "Reset selection (if available)"
msgstr "Återställ val (om tillgängligt)"
msgid "Select on single select"
msgstr "Välj på enstaka val"
msgid "Select on multi select"
msgstr "Välj på flerval"
msgid "Reset"
msgstr "Återställ"
msgid "Skip selection menu"
msgstr "Hoppa över valmenyn"
msgid "Start search mode"
msgstr "Starta sökläge"
msgid "Exit search mode"
msgstr "Avsluta sökläge"
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "labwc behöver tillgång till din sitshantering (samling av hårdvaruenheter, t.ex. tangentbord, mus, etc)"
msgid "Choose an option to give labwc access to your hardware"
msgstr "Välj ett alternativ för att ge labwc åtkomst till din hårdvara"
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "niri behöver tillgång till din sitshantering (samling av hårdvaruenheter, t.ex. tangentbord, mus, etc)"
msgid "Choose an option to give niri access to your hardware"
msgstr "Välj ett alternativ för att ge niri åtkomst till din hårdvara"
msgid "Mark/Unmark as ESP"
msgstr "Markera/avmarkera som ESP"
msgid "Package group:"
msgstr "Paketgrupp:"
msgid "Exit archinstall"
msgstr "Avsluta archinstall"
msgid "Reboot system"
msgstr "Starta om systemet"
msgid "chroot into installation for post-installation configurations"
msgstr "chroot in i installationen för efterinstallationskonfigurationer"
msgid "Installation completed"
msgstr "Installationen slutförd"
msgid "What would you like to do next?"
msgstr "Vad vill du göra härnäst?"
#, python-brace-format
msgid "Select which mode to configure for \"{}\""
msgstr "Välj vilket läge att konfigurera för \"{}\""
msgid "Incorrect credentials file decryption password"
msgstr "Felaktigt lösenord för autentiseringsfilens dekrypteringslösenord"
msgid "Incorrect password"
msgstr "Felaktigt lösenord"
msgid "Credentials file decryption password"
msgstr "Dekrypteringslösenord för autentiseringsfil"
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr "Vill du kryptera user_credentials.json filen?"
msgid "Credentials file encryption password"
msgstr "Krypteringslösenord för autentiseringsfil"
#, python-brace-format
msgid "Repositories: {}"
msgstr "Arkiv: {}"
msgid "New version available"
msgstr "Ny version tillgänglig"
msgid "Passwordless login"
msgstr "Lösenordslös inloggning"
msgid "Second factor login"
msgstr "Andra faktorsinloggning"
msgid "Bluetooth"
msgstr "Bluetooth"
msgid "Would you like to configure Bluetooth?"
msgstr "Vill du konfigurera Bluetooth?"
msgid "Print service"
msgstr "Utskriftstjänst"
msgid "Would you like to configure the print service?"
msgstr "Vill du konfigurera utskriftstjänsten?"
msgid "Power management"
msgstr "Strömhantering"
msgid "Authentication"
msgstr "Autentisering"
msgid "Applications"
msgstr "Program"
msgid "U2F login method: "
msgstr "U2F-inloggningsmetod: "
msgid "Passwordless sudo: "
msgstr "Lösenordslös sudo: "
#, python-brace-format
msgid "Btrfs snapshot type: {}"
msgstr "Btrfs-ögonblicksavbildstyp: {}"
msgid "Syncing the system..."
msgstr "Synkroniserar systemet..."
msgid "Value cannot be empty"
msgstr "Värdet kan inte vara tomt"
msgid "Snapshot type"
msgstr "Ögonblicksavbildstyp"
#, python-brace-format
msgid "Snapshot type: {}"
msgstr "Ögonblicksavbildstyp: {}"
msgid "U2F login setup"
msgstr "Ställ in U2F-inloggning"
msgid "No U2F devices found"
msgstr "Inga U2F-enheter hittades"
msgid "U2F Login Method"
msgstr "U2F-inloggningsmetod"
msgid "Enable passwordless sudo?"
msgstr "Aktivera lösenordslös sudo?"
#, python-brace-format
msgid "Setting up U2F device for user: {}"
msgstr "Konfigurerar U2F-enhet för användare: {}"
msgid "You may need to enter the PIN and then touch your U2F device to register it"
msgstr "Du kan behöva ange PIN-koden och sedan trycka på din U2F-enhet för att registrera den"
msgid "Starting device modifications in "
msgstr "Starta enhetsmodifieringar i "
msgid "No network connection found"
msgstr "Ingen nätverksanslutning hittades"
msgid "Would you like to connect to a Wifi?"
msgstr "Vill du ansluta till ett wifi nätverk?"
msgid "No wifi interface found"
msgstr "Inget wifi gränssnitt hittades"
msgid "Select wifi network to connect to"
msgstr "Välj ett wifi nätverk att ansluta till"
msgid "Scanning wifi networks..."
msgstr "Skannar efter wifi nätverk..."
msgid "No wifi networks found"
msgstr "Inga wifi nätverk hittades"
msgid "Failed setting up wifi"
msgstr "Misslyckades med att ställa in wifi"
msgid "Enter wifi password"
msgstr "Ange wifi lösenord"
msgid "Ok"
msgstr "Ok"
msgid "Removable"
msgstr "Borttagbar"
msgid "Install to removable location"
msgstr "Installera till borttagbar plats"
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr "Kommer att installera till /EFI/BOOT/ (borttagbar plats)"
msgid "Will install to standard location with NVRAM entry"
msgstr "Installeras på standardplats med NVRAM-post"
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr "Vill du installera bootloadern på standardsökvägen för flyttbara medier?"
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr "Detta installerar bootloadern till /EFI/BOOT/BOOTX64.EFI (eller liknande) vilket är användbart för:"
msgid "USB drives or other portable external media."
msgstr "USB-minnen eller andra portabla externa medier."
msgid "Systems where you want the disk to be bootable on any computer."
msgstr "System där du vill att disken ska vara uppstartsbar på vilken dator som helst."
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr "Fast programvara som inte stöder NVRAM-uppstartsposter korrekt."
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr "Kommer att installera till /EFI/BOOT/ (borttagbar plats, säker standardinställning))"
msgid "Will install to custom location with NVRAM entry"
msgstr "Kommer att installeras på en anpassad plats med NVRAM-post"
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr "Fast programvara som inte stöder NVRAM-uppstartsposter korrekt som de flesta MSI-moderkort,"
msgid "most Apple Macs, many laptops..."
msgstr "de flesta Apple Mac-datorer, många bärbara datorer..."
msgid "Language"
msgstr "Språk"
msgid "Compression algorithm"
msgstr "Kompressionsalgoritm"
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Endast paket som base, sudo, linux, linux-firmware, efibootmgr och valfria profilpaket installeras."
msgid "Select zram compression algorithm:"
msgstr "Välj zram kompressionsalgoritm:"
msgid "Use Network Manager (default backend)"
msgstr "Använd Network Manager (standard backend)"
msgid "Use Network Manager (iwd backend)"
msgstr "Använd Network Manager (iwd backend)"
================================================
FILE: archinstall/locales/ta/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: K.B.Dharun Krishna \n"
"Language-Team: \n"
"Language: ta\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.5\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] ஒரு பதிவு கோப்பு இங்கே உருவாக்கப்பட்டது: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " இந்த சிக்கல் (மற்றும் கோப்பை) https://github.com/archlinux/archinstall/issues க்கு சமர்ப்பிக்கவும்"
msgid "Do you really want to abort?"
msgstr "நீங்கள் உண்மையிலேயே கைவிட விரும்புகிறீர்களா?"
msgid "And one more time for verification: "
msgstr "மற்றும் மேலும் ஒரு முறை சரிபார்த்தல்: "
msgid "Would you like to use swap on zram?"
msgstr "நீங்கள் zram இல் swap ஐப் பயன்படுத்த விரும்புகிறீர்களா?"
msgid "Desired hostname for the installation: "
msgstr "நிறுவலுக்கு விரும்பிய ஹோஸ்ட்பெயர்: "
msgid "Username for required superuser with sudo privileges: "
msgstr "சூடோ சிறப்புரிமைகளுடன் தேவைப்படும் சூப்பர் யூசருக்கான பயனர் பெயர்: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "நிறுவ வேண்டிய கூடுதல் பயனர்கள் (பயனர்கள் யாரும் இல்லாத நிலையில் காலியாக விடவும்): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "இந்தப் பயனர் ஒரு சூப்பர் யூசராக (sudoer) இருக்க வேண்டுமா?"
msgid "Select a timezone"
msgstr "நேர மண்டலத்தைத் தேர்ந்தெடுக்கவும்"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "நீங்கள் systemd-boot க்குப் பதிலாக GRUB ஐ துவக்க ஏற்றியாகப் பயன்படுத்த விரும்புகிறீர்களா?"
msgid "Choose a bootloader"
msgstr "துவக்க ஏற்றியைத் தேர்ந்தெடுக்கவும்"
msgid "Choose an audio server"
msgstr "ஆடியோ சர்வரை தேர்வு செய்யவும்"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "தொகுப்பு Base, base-devel, linux, linux-firmware, efibootmgr மற்றும் விருப்ப சுயவிவர தொகுப்புகள் போன்ற தொகுப்புகள் மட்டுமே நிறுவப்பட்டுள்ளன."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr ""
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "நீங்கள் பயர்பாக்ஸ் அல்லது குரோமியம் போன்ற இணைய உலாவியை விரும்பினால், அதை பின்வரும் வரியில் குறிப்பிடலாம்."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "நிறுவ கூடுதல் தொகுப்புகளை எழுதவும் (இடம் பிரிக்கப்பட்டது, தவிர்க்க காலியாக விடவும்): "
msgid "Copy ISO network configuration to installation"
msgstr "நிறுவலுக்கு ISO பிணைய கட்டமைப்பு நகலெடுக்கவும்"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "பயன்படுத்துங்கள் NetworkManager ஐப் (GNOME மற்றும் KDE இல் இணையத்தை வரைகலை முறையில் கட்டமைக்க அவசியம்)"
msgid "Select one network interface to configure"
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): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "உங்கள் நுழைவாயில் (திசைவி) IP முகவரியை உள்ளிடவும் அல்லது எதற்கும் காலியாக விடவும்: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "உங்கள் DNS சேவையகங்களை உள்ளிடவும் (இடம் பிரிக்கப்பட்டது, எதற்கும் காலியாக இல்லை): "
msgid "Select which filesystem your main partition should use"
msgstr "உங்கள் பிரதான பகிர்வு எந்த கோப்பு முறைமையைப் பயன்படுத்த வேண்டும் என்பதைத் தேர்ந்தெடுக்கவும்"
msgid "Current partition layout"
msgstr "தற்போதைய பகிர்வு தளவமைப்பு"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"என்ன செய்ய வேண்டும் என்பதைத் தேர்ந்தெடுக்கவும்\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "பகிர்வுக்கு தேவையான கோப்பு முறைமை வகையை உள்ளிடவும்"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "தொடக்க இடத்தை உள்ளிடவும் (பிரிக்கப்பட்ட அலகுகளில்: s, GB, %, முதலியன ; இயல்புநிலை: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "இறுதி இடத்தை உள்ளிடவும் (பிரிக்கப்பட்ட அலகுகளில்: s, GB, %, etc. ; ex: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} வரிசைப்படுத்தப்பட்ட பகிர்வுகளைக் கொண்டுள்ளது, இது அவற்றை அகற்றும், நீங்கள் உறுதியாக இருக்கிறீர்களா?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"எந்த பகிர்வுகளை நீக்க வேண்டும் என்பதை குறியீட்டின் மூலம் தேர்ந்தெடுக்கவும்"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"எந்த பகிர்வை எங்கு ஏற்ற வேண்டும் என்பதை குறியீட்டு மூலம் தேர்ந்தெடுக்கவும்"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * பகிர்வு மவுண்ட்-பாயிண்ட்கள் நிறுவலின் உள்ளே தொடர்புடையவை, துவக்கம் /boot எடுத்துக்காட்டாக இருக்கும்."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "பகிர்வை எங்கு ஏற்ற வேண்டும் என்பதைத் தேர்ந்தெடுக்கவும் (மவுண்ட்பாயிண்டை அகற்ற காலியாக விடவும்): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"வடிவமைப்பிற்கு எந்த பகிர்வை மறைக்க வேண்டும் என்பதைத் தேர்ந்தெடுக்கவும்"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"எந்தப் பிரிவை மறைகுறியாக்கப்பட்டதாகக் குறிக்க வேண்டும் என்பதைத் தேர்ந்தெடுக்கவும்"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"துவக்கக்கூடியதாகக் குறிக்கும் பகிர்வைத் தேர்ந்தெடுக்கவும்"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"கோப்பு முறைமையை எந்த பகிர்வில் அமைக்க வேண்டும் என்பதைத் தேர்ந்தெடுக்கவும்"
msgid "Enter a desired filesystem type for the partition: "
msgstr "பகிர்வுக்கு தேவையான கோப்பு முறைமை வகையை உள்ளிடவும்: "
msgid "Archinstall language"
msgstr "Archinstall மொழி"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "தேர்ந்தெடுக்கப்பட்ட அனைத்து இயக்கிகளையும் துடைத்து, சிறந்த முயற்சி இயல்புநிலை பகிர்வு அமைப்பைப் பயன்படுத்தவும்"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "ஒவ்வொரு தனி இயக்ககத்தையும் என்ன செய்ய வேண்டும் என்பதைத் தேர்ந்தெடுக்கவும் (பகிர்வு உபயோகத்தைத் தொடர்ந்து)"
msgid "Select what you wish to do with the selected block devices"
msgstr "தேர்ந்தெடுக்கப்பட்ட தொகுதி சாதனங்களில் நீங்கள் என்ன செய்ய விரும்புகிறீர்கள் என்பதைத் தேர்ந்தெடுக்கவும்"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "இது முன்-திட்டமிடப்பட்ட சுயவிவரங்களின் பட்டியல், அவை டெஸ்க்டாப் சூழல்கள் போன்றவற்றை நிறுவுவதை எளிதாக்கலாம்"
msgid "Select keyboard layout"
msgstr "விசைப்பலகை அமைப்பைத் தேர்ந்தெடுக்கவும்"
msgid "Select one of the regions to download packages from"
msgstr "தொகுப்புகளை பதிவிறக்கம் செய்ய வேண்டிய பகுதிகளில் ஒன்றைத் தேர்ந்தெடுக்கவும்"
msgid "Select one or more hard drives to use and configure"
msgstr "பயன்படுத்த மற்றும் கட்டமைக்க ஒன்று அல்லது அதற்கு மேற்பட்ட ஹார்டு டிரைவ்களைத் தேர்ந்தெடுக்கவும்"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "உங்கள் AMD வன்பொருளுடன் சிறந்த இணக்கத்தன்மைக்கு, நீங்கள் அனைத்து திறந்த மூல அல்லது AMD / ATI விருப்பங்களையும் பயன்படுத்த விரும்பலாம்."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "உங்கள் இன்டெல் வன்பொருளுடன் சிறந்த இணக்கத்தன்மைக்கு, நீங்கள் அனைத்து ஓப்பன் சோர்ஸ் அல்லது இன்டெல் விருப்பங்களையும் பயன்படுத்த விரும்பலாம்.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "உங்கள் Nvidia வன்பொருளுடன் சிறந்த இணக்கத்தன்மைக்கு, நீங்கள் Nvidia தனியுரிம இயக்கியைப் பயன்படுத்த விரும்பலாம்.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"கிராபிக்ஸ் இயக்கியைத் தேர்ந்தெடுக்கவும் அல்லது அனைத்து திறந்த மூல இயக்கிகளையும் நிறுவ காலியாக விடவும்"
msgid "All open-source (default)"
msgstr "அனைத்தும் திறந்த-மூலம் (இயல்புநிலை)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "எந்த கர்னல்களைப் பயன்படுத்த வேண்டும் என்பதைத் தேர்வு செய்யவும் அல்லது இயல்புநிலைக்கு காலியாக விடவும் \"{}\""
msgid "Choose which locale language to use"
msgstr "எந்த லோகேல் மொழியைப் பயன்படுத்த வேண்டும் என்பதைத் தேர்ந்தெடுக்கவும்"
msgid "Choose which locale encoding to use"
msgstr "எந்த லோகேல் என்கோடிங்கைப் பயன்படுத்த வேண்டும் என்பதைத் தேர்வுசெய்யவும்"
msgid "Select one of the values shown below: "
msgstr "கீழே காட்டப்பட்டுள்ள மதிப்புகளில் ஒன்றைத் தேர்ந்தெடுக்கவும்: "
msgid "Select one or more of the options below: "
msgstr "கீழே உள்ள விருப்பங்களில் ஒன்று அல்லது அதற்கு மேற்பட்டவற்றைத் தேர்ந்தெடுக்கவும்: "
msgid "Adding partition...."
msgstr "பகிர்வை சேர்க்கிறது...."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "தொடர, நீங்கள் செல்லுபடியாகும் fs-type உள்ளிட வேண்டும். செல்லுபடியாகும் fs-type'sக்கு `man parted` என்பதைப் பார்க்கவும்."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "பிழை: URL \"{}\" இல் சுயவிவரங்களை பட்டியலிடுவதால் விளைவித்தது:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "பிழை: \"{}\" முடிவை JSON ஆக டிகோட் செய்ய முடியவில்லை:"
msgid "Keyboard layout"
msgstr "விசைப்பலகை அமைப்பு"
msgid "Mirror region"
msgstr "மிரர் பிராந்தியம்"
msgid "Locale language"
msgstr "லோகேல் மொழி"
msgid "Locale encoding"
msgstr "லோகேல் என்கோடிங்"
msgid "Drive(s)"
msgstr "இயக்கி(கள்)"
msgid "Disk layout"
msgstr "வட்டு தளவமைப்பு"
msgid "Encryption password"
msgstr "குறியாக்கம் கடவுச்சொல்"
msgid "Swap"
msgstr "இடமாற்று"
msgid "Bootloader"
msgstr "துவக்க ஏற்றி"
msgid "Root password"
msgstr "ரூட் கடவுச்சொல்"
msgid "Superuser account"
msgstr "சூப்பர் யூசர் கணக்கு"
msgid "User account"
msgstr "பயனர் கணக்கு"
msgid "Profile"
msgstr "சுயவிவரம்"
msgid "Audio"
msgstr "ஆடியோ"
msgid "Kernels"
msgstr "கர்னல்கள்"
msgid "Additional packages"
msgstr "கூடுதல் தொகுப்புகள்"
msgid "Network configuration"
msgstr "பிணைய கட்டமைப்பு"
msgid "Automatic time sync (NTP)"
msgstr "தானியங்கி நேர ஒத்திசைவு (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "நிறுவு ({} கட்டமைப்பு(கள்) இல்லை)"
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 ""
"ஹார்ட் டிரைவ் தேர்வைத் தவிர்க்க முடிவு செய்துள்ளீர்கள்\n"
"மற்றும் {} (சோதனை) இல் ஏற்றப்பட்ட எந்த இயக்கி அமைப்பையும் பயன்படுத்தும்\n"
"எச்சரிக்கை: இந்த அமைப்பின் பொருத்தத்தை Archinstall சரிபார்க்காது\n"
"நீங்கள் தொடர விரும்புகிறீர்களா?"
msgid "Re-using partition instance: {}"
msgstr "பகிர்வு நிகழ்வை மீண்டும் பயன்படுத்துதல்: {}"
msgid "Create a new partition"
msgstr "புதிய பகிர்வை உருவாக்கவும்"
msgid "Delete a partition"
msgstr "ஒரு பகிர்வை நீக்கவும்"
msgid "Clear/Delete all partitions"
msgstr "அழிக்கவும்/நீக்கவும் அனைத்து பகிர்வுகளை"
msgid "Assign mount-point for a partition"
msgstr "ஒரு பகிர்வுக்கு ஏற்ற-புள்ளியை ஒதுக்கவும்"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "குறி/குறிநீக்கு வடிவமைக்கப்பட வேண்டிய பகிர்வை (தரவை அழிக்கிறது)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "குறி/குறி நீக்கு ஒரு பகிர்வு மறைகுறியாக்கப்பட்டது"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "குறி/குறிநீக்கு ஒரு பகிர்வை துவக்கக்கூடியதாக(/boot க்கு தானியங்கு)"
msgid "Set desired filesystem for a partition"
msgstr "ஒரு பகிர்வுக்கு தேவையான கோப்பு முறைமையை அமைக்கவும்"
msgid "Abort"
msgstr "கைவிடு"
msgid "Hostname"
msgstr "ஹோஸ்ட் பெயர்"
msgid "Not configured, unavailable unless setup manually"
msgstr "உள்ளமைக்கப்படவில்லை, கைமுறையாக அமைக்கும் வரை கிடைக்காது"
msgid "Timezone"
msgstr "நேரம் மண்டலம்"
msgid "Set/Modify the below options"
msgstr "கீழே உள்ள விருப்பங்களை அமைக்கவும்/மாற்றவும்"
msgid "Install"
msgstr "நிறுவு"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"தவிர்க்க ESC ஐப் பயன்படுத்தவும்\n"
"\n"
msgid "Suggest partition layout"
msgstr "பகிர்வு தளவமைப்பை பரிந்துரைக்கவும்"
msgid "Enter a password: "
msgstr "கடவுச்சொல்லை உள்ளிடவும்: "
msgid "Enter a encryption password for {}"
msgstr "{} க்கான என்க்ரிப்ஷன் கடவுச்சொல்லை உள்ளிடவும்"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "வட்டு குறியாக்க கடவுச்சொல்லை உள்ளிடவும் (குறியாக்கம் இல்லாமல் இருப்பதற்கு காலியாக விடவும்): "
msgid "Create a required super-user with sudo privileges: "
msgstr "சூடோ சலுகைகளுடன் தேவையான சூப்பர் பயனரை உருவாக்கவும்: "
msgid "Enter root password (leave blank to disable root): "
msgstr "ரூட் கடவுச்சொல்லை உள்ளிடவும் (ரூட்டை முடக்க காலியாக விடவும்): "
msgid "Password for user \"{}\": "
msgstr "\"{}\" பயனருக்கான கடவுச்சொல்: "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "கூடுதல் தொகுப்புகள் உள்ளனவா என்று சரிபார்க்கிறது (இதற்கு சில வினாடிகள் ஆகலாம்)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "இயல்புநிலை நேர சேவையகங்களுடன் தானியங்கி நேர ஒத்திசைவை (NTP) பயன்படுத்த விரும்புகிறீர்களா?\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 வேலை செய்ய வன்பொருள் நேரம் மற்றும் பிற பிந்தைய கட்டமைப்பு படிகள் தேவைப்படலாம்.\n"
"மேலும் தகவலுக்கு, ஆர்ச் விக்கியைப் பார்க்கவும்"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "கூடுதல் பயனரை உருவாக்க பயனர்பெயரை உள்ளிடவும் (தவிர்க்க காலியாக விடவும்): "
msgid "Use ESC to skip\n"
msgstr "தவிர்க்க ESC ஐப் பயன்படுத்தவும்\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
"பட்டியலிலிருந்து ஒரு பொருளைத் தேர்வுசெய்து, அதைச் செயல்படுத்த கிடைக்கக்கூடிய செயல்களில் ஒன்றைத் தேர்ந்தெடுக்கவும்"
msgid "Cancel"
msgstr "ரத்து செய்"
msgid "Confirm and exit"
msgstr "உறுதி செய்து வெளியேறவும்"
msgid "Add"
msgstr "சேர்"
msgid "Copy"
msgstr "நகல்"
msgid "Edit"
msgstr "தொகு"
msgid "Delete"
msgstr "அழி"
msgid "Select an action for '{}'"
msgstr "'{}' க்கான செயலைத் தேர்ந்தெடுக்கவும்"
msgid "Copy to new key:"
msgstr "புதிய விசைக்கு நகலெடு:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "அறியப்படாத nic வகை: {}. சாத்தியமான மதிப்புகள் {} ஆகும்"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"இது நீங்கள் தேர்ந்தெடுத்த கட்டமைப்பு:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "பேக்மேன் ஏற்கனவே இயங்கி வருகிறது, அது முடிவடைவதற்கு அதிகபட்சம் 10 நிமிடங்கள் காத்திருக்கிறது."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "முன்பே இருக்கும் பேக்மேன் பூட்டு ஒருபோதும் வெளியேறவில்லை. archinstall ஐப் பயன்படுத்துவதற்கு முன், ஏற்கனவே உள்ள பேக்மேன் அமர்வுகளை சுத்தம் செய்யவும்."
msgid "Choose which optional additional repositories to enable"
msgstr "எந்த விருப்ப கூடுதல் களஞ்சியங்களை இயக்க வேண்டும் என்பதை தேர்வு செய்யவும்"
msgid "Add a user"
msgstr "ஒரு பயனரைச் சேர்க்கவும்"
msgid "Change password"
msgstr "கடவுச்சொல்லை மாற்று"
msgid "Promote/Demote user"
msgstr "பயனரை உயர்த்து/பதவி இறக்கு"
msgid "Delete User"
msgstr "பயனரை நீக்கு"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"புதிய பயனரை வரையறுக்கவும்\n"
msgid "User Name : "
msgstr "பயனர் பெயர்: "
msgid "Should {} be a superuser (sudoer)?"
msgstr "{} ஒரு சூப்பர் யூசராக (sudoer) இருக்க வேண்டுமா?"
msgid "Define users with sudo privilege: "
msgstr "சூடோ சிறப்புரிமை கொண்ட பயனர்களை வரையறுக்கவும்: "
msgid "No network configuration"
msgstr "பிணைய கட்டமைப்பு இல்லை"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "ஒரு btrfs பகிர்வில் விரும்பிய துணை தொகுதிகளை அமைக்கவும்"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"எந்த பகிர்வில் துணைத்தொகுதிகளை அமைக்க வேண்டும் என்பதைத் தேர்ந்தெடுக்கவும்"
msgid "Manage btrfs subvolumes for current partition"
msgstr "தற்போதைய பகிர்வுக்கு btrfs துணை தொகுதிகளை நிர்வகிக்கவும்"
msgid "No configuration"
msgstr "கட்டமைப்பு இல்லை"
msgid "Save user configuration"
msgstr "பயனர் உள்ளமைவைச் சேமிக்கவும்"
msgid "Save user credentials"
msgstr "பயனர் நற்சான்றிதழ்களைச் சேமிக்கவும்"
msgid "Save disk layout"
msgstr "வட்டு அமைப்பைச் சேமிக்கவும்"
msgid "Save all"
msgstr "அனைத்தையும் சேமிக்கவும்"
msgid "Choose which configuration to save"
msgstr "எந்த அமைப்பைச் சேமிக்க வேண்டும் என்பதைத் தேர்ந்தெடுக்கவும்"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "உள்ளமைவு(களை) சேமிக்க ஒரு கோப்பகத்தை உள்ளிடவும்: "
msgid "Not a valid directory: {}"
msgstr "சரியான கோப்பகம் இல்லை: {}"
msgid "The password you are using seems to be weak,"
msgstr "நீங்கள் பயன்படுத்தும் கடவுச்சொல் பலவீனமாக உள்ளது,"
msgid "are you sure you want to use it?"
msgstr "நீங்கள் நிச்சயமாக அதைப் பயன்படுத்த விரும்புகிறீர்களா?"
msgid "Optional repositories"
msgstr "விருப்ப களஞ்சியங்கள்"
msgid "Save configuration"
msgstr "உள்ளமைவைச் சேமிக்கவும்"
msgid "Missing configurations:\n"
msgstr "விடுபட்ட கட்டமைப்புகள்:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "ரூட்-கடவுச்சொல் அல்லது குறைந்தபட்சம் 1 சூப்பர் யூசர் குறிப்பிடப்பட வேண்டும்"
msgid "Manage superuser accounts: "
msgstr "சூப்பர் யூசர் கணக்குகளை நிர்வகிக்கவும்: "
msgid "Manage ordinary user accounts: "
msgstr "சாதாரண பயனர் கணக்குகளை நிர்வகிக்கவும்: "
msgid " Subvolume :{:16}"
msgstr " துணைத் தொகுதி :{:16}"
msgid " mounted at {:16}"
msgstr " {:16} இல் ஏற்றப்பட்டது"
msgid " with option {}"
msgstr " விருப்பம் உடன் {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
"புதிய துணைத்தொகுதிக்கு தேவையான மதிப்புகளை நிரப்பவும்\n"
msgid "Subvolume name "
msgstr "துணைத்தொகுதி பெயர் "
msgid "Subvolume mountpoint"
msgstr "துணை தொகுதி மவுண்ட்பாயிண்ட்"
msgid "Subvolume options"
msgstr "துணை தொகுதி விருப்பங்கள்"
msgid "Save"
msgstr "சேமிக்கவும்"
msgid "Subvolume name :"
msgstr "துணைத்தொகுதி பெயர்:"
msgid "Select a mount point :"
msgstr "மவுண்ட் பாயிண்ட்டைத் தேர்ந்தெடுக்கவும்:"
msgid "Select the desired subvolume options "
msgstr "தேவையான துணை தொகுதி விருப்பங்களைத் தேர்ந்தெடுக்கவும் "
msgid "Define users with sudo privilege, by username: "
msgstr "சூடோ சிறப்புரிமை கொண்ட பயனர்களை, பயனர் பெயரால் வரையறுக்கவும்: "
#, python-brace-format
msgid "[!] A log file has been created here: {}"
msgstr "[!] ஒரு பதிவு கோப்பு இங்கே உருவாக்கப்பட்டது: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "இயல்புநிலை கட்டமைப்புடன் BTRFS துணைத்தொகுதிகளைப் பயன்படுத்த விரும்புகிறீர்களா?"
msgid "Would you like to use BTRFS compression?"
msgstr "BTRFS சுருக்கத்தைப் பயன்படுத்த விரும்புகிறீர்களா?"
msgid "Would you like to create a separate partition for /home?"
msgstr "/home க்கு தனி பகிர்வை உருவாக்க விரும்புகிறீர்களா?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "தேர்ந்தெடுக்கப்பட்ட டிரைவ்களில் தானியங்கி பரிந்துரைக்குத் தேவையான குறைந்தபட்ச திறன் இல்லை\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "/home பகிர்வுக்கான குறைந்த பட்ச கொள்ளளவு: {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "ஆர்ச் லினக்ஸ் பகிர்வுக்கான குறைந்தபட்ச கொள்ளளவு: {}GB"
msgid "Continue"
msgstr "தொடரவும்"
msgid "yes"
msgstr "ஆமாம்"
msgid "no"
msgstr "இல்லை"
msgid "set: {}"
msgstr "அமை: {}"
msgid "Manual configuration setting must be a list"
msgstr "கைமுறை உள்ளமைவு அமைப்பு கண்டிப்பாக ஒரு பட்டியலாக இருக்க வேண்டும்"
msgid "No iface specified for manual configuration"
msgstr "கைமுறை உள்ளமைவுக்கு iface எதுவும் குறிப்பிடப்படவில்லை"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "தானியங்கு DHCP இல்லாத கைமுறையான nic கட்டமைப்பிற்கு IP முகவரி தேவை"
msgid "Add interface"
msgstr "இடைமுகத்தைச் சேர்க்கவும்"
msgid "Edit interface"
msgstr "இடைமுகத்தை திருத்தவும்"
msgid "Delete interface"
msgstr "இடைமுகத்தை நீக்கு"
msgid "Select interface to add"
msgstr "சேர்க்க இடைமுகத்தைத் தேர்ந்தெடுக்கவும்"
msgid "Manual configuration"
msgstr "கைமுறை கட்டமைப்பு"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "ஒரு பகிர்வை சுருக்கப்பட்டதாகக் குறிக்கவும்/குறி நீக்கவும் (btrfs மட்டும்)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "நீங்கள் பயன்படுத்தும் கடவுச்சொல் பலவீனமாக இருப்பதாகத் தெரிகிறது, நிச்சயமாக அதைப் பயன்படுத்த விரும்புகிறீர்களா?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "டெஸ்க்டாப் சூழல்கள் மற்றும் டைலிங் சாளர மேலாளர்களின் தேர்வை வழங்குகிறது, எ.கா. gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "நீங்கள் விரும்பும் டெஸ்க்டாப் சூழலைத் தேர்ந்தெடுக்கவும்"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "ஆர்ச் லினக்ஸை நீங்கள் பொருத்தமாகத் தனிப்பயனாக்க அனுமதிக்கும் மிக அடிப்படையான நிறுவல்."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "நிறுவவும் இயக்கவும் பல்வேறு சர்வர் தொகுப்புகளின் தேர்வை வழங்குகிறது, எ.கா. httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "எந்த சேவையகங்களை நிறுவ வேண்டும் என்பதைத் தேர்வுசெய்யவும், எதுவும் இல்லை என்றால், குறைந்தபட்ச நிறுவல் செய்யப்படும்"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "குறைந்தபட்ச அமைப்பு மற்றும் xorg மற்றும் கிராபிக்ஸ் இயக்கிகளை நிறுவுகிறது."
msgid "Press Enter to continue."
msgstr "தொடர Enter ஐ அழுத்தவும்."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "புதிதாக உருவாக்கப்பட்ட நிறுவலில் chroot செய்து, நிறுவலுக்குப் பிந்தைய உள்ளமைவைச் செய்ய விரும்புகிறீர்களா?"
msgid "Are you sure you want to reset this setting?"
msgstr "இஇந்த அமைப்பை நிச்சயமாக மீட்டமைக்க வேண்டுமா?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "பயன்படுத்த மற்றும் கட்டமைக்க ஒன்று அல்லது அதற்கு மேற்பட்ட ஹார்டு டிரைவ்களைத் தேர்ந்தெடுக்கவும்\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "ஏற்கனவே உள்ள அமைப்பில் ஏதேனும் மாற்றங்கள் செய்தால் வட்டு தளவமைப்பை மீட்டமைக்கும்!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "நீங்கள் ஹார்ட் டிரைவ் தேர்வை மீட்டமைத்தால், இது தற்போதைய வட்டு அமைப்பையும் மீட்டமைக்கும். நீங்கள் உறுதியாக இருக்கிறீர்களா?"
msgid "Save and exit"
msgstr "சேமித்து விட்டு வெளியேறவும்"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"வரிசைப்படுத்தப்பட்ட பகிர்வுகளைக் கொண்டுள்ளது, இது அவற்றை அகற்றும், நீங்கள் உறுதியாக இருக்கிறீர்களா?"
msgid "No audio server"
msgstr "ஆடியோ சர்வர் இல்லை"
msgid "(default)"
msgstr "(இயல்புநிலை)"
msgid "Use ESC to skip"
msgstr "தவிர்க்க ESC ஐப் பயன்படுத்தவும்"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"தற்போதைய தேர்வை மீட்டமைக்க CTRL+C ஐப் பயன்படுத்தவும்\n"
"\n"
msgid "Copy to: "
msgstr "இதற்கு நகலெடுக்கவும்: "
msgid "Edit: "
msgstr "தொகு: "
msgid "Key: "
msgstr "சாவி: "
msgid "Edit {}: "
msgstr "தொகு {}: "
msgid "Add: "
msgstr "சேர்: "
msgid "Value: "
msgstr "மதிப்பு: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "நீங்கள் ஒரு இயக்கி மற்றும் பகிர்வைத் தேர்ந்தெடுப்பதைத் தவிர்க்கலாம் மற்றும் /mnt (பரிசோதனை) இல் ஏற்றப்பட்ட எந்த இயக்கி அமைப்பையும் பயன்படுத்தலாம்"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "வட்டுகளில் ஒன்றைத் தேர்ந்தெடுக்கவும் அல்லது தவிர்க்கவும் மற்றும் /mnt ஐ இயல்புநிலையாகப் பயன்படுத்தவும்"
msgid "Select which partitions to mark for formatting:"
msgstr "வடிவமைப்பிற்காக எந்தப் பகிர்வுகளைக் குறிக்க வேண்டும் என்பதைத் தேர்ந்தெடுக்கவும்:"
msgid "Use HSM to unlock encrypted drive"
msgstr "மறைகுறியாக்கப்பட்ட இயக்ககத்தைத் திறக்க HSM ஐப் பயன்படுத்தவும்"
msgid "Device"
msgstr "சாதனம்"
msgid "Size"
msgstr "அளவு"
msgid "Free space"
msgstr "பயன்படுத்தாத இடம்"
msgid "Bus-type"
msgstr "பேருந்து-வகை"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "ரூட்-கடவுச்சொல் அல்லது குறைந்தபட்சம் 1 பயனர் சூடோ சிறப்புரிமைகளைக் குறிப்பிட வேண்டும்"
msgid "Enter username (leave blank to skip): "
msgstr "பயனர்பெயரை உள்ளிடவும் (தவிர்க்க காலியாக விடவும்): "
msgid "The username you entered is invalid. Try again"
msgstr "நீங்கள் உள்ளிட்ட பயனர்பெயர் தவறானது. மீண்டும் முயற்சிக்கவும்"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "\"{}\" ஒரு சூப்பர் யூசராக (sudo) இருக்க வேண்டுமா?"
msgid "Select which partitions to encrypt"
msgstr "குறியாக்கம் செய்ய வேண்டிய பகிர்வுகளைத் தேர்ந்தெடுக்கவும்"
msgid "very weak"
msgstr "மிகவும் பலவீனமானது"
msgid "weak"
msgstr "பலவீனமான"
msgid "moderate"
msgstr "மிதமான"
msgid "strong"
msgstr "வலுவான"
msgid "Add subvolume"
msgstr "துணைத்தொகுதியைச் சேர்க்கவும்"
msgid "Edit subvolume"
msgstr "துணைத்தொகுதியைத் திருத்தவும்"
msgid "Delete subvolume"
msgstr "துணைத்தொகுதியை நீக்கவும்"
msgid "Configured {} interfaces"
msgstr "கட்டமைக்கப்பட்ட {} இடைமுகங்கள்"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "இந்த விருப்பம் நிறுவலின் போது நிகழக்கூடிய இணையான பதிவிறக்கங்களின் எண்ணிக்கையை செயல்படுத்துகிறது"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"இயக்கப்பட வேண்டிய இணையான பதிவிறக்கங்களின் எண்ணிக்கையை உள்ளிடவும்.\n"
" (1 முதல் {} வரையிலான மதிப்பை உள்ளிடவும்)\n"
"குறிப்பு:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - அதிகபட்ச மதிப்பு : {} ( {} இணையான பதிவிறக்கங்களை அனுமதிக்கிறது, ஒரே நேரத்தில் {} பதிவிறக்கங்களை அனுமதிக்கிறது )"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - குறைந்தபட்ச மதிப்பு : 1 (1 இணை பதிவிறக்கத்தை அனுமதிக்கிறது, ஒரு நேரத்தில் 2 பதிவிறக்கங்களை அனுமதிக்கிறது )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - முடக்கு/இயல்புநிலை: 0 (இணை பதிவிறக்கத்தை முடக்குகிறது, ஒரு நேரத்தில் 1 பதிவிறக்கத்தை மட்டுமே அனுமதிக்கிறது )"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "தவறான உள்ளீடு! சரியான உள்ளீட்டில் [1 முதல் {max_downloads} வரை அல்லது முடக்க 0 வரை] மீண்டும் முயற்சிக்கவும்"
msgid "Parallel Downloads"
msgstr "இணையான பதிவிறக்கங்கள்"
msgid "ESC to skip"
msgstr "தவிர்க்க ESC"
msgid "CTRL+C to reset"
msgstr "மீட்டமைக்க CTRL+C"
msgid "TAB to select"
msgstr "தேர்ந்தெடுக்க TAB"
msgid "[Default value: 0] > "
msgstr "[இயல்புநிலை மதிப்பு: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "இந்த மொழிபெயர்ப்பைப் பயன்படுத்த, மொழியை ஆதரிக்கும் எழுத்துருவை கைமுறையாக நிறுவவும்."
msgid "The font should be stored as {}"
msgstr "எழுத்துரு {} ஆக சேமிக்கப்பட வேண்டும்"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Archinstall ஐ இயக்க ரூட் சிறப்புரிமைகள் தேவை. மேலும் பார்க்க --help."
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 "சுயவிவரங்கள் தனிப்பட்ட பெயரைக் கொண்டிருக்க வேண்டும், ஆனால் நகல் பெயருடன் சுயவிவர வரையறைகள் காணப்படுகின்றன: {}"
msgid "Select one or more devices to use and configure"
msgstr "பயன்படுத்த மற்றும் கட்டமைக்க ஒன்று அல்லது அதற்கு மேற்பட்ட சாதனங்களைத் தேர்ந்தெடுக்கவும்"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "சாதனத் தேர்வை மீட்டமைத்தால், இது தற்போதைய வட்டு அமைப்பையும் மீட்டமைக்கும். நீங்கள் உறுதியாக இருக்கிறீர்களா?"
msgid "Existing Partitions"
msgstr "ஏற்கனவே உள்ள பகிர்வுகள்"
msgid "Select a partitioning option"
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"
"\n"
#, python-brace-format
msgid "Minimum capacity for Arch Linux partition: {}GiB"
msgstr "ஆர்ச் லினக்ஸ் பகிர்வுக்கான குறைந்தபட்ச கொள்ளளவு: {}GiB"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "இது முன்-திட்டமிடப்பட்ட profiles_bck இன் பட்டியல், அவை டெஸ்க்டாப் சூழல்கள் போன்றவற்றை நிறுவுவதை எளிதாக்கலாம்"
msgid "Current profile selection"
msgstr "தற்போதைய சுயவிவரத் தேர்வு"
msgid "Remove all newly added partitions"
msgstr "புதிதாக சேர்க்கப்பட்ட அனைத்து பகிர்வுகளையும் அகற்றவும்"
msgid "Assign mountpoint"
msgstr "பகிர்வுக்கு ஏற்ற-புள்ளியை ஒதுக்கவும்"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "வடிவமைக்கப்பட வேண்டியவையை குறி/குறிநீக்கு (தரவை அழிக்கிறது)"
msgid "Mark/Unmark as bootable"
msgstr "துவக்கக்கூடியதாகக் குறி/குறிநீக்கு"
msgid "Change filesystem"
msgstr "கோப்பு முறைமையை மாற்றவும்"
msgid "Mark/Unmark as compressed"
msgstr "சுருக்கப்பட்டதாகக் குறி/குறிநீக்கு"
msgid "Set subvolumes"
msgstr "துணைத் தொகுதிகளை அமைக்கவும்"
msgid "Delete partition"
msgstr "பகிர்வை நீக்கு"
msgid "Partition"
msgstr "பகிர்வு"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "இந்த பகிர்வு தற்போது குறியாக்கம் செய்யப்பட்டுள்ளது, அதை வடிவமைக்க ஒரு கோப்பு முறைமை குறிப்பிடப்பட வேண்டும்"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "பகிர்வு மவுண்ட்-பாயிண்ட்கள் நிறுவலின் உள்ளே தொடர்புடையவை, துவக்கம் /boot எடுத்துக்காட்டாக இருக்கும்."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "மவுண்ட்பாயிண்ட் /boot அமைக்கப்பட்டால், பகிர்வு துவக்கக்கூடியதாகக் குறிக்கப்படும்."
msgid "Mountpoint: "
msgstr "மவுண்ட்பாயிண்ட்: "
msgid "Current free sectors on device {}:"
msgstr "{} சாதனத்தில் தற்போதைய இலவசப் பிரிவுகள்:"
msgid "Total sectors: {}"
msgstr "மொத்த பிரிவுகள்: {}"
msgid "Enter the start sector (default: {}): "
msgstr "தொடக்கப் பிரிவை உள்ளிடவும் (இயல்புநிலை: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
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 "முழு நீளம்: {}"
msgid "Encryption type"
msgstr "குறியாக்க வகை"
msgid "Iteration time"
msgstr ""
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr ""
msgid "Higher values increase security but slow down boot time"
msgstr ""
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr ""
msgid "Iteration time cannot be empty"
msgstr ""
msgid "Iteration time must be at least 100ms"
msgstr ""
msgid "Iteration time must be at most 120000ms"
msgstr ""
msgid "Please enter a valid number"
msgstr ""
msgid "Partitions"
msgstr "பகிர்வுகள்"
msgid "No HSM devices available"
msgstr "HSM சாதனங்கள் எதுவும் இல்லை"
msgid "Partitions to be encrypted"
msgstr "குறியாக்கம் செய்யப்பட வேண்டிய பகிர்வுகள்"
msgid "Select disk encryption option"
msgstr "வட்டு குறியாக்க விருப்பத்தைத் தேர்ந்தெடுக்கவும்"
msgid "Select a FIDO2 device to use for HSM"
msgstr "HSM க்கு பயன்படுத்த FIDO2 சாதனத்தைத் தேர்ந்தெடுக்கவும்"
msgid "Use a best-effort default partition layout"
msgstr "சிறந்த முயற்சி இயல்புநிலை பகிர்வு தளவமைப்பைப் பயன்படுத்தவும்"
msgid "Manual Partitioning"
msgstr "கைமுறை பகிர்வு"
msgid "Pre-mounted configuration"
msgstr "முன்-ஏற்றப்பட்ட கட்டமைப்பு"
msgid "Unknown"
msgstr "தெரியவில்லை/தெரியாதது"
msgid "Partition encryption"
msgstr "பகிர்வு குறியாக்கம்"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! வடிவமைத்தல் {} உள்ள "
msgid "← Back"
msgstr "← பின்"
msgid "Disk encryption"
msgstr "வட்டு குறியாக்கம்"
msgid "Configuration"
msgstr "கட்டமைப்பு"
msgid "Password"
msgstr "கடவுச்சொல்"
msgid "All settings will be reset, are you sure?"
msgstr "எல்லா அமைப்புகளும் மீட்டமைக்கப்படும், உறுதியாக இருக்கிறீர்களா?"
msgid "Back"
msgstr "திரும்பவும்"
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr "தேர்ந்தெடுக்கப்பட்ட சுயவிவரங்களுக்கு எந்த வாழ்த்துரை நிறுவ வேண்டும் என்பதைத் தேர்வுசெய்யவும்: {}"
#, python-brace-format
msgid "Environment type: {}"
msgstr "சுற்றுச்சூழல் வகை: {}"
msgid "The proprietary Nvidia driver is not supported by Sway. It is likely that you will run into issues, are you okay with that?"
msgstr "தனியுரிம Nvidia இயக்கி ஸ்வே ஆல் ஆதரிக்கப்படவில்லை. நீங்கள் சிக்கலில் சிக்க வாய்ப்புள்ளது, உனக்கு அது சரியா?"
msgid "Installed packages"
msgstr "நிறுவப்பட்ட தொகுப்புகள்"
msgid "Add profile"
msgstr "சுயவிவரத்தைச் சேர்க்கவும்"
msgid "Edit profile"
msgstr "சுயவிவரத்தைத் திருத்தவும்"
msgid "Delete profile"
msgstr "சுயவிவரத்தை நீக்கு"
msgid "Profile name: "
msgstr "சுயவிவரப் பெயர்: "
msgid "The profile name you entered is already in use. Try again"
msgstr "நீங்கள் உள்ளிட்ட சுயவிவரப் பெயர் ஏற்கனவே பயன்பாட்டில் உள்ளது. மீண்டும் முயற்சிக்கவும்"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "இந்த சுயவிவரத்துடன் நிறுவப்பட வேண்டிய தொகுப்புகள் (இடம் பிரிக்கப்பட்டது, தவிர்க்க காலியாக விடவும்): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "இந்தச் சுயவிவரத்துடன் இயக்கப்பட வேண்டிய சேவைகள் (இடம் பிரிக்கப்பட்டது, தவிர்க்க காலியாக விடவும்): "
msgid "Should this profile be enabled for installation?"
msgstr "நிறுவலுக்கு இந்த சுயவிவரம் இயக்கப்பட வேண்டுமா?"
msgid "Create your own"
msgstr "சொந்தமாக உருவாக்கவும்"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"அனைத்து திறந்த மூல இயக்கிகளையும் நிறுவ வரைகலை இயக்கிகளை தேர்ந்தெடுக்கவும் அல்லது காலியாக விடவும்"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "ஸ்வேக்கு உங்கள் இருக்கைக்கான அணுகல் தேவை (வன்பொருள் சாதனங்களின் சேகரிப்பு அதாவது விசைப்பலகை, சுட்டி போன்றவை)"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"உங்கள் வன்பொருளுக்கான அணுகலை வழங்குவதற்கான விருப்பத்தைத் தேர்வுசெய்யவும்"
msgid "Graphics driver"
msgstr "வரைகலை இயக்கி"
msgid "Greeter"
msgstr "வாழ்த்துபவர்"
msgid "Please chose which greeter to install"
msgstr "எந்த வாழ்த்துரை நிறுவ வேண்டும் என்பதைத் தேர்வுசெய்யவும்"
msgid "This is a list of pre-programmed default_profiles"
msgstr "இது முன்-திட்டமிடப்பட்ட default_profiles பட்டியல்"
msgid "Disk configuration"
msgstr "வட்டு கட்டமைப்பு"
msgid "Profiles"
msgstr "சுயவிவரங்கள்"
msgid "Finding possible directories to save configuration files ..."
msgstr "உள்ளமைவு கோப்புகளைச் சேமிக்க சாத்தியமான கோப்பகங்களைக் கண்டறிதல் ..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "உள்ளமைவு கோப்புகளை சேமிக்க கோப்பகத்தை (அல்லது கோப்பகங்களை) தேர்ந்தெடுக்கவும்"
msgid "Add a custom mirror"
msgstr "தனிப்பயன் கண்ணாடியைச் சேர்க்கவும்"
msgid "Change custom mirror"
msgstr "தனிப்பயன் கண்ணாடியை மாற்றவும்"
msgid "Delete custom mirror"
msgstr "தனிப்பயன் கண்ணாடியை நீக்கு"
msgid "Enter name (leave blank to skip): "
msgstr "பெயரை உள்ளிடவும் (தவிர்க்க காலியாக விடவும்): "
msgid "Enter url (leave blank to skip): "
msgstr "URL ஐ உள்ளிடவும் (தவிர்க்க காலியாக விடவும்): "
msgid "Select signature check option"
msgstr "கையொப்ப சரிபார்ப்பு விருப்பத்தைத் தேர்ந்தெடுக்கவும்"
msgid "Select signature option"
msgstr "கையெழுத்து விருப்பத்தைத் தேர்ந்தெடுக்கவும்"
msgid "Custom mirrors"
msgstr "தனிப்பயன் கண்ணாடிகள்"
msgid "Defined"
msgstr "வரையறுக்கப்பட்டது"
msgid "Save user configuration (including disk layout)"
msgstr "பயனர் உள்ளமைவைச் சேமிக்கவும் (வட்டு தளவமைப்பு உட்பட)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"உள்ளமைவு(களை) சேமிக்கப்படுவதற்கான கோப்பகத்தை உள்ளிடவும் (தாவல் நிறைவு இயக்கப்பட்டது)\n"
"கோப்பகத்தை சேமி: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"பின்வரும் இடத்தில் {} உள்ளமைவுக் கோப்பை(களை) சேமிக்க விரும்புகிறீர்களா?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "{} உள்ளமைவு கோப்புகளை {} இல் சேமிக்கிறது"
msgid "Mirrors"
msgstr "கண்ணாடிகள்"
msgid "Mirror regions"
msgstr "கண்ணாடிப் பகுதிகள்"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - அதிகபட்ச மதிப்பு : {} ( {} இணையான பதிவிறக்கங்களை அனுமதிக்கிறது, ஒரே நேரத்தில் {max_downloads+1} பதிவிறக்கங்களை அனுமதிக்கிறது )"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "தவறான உள்ளீடு! சரியான உள்ளீட்டில் [1 முதல் {} வரை அல்லது முடக்க 0 வரை] மீண்டும் முயற்சிக்கவும்"
msgid "Locales"
msgstr "மொழி குறியீடுகள்"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "NetworkManager ஐப் பயன்படுத்தவும் (GNOME மற்றும் KDE இல் இணையத்தை வரைகலை முறையில் கட்டமைக்க அவசியம்)"
msgid "Total: {} / {}"
msgstr "மொத்தம்: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "உள்ளிடப்பட்ட அனைத்து மதிப்புகளையும் ஒரு அலகுடன் பின்னொட்டு இடலாம்: B, KB, KiB, MB, MiB..."
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "அலகு வழங்கப்படவில்லை எனில், மதிப்பு பிரிவுகளாக விளக்கப்படும்"
msgid "Enter start (default: sector {}): "
msgstr "தொடக்கத்தை உள்ளிடவும் (இயல்பு: sector {}): "
msgid "Enter end (default: {}): "
msgstr "முடிவை உள்ளிடவும் (இயல்பு: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "தீர்மானிக்க முடியவில்லை fido2 சாதனங்களை. libfido2 நிறுவப்பட்டுள்ளதா?"
msgid "Path"
msgstr "பாதை"
msgid "Manufacturer"
msgstr "உற்பத்தியாளர்"
msgid "Product"
msgstr "தயாரிப்பு"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "தவறான கட்டமைப்பு: {error}"
msgid "Type"
msgstr "வகை"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "தொகுப்பு பதிவிறக்கங்களின் போது ஏற்படும் இணையான பதிவிறக்கங்களின் எண்ணிக்கையை இந்த விருப்பம் செயல்படுத்துகிறது"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"இயக்கப்பட வேண்டிய இணையான பதிவிறக்கங்களின் எண்ணிக்கையை உள்ளிடவும்.\n"
"\n"
"குறிப்பு:\n"
#, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr " - பரிந்துரைக்கப்பட்ட அதிகபட்ச மதிப்பு: {} (ஒரு நேரத்தில் {} இணையான பதிவிறக்கங்களை அனுமதிக்கிறது)"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - முடக்கு/இயல்புநிலை: 0 (இணை பதிவிறக்கத்தை முடக்குகிறது, ஒரு நேரத்தில் 1 பதிவிறக்கத்தை மட்டுமே அனுமதிக்கிறது)\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "தவறான உள்ளீடு! சரியான உள்ளீட்டுடன் மீண்டும் முயற்சிக்கவும் [அல்லது முடக்க 0]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Hyprland க்கு உங்கள் இருக்கைக்கான அணுகல் தேவை (வன்பொருள் சாதனங்களின் சேகரிப்பு அதாவது விசைப்பலகை, சுட்டி போன்றவை)"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"உங்கள் வன்பொருளுக்கு Hypland அணுகலை வழங்குவதற்கான விருப்பத்தைத் தேர்வு செய்யவும்"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "உள்ளிடப்பட்ட அனைத்து மதிப்புகளையும் ஒரு அலகுடன் பின்னொட்டு இடலாம்: %, B, KB, KiB, MB, MiB..."
msgid "Would you like to use unified kernel images?"
msgstr "ஒருங்கிணைந்த கர்னல் படங்களைப் பயன்படுத்த விரும்புகிறீர்களா?"
msgid "Unified kernel images"
msgstr "ஒருங்கிணைந்த கர்னல் படங்கள்"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "நேர ஒத்திசைவு (timedatectl show) முடிவடைவதற்காகக் காத்திருக்கிறது."
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "நேர ஒத்திசைவு முடிவடையவில்லை, நீங்கள் காத்திருக்கும் போது - தீர்வுக்கான ஆவணங்களைச் சரிபார்க்கவும்: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "தானியங்கி நேர ஒத்திசைவுக்காக காத்திருப்பதைத் தவிர்த்தல் (நிறுவலின் போது நேரம் ஒத்திசைக்கப்படாவிட்டால் இது சிக்கல்களை ஏற்படுத்தும்)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "ஆர்ச் லினக்ஸ் கீரிங் ஒத்திசைவு (archlinux-keyring-wkd-sync) முடிவடைவதற்குக் காத்திருக்கிறது."
msgid "Selected profiles: "
msgstr "தேர்ந்தெடுக்கப்பட்ட சுயவிவரங்கள்: "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "நேரம் ஒத்திசைவு முடிவடையவில்லை, நீங்கள் காத்திருக்கும் போது - தீர்வுகளுக்கான ஆவணங்களைச் சரிபார்க்கவும்: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "nodatacow குறி/குறிநீக்கு"
msgid "Would you like to use compression or disable CoW?"
msgstr "நீங்கள் சுருக்கத்தைப் பயன்படுத்த விரும்புகிறீர்களா அல்லது CoW ஐ முடக்க விரும்புகிறீர்களா?"
msgid "Use compression"
msgstr "சுருக்கத்தைப் பயன்படுத்தவும்"
msgid "Disable Copy-on-Write"
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 "உள்ளமைவு வகை: {}"
msgid "LVM configuration type"
msgstr "LVM கட்டமைப்பு வகை"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "2க்கும் மேற்பட்ட பகிர்வுகளைக் கொண்ட LVM வட்டு குறியாக்கம் தற்போது ஆதரிக்கப்படவில்லை"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "NetworkManager ஐப் பயன்படுத்தவும் (GNOME மற்றும் KDE Plasma இணையத்தை வரைகலை முறையில் கட்டமைக்க அவசியம்)"
msgid "Select a LVM option"
msgstr "LVM விருப்பத்தைத் தேர்ந்தெடுக்கவும்"
msgid "Partitioning"
msgstr "பிரித்தல்"
msgid "Logical Volume Management (LVM)"
msgstr "தருக்க தொகுதி மேலாண்மை (LVM)"
msgid "Physical volumes"
msgstr "இயற்பியல் தொகுதிகள்"
msgid "Volumes"
msgstr "தொகுதிகள்"
msgid "LVM volumes"
msgstr "LVM தொகுதிகள்"
msgid "LVM volumes to be encrypted"
msgstr "LVM தொகுதிகள் குறியாக்கம் செய்யப்பட வேண்டும்"
msgid "Select which LVM volumes to encrypt"
msgstr "எந்த LVM தொகுதிகளை குறியாக்கம் செய்ய வேண்டும் என்பதைத் தேர்ந்தெடுக்கவும்"
msgid "Default layout"
msgstr "இயல்புநிலை தளவமைப்பு"
msgid "No Encryption"
msgstr "குறியாக்கம் இல்லை"
msgid "LUKS"
msgstr "LUKS"
msgid "LVM on LUKS"
msgstr "LUKS இல் LVM"
msgid "LUKS on LVM"
msgstr "LVM இல் LUKS"
msgid "Yes"
msgstr "ஆமாம்"
msgid "No"
msgstr "இல்லை"
msgid "Archinstall help"
msgstr "Archinstall உதவி"
msgid " (default)"
msgstr "(இயல்புநிலை)"
msgid "Press Ctrl+h for help"
msgstr "உதவிக்கு Ctrl+h ஐ அழுத்தவும்"
#, fuzzy
msgid "Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"உங்கள் வன்பொருளுக்கான அணுகலை வழங்குவதற்கான விருப்பத்தைத் தேர்வுசெய்யவும்"
msgid "Seat access"
msgstr ""
#, fuzzy
msgid "Mountpoint"
msgstr "மவுண்ட்பாயிண்ட்: "
msgid "HSM"
msgstr ""
#, fuzzy
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "வட்டு குறியாக்க கடவுச்சொல்லை உள்ளிடவும் (குறியாக்கம் இல்லாமல் இருப்பதற்கு காலியாக விடவும்): "
#, fuzzy
msgid "Disk encryption password"
msgstr "குறியாக்கம் கடவுச்சொல்"
#, fuzzy
msgid "Partition - New"
msgstr "பகிர்வு"
#, fuzzy
msgid "Filesystem"
msgstr "கோப்பு முறைமையை மாற்றவும்"
msgid "Invalid size"
msgstr ""
#, fuzzy
msgid "Start (default: sector {}): "
msgstr "தொடக்கத்தை உள்ளிடவும் (இயல்பு: sector {}): "
#, fuzzy
msgid "End (default: {}): "
msgstr "முடிவை உள்ளிடவும் (இயல்பு: {}): "
#, fuzzy
msgid "Subvolume name"
msgstr "துணைத்தொகுதி பெயர் "
#, fuzzy
msgid "Disk configuration type"
msgstr "வட்டு கட்டமைப்பு"
msgid "Root mount directory"
msgstr ""
#, fuzzy
msgid "Select language"
msgstr "லோகேல் மொழி"
#, fuzzy
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "நிறுவ கூடுதல் தொகுப்புகளை எழுதவும் (இடம் பிரிக்கப்பட்டது, தவிர்க்க காலியாக விடவும்): "
msgid "Invalid download number"
msgstr ""
msgid "Number downloads"
msgstr ""
#, fuzzy
msgid "The username you entered is invalid"
msgstr "நீங்கள் உள்ளிட்ட பயனர்பெயர் தவறானது. மீண்டும் முயற்சிக்கவும்"
#, fuzzy
msgid "Username"
msgstr "பயனர் பெயர்: "
#, fuzzy, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "\"{}\" ஒரு சூப்பர் யூசராக (sudo) இருக்க வேண்டுமா?"
#, fuzzy
msgid "Interfaces"
msgstr "இடைமுகத்தைச் சேர்க்கவும்"
msgid "You need to enter a valid IP in IP-config mode"
msgstr ""
msgid "Modes"
msgstr ""
msgid "IP address"
msgstr ""
#, fuzzy
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "உங்கள் நுழைவாயில் (திசைவி) IP முகவரியை உள்ளிடவும் அல்லது எதற்கும் காலியாக விடவும்: "
msgid "Gateway address"
msgstr ""
#, fuzzy
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "உங்கள் DNS சேவையகங்களை உள்ளிடவும் (இடம் பிரிக்கப்பட்டது, எதற்கும் காலியாக இல்லை): "
#, fuzzy
msgid "DNS servers"
msgstr "ஆடியோ சர்வர் இல்லை"
#, fuzzy
msgid "Configure interfaces"
msgstr "கட்டமைக்கப்பட்ட {} இடைமுகங்கள்"
#, fuzzy
msgid "Kernel"
msgstr "கர்னல்கள்"
msgid "UEFI is not detected and some options are disabled"
msgstr ""
msgid "Info"
msgstr ""
#, fuzzy
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "தனியுரிம Nvidia இயக்கி ஸ்வே ஆல் ஆதரிக்கப்படவில்லை. நீங்கள் சிக்கலில் சிக்க வாய்ப்புள்ளது, உனக்கு அது சரியா?"
#, fuzzy
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "தனியுரிம Nvidia இயக்கி ஸ்வே ஆல் ஆதரிக்கப்படவில்லை. நீங்கள் சிக்கலில் சிக்க வாய்ப்புள்ளது, உனக்கு அது சரியா?"
#, fuzzy
msgid "Main profile"
msgstr "சுயவிவரத்தைத் திருத்தவும்"
#, fuzzy
msgid "Confirm password"
msgstr "கடவுச்சொல்லை மாற்று"
msgid "The confirmation password did not match, please try again"
msgstr ""
#, fuzzy
msgid "Not a valid directory"
msgstr "சரியான கோப்பகம் இல்லை: {}"
#, fuzzy
msgid "Would you like to continue?"
msgstr "BTRFS சுருக்கத்தைப் பயன்படுத்த விரும்புகிறீர்களா?"
msgid "Directory"
msgstr ""
#, fuzzy
msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)"
msgstr ""
"உள்ளமைவு(களை) சேமிக்கப்படுவதற்கான கோப்பகத்தை உள்ளிடவும் (தாவல் நிறைவு இயக்கப்பட்டது)\n"
"கோப்பகத்தை சேமி: "
#, fuzzy, python-brace-format
msgid "Do you want to save the configuration file(s) to {}?"
msgstr ""
"பின்வரும் இடத்தில் {} உள்ளமைவுக் கோப்பை(களை) சேமிக்க விரும்புகிறீர்களா?\n"
"\n"
"{}"
msgid "Enabled"
msgstr ""
msgid "Disabled"
msgstr ""
#, fuzzy
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " இந்த சிக்கல் (மற்றும் கோப்பை) https://github.com/archlinux/archinstall/issues க்கு சமர்ப்பிக்கவும்"
#, fuzzy
msgid "Mirror name"
msgstr "மிரர் பிராந்தியம்"
msgid "Url"
msgstr ""
#, fuzzy
msgid "Select signature check"
msgstr "கையொப்ப சரிபார்ப்பு விருப்பத்தைத் தேர்ந்தெடுக்கவும்"
#, fuzzy
msgid "Select execution mode"
msgstr "செயல்படுத்தும் பயன்முறையைத் தேர்ந்தெடுக்கவும்"
#, fuzzy
msgid "Press ? for help"
msgstr "உதவிக்கு Ctrl+h ஐ அழுத்தவும்"
#, fuzzy
msgid "Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"உங்கள் வன்பொருளுக்கு Hypland அணுகலை வழங்குவதற்கான விருப்பத்தைத் தேர்வு செய்யவும்"
#, fuzzy
msgid "Additional repositories"
msgstr "விருப்ப களஞ்சியங்கள்"
msgid "NTP"
msgstr ""
msgid "Swap on zram"
msgstr ""
msgid "Name"
msgstr ""
#, fuzzy
msgid "Signature check"
msgstr "கையொப்ப சரிபார்ப்பு விருப்பத்தைத் தேர்ந்தெடுக்கவும்"
#, fuzzy, python-brace-format
msgid "Selected free space segment on device {}:"
msgstr "{} சாதனத்தில் தற்போதைய இலவசப் பிரிவுகள்:"
#, fuzzy, python-brace-format
msgid "Size: {} / {}"
msgstr "மொத்தம்: {} / {}"
#, fuzzy, python-brace-format
msgid "Size (default: {}): "
msgstr "முடிவை உள்ளிடவும் (இயல்பு: {}): "
#, fuzzy
msgid "HSM device"
msgstr "சாதனம்"
msgid "Some packages could not be found in the repository"
msgstr ""
#, fuzzy
msgid "User"
msgstr "பயனர் பெயர்: "
msgid "The specified configuration will be applied"
msgstr ""
msgid "Wipe"
msgstr ""
#, fuzzy
msgid "Mark/Unmark as XBOOTLDR"
msgstr "துவக்கக்கூடியதாகக் குறி/குறிநீக்கு"
#, fuzzy
msgid "Loading packages..."
msgstr "கூடுதல் தொகுப்புகள்"
msgid "Select any packages from the below list that should be installed additionally"
msgstr ""
#, fuzzy
msgid "Add a custom repository"
msgstr "தனிப்பயன் கண்ணாடியைச் சேர்க்கவும்"
#, fuzzy
msgid "Change custom repository"
msgstr "தனிப்பயன் கண்ணாடியை மாற்றவும்"
#, fuzzy
msgid "Delete custom repository"
msgstr "தனிப்பயன் கண்ணாடியை நீக்கு"
#, fuzzy
msgid "Repository name"
msgstr "மிரர் பிராந்தியம்"
#, fuzzy
msgid "Add a custom server"
msgstr "தனிப்பயன் கண்ணாடியைச் சேர்க்கவும்"
#, fuzzy
msgid "Change custom server"
msgstr "தனிப்பயன் கண்ணாடியை மாற்றவும்"
#, fuzzy
msgid "Delete custom server"
msgstr "தனிப்பயன் கண்ணாடியை நீக்கு"
msgid "Server url"
msgstr ""
#, fuzzy
msgid "Select regions"
msgstr "கையெழுத்து விருப்பத்தைத் தேர்ந்தெடுக்கவும்"
#, fuzzy
msgid "Add custom servers"
msgstr "தனிப்பயன் கண்ணாடியைச் சேர்க்கவும்"
#, fuzzy
msgid "Add custom repository"
msgstr "தனிப்பயன் கண்ணாடியைச் சேர்க்கவும்"
#, fuzzy
msgid "Loading mirror regions..."
msgstr "கண்ணாடிப் பகுதிகள்"
#, fuzzy
msgid "Mirrors and repositories"
msgstr "விருப்ப களஞ்சியங்கள்"
#, fuzzy
msgid "Selected mirror regions"
msgstr "கண்ணாடிப் பகுதிகள்"
#, fuzzy
msgid "Custom servers"
msgstr "தனிப்பயன் கண்ணாடிகள்"
#, fuzzy
msgid "Custom repositories"
msgstr "விருப்ப களஞ்சியங்கள்"
msgid "Only ASCII characters are supported"
msgstr ""
msgid "Show help"
msgstr ""
msgid "Exit help"
msgstr ""
msgid "Preview scroll up"
msgstr ""
msgid "Preview scroll down"
msgstr ""
msgid "Move up"
msgstr ""
msgid "Move down"
msgstr ""
msgid "Move right"
msgstr ""
msgid "Move left"
msgstr ""
msgid "Jump to entry"
msgstr ""
msgid "Skip selection (if available)"
msgstr ""
msgid "Reset selection (if available)"
msgstr ""
#, fuzzy
msgid "Select on single select"
msgstr "கையொப்ப சரிபார்ப்பு விருப்பத்தைத் தேர்ந்தெடுக்கவும்"
#, fuzzy
msgid "Select on multi select"
msgstr "நேர மண்டலத்தைத் தேர்ந்தெடுக்கவும்"
msgid "Reset"
msgstr ""
#, fuzzy
msgid "Skip selection menu"
msgstr "செயல்படுத்தும் பயன்முறையைத் தேர்ந்தெடுக்கவும்"
msgid "Start search mode"
msgstr ""
msgid "Exit search mode"
msgstr ""
#, fuzzy
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "ஸ்வேக்கு உங்கள் இருக்கைக்கான அணுகல் தேவை (வன்பொருள் சாதனங்களின் சேகரிப்பு அதாவது விசைப்பலகை, சுட்டி போன்றவை)"
#, fuzzy
msgid "Choose an option to give labwc access to your hardware"
msgstr ""
"\n"
"\n"
"உங்கள் வன்பொருளுக்கான அணுகலை வழங்குவதற்கான விருப்பத்தைத் தேர்வுசெய்யவும்"
#, fuzzy
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "ஸ்வேக்கு உங்கள் இருக்கைக்கான அணுகல் தேவை (வன்பொருள் சாதனங்களின் சேகரிப்பு அதாவது விசைப்பலகை, சுட்டி போன்றவை)"
#, fuzzy
msgid "Choose an option to give niri access to your hardware"
msgstr ""
"\n"
"\n"
"உங்கள் வன்பொருளுக்கான அணுகலை வழங்குவதற்கான விருப்பத்தைத் தேர்வுசெய்யவும்"
#, fuzzy
msgid "Mark/Unmark as ESP"
msgstr "துவக்கக்கூடியதாகக் குறி/குறிநீக்கு"
msgid "Package group:"
msgstr ""
#, fuzzy
msgid "Exit archinstall"
msgstr "Archinstall உதவி"
#, fuzzy
msgid "Reboot system"
msgstr "கோப்பு முறைமையை மாற்றவும்"
#, fuzzy
msgid "chroot into installation for post-installation configurations"
msgstr "புதிதாக உருவாக்கப்பட்ட நிறுவலில் chroot செய்து, நிறுவலுக்குப் பிந்தைய உள்ளமைவைச் செய்ய விரும்புகிறீர்களா?"
msgid "Installation completed"
msgstr ""
#, fuzzy
msgid "What would you like to do next?"
msgstr "BTRFS சுருக்கத்தைப் பயன்படுத்த விரும்புகிறீர்களா?"
#, fuzzy, python-brace-format
msgid "Select which mode to configure for \"{}\""
msgstr "எந்த பயன்முறையை \"{}\" உள்ளமைக்க வேண்டும் என்பதைத் தேர்ந்தெடுக்கவும் அல்லது இயல்புநிலை பயன்முறை \"{}\" ஐப் பயன்படுத்த தவிர்க்கவும்"
#, fuzzy
msgid "Incorrect credentials file decryption password"
msgstr "குறியாக்கம் கடவுச்சொல்"
#, fuzzy
msgid "Incorrect password"
msgstr "ரூட் கடவுச்சொல்"
#, fuzzy
msgid "Credentials file decryption password"
msgstr "குறியாக்கம் கடவுச்சொல்"
#, fuzzy
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr ""
"பின்வரும் இடத்தில் {} உள்ளமைவுக் கோப்பை(களை) சேமிக்க விரும்புகிறீர்களா?\n"
"\n"
"{}"
#, fuzzy
msgid "Credentials file encryption password"
msgstr "குறியாக்கம் கடவுச்சொல்"
#, 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 "Print service"
msgstr ""
#, fuzzy
msgid "Would you like to configure the print service?"
msgstr "BTRFS சுருக்கத்தைப் பயன்படுத்த விரும்புகிறீர்களா?"
#, fuzzy
msgid "Power management"
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 "HSM க்கு பயன்படுத்த FIDO2 சாதனத்தைத் தேர்ந்தெடுக்கவும்"
msgid "You may need to enter the PIN and then touch your U2F device to register it"
msgstr ""
msgid "Starting device modifications in "
msgstr ""
#, fuzzy
msgid "No network connection found"
msgstr "பிணைய கட்டமைப்பு இல்லை"
#, fuzzy
msgid "Would you like to connect to a Wifi?"
msgstr "BTRFS சுருக்கத்தைப் பயன்படுத்த விரும்புகிறீர்களா?"
#, fuzzy
msgid "No wifi interface found"
msgstr "கட்டமைக்கப்பட்ட {} இடைமுகங்கள்"
#, fuzzy
msgid "Select wifi network to connect to"
msgstr "கட்டமைக்க ஒரு பிணைய இடைமுகத்தைத் தேர்ந்தெடுக்கவும்"
msgid "Scanning wifi networks..."
msgstr ""
#, fuzzy
msgid "No wifi networks found"
msgstr "பிணைய கட்டமைப்பு இல்லை"
msgid "Failed setting up wifi"
msgstr ""
#, fuzzy
msgid "Enter wifi password"
msgstr "கடவுச்சொல்லை உள்ளிடவும்: "
msgid "Ok"
msgstr ""
msgid "Removable"
msgstr ""
msgid "Install to removable location"
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr ""
msgid "Will install to standard location with NVRAM entry"
msgstr ""
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr ""
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr ""
msgid "USB drives or other portable external media."
msgstr ""
msgid "Systems where you want the disk to be bootable on any computer."
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr ""
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr ""
msgid "Will install to custom location with NVRAM entry"
msgstr ""
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr ""
msgid "most Apple Macs, many laptops..."
msgstr ""
#, fuzzy
msgid "Language"
msgstr "லோகேல் மொழி"
msgid "Compression algorithm"
msgstr ""
#, fuzzy
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "தொகுப்பு Base, base-devel, linux, linux-firmware, efibootmgr மற்றும் விருப்ப சுயவிவர தொகுப்புகள் போன்ற தொகுப்புகள் மட்டுமே நிறுவப்பட்டுள்ளன."
#, fuzzy
msgid "Select zram compression algorithm:"
msgstr "மவுண்ட் பாயிண்ட்டைத் தேர்ந்தெடுக்கவும்:"
msgid "Use Network Manager (default backend)"
msgstr ""
msgid "Use Network Manager (iwd backend)"
msgstr ""
================================================
FILE: archinstall/locales/tr/LC_MESSAGES/base.po
================================================
# Please do not completely remove previous translator information from Language-Team.
# If you are the last translator, you may add your full information to Last-Translator and your username to Language-Team.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: 21.05.2022\n"
"PO-Revision-Date: 2025-12-31 16:10+0100\n"
"Last-Translator: Abdullah Koyuncu @wiseweb-works \n"
"Language-Team: SerdarSaglam, favilances, wiseweb-works, AlperShal, arlsdk, tugsatenes, eren-ince, Schwarzeisc00l, Oruch379\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.8\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] Burada bir günlük dosyası oluşturuldu: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Lütfen bu sorunu (ve dosyayı) https://github.com/archlinux/archinstall/issues adresine gönderin"
msgid "Do you really want to abort?"
msgstr "Gerçekten iptal etmek istiyor musunuz?"
msgid "And one more time for verification: "
msgstr "Ve doğrulama için bir kez daha: "
msgid "Would you like to use swap on zram?"
msgstr "Zram üzerinde swap kullanmak ister misiniz?"
msgid "Desired hostname for the installation: "
msgstr "Kurulum için istenilen ana bilgisayar adı: "
msgid "Username for required superuser with sudo privileges: "
msgstr "Sudo ayrıcalıklarına sahip gerekli süper kullanıcı için kullanıcı adı: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "Ek olarak kurulacak kullanıcılar var mı (kullanıcı yoksa boş bırakın): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "Bu kullanıcı bir süper kullanıcı (sudoer) olmalı mı?"
msgid "Select a timezone"
msgstr "Bir zaman dilimi seç"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "Önyükleyici olarak systemd-boot yerine GRUB kullanmak ister misiniz?"
msgid "Choose a bootloader"
msgstr "Bir ön yükleyici seç"
msgid "Choose an audio server"
msgstr "Bir ses sunucusu seç"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Yalnızca base, base-devel, linux, linux-firmware, efibootmgr ve isteğe bağlı profil paketleri gibi paketler yüklenir."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr "Not: base-devel artık varsayılan olarak yüklenmemektedir. Derleme araçlarına ihtiyacınız varsa buradan ekleyin."
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "Firefox veya Chromium gibi bir web tarayıcısı isterseniz, sıradaki ekranda belirtebilirsiniz."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "Kurulacak ek paketleri yazınız (paketleri boşlukla ayırın, geçmek için boş bırakın): "
msgid "Copy ISO network configuration to installation"
msgstr "ISO ağ yapılandırmasını kuruluma kopyala"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "NetworkManager kullan (GNOME ve KDE ile interneti grafiksel olarak yapılandırmak için gerekli)"
msgid "Select one network interface to configure"
msgstr "Yapılandırmak için bir ağ arayüzü seçin"
msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
msgstr "\"{}\"i yapılandırmak için bir yöntem seçin ya da varsayılan yöntemi \"{}\" kullanmak için atlayın"
#, python-brace-format
msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): "
msgstr "{} için IP ve altağ (subnet) girin (örnek: 192.168.0.5/24): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "Ağ geçidi (yönlendirici) IP adresini girin ya da yoksa veya kullanılmayacak ise boş bırakın: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "DNS sunucularını girin (boşlukla ayrılmış, yoksa veya kullanılmayacak ise boş bırakın): "
msgid "Select which filesystem your main partition should use"
msgstr "Ana diskinizde kullanılması gereken dosya sistemini seçin"
msgid "Current partition layout"
msgstr "Mevcut disk bölümü düzeni"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"{}\n"
"ile ne yapılması gerektiğini seçin"
msgid "Enter a desired filesystem type for the partition"
msgstr "Disk bölümü için arzu edilen bir dosya sistemi tipi girin"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "Başlangıç konumunu girin (bölümlendirilen birimlerinde: s, GB, %, vb. ; default: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "Bitiş konumunu girin (bölümlendirilen birimlerinde: s, GB, %, vb. ; ex: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} bekleyen disk bölümleri bulunduruyor, bu işlem onları kaldıracak, bundan emin misiniz?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"Dizinden hangi disk bölümlerinin silineceğini seçin"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"Dizinden hangi disk bölümünün nereye bağlanacağını (mount) seçin"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * Disk bölümü bağlantı (mount) noktaları iç kurulumla ilişkilidir, örnek olarak önyükleme, /boot olacaktır."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "Disk bölümünün nereye bağlanacağını (mount) seçin (bağlantı (mount) noktasını kaldırmak için boş bırakın): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"Biçimlendirme için hangi disk bölümünün maskeleneceğini seçin"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"Hangi disk bölümünün şifrelenmiş olarak işaretleneceğini seçin"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"Hangi disk bölümünün önyüklenebilir (bootable) olarak işaretleneceğini seçin"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"Hangi disk bölümüne dosya sistemi kurulacağını seçin"
msgid "Enter a desired filesystem type for the partition: "
msgstr "Disk bölümü için arzu edilen bir dosya sistemi tipi girin: "
msgid "Archinstall language"
msgstr "Archinstall dili"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "Seçilmiş bütün diskleri temizle ve mümkün olan en iyi varsayılan disk bölümü düzenini kullan"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "Her bir disk ile ne yapılacağını seçin (disk bölümü kullanımı ile takip edilir)"
msgid "Select what you wish to do with the selected block devices"
msgstr "Seçili blok cihazları ile ne yapmak istediğinizi seçin"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "Bu ön-programlanmış profillerin bir listesidir, bunlar masaüstü ortamları gibi şeyleri kurmayı kolaylaştırabilir"
msgid "Select keyboard layout"
msgstr "Klavye düzeni seçin"
msgid "Select one of the regions to download packages from"
msgstr "Paketleri indirmek için bölgelerden birini seçin"
msgid "Select one or more hard drives to use and configure"
msgstr "Kullanmak ve yapılandırmak için bir veya daha fazla disk seçin"
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 donanımınızla en iyi uyumluluk için, tam açık-kaynak ya da AMD / ATI ayarlarından birini kullanmak isteyebilirsiniz."
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 donanımınızla en iyi uyumluluk için, tam açık-kaynak ya da Intel ayarlarından birini kullanmak isteyebilirsiniz.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "Nvidia donanımınızla en iyi uyumluluk için, Nvidia kapalı kaynaklı sürücüyü kullanmak isteyebilirsiniz.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Bir grafik sürücüsü seçin ya da bütün açık-kaynak sürücüleri kurmak için boş bırakın"
msgid "All open-source (default)"
msgstr "Tüm açık-kaynaklar (varsayılan)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "Hangi çekirdeklerin kullanılacağını seçin veya varsayılan \"{}\" için boş bırakın"
msgid "Choose which locale language to use"
msgstr "Hangi yerel dilin kullanılacağını seçin"
msgid "Choose which locale encoding to use"
msgstr "Hangi yerel kodlamanın kullanılacağını seçin"
msgid "Select one of the values shown below: "
msgstr "Aşağıda gösterilen değerlerden birini seçin: "
msgid "Select one or more of the options below: "
msgstr "Aşağıdaki seçeneklerden bir ya da daha fazlasını seçin: "
msgid "Adding partition...."
msgstr "Bölüm ekleniyor...."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "Devam etmek için geçerli bir fs-type girmeniz gerekir. Geçerli fs-type için `man parted`'a bakın."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "Hata: Bağlantı \"{}\"daki profilleri listeleme şöyle sonuçlandı:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "Hata: \"{}\" sonucu JSON olarak çözülemedi:"
msgid "Keyboard layout"
msgstr "Klavye düzeni"
msgid "Mirror region"
msgstr "Ayna bölgesi"
msgid "Locale language"
msgstr "Yerel dil"
msgid "Locale encoding"
msgstr "Yerel kodlama"
msgid "Drive(s)"
msgstr "Diskler"
msgid "Disk layout"
msgstr "Disk düzeni"
msgid "Encryption password"
msgstr "Şifreleme parolası"
msgid "Swap"
msgstr "Swap"
msgid "Bootloader"
msgstr "Önyükleyici"
msgid "Root password"
msgstr "Root parolası"
msgid "Superuser account"
msgstr "Süper kullanıcı hesabı"
msgid "User account"
msgstr "Kullanıcı hesabı"
msgid "Profile"
msgstr "Profil"
msgid "Audio"
msgstr "Ses"
msgid "Kernels"
msgstr "Çekirdekler"
msgid "Additional packages"
msgstr "Ek paketler"
msgid "Network configuration"
msgstr "Ağ yapılandırması"
msgid "Automatic time sync (NTP)"
msgstr "Otomatik zaman eşitlemesi (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "Kur ({} adet yapılandırma eksik)"
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 ""
"Sabit disk seçimini atlamaya karar verdiniz ve\n"
"{}'e ne bağlanmışsa (mount) onu kullanacaksınız (deneysel)\n"
"UYARI: Archinstall bu kurulumun uygunluğunu kontrol etmeyecek\n"
"Devam etmek istiyor musunuz?"
msgid "Re-using partition instance: {}"
msgstr "Disk bölümü örneği yeniden kullanılıyor: {}"
msgid "Create a new partition"
msgstr "Yeni disk bölümü oluştur"
msgid "Delete a partition"
msgstr "Disk bölümü sil"
msgid "Clear/Delete all partitions"
msgstr "Tüm disk bölümlerini Temizle/Sil"
msgid "Assign mount-point for a partition"
msgstr "Bir disk bölümü için mount (bağlantı) noktası ata"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "Bir disk bölümünü biçimlendirilmek üzere işaretle/işareti kaldır (veriyi temizler)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "Bir disk bölümünü şifrelenmiş olarak işaretle/işareti kaldır"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "Bir disk bölümünü önyüklenebilir olarak işaretle/işareti kaldır (/boot için otomatik)"
msgid "Set desired filesystem for a partition"
msgstr "Bir disk bölümü için istenilen dosya sistemini ayarla"
msgid "Abort"
msgstr "Vazgeç"
msgid "Hostname"
msgstr "Ana bilgisayar adı"
msgid "Not configured, unavailable unless setup manually"
msgstr "Yapılandırılmamış, el ile kurulmadığı sürece kullanılamaz"
msgid "Timezone"
msgstr "Zaman dilimi"
msgid "Set/Modify the below options"
msgstr "Aşağıdaki seçenekleri Ayarla/Değiştir"
msgid "Install"
msgstr "Kur"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"Geçmek için ESC kullan\n"
"\n"
msgid "Suggest partition layout"
msgstr "Disk bölümü şeması öner"
msgid "Enter a password: "
msgstr "Bir parola gir: "
msgid "Enter a encryption password for {}"
msgstr "{} için bir şifreleme parolası girin"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "Disk şifreleme parolası girin (şifreleme olmaması için boş bırakın): "
msgid "Create a required super-user with sudo privileges: "
msgstr "Sudo ayrıcalıklarına sahip gerekli bir süper kullanıcı oluştur: "
msgid "Enter root password (leave blank to disable root): "
msgstr "Root parolası gir (root devre dışı bırakmak için boş bırak): "
msgid "Password for user \"{}\": "
msgstr "\"{}\" kullanıcısı için şifre: "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "Ek paketlerin varlığı doğrulanıyor (bu bir kaç saniye alabilir)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "Varsayılan zaman sunucularıyla otomatik zaman eş zamanlama (NTP) kullanmak ister misiniz?\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 çalışması için donanım zamanı ve diğer yapılandırma sonrası adımlar gerekebilir.\n"
"Daha fazla bilgi için, lütfen Arch wikiye göz atın"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "Ek kullanıcı oluşturmak için bir kullanıcı adı girin (geçmek için boş bırakın): "
msgid "Use ESC to skip\n"
msgstr "Geçmek için ESC kullan\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
"Listeden bir obje seçin ve çalıştırılmak üzere mevcut eylemlerden birini seçin"
msgid "Cancel"
msgstr "İptal"
msgid "Confirm and exit"
msgstr "Onayla ve çık"
msgid "Add"
msgstr "Ekle"
msgid "Copy"
msgstr "Kopyala"
msgid "Edit"
msgstr "Düzenle"
msgid "Delete"
msgstr "Sil"
msgid "Select an action for '{}'"
msgstr "'{}' için bir eylem seç"
msgid "Copy to new key:"
msgstr "Yeni anahtara kopyala:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "Bilinmeyen nic türü: {}. Olası değerler {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"Bu sizin seçilmiş yapılandırmanız:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman hâlihazırda çalışıyor, işlemin sonlandırılması için en fazla 10 dakika beklenecek."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "Önceden var olan pacman kilidi çıkış yapmadı. Lütfen archinstall'u kullanmadan önce mevcut olan pacman oturumlarını temizleyin."
msgid "Choose which optional additional repositories to enable"
msgstr "Hangi tercihi ek depoların (repositorylerin) aktifleştirileceğini seçin"
msgid "Add a user"
msgstr "Kullanıcı ekle"
msgid "Change password"
msgstr "Parola değiştir"
msgid "Promote/Demote user"
msgstr "Kullanıcıyı terfi et/indirge"
msgid "Delete User"
msgstr "Kullanıcıyı Sil"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"Yeni bir kullanıcı tanımla\n"
msgid "User Name : "
msgstr "Kullanıcı Adı : "
msgid "Should {} be a superuser (sudoer)?"
msgstr "{} bir süper kullanıcı (sudoer) mı olmalı?"
msgid "Define users with sudo privilege: "
msgstr "Sudo yetkilerine sahip kullanıcıları tanımlayın: "
msgid "No network configuration"
msgstr "Ağ yapılandırması yok"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Btrfs disk bölümünde istenilen alt disk bölümülerini ayarlayın"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"Alt disk bölümlerinin hangi disk bölümüne ayarlanacağını seçin"
msgid "Manage btrfs subvolumes for current partition"
msgstr "Mevcut disk bölümü için btrfs alt disk bölümlerini yönet"
msgid "No configuration"
msgstr "Yapılandırma yok"
msgid "Save user configuration"
msgstr "Kullanıcı yapılandırmasını kaydet"
msgid "Save user credentials"
msgstr "Kullanıcı bilgilerini kaydet"
msgid "Save disk layout"
msgstr "Disk düzenini kaydet"
msgid "Save all"
msgstr "Tümünü kaydet"
msgid "Choose which configuration to save"
msgstr "Hangi yapılandırmanın kaydedileceğini seçin"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "Yapılandırmaların kaydedilmesi için bir dizin girin: "
msgid "Not a valid directory: {}"
msgstr "Geçerli bir dizin değil: {}"
msgid "The password you are using seems to be weak,"
msgstr "Kullandığınız parola zayıf görünüyor,"
msgid "are you sure you want to use it?"
msgstr "kullanmak istediğinize emin misiniz?"
msgid "Optional repositories"
msgstr "İsteğe bağlı depolar"
msgid "Save configuration"
msgstr "Yapılandırmayı kaydet"
msgid "Missing configurations:\n"
msgstr "Eksik yapılandırmalar:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "Ya root parolası ya da en az 1 süper kullanıcı belirtilmelidir"
msgid "Manage superuser accounts: "
msgstr "Süper kullanıcı hesaplarını yönet: "
msgid "Manage ordinary user accounts: "
msgstr "Normal kullanıcı hesaplarını yönet: "
msgid " Subvolume :{:16}"
msgstr " Alt disk bölümü :{:16}"
msgid " mounted at {:16}"
msgstr " {:16}'da monte edildi"
msgid " with option {}"
msgstr " {} seçeneğiyle"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
"Yeni bir alt disk bölümü için istenilen değerleri doldurun\n"
msgid "Subvolume name "
msgstr "Alt disk bölümü ismi "
msgid "Subvolume mountpoint"
msgstr "Alt disk bölümü bağlantı noktası"
msgid "Subvolume options"
msgstr "Alt disk bölümü seçenekleri"
msgid "Save"
msgstr "Kaydet"
msgid "Subvolume name :"
msgstr "Alt disk bölümü ismi :"
msgid "Select a mount point :"
msgstr "Bir bağlantı noktası seçin :"
msgid "Select the desired subvolume options "
msgstr "İstenilen alt disk bölümü ayarlarını seçin "
msgid "Define users with sudo privilege, by username: "
msgstr "Süper-kullanıcı yetkilerine sahip kullanıcıları tanımlayın, kullanıcı adı ile: "
#, python-brace-format
msgid "[!] A log file has been created here: {}"
msgstr "[!] Burada bir günlük dosyası oluşturuldu: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "BTRFS alt disk bölümlerini varsayılan yapıyla kullanmak ister misiniz?"
msgid "Would you like to use BTRFS compression?"
msgstr "BTRFS sıkıştırmasını kullanmak ister misiniz?"
msgid "Would you like to create a separate partition for /home?"
msgstr "/home dizini için ayrı bir disk bölümü oluşturmak ister misiniz?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "Seçilmiş diskler otomatik öneriler için gerekli minimum kapasiteye sahip değil\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "/home disk bölümü için minimum kapasite: {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Arch Linux disk bölümü için minimum kapasite: {}GB"
msgid "Continue"
msgstr "Devam"
msgid "yes"
msgstr "evet"
msgid "no"
msgstr "hayır"
msgid "set: {}"
msgstr "ayarla: {}"
msgid "Manual configuration setting must be a list"
msgstr "El ile yapılandırma ayarı bir liste olmalıdır"
msgid "No iface specified for manual configuration"
msgstr "El ile yapılandırma için iface belirtilmemiş"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "Otomatik DHCP olmayan manuel nic yapılandırması IP adresi gerektirir"
msgid "Add interface"
msgstr "Arayüz ekle"
msgid "Edit interface"
msgstr "Arayüzü düzenle"
msgid "Delete interface"
msgstr "Arayüzü sil"
msgid "Select interface to add"
msgstr "Eklemek için arayüz seçin"
msgid "Manual configuration"
msgstr "El ile yapılandırma"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "Bir disk bölümünü sıkıştırılmış olarak işaretle/işareti kaldır (sadece btrfs)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "Kullandığınız şifre zayıf görünüyor, kullanmak istediğinize emin misiniz?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "Masaüstü ortamları ve otomatik döşemeli pencere yöneticilerine bir seçenek sunar, örnek olarak gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "İstediğiniz masaüstü ortamını seçin"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "Arch Linux'u uygun gördüğünüz şekilde özelleştirmenize olanak tanıyan çok basit bir kurulum."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "Kurmak ve aktif etmek için bazı seçilmiş çeşitli sunucu paketleri sunar, örnek olarak httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "Hangi sunucuların kurulacağını seçin, eğer hiçbiri seçilmezse minimal bir kurulum gerçekleştirilecektir"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "Xorg ve grafik sürücüleri ile minimal bir sistem kurar."
msgid "Press Enter to continue."
msgstr "Devam etmek için Enter'a basın."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "Yeni oluşturulan kuruluma chroot ile girmek ve kurulum sonrası yapılandırmayı gerçekleştirmek ister misiniz?"
msgid "Are you sure you want to reset this setting?"
msgstr "Bu ayarı sıfırlamak istediğinize emin misiniz?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "Kullanmak ve yapılandırmak için bir ya da daha fazla sabit disk seçin\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "Mevcut ayarda yapılacak herhangi bir değişiklik disk düzenini sıfırlayacaktır!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "Eğer sabit disk seçimini sıfırlarsanız bu ayrıca mevcut disk şemasını da sıfırlayacaktır. Emin misiniz?"
msgid "Save and exit"
msgstr "Kaydet ve çık"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"işlem sırasında bekleyen disk bölümleri bulunduruyor, bu onları kaldıracak, emin misiniz?"
msgid "No audio server"
msgstr "Ses sunucusu yok"
msgid "(default)"
msgstr "(varsayılan)"
msgid "Use ESC to skip"
msgstr "Atlamak için ESC kullan"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"Mevcut seçimi sıfırlamak için CTRL+C kullan\n"
"\n"
msgid "Copy to: "
msgstr "Şuraya kopyala: "
msgid "Edit: "
msgstr "Düzenle: "
msgid "Key: "
msgstr "Anahtar: "
msgid "Edit {}: "
msgstr "Düzenle {}: "
msgid "Add: "
msgstr "Ekle: "
msgid "Value: "
msgstr "Değer: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "Bir disk seçmeyi ve bölümlemeyi atlayabilir ve /mnt adresinde bağlı olan disk konfigürasyonunu kullanabilirsiniz (deneysel)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "Disklerden birini seçin ya da atlayın ve /mnt dizinini varsayılan olarak kullanın"
msgid "Select which partitions to mark for formatting:"
msgstr "Biçimlendirme için işaretlenecek disk bölümlerini seçin:"
msgid "Use HSM to unlock encrypted drive"
msgstr "Şifrelenmiş diskin kilidini açmak için HSM kullan"
msgid "Device"
msgstr "Cihaz"
msgid "Size"
msgstr "Boyut"
msgid "Free space"
msgstr "Boş alan"
msgid "Bus-type"
msgstr "Veri yolu türü"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "Ya root parolası ya da sudo yetkilerine sahip en az 1 kullanıcı belirtilmelidir"
msgid "Enter username (leave blank to skip): "
msgstr "Kullanıcı adını girin (atlamak için boş bırakın): "
msgid "The username you entered is invalid. Try again"
msgstr "Girdiğiniz kullanıcı adı geçersiz. Tekrar deneyin"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "{} bir süper kullanıcı (sudo) olmalı mı?"
msgid "Select which partitions to encrypt"
msgstr "Hangi disk bölümlerinin şifreleneceğini seçin"
msgid "very weak"
msgstr "çok zayıf"
msgid "weak"
msgstr "zayıf"
msgid "moderate"
msgstr "ortalama"
msgid "strong"
msgstr "güçlü"
msgid "Add subvolume"
msgstr "Alt disk bölümü ekle"
msgid "Edit subvolume"
msgstr "Alt disk bölümünü düzenle"
msgid "Delete subvolume"
msgstr "Alt disk bölümünü sil"
msgid "Configured {} interfaces"
msgstr "Yapılandırılmış {} arayüzler"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "Bu seçenek, yükleme sırasında meydana gelebilecek paralel indirme sayısını etkinleştirir"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"Etkinleştirilecek paralel indirme sayısını girin.\n"
" (1 ile {max_downloads} arasında bir değer girin)\n"
"Not:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - En yüksek değer : {} ( {} paralel indirmeye (tek seferde {} indirmeye) izin verir)"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - Asgari değer : 1 ( 1 paralel indirmeye (bir seferde 2 indirmeye) izin verir)"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - Devre Dışı Bırak/Varsayılan : 0 (Paralel indirmeyi devre dışı bırakır, aynı anda yalnızca 1 indirmeye izin verir)"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "Geçersiz girdi! Geçerli bir girdiyle tekrar deneyin [{max_downloads} için 1, veya devre dışı bırakmak için 0]"
msgid "Parallel Downloads"
msgstr "Paralel İndirmeler"
msgid "ESC to skip"
msgstr "Atlamak için ESC"
msgid "CTRL+C to reset"
msgstr "Sıfırlamak için CTRL+C"
msgid "TAB to select"
msgstr "Seçmek için TAB"
msgid "[Default value: 0] > "
msgstr "[Varsayılan değer: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "Bu çeviriyi kullanabilmek için lütfen dili destekleyen bir yazı tipini manuel olarak yükleyin."
msgid "The font should be stored as {}"
msgstr "Yazı tipi {} olarak saklanmalıdır."
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Archinstall çalışması için root ayrıcalıkları gerekir. Daha fazlası için --help bölümüne bak."
msgid "Select an execution mode"
msgstr "Bir çalıştırma modu seçin"
#, python-brace-format
msgid "Unable to fetch profile from specified url: {}"
msgstr "Belirtilen web adresinden profil getirilemiyor: {}"
#, python-brace-format
msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}"
msgstr "Profiller benzersiz ada sahip olmalıdır, ancak yinelenen ada sahip profiller bulundu: {}"
msgid "Select one or more devices to use and configure"
msgstr "Kullanılacak ve yapılandırılacak bir veya daha fazla cihaz seçin"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "Aygıt seçimini sıfırlarsanız, bu aynı zamanda geçerli disk düzenini de sıfırlayacaktır. Emin misiniz?"
msgid "Existing Partitions"
msgstr "Mevcut Bölmeler"
msgid "Select a partitioning option"
msgstr "Bir bölümleme seçeneği belirleyin"
msgid "Enter the root directory of the mounted devices: "
msgstr "Takılı aygıtların kök dizinini girin: "
#, python-brace-format
msgid "Minimum capacity for /home partition: {}GiB\n"
msgstr "/home disk bölümü için asgari kapasite: {}GiB\n"
#, python-brace-format
msgid "Minimum capacity for Arch Linux partition: {}GiB"
msgstr "Arch Linux disk bölümü için asgari kapasite: {}GiB"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "Bu, önceden programlanmış profiles_bck listesidir, masaüstü ortamları gibi şeyleri yüklemeyi kolaylaştırabilirler"
msgid "Current profile selection"
msgstr "Mevcut disk bölümü düzeni"
msgid "Remove all newly added partitions"
msgstr "Yeni eklenen tüm disk bölümleri kaldır"
msgid "Assign mountpoint"
msgstr "Bağlama noktası ata"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "Biçimlendirilmek üzere işaretle/işareti kaldır (verileri siler)"
msgid "Mark/Unmark as bootable"
msgstr "Önyüklenebilir olarak işaretle/işareti kaldır"
msgid "Change filesystem"
msgstr "Dosya sistemini değiştir"
msgid "Mark/Unmark as compressed"
msgstr "Sıkıştırıldı olarak işaretle/işareti kaldır"
msgid "Set subvolumes"
msgstr "Alt disk bölümü ayarla"
msgid "Delete partition"
msgstr "Disk bölümü sil"
msgid "Partition"
msgstr "Disk bölümü"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "Bu disk bölümü şu anda şifrelenmiştir, biçimlendirmek için bir dosya sistemi belirtilmelidir"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "Bölüm bağlama noktaları kurulumun içine görelidir, örnek olarak önyükleme /boot olacaktır."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "Mountpoint /boot ayarlanmışsa, bölüm de önyüklenebilir olarak işaretlenecektir."
msgid "Mountpoint: "
msgstr "Bağlantı noktası: "
msgid "Current free sectors on device {}:"
msgstr "{} cihazındaki mevcut boş sektörler:"
msgid "Total sectors: {}"
msgstr "Toplam sektörler: {}"
msgid "Enter the start sector (default: {}): "
msgstr "Başlangıç sektörünü girin (varsayılan: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
msgstr "Bölümün bitiş sektörünü girin (yüzde veya blok numarası, varsayılan: {}): "
msgid "This will remove all newly added partitions, continue?"
msgstr "Bu işlem yeni eklenmiş tüm bölümleri kaldıracaktır, devam edilsin mi?"
#, python-brace-format
msgid "Partition management: {}"
msgstr "Bölüm yönetimi: {}"
#, python-brace-format
msgid "Total length: {}"
msgstr "Toplam uzunluk: {}"
msgid "Encryption type"
msgstr "Şifreleme türü"
# Iteration (en) = (tr) yineleme/tekrarlama/tekerrür. In think "yineleme" is more accurate.
msgid "Iteration time"
msgstr "Yineleme süresi"
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr "LUKS şifreleme için yineleme süresini girin (milisaniye cinsinden)"
msgid "Higher values increase security but slow down boot time"
msgstr "Daha yüksek değerler güvenliği artırır ancak önyükleme süresini yavaşlatır"
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr "Varsayılan: 10000 ms, Önerilen aralık: 1000-60000"
msgid "Iteration time cannot be empty"
msgstr "Yineleme süresi boş bırakılamaz"
msgid "Iteration time must be at least 100ms"
msgstr "Yineleme süresi en az 100 ms olmalıdır"
msgid "Iteration time must be at most 120000ms"
msgstr "Yineleme süresi en fazla 120000 ms olmalıdır"
msgid "Please enter a valid number"
msgstr "Lütfen geçerli bir sayı girin"
msgid "Partitions"
msgstr "Bölümler"
msgid "No HSM devices available"
msgstr "Kullanılabilir HSM cihazı yok"
msgid "Partitions to be encrypted"
msgstr "Şifrelenecek bölümler"
msgid "Select disk encryption option"
msgstr "Disk şifreleme seçeneğini seçin"
msgid "Select a FIDO2 device to use for HSM"
msgstr "HSM için kullanılacak bir FIDO2 cihazı seçin"
msgid "Use a best-effort default partition layout"
msgstr "Olabilecek en iyi varsayılan bölüm düzeni kullan"
msgid "Manual Partitioning"
msgstr "El İle Bölümlendir"
msgid "Pre-mounted configuration"
msgstr "Önceden bağlanmış yapılandırma"
msgid "Unknown"
msgstr "Bilinmeyen"
msgid "Partition encryption"
msgstr "Disk bölümü şifrelemesi"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! {} biçimlendiriliyor "
msgid "← Back"
msgstr "← Geri"
msgid "Disk encryption"
msgstr "Disk şifrelemesi"
msgid "Configuration"
msgstr "Yapılandırma"
msgid "Password"
msgstr "Parola"
msgid "All settings will be reset, are you sure?"
msgstr "Tüm ayarlar sıfırlanacak, emin misiniz?"
msgid "Back"
msgstr "Geri"
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr "Lütfen seçilen profiller için hangi karşılayıcının kurulacağını seçin: {}"
#, python-brace-format
msgid "Environment type: {}"
msgstr "Ortam türü: {}"
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 "Tescilli Nvidia sürücüsü Sway tarafından desteklenmiyor. Sorunlarla karşılaşmanız muhtemeldir, bu sizin için uygun mu?"
msgid "Installed packages"
msgstr "Kurulu paketler"
msgid "Add profile"
msgstr "Profil ekle"
msgid "Edit profile"
msgstr "Profil düzenle"
msgid "Delete profile"
msgstr "Profil sil"
msgid "Profile name: "
msgstr "Profil ismi: "
msgid "The profile name you entered is already in use. Try again"
msgstr "Girdiğiniz profil adı zaten kullanılıyor. Tekrar deneyin"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "Kurulacak ek paketleri yazınız (boşlukla ayrılmış, geçmek için boş bırakın): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "Bu profille etkinleştirilecek hizmetler (boşluk bırakılmış, atlamak için boş bırakın): "
msgid "Should this profile be enabled for installation?"
msgstr "Bu profil kurulum için etkinleştirilmeli mi?"
msgid "Create your own"
msgstr "Kendinizinkini oluşturun"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"Bir grafik sürücüsü seçin veya tüm açık kaynak sürücülerini yüklemek için boş bırakın"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway'in seat'e erişmesi gerekir (klavye, fare vb. donanım aygıtlarının tanınması)"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Sway'in donanımınıza erişmesine izin vermek için bir seçenek belirleyin"
msgid "Graphics driver"
msgstr "Grafik sürücüsü"
msgid "Greeter"
msgstr "Karşılayıcı (greeter)"
msgid "Please chose which greeter to install"
msgstr "Lütfen hangi karşılayıcının (greeter) kurulacağını seçin"
msgid "This is a list of pre-programmed default_profiles"
msgstr "Bu, önceden programlanmış default_profiles listesidir"
msgid "Disk configuration"
msgstr "Disk yapılandırması"
msgid "Profiles"
msgstr "Profiller"
msgid "Finding possible directories to save configuration files ..."
msgstr "Yapılandırma dosyalarını kaydetmek için olası dizinler aranıyor..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "Yapılandırma dosyalarını kaydetmek için dizin (veya dizinler) seçin"
msgid "Add a custom mirror"
msgstr "Özel indirme sunucusu ekleyin"
msgid "Change custom mirror"
msgstr "Özel indirme sunucusunu değiştirin"
msgid "Delete custom mirror"
msgstr "Özel indirme sunucusunu silin"
msgid "Enter name (leave blank to skip): "
msgstr "İsim girin (geçmek için boş bırakın): "
msgid "Enter url (leave blank to skip): "
msgstr "Url girin (geçmek için boş bırakın): "
msgid "Select signature check option"
msgstr "İmza kontrolü seçeneğini seçin"
msgid "Select signature option"
msgstr "İmza seçeneğini seçin"
msgid "Custom mirrors"
msgstr "Kişisel depo aynası"
msgid "Defined"
msgstr "Tanımlı"
msgid "Save user configuration (including disk layout)"
msgstr "Kullanıcı konfigürasyonunu kaydet (Disk düzeni ile birlikte)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"Kaydedilecek yapılandırma(lar) için bir dizin girin (sekme tamamlama etkin)\n"
"Dizini kaydet: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr "{} konfigürasyon dosya(lar)ını gösterilen konuma kaydetmek ister miydiniz?"
msgid "Saving {} configuration files to {}"
msgstr "{} konfigürasyon dosyaları {} konumuna kaydediliyor"
msgid "Mirrors"
msgstr "Ayna sunucular"
msgid "Mirror regions"
msgstr "Ayna sunucusu bölgesi"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " Maximum değer : {} ( {} paralel indirmelerine izin verir, Tek seferde {max_download+1} indirmeye izin verir.)"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "Geçersiz girdi! Geçerli bir girdiyle tekrar deneyin [1 ila {} veya devre dışı bırakmak için 0]"
msgid "Locales"
msgstr "Yerel Ayarlar"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "NetworkManager'ı kullan (GNOME ya da KDE'de interneti grafik olarak yapılandırmak için gerekli)"
msgid "Total: {} / {}"
msgstr "Toplam: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "Girilen tüm değerlerin sonuna bir birim eklenebilir: B, KB, KiB, MB, MiB…"
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "Herhangi bir birim belirtilmezse, değer sektörler olarak yorumlanır"
msgid "Enter start (default: sector {}): "
msgstr "Başlangıç girin (varsayılan: sektör {}): "
msgid "Enter end (default: {}): "
msgstr "Bitiş girin (varsayılan: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "Fido2 cihazları belirlenemiyor. libfido2 yüklü mü?"
msgid "Path"
msgstr "Yol/Konum"
msgid "Manufacturer"
msgstr "Üretici firma"
msgid "Product"
msgstr "Ürün"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "Geçersiz yapılandırma: {error}"
msgid "Type"
msgstr "Tür"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "Bu seçenek, paket indirmeleri sırasında oluşabilecek paralel indirme sayısını etkinleştirir"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"Etkinleştirilecek paralel indirme sayısını girin.\n"
"\n"
"Not:\n"
#, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr " - Önerilen maksimum değer : {} ( Bir seferde {} paralel indirmeye izin verir )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - Devre Dışı / Varsayılan : 0 (Paralel indirmeyi devre dışı bırakır, bir seferde yalnızca 1 indirmeye izin verir)\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "Geçersiz girdi! Geçerli bir girişle [veya devre dışı bırakmak için 0 ile] tekrar deneyin"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Hyprland’in donanımlarınıza erişmesi gerekir (klavye, fare vb. donanım aygıtlarının tanınması)"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Hyprland’e donanımınıza erişim izni vermek için bir seçenek belirleyin"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "Girilen tüm değerlerin sonuna bir birim eklenebilir: %, B, KB, KiB, MB, MiB…"
msgid "Would you like to use unified kernel images?"
msgstr "Birleştirilmiş çekirdek görüntülerini (Unified kernel) kullanmak ister misiniz?"
msgid "Unified kernel images"
msgstr "Birleşik çekirdek görüntüleri (Unified kernels)"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "Zaman senkronizasyonunun (timedatectl show) tamamlanması bekleniyor."
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Siz beklerken zaman senkronizasyonu tamamlanmıyor - geçici çözümler için dokümanları kontrol edin: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "Otomatik zaman senkronizasyonunu beklemenin atlanması (kurulum sırasında zamanın senkronize olmaması durumunda bu durum sorunlara neden olabilir)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "Arch Linux anahtarlık senkronizasyonunun (archlinux-keyring-wkd-sync) tamamlanması bekleniyor."
msgid "Selected profiles: "
msgstr "Seçilmiş profiller: "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Siz beklerken zaman senkronizasyonu tamamlanamıyor - geçici çözümler için dokümanları kontrol edin: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "Nodatacow (Yazarken Kopyala/ma) olarak işaretle/işaretini kaldır"
msgid "Would you like to use compression or disable CoW?"
msgstr "Sıkıştırma kullanmak veya CoW'u (Yazarken Kopyalayı) devre dışı bırakmak ister misiniz?"
msgid "Use compression"
msgstr "Sıkıştırma kullan"
msgid "Disable Copy-on-Write"
msgstr "Copy-on-write'ı (Yazarken kopyala) devre dışı bırak"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway"
msgstr "GNOME, KDE Plasma, Sway gibi çeşitli masaüstü ortamları ve döşeme pencere yöneticileri sağlar"
#, python-brace-format
msgid "Configuration type: {}"
msgstr "Yapılandırma türü: {}"
msgid "LVM configuration type"
msgstr "LVM yapılandırma türü"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "2'den fazla bölüm içeren LVM disk şifrelemesi şu anda desteklenmemektedir"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "NetworkManager kullanın (GNOME ve KDE Plasma'da interneti grafiksel olarak yapılandırmak için gereklidir)"
msgid "Select a LVM option"
msgstr "Bir LVM seçeneği belirleyin"
msgid "Partitioning"
msgstr "Disk bölümleme"
msgid "Logical Volume Management (LVM)"
msgstr "Mantıksal Hacim Yönetimi (LVM)"
msgid "Physical volumes"
msgstr "Fiziksel birimler"
msgid "Volumes"
msgstr "Birimler"
msgid "LVM volumes"
msgstr "LVM birimleri"
msgid "LVM volumes to be encrypted"
msgstr "LVM şifrelenecek birimleri"
msgid "Select which LVM volumes to encrypt"
msgstr "Hangi LVM bölümlerinin şifreleneceğini seçin"
msgid "Default layout"
msgstr "Varsayılan düzen"
msgid "No Encryption"
msgstr "Şifreleme Yok"
msgid "LUKS"
msgstr "LUKS"
msgid "LVM on LUKS"
msgstr "LUKS üzerinde LVM"
msgid "LUKS on LVM"
msgstr "LVM üzerinde LUKS"
msgid "Yes"
msgstr "Evet"
msgid "No"
msgstr "Hayır"
msgid "Archinstall help"
msgstr "Archinstall yardım"
msgid " (default)"
msgstr " (varsayılan)"
msgid "Press Ctrl+h for help"
msgstr "Yardım için Ctrl+h tuşlarına basın"
msgid "Choose an option to give Sway access to your hardware"
msgstr "Sway'e donanımınıza erişim izni vermek için bir seçenek belirleyin"
msgid "Seat access"
msgstr "Seat (?) erişimi"
msgid "Mountpoint"
msgstr "Mountpoint"
msgid "HSM"
msgstr "HSM"
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "Disk şifreleme parolası girin (şifreleme olmaması için boş bırakın):"
msgid "Disk encryption password"
msgstr "Disk şifreleme parolası"
msgid "Partition - New"
msgstr "Bölüm - Yeni"
msgid "Filesystem"
msgstr "Dosya Sistemi"
msgid "Invalid size"
msgstr "Geçersiz boyut"
msgid "Start (default: sector {}): "
msgstr "Başlangıç (varsayılan: sektör {}): "
msgid "End (default: {}): "
msgstr "Bitiş (varsayılan: {}): "
msgid "Subvolume name"
msgstr "Alt disk bölümü ismi"
msgid "Disk configuration type"
msgstr "Disk yapılandırması tipi"
msgid "Root mount directory"
msgstr "Kök (/) bağlama dizini"
msgid "Select language"
msgstr "Dil seç"
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "Kurulacak ek paketleri yazınız (paketleri boşlukla ayırın, geçmek için boş bırakın):"
msgid "Invalid download number"
msgstr "Geçersiz indirme sayısı"
msgid "Number downloads"
msgstr "İndirme sayısı"
msgid "The username you entered is invalid"
msgstr "Girdiğiniz kullanıcı adı geçersiz"
msgid "Username"
msgstr "Kullanıcı Adı"
#, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "\"{}\" bir süper kullanıcı (sudo) olmalı mı?\n"
msgid "Interfaces"
msgstr "Arayüz"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "IP-config modunda geçerli bir IP girmeniz gerekir"
msgid "Modes"
msgstr "Modlar"
msgid "IP address"
msgstr "IP adresi"
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "Ağ geçidinizin (yönlendirici) IP adresini girin (hiçbiri için boş bırak)"
msgid "Gateway address"
msgstr "Ağ geçidi adresi"
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "DNS sunucularını girin (boşlukla ayrılmış, yoksa veya kullanılmayacak ise boş bırakın):"
msgid "DNS servers"
msgstr "DNS sunucuları"
msgid "Configure interfaces"
msgstr "Arayüzleri yapılandır"
msgid "Kernel"
msgstr "Çekirdek"
msgid "UEFI is not detected and some options are disabled"
msgstr "UEFI algılanamadı ve bazı seçenekler devre dışı bırakıldı"
msgid "Info"
msgstr "Bilgi"
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "Kapalı kaynak Nvidia sürücüsü Sway tarafından desteklenmemektedir."
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "Muhtemelen sorunlarla karşılaşacaksınız, bunu kabul ediyor musunuz?"
msgid "Main profile"
msgstr "Ana profil"
msgid "Confirm password"
msgstr "Parolayı onayla"
msgid "The confirmation password did not match, please try again"
msgstr "Onay parolası eşleşmedi, lütfen tekrar deneyin"
msgid "Not a valid directory"
msgstr "Geçerli bir dizin değil"
msgid "Would you like to continue?"
msgstr "Devam etmek ister misiniz?"
msgid "Directory"
msgstr "Dizin"
msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)"
msgstr "Kaydedilecek yapılandırma(lar) için bir dizin girin (sekme tamamlama etkin)"
#, python-brace-format
msgid "Do you want to save the configuration file(s) to {}?"
msgstr "Yapılandırma dosya(lar)ını {}'a kaydetmek istiyor musunuz?"
msgid "Enabled"
msgstr "Etkin"
msgid "Disabled"
msgstr "Devre dışı"
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr "Lütfen bu sorunu (ve dosyayı) https://github.com/archlinux/archinstall/issues adresine gönderin"
msgid "Mirror name"
msgstr "Yansıma adı"
msgid "Url"
msgstr "Url"
msgid "Select signature check"
msgstr "İmza kontrolünü seç"
msgid "Select execution mode"
msgstr "Çalıştırma modunu seç"
msgid "Press ? for help"
msgstr "Yardım için ? tuşuna basın"
msgid "Choose an option to give Hyprland access to your hardware"
msgstr "Hyprland donanımınıza erişim izni vermek için bir seçenek belirleyin"
msgid "Additional repositories"
msgstr "Ek depolar"
msgid "NTP"
msgstr "NTP"
msgid "Swap on zram"
msgstr "Zram üzerinde swap"
msgid "Name"
msgstr "İsim"
msgid "Signature check"
msgstr "İmza kontrolü"
#, python-brace-format
msgid "Selected free space segment on device {}:"
msgstr "Cihaz üzerinde seçilen boş alan segmenti {}:"
#, python-brace-format
msgid "Size: {} / {}"
msgstr "Boyut: {} / {}"
#, python-brace-format
msgid "Size (default: {}): "
msgstr "Boyut (varsayılan: {}): "
msgid "HSM device"
msgstr "HSM cihazı"
msgid "Some packages could not be found in the repository"
msgstr "Depoda bazı paketler bulunamadı"
msgid "User"
msgstr "Kullanıcı"
msgid "The specified configuration will be applied"
msgstr "Belirtilen yapılandırma uygulanacaktır"
msgid "Wipe"
msgstr "Süpür"
msgid "Mark/Unmark as XBOOTLDR"
msgstr "XBOOTLDR olarak İşaretle/İşareti Kaldır"
msgid "Loading packages..."
msgstr "Paketler yükleniyor..."
msgid "Select any packages from the below list that should be installed additionally"
msgstr "Aşağıdaki listeden ek olarak kurulması gereken paketleri seçin"
msgid "Add a custom repository"
msgstr "Özel bir depo ekle"
msgid "Change custom repository"
msgstr "Özel depoyu değiştir"
msgid "Delete custom repository"
msgstr "Özel depoyu sil"
msgid "Repository name"
msgstr "Depo adı"
msgid "Add a custom server"
msgstr "Özel bir sunucu ekle"
msgid "Change custom server"
msgstr "Özel sunucuyu değiştir"
msgid "Delete custom server"
msgstr "Özel sunucuyu sil"
msgid "Server url"
msgstr "Sunucu adresi"
msgid "Select regions"
msgstr "Bölge seç"
msgid "Add custom servers"
msgstr "Özel sunucu ekle"
msgid "Add custom repository"
msgstr "Özel depo ekle"
msgid "Loading mirror regions..."
msgstr "Ayna bölgeleri yükleniyor..."
msgid "Mirrors and repositories"
msgstr "Aynalar ve depolar"
msgid "Selected mirror regions"
msgstr "Seçilmiş ayna bölgeleri"
msgid "Custom servers"
msgstr "Özel sunucular"
msgid "Custom repositories"
msgstr "Özel depolar"
msgid "Only ASCII characters are supported"
msgstr "Sadece ASCII karakterleri desteklenir"
msgid "Show help"
msgstr "Yardım göster"
msgid "Exit help"
msgstr "Yardımdan çık"
msgid "Preview scroll up"
msgstr "Önizlemeyi yukarı kaydır"
msgid "Preview scroll down"
msgstr "Önizlemeyi aşağı kaydır"
msgid "Move up"
msgstr "Yukarı taşı"
msgid "Move down"
msgstr "Aşağı taşı"
msgid "Move right"
msgstr "Sağa taşı"
msgid "Move left"
msgstr "Sola taşı"
msgid "Jump to entry"
msgstr "Girişe atla"
msgid "Skip selection (if available)"
msgstr "Seçimi atla (eğer varsa)"
msgid "Reset selection (if available)"
msgstr "Seçimi sıfırla (eğer varsa)"
msgid "Select on single select"
msgstr "Tek seçimde seç"
msgid "Select on multi select"
msgstr "Çoklu seçimde seç"
msgid "Reset"
msgstr "Sıfırla"
msgid "Skip selection menu"
msgstr "Seçim menüsünü atla"
msgid "Start search mode"
msgstr "Arama modunu başlat"
msgid "Exit search mode"
msgstr "Arama modundan çık"
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "labwc cihazlarınıza erişmesi gerekir (klavye, fare vb. donanım cihazları koleksiyonu)"
msgid "Choose an option to give labwc access to your hardware"
msgstr "Labwc donanımınıza erişim izni vermek için bir seçenek belirleyin"
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "niri cihazlarınıza erişmesi gerekir (klavye, fare vb. donanım cihazları koleksiyonu)"
msgid "Choose an option to give niri access to your hardware"
msgstr "Niri donanımınıza erişim izni vermek için bir seçenek belirleyin"
msgid "Mark/Unmark as ESP"
msgstr "ESP olarak İşaretle/İşareti Kaldır"
msgid "Package group:"
msgstr "Paket grubu:"
msgid "Exit archinstall"
msgstr "Archinstall çıkış"
msgid "Reboot system"
msgstr "Sistemi yeniden başlat"
msgid "chroot into installation for post-installation configurations"
msgstr "kurulum sonrası yapılandırmalar için kuruluma chroot ekleyin"
msgid "Installation completed"
msgstr "Kurulum tamamlandı"
msgid "What would you like to do next?"
msgstr "Bundan sonra ne yapmak istersiniz?"
#, python-brace-format
msgid "Select which mode to configure for \"{}\""
msgstr "Hangi mod için yapılandırma yapılacağını seç \"{}\""
msgid "Incorrect credentials file decryption password"
msgstr "Hatalı kimlik bilgisi dosyası şifre çözme parolası"
msgid "Incorrect password"
msgstr "Yanlış parola"
msgid "Credentials file decryption password"
msgstr "Kimlik bilgileri dosyası şifre çözme parolası"
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr "User_credentials.json dosyasını şifrelemek istiyor musunuz?"
msgid "Credentials file encryption password"
msgstr "Kimlik bilgileri dosyası şifreleme parolası"
#, python-brace-format
msgid "Repositories: {}"
msgstr "Depolar: {}"
msgid "New version available"
msgstr "Yeni sürüm mevcut"
msgid "Passwordless login"
msgstr "Şifresiz giriş"
msgid "Second factor login"
msgstr "İkinci faktörlü oturum açma"
msgid "Bluetooth"
msgstr "Bluetooth"
msgid "Would you like to configure Bluetooth?"
msgstr "Bluetooth'u yapılandırmak ister misiniz?"
msgid "Print service"
msgstr "Yazdırma hizmeti"
msgid "Would you like to configure the print service?"
msgstr "Yazdırma hizmetini yapılandırmak ister misiniz?"
msgid "Power management"
msgstr "Güç yönetimi"
msgid "Authentication"
msgstr "Kimlik Doğrulama"
msgid "Applications"
msgstr "Uygulamalar"
msgid "U2F login method: "
msgstr "U2F oturum açma yöntemi: "
msgid "Passwordless sudo: "
msgstr "Parolasız sudo: "
#, python-brace-format
msgid "Btrfs snapshot type: {}"
msgstr "Btrfs anlık görüntü türü: {}"
msgid "Syncing the system..."
msgstr "Sistem senkronize ediliyor..."
msgid "Value cannot be empty"
msgstr "Değer boş olamaz"
msgid "Snapshot type"
msgstr "Anlık görüntü türü"
#, python-brace-format
msgid "Snapshot type: {}"
msgstr "Anlık görüntü türü: {}"
msgid "U2F login setup"
msgstr "U2F oturum açma kurulumu"
msgid "No U2F devices found"
msgstr "U2F cihazı bulunamadı"
msgid "U2F Login Method"
msgstr "U2F Oturum Açma Yöntemi"
msgid "Enable passwordless sudo?"
msgstr "Parolasız sudo'yu etkinleştir?"
#, python-brace-format
msgid "Setting up U2F device for user: {}"
msgstr "Kullanıcı için U2F cihazını kurma: {}"
msgid "You may need to enter the PIN and then touch your U2F device to register it"
msgstr "PIN kodunu girmeniz ve ardından U2F cihazınıza dokunarak kaydetmeniz gerekebilir"
msgid "Starting device modifications in "
msgstr "Cihaz modifikasyonlarına başlama "
msgid "No network connection found"
msgstr "Ağ bağlantısı bulunamadı"
msgid "Would you like to connect to a Wifi?"
msgstr "Wifi'ye bağlanmak ister misiniz?"
msgid "No wifi interface found"
msgstr "Wifi arayüzü bulunamadı"
msgid "Select wifi network to connect to"
msgstr "Bağlanmak için wifi ağını seçin"
msgid "Scanning wifi networks..."
msgstr "Wifi ağlarını tarıyor..."
msgid "No wifi networks found"
msgstr "Wifi ağı bulunamadı"
msgid "Failed setting up wifi"
msgstr "Wifi kurulumu başarısız oldu"
msgid "Enter wifi password"
msgstr "Wifi şifresini girin"
msgid "Ok"
msgstr "Tamam"
msgid "Removable"
msgstr "Çıkarılabilir"
msgid "Install to removable location"
msgstr "Çıkarılabilir konuma yükle"
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr "/EFI/BOOT/ (çıkarılabilir konum) içine kurulacaktır."
msgid "Will install to standard location with NVRAM entry"
msgstr "NVRAM girişi ile standart konuma yüklenecektir"
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr "Önyükleyiciyi varsayılan çıkarılabilir medya arama konumuna yüklemek ister misiniz?"
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr "Bu, önyükleyiciyi /EFI/BOOT/BOOTX64.EFI (veya benzeri) konumuna yükler. Bu, aşağıdakiler için yararlıdır:"
msgid "USB drives or other portable external media."
msgstr "USB sürücüler veya diğer taşınabilir harici ortamlar."
msgid "Systems where you want the disk to be bootable on any computer."
msgstr "Diskin herhangi bir bilgisayarda önyüklenebilir olmasını istediğiniz sistemler."
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr "NVRAM önyükleme girişlerini düzgün şekilde desteklemeyen ürün yazılımı."
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr "/EFI/BOOT/ konumuna yüklenecektir (çıkarılabilir konum, güvenli varsayılan)"
msgid "Will install to custom location with NVRAM entry"
msgstr "NVRAM girişi ile özel konuma yüklenecektir"
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr "NVRAM önyükleme girişlerini düzgün şekilde desteklemeyen ürün yazılımı, çoğu MSI anakart gibi,"
msgid "most Apple Macs, many laptops..."
msgstr "çoğu Apple Mac, birçok dizüstü bilgisayar..."
msgid "Language"
msgstr "Dil"
msgid "Compression algorithm"
msgstr "Sıkıştırma algoritması"
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Yalnızca base, sudo, linux, linux-firmware, efibootmgr gibi temel paketler ve isteğe bağlı profil paketleri yüklenir."
msgid "Select zram compression algorithm:"
msgstr "Zram sıkıştırma algoritmasını seçin:"
msgid "Use Network Manager (default backend)"
msgstr "Ağ Yöneticisi'ni kullanın (varsayılan backend)"
msgid "Use Network Manager (iwd backend)"
msgstr "Ağ Yöneticisi'ni kullanın (iwd backend)"
msgid "Firewall"
msgstr "Güvenlik Duvarı"
#, fuzzy
msgid "Select audio configuration"
msgstr "Kullanıcı yapılandırmasını kaydet"
#, fuzzy
msgid "Enter credentials file decryption password"
msgstr "Kimlik bilgileri dosyası şifre çözme parolası"
#, fuzzy
msgid "Enter root password"
msgstr "Bir parola gir: "
msgid "Select bootloader to install"
msgstr "Yüklemek istediğiniz önyükleyiciyi seçiniz"
#, fuzzy
msgid "Configuration preview"
msgstr "Yapılandırma"
#, fuzzy
msgid "Enter a directory for the configuration(s) to be saved"
msgstr "Yapılandırmaların kaydedilmesi için bir dizin girin: "
#, fuzzy
msgid "Select encryption type"
msgstr "Şifreleme türü"
#, fuzzy
msgid "Select disks for the installation"
msgstr "Kurulum için istenilen ana bilgisayar adı: "
#, fuzzy
msgid "Enter a mountpoint"
msgstr "Bir bağlantı noktası seçin :"
#, fuzzy, python-brace-format
msgid "Enter a size (default: {}): "
msgstr "Bitiş girin (varsayılan: {}): "
#, fuzzy
msgid "Enter subvolume name"
msgstr "Alt disk bölümü ismi"
#, fuzzy
msgid "Enter subvolume mountpoint"
msgstr "Alt disk bölümü bağlantı noktası"
#, fuzzy
msgid "Select a disk configuration"
msgstr "Disk yapılandırması"
#, fuzzy
msgid "Enter root mount directory"
msgstr "Kök (/) bağlama dizini"
msgid "You will use whatever drive-setup is mounted at the specified directory"
msgstr "Belirtilen dizine bağlanmış olan sürücü yapılandırmasını kullanacaksınız"
msgid "WARNING: Archinstall won't check the suitability of this setup"
msgstr "DİKKAT: Archinstall betiği bu kurulumun uygunluğunu kontrol etmeyecektir"
#, fuzzy
msgid "Select main filesystem"
msgstr "Dosya sistemini değiştir"
msgid "Enter a hostname"
msgstr "Bir ana bilgisayar adı girin"
#, fuzzy
msgid "Select timezone"
msgstr "Bir zaman dilimi seç"
#, fuzzy
msgid "Enter the number of parallel downloads to be enabled"
msgstr ""
"Etkinleştirilecek paralel indirme sayısını girin.\n"
"\n"
"Not:\n"
#, python-brace-format
msgid "Value must be between 1 and {}"
msgstr "Değer 1 ile {} arasında olmalı"
#, fuzzy
msgid "Select which kernel(s) to install"
msgstr "Lütfen hangi karşılayıcının (greeter) kurulacağını seçin"
#, fuzzy
msgid "Enter a respository name"
msgstr "Depo adı"
#, fuzzy
msgid "Enter the repository url"
msgstr "Özel depoyu değiştir"
#, fuzzy
msgid "Enter server url"
msgstr "Sunucu adresi"
#, fuzzy
msgid "Select mirror regions to be enabled"
msgstr "Seçilmiş ayna bölgeleri"
#, fuzzy
msgid "Select optional repositories to be enabled"
msgstr "Hangi tercihi ek depoların (repositorylerin) aktifleştirileceğini seçin"
#, fuzzy
msgid "Select an interface"
msgstr "Arayüzü sil"
#, fuzzy
msgid "Choose network configuration"
msgstr "Ağ yapılandırması yok"
#, fuzzy
msgid "No packages found"
msgstr "U2F cihazı bulunamadı"
#, fuzzy
msgid "Select which greeter to install"
msgstr "Lütfen hangi karşılayıcının (greeter) kurulacağını seçin"
#, fuzzy
msgid "Select a profile type"
msgstr "Seçilmiş profiller: "
#, fuzzy
msgid "Enter new password"
msgstr "Wifi şifresini girin"
msgid "Enter a username"
msgstr "Bir kullanıcı adı gir"
#, fuzzy
msgid "Enter a password"
msgstr "Bir parola gir: "
#, fuzzy
msgid "The password did not match, please try again"
msgstr "Onay parolası eşleşmedi, lütfen tekrar deneyin"
msgid "Password strength: Weak"
msgstr "Şifre gücü: Zayıf"
msgid "Password strength: Moderate"
msgstr "Şifre gücü: Ortalama"
msgid "Password strength: Strong"
msgstr "Şifre gücü: Güçlü"
#~ msgid "Desktop"
#~ msgstr "Masaüstü"
#~ msgid "Minimal"
#~ msgstr "Hafif"
================================================
FILE: archinstall/locales/uk/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: TSEPLNK\n"
"Language-Team: \n"
"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.8\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] Тут було створено файл журналу: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Будь ласка, надішліть цю проблему (та файл) за адресою https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "Ви дійсно хочете припинити?"
msgid "And one more time for verification: "
msgstr "І ще раз для перевірки: "
msgid "Would you like to use swap on zram?"
msgstr "Бажаєте використовувати підкачку на zram?"
msgid "Desired hostname for the installation: "
msgstr "Бажане ім'я хоста: "
msgid "Username for required superuser with sudo privileges: "
msgstr "Ім’я користувача для необхідного суперкористувача з правами sudo: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "Будь-які додаткові користувачі для встановлення (залиште порожнім, щоб не було користувачів): "
msgid "Should this user be a superuser (sudoer)?"
msgstr "Чи має цей користувач бути суперкористувачем (sudoer)?"
msgid "Select a timezone"
msgstr "Оберіть часовий пояс"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "Чи бажаєте ви використовувати GRUB як завантажувач замість systemd-boot?"
msgid "Choose a bootloader"
msgstr "Оберіть завантажувач"
msgid "Choose an audio server"
msgstr "Оберіть звуковий сервер"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Встановлюються лише такі пакети, як base, base-devel, linux, linux-firmware, efibootmgr і додаткові пакети профілів."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr "Примітка: пакунок base-devel більше не встановлюється за замовченням. Додайте його тут, якщо вам необхідні інструменти збірки."
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "Якщо вам потрібен веб-браузер, наприклад firefox або chromium, ви можете вказати його в наступному запиті."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "Напишіть додаткові пакети для інсталяції (розділені пробілами, залиште порожнім, щоб пропустити): "
msgid "Copy ISO network configuration to installation"
msgstr "Скопіюйте конфігурацію мережі ISO для встановлення"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "Використовувати NetworkManager (необхідний для графічного налаштування Інтернету в GNOME та KDE)"
msgid "Select one network interface to configure"
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): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "Введіть IP-адресу свого шлюзу (маршрутизатора) або залиште поле порожнім, якщо немає: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "Введіть ваші DNS-сервери (розділені пробілами, залиште порожнім якщо їх немає): "
msgid "Select which filesystem your main partition should use"
msgstr "Оберіть файлову систему яку має використовувати основний розділ"
msgid "Current partition layout"
msgstr "Поточна схема розмітки розділу"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"Оберіть що робити з\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "Введіть бажаний тип файлової системи для розділу"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "Введіть початкове місце (у розділених одиницях: s, GB, %, тощо; типово: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "Введіть кінцеве місце (в одиницях parted: s, GB, %, тощо; наприклад: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} містить розділи в черзі, це видалить їх, ви впевнені?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"Оберіть за індексом, які розділи потрібно видалити"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"Оберіть за індексом, який розділ куди монтувати"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * Точки монтування розділів відносяться до внутрішньої інсталяції, наприклад, завантажувач буде /boot."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "Оберіть місце монтування розділу (залиште порожнім, щоб видалити точку монтування): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"Виберіть, який розділ маскувати для форматування"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"Виберіть, який розділ позначити як зашифрований"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"Виберіть, який розділ позначити як завантажувальний"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"Виберіть, на якому розділі встановити файлову систему"
msgid "Enter a desired filesystem type for the partition: "
msgstr "Введіть бажаний тип файлової системи для розділу: "
msgid "Archinstall language"
msgstr "Мова Archinstall"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "Стерти усі вибрані диски та використовувати отпимальну схему розмітки розділів"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "Оберіть, що робити з кожним окремим диском (з наступним використанням розділу)"
msgid "Select what you wish to do with the selected block devices"
msgstr "Виберіть, що ви хочете зробити з вибраними блоковими пристроями"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "Це список попередньо запрограмованих профілів, вони можуть спростити встановлення таких речей, як середовища робочого столу"
msgid "Select keyboard layout"
msgstr "Виберіть розкладку клавіатури"
msgid "Select one of the regions to download packages from"
msgstr "Виберіть один із регіонів для завантаження пакетів"
msgid "Select one or more hard drives to use and configure"
msgstr "Оберіть один або кілька жорстких дисків для використання та налаштування"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "Для найкращої сумісності з апаратним забезпеченням AMD ви можете використовувати варіанти з відкритим вихідним кодом або AMD / ATI."
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "Для найкращої сумісності з вашим апаратним забезпеченням Intel ви можете використовувати варіанти з відкритим вихідним кодом або Intel.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "Для найкращої сумісності з вашим апаратним забезпеченням Nvidia ви можете використовувати пропрієтарний драйвер Nvidia.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Оберіть графічний драйвер або залиште поле пустим, щоб установити всі драйвери з відкритим вихідним кодом"
msgid "All open-source (default)"
msgstr "Усі з відкритим вихідним кодом (за умовчанням)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "Виберіть, які ядра використовувати, або залиште порожнім для стандартного \"{}\""
msgid "Choose which locale language to use"
msgstr "Оберіть мову, яку будете використовувати"
msgid "Choose which locale encoding to use"
msgstr "Оберіть кодування локалізації, яке будете використовувати"
msgid "Select one of the values shown below: "
msgstr "Виберіть одне з наведених нижче значень: "
msgid "Select one or more of the options below: "
msgstr "Виберіть один або кілька варіантів нижче: "
msgid "Adding partition...."
msgstr "Додавання розділу...."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "Вам потрібно ввести валідний тип файлової систем, щоб продовжити. Перегляньте `man parted` щоб дізнатися можливі типи файлових систем."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "Помилка: перелік профілів за URL-адресою \"{}\" призвело до:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "Помилка: не вдалося декодувати результат \"{}\" як JSON:"
msgid "Keyboard layout"
msgstr "Розкладка клавіатури"
msgid "Mirror region"
msgstr "Регіон дзеркала"
msgid "Locale language"
msgstr "Мова локалізації"
msgid "Locale encoding"
msgstr "Кодування локалізації"
msgid "Drive(s)"
msgstr "Диск(и)"
msgid "Disk layout"
msgstr "Схема розмітки диска"
msgid "Encryption password"
msgstr "Пароль шифрування"
msgid "Swap"
msgstr "Підкачка"
msgid "Bootloader"
msgstr "Завантажувач"
msgid "Root password"
msgstr "Пароль root"
msgid "Superuser account"
msgstr "Обліковий запис суперкористувача"
msgid "User account"
msgstr "Обліковий запис користувача"
msgid "Profile"
msgstr "Профіль"
msgid "Audio"
msgstr "Аудіо"
msgid "Kernels"
msgstr "Ядра"
msgid "Additional packages"
msgstr "Додаткові пакунки"
msgid "Network configuration"
msgstr "Конфігурація мережі"
msgid "Automatic time sync (NTP)"
msgstr "Автоматична синхронізація часу (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "Встановити ({} відсутні конфігурації)"
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 ""
"Ви вирішили пропустити вибір жорсткого диска\n"
"і буде використовувати будь-який диск, змонтований в {} (експериментально)\n"
"ПОПЕРЕДЖЕННЯ: Archinstall не перевіряє придатність цього налаштування\n"
"Ви бажаєте продовжити?"
msgid "Re-using partition instance: {}"
msgstr "Повторне використання екземпляра розділу: {}"
msgid "Create a new partition"
msgstr "Створіть новий розділ"
msgid "Delete a partition"
msgstr "Видалити розділ"
msgid "Clear/Delete all partitions"
msgstr "Очистити/Видалити всі розділи"
msgid "Assign mount-point for a partition"
msgstr "Призначити точку монтування для розділу"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "Позначити/зняти позначку з розділу для форматування (видалить дані)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "Позначити/зняти позначку розділу як зашифрованого"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "Позначити/зняти позначку розділу як завантажувального (автоматично для /boot)"
msgid "Set desired filesystem for a partition"
msgstr "Встановіть бажану файлову систему для розділу"
msgid "Abort"
msgstr "Перервати"
msgid "Hostname"
msgstr "Ім'я хоста"
msgid "Not configured, unavailable unless setup manually"
msgstr "Не налаштовано, недоступно, якщо не налаштувати вручну"
msgid "Timezone"
msgstr "Часовий пояс"
msgid "Set/Modify the below options"
msgstr "Встановіть/змініть параметри нижче"
msgid "Install"
msgstr "Встановити"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"Щоб пропустити, використовуйте ESC\n"
"\n"
msgid "Suggest partition layout"
msgstr "Запропонувати розмітку розділів"
msgid "Enter a password: "
msgstr "Введіть пароль: "
msgid "Enter a encryption password for {}"
msgstr "Введіть пароль шифрування для {}"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "Введіть пароль шифрування диска (залиште порожнім, щоб шифрування не було): "
msgid "Create a required super-user with sudo privileges: "
msgstr "Створіть необхідного суперкористувача з правами sudo: "
msgid "Enter root password (leave blank to disable root): "
msgstr "Введіть пароль root (залиште порожнім, щоб вимкнути root): "
msgid "Password for user \"{}\": "
msgstr "Пароль для користувача \"{}\": "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "Перевірка наявності додаткових пакетів (це може зайняти кілька секунд)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "Бажаєте використовувати автоматичну синхронізацію часу (NTP) із типовими серверами часу?\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 працював, може знадобитися апаратний час та інші кроки після налаштування.\n"
"Для отримання додаткової інформації, будь ласка, перегляньте Arch wiki"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "Введіть ім’я користувача, щоб створити додаткового користувача (залиште поле порожнім, щоб пропустити): "
msgid "Use ESC to skip\n"
msgstr "Щоб пропустити, використовуйте ESC\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
" Оберіть об’єкт зі списку та виберіть одну з доступних дій для його виконання"
msgid "Cancel"
msgstr "Скасувати"
msgid "Confirm and exit"
msgstr "Підтвердити та вийти"
msgid "Add"
msgstr "Додати"
msgid "Copy"
msgstr "Копіювати"
msgid "Edit"
msgstr "Редагувати"
msgid "Delete"
msgstr "Видалити"
msgid "Select an action for '{}'"
msgstr "Оберіть дію для '{}'"
msgid "Copy to new key:"
msgstr "Копіювати в новий ключ:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "Невідомий тип nic: {}. Можливі значення: {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"Конфігурація, обрана вами:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman вже працює, очікування до 10 хвилин, поки він завершиться."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "Попереднє блокування pacman не завершено. Будь ласка, очистіть усі наявні сеанси pacman перед використанням archinstall."
msgid "Choose which optional additional repositories to enable"
msgstr "Виберіть, які додаткові репозиторії потрібно ввімкнути"
msgid "Add a user"
msgstr "Додати користувача"
msgid "Change password"
msgstr "Змінити пароль"
msgid "Promote/Demote user"
msgstr "Підвищити/понизити користувача"
msgid "Delete User"
msgstr "Видалити користувача"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"Вкажіть нового користувача\n"
msgid "User Name : "
msgstr "Ім'я користувача : "
msgid "Should {} be a superuser (sudoer)?"
msgstr "Чи має {} бути суперкористувачем (sudoer)?"
msgid "Define users with sudo privilege: "
msgstr "Визначте користувачів із привілеєм sudo: "
msgid "No network configuration"
msgstr "Відсутня конфігурація мережі"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Встановіть потрібні підтома на розділі btrfs"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"Оберіть, на якому розділі встановити підтома"
msgid "Manage btrfs subvolumes for current partition"
msgstr "Керування підтомами btrfs для поточного розділу"
msgid "No configuration"
msgstr "Конфігурація відсутня"
msgid "Save user configuration"
msgstr "Зберегти конфігурацію користувача"
msgid "Save user credentials"
msgstr "Зберегти облікові дані користувача"
msgid "Save disk layout"
msgstr "Зберегти схему розмітки диска"
msgid "Save all"
msgstr "Зберегти все"
msgid "Choose which configuration to save"
msgstr "Оберіть, яку конфігурацію зберегти"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "Введіть каталог для конфігурацій, які потрібно зберегти: "
msgid "Not a valid directory: {}"
msgstr "Недійсний каталог: {}"
msgid "The password you are using seems to be weak,"
msgstr "Пароль, який ви використовуєте, здається слабким,"
msgid "are you sure you want to use it?"
msgstr "ви впевнені, що хочете використовувати його?"
msgid "Optional repositories"
msgstr "Необов'язкові репозиторії"
msgid "Save configuration"
msgstr "Зберегти конфігурацію"
msgid "Missing configurations:\n"
msgstr "Відсутні конфігурації:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "Потрібно вказати або root-пароль, або принаймні 1 суперкористувача"
msgid "Manage superuser accounts: "
msgstr "Керувати обліковими записами суперкористувачів: "
msgid "Manage ordinary user accounts: "
msgstr "Керуйте обліковими записами звичайних користувачів: "
msgid " Subvolume :{:16}"
msgstr " Підтом :{:16}"
msgid " mounted at {:16}"
msgstr " змонтовано в {:16}"
msgid " with option {}"
msgstr " з опцією {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
" Заповніть потрібні значення для нового підтому \n"
msgid "Subvolume name "
msgstr "Назва підтому "
msgid "Subvolume mountpoint"
msgstr "Точка монтування підтому"
msgid "Subvolume options"
msgstr "Опції підтому"
msgid "Save"
msgstr "Зберегти"
msgid "Subvolume name :"
msgstr "Назва підтому :"
msgid "Select a mount point :"
msgstr "Оберіть точку монтування :"
msgid "Select the desired subvolume options "
msgstr "Оберіть потрібні параметри підтому "
msgid "Define users with sudo privilege, by username: "
msgstr "Визначте користувачів із привілеєм sudo за іменем користувача: "
#, python-brace-format
msgid "[!] A log file has been created here: {}"
msgstr "[!] Файл журналу було створено тут: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "Чи бажаєте ви використовувати підтоми BTRFS з типовою структурою?"
msgid "Would you like to use BTRFS compression?"
msgstr "Бажаєте використовувати стиснення BTRFS?"
msgid "Would you like to create a separate partition for /home?"
msgstr "Бажаєте створити окремий розділ для /home?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "Вибрані диски не мають мінімальної ємності, необхідної для автоматичної пропозиції\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "Мінімальна ємність для розділу /home: {} Гб\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Мінімальна ємність для розділу Arch Linux: {} Гб"
msgid "Continue"
msgstr "Продовжити"
msgid "yes"
msgstr "так"
msgid "no"
msgstr "ні"
msgid "set: {}"
msgstr "обрано: {}"
msgid "Manual configuration setting must be a list"
msgstr "Налаштування ручної конфігурації має бути списком"
msgid "No iface specified for manual configuration"
msgstr "Не вказано iface для ручного налаштування"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "Ручна конфігурація nic без автоматичного DHCP вимагає IP-адреси"
msgid "Add interface"
msgstr "Додати інтерфейс"
msgid "Edit interface"
msgstr "Редагувати інтерфейс"
msgid "Delete interface"
msgstr "Видалити інтерфейс"
msgid "Select interface to add"
msgstr "Оберіть інтерфейс для додавання"
msgid "Manual configuration"
msgstr "Ручне налаштування"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "Позначити/зняти позначку розділу як стисненого (лише btrfs)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "Пароль, який ви використовуєте, здається слабким. Ви впевнені, що бажаєте його використовувати?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "Надає вибір середовищ робочого столу та тайлінгових диспетчерів вікон, наприклад gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "Оберіть бажане середовище робочого столу"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "Дуже проста інсталяція, яка дозволяє вам налаштувати Arch Linux на свій розсуд."
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "Надає вибір різних серверних пакетів для встановлення та ввімкнення, наприклад httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "Оберіть сервери для встановлення. Якщо нічого не обрано, буде виконано мінімальну інсталяцію"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "Встановлює мінімальну систему, а також xorg і графічні драйвери."
msgid "Press Enter to continue."
msgstr "Натисніть Enter, щоб продовжити."
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "Бажаєте підключитися використовуючи chroot до новоствореної інсталяції та виконати додаткову конфігурацію після інсталяції?"
msgid "Are you sure you want to reset this setting?"
msgstr "Ви впевнені, що бажаєте скинути це налаштування?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "Оберіть один або кілька жорстких дисків для використання та налаштування\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "Будь-які зміни до існуючих налаштувань призведуть до скидання схеми розмітки диска!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "Якщо ви скинете вибір жорсткого диска, це також скине поточну схему розмітки диска. Ви впевнені?"
msgid "Save and exit"
msgstr "Зберегти та вийти"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"містить розділи в черзі, це видалить їх, ви впевнені?"
msgid "No audio server"
msgstr "Аудіосервер відсутній"
msgid "(default)"
msgstr "(типово)"
msgid "Use ESC to skip"
msgstr "Щоб пропустити, використовуйте ESC"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"Використовуйте CTRL+C, щоб скинути поточний вибір\n"
"\n"
msgid "Copy to: "
msgstr "Копіювати до: "
msgid "Edit: "
msgstr "Редагувати: "
msgid "Key: "
msgstr "Ключ: "
msgid "Edit {}: "
msgstr "Редагувати {}: "
msgid "Add: "
msgstr "Додати: "
msgid "Value: "
msgstr "Значення: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "Ви можете пропустити вибір диска та розділення та скористатися будь-яким налаштуванням диска, змонтованим у /mnt (експериментально)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "Виберіть диск або пропустіть, щоб використовувати /mnt типово"
msgid "Select which partitions to mark for formatting:"
msgstr "Виберіть, які розділи позначити для форматування:"
msgid "Use HSM to unlock encrypted drive"
msgstr "Використовуйте HSM, щоб розблокувати зашифрований диск"
msgid "Device"
msgstr "Пристрій"
msgid "Size"
msgstr "Розмір"
msgid "Free space"
msgstr "Вільний простір"
msgid "Bus-type"
msgstr "Тип шини"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "Потрібно вказати або root-пароль, або принаймні 1 користувача з правами sudo"
msgid "Enter username (leave blank to skip): "
msgstr "Введіть ім'я користувача (залиште порожнім, щоб пропустити): "
msgid "The username you entered is invalid. Try again"
msgstr "Введене вами ім'я користувача недійсне. Спробуйте ще раз"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "Чи має \"{}\" бути суперкористувачем (sudo)?"
msgid "Select which partitions to encrypt"
msgstr "Виберіть розділи для шифрування"
msgid "very weak"
msgstr "дуже слабкий"
msgid "weak"
msgstr "слабкий"
msgid "moderate"
msgstr "помірний"
msgid "strong"
msgstr "сильний"
msgid "Add subvolume"
msgstr "Додати підтом"
msgid "Edit subvolume"
msgstr "Редагувати підтом"
msgid "Delete subvolume"
msgstr "Видалити підтом"
msgid "Configured {} interfaces"
msgstr "Налаштовані інтерфейси {}"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "Цей параметр вмикає кількість паралельних завантажень, які можуть відбуватися під час встановлення"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"Введіть кількість паралельних завантажень, які потрібно ввімкнути.\n"
" (Введіть значення від 1 до {})\n"
"Примітка:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - Максимальне значення : {} ( Дозволяє {} паралельних завантажень, дозволяє {} завантажень за раз )"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - Мінімальне значення : 1 ( дозволяє 1 паралельне завантаження, дозволяє 2 завантаження одночасно )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - Вимкнути/Типово : 0 ( Вимикає паралельне завантаження, дозволяє лише 1 завантаження за раз )"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "Некоректне введення! Повторіть спробу з правильним введенням [від 1 до {max_downloads}, або 0 для вимкнення]"
msgid "Parallel Downloads"
msgstr "Паралельні Завантаження"
msgid "ESC to skip"
msgstr "ESC, щоб пропустити"
msgid "CTRL+C to reset"
msgstr "CTRL+C для скидання"
msgid "TAB to select"
msgstr "TAB для вибору"
msgid "[Default value: 0] > "
msgstr "[Типове значення: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "Щоб мати можливість використовувати цей переклад, будь ласка, вручну встановіть шрифт, який підтримує мову."
msgid "The font should be stored as {}"
msgstr "Шрифт слід зберігати як {}"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Archinstall потребує привілегії суперкористувача (Root). Скористайтеся --help для отримання додаткової інформації."
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 "Профілі повинні мати унікальні назви, але виявлено дублікати назв профілів: {}"
msgid "Select one or more devices to use and configure"
msgstr "Оберіть один або кілька жорстких дисків для використання та налаштування"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "Якщо ви скинете вибір жорсткого диска, це також скине поточну схему розмітки диска. Ви впевнені?"
msgid "Existing Partitions"
msgstr "Існуючі розділи"
msgid "Select a partitioning option"
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: {} Гб"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "Це список попередньо запрограмованих профілів, вони можуть спростити встановлення таких речей, як середовища робочого столу"
msgid "Current profile selection"
msgstr "Поточний вибір профілів"
msgid "Remove all newly added partitions"
msgstr "Вилучити всі новостворені розділи"
msgid "Assign mountpoint"
msgstr "Призначити точку монтування для розділу"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "Позначити/зняти позначку з розділу для форматування (видалить дані)"
msgid "Mark/Unmark as bootable"
msgstr "Позначити/Зняти позначку завантажувального розділу"
msgid "Change filesystem"
msgstr "Змінити файлову систему"
msgid "Mark/Unmark as compressed"
msgstr "Позначити/зняти позначку розділу як стисненого (лише btrfs)"
msgid "Set subvolumes"
msgstr "Налаштувати підтоми"
msgid "Delete partition"
msgstr "Видалити розділ"
msgid "Partition"
msgstr "Розділ"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "Цей розділ наразі зашифрований. Щоб його відформатувати, потрібно вказати файлову систему"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "Точки монтування розділів відносяться до внутрішньої інсталяції, наприклад, завантажувач буде в /boot."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "Якщо вказано точку монтування /boot, цей розділ також буде позначено як завантажувальний."
msgid "Mountpoint: "
msgstr "Точка монтування: "
msgid "Current free sectors on device {}:"
msgstr "Вільні сектора на {}:"
msgid "Total sectors: {}"
msgstr "Сектори: {}"
msgid "Enter the start sector (default: {}): "
msgstr "Введіть початковий сектор (відсоток або номер блоку, типово: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
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 "Загальна довжина: {}"
msgid "Encryption type"
msgstr "Тип шифрування"
msgid "Iteration time"
msgstr "Час ітерації"
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr "Введіть час ітерації для шифрування LUKS (в мілісекундах)"
msgid "Higher values increase security but slow down boot time"
msgstr "Вищі значення підвищують безпеку, але сповільнюють час запуску системи"
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr "Стандартно: 10000мс, Рекомендований діапазон - 1000-60000"
msgid "Iteration time cannot be empty"
msgstr "Час ітерації не може бути порожнім"
msgid "Iteration time must be at least 100ms"
msgstr "Час ітерації має бути щонайменше 100мс"
msgid "Iteration time must be at most 120000ms"
msgstr "Час ітерації має бути не більше 120000мс"
msgid "Please enter a valid number"
msgstr "Будь ласка, введіть дійсне число"
msgid "Partitions"
msgstr "Розділи"
msgid "No HSM devices available"
msgstr "Немає доступних пристроїв HSM"
msgid "Partitions to be encrypted"
msgstr "Розділи, які потрібно зашифрувати"
msgid "Select disk encryption option"
msgstr "Оберіть параметр шифрування диска"
msgid "Select a FIDO2 device to use for HSM"
msgstr "Оберіть пристрій FIDO2 для використання HSM"
msgid "Use a best-effort default partition layout"
msgstr "Використовувати отпимальну схему розмітки розділів"
msgid "Manual Partitioning"
msgstr "Ручна розмітка розділів"
msgid "Pre-mounted configuration"
msgstr "Попередньо змонтована конфігурація"
msgid "Unknown"
msgstr "Невідомо"
msgid "Partition encryption"
msgstr "Шифрування розділу"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! Форматування {} в "
msgid "← Back"
msgstr "← Назад"
msgid "Disk encryption"
msgstr "Шифрування диска"
msgid "Configuration"
msgstr "Конфігурація"
msgid "Password"
msgstr "Пароль"
msgid "All settings will be reset, are you sure?"
msgstr "Усі налаштування буде скинуто, ви впевнені?"
msgid "Back"
msgstr "Назад"
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr "Будь ласка, виберіть, який екран привітання встановити для обраних профілів: {}"
#, python-brace-format
msgid "Environment type: {}"
msgstr "Тип середовища: {}"
msgid "The proprietary Nvidia driver is not supported by Sway. It is likely that you will run into issues, are you okay with that?"
msgstr "Пропрієтарні драйвери Nvidia не підтримуються Sway. Існує ймовірність виникнення проблем. Продовжити попри це?"
msgid "Installed packages"
msgstr "Встановленні пакунки"
msgid "Add profile"
msgstr "Додайте профіль"
msgid "Edit profile"
msgstr "Налаштувати профіль"
msgid "Delete profile"
msgstr "Видалити профіль"
msgid "Profile name: "
msgstr "Назва профілю: "
msgid "The profile name you entered is already in use. Try again"
msgstr "Введене вами ім'я користувача вже використовується. Спробуйте ще раз"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "Напишіть додаткові пакети для інсталяції (розділені пробілами, залиште порожнім, щоб пропустити): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "Сервіси, які слід увімкнути з цим профілем (розділені пробілами, залиште порожнім, щоб пропустити): "
msgid "Should this profile be enabled for installation?"
msgstr "Чи повинен цей профіль бути увімкненим для встановлення?"
msgid "Create your own"
msgstr "Створіть свій власний"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"Оберіть графічний драйвер або залиште поле пустим, щоб установити всі драйвери з відкритим вихідним кодом"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway потребує доступ до вашого обладнання"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Надайте Sway доступ до вашого обладнання"
msgid "Graphics driver"
msgstr "Графічні драйвери"
msgid "Greeter"
msgstr "Дисплейний менеджер"
msgid "Please chose which greeter to install"
msgstr "Виберіть, який дисплейний менеджер встановлювати"
msgid "This is a list of pre-programmed default_profiles"
msgstr "Список попередньо налаштованих default_profiles"
msgid "Disk configuration"
msgstr "Конфігурація диска"
msgid "Profiles"
msgstr "Профіль"
msgid "Finding possible directories to save configuration files ..."
msgstr "Пошук можливих тек для збереження файлів конфігурації ..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "Оберіть шлях (або шляхи) для збереження конфігураційних файлів"
msgid "Add a custom mirror"
msgstr "Додати користувацьке дзеркало"
msgid "Change custom mirror"
msgstr "Змінити користувацьке дзеркало"
msgid "Delete custom mirror"
msgstr "Вилучити власне дзеркало"
msgid "Enter name (leave blank to skip): "
msgstr "Введіть ім'я користувача (залиште порожнім, щоб пропустити): "
msgid "Enter url (leave blank to skip): "
msgstr "Введіть URL (залиште порожнім, щоб пропустити): "
msgid "Select signature check option"
msgstr "Оберіть варіант перевірки підпису шифрування"
msgid "Select signature option"
msgstr "Оберіть параметр шифрування диска"
msgid "Custom mirrors"
msgstr "Користувацькі дзеркала"
msgid "Defined"
msgstr "Задано"
msgid "Save user configuration (including disk layout)"
msgstr "Зберегти конфігурацію користувача (враховуючи поділ диска)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"Введіть каталог для збереження конфігурацій (автодоповнення з Tab увімкнене)\n"
"Каталог для збереження: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"Чи хочете ви зберегти {} файл(и) конфігурацій до заданого місця?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "Зберегти {} файл(ів) конфігурацій до {}"
msgid "Mirrors"
msgstr "Дзеркала"
msgid "Mirror regions"
msgstr "Регіони дзеркал"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - Максимальне значення : {} ( Дозволяє {} паралельних завантажень, дозволяє {max_downloads+1} завантажень за раз )"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "Некоректне введення! Повторіть спробу з валідним введенням [від 1 до {} або 0 для вимкнення]"
msgid "Locales"
msgstr "Локалізації"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "Використовувати NetworkManager (необхідний для графічного налаштування Інтернету в GNOME та KDE)"
msgid "Total: {} / {}"
msgstr "Загалом: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "До всіх заданих значень можна дописати суфікс одиниці виміру: B, KB, KiB, MB, MiB..."
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "Якщо немає жодного суфіксу, значення вважається сектором"
msgid "Enter start (default: sector {}): "
msgstr "Введіть початковий сектор (відсоток або номер блоку, типово: {}): "
msgid "Enter end (default: {}): "
msgstr "Введіть кінцевий сектор (відсоток або номер блоку, типово: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "Неможливо визначити пристрої fido2. Чи встановлено libfido2?"
msgid "Path"
msgstr "Шлях"
msgid "Manufacturer"
msgstr "Виробник"
msgid "Product"
msgstr "Модель"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "Неправильна конфігурація: {error}"
msgid "Type"
msgstr "Тип"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "Цей параметр вмикає кількість паралельних завантажень, які можуть відбуватися під час встановлення"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"Введіть кількість паралельних завантажень, які потрібно ввімкнути.\n"
"\n"
"Примітка:\n"
#, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr " - Максимальне рекомендоване значення : {} ( Дозволяє {} паралельних завантажень за раз )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - Вимкнути/Типово : 0 ( Вимикає паралельне завантаження, дозволяє лише 1 завантаження за раз )\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "Некоректне введення! Повторіть спробу з правильним введенням [від 1 до {} або 0 для вимкнення]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Hyprland потребує доступу до інформації про ваше обладнання (клавіатура, миша, так далі)"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Надайте Hyprland доступ до вашого обладнання"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "Усі введені значення повинні мати суфікс з виміром: %, B, KB, KiB, MB, MiB..."
msgid "Would you like to use unified kernel images?"
msgstr "Ви бажаєте використовувати об'єднані (уніфіковані) образи ядра?"
msgid "Unified kernel images"
msgstr "Об'єднані (уніфіковані) образи ядра"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "Очікування на синхронізацію часу (timedatactl show) для продовження."
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Синхронізація часу не закінчується, поки ви чекаєте - перевірте документацію для можливих рішень: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "Пропуск очікування автоматичної синхронізації часу (це може спричинити проблеми, якщо час буде невірно синхронізований під час встановлення)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "Очікування на синхронізацію ключів Arch Linux (archlinux-keyring-wkd-sync)."
msgid "Selected profiles: "
msgstr "Вибрані профілі: "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Синхронізація часу не закінчується, поки ви чекаєте - перевірте документацію для можливих рішень: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "Позначити/зняти позначку nodatacow"
msgid "Would you like to use compression or disable CoW?"
msgstr "Бажаєте ввімкнути стиснення або вимкнути CoW?"
msgid "Use compression"
msgstr "Використовувати стиснення"
msgid "Disable Copy-on-Write"
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 "Тип конфігурації: {}"
msgid "LVM configuration type"
msgstr "Тип конфігурації LVM"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "Шифрування диска за допомогою LVM з більше ніж двома розділами наразі не підтримується"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "Використовувати NetworkManager (необхідний для графічного налаштування Інтернету в GNOME та KDE Plasma)"
msgid "Select a LVM option"
msgstr "Оберіть опцію LVM"
msgid "Partitioning"
msgstr "Розмітка"
msgid "Logical Volume Management (LVM)"
msgstr "Logical Volume Management (LVM)"
msgid "Physical volumes"
msgstr "Фізичні томи"
msgid "Volumes"
msgstr "Томи"
msgid "LVM volumes"
msgstr "LVM томи"
msgid "LVM volumes to be encrypted"
msgstr "LVM томи, які потрібно зашифрувати"
msgid "Select which LVM volumes to encrypt"
msgstr "Виберіть томи LVM для шифрування"
msgid "Default layout"
msgstr "Типова структура"
msgid "No Encryption"
msgstr "Без шифрування"
msgid "LUKS"
msgstr "LUKS"
msgid "LVM on LUKS"
msgstr "LVM на LUKS"
msgid "LUKS on LVM"
msgstr "LUKS на LVM"
msgid "Yes"
msgstr "Так"
msgid "No"
msgstr "Ні"
msgid "Archinstall help"
msgstr "Довідка Archinstall"
msgid " (default)"
msgstr " (типово)"
msgid "Press Ctrl+h for help"
msgstr "Натисніть Ctrl+h для довідки"
msgid "Choose an option to give Sway access to your hardware"
msgstr "Оберіть опцію для надання Sway доступ до вашого обладнання"
msgid "Seat access"
msgstr "Доступ до місця"
msgid "Mountpoint"
msgstr "Точка монтування"
msgid "HSM"
msgstr "HSM"
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "Введіть пароль шифрування диска (залиште порожнім, щоб шифрування не було):"
msgid "Disk encryption password"
msgstr "Пароль шифрування"
msgid "Partition - New"
msgstr "Розділ - Новий"
msgid "Filesystem"
msgstr "Файлова система"
msgid "Invalid size"
msgstr "Некоректний розмір"
msgid "Start (default: sector {}): "
msgstr "Введіть початковий сектор (відсоток або номер блоку, типово: {}): "
msgid "End (default: {}): "
msgstr "Введіть кінцевий сектор (відсоток або номер блоку, типово: {}): "
msgid "Subvolume name"
msgstr "Назва підтому"
msgid "Disk configuration type"
msgstr "Конфігурація диска"
msgid "Root mount directory"
msgstr "Точка монтування системи (Root)"
msgid "Select language"
msgstr "Обрати мову"
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "Напишіть додаткові пакети для інсталяції (розділені пробілами, залиште порожнім, щоб пропустити):"
msgid "Invalid download number"
msgstr "Невірна кількість завантажень"
msgid "Number downloads"
msgstr "Кількість завантажень"
msgid "The username you entered is invalid"
msgstr "Введене вами ім'я користувача недійсне"
msgid "Username"
msgstr "Ім'я користувача"
#, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "Чи має \"{}\" бути суперкористувачем (sudo)?\n"
msgid "Interfaces"
msgstr "Інтерфейси"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "Ви повинні ввести правильний IP-адрес в режимі конфігурації IP"
msgid "Modes"
msgstr "Режими"
msgid "IP address"
msgstr "IP-адреса"
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "Введіть IP-адресу свого шлюзу (маршрутизатора) або залиште поле порожнім, якщо немає:"
msgid "Gateway address"
msgstr "Адреса шлюзу"
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "Введіть ваші DNS-сервери (розділені пробілами, залиште порожнім якщо їх немає):"
msgid "DNS servers"
msgstr "DNS- сервери"
msgid "Configure interfaces"
msgstr "Налаштування інтерфейсів"
msgid "Kernel"
msgstr "Ядра"
msgid "UEFI is not detected and some options are disabled"
msgstr "UEFI не виявлено, деякі параметри вимкнено"
msgid "Info"
msgstr "Інформація"
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "Пропрієтарні драйвери Nvidia не підтримуються Sway."
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "Існує ймовірність виникнення проблем. Продовжити?"
msgid "Main profile"
msgstr "Головний профіль"
msgid "Confirm password"
msgstr "Підтвердити пароль"
msgid "The confirmation password did not match, please try again"
msgstr "Паролі не збігаються, спробуйте ще раз"
msgid "Not a valid directory"
msgstr "Недійсний каталог"
msgid "Would you like to continue?"
msgstr "Бажаєте продовжити?"
msgid "Directory"
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 "Чи бажаєте зберегти файл (и) конфігурацій до {}?"
msgid "Enabled"
msgstr "Увімкнено"
msgid "Disabled"
msgstr "Вимкнено"
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr "Будь ласка, надішліть цю проблему (та файл) за адресою https://github.com/archlinux/archinstall/issues"
msgid "Mirror name"
msgstr "Назва дзеркала"
msgid "Url"
msgstr "URL"
msgid "Select signature check"
msgstr "Оберіть варіант перевірки підпису шифрування"
msgid "Select execution mode"
msgstr "Оберіть режим роботи"
msgid "Press ? for help"
msgstr "Натисніть ? для довідки"
msgid "Choose an option to give Hyprland access to your hardware"
msgstr "Надайте Hyprland доступ до вашого обладнання"
msgid "Additional repositories"
msgstr "Додаткові репозиторії"
msgid "NTP"
msgstr "NTP"
msgid "Swap on zram"
msgstr "Файли підкачки на zram"
msgid "Name"
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 "Розмір (типово: {}): "
msgid "HSM device"
msgstr "Пристрій HSM"
msgid "Some packages could not be found in the repository"
msgstr "Деякі пакети можуть бути не знайдені в репозиторії"
msgid "User"
msgstr "Ім'я користувача"
msgid "The specified configuration will be applied"
msgstr "Обрана конфігурація буде використана"
msgid "Wipe"
msgstr "Стерти"
msgid "Mark/Unmark as XBOOTLDR"
msgstr "Позначити / Зняти позначку XBOOTLDR"
msgid "Loading packages..."
msgstr "Завантажування пакетів..."
msgid "Select any packages from the below list that should be installed additionally"
msgstr "Виберіть будь-які пакети зі списку, які мають бути встановлені додатково"
msgid "Add a custom repository"
msgstr "Додати користувацький репозиторій"
msgid "Change custom repository"
msgstr "Змінити користувацький репозиторій"
msgid "Delete custom repository"
msgstr "Видалити користувацький репозиторій"
msgid "Repository name"
msgstr "Назва репозиторію"
msgid "Add a custom server"
msgstr "Додати користувацький сервер"
msgid "Change custom server"
msgstr "Оберіть користувацький сервер"
msgid "Delete custom server"
msgstr "Видалити користувацький сервер"
msgid "Server url"
msgstr "URL сервера"
msgid "Select regions"
msgstr "Обрати регіони"
msgid "Add custom servers"
msgstr "Додати користувацькі сервери"
msgid "Add custom repository"
msgstr "Додати користувацький репозиторій"
msgid "Loading mirror regions..."
msgstr "Завантаження регіонів дзеркал..."
msgid "Mirrors and repositories"
msgstr "Дзеркала та репозиторії"
msgid "Selected mirror regions"
msgstr "Обрані регіони дзеркал"
msgid "Custom servers"
msgstr "Користувацькі сервери"
msgid "Custom repositories"
msgstr "Користувацькі репозиторії"
msgid "Only ASCII characters are supported"
msgstr "Підтримуються лише ASCII символи"
msgid "Show help"
msgstr "Показати довідку"
msgid "Exit help"
msgstr "Вийти з довідки"
msgid "Preview scroll up"
msgstr "Прокрутка перегляду догори"
msgid "Preview scroll down"
msgstr "Прокрутка перегляду вниз"
msgid "Move up"
msgstr "Перейти догори"
msgid "Move down"
msgstr "Перейти вниз"
msgid "Move right"
msgstr "Повернути праворуч"
msgid "Move left"
msgstr "Повернути ліворуч"
msgid "Jump to entry"
msgstr "Перейти до елемента"
msgid "Skip selection (if available)"
msgstr "Пропустити вибір (якщо можливо)"
msgid "Reset selection (if available)"
msgstr "Скинути вибір (якщо можливо)"
msgid "Select on single select"
msgstr "Вибір при одиночному виборі"
msgid "Select on multi select"
msgstr "Вибір при множинному виборі"
msgid "Reset"
msgstr "Скинути"
msgid "Skip selection menu"
msgstr "Пропустити меню вибору"
msgid "Start search mode"
msgstr "Запустити режим пошуку"
msgid "Exit search mode"
msgstr "Вийти з режиму пошуку"
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "labwc потребує доступ до вашого місця (набору апаратних пристроїв, таких як клавіатура, миша тощо)"
msgid "Choose an option to give labwc access to your hardware"
msgstr "Оберіть опцію для надання labwc доступу до вашого обладнання"
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "niri потребує доступ до вашого місця (набору апаратних пристроїв, таких як клавіатура, миша тощо)"
msgid "Choose an option to give niri access to your hardware"
msgstr "Оберіть опцію для надання niri доступу до вашого обладнання"
msgid "Mark/Unmark as ESP"
msgstr "Позначити/зняти позначку ESP розділу"
msgid "Package group:"
msgstr "Група пакетів:"
msgid "Exit archinstall"
msgstr "Покинути Archinstall"
msgid "Reboot system"
msgstr "Перезавантажити систему"
msgid "chroot into installation for post-installation configurations"
msgstr "бажаєте підключитися використовуючи chroot до новоствореної інсталяції та виконати додаткову конфігурацію"
msgid "Installation completed"
msgstr "Встановлення завершено"
msgid "What would you like to do next?"
msgstr "Що ви хочете зробити наступним?"
#, python-brace-format
msgid "Select which mode to configure for \"{}\""
msgstr "Виберіть, режим для налаштування \"{}\""
msgid "Incorrect credentials file decryption password"
msgstr "Невірний пароль для розшифрування файлу облікових даних"
msgid "Incorrect password"
msgstr "Неправильний пароль"
msgid "Credentials file decryption password"
msgstr "Пароль розшифрування файлу облікових даних"
msgid "Do you want to encrypt the user_credentials.json file?"
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 "Print service"
msgstr "Служба друку"
msgid "Would you like to configure the print service?"
msgstr "Бажаєте налаштувати службу друку (принтери)?"
msgid "Power management"
msgstr "Керування живленням"
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 та потім торкнутися вашого пристрою двофакторної авторизації, щоб зареєструвати його"
msgid "Starting device modifications in "
msgstr "Початок модифікацій пристрою в "
msgid "No network connection found"
msgstr "Не знайдено жодної мережі"
msgid "Would you like to connect to a Wifi?"
msgstr "Бажаєте підключитись до Wi-Fi?"
msgid "No wifi interface found"
msgstr "Не знайдено жодного Wi-Fi інтерфейсу"
msgid "Select wifi network to connect to"
msgstr "Оберть Wi-Fi мережу, до якої треба підключитись"
msgid "Scanning wifi networks..."
msgstr "Сканування Wi-Fi мереж..."
msgid "No wifi networks found"
msgstr "Не знайдено жодної Wi-Fi мережі"
msgid "Failed setting up wifi"
msgstr "Налаштування Wi-Fi завершено невдало"
msgid "Enter wifi password"
msgstr "Введіть пароль для Wi-Fi"
msgid "Ok"
msgstr "Гаразд"
msgid "Removable"
msgstr "Знімний"
msgid "Install to removable location"
msgstr "Встановити на знімний накопичувач"
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr "Встановить в /EFI/BOOT/ (знімний накопичувач)"
msgid "Will install to standard location with NVRAM entry"
msgstr "Встановить у стандартне розташування з записом NVRAM"
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr "Бажаєте встановити завантажувач в стандартне місце пошуку на знімних носіях?"
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr "Це встановить завантажувач в /EFI/BOOT/BOOTX64.EFI (чи схожі), що є доцільно для:"
msgid "USB drives or other portable external media."
msgstr "USB-накопичувачі чи інші портативні носії."
msgid "Systems where you want the disk to be bootable on any computer."
msgstr "Системи, де ви хочете, щоб диск був завантажувальним на будь-якому комп'ютері."
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr "Прошивка, що не підтримує завантажувальні записи NVRAM належним чином."
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr "Встановить в /EFI/BOOT/ (знімний накопичувач, безпечно за замовчуванням)"
msgid "Will install to custom location with NVRAM entry"
msgstr "Встановить у користувацьке розташування з записом NVRAM"
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr "Прошивка, що не підтримує завантажувальні записи NVRAM належним чином, як більшість материнських плат MSI,"
msgid "most Apple Macs, many laptops..."
msgstr "більшість Apple Mac, багато ноутбуків..."
msgid "Language"
msgstr "Мова"
msgid "Compression algorithm"
msgstr "Алгоритм компресії"
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Встановлюються лише такі пакети, як base, sudo, linux, linux-firmware, efibootmgr і додаткові пакети профілів."
msgid "Select zram compression algorithm:"
msgstr "Оберіть алгоритм компресування з zram:"
msgid "Use Network Manager (default backend)"
msgstr "Використовувати NetworkManager (типовий)"
msgid "Use Network Manager (iwd backend)"
msgstr "Використовувати NetworkManager (з iwd)"
================================================
FILE: archinstall/locales/ur/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: Hannan Javed \n"
"Language-Team: \n"
"Language: ur\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] Aik log file yahan bana di gai hai: {} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " Brah e meharbani is issue (aur file) ko https://github.com/archlinux/archinstall/issues par submit krein"
msgid "Do you really want to abort?"
msgstr "Kia aap sach mein yeh band karna chahtay hein?"
msgid "And one more time for verification: "
msgstr "Or aik bar or verification kay liay: "
msgid "Would you like to use swap on zram?"
msgstr "Kia aap zram par swap istimal karna chahtay hein?"
msgid "Desired hostname for the installation: "
msgstr "Installtion kay liay pasandida hostname: "
msgid "Username for required superuser with sudo privileges: "
msgstr "Superuser kay liay saraf chahiay sudo marat kay sath: "
msgid "Any additional users to install (leave blank for no users): "
msgstr "Koi azafi sarafein install kay liay (Khali chod dein saraf na honay ki sorat mein):"
msgid "Should this user be a superuser (sudoer)?"
msgstr "Kia yeh sarif superuser (sudoer) hona chahiye?"
msgid "Select a timezone"
msgstr "Aik timezone ka intikhab krein"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "Kia aap GRUB ko bootloader kay taur par istimal karna chahtay hein, systemd-boot ki jaga'h?"
msgid "Choose a bootloader"
msgstr "Bootloader ka intkhab"
msgid "Choose an audio server"
msgstr "Audio server ka intkhab"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Sirf packages jaisa ke'h base, base-devel, linux, linux-firmware, efibootmgr aur ikhti'ari profile packages hi install hein."
msgid "Note: base-devel is no longer installed by default. Add it here if you need build tools."
msgstr "Note: base-devel ab default tor par install nahi hota. Yahan pr isko shamil krein agar aapko build tools chahiye."
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "Agar aap web browser chahtay hein, jaise firefox ya chromium, to aap foori taur par kar saktay hein."
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "Azafi packages jo install karnay hein (space se alag krein, khali chod de'n agar kuch nahi): "
msgid "Copy ISO network configuration to installation"
msgstr "ISO network tarteb ko installation par copy krein"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "NetworkManager istimal krein (GNOME aur KDE mein internet ko graphically tarteb karnay kay liay zaruri)"
msgid "Select one network interface to configure"
msgstr "tarteb karnay kay liay aik network interface ka intikhab krein"
msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
msgstr "intikhab krein ke'h \"{}\" kay liay kon sa mode tarteb karna hay ya default mode \"{}\" istimal karnay kay liay skip krein"
#, python-brace-format
msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): "
msgstr "IP aur subnet {} kay liay dar'j krein (masal kay taur par: 192.168.0.5/24): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "A'pnay gateway (router) IP address dar'j krein ya kuch nahi chodain: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "A'pnay DNS servers dar'j krein (space se alag, khali chodain agar koi nahi): "
msgid "Select which filesystem your main partition should use"
msgstr "Marka'zi partition kay liay kon sa filesystem istimal karna chahtay hein intikhab krein"
msgid "Current partition layout"
msgstr "Halia'h partition ki tarteb "
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"Is kay sath kia karna hay, intikhab krein\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "Matlooba filesystem ki type partition kay liay dar'j krein"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "Shroa'at dar'j krein (parted aka'ion me'n: s, GB, %, etc. ; default: {}): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "A'akhrat dar'j krein (parted aka'ion me'n: s, GB, %, etc. ; masal: {}): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} me'n partitions hein, yeh mita day ga, aap sach mein yeh karna chahtay hein?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"Index kay mutabi'q partitions ko hazif krein, intikhab krein"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"Index kay mutabi'q partition ko kahan mount krna hay, intikhab krein"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * Partition mount-points installation kay andar nisbatan hein, boot /boot ki masal hogi."
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "intikhab krein, partition ko kahan mount karna hay (khali chodain agar mount point hata'na hay): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"Kis partition ko format karnay kay liay mask karna hay, intikhab krein"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"Kis partition ko encrypt karna hay, intikhab krein"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"Kis partition ko bootable karna hay, intikhab krein"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"Kis partition par filesystem karna hay, intikhab krein"
msgid "Enter a desired filesystem type for the partition: "
msgstr "Matlooba filesystem ki type partition kay liay dar'j krein: "
msgid "Archinstall language"
msgstr "Archinstall ki zuban"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "Tamam muntkh'b drives ko mita kar aik best-effort default partition layout istimal krein"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "Har infaradi drive kay sath kia karna hay (partition usage kay sath), intikhab krein"
msgid "Select what you wish to do with the selected block devices"
msgstr "Muntkh'b block devices kay sath kia karna chahtay hein, intikhab krein"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "yeh pre-programmed profiles kia fe'hrist hay, yeh asan bnati hein install karnay mein jaisa ke'h desktop environments"
msgid "Select keyboard layout"
msgstr "Keyboard ka layout"
msgid "Select one of the regions to download packages from"
msgstr "Aik jaga'h kay intikhab krein, packages ko download karnay kay liay"
msgid "Select one or more hard drives to use and configure"
msgstr "Aik yah ziada hard drives ka intikhab krein istimal aur tarteb krein"
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 hardware ki achi mutab'qat kay liay, aap ya to tamam open-source ya AMD / ATI options ka istimal karna chahtay hein."
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 hardware ki achi mutab'qat kay liay, aap ya to tamam open-source ya Intel options ka istimal karna chahtay hein.\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "Nvidia hardware ki achi mutab'qat kay liay, aap ya to tamam Nvidia malki'ati driver istimal karna chahtay hein.\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"Intkhab krein aik graphics driver ya khali chodain tamam open-source drivers install karnay kay liay"
msgid "All open-source (default)"
msgstr "Tamam open-source (default)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "intkhab krein konsi kernels ko istimal karna hay ya default kay liay khali chodain \"{}\""
msgid "Choose which locale language to use"
msgstr "intkhab krein konsi locale zuban ko istimal karna hay"
msgid "Choose which locale encoding to use"
msgstr "intkhab krein konsi locale encoding ko istimal karna hay"
msgid "Select one of the values shown below: "
msgstr "intkhab krein neeche diye gaye options mein se ek ka: "
msgid "Select one or more of the options below: "
msgstr "intkhab krein neeche diye gaye options mein se ek ya ziada ka: "
msgid "Adding partition...."
msgstr "Partition shamil ho rhi hay...."
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "aap ko dar'st fs-type dar'j karna hoga jari rakhne kay liay. `man parted` dekhein valid fs-type's kay liay."
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "Galti: URL \"{}\" par zare fehrist profiles ka natija: "
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "Galti: JSON kay tor par \"{}\" ka natija decode nahi kia ja saka: "
msgid "Keyboard layout"
msgstr "Keyboard ka layout"
msgid "Mirror region"
msgstr "Mirror ka ilaqa"
msgid "Locale language"
msgstr "Locale language"
msgid "Locale encoding"
msgstr "Locale encoding"
msgid "Drive(s)"
msgstr "Drive(s)"
msgid "Disk layout"
msgstr "Disk ka layout"
msgid "Encryption password"
msgstr "Encryption ka password"
msgid "Swap"
msgstr "Swap"
msgid "Bootloader"
msgstr "Bootloader"
msgid "Root password"
msgstr "Root ka password"
msgid "Superuser account"
msgstr "Superuser ka account"
msgid "User account"
msgstr "Saraf ka account"
msgid "Profile"
msgstr "Profile"
msgid "Audio"
msgstr "Audio"
msgid "Kernels"
msgstr "Kernels"
msgid "Additional packages"
msgstr "Azafi packages"
msgid "Network configuration"
msgstr "Network ki tarteb"
msgid "Automatic time sync (NTP)"
msgstr "Khudkar time sync (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "Install ({} tarteb mojod nahi)"
#, fuzzy
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 ""
"Aap nay harddrive ka intikhab karna chod nay ka faisla kia.\n"
"Aur jo drive setup {} (tajurbati) par mount kia gia hay, iska istimal krein gay\n"
"Intba'h: Archinstall is setup ki muta'bqat ki janch nahi karay ga\n"
"Kia aap jari rakhna chahtay hein?"
msgid "Re-using partition instance: {}"
msgstr "Partition instance ka dubara istimal: {}"
msgid "Create a new partition"
msgstr "Nai partition banaein"
msgid "Delete a partition"
msgstr "Aik artition hazif"
msgid "Clear/Delete all partitions"
msgstr "Tamam partitions hazif/mata dein"
msgid "Assign mount-point for a partition"
msgstr "Aik partition kay liay mount-point assign krein"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "Partition ko format karne ke liay mark/unmark kre (data ko mitadega)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "Encrypt karne k liay partition ko mark/unmark krein"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "Partition ko bootable kay liay mark/unmark krein (automatic /boot hay)"
msgid "Set desired filesystem for a partition"
msgstr "Aik partition kay liay Matlooba filesystem darj krein"
msgid "Abort"
msgstr "Khatam krein"
msgid "Hostname"
msgstr "Hostname"
msgid "Not configured, unavailable unless setup manually"
msgstr "tarteb shuda'h nahi, na dast'yab hay jab tak manually set na kia jaye"
msgid "Timezone"
msgstr "Timezone"
msgid "Set/Modify the below options"
msgstr "Zail kay ikhtiarat ko set/tarmim krein"
msgid "Install"
msgstr "Install"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"Chodnay kay liay ESC ka istimal krein\n"
"\n"
msgid "Suggest partition layout"
msgstr "Partition ka layout tajwiz krein"
msgid "Enter a password: "
msgstr "Password darj krein: "
msgid "Enter a encryption password for {}"
msgstr "Encryption ka password {} kay liay darj krein"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "Disk encryption ka password darj krein (encryption na karnay kay liay khali chodain): "
msgid "Create a required super-user with sudo privileges: "
msgstr "Sudo kay mara'at kay sath super-user banaye'n: "
msgid "Enter root password (leave blank to disable root): "
msgstr "Root ka password darj krein (root ko disable karnay kay liay khali chodain): "
msgid "Password for user \"{}\": "
msgstr "\"{}\" sarif kay liay password: "
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "Is baat ki tasdeeq ho rhi hay kay azafi packages mojood hein (is mein kuch second lag saktay hein)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "Kia Aap time ki automatic muta'bqat (NTP) default time servers kay sath istimal karna chahtay hein?\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 kay kam karnay kay liay hardware ka time aur dosri tertebe'n zarori ho sakti hein\n"
"Mazeed ma'ulomat kay liay, Arch wiki check krein"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "Azafi sarif banany kay liay username darj krein (chodnay kay liay khali chodain): "
msgid "Use ESC to skip\n"
msgstr "ESC ka istimal krein chodnay kay liay\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
"Kisi aik cheez ko fe'hrist say muntkh'b krein, aur us kay liay m'ojud actions me'n se aik ko execute krein"
msgid "Cancel"
msgstr "Manso'kh krein"
msgid "Confirm and exit"
msgstr "Tasdeeq krein aur bahir niklain"
msgid "Add"
msgstr "Add"
msgid "Copy"
msgstr "Copy krein"
msgid "Edit"
msgstr "Edit"
msgid "Delete"
msgstr "Hazif"
msgid "Select an action for '{}'"
msgstr "'{}' kay liay aik action muntkh'b krein"
msgid "Copy to new key:"
msgstr "Aik na'i key ko copy krein"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "Na mau'lom nic type: {}. Mumkin values hein {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"Yeh aapki muntkh'b terateb hein:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman pehlay hi chal rha hay, maximum 10 minutes intizar hay k woh khatam ho jay."
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "Pehlay say m'ojud pacman lock khatam nahi huwa. Brah'e mehrbani archinstall ka istimal karnay say pehle kisi bhi m'ojude'h pacman session ko saaf krein."
msgid "Choose which optional additional repositories to enable"
msgstr "Konsi ikhtiari azafi repositories ko enable karna chahtay hein, muntkh'b krein"
msgid "Add a user"
msgstr "Aik sarif sham'il krein"
msgid "Change password"
msgstr "Password badlein"
msgid "Promote/Demote user"
msgstr "sarif ko promote/demote krein"
msgid "Delete User"
msgstr "sarif hazif krein"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"Aik na'y sarif ki wazah't krein\n"
msgid "User Name : "
msgstr "Saraf ka naam: "
msgid "Should {} be a superuser (sudoer)?"
msgstr "Kia {} ko superuser hona chahiay (sudoer)?"
msgid "Define users with sudo privilege: "
msgstr "sar'feen sudo mara'at kay sath hein wazah't krein: "
msgid "No network configuration"
msgstr "Network ki koi tarteb nahi"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "Btrfs partition par matlooba subvolumes set krein"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"Jis artition par subvolumes set karna chahtay hayn, muntkh'b krein"
msgid "Manage btrfs subvolumes for current partition"
msgstr "Halia partition kay liay btrfs subvolumes ko manage krein"
msgid "No configuration"
msgstr "Koi tarteb nahi"
msgid "Save user configuration"
msgstr "sarif ki tarteb mahfoz krein"
msgid "Save user credentials"
msgstr "sarif ki asnaa'd mahfoz krein"
msgid "Save disk layout"
msgstr "Disk layout mahfoz krein"
msgid "Save all"
msgstr "Tamam mahfoz krein"
msgid "Choose which configuration to save"
msgstr "Konsi tarteb mahfoz karni hay, muntkh'b krein"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "Aik directory darj krein tarteb(on) ko mahfoz karnay kay liay: "
msgid "Not a valid directory: {}"
msgstr "Koi wazah directory nahi: {}"
msgid "The password you are using seems to be weak,"
msgstr "Aap istimal shuda password buhat kamzor lagta hai,"
msgid "are you sure you want to use it?"
msgstr "Kia aap pur yaqeen hein isay istimal karnay par?"
msgid "Optional repositories"
msgstr "Ikhtiari repositories"
msgid "Save configuration"
msgstr "tartebat mahfoz krein"
msgid "Missing configurations:\n"
msgstr "Gum shuda'h tartebat:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "Ya tu root ka password ya kam az kam 1 superuser zaror bataein"
msgid "Manage superuser accounts: "
msgstr "superuser kay accounts ko manage krein: "
msgid "Manage ordinary user accounts: "
msgstr "A'am sarif kay accounts ko manage krein: "
msgid " Subvolume :{:16}"
msgstr " Subvolume :{:16}"
msgid " mounted at {:16}"
msgstr " mount hai {:16}"
msgid " with option {}"
msgstr " kay ikhtiar {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
" Aik na'y subvolume kay liay matlooba values ko bharhein \n"
msgid "Subvolume name "
msgstr "Subvolume ka naam"
msgid "Subvolume mountpoint"
msgstr "Subvolume ka mountpoint"
msgid "Subvolume options"
msgstr "Subvolume kay ikhtiar"
msgid "Save"
msgstr "Save"
msgid "Subvolume name :"
msgstr "Subvolume ka naam :"
msgid "Select a mount point :"
msgstr "Aik mount point muntkh'b krein :"
msgid "Select the desired subvolume options "
msgstr "Matlooba subvolume options ka in'tkhab krein "
msgid "Define users with sudo privilege, by username: "
msgstr "Sar'feen sudo mara'at kay sath hein wazah't krein, username kay sath: "
#, python-brace-format
msgid "[!] A log file has been created here: {}"
msgstr "[!] Yahan log file banai ja chuki hai: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "Kia aap BTRFS subvolumes ko default dha'nchay kay sath istimal karna chahtay hein?"
msgid "Would you like to use BTRFS compression?"
msgstr "Kia aap BTRFS compression ko istimal karna chahtay hein?"
msgid "Would you like to create a separate partition for /home?"
msgstr "Kia aap /home kay liay aik alag partition bana'n chahtay hein?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "Khudkar suggestion kay liay muntkhab drives ki minimum capacity zarori nahi\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "/home partition ki minimum capacity: {}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Arch Linux partition ki minimum capacity: {}GB"
msgid "Continue"
msgstr "Jari rakhein"
msgid "yes"
msgstr "haan"
msgid "no"
msgstr "nahi"
msgid "set: {}"
msgstr "krein: {}"
msgid "Manual configuration setting must be a list"
msgstr "Manual tarteb ki setting ki aik list honi chahiye"
msgid "No iface specified for manual configuration"
msgstr "Manual tarteb kay liay muntkh'b iface nahi hay"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "Bagir auto DHCP kay manual nic tarteb kay liay IP address zaruri hay"
msgid "Add interface"
msgstr "Interface shamil krein"
msgid "Edit interface"
msgstr "Interface edit krein"
msgid "Delete interface"
msgstr "Interface delete krein"
msgid "Select interface to add"
msgstr "Interface shamil karnay kay liay muntkh'b krein"
msgid "Manual configuration"
msgstr "Manual tarteb"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "Partition ko compress karnay kay liay mark/unmark krein (sirf btrfs)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "aapka dia gia password kamzor lag raha hay, aap isko istimal kay liay par yaqeen hein?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "Desktop environments aur tiling window managers ki selection muhayya krein, jaisay kay gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "Apnay muntkh'b desktop environment ka intikhab"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "Aik nihay't bunyadi installation, jo Arch Linux ko aapki zarorat"
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "Mukhtalif server packages ki selection muhayya krein, jaisay kay httpd, nginx, mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "Konsay servers ko install karna chahiye intkhab krein, agar koi nahi to aik minimal installation hoga"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "Aik minimal system install ho ga aur sath sath xorg aur graphics drivers bhi."
msgid "Press Enter to continue."
msgstr "Enter duba kar jari rakhein"
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "Kia aap aik nayi installation main chroot aur post-installation configuration tarteb karna chahtay hein?"
msgid "Are you sure you want to reset this setting?"
msgstr "Is tarte'd ko reset karnay kay liay kia aap pur yaqeen hein?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "Aik ya ziada hard drive muntkh'b krein istimal aur tarteb kay liay\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "Tay shuda setting main koi rado badal disk layout ko reset kar day gi!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "Agar aap muntikhab hardrive ko reset kartay hein tu yeh mojoda disk layout bhi reset karay gi, aap pur yaqeen hein?"
msgid "Save and exit"
msgstr "Save krein or nikalein"
#, fuzzy
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"me'n partitions hein, yeh mita day ga, aap sach mein yeh karna chahtay hein?"
msgid "No audio server"
msgstr "Koi audio server nahi"
msgid "(default)"
msgstr "(default)"
msgid "Use ESC to skip"
msgstr "ESC ka istimal krein chodnay kay liay"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr ""
"Mojoda tarteb ko reset kay liay CTRL+C ka istimal krein\n"
"\n"
msgid "Copy to: "
msgstr "par copy krein: "
msgid "Edit: "
msgstr "Edit: "
msgid "Key: "
msgstr "Key: "
msgid "Edit {}: "
msgstr "Edit {}: "
msgid "Add: "
msgstr "Shamil krein: "
msgid "Value: "
msgstr "Qadar: "
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "Drive kay intikhab aur partitioning ko chodnay aur jo bhi drive-setup /mnt mojod hai ko istimal krein (experimental)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "Aik disk muntkh'b krein ya chodnay aur /mnt ko default kay tor par istimal krein"
msgid "Select which partitions to mark for formatting:"
msgstr "Mark krein format kay liay konsay partitions ka intikhab: "
msgid "Use HSM to unlock encrypted drive"
msgstr "Encrypted drive ko unlock kay liay HSM ka istimal krein"
msgid "Device"
msgstr "Device"
msgid "Size"
msgstr "Size"
msgid "Free space"
msgstr "Khali jagah"
msgid "Bus-type"
msgstr "Bus-type"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "Ya tu root ka password ya kam az kam 1 superuser zaror bataein"
msgid "Enter username (leave blank to skip): "
msgstr "Saraf ka naam darj krein (no honay ki sorat mein Khali chod dein): "
msgid "The username you entered is invalid. Try again"
msgstr "Darj shuda username galat hai, dubara koshish krein"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "Kia \"{}\" ko aik superuser (sudo) hona chahiay?"
msgid "Select which partitions to encrypt"
msgstr "Konsi partition ko encrypt krna hai select krein"
msgid "very weak"
msgstr "Buhat kamzor"
msgid "weak"
msgstr "Kamzor"
msgid "moderate"
msgstr "Darmiyana"
msgid "strong"
msgstr "Mazbot"
msgid "Add subvolume"
msgstr "Subvolume shamil krein"
msgid "Edit subvolume"
msgstr "Subvolume ko edit krein"
msgid "Delete subvolume"
msgstr "Subvolume ko delete krein"
msgid "Configured {} interfaces"
msgstr "Tateb shuda {} interfaces"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "yeh option installation kay duran parallel download ki number ko enable karta hai"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"Parallel download ki number daalain.\n"
" (1 se {} darmiyan daalain)\n"
"Yaa daasht:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - Maximum value : {} ( {} Parallel downloads ki ajazat, {} downloads ki aik waqat main ajazat hai )"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - Minimum value : 1 ( 1 Parallel download ki ajazat, 2 downloads ki aik waqat main ajazat hai )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - Disable/Default : 0 ( Parallel download ko disable krnay kay liay, sirf 1 download ki aik waqat main ajazat hai )"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "Darj shuda galat hai! Dubara koshish krein sahi darj kar nay ki [1 say {max_downloads}, ya 0 disable kay liay]"
msgid "Parallel Downloads"
msgstr "Parallel Downloads"
msgid "ESC to skip"
msgstr "Skip kay liay ESC"
msgid "CTRL+C to reset"
msgstr "Reset kay liay CTRL+C"
msgid "TAB to select"
msgstr "Select kay liay TAB"
msgid "[Default value: 0] > "
msgstr "[Default value: 0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "Is translation ko istimal kay liay, brah e meharbani aik font manuallly install krein jo is zuban ko suppport krta ho."
msgid "The font should be stored as {}"
msgstr "Font is trah {} store hona chahiya"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Archinstall ko chalanay kay liay root hona zarori hai. ziada kay liay --help daykhein."
msgid "Select an execution mode"
msgstr "Excution mode ko select krein"
#, python-brace-format
msgid "Unable to fetch profile from specified url: {}"
msgstr "muntkh'b url: {} say profile hasil krna mumkin nahi"
#, python-brace-format
msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}"
msgstr "Profiles ka munfirad hona zarori hai, lakin profile ki tareef duhray namoo kay sath mili hai: {}"
msgid "Select one or more devices to use and configure"
msgstr "Aik yah ziada devices ka intikhab krein istimal aur tarteb krein"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "Agar aap muntikhab device ko reset kartay hein tu yeh mojoda disk layout bhi reset ho ga, aap pur yaqeen hein?"
msgid "Existing Partitions"
msgstr "Pehlay say m'ojud partitions"
msgid "Select a partitioning option"
msgstr "Aik ikhti'ari partion ka intikhab krein"
msgid "Enter the root directory of the mounted devices: "
msgstr "Mounted devices kay liay root directory ko darj krein"
#, python-brace-format
msgid "Minimum capacity for /home partition: {}GiB\n"
msgstr "/home partition kay liay Minimum capacity: {}GiB\n"
#, python-brace-format
msgid "Minimum capacity for Arch Linux partition: {}GiB"
msgstr "Arch linux partion kay liay Minimum capacity: {}GiB"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "yeh pre-programmed profiles_bck ki fe'hrist hay, in say desktop environment jaisi cheezon ko install karnay main madad milti hai"
msgid "Current profile selection"
msgstr "mojoda profile selection"
msgid "Remove all newly added partitions"
msgstr "Nai shamil ki gai tamam partitions remove krein"
msgid "Assign mountpoint"
msgstr "Mountpoint assign krein"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "Format (data hazaf) karnay kay liay mark/unmark krein"
msgid "Mark/Unmark as bootable"
msgstr "Bootable bananay kay liay mark/unmark krein"
msgid "Change filesystem"
msgstr "Filesystem badlain"
msgid "Mark/Unmark as compressed"
msgstr "Compress kay liay mark/unmark krein"
msgid "Set subvolumes"
msgstr "subvolumes darj krein"
msgid "Delete partition"
msgstr "Partition hazif krein"
msgid "Partition"
msgstr "Partition"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "yeh partition mojoda tor par encrypt hai, filesystem ka intkhab zarori hai is ko format karnay kay liay"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "Prtition kay mount points installation kay andar relative hein, masal kay tor par /boot boot kay liay hai."
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "Agar /boot muntkh'b hua, to partition bootable kay liay bhi mark ho gi."
msgid "Mountpoint: "
msgstr "Mountpoint: "
msgid "Current free sectors on device {}:"
msgstr "mojoda khali sector is device par {}:"
msgid "Total sectors: {}"
msgstr "Tamam mojoda sectors: {}"
msgid "Enter the start sector (default: {}): "
msgstr "Sector ki shroa'at dar'j krein (default: {}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
msgstr "Partition kay a'akhri sector ki dar'j krein (fisad ya block ka number, default: {}): "
msgid "This will remove all newly added partitions, continue?"
msgstr "yeh nai shamil ki gai tamam partitions remove karay ga, jari rakhein?"
#, python-brace-format
msgid "Partition management: {}"
msgstr "Partiotion ki management: {}"
#, python-brace-format
msgid "Total length: {}"
msgstr "Total length: {}"
msgid "Encryption type"
msgstr "Encryption ki type"
msgid "Iteration time"
msgstr "Iteration ka time"
msgid "Enter iteration time for LUKS encryption (in milliseconds)"
msgstr "Iteration time LUKS encryption kay liay darj krein (milliseconds main)"
msgid "Higher values increase security but slow down boot time"
msgstr "Bari values security ko barhati hain lekin boot time ko slow karti hain"
msgid "Default: 10000ms, Recommended range: 1000-60000"
msgstr "Default: 10000ms, Tajwiz shuda range: 1000-60000"
msgid "Iteration time cannot be empty"
msgstr "Iteration time khali nahi ho sakta"
msgid "Iteration time must be at least 100ms"
msgstr "Iteration time kam az kam 100ms hona chahiye"
msgid "Iteration time must be at most 120000ms"
msgstr "Iteration time ziada say ziada 120000ms hona chahiye"
msgid "Please enter a valid number"
msgstr "Brah e meharbani ek durust number darj krein"
msgid "Partitions"
msgstr "Partitons"
msgid "No HSM devices available"
msgstr "Koi HSM device mojod nahi"
msgid "Partitions to be encrypted"
msgstr "Partition ki encryption ho gi"
msgid "Select disk encryption option"
msgstr "Disk ki encryption ka ikhti'ar select krein"
msgid "Select a FIDO2 device to use for HSM"
msgstr "HSM kay liay aik FIDO2 device ko select krein"
msgid "Use a best-effort default partition layout"
msgstr "Mumkina best-effort default partition ka layout istimal krein"
msgid "Manual Partitioning"
msgstr "Manual Partitioning"
msgid "Pre-mounted configuration"
msgstr "Pre-mounted tarteb"
msgid "Unknown"
msgstr "Maloom nahi"
msgid "Partition encryption"
msgstr "Partition ki encryption"
#, python-brace-format
msgid " ! Formatting {} in "
msgstr " ! formatting {} main"
#, fuzzy
msgid "← Back"
msgstr "← Back"
msgid "Disk encryption"
msgstr "Desk ki encryption"
msgid "Configuration"
msgstr "tarteb"
msgid "Password"
msgstr "Password"
msgid "All settings will be reset, are you sure?"
msgstr "Tamam tarteb reset ho jay gi, kia aap pur yaqeen hein"
msgid "Back"
msgstr "Back"
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr "brah e meharbani muntkh'b profile kay liay greeter ko install kay liay select krein: {}"
#, python-brace-format
msgid "Environment type: {}"
msgstr "Environment ki type: {}"
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 "Sway Nvidia kay proprietary driver ko support nahi karta. Buhat imkan hai k'eh aap ko issues hongay, Kia aap pur yaqeen hein?"
msgid "Installed packages"
msgstr "Installed packages"
msgid "Add profile"
msgstr "Profile shamil krein"
msgid "Edit profile"
msgstr "Profile ko edit krein"
msgid "Delete profile"
msgstr "Profile ko hazif krein"
msgid "Profile name: "
msgstr "Profile ka naam: "
msgid "The profile name you entered is already in use. Try again"
msgstr "Aap ka darj karda profile ka naam pehlay say mojod hai, dubara koshish krein"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "Is profile kay sath install honay walay packages (space se alag krein, khali chod de'n agar kuch nahi): "
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "Is profile kay sath enable honay wali services (space se alag krein, khali chod de'n agar kuch nahi): "
msgid "Should this profile be enabled for installation?"
msgstr "Kia is profile ko enable karna hai installation kay liay?"
msgid "Create your own"
msgstr "Khud ki bana'en"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"Aik graphic driver ka intkh'b ya kahli chod de'n tamam open-source driver ko install kay liay"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway kay liay access zarori hai (hardware devices ki fe'hrst jaisa ke'h keyboard, mouse, etc)"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"Sway ko apnay hardware tak rasai kay liay aik ka intkh'ab krein"
msgid "Graphics driver"
msgstr "Graphic driver"
msgid "Greeter"
msgstr "Greeter"
msgid "Please chose which greeter to install"
msgstr "Kis greeter ko install karna hai muntkh'b krein"
msgid "This is a list of pre-programmed default_profiles"
msgstr "yeh f'ehrist hai pre-programmed default_profiles ki"
msgid "Disk configuration"
msgstr "Disk ki tart'b"
msgid "Profiles"
msgstr "Profiles"
msgid "Finding possible directories to save configuration files ..."
msgstr "tarteb ki files ko save karnay kay liay mumkina directories ki talash"
msgid "Select directory (or directories) for saving configuration files"
msgstr "tarteb ki files ko save karnay directory (ya directories) ko select krein"
msgid "Add a custom mirror"
msgstr "Custom mirror ko shamil krein"
msgid "Change custom mirror"
msgstr "Custom mirror ko change krein"
msgid "Delete custom mirror"
msgstr "Custom mirror ko hazif krein"
msgid "Enter name (leave blank to skip): "
msgstr "Naam darj krein (khali chod de'n agar kuch nahi): "
msgid "Enter url (leave blank to skip): "
msgstr "Url ko darj krein (khali chod de'n agar kuch nahi): "
msgid "Select signature check option"
msgstr "Signature kay check karnay kay liay ikhtiar ko select krein"
msgid "Select signature option"
msgstr "Signature kay ikhtiar ko select krein"
msgid "Custom mirrors"
msgstr "Custom mirrors"
msgid "Defined"
msgstr "Tareef karda"
msgid "Save user configuration (including disk layout)"
msgstr "Saraf ki tarteb save krein (disk layout kay sath)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"Tarteb ko save karnay kay liay directory darj krein (pora karnay kay liay tab dubain)\n"
"Save kay liay directory: "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"Kia aap mutloba jaga tarteb filon {} ko save karna chahtay hein?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "{} Tarteb ki filon {} par save kia ja rha hai"
msgid "Mirrors"
msgstr "Mirrors"
msgid "Mirror regions"
msgstr "Mirrors ka ilaqa"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - Maximum value : {} ( {} Parallel downloads ki ajazat, {max_downloads+1} downloads ki aik waqat main ajazat hai )"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "Darj shuda galat hai! Dubara koshish krein sahi darj kar nay ki [1 say {}, ya 0 disable kay liay]"
msgid "Locales"
msgstr "Locales"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "NetworkManager ka istmal (GNOME or KDE main graphically internet ka tayun krnay kay liay zarori hai)"
msgid "Total: {} / {}"
msgstr "Tamam: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "Tamam darj shuda miqdaron say pehlay aik unit: B, KB, KiB, MB, MiB..."
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "Agar unit na darj hua, tu miqdar ko sector taswar kia jayga"
msgid "Enter start (default: sector {}): "
msgstr "Shroa'at dar'j krein (default: sector {}): "
msgid "Enter end (default: {}): "
msgstr "A'akhrat dar'j krein (default: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "FIDO2 devices ka tayun nahi ho rha hai. Kia libfido2 install hai?"
msgid "Path"
msgstr "Path"
msgid "Manufacturer"
msgstr "Manufacturer"
msgid "Product"
msgstr "Product"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "Darj shuda tarteb galat hai: {error}"
msgid "Type"
msgstr "Type"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "Package download kay doran parallel downloads kay number ko qabil karnay kay liay ikhtiar krein"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"Parallel downloads kay number ko darj krein qabil karnay kay liay.\n"
"\n"
"Note:\n"
#, python-brace-format
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr " - Maximum safarish karda value : {} ( {} downloads ki aik waqat main ajazat hai )"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - Disable/Default : 0 ( Parallel download ko disable krnay kay liay, sirf 1 download ki aik waqat main ajazat hai )\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "Darj shuda galat hai! Dubara koshish krein sahi darj kar nay ki [ya 0 disable kay liay]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Hyperland kay liay access zarori hai (hardware devices ki fe'hrst jaisa ke'h keyboard, mouse, etc)"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"Hyperland ko apnay hardware tak rasai kay liay aik ka intkh'ab krein"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "Tamam darj shuda miqdaron say pehlay aik unit: B, KB, KiB, MB, MiB..."
msgid "Would you like to use unified kernel images?"
msgstr "Kia aap unified kernel images kay istmal ko pasand krein gay?"
msgid "Unified kernel images"
msgstr "Unified kernel images"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "Time sync (timedatectl show) kay mukamal honay ka intzar hai."
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Aap kay intzar kartay huay time ki syncroniztion pori nhi hui, docs ko check krein: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "Khud kar time sync kay intzar ko khatam krein (yeh issue bana sakta hai installation kay duran agar time sync say out hota hai)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "Arch Linux keyring sync (archlinux-keyring-wkd-sync) kay mukamal honay ka intzar hai."
msgid "Selected profiles: "
msgstr "Muntkhab Profiles: "
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "Aap kay intzar kartay huay time ki syncroniztion pori nhi hui, docs ko check krein: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "Nodatacow kay mark/unmark krein"
msgid "Would you like to use compression or disable CoW?"
msgstr "Kia aap compression kay istmal ya CoW ko disable karna chahtay hein?"
msgid "Use compression"
msgstr "Compression ka istmal"
msgid "Disable Copy-on-Write"
msgstr "Copy-on-Write ko disable krein"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway"
msgstr "Yeh desktop environments or tiling window managers ki feharist daita hai jaisa kay GNOME, KDE Plasma, Sway"
#, fuzzy, python-brace-format
msgid "Configuration type: {}"
msgstr "Tarteb ki type: {}"
#, fuzzy
msgid "LVM configuration type"
msgstr "LVM tarteb ki type"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "2 ya ziada partition wali LVM disk encryption ko mojoda tor par support nahi hai"
#, fuzzy
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "NetworkManager ka istmal (GNOME or KDE main graphically internet ka tayun krnay kay liay zarori hai)"
#, fuzzy
msgid "Select a LVM option"
msgstr "Aik LVM ikhtiar ko select krein"
#, fuzzy
msgid "Partitioning"
msgstr "Partitioning"
msgid "Logical Volume Management (LVM)"
msgstr "Logical Volume Management (LVM)"
msgid "Physical volumes"
msgstr "Physical volumes"
msgid "Volumes"
msgstr "Volumes"
#, fuzzy
msgid "LVM volumes"
msgstr "LVM volumes"
#, fuzzy
msgid "LVM volumes to be encrypted"
msgstr "LVM volumes ko encrypt krna"
#, fuzzy
msgid "Select which LVM volumes to encrypt"
msgstr "Konsay LVM volume ko encrypt krna hai select krein"
#, fuzzy
msgid "Default layout"
msgstr "Default layout"
#, fuzzy
msgid "No Encryption"
msgstr "Koi encryption nahi"
msgid "LUKS"
msgstr "LUKS"
msgid "LVM on LUKS"
msgstr "LUKS par LVM"
msgid "LUKS on LVM"
msgstr "LVM par LUKS"
msgid "Yes"
msgstr "Haan"
msgid "No"
msgstr "Nahi"
#, fuzzy
msgid "Archinstall help"
msgstr "Archinstall ki madad"
msgid " (default)"
msgstr " (default)"
msgid "Press Ctrl+h for help"
msgstr "Madad kay liay Ctrl+h dubaen"
#, fuzzy
msgid "Choose an option to give Sway access to your hardware"
msgstr "Sway ko apnay hardware tak rasai kay liay aik ka intkh'ab krein"
msgid "Seat access"
msgstr "Tak rasai"
#, fuzzy
msgid "Mountpoint"
msgstr "Mountpoint"
msgid "HSM"
msgstr "HSM"
#, fuzzy
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "Disk encryption ka password darj krein (encryption na karnay kay liay khali chodain): "
#, fuzzy
msgid "Disk encryption password"
msgstr "Encryption ka password"
#, fuzzy
msgid "Partition - New"
msgstr "Nai - Partition"
#, fuzzy
msgid "Filesystem"
msgstr "Filesystem"
msgid "Invalid size"
msgstr "Size sahi nahi"
#, fuzzy
msgid "Start (default: sector {}): "
msgstr "Shroa'at dar'j krein (default: sector {}): "
#, fuzzy
msgid "End (default: {}): "
msgstr "A'akhrat dar'j krein (default: {}): "
#, fuzzy
msgid "Subvolume name"
msgstr "Subvolume ka naam"
#, fuzzy
msgid "Disk configuration type"
msgstr "Disk configuration ki type"
msgid "Root mount directory"
msgstr "Root ki mount directory"
#, fuzzy
msgid "Select language"
msgstr "Zuban ka intikhab"
#, fuzzy
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "Azafi packages jo install karnay hein (space se alag krein, khali chod de'n agar kuch nahi): "
msgid "Invalid download number"
msgstr "Download ka number sahi nahi"
msgid "Number downloads"
msgstr "Downloads kay number"
#, fuzzy
msgid "The username you entered is invalid"
msgstr "Darj shuda username galat hai, dubara koshish krein"
#, fuzzy
msgid "Username"
msgstr "Saraf ka naam: "
#, fuzzy, python-brace-format
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "Kia \"{}\" ko aik superuser (sudo) hona chahiay?\n"
#, fuzzy
msgid "Interfaces"
msgstr "Interfaces"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "IP-config mode main sahi IP ko aap darj krein"
msgid "Modes"
msgstr "Modes"
msgid "IP address"
msgstr "IP address"
#, fuzzy
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "A'pnay gateway (router) IP address dar'j krein (khali chodain, na honay kay liay)"
msgid "Gateway address"
msgstr "Gateway ka address"
#, fuzzy
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "A'pnay DNS servers dar'j krein (space se alag, khali chodain agar koi nahi)"
#, fuzzy
msgid "DNS servers"
msgstr "DNS servers"
#, fuzzy
msgid "Configure interfaces"
msgstr "Tateb shuda interfaces"
#, fuzzy
msgid "Kernel"
msgstr "Kernel"
msgid "UEFI is not detected and some options are disabled"
msgstr "UEFI nahi hai or kuch ikhtiar band hain"
msgid "Info"
msgstr "Info"
#, fuzzy
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "Sway Nvidia kay proprietary driver ko support nahi karta."
#, fuzzy
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "Buhat imkan hai k'eh aap ko issues hongay, Kia aap pur yaqeen hein?"
#, fuzzy
msgid "Main profile"
msgstr "Mian Profile"
#, fuzzy
msgid "Confirm password"
msgstr "Password ko confirm krein"
msgid "The confirmation password did not match, please try again"
msgstr "Password ki confirmation nahi mil rhi, brah e maharbani dobara koshish krein"
#, fuzzy
msgid "Not a valid directory"
msgstr "Sahi directory nahi hai"
#, fuzzy
msgid "Would you like to continue?"
msgstr "Kia aap jari rakhna chatay hain?"
msgid "Directory"
msgstr "Directory"
#, fuzzy
msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)"
msgstr "Tartebon ko save karnay kay liay directory darj krein (pora karnay kay liay tab dubain)"
#, fuzzy, python-brace-format
msgid "Do you want to save the configuration file(s) to {}?"
msgstr "Kia aap tarteb filon {} ko save karna chahtay hein?"
msgid "Enabled"
msgstr "Enabled"
msgid "Disabled"
msgstr "Disabled"
#, fuzzy
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr "Brah e meharbani is issue (aur file) ko https://github.com/archlinux/archinstall/issues par submit krein"
#, fuzzy
msgid "Mirror name"
msgstr "Mirror ka naam"
msgid "Url"
msgstr "Url"
#, fuzzy
msgid "Select signature check"
msgstr "Signature kay check karnay kay liay, ko select krein"
#, fuzzy
msgid "Select execution mode"
msgstr "Excution mode ko select krein"
#, fuzzy
msgid "Press ? for help"
msgstr "Madad kay liay ? dubaen"
#, fuzzy
msgid "Choose an option to give Hyprland access to your hardware"
msgstr "Hyperland ko apnay hardware tak rasai kay liay aik ikhtiar ka intkh'ab krein"
#, fuzzy
msgid "Additional repositories"
msgstr "Ikhtiari repositories"
msgid "NTP"
msgstr "NTP"
msgid "Swap on zram"
msgstr "Zram main Swap"
msgid "Name"
msgstr "Naam"
#, fuzzy
msgid "Signature check"
msgstr "Signature kay check"
#, fuzzy, python-brace-format
msgid "Selected free space segment on device {}:"
msgstr "Mojoda khali sector is device par {}:"
#, fuzzy, python-brace-format
msgid "Size: {} / {}"
msgstr "Size: {} / {}"
#, fuzzy, python-brace-format
msgid "Size (default: {}): "
msgstr "Size (default: {}): "
#, fuzzy
msgid "HSM device"
msgstr "HSM device"
msgid "Some packages could not be found in the repository"
msgstr "Kuch packages repository main nahi milay"
msgid "User"
msgstr "Saraf"
msgid "The specified configuration will be applied"
msgstr "Matloba tarteb ko apply kia jayga"
msgid "Wipe"
msgstr "Mitana"
#, fuzzy
msgid "Mark/Unmark as XBOOTLDR"
msgstr "XBOOTLDR kay liay mark/unmark krein"
#, fuzzy
msgid "Loading packages..."
msgstr "Loading packages..."
msgid "Select any packages from the below list that should be installed additionally"
msgstr "koi bhi packages neechay wali feharast main say azafi tor par install karnay kay liay"
#, fuzzy
msgid "Add a custom repository"
msgstr "Custom repository ko shamil krein"
#, fuzzy
msgid "Change custom repository"
msgstr "Custom repository ko change krein"
#, fuzzy
msgid "Delete custom repository"
msgstr "Custom repository ko hazif krein"
#, fuzzy
msgid "Repository name"
msgstr "Repository ka naam"
#, fuzzy
msgid "Add a custom server"
msgstr "Aik custom server ko shamil krein"
#, fuzzy
msgid "Change custom server"
msgstr "Custom server ko change krein"
#, fuzzy
msgid "Delete custom server"
msgstr "Custom server ko hazif krein"
msgid "Server url"
msgstr "Server ka url"
#, fuzzy
msgid "Select regions"
msgstr "Select regions"
#, fuzzy
msgid "Add custom servers"
msgstr "Custom servers ko shamil krein"
#, fuzzy
msgid "Add custom repository"
msgstr "Custom repository ko shamil krein"
#, fuzzy
msgid "Loading mirror regions..."
msgstr "Loading mirrors ka ilaqa"
#, fuzzy
msgid "Mirrors and repositories"
msgstr "Mirrors or repositories"
#, fuzzy
msgid "Selected mirror regions"
msgstr "Muntkhab mirrors ka ilaqa"
#, fuzzy
msgid "Custom servers"
msgstr "Custom servers"
#, fuzzy
msgid "Custom repositories"
msgstr "Custom repositories"
msgid "Only ASCII characters are supported"
msgstr "Sirf ASCII alfaz ko support hasil hai"
msgid "Show help"
msgstr "Madad dikhain"
msgid "Exit help"
msgstr "Madad say nikalein"
msgid "Preview scroll up"
msgstr "Scroll up dikhain"
msgid "Preview scroll down"
msgstr "Scroll down dikhain"
msgid "Move up"
msgstr "Opar jain"
msgid "Move down"
msgstr "Neechay jain"
msgid "Move right"
msgstr "Right jain"
msgid "Move left"
msgstr "Left jain"
msgid "Jump to entry"
msgstr "Entry par jump krin"
msgid "Skip selection (if available)"
msgstr "Intkhab skip krin (agar mujud ho)"
msgid "Reset selection (if available)"
msgstr "Intkhab reset krin (agar mujud ho)"
msgid "Select on single select"
msgstr "Sigle select ko muntikhab krein"
#, fuzzy
msgid "Select on multi select"
msgstr "Multi select ka intikhab krein"
msgid "Reset"
msgstr "Reset"
msgid "Skip selection menu"
msgstr "Selection menu skip krein"
msgid "Start search mode"
msgstr "Search mode shrou krein"
msgid "Exit search mode"
msgstr "Search mode say nikalein"
#, fuzzy
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "labwc ko apki rasai ki zrorat hai (hardware devices ki fe'hrst jaisa ke'h keyboard, mouse, etc)"
#, fuzzy
msgid "Choose an option to give labwc access to your hardware"
msgstr "Labwc ko apnay hardware tak rasai kay liay aik ikhtiar ka intkh'ab krein"
#, fuzzy
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "niri ko apki rasai ki zrorat hai (hardware devices ki fe'hrst jaisa ke'h keyboard, mouse, etc)"
#, fuzzy
msgid "Choose an option to give niri access to your hardware"
msgstr "Niri ko apnay hardware tak rasai kay liay aik ikhtiar ka intkh'ab krein"
#, fuzzy
msgid "Mark/Unmark as ESP"
msgstr "ESP kay liay mark/unmark krein"
msgid "Package group:"
msgstr "Package ka group:"
#, fuzzy
msgid "Exit archinstall"
msgstr "Archinstall say nikalein"
msgid "Reboot system"
msgstr "System reboot krein"
#, fuzzy
msgid "chroot into installation for post-installation configurations"
msgstr "Post-installation tartebon kay liay Installation main chroot krein"
msgid "Installation completed"
msgstr "Installation makamil hoe"
#, fuzzy
msgid "What would you like to do next?"
msgstr "Is say agay app kia krna chahay gay?"
#, fuzzy, python-brace-format
msgid "Select which mode to configure for \"{}\""
msgstr "Kis mode ki tarteb \"{}\" yahan karni hai, intkhab krein"
msgid "Incorrect credentials file decryption password"
msgstr "Decryption password kay galat isnaad ki file"
#, fuzzy
msgid "Incorrect password"
msgstr "Galat password"
#, fuzzy
msgid "Credentials file decryption password"
msgstr "Decryption password kay liay isnaad ki file"
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr "Kia aap user_credentials.json ki file ko encrypt krna chahtay hain?"
#, fuzzy
msgid "Credentials file encryption password"
msgstr "Decryption password kay liay isnaad ki file"
#, fuzzy, python-brace-format
msgid "Repositories: {}"
msgstr "Repositories: {}"
msgid "New version available"
msgstr "Naya version mojood hai"
msgid "Passwordless login"
msgstr "Password ke beghair login"
msgid "Second factor login"
msgstr "Second factor login"
msgid "Bluetooth"
msgstr "Bluetooth"
#, fuzzy
msgid "Would you like to configure Bluetooth?"
msgstr "Kya aap Bluetooth ko tart'eb dena chahtay hain?"
msgid "Print service"
msgstr "Print service"
msgid "Would you like to configure the print service?"
msgstr "Kya aap print service ko tart'eb dena chahtay hain?"
msgid "Power management"
msgstr "Power management"
msgid "Authentication"
msgstr "Authentication"
msgid "Applications"
msgstr "Applications"
msgid "U2F login method: "
msgstr "U2F login ka tariqa: "
msgid "Passwordless sudo: "
msgstr "Password ke beghair sudo: "
#, python-brace-format
msgid "Btrfs snapshot type: {}"
msgstr "Btrfs snapshot ki type: {}"
msgid "Syncing the system..."
msgstr "System ko sync kia ja rha hai..."
#, fuzzy
msgid "Value cannot be empty"
msgstr "Value khali nahi ho sakti"
msgid "Snapshot type"
msgstr "Snapshot ki type"
#, python-brace-format
msgid "Snapshot type: {}"
msgstr "Snapshot ki type: {}"
msgid "U2F login setup"
msgstr "U2F login ka setup"
msgid "No U2F devices found"
msgstr "Koi U2F device nahi mile"
msgid "U2F Login Method"
msgstr "U2F Login ka tariqa"
msgid "Enable passwordless sudo?"
msgstr "Password ke beghair sudo enable karna hai?"
#, fuzzy, python-brace-format
msgid "Setting up U2F device for user: {}"
msgstr "U2f device set horha hai is user kay liye: {}"
msgid "You may need to enter the PIN and then touch your U2F device to register it"
msgstr "Hosakta hai apko PIN darj karni pare aur phir apnay U2F device ko touch karna pare usko register karne kay liye"
msgid "Starting device modifications in "
msgstr "Device main tabdili shuru ho rhi hai "
msgid "No network connection found"
msgstr "Koi network connection nahi mila"
msgid "Would you like to connect to a Wifi?"
msgstr "Kya app Wifi say connect karna chahtay hain?"
msgid "No wifi interface found"
msgstr "Koi Wifi interface nahi mila"
#, fuzzy
msgid "Select wifi network to connect to"
msgstr "Wifi network muntakh'b krein connect karne kay liye"
msgid "Scanning wifi networks..."
msgstr "Wifi networks scan ho rhe hain..."
msgid "No wifi networks found"
msgstr "Koi wifi network nahi mila"
msgid "Failed setting up wifi"
msgstr "Wifi setup karne main nakami hui"
msgid "Enter wifi password"
msgstr "Wifi ka password darj krein"
msgid "Ok"
msgstr "Theek hai"
#, fuzzy
msgid "Removable"
msgstr "Hatnay layak"
#, fuzzy
msgid "Install to removable location"
msgstr "Hatnay layak jaga par install krein"
#, fuzzy
msgid "Will install to /EFI/BOOT/ (removable location)"
msgstr "/EFI/BOOT/ (hatnay layak jaga) par install kia jay ga"
#, fuzzy
msgid "Will install to standard location with NVRAM entry"
msgstr "Mayari jaga par NVRAM entry kay sath install kia jay ga"
#, fuzzy
msgid "Would you like to install the bootloader to the default removable media search location?"
msgstr "Kya aap bootloader ko default hatnay layak search location par install karna chahtay hain?"
msgid "This installs the bootloader to /EFI/BOOT/BOOTX64.EFI (or similar) which is useful for:"
msgstr "Yay bootloader ko /EFI/BOOT/BOOTX64.EFI (ya is jesi jaga) par install karta hai jo kay mufeed hai:"
msgid "USB drives or other portable external media."
msgstr "USB drives ya dosray portable external media."
msgid "Systems where you want the disk to be bootable on any computer."
msgstr "Systems jahan par aap chahte hain kay disk kisi bhi computer par bootable ho."
msgid "Firmware that does not properly support NVRAM boot entries."
msgstr "Firmware jo NVRAM boot entries ko durust tor par support nahi karta."
msgid "Will install to /EFI/BOOT/ (removable location, safe default)"
msgstr "/EFI/BOOT/ (hatnay ki qabil jaga, mehfooz default) par install hoga"
msgid "Will install to custom location with NVRAM entry"
msgstr "Apni marzi ki jaga par NVRAM entry kay sath install hoga"
msgid "Firmware that does not properly support NVRAM boot entries like most MSI motherboards,"
msgstr "Firmware jo NVRAM boot entries ko durust tor par support nahi karta jaise kay ziada tar MSI ke motherboards,"
msgid "most Apple Macs, many laptops..."
msgstr "zayadatar Apple Macs, bohat say laptops..."
msgid "Language"
msgstr "Zubaan"
msgid "Compression algorithm"
msgstr "Compression algorithm"
msgid "Only packages such as base, sudo, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "Sirf packages jese base, sudo, linux, linux-firmware, efibootmgr aur optional profile packages install hongay."
msgid "Select zram compression algorithm:"
msgstr "Zram compression algorithm ko select krein:"
msgid "Use Network Manager (default backend)"
msgstr "Network Manager istmal krein (default backend)"
msgid "Use Network Manager (iwd backend)"
msgstr "Network Manager istmal krein (iwd backend)"
#~ msgid ""
#~ "{}\n"
#~ "Contains queued partitions, this will remove those, are you sure?"
#~ msgstr ""
#~ "{}\n"
#~ "Qatar main lagi partitions hein, is say wo khatam ho jay gi, aap pur yaqeen hein?"
================================================
FILE: archinstall/locales/uz/LC_MESSAGES/base.po
================================================
# O'zbek tili tarjimasi - Arch Install
# Copyright (C) 2025 Arch Install Contributors
# This file is distributed under the same license as the archinstall package.
# Muhammadyoqub , 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"
================================================
FILE: archinstall/locales/zh-CN/LC_MESSAGES/base.po
================================================
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: clsty \n"
"Language-Team: \n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.3.2\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] 一份日志文件已在此处创建:{} {}"
msgid " Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr " 请将此问题(和文件)提交到 https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "您真的要中止吗?"
msgid "And one more time for verification: "
msgstr "再输入一次以进行验证:"
msgid "Would you like to use swap on zram?"
msgstr "您想在 zram 上使用交换分区(swap)吗?"
msgid "Desired hostname for the installation: "
msgstr "请输入安装后期望使用的主机名(hostname):"
msgid "Username for required superuser with sudo privileges: "
msgstr "请输入需要超级用户(sudo 权限)的用户名:"
msgid "Any additional users to install (leave blank for no users): "
msgstr "请输入要安装的其他用户(留空表示不安装其他用户):"
msgid "Should this user be a superuser (sudoer)?"
msgstr "这个用户应该成为超级用户(sudoer)吗?"
msgid "Select a timezone"
msgstr "选择时区"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "您想使用 GRUB 作为引导加载程序而不是 systemd-boot 吗?"
msgid "Choose a bootloader"
msgstr "选择引导加载程序"
msgid "Choose an audio server"
msgstr "请选择一个音频服务器(audio server)"
msgid "Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and optional profile packages are installed."
msgstr "仅安装基本软件包(base)、基本开发软件包(base-devel)、Linux 内核(linux)、Linux 固件(linux-firmware)、efibootmgr 和可选的配置文件软件包(profile packages)。"
msgid "If you desire a web browser, such as firefox or chromium, you may specify it in the following prompt."
msgstr "如果您需要一个网络浏览器,例如 firefox 或 chromium,您可以在下面的提示中指定它。"
msgid "Write additional packages to install (space separated, leave blank to skip): "
msgstr "输入要安装的其他软件包(空格分隔,留空以跳过):"
msgid "Copy ISO network configuration to installation"
msgstr "将 ISO 中的网络配置复制到安装目标中"
msgid "Use NetworkManager (necessary for configuring internet graphically in GNOME and KDE)"
msgstr "使用 NetworkManager(在 GNOME 和 KDE 中以图形方式配置 Internet 所必需的)"
msgid "Select one network interface to configure"
msgstr "选择要配置的网络接口"
msgid "Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
msgstr "选择要为“{}”配置的模式或跳过以使用默认模式“{}”"
msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): "
msgstr "输入 {} 的 IP 和子网(例如:192.168.0.5/24):"
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "请输入您的网关(路由器)IP 地址,如果没有请留空:"
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "请输入您的 DNS 服务器地址(以空格分隔,如果没有请留空):"
msgid "Select which filesystem your main partition should use"
msgstr "选择您的主分区应使用的文件系统"
msgid "Current partition layout"
msgstr "当前的分区布局"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"选择要执行的操作\n"
"{}"
msgid "Enter a desired filesystem type for the partition"
msgstr "为分区输入所需的文件系统类型"
msgid "Enter the start location (in parted units: s, GB, %, etc. ; default: {}): "
msgstr "输入起始位置(单位:s,GB,% 等;默认值:{}):"
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "输入结束位置(单位:s,GB,% 等;例如:{}):"
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} 包含了已排队的分区,这将会删除这些分区,您确定吗?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"按索引选择要删除的分区"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"按索引选择要挂载的分区及挂载位置"
msgid " * Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr " * 分区挂载点是相对于安装目标的目录内部的,例如引导分区(boot)的挂载点为 /boot。"
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "选择要挂载分区的位置(留空表示移除挂载点):"
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"选择要格式化的分区"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"选择要加密的分区"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"选择要标记为可引导的分区"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"选择要设置文件系统的分区"
msgid "Enter a desired filesystem type for the partition: "
msgstr "为分区选择所需的文件系统类型:"
msgid "Archinstall language"
msgstr "Archinstall 语言"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "擦除所有选定的驱动器并使用最佳的默认分区布局"
msgid "Select what to do with each individual drive (followed by partition usage)"
msgstr "选择对每个单独的驱动器执行的操作(后跟分区使用情况)"
msgid "Select what you wish to do with the selected block devices"
msgstr "选择要对所选的(一个或多个)块设备(block device)执行的操作"
msgid "This is a list of pre-programmed profiles, they might make it easier to install things like desktop environments"
msgstr "这份列表列出了预先编写的配置文件,它们可能会使安装桌面环境等内容变得更加容易"
msgid "Select keyboard layout"
msgstr "选择键盘布局"
msgid "Select one of the regions to download packages from"
msgstr "选择一个要从中下载软件包的地区"
msgid "Select one or more hard drives to use and configure"
msgstr "选择要使用和配置的硬盘驱动器(可多选)"
msgid "For the best compatibility with your AMD hardware, you may want to use either the all open-source or AMD / ATI options."
msgstr "为了与您的 AMD 硬件实现最佳兼容性,您可能需要使用所有开源显卡驱动程序或 AMD / ATI 选项。"
msgid "For the best compatibility with your Intel hardware, you may want to use either the all open-source or Intel options.\n"
msgstr "为了与您的 Intel 硬件实现最佳兼容性,您可能需要使用所有开源显卡驱动程序或 Intel 选项。\n"
msgid "For the best compatibility with your Nvidia hardware, you may want to use the Nvidia proprietary driver.\n"
msgstr "为了与您的 Nvidia 硬件实现最佳兼容性,您可能需要使用 Nvidia 专有驱动程序。\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"选择一个显卡驱动程序,或留空以安装所有开源驱动程序"
msgid "All open-source (default)"
msgstr "所有开源显卡驱动程序(默认)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "选择要使用的内核或留空以使用默认值“{}”"
msgid "Choose which locale language to use"
msgstr "选择要使用的语言环境"
msgid "Choose which locale encoding to use"
msgstr "选择要使用的语言环境编码"
msgid "Select one of the values shown below: "
msgstr "选择以下值之一:"
msgid "Select one or more of the options below: "
msgstr "选择以下选项之一或多个选项:"
msgid "Adding partition...."
msgstr "正在添加分区……"
msgid "You need to enter a valid fs-type in order to continue. See `man parted` for valid fs-type's."
msgstr "您需要输入有效的文件系统类型才能继续。请参阅 `man parted` 以获取有效的文件系统类型。"
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "错误:列出位于 URL “{}” 上的配置文件时出错:"
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "错误:无法将“{}”结果解码为 JSON:"
msgid "Keyboard layout"
msgstr "键盘布局"
msgid "Mirror region"
msgstr "镜像源地区"
msgid "Locale language"
msgstr "语言环境"
msgid "Locale encoding"
msgstr "语言环境编码"
msgid "Drive(s)"
msgstr "驱动器"
msgid "Disk layout"
msgstr "磁盘布局"
msgid "Encryption password"
msgstr "加密密码"
msgid "Swap"
msgstr "交换分区"
msgid "Bootloader"
msgstr "引导加载程序"
msgid "Root password"
msgstr "Root 密码"
msgid "Superuser account"
msgstr "超级用户帐户"
msgid "User account"
msgstr "用户帐户"
msgid "Profile"
msgstr "配置文件"
msgid "Audio"
msgstr "音频"
msgid "Kernels"
msgstr "内核"
msgid "Additional packages"
msgstr "附加软件包"
msgid "Network configuration"
msgstr "网络配置"
msgid "Automatic time sync (NTP)"
msgstr "自动时间同步(NTP)"
msgid "Install ({} config(s) missing)"
msgstr "安装({} 个配置缺失)"
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 ""
"您决定跳过硬盘驱动器选择\n"
"并将使用挂载在 {} 上的任何驱动器设置(实验性)\n"
"警告:Archinstall 将不会检查此设置的适用性\n"
"您是否要继续?"
msgid "Re-using partition instance: {}"
msgstr "正在重新使用分区实例:{}"
msgid "Create a new partition"
msgstr "创建一个新分区"
msgid "Delete a partition"
msgstr "删除一个分区"
msgid "Clear/Delete all partitions"
msgstr "清除/删除所有分区"
msgid "Assign mount-point for a partition"
msgstr "为分区分配挂载点"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "将分区标记/取消标记为格式化(擦除数据)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "将分区标记/取消标记为加密"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "将分区标记/取消标记为可引导(/boot 会自动设置为可引导)"
msgid "Set desired filesystem for a partition"
msgstr "为分区设置所需的文件系统"
msgid "Abort"
msgstr "中止"
msgid "Hostname"
msgstr "主机名"
msgid "Not configured, unavailable unless setup manually"
msgstr "未配置;除非手动设置,否则不可用"
msgid "Timezone"
msgstr "时区"
msgid "Set/Modify the below options"
msgstr "设置/修改以下选项"
msgid "Install"
msgstr "安装"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"按 ESC 跳过\n"
"\n"
msgid "Suggest partition layout"
msgstr "建议分区布局"
msgid "Enter a password: "
msgstr "输入密码:"
msgid "Enter a encryption password for {}"
msgstr "为 {} 输入一个加密密码"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "输入磁盘加密密码(留空则不加密):"
msgid "Create a required super-user with sudo privileges: "
msgstr "创建所需的具有 sudo 权限的超级用户:"
msgid "Enter root password (leave blank to disable root): "
msgstr "输入 root 密码(留空以禁用 root):"
msgid "Password for user \"{}\": "
msgstr "用户“{}”的密码:"
msgid "Verifying that additional packages exist (this might take a few seconds)"
msgstr "正在验证附加软件包是否存在(这可能需要几秒或几十秒)"
msgid "Would you like to use automatic time synchronization (NTP) with the default time servers?\n"
msgstr "您是否希望使用默认时间服务器进行自动时间同步(NTP)?\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 正常工作,可能需要在之后进行硬件时间及其他配置的步骤。\n"
"更多信息,请查阅 Arch wiki"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "输入用户名以创建其他用户(留空以跳过):"
msgid "Use ESC to skip\n"
msgstr "按 ESC 跳过\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for it to execute"
msgstr ""
"\n"
" 从列表中选取一个对象,并选择一个要执行的可选操作"
msgid "Cancel"
msgstr "取消"
msgid "Confirm and exit"
msgstr "确认并退出"
msgid "Add"
msgstr "添加"
msgid "Copy"
msgstr "复制"
msgid "Edit"
msgstr "编辑"
msgid "Delete"
msgstr "删除"
msgid "Select an action for '{}'"
msgstr "为“{}”选择一个操作"
msgid "Copy to new key:"
msgstr "复制到新密钥:"
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "未知的网卡类型:{}。可能的值为 {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"这是您选择的配置:"
msgid "Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman 已经在运行,最多等待 10 分钟或直到它终止。"
msgid "Pre-existing pacman lock never exited. Please clean up any existing pacman sessions before using archinstall."
msgstr "预先存在的 pacman 锁从未退出。请在使用 archinstall 之前清理任何现有的 pacman 会话。"
msgid "Choose which optional additional repositories to enable"
msgstr "选择要启用的可选附加仓库"
msgid "Add a user"
msgstr "添加一个用户"
msgid "Change password"
msgstr "修改密码"
msgid "Promote/Demote user"
msgstr "提升/降级用户"
msgid "Delete User"
msgstr "删除用户"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"定义一个新用户\n"
msgid "User Name : "
msgstr "用户名:"
msgid "Should {} be a superuser (sudoer)?"
msgstr "是否将 {} 设置为超级用户(sudoer)?"
msgid "Define users with sudo privilege: "
msgstr "定义具有 sudo 权限的用户:"
msgid "No network configuration"
msgstr "无网络配置"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "在 btrfs 分区上设置所需的子卷"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"选择要设置子卷的分区"
msgid "Manage btrfs subvolumes for current partition"
msgstr "管理当前分区的 btrfs 子卷"
msgid "No configuration"
msgstr "无配置"
msgid "Save user configuration"
msgstr "保存用户配置"
msgid "Save user credentials"
msgstr "保存用户凭据"
msgid "Save disk layout"
msgstr "保存磁盘布局"
msgid "Save all"
msgstr "全部保存"
msgid "Choose which configuration to save"
msgstr "选择要保存的配置"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "输入要保存配置的目录:"
msgid "Not a valid directory: {}"
msgstr "不是有效的目录:{}"
msgid "The password you are using seems to be weak,"
msgstr "您正在使用的密码似乎很弱,"
msgid "are you sure you want to use it?"
msgstr "您确定要使用它吗?"
msgid "Optional repositories"
msgstr "可选仓库"
msgid "Save configuration"
msgstr "保存配置"
msgid "Missing configurations:\n"
msgstr "缺少配置:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "必须指定 root 密码或至少 1 个超级用户"
msgid "Manage superuser accounts: "
msgstr "管理超级用户账户:"
msgid "Manage ordinary user accounts: "
msgstr "管理普通用户账户:"
msgid " Subvolume :{:16}"
msgstr " 子卷:{:16}"
msgid " mounted at {:16}"
msgstr " 挂载在 {:16}"
msgid " with option {}"
msgstr " 与选项 {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
" 为新子卷填写所需的值 \n"
msgid "Subvolume name "
msgstr "子卷名称 "
msgid "Subvolume mountpoint"
msgstr "子卷挂载点"
msgid "Subvolume options"
msgstr "子卷选项"
msgid "Save"
msgstr "保存"
msgid "Subvolume name :"
msgstr "子卷名称:"
msgid "Select a mount point :"
msgstr "选择一个挂载点:"
msgid "Select the desired subvolume options "
msgstr "选择所需的子卷选项 "
msgid "Define users with sudo privilege, by username: "
msgstr "通过用户名定义具有 sudo 权限的用户:"
msgid "[!] A log file has been created here: {}"
msgstr "[!] 已在此处创建一份日志文件:{}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "您想以默认结构使用 BTRFS 子卷吗?"
msgid "Would you like to use BTRFS compression?"
msgstr "您想使用 BTRFS 压缩吗?"
msgid "Would you like to create a separate partition for /home?"
msgstr "您想为 /home 创建一个单独的分区吗?"
msgid "The selected drives do not have the minimum capacity required for an automatic suggestion\n"
msgstr "所选驱动器不具有自动建议所需的最小容量\n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "/home 分区的最小容量:{}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Arch Linux 分区的最小容量:{}GB"
msgid "Continue"
msgstr "继续"
msgid "yes"
msgstr "是"
msgid "no"
msgstr "否"
msgid "set: {}"
msgstr "设置:{}"
msgid "Manual configuration setting must be a list"
msgstr "手动配置的设置必须是一个列表"
msgid "No iface specified for manual configuration"
msgstr "没有为手动配置指定网卡接口"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "不具备自动 DHCP 的手动网卡配置需要一个 IP 地址"
msgid "Add interface"
msgstr "添加接口"
msgid "Edit interface"
msgstr "编辑接口"
msgid "Delete interface"
msgstr "删除接口"
msgid "Select interface to add"
msgstr "选择要添加的接口"
msgid "Manual configuration"
msgstr "手动配置"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "将分区标记/取消标记为压缩(仅限 btrfs)"
msgid "The password you are using seems to be weak, are you sure you want to use it?"
msgstr "您正在使用的密码似乎很弱,您确定要使用它吗?"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway"
msgstr "提供一系列桌面环境和平铺窗口管理器供选择,例如 gnome、kde、sway"
msgid "Select your desired desktop environment"
msgstr "选择您所需的桌面环境"
msgid "A very basic installation that allows you to customize Arch Linux as you see fit."
msgstr "一个非常基本的安装,允许您根据需要自定义 Arch Linux。"
msgid "Provides a selection of various server packages to install and enable, e.g. httpd, nginx, mariadb"
msgstr "提供一系列的多种服务器软件包以供安装启用,例如 httpd、nginx、mariadb"
msgid "Choose which servers to install, if none then a minimal installation will be done"
msgstr "选择要安装的服务器,若无则将执行最小化安装"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "安装一个最小化系统以及 xorg 和显卡驱动程序。"
msgid "Press Enter to continue."
msgstr "按 Enter 继续。"
msgid "Would you like to chroot into the newly created installation and perform post-installation configuration?"
msgstr "您是否想要 chroot 到新创建的系统内以进行安装后的配置?"
msgid "Are you sure you want to reset this setting?"
msgstr "您确定要重置此设置吗?"
msgid "Select one or more hard drives to use and configure\n"
msgstr "选择要使用和配置的硬盘驱动器(可多选)\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "对现有设置的任何修改都将重置磁盘布局!"
msgid "If you reset the harddrive selection this will also reset the current disk layout. Are you sure?"
msgstr "如果重置硬盘驱动器选择,则当前磁盘布局也将重置。您确定吗?"
msgid "Save and exit"
msgstr "保存并退出"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"包含排队的分区,这将删除这些分区,您确定吗?"
msgid "No audio server"
msgstr "没有音频服务器"
msgid "(default)"
msgstr "(默认)"
msgid "Use ESC to skip"
msgstr "按 ESC 跳过"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr "使用 CTRL+C 可重置当前选项\n"
msgid "Copy to: "
msgstr "复制到:"
msgid "Edit: "
msgstr "编辑:"
msgid "Key: "
msgstr "密钥:"
msgid "Edit {}: "
msgstr "编辑 {}:"
msgid "Add: "
msgstr "添加:"
msgid "Value: "
msgstr "值:"
msgid "You can skip selecting a drive and partitioning and use whatever drive-setup is mounted at /mnt (experimental)"
msgstr "您可以跳过选择驱动器和分区,并使用任何挂载在 /mnt 上的驱动器设置(实验性)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "选择一个磁盘或跳过并使用 /mnt 作为默认值"
msgid "Select which partitions to mark for formatting:"
msgstr "选择要标记为格式化的分区:"
msgid "Use HSM to unlock encrypted drive"
msgstr "使用 HSM 解锁加密驱动器"
msgid "Device"
msgstr "设备"
msgid "Size"
msgstr "大小"
msgid "Free space"
msgstr "空闲空间"
msgid "Bus-type"
msgstr "总线类型"
msgid "Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "必须指定 root 密码或至少 1 个具有 sudo 权限的用户"
msgid "Enter username (leave blank to skip): "
msgstr "输入用户名(留空跳过):"
msgid "The username you entered is invalid. Try again"
msgstr "您输入的用户名无效。请重试"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "是否将“{}”设置为超级用户(sudo)?"
msgid "Select which partitions to encrypt"
msgstr "选择要加密的分区"
msgid "very weak"
msgstr "非常弱"
msgid "weak"
msgstr "弱"
msgid "moderate"
msgstr "一般"
msgid "strong"
msgstr "强"
msgid "Add subvolume"
msgstr "添加子卷"
msgid "Edit subvolume"
msgstr "编辑子卷"
msgid "Delete subvolume"
msgstr "删除子卷"
msgid "Configured {} interfaces"
msgstr "已配置 {} 个接口"
msgid "This option enables the number of parallel downloads that can occur during installation"
msgstr "此选项启用安装期间可以发生的并行下载数"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"输入要启用的并行下载数。\n"
" (输入一个介于 1 到 {} 之间的值)\n"
"提示:"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at a time )"
msgstr " - 最大值:{}(允许 {} 个并行下载,即同时允许 {} 个下载)"
msgid " - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a time )"
msgstr " - 最小值:1(允许 1 个并行下载,同时允许 2 个下载)"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )"
msgstr " - 禁用/默认值:0(禁用并行下载,同时只允许 1 个下载)"
#, python-brace-format
msgid "Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to disable]"
msgstr "输入无效!请重试一个有效输入 [1 到 {max_downloads},或 0 以禁用]"
msgid "Parallel Downloads"
msgstr "并行下载"
msgid "ESC to skip"
msgstr "按 ESC 跳过"
msgid "CTRL+C to reset"
msgstr "按 CTRL+C 重置"
msgid "TAB to select"
msgstr "按 TAB 选择"
msgid "[Default value: 0] > "
msgstr "[默认值:0] > "
msgid "To be able to use this translation, please install a font manually that supports the language."
msgstr "要使用此翻译,请手动安装支持该语言的字体。"
msgid "The font should be stored as {}"
msgstr "字体应存储为 {}"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Archinstall 需要 root 权限才能运行。有关更多信息,请参阅 --help。"
msgid "Select an execution mode"
msgstr "选择执行模式"
msgid "Unable to fetch profile from specified url: {}"
msgstr "无法从指定的 URL 获取配置文件:{}"
msgid "Profiles must have unique name, but profile definitions with duplicate name found: {}"
msgstr "配置文件必须具有唯一的名称,但找到了具有重复名称的配置文件定义:{}"
msgid "Select one or more devices to use and configure"
msgstr "选择要使用并配置的设备(可多选)"
msgid "If you reset the device selection this will also reset the current disk layout. Are you sure?"
msgstr "如果重置设备选择,则当前磁盘布局也将重置。您确定吗?"
msgid "Existing Partitions"
msgstr "现有分区"
msgid "Select a partitioning option"
msgstr "选择分区选项"
msgid "Enter the root directory of the mounted devices: "
msgstr "输入已挂载设备的根目录:"
msgid "Minimum capacity for /home partition: {}GiB\n"
msgstr "/home 分区的最小容量为:{}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GiB"
msgstr "Arch Linux 分区的最小容量为:{}GB"
msgid "This is a list of pre-programmed profiles_bck, they might make it easier to install things like desktop environments"
msgstr "这是预先编写的配置文件列表,它们可能会使安装桌面环境等内容更容易"
msgid "Current profile selection"
msgstr "当前配置文件选择"
msgid "Remove all newly added partitions"
msgstr "删除所有新添加的分区"
msgid "Assign mountpoint"
msgstr "分配挂载点"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "将分区标记/取消标记为格式化(擦除数据)"
msgid "Mark/Unmark as bootable"
msgstr "将分区标记/取消标记为可引导"
msgid "Change filesystem"
msgstr "更改文件系统"
msgid "Mark/Unmark as compressed"
msgstr "标记/取消标记为压缩"
msgid "Set subvolumes"
msgstr "设置子卷"
msgid "Delete partition"
msgstr "删除分区"
msgid "Partition"
msgstr "分区"
msgid "This partition is currently encrypted, to format it a filesystem has to be specified"
msgstr "此分区当前已加密,要格式化它必须指定文件系统"
msgid "Partition mount-points are relative to inside the installation, the boot would be /boot as an example."
msgstr "分区挂载点是相对于安装目标的目录内部的,例如引导分区(boot)的挂载点为 /boot。"
msgid "If mountpoint /boot is set, then the partition will also be marked as bootable."
msgstr "如果设置了挂载点 /boot,则该分区也将被标记为可引导。"
msgid "Mountpoint: "
msgstr "挂载点:"
msgid "Current free sectors on device {}:"
msgstr "设备 {} 上当前可用的扇区:"
msgid "Total sectors: {}"
msgstr "总扇区数:{}"
msgid "Enter the start sector (default: {}): "
msgstr "输入起始扇区(百分比或块号,默认:{}): "
msgid "Enter the end sector of the partition (percentage or block number, default: {}): "
msgstr "输入分区的结束扇区(百分比或块号,默认:{}):"
msgid "This will remove all newly added partitions, continue?"
msgstr "这将删除所有新添加的分区,是否继续?"
msgid "Partition management: {}"
msgstr "分区管理:{}"
msgid "Total length: {}"
msgstr "总长度:{}"
msgid "Encryption type"
msgstr "加密类型"
msgid "Partitions"
msgstr "分区"
msgid "No HSM devices available"
msgstr "没有可用的 HSM 设备"
msgid "Partitions to be encrypted"
msgstr "要加密的分区"
msgid "Select disk encryption option"
msgstr "选择磁盘加密选项"
msgid "Select a FIDO2 device to use for HSM"
msgstr "选择要用于 HSM 的 FIDO2 设备"
msgid "Use a best-effort default partition layout"
msgstr "使用最佳的默认分区布局"
msgid "Manual Partitioning"
msgstr "手动分区"
msgid "Pre-mounted configuration"
msgstr "预挂载配置"
msgid "Unknown"
msgstr "未知"
msgid "Partition encryption"
msgstr "分区加密"
msgid " ! Formatting {} in "
msgstr " ! 正在格式化 {} 为 "
msgid "← Back"
msgstr "← 返回"
msgid "Disk encryption"
msgstr "磁盘加密"
msgid "Configuration"
msgstr "配置"
msgid "Password"
msgstr "密码"
msgid "All settings will be reset, are you sure?"
msgstr "所有设置将被重置,您确定吗?"
msgid "Back"
msgstr "返回"
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr "请选择要为所选配置文件安装的登录管理器:{}"
msgid "Environment type: {}"
msgstr "环境类型:{}"
msgid "The proprietary Nvidia driver is not supported by Sway. It is likely that you will run into issues, are you okay with that?"
msgstr "Sway 不支持 Nvidia 的专有驱动。您可能会遇到问题,您确定要继续吗?"
msgid "Installed packages"
msgstr "已安装的软件包"
msgid "Add profile"
msgstr "添加配置文件"
msgid "Edit profile"
msgstr "编辑配置文件"
msgid "Delete profile"
msgstr "删除配置文件"
msgid "Profile name: "
msgstr "配置文件名称:"
msgid "The profile name you entered is already in use. Try again"
msgstr "您输入的配置文件名称已被使用。请重试"
msgid "Packages to be install with this profile (space separated, leave blank to skip): "
msgstr "要与此配置文件一同安装的软件包(空格分隔,留空跳过):"
msgid "Services to be enabled with this profile (space separated, leave blank to skip): "
msgstr "要与此配置文件一同启用的服务(空格分隔,留空跳过):"
msgid "Should this profile be enabled for installation?"
msgstr "是否启用此配置文件进行安装?"
msgid "Create your own"
msgstr "创建您自己的"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"选择一个显卡驱动程序,或留空以安装所有开源驱动程序"
msgid "Sway needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Sway 需要访问您的 seat(硬件设备的集合,例如键盘、鼠标等)"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"选择一个选项来给 Sway 提供对您硬件的访问权限"
msgid "Graphics driver"
msgstr "显卡驱动程序"
msgid "Greeter"
msgstr "登录管理器"
msgid "Please chose which greeter to install"
msgstr "请选择要安装的登录管理器"
msgid "This is a list of pre-programmed default_profiles"
msgstr "这份列表列出了预编写的默认配置文件"
msgid "Disk configuration"
msgstr "磁盘配置"
msgid "Profiles"
msgstr "配置文件"
msgid "Finding possible directories to save configuration files ..."
msgstr "正在查找可能用于保存配置文件的目录 ..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "选择一个或多个目录保存配置文件"
msgid "Add a custom mirror"
msgstr "添加自定义镜像源"
msgid "Change custom mirror"
msgstr "更改自定义镜像源"
msgid "Delete custom mirror"
msgstr "删除自定义镜像源"
msgid "Enter name (leave blank to skip): "
msgstr "输入用户名(留空跳过):"
msgid "Enter url (leave blank to skip): "
msgstr "输入网址(留空跳过):"
msgid "Select signature check option"
msgstr "选择签名检查选项"
msgid "Select signature option"
msgstr "选择签名选项"
msgid "Custom mirrors"
msgstr "自定义镜像源"
msgid "Defined"
msgstr "已定义"
msgid "Save user configuration (including disk layout)"
msgstr "保存用户配置(包括磁盘布局)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled)\n"
"Save directory: "
msgstr ""
"输入要保存配置的目录(可按 TAB 补全)\n"
"保存目录:"
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"您想将 {} 个配置文件保存在以下位置吗?\n"
"\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "正在将 {} 配置文件保存到 {}"
msgid "Mirrors"
msgstr "镜像源"
msgid "Mirror regions"
msgstr "镜像源地区"
msgid " - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+1} downloads at a time )"
msgstr " - 最大值:{}(允许 {} 个并行下载,每次允许 {max_downloads+1} 个下载)"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "输入无效!请重试一个有效输入 [1 到 {},或 0 以禁用]"
msgid "Locales"
msgstr "区域设置"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)"
msgstr "使用 NetworkManager(在 GNOME 和 KDE 中以图形界面配置互联网所必需)"
msgid "Total: {} / {}"
msgstr "总长度:{} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "所有输入的值都可以后缀一个单位:B、KB、KiB、MB、MiB……"
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "若没有指定单位,则值被作为扇区块号"
msgid "Enter start (default: sector {}): "
msgstr "输入起始扇区位置(默认:扇区 {}):"
msgid "Enter end (default: {}): "
msgstr "输入末尾扇区位置(默认:{}):"
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "无法确定 fido2 设备。libfido2 是否已安装?"
msgid "Path"
msgstr "路径"
msgid "Manufacturer"
msgstr "制造商"
msgid "Product"
msgstr "产品"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "无效的配置:{error}"
msgid "Type"
msgstr "类型"
msgid "This option enables the number of parallel downloads that can occur during package downloads"
msgstr "此选项启用软件包下载期间可以发生的并行下载数"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"输入要启用的并行下载数。\n"
"\n"
"提示:\n"
msgid " - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr "- 最大推荐值:{}(每次同时允许 {} 个并行下载)"
msgid " - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download at a time )\n"
msgstr " - 禁用/默认值:0(禁用并行下载,同时只允许 1 个下载)\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "输入无效!请重试有效输入 [或 0 以禁用]"
msgid "Hyprland needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "Hyprland 需要访问您的 seat(硬件设备的集合,例如键盘、鼠标等)"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"选择一个选项来给 Hyprland 提供对您硬件的访问权限"
msgid "All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "所有输入的值都可以后缀一个单位:%、B、KB、KiB、MB、MiB……"
msgid "Would you like to use unified kernel images?"
msgstr "您想使用统一内核映像吗?"
msgid "Unified kernel images"
msgstr "统一内核映像(UKI)"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "等待时间同步(timedatectl show)完成。"
msgid "Time syncronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "时间同步未完成,请在等待时查阅文档以获知对策: https://archinstall.readthedocs.io/"
msgid "Skipping waiting for automatic time sync (this can cause issues if time is out of sync during installation)"
msgstr "跳过等待自动时间同步(如果安装期间时间不同步,可能会导致问题)"
msgid "Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "正在等待 Arch Linux 密钥环同步(archlinux-keyring-wkd-sync)完成。"
msgid "Selected profiles: "
msgstr "已选配置文件:"
msgid "Time synchronization not completing, while you wait - check the docs for workarounds: https://archinstall.readthedocs.io/"
msgstr "时间同步未完成,请在等待时查阅文档以获知对策: https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "标记/取消标记为 nodatacow"
msgid "Would you like to use compression or disable CoW?"
msgstr "您想使用压缩还是禁用写时复制?"
msgid "Use compression"
msgstr "使用压缩"
msgid "Disable Copy-on-Write"
msgstr "禁用写时复制"
msgid "Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway"
msgstr "提供一个桌面环境和平铺窗口管理器的选集,例如 GNOME、KDE Plasma、Sway"
msgid "Configuration type: {}"
msgstr "配置类型:{}"
msgid "LVM configuration type"
msgstr "LVM 配置类型"
msgid "LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "当前不支持超过 2 个分区的 LVM 磁盘加密"
msgid "Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)"
msgstr "使用 NetworkManager(在 GNOME 和 KDE Plasma 中以图形方式配置互联网所必需)"
msgid "Select a LVM option"
msgstr "选择一个 LVM 选项"
msgid "Partitioning"
msgstr "分区"
msgid "Logical Volume Management (LVM)"
msgstr "逻辑卷管理(LVM)"
msgid "Physical volumes"
msgstr "物理卷"
msgid "Volumes"
msgstr "卷"
msgid "LVM volumes"
msgstr "LVM 卷"
msgid "LVM volumes to be encrypted"
msgstr "要加密的 LVM 卷"
msgid "Select which LVM volumes to encrypt"
msgstr "选择要加密的 LVM 卷"
msgid "Default layout"
msgstr "默认布局"
msgid "No Encryption"
msgstr "不加密"
msgid "LUKS"
msgstr "LUKS"
msgid "LVM on LUKS"
msgstr "LUKS 上的 LVM"
msgid "LUKS on LVM"
msgstr "LVM 上的 LUKS"
msgid "Yes"
msgstr "是"
msgid "No"
msgstr "否"
msgid "Archinstall help"
msgstr "Archinstall 帮助"
msgid " (default)"
msgstr "(默认)"
msgid "Press Ctrl+h for help"
msgstr "按 Ctrl+h 以获取帮助"
msgid "Choose an option to give Sway access to your hardware"
msgstr "选择一个选项来给 Sway 提供对您硬件的访问权限"
msgid "Seat access"
msgstr "Seat 访问"
msgid "Mountpoint"
msgstr "挂载点"
msgid "HSM"
msgstr "HSM"
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "输入磁盘加密密码(留空则不加密):"
msgid "Disk encryption password"
msgstr "磁盘加密密码"
msgid "Partition - New"
msgstr "分区 - 新"
msgid "Filesystem"
msgstr "文件系统"
msgid "Invalid size"
msgstr "无效的大小"
msgid "Start (default: sector {}): "
msgstr "起始位置(默认:扇区 {}):"
msgid "End (default: {}): "
msgstr "末尾位置(默认:{}):"
msgid "Subvolume name"
msgstr "子卷名称"
msgid "Disk configuration type"
msgstr "磁盘配置类型"
msgid "Root mount directory"
msgstr "根挂载目录"
msgid "Select language"
msgstr "选择语言"
msgid "Write additional packages to install (space separated, leave blank to skip)"
msgstr "输入要安装的其他软件包(空格分隔,留空以跳过)"
msgid "Invalid download number"
msgstr "无效的并行下载数"
msgid "Number downloads"
msgstr "并行下载数"
msgid "The username you entered is invalid"
msgstr "您输入的用户名无效"
msgid "Username"
msgstr "用户名"
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "是否将“{}”设置为超级用户(sudo)?\n"
msgid "Interfaces"
msgstr "接口"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "您需要在 IP-config 模式下输入一个有效的 IP"
msgid "Modes"
msgstr "模式"
msgid "IP address"
msgstr "IP 地址"
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "请输入您的网关(路由器)IP 地址(没有请留空)"
msgid "Gateway address"
msgstr "网关地址"
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "请输入您的 DNS 服务器地址,以空格分隔(没有请留空)"
msgid "DNS servers"
msgstr "DNS 服务器"
msgid "Configure interfaces"
msgstr "配置接口"
msgid "Kernel"
msgstr "内核"
msgid "UEFI is not detected and some options are disabled"
msgstr "未检测到 UEFI,某些选项已被禁用"
msgid "Info"
msgstr "信息"
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "Sway 不支持 Nvidia 的专有驱动。"
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "您可能会遇到问题,确定要继续吗?"
msgid "Main profile"
msgstr "主要配置文件"
msgid "Confirm password"
msgstr "确认密码"
msgid "The confirmation password did not match, please try again"
msgstr "确认密码不匹配,请重试"
msgid "Not a valid directory"
msgstr "不是一个有效目录"
msgid "Would you like to continue?"
msgstr "您想继续吗?"
msgid "Directory"
msgstr "目录"
msgid "Enter a directory for the configuration(s) to be saved (tab completion enabled)"
msgstr "输入一个要保存配置的目录(可按 TAB 补全)"
msgid "Do you want to save the configuration file(s) to {}?"
msgstr "您想将配置文件保存到 {} 吗?"
msgid "Enabled"
msgstr "已启用"
msgid "Disabled"
msgstr "已禁用"
msgid "Please submit this issue (and file) to https://github.com/archlinux/archinstall/issues"
msgstr "请将此问题(和文件)提交到 https://github.com/archlinux/archinstall/issues"
msgid "Mirror name"
msgstr "镜像源名称"
msgid "Url"
msgstr "URL"
msgid "Select signature check"
msgstr "选择签名检查"
msgid "Select execution mode"
msgstr "选择执行模式"
msgid "Press ? for help"
msgstr "按 ? 获取帮助"
msgid "Choose an option to give Hyprland access to your hardware"
msgstr "选择一个选项来给 Hyprland 提供对您硬件的访问权限"
msgid "Additional repositories"
msgstr "附加仓库"
msgid "NTP"
msgstr "NTP"
msgid "Swap on zram"
msgstr "zram 上的 swap"
msgid "Name"
msgstr "名称"
msgid "Signature check"
msgstr "签名检查"
msgid "Selected free space segment on device {}:"
msgstr "设备 {} 上已选的可用扇区:"
msgid "Size: {} / {}"
msgstr "总大小:{} / {}"
msgid "Size (default: {}): "
msgstr "大小(默认:{}):"
msgid "HSM device"
msgstr "硬件安全模块设备"
msgid "Some packages could not be found in the repository"
msgstr "某些软件包在仓库中未找到"
msgid "User"
msgstr "用户"
msgid "The specified configuration will be applied"
msgstr "指定的配置将被应用"
msgid "Wipe"
msgstr "擦除"
msgid "Mark/Unmark as XBOOTLDR"
msgstr "标记/取消标记为 XBOOTLDR"
msgid "Loading packages..."
msgstr "加载软件包"
msgid "Select any packages from the below list that should be installed additionally"
msgstr "在下方列表选择应当额外安装的任何软件包"
msgid "Add a custom repository"
msgstr "添加一个自定义仓库"
msgid "Change custom repository"
msgstr "更改自定义仓库"
msgid "Delete custom repository"
msgstr "删除自定义仓库"
msgid "Repository name"
msgstr "仓库名称"
msgid "Add a custom server"
msgstr "添加一个自定义服务器"
msgid "Change custom server"
msgstr "更改自定义服务器"
msgid "Delete custom server"
msgstr "删除自定义服务器"
msgid "Server url"
msgstr "服务器 URL"
msgid "Select regions"
msgstr "选择地区"
msgid "Add custom servers"
msgstr "添加自定义服务器"
msgid "Add custom repository"
msgstr "添加自定义仓库"
msgid "Loading mirror regions..."
msgstr "加载镜像源地区"
msgid "Mirrors and repositories"
msgstr "镜像源与仓库"
msgid "Selected mirror regions"
msgstr "已选的镜像源地区"
msgid "Custom servers"
msgstr "自定义服务器"
msgid "Custom repositories"
msgstr "自定义仓库"
msgid "Only ASCII characters are supported"
msgstr "仅 ASCII 字符受支持"
msgid "Show help"
msgstr "显示帮助"
msgid "Exit help"
msgstr "退出帮助"
msgid "Preview scroll up"
msgstr "预览向上滚动"
msgid "Preview scroll down"
msgstr "预览向下滚动"
msgid "Move up"
msgstr "上移"
msgid "Move down"
msgstr "下移"
msgid "Move right"
msgstr "右移"
msgid "Move left"
msgstr "左移"
msgid "Jump to entry"
msgstr "跳转到条目"
msgid "Skip selection (if available)"
msgstr "跳过选区(若可用)"
msgid "Reset selection (if available)"
msgstr "重置选区(若可用)"
msgid "Select on single select"
msgstr "选择单项"
msgid "Select on multi select"
msgstr "选择多项"
msgid "Reset"
msgstr "重置"
msgid "Skip selection menu"
msgstr "跳过选区菜单"
msgid "Start search mode"
msgstr "开始搜索模式"
msgid "Exit search mode"
msgstr "退出搜索模式"
msgid "labwc needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "labwc 需要访问您的 seat(硬件设备的集合,例如键盘、鼠标等)"
msgid "Choose an option to give labwc access to your hardware"
msgstr "选择一个选项来给 labwc 提供对您硬件的访问权限"
msgid "niri needs access to your seat (collection of hardware devices i.e. keyboard, mouse, etc)"
msgstr "niri 需要访问您的 seat(硬件设备的集合,例如键盘、鼠标等)"
msgid "Choose an option to give niri access to your hardware"
msgstr "选择一个选项来给 niri 提供对您硬件的访问权限"
msgid "Mark/Unmark as ESP"
msgstr "标记/取消标记为 ESP"
msgid "Package group:"
msgstr "软件包组:"
msgid "Exit archinstall"
msgstr "退出 archinstall"
msgid "Reboot system"
msgstr "重启系统"
msgid "chroot into installation for post-installation configurations"
msgstr "为了安装后的配置,chroot 进安装好的系统内"
msgid "Installation completed"
msgstr "安装已完成"
msgid "What would you like to do next?"
msgstr "您接下来想做什么?"
msgid "Select which mode to configure for \"{}\""
msgstr "选择要为“{}”配置的模式"
#, fuzzy
msgid "Incorrect credentials file decryption password"
msgstr "磁盘加密密码"
#, fuzzy
msgid "Incorrect password"
msgstr "Root 密码"
#, fuzzy
msgid "Credentials file decryption password"
msgstr "磁盘加密密码"
#, fuzzy
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr "您想将配置文件保存到 {} 吗?"
#, fuzzy
msgid "Credentials file encryption password"
msgstr "磁盘加密密码"
#, fuzzy
msgid "Repositories: {}"
msgstr "仓库名称"
================================================
FILE: archinstall/locales/zh-TW/LC_MESSAGES/base.po
================================================
# SPDX-FileCopyrightText: 2025 neko0xff
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2025-08-10 11:45+0800\n"
"Last-Translator: neko0xff \n"
"Language-Team: Chinese <>\n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Lokalize 25.04.3\n"
"Plural-Forms: nplurals=1; plural=0;\n"
msgid "[!] A log file has been created here: {} {}"
msgstr "[!] 記錄檔已在此處建立: {} {}"
msgid ""
" Please submit this issue (and file) to https://github.com/archlinux/archin"
"stall/issues"
msgstr " 請將此問題(以及相關檔案)提交到 https://github.com/archlinux/archinstall/issues"
msgid "Do you really want to abort?"
msgstr "您真的要中止嗎?"
msgid "And one more time for verification: "
msgstr "請再輸入一次,得以進行驗證: "
msgid "Would you like to use swap on zram?"
msgstr "您想在 zram 上使用置換磁碟分割區(swap)嗎?"
msgid "Desired hostname for the installation: "
msgstr "請輸入安裝後預期使用的主機名稱 (hostname):"
msgid "Username for required superuser with sudo privileges: "
msgstr "請輸入需要超級使用者的使用者名稱 (sudo 權限) : "
msgid "Any additional users to install (leave blank for no users): "
msgstr "要新增的其他使用者 (留空表示不新建其他使用者):"
msgid "Should this user be a superuser (sudoer)?"
msgstr "這個使用者應該成為超級使用者(sudoer)嗎?"
msgid "Select a timezone"
msgstr "選擇時區"
msgid "Would you like to use GRUB as a bootloader instead of systemd-boot?"
msgstr "您希望使用 GRUB 作為開機引導程式,而不是 systemd-boot 嗎?"
msgid "Choose a bootloader"
msgstr "選擇開機引導程式"
msgid "Choose an audio server"
msgstr "請選擇音效伺服器"
msgid ""
"Only packages such as base, base-devel, linux, linux-firmware, efibootmgr and "
"optional profile packages are installed."
msgstr ""
"僅安裝基本套件,如 base、base-devel、linux、linux-firmware、efibootmgr 和選擇性的軟體設定套件包。"
msgid ""
"If you desire a web browser, such as firefox or chromium, you may specify it i"
"n the following prompt."
msgstr "如果您需要網頁瀏覽器,例如 firefox 或 chromium,你可以在下面的提示字元中進行指定。"
msgid ""
"Write additional packages to install (space separated, leave blank to skip): "
msgstr "請輸入您要安裝的其它套件包 (請以空格進行分隔,若留空則直接跳過): "
msgid "Copy ISO network configuration to installation"
msgstr "將 ISO映像檔中的網路組態設置複製到安裝環境中"
msgid ""
"Use NetworkManager (necessary for configuring internet graphically in GNOME an"
"d KDE)"
msgstr "使用 NetworkManager(在 GNOME 和 KDE 中以圖形化方式設定網際網路所需的功能)"
msgid "Select one network interface to configure"
msgstr "請選擇要設定的網路介面"
msgid ""
"Select which mode to configure for \"{}\" or skip to use default mode \"{}\""
msgstr "請選擇要為“{}”設定的模式或直接使用預設模式“{}”"
msgid "Enter the IP and subnet for {} (example: 192.168.0.5/24): "
msgstr "請輸入 {} 的 IP 和子網路(例如 : 192.168.0.5/24): "
msgid "Enter your gateway (router) IP address or leave blank for none: "
msgstr "請輸入您閘道器(路由器)的 IP 地址或者留空直接跳過: "
msgid "Enter your DNS servers (space separated, blank for none): "
msgstr "請輸入您的 DNS 伺服器 (請以空格進行分隔,若留空則直接跳過): "
msgid "Select which filesystem your main partition should use"
msgstr "請選擇您的主要磁碟分割區應該使用哪種檔案系統。"
msgid "Current partition layout"
msgstr "目前的磁碟分割區配置"
msgid ""
"Select what to do with\n"
"{}"
msgstr ""
"請選擇要執行的操作\n"
"{}"
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、% 等等;預設值: {} ): "
msgid "Enter the end location (in parted units: s, GB, %, etc. ; ex: {}): "
msgstr "請輸入結束位置 (以 parted 單位表示: s、GB、% 等等;預設值: {} ): "
msgid "{} contains queued partitions, this will remove those, are you sure?"
msgstr "{} 包含佇列中的磁碟分割區,這將會移除這些磁碟分割區,您確定嗎?"
msgid ""
"{}\n"
"\n"
"Select by index which partitions to delete"
msgstr ""
"{}\n"
"\n"
"請根據索引選擇需要刪除的磁碟分割區"
msgid ""
"{}\n"
"\n"
"Select by index which partition to mount where"
msgstr ""
"{}\n"
"\n"
"請依據索引選擇需要掛載的磁碟分割區以及掛載點"
msgid ""
" * Partition mount-points are relative to inside the installation, the boot wo"
"uld be /boot as an example."
msgstr " * 磁碟分割區的掛載點是相對於安裝內部的,例如 boot 應該為 /boot。"
msgid "Select where to mount partition (leave blank to remove mountpoint): "
msgstr "請選擇掛載磁碟分割區的位置 (若留空,則直接移除掛載點): "
msgid ""
"{}\n"
"\n"
"Select which partition to mask for formatting"
msgstr ""
"{}\n"
"\n"
"請選擇要進行格式化的磁碟分割區"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as encrypted"
msgstr ""
"{}\n"
"\n"
"請選擇要進行加密的磁碟分割區"
msgid ""
"{}\n"
"\n"
"Select which partition to mark as bootable"
msgstr ""
"{}\n"
"\n"
"請選擇需要標記為可做開機引導的磁碟分割區"
msgid ""
"{}\n"
"\n"
"Select which partition to set a filesystem on"
msgstr ""
"{}\n"
"\n"
"請選擇要在哪一個磁碟分割區上,進行設定檔案系統"
msgid "Enter a desired filesystem type for the partition: "
msgstr "為磁碟分割區輸入所需的檔案系統類型: "
msgid "Archinstall language"
msgstr "Archinstall 語言"
msgid "Wipe all selected drives and use a best-effort default partition layout"
msgstr "移除所有選定的硬碟並且使用最佳的預設分割佈局"
msgid ""
"Select what to do with each individual drive (followed by partition usage)"
msgstr "依序選擇硬碟(並設定分割佈局)"
msgid "Select what you wish to do with the selected block devices"
msgstr "選擇您希望對所選區塊裝置執行的操作"
msgid ""
"This is a list of pre-programmed profiles, they might make it easier to instal"
"l things like desktop environments"
msgstr "以下是預編程設置檔的列表,它們可以讓您更容易安裝桌面環境等東西"
msgid "Select keyboard layout"
msgstr "選擇鍵盤配置"
msgid "Select one of the regions to download packages from"
msgstr "請選擇一個地區進行下載軟體套件包"
msgid "Select one or more hard drives to use and configure"
msgstr "選擇要使用和設定的硬碟(可多選)"
msgid ""
"For the best compatibility with your AMD hardware, you may want to use either "
"the all open-source or AMD / ATI options."
msgstr "為了與您的 AMD 設備實現最佳兼容性,您可能需要使用通用開源的驅動程式或選擇 AMD / ATI 選項。"
msgid ""
"For the best compatibility with your Intel hardware, you may want to use eithe"
"r the all open-source or Intel options.\n"
msgstr "為了與您的 Intel 設備實現最佳兼容性,您可能需要使用通用開源的驅動程式或選擇 Intel 選項。\n"
msgid ""
"For the best compatibility with your Nvidia hardware, you may want to use the "
"Nvidia proprietary driver.\n"
msgstr "為了與您的 Nvidia 設備實現最佳兼容性,您可能需要使用 Nvidia 官方的驅動程式。\n"
msgid ""
"\n"
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"請選擇需要安裝的顯示卡驅動程式或留空以直接安裝通用開源的驅動程式"
msgid "All open-source (default)"
msgstr "全部使用通用開源的驅動程式(預設)"
msgid "Choose which kernels to use or leave blank for default \"{}\""
msgstr "請選擇要使用的内核,或者留空直接使用預設值 “{}”"
msgid "Choose which locale language to use"
msgstr "選擇要使用的區域語言"
msgid "Choose which locale encoding to use"
msgstr "選擇要使用的區域編碼"
msgid "Select one of the values shown below: "
msgstr "選擇如下所示的值之一: "
msgid "Select one or more of the options below: "
msgstr "請選擇以下一個或多個選項: "
msgid "Adding partition...."
msgstr "新增磁碟分割區...."
msgid ""
"You need to enter a valid fs-type in order to continue. See `man parted` for v"
"alid fs-type's."
msgstr "您需要輸入有效的檔案系統類型才能繼續。有關有效的檔案系統類型,請參閱 `man parted`。"
msgid "Error: Listing profiles on URL \"{}\" resulted in:"
msgstr "錯誤:在 URL \"{}\" 上列出設定檔時出錯: "
msgid "Error: Could not decode \"{}\" result as JSON:"
msgstr "錯誤:無法將 \"{}\" 結果解碼為 JSON: "
msgid "Keyboard layout"
msgstr "鍵盤配置"
msgid "Mirror region"
msgstr "鏡像伺服器位置"
msgid "Locale language"
msgstr "區域語言"
msgid "Locale encoding"
msgstr "區域編碼"
msgid "Drive(s)"
msgstr "硬碟"
msgid "Disk layout"
msgstr "磁盤佈局"
msgid "Encryption password"
msgstr "加密密碼"
msgid "Swap"
msgstr "置換空間"
msgid "Bootloader"
msgstr "開機引導程式"
msgid "Root password"
msgstr "Root 密碼"
msgid "Superuser account"
msgstr "超級使用者帳戶"
msgid "User account"
msgstr "使用者帳戶"
msgid "Profile"
msgstr "設定檔"
msgid "Audio"
msgstr "音效"
msgid "Kernels"
msgstr "内核"
msgid "Additional packages"
msgstr "額外套件包"
msgid "Network configuration"
msgstr "網路組態設置"
msgid "Automatic time sync (NTP)"
msgstr "自動同步時間 (NTP)"
msgid "Install ({} config(s) missing)"
msgstr "安裝(缺少 {} 個配置)"
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 ""
"您決定跳過磁碟機選擇\n"
"並將使用掛載在 {} (實驗性) 上任一的硬碟設置\n"
"警告:Archinstall 不會檢查此設置的適用性\n"
"您想繼續嗎?"
msgid "Re-using partition instance: {}"
msgstr "重複使用磁碟分割區實例: {}"
msgid "Create a new partition"
msgstr "建立新的磁碟分割區"
msgid "Delete a partition"
msgstr "刪除一個磁碟分割區"
msgid "Clear/Delete all partitions"
msgstr "清除/刪除所有磁碟分割區"
msgid "Assign mount-point for a partition"
msgstr "為磁碟分割區分配掛載點"
msgid "Mark/Unmark a partition to be formatted (wipes data)"
msgstr "標記/取消標記要格式化的磁碟分割區 (清除資料)"
msgid "Mark/Unmark a partition as encrypted"
msgstr "將磁碟分割區標記/取消標記為加密"
msgid "Mark/Unmark a partition as bootable (automatic for /boot)"
msgstr "將磁碟分割區標記/取消標記為可開機引導(自動為 /boot)"
msgid "Set desired filesystem for a partition"
msgstr "為磁碟分割區設置所需的檔案系統"
msgid "Abort"
msgstr "中止"
msgid "Hostname"
msgstr "主機名稱"
msgid "Not configured, unavailable unless setup manually"
msgstr "未進行組態設置,除非手動設置,否則無法使用"
msgid "Timezone"
msgstr "時區"
msgid "Set/Modify the below options"
msgstr "請設置/修改以下選項"
msgid "Install"
msgstr "安裝"
msgid ""
"Use ESC to skip\n"
"\n"
msgstr ""
"按下 ESC 鍵,直接跳過\n"
"\n"
msgid "Suggest partition layout"
msgstr "建議磁碟分割區配置"
msgid "Enter a password: "
msgstr "輸入密碼: "
msgid "Enter a encryption password for {}"
msgstr "輸入 {} 的加密密碼"
msgid "Enter disk encryption password (leave blank for no encryption): "
msgstr "輸入磁碟機加密密碼 ( 留空表示不加密 ): "
msgid "Create a required super-user with sudo privileges: "
msgstr "建立具有 sudo 權限的超級使用者: "
msgid "Enter root password (leave blank to disable root): "
msgstr "請輸入 root 密碼 (若留空,則直接禁用 root帳號) : "
msgid "Password for user \"{}\": "
msgstr "使用者 “{}” 的密碼: "
msgid ""
"Verifying that additional packages exist (this might take a few seconds)"
msgstr "驗證其他套件是否存在 (這可能需要幾秒鐘)"
msgid ""
"Would you like to use automatic time synchronization (NTP) with the default ti"
"me servers?\n"
msgstr "是否要對預設時間伺服器使用自動時間同步 (NTP) ?\n"
msgid ""
"Hardware time and other post-configuration steps might be required in order fo"
"r NTP to work.\n"
"For more information, please check the Arch wiki"
msgstr ""
"為了使 NTP 正常運作,可能需要調整硬體時間和其他後續設定步驟。\n"
"若想了解更多相關資訊,請到 Arch wiki 進行查看"
msgid "Enter a username to create an additional user (leave blank to skip): "
msgstr "請輸入使用者名稱,得以建立其他使用者 (若留空,則直接跳過): "
msgid "Use ESC to skip\n"
msgstr "按下 ESC 鍵,得以跳過\n"
msgid ""
"\n"
" Choose an object from the list, and select one of the available actions for i"
"t to execute"
msgstr ""
"\n"
"請從列表中選擇一個對象,並選擇需要執行的操作"
msgid "Cancel"
msgstr "取消"
msgid "Confirm and exit"
msgstr "確認並退出"
msgid "Add"
msgstr "新增"
msgid "Copy"
msgstr "複製"
msgid "Edit"
msgstr "編輯"
msgid "Delete"
msgstr "刪除"
msgid "Select an action for '{}'"
msgstr "請為 “{}” ,而選擇一個操作"
msgid "Copy to new key:"
msgstr "複製到新密鑰: "
msgid "Unknown nic type: {}. Possible values are {}"
msgstr "未知網卡類型: {}。 可能的值為 {}"
msgid ""
"\n"
"This is your chosen configuration:"
msgstr ""
"\n"
"這是您所選擇的組態設置: "
msgid ""
"Pacman is already running, waiting maximum 10 minutes for it to terminate."
msgstr "Pacman 已在執行中,最多等待 10 分鐘即可終止。"
msgid ""
"Pre-existing pacman lock never exited. Please clean up any existing pacman ses"
"sions before using archinstall."
msgstr "先前存在的 pacman 鎖還尚未退出。請在使用 archinstall 之前,關閉且清理所有的 pacman 工作階段。"
msgid "Choose which optional additional repositories to enable"
msgstr "請選擇要啟用的選用附加套件庫"
msgid "Add a user"
msgstr "新增使用者"
msgid "Change password"
msgstr "修改密碼"
msgid "Promote/Demote user"
msgstr "升級/降級使用者"
msgid "Delete User"
msgstr "刪除使用者"
msgid ""
"\n"
"Define a new user\n"
msgstr ""
"\n"
"定義一個新使用者\n"
msgid "User Name : "
msgstr "使用者名稱: "
msgid "Should {} be a superuser (sudoer)?"
msgstr "是否將 {} 設置為超級使用者 (sudoer) ?"
msgid "Define users with sudo privilege: "
msgstr "定義具有 sudo 權限的使用者 : "
msgid "No network configuration"
msgstr "無網路組態配置"
msgid "Set desired subvolumes on a btrfs partition"
msgstr "在 btrfs 磁碟分割區上設置所需的子分區(卷)"
msgid ""
"{}\n"
"\n"
"Select which partition to set subvolumes on"
msgstr ""
"{}\n"
"\n"
"選擇要在哪個磁碟分割區上設置子分區(卷)"
msgid "Manage btrfs subvolumes for current partition"
msgstr "管理目前磁碟分割區的 btrfs 子分區(卷)"
msgid "No configuration"
msgstr "無組態配置"
msgid "Save user configuration"
msgstr "保存使用者組態配置"
msgid "Save user credentials"
msgstr "保存使用者憑證"
msgid "Save disk layout"
msgstr "保存硬碟配置"
msgid "Save all"
msgstr "全部存檔"
msgid "Choose which configuration to save"
msgstr "選擇要保存的組態配置"
msgid "Enter a directory for the configuration(s) to be saved: "
msgstr "輸入要保存組態配置的目錄:"
msgid "Not a valid directory: {}"
msgstr "不是有效的目錄: {}"
msgid "The password you are using seems to be weak,"
msgstr "您所使用的密碼,安全性似乎很弱,"
msgid "are you sure you want to use it?"
msgstr "您確定要使用它嗎 ?"
msgid "Optional repositories"
msgstr "可選擇的套件庫"
msgid "Save configuration"
msgstr "保存組態配置"
msgid "Missing configurations:\n"
msgstr "缺少組態配置:\n"
msgid "Either root-password or at least 1 superuser must be specified"
msgstr "必須指定 root 密碼或至少 1 個超級使用者"
msgid "Manage superuser accounts: "
msgstr "管理超級使用者帳號: "
msgid "Manage ordinary user accounts: "
msgstr "管理普通使用者帳號: "
msgid " Subvolume :{:16}"
msgstr " 子分區(卷) :{:16}"
msgid " mounted at {:16}"
msgstr " 掛載在 {:16}"
msgid " with option {}"
msgstr " 與選項 {}"
msgid ""
"\n"
" Fill the desired values for a new subvolume \n"
msgstr ""
"\n"
" 填寫新子分區(卷)所需的值\n"
msgid "Subvolume name "
msgstr "子分區(卷)名"
msgid "Subvolume mountpoint"
msgstr "子分區(卷)掛載點"
msgid "Subvolume options"
msgstr "子分區(卷)選項"
msgid "Save"
msgstr "存檔"
msgid "Subvolume name :"
msgstr "子分區(卷)名:"
msgid "Select a mount point :"
msgstr "選擇掛載點: "
msgid "Select the desired subvolume options "
msgstr "選擇所需的子分區(卷)選項"
msgid "Define users with sudo privilege, by username: "
msgstr "根據使用者名稱定義具有 sudo 權限的使用者:"
msgid "[!] A log file has been created here: {}"
msgstr "[!] 記錄檔已在此處建立: {}"
msgid "Would you like to use BTRFS subvolumes with a default structure?"
msgstr "您想使用具有預設結構的 BTRFS 子分區(卷)嗎? "
msgid "Would you like to use BTRFS compression?"
msgstr "您想使用 BTRFS 壓縮嗎 ? "
msgid "Would you like to create a separate partition for /home?"
msgstr "您想為 /home 建立一個單獨的磁碟分割區嗎 ?"
msgid ""
"The selected drives do not have the minimum capacity required for an automatic"
" suggestion\n"
msgstr "所選硬碟沒有自動建議所需的最小容量 \n"
msgid "Minimum capacity for /home partition: {}GB\n"
msgstr "/home 磁碟分割區的最小容量為:{}GB\n"
msgid "Minimum capacity for Arch Linux partition: {}GB"
msgstr "Arch Linux 磁碟分割區的最小容量為:{}GB"
msgid "Continue"
msgstr "繼續"
msgid "yes"
msgstr "是"
msgid "no"
msgstr "否"
msgid "set: {}"
msgstr "設置: {}"
msgid "Manual configuration setting must be a list"
msgstr "手動配置設置必須為一個列表"
msgid "No iface specified for manual configuration"
msgstr "沒有為手動配置指定 iface"
msgid "Manual nic configuration with no auto DHCP requires an IP address"
msgstr "沒有自動 DHCP 的手動 nic 配置需要 IP 地址"
msgid "Add interface"
msgstr "新增界面"
msgid "Edit interface"
msgstr "編輯界面"
msgid "Delete interface"
msgstr "刪除界面"
msgid "Select interface to add"
msgstr "請選擇需要新增的界面"
msgid "Manual configuration"
msgstr "手動配置"
msgid "Mark/Unmark a partition as compressed (btrfs only)"
msgstr "將磁碟分割區標記/取消標記為壓縮(僅限 btrfs)"
msgid ""
"The password you are using seems to be weak, are you sure you want to use it?"
msgstr "您使用的密碼似乎很弱,您確定要使用嗎? "
msgid ""
"Provides a selection of desktop environments and tiling window managers, e.g. "
"gnome, kde, sway"
msgstr "提供一系列桌面環境和平鋪視窗管理器,例如 gnome, kde, sway"
msgid "Select your desired desktop environment"
msgstr "選擇您欲安裝的桌面環境"
msgid ""
"A very basic installation that allows you to customize Arch Linux as you see f"
"it."
msgstr "一個非常基本的安裝,同時允許根據您的需求而自行客制化 Arch Linux。"
msgid ""
"Provides a selection of various server packages to install and enable, e.g. ht"
"tpd, nginx, mariadb"
msgstr "提供一系列可供安裝和啟用的伺服器服務套件,例如 httpd、nginx、mariadb"
msgid ""
"Choose which servers to install, if none then a minimal installation will be d"
"one"
msgstr "請選擇要安裝的伺服器服務,如果你未進行選擇,則將進行最小化安裝"
msgid "Installs a minimal system as well as xorg and graphics drivers."
msgstr "安裝最小化系統以及 xorg 和顯示卡驅動程式。"
msgid "Press Enter to continue."
msgstr "請按下 Enter 鍵,以繼續。"
msgid ""
"Would you like to chroot into the newly created installation and perform post-"
"installation configuration?"
msgstr "您是否想要讓 chroot 進入新建立的安裝,並執行設定安裝後的組態配置嗎 ?"
msgid "Are you sure you want to reset this setting?"
msgstr "您確定要重置此設置嗎? "
msgid "Select one or more hard drives to use and configure\n"
msgstr "選擇一個或多個硬碟来使用和配置\n"
msgid "Any modifications to the existing setting will reset the disk layout!"
msgstr "對現有設置的任何修改都將重置硬碟配置!"
msgid ""
"If you reset the harddrive selection this will also reset the current disk lay"
"out. Are you sure?"
msgstr "如果您重設硬碟選擇,這也會重設目前的磁碟配置。您確定嗎?"
msgid "Save and exit"
msgstr "存檔並退出"
msgid ""
"{}\n"
"contains queued partitions, this will remove those, are you sure?"
msgstr ""
"{}\n"
"包含佇列的磁碟分割區,這將刪除這些磁碟分割區,您確定嗎 ?"
msgid "No audio server"
msgstr "無音效伺服器"
msgid "(default)"
msgstr "(預設)"
msgid "Use ESC to skip"
msgstr "按下 ESC 鍵,則直接跳過"
msgid ""
"Use CTRL+C to reset current selection\n"
"\n"
msgstr "按下 CTRL+C 組合鍵,則可重置目前選項\n"
msgid "Copy to: "
msgstr "複製到: "
msgid "Edit: "
msgstr "編輯: "
msgid "Key: "
msgstr "密鑰: "
msgid "Edit {}: "
msgstr "編輯 {}: "
msgid "Add: "
msgstr "新增: "
msgid "Value: "
msgstr "值: "
msgid ""
"You can skip selecting a drive and partitioning and use whatever drive-setup i"
"s mounted at /mnt (experimental)"
msgstr "您可以跳過選擇硬碟和磁碟分割區,並使用任一掛載在 /mnt 的硬碟設置(實驗性)"
msgid "Select one of the disks or skip and use /mnt as default"
msgstr "選取其中一個磁碟或跳過,並使用 /mnt 作為預設值"
msgid "Select which partitions to mark for formatting:"
msgstr "選擇要標記為格式化的磁碟分割區: "
msgid "Use HSM to unlock encrypted drive"
msgstr "使用 HSM 解鎖加密硬碟"
msgid "Device"
msgstr "裝置"
msgid "Size"
msgstr "大小"
msgid "Free space"
msgstr "可用空間"
msgid "Bus-type"
msgstr "匯流排類型"
msgid ""
"Either root-password or at least 1 user with sudo privileges must be specified"
msgstr "必須指定 root 密碼,或至少 1 個具有 sudo 權限的使用者"
msgid "Enter username (leave blank to skip): "
msgstr "請輸入使用者名稱 (若留空,則直接跳過) : "
msgid "The username you entered is invalid. Try again"
msgstr "您輸入的使用者名稱無效。請重試"
msgid "Should \"{}\" be a superuser (sudo)?"
msgstr "是否將 “{}” 設置為超級使用者 (sudo)?"
msgid "Select which partitions to encrypt"
msgstr "選擇要加密的磁碟分割區: "
msgid "very weak"
msgstr "非常弱"
msgid "weak"
msgstr "弱"
msgid "moderate"
msgstr "一般"
msgid "strong"
msgstr "強"
msgid "Add subvolume"
msgstr "新增子分區(卷)"
msgid "Edit subvolume"
msgstr "編輯子分區(卷)"
msgid "Delete subvolume"
msgstr "刪除子分區(卷)"
msgid "Configured {} interfaces"
msgstr "已經進行組態配置的 {} 界面"
msgid ""
"This option enables the number of parallel downloads that can occur during ins"
"tallation"
msgstr "此選項可啟用安裝期間可能發生的平行下載次數"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
" (Enter a value between 1 to {})\n"
"Note:"
msgstr ""
"輸入要啟用的平行下載數。\n"
" (輸入一個 1 到 {} 之間的值) \n"
"請注意: "
msgid ""
" - Maximum value : {} ( Allows {} parallel downloads, allows {} downloads at"
" a time )"
msgstr " - 最小值: 1 (允許 1 個平行下載,同時允許 2 個下載)"
msgid ""
" - Minimum value : 1 ( Allows 1 parallel download, allows 2 downloads at a t"
"ime )"
msgstr " - 最小值: 1 (允許 1 個平行下載,同時允許 2 個下載)"
msgid ""
" - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download"
" at a time )"
msgstr " - 停用/預設 : 0 (預設平行下載,同時只允許 1 個下載)"
#, python-brace-format
msgid ""
"Invalid input! Try again with a valid input [1 to {max_downloads}, or 0 to dis"
"able]"
msgstr "輸入無效 ! 請嘗試使用有效輸入重試 [1 到 {max_downloads},或 0 到停用]"
msgid "Parallel Downloads"
msgstr "並行下載"
msgid "ESC to skip"
msgstr "按下 ESC 鍵,則直接跳過"
msgid "CTRL+C to reset"
msgstr "按下 CTRL+C 組合鍵,直接進行重置"
msgid "TAB to select"
msgstr "按下 TAB 鍵,進行選擇"
msgid "[Default value: 0] > "
msgstr "[預設值: 0] > "
msgid ""
"To be able to use this translation, please install a font manually that suppor"
"ts the language."
msgstr "為了能夠使用此翻譯,請手動安裝支持該語言的字體。"
msgid "The font should be stored as {}"
msgstr "字體應儲存為 {}"
msgid "Archinstall requires root privileges to run. See --help for more."
msgstr "Archinstall 需要 root 權限才能運行。若想了解更多相關資訊,請參閱 --help 指令選項。"
msgid "Select an execution mode"
msgstr "選擇執行模式"
msgid "Unable to fetch profile from specified url: {}"
msgstr "無法從指定的 URL ,直接獲取設定檔: {}"
msgid ""
"Profiles must have unique name, but profile definitions with duplicate name fo"
"und: {}"
msgstr "設定檔必須具有唯一的名稱,但找到具有重新名稱的設定檔定義: {}"
msgid "Select one or more devices to use and configure"
msgstr "選擇一個或多個硬碟来使用和配置"
msgid ""
"If you reset the device selection this will also reset the current disk layout"
". Are you sure?"
msgstr "如果您重設裝置選擇,這也會重設目前的磁碟配置。您確定嗎?"
msgid "Existing Partitions"
msgstr "現有的磁碟分割區"
msgid "Select a partitioning option"
msgstr "選擇磁碟分割選項"
msgid "Enter the root directory of the mounted devices: "
msgstr "請輸入已掛載裝置的根目錄:"
msgid "Minimum capacity for /home partition: {}GiB\n"
msgstr "/home 磁碟分割區的最小容量為 : {} GiB\n"
msgid "Minimum capacity for Arch Linux partition: {}GiB"
msgstr "Arch Linux 磁碟分割區的最小容量為 : {} GiB"
msgid ""
"This is a list of pre-programmed profiles_bck, they might make it easier to in"
"stall things like desktop environments"
msgstr "這是預先編程的 profiles_bck 清單,它們可能會讓您更容易安裝桌面環境等東西"
msgid "Current profile selection"
msgstr "目前設定檔的選擇"
msgid "Remove all newly added partitions"
msgstr "建立新磁碟分割區"
msgid "Assign mountpoint"
msgstr "分配掛載點"
msgid "Mark/Unmark to be formatted (wipes data)"
msgstr "標記/取消標記要格式化的磁碟分割區(清除資料)"
msgid "Mark/Unmark as bootable"
msgstr "標記/取消標記磁碟分割區為可開機引導"
msgid "Change filesystem"
msgstr "更改檔案系統"
msgid "Mark/Unmark as compressed"
msgstr "將磁碟分割區標記/取消標記為壓縮"
msgid "Set subvolumes"
msgstr "刪除子分區(卷)"
msgid "Delete partition"
msgstr "刪除一個磁碟分割區"
msgid "Partition"
msgstr "磁碟分割區"
msgid ""
"This partition is currently encrypted, to format it a filesystem has to be spe"
"cified"
msgstr "此磁碟分割區目前已被加密,若要格式化它,必須指定檔案系統"
msgid ""
"Partition mount-points are relative to inside the installation, the boot would"
" be /boot as an example."
msgstr " * 磁碟分割區掛載點是相對於安裝内部的,例如 boot 應該為 /boot。"
msgid ""
"If mountpoint /boot is set, then the partition will also be marked as bootable"
"."
msgstr "如果設置了掛載點/boot,則該分區也將被標記為可開機引導。"
msgid "Mountpoint: "
msgstr "掛載點 : "
msgid "Current free sectors on device {}:"
msgstr "目前 {} 設備上的可用區塊 : "
msgid "Total sectors: {}"
msgstr "總區塊數 : {}"
msgid "Enter the start sector (default: {}): "
msgstr "輸入起始區塊 (預設 : {}) : "
msgid ""
"Enter the end sector of the partition (percentage or block number, default: {}"
"): "
msgstr "輸入磁碟分割區的結束區塊 (以百分比或區塊編號表示,預設 : {} ): "
msgid "This will remove all newly added partitions, continue?"
msgstr "這將刪除所有新增的磁碟分割區,是否繼續?"
msgid "Partition management: {}"
msgstr "磁碟分割區管理 : {}"
msgid "Total length: {}"
msgstr "總長度 : {}"
msgid "Encryption type"
msgstr "加密類型"
msgid "Partitions"
msgstr "磁碟分割區"
msgid "No HSM devices available"
msgstr "沒有可用的 HSM 設備"
msgid "Partitions to be encrypted"
msgstr "需要加密的磁碟分割區 : "
msgid "Select disk encryption option"
msgstr "選擇磁碟加密選項"
msgid "Select a FIDO2 device to use for HSM"
msgstr "選擇要用於 HSM 的 FIDO2 設備"
msgid "Use a best-effort default partition layout"
msgstr "使用最佳的預設磁碟分割配置"
msgid "Manual Partitioning"
msgstr "手動分割"
msgid "Pre-mounted configuration"
msgstr "預先掛載組態配置"
msgid "Unknown"
msgstr "未知"
msgid "Partition encryption"
msgstr "磁碟分割區加密"
msgid " ! Formatting {} in "
msgstr " ! 正在格式化 {} 為 "
msgid "← Back"
msgstr "← 返回"
msgid "Disk encryption"
msgstr "磁碟加密"
msgid "Configuration"
msgstr "組態配置"
msgid "Password"
msgstr "密碼"
msgid "All settings will be reset, are you sure?"
msgstr "所有設置將被重新設置,你確定嗎 ? "
msgid "Back"
msgstr "返回"
msgid "Please chose which greeter to install for the chosen profiles: {}"
msgstr "請選擇依據設定檔安裝的登錄管理器 : {}"
msgid "Environment type: {}"
msgstr "系統環境類型: {}"
msgid ""
"The proprietary Nvidia driver is not supported by Sway. It is likely that you "
"will run into issues, are you okay with that?"
msgstr "Sway 不支持 Nvidia 的官方驅動。您可能會遇到一些問題,您確定要繼續嗎 ?"
msgid "Installed packages"
msgstr "已安裝的套件包"
msgid "Add profile"
msgstr "新增設定檔"
msgid "Edit profile"
msgstr "編輯設定檔"
msgid "Delete profile"
msgstr "刪除設定檔"
msgid "Profile name: "
msgstr "設定檔名稱 : "
msgid "The profile name you entered is already in use. Try again"
msgstr "您輸入的設定檔名稱已被使用。請重試"
msgid ""
"Packages to be install with this profile (space separated, leave blank to skip"
"): "
msgstr "編寫要安裝的套件設定檔 (以空格分隔,留空以跳過) : "
msgid ""
"Services to be enabled with this profile (space separated, leave blank to skip"
"): "
msgstr "編寫要啟用的附加服務設定檔 (以空格分隔,留空以跳過) :"
msgid "Should this profile be enabled for installation?"
msgstr "是否啟用此設定檔進行安裝 ?"
msgid "Create your own"
msgstr "建立您自己的"
msgid ""
"\n"
"Select a graphics driver or leave blank to install all open-source drivers"
msgstr ""
"\n"
"\n"
"選擇顯示卡驅動程式或留空以直接安裝開源的驅動程式"
msgid ""
"Sway needs access to your seat (collection of hardware devices i.e. keyboard, "
"mouse, etc)"
msgstr "Sway 需要存取您的用戶環境(硬體設備的集合,例如鍵盤,滑鼠等)"
msgid ""
"\n"
"\n"
"Choose an option to give Sway access to your hardware"
msgstr ""
"\n"
"\n"
"選擇一個選項,讓 Sway 可以存取您的硬體"
msgid "Graphics driver"
msgstr "顯示卡驅動程式"
msgid "Greeter"
msgstr "登錄管理器"
msgid "Please chose which greeter to install"
msgstr "請選擇要安裝的登錄管理器"
msgid "This is a list of pre-programmed default_profiles"
msgstr "這是預設的預設設定檔列表"
msgid "Disk configuration"
msgstr "硬碟組態配置"
msgid "Profiles"
msgstr "設定檔"
msgid "Finding possible directories to save configuration files ..."
msgstr "正在查找可能用於保存組態配置檔的目錄 ..."
msgid "Select directory (or directories) for saving configuration files"
msgstr "選擇用於保存組態配置檔的目錄(或多個目錄)"
msgid "Add a custom mirror"
msgstr "新增自訂鏡像伺服器"
msgid "Change custom mirror"
msgstr "變更自訂鏡像伺服器"
msgid "Delete custom mirror"
msgstr "刪除自訂鏡像伺服器"
msgid "Enter name (leave blank to skip): "
msgstr "輸入使用者名稱(留空以跳過): "
msgid "Enter url (leave blank to skip): "
msgstr "輸入 URL (留空以跳過):"
msgid "Select signature check option"
msgstr "選擇簽章校驗選項"
msgid "Select signature option"
msgstr "選擇簽章選項"
msgid "Custom mirrors"
msgstr "自訂鏡像伺服器"
msgid "Defined"
msgstr "已定義"
msgid "Save user configuration (including disk layout)"
msgstr "儲存使用者組態設定 (包括磁碟配置)"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled"
")\n"
"Save directory: "
msgstr ""
"輸入需要進行保存組態設定的目錄 (啟用標籤完成) \n"
"進行保存組態設定的目錄 : "
msgid ""
"Do you want to save {} configuration file(s) in the following location?\n"
"\n"
"{}"
msgstr ""
"您是否要將 {} 組態檔案儲存到下列位置 ?\n"
"{}"
msgid "Saving {} configuration files to {}"
msgstr "將 {} 組態檔案儲存至 {}"
msgid "Mirrors"
msgstr "鏡像伺服器"
msgid "Mirror regions"
msgstr "鏡像伺服器所在地"
msgid ""
" - Maximum value : {} ( Allows {} parallel downloads, allows {max_downloads+"
"1} downloads at a time )"
msgstr "- 最大值 : {} (允許 {} 個平行下載,同時允許 {max_downloads+1} 個下載)"
msgid "Invalid input! Try again with a valid input [1 to {}, or 0 to disable]"
msgstr "輸入無效! 請再試一次使用有效輸入 [1 至 {},或 0 至停用]"
msgid "Locales"
msgstr "地區"
msgid ""
"Use NetworkManager (necessary to configure internet graphically in GNOME and K"
"DE)"
msgstr "使用 NetworkManager (在 GNOME 和 KDE 中以圖形設定網際網路所需)"
msgid "Total: {} / {}"
msgstr "總長度: {} / {}"
msgid "All entered values can be suffixed with a unit: B, KB, KiB, MB, MiB..."
msgstr "所有輸入的值都可以後綴一個單位 : B、KB、KiB、MB、MiB..."
msgid "If no unit is provided, the value is interpreted as sectors"
msgstr "如果沒有提供單位,則該值會被解釋為扇區"
msgid "Enter start (default: sector {}): "
msgstr "輸入起始區塊 (預設 : 扇區 {}): "
msgid "Enter end (default: {}): "
msgstr "輸入結束區塊 (預設: {}): "
msgid "Unable to determine fido2 devices. Is libfido2 installed?"
msgstr "無法確定是否偵測到 fido2 裝置。您是否已安裝 libfido2 ?"
msgid "Path"
msgstr "路徑"
msgid "Manufacturer"
msgstr "製造廠商"
msgid "Product"
msgstr "產品"
#, python-brace-format
msgid "Invalid configuration: {error}"
msgstr "組態配置無效 : {error}"
msgid "Type"
msgstr "類型"
msgid ""
"This option enables the number of parallel downloads that can occur during pac"
"kage downloads"
msgstr "此選項可啟用套件下載期間可能發生的平行下載次數"
msgid ""
"Enter the number of parallel downloads to be enabled.\n"
"\n"
"Note:\n"
msgstr ""
"輸入要啟用的平行下載數。\n"
"( 輸入一個 1 到 {max_downloads} 之間的值) \n"
"請注意 :\n"
msgid ""
" - Maximum recommended value : {} ( Allows {} parallel downloads at a time )"
msgstr "- 最小值 : 1 (允許 1 個平行下載,同時允許 2 個下載)"
msgid ""
" - Disable/Default : 0 ( Disables parallel downloading, allows only 1 download"
" at a time )\n"
msgstr " - 停用/預設 : 0 (停用平行下載,同時只允許 1 個下載)\n"
msgid "Invalid input! Try again with a valid input [or 0 to disable]"
msgstr "無效輸入!請嘗試使用有效輸入再試一次 [或使用 0 進行停用] 。"
msgid ""
"Hyprland needs access to your seat (collection of hardware devices i.e. keyboa"
"rd, mouse, etc)"
msgstr "Hyprland 需要存取您的用戶環境(收集硬體裝置,例如鍵盤、滑鼠等)"
msgid ""
"\n"
"\n"
"Choose an option to give Hyprland access to your hardware"
msgstr ""
"\n"
"\n"
"選擇一個選項,讓 Hyprland 能存取您的硬體"
msgid ""
"All entered values can be suffixed with a unit: %, B, KB, KiB, MB, MiB..."
msgstr "所有輸入的值都可以後綴一個單位 : %、B、KB、KiB、MB、MiB..."
msgid "Would you like to use unified kernel images?"
msgstr "您想使用統一內核映像嗎 ?"
msgid "Unified kernel images"
msgstr "統一內核映像"
msgid "Waiting for time sync (timedatectl show) to complete."
msgstr "等待時間同步 (timedatectl show) 完成。"
msgid ""
"Time syncronization not completing, while you wait - check the docs for workar"
"ounds: https://archinstall.readthedocs.io/"
msgstr "時間同步未完成,而您正在等待 - 檢查文件以瞭解解決方案 : https://archinstall.readthedocs.io/"
msgid ""
"Skipping waiting for automatic time sync (this can cause issues if time is out"
" of sync during installation)"
msgstr "跳過等待自動時間同步(如果安裝期間時間不同步,這可能會導致問題)"
msgid ""
"Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete."
msgstr "等待 Arch Linux 鑰匙圈同步 (archlinux-keyring-wkd-sync) 完成。"
msgid "Selected profiles: "
msgstr "己選取的設定檔 : "
msgid ""
"Time synchronization not completing, while you wait - check the docs for worka"
"rounds: https://archinstall.readthedocs.io/"
msgstr "時間同步未完成,而您正在等待 - 檢查文件以瞭解解決方案 : https://archinstall.readthedocs.io/"
msgid "Mark/Unmark as nodatacow"
msgstr "標記/取消標記為 nodatacow"
msgid "Would you like to use compression or disable CoW?"
msgstr "您想使用壓縮或停用寫入時複製(CoW) ?"
msgid "Use compression"
msgstr "使用壓縮功能"
msgid "Disable Copy-on-Write"
msgstr "停用寫入時複製 (CoW) 功能"
msgid ""
"Provides a selection of desktop environments and tiling window managers, e.g. "
"GNOME, KDE Plasma, Sway"
msgstr "提供一系列的桌面環境和平鋪視窗管理員,例如 GNOME、KDE Plasma、Sway"
msgid "Configuration type: {}"
msgstr "組態配置類型 : {}"
msgid "LVM configuration type"
msgstr "LVM 組態配置類型"
msgid ""
"LVM disk encryption with more than 2 partitions is currently not supported"
msgstr "目前不支援超過 2 個磁碟分割的 LVM 磁碟加密"
msgid ""
"Use NetworkManager (necessary to configure internet graphically in GNOME and K"
"DE Plasma)"
msgstr "使用 NetworkManager (在 GNOME 和 KDE Plasma 中以圖形設定網際網路所需)"
msgid "Select a LVM option"
msgstr "選擇 LVM 選項"
msgid "Partitioning"
msgstr "磁碟分割"
msgid "Logical Volume Management (LVM)"
msgstr "邏輯磁碟分區(卷)管理 (LVM)"
msgid "Physical volumes"
msgstr "物理磁碟分區(卷)"
msgid "Volumes"
msgstr "磁碟分區(卷)"
msgid "LVM volumes"
msgstr "LVM 磁碟分區(卷)"
msgid "LVM volumes to be encrypted"
msgstr "需加密的 LVM 磁碟分區(卷)"
msgid "Select which LVM volumes to encrypt"
msgstr "選擇要加密的LVM磁碟分區(卷): "
msgid "Default layout"
msgstr "預設配置"
msgid "No Encryption"
msgstr "無加密功能"
msgid "LUKS"
msgstr "Linux統一金鑰設定(LUKS)"
msgid "LVM on LUKS"
msgstr "LVM on LUKS"
msgid "LUKS on LVM"
msgstr "LUKS on LVM"
msgid "Yes"
msgstr "是"
msgid "No"
msgstr "否"
msgid "Archinstall help"
msgstr "Archinstall 協助"
msgid " (default)"
msgstr "(預設)"
msgid "Press Ctrl+h for help"
msgstr "按下 Ctrl+h 鍵得以取得協助"
msgid "Choose an option to give Sway access to your hardware"
msgstr "選擇一個選項,讓 Sway 可以存取您的硬體"
msgid "Seat access"
msgstr "用戶環境存取"
msgid "Mountpoint"
msgstr "掛載點"
msgid "HSM"
msgstr "硬體安全模組(HSM)"
msgid "Enter disk encryption password (leave blank for no encryption)"
msgstr "輸入磁碟加密密碼 (留空表示不加密)"
msgid "Disk encryption password"
msgstr "磁碟機加密密碼"
msgid "Partition - New"
msgstr "磁碟分區 - 新增"
msgid "Filesystem"
msgstr "檔案系統"
msgid "Invalid size"
msgstr "無效大小"
msgid "Start (default: sector {}): "
msgstr "輸入起始區塊 (預設: {} ): "
msgid "End (default: {}): "
msgstr "輸入結束區塊 (預設: {}): "
msgid "Subvolume name"
msgstr "子分區(卷)名稱"
msgid "Disk configuration type"
msgstr "磁碟組態配置類型"
msgid "Root mount directory"
msgstr "根掛載目錄"
msgid "Select language"
msgstr "選擇區域語言"
msgid ""
"Write additional packages to install (space separated, leave blank to skip)"
msgstr "請輸入您要安裝的其它套件包(以空格分隔,留空以跳過)"
msgid "Invalid download number"
msgstr "無效的下載次數"
msgid "Number downloads"
msgstr "下載次數"
msgid "The username you entered is invalid"
msgstr "您所輸入的使用者名稱無效"
msgid "Username"
msgstr "使用者名稱: "
msgid "Should \"{}\" be a superuser (sudo)?\n"
msgstr "是否將 “{}” 設置為超級使用者 (sudo)?\n"
msgid "Interfaces"
msgstr "介面"
msgid "You need to enter a valid IP in IP-config mode"
msgstr "您需要在 IP 組態配置模式中輸入有效的 IP"
msgid "Modes"
msgstr "模式"
msgid "IP address"
msgstr "IP 位置"
msgid "Enter your gateway (router) IP address (leave blank for none)"
msgstr "請輸入您閘道器(路由器)的 IP 地址或留空以跳過: "
msgid "Gateway address"
msgstr "閘道器位址"
msgid "Enter your DNS servers with space separated (leave blank for none)"
msgstr "請輸入您的 DNS 伺服器(以空格分隔,留空以跳過))"
msgid "DNS servers"
msgstr "DNS 伺服器"
msgid "Configure interfaces"
msgstr "組態設置介面"
msgid "Kernel"
msgstr "内核"
msgid "UEFI is not detected and some options are disabled"
msgstr "未偵測到 UEFI,且某些選項已停用"
msgid "Info"
msgstr "資訊"
msgid "The proprietary Nvidia driver is not supported by Sway."
msgstr "Sway 不支持 Nvidia 官方的顯示卡驅動。"
msgid "It is likely that you will run into issues, are you okay with that?"
msgstr "您很可能會遇到問題,您能接受嗎 ?"
msgid "Main profile"
msgstr "主要設定檔"
msgid "Confirm password"
msgstr "確認密碼"
msgid "The confirmation password did not match, please try again"
msgstr "確認密碼不符合,請再試一次"
msgid "Not a valid directory"
msgstr "不是有效的目錄"
msgid "Would you like to continue?"
msgstr "您想繼續嗎 ?"
msgid "Directory"
msgstr "目錄"
msgid ""
"Enter a directory for the configuration(s) to be saved (tab completion enabled"
")"
msgstr "輸入用於儲存組態設定的目錄 (啟用標籤完成)"
msgid "Do you want to save the configuration file(s) to {}?"
msgstr "您是否要將組態設定檔儲存到 {} ?"
msgid "Enabled"
msgstr "己啟用"
msgid "Disabled"
msgstr "己停用"
msgid ""
"Please submit this issue (and file) to https://github.com/archlinux/archinstal"
"l/issues"
msgstr "請將此問題(以及檔案)提交到 https://github.com/archlinux/archinstall/issues"
msgid "Mirror name"
msgstr "鏡像伺服器區域"
msgid "Url"
msgstr "URL"
msgid "Select signature check"
msgstr "選擇簽章核對"
msgid "Select execution mode"
msgstr "選擇執行模式"
msgid "Press ? for help"
msgstr "按下 ? 鍵,而尋求協助"
msgid "Choose an option to give Hyprland access to your hardware"
msgstr "選擇一個選項,讓 Hyprland 能存取您的硬體"
msgid "Additional repositories"
msgstr "加入額外的套件庫"
msgid "NTP"
msgstr "網路時間協定(NTP)"
msgid "Swap on zram"
msgstr "在 zram 上進行置換(Swap)"
msgid "Name"
msgstr "名稱"
msgid "Signature check"
msgstr "簽章檢查"
msgid "Selected free space segment on device {}:"
msgstr "已選取裝置 {} 上的可用空間區段:"
msgid "Size: {} / {}"
msgstr "總長度: {}/{}"
msgid "Size (default: {}): "
msgstr "輸入起始區塊( 預設: {} ):"
msgid "HSM device"
msgstr "HSM 裝置"
msgid "Some packages could not be found in the repository"
msgstr "某些套件包無法在套件庫中找到"
msgid "User"
msgstr "使用者"
msgid "The specified configuration will be applied"
msgstr "指定的組態設定將會套用"
msgid "Wipe"
msgstr "清除"
msgid "Mark/Unmark as XBOOTLDR"
msgstr "標記/取消標記磁碟分割區為 XBOOTLDR"
msgid "Loading packages..."
msgstr "正在載入套件包..."
msgid ""
"Select any packages from the below list that should be installed additionally"
msgstr "從下列清單中選擇任何需要額外安裝的套件包"
msgid "Add a custom repository"
msgstr "新增自訂套件庫"
msgid "Change custom repository"
msgstr "變更自訂套件庫"
msgid "Delete custom repository"
msgstr "刪除自訂套件庫"
msgid "Repository name"
msgstr "套件庫名稱"
msgid "Add a custom server"
msgstr "新增自訂伺服器"
msgid "Change custom server"
msgstr "變更自訂伺服器"
msgid "Delete custom server"
msgstr "刪除自訂伺服器"
msgid "Server url"
msgstr "伺服器 URL"
#, fuzzy
msgid "Select regions"
msgstr "選擇簽章選項"
msgid "Add custom servers"
msgstr "新增自訂伺服器"
msgid "Add custom repository"
msgstr "新增自訂套件庫"
msgid "Loading mirror regions..."
msgstr "載入鏡像伺服器所在地 ..."
msgid "Mirrors and repositories"
msgstr "鏡像伺服器和套件庫"
msgid "Selected mirror regions"
msgstr "己選擇鏡像伺服器所在地"
msgid "Custom servers"
msgstr "自訂伺服器位置"
msgid "Custom repositories"
msgstr "自訂套件庫"
msgid "Only ASCII characters are supported"
msgstr "僅支援 ASCII 字元"
msgid "Show help"
msgstr "顯示協助"
msgid "Exit help"
msgstr "離開協助"
msgid "Preview scroll up"
msgstr "向上捲動預覽"
msgid "Preview scroll down"
msgstr "向下捲動預覽"
msgid "Move up"
msgstr "上移"
msgid "Move down"
msgstr "下移"
msgid "Move right"
msgstr "右移"
msgid "Move left"
msgstr "左移"
msgid "Jump to entry"
msgstr "跳轉至入口"
msgid "Skip selection (if available)"
msgstr "跳過選擇 (如果有)"
msgid "Reset selection (if available)"
msgstr "重設選擇 (如果有)"
msgid "Select on single select"
msgstr "在單一選項上進行選擇"
msgid "Select on multi select"
msgstr "在多重選擇上進行選擇"
msgid "Reset"
msgstr "重置"
msgid "Skip selection menu"
msgstr "跳過選擇選單"
msgid "Start search mode"
msgstr "啟動搜尋模式"
msgid "Exit search mode"
msgstr "離開搜尋模式"
msgid ""
"labwc needs access to your seat (collection of hardware devices i.e. keyboard,"
" mouse, etc)"
msgstr "labwc 需要存取您的用戶環境(硬體設備的集合,例如: 鍵盤,滑鼠等)"
msgid "Choose an option to give labwc access to your hardware"
msgstr "選擇一個選項,讓 labwc 可以存取您的硬體"
msgid ""
"niri needs access to your seat (collection of hardware devices i.e. keyboard, "
"mouse, etc)"
msgstr "niri 需要存取您的用戶環境(硬體設備的集合,例如鍵盤,滑鼠等)"
msgid "Choose an option to give niri access to your hardware"
msgstr "選擇一個選項,讓 niri 可以存取您的硬體"
msgid "Mark/Unmark as ESP"
msgstr "標記/取消標記為EFI系統分割區(ESP,EFI system partition)"
msgid "Package group:"
msgstr "套件群組:"
msgid "Exit archinstall"
msgstr "離開 Archinstall"
msgid "Reboot system"
msgstr "重啟系統"
msgid "chroot into installation for post-installation configurations"
msgstr "您是否想要讓 chroot 進入新建立的安裝,並執行設定安裝後的組態配置嗎 ?"
msgid "Installation completed"
msgstr "安裝完畢"
msgid "What would you like to do next?"
msgstr "接下來您想做什麼?"
msgid "Select which mode to configure for \"{}\""
msgstr "請選擇要設定 「{}」 的模式"
msgid "Incorrect credentials file decryption password"
msgstr "憑證檔案的解密密碼不正確"
msgid "Incorrect password"
msgstr "密碼錯誤"
msgid "Credentials file decryption password"
msgstr "憑證檔案的解密密碼"
msgid "Do you want to encrypt the user_credentials.json file?"
msgstr "您是否要加密 user_credentials.json 檔案?"
msgid "Credentials file encryption password"
msgstr "憑證檔案的加密密碼"
msgid "Repositories: {}"
msgstr "套件庫:{}"
================================================
FILE: archinstall/main.py
================================================
# Arch Linux installer - guided, templates etc.
import importlib
import os
import sys
import textwrap
import time
import traceback
from pathlib import Path
from archinstall.lib.args import ArchConfigHandler
from archinstall.lib.disk.utils import disk_layouts
from archinstall.lib.hardware import SysInfo
from archinstall.lib.network.wifi_handler import WifiHandler
from archinstall.lib.networking import ping
from archinstall.lib.output import debug, error, info, warn
from archinstall.lib.packages.util import check_version_upgrade
from archinstall.lib.pacman.pacman import Pacman
from archinstall.lib.translationhandler import tr
from archinstall.lib.utils.util import running_from_iso
from archinstall.tui.ui.components import tui
def _log_sys_info() -> None:
# Log various information about hardware before starting the installation. This might assist in troubleshooting
debug(f'Hardware model detected: {SysInfo.sys_vendor()} {SysInfo.product_name()}; UEFI mode: {SysInfo.has_uefi()}')
debug(f'Processor model detected: {SysInfo.cpu_model()}')
debug(f'Memory statistics: {SysInfo.mem_available()} available out of {SysInfo.mem_total()} total installed')
debug(f'Virtualization detected: {SysInfo.virtualization()}; is VM: {SysInfo.is_vm()}')
debug(f'Graphics devices detected: {SysInfo._graphics_devices().keys()}')
# For support reasons, we'll log the disk layout pre installation to match against post-installation layout
debug(f'Disk states before installing:\n{disk_layouts()}')
def _check_online(wifi_handler: WifiHandler | None = None) -> bool:
try:
ping('1.1.1.1')
except OSError as ex:
if 'Network is unreachable' in str(ex):
if wifi_handler is not None:
result: bool = tui.run(wifi_handler)
if not result:
return False
return True
def _fetch_arch_db() -> bool:
info('Fetching Arch Linux package database...')
try:
Pacman.run('-Sy')
except Exception as e:
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}')
return False
return True
def _list_scripts() -> str:
lines = ['The following are viable --script options:']
for file in (Path(__file__).parent / 'scripts').glob('*.py'):
if file.stem != '__init__':
lines.append(f' {file.stem}')
return '\n'.join(lines)
def run() -> int:
"""
This can either be run as the compiled and installed application: python setup.py install
OR straight as a module: python -m archinstall
In any case we will be attempting to load the provided script to be run from the scripts/ folder
"""
arch_config_handler = ArchConfigHandler()
if '--help' in sys.argv or '-h' in sys.argv:
arch_config_handler.print_help()
return 0
script = arch_config_handler.get_script()
if script == 'list':
print(_list_scripts())
return 0
if os.getuid() != 0:
print(tr('Archinstall requires root privileges to run. See --help for more.'))
return 1
_log_sys_info()
if not arch_config_handler.args.offline:
if not arch_config_handler.args.skip_wifi_check:
wifi_handler = WifiHandler()
else:
wifi_handler = None
if not _check_online(wifi_handler):
return 0
if not _fetch_arch_db():
return 1
if not arch_config_handler.args.skip_version_check:
upgrade = check_version_upgrade()
if upgrade:
text = tr('New version available') + f': {upgrade}'
info(text)
time.sleep(3)
if running_from_iso():
debug('Running from ISO (Live Mode)...')
else:
debug('Running from Host (H2T Mode)...')
mod_name = f'archinstall.scripts.{script}'
# by loading the module we'll automatically run the script
module = importlib.import_module(mod_name)
module.main(arch_config_handler)
return 0
def _error_message(exc: Exception) -> None:
err = ''.join(traceback.format_exception(exc))
error(err)
text = textwrap.dedent(
"""\
Archinstall experienced the above error. If you think this is a bug, please report it to
https://github.com/archlinux/archinstall and include the log file "/var/log/archinstall/install.log".
Hint: To extract the log from a live ISO
curl -F 'file=@/var/log/archinstall/install.log' https://0x0.st
"""
)
warn(text)
def main() -> int:
rc = 0
exc = None
try:
rc = run()
except Exception as e:
exc = e
finally:
if exc:
_error_message(exc)
rc = 1
return rc
if __name__ == '__main__':
sys.exit(main())
================================================
FILE: archinstall/scripts/__init__.py
================================================
================================================
FILE: archinstall/scripts/guided.py
================================================
import os
import sys
import time
from archinstall.lib.applications.application_handler import ApplicationHandler
from archinstall.lib.args import ArchConfig, ArchConfigHandler
from archinstall.lib.authentication.authentication_handler import AuthenticationHandler
from archinstall.lib.configuration import ConfigurationOutput
from archinstall.lib.disk.filesystem import FilesystemHandler
from archinstall.lib.disk.utils import disk_layouts
from archinstall.lib.global_menu import GlobalMenu
from archinstall.lib.installer import Installer, accessibility_tools_in_use, run_custom_user_commands
from archinstall.lib.interactions.general_conf import PostInstallationAction, select_post_installation
from archinstall.lib.menu.util import delayed_warning
from archinstall.lib.mirror.mirror_handler import MirrorListHandler
from archinstall.lib.models import Bootloader
from archinstall.lib.models.device import DiskLayoutType, EncryptionType
from archinstall.lib.models.users import User
from archinstall.lib.network.network_handler import install_network_config
from archinstall.lib.output import debug, error, info
from archinstall.lib.packages.util import check_version_upgrade
from archinstall.lib.profile.profiles_handler import profile_handler
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.components import tui
def show_menu(
arch_config_handler: ArchConfigHandler,
mirror_list_handler: MirrorListHandler,
) -> None:
upgrade = check_version_upgrade()
title_text = 'Archlinux'
if upgrade:
text = tr('New version available') + f': {upgrade}'
title_text += f' ({text})'
global_menu = GlobalMenu(
arch_config_handler.config,
mirror_list_handler,
arch_config_handler.args.skip_boot,
title=title_text,
)
if not arch_config_handler.args.advanced:
global_menu.set_enabled('parallel_downloads', False)
result: ArchConfig | None = tui.run(global_menu)
if result is None:
sys.exit(0)
def perform_installation(
arch_config_handler: ArchConfigHandler,
mirror_list_handler: MirrorListHandler,
auth_handler: AuthenticationHandler,
application_handler: ApplicationHandler,
) -> None:
"""
Performs the installation steps on a block device.
Only requirement is that the block devices are
formatted and setup prior to entering this function.
"""
start_time = time.monotonic()
info('Starting installation...')
mountpoint = arch_config_handler.args.mountpoint
config = arch_config_handler.config
if not config.disk_config:
error('No disk configuration provided')
return
disk_config = config.disk_config
run_mkinitcpio = not config.bootloader_config or not config.bootloader_config.uki
locale_config = config.locale_config
optional_repositories = config.mirror_config.optional_repositories if config.mirror_config else []
mountpoint = disk_config.mountpoint if disk_config.mountpoint else mountpoint
with Installer(
mountpoint,
disk_config,
kernels=config.kernels,
silent=arch_config_handler.args.silent,
) as installation:
# Mount all the drives to the desired mountpoint
if disk_config.config_type != DiskLayoutType.Pre_mount:
installation.mount_ordered_layout()
installation.sanity_check(
arch_config_handler.args.offline,
arch_config_handler.args.skip_ntp,
arch_config_handler.args.skip_wkd,
)
if disk_config.config_type != DiskLayoutType.Pre_mount:
if disk_config.disk_encryption and disk_config.disk_encryption.encryption_type != EncryptionType.NoEncryption:
# generate encryption key files for the mounted luks devices
installation.generate_key_files()
if mirror_config := config.mirror_config:
installation.set_mirrors(mirror_list_handler, mirror_config, on_target=False)
installation.minimal_installation(
optional_repositories=optional_repositories,
mkinitcpio=run_mkinitcpio,
hostname=arch_config_handler.config.hostname,
locale_config=locale_config,
)
if mirror_config := config.mirror_config:
installation.set_mirrors(mirror_list_handler, mirror_config, on_target=True)
if config.swap and config.swap.enabled:
installation.setup_swap(algo=config.swap.algorithm)
if config.bootloader_config and config.bootloader_config.bootloader != Bootloader.NO_BOOTLOADER:
installation.add_bootloader(config.bootloader_config.bootloader, config.bootloader_config.uki, config.bootloader_config.removable)
if config.network_config:
install_network_config(
config.network_config,
installation,
config.profile_config,
)
users = None
if config.auth_config:
if config.auth_config.users:
users = config.auth_config.users
installation.create_users(config.auth_config.users)
auth_handler.setup_auth(installation, config.auth_config, config.hostname)
if app_config := config.app_config:
application_handler.install_applications(installation, app_config)
if profile_config := config.profile_config:
profile_handler.install_profile_config(installation, profile_config)
if config.packages and config.packages[0] != '':
installation.add_additional_packages(config.packages)
if timezone := config.timezone:
installation.set_timezone(timezone)
if config.ntp:
installation.activate_time_synchronization()
if accessibility_tools_in_use():
installation.enable_espeakup()
if config.auth_config and config.auth_config.root_enc_password:
root_user = User('root', config.auth_config.root_enc_password, False)
installation.set_user_password(root_user)
if (profile_config := config.profile_config) and profile_config.profile:
profile_config.profile.post_install(installation)
if users:
profile_config.profile.provision(installation, users)
# If the user provided a list of services to be enabled, pass the list to the enable_service function.
# Note that while it's called enable_service, it can actually take a list of services and iterate it.
if services := config.services:
installation.enable_service(services)
if disk_config.has_default_btrfs_vols():
btrfs_options = disk_config.btrfs_options
snapshot_config = btrfs_options.snapshot_config if btrfs_options else None
snapshot_type = snapshot_config.snapshot_type if snapshot_config else None
if snapshot_type:
bootloader = config.bootloader_config.bootloader if config.bootloader_config else None
installation.setup_btrfs_snapshot(snapshot_type, bootloader)
# If the user provided custom commands to be run post-installation, execute them now.
if cc := config.custom_commands:
run_custom_user_commands(cc, installation)
installation.genfstab()
debug(f'Disk states after installing:\n{disk_layouts()}')
if not arch_config_handler.args.silent:
elapsed_time = time.monotonic() - start_time
action: PostInstallationAction = tui.run(lambda: select_post_installation(elapsed_time))
match action:
case PostInstallationAction.EXIT:
pass
case PostInstallationAction.REBOOT:
_ = os.system('reboot')
case PostInstallationAction.CHROOT:
try:
installation.drop_to_shell()
except Exception:
pass
def main(arch_config_handler: ArchConfigHandler | None = None) -> None:
if arch_config_handler is None:
arch_config_handler = ArchConfigHandler()
mirror_list_handler = MirrorListHandler(
offline=arch_config_handler.args.offline,
verbose=arch_config_handler.args.verbose,
)
if not arch_config_handler.args.silent:
show_menu(arch_config_handler, mirror_list_handler)
config = ConfigurationOutput(arch_config_handler.config)
config.write_debug()
config.save()
if arch_config_handler.args.dry_run:
return
if not arch_config_handler.args.silent:
aborted = False
res: bool = tui.run(config.confirm_config)
if not res:
debug('Installation aborted')
aborted = True
if aborted:
return main(arch_config_handler)
if arch_config_handler.config.disk_config:
fs_handler = FilesystemHandler(arch_config_handler.config.disk_config)
if not delayed_warning(tr('Starting device modifications in ')):
return main()
fs_handler.perform_filesystem_operations()
perform_installation(
arch_config_handler,
mirror_list_handler,
AuthenticationHandler(),
ApplicationHandler(),
)
if __name__ == '__main__':
main()
================================================
FILE: archinstall/scripts/minimal.py
================================================
from archinstall.default_profiles.minimal import MinimalProfile
from archinstall.lib.args import ArchConfigHandler
from archinstall.lib.configuration import ConfigurationOutput
from archinstall.lib.disk.disk_menu import DiskLayoutConfigurationMenu
from archinstall.lib.disk.filesystem import FilesystemHandler
from archinstall.lib.installer import Installer
from archinstall.lib.menu.util import delayed_warning
from archinstall.lib.models import Bootloader
from archinstall.lib.models.profile import ProfileConfiguration
from archinstall.lib.models.users import Password, User
from archinstall.lib.network.network_handler import install_network_config
from archinstall.lib.output import debug, error, info
from archinstall.lib.profile.profiles_handler import profile_handler
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.components import tui
def perform_installation(arch_config_handler: ArchConfigHandler) -> None:
mountpoint = arch_config_handler.args.mountpoint
config = arch_config_handler.config
if not config.disk_config:
error('No disk configuration provided')
return
disk_config = config.disk_config
mountpoint = disk_config.mountpoint if disk_config.mountpoint else mountpoint
with Installer(
mountpoint,
disk_config,
kernels=config.kernels,
silent=arch_config_handler.args.silent,
) as installation:
# Strap in the base system, add a bootloader and configure
# some other minor details as specified by this profile and user.
installation.mount_ordered_layout()
installation.minimal_installation()
installation.set_hostname('minimal-arch')
installation.add_bootloader(Bootloader.Systemd)
if config.network_config:
install_network_config(
config.network_config,
installation,
config.profile_config,
)
installation.add_additional_packages(['nano', 'wget', 'git'])
profile_config = ProfileConfiguration(MinimalProfile())
profile_handler.install_profile_config(installation, profile_config)
user = User('devel', Password(plaintext='devel'), False)
installation.create_users(user)
# Once this is done, we output some useful information to the user
# And the installation is complete.
info('There are two new accounts in your installation after reboot:')
info(' * root (password: airoot)')
info(' * devel (password: devel)')
async def main(arch_config_handler: ArchConfigHandler | None = None) -> None:
if arch_config_handler is None:
arch_config_handler = ArchConfigHandler()
disk_config = await DiskLayoutConfigurationMenu(disk_layout_config=None).show()
arch_config_handler.config.disk_config = disk_config
config = ConfigurationOutput(arch_config_handler.config)
config.write_debug()
config.save()
if arch_config_handler.args.dry_run:
return
if not arch_config_handler.args.silent:
aborted = False
res: bool = tui.run(config.confirm_config)
if not res:
debug('Installation aborted')
aborted = True
if aborted:
return await main(arch_config_handler)
if arch_config_handler.config.disk_config:
fs_handler = FilesystemHandler(arch_config_handler.config.disk_config)
if not delayed_warning(tr('Starting device modifications in ')):
return await main()
fs_handler.perform_filesystem_operations()
perform_installation(arch_config_handler)
if __name__ == '__main__':
tui.run(main)
================================================
FILE: archinstall/scripts/only_hd.py
================================================
import sys
from pathlib import Path
from archinstall.lib.args import ArchConfig, ArchConfigHandler
from archinstall.lib.configuration import ConfigurationOutput
from archinstall.lib.disk.filesystem import FilesystemHandler
from archinstall.lib.disk.utils import disk_layouts
from archinstall.lib.global_menu import GlobalMenu
from archinstall.lib.installer import Installer
from archinstall.lib.menu.util import delayed_warning
from archinstall.lib.output import debug, error
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.components import tui
def show_menu(arch_config_handler: ArchConfigHandler) -> None:
global_menu = GlobalMenu(arch_config_handler.config)
global_menu.disable_all()
global_menu.set_enabled('archinstall_language', True)
global_menu.set_enabled('disk_config', True)
global_menu.set_enabled('swap', True)
global_menu.set_enabled('__config__', True)
result: ArchConfig | None = tui.run(global_menu)
if result is None:
sys.exit(0)
def perform_installation(arch_config_handler: ArchConfigHandler) -> None:
"""
Performs the installation steps on a block device.
Only requirement is that the block devices are
formatted and setup prior to entering this function.
"""
mountpoint = arch_config_handler.args.mountpoint
config = arch_config_handler.config
if not config.disk_config:
error('No disk configuration provided')
return
disk_config = config.disk_config
mountpoint = disk_config.mountpoint if disk_config.mountpoint else mountpoint
with Installer(
mountpoint,
disk_config,
kernels=config.kernels,
silent=arch_config_handler.args.silent,
) as installation:
# Mount all the drives to the desired mountpoint
# This *can* be done outside of the installation, but the installer can deal with it.
installation.mount_ordered_layout()
# to generate a fstab directory holder. Avoids an error on exit and at the same time checks the procedure
target = Path(f'{mountpoint}/etc/fstab')
if not target.parent.exists():
target.parent.mkdir(parents=True)
# For support reasons, we'll log the disk layout post installation (crash or no crash)
debug(f'Disk states after installing:\n{disk_layouts()}')
def main(arch_config_handler: ArchConfigHandler | None = None) -> None:
if arch_config_handler is None:
arch_config_handler = ArchConfigHandler()
if not arch_config_handler.args.silent:
show_menu(arch_config_handler)
config = ConfigurationOutput(arch_config_handler.config)
config.write_debug()
config.save()
if arch_config_handler.args.dry_run:
return
if not arch_config_handler.args.silent:
aborted = False
res: bool = tui.run(config.confirm_config)
if not res:
debug('Installation aborted')
aborted = True
if aborted:
return main(arch_config_handler)
if arch_config_handler.config.disk_config:
fs_handler = FilesystemHandler(arch_config_handler.config.disk_config)
if not delayed_warning(tr('Starting device modifications in ')):
return main()
fs_handler.perform_filesystem_operations()
perform_installation(arch_config_handler)
if __name__ == '__main__':
main()
================================================
FILE: archinstall/tui/__init__.py
================================================
================================================
FILE: archinstall/tui/curses_menu.py
================================================
from __future__ import annotations
import curses
import os
import signal
import sys
from abc import ABCMeta, abstractmethod
from collections.abc import Callable
from curses.ascii import isprint
from curses.textpad import Textbox
from types import FrameType, TracebackType
from typing import ClassVar, Literal, Self, override
from archinstall.lib.translationhandler import tr
from archinstall.tui.help import Help
from archinstall.tui.menu_item import MenuItem, MenuItemGroup, MenuItemsState
from archinstall.tui.result import Result, ResultType
from archinstall.tui.types import (
SCROLL_INTERVAL,
STYLE,
Alignment,
Chars,
FrameDim,
FrameProperties,
FrameStyle,
MenuKeys,
Orientation,
PreviewStyle,
ViewportEntry,
)
class AbstractCurses[ValueT](metaclass=ABCMeta):
def __init__(self) -> None:
self._help_window = self._set_help_viewport()
@abstractmethod
def resize_win(self) -> None:
pass
@abstractmethod
def kickoff(self, win: curses.window) -> Result[ValueT]:
pass
def clear_all(self) -> None:
Tui.t().screen.clear()
Tui.t().screen.refresh()
def clear_help_win(self) -> None:
self._help_window.erase()
def _set_help_viewport(self) -> Viewport:
max_height, max_width = Tui.t().max_yx
height = max_height - 10
max_help_width = max([len(line) for line in Help.get_help_text().split('\n')])
x_start = int((max_width / 2) - (max_help_width / 2))
return Viewport(
max_help_width + 10,
height,
x_start,
int((max_height / 2) - height / 2),
frame=FrameProperties.min(tr('Archinstall help')),
)
def _confirm_interrupt(self, warning: str) -> bool:
while True:
result = SelectMenu[bool](
MenuItemGroup.yes_no(),
header=warning,
alignment=Alignment.CENTER,
columns=2,
orientation=Orientation.HORIZONTAL,
).run()
match result.type_:
case ResultType.Selection:
if result.item() == MenuItem.yes():
return True
return False
def help_text(self) -> str:
return tr('Press Ctrl+h for help')
def _show_help(self) -> None:
help_text = Help.get_help_text()
lines = help_text.split('\n')
entries = [ViewportEntry('', 0, 0, STYLE.NORMAL)]
entries += [ViewportEntry(f' {e} ', idx + 1, 0, STYLE.NORMAL) for idx, e in enumerate(lines)]
self._help_window.update(entries, 0)
def get_header_entries(self, header: str) -> list[ViewportEntry]:
full_header = []
rows = header.split('\n')
for cur_row, line in enumerate(rows):
full_header += [ViewportEntry(line, cur_row, 0, STYLE.NORMAL)]
return full_header
class AbstractViewport:
def __init__(self) -> None:
pass
def add_str(self, screen: curses.window, row: int, col: int, text: str, color: STYLE) -> None:
try:
screen.addstr(row, col, text, Tui.t().get_color(color))
except curses.error:
# debug(f'Curses error while adding string to viewport: {text}')
pass
def add_frame(
self,
entries: list[ViewportEntry],
max_width: int,
max_height: int,
frame: FrameProperties,
scroll_pct: int | None = None,
) -> list[ViewportEntry]:
if not entries:
return []
dim = self._get_frame_dim(entries, max_width, max_height, frame)
h_bar = Chars.Horizontal * (dim.x_delta() - 2)
top_ve = self._get_top(dim, h_bar, frame, scroll_pct)
bottom_ve = self._get_bottom(dim, h_bar, scroll_pct)
frame_border = []
for i in range(1, dim.height):
frame_border += [ViewportEntry(Chars.Vertical, i, dim.x_start, STYLE.NORMAL)]
frame_border += self._get_right_frame(dim, scroll_pct)
# adjust the original rows and cols of the entries as
# they need to be shrunk by 1 to make space for the frame
entries = self._adjust_entries(entries)
framed_entries = [
top_ve,
bottom_ve,
*frame_border,
*entries,
]
return framed_entries
def align_center(self, lines: list[ViewportEntry], width: int) -> int:
max_col = self._max_col(lines)
x_offset = int((width / 2) - (max_col / 2))
return x_offset
def _get_right_frame(
self,
dim: FrameDim,
scroll_percentage: int | None = None,
) -> list[ViewportEntry]:
right_frame = {}
scroll_height = int(dim.height * scroll_percentage // 100) if scroll_percentage else 0
if scroll_height <= 0:
scroll_height = 1
elif scroll_height >= dim.height:
scroll_height = dim.height - 1
for i in range(1, dim.height):
right_frame[i] = ViewportEntry(Chars.Vertical, i, dim.x_end - 1, STYLE.NORMAL)
if scroll_percentage is not None:
right_frame[0] = ViewportEntry(Chars.Triangle_up, 0, dim.x_end - 1, STYLE.NORMAL)
right_frame[scroll_height] = ViewportEntry(Chars.Block, scroll_height, dim.x_end - 1, STYLE.NORMAL)
right_frame[dim.height] = ViewportEntry(Chars.Triangle_down, dim.height, dim.x_end - 1, STYLE.NORMAL)
return list(right_frame.values())
def _get_top(
self,
dim: FrameDim,
h_bar: str,
frame: FrameProperties,
scroll_percentage: int | None = None,
) -> ViewportEntry:
top = self._replace_str(h_bar, 1, f' {frame.header} ') if frame.header else h_bar
if scroll_percentage is None:
top = Chars.Upper_left + top + Chars.Upper_right
else:
top = Chars.Upper_left + top[:-1]
return ViewportEntry(top, 0, dim.x_start, STYLE.NORMAL)
def _get_bottom(
self,
dim: FrameDim,
h_bar: str,
scroll_pct: int | None = None,
) -> ViewportEntry:
if scroll_pct is None:
bottom = Chars.Lower_left + h_bar + Chars.Lower_right
else:
bottom = Chars.Lower_left + h_bar[:-1]
return ViewportEntry(bottom, dim.height, dim.x_start, STYLE.NORMAL)
def _get_frame_dim(
self,
entries: list[ViewportEntry],
max_width: int,
max_height: int,
frame: FrameProperties,
) -> FrameDim:
rows = self._assemble_entries(entries).split('\n')
header_len = len(frame.header) if frame.header else 0
header_len += 3 # for header padding
if frame.w_frame_style == FrameStyle.MIN:
frame_start = min([e.col for e in entries])
max_row_cols = [(e.col + len(e.text) + 1) for e in entries]
max_row_cols.append(header_len)
frame_end = max(max_row_cols)
# 2 for frames, 1 for extra space start away from frame
# must align with def _adjust_entries
# 2 for frame
frame_end += 3
frame_height = len(rows) + 1
if frame_height > max_height:
frame_height = max_height
else:
frame_start = 0
frame_end = max_width
frame_height = max_height - 1
return FrameDim(frame_start, frame_end, frame_height)
def _adjust_entries(
self,
entries: list[ViewportEntry],
) -> list[ViewportEntry]:
for entry in entries:
# top row frame offset
entry.row += 1
# left side frame offset + extra space from frame to start from
entry.col += 2
return entries
def _num_unique_rows(self, entries: list[ViewportEntry]) -> int:
return len(set([e.row for e in entries]))
def _max_col(self, entries: list[ViewportEntry]) -> int:
values = [len(e.text) + e.col for e in entries]
if not values:
return 0
return max(values)
def _replace_str(self, text: str, index: int = 0, replacement: str = '') -> str:
len_replace = len(replacement)
return f'{text[:index]}{replacement}{text[index + len_replace :]}'
def _assemble_entries(self, entries: list[ViewportEntry]) -> str:
if not entries:
return ''
max_col = self._max_col(entries)
view = [max_col * ' '] * self._num_unique_rows(entries)
for e in entries:
view[e.row] = self._replace_str(view[e.row], e.col, e.text)
view = [v.rstrip() for v in view]
return '\n'.join(view)
class EditViewport(AbstractViewport):
def __init__(
self,
width: int,
edit_width: int,
edit_height: int,
x_start: int,
y_start: int,
process_key: Callable[[int], int],
frame: FrameProperties,
alignment: Alignment = Alignment.CENTER,
hide_input: bool = False,
) -> None:
super().__init__()
self._max_height, self._max_width = Tui.t().max_yx
self._width = width
self._edit_width = edit_width
self._edit_height = edit_height
self.x_start = x_start
self.y_start = y_start
self._process_key_cb = process_key
self._frame = frame
self._alignment = alignment
self._hide_input = hide_input
self._main_win: curses.window | None = None
self._edit_win: curses.window | None = None
self._textbox: Textbox | None = None
self._init_wins()
def _init_wins(self) -> None:
self._main_win = curses.newwin(self._edit_height, self._width, self.y_start, 0)
self._main_win.nodelay(False)
x_offset = 0
if self._alignment == Alignment.CENTER:
x_offset = int((self._width / 2) - (self._edit_width / 2))
self._edit_win = self._main_win.subwin(
1,
self._edit_width - 2,
self.y_start + 1,
self.x_start + x_offset + 1,
)
def update(self) -> None:
if not self._main_win:
return
self._main_win.erase()
framed = self.add_frame(
[ViewportEntry('', 0, 0, STYLE.NORMAL)],
self._edit_width,
3,
frame=self._frame,
)
x_offset = 0
if self._alignment == Alignment.CENTER:
x_offset = self.align_center(framed, self._width)
for row in framed:
self.add_str(
self._main_win,
row.row,
row.col + x_offset,
row.text,
row.style,
)
self._main_win.refresh()
def textbox_value(self) -> str:
if not self._textbox:
return ''
return self._textbox.gather().strip()
def erase(self) -> None:
if self._main_win:
self._main_win.erase()
self._main_win.refresh()
def edit(self, default_text: str | None = None) -> None:
assert self._edit_win and self._main_win
self._edit_win.erase()
if default_text is not None and len(default_text) > 0:
self._edit_win.addstr(0, 0, default_text)
# if this gets initialized multiple times it will be an overlay
# and ENTER has to be pressed multiple times to accept
if not self._textbox:
self._textbox = Textbox(self._edit_win)
self._main_win.refresh()
self._textbox.edit(self._process_key_cb)
class Viewport(AbstractViewport):
def __init__(
self,
width: int,
height: int,
x_start: int,
y_start: int,
frame: FrameProperties | None = None,
alignment: Alignment = Alignment.LEFT,
):
super().__init__()
self.width = width
self.height = height
self.x_start = x_start
self.y_start = y_start
self._frame = frame
self._alignment = alignment
self._main_win = curses.newwin(self.height, self.width, self.y_start, self.x_start)
self._main_win.nodelay(False)
self._main_win.standout()
def getch(self) -> int:
return self._main_win.getch()
def erase(self) -> None:
self._main_win.erase()
self._main_win.refresh()
def update(
self,
entries: list[ViewportEntry],
cur_pos: int = 0,
scroll_pos: int | None = None,
) -> None:
# self._state = self._get_viewport_state(lines, cur_pos, scroll_pos)
# visible_entries = self._adjust_entries_row(self._state.displayed_entries)
visible_entries = entries
if self._frame:
visible_entries = self.add_frame(
visible_entries,
self.width,
self.height,
frame=self._frame,
scroll_pct=scroll_pos,
)
x_offset = 0
if self._alignment == Alignment.CENTER:
x_offset = self.align_center(visible_entries, self.width)
self._main_win.erase()
for entry in visible_entries:
self.add_str(
self._main_win,
entry.row,
entry.col + x_offset,
entry.text,
entry.style,
)
self._main_win.refresh()
class EditMenu(AbstractCurses[str]):
def __init__(
self,
title: str,
edit_width: int = 50,
header: str | None = None,
validator: Callable[[str | None], str | None] | None = None,
allow_skip: bool = False,
allow_reset: bool = False,
reset_warning_msg: str | None = None,
alignment: Alignment = Alignment.CENTER,
default_text: str | None = None,
hide_input: bool = False,
):
super().__init__()
self._max_height, self._max_width = Tui.t().max_yx
self._header = header
self._header_entries = []
if header:
self._header_entries = self.get_header_entries(header)
self._validator = validator
self._allow_skip = allow_skip
self._allow_reset = allow_reset
self._interrupt_warning = reset_warning_msg
self._alignment = alignment
self._edit_width = edit_width
self._default_text = default_text
self._hide_input = hide_input
if self._interrupt_warning is None:
self._interrupt_warning = tr('Are you sure you want to reset this setting?') + '\n'
title = f'* {title}' if not self._allow_skip else title
self._frame = FrameProperties(title, FrameStyle.MAX)
self._title_vp: Viewport | None = None
self._header_vp: Viewport | None = None
self._input_vp: EditViewport | None = None
self._info_vp: Viewport | None = None
self._set_default_info = True
self._only_ascii_text = ViewportEntry(tr('Only ASCII characters are supported'), 0, 0, STYLE.NORMAL)
self._init_viewports()
self._last_state: Result[str] | None = None
self._help_active = False
self._current_text = default_text or ''
self._real_input = default_text or ''
def _init_viewports(self) -> None:
y_offset = 0
self._title_vp = Viewport(self._max_width, 2, 0, y_offset)
y_offset += 2
if self._header_entries:
header_height = len(self._header_entries)
self._header_vp = Viewport(self._max_width, header_height, 0, y_offset, alignment=self._alignment)
y_offset += header_height
self._input_vp = EditViewport(
self._max_width,
self._edit_width,
3,
0,
y_offset,
self._process_edit_key,
frame=self._frame,
alignment=self._alignment,
hide_input=self._hide_input,
)
y_offset += 3
self._info_vp = Viewport(self._max_width, 1, 0, y_offset, alignment=self._alignment)
def input(self) -> Result[str]:
result = Tui.run(self)
assert not result.has_item() or isinstance(result.text(), str)
self._clear_all()
return result
@override
def resize_win(self) -> None:
self._draw()
def _clear_all(self) -> None:
if self._title_vp:
self._title_vp.erase()
if self._header_vp:
self._header_vp.erase()
if self._input_vp:
self._input_vp.erase()
if self._info_vp:
self._info_vp.erase()
def _get_input_text(self) -> str | None:
assert self._input_vp
assert self._info_vp
text = self._real_input
self.clear_all()
if self._validator:
if (err := self._validator(text)) is not None:
self.clear_all()
entry = ViewportEntry(err, 0, 0, STYLE.ERROR)
self._info_vp.update([entry], 0)
self._set_default_info = False
if self._hide_input:
self._real_input = ''
return None
return text
def _draw(self) -> None:
if self._title_vp:
help_text = self.help_text()
help_entry = ViewportEntry(help_text, 0, 0, STYLE.NORMAL)
self._title_vp.update([help_entry], 0)
if self._header_entries and self._header_vp:
self._header_vp.update(self._header_entries, 0)
if self._input_vp:
self._input_vp.update()
if self._set_default_info and self._info_vp:
self._info_vp.update([self._only_ascii_text], 0)
self._input_vp.edit(default_text=self._real_input)
@override
def kickoff(self, win: curses.window) -> Result[str]:
try:
self._draw()
except KeyboardInterrupt:
if not self._handle_interrupt():
return self.kickoff(win)
else:
self._last_state = Result(ResultType.Reset, None)
if self._last_state is None:
return self.kickoff(win)
if self._last_state.type_ == ResultType.Selection:
text = self._get_input_text()
if text is None:
return self.kickoff(win)
else:
if not text and not self._allow_skip:
return self.kickoff(win)
return Result(ResultType.Selection, text)
return self._last_state
def _process_edit_key(self, key: int) -> int:
key_handles = MenuKeys.from_ord(key)
if self._help_active:
if MenuKeys.ESC in key_handles:
self._help_active = False
self.clear_help_win()
return 7
return 0
# remove standard keys from the list of key handles
key_handles = [key for key in key_handles if key != MenuKeys.STD_KEYS]
# regular key stroke should be passed to the editor
if key_handles:
special_key = key_handles[0]
match special_key:
case MenuKeys.HELP:
assert self._input_vp
self._current_text = self._input_vp.textbox_value()
self._clear_all()
self._help_active = True
self._show_help()
return 0
case MenuKeys.ESC:
if self._allow_skip:
self._last_state = Result(ResultType.Skip, None)
key = 7
case MenuKeys.ACCEPT:
self._last_state = Result(ResultType.Selection, None)
key = 7
case MenuKeys.BACKSPACE:
if len(self._real_input) > 0:
self._real_input = self._real_input[:-1]
case _:
if isprint(key):
self._real_input += chr(key)
if self._hide_input:
key = 42
else:
try:
if isprint(key):
self._real_input += chr(key)
if self._hide_input:
key = 42
except Exception:
pass
return key
def _handle_interrupt(self) -> bool:
if self._allow_reset:
if self._interrupt_warning:
return self._confirm_interrupt(self._interrupt_warning)
else:
return False
return True
class SelectMenu[ValueT](AbstractCurses[ValueT]):
def __init__(
self,
group: MenuItemGroup,
multi: bool = False,
orientation: Orientation = Orientation.VERTICAL,
alignment: Alignment = Alignment.LEFT,
columns: int = 1,
column_spacing: int = 10,
header: str | None = None,
frame: FrameProperties | None = None,
cursor_char: str = '>',
search_enabled: bool = True,
allow_skip: bool = False,
allow_reset: bool = False,
reset_warning_msg: str | None = None,
preview_style: PreviewStyle = PreviewStyle.NONE,
preview_size: float | Literal['auto'] = 0.2,
preview_frame: FrameProperties | None = None,
additional_title: str | None = None,
):
super().__init__()
self._multi = multi
self._cursor_char = f'{cursor_char} '
self._search_enabled = search_enabled
self._allow_skip = allow_skip
self._allow_reset = allow_reset
self._active_search = False
self._help_active = False
self._item_group = group
self._preview_style = preview_style
self._preview_frame = preview_frame
self._orientation = orientation
self._column_spacing = column_spacing
self._alignment = alignment
self._footers = self._footer_entries()
self._frame = frame
self._interrupt_warning = reset_warning_msg
self._header = header
self._additional_title = additional_title
self._header_entries = []
if header:
self._header_entries = self.get_header_entries(header)
if self._interrupt_warning is None:
self._interrupt_warning = tr('Are you sure you want to reset this setting?') + '\n'
if self._orientation == Orientation.HORIZONTAL:
self._horizontal_cols = columns
else:
self._horizontal_cols = 1
self._prev_scroll_pos: int = 0
self._visible_entries: list[ViewportEntry] = []
self._max_height, self._max_width = Tui.t().max_yx
self._title_vp: Viewport | None = None
self._header_vp: Viewport | None = None
self._footer_vp: Viewport | None = None
self._menu_vp: Viewport | None = None
self._preview_vp: Viewport | None = None
self._init_viewports(preview_size)
assert self._menu_vp is not None
self._items_state: MenuItemsState = MenuItemsState( # type: ignore[unreachable]
self._item_group,
total_cols=self._horizontal_cols,
total_rows=self._menu_vp.height,
with_frame=self._frame is not None,
)
def run(self) -> Result[ValueT]:
result = Tui.run(self)
self._clear_all()
return result
@override
def kickoff(self, win: curses.window) -> Result[ValueT]:
self._draw()
while True:
try:
if not self._help_active:
self._draw()
key = win.getch()
ret = self._process_input_key(key)
if ret is not None:
return ret
except KeyboardInterrupt:
if self._handle_interrupt():
return Result(ResultType.Reset, None)
else:
return self.kickoff(win)
@override
def resize_win(self) -> None:
self._draw()
def _clear_all(self) -> None:
self.clear_help_win()
if self._header_vp:
self._header_vp.erase()
if self._menu_vp:
self._menu_vp.erase()
if self._preview_vp:
self._preview_vp.erase()
if self._footer_vp:
self._footer_vp.erase()
if self._title_vp:
self._title_vp.erase()
def _footer_entries(self) -> list[ViewportEntry]:
if self._active_search:
filter_pattern = self._item_group.filter_pattern
return [ViewportEntry(f'/{filter_pattern}', 0, 0, STYLE.NORMAL)]
return []
def _init_viewports(self, arg_prev_size: float | Literal['auto']) -> None:
footer_height = 2 # possible filter at the bottom
y_offset = 0
self._title_vp = Viewport(self._max_width, 2, 0, y_offset)
y_offset += 2
if self._header_entries:
header_height = len(self._header_entries)
self._header_vp = Viewport(
self._max_width,
header_height,
0,
y_offset,
alignment=self._alignment,
)
y_offset += header_height
prev_offset = y_offset + footer_height
prev_size = self._determine_prev_size(arg_prev_size, offset=prev_offset)
available_height = self._max_height - y_offset - footer_height
match self._preview_style:
case PreviewStyle.BOTTOM:
menu_height = available_height - prev_size
self._menu_vp = Viewport(
self._max_width,
menu_height,
0,
y_offset,
frame=self._frame,
alignment=self._alignment,
)
self._preview_vp = Viewport(
self._max_width,
prev_size,
0,
menu_height + y_offset,
frame=self._preview_frame,
)
case PreviewStyle.RIGHT:
menu_width = self._max_width - prev_size
self._menu_vp = Viewport(
menu_width,
available_height,
0,
y_offset,
frame=self._frame,
alignment=self._alignment,
)
self._preview_vp = Viewport(
prev_size,
available_height,
menu_width,
y_offset,
frame=self._preview_frame,
alignment=self._alignment,
)
case PreviewStyle.TOP:
menu_height = available_height - prev_size
self._menu_vp = Viewport(
self._max_width,
menu_height,
0,
prev_size + y_offset,
frame=self._frame,
alignment=self._alignment,
)
self._preview_vp = Viewport(
self._max_width,
prev_size,
0,
y_offset,
frame=self._preview_frame,
alignment=self._alignment,
)
case PreviewStyle.NONE:
self._menu_vp = Viewport(
self._max_width,
available_height,
0,
y_offset,
frame=self._frame,
alignment=self._alignment,
)
self._footer_vp = Viewport(
self._max_width,
footer_height,
0,
self._max_height - footer_height,
)
def _determine_prev_size(
self,
preview_size: float | Literal['auto'],
offset: int = 0,
) -> int:
if not isinstance(preview_size, float) and preview_size != 'auto':
raise ValueError('preview size must be a float or "auto"')
prev_size: int = 0
if preview_size == 'auto':
match self._preview_style:
case PreviewStyle.RIGHT:
menu_width = self._item_group.get_max_width() + 5
if self._multi:
menu_width += 5
prev_size = self._max_width - menu_width
case PreviewStyle.BOTTOM:
menu_height = len(self._item_group.items) + 1 # leave empty line between menu and preview
prev_size = self._max_height - offset - menu_height
case PreviewStyle.TOP:
menu_height = len(self._item_group.items)
prev_size = self._max_height - offset - menu_height
else:
match self._preview_style:
case PreviewStyle.RIGHT:
prev_size = int(self._max_width * preview_size)
case PreviewStyle.BOTTOM:
prev_size = int((self._max_height - offset) * preview_size)
case PreviewStyle.TOP:
prev_size = int((self._max_height - offset) * preview_size)
return prev_size
def _draw(self) -> None:
footer_entries = self._footer_entries()
items = self._items_state.get_view_items()
vp_entries = self._item_to_vp_entry(items)
if self._title_vp:
title_text = self.help_text()
if self._additional_title is not None:
title_text += f' {self._additional_title}'
title_vp_entry = ViewportEntry(title_text, 0, 0, STYLE.NORMAL)
self._update_viewport(self._title_vp, [title_vp_entry])
if self._header_vp:
self._update_viewport(self._header_vp, self._header_entries)
if self._menu_vp:
self._update_viewport(self._menu_vp, vp_entries)
if vp_entries:
self._update_preview()
elif self._preview_vp:
self._update_viewport(self._preview_vp, [])
if self._footer_vp:
self._update_viewport(self._footer_vp, footer_entries, 0)
def _update_viewport(
self,
viewport: Viewport,
entries: list[ViewportEntry],
cur_pos: int = 0,
) -> None:
if entries:
viewport.update(entries, cur_pos=cur_pos)
else:
viewport.update([])
def _get_col_widths(self, items: list[list[MenuItem]]) -> list[int]:
cols_widths = self._calc_col_widths(items, self._horizontal_cols)
return [col_width + len(self._cursor_char) + self._item_distance() for col_width in cols_widths]
def _item_distance(self) -> int:
if self._horizontal_cols == 1:
return 0
else:
return self._column_spacing
def _item_to_vp_entry(self, items: list[list[MenuItem]]) -> list[ViewportEntry]:
entries = []
cols_widths = self._get_col_widths(items)
for row_idx, row in enumerate(items):
cur_pos = len(self._cursor_char)
for col_idx, cell in enumerate(row):
cur_text = ''
style = STYLE.NORMAL
if cell == self._item_group.focus_item:
cur_text = self._cursor_char
style = STYLE.MENU_STYLE
entries += [ViewportEntry(cur_text, row_idx, cur_pos - len(self._cursor_char), STYLE.CURSOR_STYLE)]
menu_item_text = self._menu_item_text(cell)
entries += [ViewportEntry(menu_item_text, row_idx, cur_pos, style)]
cur_pos += len(menu_item_text)
if col_idx < len(row) - 1:
spacer_len = cols_widths[col_idx] - len(menu_item_text)
entries += [ViewportEntry(' ' * spacer_len, row_idx, cur_pos, STYLE.NORMAL)]
cur_pos += spacer_len
return entries
def _calc_col_widths(self, rows: list[list[MenuItem]], columns: int) -> list[int]:
col_widths = []
for row in rows:
col_entries = []
for column in range(columns):
if column < len(row):
col_entries += [len(row[column].text)]
if col_entries:
col_widths += [max(col_entries)]
return col_widths
def _menu_item_text(self, item: MenuItem) -> str:
item_text = ''
if self._multi and not item.is_empty():
item_text += self._multi_prefix(item)
item_text += self._item_group.get_item_text(item)
return item_text
def _update_preview(self) -> None:
if not self._preview_vp:
return
focus_item = self._item_group.focus_item
if not focus_item or focus_item.preview_action is None:
self._preview_vp.update([])
return
action_text = focus_item.preview_action(focus_item)
if not action_text:
self._preview_vp.update([])
return
preview_text = action_text.split('\n')
entries = [ViewportEntry(e, idx, 0, STYLE.NORMAL) for idx, e in enumerate(preview_text)]
total_prev_rows = max([e.row for e in entries]) + 1 # rows start with 0 and we need the count
available_rows = self._preview_vp.height - 2 # for the preview frame
self._calc_prev_scroll_pos(entries, total_prev_rows)
prev_entries = self._get_scroll_win_prev_entries(entries, total_prev_rows, available_rows)
scroll_pct = self._get_scroll_pct(total_prev_rows, available_rows)
self._preview_vp.update(prev_entries, scroll_pos=scroll_pct)
def _get_scroll_pct(
self,
total_prev_rows: int,
available_rows: int,
) -> int | None:
assert self._preview_vp is not None
if total_prev_rows <= available_rows:
return None
pct = int(self._prev_scroll_pos / total_prev_rows * 100)
if pct + SCROLL_INTERVAL > 100:
pct = 100
if pct < 0:
pct = 0
return pct
def _get_scroll_win_prev_entries(
self,
entries: list[ViewportEntry],
total_prev_rows: int,
available_rows: int,
) -> list[ViewportEntry]:
assert self._preview_vp is not None
if total_prev_rows <= available_rows:
start_row = 0
else:
start_row = self._prev_scroll_pos
end_row = start_row + available_rows
if end_row > total_prev_rows:
end_row = total_prev_rows
prev_entries = [e for e in entries if start_row <= e.row < end_row]
# normalize the rows
for e in prev_entries:
e.row -= start_row
return prev_entries
def _calc_prev_scroll_pos(
self,
entries: list[ViewportEntry],
total_prev_rows: int,
) -> None:
if self._prev_scroll_pos >= total_prev_rows:
self._prev_scroll_pos = total_prev_rows - 2
elif self._prev_scroll_pos < 0:
self._prev_scroll_pos = 0
def _multi_prefix(self, item: MenuItem) -> str:
if item.read_only:
return ' '
elif self._item_group.is_item_selected(item):
return '[x] '
else:
return '[ ] '
def _handle_interrupt(self) -> bool:
if self._allow_reset and self._interrupt_warning:
return self._confirm_interrupt(self._interrupt_warning)
else:
return False
def _process_input_key(self, key: int) -> Result[ValueT] | None:
key_handles = MenuKeys.from_ord(key)
if self._help_active:
if MenuKeys.ESC in key_handles:
self._help_active = False
self.clear_help_win()
self._draw()
return None
# special case when search is currently active
if self._active_search:
if MenuKeys.STD_KEYS in key_handles:
self._item_group.append_filter(chr(key))
self._draw()
return None
elif MenuKeys.BACKSPACE in key_handles:
self._item_group.reduce_filter()
self._draw()
return None
# remove standard keys from the list of key handles
key_handles = [key for key in key_handles if key != MenuKeys.STD_KEYS]
if len(key_handles) > 1:
decoded = MenuKeys.decode(key)
handles = ', '.join(k.name for k in key_handles)
raise ValueError(f'Multiple key matches for key {decoded}: {handles}')
elif len(key_handles) == 0:
return None
handle = key_handles[0]
match handle:
case MenuKeys.HELP:
self._help_active = True
self._clear_all()
self._show_help()
return None
case MenuKeys.ACCEPT:
if self._multi:
if self._item_group.is_mandatory_fulfilled():
if self._item_group.focus_item is not None:
if self._item_group.focus_item not in self._item_group.selected_items:
self._item_group.selected_items.append(self._item_group.focus_item)
return Result(ResultType.Selection, self._item_group.selected_items)
else:
item = self._item_group.focus_item
if item:
if item.action:
item.value = item.action(item.value)
if self._item_group.is_mandatory_fulfilled():
return Result(ResultType.Selection, self._item_group.focus_item)
return None
case MenuKeys.MENU_DOWN | MenuKeys.MENU_RIGHT:
self._focus_item('next')
case MenuKeys.MENU_UP | MenuKeys.MENU_LEFT:
self._focus_item('prev')
case MenuKeys.MENU_START:
self._focus_item('first')
case MenuKeys.MENU_END:
self._focus_item('last')
case MenuKeys.MULTI_SELECT:
if self._multi:
self._item_group.select_current_item()
case MenuKeys.ENABLE_SEARCH:
if self._search_enabled and not self._active_search:
self._active_search = True
self._item_group.set_filter_pattern('')
case MenuKeys.ESC:
if self._active_search:
self._active_search = False
self._item_group.set_filter_pattern('')
else:
if self._allow_skip:
return Result(ResultType.Skip, None)
case MenuKeys.NUM_KEYS:
self._item_group.focus_index(key - 49)
case MenuKeys.SCROLL_DOWN:
self._prev_scroll_pos += SCROLL_INTERVAL
case MenuKeys.SCROLL_UP:
self._prev_scroll_pos -= SCROLL_INTERVAL
case _:
pass
return None
def _focus_item(self, direction: Literal['next', 'prev', 'first', 'last']) -> None:
# reset the preview scroll as the newly focused item
# may have a different preview row count and it'll blow up
self._prev_scroll_pos = 0
match direction:
case 'next':
self._item_group.focus_next()
case 'prev':
self._item_group.focus_prev()
case 'first':
self._item_group.focus_first()
case 'last':
self._item_group.focus_last()
class Tui:
_t: ClassVar[Self | None] = None
def __enter__(self) -> None:
if Tui._t is None:
tui = self.init()
Tui._t = tui
def __exit__(self, exc_type: type[BaseException] | None, exc_value: BaseException | None, traceback: TracebackType | None) -> None:
self.stop()
@property
def screen(self) -> curses.window:
return self._screen
@classmethod
def t(cls) -> Self:
assert cls._t is not None
return cls._t
@staticmethod
def shutdown() -> None:
if Tui._t is None:
return
Tui.t().stop()
def init(self) -> Self:
self._screen = curses.initscr()
curses.noecho()
curses.cbreak()
curses.curs_set(0)
curses.set_escdelay(25)
self._screen.keypad(True)
self._screen.scrollok(True)
if curses.has_colors():
curses.start_color()
self._set_up_colors()
signal.signal(signal.SIGWINCH, self._sig_win_resize)
self._screen.refresh()
return self
def stop(self) -> None:
try:
curses.nocbreak()
try:
self.screen.keypad(False)
except Exception:
pass
curses.echo()
curses.curs_set(True)
curses.endwin()
except Exception:
# this may happen when curses has not been initialized
pass
Tui._t = None
@staticmethod
def print(
text: str,
row: int = 0,
col: int = 0,
endl: str = '\n',
clear_screen: bool = False,
) -> None:
if clear_screen:
os.system('clear')
if Tui._t is None:
print(text, end=endl)
sys.stdout.flush()
return
# will append the row at the very bottom of the screen
# and also scroll the existing text up by 1 line
if row == -1:
last_row = Tui.t().max_yx[0] - 1
Tui.t().screen.scroll(1)
Tui.t().screen.addstr(last_row, col, text)
else:
Tui.t().screen.addstr(row, col, text)
Tui.t().screen.refresh()
@property
def max_yx(self) -> tuple[int, int]:
return self._screen.getmaxyx()
@staticmethod
def run[ValueT](component: AbstractCurses[ValueT]) -> Result[ValueT]:
if Tui._t is None:
tui = Tui().init()
tui.screen.clear()
results = tui._main_loop(component)
Tui().stop()
return results
else:
tui = Tui._t
tui.screen.clear()
return Tui.t()._main_loop(component)
def _sig_win_resize(self, signum: int, frame: FrameType | None) -> None:
if hasattr(self, '_component') and self._component is not None: # pylint: disable=no-member
self._component.resize_win() # pylint: disable=no-member
def _main_loop[ValueT](self, component: AbstractCurses[ValueT]) -> Result[ValueT]:
self._screen.refresh()
return component.kickoff(self._screen)
def _reset_terminal(self) -> None:
os.system('reset')
def _set_up_colors(self) -> None:
curses.init_pair(STYLE.NORMAL.value, curses.COLOR_WHITE, curses.COLOR_BLACK)
curses.init_pair(STYLE.CURSOR_STYLE.value, curses.COLOR_CYAN, curses.COLOR_BLACK)
curses.init_pair(STYLE.MENU_STYLE.value, curses.COLOR_WHITE, curses.COLOR_BLUE)
curses.init_pair(STYLE.MENU_STYLE.value, curses.COLOR_WHITE, curses.COLOR_BLUE)
curses.init_pair(STYLE.HELP.value, curses.COLOR_GREEN, curses.COLOR_BLACK)
curses.init_pair(STYLE.ERROR.value, curses.COLOR_RED, curses.COLOR_BLACK)
def get_color(self, color: STYLE) -> int:
return curses.color_pair(color.value)
================================================
FILE: archinstall/tui/help.py
================================================
from dataclasses import dataclass, field
from enum import Enum
from archinstall.lib.translationhandler import tr
class HelpTextGroupId(Enum):
GENERAL = 'General'
NAVIGATION = 'Navigation'
SELECTION = 'Selection'
SEARCH = 'Search'
@dataclass
class HelpText:
description: str
keys: list[str] = field(default_factory=list)
@dataclass
class HelpGroup:
group_id: HelpTextGroupId
group_entries: list[HelpText]
def get_desc_width(self) -> int:
return max([len(e.description) for e in self.group_entries])
def get_key_width(self) -> int:
return max([len(', '.join(e.keys)) for e in self.group_entries])
class Help:
# the groups needs to be classmethods not static methods
# because they rely on the DeferredTranslation setup first;
# if they are static methods, they will be called before the
# translation setup is done
@staticmethod
def general() -> HelpGroup:
return HelpGroup(
group_id=HelpTextGroupId.GENERAL,
group_entries=[
HelpText(tr('Show help'), ['Ctrl+h']),
HelpText(tr('Exit help'), ['Esc']),
],
)
@staticmethod
def navigation() -> HelpGroup:
return HelpGroup(
group_id=HelpTextGroupId.NAVIGATION,
group_entries=[
HelpText(tr('Preview scroll up'), ['PgUp']),
HelpText(tr('Preview scroll down'), ['PgDown']),
HelpText(tr('Move up'), ['k', '↑']),
HelpText(tr('Move down'), ['j', '↓']),
HelpText(tr('Move right'), ['l', '→']),
HelpText(tr('Move left'), ['h', '←']),
HelpText(tr('Jump to entry'), ['1..9']),
],
)
@staticmethod
def selection() -> HelpGroup:
return HelpGroup(
group_id=HelpTextGroupId.SELECTION,
group_entries=[
HelpText(tr('Skip selection (if available)'), ['Esc']),
HelpText(tr('Reset selection (if available)'), ['Ctrl+c']),
HelpText(tr('Select on single select'), ['Enter']),
HelpText(tr('Select on multi select'), ['Space', 'Tab']),
HelpText(tr('Reset'), ['Ctrl-C']),
HelpText(tr('Skip selection menu'), ['Esc']),
],
)
@staticmethod
def search() -> HelpGroup:
return HelpGroup(
group_id=HelpTextGroupId.SEARCH,
group_entries=[
HelpText(tr('Start search mode'), ['/']),
HelpText(tr('Exit search mode'), ['Esc']),
],
)
@staticmethod
def get_help_text() -> str:
help_output = ''
help_texts = [
Help.general(),
Help.navigation(),
Help.selection(),
Help.search(),
]
max_desc_width = max([help.get_desc_width() for help in help_texts]) + 2
max_key_width = max([help.get_key_width() for help in help_texts])
for help_group in help_texts:
help_output += f'{help_group.group_id.value}\n'
divider_len = max_desc_width + max_key_width
help_output += '-' * divider_len + '\n'
for entry in help_group.group_entries:
help_output += entry.description.ljust(max_desc_width, ' ') + ', '.join(entry.keys) + '\n'
help_output += '\n'
return help_output
================================================
FILE: archinstall/tui/menu_item.py
================================================
from collections.abc import Callable
from dataclasses import dataclass, field
from enum import Enum
from functools import cached_property
from typing import Any, ClassVar, Self, override
from archinstall.lib.translationhandler import tr
from archinstall.lib.utils.encoding import unicode_ljust
@dataclass
class MenuItem:
text: str
value: Any | None = None
action: Callable[[Any], Any] | None = None
enabled: bool = True
read_only: bool = False
mandatory: bool = False
dependencies: list[str | Callable[[], bool]] = field(default_factory=list)
dependencies_not: list[str] = field(default_factory=list)
display_action: Callable[[Any], str] | None = None
preview_action: Callable[[Self], str | None] | None = None
key: str | None = None
_id: str = ''
_yes: ClassVar[Self | None] = None
_no: ClassVar[Self | None] = None
def __post_init__(self) -> None:
if self.key is not None:
self._id = self.key
else:
self._id = str(id(self))
@override
def __hash__(self) -> int:
return hash(self._id)
def get_id(self) -> str:
return self._id
def get_value(self) -> Any:
assert self.value is not None
return self.value
@classmethod
def yes(cls, action: Callable[[Any], Any] | None = None) -> Self:
if cls._yes is None:
cls._yes = cls(tr('Yes'), value=True, key='yes', action=action)
return cls._yes
@classmethod
def no(cls, action: Callable[[Any], Any] | None = None) -> Self:
if cls._no is None:
cls._no = cls(tr('No'), value=False, key='no', action=action)
return cls._no
def is_empty(self) -> bool:
return self.text == '' or self.text is None
def has_value(self) -> bool:
if self.value is None:
return False
elif isinstance(self.value, list) and len(self.value) == 0:
return False
elif isinstance(self.value, dict) and len(self.value) == 0:
return False
else:
return True
def get_display_value(self) -> str | None:
if self.display_action is not None:
return self.display_action(self.value)
return None
class MenuItemGroup:
def __init__(
self,
menu_items: list[MenuItem],
focus_item: MenuItem | None = None,
default_item: MenuItem | None = None,
sort_items: bool = False,
sort_case_sensitive: bool = True,
checkmarks: bool = False,
) -> None:
if len(menu_items) < 1:
raise ValueError('Menu must have at least one item')
if sort_items:
if sort_case_sensitive:
menu_items = sorted(menu_items, key=lambda x: x.text)
else:
menu_items = sorted(menu_items, key=lambda x: x.text.lower())
self._filter_pattern: str = ''
self._checkmarks: bool = checkmarks
self._menu_items: list[MenuItem] = menu_items
self.focus_item: MenuItem | None = focus_item
self.selected_items: list[MenuItem] = []
self.default_item: MenuItem | None = default_item
if not focus_item:
self.focus_first()
if self.focus_item not in self.items:
raise ValueError(f'Selected item not in menu: {self.focus_item}')
def add_item(self, item: MenuItem) -> None:
self._menu_items.append(item)
delattr(self, 'items') # resetting the cache
def find_by_id(self, item_id: str) -> MenuItem:
for item in self._menu_items:
if item.get_id() == item_id:
return item
raise ValueError(f'No item found for id: {item_id}')
def find_by_key(self, key: str) -> MenuItem:
for item in self._menu_items:
if item.key == key:
return item
raise ValueError(f'No item found for key: {key}')
def get_enabled_items(self) -> list[MenuItem]:
return [it for it in self.items if self.is_enabled(it)]
@classmethod
def yes_no(cls) -> Self:
return cls(
[MenuItem.yes(), MenuItem.no()],
sort_items=True,
)
@classmethod
def from_enum(
cls,
enum_cls: type[Enum],
sort_items: bool = False,
preset: Enum | None = None,
) -> Self:
items = [MenuItem(elem.value, value=elem) for elem in enum_cls]
group = cls(items, sort_items=sort_items)
if preset is not None:
group.set_selected_by_value(preset)
return group
def set_preview_for_all(self, action: Callable[[Any], str | None]) -> None:
for item in self.items:
item.preview_action = action
def set_focus_by_value(self, value: Any) -> None:
for item in self._menu_items:
if item.value == value:
self.focus_item = item
break
def set_default_by_value(self, value: Any) -> None:
for item in self._menu_items:
if item.value == value:
self.default_item = item
break
def set_selected_by_value(self, values: Any | list[Any] | None) -> None:
if values is None:
return
if not isinstance(values, list):
values = [values]
for item in self._menu_items:
if item.value in values:
self.selected_items.append(item)
if values:
self.set_focus_by_value(values[0])
def get_focused_index(self) -> int | None:
items = self.get_enabled_items()
if self.focus_item and items:
try:
return items.index(self.focus_item)
except ValueError:
# on large menus (15k+) when filtering very quickly
# the index search is too slow while the items are reduced
# by the filter and it will blow up as it cannot find the
# focus item
pass
return None
def index_focus(self) -> int | None:
if self.focus_item and self.items:
try:
return self.items.index(self.focus_item)
except ValueError:
# on large menus (15k+) when filtering very quickly
# the index search is too slow while the items are reduced
# by the filter and it will blow up as it cannot find the
# focus item
pass
return None
@property
def size(self) -> int:
return len(self.items)
def get_max_width(self) -> int:
# use the menu_items not the items here otherwise the preview
# will get resized all the time when a filter is applied
return max([len(self.get_item_text(item)) for item in self._menu_items])
@cached_property
def _max_items_text_width(self) -> int:
return max([len(item.text) for item in self._menu_items])
def get_item_text(self, item: MenuItem) -> str:
if item.is_empty():
return ''
max_width = self._max_items_text_width
display_text = item.get_display_value()
default_text = self._default_suffix(item)
text = unicode_ljust(str(item.text), max_width, ' ')
spacing = ' ' * 4
if display_text:
text = f'{text}{spacing}{display_text}'
elif self._checkmarks:
from archinstall.tui.types import Chars
if item.has_value():
if item.get_value() is not False:
text = f'{text}{spacing}{Chars.Check}'
else:
text = item.text
if default_text:
text = f'{text} {default_text}'
return text.rstrip(' ')
def _default_suffix(self, item: MenuItem) -> str:
if self.default_item == item:
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()
items = filter(lambda item: item.is_empty() or pattern in item.text.lower(), self._menu_items)
l_items = sorted(items, key=self._items_score)
return l_items
def _items_score(self, item: MenuItem) -> int:
pattern = self._filter_pattern.lower()
if item.text.lower().startswith(pattern):
return 0
return 1
@property
def filter_pattern(self) -> str:
return self._filter_pattern
def has_filter(self) -> bool:
return self._filter_pattern != ''
def set_filter_pattern(self, pattern: str) -> None:
self._filter_pattern = pattern
delattr(self, 'items') # resetting the cache
self.focus_first()
def append_filter(self, pattern: str) -> None:
self._filter_pattern += pattern
delattr(self, 'items') # resetting the cache
self.focus_first()
def reduce_filter(self) -> None:
self._filter_pattern = self._filter_pattern[:-1]
delattr(self, 'items') # resetting the cache
self.focus_first()
def _reload_focus_item(self) -> None:
if len(self.items) > 0:
if self.focus_item not in self.items:
self.focus_first()
else:
self.focus_item = None
def is_item_selected(self, item: MenuItem) -> bool:
return item in self.selected_items
def select_current_item(self) -> None:
if self.focus_item:
if self.focus_item in self.selected_items:
self.selected_items.remove(self.focus_item)
else:
self.selected_items.append(self.focus_item)
def focus_index(self, index: int) -> None:
enabled = self.get_enabled_items()
self.focus_item = enabled[index]
def focus_first(self) -> None:
if len(self.items) == 0:
return
first_item: MenuItem | None = self.items[0]
if first_item and not self._is_selectable(first_item):
first_item = self._find_next_selectable_item(self.items, first_item, 1)
if first_item is not None:
self.focus_item = first_item
def focus_last(self) -> None:
if len(self.items) == 0:
return
last_item: MenuItem | None = self.items[-1]
if last_item and not self._is_selectable(last_item):
last_item = self._find_next_selectable_item(self.items, last_item, -1)
if last_item is not None:
self.focus_item = last_item
def focus_prev(self, skip_empty: bool = True) -> None:
# e.g. when filter shows no items
if self.focus_item is None:
return
item = self._find_next_selectable_item(self.items, self.focus_item, -1)
if item is not None:
self.focus_item = item
def focus_next(self, skip_not_enabled: bool = True) -> None:
# e.g. when filter shows no items
if self.focus_item is None:
return
item = self._find_next_selectable_item(self.items, self.focus_item, 1)
if item is not None:
self.focus_item = item
def _find_next_selectable_item(
self,
items: list[MenuItem],
start_item: MenuItem,
direction: int,
) -> MenuItem | None:
start_index = self.items.index(start_item)
n = len(items)
current_index = start_index
for _ in range(n):
current_index = (current_index + direction) % n
if self._is_selectable(items[current_index]):
return items[current_index]
return None
def is_mandatory_fulfilled(self) -> bool:
for item in self._menu_items:
if item.mandatory and not item.value:
return False
return True
def max_item_width(self) -> int:
spaces = [len(str(it.text)) for it in self.items]
if spaces:
return max(spaces)
return 0
def _is_selectable(self, item: MenuItem) -> bool:
if item.is_empty():
return False
elif item.read_only:
return False
return self.is_enabled(item)
def is_enabled(self, item: MenuItem) -> bool:
if not item.enabled:
return False
for dep in item.dependencies:
if isinstance(dep, str):
item = self.find_by_key(dep)
if not item.value or not self.is_enabled(item):
return False
else:
return dep()
for dep_not in item.dependencies_not:
item = self.find_by_key(dep_not)
if item.value is not None:
return False
return True
class MenuItemsState:
def __init__(
self,
item_group: MenuItemGroup,
total_cols: int,
total_rows: int,
with_frame: bool,
) -> None:
self._item_group = item_group
self._total_cols = total_cols
self._total_rows = total_rows - 2 if with_frame else total_rows
self._prev_row_idx: int = -1
self._prev_visible_rows: list[int] = []
self._view_items: list[list[MenuItem]] = []
def _determine_focus_row(self) -> int | None:
focus_index = self._item_group.index_focus()
if focus_index is None:
return None
row_index = focus_index // self._total_cols
return row_index
def get_view_items(self) -> list[list[MenuItem]]:
enabled_items = self._item_group.get_enabled_items()
focus_row_idx = self._determine_focus_row()
if focus_row_idx is None:
return []
start, end = 0, 0
if len(self._view_items) == 0 or self._prev_row_idx == -1 or focus_row_idx == 0: # initial setup
if focus_row_idx < self._total_rows:
start = 0
end = self._total_rows
elif focus_row_idx > len(enabled_items) - self._total_rows:
start = len(enabled_items) - self._total_rows
end = len(enabled_items)
else:
start = focus_row_idx
end = focus_row_idx + self._total_rows
elif len(enabled_items) <= self._total_rows: # the view can handle all items
start = 0
end = self._total_rows
elif not self._item_group.has_filter() and focus_row_idx in self._prev_visible_rows: # focus is in the same view
self._prev_row_idx = focus_row_idx
return self._view_items
else:
if self._item_group.has_filter():
start = focus_row_idx
end = focus_row_idx + self._total_rows
else:
delta = focus_row_idx - self._prev_row_idx
if delta > 0: # cursor is on the bottom most row
start = focus_row_idx - self._total_rows + 1
end = focus_row_idx + 1
else: # focus is on the top most row
start = focus_row_idx
end = focus_row_idx + self._total_rows
self._view_items = self._get_view_items(enabled_items, start, end)
self._prev_visible_rows = list(range(start, end))
self._prev_row_idx = focus_row_idx
return self._view_items
def _get_view_items(
self,
items: list[MenuItem],
start_row: int,
total_rows: int,
) -> list[list[MenuItem]]:
groups: list[list[MenuItem]] = []
nr_items = self._total_cols * min(total_rows, len(items))
for x in range(start_row, nr_items, self._total_cols):
groups.append(
items[x : x + self._total_cols],
)
return groups
def _max_visible_items(self) -> int:
return self._total_cols * self._total_rows
def _remaining_next_spots(self) -> int:
return self._max_visible_items() - self._prev_row_idx
def _remaining_prev_spots(self) -> int:
return self._max_visible_items() - self._remaining_next_spots()
================================================
FILE: archinstall/tui/result.py
================================================
from dataclasses import dataclass
from enum import Enum, auto
from archinstall.tui.menu_item import MenuItem
class ResultType(Enum):
Selection = auto()
Skip = auto()
Reset = auto()
@dataclass
class Result[ValueT]:
type_: ResultType
_item: MenuItem | list[MenuItem] | str | None
def has_item(self) -> bool:
return self._item is not None
def get_value(self) -> ValueT:
return self.item().get_value() # type: ignore[no-any-return]
def get_values(self) -> list[ValueT]:
return [i.get_value() for i in self.items()]
def item(self) -> MenuItem:
assert self._item is not None and isinstance(self._item, MenuItem)
return self._item
def items(self) -> list[MenuItem]:
assert self._item is not None and isinstance(self._item, list)
return self._item
def text(self) -> str:
assert self._item is not None and isinstance(self._item, str)
return self._item
================================================
FILE: archinstall/tui/types.py
================================================
import curses
from dataclasses import dataclass
from enum import Enum, auto
from typing import Self
SCROLL_INTERVAL = 10
class STYLE(Enum):
NORMAL = 1
CURSOR_STYLE = 2
MENU_STYLE = 3
HELP = 4
ERROR = 5
class MenuKeys(Enum):
# latin keys
STD_KEYS = frozenset(range(32, 127))
# numbers
NUM_KEYS = frozenset(range(49, 58))
# Menu up: up, k
MENU_UP = frozenset({259, 107})
# Menu down: down, j
MENU_DOWN = frozenset({258, 106})
# Menu left: left, h
MENU_LEFT = frozenset({260, 104})
# Menu right: right, l
MENU_RIGHT = frozenset({261, 108})
# Menu start: home CTRL-a
MENU_START = frozenset({262, 1})
# Menu end: end CTRL-e
MENU_END = frozenset({360, 5})
# Enter
ACCEPT = frozenset({10})
# Selection: space, tab
MULTI_SELECT = frozenset({32, 9})
# Search: /
ENABLE_SEARCH = frozenset({47})
# ESC
ESC = frozenset({27})
# BACKSPACE (search)
BACKSPACE = frozenset({127, 263})
# Help view: ctrl+h
HELP = frozenset({8})
# Scroll up: PGUP
SCROLL_UP = frozenset({339})
# Scroll down: PGDOWN
SCROLL_DOWN = frozenset({338})
@classmethod
def from_ord(cls, key: int) -> list[Self]:
matches: list[Self] = []
for group in cls:
if key in group.value:
matches.append(group)
return matches
@classmethod
def decode(cls, key: int) -> str:
byte_str = curses.keyname(key)
return byte_str.decode('utf-8')
class FrameStyle(Enum):
MAX = auto()
MIN = auto()
@dataclass
class FrameProperties:
header: str
w_frame_style: FrameStyle = FrameStyle.MAX
h_frame_style: FrameStyle = FrameStyle.MAX
@classmethod
def max(cls, header: str) -> Self:
return cls(
header,
FrameStyle.MAX,
FrameStyle.MAX,
)
@classmethod
def min(cls, header: str) -> Self:
return cls(
header,
FrameStyle.MIN,
FrameStyle.MIN,
)
class Orientation(Enum):
VERTICAL = auto()
HORIZONTAL = auto()
class PreviewStyle(Enum):
NONE = auto()
BOTTOM = auto()
RIGHT = auto()
TOP = auto()
# https://www.compart.com/en/unicode/search?q=box+drawings#characters
# https://en.wikipedia.org/wiki/Box-drawing_characters
class Chars:
Horizontal = '─'
Vertical = '│'
Upper_left = '┌'
Upper_right = '┐'
Lower_left = '└'
Lower_right = '┘'
Block = '█'
Triangle_up = '▲'
Triangle_down = '▼'
Check = '+'
Cross = 'x'
Right_arrow = '←'
@dataclass
class ViewportEntry:
text: str
row: int
col: int
style: STYLE
class Alignment(Enum):
LEFT = auto()
CENTER = auto()
@dataclass
class FrameDim:
x_start: int
x_end: int
height: int
def x_delta(self) -> int:
return self.x_end - self.x_start
================================================
FILE: archinstall/tui/ui/__init__.py
================================================
================================================
FILE: archinstall/tui/ui/components.py
================================================
import sys
from abc import ABC, abstractmethod
from collections.abc import Awaitable, Callable
from dataclasses import dataclass
from enum import Enum, auto
from typing import Any, ClassVar, Literal, TypeVar, cast, override
from textual import work
from textual.app import App, ComposeResult
from textual.binding import Binding
from textual.containers import Center, Horizontal, ScrollableContainer, Vertical
from textual.events import Key
from textual.geometry import Offset
from textual.screen import Screen
from textual.validation import Validator
from textual.widgets import Button, DataTable, Footer, Input, Label, LoadingIndicator, OptionList, Rule, SelectionList
from textual.widgets._data_table import RowKey
from textual.widgets.option_list import Option
from textual.widgets.selection_list import Selection
from textual.worker import WorkerCancelled
from archinstall.lib.output import debug
from archinstall.lib.translationhandler import tr
from archinstall.tui.ui.menu_item import MenuItem, MenuItemGroup
from archinstall.tui.ui.result import Result, ResultType
ValueT = TypeVar('ValueT')
class BaseScreen(Screen[Result[ValueT]]):
BINDINGS: ClassVar = [
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))
async def action_reset_operation(self) -> None:
if self._allow_reset:
_ = self.dismiss(Result(ResultType.Reset))
class LoadingScreen(BaseScreen[ValueT]):
CSS = """
LoadingScreen {
align: center middle;
background: transparent;
}
.content-container {
width: 1fr;
height: 1fr;
max-height: 100%;
margin-top: 2;
margin-bottom: 2;
background: transparent;
}
LoadingIndicator {
align: center middle;
}
"""
def __init__(
self,
timer: int = 3,
data_callback: Callable[[], Any] | None = None,
header: str | None = None,
):
super().__init__()
self._timer = timer
self._header = header
self._data_callback = data_callback
async def run(self) -> Result[ValueT]:
assert TApp.app
return await TApp.app.show(self)
@override
def compose(self) -> ComposeResult:
with Vertical(classes='content-container'):
if self._header:
with Center():
yield Label(self._header, classes='header', id='loading_header')
yield Center(LoadingIndicator())
yield Footer()
def on_mount(self) -> None:
if self._data_callback:
self._exec_callback()
else:
self.set_timer(self._timer, self.action_pop_screen)
self._set_cursor()
def _set_cursor(self) -> None:
label = self.query_one(Label)
self.app.cursor_position = Offset(label.region.x, label.region.y)
self.app.refresh()
@work(thread=True)
def _exec_callback(self) -> None:
assert self._data_callback
result = self._data_callback()
_ = self.dismiss(Result(ResultType.Selection, _data=result))
def action_pop_screen(self) -> None:
_ = self.dismiss()
class _OptionList(OptionList):
BINDINGS: ClassVar = [
Binding('down', 'cursor_down', 'Down', show=True),
Binding('up', 'cursor_up', 'Up', show=True),
Binding('j', 'cursor_down', 'Down', show=False),
Binding('k', 'cursor_up', 'Up', show=False),
]
class OptionListScreen(BaseScreen[ValueT]):
"""
Single selection menu list
"""
BINDINGS: ClassVar = [
Binding('/', 'search', 'Search', show=True),
]
CSS = """
OptionListScreen {
align-horizontal: center;
align-vertical: middle;
background: transparent;
}
.content-container {
width: 1fr;
height: 1fr;
max-height: 100%;
margin-top: 2;
margin-left: 2;
background: transparent;
}
.list-container {
width: auto;
height: auto;
max-height: 100%;
padding-bottom: 3;
background: transparent;
}
OptionList {
width: auto;
height: auto;
min-width: 15%;
max-height: 1fr;
padding-bottom: 3;
background: transparent;
}
OptionList > .option-list--option-highlighted {
background: blue;
color: white;
text-style: bold;
}
"""
def __init__(
self,
group: MenuItemGroup,
header: str | None = None,
title: str | None = None,
allow_skip: bool = False,
allow_reset: bool = False,
preview_location: Literal['right', 'bottom'] | None = None,
enable_filter: bool = False,
):
super().__init__(allow_skip, allow_reset)
self._group = group
self._header = header
self._title = title
self._preview_location = preview_location
self._filter = enable_filter
self._show_frame = False
self._options = self._get_options()
def action_search(self) -> None:
if self.query_one(OptionList).has_focus:
if self._filter:
self._handle_search_action()
@override
def action_cancel_operation(self) -> None:
if self._filter and self.query_one(Input).has_focus:
self._handle_search_action()
else:
super().action_cancel_operation()
def _handle_search_action(self) -> None:
search_input = self.query_one(Input)
if search_input.has_focus:
self.query_one(OptionList).focus()
else:
search_input.focus()
async def run(self) -> Result[ValueT]:
assert TApp.app
return await TApp.app.show(self)
def _get_options(self) -> list[Option]:
options = []
for item in self._group.get_enabled_items():
disabled = True if item.read_only else False
options.append(Option(item.text, id=item.get_id(), disabled=disabled))
return options
@override
def compose(self) -> ComposeResult:
if self._title:
yield Label(self._title, classes='app-header')
with Vertical(classes='content-container'):
if self._header:
yield Label(self._header, classes='header-text', id='header_text')
option_list = _OptionList(id='option_list_widget')
if not self._show_frame:
option_list.classes = 'no-border'
if self._preview_location is None:
with Center():
with Vertical(classes='list-container'):
yield option_list
else:
Container = Horizontal if self._preview_location == 'right' else Vertical
rule_orientation: Literal['horizontal', 'vertical'] = 'vertical' if self._preview_location == 'right' else 'horizontal'
with Container():
yield option_list
yield Rule(orientation=rule_orientation)
yield ScrollableContainer(Label('', id='preview_content', markup=False))
if self._filter:
yield Input(placeholder='/filter', id='filter-input')
yield Footer()
def on_mount(self) -> None:
self._update_options(self._options)
self.query_one(OptionList).focus()
def on_input_changed(self, event: Input.Changed) -> None:
search_term = event.value.lower()
self._group.set_filter_pattern(search_term)
filtered_options = self._get_options()
self._update_options(filtered_options)
def _update_options(self, options: list[Option]) -> None:
option_list = self.query_one(OptionList)
option_list.clear_options()
option_list.add_options(options)
option_list.highlighted = self._group.get_focused_index()
if focus_item := self._group.focus_item:
self._set_preview(focus_item.get_id())
def on_option_list_option_selected(self, event: OptionList.OptionSelected) -> None:
selected_option = event.option
if selected_option.id is not None:
item = self._group.find_by_id(selected_option.id)
_ = self.dismiss(Result(ResultType.Selection, _item=item))
def on_option_list_option_highlighted(self, event: OptionList.OptionHighlighted) -> None:
if event.option.id:
self._set_preview(event.option.id)
self._set_cursor()
def _set_cursor(self) -> None:
option_list = self.query_one(OptionList)
index = option_list.highlighted
if index is None:
return
target_y = sum(
[
1 if self._show_frame else 0, # add top buffer for the frame
option_list.region.y, # padding/margin offset of the option list
index, # index of the highlighted option
-option_list.scroll_offset.y, # scroll offset
]
)
# debug(f'Index: {index}')
# debug(f'Region: {option_list.region}')
# debug(f'Scroll offset: {option_list.scroll_offset}')
# debug(f'Target_Y: {target_y}')
self.app.cursor_position = Offset(option_list.region.x, target_y)
self.app.refresh()
def _set_preview(self, item_id: str) -> None:
if self._preview_location is None:
return None
preview_widget = self.query_one('#preview_content', Label)
item = self._group.find_by_id(item_id)
if item.preview_action is not None:
maybe_preview = item.preview_action(item)
if maybe_preview is not None:
preview_widget.update(maybe_preview)
return
preview_widget.update('')
class _SelectionList(SelectionList[ValueT]):
BINDINGS: ClassVar = [
Binding('down', 'cursor_down', 'Down', show=True),
Binding('up', 'cursor_up', 'Up', show=True),
Binding('j', 'cursor_down', 'Down', show=False),
Binding('k', 'cursor_up', 'Up', show=False),
]
class SelectListScreen(BaseScreen[ValueT]):
"""
Multi selection menu
"""
BINDINGS: ClassVar = [
Binding('/', 'search', 'Search', show=True),
Binding('enter', '', 'Confirm', show=True),
]
CSS = """
SelectListScreen {
align-horizontal: center;
align-vertical: middle;
background: transparent;
}
.content-container {
width: 1fr;
height: 1fr;
max-height: 100%;
margin-top: 2;
margin-left: 2;
background: transparent;
}
.list-container {
width: auto;
height: auto;
min-width: 15%;
max-height: 1fr;
padding-bottom: 3;
background: transparent;
}
SelectionList {
width: auto;
height: auto;
max-height: 1fr;
padding-bottom: 3;
background: transparent;
}
SelectionList > .option-list--option-highlighted {
background: blue;
color: white;
text-style: bold;
}
"""
def __init__(
self,
group: MenuItemGroup,
header: str | None = None,
allow_skip: bool = False,
allow_reset: bool = False,
preview_location: Literal['right', 'bottom'] | None = None,
enable_filter: bool = False,
):
super().__init__(allow_skip, allow_reset)
self._group = group
self._header = header
self._preview_location = preview_location
self._show_frame = False
self._filter = enable_filter
self._selected_items: list[MenuItem] = self._group.selected_items
self._options: list[Selection[MenuItem]] = self._get_selections()
def action_search(self) -> None:
if self.query_one(OptionList).has_focus:
if self._filter:
self._handle_search_action()
@override
def action_cancel_operation(self) -> None:
if self._filter and self.query_one(Input).has_focus:
self._handle_search_action()
else:
super().action_cancel_operation()
def _handle_search_action(self) -> None:
search_input = self.query_one(Input)
if search_input.has_focus:
self.query_one(SelectionList).focus()
else:
search_input.focus()
async def run(self) -> Result[ValueT]:
assert TApp.app
return await TApp.app.show(self)
def _get_selections(self) -> list[Selection[MenuItem]]:
selections = []
for item in self._group.get_enabled_items():
is_selected = item in self._selected_items
selection = Selection(item.text, item, is_selected)
selections.append(selection)
return selections
@override
def compose(self) -> ComposeResult:
with Vertical(classes='content-container'):
if self._header:
yield Label(self._header, classes='header-text', id='header_text')
selection_list = _SelectionList[MenuItem](id='select_list_widget')
if not self._show_frame:
selection_list.classes = 'no-border'
if self._preview_location is None:
with Center():
with Vertical(classes='list-container'):
yield selection_list
else:
Container = Horizontal if self._preview_location == 'right' else Vertical
rule_orientation: Literal['horizontal', 'vertical'] = 'vertical' if self._preview_location == 'right' else 'horizontal'
with Container():
yield selection_list
yield Rule(orientation=rule_orientation)
yield ScrollableContainer(Label('', id='preview_content', markup=False))
if self._filter:
yield Input(placeholder='/filter', id='filter-input')
yield Footer()
def on_mount(self) -> None:
self._update_options(self._options)
self.query_one(SelectionList).focus()
def on_key(self, event: Key) -> None:
if self.query_one(SelectionList).has_focus:
if event.key == 'enter':
_ = self.dismiss(Result(ResultType.Selection, _item=self._selected_items))
def on_input_changed(self, event: Input.Changed) -> None:
search_term = event.value.lower()
self._group.set_filter_pattern(search_term)
filtered_options = self._get_selections()
self._update_options(filtered_options)
def _update_options(self, options: list[Selection[MenuItem]]) -> None:
selection_list = self.query_one(SelectionList)
selection_list.clear_options()
selection_list.add_options(options)
selection_list.highlighted = self._group.get_focused_index()
if focus_item := self._group.focus_item:
self._set_preview(focus_item)
self._set_cursor()
def on_selection_list_selection_highlighted(self, event: SelectionList.SelectionHighlighted[MenuItem]) -> None:
if self._preview_location is not None:
item: MenuItem = event.selection.value
self._set_preview(item)
self._set_cursor()
def _set_cursor(self) -> None:
selection_list = self.query_one(SelectionList)
index = selection_list.highlighted
if index is None:
return
target_y = sum(
[
1 if self._show_frame else 0, # add top buffer for the frame
selection_list.region.y, # padding/margin offset of the option list
index, # index of the highlighted option
-selection_list.scroll_offset.y, # scroll offset
]
)
self.app.cursor_position = Offset(selection_list.region.x, target_y)
self.app.refresh()
def on_selection_list_selection_toggled(self, event: SelectionList.SelectionToggled[MenuItem]) -> None:
item: MenuItem = event.selection.value
if item not in self._selected_items:
self._selected_items.append(item)
else:
self._selected_items.remove(item)
def _set_preview(self, item: MenuItem) -> None:
if self._preview_location is None:
return
preview_widget = self.query_one('#preview_content', Label)
if item.preview_action is not None:
maybe_preview = item.preview_action(item)
if maybe_preview is not None:
preview_widget.update(maybe_preview)
return
preview_widget.update('')
# DEPRECATED: Removed when switching to async
class ConfirmationScreen(BaseScreen[ValueT]):
BINDINGS: ClassVar = [
Binding('l', 'focus_right', 'Focus right', show=False),
Binding('h', 'focus_left', 'Focus left', show=False),
Binding('right', 'focus_right', 'Focus right', show=True),
Binding('left', 'focus_left', 'Focus left', show=True),
]
CSS = """
ConfirmationScreen {
align: center top;
}
.content-container {
width: 1fr;
height: 1fr;
max-height: 100%;
border: none;
background: transparent;
}
.buttons-container {
align: center top;
height: 3;
background: transparent;
}
Button {
width: 4;
height: 3;
background: transparent;
margin: 0 1;
}
Button.-active {
background: blue;
color: white;
border: none;
text-style: none;
}
"""
def __init__(
self,
group: MenuItemGroup,
header: str,
allow_skip: bool = False,
allow_reset: bool = False,
preview_location: Literal['bottom'] | None = None,
preview_header: str | None = None,
):
super().__init__(allow_skip, allow_reset)
self._group = group
self._header = header
self._preview_location = preview_location
self._preview_header = preview_header
async def run(self) -> Result[ValueT]:
assert TApp.app
return await TApp.app.show(self)
@override
def compose(self) -> ComposeResult:
yield Label(self._header, classes='header-text', id='header_text')
if self._preview_location is None:
with Vertical(classes='content-container'):
with Horizontal(classes='buttons-container'):
for item in self._group.items:
yield Button(item.text, id=item.key)
else:
with Vertical():
with Horizontal(classes='buttons-container'):
for item in self._group.items:
yield Button(item.text, id=item.key)
yield Rule(orientation='horizontal')
if self._preview_header is not None:
yield Label(self._preview_header, classes='preview-header', id='preview_header')
yield ScrollableContainer(Label('', id='preview_content', markup=False))
yield Footer()
def on_mount(self) -> None:
self._update_selection()
def action_focus_right(self) -> None:
if self._is_btn_focus():
self._group.focus_next()
self._update_selection()
def action_focus_left(self) -> None:
if self._is_btn_focus():
self._group.focus_prev()
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()
if self._preview_header is not None:
preview = self.query_one('#preview_content', Label)
if focused.preview_action is None:
preview.update('')
else:
text = focused.preview_action(focused)
if text is not None:
preview.update(text)
else:
button.remove_class('-active')
def _is_btn_focus(self) -> bool:
buttons = self.query(Button)
for button in buttons:
if button.has_focus:
return True
return False
def on_key(self, event: Key) -> None:
if event.key == 'enter':
if self._is_btn_focus():
item = self._group.focus_item
if not item:
return None
_ = self.dismiss(Result(ResultType.Selection, _item=item))
class NotifyScreen(ConfirmationScreen[ValueT]):
def __init__(self, header: str):
group = MenuItemGroup([MenuItem(tr('Ok'))])
super().__init__(group, header)
class InputInfoType(Enum):
MsgInfo = auto()
MsgWarning = auto()
MsgError = auto()
@dataclass
class InputInfo:
message: str
info_type: InputInfoType
class InputScreen(BaseScreen[str]):
CSS = """
InputScreen {
align: center middle;
}
.container-wrapper {
align: center top;
width: 100%;
height: 1fr;
}
.input-content {
width: 60;
height: 10;
}
.input-failure {
color: red;
text-align: center;
}
#input-info {
text-align: center;
}
.input-hint-msg-error {
color: red;
}
.input-hint-msg-warning {
color: yellow;
}
.input-hint-msg-info {
color: green;
}
"""
def __init__(
self,
header: str | None = None,
placeholder: str | None = None,
password: bool = False,
default_value: str | None = None,
allow_reset: bool = False,
allow_skip: bool = False,
validator: Validator | None = None,
info_callback: Callable[[str], InputInfo | None] | None = None,
):
super().__init__(allow_skip, allow_reset)
self._header = header or ''
self._placeholder = placeholder or ''
self._password = password
self._default_value = default_value or ''
self._allow_reset = allow_reset
self._allow_skip = allow_skip
self._validator = validator
self._info_callback = info_callback
async def run(self) -> Result[str]:
assert TApp.app
return await TApp.app.show(self)
@override
def compose(self) -> ComposeResult:
yield Label(self._header, classes='header-text', id='header_text')
with Center(classes='container-wrapper'):
with Vertical(classes='input-content'):
yield Input(
placeholder=self._placeholder,
password=self._password,
value=self._default_value,
id='main_input',
validators=self._validator,
validate_on=['submitted'],
)
yield Label('', classes='input-failure', id='input-failure')
yield Label('', id='input-info')
yield Footer()
def on_mount(self) -> None:
input_field = self.query_one('#main_input', Input)
input_field.focus()
def on_input_submitted(self, event: Input.Submitted) -> None:
if event.validation_result and not event.validation_result.is_valid:
failures = [failure.description for failure in event.validation_result.failures if failure.description]
failure_out = ', '.join(failures)
self.query_one('#input-failure', Label).update(failure_out)
else:
_ = self.dismiss(Result(ResultType.Selection, _data=event.value))
def on_input_changed(self, event: Input.Changed) -> None:
info_label = self.query_one('#input-info', Label)
if self._info_callback:
result = self._info_callback(event.value)
if result:
css_class = ''
if result.info_type == InputInfoType.MsgError:
css_class = 'input-hint-msg-error'
elif result.info_type == InputInfoType.MsgWarning:
css_class = 'input-hint-msg-warning'
elif result.info_type == InputInfoType.MsgInfo:
css_class = 'input-hint-msg-info'
info_label.update(result.message)
info_label.set_classes(css_class)
else:
info_label.update('')
info_label.set_classes('')
class _DataTable(DataTable[ValueT]):
BINDINGS: ClassVar = [
Binding('down', 'cursor_down', 'Down', show=True),
Binding('up', 'cursor_up', 'Up', show=True),
Binding('j', 'cursor_down', 'Down', show=False),
Binding('k', 'cursor_up', 'Up', show=False),
]
class TableSelectionScreen(BaseScreen[ValueT]):
BINDINGS: ClassVar = [
Binding('space', 'toggle_selection', 'Toggle', show=True),
]
CSS = """
TableSelectionScreen {
align: center top;
background: transparent;
}
.content-container {
width: 1fr;
height: 1fr;
max-height: 100%;
margin-top: 2;
margin-bottom: 2;
background: transparent;
}
.table-container {
align: center top;
width: 1fr;
height: 1fr;
background: transparent;
}
.table-container ScrollableContainer {
align: center top;
height: auto;
background: transparent;
}
DataTable {
width: auto;
height: auto;
padding-bottom: 2;
border: none;
background: transparent;
}
DataTable .datatable--header {
background: transparent;
border: solid;
}
LoadingIndicator {
height: auto;
padding-top: 2;
background: transparent;
}
"""
def __init__(
self,
header: str | None = None,
group: MenuItemGroup | None = None,
group_callback: Callable[[], Awaitable[MenuItemGroup]] | None = None,
allow_reset: bool = False,
allow_skip: bool = False,
loading_header: str | None = None,
multi: bool = False,
preview_location: Literal['bottom'] | None = None,
preview_header: str | None = None,
):
super().__init__(allow_skip, allow_reset)
self._header = header
self._group = group
self._group_callback = group_callback
self._loading_header = loading_header
self._multi = multi
self._preview_location = preview_location
self._preview_header = preview_header
self._selected_keys: set[RowKey] = set()
self._current_row_key: RowKey | None = None
if self._group is None and self._group_callback is None:
raise ValueError('Either data or data_callback must be provided')
async def run(self) -> Result[ValueT]:
assert TApp.app
return await TApp.app.show(self)
@override
def compose(self) -> ComposeResult:
if self._header:
yield Label(self._header, classes='header-text', id='header_text')
with Vertical(classes='content-container'):
if self._loading_header:
with Center():
yield Label(self._loading_header, classes='header', id='loading_header')
yield LoadingIndicator(id='loader')
if self._preview_location is None:
with Center():
with Vertical(classes='table-container'):
yield ScrollableContainer(_DataTable(id='data_table'))
else:
with Vertical(classes='table-container'):
yield ScrollableContainer(_DataTable(id='data_table'))
yield Rule(orientation='horizontal')
if self._preview_header is not None:
yield Label(self._preview_header, classes='preview-header', id='preview-header')
yield ScrollableContainer(Label('', id='preview_content', markup=False))
yield Footer()
def on_mount(self) -> None:
self._display_header(True)
data_table = self.query_one(DataTable)
data_table.cell_padding = 2
if self._group:
self._put_data_to_table(data_table, self._group)
else:
self._load_data(data_table)
@work
async def _load_data(self, table: DataTable[ValueT]) -> None:
assert self._group_callback is not None
group = await self._group_callback()
self._put_data_to_table(table, group)
def _display_header(self, is_loading: bool) -> None:
if self._loading_header:
loading_header = self.query_one('#loading_header', Label)
loading_header.display = is_loading
if self._header:
header = self.query_one('#header_text', Label)
header.display = not is_loading
def _put_data_to_table(self, table: DataTable[ValueT], group: MenuItemGroup) -> None:
items = group.items
selected = group.selected_items
if not items:
_ = self.dismiss(Result(ResultType.Selection))
return
value = items[0].value
if not value:
_ = self.dismiss(Result(ResultType.Selection))
return
cols = list(value.table_data().keys())
if self._multi:
cols.insert(0, ' ')
table.add_columns(*cols)
for item in items:
if not item.value:
continue
row_values = list(item.value.table_data().values())
if self._multi:
if item in selected:
row_values.insert(0, '[X]')
else:
row_values.insert(0, '[ ]')
row_key = table.add_row(*row_values, key=item) # type: ignore[arg-type]
if item in selected:
self._selected_keys.add(row_key)
table.cursor_type = 'row'
table.display = True
loader = self.query_one('#loader')
loader.display = False
self._display_header(False)
table.focus()
def action_toggle_selection(self) -> None:
if not self._multi:
return
if not self._current_row_key:
return
table = self.query_one(DataTable)
cell_key = table.coordinate_to_cell_key(table.cursor_coordinate)
if self._current_row_key in self._selected_keys:
self._selected_keys.remove(self._current_row_key)
table.update_cell(self._current_row_key, cell_key.column_key, '[ ]')
else:
self._selected_keys.add(self._current_row_key)
table.update_cell(self._current_row_key, cell_key.column_key, '[X]')
def on_data_table_row_highlighted(self, event: DataTable.RowHighlighted) -> None:
self._set_cursor(event.cursor_row)
self._current_row_key = event.row_key
item: MenuItem = event.row_key.value # type: ignore[assignment]
if not item.preview_action:
return
preview_widget = self.query_one('#preview_content', Label)
maybe_preview = item.preview_action(item)
if maybe_preview is not None:
preview_widget.update(maybe_preview)
return
preview_widget.update('')
def _set_cursor(self, row_index: int) -> None:
data_table = self.query_one(DataTable)
target_y = sum(
[
data_table.region.y, # padding/margin offset of the option list
1, # table header
row_index, # index of the highlighted row
-data_table.scroll_offset.y, # scroll offset
]
)
debug(f'Setting cursor to target_y: {target_y}')
self.app.cursor_position = Offset(data_table.region.x, target_y)
self.app.refresh()
def on_data_table_row_selected(self, event: DataTable.RowSelected) -> None:
if self._multi:
if len(self._selected_keys) == 0:
if not self._allow_skip:
return
_ = self.dismiss(Result[ValueT](ResultType.Skip))
else:
items = [row_key.value for row_key in self._selected_keys]
_ = self.dismiss(Result(ResultType.Selection, _item=items)) # type: ignore[arg-type]
else:
_ = self.dismiss(
Result[ValueT](
ResultType.Selection,
_item=event.row_key.value, # type: ignore[arg-type]
)
)
class InstanceRunnable[ValueT](ABC):
@abstractmethod
async def run(self) -> ValueT | None:
pass
class _AppInstance(App[ValueT]):
ENABLE_COMMAND_PALETTE = False
BINDINGS: ClassVar = [
Binding('f1', 'trigger_help', 'Show/Hide help', show=True),
Binding('ctrl+q', 'quit', 'Quit', show=True, priority=True),
]
CSS = """
Screen {
color: white;
}
* {
scrollbar-size: 1 1;
/* Use high contrast colors */
scrollbar-color: white;
scrollbar-background: black;
}
.app-header {
dock: top;
height: auto;
width: 100%;
content-align: center middle;
background: blue;
color: white;
text-style: bold;
}
.header-text {
text-align: center;
width: 100%;
height: auto;
padding-top: 2;
padding-bottom: 2;
background: transparent;
}
.preview-header {
text-align: center;
color: white;
text-style: bold;
width: 100%;
padding-bottom: 1;
background: transparent;
}
.no-border {
border: none;
}
Input {
border: solid gray 50%;
background: transparent;
height: 3;
color: white;
}
Input .input--cursor {
color: white;
}
Input:focus {
border: solid blue;
}
Footer {
dock: bottom;
width: 100%;
background: transparent;
color: white;
height: 1;
}
.footer-key--key {
background: black;
color: white;
}
.footer-key--description {
background: black;
color: white;
padding-right: 2;
}
FooterKey.-command-palette {
background: black;
border-left: vkey white 20%;
}
"""
def __init__(self, main: InstanceRunnable[ValueT] | Callable[[], Awaitable[ValueT]]) -> None:
super().__init__(ansi_color=True)
self._main = main
def action_trigger_help(self) -> None:
from textual.widgets import HelpPanel
if self.screen.query('HelpPanel'):
_ = self.screen.query('HelpPanel').remove()
else:
_ = self.screen.mount(HelpPanel())
def on_mount(self) -> None:
self._run_worker()
@work
async def _run_worker(self) -> None:
try:
if isinstance(self._main, InstanceRunnable):
result: ValueT | None = await self._main.run()
else:
result = await self._main()
tui.exit(result)
except WorkerCancelled:
debug('Worker was cancelled')
except Exception as err:
debug(f'Error while running main app: {err}')
# this will terminate the textual app and return the exception
self.exit(cast(ValueT, 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()
class TApp:
app: _AppInstance[Any] | None = None
def run(self, main: InstanceRunnable[ValueT] | Callable[[], Awaitable[ValueT]]) -> ValueT:
TApp.app = _AppInstance(main)
result: ValueT | Exception | None = TApp.app.run()
if isinstance(result, Exception):
raise result
if result is None:
debug('App returned no result, assuming exit')
sys.exit(0)
return result
def exit(self, result: Any) -> None:
assert TApp.app
TApp.app.exit(result)
tui = TApp()
================================================
FILE: archinstall/tui/ui/menu_item.py
================================================
from __future__ import annotations
from collections.abc import Awaitable, Callable
from dataclasses import dataclass, field
from enum import Enum
from functools import cached_property
from typing import Any, ClassVar, Self, override
from archinstall.lib.translationhandler import tr
@dataclass
class MenuItem:
text: str
value: Any | None = None
action: Callable[[Any], Awaitable[Any]] | None = None
enabled: bool = True
read_only: bool = False
mandatory: bool = False
dependencies: list[str | Callable[[], bool]] = field(default_factory=list)
dependencies_not: list[str] = field(default_factory=list)
display_action: Callable[[Any], str] | None = None
preview_action: Callable[[Self], str | None] | None = None
key: str | None = None
_id: str = ''
_yes: ClassVar[Self | None] = None
_no: ClassVar[Self | None] = None
def __post_init__(self) -> None:
if self.key is not None:
self._id = self.key
else:
self._id = str(id(self))
@override
def __hash__(self) -> int:
return hash(self._id)
def get_id(self) -> str:
return self._id
def get_value(self) -> Any:
assert self.value is not None
return self.value
@classmethod
def yes(cls, action: Callable[[Any], Any] | None = None) -> Self:
if cls._yes is None:
cls._yes = cls(tr('Yes'), value=True, key='yes', action=action)
return cls._yes
@classmethod
def no(cls, action: Callable[[Any], Any] | None = None) -> Self:
if cls._no is None:
cls._no = cls(tr('No'), value=False, key='no', action=action)
return cls._no
def is_empty(self) -> bool:
return self.text == '' or self.text is None
def has_value(self) -> bool:
if self.value is None:
return False
elif isinstance(self.value, list) and len(self.value) == 0:
return False
elif isinstance(self.value, dict) and len(self.value) == 0:
return False
else:
return True
def get_display_value(self) -> str | None:
if self.display_action is not None:
return self.display_action(self.value)
return None
class MenuItemGroup:
def __init__(
self,
menu_items: list[MenuItem],
focus_item: MenuItem | None = None,
default_item: MenuItem | None = None,
sort_items: bool = False,
sort_case_sensitive: bool = True,
checkmarks: bool = False,
) -> None:
if len(menu_items) < 1:
raise ValueError('Menu must have at least one item')
if sort_items:
if sort_case_sensitive:
menu_items = sorted(menu_items, key=lambda x: x.text)
else:
menu_items = sorted(menu_items, key=lambda x: x.text.lower())
self._filter_pattern: str = ''
self._checkmarks: bool = checkmarks
self._menu_items: list[MenuItem] = menu_items
self.focus_item: MenuItem | None = focus_item
self.selected_items: list[MenuItem] = []
self.default_item: MenuItem | None = default_item
if not focus_item:
self.focus_first()
if self.focus_item not in self.items:
raise ValueError(f'Selected item not in menu: {self.focus_item}')
@classmethod
def from_objects(cls, items: list[Any]) -> Self:
items = [MenuItem(str(id(item)), value=item) for item in items]
return cls(items)
def add_item(self, item: MenuItem) -> None:
self._menu_items.append(item)
delattr(self, 'items') # resetting the cache
def find_by_id(self, item_id: str) -> MenuItem:
for item in self._menu_items:
if item.get_id() == item_id:
return item
raise ValueError(f'No item found for id: {item_id}')
def find_by_key(self, key: str) -> MenuItem:
for item in self._menu_items:
if item.key == key:
return item
raise ValueError(f'No item found for key: {key}')
def get_enabled_items(self) -> list[MenuItem]:
return [it for it in self.items if self.is_enabled(it)]
@classmethod
def yes_no(cls) -> Self:
return cls(
[MenuItem.yes(), MenuItem.no()],
sort_items=True,
)
@classmethod
def from_enum(
cls,
enum_cls: type[Enum],
sort_items: bool = False,
preset: Enum | None = None,
) -> Self:
items = [MenuItem(elem.value, value=elem) for elem in enum_cls]
group = cls(items, sort_items=sort_items)
if preset is not None:
group.set_selected_by_value(preset)
return group
def set_preview_for_all(self, action: Callable[[Any], str | None]) -> None:
for item in self.items:
item.preview_action = action
def set_focus_by_value(self, value: Any) -> None:
for item in self._menu_items:
if item.value == value:
self.focus_item = item
break
def set_default_by_value(self, value: Any) -> None:
for item in self._menu_items:
if item.value == value:
self.default_item = item
break
def set_selected_by_value(self, values: Any | list[Any] | None) -> None:
if values is None:
return
if not isinstance(values, list):
values = [values]
for item in self._menu_items:
if item.value in values:
self.selected_items.append(item)
if values:
self.set_focus_by_value(values[0])
def get_focused_index(self) -> int | None:
items = self.get_enabled_items()
if self.focus_item and items:
try:
return items.index(self.focus_item)
except ValueError:
# on large menus (15k+) when filtering very quickly
# the index search is too slow while the items are reduced
# by the filter and it will blow up as it cannot find the
# focus item
pass
return None
@cached_property
def _max_items_text_width(self) -> int:
return max([len(item.text) for item in self._menu_items])
def _default_suffix(self, item: MenuItem) -> str:
if self.default_item == item:
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()
items = filter(lambda item: item.is_empty() or pattern in item.text.lower(), self._menu_items)
l_items = sorted(items, key=self._items_score)
return l_items
def _items_score(self, item: MenuItem) -> int:
pattern = self._filter_pattern.lower()
if item.text.lower().startswith(pattern):
return 0
return 1
def set_filter_pattern(self, pattern: str) -> None:
self._filter_pattern = pattern
delattr(self, 'items') # resetting the cache
self.focus_first()
def focus_index(self, index: int) -> None:
enabled = self.get_enabled_items()
self.focus_item = enabled[index]
def focus_first(self) -> None:
if len(self.items) == 0:
return
first_item: MenuItem | None = self.items[0]
if first_item and not self._is_selectable(first_item):
first_item = self._find_next_selectable_item(self.items, first_item, 1)
if first_item is not None:
self.focus_item = first_item
def focus_last(self) -> None:
if len(self.items) == 0:
return
last_item: MenuItem | None = self.items[-1]
if last_item and not self._is_selectable(last_item):
last_item = self._find_next_selectable_item(self.items, last_item, -1)
if last_item is not None:
self.focus_item = last_item
def focus_prev(self, skip_empty: bool = True) -> None:
# e.g. when filter shows no items
if self.focus_item is None:
return
item = self._find_next_selectable_item(self.items, self.focus_item, -1)
if item is not None:
self.focus_item = item
def focus_next(self, skip_not_enabled: bool = True) -> None:
# e.g. when filter shows no items
if self.focus_item is None:
return
item = self._find_next_selectable_item(self.items, self.focus_item, 1)
if item is not None:
self.focus_item = item
def _find_next_selectable_item(
self,
items: list[MenuItem],
start_item: MenuItem,
direction: int,
) -> MenuItem | None:
start_index = self.items.index(start_item)
n = len(items)
current_index = start_index
for _ in range(n):
current_index = (current_index + direction) % n
if self._is_selectable(items[current_index]):
return items[current_index]
return None
def max_item_width(self) -> int:
spaces = [len(str(it.text)) for it in self.items]
if spaces:
return max(spaces)
return 0
def _is_selectable(self, item: MenuItem) -> bool:
if item.is_empty():
return False
elif item.read_only:
return False
return self.is_enabled(item)
def is_enabled(self, item: MenuItem) -> bool:
if not item.enabled:
return False
for dep in item.dependencies:
if isinstance(dep, str):
item = self.find_by_key(dep)
if not item.value or not self.is_enabled(item):
return False
else:
return dep()
for dep_not in item.dependencies_not:
item = self.find_by_key(dep_not)
if item.value is not None:
return False
return True
================================================
FILE: archinstall/tui/ui/result.py
================================================
from dataclasses import dataclass
from enum import Enum, auto
from typing import Self, cast
from archinstall.tui.ui.menu_item import MenuItem
class ResultType(Enum):
Selection = auto()
Skip = auto()
Reset = auto()
@dataclass
class Result[ValueT]:
type_: ResultType
_data: ValueT | list[ValueT] | None = None
_item: MenuItem | list[MenuItem] | None = None
@classmethod
def true(cls) -> Self:
return cls(ResultType.Selection, _data=True) # type: ignore[arg-type]
@classmethod
def false(cls) -> Self:
return cls(ResultType.Selection, _data=False) # type: ignore[arg-type]
@classmethod
def reset(cls) -> Self:
return cls(ResultType.Reset)
@classmethod
def selection(cls, value: ValueT | list[ValueT] | None) -> Self:
return cls(ResultType.Selection, _data=value)
@classmethod
def skip(cls) -> Self:
return cls(ResultType.Skip)
def has_data(self) -> bool:
return self._data is not None
def has_value(self) -> bool:
return self._item is not None
def item(self) -> MenuItem:
if isinstance(self._item, list) or self._item is None:
raise ValueError('Invalid item type')
return self._item
def items(self) -> list[MenuItem]:
if isinstance(self._item, list):
return self._item
raise ValueError('Invalid item type')
def get_value(self) -> ValueT:
if self._item is not None:
return self.item().get_value() # type: ignore[no-any-return]
if type(self._data) is not list and self._data is not None:
return cast(ValueT, self._data)
raise ValueError('No value found')
def get_values(self) -> list[ValueT]:
if self._item is not None:
return [i.get_value() for i in self.items()]
assert type(self._data) is list
return cast(list[ValueT], self._data)
================================================
FILE: docs/Makefile
================================================
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = .
BUILDDIR = _build
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
================================================
FILE: docs/README.md
================================================
## Dependencies
In order to build the docs locally, you need to have the following installed:
- [sphinx-doc](https://www.sphinx-doc.org/en/master/usage/installation.html)
- [sphinx-rdt-theme](https://pypi.org/project/sphinx-rtd-theme/)
For example, you may install these dependencies using pip:
```
pip install -U sphinx sphinx-rtd-theme
```
For other installation methods refer to the docs of the dependencies.
## Build
In `archinstall/docs`, run `make html` (or specify another target) to build locally. The build files will be in `archinstall/docs/_build`. Open `_build/html/index.html` with your browser to see your changes in action.
================================================
FILE: docs/_static/style.css
================================================
.wy-nav-content {
max-width: none;
}
================================================
FILE: docs/_templates/layout.html
================================================
{% extends "!layout.html" %}
{% block extrahead %}
{% endblock %}
================================================
FILE: docs/archinstall/Installer.rst
================================================
.. _archinstall.Installer:
archinstall.Installer
=====================
The installer is the main class for accessing an installation-instance.
You can look at this class as the installation you have or will perform.
Anything related to **inside** the installation, will be found in this class.
.. autofunction:: archinstall.Installer
================================================
FILE: docs/archinstall/plugins.rst
================================================
.. _archinstall.Plugins:
Python Plugins
==============
``archinstall`` supports plugins via two methods.
First method is directly via the ``--plugin`` parameter when running as a CLI tool. This will load a specific plugin locally or remotely via a path.
The second method is via Python's built in `plugin discovery`_ using `entry points`_ categorized as ``archinstall.plugin``.
``--plugin`` parameter
----------------------
The parameter has the benefit of being stored in the ``--conf`` state, meaning when re-running an installation — the plugin will automatically be loaded.
It's limitation is that it requires an initial path to be known and written and be cumbersome.
Plugin Discovery
----------------
This method allows for multiple plugins to be loaded with the drawback that they have to be installed beforehand on the system running ``archinstall``.
This mainly targets those who build their own ISO's and package specific setups for their needs.
What's supported?
-----------------
Currently the documentation for this is scarse. Until that is resolved, the best way to find supported features is to search the source code for `plugin.on_ `_ as this will give a clear indication of which calls are made to plugins.
How does it work?
-----------------
``archinstall`` plugins use a discovery-driven approach where plugins are queried for certain functions.
As an example, if a plugin has the following function:
.. code-block:: python
def on_pacstrap(*packages):
...
The function :code:`archinstall.Pacman().strap(["some packages"])` is hardcoded to iterate plugins and look for :code:`on_pacstrap` in the plugin.
If the function exists, :code:`.strap()` will call the plugin's function and replace the initial package list with the result from the plugin.
The best way to document these calls is currently undecided, as it's hard to document this behavior dynamically.
Writing your own?
-----------------
The simplest way currently is to look at a reference implementation or the community. Two of these are:
* `torxed/archinstall-aur `_
* `phisch/archinstall-aur `_
And search for `plugin.on_ `_ in the code base to find what ``archinstall`` will look for. PR's are welcome to widen the support for this.
.. _plugin discovery: https://packaging.python.org/en/latest/specifications/entry-points/
.. _entry points: https://docs.python.org/3/library/importlib.metadata.html#entry-points
================================================
FILE: docs/cli_parameters/config/config_options.csv
================================================
Key,Value(s),Description,Required
additional-repositories,[ `multilib `_!, `testing `_ ],Enables one or more of the testing and multilib repositories before proceeding with installation,No
archinstall-language,`lang `__,Sets the TUI language used *(make sure to use the ``lang`` value not the ``abbr``)*,No
audio_config,`pipewire `_!, `pulseaudio `_,Audioserver to be installed,No
bootloader_config,"{ bootloader: `Systemd-boot `_!, `grub `_!, `limine `_!, uki: ``true``/``false``!, removable: ``true``/``false`` }","Bootloader configuration. ``bootloader`` selects which bootloader to install *(grub/limine mandatory on BIOS)*. ``uki`` enables unified kernel images *(UEFI only!, systemd-boot/limine only)*. ``removable`` installs to default removable media path /EFI/BOOT/ instead of NVRAM *(UEFI only!, grub/limine only)*",Yes
debug,``true``!, ``false``,Enables debug output,No
disk_config,*Read more under* :ref:`disk config`,Contains the desired disk setup to be used during installation,No
disk_encryption,*Read more about under* :ref:`disk encryption`,Parameters for disk encryption applied on top of ``disk_config``,No
hostname,``str``,A string defining your machines hostname on the network *(defaults to ``archinstall``)*,No
kernels,[ `linux `_!, `linux-hardened `_!, `linux-lts `_!, `linux-rt `_!, `linux-rt-lts `_!, `linux-zen `_ ],Defines which kernels should be installed and setup in the boot loader options,Yes
custom_commands,*Read more under* :ref:`custom commands`,Custom commands that will be run post-install chrooted inside the installed system,No
locale_config,{kb_layout: `lang `__!, sys_enc: `Character encoding `_!, sys_lang: `locale `_},Defines the keyboard key map!, system encoding and system locale,No
mirror_config,{custom_mirrors: [ https://... ]!, mirror_regions: { "Worldwide": [ "https://geo.mirror.pkgbuild.com/$repo/os/$arch" ] } },Sets various mirrors *(defaults to ISO's ``/etc/pacman.d/mirrors`` if not defined)*,No
network_config,*`see options under Network Configuration`*,Sets which type of *(if any)* network configuration should be used,No
no_pkg_lookups,``true``!, ``false``,Disabled package checking against https://archlinux.org/packages/,No
ntp,``true``!, ``false``,enables or disables `NTP `_ during installation,No
offline,``true``!, ``false``,enables or disables certain online checks such as mirror reachability etc,No
packages,[ !, !, ... ],A list of packages to install during installation,No
parallel downloads,0-∞,sets a given number of parallel downloads to be used by `pacman `_,No
profile_config,*`read more under the profiles section`*,Installs a given profile if defined,No
script,`guided `__! *(default)*!, `minimal `__!, `only_hdd `_!, When used to autorun an installation!, this sets which script to autorun with,No
silent,``true``!, ``false``,disables or enables user questions using the TUI,No
swap,``true``!, ``false``,enables or disables swap,No
timezone,`timezone `_,sets a timezone for the installed system,No
================================================
FILE: docs/cli_parameters/config/custom_commands.rst
================================================
.. _custom commands:
Custom Commands
===============
Custom commands is a configuration entry that allows for executing custom commands post-installation.
The commands are executed with `arch-chroot `_.
The option takes a list of arguments, an example is:
.. code-block:: json
{
"custom_commands": [
"hostname new-hostname"
]
}
The following example will set a new hostname in the installed system.
The example is just to illustrate that the command is not run in the ISO but inside the installed system after the base system is installed.
More examples can be found in the code repository under `examples/ `_
================================================
FILE: docs/cli_parameters/config/disk_config.rst
================================================
.. _disk config:
Disk Configuration
==================
There are only three modes in the ``disk_config`` option. They are described in more detail below.
"Leave as is"
--------------
.. code-block:: json
{
"config_type": "pre_mounted_config",
"mountpoint": "/mnt/archinstall"
}
This mode will not perform any partitioning what so ever.
Instead it relies on what's mounted manually by the user under ``/mnt/archinstall``.
Given the following disk example:
.. code-block::
/mnt/archinstall (/dev/sda2)
├── boot (/dev/sda1)
└── home (/dev/sda3)
Running ``archinstall --conf your.json --silent`` where the above JSON is configured. The disk will be left alone — and a working system will be installed to the above folders and mountpoints will be translated into the installed system.
.. note::
Some disk layouts can be too complicated to detect, such as RAID setups. Please do report those setups on the `Issue Tracker `__ so we can support them.
Best Effort
-----------
.. warning::
This mode will wipe data!
.. note::
Note that this options is similar to the manual partitioning but is generated through the menu system! And the best effort layout might deviate slightly from some wiki guidelines in order to facilitate some optional configurations at a later stage.
.. code-block:: json
{
"disk_config": {
"config_type": "default_layout",
"device_modifications": [
{
"device": "/dev/sda",
"wipe": true,
"partitions": "..."
}
]
}
}
This mode will attempt to configure a sane default layout on the selected disks.
Based on the chosen filesystem, and potential optional settings for said filesystem — different default layouts will be provided.
Manual Partitioning
-------------------
.. code-block:: json
{
"disk_config": {
"config_type": "manual_partitioning",
"device_modifications": [
"filesystem struct"
]
}
}
Manual partitioning is the most complex one of the three. It offers you near endless flexibility of how to partition your disk. It integrates against `pyparted `__ and some control logic in ``archinstall`` that deals with creating things like subvolumes and compression.
Sizes are by default ``sector`` units, but other units are supported.
The options supplied to ``manual_partitioning`` are dictionary definitions, where the following parameters must exist:
.. csv-table:: JSON options
:file: ./manual_options.csv
:widths: 15, 15, 65, 5
:escape: !
:header-rows: 1
Each partition definition heavily relies on what filesystem is used.
Below follow two of the more common filesystems, anything else will best be described by running ``archinstall`` to generate a desired configuration for the desired filesystem type — and copy the relevant parts for permanent configurations.
.. warning::
Important to note that the units and positions in the examples below — are highly user specific!
FAT32
^^^^^
.. code-block:: json
{
"btrfs": [],
"flags": [
"boot"
],
"fs_type": "fat32",
"length": {
"sector_size": null,
"total_size": null,
"unit": "B",
"value": 99982592
},
"mount_options": [],
"mountpoint": "/boot",
"obj_id": "369f31a8-2781-4d6b-96e7-75680552b7c9",
"start": {
"sector_size": {
"sector_size": null,
"total_size": null,
"unit": "B",
"value": 512
},
"total_size": null,
"unit": "sectors",
"value": 34
},
"status": "create",
"type": "primary"
}
.. note::
The ``Boot`` flag will make ``archinstall`` automatically set the correct ESP partition GUID if the system is booted with ``EFI`` support. The GUID will then be set to ``C12A7328-F81F-11D2-BA4B-00A0C93EC93B``.
EXT4
^^^^
.. code-block:: json
{
"btrfs": [],
"flags": [],
"fs_type": "ext4",
"length": {
"sector_size": null,
"total_size": null,
"unit": "B",
"value": 15805127360
},
"mount_options": [],
"mountpoint": "/",
"obj_id": "3e75d045-21a4-429d-897e-8ec19a006e8b",
"start": {
"sector_size": {
"sector_size": null,
"total_size": null,
"unit": "B",
"value": 512
},
"total_size": {
"sector_size": null,
"total_size": null,
"unit": "B",
"value": 16106127360
},
"unit": "MB",
"value": 301
},
"status": "create",
"type": "primary"
}
BTRFS
^^^^^
The BTRFS filesystem is inherently more complicated, thus the options are a bit more involved.
This example contains both subvolumes and compression.
.. note::
Note that the ``"mountpoint": null`` is used for the overall partition, and instead individual subvolumes have mountpoints set.
.. code-block:: json
{
"btrfs": [
{
"mountpoint": "/",
"name": "@",
},
{
"mountpoint": "/home",
"name": "@home",
},
{
"mountpoint": "/var/log",
"name": "@log",
},
{
"mountpoint": "/var/cache/pacman/pkg",
"name": "@pkg",
}
],
"dev_path": null,
"flags": [],
"fs_type": "btrfs",
"mount_options": [
"compress=zstd"
],
"mountpoint": null,
"obj_id": "d712357f-97cc-40f8-a095-24ff244d4539",
"size": {
"sector_size": {
"unit": "B",
"value": 512
},
"unit": "B",
"value": 15568207872
},
"start": {
"sector_size": {
"unit": "B",
"value": 512
},
"unit": "MiB",
"value": 513
},
"status": "create",
"type": "primary"
}
================================================
FILE: docs/cli_parameters/config/disk_encryption.rst
================================================
.. _disk encryption:
Disk Encryption
===============
Disk encryption consists of a top level entry in the user configuration.
.. code-block:: json
{
"disk_encryption": {
"encryption_type": "luks",
"partitions": [
"d712357f-97cc-40f8-a095-24ff244d4539"
]
}
}
The ``UID`` in the ``partitions`` list is an internal reference to the ``obj_id`` in the :ref:`disk config` entries.
================================================
FILE: docs/cli_parameters/config/manual_options.csv
================================================
Key,Value(s),Description,Required
device,``str``,Which block-device to format,yes
partitions,[ {key: val} ],The data describing the change/addition in a partition,yes
wipe,``bool``,clear the disk before adding any partitions,No
================================================
FILE: docs/conf.py
================================================
import os
import re
import sys
sys.path.insert(0, os.path.abspath('..'))
def process_docstring(app, what, name, obj, options, lines) -> None: # type: ignore[no-untyped-def]
spaces_pat = re.compile(r'( {8})')
ll = [spaces_pat.sub(' ', line) for line in lines]
lines[:] = ll
def setup(app) -> None: # type: ignore[no-untyped-def]
app.connect('autodoc-process-docstring', process_docstring)
# Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
# -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))
# -- Project information -----------------------------------------------------
project = 'python-archinstall'
copyright = '2022, Anton Hvornum'
author = 'Anton Hvornum'
# The full version, including alpha/beta/rc tags
release = 'v2.3.0'
# -- General configuration ---------------------------------------------------
master_doc = 'index'
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.inheritance_diagram',
'sphinx.ext.todo',
'sphinx_rtd_theme',
]
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
# html_theme = 'alabaster'
html_theme = 'sphinx_rtd_theme'
html_logo = '_static/logo.png'
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
# If false, no module index is generated.
html_domain_indices = True
# If false, no index is generated.
html_use_index = True
# If true, the index is split into individual pages for each letter.
html_split_index = True
# If true, links to the reST sources are added to the pages.
html_show_sourcelink = False
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
# html_show_sphinx = True
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
# html_show_copyright = True
# If true, an OpenSearch description file will be output, and all pages will
# contain a tag referring to it. The value of this option must be the
# base URL from which the finished HTML is served.
# html_use_opensearch = ''
# This is the file name suffix for HTML files (e.g. ".xhtml").
# html_file_suffix = None
# Output file base name for HTML help builder.
htmlhelp_basename = 'archinstalldoc'
# -- Options for manual page output --------------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [('index', 'archinstall', 'archinstall Documentation', ['Anton Hvornum'], 1)]
# If true, show URL addresses after external links.
# man_show_urls = False
# -- Options for Texinfo output ------------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
('index', 'archinstall', 'archinstall Documentation', 'Anton Hvornum', 'archinstall', 'Simple and minimal HTTP server.'),
]
================================================
FILE: docs/examples/python.rst
================================================
.. _examples.python:
Python module
=============
Archinstall supports running in `module mode `_.
The way the library is invoked in module mode is limited to executing scripts under the `scripts`_ folder.
It's therefore important to place any script or profile you wish to invoke in the examples folder prior to building and installing.
Pre-requisites
--------------
We'll assume you've followed the :ref:`installing.python.manual` method.
Before actually installing the library, you will need to place your custom installer-scripts under `scripts`_ as a python file.
More on how you create these in the next section.
.. warning::
This is subject to change in the future as this method is currently a bit stiff. The script path will become a parameter. But for now, this is by design.
Creating a script
-----------------
Lets create a `test_installer` - installer as an example. This is assuming that the folder `./archinstall` is a git-clone of the main repo.
We begin by creating "`scripts`_:code:`/test_installer.py`". The placement here is important later.
This script can now already be called using :code:`python -m archinstall --script test_installer` after a successful installation of the library itself.
But the script won't do much. So we'll do something simple like list all the hard drives as an example.
To do this, we'll begin by importing :code:`archinstall` in our "`scripts`_:code:`/test_installer.py`" and call a function within ``archinstall``.
.. code-block:: python
from archinstall.lib.disk.device_handler import device_handler
from pprint import pprint
pprint(device_handler.devices)
Now, go ahead and reference the :ref:`installing.python.manual` installation method.
After running ``python -m archinstall test_installer`` it should print something that looks like:
.. code-block:: text
[
BDevice(
disk=,
device_info=_DeviceInfo(
model='PC801 NVMe SK hynix 512GB',
path=PosixPath('/dev/nvme0n1'),
type='nvme',
total_size=Size(value=512110190592, unit=,
sector_size=SectorSize(value=512, unit=)),
free_space_regions=[
,
,
],
sector_size=SectorSize(value=512, unit=),
read_only=False,
dirty=False
),
partition_infos=[
_PartitionInfo(
partition=,
name='primary',
type=,
fs_type=,
path='/dev/nvme0n1p1',
start=Size(value=2048, unit=, sector_size=SectorSize(value=512, unit=)),
length=Size(value=535822336, unit=, sector_size=SectorSize(value=512, unit=)),
flags=[
,
],
partn=1,
partuuid='a26be943-c193-41f4-9930-9341cf5f6b19',
uuid='6EE9-2C00',
disk=,
mountpoints=[
PosixPath('/boot')
],
btrfs_subvol_infos=[]
),
_PartitionInfo(...)
]
)
]
That means your script is in the right place, and ``archinstall`` is working as intended.
.. note::
Most calls, including the one above requires `root `_ privileges.
.. _scripts: https://github.com/archlinux/archinstall/tree/master/archinstall/scripts
================================================
FILE: docs/flowcharts/DiskSelectionProcess.drawio
================================================
7VvZdqM4EP2anHlKDpsxPMZ20sl0kl7S05meNwVkYCIjt5C3+fqRjFgFNnbwksQv3a5CCKG6dWsROdP7o/knAsb+PXYhOtMUd36mD840TVUsi/3HNYtYY5tC4ZHAFYMyxWPwH0zuFNpJ4MKoMJBijGgwLiodHIbQoQUdIATPisOGGBWfOgYelBSPDkCy9ilwqR9rLa2b6W9g4PnJk1XTjq+MQDJYvEnkAxfPcir96kzvE4xp/Gs070PENy/Zl6fbxRO6ezE//fkt+g3+6n3+8fDzPJ7sepNb0lcgMKRbT/3y2bLtaXf4oFrf7ga/rYfB/dW5IV6NLpL9gi7bPiFiQn3s4RCgq0zbI3gSupDPqjIpG3OH8Vgo/4WULgQWwIRipvLpCImr7C3I4m8mKBedRPzFxUQYzAvSQkhDHNI+RpgsV6obpmF3BkwfUYJfYO5K17IuL3V+R4BQTt/T+vZlbzmve80upetxLznSmOggEEWBs5wUECoGKYmcDAtxyHcieoHU8cWAeCf59pWAt8ZqYlyEJ8SBK8bpwnkA8eCq+cwUmsynIR5BtoXsPgIRoMG0uDggnMtLx2UAYj8EhjaAqljkFKCJeNIjRNytNaWHsPMygNPAYXRQRt3MDyh8HIPlDswYExURwy0v4KSyl+t53EypYbj1E9/mo1NHVSS01gFiBYRqQLeZdaeQUDjP7b1soOSqKehG8K0lxFlGXmrCSH6OuAzl9SatpAhNMukDPrFGBUHskwzMhmSgKtVga50NKqEjs8GvCt8/IHbUA2HnbUScCpBp3mx4N50TtftTuRl3H7/9Y4fnmrGS0c6Vi65qCCw0Bp6Y7isOQpobgofDiC2mjMz0qduHLlMC69VoTPl7xCEswKEEXeLj0fOELa23JoAVQhJH1TUYBYjD7AaiKaSBAyrCHECBF3KMMHtCUh3r2COD0GOSmUk/lm7Bkru3H/7UbsP4Z7UQ/6rRXcNiCp9WU7YKhs6ETJdGkTOUgodvQXWbU1OdieE8oDnOZFJKmex3xphcSAhz2yBd4LpqSizxpiDEjFeVjVGZJ8Bq02sNw2y3koprQa5cqIZmv44QxVRGp+QvZskP4rWLu/Ll4f6YtSsza+iQxZg//Tsvn0/VQB1SOnrJvPahywHlSMqBd5nWJ02ztSlXZ13G9XqCaZUXKqGkSlA6VHmwx0j3YXBbPbCG7vbTnVJl8rqf8FY0g5Gm9AZ/yOg7Zfi7zvC1piFtdxm+Kpn9naTwbbt5coCzLjxZDfPhPbm9HGjSrjSb8HmZgvbTig6ELvsXj3nFD/jkI2ZdeupZN3dpQ99jlloJQLul1KJd723dS+tzw2N20srVqHKVuFVh8arucCGRy/K62qbFG7G0ah6VqTuSpftsv0AQ8q7aV5bGBpx6T7nY7olb7xxbLqbKzL1/GtjskOjgNGC1TQO5gxvdFj3Qo2gjVKfvbQX7nab0FWd5pYq98lCwXOQfvjJ4FQS140o6LAk5X5CbrwoUH/Cg5LBdhKHcqP64EQkQR6xU0/cYoAz14AHKOkWjlVSgNv02pemh2WaRh1EoWOQGjHkcinYRd1T5i4G0rRAfaynXtwhGi4jCkQSaU/eg7oxLb+rjO+seaHKFcmzpRFt5gAsiP11Wy0yQ7FrDD4iOJitI1p0/JuAtwNXV6RqHLgGgnA9sdiQkM0Cd3fO8sS8H3ucnqyvxlDPgbcjS7eWd/DMunuCNKvK57W0o2crSnnXTbGIrtwMt1yjZquCXzA70C0/tKN9hY5e21I0js6Xe1inxqbrbnsiblncJERwLkcv13VMwhrH/96q+PPq4Bd3OCKVUwXWMTjNG2VkFpx9dMve+2aN9Uqj+FNJUS3WEYRenqPkUsq16MHnP/LkGgoDwnIN3lUzEdrP3zGTT47/iwtA9F50mZqWKuHYipNazVaMBIRntEBITs78PjXGW/ZWtfvU/
================================================
FILE: docs/help/discord.rst
================================================
.. _help.discord:
Discord
=======
There's a discord channel which is frequented by some `contributors `_.
To join the server, head over to `https://discord.gg/aDeMffrxNg `_ and join in.
There's not many rules other than common sense and to treat others with respect. The general chat is for off-topic things as well.
There's the ``@Party Animals`` role if you want notifications of new releases which is posted in the ``#Release Party`` channel.
Another thing is the ``@Contributors`` role can be activated by contributors by writing ``!verify`` and follow the verification process.
Hop in, we hope to see you there! : )
================================================
FILE: docs/help/known_issues.rst
================================================
.. _help.known_issues:
Known Issues
============
Some issues are out of the `archinstall`_ projects scope, and the ones we know of are listed below.
.. _waiting for time sync:
Waiting for time sync `#2144`_
------------------------------
The usual root cause of this is the network topology.
More specifically `timedatectl show`_ cannot perform a proper time sync against the default servers.
Restarting ``systemd-timesyncd.service`` might work but most often you need to configure ``/etc/systemd/timesyncd.conf`` to match your network design.
.. note::
If you know your time is correct on the machine, you can run ``archinstall --skip-ntp`` to ignore time sync.
Waiting for Arch Linux keyring sync (archlinux-keyring-wkd-sync) to complete. `#2679`_
------------------------------
The ``archlinux-keyring-wkd-sync.service`` or ``archlinux-keyring-wkd-sync.timer`` can hang "indefinitely" some times.
This is usually due to an inability to reach the key servers, or a slow connection towards key servers.
The script ``/usr/bin/archlinux-keyring-wkd-sync`` can be run manually, to verify if it's executing slowly or not.
If ``systemctl show --property=ActiveEnterTimestamp --no-pager archlinux-keyring-wkd-sync.timer`` shows nothing, it means the built-in sync never finished. Likewise ``systemctl show --no-pager -p SubState --value archlinux-keyring-wkd-sync.service`` most likely shows ``dead``, which means the service never completed.
To fix this, try the following:
.. code-block:: console
# killall gpg-agent
# rm -rf /etc/pacman.d/gnupg
# pacman-key --init
# pacman-key --populate
# pacman -Sy archlinux-keyring
# systemctl restart archlinux-keyring-wkd-sync.timer
.. note::
If you know the ISO is the latest, and that you have valid GPG keys, try ``archinstall --skip-wkd`` to ignore waiting for the sync.
If you skip WKD sync, you might end up with:
.. code-block:: console
> error: archinstall: signature from "Anton Hvornum (Torxed) " is unknown trust
> :: File /var/cache/pacman/pkg/archinstall-1.2.3-4-x86_64.pkg.tar.xz is corrupted (invalid or corrupted package (PGP signature)).
> Do you want to delete it? [Y/n]
Missing Nvidia Proprietary Driver `#2002`_
------------------------------------------
In some instances, the nvidia driver might not have all the necessary packages installed.
This is due to the kernel selection and/or hardware setups requiring additional packages to work properly.
A common workaround is to install the package `linux-headers`_ and `nvidia-dkms`_
ARM, 32bit and other CPU types error out `#1686`_, `#2185`_
-----------------------------------------------------------
This is a bit of a catch-all known issue.
Officially `x86_64`_ is only supported by Arch Linux.
Hence little effort have been put into supporting other platforms.
In theory, other architectures should work but small quirks might arise.
PR's are welcome but please be respectful of the delays in merging.
Other fixes, issues or features will be prioritized for the above reasons.
Keyring is out of date `#2213`_
-------------------------------
Missing key-issues tend to be that the `archlinux-keyring`_ package is out of date, usually as a result of an outdated ISO.
There is an attempt from upstream to fix this issue, and it's the `archlinux-keyring-wkd-sync.service`_
The service starts almost immediately during boot, and if network is not configured in time — the service will fail.
Subsequently the ``archinstall`` run might operate on a old keyring despite there being an update service for this.
There is really no way to reliably over time work around this issue in ``archinstall``.
Instead, efforts to the upstream service should be considered the way forward. And/or keys not expiring between a sane amount of ISO's.
.. note::
The issue can happen on new ISO's too even as little as a few days after release, as some keys might expire right after the keyring is *"burnt in"* to the ISO.
.. note::
Another common issue relating to the network not being configured, is that time might not be set correctly - resulting in the keyring not being able to update. See :ref:`waiting for time sync`.
AUR packages
------------
This is also a catch-all issue.
`AUR is unsupported `_, and until that changes we cannot use AUR packages to solve feature requests in ``archinstall``.
This means that feature requests like supporting filesystems such as `ZFS`_ can not be added, and issues cannot be solved by using AUR packages either.
.. note::
But in spirit of giving the community options, ``archinstall`` supports :ref:`archinstall.Plugins`, which means you can run ``archinstall --plugin `` and source an AUR plugin.
`torxed/archinstall-aur `_ is a reference implementation for plugins:
.. code-block:: console
# archinstall --plugin https://archlinux.life/aur-plugin
`phisch/archinstall-aur `_ is another alternative:
.. code-block:: console
# archinstall --plugin https://raw.githubusercontent.com/phisch/archinstall-aur/master/archinstall-aur.py
.. warning::
This will allow for unsupported usage of AUR during installation.
.. _#1686: https://github.com/archlinux/archinstall/issues/1686
.. _#2002: https://github.com/archlinux/archinstall/issues/2002
.. _#2144: https://github.com/archlinux/archinstall/issues/2144
.. _#2185: https://github.com/archlinux/archinstall/issues/2185
.. _#2213: https://github.com/archlinux/archinstall/issues/2213
.. _#2679: https://github.com/archlinux/archinstall/issues/2679
.. _linux-headers: https://archlinux.org/packages/core/x86_64/linux-headers/
.. _nvidia-dkms: https://archlinux.org/packages/extra/x86_64/nvidia-dkms/
.. _x86_64: https://wiki.archlinux.org/title/Frequently_asked_questions#What_architectures_does_Arch_support?
.. _archlinux-keyring: https://archlinux.org/packages/core/any/archlinux-keyring/
.. _archlinux-keyring-wkd-sync.service: https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/blob/7e672dad10652a80d1cc575d75cdb46442cd7f96/wkd_sync/archlinux-keyring-wkd-sync.service.in
.. _ZFS: https://aur.archlinux.org/packages/zfs-linux
.. _archinstall: https://github.com/archlinux/archinstall/
.. _timedatectl show: https://github.com/archlinux/archinstall/blob/e6344f93f7e476d05bbcd642f2ed91fdde545870/archinstall/lib/installer.py#L136
================================================
FILE: docs/help/report_bug.rst
================================================
.. _help.issues:
Report Issues & Bugs
====================
Issues and bugs should be reported over at `https://github.com/archlinux/archinstall/issues `_.
General questions, enhancements and security issues can be reported over there too.
For quick issues or if you need help, head over to the Discord server which has a help channel.
Log files
---------
When submitting a help ticket, please include the :code:`/var/log/archinstall/install.log`.
It can be found both on the live ISO but also in the installed filesystem if the base packages were strapped in.
.. tip::
| An easy way to submit logs is ``curl -F 'file=@/var/log/archinstall/install.log' https://0x0.st``.
| Use caution when submitting other log files, but ``archinstall`` pledges to keep ``install.log`` safe for posting publicly!
There are additional log files under ``/var/log/archinstall/`` that can be useful:
- ``/var/log/archinstall/user_configuration.json`` - Stores most of the guided answers in the installer
- ``/var/log/archinstall/user_credentials.json`` - Stores any usernames or passwords, can be passed to ``--creds``
- ``/var/log/archinstall/user_disk_layouts.json`` - Stores the chosen disks and their layouts
- ``/var/log/archinstall/install.log`` - A log file over what steps were taken by archinstall
- ``/var/log/archinstall/cmd_history.txt`` - A complete command history, command by command in order
- ``/var/log/archinstall/cmd_output.txt`` - A raw output from all the commands that were executed by archinstall
.. warning::
We only try to guarantee that ``/var/log/archinstall/install.log`` is free from sensitive information.
Any other log file should be pasted with **utmost care**!
================================================
FILE: docs/index.rst
================================================
archinstall Documentation
=========================
**archinstall** is a library which can be used to install Arch Linux.
The library comes packaged with different pre-configured installers, such as the default :ref:`guided` installer.
Some of the features of Archinstall are:
* **Context friendly.** The library always executes calls in sequential order to ensure installation-steps don't overlap or execute in the wrong order. It also supports *(and uses)* context wrappers to ensure cleanup and final tasks such as ``mkinitcpio`` are called when needed.
* **Full transparency** Logs and insights can be found at ``/var/log/archinstall`` both in the live ISO and partially on the installed system.
* **Accessibility friendly** Archinstall works with ``espeakup`` and other accessibility tools thanks to the use of a TUI.
.. toctree::
:maxdepth: 1
:caption: Running Archinstall
installing/guided
.. toctree::
:maxdepth: 3
:caption: Getting help
help/known_issues
help/report_bug
help/discord
.. toctree::
:maxdepth: 3
:caption: Archinstall as a library
installing/python
examples/python
archinstall/plugins
.. toctree::
:maxdepth: 3
:caption: API Reference
archinstall/Installer
================================================
FILE: docs/installing/guided.rst
================================================
.. _guided:
Guided installation
===================
Archinstall ships with a pre-programmed `Guided Installer`_ guiding you through the mandatory steps as well as some optional configurations that can be done.
.. note::
Other pre-programmed scripts can be invoked by executing :code:`archinstall --script