diff --git a/.github/workflows/build_flatpak.yml b/.github/workflows/build_flatpak.yml index 8e480c2c471..a38377ae793 100644 --- a/.github/workflows/build_flatpak.yml +++ b/.github/workflows/build_flatpak.yml @@ -8,11 +8,11 @@ jobs: name: "build-packages" runs-on: ubuntu-latest container: - image: bilelmoussaoui/flatpak-github-actions:gnome-47 + image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-47 options: --privileged steps: - uses: actions/checkout@v4 - - uses: bilelmoussaoui/flatpak-github-actions/flatpak-builder@v6 + - uses: flathub-infra/flatpak-github-actions/flatpak-builder@master with: bundle: bottles.flatpak manifest-path: build-aux/com.usebottles.bottles.Devel.json diff --git a/.github/workflows/update-manifest.yml b/.github/workflows/update-manifest.yml index 73b1f92b80c..b4995159de7 100644 --- a/.github/workflows/update-manifest.yml +++ b/.github/workflows/update-manifest.yml @@ -37,11 +37,11 @@ jobs: git config user.name "github-actions[bot]" pur -r requirements.txt pur -r requirements.dev.txt - req2flatpak --requirements-file requirements.txt --yaml --target-platforms 312-x86_64 -o com.usebottles.bottles.pypi-deps.yaml - git diff ${{ github.ref_name }} --exit-code requirements.txt requirements.dev.txt com.usebottles.bottles.pypi-deps.yaml + req2flatpak --requirements-file requirements.txt --yaml --target-platforms 312-x86_64 -o build-aux/pypi-deps.yaml + git diff ${{ github.ref_name }} --exit-code requirements.txt requirements.dev.txt build-aux/pypi-deps.yaml updated=$? if [ $updated -ne 0 ]; then - git add requirements.txt requirements.dev.txt com.usebottles.bottles.pypi-deps.yaml + git add requirements.txt requirements.dev.txt pypi-deps git commit -m "Update PyPI dependencies" fi diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 55478f22819..440e1dd93f4 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,6 +13,12 @@ repos: args: ["--autofix", "--no-sort-keys", "--indent", "4"] - id: check-added-large-files +- repo: https://github.com/asottile/pyupgrade + rev: v3.19.1 + hooks: + - id: pyupgrade + args: ["--py312-plus"] + - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.8.2 hooks: @@ -20,14 +26,14 @@ repos: args: [ "--fix" ] - id: ruff-format +- repo: https://github.com/PyCQA/autoflake + rev: v2.3.1 + hooks: + - id: autoflake + - repo: https://github.com/pre-commit/mirrors-mypy rev: v1.13.0 hooks: - id: mypy args: ["--pretty"] - additional_dependencies: ["pygobject-stubs", "types-PyYAML", "types-Markdown", "types-requests", "types-pycurl", "types-chardet", "pytest-stub", "types-orjson", "pathvalidate", "requirements-parser", "icoextract", "fvs", "patool", "git+https://gitlab.com/TheEvilSkeleton/vkbasalt-cli.git@main"] - -- repo: https://github.com/PyCQA/autoflake - rev: v2.3.1 - hooks: - - id: autoflake + additional_dependencies: ["pygobject-stubs", "types-PyYAML", "types-Markdown", "types-requests", "types-pycurl", "types-chardet", "pytest-stub", "types-orjson", "pathvalidate", "requirements-parser", "icoextract", "fvs", "patool", "pyfluidsynth", "git+https://gitlab.com/TheEvilSkeleton/vkbasalt-cli.git@main"] diff --git a/CODING_GUIDE.md b/CODING_GUIDE.md index e05f07f6a74..5f2fe4fc53f 100644 --- a/CODING_GUIDE.md +++ b/CODING_GUIDE.md @@ -33,7 +33,7 @@ pytest . Regenerate PYPI dependency manifest when requirements.txt changed ```bash -python ./build-aux/flatpak-pip-generator.py --runtime org.gnome.Sdk -r requirements.txt -o com.usebottles.bottles.pypi-deps --yaml +python ./build-aux/req2flatpak/req2flatpak.py --requirements-file requirements.txt --yaml --target-platforms 312-x86_64 -o build-aux/pypi-deps.yaml ``` ## I18n files diff --git a/bottles/backend/cabextract.py b/bottles/backend/cabextract.py index 4fcf3702361..bfe6cd00b5a 100644 --- a/bottles/backend/cabextract.py +++ b/bottles/backend/cabextract.py @@ -19,7 +19,6 @@ import shlex import shutil import subprocess -from typing import Optional from bottles.backend.logger import Logger @@ -47,7 +46,7 @@ def run( self, path: str, name: str = "", - files: Optional[list] = None, + files: list | None = None, destination: str = "", ): if files is None: diff --git a/bottles/backend/downloader.py b/bottles/backend/downloader.py index 9772be16389..482e88f0908 100644 --- a/bottles/backend/downloader.py +++ b/bottles/backend/downloader.py @@ -18,7 +18,6 @@ import shutil import sys import time -from typing import Optional import requests @@ -38,7 +37,7 @@ class Downloader: """ def __init__( - self, url: str, file: str, update_func: Optional[TaskStreamUpdateHandler] = None + self, url: str, file: str, update_func: TaskStreamUpdateHandler | None = None ): self.start_time = None self.url = url diff --git a/bottles/backend/globals.py b/bottles/backend/globals.py index 488acea3154..8123b2396ba 100644 --- a/bottles/backend/globals.py +++ b/bottles/backend/globals.py @@ -18,7 +18,6 @@ import os import shutil from pathlib import Path -from typing import Dict from bottles.backend.utils import yaml, json @@ -82,7 +81,7 @@ class TrdyPaths: vmtouch_available = shutil.which("vmtouch") or False base_version = "" if os.path.isfile("/app/manifest.json"): - with open("/app/manifest.json", mode="r", encoding="utf-8") as file: + with open("/app/manifest.json", encoding="utf-8") as file: base_version = ( json.load(file) # type: ignore .get("base-version", "") @@ -90,4 +89,4 @@ class TrdyPaths: ) # encoding detection correction, following windows defaults -locale_encodings: Dict[str, str] = {"ja_JP": "cp932", "zh_CN": "gbk"} +locale_encodings: dict[str, str] = {"ja_JP": "cp932", "zh_CN": "gbk"} diff --git a/bottles/backend/managers/component.py b/bottles/backend/managers/component.py index b9ecacc41cf..9065f7f337f 100644 --- a/bottles/backend/managers/component.py +++ b/bottles/backend/managers/component.py @@ -20,7 +20,6 @@ import shutil import tarfile from functools import lru_cache -from typing import Optional import pycurl @@ -131,7 +130,7 @@ def download( file: str, rename: str = "", checksum: str = "", - func: Optional[TaskStreamUpdateHandler] = None, + func: TaskStreamUpdateHandler | None = None, ) -> bool: """Download a component from the Bottles repository.""" @@ -274,7 +273,7 @@ def extract(name: str, component: str, archive: str) -> bool: root_dir = tar.getnames()[0] tar.extractall(path) tar.close() - except (tarfile.TarError, IOError, EOFError): + except (tarfile.TarError, OSError, EOFError): with contextlib.suppress(FileNotFoundError): os.remove(os.path.join(Paths.temp, archive)) with contextlib.suppress(FileNotFoundError): @@ -301,7 +300,7 @@ def install( self, component_type: str, component_name: str, - func: Optional[TaskStreamUpdateHandler] = None, + func: TaskStreamUpdateHandler | None = None, ): """ This function is used to install a component. It automatically diff --git a/bottles/backend/managers/conf.py b/bottles/backend/managers/conf.py index 736627d4c31..2936700746b 100644 --- a/bottles/backend/managers/conf.py +++ b/bottles/backend/managers/conf.py @@ -1,16 +1,15 @@ import os from configparser import ConfigParser -from typing import Optional from bottles.backend.utils import yaml, json -class ConfigManager(object): +class ConfigManager: def __init__( self, - config_file: Optional[str] = None, + config_file: str | None = None, config_type: str = "ini", - config_string: Optional[str] = None, + config_string: str | None = None, ): self.config_file = config_file self.config_string = config_string @@ -44,10 +43,10 @@ def read(self): # noinspection PyProtectedMember res = config._sections elif self.config_type == "json": - with open(self.config_file, "r") as f: + with open(self.config_file) as f: res = json.load(f) elif self.config_type == "yaml" or self.config_type == "yml": - with open(self.config_file, "r") as f: + with open(self.config_file) as f: res = yaml.load(f) else: raise ValueError("Invalid configuration type") @@ -94,7 +93,7 @@ def write_ini(self): with open(self.config_file, "w") as f: config.write(f) - def write_dict(self, config_file: Optional[str] = None): + def write_dict(self, config_file: str | None = None): if self.config_file is None and config_file is None: raise ValueError("No config path specified") elif self.config_file is None and config_file is not None: diff --git a/bottles/backend/managers/data.py b/bottles/backend/managers/data.py index d5224eb1c02..fc463840ca4 100644 --- a/bottles/backend/managers/data.py +++ b/bottles/backend/managers/data.py @@ -45,7 +45,7 @@ def __init__(self): def __get_data(self): try: - with open(self.__p_data, "r") as s: + with open(self.__p_data) as s: self.__data = yaml.load(s) if self.__data is None: raise AttributeError diff --git a/bottles/backend/managers/dependency.py b/bottles/backend/managers/dependency.py index ce238094b56..0c95dfc8dbf 100644 --- a/bottles/backend/managers/dependency.py +++ b/bottles/backend/managers/dependency.py @@ -91,7 +91,9 @@ def install(self, config: BottleConfig, dependency: list) -> Result: task_id = TaskManager.add(Task(title=dependency[0])) logging.info( - "Installing dependency [%s] in bottle [%s]." % (dependency[0], config.Name), + "Installing dependency [{}] in bottle [{}].".format( + dependency[0], config.Name + ), ) manifest = self.get_dependency(dependency[0]) if not manifest: diff --git a/bottles/backend/managers/epicgamesstore.py b/bottles/backend/managers/epicgamesstore.py index 6fb93379513..127fe616f95 100644 --- a/bottles/backend/managers/epicgamesstore.py +++ b/bottles/backend/managers/epicgamesstore.py @@ -59,7 +59,7 @@ def get_installed_games(config: BottleConfig) -> list: if dat_path is None: return [] - with open(dat_path, "r") as dat: + with open(dat_path) as dat: data = json.load(dat) for game in data["InstallationList"]: diff --git a/bottles/backend/managers/installer.py b/bottles/backend/managers/installer.py index 0fb1e65f278..5bf63a53786 100644 --- a/bottles/backend/managers/installer.py +++ b/bottles/backend/managers/installer.py @@ -18,7 +18,6 @@ import subprocess import uuid from functools import lru_cache -from typing import Optional import markdown import pycurl @@ -358,7 +357,7 @@ def install( installer: dict, step_fn: callable, is_final: bool = True, - local_resources: Optional[dict] = None, + local_resources: dict | None = None, ): manifest = self.get_installer(installer[0]) _config = config diff --git a/bottles/backend/managers/journal.py b/bottles/backend/managers/journal.py index d993f763226..8c471ff180b 100644 --- a/bottles/backend/managers/journal.py +++ b/bottles/backend/managers/journal.py @@ -20,7 +20,6 @@ import shutil import uuid from datetime import datetime, timedelta -from typing import Optional from bottles.backend.globals import Paths from bottles.backend.utils import yaml @@ -52,7 +51,7 @@ def __get_journal() -> dict: with open(JournalManager.path, "w") as f: yaml.dump({}, f) - with open(JournalManager.path, "r") as f: + with open(JournalManager.path) as f: try: journal = yaml.load(f) except yaml.YAMLError: @@ -100,7 +99,7 @@ def __clean_old(): JournalManager.__save_journal(journal) @staticmethod - def __save_journal(journal: Optional[dict] = None): + def __save_journal(journal: dict | None = None): """Save the journal to the journal file.""" if journal is None: journal = JournalManager.__get_journal() diff --git a/bottles/backend/managers/library.py b/bottles/backend/managers/library.py index d2421344b0c..d462c8de511 100644 --- a/bottles/backend/managers/library.py +++ b/bottles/backend/managers/library.py @@ -49,7 +49,7 @@ def load_library(self, silent=False): self.__library = {} self.save_library() else: - with open(self.library_path, "r") as library_file: + with open(self.library_path) as library_file: self.__library = yaml.load(library_file) if self.__library is None: diff --git a/bottles/backend/managers/manager.py b/bottles/backend/managers/manager.py index 8b04c30e218..c3d990c4722 100644 --- a/bottles/backend/managers/manager.py +++ b/bottles/backend/managers/manager.py @@ -26,7 +26,7 @@ from datetime import datetime from gettext import gettext as _ from glob import glob -from typing import Any, Dict, List, Optional +from typing import Any import pathvalidate @@ -91,7 +91,7 @@ class Manager(metaclass=Singleton): vkd3d_available = [] nvapi_available = [] latencyflex_available = [] - local_bottles: Dict[str, BottleConfig] = {} + local_bottles: dict[str, BottleConfig] = {} supported_runtimes = {} supported_winebridge = {} supported_wine_runners = {} @@ -413,7 +413,7 @@ def check_runners(self, install_latest: bool = True) -> bool: if len(self.runners_available) > 0: logging.info( - "Runners found:\n - {0}".format("\n - ".join(self.runners_available)) + "Runners found:\n - {}".format("\n - ".join(self.runners_available)) ) tmp_runners = [x for x in self.runners_available if not x.startswith("sys-")] @@ -464,7 +464,7 @@ def check_runtimes(self, install_latest: bool = True) -> bool: manifest = os.path.join(Paths.runtimes, runtime, "manifest.yml") if os.path.exists(manifest): - with open(manifest, "r") as f: + with open(manifest) as f: data = yaml.load(f) version = data.get("version") if version: @@ -493,7 +493,7 @@ def check_winebridge( version_file = os.path.join(Paths.winebridge, "VERSION") if os.path.exists(version_file): - with open(version_file, "r") as f: + with open(version_file) as f: version = f.read().strip() if version: self.winebridge_available = [f"winebridge-{version}"] @@ -630,7 +630,7 @@ def __check_component( if len(component["available"]) > 0: logging.info( - "{0}s found:\n - {1}".format( + "{}s found:\n - {}".format( component_type.capitalize(), "\n - ".join(component["available"]) ) ) @@ -663,7 +663,7 @@ def __check_component( except ValueError: return sorted(component["available"], reverse=True) - def get_programs(self, config: BottleConfig) -> List[dict]: + def get_programs(self, config: BottleConfig) -> list[dict]: """ Get the list of programs (both from the drive and the user defined in the bottle configuration file). @@ -725,6 +725,7 @@ def get_programs(self, config: BottleConfig) -> List[dict]: "pre_script": _program.get("pre_script"), "post_script": _program.get("post_script"), "folder": _program.get("folder", program_folder), + "midi_soundfont": _program.get("midi_soundfont"), "dxvk": _program.get("dxvk"), "vkd3d": _program.get("vkd3d"), "dxvk_nvapi": _program.get("dxvk_nvapi"), @@ -825,7 +826,7 @@ def process_bottle(bottle): _config = os.path.join(_bottle, "bottle.yml") if os.path.exists(_placeholder): - with open(_placeholder, "r") as f: + with open(_placeholder) as f: try: placeholder_yaml = yaml.load(f) if placeholder_yaml.get("Path"): @@ -951,7 +952,7 @@ def process_bottle(bottle): if len(self.local_bottles) > 0 and not silent: logging.info( - "Bottles found:\n - {0}".format("\n - ".join(self.local_bottles)) + "Bottles found:\n - {}".format("\n - ".join(self.local_bottles)) ) if ( @@ -1138,7 +1139,7 @@ def create_bottle( sandbox: bool = False, fn_logger: callable = None, arch: str = "win64", - custom_environment: Optional[str] = None, + custom_environment: str | None = None, ) -> Result[dict]: """ Create a new bottle from the given arguments. @@ -1392,7 +1393,7 @@ def components_check(): env = Samples.environments[environment.lower()] elif custom_environment: try: - with open(custom_environment, "r") as f: + with open(custom_environment) as f: env = yaml.load(f.read()) logging.warning("Using a custom environment recipe…") log_update(_("(!) Using a custom environment recipe…")) diff --git a/bottles/backend/managers/sandbox.py b/bottles/backend/managers/sandbox.py index c943e98995a..2f5661d994e 100644 --- a/bottles/backend/managers/sandbox.py +++ b/bottles/backend/managers/sandbox.py @@ -19,17 +19,16 @@ import os import shlex import subprocess -from typing import Optional class SandboxManager: def __init__( self, - envs: Optional[dict] = None, - chdir: Optional[str] = None, + envs: dict | None = None, + chdir: str | None = None, clear_env: bool = False, - share_paths_ro: Optional[list] = None, - share_paths_rw: Optional[list] = None, + share_paths_ro: list | None = None, + share_paths_rw: list | None = None, share_net: bool = False, share_user: bool = False, share_host_ro: bool = True, diff --git a/bottles/backend/managers/steam.py b/bottles/backend/managers/steam.py index 0596dec51a6..495214ad52d 100644 --- a/bottles/backend/managers/steam.py +++ b/bottles/backend/managers/steam.py @@ -24,7 +24,6 @@ from functools import lru_cache from glob import glob from pathlib import Path -from typing import Dict, Optional from bottles.backend.globals import Paths from bottles.backend.models.config import BottleConfig @@ -51,7 +50,7 @@ class SteamManager: def __init__( self, - config: Optional[BottleConfig] = None, + config: BottleConfig | None = None, is_windows: bool = False, check_only: bool = False, ): @@ -106,7 +105,7 @@ def get_acf_data(libraryfolder: str, app_id: str) -> dict | None: if not os.path.isfile(acf_path): return None - with open(acf_path, "r", errors="replace") as f: + with open(acf_path, errors="replace") as f: data = SteamUtils.parse_acf(f.read()) return data @@ -133,7 +132,7 @@ def __get_library_folders(self) -> list | None: logging.warning("Could not find the libraryfolders.vdf file") return None - with open(library_folders_path, "r", errors="replace") as f: + with open(library_folders_path, errors="replace") as f: _library_folders = SteamUtils.parse_vdf(f.read()) if _library_folders is None or not _library_folders.get("libraryfolders"): @@ -168,7 +167,7 @@ def __get_local_config(self) -> dict: if self.localconfig_path is None: return {} - with open(self.localconfig_path, "r", errors="replace") as f: + with open(self.localconfig_path, errors="replace") as f: data = SteamUtils.parse_vdf(f.read()) if data is None: @@ -192,14 +191,14 @@ def save_local_config(self, new_data: dict): @staticmethod @lru_cache - def get_runner_path(pfx_path: str) -> Optional[str]: + def get_runner_path(pfx_path: str) -> str | None: """Get runner path from config_info file""" config_info = os.path.join(pfx_path, "config_info") if not os.path.isfile(config_info): return None - with open(config_info, "r") as f: + with open(config_info) as f: lines = f.readlines() if len(lines) < 10: logging.error( @@ -273,7 +272,7 @@ def get_installed_apps_as_programs(self) -> list: return apps - def list_prefixes(self) -> Dict[str, BottleConfig]: + def list_prefixes(self) -> dict[str, BottleConfig]: apps = self.list_apps_ids() prefixes = {} @@ -391,7 +390,7 @@ def get_app_config(self, prefix: str) -> dict: return apps[prefix] - def get_launch_options(self, prefix: str, app_conf: Optional[dict] = None) -> {}: + def get_launch_options(self, prefix: str, app_conf: dict | None = None) -> {}: if app_conf is None: app_conf = self.get_app_config(prefix) diff --git a/bottles/backend/managers/template.py b/bottles/backend/managers/template.py index 1ab83ebfbdd..04bb82355fd 100644 --- a/bottles/backend/managers/template.py +++ b/bottles/backend/managers/template.py @@ -104,7 +104,7 @@ def __validate_template(template_uuid: str): logging.error(f"Template {template_uuid} is too small!") result = False - with open(os.path.join(template_path, "template.yml"), "r") as f: + with open(os.path.join(template_path, "template.yml")) as f: template = yaml.load(f) if template["uuid"] != template_uuid: logging.error(f"Template {template_uuid} has invalid uuid!") @@ -114,7 +114,7 @@ def __validate_template(template_uuid: str): @staticmethod def get_template_manifest(template: str): - with open(os.path.join(Paths.templates, template, "template.yml"), "r") as f: + with open(os.path.join(Paths.templates, template, "template.yml")) as f: return yaml.load(f) @staticmethod diff --git a/bottles/backend/managers/ubisoftconnect.py b/bottles/backend/managers/ubisoftconnect.py index 120d2cc9019..e56633e4094 100644 --- a/bottles/backend/managers/ubisoftconnect.py +++ b/bottles/backend/managers/ubisoftconnect.py @@ -17,7 +17,6 @@ import os import uuid -from typing import Optional from bottles.backend.models.config import BottleConfig from bottles.backend.utils.manager import ManagerUtils @@ -56,9 +55,9 @@ def get_installed_games(config: BottleConfig) -> list: """ found = {} games = [] - key: Optional[str] = None - appid: Optional[str] = None - thumb: Optional[str] = None + key: str | None = None + appid: str | None = None + thumb: str | None = None reg_key = ( "register: HKEY_LOCAL_MACHINE\\SOFTWARE\\Ubisoft\\Launcher\\Installs\\" ) @@ -71,7 +70,7 @@ def get_installed_games(config: BottleConfig) -> list: if conf_path is None: return [] - with open(conf_path, "r", encoding="iso-8859-15") as c: + with open(conf_path, encoding="iso-8859-15") as c: for r in c.readlines(): r = r.strip() diff --git a/bottles/backend/managers/versioning.py b/bottles/backend/managers/versioning.py index 30b63bc6abc..6f5163a1519 100644 --- a/bottles/backend/managers/versioning.py +++ b/bottles/backend/managers/versioning.py @@ -155,9 +155,7 @@ def set_state( status=True, message=_("State {0} restored successfully!").format(state_id), ) - task_id = TaskManager.add( - Task(title=_("Restoring state {} …".format(state_id))) - ) + task_id = TaskManager.add(Task(title=_(f"Restoring state {state_id} …"))) try: repo.restore_state(state_id, ignore=patterns) except FVSStateNotFound: @@ -204,25 +202,27 @@ def set_state( # perform file updates for file in remove_files: - os.remove("%s/drive_c/%s" % (bottle_path, file["file"])) + os.remove("{}/drive_c/{}".format(bottle_path, file["file"])) for file in add_files: - source = "%s/states/%s/drive_c/%s" % ( + source = "{}/states/{}/drive_c/{}".format( bottle_path, str(state_id), file["file"], ) - target = "%s/drive_c/%s" % (bottle_path, file["file"]) + target = "{}/drive_c/{}".format(bottle_path, file["file"]) shutil.copy2(source, target) for file in edit_files: for i in search_sources: - source = "%s/states/%s/drive_c/%s" % (bottle_path, str(i), file["file"]) + source = "{}/states/{}/drive_c/{}".format( + bottle_path, str(i), file["file"] + ) if os.path.isfile(source): checksum = FileUtils().get_checksum(source) if file["checksum"] == checksum: break - target = "%s/drive_c/%s" % (bottle_path, file["file"]) + target = "{}/drive_c/{}".format(bottle_path, file["file"]) shutil.copy2(source, target) # update State in bottle config @@ -250,7 +250,7 @@ def get_state_files( files = file.read() if plain else yaml.load(file.read()) file.close() return files - except (OSError, IOError, yaml.YAMLError): + except (OSError, yaml.YAMLError): logging.error("Could not read the state files file.") return {} diff --git a/bottles/backend/models/config.py b/bottles/backend/models/config.py index d42c6db74a3..9136f027ae2 100644 --- a/bottles/backend/models/config.py +++ b/bottles/backend/models/config.py @@ -3,7 +3,8 @@ import os from dataclasses import dataclass, field, replace, asdict, is_dataclass from io import IOBase -from typing import List, Dict, Optional, ItemsView, Container, IO +from typing import Optional, IO +from collections.abc import ItemsView, Container from bottles.backend.models.result import Result from bottles.backend.utils import yaml @@ -135,9 +136,9 @@ class BottleConfig(DictCompatMixIn): Parameters: BottleParams = field(default_factory=BottleParams) Sandbox: BottleSandboxParams = field(default_factory=BottleSandboxParams) Environment_Variables: dict = field(default_factory=dict) - Installed_Dependencies: List[str] = field(default_factory=list) + Installed_Dependencies: list[str] = field(default_factory=list) DLL_Overrides: dict = field(default_factory=dict) - External_Programs: Dict[str, dict] = field(default_factory=dict) + External_Programs: dict[str, dict] = field(default_factory=dict) Uninstallers: dict = field(default_factory=dict) session_arguments: str = "" run_in_terminal: bool = False @@ -272,8 +273,6 @@ def _filter(cls, data: dict, clazz: object = None) -> dict: v = cls._filter(v, field_type) new_data[k] = v else: - logging.warning( - "Skipping unexpected config '%s' in %s" % (k, clazz.__name__) - ) + logging.warning(f"Skipping unexpected config '{k}' in {clazz.__name__}") return new_data diff --git a/bottles/backend/models/vdict.py b/bottles/backend/models/vdict.py index cc795c074b3..9ee4608e16d 100644 --- a/bottles/backend/models/vdict.py +++ b/bottles/backend/models/vdict.py @@ -102,15 +102,15 @@ def __setitem__(self, key, value): raise KeyError("%s doesn't exist" % repr(key)) else: raise TypeError("Expected either a str or tuple for key") - super(VDFDict, self).__setitem__(key, value) + super().__setitem__(key, value) self.__kcount[key[1]] += 1 def __getitem__(self, key): - return super(VDFDict, self).__getitem__(self._normalize_key(key)) + return super().__getitem__(self._normalize_key(key)) def __delitem__(self, key): key = self._normalize_key(key) - result = super(VDFDict, self).__delitem__(key) + result = super().__delitem__(key) start_idx = self.__omap.index(key) del self.__omap[start_idx] @@ -124,8 +124,8 @@ def __delitem__(self, key): if self.__omap[idx][1] == skey: oldkey = self.__omap[idx] newkey = (dup_idx, skey) - super(VDFDict, self).__setitem__(newkey, self[oldkey]) - super(VDFDict, self).__delitem__(oldkey) + super().__setitem__(newkey, self[oldkey]) + super().__delitem__(oldkey) self.__omap[idx] = newkey dup_idx += 1 @@ -142,7 +142,7 @@ def __iter__(self): return iter(self.iterkeys()) def __contains__(self, key): - return super(VDFDict, self).__contains__(self._normalize_key(key)) + return super().__contains__(self._normalize_key(key)) def __eq__(self, other): if isinstance(other, VDFDict): @@ -154,12 +154,12 @@ def __ne__(self, other): return not self.__eq__(other) def clear(self): - super(VDFDict, self).clear() + super().clear() self.__kcount.clear() self.__omap = list() def get(self, key, *_args): - return super(VDFDict, self).get(self._normalize_key(key), *_args) + return super().get(self._normalize_key(key), *_args) def setdefault(self, key, default=None): if key not in self: @@ -217,7 +217,7 @@ def remove_all_for(self, key): raise TypeError("Key need to be a string.") for idx in _range(self.__kcount[key]): - super(VDFDict, self).__delitem__((idx, key)) + super().__delitem__((idx, key)) self.__omap = list(filter(lambda x: x[1] != key, self.__omap)) diff --git a/bottles/backend/state.py b/bottles/backend/state.py index 38a6ddb225c..e29bbe18862 100644 --- a/bottles/backend/state.py +++ b/bottles/backend/state.py @@ -2,7 +2,8 @@ from enum import Enum from gettext import gettext as _ from threading import Lock as PyLock, Event as PyEvent -from typing import Dict, Callable, Optional, Protocol, List +from typing import Protocol +from collections.abc import Callable from uuid import UUID, uuid4 from bottles.backend.logger import Logger @@ -59,12 +60,12 @@ def __call__( self, received_size: int = 0, total_size: int = 0, - status: Optional[Status] = None, + status: Status | None = None, ) -> None: ... class SignalHandler(Protocol): - def __call__(self, data: Optional[Result] = None) -> None: ... + def __call__(self, data: Result | None = None) -> None: ... @dataclasses.dataclass @@ -76,7 +77,7 @@ class Notification: @dataclasses.dataclass(init=False) class Task: - _task_id: Optional[UUID] = None # should only be set by TaskManager + _task_id: UUID | None = None # should only be set by TaskManager title: str = "Task" _subtitle: str = "" hidden: bool = False # hide from UI @@ -95,7 +96,7 @@ def __init__( self.cancellable = cancellable @property - def task_id(self) -> Optional[UUID]: + def task_id(self) -> UUID | None: return self._task_id @task_id.setter @@ -119,7 +120,7 @@ def stream_update( self, received_size: int = 0, total_size: int = 0, - status: Optional[Status] = None, + status: Status | None = None, ): """This is a default subtitle updating handler for streaming downloading progress""" match status: @@ -138,7 +139,7 @@ def stream_update( class LockManager: - _LOCKS: Dict[Locks, PyLock] = {} + _LOCKS: dict[Locks, PyLock] = {} @classmethod def lock(cls, name: Locks): @@ -168,7 +169,7 @@ class EventManager: Wait for an event that has already been set, will immediately return. """ - _EVENTS: Dict[Events, PyEvent] = {} + _EVENTS: dict[Events, PyEvent] = {} @classmethod def wait(cls, event: Events): @@ -194,10 +195,10 @@ def reset(cls, event: Events): class TaskManager: """Long-running tasks are registered here, for tracking and display them on UI""" - _TASKS: Dict[UUID, Task] = {} # {UUID4: Task} + _TASKS: dict[UUID, Task] = {} # {UUID4: Task} @classmethod - def get(cls, task_id: UUID) -> Optional[Task]: + def get(cls, task_id: UUID) -> Task | None: return cls._TASKS.get(task_id) @classmethod @@ -220,7 +221,7 @@ def remove(cls, task: UUID | Task): class SignalManager: """sync backend state to frontend via registered signal handlers""" - _SIGNALS: Dict[Signals, List[SignalHandler]] = {} + _SIGNALS: dict[Signals, list[SignalHandler]] = {} @classmethod def connect(cls, signal: Signals, handler: SignalHandler) -> None: @@ -228,7 +229,7 @@ def connect(cls, signal: Signals, handler: SignalHandler) -> None: cls._SIGNALS[signal].append(handler) @classmethod - def send(cls, signal: Signals, data: Optional[Result] = None) -> None: + def send(cls, signal: Signals, data: Result | None = None) -> None: """ Send signal should only be called by backend logic diff --git a/bottles/backend/utils/connection.py b/bottles/backend/utils/connection.py index 46d905adcbc..acc84a33636 100644 --- a/bottles/backend/utils/connection.py +++ b/bottles/backend/utils/connection.py @@ -18,7 +18,6 @@ import os from datetime import datetime from gettext import gettext as _ -from typing import Optional import pycurl @@ -36,7 +35,7 @@ class ConnectionUtils: notified and False will be returned, otherwise True. """ - _status: Optional[bool] = None + _status: bool | None = None last_check = None def __init__(self, force_offline=False, **kwargs): @@ -47,7 +46,7 @@ def __init__(self, force_offline=False, **kwargs): SignalManager.connect(Signals.ForceStopNetworking, self.stop_check) @property - def status(self) -> Optional[bool]: + def status(self) -> bool | None: return self._status @status.setter @@ -69,7 +68,7 @@ def stop_check(self, res: Result): if res.status: self.do_check_connection = False - def check_connection(self, show_notification=False) -> Optional[bool]: + def check_connection(self, show_notification=False) -> bool | None: """check network status, send result through signal NetworkReady and return""" if self.force_offline or "FORCE_OFFLINE" in os.environ: logging.info("Forcing offline mode") diff --git a/bottles/backend/utils/file.py b/bottles/backend/utils/file.py index f07dbbea00c..31f99d45329 100644 --- a/bottles/backend/utils/file.py +++ b/bottles/backend/utils/file.py @@ -49,7 +49,7 @@ def get_checksum(file): def use_insensitive_ext(string): """Converts a glob pattern into a case-insensitive glob pattern""" ext = string.split(".")[1] - globlist = ["[%s%s]" % (c.lower(), c.upper()) for c in ext] + globlist = [f"[{c.lower()}{c.upper()}]" for c in ext] return "*.%s" % "".join(globlist) @staticmethod @@ -66,10 +66,10 @@ def get_human_size_legacy(size: float) -> str: """Returns a human readable size from a given float size""" for unit in ["", "Ki", "Mi", "Gi", "Ti", "Pi", "Ei", "Zi"]: if abs(size) < 1024.0: - return "%3.1f%s%s" % (size, unit, "B") + return "{:3.1f}{}{}".format(size, unit, "B") size /= 1024.0 - return "%.1f%s%s" % (size, "Yi", "B") + return "{:.1f}{}{}".format(size, "Yi", "B") def get_path_size(self, path: str, human: bool = True) -> str | float: """ diff --git a/bottles/backend/utils/generic.py b/bottles/backend/utils/generic.py index a6b607cbd05..6f44fd7cf3f 100644 --- a/bottles/backend/utils/generic.py +++ b/bottles/backend/utils/generic.py @@ -20,7 +20,6 @@ import re import string import subprocess -from typing import Optional import chardet @@ -42,7 +41,7 @@ def validate_url(url: str): return re.match(regex, url) is not None -def detect_encoding(text: bytes, locale_hint: str = None) -> Optional[str]: +def detect_encoding(text: bytes, locale_hint: str = None) -> str | None: """ Detect the encoding of a text by its bytes. Return None if it can't be detected. diff --git a/bottles/backend/utils/json.py b/bottles/backend/utils/json.py index a99b2ba32be..1e1e47006c0 100644 --- a/bottles/backend/utils/json.py +++ b/bottles/backend/utils/json.py @@ -2,7 +2,7 @@ import json import json as _json -from typing import Optional, IO, Any, Type +from typing import IO, Any from bottles.backend.models.config import DictCompatMixIn @@ -30,8 +30,8 @@ def dump( obj: Any, fp: IO[str], *, - indent: Optional[str | int] = None, - cls: Optional[Type[_json.JSONEncoder]] = None, + indent: str | int | None = None, + cls: type[_json.JSONEncoder] | None = None, ) -> None: """ Serialize obj as a JSON formatted stream to fp (a .write()-supporting file-like object). @@ -49,8 +49,8 @@ def dump( def dumps( obj: Any, *, - indent: Optional[str | int] = None, - cls: Optional[Type[_json.JSONEncoder]] = None, + indent: str | int | None = None, + cls: type[_json.JSONEncoder] | None = None, ) -> str: """ Serialize obj to a JSON formatted str. diff --git a/bottles/backend/utils/manager.py b/bottles/backend/utils/manager.py index bd5ecc58752..1a7e29d0ed8 100644 --- a/bottles/backend/utils/manager.py +++ b/bottles/backend/utils/manager.py @@ -20,7 +20,6 @@ from datetime import datetime from gettext import gettext as _ from glob import glob -from typing import Optional import icoextract # type: ignore [import-untyped] @@ -43,7 +42,7 @@ class ManagerUtils: @staticmethod def open_filemanager( - config: Optional[BottleConfig] = None, + config: BottleConfig | None = None, path_type: str = "bottle", component: str = "", custom_path: str = "", @@ -152,7 +151,7 @@ def move_file_to_bottle( fn_update(_size) fn_update(1) return file_new_path - except (OSError, IOError): + except OSError: logging.error(f"Could not copy file {file_path} to the bottle.") return False diff --git a/bottles/backend/utils/meson.build b/bottles/backend/utils/meson.build index 5af7b7011d2..ab74896ff1b 100644 --- a/bottles/backend/utils/meson.build +++ b/bottles/backend/utils/meson.build @@ -6,6 +6,7 @@ bottles_sources = [ 'display.py', 'gpu.py', 'manager.py', + 'midi.py', 'vulkan.py', 'terminal.py', 'file.py', diff --git a/bottles/backend/utils/midi.py b/bottles/backend/utils/midi.py new file mode 100644 index 00000000000..a8bce4e8347 --- /dev/null +++ b/bottles/backend/utils/midi.py @@ -0,0 +1,110 @@ +# midi.py +# +# Copyright 2025 The Bottles Contributors +# +# 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, in version 3 of the License. +# +# 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 . + +from typing import Self + +from ctypes import c_void_p +from fluidsynth import cfunc, Synth # type: ignore [import-untyped] + +from bottles.backend.logger import Logger +from bottles.backend.models.config import BottleConfig +from bottles.backend.wine.reg import Reg + +logging = Logger() + + +class FluidSynth: + """FluidSynth instance bounded to a unique SoundFont (.sf2, .sf3) file.""" + + __active_instances: dict[int, Self] = {} + + @classmethod + def find_or_create(cls, soundfont_path: str) -> Self: + """ + Search for running FluidSynth instance and return it. + If nonexistent, create and add it to active ones beforehand. + """ + + for fs in cls.__active_instances.values(): + if fs.soundfont_path == soundfont_path: + fs.program_count += 1 + return fs + + fs = cls(soundfont_path) + cls.__active_instances[fs.id] = fs + return fs + + def __init__(self, soundfont_path: str): + """Build a new FluidSynth object from SoundFont file path.""" + self.soundfont_path = soundfont_path + self.id = self.__get_vacant_id() + self.__start() + self.program_count = 1 + + @classmethod + def __get_vacant_id(cls) -> int: + """Get smallest 0-indexed ID currently not in use by a SoundFont.""" + n = len(cls.__active_instances) + return next(i for i in range(n + 1) if i not in cls.__active_instances) + + def __start(self): + """Start FluidSynth synthetizer with loaded SoundFont.""" + logging.info( + "Starting new FluidSynth server with SoundFont" + f" #{self.id} ('{self.soundfont_path}')…" + ) + synth = Synth(channels=16) + synth.start() + sfid = synth.sfload(self.soundfont_path) + synth.program_select(0, sfid, 0, 0) + self.synth = synth + + def register_as_current(self, config: BottleConfig): + """ + Update Wine registry with this instance's ID, instructing + MIDI mapping to load the correct instrument set on program startup. + """ + reg = Reg(config) + reg.add( + key="HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Multimedia\\MIDIMap", + value="CurrentInstrument", + data=f"#{self.id}", + value_type="REG_SZ", + ) + + def decrement_program_counter(self): + """Decrement program counter; if it reaches zero, delete this instance.""" + self.program_count -= 1 + if self.program_count == 0: + self.__delete() + + def __delete(self): + """Kill underlying synthetizer and remove FluidSynth instance from dict.""" + + def __delete_synth(synth: Synth): + """Bind missing function and run deletion routines.""" + delete_fluid_midi_driver = cfunc( + "delete_fluid_midi_driver", c_void_p, ("driver", c_void_p, 1) + ) + delete_fluid_midi_driver(synth.midi_driver) + synth.delete() + + logging.info( + "Killing FluidSynth server with SoundFont" + f" #{self.id} ('{self.soundfont_path}')…" + ) + __delete_synth(self.synth) + self.__active_instances.pop(self.id) diff --git a/bottles/backend/utils/singleton.py b/bottles/backend/utils/singleton.py index 3776cb92d12..9767a5c7e1a 100644 --- a/bottles/backend/utils/singleton.py +++ b/bottles/backend/utils/singleton.py @@ -3,5 +3,5 @@ class Singleton(type): def __call__(cls, *args, **kwargs): if cls not in cls._instances: - cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs) + cls._instances[cls] = super().__call__(*args, **kwargs) return cls._instances[cls] diff --git a/bottles/backend/utils/steam.py b/bottles/backend/utils/steam.py index 8e867acef60..d420d2c2125 100644 --- a/bottles/backend/utils/steam.py +++ b/bottles/backend/utils/steam.py @@ -17,7 +17,7 @@ import os import shlex -from typing import TextIO, Optional +from typing import TextIO from bottles.backend.logger import Logger from bottles.backend.models.vdict import VDFDict @@ -57,7 +57,7 @@ def is_proton(path: str) -> bool: if not os.path.isfile(toolmanifest): return False - f = open(toolmanifest, "r", errors="replace") + f = open(toolmanifest, errors="replace") data = SteamUtils.parse_vdf(f.read()) compat_layer_name = data.get("manifest", {}).get("compatmanager_layer_name", {}) @@ -66,7 +66,7 @@ def is_proton(path: str) -> bool: return "proton" in compat_layer_name or "proton" in commandline @staticmethod - def get_associated_runtime(path: str) -> Optional[str]: + def get_associated_runtime(path: str) -> str | None: """ Get the associated runtime of a Proton directory. """ @@ -76,7 +76,7 @@ def get_associated_runtime(path: str) -> Optional[str]: return None runtime = "scout" - f = open(toolmanifest, "r", errors="replace") + f = open(toolmanifest, errors="replace") data = SteamUtils.parse_vdf(f.read()) tool_appid = data.get("manifest", {}).get("require_tool_appid", {}) diff --git a/bottles/backend/utils/threading.py b/bottles/backend/utils/threading.py index 57beb6d1ec0..911dc0fb3a1 100644 --- a/bottles/backend/utils/threading.py +++ b/bottles/backend/utils/threading.py @@ -45,7 +45,7 @@ def __init__( f"(from main thread: {threading.current_thread() is threading.main_thread()})." ) - super(RunAsync, self).__init__(target=self.__target, args=args, kwargs=kwargs) + super().__init__(target=self.__target, args=args, kwargs=kwargs) self.task_func = task_func diff --git a/bottles/backend/utils/vdf.py b/bottles/backend/utils/vdf.py index 96c932b9ce1..14277c73eba 100644 --- a/bottles/backend/utils/vdf.py +++ b/bottles/backend/utils/vdf.py @@ -294,15 +294,14 @@ def _dump_gen(data, pretty=False, escaped=True, level=0): key = _escape(key) if isinstance(value, Mapping): - yield '%s"%s"\n%s{\n' % (line_indent, key, line_indent) - for chunk in _dump_gen(value, pretty, escaped, level + 1): - yield chunk + yield f'{line_indent}"{key}"\n{line_indent}{{\n' + yield from _dump_gen(value, pretty, escaped, level + 1) yield "%s}\n" % line_indent else: if escaped and isinstance(value, string_type): value = _escape(value) - yield '%s"%s" "%s"\n' % (line_indent, key, value) + yield f'{line_indent}"{key}" "{value}"\n' # binary VDF @@ -520,8 +519,7 @@ def _binary_dump_gen(obj, level=0, alt_format=False): if isinstance(value, Mapping): yield BIN_NONE + key + BIN_NONE - for chunk in _binary_dump_gen(value, level + 1, alt_format=alt_format): - yield chunk + yield from _binary_dump_gen(value, level + 1, alt_format=alt_format) elif isinstance(value, UINT_64): yield BIN_UINT64 + key + BIN_NONE + uint64.pack(value) elif isinstance(value, INT_64): diff --git a/bottles/backend/utils/vulkan.py b/bottles/backend/utils/vulkan.py index 0b667cee1a0..9607abb9dec 100644 --- a/bottles/backend/utils/vulkan.py +++ b/bottles/backend/utils/vulkan.py @@ -19,7 +19,6 @@ from glob import glob import shutil import subprocess -import filecmp class VulkanUtils: @@ -46,17 +45,7 @@ def __get_vk_icd_loaders(self): for file in _files: if "nvidia" in file.lower(): - # Workaround for nvidia flatpak bug: https://github.com/flathub/org.freedesktop.Platform.GL.nvidia/issues/112 - should_skip = False - for nvidia_loader in loaders["nvidia"]: - try: - if filecmp.cmp(nvidia_loader, file): - should_skip = True - continue - except: - pass - if not should_skip: - loaders["nvidia"] += [file] + loaders["nvidia"] += [file] elif "amd" in file.lower() or "radeon" in file.lower(): loaders["amd"] += [file] elif "intel" in file.lower(): diff --git a/bottles/backend/wine/cmd.py b/bottles/backend/wine/cmd.py index 2b1e9852d85..268e152a454 100644 --- a/bottles/backend/wine/cmd.py +++ b/bottles/backend/wine/cmd.py @@ -1,5 +1,3 @@ -from typing import Optional - from bottles.backend.logger import Logger from bottles.backend.wine.wineprogram import WineProgram @@ -15,8 +13,8 @@ def run_batch( batch: str, terminal: bool = True, args: str = "", - environment: Optional[dict] = None, - cwd: Optional[str] = None, + environment: dict | None = None, + cwd: str | None = None, ): args = f"/c {batch} {args}" diff --git a/bottles/backend/wine/executor.py b/bottles/backend/wine/executor.py index 7c4646e551c..f3eaee0d6b2 100644 --- a/bottles/backend/wine/executor.py +++ b/bottles/backend/wine/executor.py @@ -1,7 +1,6 @@ import os import shlex import uuid -from typing import Optional from bottles.backend.dlls.dxvk import DXVKComponent from bottles.backend.dlls.nvapi import NVAPIComponent @@ -10,6 +9,7 @@ from bottles.backend.models.config import BottleConfig from bottles.backend.models.result import Result from bottles.backend.utils.manager import ManagerUtils +from bottles.backend.utils.midi import FluidSynth from bottles.backend.wine.cmd import CMD from bottles.backend.wine.explorer import Explorer from bottles.backend.wine.msiexec import MsiExec @@ -28,19 +28,20 @@ def __init__( exec_path: str, args: str = "", terminal: bool = False, - environment: Optional[dict] = None, + environment: dict | None = None, move_file: bool = False, move_upd_fn: callable = None, - pre_script: Optional[str] = None, - post_script: Optional[str] = None, - cwd: Optional[str] = None, - monitoring: Optional[list] = None, - program_dxvk: Optional[bool] = None, - program_vkd3d: Optional[bool] = None, - program_nvapi: Optional[bool] = None, - program_fsr: Optional[bool] = None, - program_gamescope: Optional[bool] = None, - program_virt_desktop: Optional[bool] = None, + pre_script: str | None = None, + post_script: str | None = None, + cwd: str | None = None, + midi_soundfont: str | None = None, + monitoring: list | None = None, + program_dxvk: bool | None = None, + program_vkd3d: bool | None = None, + program_nvapi: bool | None = None, + program_fsr: bool | None = None, + program_gamescope: bool | None = None, + program_virt_desktop: bool | None = None, ): logging.info("Launching an executable…") self.config = config @@ -63,12 +64,20 @@ def __init__( self.pre_script = pre_script self.post_script = post_script self.cwd = self.__get_cwd(cwd) + self.midi_soundfont = midi_soundfont self.monitoring = monitoring self.use_gamescope = program_gamescope self.use_virt_desktop = program_virt_desktop env_dll_overrides = [] + self.fluidsynth = None + if (soundfont_path := midi_soundfont) not in (None, ""): + # FluidSynth instance is bound to WineExecutor as a member to control + # the former's lifetime (deleted when no more references from executors) + self.fluidsynth = FluidSynth.find_or_create(soundfont_path) + self.fluidsynth.register_as_current(config) + # None = use global DXVK value if program_dxvk is not None: # DXVK is globally activated, but disabled for the program @@ -123,6 +132,7 @@ def run_program(cls, config: BottleConfig, program: dict, terminal: bool = False pre_script=program.get("pre_script"), post_script=program.get("post_script"), cwd=program.get("folder"), + midi_soundfont=program.get("midi_soundfont"), terminal=terminal, program_dxvk=program.get("dxvk"), program_vkd3d=program.get("vkd3d"), @@ -213,6 +223,7 @@ def run_cli(self): pre_script=self.pre_script, post_script=self.post_script, cwd=self.cwd, + midi_soundfont=self.midi_soundfont, ) return Result(status=True, data={"output": res}) @@ -279,6 +290,7 @@ def __launch_exe(self): pre_script=self.pre_script, post_script=self.post_script, cwd=self.cwd, + midi_soundfont=self.midi_soundfont, ) res = winecmd.run() self.__set_monitors() @@ -317,6 +329,7 @@ def __launch_with_starter(self): pre_script=self.pre_script, post_script=self.post_script, cwd=self.cwd, + midi_soundfont=self.midi_soundfont, ) self.__set_monitors() return Result(status=True, data={"output": res}) @@ -345,8 +358,13 @@ def __set_monitors(self): if not self.monitoring: return - logging.info("Starting {} monitors".format(len(self.monitoring))) + logging.info(f"Starting {len(self.monitoring)} monitors") winedbg = WineDbg(self.config, silent=True) for m in self.monitoring: winedbg.wait_for_process(name=m) + + def __del__(self): + """On exit, kill FluidSynth instance if this was the last executor using it.""" + if self.fluidsynth: + self.fluidsynth.decrement_program_counter() diff --git a/bottles/backend/wine/explorer.py b/bottles/backend/wine/explorer.py index 34212b92730..d6588cda075 100644 --- a/bottles/backend/wine/explorer.py +++ b/bottles/backend/wine/explorer.py @@ -1,5 +1,3 @@ -from typing import Optional - from bottles.backend.logger import Logger from bottles.backend.wine.wineprogram import WineProgram @@ -15,10 +13,10 @@ def launch_desktop( desktop: str = "shell", width: int = 0, height: int = 0, - program: Optional[str] = None, - args: Optional[str] = None, - environment: Optional[dict] = None, - cwd: Optional[str] = None, + program: str | None = None, + args: str | None = None, + environment: dict | None = None, + cwd: str | None = None, ): _args = f"/desktop={desktop}" diff --git a/bottles/backend/wine/msiexec.py b/bottles/backend/wine/msiexec.py index 3edfa8d0c1e..340d4f5aabb 100644 --- a/bottles/backend/wine/msiexec.py +++ b/bottles/backend/wine/msiexec.py @@ -1,5 +1,3 @@ -from typing import Optional - from bottles.backend.logger import Logger from bottles.backend.wine.wineprogram import WineProgram @@ -15,8 +13,8 @@ def install( pkg_path: str, # or product code args: str = "", terminal: bool = False, - cwd: Optional[str] = None, - environment: Optional[dict] = None, + cwd: str | None = None, + environment: dict | None = None, ): args = f"/i {pkg_path} {args}" @@ -43,7 +41,7 @@ def repair( all_computer_registry_keys: bool = False, all_shortcuts: bool = False, recache: bool = False, - cwd: Optional[str] = None, + cwd: str | None = None, ): """ NOTICE: I have not been able to use the repair in any way, it seems to show @@ -78,13 +76,13 @@ def repair( args=args, communicate=True, minimal=True, cwd=cwd, action_name="repair" ) - def uninstall(self, pkg_path: str, cwd: Optional[str] = None): + def uninstall(self, pkg_path: str, cwd: str | None = None): args = f"/x {pkg_path}" self.launch( args=args, communicate=True, minimal=True, cwd=cwd, action_name="uninstall" ) - def apply_patch(self, patch: str, update: bool = False, cwd: Optional[str] = None): + def apply_patch(self, patch: str, update: bool = False, cwd: str | None = None): args = f"/p {patch}" if update: args = f" /update {patch}" @@ -94,7 +92,7 @@ def apply_patch(self, patch: str, update: bool = False, cwd: Optional[str] = Non ) def uninstall_patch( - self, patch: str, product: Optional[str] = None, cwd: Optional[str] = None + self, patch: str, product: str | None = None, cwd: str | None = None ): args = f"/uninstall {patch}" if product: @@ -108,7 +106,7 @@ def uninstall_patch( action_name="uninstall_patch", ) - def register_module(self, module: str, cwd: Optional[str] = None): + def register_module(self, module: str, cwd: str | None = None): args = f"/y {module}" self.launch( args=args, @@ -118,7 +116,7 @@ def register_module(self, module: str, cwd: Optional[str] = None): action_name="register_module", ) - def unregister_module(self, module: str, cwd: Optional[str] = None): + def unregister_module(self, module: str, cwd: str | None = None): args = f"/z {module}" self.launch( args=args, diff --git a/bottles/backend/wine/net.py b/bottles/backend/wine/net.py index 62657879765..41da0793b2f 100644 --- a/bottles/backend/wine/net.py +++ b/bottles/backend/wine/net.py @@ -1,5 +1,3 @@ -from typing import Optional - from bottles.backend.logger import Logger from bottles.backend.wine.wineprogram import WineProgram @@ -10,7 +8,7 @@ class Net(WineProgram): program = "Wine Services manager" command = "net" - def start(self, name: Optional[str] = None): + def start(self, name: str | None = None): args = "start" if name is not None: @@ -18,7 +16,7 @@ def start(self, name: Optional[str] = None): return self.launch(args=args, communicate=True, action_name="start") - def stop(self, name: Optional[str] = None): + def stop(self, name: str | None = None): args = "stop" if name is not None: @@ -26,7 +24,7 @@ def stop(self, name: Optional[str] = None): return self.launch(args=args, communicate=True, action_name="stop") - def use(self, name: Optional[str] = None): + def use(self, name: str | None = None): # this command has no documentation, not tested yet args = "use" diff --git a/bottles/backend/wine/notepad.py b/bottles/backend/wine/notepad.py index e70b6406442..c2e361d7148 100644 --- a/bottles/backend/wine/notepad.py +++ b/bottles/backend/wine/notepad.py @@ -1,5 +1,3 @@ -from typing import Optional - from bottles.backend.logger import Logger from bottles.backend.wine.wineprogram import WineProgram @@ -18,7 +16,7 @@ def open(self, path: str, as_ansi: bool = False, as_utf16: bool = False): args = f"/w {path}" return self.launch(args=args, communicate=True, action_name="open") - def print(self, path: str, printer_name: Optional[str] = None): + def print(self, path: str, printer_name: str | None = None): args = f"/p {path}" if printer_name: args = f"/pt {path} {printer_name}" diff --git a/bottles/backend/wine/reg.py b/bottles/backend/wine/reg.py index f7737edb679..83c78a1e162 100644 --- a/bottles/backend/wine/reg.py +++ b/bottles/backend/wine/reg.py @@ -4,7 +4,6 @@ import uuid from datetime import datetime from itertools import groupby -from typing import List, Dict, Optional from bottles.backend.globals import Paths from bottles.backend.logger import Logger @@ -28,13 +27,13 @@ class Reg(WineProgram): program = "Wine Registry CLI" command = "reg" - def bulk_add(self, regs: List[RegItem]): + def bulk_add(self, regs: list[RegItem]): """Import multiple registries at once, with v5.00 reg file""" config = self.config logging.info(f"Importing {len(regs)} Key(s) to {config.Name} registry") winedbg = WineDbg(config) - mapping: Dict[str, List[RegItem]] = { + mapping: dict[str, list[RegItem]] = { k: list(v) for k, v in groupby(regs, lambda x: x.key) } reg_file_header = "Windows Registry Editor Version 5.00\n\n" @@ -74,17 +73,19 @@ def bulk_add(self, regs: List[RegItem]): ) logging.info(res.data) - def add(self, key: str, value: str, data: str, value_type: Optional[str] = None): + def add(self, key: str, value: str, data: str, value_type: str | None = None): config = self.config logging.info( f"Adding Key: [{key}] with Value: [{value}] and " f"Data: [{data}] in {config.Name} registry" ) winedbg = WineDbg(config) - args = "add '%s' /v '%s' /d '%s' /f" % (key, value, data) + args = f"add '{key}' /v '{value}' /d '{data}' /f" if value_type is not None: - args = "add '%s' /v '%s' /t %s /d '%s' /f" % (key, value, value_type, data) + args = "add '{}' /v '{}' /t {} /d '{}' /f".format( + key, value, value_type, data + ) # avoid conflicts when executing async winedbg.wait_for_process("reg.exe") @@ -99,7 +100,7 @@ def remove(self, key: str, value: str): f"Removing Value: [{key}] from Key: [{value}] in " f"{config.Name} registry" ) winedbg = WineDbg(config) - args = "delete '%s' /v %s /f" % (key, value) + args = f"delete '{key}' /v {value} /f" # avoid conflicts when executing async winedbg.wait_for_process("reg.exe") diff --git a/bottles/backend/wine/register.py b/bottles/backend/wine/register.py index 5d78237702b..4e850e4eb87 100644 --- a/bottles/backend/wine/register.py +++ b/bottles/backend/wine/register.py @@ -17,7 +17,6 @@ import os import uuid -from typing import Optional from bottles.backend.utils import json @@ -40,7 +39,7 @@ def new(self, path: str): def __get_header(self): """Return the header of the registry file.""" - with open(self.path, "r") as reg: + with open(self.path) as reg: header = reg.readlines(2) return header @@ -101,7 +100,7 @@ def __parse_dict(path: str): return _dict - def compare(self, path: Optional[str] = None, register: object = None): + def compare(self, path: str | None = None, register: object = None): """Compare the current register with the given path or register.""" if path is not None: register = WinRegister().new(path) @@ -133,7 +132,7 @@ def __get_diff(self, register: "WinRegister"): return diff - def update(self, diff: Optional[dict] = None): + def update(self, diff: dict | None = None): """Update the current register with the given diff.""" if diff is None: diff = self.diff # use last diff diff --git a/bottles/backend/wine/start.py b/bottles/backend/wine/start.py index b88738ec11c..d144dae66a4 100644 --- a/bottles/backend/wine/start.py +++ b/bottles/backend/wine/start.py @@ -1,5 +1,3 @@ -from typing import Optional - from bottles.backend.logger import Logger from bottles.backend.wine.wineprogram import WineProgram from bottles.backend.wine.winepath import WinePath @@ -16,10 +14,11 @@ def run( file: str, terminal: bool = True, args: str = "", - environment: Optional[dict] = None, - pre_script: Optional[str] = None, - post_script: Optional[str] = None, - cwd: Optional[str] = None, + environment: dict | None = None, + pre_script: str | None = None, + post_script: str | None = None, + cwd: str | None = None, + midi_soundfont: str | None = None, ): winepath = WinePath(self.config) @@ -42,6 +41,7 @@ def run( pre_script=pre_script, post_script=post_script, cwd=cwd, + midi_soundfont=midi_soundfont, minimal=False, action_name="run", ) diff --git a/bottles/backend/wine/uninstaller.py b/bottles/backend/wine/uninstaller.py index 5821251afb7..511db791bdc 100644 --- a/bottles/backend/wine/uninstaller.py +++ b/bottles/backend/wine/uninstaller.py @@ -1,5 +1,3 @@ -from typing import Optional - from bottles.backend.logger import Logger from bottles.backend.wine.wineprogram import WineProgram @@ -10,7 +8,7 @@ class Uninstaller(WineProgram): program = "Wine Uninstaller" command = "uninstaller" - def get_uuid(self, name: Optional[str] = None): + def get_uuid(self, name: str | None = None): args = " --list" if name is not None: @@ -18,7 +16,7 @@ def get_uuid(self, name: Optional[str] = None): return self.launch(args=args, communicate=True, action_name="get_uuid") - def from_uuid(self, uuid: Optional[str] = None): + def from_uuid(self, uuid: str | None = None): args = "" if uuid not in [None, ""]: diff --git a/bottles/backend/wine/wineboot.py b/bottles/backend/wine/wineboot.py index 715e5393a69..b489f321f79 100644 --- a/bottles/backend/wine/wineboot.py +++ b/bottles/backend/wine/wineboot.py @@ -67,7 +67,7 @@ def nv_stop_all_processes(self): for pid in os.listdir("/proc"): if pid.isdigit(): try: - with open(f"/proc/{pid}/environ", "r") as env_file: + with open(f"/proc/{pid}/environ") as env_file: env_vars = env_file.read() if f"BOTTLE={self.config.Path}" in env_vars: os.kill(int(pid), signal.SIGTERM) diff --git a/bottles/backend/wine/winecommand.py b/bottles/backend/wine/winecommand.py index 643335b9df6..ec2be392f4d 100644 --- a/bottles/backend/wine/winecommand.py +++ b/bottles/backend/wine/winecommand.py @@ -4,7 +4,6 @@ import subprocess import tempfile import shlex -from typing import Optional from bottles.backend.globals import ( Paths, @@ -97,9 +96,10 @@ def __init__( communicate: bool = False, colors: str = "default", minimal: bool = False, # avoid gamemode/gamescope usage - pre_script: Optional[str] = None, - post_script: Optional[str] = None, - cwd: Optional[str] = None, + pre_script: str | None = None, + post_script: str | None = None, + cwd: str | None = None, + midi_soundfont: str | None = None, ): _environment = environment.copy() self.config = self._get_config(config) @@ -113,7 +113,7 @@ def __init__( else self.config.Parameters.gamescope ) self.command = self.get_cmd( - command, pre_script, post_script, environment=_environment + command, pre_script, post_script, midi_soundfont, environment=_environment ) self.terminal = terminal self.env = self.get_env(_environment) @@ -156,7 +156,7 @@ def _get_cwd(self, cwd) -> str: def get_env( self, - environment: Optional[dict] = None, + environment: dict | None = None, return_steam_env: bool = False, return_clean_env: bool = False, ) -> dict: @@ -477,7 +477,7 @@ def _get_runner_info(self) -> tuple[str, str]: else: runner = f"{runner}/bin/wine" - if arch == "win64": + if arch == "win64" and os.path.exists(f"{runner}64"): runner = f"{runner}64" runner = shlex.quote(runner) # type: ignore @@ -487,11 +487,12 @@ def _get_runner_info(self) -> tuple[str, str]: def get_cmd( self, command, - pre_script: Optional[str] = None, - post_script: Optional[str] = None, + pre_script: str | None = None, + post_script: str | None = None, + midi_soundfont: str | None = None, return_steam_cmd: bool = False, return_clean_cmd: bool = False, - environment: Optional[dict] = None, + environment: dict | None = None, ) -> str: config = self.config params = config.Parameters @@ -536,7 +537,7 @@ def get_cmd( ) logging.info(f"Running Gamescope command: '{command}'") logging.info(f"{gamescope_run} contains:") - with open(gamescope_run, "r") as f: + with open(gamescope_run) as f: logging.info(f"\n\n{f.read()}") # Set file as executable @@ -686,7 +687,7 @@ def _get_sandbox_manager(self) -> SandboxManager: share_sound=self.config.Sandbox.share_sound, ) - def run(self) -> Result[Optional[str]]: + def run(self) -> Result[str | None]: """ Run command with pre-configured parameters diff --git a/bottles/backend/wine/winedbg.py b/bottles/backend/wine/winedbg.py index 4d4096ca84d..738d1137c33 100644 --- a/bottles/backend/wine/winedbg.py +++ b/bottles/backend/wine/winedbg.py @@ -1,7 +1,6 @@ import re import time import subprocess -from typing import Optional from bottles.backend.logger import Logger from bottles.backend.wine.wineprogram import WineProgram @@ -80,7 +79,7 @@ def wait_for_process(self, name: str, timeout: float = 0.5): time.sleep(timeout) return True - def kill_process(self, pid: Optional[str] = None, name: Optional[str] = None): + def kill_process(self, pid: str | None = None, name: str | None = None): """ Kill a process by its PID or name. """ @@ -109,7 +108,7 @@ def kill_process(self, pid: Optional[str] = None, name: Optional[str] = None): if p["name"] == name: self.kill_process(p["pid"], name) - def is_process_alive(self, pid: Optional[str] = None, name: Optional[str] = None): + def is_process_alive(self, pid: str | None = None, name: str | None = None): """ Check if a process is running on the wineprefix. """ diff --git a/bottles/backend/wine/wineprogram.py b/bottles/backend/wine/wineprogram.py index df111ab3130..32dd650343b 100644 --- a/bottles/backend/wine/wineprogram.py +++ b/bottles/backend/wine/wineprogram.py @@ -1,5 +1,4 @@ import os -from typing import Optional from bottles.backend.logger import Logger from bottles.backend.globals import Paths @@ -25,7 +24,7 @@ def __init__(self, config: BottleConfig, silent=False): self.config = config self.silent = silent - def get_command(self, args: Optional[str] = None): + def get_command(self, args: str | None = None): command = self.command if self.is_internal: @@ -42,10 +41,11 @@ def launch( terminal: bool = False, minimal: bool = True, communicate: bool = False, - environment: Optional[dict] = None, - pre_script: Optional[str] = None, - post_script: Optional[str] = None, - cwd: Optional[str] = None, + environment: dict | None = None, + pre_script: str | None = None, + post_script: str | None = None, + cwd: str | None = None, + midi_soundfont: str | None = None, action_name: str = "launch", ): if environment is None: @@ -73,6 +73,7 @@ def launch( pre_script=pre_script, post_script=post_script, cwd=cwd, + midi_soundfont=midi_soundfont, arguments=program_args, ) @@ -80,8 +81,8 @@ def launch( res = res.run() return res - def launch_terminal(self, args: Optional[str] = None): + def launch_terminal(self, args: str | None = None): self.launch(args=args, terminal=True, action_name="launch_terminal") - def launch_minimal(self, args: Optional[str] = None): + def launch_minimal(self, args: str | None = None): self.launch(args=args, minimal=True, action_name="launch_minimal") diff --git a/bottles/backend/wine/xcopy.py b/bottles/backend/wine/xcopy.py index 104852ae743..ba8e8c97daa 100644 --- a/bottles/backend/wine/xcopy.py +++ b/bottles/backend/wine/xcopy.py @@ -1,4 +1,3 @@ -from typing import Optional from datetime import datetime from bottles.backend.logger import Logger @@ -29,7 +28,7 @@ def copy( include_hidden_and_sys_files: bool = False, continue_if_error: bool = False, copy_attributes: bool = False, - after_date: Optional[datetime] = None, + after_date: datetime | None = None, ): args = f"{source} {dest} /i" diff --git a/bottles/frontend/ui/details-bottle.blp b/bottles/frontend/bottle-details-page.blp similarity index 99% rename from bottles/frontend/ui/details-bottle.blp rename to bottles/frontend/bottle-details-page.blp index 3ad98f94fcd..670faec8798 100644 --- a/bottles/frontend/ui/details-bottle.blp +++ b/bottles/frontend/bottle-details-page.blp @@ -140,7 +140,7 @@ Popover popover_exec_settings { } } -template $DetailsBottle: Adw.PreferencesPage { +template $BottleDetailsPage: Adw.PreferencesPage { Overlay drop_overlay { visible: false; diff --git a/bottles/frontend/ui/details.blp b/bottles/frontend/bottle-details-view.blp similarity index 97% rename from bottles/frontend/ui/details.blp rename to bottles/frontend/bottle-details-view.blp index 395efb77107..5c4797a0ad0 100644 --- a/bottles/frontend/ui/details.blp +++ b/bottles/frontend/bottle-details-view.blp @@ -1,7 +1,7 @@ using Gtk 4.0; using Adw 1; -template $Details: Adw.Bin { +template $BottleDetailsView: Adw.Bin { Adw.Leaflet leaflet { can-navigate-back: true; can-unfold: false; diff --git a/bottles/frontend/ui/dialog-bottle-picker.blp b/bottles/frontend/bottle-picker-dialog.blp similarity index 100% rename from bottles/frontend/ui/dialog-bottle-picker.blp rename to bottles/frontend/bottle-picker-dialog.blp diff --git a/bottles/frontend/ui/bottle-row.blp b/bottles/frontend/bottle-row.blp similarity index 89% rename from bottles/frontend/ui/bottle-row.blp rename to bottles/frontend/bottle-row.blp index 163900eab29..2ab37e66eef 100644 --- a/bottles/frontend/ui/bottle-row.blp +++ b/bottles/frontend/bottle-row.blp @@ -1,7 +1,7 @@ using Gtk 4.0; using Adw 1; -template $BottlesBottleRow: Adw.ActionRow { +template $BottleRow: Adw.ActionRow { activatable: true; use-markup: false; diff --git a/bottles/frontend/views/bottle_details.py b/bottles/frontend/bottle_details_page.py similarity index 96% rename from bottles/frontend/views/bottle_details.py rename to bottles/frontend/bottle_details_page.py index c7f49ae0d0c..57e44ee046a 100644 --- a/bottles/frontend/views/bottle_details.py +++ b/bottles/frontend/bottle_details_page.py @@ -1,6 +1,6 @@ -# bottle_details.py +# bottle_details_page.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -18,7 +18,6 @@ import uuid from datetime import datetime from gettext import gettext as _ -from typing import List, Optional from gi.repository import Gtk, Gio, Adw, Gdk, GLib, Xdp @@ -38,17 +37,17 @@ from bottles.backend.wine.winecfg import WineCfg from bottles.backend.wine.winedbg import WineDbg from bottles.backend.wine.wineserver import WineServer -from bottles.frontend.utils.common import open_doc_url -from bottles.frontend.utils.filters import add_executable_filters, add_all_filters -from bottles.frontend.utils.gtk import GtkUtils -from bottles.frontend.widgets.program import ProgramEntry -from bottles.frontend.windows.duplicate import DuplicateDialog -from bottles.frontend.windows.upgradeversioning import UpgradeVersioningDialog +from bottles.frontend.common import open_doc_url +from bottles.frontend.filters import add_executable_filters, add_all_filters +from bottles.frontend.gtk import GtkUtils +from bottles.frontend.program_row import ProgramRow +from bottles.frontend.duplicate_dialog import DuplicateDialog +from bottles.frontend.upgrade_versioning_dialog import UpgradeVersioningDialog -@Gtk.Template(resource_path="/com/usebottles/bottles/details-bottle.ui") -class BottleView(Adw.PreferencesPage): - __gtype_name__ = "DetailsBottle" +@Gtk.Template(resource_path="/com/usebottles/bottles/bottle-details-page.ui") +class BottleDetailsPage(Adw.PreferencesPage): + __gtype_name__ = "BottleDetailsPage" __registry = [] # region Widgets @@ -164,7 +163,7 @@ def __change_page(self, _widget, page_name): def on_drop(self, drop_target, value: Gdk.FileList, x, y, user_data=None): self.drop_overlay.set_visible(False) - files: List[Gio.File] = value.get_files() + files: list[Gio.File] = value.get_files() args = "" file = files[0] if ( @@ -286,7 +285,7 @@ def set_path(_dialog, response): dialog.show() def update_programs( - self, config: Optional[BottleConfig] = None, force_add: dict = None + self, config: BottleConfig | None = None, force_add: dict = None ): """ This function update the programs lists. @@ -308,7 +307,7 @@ def new_program( check_boot = wineserver_status self.add_program( - ProgramEntry( + ProgramRow( self.window, self.config, _program, diff --git a/bottles/frontend/views/details.py b/bottles/frontend/bottle_details_view.py similarity index 86% rename from bottles/frontend/views/details.py rename to bottles/frontend/bottle_details_view.py index b2bf6091c85..afe50ab1f82 100644 --- a/bottles/frontend/views/details.py +++ b/bottles/frontend/bottle_details_view.py @@ -1,6 +1,6 @@ -# details.py +# bottle_details_view.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -17,7 +17,6 @@ from gettext import gettext as _ -from typing import Optional from gi.repository import Gtk, Adw, GLib @@ -25,23 +24,23 @@ from bottles.backend.models.config import BottleConfig from bottles.backend.utils.threading import RunAsync -from bottles.frontend.utils.gtk import GtkUtils -from bottles.frontend.views.bottle_details import BottleView -from bottles.frontend.views.bottle_installers import InstallersView -from bottles.frontend.views.bottle_dependencies import DependenciesView -from bottles.frontend.views.bottle_preferences import PreferencesView -from bottles.frontend.views.bottle_versioning import VersioningView -from bottles.frontend.views.bottle_taskmanager import TaskManagerView +from bottles.frontend.gtk import GtkUtils +from bottles.frontend.bottle_details_page import BottleDetailsPage +from bottles.frontend.details_installers_view import DetailsInstallersView +from bottles.frontend.details_dependencies_view import DetailsDependenciesView +from bottles.frontend.details_preferences_page import DetailsPreferencesPage +from bottles.frontend.details_versioning_page import DetailsVersioningPage +from bottles.frontend.details_task_manager_view import DetailsTaskManagerView -@Gtk.Template(resource_path="/com/usebottles/bottles/details.ui") -class DetailsView(Adw.Bin): +@Gtk.Template(resource_path="/com/usebottles/bottles/bottle-details-view.ui") +class BottleDetailsView(Adw.Bin): """ This class is the starting point for all the pages concerning the bottle (details, preferences, dependencies ..). """ - __gtype_name__ = "Details" + __gtype_name__ = "BottleDetailsView" __pages = {} # region Widgets @@ -62,7 +61,7 @@ class DetailsView(Adw.Bin): # endregion - def __init__(self, window, config: Optional[BottleConfig] = None, **kwargs): + def __init__(self, window, config: BottleConfig | None = None, **kwargs): super().__init__(**kwargs) # common variables and references @@ -75,12 +74,12 @@ def __init__(self, window, config: Optional[BottleConfig] = None, **kwargs): self.config = config self.queue = QueueManager(add_fn=self.lock_back, end_fn=self.unlock_back) - self.view_bottle = BottleView(self, config) - self.view_installers = InstallersView(self, config) - self.view_dependencies = DependenciesView(self, config) - self.view_preferences = PreferencesView(self, config) - self.view_versioning = VersioningView(self, config) - self.view_taskmanager = TaskManagerView(self, config) + self.view_bottle = BottleDetailsPage(self, config) + self.view_installers = DetailsInstallersView(self, config) + self.view_dependencies = DetailsDependenciesView(self, config) + self.view_preferences = DetailsPreferencesPage(self, config) + self.view_versioning = DetailsVersioningPage(self, config) + self.view_taskmanager = DetailsTaskManagerView(self, config) self.btn_back.connect("clicked", self.go_back) self.btn_back_sidebar.connect("clicked", self.go_back_sidebar) @@ -98,7 +97,7 @@ def __init__(self, window, config: Optional[BottleConfig] = None, **kwargs): def set_title(self, title, subtitle: str = ""): """ - This function is used to set the title of the DetailsView + This function is used to set the title of the BottleDetailsView headerbar. """ self.content_title.set_title(title) diff --git a/bottles/frontend/windows/bottlepicker.py b/bottles/frontend/bottle_picker_dialog.py similarity index 94% rename from bottles/frontend/windows/bottlepicker.py rename to bottles/frontend/bottle_picker_dialog.py index 89047f74fa7..9332fc9327a 100644 --- a/bottles/frontend/windows/bottlepicker.py +++ b/bottles/frontend/bottle_picker_dialog.py @@ -1,6 +1,6 @@ -# bottlepicker.py +# bottle_picker_dialog.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -31,7 +31,7 @@ def __init__(self, config: BottleConfig): self.set_title(config.Name) -@Gtk.Template(resource_path="/com/usebottles/bottles/dialog-bottle-picker.ui") +@Gtk.Template(resource_path="/com/usebottles/bottles/bottle-picker-dialog.ui") class BottlePickerDialog(Adw.ApplicationWindow): """This class should not be called from the application GUI, only from CLI.""" diff --git a/bottles/frontend/ui/list.blp b/bottles/frontend/bottles-list-view.blp similarity index 97% rename from bottles/frontend/ui/list.blp rename to bottles/frontend/bottles-list-view.blp index 104c27dd510..299ca52141d 100644 --- a/bottles/frontend/ui/list.blp +++ b/bottles/frontend/bottles-list-view.blp @@ -1,7 +1,7 @@ using Gtk 4.0; using Adw 1; -template $BottleView: Adw.Bin { +template $BottlesListView: Adw.Bin { ScrolledWindow { Box { hexpand: true; diff --git a/bottles/frontend/bottles.gresource.xml b/bottles/frontend/bottles.gresource.xml new file mode 100644 index 00000000000..de4e8a76360 --- /dev/null +++ b/bottles/frontend/bottles.gresource.xml @@ -0,0 +1,59 @@ + + + + style.css + style-dark.css + help-overlay.ui + window.ui + new-bottle-dialog.ui + bottles-list-view.ui + loading-view.ui + bottle-row.ui + check-row.ui + task-row.ui + dependency-entry-row.ui + program-row.ui + importer-row.ui + state-row.ui + installer-row.ui + dll-override-entry.ui + env-var-entry.ui + component-entry-row.ui + drive-entry.ui + library-entry.ui + local-resource-row.ui + exclusion-pattern-row.ui + bottle-details-view.ui + bottle-details-page.ui + details-dependencies-view.ui + details-installers-view.ui + details-preferences-page.ui + details-versioning-page.ui + details-task-manager-view.ui + preferences.ui + importer-view.ui + library-view.ui + launch-options-dialog.ui + dll-overrides-dialog.ui + environment-variables-dialog.ui + crash-report-dialog.ui + duplicate-dialog.ui + rename-program-dialog.ui + gamescope-dialog.ui + vkbasalt-dialog.ui + fsr-dialog.ui + mangohud-dialog.ui + display-dialog.ui + drives-dialog.ui + journal-dialog.ui + sandbox-dialog.ui + installer-dialog.ui + bottle-picker-dialog.ui + proton-alert-dialog.ui + dependencies-check-dialog.ui + exclusion-patterns-dialog.ui + upgrade-versioning-dialog.ui + vmtouch-dialog.ui + onboard-dialog.ui + + diff --git a/bottles/frontend/views/list.py b/bottles/frontend/bottles_list_view.py similarity index 94% rename from bottles/frontend/views/list.py rename to bottles/frontend/bottles_list_view.py index 43ab9c226b4..e2cffa18c25 100644 --- a/bottles/frontend/views/list.py +++ b/bottles/frontend/bottles_list_view.py @@ -1,6 +1,6 @@ -# list.py +# bottles_list_view.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -25,13 +25,13 @@ from bottles.backend.state import Signals, SignalManager from bottles.backend.utils.threading import RunAsync from bottles.backend.wine.executor import WineExecutor -from bottles.frontend.utils.filters import add_executable_filters, add_all_filters +from bottles.frontend.filters import add_executable_filters, add_all_filters from bottles.frontend.params import APP_ID @Gtk.Template(resource_path="/com/usebottles/bottles/bottle-row.ui") -class BottlesBottleRow(Adw.ActionRow): - __gtype_name__ = "BottlesBottleRow" +class BottleRow(Adw.ActionRow): + __gtype_name__ = "BottleRow" Adw.init() @@ -123,9 +123,9 @@ def disable(self): self.set_visible(False) -@Gtk.Template(resource_path="/com/usebottles/bottles/list.ui") -class BottleView(Adw.Bin): - __gtype_name__ = "BottleView" +@Gtk.Template(resource_path="/com/usebottles/bottles/bottles-list-view.ui") +class BottlesListView(Adw.Bin): + __gtype_name__ = "BottlesListView" __bottles = {} # region Widgets @@ -191,7 +191,7 @@ def update_bottles_list(self, *args) -> None: self.bottle_status.set_visible(is_empty_local_bottles) for name, config in local_bottles.items(): - _entry = BottlesBottleRow(self.window, config) + _entry = BottleRow(self.window, config) self.__bottles[config.Path] = _entry if config.Environment != "Steam": diff --git a/bottles/frontend/ui/check-row.blp b/bottles/frontend/check-row.blp similarity index 69% rename from bottles/frontend/ui/check-row.blp rename to bottles/frontend/check-row.blp index c4ce6d96efe..0e79c8c97c0 100644 --- a/bottles/frontend/ui/check-row.blp +++ b/bottles/frontend/check-row.blp @@ -1,12 +1,14 @@ using Gtk 4.0; using Adw 1; -template $BottlesCheckRow: Adw.ActionRow { +template $CheckRow: Adw.ActionRow { activatable-widget: check_button; active: bind check_button.active bidirectional; [prefix] CheckButton check_button { valign: center; + can-focus: false; + can-target: false; } } diff --git a/bottles/frontend/cli/cli.py b/bottles/frontend/cli.py similarity index 99% rename from bottles/frontend/cli/cli.py rename to bottles/frontend/cli.py index d6211929f72..4008ec9e3a6 100644 --- a/bottles/frontend/cli/cli.py +++ b/bottles/frontend/cli.py @@ -670,6 +670,7 @@ def run_program(self): program.get("pre_script", None) program.get("post_script", None) program.get("folder", None) + program.get("midi_soundfont", None) program.get("dxvk") program.get("vkd3d") diff --git a/bottles/frontend/cli/__init__.py b/bottles/frontend/cli/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/bottles/frontend/cli/meson.build b/bottles/frontend/cli/meson.build deleted file mode 100644 index b9eb81fb1a7..00000000000 --- a/bottles/frontend/cli/meson.build +++ /dev/null @@ -1,17 +0,0 @@ -pkgdatadir = join_paths(get_option('prefix'), get_option('datadir'), meson.project_name()) -clidir = join_paths(pkgdatadir, 'bottles/frontend/cli') - -bottles_sources = [ - '__init__.py', -] - -install_data(bottles_sources, install_dir: clidir) - -configure_file( - input: 'cli.py', - output: 'bottles-cli', - configuration: conf, - install: true, - install_dir: get_option('bindir'), - install_mode: ['rwxr-xr-x'] -) diff --git a/bottles/frontend/utils/common.py b/bottles/frontend/common.py similarity index 100% rename from bottles/frontend/utils/common.py rename to bottles/frontend/common.py diff --git a/bottles/frontend/ui/component-entry.blp b/bottles/frontend/component-entry-row.blp similarity index 96% rename from bottles/frontend/ui/component-entry.blp rename to bottles/frontend/component-entry-row.blp index 99236c4d66d..a01ced4c53a 100644 --- a/bottles/frontend/ui/component-entry.blp +++ b/bottles/frontend/component-entry-row.blp @@ -1,7 +1,7 @@ using Gtk 4.0; using Adw 1; -template $ComponentEntry: Adw.ActionRow { +template $ComponentEntryRow: Adw.ActionRow { title: _("Component version"); Spinner spinner { diff --git a/bottles/frontend/widgets/component.py b/bottles/frontend/component_entry_row.py similarity index 95% rename from bottles/frontend/widgets/component.py rename to bottles/frontend/component_entry_row.py index 1bc32e510b0..f8ae055f2e8 100644 --- a/bottles/frontend/widgets/component.py +++ b/bottles/frontend/component_entry_row.py @@ -1,6 +1,6 @@ -# component.py +# component_entry_row.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -16,7 +16,6 @@ # from gettext import gettext as _ -from typing import Optional from gi.repository import Gtk, GObject, Adw @@ -24,14 +23,14 @@ from bottles.backend.state import Status from bottles.backend.utils.manager import ManagerUtils from bottles.backend.utils.threading import RunAsync -from bottles.frontend.utils.gtk import GtkUtils +from bottles.frontend.gtk import GtkUtils logging = Logger() -@Gtk.Template(resource_path="/com/usebottles/bottles/component-entry.ui") -class ComponentEntry(Adw.ActionRow): - __gtype_name__ = "ComponentEntry" +@Gtk.Template(resource_path="/com/usebottles/bottles/component-entry-row.ui") +class ComponentEntryRow(Adw.ActionRow): + __gtype_name__ = "ComponentEntryRow" __gsignals__ = { "component-installed": (GObject.SIGNAL_RUN_FIRST, None, ()), "component-error": (GObject.SIGNAL_RUN_FIRST, None, ()), @@ -138,7 +137,7 @@ def update_progress( self, received_size: int = 0, total_size: int = 0, - status: Optional[Status] = None, + status: Status | None = None, ): if status == Status.FAILED: logging.error("Component installation failed") diff --git a/bottles/frontend/ui/dialog-crash-report.blp b/bottles/frontend/crash-report-dialog.blp similarity index 100% rename from bottles/frontend/ui/dialog-crash-report.blp rename to bottles/frontend/crash-report-dialog.blp diff --git a/bottles/frontend/windows/crash.py b/bottles/frontend/crash_report_dialog.py similarity index 97% rename from bottles/frontend/windows/crash.py rename to bottles/frontend/crash_report_dialog.py index 351f0f3d1bc..f7cfc7ea29e 100644 --- a/bottles/frontend/windows/crash.py +++ b/bottles/frontend/crash_report_dialog.py @@ -1,6 +1,6 @@ -# crash.py +# crash_report_dialog.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -45,7 +45,7 @@ def __on_btn_report_clicked(button, report): webbrowser.open(report["html_url"]) -@Gtk.Template(resource_path="/com/usebottles/bottles/dialog-crash-report.ui") +@Gtk.Template(resource_path="/com/usebottles/bottles/crash-report-dialog.ui") class CrashReportDialog(Adw.Window): __gtype_name__ = "CrashReportDialog" diff --git a/bottles/frontend/ui/dialog-deps-check.blp b/bottles/frontend/dependencies-check-dialog.blp similarity index 100% rename from bottles/frontend/ui/dialog-deps-check.blp rename to bottles/frontend/dependencies-check-dialog.blp diff --git a/bottles/frontend/windows/depscheck.py b/bottles/frontend/dependencies_check_dialog.py similarity index 87% rename from bottles/frontend/windows/depscheck.py rename to bottles/frontend/dependencies_check_dialog.py index 9e4b7186bc3..e8653b93020 100644 --- a/bottles/frontend/windows/depscheck.py +++ b/bottles/frontend/dependencies_check_dialog.py @@ -1,6 +1,6 @@ -# depscheck.py +# dependencies_check_dialog.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -18,7 +18,7 @@ from gi.repository import Gtk, Adw -@Gtk.Template(resource_path="/com/usebottles/bottles/dialog-deps-check.ui") +@Gtk.Template(resource_path="/com/usebottles/bottles/dependencies-check-dialog.ui") class DependenciesCheckDialog(Adw.Window): __gtype_name__ = "DependenciesCheckDialog" diff --git a/bottles/frontend/ui/dependency-entry.blp b/bottles/frontend/dependency-entry-row.blp similarity index 97% rename from bottles/frontend/ui/dependency-entry.blp rename to bottles/frontend/dependency-entry-row.blp index b7bbe5473f8..a2920677a49 100644 --- a/bottles/frontend/ui/dependency-entry.blp +++ b/bottles/frontend/dependency-entry-row.blp @@ -38,7 +38,7 @@ Popover pop_actions { } } -template $DependencyEntry: Adw.ActionRow { +template $DependencyEntryRow: Adw.ActionRow { title: _("Dependency name"); activatable-widget: btn_install; subtitle: _("Dependency description"); diff --git a/bottles/frontend/widgets/dependency.py b/bottles/frontend/dependency_entry_row.py similarity index 96% rename from bottles/frontend/widgets/dependency.py rename to bottles/frontend/dependency_entry_row.py index 226e915a5e1..99646567f2e 100644 --- a/bottles/frontend/widgets/dependency.py +++ b/bottles/frontend/dependency_entry_row.py @@ -1,6 +1,6 @@ -# dependency.py +# dependency_entry_row.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -24,13 +24,13 @@ from bottles.backend.models.config import BottleConfig from bottles.backend.models.result import Result from bottles.backend.utils.threading import RunAsync -from bottles.frontend.utils.gtk import GtkUtils -from bottles.frontend.windows.generic import SourceDialog +from bottles.frontend.gtk import GtkUtils +from bottles.frontend.generic import SourceDialog -@Gtk.Template(resource_path="/com/usebottles/bottles/dependency-entry.ui") -class DependencyEntry(Adw.ActionRow): - __gtype_name__ = "DependencyEntry" +@Gtk.Template(resource_path="/com/usebottles/bottles/dependency-entry-row.ui") +class DependencyEntryRow(Adw.ActionRow): + __gtype_name__ = "DependencyEntryRow" # region Widgets label_category = Gtk.Template.Child() diff --git a/bottles/frontend/ui/details-dependencies.blp b/bottles/frontend/details-dependencies-view.blp similarity index 97% rename from bottles/frontend/ui/details-dependencies.blp rename to bottles/frontend/details-dependencies-view.blp index 7565f545d4e..6524212f1a5 100644 --- a/bottles/frontend/ui/details-dependencies.blp +++ b/bottles/frontend/details-dependencies-view.blp @@ -1,7 +1,7 @@ using Gtk 4.0; using Adw 1; -template $DetailsDependencies: Adw.Bin { +template $DetailsDependenciesView: Adw.Bin { Box { orientation: vertical; diff --git a/bottles/frontend/ui/details-installers.blp b/bottles/frontend/details-installers-view.blp similarity index 97% rename from bottles/frontend/ui/details-installers.blp rename to bottles/frontend/details-installers-view.blp index 26de77fd262..c4dec9dcb5b 100644 --- a/bottles/frontend/ui/details-installers.blp +++ b/bottles/frontend/details-installers-view.blp @@ -1,7 +1,7 @@ using Gtk 4.0; using Adw 1; -template $DetailsInstallers: Adw.Bin { +template $DetailsInstallersView: Adw.Bin { Box { orientation: vertical; diff --git a/bottles/frontend/ui/details-preferences.blp b/bottles/frontend/details-preferences-page.blp similarity index 99% rename from bottles/frontend/ui/details-preferences.blp rename to bottles/frontend/details-preferences-page.blp index d92d861f57c..58db442ef24 100644 --- a/bottles/frontend/ui/details-preferences.blp +++ b/bottles/frontend/details-preferences-page.blp @@ -1,7 +1,7 @@ using Gtk 4.0; using Adw 1; -template $DetailsPreferences: Adw.PreferencesPage { +template $DetailsPreferencesPage: Adw.PreferencesPage { Adw.PreferencesGroup group_details { Adw.EntryRow entry_name { title: _("Name"); diff --git a/bottles/frontend/ui/details-taskmanager.blp b/bottles/frontend/details-task-manager-view.blp similarity index 88% rename from bottles/frontend/ui/details-taskmanager.blp rename to bottles/frontend/details-task-manager-view.blp index ec78ea5649d..ffe6f192dca 100644 --- a/bottles/frontend/ui/details-taskmanager.blp +++ b/bottles/frontend/details-task-manager-view.blp @@ -1,6 +1,6 @@ using Gtk 4.0; -template $TaskManagerView: ScrolledWindow { +template $DetailsTaskManagerView: ScrolledWindow { TreeView treeview_processes { enable-grid-lines: horizontal; diff --git a/bottles/frontend/ui/details-versioning.blp b/bottles/frontend/details-versioning-page.blp similarity index 96% rename from bottles/frontend/ui/details-versioning.blp rename to bottles/frontend/details-versioning-page.blp index 11458e8e962..99bc65a74bf 100644 --- a/bottles/frontend/ui/details-versioning.blp +++ b/bottles/frontend/details-versioning-page.blp @@ -1,7 +1,7 @@ using Gtk 4.0; using Adw 1; -template $DetailsVersioning: Adw.PreferencesPage { +template $DetailsVersioningPage: Adw.PreferencesPage { Adw.PreferencesPage pref_page { Adw.PreferencesGroup { ListBox list_states { diff --git a/bottles/frontend/views/bottle_dependencies.py b/bottles/frontend/details_dependencies_view.py similarity index 90% rename from bottles/frontend/views/bottle_dependencies.py rename to bottles/frontend/details_dependencies_view.py index f96b3bf29d2..41cc42ce427 100644 --- a/bottles/frontend/views/bottle_dependencies.py +++ b/bottles/frontend/details_dependencies_view.py @@ -1,6 +1,6 @@ -# bottle_installers.py +# details_dependencies_view.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -16,21 +16,20 @@ # import time -from typing import Optional from gi.repository import Gtk, GLib, Adw from bottles.backend.models.config import BottleConfig from bottles.backend.state import EventManager, Events from bottles.backend.utils.threading import RunAsync -from bottles.frontend.utils.common import open_doc_url -from bottles.frontend.utils.gtk import GtkUtils -from bottles.frontend.widgets.dependency import DependencyEntry +from bottles.frontend.common import open_doc_url +from bottles.frontend.gtk import GtkUtils +from bottles.frontend.dependency_entry_row import DependencyEntryRow -@Gtk.Template(resource_path="/com/usebottles/bottles/details-dependencies.ui") -class DependenciesView(Adw.Bin): - __gtype_name__ = "DetailsDependencies" +@Gtk.Template(resource_path="/com/usebottles/bottles/details-dependencies-view.ui") +class DetailsDependenciesView(Adw.Bin): + __gtype_name__ = "DetailsDependenciesView" __registry = [] # region Widgets @@ -91,7 +90,7 @@ def empty_list(self): r.get_parent().remove(r) self.__registry = [] - def update(self, _widget=False, config: Optional[BottleConfig] = None): + def update(self, _widget=False, config: BottleConfig | None = None): """ This function update the dependencies list with the supported by the manager. @@ -107,7 +106,7 @@ def update(self, _widget=False, config: Optional[BottleConfig] = None): self.stack.set_visible_child_name("page_loading") def new_dependency(dependency, plain=False): - entry = DependencyEntry( + entry = DependencyEntryRow( window=self.window, config=self.config, dependency=dependency, diff --git a/bottles/frontend/views/bottle_installers.py b/bottles/frontend/details_installers_view.py similarity index 93% rename from bottles/frontend/views/bottle_installers.py rename to bottles/frontend/details_installers_view.py index 8d83ca00ab3..e6059475fd7 100644 --- a/bottles/frontend/views/bottle_installers.py +++ b/bottles/frontend/details_installers_view.py @@ -1,6 +1,6 @@ -# bottle_installers.py +# details_installers_view.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottle Contributors # # 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 @@ -22,13 +22,13 @@ from bottles.backend.models.result import Result from bottles.backend.utils.threading import RunAsync -from bottles.frontend.utils.common import open_doc_url -from bottles.frontend.widgets.installer import InstallerEntry +from bottles.frontend.common import open_doc_url +from bottles.frontend.installer_row import InstallerRow -@Gtk.Template(resource_path="/com/usebottles/bottles/details-installers.ui") -class InstallersView(Adw.Bin): - __gtype_name__ = "DetailsInstallers" +@Gtk.Template(resource_path="/com/usebottles/bottles/details-installers-view.ui") +class DetailsInstallersView(Adw.Bin): + __gtype_name__ = "DetailsInstallersView" __registry = [] # region Widgets @@ -93,7 +93,7 @@ def update(self, widget=False, config=None): self.list_installers.set_sensitive(False) def new_installer(_installer): - entry = InstallerEntry( + entry = InstallerRow( window=self.window, config=self.config, installer=_installer ) self.list_installers.append(entry) diff --git a/bottles/frontend/views/bottle_preferences.py b/bottles/frontend/details_preferences_page.py similarity index 94% rename from bottles/frontend/views/bottle_preferences.py rename to bottles/frontend/details_preferences_page.py index 754576baed7..ce58232e3fb 100644 --- a/bottles/frontend/views/bottle_preferences.py +++ b/bottles/frontend/details_preferences_page.py @@ -1,6 +1,6 @@ -# bottle_preferences.py +# details_preferences_page.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -42,27 +42,29 @@ from bottles.backend.utils.manager import ManagerUtils from bottles.backend.utils.threading import RunAsync from bottles.backend.wine.regkeys import RegKeys -from bottles.frontend.utils.gtk import GtkUtils -from bottles.frontend.windows.display import DisplayDialog -from bottles.frontend.windows.dlloverrides import DLLOverridesDialog -from bottles.frontend.windows.drives import DrivesDialog -from bottles.frontend.windows.envvars import EnvironmentVariablesDialog -from bottles.frontend.windows.exclusionpatterns import ExclusionPatternsDialog -from bottles.frontend.windows.fsr import FsrDialog -from bottles.frontend.windows.gamescope import GamescopeDialog -from bottles.frontend.windows.mangohud import MangoHudDialog -from bottles.frontend.windows.protonalert import ProtonAlertDialog -from bottles.frontend.windows.sandbox import SandboxDialog -from bottles.frontend.windows.vkbasalt import VkBasaltDialog -from bottles.frontend.windows.vmtouch import VmtouchDialog +from bottles.frontend.gtk import GtkUtils +from bottles.frontend.display_dialog import DisplayDialog +from bottles.frontend.dll_overrides_dialog import DLLOverridesDialog +from bottles.frontend.drives_dialog import DrivesDialog +from bottles.frontend.environment_variables_dialog import ( + EnvironmentVariablesDialog, +) +from bottles.frontend.exclusion_patterns_dialog import ExclusionPatternsDialog +from bottles.frontend.fsr_dialog import FsrDialog +from bottles.frontend.gamescope_dialog import GamescopeDialog +from bottles.frontend.mangohud_dialog import MangoHudDialog +from bottles.frontend.proton_alert_dialog import ProtonAlertDialog +from bottles.frontend.sandbox_dialog import SandboxDialog +from bottles.frontend.vkbasalt_dialog import VkBasaltDialog +from bottles.frontend.vmtouch_dialog import VmtouchDialog logging = Logger() # noinspection PyUnusedLocal -@Gtk.Template(resource_path="/com/usebottles/bottles/details-preferences.ui") -class PreferencesView(Adw.PreferencesPage): - __gtype_name__ = "DetailsPreferences" +@Gtk.Template(resource_path="/com/usebottles/bottles/details-preferences-page.ui") +class DetailsPreferencesPage(Adw.PreferencesPage): + __gtype_name__ = "DetailsPreferencesPage" # region Widgets btn_manage_gamescope = Gtk.Template.Child() @@ -224,25 +226,29 @@ def __init__(self, details, config, **kwargs): ) self.btn_cwd.connect("clicked", self.choose_cwd) self.btn_cwd_reset.connect("clicked", self.reset_cwd, True) - self.switch_mangohud.connect("state-set", self.__toggle_feature, "mangohud") - self.switch_obsvkc.connect("state-set", self.__toggle_feature, "obsvkc") - self.switch_vkbasalt.connect("state-set", self.__toggle_feature, "vkbasalt") - self.switch_fsr.connect("state-set", self.__toggle_feature, "fsr") + self.switch_mangohud.connect("state-set", self.__toggle_feature_cb, "mangohud") + self.switch_obsvkc.connect("state-set", self.__toggle_feature_cb, "obsvkc") + self.switch_vkbasalt.connect("state-set", self.__toggle_feature_cb, "vkbasalt") + self.switch_fsr.connect("state-set", self.__toggle_feature_cb, "fsr") self.switch_nvapi.connect("state-set", self.__toggle_nvapi) - self.switch_gamemode.connect("state-set", self.__toggle_feature, "gamemode") - self.switch_gamescope.connect("state-set", self.__toggle_feature, "gamescope") - self.switch_sandbox.connect("state-set", self.__toggle_feature, "sandbox") - self.switch_discrete.connect("state-set", self.__toggle_feature, "discrete_gpu") + self.switch_gamemode.connect("state-set", self.__toggle_feature_cb, "gamemode") + self.switch_gamescope.connect( + "state-set", self.__toggle_feature_cb, "gamescope" + ) + self.switch_sandbox.connect("state-set", self.__toggle_feature_cb, "sandbox") + self.switch_discrete.connect( + "state-set", self.__toggle_feature_cb, "discrete_gpu" + ) self.switch_versioning_compression.connect( "state-set", self.__toggle_versioning_compression ) self.switch_auto_versioning.connect( - "state-set", self.__toggle_feature, "versioning_automatic" + "state-set", self.__toggle_feature_cb, "versioning_automatic" ) self.switch_versioning_patterns.connect( - "state-set", self.__toggle_feature, "versioning_exclusion_patterns" + "state-set", self.__toggle_feature_cb, "versioning_exclusion_patterns" ) - self.switch_vmtouch.connect("state-set", self.__toggle_feature, "vmtouch") + self.switch_vmtouch.connect("state-set", self.__toggle_feature_cb, "vmtouch") self.combo_runner.connect("notify::selected", self.__set_runner) self.combo_dxvk.connect("notify::selected", self.__set_dxvk) self.combo_vkd3d.connect("notify::selected", self.__set_vkd3d) @@ -263,7 +269,7 @@ def __init__(self, details, config, **kwargs): if RuntimeManager.get_runtimes("steam"): self.row_steam_runtime.set_visible(True) self.switch_steam_runtime.connect( - "state-set", self.__toggle_feature, "use_steam_runtime" + "state-set", self.__toggle_feature_cb, "use_steam_runtime" ) """Toggle some utilities according to its availability""" @@ -404,22 +410,22 @@ def set_config(self, config: BottleConfig): parameters = self.config.Parameters # temporary lock functions connected to the widgets - self.switch_mangohud.handler_block_by_func(self.__toggle_feature) + self.switch_mangohud.handler_block_by_func(self.__toggle_feature_cb) self.switch_nvapi.handler_block_by_func(self.__toggle_nvapi) - self.switch_vkbasalt.handler_block_by_func(self.__toggle_feature) - self.switch_fsr.handler_block_by_func(self.__toggle_feature) - self.switch_obsvkc.handler_block_by_func(self.__toggle_feature) - self.switch_gamemode.handler_block_by_func(self.__toggle_feature) - self.switch_gamescope.handler_block_by_func(self.__toggle_feature) - self.switch_sandbox.handler_block_by_func(self.__toggle_feature) - self.switch_discrete.handler_block_by_func(self.__toggle_feature) + self.switch_vkbasalt.handler_block_by_func(self.__toggle_feature_cb) + self.switch_fsr.handler_block_by_func(self.__toggle_feature_cb) + self.switch_obsvkc.handler_block_by_func(self.__toggle_feature_cb) + self.switch_gamemode.handler_block_by_func(self.__toggle_feature_cb) + self.switch_gamescope.handler_block_by_func(self.__toggle_feature_cb) + self.switch_sandbox.handler_block_by_func(self.__toggle_feature_cb) + self.switch_discrete.handler_block_by_func(self.__toggle_feature_cb) self.switch_versioning_compression.handler_block_by_func( self.__toggle_versioning_compression ) - self.switch_auto_versioning.handler_block_by_func(self.__toggle_feature) - self.switch_versioning_patterns.handler_block_by_func(self.__toggle_feature) + self.switch_auto_versioning.handler_block_by_func(self.__toggle_feature_cb) + self.switch_versioning_patterns.handler_block_by_func(self.__toggle_feature_cb) with contextlib.suppress(TypeError): - self.switch_steam_runtime.handler_block_by_func(self.__toggle_feature) + self.switch_steam_runtime.handler_block_by_func(self.__toggle_feature_cb) self.combo_runner.handler_block_by_func(self.__set_runner) self.combo_dxvk.handler_block_by_func(self.__set_dxvk) self.combo_vkd3d.handler_block_by_func(self.__set_vkd3d) @@ -454,7 +460,7 @@ def set_config(self, config: BottleConfig): self.entry_name.set_text(config.Name) self.row_cwd.set_subtitle( - _('Directory that contains the data of "{}".'.format(config.Name)) + _(f'Directory that contains the data of "{config.Name}".') ) self.combo_language.set_selected( @@ -538,22 +544,24 @@ def set_config(self, config: BottleConfig): self.combo_sync.set_selected(sync_types.index(sync)) # unlock functions connected to the widgets - self.switch_mangohud.handler_unblock_by_func(self.__toggle_feature) + self.switch_mangohud.handler_unblock_by_func(self.__toggle_feature_cb) self.switch_nvapi.handler_unblock_by_func(self.__toggle_nvapi) - self.switch_vkbasalt.handler_unblock_by_func(self.__toggle_feature) - self.switch_fsr.handler_unblock_by_func(self.__toggle_feature) - self.switch_obsvkc.handler_unblock_by_func(self.__toggle_feature) - self.switch_gamemode.handler_unblock_by_func(self.__toggle_feature) - self.switch_gamescope.handler_unblock_by_func(self.__toggle_feature) - self.switch_sandbox.handler_unblock_by_func(self.__toggle_feature) - self.switch_discrete.handler_unblock_by_func(self.__toggle_feature) + self.switch_vkbasalt.handler_unblock_by_func(self.__toggle_feature_cb) + self.switch_fsr.handler_unblock_by_func(self.__toggle_feature_cb) + self.switch_obsvkc.handler_unblock_by_func(self.__toggle_feature_cb) + self.switch_gamemode.handler_unblock_by_func(self.__toggle_feature_cb) + self.switch_gamescope.handler_unblock_by_func(self.__toggle_feature_cb) + self.switch_sandbox.handler_unblock_by_func(self.__toggle_feature_cb) + self.switch_discrete.handler_unblock_by_func(self.__toggle_feature_cb) self.switch_versioning_compression.handler_unblock_by_func( self.__toggle_versioning_compression ) - self.switch_auto_versioning.handler_unblock_by_func(self.__toggle_feature) - self.switch_versioning_patterns.handler_unblock_by_func(self.__toggle_feature) + self.switch_auto_versioning.handler_unblock_by_func(self.__toggle_feature_cb) + self.switch_versioning_patterns.handler_unblock_by_func( + self.__toggle_feature_cb + ) with contextlib.suppress(TypeError): - self.switch_steam_runtime.handler_unblock_by_func(self.__toggle_feature) + self.switch_steam_runtime.handler_unblock_by_func(self.__toggle_feature_cb) self.combo_runner.handler_unblock_by_func(self.__set_runner) self.combo_dxvk.handler_unblock_by_func(self.__set_dxvk) self.combo_vkd3d.handler_unblock_by_func(self.__set_vkd3d) @@ -580,12 +588,15 @@ def __show_feature_dialog(self, _widget: Gtk.Widget, dialog: Adw.Window) -> None window = dialog(window=self.window, config=self.config) window.present() - def __toggle_feature(self, _widget: Gtk.Widget, state: bool, key: str) -> None: + def __toggle_feature(self, state: bool, key: str) -> None: """Toggle a specific feature.""" self.config = self.manager.update_config( config=self.config, key=key, value=state, scope="Parameters" ).data["config"] + def __toggle_feature_cb(self, _widget: Gtk.Widget, state: bool, key: str) -> None: + self.__toggle_feature(state=state, key=key) + def __set_sync_type(self, *_args): """ Set the sync type (wine, esync, fsync) @@ -620,7 +631,7 @@ def __toggle_nvapi(self, widget=False, state=False): remove=not state, ) - self.__toggle_feature(widget=None, state=state, key="dxvk_nvapi") + self.__toggle_feature(state=state, key="dxvk_nvapi") def __toggle_versioning_compression(self, widget, state): """Toggle the versioning compression for current bottle""" @@ -684,11 +695,11 @@ def update(result: Result[dict], error=False): self.config = result.data["config"] if self.config.Parameters.use_steam_runtime: self.switch_steam_runtime.handler_block_by_func( - self.__toggle_feature + self.__toggle_feature_cb ) self.switch_steam_runtime.set_active(True) self.switch_steam_runtime.handler_unblock_by_func( - self.__toggle_feature + self.__toggle_feature_cb ) set_widgets_status(True) diff --git a/bottles/frontend/views/bottle_taskmanager.py b/bottles/frontend/details_task_manager_view.py similarity index 92% rename from bottles/frontend/views/bottle_taskmanager.py rename to bottles/frontend/details_task_manager_view.py index 012ab11c6ba..d51bca52171 100644 --- a/bottles/frontend/views/bottle_taskmanager.py +++ b/bottles/frontend/details_task_manager_view.py @@ -1,6 +1,6 @@ -# taskmanager.py +# details_task_manager_view.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -15,7 +15,6 @@ # along with this program. If not, see . # -from typing import Optional from gi.repository import Gtk @@ -23,12 +22,12 @@ from bottles.backend.utils.threading import RunAsync from bottles.backend.wine.winebridge import WineBridge from bottles.backend.wine.winedbg import WineDbg -from bottles.frontend.utils.gtk import GtkUtils +from bottles.frontend.gtk import GtkUtils -@Gtk.Template(resource_path="/com/usebottles/bottles/details-taskmanager.ui") -class TaskManagerView(Gtk.ScrolledWindow): - __gtype_name__ = "TaskManagerView" +@Gtk.Template(resource_path="/com/usebottles/bottles/details-task-manager-view.ui") +class DetailsTaskManagerView(Gtk.ScrolledWindow): + __gtype_name__ = "DetailsTaskManagerView" # region Widgets treeview_processes = Gtk.Template.Child() @@ -83,14 +82,14 @@ def show_kill_btn(self, widget): return self.btn_kill.set_sensitive(True) - def update(self, widget=False, config: Optional[BottleConfig] = None): + def update(self, widget=False, config: BottleConfig | None = None): """ This function scan for new processed and update the liststore_processes with the new data """ self.liststore_processes.clear() - def fetch_processes(config: Optional[BottleConfig] = None): + def fetch_processes(config: BottleConfig | None = None): if config is None: config = BottleConfig() self.config = config diff --git a/bottles/frontend/views/bottle_versioning.py b/bottles/frontend/details_versioning_page.py similarity index 93% rename from bottles/frontend/views/bottle_versioning.py rename to bottles/frontend/details_versioning_page.py index 4c2539a1760..d83408f3287 100644 --- a/bottles/frontend/views/bottle_versioning.py +++ b/bottles/frontend/details_versioning_page.py @@ -1,6 +1,6 @@ -# bottle_versioning.py +# details_versioning_page.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -22,14 +22,14 @@ from bottles.backend.models.result import Result from bottles.backend.utils.threading import RunAsync -from bottles.frontend.utils.common import open_doc_url -from bottles.frontend.utils.gtk import GtkUtils -from bottles.frontend.widgets.state import StateEntry +from bottles.frontend.common import open_doc_url +from bottles.frontend.gtk import GtkUtils +from bottles.frontend.state_row import StateRow -@Gtk.Template(resource_path="/com/usebottles/bottles/details-versioning.ui") -class VersioningView(Adw.PreferencesPage): - __gtype_name__ = "DetailsVersioning" +@Gtk.Template(resource_path="/com/usebottles/bottles/details-versioning-page.ui") +class DetailsVersioningPage(Adw.PreferencesPage): + __gtype_name__ = "DetailsVersioningPage" __registry = [] # region Widgets @@ -92,7 +92,7 @@ def update(self, widget=None, config=None, states=None, active=0): ) def new_state(_state, active): - entry = StateEntry( + entry = StateRow( parent=self, config=self.config, state=_state, active=active ) self.__registry.append(entry) diff --git a/bottles/frontend/ui/dialog-display.blp b/bottles/frontend/display-dialog.blp similarity index 100% rename from bottles/frontend/ui/dialog-display.blp rename to bottles/frontend/display-dialog.blp diff --git a/bottles/frontend/windows/display.py b/bottles/frontend/display_dialog.py similarity index 98% rename from bottles/frontend/windows/display.py rename to bottles/frontend/display_dialog.py index 2948d913b14..d5a605a3941 100644 --- a/bottles/frontend/windows/display.py +++ b/bottles/frontend/display_dialog.py @@ -1,6 +1,6 @@ -# display.py +# display_dialog.py # -# Copyright 2022 Bottles Developers +# Copyright 2025 The Bottles Contributors # # 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 @@ -23,14 +23,14 @@ from bottles.backend.utils.threading import RunAsync from bottles.backend.wine.reg import Reg from bottles.backend.wine.regkeys import RegKeys -from bottles.frontend.utils.gtk import GtkUtils +from bottles.frontend.gtk import GtkUtils logging = Logger() renderers = ["gl", "gdi", "vulkan"] -@Gtk.Template(resource_path="/com/usebottles/bottles/dialog-display.ui") +@Gtk.Template(resource_path="/com/usebottles/bottles/display-dialog.ui") class DisplayDialog(Adw.Window): __gtype_name__ = "DisplayDialog" diff --git a/bottles/frontend/ui/dll-override-entry.blp b/bottles/frontend/dll-override-entry.blp similarity index 100% rename from bottles/frontend/ui/dll-override-entry.blp rename to bottles/frontend/dll-override-entry.blp diff --git a/bottles/frontend/ui/dialog-dll-overrides.blp b/bottles/frontend/dll-overrides-dialog.blp similarity index 100% rename from bottles/frontend/ui/dialog-dll-overrides.blp rename to bottles/frontend/dll-overrides-dialog.blp diff --git a/bottles/frontend/windows/dlloverrides.py b/bottles/frontend/dll_overrides_dialog.py similarity index 97% rename from bottles/frontend/windows/dlloverrides.py rename to bottles/frontend/dll_overrides_dialog.py index 5cf47082e71..0229554a14c 100644 --- a/bottles/frontend/windows/dlloverrides.py +++ b/bottles/frontend/dll_overrides_dialog.py @@ -1,6 +1,6 @@ -# dlloverrides.py +# dll_overrides_dialog.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -81,7 +81,7 @@ def __remove_override(self, *_args): self.get_parent().remove(self) -@Gtk.Template(resource_path="/com/usebottles/bottles/dialog-dll-overrides.ui") +@Gtk.Template(resource_path="/com/usebottles/bottles/dll-overrides-dialog.ui") class DLLOverridesDialog(Adw.PreferencesWindow): __gtype_name__ = "DLLOverridesDialog" diff --git a/bottles/frontend/ui/drive-entry.blp b/bottles/frontend/drive-entry.blp similarity index 100% rename from bottles/frontend/ui/drive-entry.blp rename to bottles/frontend/drive-entry.blp diff --git a/bottles/frontend/ui/dialog-drives.blp b/bottles/frontend/drives-dialog.blp similarity index 100% rename from bottles/frontend/ui/dialog-drives.blp rename to bottles/frontend/drives-dialog.blp diff --git a/bottles/frontend/windows/drives.py b/bottles/frontend/drives_dialog.py similarity index 97% rename from bottles/frontend/windows/drives.py rename to bottles/frontend/drives_dialog.py index 1cbc9295028..c2752caa028 100644 --- a/bottles/frontend/windows/drives.py +++ b/bottles/frontend/drives_dialog.py @@ -1,6 +1,6 @@ -# drive.py +# drives_dialog.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottle Contributors # # 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 @@ -84,7 +84,7 @@ def __remove(self, *_args): self.parent.add_combo_letter(self.drive[0]) -@Gtk.Template(resource_path="/com/usebottles/bottles/dialog-drives.ui") +@Gtk.Template(resource_path="/com/usebottles/bottles/drives-dialog.ui") class DrivesDialog(Adw.Window): __gtype_name__ = "DrivesDialog" __alphabet = string.ascii_uppercase diff --git a/bottles/frontend/ui/dialog-duplicate.blp b/bottles/frontend/duplicate-dialog.blp similarity index 100% rename from bottles/frontend/ui/dialog-duplicate.blp rename to bottles/frontend/duplicate-dialog.blp diff --git a/bottles/frontend/windows/duplicate.py b/bottles/frontend/duplicate_dialog.py similarity index 94% rename from bottles/frontend/windows/duplicate.py rename to bottles/frontend/duplicate_dialog.py index 9f69e9cd55e..a3b839430de 100644 --- a/bottles/frontend/windows/duplicate.py +++ b/bottles/frontend/duplicate_dialog.py @@ -1,6 +1,6 @@ -# duplicate.py +# duplicate_dialog.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -21,10 +21,10 @@ from bottles.backend.managers.backup import BackupManager from bottles.backend.utils.threading import RunAsync -from bottles.frontend.utils.gtk import GtkUtils +from bottles.frontend.gtk import GtkUtils -@Gtk.Template(resource_path="/com/usebottles/bottles/dialog-duplicate.ui") +@Gtk.Template(resource_path="/com/usebottles/bottles/duplicate-dialog.ui") class DuplicateDialog(Adw.Window): __gtype_name__ = "DuplicateDialog" diff --git a/bottles/frontend/ui/env-var-entry.blp b/bottles/frontend/env-var-entry.blp similarity index 100% rename from bottles/frontend/ui/env-var-entry.blp rename to bottles/frontend/env-var-entry.blp diff --git a/bottles/frontend/ui/dialog-env-vars.blp b/bottles/frontend/environment-variables-dialog.blp similarity index 100% rename from bottles/frontend/ui/dialog-env-vars.blp rename to bottles/frontend/environment-variables-dialog.blp diff --git a/bottles/frontend/windows/envvars.py b/bottles/frontend/environment_variables_dialog.py similarity index 96% rename from bottles/frontend/windows/envvars.py rename to bottles/frontend/environment_variables_dialog.py index 85815f1433d..8252a135f0a 100644 --- a/bottles/frontend/windows/envvars.py +++ b/bottles/frontend/environment_variables_dialog.py @@ -1,6 +1,6 @@ -# envvars.py +# environment_variables_dialog.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -20,8 +20,8 @@ from gi.repository import Gtk, GLib, Adw from bottles.backend.logger import Logger -from bottles.frontend.utils.gtk import GtkUtils -from bottles.frontend.utils.sh import ShUtils +from bottles.frontend.gtk import GtkUtils +from bottles.frontend.sh import ShUtils logging = Logger() @@ -122,7 +122,7 @@ def __validate(self, *_args): self.add_css_class("error") -@Gtk.Template(resource_path="/com/usebottles/bottles/dialog-env-vars.ui") +@Gtk.Template(resource_path="/com/usebottles/bottles/environment-variables-dialog.ui") class EnvironmentVariablesDialog(Adw.Dialog): __gtype_name__ = "EnvironmentVariablesDialog" diff --git a/bottles/frontend/ui/exclusion-pattern-entry.blp b/bottles/frontend/exclusion-pattern-row.blp similarity index 77% rename from bottles/frontend/ui/exclusion-pattern-entry.blp rename to bottles/frontend/exclusion-pattern-row.blp index ec6f8c16397..7965fd65882 100644 --- a/bottles/frontend/ui/exclusion-pattern-entry.blp +++ b/bottles/frontend/exclusion-pattern-row.blp @@ -1,7 +1,7 @@ using Gtk 4.0; using Adw 1; -template $ExclusionPatternEntry: Adw.ActionRow { +template $ExclusionPatternRow: Adw.ActionRow { title: _("Value"); Button btn_remove { diff --git a/bottles/frontend/ui/dialog-exclusion-patterns.blp b/bottles/frontend/exclusion-patterns-dialog.blp similarity index 100% rename from bottles/frontend/ui/dialog-exclusion-patterns.blp rename to bottles/frontend/exclusion-patterns-dialog.blp diff --git a/bottles/frontend/windows/exclusionpatterns.py b/bottles/frontend/exclusion_patterns_dialog.py similarity index 89% rename from bottles/frontend/windows/exclusionpatterns.py rename to bottles/frontend/exclusion_patterns_dialog.py index 2c7bcdac795..e406a8c954a 100644 --- a/bottles/frontend/windows/exclusionpatterns.py +++ b/bottles/frontend/exclusion_patterns_dialog.py @@ -1,6 +1,6 @@ -# envvars.py +# exclusion_patterns_dialog.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -20,9 +20,9 @@ from gi.repository import Gtk, GLib, Adw -@Gtk.Template(resource_path="/com/usebottles/bottles/exclusion-pattern-entry.ui") -class ExclusionPatternEntry(Adw.ActionRow): - __gtype_name__ = "ExclusionPatternEntry" +@Gtk.Template(resource_path="/com/usebottles/bottles/exclusion-pattern-row.ui") +class ExclusionPatternRow(Adw.ActionRow): + __gtype_name__ = "ExclusionPatternRow" # region Widgets btn_remove = Gtk.Template.Child() @@ -57,7 +57,7 @@ def __remove(self, *_args): self.parent.group_patterns.remove(self) -@Gtk.Template(resource_path="/com/usebottles/bottles/dialog-exclusion-patterns.ui") +@Gtk.Template(resource_path="/com/usebottles/bottles/exclusion-patterns-dialog.ui") class ExclusionPatternsDialog(Adw.Window): __gtype_name__ = "ExclusionPatternsDialog" @@ -91,7 +91,7 @@ def __save_var(self, *_args): key="Versioning_Exclusion_Patterns", value=self.config.Versioning_Exclusion_Patterns + [pattern], ) - _entry = ExclusionPatternEntry(self, pattern) + _entry = ExclusionPatternRow(self, pattern) GLib.idle_add(self.group_patterns.add, _entry) self.entry_name.set_text("") @@ -107,5 +107,5 @@ def __populate_patterns_list(self): self.group_patterns.set_description("") for pattern in patterns: - _entry = ExclusionPatternEntry(self, pattern) + _entry = ExclusionPatternRow(self, pattern) GLib.idle_add(self.group_patterns.add, _entry) diff --git a/bottles/frontend/widgets/executable.py b/bottles/frontend/executable.py similarity index 100% rename from bottles/frontend/widgets/executable.py rename to bottles/frontend/executable.py diff --git a/bottles/frontend/utils/filters.py b/bottles/frontend/filters.py similarity index 58% rename from bottles/frontend/utils/filters.py rename to bottles/frontend/filters.py index 323dacc106d..58b19690371 100644 --- a/bottles/frontend/utils/filters.py +++ b/bottles/frontend/filters.py @@ -16,37 +16,45 @@ from gettext import gettext as _ -from gi.repository import Gtk +from gi.repository import Gio, GObject, Gtk def add_executable_filters(dialog): - filter = Gtk.FileFilter() - filter.set_name(_("Supported Executables")) # TODO: Investigate why `filter.add_mime_type(...)` does not show filter in all distributions. # Intended MIME types are: # - `application/x-ms-dos-executable` # - `application/x-msi` - filter.add_pattern("*.exe") - filter.add_pattern("*.msi") + __set_filter(dialog, _("Supported Executables"), ["*.exe", "*.msi"]) + - dialog.add_filter(filter) +def add_soundfont_filters(dialog): + __set_filter(dialog, _("Supported SoundFonts"), ["*.sf2", "*.sf3"]) def add_yaml_filters(dialog): - filter = Gtk.FileFilter() - filter.set_name("YAML") # TODO: Investigate why `filter.add_mime_type(...)` does not show filter in all distributions. # Intended MIME types are: # - `application/yaml` - filter.add_pattern("*.yml") - filter.add_pattern("*.yaml") - - dialog.add_filter(filter) + __set_filter(dialog, "YAML", ["*.yaml", "*.yml"]) def add_all_filters(dialog): - filter = Gtk.FileFilter() - filter.set_name(_("All Files")) - filter.add_pattern("*") + __set_filter(dialog, _("All Files"), ["*"]) + - dialog.add_filter(filter) +def __set_filter(dialog: GObject.Object, name: str, patterns: list[str]): + """Set dialog named file filter from list of extension patterns.""" + + filter = Gtk.FileFilter() + filter.set_name(name) + for pattern in patterns: + filter.add_pattern(pattern) + + if isinstance(dialog, Gtk.FileDialog): + filters = dialog.get_filters() or Gio.ListStore.new(Gtk.FileFilter) + filters.append(filter) + dialog.set_filters(filters) + elif isinstance(dialog, Gtk.FileChooserNative): + dialog.add_filter(filter) + else: + raise TypeError diff --git a/bottles/frontend/ui/dialog-fsr.blp b/bottles/frontend/fsr-dialog.blp similarity index 100% rename from bottles/frontend/ui/dialog-fsr.blp rename to bottles/frontend/fsr-dialog.blp diff --git a/bottles/frontend/windows/fsr.py b/bottles/frontend/fsr_dialog.py similarity index 95% rename from bottles/frontend/windows/fsr.py rename to bottles/frontend/fsr_dialog.py index 1c7ce23c43d..e35d83d1bf1 100644 --- a/bottles/frontend/windows/fsr.py +++ b/bottles/frontend/fsr_dialog.py @@ -1,6 +1,6 @@ -# vkbasalt.py +# fsr_dialog.py # -# Copyright 2022 Bottles Contributors +# Copyright 2025 The Bottles Contributors # # 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 @@ -23,7 +23,7 @@ logging = Logger() -@Gtk.Template(resource_path="/com/usebottles/bottles/dialog-fsr.ui") +@Gtk.Template(resource_path="/com/usebottles/bottles/fsr-dialog.ui") class FsrDialog(Adw.Window): __gtype_name__ = "FsrDialog" diff --git a/bottles/frontend/ui/dialog-gamescope.blp b/bottles/frontend/gamescope-dialog.blp similarity index 100% rename from bottles/frontend/ui/dialog-gamescope.blp rename to bottles/frontend/gamescope-dialog.blp diff --git a/bottles/frontend/windows/gamescope.py b/bottles/frontend/gamescope_dialog.py similarity index 96% rename from bottles/frontend/windows/gamescope.py rename to bottles/frontend/gamescope_dialog.py index 2e917411c69..f467160dba3 100644 --- a/bottles/frontend/windows/gamescope.py +++ b/bottles/frontend/gamescope_dialog.py @@ -1,6 +1,6 @@ -# gamescope.py +# gamescope_dialog.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -18,7 +18,7 @@ from gi.repository import Gtk, GLib, Adw -@Gtk.Template(resource_path="/com/usebottles/bottles/dialog-gamescope.ui") +@Gtk.Template(resource_path="/com/usebottles/bottles/gamescope-dialog.ui") class GamescopeDialog(Adw.Window): __gtype_name__ = "GamescopeDialog" diff --git a/bottles/frontend/windows/generic.py b/bottles/frontend/generic.py similarity index 100% rename from bottles/frontend/windows/generic.py rename to bottles/frontend/generic.py diff --git a/bottles/frontend/windows/generic_cli.py b/bottles/frontend/generic_cli.py similarity index 100% rename from bottles/frontend/windows/generic_cli.py rename to bottles/frontend/generic_cli.py diff --git a/bottles/frontend/utils/gtk.py b/bottles/frontend/gtk.py similarity index 95% rename from bottles/frontend/utils/gtk.py rename to bottles/frontend/gtk.py index 3af520d6c37..e01166178de 100644 --- a/bottles/frontend/utils/gtk.py +++ b/bottles/frontend/gtk.py @@ -15,13 +15,12 @@ # along with this program. If not, see . # -from typing import Optional from functools import wraps from inspect import signature from gi.repository import GLib, Gtk, GObject -from bottles.frontend.utils.sh import ShUtils +from bottles.frontend.sh import ShUtils class GtkUtils: @@ -75,7 +74,7 @@ def wrapper(*args, **kwargs): return wrapper @staticmethod - def get_parent_window() -> Optional[GObject.Object]: + def get_parent_window() -> GObject.Object | None: """Retrieve the parent window from a widget.""" toplevels = Gtk.Window.get_toplevels() return toplevels.get_item(0) diff --git a/bottles/frontend/ui/help-overlay.blp b/bottles/frontend/help-overlay.blp similarity index 100% rename from bottles/frontend/ui/help-overlay.blp rename to bottles/frontend/help-overlay.blp diff --git a/bottles/frontend/ui/importer-entry.blp b/bottles/frontend/importer-row.blp similarity index 96% rename from bottles/frontend/ui/importer-entry.blp rename to bottles/frontend/importer-row.blp index 2c42347b6fd..609124e57ae 100644 --- a/bottles/frontend/ui/importer-entry.blp +++ b/bottles/frontend/importer-row.blp @@ -16,7 +16,7 @@ Popover pop_actions { } } -template $ImporterEntry: Adw.ActionRow { +template $ImporterRow: Adw.ActionRow { /* Translators: A Wine prefix is a separate environment (C:\ drive) for the Wine program */ title: _("Wine prefix name"); diff --git a/bottles/frontend/ui/importer.blp b/bottles/frontend/importer-view.blp similarity index 100% rename from bottles/frontend/ui/importer.blp rename to bottles/frontend/importer-view.blp diff --git a/bottles/frontend/widgets/importer.py b/bottles/frontend/importer_row.py similarity index 90% rename from bottles/frontend/widgets/importer.py rename to bottles/frontend/importer_row.py index f3e7004a9b3..106bb04af5a 100644 --- a/bottles/frontend/widgets/importer.py +++ b/bottles/frontend/importer_row.py @@ -1,6 +1,6 @@ -# importer.py +# importer_row.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -21,12 +21,12 @@ from bottles.backend.utils.manager import ManagerUtils from bottles.backend.utils.threading import RunAsync -from bottles.frontend.utils.gtk import GtkUtils +from bottles.frontend.gtk import GtkUtils -@Gtk.Template(resource_path="/com/usebottles/bottles/importer-entry.ui") -class ImporterEntry(Adw.ActionRow): - __gtype_name__ = "ImporterEntry" +@Gtk.Template(resource_path="/com/usebottles/bottles/importer-row.ui") +class ImporterRow(Adw.ActionRow): + __gtype_name__ = "ImporterRow" # region Widgets label_manager = Gtk.Template.Child() diff --git a/bottles/frontend/views/importer.py b/bottles/frontend/importer_view.py similarity index 93% rename from bottles/frontend/views/importer.py rename to bottles/frontend/importer_view.py index 4a285736101..4a2256f2202 100644 --- a/bottles/frontend/views/importer.py +++ b/bottles/frontend/importer_view.py @@ -1,6 +1,6 @@ -# importer.py +# importer_view.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -21,12 +21,12 @@ from bottles.backend.managers.backup import BackupManager from bottles.backend.utils.threading import RunAsync -from bottles.frontend.utils.filters import add_yaml_filters, add_all_filters -from bottles.frontend.utils.gtk import GtkUtils -from bottles.frontend.widgets.importer import ImporterEntry +from bottles.frontend.filters import add_yaml_filters, add_all_filters +from bottles.frontend.gtk import GtkUtils +from bottles.frontend.importer_row import ImporterRow -@Gtk.Template(resource_path="/com/usebottles/bottles/importer.ui") +@Gtk.Template(resource_path="/com/usebottles/bottles/importer-view.ui") class ImporterView(Adw.Bin): __gtype_name__ = "ImporterView" @@ -77,7 +77,7 @@ def update(result, error=False): self.list_prefixes.remove(_w) for prefix in result.data.get("wineprefixes"): - self.list_prefixes.append(ImporterEntry(self, prefix)) + self.list_prefixes.append(ImporterRow(self, prefix)) widget.set_sensitive(False) diff --git a/bottles/frontend/ui/dialog-installer.blp b/bottles/frontend/installer-dialog.blp similarity index 100% rename from bottles/frontend/ui/dialog-installer.blp rename to bottles/frontend/installer-dialog.blp diff --git a/bottles/frontend/ui/installer-entry.blp b/bottles/frontend/installer-row.blp similarity index 96% rename from bottles/frontend/ui/installer-entry.blp rename to bottles/frontend/installer-row.blp index 3af12b0f924..50f530d4312 100644 --- a/bottles/frontend/ui/installer-entry.blp +++ b/bottles/frontend/installer-row.blp @@ -29,7 +29,7 @@ Popover pop_actions { } } -template $InstallerEntry: Adw.ActionRow { +template $InstallerRow: Adw.ActionRow { activatable-widget: btn_install; title: _("Installer name"); subtitle: _("Installer description"); diff --git a/bottles/frontend/windows/installer.py b/bottles/frontend/installer_dialog.py similarity index 95% rename from bottles/frontend/windows/installer.py rename to bottles/frontend/installer_dialog.py index 23343c9a2d1..775c1648ff8 100644 --- a/bottles/frontend/windows/installer.py +++ b/bottles/frontend/installer_dialog.py @@ -1,6 +1,6 @@ -# installer.py +# installer_dialog.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -21,12 +21,12 @@ from gi.repository import Gtk, GLib, Gio, GdkPixbuf, Adw from bottles.backend.utils.threading import RunAsync -from bottles.frontend.utils.gtk import GtkUtils +from bottles.frontend.gtk import GtkUtils -@Gtk.Template(resource_path="/com/usebottles/bottles/local-resource-entry.ui") -class LocalResourceEntry(Adw.ActionRow): - __gtype_name__ = "LocalResourceEntry" +@Gtk.Template(resource_path="/com/usebottles/bottles/local-resource-row.ui") +class LocalResourceRow(Adw.ActionRow): + __gtype_name__ = "LocalResourceRow" # region Widgets btn_path = Gtk.Template.Child() @@ -70,7 +70,7 @@ def set_path(_dialog, response): dialog.show() -@Gtk.Template(resource_path="/com/usebottles/bottles/dialog-installer.ui") +@Gtk.Template(resource_path="/com/usebottles/bottles/installer-dialog.ui") class InstallerDialog(Adw.Window): __gtype_name__ = "InstallerDialog" __sections = {} @@ -157,7 +157,7 @@ def __check_resources(self, *_args): return for resource in self.__local_resources: - _entry = LocalResourceEntry(self, resource) + _entry = LocalResourceRow(self, resource) GLib.idle_add(self.group_resources.add, _entry) self.btn_proceed.set_visible(True) diff --git a/bottles/frontend/widgets/installer.py b/bottles/frontend/installer_row.py similarity index 91% rename from bottles/frontend/widgets/installer.py rename to bottles/frontend/installer_row.py index cc36452cfd7..3e0d4906dfe 100644 --- a/bottles/frontend/widgets/installer.py +++ b/bottles/frontend/installer_row.py @@ -1,6 +1,6 @@ -# installer.py +# installer_row.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -19,13 +19,13 @@ from gettext import gettext as _ import webbrowser -from bottles.frontend.windows.generic import SourceDialog -from bottles.frontend.windows.installer import InstallerDialog +from bottles.frontend.generic import SourceDialog +from bottles.frontend.installer_dialog import InstallerDialog -@Gtk.Template(resource_path="/com/usebottles/bottles/installer-entry.ui") -class InstallerEntry(Adw.ActionRow): - __gtype_name__ = "InstallerEntry" +@Gtk.Template(resource_path="/com/usebottles/bottles/installer-row.ui") +class InstallerRow(Adw.ActionRow): + __gtype_name__ = "InstallerRow" # region Widgets btn_install = Gtk.Template.Child() diff --git a/bottles/frontend/ui/dialog-journal.blp b/bottles/frontend/journal-dialog.blp similarity index 100% rename from bottles/frontend/ui/dialog-journal.blp rename to bottles/frontend/journal-dialog.blp diff --git a/bottles/frontend/windows/journal.py b/bottles/frontend/journal_dialog.py similarity index 96% rename from bottles/frontend/windows/journal.py rename to bottles/frontend/journal_dialog.py index 9199d1bae4a..5540bc307ee 100644 --- a/bottles/frontend/windows/journal.py +++ b/bottles/frontend/journal_dialog.py @@ -1,6 +1,6 @@ -# journal.py +# journal_dialog.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -20,7 +20,7 @@ from bottles.backend.managers.journal import JournalManager, JournalSeverity -@Gtk.Template(resource_path="/com/usebottles/bottles/dialog-journal.ui") +@Gtk.Template(resource_path="/com/usebottles/bottles/journal-dialog.ui") class JournalDialog(Adw.Window): __gtype_name__ = "JournalDialog" diff --git a/bottles/frontend/ui/dialog-launch-options.blp b/bottles/frontend/launch-options-dialog.blp similarity index 86% rename from bottles/frontend/ui/dialog-launch-options.blp rename to bottles/frontend/launch-options-dialog.blp index ebd35d227ec..e107cab0221 100644 --- a/bottles/frontend/ui/dialog-launch-options.blp +++ b/bottles/frontend/launch-options-dialog.blp @@ -140,6 +140,37 @@ template $LaunchOptionsDialog: Adw.Window { } } } + + Adw.ActionRow action_midi_soundfont { + activatable-widget: btn_midi_soundfont; + title: _("MIDI SoundFont"); + subtitle: _("Choose a custom SoundFont for MIDI playback."); + + Box { + spacing: 6; + + Button btn_midi_soundfont_reset { + tooltip-text: _("Reset to Default"); + valign: center; + visible: false; + icon-name: "edit-undo-symbolic"; + + styles [ + "flat", + ] + } + + Button btn_midi_soundfont { + tooltip-text: _("Choose a SoundFont"); + valign: center; + icon-name: "document-open-symbolic"; + + styles [ + "flat", + ] + } + } + } } Adw.PreferencesGroup { diff --git a/bottles/frontend/windows/launchoptions.py b/bottles/frontend/launch_options_dialog.py similarity index 85% rename from bottles/frontend/windows/launchoptions.py rename to bottles/frontend/launch_options_dialog.py index 1b1550d0133..97c4dc9b25b 100644 --- a/bottles/frontend/windows/launchoptions.py +++ b/bottles/frontend/launch_options_dialog.py @@ -1,6 +1,6 @@ -# launchoptions.py +# launch_options_dialog.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -19,12 +19,13 @@ from bottles.backend.utils.manager import ManagerUtils from bottles.backend.logger import Logger +from bottles.frontend.filters import add_all_filters, add_soundfont_filters from gettext import gettext as _ logging = Logger() -@Gtk.Template(resource_path="/com/usebottles/bottles/dialog-launch-options.ui") +@Gtk.Template(resource_path="/com/usebottles/bottles/launch-options-dialog.ui") class LaunchOptionsDialog(Adw.Window): __gtype_name__ = "LaunchOptionsDialog" __gsignals__ = { @@ -40,9 +41,12 @@ class LaunchOptionsDialog(Adw.Window): btn_post_script_reset = Gtk.Template.Child() btn_cwd = Gtk.Template.Child() btn_cwd_reset = Gtk.Template.Child() + btn_midi_soundfont = Gtk.Template.Child() + btn_midi_soundfont_reset = Gtk.Template.Child() btn_reset_defaults = Gtk.Template.Child() action_pre_script = Gtk.Template.Child() action_post_script = Gtk.Template.Child() + action_midi_soundfont = Gtk.Template.Child() switch_dxvk = Gtk.Template.Child() switch_vkd3d = Gtk.Template.Child() switch_nvapi = Gtk.Template.Child() @@ -61,6 +65,7 @@ class LaunchOptionsDialog(Adw.Window): __default_pre_script_msg = _("Choose a script which should be executed before run.") __default_post_script_msg = _("Choose a script which should be executed after run.") __default_cwd_msg = _("Choose from where start the program.") + __default_midi_soundfont_msg = _("Choose a custom SoundFont for MIDI playback.") __msg_disabled = _("{0} is disabled globally for this bottle.") __msg_override = _("This setting overrides the bottle's global setting.") @@ -106,6 +111,8 @@ def __init__(self, parent, config, program, **kwargs): self.btn_pre_script_reset.connect("clicked", self.__reset_pre_script) self.btn_post_script.connect("clicked", self.__choose_post_script) self.btn_post_script_reset.connect("clicked", self.__reset_post_script) + self.btn_midi_soundfont.connect("clicked", self.__choose_midi_soundfont) + self.btn_midi_soundfont_reset.connect("clicked", self.__reset_midi_soundfont) self.btn_cwd.connect("clicked", self.__choose_cwd) self.btn_cwd_reset.connect("clicked", self.__reset_cwd) self.btn_reset_defaults.connect("clicked", self.__reset_defaults) @@ -185,6 +192,10 @@ def __init__(self, parent, config, program, **kwargs): self.action_cwd.set_subtitle(program["folder"]) self.btn_cwd_reset.set_visible(True) + if program.get("midi_soundfont") not in ["", None]: + self.action_midi_soundfont.set_subtitle(program["midi_soundfont"]) + self.btn_midi_soundfont_reset.set_visible(True) + self.__set_disabled_switches() def __check_override(self, widget, state, action, name): @@ -344,6 +355,47 @@ def __reset_cwd(self, *_args): self.action_cwd.set_subtitle(self.__default_cwd_msg) self.btn_cwd_reset.set_visible(False) + def __choose_midi_soundfont(self, *_args): + def set_path(dialog, result): + try: + file = dialog.open_finish(result) + if file is None: + self.action_midi_soundfont.set_subtitle( + self.__default_midi_soundfont_msg + ) + return + + file_path = file.get_path() + self.program["midi_soundfont"] = file_path + self.action_midi_soundfont.set_subtitle(file_path) + self.btn_midi_soundfont_reset.set_visible(True) + + except GLib.Error as error: + # also thrown when dialog has been cancelled + if error.code == 2: + # error 2 seems to be 'dismiss' or 'cancel' + if self.program["midi_soundfont"] in (None, ""): + self.action_midi_soundfont.set_subtitle( + self.__default_midi_soundfont_msg + ) + else: + # something else happened... + logging.warning("Error selecting SoundFont file: %s" % error) + + dialog = Gtk.FileDialog.new() + dialog.set_title(_("Select MIDI SoundFont")) + dialog.set_modal(True) + + add_soundfont_filters(dialog) + add_all_filters(dialog) + + dialog.open(parent=self.window, callback=set_path) + + def __reset_midi_soundfont(self, *_args): + self.program["midi_soundfont"] = None + self.action_midi_soundfont.set_subtitle(self.__default_midi_soundfont_msg) + self.btn_midi_soundfont_reset.set_visible(False) + def __reset_defaults(self, *_args): self.switch_dxvk.set_active(self.global_dxvk) self.switch_vkd3d.set_active(self.global_vkd3d) diff --git a/bottles/frontend/ui/library-entry.blp b/bottles/frontend/library-entry.blp similarity index 100% rename from bottles/frontend/ui/library-entry.blp rename to bottles/frontend/library-entry.blp diff --git a/bottles/frontend/ui/library.blp b/bottles/frontend/library-view.blp similarity index 100% rename from bottles/frontend/ui/library.blp rename to bottles/frontend/library-view.blp diff --git a/bottles/frontend/widgets/library.py b/bottles/frontend/library_entry.py similarity index 98% rename from bottles/frontend/widgets/library.py rename to bottles/frontend/library_entry.py index 88fe68eb240..9679d98b746 100644 --- a/bottles/frontend/widgets/library.py +++ b/bottles/frontend/library_entry.py @@ -1,6 +1,6 @@ -# library.py +# library_entry.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -26,7 +26,7 @@ from bottles.backend.utils.threading import RunAsync from bottles.backend.wine.executor import WineExecutor from bottles.backend.wine.winedbg import WineDbg -from bottles.frontend.utils.gtk import GtkUtils +from bottles.frontend.gtk import GtkUtils logging = Logger() diff --git a/bottles/frontend/views/library.py b/bottles/frontend/library_view.py similarity index 92% rename from bottles/frontend/views/library.py rename to bottles/frontend/library_view.py index bebea15a104..c3cba16347b 100644 --- a/bottles/frontend/views/library.py +++ b/bottles/frontend/library_view.py @@ -1,6 +1,6 @@ -# library.py +# library_view.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -21,11 +21,11 @@ from gi.repository import Gtk, Adw, GObject from bottles.backend.managers.library import LibraryManager -from bottles.frontend.utils.gtk import GtkUtils -from bottles.frontend.widgets.library import LibraryEntry +from bottles.frontend.gtk import GtkUtils +from bottles.frontend.library_entry import LibraryEntry -@Gtk.Template(resource_path="/com/usebottles/bottles/library.ui") +@Gtk.Template(resource_path="/com/usebottles/bottles/library-view.ui") class LibraryView(Adw.Bin): __gtype_name__ = "LibraryView" diff --git a/bottles/frontend/ui/loading.blp b/bottles/frontend/loading-view.blp similarity index 100% rename from bottles/frontend/ui/loading.blp rename to bottles/frontend/loading-view.blp diff --git a/bottles/frontend/views/loading.py b/bottles/frontend/loading_view.py similarity index 91% rename from bottles/frontend/views/loading.py rename to bottles/frontend/loading_view.py index 7d165eb3f49..330f26ac469 100644 --- a/bottles/frontend/views/loading.py +++ b/bottles/frontend/loading_view.py @@ -1,6 +1,6 @@ -# loading.py +# loading_view.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -21,11 +21,11 @@ from bottles.backend.models.result import Result from bottles.backend.state import SignalManager, Signals -from bottles.frontend.utils.gtk import GtkUtils +from bottles.frontend.gtk import GtkUtils from bottles.frontend.params import APP_ID -@Gtk.Template(resource_path="/com/usebottles/bottles/loading.ui") +@Gtk.Template(resource_path="/com/usebottles/bottles/loading-view.ui") class LoadingView(Adw.Bin): __gtype_name__ = "LoadingView" __fetched = 0 diff --git a/bottles/frontend/ui/local-resource-entry.blp b/bottles/frontend/local-resource-row.blp similarity index 83% rename from bottles/frontend/ui/local-resource-entry.blp rename to bottles/frontend/local-resource-row.blp index 9af5a3ba341..7ee81f68453 100644 --- a/bottles/frontend/ui/local-resource-entry.blp +++ b/bottles/frontend/local-resource-row.blp @@ -1,7 +1,7 @@ using Gtk 4.0; using Adw 1; -template $LocalResourceEntry: Adw.ActionRow { +template $LocalResourceRow: Adw.ActionRow { subtitle: _("This resource is missing."); Button btn_path { diff --git a/bottles/frontend/main.py b/bottles/frontend/main.py index f6a07b15247..35855da8726 100644 --- a/bottles/frontend/main.py +++ b/bottles/frontend/main.py @@ -39,8 +39,8 @@ # ruff: noqa: E402 from gi.repository import Gio, GLib, GObject, Adw # type: ignore -from bottles.frontend.windows.window import BottlesWindow -from bottles.frontend.views.preferences import PreferencesWindow +from bottles.frontend.window import BottlesWindow +from bottles.frontend.preferences import PreferencesWindow logging = Logger() @@ -222,7 +222,7 @@ def __process_uri(self, uri): return 0 try: - from bottles.frontend.windows.bottlepicker import BottlePickerDialog + from bottles.frontend.bottle_picker_dialog import BottlePickerDialog dialog = BottlePickerDialog(application=self, arg_exe=uri) dialog.present() diff --git a/bottles/frontend/ui/dialog-mangohud.blp b/bottles/frontend/mangohud-dialog.blp similarity index 100% rename from bottles/frontend/ui/dialog-mangohud.blp rename to bottles/frontend/mangohud-dialog.blp diff --git a/bottles/frontend/windows/mangohud.py b/bottles/frontend/mangohud_dialog.py similarity index 93% rename from bottles/frontend/windows/mangohud.py rename to bottles/frontend/mangohud_dialog.py index 77e47df06e5..7690c2ac539 100644 --- a/bottles/frontend/windows/mangohud.py +++ b/bottles/frontend/mangohud_dialog.py @@ -1,6 +1,6 @@ -# mangohud.py +# mangohud_dialog.py # -# Copyright 2022 Bottles Contributors +# Copyright 2025 The Bottles Contributors # # 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 @@ -21,7 +21,7 @@ logging = Logger() -@Gtk.Template(resource_path="/com/usebottles/bottles/dialog-mangohud.ui") +@Gtk.Template(resource_path="/com/usebottles/bottles/mangohud-dialog.ui") class MangoHudDialog(Adw.Window): __gtype_name__ = "MangoHudDialog" diff --git a/bottles/frontend/meson.build b/bottles/frontend/meson.build index 6ff7c011063..5bf84dd5d2c 100644 --- a/bottles/frontend/meson.build +++ b/bottles/frontend/meson.build @@ -1,12 +1,87 @@ pkgdatadir = join_paths(get_option('prefix'), get_option('datadir'), meson.project_name()) frontenddir = join_paths(pkgdatadir, 'bottles/frontend') -subdir('ui') -subdir('utils') -subdir('views') -subdir('widgets') -subdir('windows') -subdir('cli') +fs = import('fs') + +if not fs.is_file('/' + '.flatpak-info') + error('file does not exist') +endif + +gnome = import('gnome') +blueprints = custom_target('blueprints', + input: files( + 'component-entry-row.blp', + 'check-row.blp', + 'dependency-entry-row.blp', + 'bottle-details-page.blp', + 'details-dependencies-view.blp', + 'details-installers-view.blp', + 'details-task-manager-view.blp', + 'details-versioning-page.blp', + 'bottle-details-view.blp', + 'bottle-picker-dialog.blp', + 'crash-report-dialog.blp', + 'dependencies-check-dialog.blp', + 'dll-overrides-dialog.blp', + 'drives-dialog.blp', + 'duplicate-dialog.blp', + 'environment-variables-dialog.blp', + 'exclusion-patterns-dialog.blp', + 'gamescope-dialog.blp', + 'installer-dialog.blp', + 'journal-dialog.blp', + 'launch-options-dialog.blp', + 'proton-alert-dialog.blp', + 'rename-program-dialog.blp', + 'sandbox-dialog.blp', + 'upgrade-versioning-dialog.blp', + 'vkbasalt-dialog.blp', + 'display-dialog.blp', + 'vmtouch-dialog.blp', + 'fsr-dialog.blp', + 'mangohud-dialog.blp', + 'dll-override-entry.blp', + 'drive-entry.blp', + 'env-var-entry.blp', + 'exclusion-pattern-row.blp', + 'importer-row.blp', + 'importer-view.blp', + 'installer-row.blp', + 'library-entry.blp', + 'library-view.blp', + 'bottle-row.blp', + 'bottles-list-view.blp', + 'loading-view.blp', + 'local-resource-row.blp', + 'new-bottle-dialog.blp', + 'onboard-dialog.blp', + 'preferences.blp', + 'program-row.blp', + 'state-row.blp', + 'task-row.blp', + 'window.blp', + 'details-preferences-page.blp', + 'help-overlay.blp', + ), + output: '.', + command: [find_program('blueprint-compiler'), 'batch-compile', '@OUTPUT@', '@CURRENT_SOURCE_DIR@', '@INPUT@'],) + +gnome.compile_resources('bottles', + 'bottles.gresource.xml', + gresource_bundle: true, + dependencies: blueprints, + install: true, + install_dir: pkgdatadir, +) + +configure_file( + input: 'cli.py', + output: 'bottles-cli', + configuration: conf, + install: true, + install_dir: get_option('bindir'), + install_mode: ['rwxr-xr-x'] +) configure_file( input: 'bottles.py', @@ -23,16 +98,60 @@ params_file = configure_file( configuration: conf ) -fs = import('fs') - -if not fs.is_file('/' + '.flatpak-info') - error('file does not exist') -endif - bottles_sources = [ '__init__.py', 'main.py', 'operation.py', + 'gtk.py', + 'common.py', + 'filters.py', + 'sh.py', + 'new_bottle_dialog.py', + 'bottles_list_view.py', + 'library_view.py', + 'bottle_details_view.py', + 'preferences.py', + 'importer_view.py', + 'loading_view.py', + 'bottle_details_page.py', + 'details_installers_view.py', + 'details_dependencies_view.py', + 'details_preferences_page.py', + 'details_versioning_page.py', + 'details_task_manager_view.py', + 'dependency_entry_row.py', + 'executable.py', + 'importer_row.py', + 'installer_row.py', + 'program_row.py', + 'state_row.py', + 'component_entry_row.py', + 'library_entry.py', + 'crash_report_dialog.py', + 'dll_overrides_dialog.py', + 'duplicate_dialog.py', + 'environment_variables_dialog.py', + 'generic.py', + 'launch_options_dialog.py', + 'onboard_dialog.py', + 'rename_program_dialog.py', + 'drives_dialog.py', + 'gamescope_dialog.py', + 'vkbasalt_dialog.py', + 'fsr_dialog.py', + 'mangohud_dialog.py', + 'display_dialog.py', + 'generic_cli.py', + 'journal_dialog.py', + 'bottle_picker_dialog.py', + 'proton_alert_dialog.py', + 'sandbox_dialog.py', + 'installer_dialog.py', + 'dependencies_check_dialog.py', + 'exclusion_patterns_dialog.py', + 'upgrade_versioning_dialog.py', + 'vmtouch_dialog.py', + 'window.py', params_file, ] diff --git a/bottles/frontend/ui/new-bottle-dialog.blp b/bottles/frontend/new-bottle-dialog.blp similarity index 97% rename from bottles/frontend/ui/new-bottle-dialog.blp rename to bottles/frontend/new-bottle-dialog.blp index 8f958f33962..d13cc8e8949 100644 --- a/bottles/frontend/ui/new-bottle-dialog.blp +++ b/bottles/frontend/new-bottle-dialog.blp @@ -1,7 +1,7 @@ using Gtk 4.0; using Adw 1; -template $BottlesNewBottleDialog: Adw.Dialog { +template $NewBottleDialog: Adw.Dialog { content-width: 500; content-height: 500; title: _("Create New Bottle"); @@ -67,7 +67,7 @@ template $BottlesNewBottleDialog: Adw.Dialog { "boxed-list", ] - $BottlesCheckRow application { + $CheckRow application { title: _("_Application"); environment: "application"; subtitle: _("Optimized for productivity software"); @@ -76,7 +76,7 @@ template $BottlesNewBottleDialog: Adw.Dialog { active: true; } - $BottlesCheckRow { + $CheckRow { title: _("_Gaming"); environment: "gaming"; subtitle: _("Optimized for games, game engines, and 3D apps"); @@ -85,7 +85,7 @@ template $BottlesNewBottleDialog: Adw.Dialog { group: application; } - $BottlesCheckRow custom { + $CheckRow custom { title: _("C_ustom"); environment: "custom"; subtitle: _("A clean state intended for specific use cases"); diff --git a/bottles/frontend/views/new_bottle_dialog.py b/bottles/frontend/new_bottle_dialog.py similarity index 86% rename from bottles/frontend/views/new_bottle_dialog.py rename to bottles/frontend/new_bottle_dialog.py index a8b007d4a1f..705adfc4e1c 100644 --- a/bottles/frontend/views/new_bottle_dialog.py +++ b/bottles/frontend/new_bottle_dialog.py @@ -16,21 +16,22 @@ # from gettext import gettext as _ -from typing import Any, Optional +from typing import Any from gi.repository import Gtk, Adw, Pango, Gio, Xdp, GObject, GLib +from collections.abc import Sequence from bottles.backend.models.config import BottleConfig from bottles.backend.utils.threading import RunAsync from bottles.backend.models.result import Result -from bottles.frontend.utils.filters import add_yaml_filters, add_all_filters -from bottles.frontend.utils.gtk import GtkUtils +from bottles.frontend.filters import add_yaml_filters, add_all_filters +from bottles.frontend.gtk import GtkUtils @Gtk.Template(resource_path="/com/usebottles/bottles/check-row.ui") -class BottlesCheckRow(Adw.ActionRow): +class CheckRow(Adw.ActionRow): """An `AdwActionRow` with a designated `GtkCheckButton` as prefix.""" - __gtype_name__ = "BottlesCheckRow" + __gtype_name__ = "CheckRow" check_button = Gtk.Template.Child() @@ -39,7 +40,7 @@ class BottlesCheckRow(Adw.ActionRow): # Add row’s check button to the group group = GObject.Property( - # FIXME: Supposed to be a BottlesCheckRow widget type. + # FIXME: Supposed to be a CheckRow widget type. type=Adw.ActionRow, default=None, setter=lambda self, group: self.check_button.set_group(group.check_button), @@ -47,8 +48,8 @@ class BottlesCheckRow(Adw.ActionRow): @Gtk.Template(resource_path="/com/usebottles/bottles/new-bottle-dialog.ui") -class BottlesNewBottleDialog(Adw.Dialog): - __gtype_name__ = "BottlesNewBottleDialog" +class NewBottleDialog(Adw.Dialog): + __gtype_name__ = "NewBottleDialog" # region Widgets entry_name = Gtk.Template.Child() @@ -159,15 +160,40 @@ def set_path(dialog, result): self.label_choose_env.set_label(file.get_basename()) self.label_choose_env.set_ellipsize(Pango.EllipsizeMode.MIDDLE) - filters = Gio.ListStore.new(Gtk.FileFilter) + def create_filter( + name: str, + patterns: Sequence[str], + ) -> Gtk.FileFilter: + """Creates a filter with the specified name and patterns + + The use of patterns is particularly notable here as the other + strategy for defining filters via `filter.add_mime_type` is + strangely inconsistent across different distribtutions, often + leaving out filters (sometimes resulting in no filters). + + Until the reasoning for this is determined, it is safest to + manually specify the patterns and name. This will ideally be + replaced with the `add_mime_type` function once the root cause is + discovered. + """ + filter = Gtk.FileFilter() + filter.set_name(name) + for pattern in patterns: + filter.add_pattern(pattern) + + return filter - yaml_filter = Gtk.FileFilter() - yaml_filter.set_name("YAML") - yaml_filter.add_mime_type("application/yaml") + filters = Gio.ListStore.new(Gtk.FileFilter) - all_filter = Gtk.FileFilter() - all_filter.set_name(_("All Files")) - all_filter.add_pattern("*") + # This filter is intended to be "application/yaml" mime type + yaml_filter = create_filter( + name="YAML", + patterns=["*.yaml", "*.yml"], + ) + all_filter = create_filter( + name=_("All Files"), + patterns=["*"], + ) filters.append(yaml_filter) filters.append(all_filter) @@ -231,7 +257,7 @@ def update_output(self, text: str) -> None: self.label_output.set_text(text) @GtkUtils.run_in_main_loop - def finish(self, result: Optional[Result], error=None) -> None: + def finish(self, result: Result | None, error=None) -> None: """Updates widgets based on whether it succeeded or failed.""" def send_notification(notification: Gio.Notification) -> None: diff --git a/bottles/frontend/ui/onboard.blp b/bottles/frontend/onboard-dialog.blp similarity index 100% rename from bottles/frontend/ui/onboard.blp rename to bottles/frontend/onboard-dialog.blp diff --git a/bottles/frontend/windows/onboard.py b/bottles/frontend/onboard_dialog.py similarity index 96% rename from bottles/frontend/windows/onboard.py rename to bottles/frontend/onboard_dialog.py index 7a56ef71dc7..b5383f0e4b5 100644 --- a/bottles/frontend/windows/onboard.py +++ b/bottles/frontend/onboard_dialog.py @@ -1,6 +1,6 @@ -# onboard.py +# onboard_dialog.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -21,10 +21,10 @@ from bottles.backend.models.result import Result from bottles.backend.utils.threading import RunAsync -from bottles.frontend.utils.gtk import GtkUtils +from bottles.frontend.gtk import GtkUtils -@Gtk.Template(resource_path="/com/usebottles/bottles/onboard.ui") +@Gtk.Template(resource_path="/com/usebottles/bottles/onboard-dialog.ui") class OnboardDialog(Adw.Window): __gtype_name__ = "OnboardDialog" __installing = False diff --git a/bottles/frontend/operation.py b/bottles/frontend/operation.py index e681277f06d..086519a5e8b 100644 --- a/bottles/frontend/operation.py +++ b/bottles/frontend/operation.py @@ -14,7 +14,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . # -from typing import Dict from uuid import UUID from gi.repository import Gtk, Adw @@ -23,9 +22,9 @@ from bottles.backend.state import TaskManager -@Gtk.Template(resource_path="/com/usebottles/bottles/task-entry.ui") -class TaskEntry(Adw.ActionRow): - __gtype_name__ = "TaskEntry" +@Gtk.Template(resource_path="/com/usebottles/bottles/task-row.ui") +class TaskRow(Adw.ActionRow): + __gtype_name__ = "TaskRow" # region Widgets btn_cancel = Gtk.Template.Child() @@ -52,14 +51,14 @@ def update(self, subtitle: str): class TaskSyncer: """Keep task list updated with backend TaskManager""" - _TASK_WIDGETS: Dict[UUID, TaskEntry] = {} + _TASK_WIDGETS: dict[UUID, TaskRow] = {} def __init__(self, window): self.window = window - def _new_widget(self, title, cancellable=True) -> TaskEntry: - """create TaskEntry widget & add to task list""" - task_entry = TaskEntry(self.window, title, cancellable) + def _new_widget(self, title, cancellable=True) -> TaskRow: + """create TaskRow widget & add to task list""" + task_entry = TaskRow(self.window, title, cancellable) self.window.page_details.list_tasks.append(task_entry) return task_entry diff --git a/bottles/frontend/ui/preferences.blp b/bottles/frontend/preferences.blp similarity index 100% rename from bottles/frontend/ui/preferences.blp rename to bottles/frontend/preferences.blp diff --git a/bottles/frontend/views/preferences.py b/bottles/frontend/preferences.py similarity index 98% rename from bottles/frontend/views/preferences.py rename to bottles/frontend/preferences.py index 7ffb609ada9..3fe92492773 100644 --- a/bottles/frontend/views/preferences.py +++ b/bottles/frontend/preferences.py @@ -26,7 +26,10 @@ from bottles.backend.state import EventManager, Events from bottles.backend.utils.threading import RunAsync from bottles.backend.utils.generic import sort_by_version -from bottles.frontend.widgets.component import ComponentEntry, ComponentExpander +from bottles.frontend.component_entry_row import ( + ComponentEntryRow, + ComponentExpander, +) @Gtk.Template(resource_path="/com/usebottles/bottles/preferences.ui") @@ -305,7 +308,7 @@ def __populate_component_list( for component in supported_component_items: if not self.__display_unstable_candidate(component): continue - _entry = ComponentEntry(self.window, component, component_type) + _entry = ComponentEntryRow(self.window, component, component_type) list_component.add(_entry) self.__registry.append(_entry) @@ -355,7 +358,7 @@ def __populate_runners_helper( if not self.__display_unstable_candidate(supported_runner): continue - _entry = ComponentEntry(self.window, supported_runner, runner_type) + _entry = ComponentEntryRow(self.window, supported_runner, runner_type) for identifiable_runner in identifiable_runners_struct: if _runner_name.startswith(identifiable_runner["prefix"]): while ( @@ -369,7 +372,7 @@ def __populate_runners_helper( == identifiable_runner["offline_runners"][0][0] ): offline_runner = identifiable_runner["offline_runners"].pop(0) - _offline_entry = ComponentEntry( + _offline_entry = ComponentEntryRow( self.window, offline_runner, runner_type ) identifiable_runner["expander"].add_row(_offline_entry) @@ -382,7 +385,7 @@ def __populate_runners_helper( for identifiable_runner in identifiable_runners_struct: while identifiable_runner["offline_runners"]: offline_runner = identifiable_runner["offline_runners"].pop(0) - _offline_entry = ComponentEntry( + _offline_entry = ComponentEntryRow( self.window, offline_runner, runner_type ) identifiable_runner["expander"].add_row(_offline_entry) diff --git a/bottles/frontend/ui/program-entry.blp b/bottles/frontend/program-row.blp similarity index 98% rename from bottles/frontend/ui/program-entry.blp rename to bottles/frontend/program-row.blp index 9bb02f4ec2c..7c51a6e95bf 100644 --- a/bottles/frontend/ui/program-entry.blp +++ b/bottles/frontend/program-row.blp @@ -77,7 +77,7 @@ Popover pop_actions { } } -template $ProgramEntry: Adw.ActionRow { +template $ProgramRow: Adw.ActionRow { title: _("Program name"); Box { diff --git a/bottles/frontend/widgets/program.py b/bottles/frontend/program_row.py similarity index 94% rename from bottles/frontend/widgets/program.py rename to bottles/frontend/program_row.py index 2b0e43b382a..d73f272608c 100644 --- a/bottles/frontend/widgets/program.py +++ b/bottles/frontend/program_row.py @@ -1,6 +1,6 @@ -# program.py +# program_row.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -28,15 +28,15 @@ from bottles.backend.wine.executor import WineExecutor from bottles.backend.wine.uninstaller import Uninstaller from bottles.backend.wine.winedbg import WineDbg -from bottles.frontend.utils.gtk import GtkUtils -from bottles.frontend.windows.launchoptions import LaunchOptionsDialog -from bottles.frontend.windows.rename import RenameDialog +from bottles.frontend.gtk import GtkUtils +from bottles.frontend.launch_options_dialog import LaunchOptionsDialog +from bottles.frontend.rename_program_dialog import RenameProgramDialog # noinspection PyUnusedLocal -@Gtk.Template(resource_path="/com/usebottles/bottles/program-entry.ui") -class ProgramEntry(Adw.ActionRow): - __gtype_name__ = "ProgramEntry" +@Gtk.Template(resource_path="/com/usebottles/bottles/program-row.ui") +class ProgramRow(Adw.ActionRow): + __gtype_name__ = "ProgramRow" # region Widgets btn_menu = Gtk.Template.Child() @@ -275,7 +275,9 @@ def ui_update(_result, _error): RunAsync(async_work, callback=ui_update) - dialog = RenameDialog(self.window, on_save=func, name=self.program["name"]) + dialog = RenameProgramDialog( + self.window, on_save=func, name=self.program["name"] + ) dialog.present() def browse_program_folder(self, _widget): @@ -337,6 +339,12 @@ def update(result, _error=False): self.window.show_toast( _('"{0}" added to your Steam library').format(self.program["name"]) ) + else: + self.window.show_toast( + _('"{0}" failed adding to your Steam library').format( + self.program["name"] + ) + ) steam_manager = SteamManager(self.config) RunAsync( diff --git a/bottles/frontend/ui/dialog-proton-alert.blp b/bottles/frontend/proton-alert-dialog.blp similarity index 100% rename from bottles/frontend/ui/dialog-proton-alert.blp rename to bottles/frontend/proton-alert-dialog.blp diff --git a/bottles/frontend/windows/protonalert.py b/bottles/frontend/proton_alert_dialog.py similarity index 91% rename from bottles/frontend/windows/protonalert.py rename to bottles/frontend/proton_alert_dialog.py index c13a09a9e20..f4a860c2bdd 100644 --- a/bottles/frontend/windows/protonalert.py +++ b/bottles/frontend/proton_alert_dialog.py @@ -1,6 +1,6 @@ -# protonalert.py +# proton_alert_dialog.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -18,7 +18,7 @@ from gi.repository import Gtk, Adw -@Gtk.Template(resource_path="/com/usebottles/bottles/dialog-proton-alert.ui") +@Gtk.Template(resource_path="/com/usebottles/bottles/proton-alert-dialog.ui") class ProtonAlertDialog(Adw.Window): __gtype_name__ = "ProtonAlertDialog" __resources = {} diff --git a/bottles/frontend/ui/dialog-rename.blp b/bottles/frontend/rename-program-dialog.blp similarity index 93% rename from bottles/frontend/ui/dialog-rename.blp rename to bottles/frontend/rename-program-dialog.blp index 4c0b5cd79a5..bcf1c1e97b3 100644 --- a/bottles/frontend/ui/dialog-rename.blp +++ b/bottles/frontend/rename-program-dialog.blp @@ -1,7 +1,7 @@ using Gtk 4.0; using Adw 1; -template $RenameDialog: Adw.Window { +template $RenameProgramDialog: Adw.Window { modal: true; deletable: false; default-width: 550; diff --git a/bottles/frontend/windows/rename.py b/bottles/frontend/rename_program_dialog.py similarity index 88% rename from bottles/frontend/windows/rename.py rename to bottles/frontend/rename_program_dialog.py index e58535268e4..088edf18a6c 100644 --- a/bottles/frontend/windows/rename.py +++ b/bottles/frontend/rename_program_dialog.py @@ -1,6 +1,6 @@ -# rename.py +# rename_program_dialog.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -18,9 +18,9 @@ from gi.repository import Gtk, Adw -@Gtk.Template(resource_path="/com/usebottles/bottles/dialog-rename.ui") -class RenameDialog(Adw.Window): - __gtype_name__ = "RenameDialog" +@Gtk.Template(resource_path="/com/usebottles/bottles/rename-program-dialog.ui") +class RenameProgramDialog(Adw.Window): + __gtype_name__ = "RenameProgramDialog" # region Widgets entry_name = Gtk.Template.Child() diff --git a/bottles/frontend/ui/dialog-sandbox.blp b/bottles/frontend/sandbox-dialog.blp similarity index 100% rename from bottles/frontend/ui/dialog-sandbox.blp rename to bottles/frontend/sandbox-dialog.blp diff --git a/bottles/frontend/windows/sandbox.py b/bottles/frontend/sandbox_dialog.py similarity index 92% rename from bottles/frontend/windows/sandbox.py rename to bottles/frontend/sandbox_dialog.py index 84c7d98f06e..9f0bd1a1a07 100644 --- a/bottles/frontend/windows/sandbox.py +++ b/bottles/frontend/sandbox_dialog.py @@ -1,6 +1,6 @@ -# sandbox.py +# sandbox_dialog.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -18,7 +18,7 @@ from gi.repository import Gtk, Adw -@Gtk.Template(resource_path="/com/usebottles/bottles/dialog-sandbox.ui") +@Gtk.Template(resource_path="/com/usebottles/bottles/sandbox-dialog.ui") class SandboxDialog(Adw.Window): __gtype_name__ = "SandboxDialog" diff --git a/bottles/frontend/utils/sh.py b/bottles/frontend/sh.py similarity index 100% rename from bottles/frontend/utils/sh.py rename to bottles/frontend/sh.py diff --git a/bottles/frontend/ui/state-entry.blp b/bottles/frontend/state-row.blp similarity index 91% rename from bottles/frontend/ui/state-entry.blp rename to bottles/frontend/state-row.blp index ef3efee0846..8358e50282e 100644 --- a/bottles/frontend/ui/state-entry.blp +++ b/bottles/frontend/state-row.blp @@ -1,7 +1,7 @@ using Gtk 4.0; using Adw 1; -template $StateEntry: Adw.ActionRow { +template $StateRow: Adw.ActionRow { activatable-widget: btn_restore; /* Translators: id as identification */ diff --git a/bottles/frontend/widgets/state.py b/bottles/frontend/state_row.py similarity index 94% rename from bottles/frontend/widgets/state.py rename to bottles/frontend/state_row.py index ee016c3960a..35e1f654a33 100644 --- a/bottles/frontend/widgets/state.py +++ b/bottles/frontend/state_row.py @@ -1,6 +1,6 @@ -# state.py +# state_row.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -21,12 +21,12 @@ from gi.repository import Gtk, Adw from bottles.backend.utils.threading import RunAsync -from bottles.frontend.utils.gtk import GtkUtils +from bottles.frontend.gtk import GtkUtils -@Gtk.Template(resource_path="/com/usebottles/bottles/state-entry.ui") -class StateEntry(Adw.ActionRow): - __gtype_name__ = "StateEntry" +@Gtk.Template(resource_path="/com/usebottles/bottles/state-row.ui") +class StateRow(Adw.ActionRow): + __gtype_name__ = "StateRow" # region Widgets btn_restore = Gtk.Template.Child() diff --git a/bottles/frontend/ui/style-dark.css b/bottles/frontend/style-dark.css similarity index 100% rename from bottles/frontend/ui/style-dark.css rename to bottles/frontend/style-dark.css diff --git a/bottles/frontend/ui/style.css b/bottles/frontend/style.css similarity index 100% rename from bottles/frontend/ui/style.css rename to bottles/frontend/style.css diff --git a/bottles/frontend/ui/task-entry.blp b/bottles/frontend/task-row.blp similarity index 93% rename from bottles/frontend/ui/task-entry.blp rename to bottles/frontend/task-row.blp index 1fe4d4fe524..c4da07a148e 100644 --- a/bottles/frontend/ui/task-entry.blp +++ b/bottles/frontend/task-row.blp @@ -1,7 +1,7 @@ using Gtk 4.0; using Adw 1; -template $TaskEntry: Adw.ActionRow { +template $TaskRow: Adw.ActionRow { Box { spacing: 10; diff --git a/bottles/frontend/ui/bottles.gresource.xml b/bottles/frontend/ui/bottles.gresource.xml deleted file mode 100644 index 2e9eb7c9d32..00000000000 --- a/bottles/frontend/ui/bottles.gresource.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - style.css - style-dark.css - help-overlay.ui - window.ui - new-bottle-dialog.ui - list.ui - loading.ui - bottle-row.ui - check-row.ui - task-entry.ui - dependency-entry.ui - program-entry.ui - importer-entry.ui - state-entry.ui - installer-entry.ui - dll-override-entry.ui - env-var-entry.ui - component-entry.ui - drive-entry.ui - library-entry.ui - local-resource-entry.ui - exclusion-pattern-entry.ui - details.ui - details-bottle.ui - details-dependencies.ui - details-installers.ui - details-preferences.ui - details-versioning.ui - details-taskmanager.ui - preferences.ui - importer.ui - library.ui - dialog-launch-options.ui - dialog-dll-overrides.ui - dialog-env-vars.ui - dialog-crash-report.ui - dialog-duplicate.ui - dialog-rename.ui - dialog-gamescope.ui - dialog-vkbasalt.ui - dialog-fsr.ui - dialog-mangohud.ui - dialog-display.ui - dialog-drives.ui - dialog-journal.ui - dialog-sandbox.ui - dialog-installer.ui - dialog-bottle-picker.ui - dialog-proton-alert.ui - dialog-deps-check.ui - dialog-exclusion-patterns.ui - dialog-upgrade-versioning.ui - dialog-vmtouch.ui - onboard.ui - - diff --git a/bottles/frontend/ui/dialog-run-args.blp b/bottles/frontend/ui/dialog-run-args.blp deleted file mode 100644 index c718581a827..00000000000 --- a/bottles/frontend/ui/dialog-run-args.blp +++ /dev/null @@ -1,50 +0,0 @@ -using Gtk 4.0; -using Adw 1; - -template $RunArgsDialog: Window { - modal: true; - default-width: 550; - destroy-with-parent: true; - - [titlebar] - HeaderBar { - show-title-buttons: false; - - title-widget: Adw.WindowTitle { - title: _("Run With Arguments"); - }; - - [start] - Button btn_cancel { - label: _("Cancel"); - - ShortcutController { - scope: managed; - - Shortcut { - trigger: "Escape"; - action: "activate"; - } - } - } - - [end] - Button btn_run { - label: _("Run"); - - styles [ - "suggested-action", - ] - } - } - - Adw.PreferencesPage { - Adw.PreferencesGroup { - description: _("Write below the arguments to be passed to the executable."); - - Adw.EntryRow entry_args { - title: _("e.g.: -opengl -SkipBuildPatchPrereq"); - } - } - } -} diff --git a/bottles/frontend/ui/meson.build b/bottles/frontend/ui/meson.build deleted file mode 100644 index 6670427d10b..00000000000 --- a/bottles/frontend/ui/meson.build +++ /dev/null @@ -1,67 +0,0 @@ -pkgdatadir = join_paths(get_option('prefix'), get_option('datadir'), meson.project_name()) -gnome = import('gnome') -blueprints = custom_target('blueprints', - input: files( - 'component-entry.blp', - 'check-row.blp', - 'dependency-entry.blp', - 'details-bottle.blp', - 'details-dependencies.blp', - 'details-installers.blp', - 'details-taskmanager.blp', - 'details-versioning.blp', - 'details.blp', - 'dialog-bottle-picker.blp', - 'dialog-crash-report.blp', - 'dialog-deps-check.blp', - 'dialog-dll-overrides.blp', - 'dialog-drives.blp', - 'dialog-duplicate.blp', - 'dialog-env-vars.blp', - 'dialog-exclusion-patterns.blp', - 'dialog-gamescope.blp', - 'dialog-installer.blp', - 'dialog-journal.blp', - 'dialog-launch-options.blp', - 'dialog-proton-alert.blp', - 'dialog-rename.blp', - 'dialog-sandbox.blp', - 'dialog-upgrade-versioning.blp', - 'dialog-vkbasalt.blp', - 'dialog-display.blp', - 'dialog-vmtouch.blp', - 'dialog-fsr.blp', - 'dialog-mangohud.blp', - 'dll-override-entry.blp', - 'drive-entry.blp', - 'env-var-entry.blp', - 'exclusion-pattern-entry.blp', - 'importer-entry.blp', - 'importer.blp', - 'installer-entry.blp', - 'library-entry.blp', - 'library.blp', - 'bottle-row.blp', - 'list.blp', - 'loading.blp', - 'local-resource-entry.blp', - 'new-bottle-dialog.blp', - 'onboard.blp', - 'preferences.blp', - 'program-entry.blp', - 'state-entry.blp', - 'task-entry.blp', - 'window.blp', - 'details-preferences.blp', - 'help-overlay.blp', - ), - output: '.', - command: [find_program('blueprint-compiler'), 'batch-compile', '@OUTPUT@', '@CURRENT_SOURCE_DIR@', '@INPUT@'],) - -gnome.compile_resources('bottles', - 'bottles.gresource.xml', - gresource_bundle: true, - dependencies: blueprints, - install: true, - install_dir: pkgdatadir, -) diff --git a/bottles/frontend/ui/dialog-upgrade-versioning.blp b/bottles/frontend/upgrade-versioning-dialog.blp similarity index 100% rename from bottles/frontend/ui/dialog-upgrade-versioning.blp rename to bottles/frontend/upgrade-versioning-dialog.blp diff --git a/bottles/frontend/windows/upgradeversioning.py b/bottles/frontend/upgrade_versioning_dialog.py similarity index 94% rename from bottles/frontend/windows/upgradeversioning.py rename to bottles/frontend/upgrade_versioning_dialog.py index f9ebe665a0e..cb5b2d8d34c 100644 --- a/bottles/frontend/windows/upgradeversioning.py +++ b/bottles/frontend/upgrade_versioning_dialog.py @@ -1,6 +1,6 @@ -# duplicate.py +# upgrade_versioning_dialog.py # -# Copyright 2022 brombinmirko +# Copyright 2025 The Bottles Contributors # # 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 @@ -21,7 +21,7 @@ from bottles.backend.utils.threading import RunAsync -@Gtk.Template(resource_path="/com/usebottles/bottles/dialog-upgrade-versioning.ui") +@Gtk.Template(resource_path="/com/usebottles/bottles/upgrade-versioning-dialog.ui") class UpgradeVersioningDialog(Adw.Window): __gtype_name__ = "UpgradeVersioningDialog" diff --git a/bottles/frontend/utils/__init__.py b/bottles/frontend/utils/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/bottles/frontend/utils/meson.build b/bottles/frontend/utils/meson.build deleted file mode 100644 index 5b280588e02..00000000000 --- a/bottles/frontend/utils/meson.build +++ /dev/null @@ -1,12 +0,0 @@ -pkgdatadir = join_paths(get_option('prefix'), get_option('datadir'), meson.project_name()) -utilsdir = join_paths(pkgdatadir, 'bottles/frontend/utils') - -bottles_sources = [ - '__init__.py', - 'gtk.py', - 'common.py', - 'filters.py', - 'sh.py', -] - -install_data(bottles_sources, install_dir: utilsdir) diff --git a/bottles/frontend/views/__init__.py b/bottles/frontend/views/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/bottles/frontend/views/meson.build b/bottles/frontend/views/meson.build deleted file mode 100644 index bfadaffe0fa..00000000000 --- a/bottles/frontend/views/meson.build +++ /dev/null @@ -1,22 +0,0 @@ -pkgdatadir = join_paths(get_option('prefix'), get_option('datadir'), meson.project_name()) -viewsdir = join_paths(pkgdatadir, 'bottles/frontend/views') - -bottles_sources = [ - '__init__.py', - 'new_bottle_dialog.py', - 'list.py', - 'library.py', - 'details.py', - 'preferences.py', - 'importer.py', - 'loading.py', - - 'bottle_details.py', - 'bottle_installers.py', - 'bottle_dependencies.py', - 'bottle_preferences.py', - 'bottle_versioning.py', - 'bottle_taskmanager.py' -] - -install_data(bottles_sources, install_dir: viewsdir) diff --git a/bottles/frontend/ui/dialog-vkbasalt.blp b/bottles/frontend/vkbasalt-dialog.blp similarity index 100% rename from bottles/frontend/ui/dialog-vkbasalt.blp rename to bottles/frontend/vkbasalt-dialog.blp diff --git a/bottles/frontend/windows/vkbasalt.py b/bottles/frontend/vkbasalt_dialog.py similarity index 98% rename from bottles/frontend/windows/vkbasalt.py rename to bottles/frontend/vkbasalt_dialog.py index 8a3950f8c90..f3f77c66454 100644 --- a/bottles/frontend/windows/vkbasalt.py +++ b/bottles/frontend/vkbasalt_dialog.py @@ -1,6 +1,6 @@ -# vkbasalt.py +# vkbasalt_dialog.py # -# Copyright 2022 Hari Rana / TheEvilSkeleton +# Copyright 2025 The Bottles Contributors # # 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 @@ -55,7 +55,7 @@ class VkBasaltSettings: exec = False -@Gtk.Template(resource_path="/com/usebottles/bottles/dialog-vkbasalt.ui") +@Gtk.Template(resource_path="/com/usebottles/bottles/vkbasalt-dialog.ui") class VkBasaltDialog(Adw.Window): __gtype_name__ = "VkBasaltDialog" diff --git a/bottles/frontend/ui/dialog-vmtouch.blp b/bottles/frontend/vmtouch-dialog.blp similarity index 100% rename from bottles/frontend/ui/dialog-vmtouch.blp rename to bottles/frontend/vmtouch-dialog.blp diff --git a/bottles/frontend/windows/vmtouch.py b/bottles/frontend/vmtouch_dialog.py similarity index 93% rename from bottles/frontend/windows/vmtouch.py rename to bottles/frontend/vmtouch_dialog.py index b613dc23413..1560ee89e3e 100644 --- a/bottles/frontend/windows/vmtouch.py +++ b/bottles/frontend/vmtouch_dialog.py @@ -1,6 +1,6 @@ -# vmtouch.py +# vmtouch_dialog.py # -# Copyright 2022 axtlos +# Copyright 2025 The Bottles Contributors # # 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 @@ -20,7 +20,7 @@ from gi.repository import Gtk, GLib, Adw -@Gtk.Template(resource_path="/com/usebottles/bottles/dialog-vmtouch.ui") +@Gtk.Template(resource_path="/com/usebottles/bottles/vmtouch-dialog.ui") class VmtouchDialog(Adw.Window): __gtype_name__ = "VmtouchDialog" diff --git a/bottles/frontend/widgets/__init__.py b/bottles/frontend/widgets/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/bottles/frontend/widgets/meson.build b/bottles/frontend/widgets/meson.build deleted file mode 100644 index 184f6e13f65..00000000000 --- a/bottles/frontend/widgets/meson.build +++ /dev/null @@ -1,16 +0,0 @@ -pkgdatadir = join_paths(get_option('prefix'), get_option('datadir'), meson.project_name()) -widgetsdir = join_paths(pkgdatadir, 'bottles/frontend/widgets') - -bottles_sources = [ - '__init__.py', - 'dependency.py', - 'executable.py', - 'importer.py', - 'installer.py', - 'program.py', - 'state.py', - 'component.py', - 'library.py', -] - -install_data(bottles_sources, install_dir: widgetsdir) diff --git a/bottles/frontend/ui/window.blp b/bottles/frontend/window.blp similarity index 100% rename from bottles/frontend/ui/window.blp rename to bottles/frontend/window.blp diff --git a/bottles/frontend/windows/window.py b/bottles/frontend/window.py similarity index 93% rename from bottles/frontend/windows/window.py rename to bottles/frontend/window.py index bddd3f34253..c627e8de9b2 100644 --- a/bottles/frontend/windows/window.py +++ b/bottles/frontend/window.py @@ -19,7 +19,6 @@ import os import webbrowser from gettext import gettext as _ -from typing import Optional from gi.repository import Gtk, GLib, Gio, Adw, GObject, Gdk, Xdp @@ -35,17 +34,17 @@ from bottles.backend.utils.threading import RunAsync from bottles.frontend.operation import TaskSyncer from bottles.frontend.params import APP_ID, BASE_ID, PROFILE -from bottles.frontend.utils.gtk import GtkUtils -from bottles.frontend.views.details import DetailsView -from bottles.frontend.views.importer import ImporterView -from bottles.frontend.views.library import LibraryView -from bottles.frontend.views.list import BottleView -from bottles.frontend.views.loading import LoadingView -from bottles.frontend.views.new_bottle_dialog import BottlesNewBottleDialog -from bottles.frontend.views.preferences import PreferencesWindow -from bottles.frontend.windows.crash import CrashReportDialog -from bottles.frontend.windows.depscheck import DependenciesCheckDialog -from bottles.frontend.windows.onboard import OnboardDialog +from bottles.frontend.gtk import GtkUtils +from bottles.frontend.bottle_details_view import BottleDetailsView +from bottles.frontend.importer_view import ImporterView +from bottles.frontend.library_view import LibraryView +from bottles.frontend.bottles_list_view import BottlesListView +from bottles.frontend.loading_view import LoadingView +from bottles.frontend.new_bottle_dialog import NewBottleDialog +from bottles.frontend.preferences import PreferencesWindow +from bottles.frontend.crash_report_dialog import CrashReportDialog +from bottles.frontend.dependencies_check_dialog import DependenciesCheckDialog +from bottles.frontend.onboard_dialog import OnboardDialog logging = Logger() @@ -220,8 +219,8 @@ def set_manager(result: Manager, error=None): self.show_onboard_view() # Pages - self.page_details = DetailsView(self) - self.page_list = BottleView(self, arg_bottle=self.arg_bottle) + self.page_details = BottleDetailsView(self) + self.page_list = BottlesListView(self, arg_bottle=self.arg_bottle) self.page_importer = ImporterView(self) self.page_library = LibraryView(self) @@ -315,7 +314,7 @@ def send_notification(self, title, text, image="", ignore_user=False): def go_back(self, *_args): self.main_leaf.navigate(direction=Adw.NavigationDirection.BACK) - def show_details_view(self, widget=False, config: Optional[BottleConfig] = None): + def show_details_view(self, widget=False, config: BottleConfig | None = None): self.main_leaf.set_visible_child(self.page_details) self.page_details.set_config(config or BottleConfig()) @@ -328,7 +327,7 @@ def show_onboard_view(self, widget=False): onboard_window.present() def show_add_view(self, widget=False): - new_bottle_dialog = BottlesNewBottleDialog() + new_bottle_dialog = NewBottleDialog() new_bottle_dialog.present(self) def show_list_view(self, widget=False): @@ -352,7 +351,7 @@ def check_crash_log(self): log_path = f"{xdg_data_home}/bottles/crash.log" with contextlib.suppress(FileNotFoundError): - with open(log_path, "r") as log_file: + with open(log_path) as log_file: crash_log = log_file.readlines() os.remove(log_path) diff --git a/bottles/frontend/windows/__init__.py b/bottles/frontend/windows/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/bottles/frontend/windows/meson.build b/bottles/frontend/windows/meson.build deleted file mode 100644 index ab7578824ed..00000000000 --- a/bottles/frontend/windows/meson.build +++ /dev/null @@ -1,33 +0,0 @@ -pkgdatadir = join_paths(get_option('prefix'), get_option('datadir'), meson.project_name()) -dialogsdir = join_paths(pkgdatadir, 'bottles/frontend/windows') - -bottles_sources = [ - '__init__.py', - 'crash.py', - 'dlloverrides.py', - 'duplicate.py', - 'envvars.py', - 'generic.py', - 'launchoptions.py', - 'onboard.py', - 'rename.py', - 'drives.py', - 'gamescope.py', - 'vkbasalt.py', - 'fsr.py', - 'mangohud.py', - 'display.py', - 'generic_cli.py', - 'journal.py', - 'bottlepicker.py', - 'protonalert.py', - 'sandbox.py', - 'installer.py', - 'depscheck.py', - 'exclusionpatterns.py', - 'upgradeversioning.py', - 'vmtouch.py', - 'window.py', -] - -install_data(bottles_sources, install_dir: dialogsdir) diff --git a/bottles/tests/backend/utils/test_generic.py b/bottles/tests/backend/utils/test_generic.py index 1fe1e0765d9..aebd901816b 100644 --- a/bottles/tests/backend/utils/test_generic.py +++ b/bottles/tests/backend/utils/test_generic.py @@ -1,5 +1,3 @@ -from typing import Optional - import pytest from bottles.backend.utils.generic import detect_encoding @@ -21,7 +19,7 @@ ("", None, "utf-8"), ], ) -def test_detect_encoding(text: str, hint: Optional[str], codec: Optional[str]): +def test_detect_encoding(text: str, hint: str | None, codec: str | None): text_bytes = text.encode(codec) guess = detect_encoding(text_bytes, hint) assert guess.lower() == codec.lower() diff --git a/build-aux/com.usebottles.bottles.Devel.json b/build-aux/com.usebottles.bottles.Devel.json index ce153bf51b7..b927d0595a0 100644 --- a/build-aux/com.usebottles.bottles.Devel.json +++ b/build-aux/com.usebottles.bottles.Devel.json @@ -114,15 +114,29 @@ { "type": "git", "url": "https://github.com/KhronosGroup/Vulkan-Tools.git", - "tag": "sdk-1.3.261.1", - "commit": "a7da7027ca9fd0901639f02619c226da9c6036f1", + "tag": "vulkan-sdk-1.4.309.0", + "commit": "bf9fcd2d62ea9eac52e5351c02e35cb61ec5e873", "x-checker-data": { "type": "git", - "tag-pattern": "^sdk-([\\d.]+)$" + "tag-pattern": "^vulkan-sdk-([\\d.]+)$" } } ], "modules": [ + { + "name": "volk", + "buildsystem": "cmake-ninja", + "config-opts": [ + "-DVOLK_INSTALL=ON" + ], + "sources": [ + { + "type": "archive", + "url": "https://github.com/zeux/volk/archive/refs/tags/1.4.304.tar.gz", + "sha256": "ab3d4a8ccaeb32652259cdd008399504a41792675b0421d90b67729ee274746f" + } + ] + }, { "name": "vulkan-headers", "buildsystem": "cmake-ninja", @@ -130,11 +144,11 @@ { "type": "git", "url": "https://github.com/KhronosGroup/Vulkan-Headers.git", - "tag": "sdk-1.3.261.1", - "commit": "85c2334e92e215cce34e8e0ed8b2dce4700f4a50", + "tag": "vulkan-sdk-1.4.309.0", + "commit": "952f776f6573aafbb62ea717d871cd1d6816c387", "x-checker-data": { "type": "git", - "tag-pattern": "^sdk-([\\d.]+)$" + "tag-pattern": "^vulkan-sdk-([\\d.]+)$" } } ] @@ -170,8 +184,8 @@ { "type": "git", "url": "https://github.com/ImageMagick/ImageMagick", - "tag": "7.1.1-38", - "commit": "b0ab92265bab638e6ecd2f18b45977c38771c671", + "tag": "7.1.1-45", + "commit": "37b3453c6222ae6b9f96418dbc70df225929db7e", "x-checker-data": { "type": "git", "tag-pattern": "^([\\d.]+-[\\d]+)$" @@ -193,8 +207,8 @@ { "type": "git", "url": "https://github.com/flatpak/libportal", - "tag": "0.8.1", - "commit": "26c15008cbe579f57f89468384f8efc033f25f6f", + "tag": "0.9.1", + "commit": "8f5dc8d192f6e31dafe69e35219e3b707bde71ce", "x-checker-data": { "type": "git", "is-important": true, @@ -210,8 +224,8 @@ { "type": "git", "url": "https://gitlab.gnome.org/jwestman/blueprint-compiler", - "tag": "v0.14.0", - "commit": "8e10fcf8692108b9d4ab78f41086c5d7773ef864", + "tag": "v0.16.0", + "commit": "04ef0944db56ab01307a29aaa7303df6067cb3c0", "x-checker-data": { "type": "git", "tag-pattern": "^v([\\d.]+)$" @@ -259,6 +273,18 @@ } ], "modules": [ + { + "name": "fast_float", + "buildsystem": "cmake-ninja", + "sources": [ + { + "type": "git", + "url": "https://github.com/fastfloat/fast_float.git", + "tag": "v8.0.2", + "commit": "50a80a73ab2ab256ba1c3bf86923ddd8b4202bc7" + } + ] + }, { "name": "vte", "buildsystem": "meson", @@ -267,13 +293,13 @@ ], "sources": [ { - "type": "git", - "url": "https://gitlab.gnome.org/GNOME/vte", - "tag": "0.78.0", - "commit": "00c99e846bf83536f978b4fe5dc2c8a6983b8a94", + "type": "archive", + "url": "https://download.gnome.org/sources/vte/0.79/vte-0.79.91.tar.xz", + "sha256": "adca667d40ae1839ba258b63701cd05fba249303d72258711cc69294b2cb8646", "x-checker-data": { - "type": "git", - "tag-pattern": "^([\\d.]+)$" + "type": "gnome", + "name": "vte", + "stable-only": true } } ] @@ -302,6 +328,25 @@ } ] }, + { + "name": "fluidsynth", + "buildsystem": "cmake-ninja", + "cleanup": [ + "/bin", + "/include", + "/lib/cmake", + "/lib/pkgconfig", + "/share/man", + "*.so" + ], + "sources": [ + { + "type": "archive", + "url": "https://github.com/FluidSynth/fluidsynth/archive/v2.3.5.tar.gz", + "sha256": "f89e8e983ecfb4a5b4f5d8c2b9157ed18d15ed2e36246fa782f18abaea550e0d" + } + ] + }, { "name": "libsass", "buildsystem": "meson", @@ -341,8 +386,8 @@ { "type": "git", "url": "https://gitlab.gnome.org/GNOME/libadwaita.git", - "tag": "1.7.alpha", - "commit": "f4b0068b2ef8db3a582eda08eacbaa8ceac3ef3a" + "tag": "1.7.beta", + "commit": "10dbadc7a770f36e20d5053e6b08676bc36f7957" } ] }, diff --git a/build-aux/pypi-deps.yaml b/build-aux/pypi-deps.yaml index 624a86aa9d9..26f5eee58db 100644 --- a/build-aux/pypi-deps.yaml +++ b/build-aux/pypi-deps.yaml @@ -5,7 +5,7 @@ build-commands: - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" --prefix=${FLATPAK_DEST} --no-build-isolation wheel PyYAML pycurl chardet requests Markdown icoextract patool pathvalidate FVS orjson pycairo PyGObject charset-normalizer - idna urllib3 certifi pefile + numpy pyfluidsynth idna urllib3 certifi pefile sources: - type: file url: https://files.pythonhosted.org/packages/f7/2f/cc09899755f94b36e7f570b9f9ca19a5fdff536e2614fd3ac1c28bb777f6/FVS-0.3.4.tar.gz @@ -22,14 +22,14 @@ sources: only-arches: - x86_64 - type: file - url: https://files.pythonhosted.org/packages/12/90/3c9ff0512038035f59d279fddeb79f5f1eccd8859f06d6163c58798b9487/certifi-2024.8.30-py3-none-any.whl - sha256: 922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8 + url: https://files.pythonhosted.org/packages/38/fc/bce832fd4fd99766c04d1ee0eead6b0ec6486fb100ae5e74c1d91292b982/certifi-2025.1.31-py3-none-any.whl + sha256: ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe - type: file url: https://files.pythonhosted.org/packages/38/6f/f5fbc992a329ee4e0f288c1fe0e2ad9485ed064cac731ed2fe47dcc38cbf/chardet-5.2.0-py3-none-any.whl sha256: e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970 - type: file - url: https://files.pythonhosted.org/packages/ee/fb/14d30eb4956408ee3ae09ad34299131fb383c47df355ddb428a7331cfa1e/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: 90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b + url: https://files.pythonhosted.org/packages/3e/a2/513f6cbe752421f16d969e32f3583762bfd583848b763913ddab8d9bfd4f/charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d only-arches: - x86_64 - type: file @@ -39,16 +39,21 @@ sources: url: https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl sha256: 946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3 - type: file - url: https://files.pythonhosted.org/packages/a0/6b/34e6904ac99df811a06e42d8461d47b6e0c9b86e2fe7ee84934df6e35f0d/orjson-3.10.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: a0c6a008e91d10a2564edbb6ee5069a9e66df3fbe11c9a005cb411f441fd2c09 + url: https://files.pythonhosted.org/packages/39/04/78d2e7402fb479d893953fb78fa7045f7deb635ec095b6b4f0260223091a/numpy-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 3b787adbf04b0db1967798dba8da1af07e387908ed1553a0d6e74c084d1ceafe only-arches: - x86_64 - type: file - url: https://files.pythonhosted.org/packages/d3/5e/76a9d08b4b4e4583f269cb9f64de267f9aeae0dacef23307f53a14211716/pathvalidate-3.2.1-py3-none-any.whl - sha256: 9a6255eb8f63c9e2135b9be97a5ce08f10230128c4ae7b3e935378b82b22c4c9 + url: https://files.pythonhosted.org/packages/fa/da/31543337febd043b8fa80a3b67de627669b88c7b128d9ad4cc2ece005b7a/orjson-3.10.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: b48f59114fe318f33bbaee8ebeda696d8ccc94c9e90bc27dbe72153094e26f41 + only-arches: + - x86_64 - type: file - url: https://files.pythonhosted.org/packages/0e/44/192ede8c7f935643e4c8a56545fcac6ae1b8c50a77f54b2b1c4ab9fcae49/patool-3.0.0-py2.py3-none-any.whl - sha256: 928070d5f82a776534a290a52f4758e2c0dd9cd5a633e3f63f7270c8982833b8 + url: https://files.pythonhosted.org/packages/50/14/c5a0e1a947909810fc4c043b84cac472b70e438148d34f5393be1bac663f/pathvalidate-3.2.3-py3-none-any.whl + sha256: 5eaf0562e345d4b6d0c0239d0f690c3bd84d2a9a3c4c73b99ea667401b27bee1 +- type: file + url: https://files.pythonhosted.org/packages/62/fc/fb9db09ca1693e9db2e6593418fd6d085bc6293610089d29ffd02d3a64fd/patool-3.1.3-py2.py3-none-any.whl + sha256: 1f33785dbe1d9917c1bfa6ed589696cc07774f4840d17b7fab8b405bdbab90a6 - type: file url: https://files.pythonhosted.org/packages/54/16/12b82f791c7f50ddec566873d5bdd245baa1491bac11d15ffb98aecc8f8b/pefile-2024.8.26-py3-none-any.whl sha256: 76f8b485dcd3b1bb8166f1128d395fa3d87af26360c2358fb75b80019b957c6f @@ -56,16 +61,19 @@ sources: url: https://files.pythonhosted.org/packages/07/4a/42b26390181a7517718600fa7d98b951da20be982a50cd4afb3d46c2e603/pycairo-1.27.0.tar.gz sha256: 5cb21e7a00a2afcafea7f14390235be33497a2cce53a98a19389492a60628430 - type: file - url: https://files.pythonhosted.org/packages/65/80/8791945007e2295806bfd0e982e00fee023517b17d5b2d845ca64c81878c/pycurl-7.45.3-cp312-cp312-manylinux_2_28_x86_64.whl - sha256: 3d07c5daef2d0d85949e32ec254ee44232bb57febb0634194379dd14d1ff4f87 + url: https://files.pythonhosted.org/packages/2c/4c/07e7192f0d7fc549dab2784c6448ffa98412acb942a365adce4e14d1a143/pycurl-7.45.4-cp312-cp312-manylinux_2_28_x86_64.whl + sha256: 688d09ba2c6a0d4a749d192c43422839d73c40c85143c50cc65c944258fe0ba8 only-arches: - x86_64 +- type: file + url: https://files.pythonhosted.org/packages/c4/91/4f6b28ac379da306dde66ba6ac170c4a6e7e1506cadc84a9359fe3f237ba/pyfluidsynth-1.3.4-py3-none-any.whl + sha256: c6990329db7cfb35f5e65d523dd4f0c971d928e70df3a6bceec8864827edf246 - type: file url: https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl sha256: 70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6 - type: file - url: https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl - sha256: ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac + url: https://files.pythonhosted.org/packages/c8/19/4ec628951a74043532ca2cf5d97b7b14863931476d117c471e8e2b1eb39f/urllib3-2.3.0-py3-none-any.whl + sha256: 1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df - type: file - url: https://files.pythonhosted.org/packages/1b/d1/9babe2ccaecff775992753d8686970b1e2755d21c8a63be73aba7a4e7d77/wheel-0.44.0-py3-none-any.whl - sha256: 2376a90c98cc337d18623527a97c31797bd02bad0033d41547043a1cbfbe448f + url: https://files.pythonhosted.org/packages/0b/2c/87f3254fd8ffd29e4c02732eee68a83a1d3c346ae39bc6822dcbcb697f2b/wheel-0.45.1-py3-none-any.whl + sha256: 708e7481cc80179af0e556bbf0cc00b8444c7321e2700b8d8580231d13017248 diff --git a/data/appstream/1.png b/data/appstream/1.png deleted file mode 100644 index 2f05b01505a..00000000000 Binary files a/data/appstream/1.png and /dev/null differ diff --git a/data/appstream/2.png b/data/appstream/2.png deleted file mode 100644 index cc15ad34e65..00000000000 Binary files a/data/appstream/2.png and /dev/null differ diff --git a/data/appstream/3.png b/data/appstream/3.png deleted file mode 100644 index 47c3cc71a66..00000000000 Binary files a/data/appstream/3.png and /dev/null differ diff --git a/data/appstream/4.png b/data/appstream/4.png deleted file mode 100644 index e581db57a37..00000000000 Binary files a/data/appstream/4.png and /dev/null differ diff --git a/data/appstream/5.png b/data/appstream/5.png deleted file mode 100644 index 36a33137566..00000000000 Binary files a/data/appstream/5.png and /dev/null differ diff --git a/data/appstream/screenshot.png b/data/appstream/screenshot.png deleted file mode 100644 index 287173df142..00000000000 Binary files a/data/appstream/screenshot.png and /dev/null differ diff --git a/data/com.usebottles.bottles.desktop.in.in b/data/com.usebottles.bottles.desktop.in.in index 536ddbfc052..eaf62e01256 100644 --- a/data/com.usebottles.bottles.desktop.in.in +++ b/data/com.usebottles.bottles.desktop.in.in @@ -1,14 +1,14 @@ [Desktop Entry] Name=@APP_NAME@ -Comment=Run Windows Software +Comment=Run Windows software Icon=@APP_ID@ Exec=bottles %u TryExec=bottles Terminal=false Type=Application -Categories=Utility;GNOME;GTK; +Categories=Utility;Game;Graphics;3DGraphics;Emulator;GNOME;GTK; StartupNotify=true StartupWMClass=bottles MimeType=x-scheme-handler/bottles;application/x-ms-dos-executable;application/x-msi;application/x-ms-shortcut;application/x-wine-extension-msp; -Keywords=wine;windows; +Keywords=wine;windows;gaming;emulate;emulator;game; X-GNOME-UsesNotifications=true diff --git a/data/com.usebottles.bottles.metainfo.xml.in.in b/data/com.usebottles.bottles.metainfo.xml.in.in index 2fafd552959..0f49f0fde2e 100644 --- a/data/com.usebottles.bottles.metainfo.xml.in.in +++ b/data/com.usebottles.bottles.metainfo.xml.in.in @@ -5,11 +5,23 @@ @APP_ID@ @APP_ID@.desktop Bottles - Run Windows Software - Bottles Contributors + Run Windows software - Bottles Contributors + The Bottles Contributors + + Utility + Game + Graphics + 3DGraphics + Emulator + GNOME + GTK + + + #f4c8cb + #892119 +

Bottles lets you run Windows software on Linux, such as applications and games. It introduces a workflow that helps you organize by categorizing each software to your liking. Bottles provides several tools and integrations to help you manage and optimize your applications.

Features:

@@ -31,22 +43,28 @@ - https://raw.githubusercontent.com/bottlesdevs/Bottles/main/data/appstream/screenshot.png + https://raw.githubusercontent.com/bottlesdevs/Bottles/main/data/screenshots/1.png + Bottles List Page - https://raw.githubusercontent.com/bottlesdevs/Bottles/main/data/appstream/1.png + https://raw.githubusercontent.com/bottlesdevs/Bottles/main/data/screenshots/2.png + Library Page - https://raw.githubusercontent.com/bottlesdevs/Bottles/main/data/appstream/2.png + https://raw.githubusercontent.com/bottlesdevs/Bottles/main/data/screenshots/3.png + Create New Bottle - https://raw.githubusercontent.com/bottlesdevs/Bottles/main/data/appstream/3.png + https://raw.githubusercontent.com/bottlesdevs/Bottles/main/data/screenshots/4.png + Bottle Details Page - https://raw.githubusercontent.com/bottlesdevs/Bottles/main/data/appstream/4.png + https://raw.githubusercontent.com/bottlesdevs/Bottles/main/data/screenshots/5.png + Bottle Settings Page - https://raw.githubusercontent.com/bottlesdevs/Bottles/main/data/appstream/5.png + https://raw.githubusercontent.com/bottlesdevs/Bottles/main/data/screenshots/6.png + Installers Page @APP_ID@ @@ -68,7 +86,7 @@ - +
  • Add Ctrl+N shortcut for creating a new bottle
  • Add Shortcuts window
  • @@ -82,12 +100,12 @@ - +

    Fixed a regression that makes the bottle's preferences page blank in some cases

    - +

    Fixed an issue where clicking on a snapshot instantly started the restore process

    Fixed a crash in bottles-cli when neither --executable nor --program was specified

    Fixed an issue where launch options were not honored when applications were launched from Desktop Entries

    @@ -102,12 +120,12 @@
    - +

    Fixed a bug where the "win11" option was not available

    - +

    New "Native" Force Stop all Processes option

    Provide bottle Path as env var

    Fix "bottles:run/" uri processing (#3444)

    @@ -122,12 +140,12 @@
    - +

    Fixed crash on starting executables via the file manager [#3427]

    - +

    Support d3d8 via dxvk

    Removed @lru_cache decorator from the Paths class, plus minor typing fixes

    Fixed crash on startup [#3329]

    @@ -145,7 +163,7 @@
    - +

    Fix running programs via CLI

    Fix handling of empty program arguments

    Removed obsolete faudio dependency from the environment

    @@ -154,7 +172,7 @@
    - +

    Clean FSR settings

    Improve bad connections handling

    Update Flatpak runtime

    @@ -163,18 +181,18 @@
    - +

    Fix runners and components from not showing when prereleases are off

    Fix Steam runtime compatibility with Wine runners

    - +

    A few bug fixes

    - +

    Support for the double-DLL VKD3D

    Updated Flatpak runtime

    Minor improvement and fixes to the library

    @@ -184,34 +202,34 @@
    - +

    Update metadata information

    - +

    Add more update information and correct release notes version

    - +

    Fixed "Add to Steam" button

    Fixed BottleConfig being not serializable

    Fixed Patool double extraction failing

    - +

    Correct version

    - +

    Fix crash when creating a bottle

    - +

    Major change: Redesign New Bottle interface

    Quality of life improvements:

      @@ -229,14 +247,14 @@ - +
      • Fix error when downloading if Bottles isn't run from terminal
      - +
      • Correct version date
      • Hide NVIDIA-related critical errors on non-NVIDIA systems
      • @@ -244,7 +262,7 @@ - +
        • Gamescope improvements and fixes
        • Dependency installation is faster and more stable
        • diff --git a/data/screenshots/1.png b/data/screenshots/1.png new file mode 100644 index 00000000000..1844b7c84ef Binary files /dev/null and b/data/screenshots/1.png differ diff --git a/data/screenshots/2.png b/data/screenshots/2.png new file mode 100644 index 00000000000..7f55a941933 Binary files /dev/null and b/data/screenshots/2.png differ diff --git a/data/screenshots/3.png b/data/screenshots/3.png new file mode 100644 index 00000000000..635f92bf15f Binary files /dev/null and b/data/screenshots/3.png differ diff --git a/data/screenshots/4.png b/data/screenshots/4.png new file mode 100644 index 00000000000..4f0216624b2 Binary files /dev/null and b/data/screenshots/4.png differ diff --git a/data/screenshots/5.png b/data/screenshots/5.png new file mode 100644 index 00000000000..ee1a0268a9f Binary files /dev/null and b/data/screenshots/5.png differ diff --git a/data/screenshots/6.png b/data/screenshots/6.png new file mode 100644 index 00000000000..86a0fa64d87 Binary files /dev/null and b/data/screenshots/6.png differ diff --git a/po/LINGUAS b/po/LINGUAS index 792572d6c32..0a8746d027d 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -47,3 +47,5 @@ be ie az bs +ga +ka diff --git a/po/POTFILES b/po/POTFILES index 6f9bca14ddc..7ed001f58d6 100644 --- a/po/POTFILES +++ b/po/POTFILES @@ -5,81 +5,86 @@ bottles/backend/managers/manager.py bottles/backend/managers/versioning.py bottles/frontend/main.py bottles/frontend/operation.py -bottles/frontend/ui/about.blp -bottles/frontend/ui/component-entry.blp -bottles/frontend/ui/dependency-entry.blp -bottles/frontend/ui/details-bottle.blp -bottles/frontend/ui/details-dependencies.blp -bottles/frontend/ui/details-installers.blp -bottles/frontend/ui/details-preferences.blp -bottles/frontend/ui/details-taskmanager.blp -bottles/frontend/ui/details-versioning.blp -bottles/frontend/ui/details.blp -bottles/frontend/ui/dialog-bottle-picker.blp -bottles/frontend/ui/dialog-crash-report.blp -bottles/frontend/ui/dialog-deps-check.blp -bottles/frontend/ui/dialog-dll-overrides.blp -bottles/frontend/ui/dialog-drives.blp -bottles/frontend/ui/dialog-duplicate.blp -bottles/frontend/ui/dialog-env-vars.blp -bottles/frontend/ui/dialog-exclusion-patterns.blp -bottles/frontend/ui/dialog-gamescope.blp -bottles/frontend/ui/dialog-installer.blp -bottles/frontend/ui/dialog-journal.blp -bottles/frontend/ui/dialog-launch-options.blp -bottles/frontend/ui/dialog-proton-alert.blp -bottles/frontend/ui/dialog-rename.blp -bottles/frontend/ui/dialog-run-args.blp -bottles/frontend/ui/dialog-sandbox.blp -bottles/frontend/ui/dialog-upgrade-versioning.blp -bottles/frontend/ui/dialog-vkbasalt.blp -bottles/frontend/ui/dll-override-entry.blp -bottles/frontend/ui/drive-entry.blp -bottles/frontend/ui/env-var-entry.blp -bottles/frontend/ui/exclusion-pattern-entry.blp -bottles/frontend/ui/importer-entry.blp -bottles/frontend/ui/importer.blp -bottles/frontend/ui/installer-entry.blp -bottles/frontend/ui/library-entry.blp -bottles/frontend/ui/library.blp -bottles/frontend/ui/bottle-row.blp -bottles/frontend/ui/list.blp -bottles/frontend/ui/loading.blp -bottles/frontend/ui/local-resource-entry.blp -bottles/frontend/ui/new.blp -bottles/frontend/ui/onboard.blp -bottles/frontend/ui/preferences.blp -bottles/frontend/ui/program-entry.blp -bottles/frontend/ui/state-entry.blp -bottles/frontend/ui/task-entry.blp -bottles/frontend/ui/window.blp -bottles/frontend/views/bottle_details.py -bottles/frontend/views/bottle_preferences.py -bottles/frontend/views/bottle_versioning.py -bottles/frontend/views/details.py -bottles/frontend/views/importer.py -bottles/frontend/views/list.py -bottles/frontend/views/loading.py -bottles/frontend/views/new.py -bottles/frontend/views/preferences.py -bottles/frontend/widgets/component.py -bottles/frontend/widgets/dependency.py -bottles/frontend/widgets/importer.py -bottles/frontend/widgets/installer.py -bottles/frontend/widgets/library.py -bottles/frontend/widgets/program.py -bottles/frontend/widgets/state.py -bottles/frontend/windows/crash.py -bottles/frontend/windows/display.py -bottles/frontend/windows/dlloverrides.py -bottles/frontend/windows/drives.py -bottles/frontend/windows/envvars.py -bottles/frontend/windows/exclusionpatterns.py -bottles/frontend/windows/generic.py -bottles/frontend/windows/installer.py -bottles/frontend/windows/launchoptions.py -bottles/frontend/windows/main_window.py -bottles/frontend/windows/vkbasalt.py +bottles/frontend/about.blp +bottles/frontend/component-entry-row.blp +bottles/frontend/dependency-entry-row.blp +bottles/frontend/bottle-details-page.blp +bottles/frontend/details-dependencies-view.blp +bottles/frontend/details-installers-view.blp +bottles/frontend/details-preferences-page.blp +bottles/frontend/details-task-manager-view.blp +bottles/frontend/details-versioning-page.blp +bottles/frontend/bottle-details-view.blp +bottles/frontend/bottle-picker-dialog.blp +bottles/frontend/crash-report-dialog.blp +bottles/frontend/dependencies-check-dialog.blp +bottles/frontend/dll-overrides-dialog.blp +bottles/frontend/drives-dialog.blp +bottles/frontend/duplicate-dialog.blp +bottles/frontend/environment-variables-dialog.blp +bottles/frontend/exclusion-patterns-dialog.blp +bottles/frontend/gamescope-dialog.blp +bottles/frontend/installer-dialog.blp +bottles/frontend/journal-dialog.blp +bottles/frontend/launch-options-dialog.blp +bottles/frontend/proton-alert-dialog.blp +bottles/frontend/rename-program-dialog.blp +bottles/frontend/vmtouch-dialog.blp +bottles/frontend/sandbox-dialog.blp +bottles/frontend/upgrade-versioning-dialog.blp +bottles/frontend/vkbasalt-dialog.blp +bottles/frontend/mangohud-dialog.blp +bottles/frontend/dll-override-entry.blp +bottles/frontend/drive-entry.blp +bottles/frontend/env-var-entry.blp +bottles/frontend/exclusion-pattern-row.blp +bottles/frontend/importer-row.blp +bottles/frontend/importer-view.blp +bottles/frontend/installer-row.blp +bottles/frontend/library-entry.blp +bottles/frontend/library-view.blp +bottles/frontend/bottle-row.blp +bottles/frontend/bottles-list-view.blp +bottles/frontend/loading-view.blp +bottles/frontend/local-resource-row.blp +bottles/frontend/new-bottle-dialog.blp +bottles/frontend/onboard-dialog.blp +bottles/frontend/preferences.blp +bottles/frontend/program-row.blp +bottles/frontend/state-row.blp +bottles/frontend/task-row.blp +bottles/frontend/window.blp +bottles/frontend/fsr-dialog.blp +bottles/frontend/bottle_details_page.py +bottles/frontend/details_preferences_page.py +bottles/frontend/details_versioning_page.py +bottles/frontend/bottle_details_view.py +bottles/frontend/importer_view.py +bottles/frontend/bottles_list_view.py +bottles/frontend/loading_view.py +bottles/frontend/new_bottle_dialog.py +bottles/frontend/preferences.py +bottles/frontend/library_view.py +bottles/frontend/component.py +bottles/frontend/dependency.py +bottles/frontend/importer_row.py +bottles/frontend/installer_row.py +bottles/frontend/library_entry.py +bottles/frontend/program_row.py +bottles/frontend/state_row.py +bottles/frontend/crash_report_dialog.py +bottles/frontend/display_dialog.py +bottles/frontend/dll_overrides_dialog.py +bottles/frontend/drives_dialog.py +bottles/frontend/environment_variables_dialog.py +bottles/frontend/exclusion_patterns_dialog.py +bottles/frontend/generic.py +bottles/frontend/installer_dialog.py +bottles/frontend/launch_options_dialog.py +bottles/frontend/main_window.py +bottles/frontend/vkbasalt_dialog.py +bottles/frontend/fsr_dialog.py +bottles/frontend/mangohud_dialog.py data/com.usebottles.bottles.desktop.in.in data/com.usebottles.bottles.gschema.xml data/com.usebottles.bottles.metainfo.xml.in diff --git a/po/be.po b/po/be.po index bd5fc575c9d..456cb877198 100644 --- a/po/be.po +++ b/po/be.po @@ -8,17 +8,17 @@ msgstr "" "Project-Id-Version: bottles\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-03-27 13:50+0530\n" -"PO-Revision-Date: 2023-09-06 01:41+0000\n" -"Last-Translator: Maksim \n" +"PO-Revision-Date: 2024-12-27 23:25+0000\n" +"Last-Translator: Lang Q \n" "Language-Team: Belarusian \n" "Language: be\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<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 5.0.1-dev\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Weblate 5.10-dev\n" #: bottles/backend/managers/backup.py:48 bottles/backend/managers/backup.py:95 msgid "No path specified" @@ -202,7 +202,7 @@ msgstr "" #: bottles/frontend/main.py:294 msgid "Donate" -msgstr "" +msgstr "Заданаціць" #: bottles/frontend/main.py:299 msgid "Third-Party Libraries and Special Thanks" @@ -210,7 +210,7 @@ msgstr "" #: bottles/frontend/main.py:325 msgid "Sponsored and Funded by" -msgstr "" +msgstr "Спонсарам ды заснавальнікам з'яўляецца" # Translators: Bottles is a proper noun referring to the app #: bottles/frontend/ui/about.blp:5 @@ -228,7 +228,7 @@ msgstr "" #: bottles/frontend/ui/component-entry.blp:4 msgid "Component version" -msgstr "" +msgstr "Версія кампанента" #: bottles/frontend/ui/component-entry.blp:12 #: bottles/frontend/ui/dependency-entry.blp:29 @@ -316,7 +316,7 @@ msgstr "" #: bottles/frontend/ui/details-bottle.blp:33 msgid "Full Backup…" -msgstr "" +msgstr "Полнае рэзервовае капіраванне…" #: bottles/frontend/ui/details-bottle.blp:37 #: bottles/frontend/ui/importer.blp:68 @@ -327,20 +327,20 @@ msgstr "" #: bottles/frontend/ui/details-bottle.blp:38 msgid "Export Configuration…" -msgstr "" +msgstr "Экспарт канфігурацыі…" #: bottles/frontend/ui/details-bottle.blp:45 #: bottles/frontend/views/bottle_details.py:344 msgid "Show Hidden Programs" -msgstr "" +msgstr "Паказаць схаваныя праграмы" #: bottles/frontend/ui/details-bottle.blp:49 msgid "Search for new programs" -msgstr "" +msgstr "Пошук новых праграм" #: bottles/frontend/ui/details-bottle.blp:56 msgid "Delete Bottle…" -msgstr "" +msgstr "Выдаляем Bottle…" #: bottles/frontend/ui/details-bottle.blp:73 #: bottles/frontend/ui/details-dependencies.blp:99 @@ -358,7 +358,7 @@ msgstr "" #: bottles/frontend/ui/details-bottle.blp:95 msgid "Shutdown" -msgstr "" +msgstr "Выключэнне" #: bottles/frontend/ui/details-bottle.blp:99 msgid "Simulate a Windows system reboot." @@ -366,16 +366,16 @@ msgstr "" #: bottles/frontend/ui/details-bottle.blp:100 msgid "Reboot" -msgstr "" +msgstr "Перазагрузка" #: bottles/frontend/ui/details-bottle.blp:118 #: bottles/frontend/ui/dialog-launch-options.blp:6 msgid "Launch Options" -msgstr "" +msgstr "Налады запуску" #: bottles/frontend/ui/details-bottle.blp:135 msgid "Run in Terminal" -msgstr "" +msgstr "Запусціць у тэрмінале" #: bottles/frontend/ui/details-bottle.blp:148 msgid "Drop files to execute them" @@ -392,13 +392,13 @@ msgstr "" #: bottles/frontend/ui/details-bottle.blp:189 #: bottles/frontend/ui/list-entry.blp:12 bottles/frontend/ui/new.blp:71 msgid "Environment" -msgstr "" +msgstr "Наваколле" #: bottles/frontend/ui/details-bottle.blp:201 #: bottles/frontend/ui/details-preferences.blp:14 #: bottles/frontend/ui/new.blp:128 msgid "Runner" -msgstr "" +msgstr "Сродак запуску" #: bottles/frontend/ui/details-bottle.blp:213 #: bottles/frontend/ui/list-entry.blp:21 @@ -412,15 +412,15 @@ msgstr "" #: bottles/frontend/ui/details-bottle.blp:227 #: bottles/frontend/ui/list-entry.blp:31 msgid "0" -msgstr "" +msgstr "0" #: bottles/frontend/ui/details-bottle.blp:247 msgid "Run Executable…" -msgstr "" +msgstr "Запусціць выканаўчы файл…" #: bottles/frontend/ui/details-bottle.blp:272 msgid "Programs" -msgstr "" +msgstr "Праграмы" #: bottles/frontend/ui/details-bottle.blp:275 msgid "" @@ -431,20 +431,20 @@ msgstr "" #: bottles/frontend/ui/details-bottle.blp:298 msgid "Add Shortcuts…" -msgstr "" +msgstr "Дадаць ярлыкі…" #: bottles/frontend/ui/details-bottle.blp:325 msgid "Install Programs…" -msgstr "" +msgstr "Усталяваць праграмы…" #: bottles/frontend/ui/details-bottle.blp:346 msgid "Options" -msgstr "" +msgstr "Параметры" #: bottles/frontend/ui/details-bottle.blp:350 #: bottles/frontend/views/details.py:141 msgid "Settings" -msgstr "" +msgstr "Налады" #: bottles/frontend/ui/details-bottle.blp:351 msgid "Configure bottle settings." @@ -453,17 +453,17 @@ msgstr "" #: bottles/frontend/ui/details-bottle.blp:360 #: bottles/frontend/views/details.py:145 msgid "Dependencies" -msgstr "" +msgstr "Залежнасці" #: bottles/frontend/ui/details-bottle.blp:361 msgid "Install dependencies for programs." -msgstr "" +msgstr "Усталяваць залежнасці для праграм." #: bottles/frontend/ui/details-bottle.blp:370 #: bottles/frontend/ui/details-preferences.blp:377 #: bottles/frontend/views/details.py:149 msgid "Snapshots" -msgstr "" +msgstr "Снапшоты" #: bottles/frontend/ui/details-bottle.blp:371 msgid "Create and manage bottle states." @@ -473,19 +473,19 @@ msgstr "" #: bottles/frontend/ui/details-bottle.blp:426 #: bottles/frontend/views/details.py:157 msgid "Task Manager" -msgstr "" +msgstr "Менеджэр" #: bottles/frontend/ui/details-bottle.blp:381 msgid "Manage running programs." -msgstr "" +msgstr "Настроіць запушчаныя праграмы." #: bottles/frontend/ui/details-bottle.blp:390 msgid "Tools" -msgstr "" +msgstr "Інструменты" #: bottles/frontend/ui/details-bottle.blp:394 msgid "Command Line" -msgstr "" +msgstr "Камандны Радок" #: bottles/frontend/ui/details-bottle.blp:395 msgid "Run commands inside the Bottle." @@ -505,7 +505,7 @@ msgstr "" #: bottles/frontend/ui/details-bottle.blp:417 msgid "Explorer" -msgstr "" +msgstr "Файл Менеджэр" #: bottles/frontend/ui/details-bottle.blp:435 msgid "Debugger" @@ -514,15 +514,15 @@ msgstr "" #: bottles/frontend/ui/details-bottle.blp:444 #: bottles/frontend/ui/importer.blp:69 bottles/frontend/ui/new.blp:145 msgid "Configuration" -msgstr "" +msgstr "Канфігурацыя" #: bottles/frontend/ui/details-bottle.blp:453 msgid "Uninstaller" -msgstr "" +msgstr "Дэінсталятар" #: bottles/frontend/ui/details-bottle.blp:462 msgid "Control Panel" -msgstr "" +msgstr "Панель кіравання" #: bottles/frontend/ui/details-dependencies.blp:9 msgid "Search for dependencies…" @@ -532,7 +532,7 @@ msgstr "" #: bottles/frontend/ui/preferences.blp:178 #: bottles/frontend/ui/preferences.blp:235 msgid "You're offline :(" -msgstr "" +msgstr "У вас няма інтэрнет-падключэння! :(" #: bottles/frontend/ui/details-dependencies.blp:25 msgid "Bottles is running in offline mode, so dependencies are not available." @@ -556,23 +556,23 @@ msgstr "" #: bottles/frontend/ui/details-dependencies.blp:81 msgid "Read Documentation." -msgstr "" +msgstr "Прачытаць дакументацыю." #: bottles/frontend/ui/details-dependencies.blp:82 #: bottles/frontend/ui/details-installers.blp:51 #: bottles/frontend/ui/details-versioning.blp:37 msgid "Documentation" -msgstr "" +msgstr "Дакументацыя" #: bottles/frontend/ui/details-dependencies.blp:92 #: bottles/frontend/ui/details-installers.blp:61 #: bottles/frontend/ui/window.blp:46 msgid "Search" -msgstr "" +msgstr "Пошук" #: bottles/frontend/ui/details-installers.blp:9 msgid "Search for Programs…" -msgstr "" +msgstr "Пошук праграм…" #: bottles/frontend/ui/details-installers.blp:15 msgid "" @@ -584,7 +584,7 @@ msgstr "" #: bottles/frontend/ui/details-installers.blp:29 msgid "No Installers Found" -msgstr "" +msgstr "Устаноўшчыкаў не знойдзена" #: bottles/frontend/ui/details-installers.blp:32 msgid "" @@ -595,16 +595,16 @@ msgstr "" #: bottles/frontend/ui/details-versioning.blp:36 #: bottles/frontend/ui/preferences.blp:81 msgid "Read Documentation" -msgstr "" +msgstr "Чытаць Дакуменатцыю" #: bottles/frontend/ui/details-preferences.blp:6 #: bottles/frontend/ui/dialog-duplicate.blp:52 msgid "Name" -msgstr "" +msgstr "Назва" #: bottles/frontend/ui/details-preferences.blp:11 msgid "Components" -msgstr "" +msgstr "Кампаненты" #: bottles/frontend/ui/details-preferences.blp:15 #: bottles/frontend/ui/new.blp:129 @@ -613,7 +613,7 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:17 msgid "Updating Runner and components, please wait…" -msgstr "" +msgstr "Абнаўленне сродка запуску і кампанентаў, пачакайце, калі ласка…" #: bottles/frontend/ui/details-preferences.blp:27 #: bottles/frontend/ui/preferences.blp:262 @@ -626,7 +626,7 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:30 msgid "Updating DXVK, please wait…" -msgstr "" +msgstr "Абнаўленне DXVK, пачакайце, калі ласка…" #: bottles/frontend/ui/details-preferences.blp:40 #: bottles/frontend/ui/preferences.blp:266 @@ -639,7 +639,7 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:43 msgid "Updating VKD3D, please wait…" -msgstr "" +msgstr "Абнаўленне VKD3D, пачакайце, калі ласка…" #: bottles/frontend/ui/details-preferences.blp:54 msgid "DXVK NVAPI" @@ -648,7 +648,7 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:58 #: bottles/frontend/ui/details-preferences.blp:93 msgid "Updating DXVK-NVAPI, please wait…" -msgstr "" +msgstr "Абнаўленне DXVK-NVAPI, пачакайце, калі ласка…" #: bottles/frontend/ui/details-preferences.blp:68 #: bottles/frontend/ui/preferences.blp:274 @@ -661,11 +661,11 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:71 msgid "Updating LatencyFleX, please wait…" -msgstr "" +msgstr "Абнаўленне LatencyFleX, пачакайце, калі ласка…" #: bottles/frontend/ui/details-preferences.blp:84 msgid "Display" -msgstr "" +msgstr "Дісплэй" #: bottles/frontend/ui/details-preferences.blp:88 msgid "Deep Learning Super Sampling" @@ -691,7 +691,7 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:125 msgid "Discrete Graphics" -msgstr "" +msgstr "Діскрэтная Графіка" #: bottles/frontend/ui/details-preferences.blp:126 msgid "" @@ -722,11 +722,11 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:171 msgid "Advanced Display Settings" -msgstr "" +msgstr "Дадатковыя налады дісплэя" #: bottles/frontend/ui/details-preferences.blp:184 msgid "Performance" -msgstr "" +msgstr "Прадукцыйнасць" #: bottles/frontend/ui/details-preferences.blp:188 msgid "Enable synchronization to increase performance of multicore processors." @@ -734,11 +734,11 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:189 msgid "Synchronization" -msgstr "" +msgstr "Сінхранізацыя" #: bottles/frontend/ui/details-preferences.blp:193 msgid "System" -msgstr "" +msgstr "Сістэма" #: bottles/frontend/ui/details-preferences.blp:194 msgid "Esync" @@ -754,7 +754,7 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:202 msgid "Monitor Performance" -msgstr "" +msgstr "Прадукцыйнасць манітора" #: bottles/frontend/ui/details-preferences.blp:203 msgid "" @@ -773,7 +773,7 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:221 msgid "Preload Game Files" -msgstr "" +msgstr "Загадзя загрузіць файлы гульні" #: bottles/frontend/ui/details-preferences.blp:222 msgid "" @@ -795,23 +795,23 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:251 msgid "Compatibility" -msgstr "" +msgstr "Сумяшчальнасць" #: bottles/frontend/ui/details-preferences.blp:254 msgid "Windows Version" -msgstr "" +msgstr "Версія Windows" #: bottles/frontend/ui/details-preferences.blp:257 msgid "Updating Windows version, please wait…" -msgstr "" +msgstr "Абнаўленне Windows, пачакайце, калі ласка…" #: bottles/frontend/ui/details-preferences.blp:266 msgid "Language" -msgstr "" +msgstr "Мова" #: bottles/frontend/ui/details-preferences.blp:267 msgid "Choose the language to use with programs." -msgstr "" +msgstr "Абярыце мову для выкарыстоўвання з праграмамі." #: bottles/frontend/ui/details-preferences.blp:275 msgid "Dedicated Sandbox" @@ -823,12 +823,12 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:279 msgid "Manage the Sandbox Permissions" -msgstr "" +msgstr "Змяніць права пясочніцы" # Translators: Bottles is a proper noun referring to the app #: bottles/frontend/ui/details-preferences.blp:295 msgid "Bottles Runtime" -msgstr "" +msgstr "Час выконвання (Bottles)" #: bottles/frontend/ui/details-preferences.blp:296 msgid "" @@ -838,7 +838,7 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:306 msgid "Steam Runtime" -msgstr "" +msgstr "Час выконвання (Steam)" #: bottles/frontend/ui/details-preferences.blp:307 msgid "" @@ -849,7 +849,7 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:315 #: bottles/frontend/ui/dialog-launch-options.blp:83 msgid "Working Directory" -msgstr "" +msgstr "Рабочая дэрыкторыя" #: bottles/frontend/ui/details-preferences.blp:318 #: bottles/frontend/ui/dialog-launch-options.blp:59 @@ -857,13 +857,13 @@ msgstr "" #: bottles/frontend/ui/new.blp:150 bottles/frontend/ui/new.blp:181 #: bottles/frontend/ui/preferences.blp:136 msgid "Reset to Default" -msgstr "" +msgstr "Сбросіць да стана па-умаўчанні" #: bottles/frontend/ui/details-preferences.blp:339 #: bottles/frontend/ui/preferences.blp:157 bottles/frontend/views/new.py:78 #: bottles/frontend/views/preferences.py:210 msgid "(Default)" -msgstr "" +msgstr "(Па-умаўчанні)" #: bottles/frontend/ui/details-preferences.blp:347 #: bottles/frontend/ui/dialog-dll-overrides.blp:7 @@ -874,7 +874,7 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:357 #: bottles/frontend/ui/dialog-env-vars.blp:20 msgid "Environment Variables" -msgstr "" +msgstr "Пераменныя Наваколля" #: bottles/frontend/ui/details-preferences.blp:367 msgid "Manage Drives" @@ -892,7 +892,7 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:391 msgid "Compression" -msgstr "" +msgstr "Сцісканне" #: bottles/frontend/ui/details-preferences.blp:392 msgid "" @@ -914,15 +914,15 @@ msgstr "" #: bottles/frontend/ui/details-taskmanager.blp:17 msgid "Refresh" -msgstr "" +msgstr "Перазагрузіць" #: bottles/frontend/ui/details-taskmanager.blp:22 msgid "Stop process" -msgstr "" +msgstr "Спыніць працэс" #: bottles/frontend/ui/details-versioning.blp:18 msgid "No Snapshots Found" -msgstr "" +msgstr "Снапшотаў не знойдзена" #: bottles/frontend/ui/details-versioning.blp:19 msgid "Create your first snapshot to start saving states of your preferences." @@ -930,7 +930,7 @@ msgstr "" #: bottles/frontend/ui/details-versioning.blp:54 msgid "A short comment" -msgstr "" +msgstr "Кароткі каментар" #: bottles/frontend/ui/details-versioning.blp:58 msgid "Save the bottle state." @@ -947,11 +947,11 @@ msgstr "" #: bottles/frontend/ui/details.blp:24 bottles/frontend/ui/details.blp:64 #: bottles/frontend/ui/importer.blp:15 msgid "Go Back" -msgstr "" +msgstr "Назад" #: bottles/frontend/ui/details.blp:75 msgid "Operations" -msgstr "" +msgstr "Аперацыі" #: bottles/frontend/ui/dialog-bottle-picker.blp:4 msgid "Select Bottle" @@ -962,11 +962,11 @@ msgstr "" #: bottles/frontend/ui/dialog-rename.blp:15 #: bottles/frontend/ui/dialog-run-args.blp:20 msgid "Cancel" -msgstr "" +msgstr "Скасаваць" #: bottles/frontend/ui/dialog-bottle-picker.blp:21 msgid "Select" -msgstr "" +msgstr "Абраць" #: bottles/frontend/ui/dialog-bottle-picker.blp:38 #: bottles/frontend/ui/new.blp:9 bottles/frontend/ui/new.blp:49 @@ -990,7 +990,7 @@ msgstr "" #: bottles/frontend/views/bottle_preferences.py:749 #: bottles/frontend/views/preferences.py:201 msgid "_Cancel" -msgstr "" +msgstr "Скасаваць" #: bottles/frontend/ui/dialog-crash-report.blp:25 msgid "Send Report" @@ -1016,7 +1016,7 @@ msgstr "" #: bottles/frontend/ui/dialog-crash-report.blp:95 msgid "Advanced options" -msgstr "" +msgstr "Дадатковыя налады" #: bottles/frontend/ui/dialog-deps-check.blp:13 msgid "Incomplete package" @@ -1031,7 +1031,7 @@ msgstr "" #: bottles/frontend/ui/dialog-deps-check.blp:18 msgid "Quit" -msgstr "" +msgstr "Выйсці" #: bottles/frontend/ui/dialog-dll-overrides.blp:11 msgid "" @@ -1059,7 +1059,7 @@ msgstr "" #: bottles/frontend/ui/dialog-drives.blp:27 msgid "Letter" -msgstr "" +msgstr "Ліст" #: bottles/frontend/ui/dialog-drives.blp:49 msgid "Existing Drives" @@ -1100,11 +1100,11 @@ msgstr "" #: bottles/frontend/ui/dialog-env-vars.blp:31 msgid "Variable Name" -msgstr "" +msgstr "Назва пераменнай" #: bottles/frontend/ui/dialog-env-vars.blp:37 msgid "Existing Variables" -msgstr "" +msgstr "Існыя пераменныя" #: bottles/frontend/ui/dialog-exclusion-patterns.blp:20 msgid "Exclusion Patterns" @@ -1133,7 +1133,7 @@ msgstr "" #: bottles/frontend/ui/dialog-rename.blp:20 #: bottles/frontend/ui/dialog-vkbasalt.blp:34 msgid "Save" -msgstr "" +msgstr "Захаваць" #: bottles/frontend/ui/dialog-gamescope.blp:40 msgid "Manage how games should be displayed." @@ -1141,7 +1141,7 @@ msgstr "" #: bottles/frontend/ui/dialog-gamescope.blp:44 msgid "Game Resolution" -msgstr "" +msgstr "Разрознасць у гульні" #: bottles/frontend/ui/dialog-gamescope.blp:45 msgid "Uses the resolution of the video game as a reference in pixels." @@ -1150,16 +1150,16 @@ msgstr "" #: bottles/frontend/ui/dialog-gamescope.blp:48 #: bottles/frontend/ui/dialog-gamescope.blp:85 msgid "Width" -msgstr "" +msgstr "Шырыня" #: bottles/frontend/ui/dialog-gamescope.blp:64 #: bottles/frontend/ui/dialog-gamescope.blp:101 msgid "Height" -msgstr "" +msgstr "Вышыня" #: bottles/frontend/ui/dialog-gamescope.blp:81 msgid "Window Resolution" -msgstr "" +msgstr "Разрознасць акна" #: bottles/frontend/ui/dialog-gamescope.blp:82 msgid "" @@ -1173,7 +1173,7 @@ msgstr "" #: bottles/frontend/ui/dialog-gamescope.blp:121 msgid "Frame Rate Limit" -msgstr "" +msgstr "Ліміт частаты кадраў" #: bottles/frontend/ui/dialog-gamescope.blp:137 msgid "Frame Rate Limit When Unfocused" @@ -1185,7 +1185,7 @@ msgstr "" #: bottles/frontend/ui/dialog-gamescope.blp:162 msgid "Window Type" -msgstr "" +msgstr "Тып акна" #: bottles/frontend/ui/dialog-gamescope.blp:166 msgid "Borderless" @@ -1193,7 +1193,7 @@ msgstr "" #: bottles/frontend/ui/dialog-gamescope.blp:172 msgid "Fullscreen" -msgstr "" +msgstr "Паўнаэкранны" #: bottles/frontend/ui/dialog-installer.blp:40 msgid "Do you want to proceed with the installation?" @@ -1201,7 +1201,7 @@ msgstr "" #: bottles/frontend/ui/dialog-installer.blp:45 msgid "Start Installation" -msgstr "" +msgstr "Пачаць устаноўку" #: bottles/frontend/ui/dialog-installer.blp:64 msgid "" @@ -1211,27 +1211,27 @@ msgstr "" #: bottles/frontend/ui/dialog-installer.blp:68 msgid "Proceed" -msgstr "" +msgstr "Прыступіць" #: bottles/frontend/ui/dialog-installer.blp:127 msgid "Completed!" -msgstr "" +msgstr "Выканана!" #: bottles/frontend/ui/dialog-installer.blp:130 msgid "Show Programs" -msgstr "" +msgstr "Паказаць праграмы" #: bottles/frontend/ui/dialog-installer.blp:148 msgid "Installation Failed!" -msgstr "" +msgstr "Устаноўка не выканана!" #: bottles/frontend/ui/dialog-installer.blp:149 msgid "Something went wrong." -msgstr "" +msgstr "Нешта пайшло не так." #: bottles/frontend/ui/dialog-journal.blp:9 msgid "All messages" -msgstr "" +msgstr "Усе паведамленні" #: bottles/frontend/ui/dialog-journal.blp:13 msgid "Critical" @@ -1239,15 +1239,15 @@ msgstr "" #: bottles/frontend/ui/dialog-journal.blp:17 msgid "Errors" -msgstr "" +msgstr "Памылкі" #: bottles/frontend/ui/dialog-journal.blp:21 msgid "Warnings" -msgstr "" +msgstr "Папярэджванне" #: bottles/frontend/ui/dialog-journal.blp:25 msgid "Info" -msgstr "" +msgstr "Інфармацыя" #: bottles/frontend/ui/dialog-journal.blp:40 msgid "Journal browser" @@ -1263,7 +1263,7 @@ msgstr "" #: bottles/frontend/ui/dialog-journal.blp:57 msgid "All" -msgstr "" +msgstr "Усе" #: bottles/frontend/ui/dialog-launch-options.blp:42 msgid "Those arguments will be passed at launch." @@ -1275,7 +1275,7 @@ msgstr "" #: bottles/frontend/ui/dialog-launch-options.blp:46 msgid "Command Arguments" -msgstr "" +msgstr "Аргументы каманды" #: bottles/frontend/ui/dialog-launch-options.blp:47 #, c-format @@ -1294,17 +1294,17 @@ msgstr "" #: bottles/frontend/ui/dialog-launch-options.blp:70 msgid "Choose a Script" -msgstr "" +msgstr "Абярыце скрыпт" #: bottles/frontend/ui/dialog-launch-options.blp:84 #: bottles/frontend/windows/launchoptions.py:55 msgid "Choose from where start the program." -msgstr "" +msgstr "Абярыце, адкуль пачаць праграму." #: bottles/frontend/ui/dialog-launch-options.blp:101 #: bottles/frontend/ui/drive-entry.blp:22 msgid "Choose a Directory" -msgstr "" +msgstr "Абярэцые дэрыкторыю" #: bottles/frontend/ui/dialog-launch-options.blp:114 msgid "These settings will override the default settings for this executable." @@ -1351,25 +1351,25 @@ msgstr "" #: bottles/frontend/ui/dialog-rename.blp:7 msgid "Rename" -msgstr "" +msgstr "Перайменаваць" #: bottles/frontend/ui/dialog-rename.blp:30 msgid "Choose a new name for the selected program." -msgstr "" +msgstr "Абярыце новае імя для гэтай праграмы." #: bottles/frontend/ui/dialog-rename.blp:33 msgid "New Name" -msgstr "" +msgstr "Новае імя" #: bottles/frontend/ui/dialog-run-args.blp:13 msgid "Run With Arguments" -msgstr "" +msgstr "Запусціць з аргументамі" #: bottles/frontend/ui/dialog-run-args.blp:34 #: bottles/frontend/views/bottle_details.py:401 #: bottles/frontend/views/list.py:131 msgid "Run" -msgstr "" +msgstr "Запусціць" #: bottles/frontend/ui/dialog-run-args.blp:44 msgid "Write below the arguments to be passed to the executable." @@ -1381,7 +1381,7 @@ msgstr "" #: bottles/frontend/ui/dialog-sandbox.blp:7 msgid "Sandbox Settings" -msgstr "" +msgstr "Налады пясочніцы" #: bottles/frontend/ui/dialog-sandbox.blp:25 msgid "Share Network" @@ -1398,7 +1398,7 @@ msgstr "" #: bottles/frontend/ui/dialog-upgrade-versioning.blp:38 #: bottles/frontend/ui/onboard.blp:81 msgid "Continue" -msgstr "" +msgstr "Працягнуць" #: bottles/frontend/ui/dialog-upgrade-versioning.blp:47 msgid "Launch upgrade" @@ -1442,11 +1442,11 @@ msgstr "" #: bottles/frontend/ui/dialog-vkbasalt.blp:44 msgid "Default" -msgstr "" +msgstr "Па-умаўчанні" #: bottles/frontend/ui/dialog-vkbasalt.blp:48 msgid "Default Settings" -msgstr "" +msgstr "Налады па-умаўчанні" #: bottles/frontend/ui/dialog-vkbasalt.blp:57 msgid "Effects are applied according to the list order." @@ -1454,7 +1454,7 @@ msgstr "" #: bottles/frontend/ui/dialog-vkbasalt.blp:58 msgid "Effects" -msgstr "" +msgstr "Эфекты" #: bottles/frontend/ui/dialog-vkbasalt.blp:62 msgid "Contrast Adaptive Sharpening" @@ -1477,7 +1477,7 @@ msgstr "" #: bottles/frontend/ui/dialog-vkbasalt.blp:343 #: bottles/frontend/ui/dialog-vkbasalt.blp:370 bottles/frontend/ui/new.blp:58 msgid "Show Information" -msgstr "" +msgstr "Паказаць інфармацыю" #. Translators: Luma is not translatable #: bottles/frontend/ui/dialog-vkbasalt.blp:99 @@ -1518,7 +1518,7 @@ msgstr "" #: bottles/frontend/ui/dialog-vkbasalt.blp:273 msgid "Color" -msgstr "" +msgstr "Колер" #: bottles/frontend/ui/dialog-vkbasalt.blp:284 msgid "Threshold" diff --git a/po/cs.po b/po/cs.po index cf3ec8f3561..23aa355032f 100644 --- a/po/cs.po +++ b/po/cs.po @@ -8,16 +8,16 @@ msgstr "" "Project-Id-Version: bottles\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-03-27 13:50+0530\n" -"PO-Revision-Date: 2024-09-16 08:09+0000\n" -"Last-Translator: Zezik \n" +"PO-Revision-Date: 2024-12-19 20:43+0000\n" +"Last-Translator: vikdevelop \n" "Language-Team: Czech \n" "Language: cs\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==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 5.8-dev\n" +"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n" +"X-Generator: Weblate 5.9.2-dev\n" #: bottles/backend/managers/backup.py:48 bottles/backend/managers/backup.py:95 msgid "No path specified" @@ -3061,24 +3061,23 @@ msgstr "Opraveno tlačítko \"Přidat do Steamu\"" #: data/com.usebottles.bottles.metainfo.xml.in:95 msgid "Fixed BottleConfig being not serializable" -msgstr "" +msgstr "Opraven problém, kde BottleConfig nemohl být serializován" #: data/com.usebottles.bottles.metainfo.xml.in:96 msgid "Fixed Patool double extraction failing" -msgstr "" +msgstr "Opraveno selhání dvojité extrakce Patool" #: data/com.usebottles.bottles.metainfo.xml.in:101 msgid "Correct version" msgstr "Správná verze" #: data/com.usebottles.bottles.metainfo.xml.in:106 -#, fuzzy msgid "Fix crash when creating a bottle" -msgstr "Při vytváření láhve se vyskytla chyba." +msgstr "Vyřešen pád programu při vytváření láhve" #: data/com.usebottles.bottles.metainfo.xml.in:111 msgid "Major change: Redesign New Bottle interface" -msgstr "" +msgstr "Hlavní změna: Změna designu Hlavního Uživatelského Rozhraní Lahví" #: data/com.usebottles.bottles.metainfo.xml.in:112 msgid "Quality of life improvements:" @@ -3086,12 +3085,11 @@ msgstr "Drobná vylepšení uživatelského rozhraní:" #: data/com.usebottles.bottles.metainfo.xml.in:114 msgid "Replace emote-love icon with library in library page" -msgstr "" +msgstr "Nahrazení ikony emotikony lásky ikonou knihovny na stránce knihovny" #: data/com.usebottles.bottles.metainfo.xml.in:115 -#, fuzzy msgid "Add toast for \"Run Executable\"" -msgstr "Přidání vlastní cesty ke spustitelnému souboru" +msgstr "Přidat vyskakovací okno pro \"Spustit spustitelný soubor\"" #: data/com.usebottles.bottles.metainfo.xml.in:117 msgid "Bug fixes:" @@ -3099,7 +3097,7 @@ msgstr "Opravy chyb:" #: data/com.usebottles.bottles.metainfo.xml.in:119 msgid "Adding shortcut to Steam resulted an error" -msgstr "" +msgstr "Přidání zástupce do služby Steam vedlo k chybě" #: data/com.usebottles.bottles.metainfo.xml.in:120 msgid "Importing backups resulted an error" @@ -3114,6 +3112,8 @@ msgid "" "Various library related fixes, like empty covers, and crashes related to " "missing entries" msgstr "" +"Různé opravy související s knihovnami, například prázdné obálky a pády " +"související s chybějícími položkami" #: data/com.usebottles.bottles.metainfo.xml.in:123 msgid "Fix various issues related to text encoding" @@ -3130,6 +3130,7 @@ msgstr "Správné datum verze" #: data/com.usebottles.bottles.metainfo.xml.in:138 msgid "Hide NVIDIA-related critical errors on non NVIDIA systems" msgstr "" +"Skrytí kritických chyb souvisejících s NVIDIA v systémech jiných než NVIDIA" #: data/com.usebottles.bottles.metainfo.xml.in:145 msgid "Gamescope improvements and fixes" @@ -3141,7 +3142,7 @@ msgstr "Instalace závislostí je rychlejší a stabilnější" #: data/com.usebottles.bottles.metainfo.xml.in:147 msgid "The health check has more information for faster debugging" -msgstr "" +msgstr "Kontrola stavu obsahuje více informací pro rychlejší ladění" #: data/com.usebottles.bottles.metainfo.xml.in:148 msgid "NVAPI has a lot of fixes and is more stable, should now work properly" @@ -3153,19 +3154,21 @@ msgstr "Oprava chyby při stahování komponenty" #: data/com.usebottles.bottles.metainfo.xml.in:150 msgid "Backend code improvement by avoiding spin-lock" -msgstr "" +msgstr "Zlepšení kódu backendu zamezením spin-locku" #: data/com.usebottles.bottles.metainfo.xml.in:151 msgid "More variables for installer scripting" -msgstr "" +msgstr "Více proměnných pro skriptování instalátoru" #: data/com.usebottles.bottles.metainfo.xml.in:152 msgid "Fix onboard dialog showing \"All ready\" while it was in fact not ready" msgstr "" +"Oprava dialogového okna na palubě zobrazujícího „Vše připraveno“, i když ve " +"skutečnosti připraveno nebylo" #: data/com.usebottles.bottles.metainfo.xml.in:153 msgid "Improvement to build system" -msgstr "" +msgstr "Vylepšení v build systému" #: data/com.usebottles.bottles.metainfo.xml.in:154 msgid "Enabling VKD3D by default when creating bottles for gaming" @@ -3173,13 +3176,15 @@ msgstr "Automatické povolení VKD3D při tvorbě Lahve pro hry" #: data/com.usebottles.bottles.metainfo.xml.in:155 msgid "Fix crashes when reading Steam files with bad encodings" -msgstr "" +msgstr "Oprava pádů při čtení souborů služby Steam se špatným kódováním" #: data/com.usebottles.bottles.metainfo.xml.in:156 msgid "" "Fix components not updated correctly in the UI after installation/" "uninstallation" msgstr "" +"Oprava komponent, které se po instalaci/odinstalaci správně neaktualizují v " +"uživatelském rozhraní" #: data/com.usebottles.bottles.metainfo.xml.in:157 msgid "More FSR fixes" diff --git a/po/de.po b/po/de.po index 22704fb541e..6fdea2e0356 100644 --- a/po/de.po +++ b/po/de.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: bottles\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-03-27 13:50+0530\n" -"PO-Revision-Date: 2024-04-21 13:07+0000\n" -"Last-Translator: David \n" +"PO-Revision-Date: 2024-12-30 04:00+0000\n" +"Last-Translator: Florian Schaupp \n" "Language-Team: German \n" "Language: de\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.5-dev\n" +"X-Generator: Weblate 5.10-dev\n" #: bottles/backend/managers/backup.py:48 bottles/backend/managers/backup.py:95 msgid "No path specified" @@ -1033,7 +1033,7 @@ msgstr "Neue Bottle erstellen" # Translators: Bottles is a proper noun referring to the app #: bottles/frontend/ui/dialog-crash-report.blp:8 msgid "Bottles Crash Report" -msgstr "Bottles Absturzbericht" +msgstr "Bottles-Absturzbericht" #: bottles/frontend/ui/dialog-crash-report.blp:18 #: bottles/frontend/ui/dialog-duplicate.blp:22 @@ -1241,8 +1241,8 @@ msgid "" "Upscales the resolution when using a resolution higher than the game " "resolution in pixels." msgstr "" -"Erhöht die Auflösung, wenn eine Auflösung verwendet wird, die höher ist als " -"die Spielauflösung in Pixel." +"Erhöht die Auflösung, wenn eine höhere Auflösung als die Spielauflösung in " +"Pixel verwendet wird." #: bottles/frontend/ui/dialog-gamescope.blp:118 msgid "Miscellaneous" @@ -1935,7 +1935,6 @@ msgid "C_reate" msgstr "E_rstellen" #: bottles/frontend/ui/new.blp:53 -#, fuzzy msgid "Bottle Name" msgstr "Bottle-Name" @@ -3130,7 +3129,7 @@ msgstr "Absturz beim Erstellen einer Bottle behoben" #: data/com.usebottles.bottles.metainfo.xml.in:111 msgid "Major change: Redesign New Bottle interface" -msgstr "Große Änderung: Neugestaltung der neuen Bottles oberfläche" +msgstr "Große Änderung: Neugestaltung der neuen Bottles Oberfläche" #: data/com.usebottles.bottles.metainfo.xml.in:112 msgid "Quality of life improvements:" @@ -3138,7 +3137,7 @@ msgstr "Verbesserung der Nutzererfahrung:" #: data/com.usebottles.bottles.metainfo.xml.in:114 msgid "Replace emote-love icon with library in library page" -msgstr "" +msgstr "Herz-Emoji durch Bibliothek Icon auf der Bibliothek Seite ersetzt" #: data/com.usebottles.bottles.metainfo.xml.in:115 msgid "Add toast for \"Run Executable\"" @@ -3150,7 +3149,7 @@ msgstr "Fehlerbehebungen:" #: data/com.usebottles.bottles.metainfo.xml.in:119 msgid "Adding shortcut to Steam resulted an error" -msgstr "" +msgstr "Beim Hinzufügen der Steam-Verknüpfung ist ein Fehler aufgetreten" #: data/com.usebottles.bottles.metainfo.xml.in:120 msgid "Importing backups resulted an error" @@ -3166,6 +3165,8 @@ msgid "" "Various library related fixes, like empty covers, and crashes related to " "missing entries" msgstr "" +"Diverse Reparaturen betreffend die Bibliothek, beispielsweise leere Symbole " +"oder Abstürze aufgrund fehlenden Einträgen" #: data/com.usebottles.bottles.metainfo.xml.in:123 msgid "Fix various issues related to text encoding" @@ -3183,7 +3184,7 @@ msgstr "Korrektes Versionsdatum" #: data/com.usebottles.bottles.metainfo.xml.in:138 msgid "Hide NVIDIA-related critical errors on non NVIDIA systems" -msgstr "" +msgstr "NVIDIA bezogene, kritische Fehler auf nicht-NVIDIA Systemen ausblenden" #: data/com.usebottles.bottles.metainfo.xml.in:145 msgid "Gamescope improvements and fixes" @@ -3220,6 +3221,8 @@ msgstr "Weitere Variablen für die Skripterstellung des Installationsprogramms" #: data/com.usebottles.bottles.metainfo.xml.in:152 msgid "Fix onboard dialog showing \"All ready\" while it was in fact not ready" msgstr "" +"Korrektur des Einrichtungs-Dialogs. Dieser hat \"Alles Bereit\" angezeigt, " +"obwohl die Einrichtung noch nicht abgeschlossen war" #: data/com.usebottles.bottles.metainfo.xml.in:153 msgid "Improvement to build system" diff --git a/po/fa.po b/po/fa.po index d353d2de433..b0ea78329f5 100644 --- a/po/fa.po +++ b/po/fa.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: bottles\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-03-27 13:50+0530\n" -"PO-Revision-Date: 2024-09-20 00:40+0000\n" +"PO-Revision-Date: 2024-12-28 22:49+0000\n" "Last-Translator: Danial Behzadi \n" "Language-Team: Persian \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.8-dev\n" +"X-Generator: Weblate 5.10-dev\n" #: bottles/backend/managers/backup.py:48 bottles/backend/managers/backup.py:95 msgid "No path specified" @@ -26,7 +26,7 @@ msgstr "هیچ مسیری مشخّص نشده" #: bottles/backend/managers/backup.py:56 #, python-brace-format msgid "Backup {0}" -msgstr "" +msgstr "پشتیبان گیری از {0}" #: bottles/backend/managers/backup.py:101 #, python-brace-format @@ -72,7 +72,7 @@ msgstr "" #: bottles/backend/managers/manager.py:1209 msgid "Sandboxing userdir…" -msgstr "" +msgstr "گودال ماسه سازی از شاخهٔ کاربری…" #: bottles/backend/managers/manager.py:1250 msgid "Setting Windows version…" @@ -84,7 +84,7 @@ msgstr "" #: bottles/backend/managers/manager.py:1268 msgid "Optimizing environment…" -msgstr "" +msgstr "بهینه سازی محیط…" #: bottles/backend/managers/manager.py:1279 #, python-brace-format @@ -101,15 +101,15 @@ msgstr "" #: bottles/backend/managers/manager.py:1309 msgid "Installing DXVK…" -msgstr "" +msgstr "نصب کردن DXVK…" #: bottles/backend/managers/manager.py:1317 msgid "Installing VKD3D…" -msgstr "" +msgstr "نصب کردن VKD3D…" #: bottles/backend/managers/manager.py:1326 msgid "Installing DXVK-NVAPI…" -msgstr "" +msgstr "نصب کردن DXVK-NVAPI…" #: bottles/backend/managers/manager.py:1335 #, python-format @@ -122,11 +122,11 @@ msgstr "" #: bottles/backend/managers/manager.py:1353 msgid "Finalizing…" -msgstr "" +msgstr "پایان بندی…" #: bottles/backend/managers/manager.py:1364 msgid "Caching template…" -msgstr "" +msgstr "انبارش الگو…" #: bottles/backend/managers/versioning.py:83 msgid "Committing state …" @@ -155,9 +155,8 @@ msgid "Restoring state {} …" msgstr "" #: bottles/backend/managers/versioning.py:162 -#, fuzzy msgid "State not found" -msgstr "حذف کننده" +msgstr "وضعیت پیدا نشد" #: bottles/backend/managers/versioning.py:168 msgid "State {} is already the active state" @@ -182,7 +181,7 @@ msgstr "نام بطری" #: bottles/frontend/main.py:144 msgid "Pass arguments" -msgstr "" +msgstr "فرستادن آرگومان‌ها" #: bottles/frontend/main.py:203 msgid "Invalid URI (syntax: bottles:run//)" @@ -214,15 +213,13 @@ msgstr "" # Translators: Bottles is a proper noun referring to the app #: bottles/frontend/ui/about.blp:5 -#, fuzzy msgid "Copyright © 2017 Bottles Developers" -msgstr "© ۲۰۱۷-۲۰۲۲ - توسعه دهندگان Bottles" +msgstr "حق رونوشت © ۲۰۱۷ توسعه دهندگان بطری‌ها" # Translators: Bottles is a proper noun referring to the app #: bottles/frontend/ui/about.blp:10 -#, fuzzy msgid "Bottles Developers" -msgstr "© ۲۰۱۷-۲۰۲۲ - توسعه دهندگان Bottles" +msgstr "توسعه دهندگان بطری‌ها" #: bottles/frontend/ui/about.blp:12 msgid "translator_credits" @@ -239,9 +236,8 @@ msgid "Uninstall" msgstr "حذف نصب" #: bottles/frontend/ui/component-entry.blp:23 -#, fuzzy msgid "Browse Files" -msgstr "مرور فایل ها" +msgstr "مرور پرونده‌ها" #: bottles/frontend/ui/component-entry.blp:34 msgid "" @@ -251,7 +247,7 @@ msgstr "" #: bottles/frontend/ui/component-entry.blp:45 msgid "Download & Install" -msgstr "دانلود و نصب" +msgstr "بارگیری و نصب" #: bottles/frontend/ui/component-entry.blp:58 msgid "0%" @@ -259,7 +255,7 @@ msgstr "۰٪" #: bottles/frontend/ui/dependency-entry.blp:16 msgid "Show Manifest" -msgstr "" +msgstr "نمایش بیانیه" #: bottles/frontend/ui/dependency-entry.blp:20 msgid "License" @@ -267,29 +263,28 @@ msgstr "مجوز" #: bottles/frontend/ui/dependency-entry.blp:24 msgid "Reinstall" -msgstr "نصب مجدد" +msgstr "نصب دوباره" #: bottles/frontend/ui/dependency-entry.blp:36 #: bottles/frontend/ui/installer-entry.blp:27 msgid "Report a Bug…" -msgstr "" +msgstr "گزارش اشکال…" #: bottles/frontend/ui/dependency-entry.blp:42 msgid "Dependency name" -msgstr "" +msgstr "نام وابستگی" #: bottles/frontend/ui/dependency-entry.blp:44 msgid "Dependency description" -msgstr "" +msgstr "شرح وابستگی" #: bottles/frontend/ui/dependency-entry.blp:51 msgid "Category" msgstr "دسته" #: bottles/frontend/ui/dependency-entry.blp:64 -#, fuzzy msgid "Download & Install this Dependency" -msgstr "دانلود و نصب وابستگی‌ها" +msgstr "بارگیری و نصب وابستگی‌ها" #: bottles/frontend/ui/dependency-entry.blp:79 msgid "" @@ -299,11 +294,11 @@ msgstr "" #: bottles/frontend/ui/dependency-entry.blp:93 msgid "Dependency Menu" -msgstr "" +msgstr "فهرست وابستگی" #: bottles/frontend/ui/details-bottle.blp:16 msgid "Troubleshooting" -msgstr "" +msgstr "اشکال‌زدایی" #: bottles/frontend/ui/details-bottle.blp:24 msgid "Browse Files…" @@ -320,7 +315,7 @@ msgstr "" #: bottles/frontend/ui/details-bottle.blp:33 msgid "Full Backup…" -msgstr "" +msgstr "پشتبان کامل…" #: bottles/frontend/ui/details-bottle.blp:37 #: bottles/frontend/ui/importer.blp:68 @@ -335,14 +330,12 @@ msgstr "برون‌ریزی پیکربندی…" #: bottles/frontend/ui/details-bottle.blp:45 #: bottles/frontend/views/bottle_details.py:344 -#, fuzzy msgid "Show Hidden Programs" -msgstr "نمایش/مخفی سازی برنامه های حذف شده" +msgstr "نمایش برنامه‌های نهفته" #: bottles/frontend/ui/details-bottle.blp:49 -#, fuzzy msgid "Search for new programs" -msgstr "جست و جو برای برنامه های نصب شده" +msgstr "جست‌وجوی برنامه‌های جدید" #: bottles/frontend/ui/details-bottle.blp:56 msgid "Delete Bottle…" @@ -352,7 +345,7 @@ msgstr "حذف بطری…" #: bottles/frontend/ui/details-dependencies.blp:99 #: bottles/frontend/ui/details-installers.blp:68 msgid "Secondary Menu" -msgstr "" +msgstr "فهرست ثانویه" #: bottles/frontend/ui/details-bottle.blp:90 msgid "Force Stop all Processes" @@ -376,27 +369,24 @@ msgstr "راه اندازی مجدد" #: bottles/frontend/ui/details-bottle.blp:118 #: bottles/frontend/ui/dialog-launch-options.blp:6 -#, fuzzy msgid "Launch Options" -msgstr "گزینه های پیشرفته" +msgstr "گزینه‌های اجرا" #: bottles/frontend/ui/details-bottle.blp:135 -#, fuzzy msgid "Run in Terminal" -msgstr "اجرا با ترمینال" +msgstr "اجرا در پایانه" #: bottles/frontend/ui/details-bottle.blp:148 msgid "Drop files to execute them" msgstr "" #: bottles/frontend/ui/details-bottle.blp:164 -#, fuzzy msgid "My bottle" -msgstr "حذف Bottle" +msgstr "بطری‌هایم" #: bottles/frontend/ui/details-bottle.blp:177 msgid "Win64" -msgstr "" +msgstr "Win64" #: bottles/frontend/ui/details-bottle.blp:189 #: bottles/frontend/ui/list-entry.blp:12 bottles/frontend/ui/new.blp:71 @@ -425,7 +415,7 @@ msgstr "۰" #: bottles/frontend/ui/details-bottle.blp:247 msgid "Run Executable…" -msgstr "" +msgstr "اجرای پرونده…" #: bottles/frontend/ui/details-bottle.blp:272 msgid "Programs" @@ -440,7 +430,7 @@ msgstr "" #: bottles/frontend/ui/details-bottle.blp:298 msgid "Add Shortcuts…" -msgstr "" +msgstr "افزودن میان‌برها…" #: bottles/frontend/ui/details-bottle.blp:325 msgid "Install Programs…" @@ -482,7 +472,7 @@ msgstr "" #: bottles/frontend/ui/details-bottle.blp:426 #: bottles/frontend/views/details.py:157 msgid "Task Manager" -msgstr "" +msgstr "مدیر وظیفه" #: bottles/frontend/ui/details-bottle.blp:381 msgid "Manage running programs." @@ -494,15 +484,15 @@ msgstr "ابزارها" #: bottles/frontend/ui/details-bottle.blp:394 msgid "Command Line" -msgstr "" +msgstr "خط فرمان" #: bottles/frontend/ui/details-bottle.blp:395 msgid "Run commands inside the Bottle." -msgstr "" +msgstr "اجرای فرمان‌ها درون بطری." #: bottles/frontend/ui/details-bottle.blp:404 msgid "Registry Editor" -msgstr "" +msgstr "ویرایشگر رجیستری" #: bottles/frontend/ui/details-bottle.blp:405 msgid "Edit the internal registry." @@ -518,7 +508,7 @@ msgstr "کاوشگر" #: bottles/frontend/ui/details-bottle.blp:435 msgid "Debugger" -msgstr "" +msgstr "اشکال‌زدا" #: bottles/frontend/ui/details-bottle.blp:444 #: bottles/frontend/ui/importer.blp:69 bottles/frontend/ui/new.blp:145 @@ -535,13 +525,13 @@ msgstr "" #: bottles/frontend/ui/details-dependencies.blp:9 msgid "Search for dependencies…" -msgstr "" +msgstr "جست‌وجوی وابستگی‌ها…" #: bottles/frontend/ui/details-dependencies.blp:22 #: bottles/frontend/ui/preferences.blp:178 #: bottles/frontend/ui/preferences.blp:235 msgid "You're offline :(" -msgstr "" +msgstr "برون خطید :(" #: bottles/frontend/ui/details-dependencies.blp:25 msgid "Bottles is running in offline mode, so dependencies are not available." @@ -561,7 +551,7 @@ msgstr "" #: bottles/frontend/ui/details-dependencies.blp:77 msgid "Report Missing Dependency" -msgstr "" +msgstr "گزارش وابستگی غایب" #: bottles/frontend/ui/details-dependencies.blp:81 msgid "Read Documentation." @@ -592,9 +582,8 @@ msgid "" msgstr "" #: bottles/frontend/ui/details-installers.blp:29 -#, fuzzy msgid "No Installers Found" -msgstr "حذف کننده" +msgstr "هیچ نصب کننده‌ای پیدا نشد" #: bottles/frontend/ui/details-installers.blp:32 msgid "" @@ -604,9 +593,8 @@ msgstr "" #: bottles/frontend/ui/details-installers.blp:50 #: bottles/frontend/ui/details-versioning.blp:36 #: bottles/frontend/ui/preferences.blp:81 -#, fuzzy msgid "Read Documentation" -msgstr "مطالعه مستندات" +msgstr "خواندن مستندات" #: bottles/frontend/ui/details-preferences.blp:6 #: bottles/frontend/ui/dialog-duplicate.blp:52 @@ -629,7 +617,7 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:27 #: bottles/frontend/ui/preferences.blp:262 msgid "DXVK" -msgstr "" +msgstr "DXVK" #: bottles/frontend/ui/details-preferences.blp:28 msgid "Improve Direct3D 8/9/10/11 compatibility by translating it to Vulkan." @@ -642,7 +630,7 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:40 #: bottles/frontend/ui/preferences.blp:266 msgid "VKD3D" -msgstr "" +msgstr "VKD3D" #: bottles/frontend/ui/details-preferences.blp:41 msgid "Improve Direct3D 12 compatibility by translating it to Vulkan." @@ -654,7 +642,7 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:54 msgid "DXVK NVAPI" -msgstr "" +msgstr "DXVK NVAPI" #: bottles/frontend/ui/details-preferences.blp:58 #: bottles/frontend/ui/details-preferences.blp:93 @@ -664,16 +652,15 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:68 #: bottles/frontend/ui/preferences.blp:274 msgid "LatencyFleX" -msgstr "" +msgstr "LatencyFleX" #: bottles/frontend/ui/details-preferences.blp:69 msgid "Increase responsiveness. Can be detected by some anti-cheat software." msgstr "" #: bottles/frontend/ui/details-preferences.blp:71 -#, fuzzy msgid "Updating LatencyFleX, please wait…" -msgstr "در حال بروزرسانی نسخه ویندوز، لطفا صبر کنید…" +msgstr "به‌روز رساندن LatencyFleX. لطفاً شکیبا باشید…" #: bottles/frontend/ui/details-preferences.blp:84 msgid "Display" @@ -691,7 +678,7 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:105 msgid "FidelityFX Super Resolution" -msgstr "" +msgstr "ابروضوح FidelityFX" #: bottles/frontend/ui/details-preferences.blp:106 msgid "Increase performance at the expense of visuals. Only works on Vulkan." @@ -702,9 +689,8 @@ msgid "Manage FidelityFX Super Resolution settings" msgstr "" #: bottles/frontend/ui/details-preferences.blp:125 -#, fuzzy msgid "Discrete Graphics" -msgstr "گرافیک" +msgstr "گرافیک اختصاصی" #: bottles/frontend/ui/details-preferences.blp:126 msgid "" @@ -714,7 +700,7 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:135 msgid "Post-Processing Effects" -msgstr "" +msgstr "جلوه‌های پس از پردازش" #: bottles/frontend/ui/details-preferences.blp:136 msgid "" @@ -734,9 +720,8 @@ msgid "Manage Gamescope settings" msgstr "" #: bottles/frontend/ui/details-preferences.blp:171 -#, fuzzy msgid "Advanced Display Settings" -msgstr "تنظیمات نمایش" +msgstr "تنظیمات نمایش پیش‌رفته" #: bottles/frontend/ui/details-preferences.blp:184 msgid "Performance" @@ -756,20 +741,19 @@ msgstr "سیستم" #: bottles/frontend/ui/details-preferences.blp:194 msgid "Esync" -msgstr "" +msgstr "Esync" #: bottles/frontend/ui/details-preferences.blp:195 msgid "Fsync" -msgstr "" +msgstr "Fsync" #: bottles/frontend/ui/details-preferences.blp:196 msgid "Futex2" -msgstr "" +msgstr "Futex2" #: bottles/frontend/ui/details-preferences.blp:202 -#, fuzzy msgid "Monitor Performance" -msgstr "عملکرد" +msgstr "عملکرد نمایشگر" #: bottles/frontend/ui/details-preferences.blp:203 msgid "" @@ -778,9 +762,8 @@ msgid "" msgstr "" #: bottles/frontend/ui/details-preferences.blp:211 -#, fuzzy msgid "Feral GameMode" -msgstr "استفاده از GameMode" +msgstr "حالت بازی Feral" #: bottles/frontend/ui/details-preferences.blp:212 msgid "" @@ -814,13 +797,12 @@ msgid "Compatibility" msgstr "سازگاری" #: bottles/frontend/ui/details-preferences.blp:254 -#, fuzzy msgid "Windows Version" -msgstr "نسخه ویندوز" +msgstr "نگارش ویندوز" #: bottles/frontend/ui/details-preferences.blp:257 msgid "Updating Windows version, please wait…" -msgstr "در حال بروزرسانی نسخه ویندوز، لطفا صبر کنید…" +msgstr "به‌روز کردن نگارش ویندوز. لطفاً‌ شکیبا باشید…" #: bottles/frontend/ui/details-preferences.blp:266 msgid "Language" @@ -832,7 +814,7 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:275 msgid "Dedicated Sandbox" -msgstr "" +msgstr "گودال ماسهٔ اختصاصی" #: bottles/frontend/ui/details-preferences.blp:276 msgid "Use a restricted/managed environment for this bottle." @@ -867,16 +849,15 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:315 #: bottles/frontend/ui/dialog-launch-options.blp:83 msgid "Working Directory" -msgstr "" +msgstr "شاخهٔ کاری" #: bottles/frontend/ui/details-preferences.blp:318 #: bottles/frontend/ui/dialog-launch-options.blp:59 #: bottles/frontend/ui/dialog-launch-options.blp:90 #: bottles/frontend/ui/new.blp:150 bottles/frontend/ui/new.blp:181 #: bottles/frontend/ui/preferences.blp:136 -#, fuzzy msgid "Reset to Default" -msgstr "بطری‌ها" +msgstr "بازنشانی به پیش‌گزیده" #: bottles/frontend/ui/details-preferences.blp:339 #: bottles/frontend/ui/preferences.blp:157 bottles/frontend/views/new.py:78 @@ -888,23 +869,20 @@ msgstr "(پیش‌گزیده)" #: bottles/frontend/ui/dialog-dll-overrides.blp:7 #: bottles/frontend/ui/dialog-dll-overrides.blp:12 msgid "DLL Overrides" -msgstr "" +msgstr "پایمالی DLLها" #: bottles/frontend/ui/details-preferences.blp:357 #: bottles/frontend/ui/dialog-env-vars.blp:20 -#, fuzzy msgid "Environment Variables" -msgstr "افزودن سریع متغییر های محیطی" +msgstr "متغیّرهای محیطی" #: bottles/frontend/ui/details-preferences.blp:367 -#, fuzzy msgid "Manage Drives" -msgstr "مدیریت درایو ها" +msgstr "مدیریت گرداننده‌ها" #: bottles/frontend/ui/details-preferences.blp:381 -#, fuzzy msgid "Automatic Snapshots" -msgstr "نسخه سازی بطری‌ها ( اختیاری )" +msgstr "عکس‌های فوری خودکار" #: bottles/frontend/ui/details-preferences.blp:382 msgid "" @@ -931,9 +909,8 @@ msgid "Exclude paths in snapshots." msgstr "" #: bottles/frontend/ui/details-preferences.blp:405 -#, fuzzy msgid "Manage Patterns" -msgstr "مدیریت درایو ها" +msgstr "مدیریت الگوها" #: bottles/frontend/ui/details-taskmanager.blp:17 msgid "Refresh" @@ -944,9 +921,8 @@ msgid "Stop process" msgstr "توقّف فرایند" #: bottles/frontend/ui/details-versioning.blp:18 -#, fuzzy msgid "No Snapshots Found" -msgstr "حذف کننده" +msgstr "هیچ عکس فوری‌ای پیدا نشد" #: bottles/frontend/ui/details-versioning.blp:19 msgid "Create your first snapshot to start saving states of your preferences." @@ -961,9 +937,8 @@ msgid "Save the bottle state." msgstr "" #: bottles/frontend/ui/details-versioning.blp:78 -#, fuzzy msgid "Create new Snapshot" -msgstr "بطری‌ها" +msgstr "ایجاد عکس فوری جدید" #: bottles/frontend/ui/details.blp:16 msgid "Details" @@ -971,18 +946,16 @@ msgstr "جزییات" #: bottles/frontend/ui/details.blp:24 bottles/frontend/ui/details.blp:64 #: bottles/frontend/ui/importer.blp:15 -#, fuzzy msgid "Go Back" -msgstr "برگشت" +msgstr "بازگشت" #: bottles/frontend/ui/details.blp:75 msgid "Operations" msgstr "عملیات" #: bottles/frontend/ui/dialog-bottle-picker.blp:4 -#, fuzzy msgid "Select Bottle" -msgstr "حذف Bottle" +msgstr "گزینش بطری" #: bottles/frontend/ui/dialog-bottle-picker.blp:16 #: bottles/frontend/ui/dialog-proton-alert.blp:16 @@ -998,9 +971,8 @@ msgstr "گزینش" #: bottles/frontend/ui/dialog-bottle-picker.blp:38 #: bottles/frontend/ui/new.blp:9 bottles/frontend/ui/new.blp:49 #: bottles/frontend/ui/window.blp:25 -#, fuzzy msgid "Create New Bottle" -msgstr "بطری‌ها" +msgstr "ایجاد بطری جدید" # Translators: Bottles is a proper noun referring to the app #: bottles/frontend/ui/dialog-crash-report.blp:8 @@ -1021,9 +993,8 @@ msgid "_Cancel" msgstr "_لغو" #: bottles/frontend/ui/dialog-crash-report.blp:25 -#, fuzzy msgid "Send Report" -msgstr "ارسال گزارش" +msgstr "فرستادن گزارش" #: bottles/frontend/ui/dialog-crash-report.blp:44 msgid "" @@ -1041,7 +1012,7 @@ msgstr "" #: bottles/frontend/ui/dialog-crash-report.blp:89 msgid "I still want to report." -msgstr "" +msgstr "هنوز می‌خواهم گزارش دهم." #: bottles/frontend/ui/dialog-crash-report.blp:95 msgid "Advanced options" @@ -1049,7 +1020,7 @@ msgstr "گزینه های پیشرفته" #: bottles/frontend/ui/dialog-deps-check.blp:13 msgid "Incomplete package" -msgstr "" +msgstr "بستهٔ ناقص" #: bottles/frontend/ui/dialog-deps-check.blp:14 msgid "" @@ -1069,13 +1040,12 @@ msgid "" msgstr "" #: bottles/frontend/ui/dialog-dll-overrides.blp:15 -#, fuzzy msgid "New Override" -msgstr "متغیر جدید" +msgstr "پایمالی جدید" #: bottles/frontend/ui/dialog-dll-overrides.blp:21 msgid "Overrides" -msgstr "" +msgstr "پایمالی‌ها" #: bottles/frontend/ui/dialog-drives.blp:7 msgid "Drives" @@ -1089,21 +1059,19 @@ msgstr "" #: bottles/frontend/ui/dialog-drives.blp:27 msgid "Letter" -msgstr "" +msgstr "حرف" #: bottles/frontend/ui/dialog-drives.blp:49 -#, fuzzy msgid "Existing Drives" -msgstr "درایو های موجود" +msgstr "گرداننده‌های موجود" #: bottles/frontend/ui/dialog-duplicate.blp:16 -#, fuzzy msgid "Duplicate Bottle" -msgstr "حذف Bottle" +msgstr "تکثیر بطری" #: bottles/frontend/ui/dialog-duplicate.blp:38 msgid "Duplicate" -msgstr "" +msgstr "تکثیر" #: bottles/frontend/ui/dialog-duplicate.blp:49 msgid "Enter a name for the duplicate of the Bottle." @@ -1111,18 +1079,18 @@ msgstr "ورود نامی برای دوقلوی بطری." #: bottles/frontend/ui/dialog-duplicate.blp:69 msgid "Duplicating…" -msgstr "" +msgstr "تکثیر کردن…" #: bottles/frontend/ui/dialog-duplicate.blp:78 #: bottles/frontend/ui/dialog-installer.blp:103 #: bottles/frontend/ui/dialog-upgrade-versioning.blp:112 #: bottles/frontend/views/new.py:177 msgid "This could take a while." -msgstr "" +msgstr "ممکن است کمی طول بکشد." #: bottles/frontend/ui/dialog-duplicate.blp:97 msgid "Bottle Duplicated" -msgstr "" +msgstr "بطری تکثیر شد" #: bottles/frontend/ui/dialog-env-vars.blp:28 msgid "" @@ -1132,16 +1100,15 @@ msgstr "" #: bottles/frontend/ui/dialog-env-vars.blp:31 msgid "Variable Name" -msgstr "" +msgstr "نام متغیّر" #: bottles/frontend/ui/dialog-env-vars.blp:37 -#, fuzzy msgid "Existing Variables" -msgstr "درایو های موجود" +msgstr "متغیّرهای موجود" #: bottles/frontend/ui/dialog-exclusion-patterns.blp:20 msgid "Exclusion Patterns" -msgstr "" +msgstr "الگوهای بیرون گذاشتن" #: bottles/frontend/ui/dialog-exclusion-patterns.blp:28 msgid "" @@ -1154,13 +1121,12 @@ msgid "Pattern" msgstr "الگو" #: bottles/frontend/ui/dialog-exclusion-patterns.blp:37 -#, fuzzy msgid "Existing Patterns" -msgstr "درایو های موجود" +msgstr "الگوهای موجود" #: bottles/frontend/ui/dialog-gamescope.blp:6 msgid "Gamescope Settings" -msgstr "" +msgstr "تنظیمات Gamescope" #: bottles/frontend/ui/dialog-gamescope.blp:30 #: bottles/frontend/ui/dialog-launch-options.blp:32 @@ -1174,9 +1140,8 @@ msgid "Manage how games should be displayed." msgstr "" #: bottles/frontend/ui/dialog-gamescope.blp:44 -#, fuzzy msgid "Game Resolution" -msgstr "رزولوشن بازی" +msgstr "وضوح بازی" #: bottles/frontend/ui/dialog-gamescope.blp:45 msgid "Uses the resolution of the video game as a reference in pixels." @@ -1185,17 +1150,16 @@ msgstr "" #: bottles/frontend/ui/dialog-gamescope.blp:48 #: bottles/frontend/ui/dialog-gamescope.blp:85 msgid "Width" -msgstr "عرض" +msgstr "پهنا" #: bottles/frontend/ui/dialog-gamescope.blp:64 #: bottles/frontend/ui/dialog-gamescope.blp:101 msgid "Height" -msgstr "ارتفاع" +msgstr "بلندا" #: bottles/frontend/ui/dialog-gamescope.blp:81 -#, fuzzy msgid "Window Resolution" -msgstr "نسخه ویندوز" +msgstr "وضوح پنجره" #: bottles/frontend/ui/dialog-gamescope.blp:82 msgid "" @@ -1216,18 +1180,16 @@ msgid "Frame Rate Limit When Unfocused" msgstr "" #: bottles/frontend/ui/dialog-gamescope.blp:153 -#, fuzzy msgid "Integer Scaling" -msgstr "پیکربندی" +msgstr "مقیاس بندی صحیح" #: bottles/frontend/ui/dialog-gamescope.blp:162 -#, fuzzy msgid "Window Type" -msgstr "نوع پنجره" +msgstr "گونهٔ پنجره" #: bottles/frontend/ui/dialog-gamescope.blp:166 msgid "Borderless" -msgstr "" +msgstr "بی‌حاشیه" #: bottles/frontend/ui/dialog-gamescope.blp:172 msgid "Fullscreen" @@ -1239,7 +1201,7 @@ msgstr "" #: bottles/frontend/ui/dialog-installer.blp:45 msgid "Start Installation" -msgstr "" +msgstr "آغاز نصب" #: bottles/frontend/ui/dialog-installer.blp:64 msgid "" @@ -1256,9 +1218,8 @@ msgid "Completed!" msgstr "کامل شده!" #: bottles/frontend/ui/dialog-installer.blp:130 -#, fuzzy msgid "Show Programs" -msgstr "برنامه ها" +msgstr "نمایش برنامه‌ها" #: bottles/frontend/ui/dialog-installer.blp:148 msgid "Installation Failed!" @@ -1266,12 +1227,11 @@ msgstr "نصب شکست خورد!" #: bottles/frontend/ui/dialog-installer.blp:149 msgid "Something went wrong." -msgstr "" +msgstr "چیزی اشتباه پیش رفت." #: bottles/frontend/ui/dialog-journal.blp:9 -#, fuzzy msgid "All messages" -msgstr "حذف پیغام" +msgstr "همهٔ پیام‌ها" #: bottles/frontend/ui/dialog-journal.blp:13 msgid "Critical" @@ -1311,11 +1271,11 @@ msgstr "" #: bottles/frontend/ui/dialog-launch-options.blp:43 msgid "Custom Arguments" -msgstr "" +msgstr "آرگومان‌های سفارشی" #: bottles/frontend/ui/dialog-launch-options.blp:46 msgid "Command Arguments" -msgstr "" +msgstr "آرگومان‌های فرمان" #: bottles/frontend/ui/dialog-launch-options.blp:47 #, c-format @@ -1324,7 +1284,7 @@ msgstr "" #: bottles/frontend/ui/dialog-launch-options.blp:52 msgid "Post-run Script" -msgstr "" +msgstr "کدنوشتهٔ پس از اجرا" #. endregion #: bottles/frontend/ui/dialog-launch-options.blp:53 @@ -1333,9 +1293,8 @@ msgid "Choose a script which should be executed after run." msgstr "" #: bottles/frontend/ui/dialog-launch-options.blp:70 -#, fuzzy msgid "Choose a Script" -msgstr "انتخاب مسیر" +msgstr "گزینش کدنوشته" #: bottles/frontend/ui/dialog-launch-options.blp:84 #: bottles/frontend/windows/launchoptions.py:55 @@ -1344,9 +1303,8 @@ msgstr "" #: bottles/frontend/ui/dialog-launch-options.blp:101 #: bottles/frontend/ui/drive-entry.blp:22 -#, fuzzy msgid "Choose a Directory" -msgstr "انتخاب مسیر" +msgstr "گزینش شاخه" #: bottles/frontend/ui/dialog-launch-options.blp:114 msgid "These settings will override the default settings for this executable." @@ -1354,24 +1312,23 @@ msgstr "" #: bottles/frontend/ui/dialog-launch-options.blp:115 msgid "Preferences Overrides" -msgstr "" +msgstr "پایمالی‌های ترجیحات" #: bottles/frontend/ui/dialog-launch-options.blp:119 -#, fuzzy msgid "Reset to Bottle's Defaults" -msgstr "بطری‌ها" +msgstr "بازنشانی به پیش‌گزیدهٔ بطری‌ها" #: bottles/frontend/ui/dialog-launch-options.blp:165 msgid "Virtual Desktop" -msgstr "" +msgstr "میزکار مجازی" #: bottles/frontend/ui/dialog-proton-alert.blp:4 msgid "Proton Disclaimer" -msgstr "" +msgstr "رفع مسئولیت پروتون" #: bottles/frontend/ui/dialog-proton-alert.blp:21 msgid "Use Proton" -msgstr "" +msgstr "استفاده از پروتون" #: bottles/frontend/ui/dialog-proton-alert.blp:35 msgid "" @@ -1401,9 +1358,8 @@ msgid "Choose a new name for the selected program." msgstr "" #: bottles/frontend/ui/dialog-rename.blp:33 -#, fuzzy msgid "New Name" -msgstr "نام" +msgstr "نام جدید" #: bottles/frontend/ui/dialog-run-args.blp:13 msgid "Run With Arguments" @@ -1424,23 +1380,20 @@ msgid "e.g.: -opengl -SkipBuildPatchPrereq" msgstr "" #: bottles/frontend/ui/dialog-sandbox.blp:7 -#, fuzzy msgid "Sandbox Settings" -msgstr "تنظیمات نمایش" +msgstr "تنظیمات گودال ماسه" #: bottles/frontend/ui/dialog-sandbox.blp:25 msgid "Share Network" -msgstr "" +msgstr "هم‌رسانی شبکه" #: bottles/frontend/ui/dialog-sandbox.blp:34 -#, fuzzy msgid "Share Sound" -msgstr "حذف کننده" +msgstr "هم‌رسانی صدا" #: bottles/frontend/ui/dialog-upgrade-versioning.blp:16 -#, fuzzy msgid "Upgrade Needed" -msgstr "ارتقا" +msgstr "نیازمند ارتقا" #: bottles/frontend/ui/dialog-upgrade-versioning.blp:38 #: bottles/frontend/ui/onboard.blp:81 @@ -1449,7 +1402,7 @@ msgstr "ادامه" #: bottles/frontend/ui/dialog-upgrade-versioning.blp:47 msgid "Launch upgrade" -msgstr "" +msgstr "اجرای ارتقا" #: bottles/frontend/ui/dialog-upgrade-versioning.blp:66 msgid "New Versioning System" @@ -1476,7 +1429,7 @@ msgstr "" #: bottles/frontend/ui/dialog-upgrade-versioning.blp:103 msgid "Re-initializing Repository…" -msgstr "" +msgstr "مقداردهی نخستین دوبارهٔ مخزن…" #: bottles/frontend/ui/dialog-upgrade-versioning.blp:133 msgid "Done! Please restart Bottles." @@ -1492,9 +1445,8 @@ msgid "Default" msgstr "پیش‌گزیده" #: bottles/frontend/ui/dialog-vkbasalt.blp:48 -#, fuzzy msgid "Default Settings" -msgstr "تنظیمات نمایش" +msgstr "تنظیمات پیش‌گزیده" #: bottles/frontend/ui/dialog-vkbasalt.blp:57 msgid "Effects are applied according to the list order." @@ -1541,9 +1493,8 @@ msgid "Fast Approximate Anti-Aliasing" msgstr "" #: bottles/frontend/ui/dialog-vkbasalt.blp:163 -#, fuzzy msgid "Subpixel Quality" -msgstr "کیفیت فوق العاده" +msgstr "کیفیت زیرپیکسل" #: bottles/frontend/ui/dialog-vkbasalt.blp:191 msgid "Quality Edge Threshold" @@ -1559,7 +1510,7 @@ msgstr "" #: bottles/frontend/ui/dialog-vkbasalt.blp:252 msgid "Edge Detection" -msgstr "" +msgstr "تشخیص لبه" #: bottles/frontend/ui/dialog-vkbasalt.blp:267 msgid "Luma" @@ -1677,7 +1628,7 @@ msgstr "برداشتن" #: bottles/frontend/ui/drive-entry.blp:5 msgid "/point/to/path" -msgstr "" +msgstr "/point/to/path" #: bottles/frontend/ui/env-var-entry.blp:4 #: bottles/frontend/ui/exclusion-pattern-entry.blp:4 @@ -1710,9 +1661,8 @@ msgid "Search again for prefixes" msgstr "" #: bottles/frontend/ui/importer.blp:38 -#, fuzzy msgid "No Prefixes Found" -msgstr "برنامه ها" +msgstr "هیج پیشوندی پیدا نشد" #: bottles/frontend/ui/importer.blp:39 msgid "" @@ -1722,25 +1672,23 @@ msgstr "" #: bottles/frontend/ui/importer.blp:74 msgid "Full Archive" -msgstr "" +msgstr "بایگانی کامل" #: bottles/frontend/ui/installer-entry.blp:16 msgid "Show Manifest…" -msgstr "" +msgstr "نمایش بیانیه…" #: bottles/frontend/ui/installer-entry.blp:20 msgid "Read Review…" -msgstr "" +msgstr "خواندن بازبینی…" #: bottles/frontend/ui/installer-entry.blp:34 -#, fuzzy msgid "Installer name" -msgstr "حذف کننده" +msgstr "نام نصب کننده" #: bottles/frontend/ui/installer-entry.blp:35 -#, fuzzy msgid "Installer description" -msgstr "حذف کننده" +msgstr "شرح نصب کننده" #: bottles/frontend/ui/installer-entry.blp:42 msgid "Unknown" @@ -1748,16 +1696,15 @@ msgstr "ناشناخته" #: bottles/frontend/ui/installer-entry.blp:51 msgid "Install this Program" -msgstr "" +msgstr "نصب این برنامه" #: bottles/frontend/ui/installer-entry.blp:69 -#, fuzzy msgid "Program Menu" -msgstr "برنامه ها" +msgstr "فهرست برنامه‌ها" #: bottles/frontend/ui/library-entry.blp:36 msgid "No Thumbnail" -msgstr "" +msgstr "بدون بندانگشتی" #: bottles/frontend/ui/library-entry.blp:57 msgid "Launch" @@ -1769,14 +1716,12 @@ msgid "Launch with Steam" msgstr "اجرا با استیم" #: bottles/frontend/ui/library-entry.blp:108 -#, fuzzy msgid "Item name" -msgstr "تغییر نام" +msgstr "نام مورد" #: bottles/frontend/ui/library-entry.blp:132 -#, fuzzy msgid "Remove from Library" -msgstr "حذف از برنامه ها" +msgstr "برداشتن از کتابخانه" #: bottles/frontend/ui/library-entry.blp:143 msgid "Stop" @@ -1815,11 +1760,11 @@ msgstr "" #: bottles/frontend/ui/list.blp:12 msgid "Search your bottles…" -msgstr "" +msgstr "جست‌وجوی بطری‌هایتان…" #: bottles/frontend/ui/list.blp:28 msgid "Steam Proton" -msgstr "" +msgstr "پروتون استیم" # Translators: Bottles is a generic noun here, referring to wine prefixes and is to be translated #: bottles/frontend/ui/list.blp:42 bottles/frontend/windows/main_window.py:191 @@ -1833,7 +1778,7 @@ msgstr "ایجاد بطری جدید…" #: bottles/frontend/ui/list.blp:63 msgid "No Results Found" -msgstr "" +msgstr "هیج نتیجه‌ای پیدا نشد" #: bottles/frontend/ui/list.blp:64 msgid "Try a different search." @@ -1841,7 +1786,7 @@ msgstr "" #: bottles/frontend/ui/loading.blp:13 msgid "Starting up…" -msgstr "" +msgstr "آغاز به کار…" #: bottles/frontend/ui/local-resource-entry.blp:4 msgid "This resource is missing." @@ -1856,9 +1801,8 @@ msgid "C_reate" msgstr "_ایجاد" #: bottles/frontend/ui/new.blp:53 -#, fuzzy msgid "Bottle Name" -msgstr "بطری‌ها" +msgstr "نام بطری" #: bottles/frontend/ui/new.blp:75 msgid "_Application" @@ -1866,7 +1810,7 @@ msgstr "_برنامه" #: bottles/frontend/ui/new.blp:88 msgid "_Gaming" -msgstr "_بازی کردن" +msgstr "با_زی" #: bottles/frontend/ui/new.blp:101 msgid "C_ustom" @@ -1877,9 +1821,8 @@ msgid "Custom" msgstr "سفارشی" #: bottles/frontend/ui/new.blp:118 -#, fuzzy msgid "Share User Directory" -msgstr "انتخاب مسیر" +msgstr "هم‌رسانی شاخهٔ کاربر" #: bottles/frontend/ui/new.blp:119 msgid "" @@ -1901,9 +1844,8 @@ msgid "Import a custom configuration." msgstr "درون‌ریزی پیکربندی سفارشی." #: bottles/frontend/ui/new.blp:176 -#, fuzzy msgid "Bottle Directory" -msgstr "انتخاب مسیر" +msgstr "شاخهٔ بطری" #: bottles/frontend/ui/new.blp:177 msgid "Directory that will contain the data of this bottle." @@ -1924,7 +1866,7 @@ msgstr "پیشین" # Translators: Bottles is a proper noun referring to the app #: bottles/frontend/ui/onboard.blp:59 msgid "Welcome to Bottles" -msgstr "" +msgstr "به بطری‌ها خوش آمدید" #: bottles/frontend/ui/onboard.blp:60 msgid "Run Windows Software on Linux." @@ -1932,9 +1874,8 @@ msgstr "اجرای نرم‌افزارهای ویندوزی روی گنو/لین # Translators: Bottles is a generic noun here, referring to wine prefixes and is to be translated #: bottles/frontend/ui/onboard.blp:65 -#, fuzzy msgid "Windows in Bottles" -msgstr "نوع پنجره" +msgstr "ویندوز در بطری‌ها" #: bottles/frontend/ui/onboard.blp:66 msgid "" @@ -1944,7 +1885,7 @@ msgstr "" #: bottles/frontend/ui/onboard.blp:72 msgid "Almost Done" -msgstr "" +msgstr "تقریباً تمام" #: bottles/frontend/ui/onboard.blp:73 msgid "We need a few more minutes to set everything up…" @@ -1952,7 +1893,7 @@ msgstr "" #: bottles/frontend/ui/onboard.blp:105 msgid "All Ready!" -msgstr "" +msgstr "همه چیز آماده است!" #: bottles/frontend/ui/onboard.blp:114 msgid "Please Finish the setup first" @@ -1981,9 +1922,8 @@ msgid "Appearance" msgstr "ظاهر" #: bottles/frontend/ui/preferences.blp:17 -#, fuzzy msgid "Dark Mode" -msgstr "قالب تاریک" +msgstr "حالت تاریک" #: bottles/frontend/ui/preferences.blp:18 msgid "Whether Bottles should use the dark color scheme." @@ -2007,9 +1947,8 @@ msgid "Show notifications for downloads and installs." msgstr "" #: bottles/frontend/ui/preferences.blp:52 -#, fuzzy msgid "Temp Files" -msgstr "پاکسازی فایل‌های موقت" +msgstr "پرونده‌های موقّتی" #: bottles/frontend/ui/preferences.blp:53 msgid "Clean temp files when Bottles launches?" @@ -2064,9 +2003,8 @@ msgid "Advanced" msgstr "پیشرفته" #: bottles/frontend/ui/preferences.blp:131 -#, fuzzy msgid "Bottles Directory" -msgstr "انتخاب مسیر" +msgstr "شاخهٔ بطری‌ها" #: bottles/frontend/ui/preferences.blp:132 msgid "Directory that contains the data of your Bottles." @@ -2098,7 +2036,7 @@ msgstr "" #: bottles/frontend/ui/preferences.blp:270 msgid "DXVK-NVAPI" -msgstr "" +msgstr "DXVK-NVAPI" #: bottles/frontend/ui/preferences.blp:283 msgid "Core" @@ -2110,7 +2048,7 @@ msgstr "زمان اجرا" #: bottles/frontend/ui/preferences.blp:291 msgid "WineBridge" -msgstr "" +msgstr "پل واین" #: bottles/frontend/ui/preferences.blp:297 #: data/com.usebottles.bottles.gschema.xml:66 @@ -2132,65 +2070,57 @@ msgid "In early development." msgstr "" #: bottles/frontend/ui/program-entry.blp:19 -#, fuzzy msgid "Launch with Terminal" -msgstr "اجرا با ترمینال" +msgstr "اجرا در پایانه" #: bottles/frontend/ui/program-entry.blp:25 -#, fuzzy msgid "Browse Path" -msgstr "مرور فایل ها" +msgstr "مرور مسیر" #: bottles/frontend/ui/program-entry.blp:39 msgid "Change Launch Options…" msgstr "تغییر گزینه‌های اجرا…" #: bottles/frontend/ui/program-entry.blp:43 -#, fuzzy msgid "Add to Library" -msgstr "افزودن به کتابخانه من" +msgstr "افزودن به کتابخانه" #: bottles/frontend/ui/program-entry.blp:47 msgid "Add Desktop Entry" -msgstr "" +msgstr "افزودن مدخل میزکار" #: bottles/frontend/ui/program-entry.blp:51 msgid "Add to Steam" -msgstr "" +msgstr "افزودن به استیم" #: bottles/frontend/ui/program-entry.blp:55 msgid "Rename…" msgstr "تغییر نام…" #: bottles/frontend/ui/program-entry.blp:62 -#, fuzzy msgid "Hide Program" -msgstr "برنامه ها" +msgstr "نهفتن برنامه" #: bottles/frontend/ui/program-entry.blp:66 -#, fuzzy msgid "Show Program" -msgstr "برنامه ها" +msgstr "نمایش برنامه" #: bottles/frontend/ui/program-entry.blp:70 -#, fuzzy msgid "Remove from List" -msgstr "حذف از برنامه ها" +msgstr "برداشتن از سیاهه" #: bottles/frontend/ui/program-entry.blp:83 -#, fuzzy msgid "Program name" -msgstr "برنامه ها" +msgstr "نام برنامه" #. Translators: id as identification #: bottles/frontend/ui/state-entry.blp:8 -#, fuzzy msgid "State id" -msgstr "حذف کننده" +msgstr "شناسهٔ وضعیت" #: bottles/frontend/ui/state-entry.blp:9 msgid "State comment" -msgstr "" +msgstr "نظر وضعیت" #: bottles/frontend/ui/state-entry.blp:16 msgid "Restore this Snapshot" @@ -2202,7 +2132,7 @@ msgstr "حذف پیغام" #: bottles/frontend/ui/window.blp:40 msgid "Main Menu" -msgstr "" +msgstr "فهرست اصلی" #: bottles/frontend/ui/window.blp:54 msgid "" @@ -2227,33 +2157,31 @@ msgstr "دربارهٔ بطری‌ها" #: bottles/frontend/views/bottle_details.py:191 #, python-brace-format msgid "File \"{0}\" is not a .exe or .msi file" -msgstr "" +msgstr "پروندهٔ «{0}» از نوع exe یا msi نیست" #: bottles/frontend/views/bottle_details.py:207 #, python-format msgid "Updated: %s" -msgstr "بروز شده: %s" +msgstr "به‌روز شده: %s" #: bottles/frontend/views/bottle_details.py:267 #, python-brace-format msgid "\"{0}\" added" -msgstr "" +msgstr "«{0}» افزوده شد" #: bottles/frontend/views/bottle_details.py:270 #: bottles/frontend/views/bottle_details.py:398 #: bottles/frontend/views/list.py:128 -#, fuzzy msgid "Select Executable" -msgstr "حذف Bottle" +msgstr "گزینش پروندهٔ اجرایی" #: bottles/frontend/views/bottle_details.py:273 msgid "Add" msgstr "افزودن" #: bottles/frontend/views/bottle_details.py:346 -#, fuzzy msgid "Hide Hidden Programs" -msgstr "نمایش/مخفی سازی برنامه های حذف شده" +msgstr "نهفتن برنامه‌های نهفته" #: bottles/frontend/views/bottle_details.py:383 #: bottles/frontend/widgets/library.py:156 @@ -2321,7 +2249,7 @@ msgstr "_حذف" #: bottles/frontend/views/bottle_details.py:521 msgid "Missing Runner" -msgstr "" +msgstr "اجراگر غایب" #: bottles/frontend/views/bottle_details.py:522 msgid "" @@ -2339,7 +2267,7 @@ msgstr "" #: bottles/frontend/views/bottle_details.py:601 msgid "Force _Stop" -msgstr "" +msgstr "توقّف _اجباری" #: bottles/frontend/views/bottle_preferences.py:195 msgid "This feature is unavailable on your system." @@ -2355,9 +2283,8 @@ msgstr "" #: bottles/frontend/views/bottle_preferences.py:301 #: bottles/frontend/windows/launchoptions.py:241 -#, fuzzy msgid "Select Working Directory" -msgstr "انتخاب مسیر" +msgstr "گزینش شاخهٔ کاری" #: bottles/frontend/views/bottle_preferences.py:423 msgid "Directory that contains the data of \"{}\"." @@ -2377,7 +2304,7 @@ msgstr "" #: bottles/frontend/views/details.py:153 msgid "Installers" -msgstr "" +msgstr "نصب کننده‌ها" #: bottles/frontend/views/details.py:234 msgid "Operations in progress, please wait." @@ -2393,12 +2320,12 @@ msgstr "" #: bottles/frontend/views/importer.py:94 msgid "Import failed" -msgstr "" +msgstr "درون‌ریزی شکست خورد" #: bottles/frontend/views/importer.py:108 #: bottles/frontend/views/importer.py:147 msgid "Importing backup…" -msgstr "" +msgstr "درون ریختن پشتیبان…" #: bottles/frontend/views/importer.py:119 msgid "Select a Backup Archive" @@ -2410,13 +2337,12 @@ msgid "Import" msgstr "درون‌ریزی" #: bottles/frontend/views/importer.py:158 bottles/frontend/views/new.py:136 -#, fuzzy msgid "Select a Configuration File" -msgstr "پیکربندی" +msgstr "گزینش پروندهٔ پیکربندی" #: bottles/frontend/views/list.py:60 bottles/frontend/views/list.py:66 msgid "N/A" -msgstr "" +msgstr "N/A" #. Set tooltip text #: bottles/frontend/views/list.py:91 @@ -2430,9 +2356,8 @@ msgid "Launching \"{0}\" in \"{1}\"…" msgstr "اجرای «{0}» در «{1}»…" #: bottles/frontend/views/list.py:235 -#, fuzzy msgid "Your Bottles" -msgstr "بطری‌ها" +msgstr "بطری‌هایتان" #: bottles/frontend/views/loading.py:41 #, python-brace-format @@ -2445,18 +2370,16 @@ msgid "Fetched {0} of {1} packages" msgstr "" #: bottles/frontend/views/new.py:157 -#, fuzzy msgid "Select Bottle Directory" -msgstr "انتخاب مسیر" +msgstr "گزینش شاخهٔ بطری" #: bottles/frontend/views/new.py:176 msgid "Creating Bottle…" msgstr "ایجاد کردن بطری…" #: bottles/frontend/views/new.py:221 -#, fuzzy msgid "Unable to Create Bottle" -msgstr "بطری‌ها" +msgstr "ناتواتن در ایجاد بطری" #: bottles/frontend/views/new.py:225 msgid "Bottle failed to create with one or more errors." @@ -2464,9 +2387,8 @@ msgstr "" #. Show success #: bottles/frontend/views/new.py:232 -#, fuzzy msgid "Bottle Created" -msgstr "بطری‌ها" +msgstr "بطری ایجاد شد" #: bottles/frontend/views/new.py:233 #, python-brace-format @@ -2478,13 +2400,12 @@ msgid "Steam was not found or Bottles does not have enough permissions." msgstr "" #: bottles/frontend/views/preferences.py:176 -#, fuzzy msgid "Select Bottles Path" -msgstr "حذف Bottle" +msgstr "گزینش مسیر بطری‌ها" #: bottles/frontend/views/preferences.py:198 msgid "Relaunch Bottles?" -msgstr "احرای دوبارهٔ بطری‌ها؟" +msgstr "اجرای دوبارهٔ بطری‌ها؟" #: bottles/frontend/views/preferences.py:199 msgid "" @@ -2553,7 +2474,7 @@ msgstr "نصب «{0}» شکست خورد" #: bottles/frontend/widgets/importer.py:68 #, python-brace-format msgid "\"{0}\" imported" -msgstr "" +msgstr "«{0}»‌ درون‌ریخته شده" #: bottles/frontend/widgets/installer.py:49 msgid "" @@ -2615,7 +2536,7 @@ msgstr "" #: bottles/frontend/widgets/program.py:297 #, python-brace-format msgid "Desktop Entry created for \"{0}\"" -msgstr "" +msgstr "مدخل میزکار برای «{0}» ساخته شد" #: bottles/frontend/widgets/program.py:313 #, python-brace-format @@ -2638,23 +2559,20 @@ msgid "" msgstr "" #: bottles/frontend/windows/display.py:102 -#, fuzzy msgid "Updating display settings, please wait…" -msgstr "در حال بروزرسانی نسخه ویندوز، لطفا صبر کنید…" +msgstr "به‌روز کردن تنظیمات نمایش. لطفاُ شکیبا باشید…" #: bottles/frontend/windows/display.py:114 -#, fuzzy msgid "Display settings updated" -msgstr "تنظیمات نمایش" +msgstr "تنظیمات نمایش به‌روز شد" #: bottles/frontend/windows/dlloverrides.py:136 msgid "No overrides found." msgstr "" #: bottles/frontend/windows/drives.py:71 -#, fuzzy msgid "Select Drive Path" -msgstr "حذف Bottle" +msgstr "گزینش مسیر گرداننده" #: bottles/frontend/windows/envvars.py:131 msgid "No environment variables defined." @@ -2675,9 +2593,8 @@ msgid "Copy to clipboard" msgstr "" #: bottles/frontend/windows/installer.py:62 -#, fuzzy msgid "Select Resource File" -msgstr "حذف Bottle" +msgstr "گزینش پروندهٔ منبع" #: bottles/frontend/windows/installer.py:109 msgid "Installing Windows dependencies…" @@ -2723,9 +2640,8 @@ msgid "This setting is different from the bottle's default." msgstr "" #: bottles/frontend/windows/launchoptions.py:215 -#, fuzzy msgid "Select Script" -msgstr "حذف Bottle" +msgstr "گزینش کدنوشته" #: bottles/frontend/windows/main_window.py:220 msgid "Custom Bottles Path not Found" @@ -2742,9 +2658,8 @@ msgstr "بطری‌ها" #: data/com.usebottles.bottles.desktop.in.in:4 #: data/com.usebottles.bottles.metainfo.xml.in:8 -#, fuzzy msgid "Run Windows Software" -msgstr "اجرای نرم‌افزار ویندوز" +msgstr "اجرای نرم‌افزارهای ویندوزی" #: data/com.usebottles.bottles.desktop.in.in:13 msgid "wine;windows;" @@ -2756,15 +2671,15 @@ msgstr "مهاجرت فلت‌پک" #: data/com.usebottles.bottles.gschema.xml:7 msgid "Toggle the Flatpak migration dialog." -msgstr "" +msgstr "تغییر وضعیت گفت‌وگوی مهاحرت فلت‌پک." #: data/com.usebottles.bottles.gschema.xml:11 msgid "Dark theme" -msgstr "قالب تاریک" +msgstr "زمینهٔ تاریک" #: data/com.usebottles.bottles.gschema.xml:12 msgid "Force the use of dark theme." -msgstr "اجبار به استفاده از قالب تاریک." +msgstr "اجبار به استفاده از زمینهٔ تاریک." #: data/com.usebottles.bottles.gschema.xml:16 msgid "Toggle update date in list" @@ -2857,9 +2772,8 @@ msgid "Toggle Steam Proton prefixes support." msgstr "" #: data/com.usebottles.bottles.gschema.xml:76 -#, fuzzy msgid "Experiments:sandbox" -msgstr "آزمایشات:steam" +msgstr "آزمایش‌ها:گودال ماسه" #: data/com.usebottles.bottles.gschema.xml:77 msgid "Toggle experimental Sandbox per bottle." @@ -2883,7 +2797,7 @@ msgstr "" #: data/com.usebottles.bottles.metainfo.xml.in:11 msgid "Run Windows software on Linux with Bottles!" -msgstr "اجرای نرم‌افزارهای وندوز روی لینوکس با بطری‌ها!" +msgstr "اجرای نرم‌افزارهای ویندوزی روی گنو/لینوکس با بطری‌ها!" #: data/com.usebottles.bottles.metainfo.xml.in:12 msgid "Bottle software and enjoy at your leisure!" @@ -2971,13 +2885,12 @@ msgid "Import Wine prefixes from other managers" msgstr "وارد کردن پیشوندهای Wine از دیگر مدیران" #: data/com.usebottles.bottles.metainfo.xml.in:34 -#, fuzzy msgid "Bottles versioning" -msgstr "نسخه سازی بطری‌ها ( اختیاری )" +msgstr "نگارش بطری‌ها" #: data/com.usebottles.bottles.metainfo.xml.in:35 msgid "... and much more that you can find by installing Bottles!" -msgstr "... و بسیاری دیگر که با نصب بطری‌ها می‌توانید پیدا کنید" +msgstr "... و ویژگی‌های دیگری که می‌توان با نصب بطری‌ها یافت!" #: data/com.usebottles.bottles.metainfo.xml.in:84 msgid "Update metadata information" @@ -3000,9 +2913,8 @@ msgid "Fixed Patool double extraction failing" msgstr "" #: data/com.usebottles.bottles.metainfo.xml.in:101 -#, fuzzy msgid "Correct version" -msgstr "نمایش نسخه" +msgstr "نگارش درست" #: data/com.usebottles.bottles.metainfo.xml.in:106 msgid "Fix crash when creating a bottle" @@ -3055,9 +2967,8 @@ msgid "Fix error when downloading if Bottles isn't run from terminal" msgstr "" #: data/com.usebottles.bottles.metainfo.xml.in:137 -#, fuzzy msgid "Correct version date" -msgstr "تاریخ ایجاد" +msgstr "تاریخ نگارش درست" #: data/com.usebottles.bottles.metainfo.xml.in:138 msgid "Hide NVIDIA-related critical errors on non NVIDIA systems" diff --git a/po/fi.po b/po/fi.po index f96880780ac..e0c7246904d 100644 --- a/po/fi.po +++ b/po/fi.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: bottles\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-03-27 13:50+0530\n" -"PO-Revision-Date: 2024-05-17 09:01+0000\n" -"Last-Translator: Ilkka Myller \n" +"PO-Revision-Date: 2025-01-15 00:23+0000\n" +"Last-Translator: Ricky Tigg \n" "Language-Team: Finnish \n" "Language: fi\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.6-dev\n" +"X-Generator: Weblate 5.10-dev\n" #: bottles/backend/managers/backup.py:48 bottles/backend/managers/backup.py:95 msgid "No path specified" @@ -1358,9 +1358,9 @@ msgid "Command Arguments" msgstr "Komennon argumentit" #: bottles/frontend/ui/dialog-launch-options.blp:47 -#, fuzzy, c-format +#, c-format msgid "e.g.: VAR=value %command% -example1 -example2 -example3=hello" -msgstr "esim .: -esimerkki1 -esimerkki2 -esimerkki3=hei" +msgstr "esim.: VAR=arvo %command% -esimerkki1 -esimerkki2 -esimerkki3=hei" #: bottles/frontend/ui/dialog-launch-options.blp:52 msgid "Post-run Script" @@ -1770,14 +1770,12 @@ msgid "No Prefixes Found" msgstr "Etuliitteitä ei löytynyt" #: bottles/frontend/ui/importer.blp:39 -#, fuzzy msgid "" "No external prefixes were found. Does Bottles have access to them?\n" "Use the icon on the top to import a bottle from a backup." msgstr "" -"Etuliitteitä ei löytynyt Lutriksesta, PlayOnLinuxista jne.\n" -" Napsauta yllä olevaa kuvaketta " -"tuodaksesi pullon varmuuskopiosta" +"Ulkoisia etuliitteitä ei löytynyt. Onko Bottlesilla pääsy niihin?\n" +"Käytä yläreunassa olevaa kuvaketta tuodaksesi pullon varmuuskopiosta." #: bottles/frontend/ui/importer.blp:74 msgid "Full Archive" @@ -2484,9 +2482,9 @@ msgid "Run executable in \"{self.config.Name}\"" msgstr "Käynnistetään \"{self.config.Name}\"" #: bottles/frontend/views/list.py:118 -#, fuzzy, python-brace-format +#, python-brace-format msgid "Launching \"{0}\" in \"{1}\"…" -msgstr "Käynnistetään \"{0}\"…" +msgstr "Käynnistetään \"{0}\" \"{1}\":ssa…" #: bottles/frontend/views/list.py:235 msgid "Your Bottles" diff --git a/po/ga.po b/po/ga.po new file mode 100644 index 00000000000..05f3321708d --- /dev/null +++ b/po/ga.po @@ -0,0 +1,3231 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the bottles package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: bottles\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-27 10:57+0530\n" +"PO-Revision-Date: 2024-10-28 10:01+0000\n" +"Last-Translator: Aindriú Mac Giolla Eoin \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 :(" +"n>6 && n<11) ? 3 : 4;\n" +"X-Generator: Weblate 5.8.2-dev\n" + +#: bottles/backend/managers/backup.py:48 bottles/backend/managers/backup.py:95 +msgid "No path specified" +msgstr "Níl aon chosán sonraithe" + +#: bottles/backend/managers/backup.py:56 +#, python-brace-format +msgid "Backup {0}" +msgstr "Cúltaca {0}" + +#: bottles/backend/managers/backup.py:103 +#, python-brace-format +msgid "Importing backup: {0}" +msgstr "Cúltaca a iompórtáil: {0}" + +#: bottles/backend/managers/manager.py:1076 +#: bottles/backend/managers/manager.py:1396 +#: bottles/backend/managers/manager.py:1397 +#, python-format +msgid "Failed to install dependency: %s" +msgstr "Theip ar spleáchas a shuiteáil: %s" + +#: bottles/backend/managers/manager.py:1115 +msgid "Fail to install components, tried 3 times." +msgstr "Teip ar chomhpháirteanna a shuiteáil, triail as 3 huaire." + +#: bottles/backend/managers/manager.py:1126 +msgid "Missing essential components. Installing…" +msgstr "Comhpháirteanna riachtanacha ar iarraidh. Ag suiteáil…" + +#: bottles/backend/managers/manager.py:1203 +msgid "Failed to create bottle directory." +msgstr "Theip ar eolaire buidéal a chruthú." + +#: bottles/backend/managers/manager.py:1215 +msgid "Failed to create placeholder directory/file." +msgstr "Theip ar eolair/comhad sealbhóra áite a chruthú." + +#: bottles/backend/managers/manager.py:1220 +msgid "Generating bottle configuration…" +msgstr "Cumraíocht an bhuidéil á ghiniúint…" + +#: bottles/backend/managers/manager.py:1243 +msgid "Template found, applying…" +msgstr "Aimsíodh an teimpléad, á chur i bhfeidhm…" + +#. execute wineboot on the bottle path +#: bottles/backend/managers/manager.py:1255 +msgid "The Wine config is being updated…" +msgstr "Tá an cumraíocht Fíon á nuashonrú…" + +#: bottles/backend/managers/manager.py:1257 +msgid "Wine config updated!" +msgstr "Cumraíocht fíona nuashonraithe!" + +#: bottles/backend/managers/manager.py:1265 +msgid "Running as Flatpak, sandboxing userdir…" +msgstr "Ag rith mar Flatpak, úsáideoir bosca gainimh…" + +#: bottles/backend/managers/manager.py:1267 +msgid "Sandboxing userdir…" +msgstr "Úsáideoir bosca gainimh…" + +#: bottles/backend/managers/manager.py:1308 +msgid "Setting Windows version…" +msgstr "Leagan Windows á shocrú…" + +#: bottles/backend/managers/manager.py:1318 +msgid "Apply CMD default settings…" +msgstr "Cuir socruithe réamhshocraithe CMD i bhfeidhm…" + +#: bottles/backend/managers/manager.py:1326 +msgid "Optimizing environment…" +msgstr "Timpeallacht á bharrfheabhsú…" + +#: bottles/backend/managers/manager.py:1337 +#, python-brace-format +msgid "Applying environment: {0}…" +msgstr "Timpeallacht á chur i bhfeidhm: {0}…" + +#: bottles/backend/managers/manager.py:1347 +msgid "(!) Using a custom environment recipe…" +msgstr "(!) Ag baint úsáide as oideas timpeallachta saincheaptha…" + +#: bottles/backend/managers/manager.py:1350 +msgid "(!) Recipe not not found or not valid…" +msgstr "(!) Níor aimsíodh an t-oideas nó níl sé bailí…" + +#: bottles/backend/managers/manager.py:1367 +msgid "Installing DXVK…" +msgstr "DXVK á shuiteáil…" + +#: bottles/backend/managers/manager.py:1375 +msgid "Installing VKD3D…" +msgstr "VKD3D á shuiteáil…" + +#: bottles/backend/managers/manager.py:1384 +msgid "Installing DXVK-NVAPI…" +msgstr "DXVK-NVAPI á shuiteáil…" + +#: bottles/backend/managers/manager.py:1393 +#, python-format +msgid "Installing dependency: %s …" +msgstr "Spleáchas á shuiteáil: %s …" + +#: bottles/backend/managers/manager.py:1407 +msgid "Creating versioning state 0…" +msgstr "Ag cruthú staid leagan 0…" + +#: bottles/backend/managers/manager.py:1415 +msgid "Finalizing…" +msgstr "Ag críochnú…" + +#: bottles/backend/managers/manager.py:1426 +msgid "Caching template…" +msgstr "Teimpléad Taisce…" + +#: bottles/backend/managers/versioning.py:83 +msgid "Committing state …" +msgstr "Stát geallta…" + +#: bottles/backend/managers/versioning.py:90 +msgid "Nothing to commit" +msgstr "Níl aon rud le tiomantas" + +#: bottles/backend/managers/versioning.py:96 +#, python-brace-format +msgid "New state [{0}] created successfully!" +msgstr "Cruthaíodh stát nua [{0}] go rathúil!" + +#: bottles/backend/managers/versioning.py:123 +msgid "States list retrieved successfully!" +msgstr "Liosta stáit a aisghabháil go rathúil!" + +#: bottles/backend/managers/versioning.py:153 +#, python-brace-format +msgid "State {0} restored successfully!" +msgstr "Athchóirigh an stát {0} go rathúil!" + +#: bottles/backend/managers/versioning.py:155 +msgid "Restoring state {} …" +msgstr "Staid á athchóiriú {}…" + +#: bottles/backend/managers/versioning.py:162 +msgid "State not found" +msgstr "Níor aimsíodh stát" + +#: bottles/backend/managers/versioning.py:168 +msgid "State {} is already the active state" +msgstr "Is é an stát {} an stát gníomhach cheana féin" + +#: bottles/frontend/main.py:111 +msgid "Show version" +msgstr "Taispeáin leagan" + +#: bottles/frontend/main.py:119 +msgid "Executable path" +msgstr "Conair infheidhmithe" + +#: bottles/frontend/main.py:127 +msgid "lnk path" +msgstr "cosán lnk" + +#: bottles/frontend/main.py:135 bottles/frontend/ui/library-entry.blp:118 +#: bottles/frontend/ui/list-entry.blp:5 +msgid "Bottle name" +msgstr "Ainm buidéal" + +#: bottles/frontend/main.py:143 +msgid "Pass arguments" +msgstr "Argóintí a rith" + +#: bottles/frontend/main.py:202 +msgid "Invalid URI (syntax: bottles:run//)" +msgstr "URI neamhbhailí (comhréir: bottles:run//)" + +#: bottles/frontend/main.py:242 +msgid "[Quit] request received." +msgstr "[Stad] iarratas a fuarthas." + +#: bottles/frontend/main.py:252 +msgid "[Help] request received." +msgstr "[Cabhair] iarratas a fuarthas." + +#: bottles/frontend/main.py:260 +msgid "[Refresh] request received." +msgstr "[Athnuachan] iarratas a fuarthas." + +#: bottles/frontend/main.py:293 +msgid "Donate" +msgstr "Deontas" + +#: bottles/frontend/main.py:298 +msgid "Third-Party Libraries and Special Thanks" +msgstr "Leabharlanna tríú páirtí agus Go" + +#: bottles/frontend/main.py:324 +msgid "Sponsored and Funded by" +msgstr "Urraithe agus Maoinithe ag" + +#: bottles/frontend/ui/about.blp:5 +msgid "Copyright © 2017 Bottles Developers" +msgstr "Cóipcheart © 2017 Forbróirí Buidéal" + +#: bottles/frontend/ui/about.blp:10 +msgid "Bottles Developers" +msgstr "Forbróirí Buidéil" + +#: bottles/frontend/ui/about.blp:12 +msgid "translator_credits" +msgstr "creidmheasanna_aistritheoir" + +#: bottles/frontend/ui/component-entry.blp:4 +msgid "Component version" +msgstr "Leagan comhpháirteanna" + +#: bottles/frontend/ui/component-entry.blp:12 +#: bottles/frontend/ui/dependency-entry.blp:29 +#: bottles/frontend/ui/program-entry.blp:77 +msgid "Uninstall" +msgstr "Díshuiteáil" + +#: bottles/frontend/ui/component-entry.blp:23 +#: bottles/frontend/ui/importer-entry.blp:13 +msgid "Browse Files" +msgstr "Brabhsáil Comhaid" + +#: bottles/frontend/ui/component-entry.blp:34 +msgid "" +"The installation failed. This may be due to a repository error, partial " +"download or checksum mismatch. Press to try again." +msgstr "" +"Theip ar an suiteáil. D'fhéadfadh sé seo a bheith mar gheall ar earráid " +"stórais, íoslódáil pháirteach nó mímheaitseáil seicsum. Brúigh chun triail a " +"bhaint as arís." + +#: bottles/frontend/ui/component-entry.blp:45 +msgid "Download & Install" +msgstr "Íoslódáil & Suiteáil" + +#: bottles/frontend/ui/component-entry.blp:58 +msgid "0%" +msgstr "0%" + +#: bottles/frontend/ui/dependency-entry.blp:16 +msgid "Show Manifest" +msgstr "Taispeáin Manifest" + +#: bottles/frontend/ui/dependency-entry.blp:20 +msgid "License" +msgstr "Ceadúnas" + +#: bottles/frontend/ui/dependency-entry.blp:24 +msgid "Reinstall" +msgstr "Athshuiteáil" + +#: bottles/frontend/ui/dependency-entry.blp:36 +#: bottles/frontend/ui/installer-entry.blp:27 +msgid "Report a Bug…" +msgstr "Tuairiscigh fabht…" + +#: bottles/frontend/ui/dependency-entry.blp:42 +msgid "Dependency name" +msgstr "Ainm spleáchais" + +#: bottles/frontend/ui/dependency-entry.blp:44 +msgid "Dependency description" +msgstr "Tuairisc spleáchais" + +#: bottles/frontend/ui/dependency-entry.blp:51 +msgid "Category" +msgstr "Catagóir" + +#: bottles/frontend/ui/dependency-entry.blp:64 +msgid "Download & Install this Dependency" +msgstr "Íoslódáil & Suiteáil an Spleáchas seo" + +#: bottles/frontend/ui/dependency-entry.blp:79 +msgid "" +"An installation error occurred. Restart Bottles to read the Crash Report or " +"run it via terminal to read the output." +msgstr "" +"Tharla earráid suiteála. Athosaigh Buidéil chun an Tuarascáil Crash a léamh " +"nó é a rith trí chríochfort chun an t-aschur a léamh." + +#: bottles/frontend/ui/dependency-entry.blp:93 +msgid "Dependency Menu" +msgstr "Roghchlár Spleachta" + +#: bottles/frontend/ui/details-bottle.blp:16 +msgid "Troubleshooting" +msgstr "Fabhtcheartú" + +#: bottles/frontend/ui/details-bottle.blp:24 +msgid "Browse Files…" +msgstr "Brabhsáil Comhaid…" + +#: bottles/frontend/ui/details-bottle.blp:28 +msgid "Duplicate Bottle…" +msgstr "Buidéal Dúblach…" + +#: bottles/frontend/ui/details-bottle.blp:32 +#: bottles/frontend/ui/importer.blp:73 +msgid "This is the complete archive of your bottle, including personal files." +msgstr "" +"Is é seo cartlann iomlán do bhuidéal, lena n-áirítear comhaid phearsanta." + +#: bottles/frontend/ui/details-bottle.blp:33 +msgid "Full Backup…" +msgstr "Cúltaca Iomlán…" + +#: bottles/frontend/ui/details-bottle.blp:37 +#: bottles/frontend/ui/importer.blp:68 +msgid "" +"This is just the bottle configuration, it's perfect if you want to create a " +"new one but without personal files." +msgstr "" +"Níl anseo ach cumraíocht an bhuidéil, tá sé foirfe más mian leat ceann nua a " +"chruthú ach gan comhaid phearsanta." + +#: bottles/frontend/ui/details-bottle.blp:38 +msgid "Export Configuration…" +msgstr "Cumraíocht Easpórtála…" + +#: bottles/frontend/ui/details-bottle.blp:45 +#: bottles/frontend/views/bottle_details.py:347 +msgid "Show Hidden Programs" +msgstr "Taispeáin Cláir bhfolach" + +#: bottles/frontend/ui/details-bottle.blp:49 +msgid "Search for new programs" +msgstr "Cuardaigh cláir nua" + +#: bottles/frontend/ui/details-bottle.blp:56 +msgid "Delete Bottle…" +msgstr "Scrios Buidéal…" + +#: bottles/frontend/ui/details-bottle.blp:73 +#: bottles/frontend/ui/details-dependencies.blp:99 +#: bottles/frontend/ui/details-installers.blp:68 +msgid "Secondary Menu" +msgstr "Roghchlár Tánaiste" + +#: bottles/frontend/ui/details-bottle.blp:90 +msgid "Force Stop all Processes" +msgstr "Fórsa Stop Gach Próiseas" + +#: bottles/frontend/ui/details-bottle.blp:94 +msgid "Simulate a Windows system shutdown." +msgstr "Samhail múchadh córas Windows." + +#: bottles/frontend/ui/details-bottle.blp:95 +msgid "Shutdown" +msgstr "Múchadh" + +#: bottles/frontend/ui/details-bottle.blp:99 +msgid "Simulate a Windows system reboot." +msgstr "Samhlaigh atosú córas Windows." + +#: bottles/frontend/ui/details-bottle.blp:100 +msgid "Reboot" +msgstr "Athosaigh" + +#: bottles/frontend/ui/details-bottle.blp:118 +#: bottles/frontend/ui/dialog-launch-options.blp:6 +msgid "Launch Options" +msgstr "Roghanna Seolta" + +#: bottles/frontend/ui/details-bottle.blp:135 +msgid "Run in Terminal" +msgstr "Rith i gCríochfort" + +#: bottles/frontend/ui/details-bottle.blp:148 +msgid "Drop files to execute them" +msgstr "Buail comhaid chun iad a fhorghníomhú" + +#: bottles/frontend/ui/details-bottle.blp:164 +msgid "My bottle" +msgstr "Mo buidéal" + +#: bottles/frontend/ui/details-bottle.blp:177 +msgid "Win64" +msgstr "Win64" + +#: bottles/frontend/ui/details-bottle.blp:189 +#: bottles/frontend/ui/list-entry.blp:12 bottles/frontend/ui/new.blp:71 +msgid "Environment" +msgstr "Comhshaol" + +#: bottles/frontend/ui/details-bottle.blp:201 +#: bottles/frontend/ui/details-preferences.blp:14 +#: bottles/frontend/ui/new.blp:128 +msgid "Runner" +msgstr "Raitheoir" + +#: bottles/frontend/ui/details-bottle.blp:213 +#: bottles/frontend/ui/list-entry.blp:21 +msgid "Versioning enabled for this bottle" +msgstr "Leagan cumasaithe don bhuidéal seo" + +#: bottles/frontend/ui/details-bottle.blp:218 +msgid "Versioning is active for this bottle." +msgstr "Tá leagan gníomhach don bhuidéal seo." + +#: bottles/frontend/ui/details-bottle.blp:227 +#: bottles/frontend/ui/list-entry.blp:31 +msgid "0" +msgstr "0" + +#: bottles/frontend/ui/details-bottle.blp:247 +msgid "Run Executable…" +msgstr "Rith Inrite…" + +#: bottles/frontend/ui/details-bottle.blp:272 +msgid "Programs" +msgstr "Cláir" + +#: bottles/frontend/ui/details-bottle.blp:275 +msgid "" +"Click \"Run Executable…\" to run an executable, \"Add Shortcuts…\" to add an " +"executable to the Programs list, or \"Install Programs…\" to install " +"programs curated by the community." +msgstr "" +"Cliceáil \"Rith Infheidhmithe...\" chun infheidhmithe a reáchtáil, \"Cuir " +"Aicearraí leis...\" chun infheidhmithe a chur le liosta na gCláir, nó " +"\"Suiteáil Cláir...\" chun cláir atá coimeádaithe ag an bpobal a shuiteáil." + +#: bottles/frontend/ui/details-bottle.blp:298 +msgid "Add Shortcuts…" +msgstr "Cuir Aicearraí leis…" + +#: bottles/frontend/ui/details-bottle.blp:325 +msgid "Install Programs…" +msgstr "Suiteáil Cláir…" + +#: bottles/frontend/ui/details-bottle.blp:346 +msgid "Options" +msgstr "Roghanna" + +#: bottles/frontend/ui/details-bottle.blp:350 +#: bottles/frontend/views/details.py:141 +msgid "Settings" +msgstr "Socruithe" + +#: bottles/frontend/ui/details-bottle.blp:351 +msgid "Configure bottle settings." +msgstr "Cumraigh socruithe buidéal." + +#: bottles/frontend/ui/details-bottle.blp:360 +#: bottles/frontend/views/details.py:145 +msgid "Dependencies" +msgstr "Spleithiúlachtaí" + +#: bottles/frontend/ui/details-bottle.blp:361 +msgid "Install dependencies for programs." +msgstr "Suiteáil spleáchais do chláir." + +#: bottles/frontend/ui/details-bottle.blp:370 +#: bottles/frontend/ui/details-preferences.blp:376 +#: bottles/frontend/views/details.py:149 +msgid "Snapshots" +msgstr "Snapshots" + +#: bottles/frontend/ui/details-bottle.blp:371 +msgid "Create and manage bottle states." +msgstr "Stáit buidéal a chruthú agus a bhainistiú." + +#: bottles/frontend/ui/details-bottle.blp:380 +#: bottles/frontend/ui/details-bottle.blp:426 +#: bottles/frontend/views/details.py:157 +msgid "Task Manager" +msgstr "Bainisteoir Tasc" + +#: bottles/frontend/ui/details-bottle.blp:381 +msgid "Manage running programs." +msgstr "Bainistigh cláir reatha." + +#: bottles/frontend/ui/details-bottle.blp:390 +msgid "Tools" +msgstr "Uirlisí" + +#: bottles/frontend/ui/details-bottle.blp:394 +msgid "Command Line" +msgstr "Líne Orduithe" + +#: bottles/frontend/ui/details-bottle.blp:395 +msgid "Run commands inside the Bottle." +msgstr "Rith orduithe taobh istigh den Bhuidéal." + +#: bottles/frontend/ui/details-bottle.blp:404 +msgid "Registry Editor" +msgstr "Eagarthóir Chlárlan" + +#: bottles/frontend/ui/details-bottle.blp:405 +msgid "Edit the internal registry." +msgstr "Athraigh an chlárlann inmheánach." + +#: bottles/frontend/ui/details-bottle.blp:413 +msgid "Legacy Wine Tools" +msgstr "Uirlisí Fíona oidhreachta" + +#: bottles/frontend/ui/details-bottle.blp:417 +msgid "Explorer" +msgstr "Taispeántóir" + +#: bottles/frontend/ui/details-bottle.blp:435 +msgid "Debugger" +msgstr "Dífhabhtaitheoir" + +#: bottles/frontend/ui/details-bottle.blp:444 +#: bottles/frontend/ui/importer.blp:69 bottles/frontend/ui/new.blp:145 +msgid "Configuration" +msgstr "Cumraíocht" + +#: bottles/frontend/ui/details-bottle.blp:453 +msgid "Uninstaller" +msgstr "Díshuiteálaí" + +#: bottles/frontend/ui/details-bottle.blp:462 +msgid "Control Panel" +msgstr "Painéal Rialúcháin" + +#: bottles/frontend/ui/details-dependencies.blp:9 +msgid "Search for dependencies…" +msgstr "Cuardaigh spleáchais…" + +#: bottles/frontend/ui/details-dependencies.blp:22 +#: bottles/frontend/ui/preferences.blp:199 +#: bottles/frontend/ui/preferences.blp:247 +msgid "You're offline :(" +msgstr "Tá tú as líne :(" + +#: bottles/frontend/ui/details-dependencies.blp:25 +msgid "Bottles is running in offline mode, so dependencies are not available." +msgstr "Tá buidéil ag rith i mód as líne, mar sin níl spleáchais ar fáil." + +#: bottles/frontend/ui/details-dependencies.blp:47 +msgid "" +"Dependencies are resources that improve compatibility of Windows software.\n" +"\n" +"Files on this page are provided by third parties under a proprietary " +"license. By installing them, you agree with their respective licensing terms." +msgstr "" +"Is acmhainní iad spleáchais a fheabhsaíonn comhoiriúnacht bogearraí Windows\n" +"\n" +"Soláthraíonn tríú páirtithe comhaid ar an leathanach seo faoi cheadúnas " +"dílseánaigh. Trí iad a shuiteáil, aontaíonn tú lena dtéarmaí ceadúnaithe " +"faoi seach." + +#: bottles/frontend/ui/details-dependencies.blp:76 +msgid "Report a problem or a missing dependency." +msgstr "Tuairiscigh fadhb nó spleáchas atá ar iarraidh." + +#: bottles/frontend/ui/details-dependencies.blp:77 +msgid "Report Missing Dependency" +msgstr "Tuairisc ar Spleáchas" + +#: bottles/frontend/ui/details-dependencies.blp:81 +msgid "Read Documentation." +msgstr "Léigh Doiciméadú." + +#: bottles/frontend/ui/details-dependencies.blp:82 +#: bottles/frontend/ui/details-installers.blp:51 +#: bottles/frontend/ui/details-versioning.blp:37 +msgid "Documentation" +msgstr "Doiciméadú" + +#: bottles/frontend/ui/details-dependencies.blp:92 +#: bottles/frontend/ui/details-installers.blp:61 +#: bottles/frontend/ui/window.blp:46 +msgid "Search" +msgstr "Cuardaigh" + +#: bottles/frontend/ui/details-installers.blp:9 +msgid "Search for Programs…" +msgstr "Cuardaigh Cláir…" + +#: bottles/frontend/ui/details-installers.blp:15 +msgid "" +"Install programs curated by our community.\n" +"\n" +"Files on this page are provided by third parties under a proprietary " +"license. By installing them, you agree with their respective licensing terms." +msgstr "" +"Suiteáil cláir atá curtha ag ár bpobal.\n" +"\n" +"Soláthraíonn tríú páirtithe comhaid ar an leathanach seo faoi cheadúnas " +"dílseánaigh. Trí iad a shuiteáil, aontaíonn tú lena dtéarmaí ceadúnaithe " +"faoi seach." + +#: bottles/frontend/ui/details-installers.blp:29 +msgid "No Installers Found" +msgstr "Níl aon Suiteálaithe aimsithe" + +#: bottles/frontend/ui/details-installers.blp:32 +msgid "" +"The repository is unreachable or no installer is compatible with this bottle." +msgstr "" +"Níl an stór inrochtana nó níl aon suiteálaí comhoiriúnach leis an mbuidéal " +"seo." + +#: bottles/frontend/ui/details-installers.blp:50 +#: bottles/frontend/ui/details-versioning.blp:36 +#: bottles/frontend/ui/preferences.blp:82 +msgid "Read Documentation" +msgstr "Léigh Doiciméadú" + +#: bottles/frontend/ui/details-preferences.blp:6 +#: bottles/frontend/ui/dialog-duplicate.blp:52 bottles/frontend/ui/new.blp:53 +msgid "Name" +msgstr "Ainm" + +#: bottles/frontend/ui/details-preferences.blp:11 +msgid "Components" +msgstr "Comhpháirteanna" + +#: bottles/frontend/ui/details-preferences.blp:15 +#: bottles/frontend/ui/new.blp:129 +msgid "The version of the Wine compatibility layer." +msgstr "An leagan den chiseal comhoiriúnachta Fíon." + +#: bottles/frontend/ui/details-preferences.blp:17 +msgid "Updating Runner and components, please wait…" +msgstr "Runner agus comhpháirteanna á nuashonrú, fan go fóill…" + +#: bottles/frontend/ui/details-preferences.blp:27 +#: bottles/frontend/ui/preferences.blp:274 +msgid "DXVK" +msgstr "DXVK" + +#: bottles/frontend/ui/details-preferences.blp:28 +msgid "Improve Direct3D 9/10/11 compatibility by translating it to Vulkan." +msgstr "Comhoiriúnacht Direct3D 9/10/11 a fheabhsú trína aistriú go Vulkan." + +#: bottles/frontend/ui/details-preferences.blp:30 +msgid "Updating DXVK, please wait…" +msgstr "DXVK á nuashonrú, fan go fóill…" + +#: bottles/frontend/ui/details-preferences.blp:40 +#: bottles/frontend/ui/preferences.blp:278 +msgid "VKD3D" +msgstr "VKD3D" + +#: bottles/frontend/ui/details-preferences.blp:41 +msgid "Improve Direct3D 12 compatibility by translating it to Vulkan." +msgstr "Comhoiriúnacht Direct3D 12 a fheabhsú trína aistriú go Vulkan." + +#: bottles/frontend/ui/details-preferences.blp:43 +msgid "Updating VKD3D, please wait…" +msgstr "VKD3D á nuashonrú, fan go fóill…" + +#: bottles/frontend/ui/details-preferences.blp:54 +msgid "DXVK NVAPI" +msgstr "DXVK APP" + +#: bottles/frontend/ui/details-preferences.blp:58 +#: bottles/frontend/ui/details-preferences.blp:93 +msgid "Updating DXVK-NVAPI, please wait…" +msgstr "DXVK-NVAPI á nuashonrú, fan go fóill…" + +#: bottles/frontend/ui/details-preferences.blp:68 +#: bottles/frontend/ui/preferences.blp:286 +msgid "LatencyFleX" +msgstr "LatencyFleX" + +#: bottles/frontend/ui/details-preferences.blp:69 +msgid "Increase responsiveness. Can be detected by some anti-cheat software." +msgstr "" +"Freagracht a mhéadú. Is féidir é a bhrath ag roinnt bogearraí frith-cheat." + +#: bottles/frontend/ui/details-preferences.blp:71 +msgid "Updating LatencyFleX, please wait…" +msgstr "LatencyFleX á nuashonrú, fan go fóill…" + +#: bottles/frontend/ui/details-preferences.blp:84 +msgid "Display" +msgstr "Taispeáin" + +#: bottles/frontend/ui/details-preferences.blp:88 +msgid "Deep Learning Super Sampling" +msgstr "Super Sampláil Foghlama Domhain" + +#: bottles/frontend/ui/details-preferences.blp:89 +msgid "" +"Increase performance at the expense of visuals using DXVK-NVAPI. Only works " +"on newer NVIDIA GPUs." +msgstr "" +"Feidhmíocht a mhéadú ar chostas na n-amhairc ag baint úsáide as DXVK-NVAPI. " +"Ní oibríonn sé ach ar GPUanna NVIDIA níos nuaí." + +#: bottles/frontend/ui/details-preferences.blp:105 +msgid "FidelityFX Super Resolution" +msgstr "FidelityFX Super Réiteach" + +#: bottles/frontend/ui/details-preferences.blp:106 +msgid "Increase performance at the expense of visuals. Only works on Vulkan." +msgstr "Feidhmíocht a mhéadú ar chostas íomhánna. Ní oibríonn sé ach ar Vulkan." + +#: bottles/frontend/ui/details-preferences.blp:108 +msgid "Manage FidelityFX Super Resolution settings" +msgstr "Bainistigh socruithe Super Resolution FidelityFX" + +#: bottles/frontend/ui/details-preferences.blp:125 +msgid "Discrete Graphics" +msgstr "Grafaicí scoite" + +#: bottles/frontend/ui/details-preferences.blp:126 +msgid "" +"Use the discrete graphics card to increase performance at the expense of " +"power consumption." +msgstr "" +"Úsáid an cárta grafaicí scoite chun feidhmíocht a mhéadú ar chostas " +"tomhaltais chumhachta." + +#: bottles/frontend/ui/details-preferences.blp:135 +msgid "Post-Processing Effects" +msgstr "Éifeachtaí Iar-Próiseála" + +#: bottles/frontend/ui/details-preferences.blp:136 +msgid "" +"Add various post-processing effects using vkBasalt. Only works on Vulkan." +msgstr "" +"Cuir éifeachtaí iar-phróiseála éagsúla le húsáid VKBasalt. Ní oibríonn sé " +"ach ar Vulkan." + +#: bottles/frontend/ui/details-preferences.blp:138 +msgid "Manage Post-Processing Layer settings" +msgstr "Bainistigh socruithe Ciseal Iarphróiseála" + +#: bottles/frontend/ui/details-preferences.blp:154 +msgid "Manage how games should be displayed on the screen using Gamescope." +msgstr "" +"Bainistigh conas ba chóir cluichí a thaispeáint ar an scáileán ag úsáid " +"Gamescope." + +#: bottles/frontend/ui/details-preferences.blp:157 +msgid "Manage Gamescope settings" +msgstr "Bainistigh socruithe Gamescope" + +#: bottles/frontend/ui/details-preferences.blp:171 +msgid "Advanced Display Settings" +msgstr "Socruithe Taispeána Ard" + +#: bottles/frontend/ui/details-preferences.blp:184 +msgid "Performance" +msgstr "Feidhmíocht" + +#: bottles/frontend/ui/details-preferences.blp:188 +msgid "Enable synchronization to increase performance of multicore processors." +msgstr "Cumasaigh sioncrónú chun feidhmíocht próiseálaithe multicore a mhéadú." + +#: bottles/frontend/ui/details-preferences.blp:189 +msgid "Synchronization" +msgstr "Sioncrónú" + +#: bottles/frontend/ui/details-preferences.blp:193 +msgid "System" +msgstr "Córas" + +#: bottles/frontend/ui/details-preferences.blp:194 +msgid "Esync" +msgstr "Esync" + +#: bottles/frontend/ui/details-preferences.blp:195 +msgid "Fsync" +msgstr "Fsync" + +#: bottles/frontend/ui/details-preferences.blp:201 +msgid "Monitor Performance" +msgstr "Monatóireacht a dhéanamh" + +#: bottles/frontend/ui/details-preferences.blp:202 +msgid "" +"Display monitoring information such as framerate, temperatures, CPU/GPU load " +"and more on OpenGL and Vulkan using MangoHud." +msgstr "" +"Taispeáin faisnéis monatóireachta cosúil le framerate, teochtaí, ualach CPU/" +"GPU agus níos mó ar OpenGL agus Vulkan ag baint úsáide as MangoHUD." + +#: bottles/frontend/ui/details-preferences.blp:210 +msgid "Feral GameMode" +msgstr "Feral GameMode" + +#: bottles/frontend/ui/details-preferences.blp:211 +msgid "" +"Apply a set of optimizations to your device. Can improve game performance." +msgstr "" +"Cuir sraith optimizations i bhfeidhm ar do ghléas. Is féidir feabhas a chur " +"ar fheidhmíocht cluiche." + +#: bottles/frontend/ui/details-preferences.blp:220 +msgid "Preload Game Files" +msgstr "Réamh-lódáil Comhaid Cluiche" + +#: bottles/frontend/ui/details-preferences.blp:221 +msgid "" +"Improve loading time when launching the game multiple times. The game will " +"take longer to start for the first time." +msgstr "" +"Feabhsú am luchtaithe agus an cluiche á seoladh arís agus arís eile Tógfaidh " +"an cluiche níos faide chun tosú den chéad uair." + +#: bottles/frontend/ui/details-preferences.blp:225 +msgid "Manage vmtouch settings" +msgstr "Bainistigh socruithe vmtouch" + +#: bottles/frontend/ui/details-preferences.blp:240 +msgid "OBS Game Capture" +msgstr "Gabháil Cluiche OBS" + +#: bottles/frontend/ui/details-preferences.blp:241 +msgid "Toggle OBS Game Capture for all Vulkan and OpenGL programs." +msgstr "Toggle OBS Cluiche Gabháil do gach clár Vulkan agus OpenGL." + +#: bottles/frontend/ui/details-preferences.blp:250 +msgid "Compatibility" +msgstr "Comhoiriúnacht" + +#: bottles/frontend/ui/details-preferences.blp:253 +msgid "Windows Version" +msgstr "Leagan Windows" + +#: bottles/frontend/ui/details-preferences.blp:256 +msgid "Updating Windows version, please wait…" +msgstr "Leagan Windows á nuashonrú, fan go fóill…" + +#: bottles/frontend/ui/details-preferences.blp:265 +msgid "Language" +msgstr "Teanga" + +#: bottles/frontend/ui/details-preferences.blp:266 +msgid "Choose the language to use with programs." +msgstr "Roghnaigh an teanga le húsáid le cláir." + +#: bottles/frontend/ui/details-preferences.blp:274 +msgid "Dedicated Sandbox" +msgstr "Bosca gainimh tiomnaithe" + +#: bottles/frontend/ui/details-preferences.blp:275 +msgid "Use a restricted/managed environment for this bottle." +msgstr "Úsáid timpeallacht srianta/bainistithe don bhuidéal seo." + +#: bottles/frontend/ui/details-preferences.blp:278 +msgid "Manage the Sandbox Permissions" +msgstr "Bainistigh Ceadanna Bosca Gaineamh" + +#: bottles/frontend/ui/details-preferences.blp:294 +msgid "Bottles Runtime" +msgstr "Am Rite Buidéil" + +#: bottles/frontend/ui/details-preferences.blp:295 +msgid "" +"Provide a bundle of extra libraries for more compatibility. Disable it if " +"you run into issues." +msgstr "" +"Cuir beart leabharlanna breise ar fáil le haghaidh níos mó comhoiriúnachta. " +"Díchumasaigh é má théann tú i bhfadhbanna." + +#: bottles/frontend/ui/details-preferences.blp:305 +msgid "Steam Runtime" +msgstr "Am rite Steam" + +#: bottles/frontend/ui/details-preferences.blp:306 +msgid "" +"Provide a bundle of extra libraries for more compatibility with Steam games. " +"Disable it if you run into issues." +msgstr "" +"Cuir beart leabharlanna breise ar fáil chun níos mó comhoiriúnachta le " +"cluichí Steam. Díchumasaigh é má théann tú i bhfadhbanna." + +#: bottles/frontend/ui/details-preferences.blp:314 +#: bottles/frontend/ui/dialog-launch-options.blp:83 +msgid "Working Directory" +msgstr "Eolaire Oibre" + +#: bottles/frontend/ui/details-preferences.blp:317 +#: bottles/frontend/ui/dialog-launch-options.blp:59 +#: bottles/frontend/ui/dialog-launch-options.blp:90 +#: bottles/frontend/ui/new.blp:150 bottles/frontend/ui/new.blp:181 +#: bottles/frontend/ui/preferences.blp:157 +msgid "Reset to Default" +msgstr "Athshocraigh go Réamhshocrú" + +#: bottles/frontend/ui/details-preferences.blp:338 +#: bottles/frontend/ui/preferences.blp:178 bottles/frontend/views/new.py:78 +#: bottles/frontend/views/preferences.py:221 +msgid "(Default)" +msgstr "(Réamhshocraithe)" + +#: bottles/frontend/ui/details-preferences.blp:346 +#: bottles/frontend/ui/dialog-dll-overrides.blp:7 +#: bottles/frontend/ui/dialog-dll-overrides.blp:12 +msgid "DLL Overrides" +msgstr "Aisghairtí DLL" + +#: bottles/frontend/ui/details-preferences.blp:356 +#: bottles/frontend/ui/dialog-env-vars.blp:20 +msgid "Environment Variables" +msgstr "Athróga Comhshaoil" + +#: bottles/frontend/ui/details-preferences.blp:366 +msgid "Manage Drives" +msgstr "Bainistigh Tiomáine" + +#: bottles/frontend/ui/details-preferences.blp:380 +msgid "Automatic Snapshots" +msgstr "Snapshots Uathoibríoch" + +#: bottles/frontend/ui/details-preferences.blp:381 +msgid "" +"Automatically create snapshots before installing software or changing " +"settings." +msgstr "" +"Cruthaigh pictiúir go huathoibríoch roimh duit bogearraí a shuiteáil nó " +"socruithe a athrú." + +#: bottles/frontend/ui/details-preferences.blp:390 +msgid "Compression" +msgstr "Comhbhrú" + +#: bottles/frontend/ui/details-preferences.blp:391 +msgid "" +"Compress snapshots to reduce space. This will slow down the creation of " +"snapshots." +msgstr "" +"Comhbhrúigh snapshots chun spás a laghdú. Déanfaidh sé seo moilliú ar " +"chruthú snapshots." + +#: bottles/frontend/ui/details-preferences.blp:400 +msgid "Use Exclusion Patterns" +msgstr "Úsáid Patrúin Eisiamh" + +#: bottles/frontend/ui/details-preferences.blp:401 +msgid "Exclude paths in snapshots." +msgstr "Eisiamh cosáin i snapshots." + +#: bottles/frontend/ui/details-preferences.blp:404 +msgid "Manage Patterns" +msgstr "Bainistigh Patrúin" + +#: bottles/frontend/ui/details-taskmanager.blp:17 +msgid "Refresh" +msgstr "Athnuachan" + +#: bottles/frontend/ui/details-taskmanager.blp:22 +msgid "Stop process" +msgstr "Stad próiseas" + +#: bottles/frontend/ui/details-versioning.blp:18 +msgid "No Snapshots Found" +msgstr "Níl aon Snapshots le fáil" + +#: bottles/frontend/ui/details-versioning.blp:19 +msgid "Create your first snapshot to start saving states of your preferences." +msgstr "" +"Cruthaigh do chéad léargas chun tosú a shábháil stáit de do chuid roghanna." + +#: bottles/frontend/ui/details-versioning.blp:54 +msgid "A short comment" +msgstr "Trácht gairid" + +#: bottles/frontend/ui/details-versioning.blp:58 +msgid "Save the bottle state." +msgstr "Sábháil stát an bhuidéil." + +#: bottles/frontend/ui/details-versioning.blp:78 +msgid "Create new Snapshot" +msgstr "Cruthaigh Snapshot nua" + +#: bottles/frontend/ui/details.blp:16 +msgid "Details" +msgstr "Sonraí" + +#: bottles/frontend/ui/details.blp:24 bottles/frontend/ui/details.blp:64 +#: bottles/frontend/ui/importer.blp:15 +msgid "Go Back" +msgstr "Téigh ar ais" + +#: bottles/frontend/ui/details.blp:75 +msgid "Operations" +msgstr "Oibríochtaí" + +#: bottles/frontend/ui/dialog-bottle-picker.blp:4 +msgid "Select Bottle" +msgstr "Roghnaigh Buidéal" + +#: bottles/frontend/ui/dialog-bottle-picker.blp:16 +#: bottles/frontend/ui/dialog-proton-alert.blp:16 +#: bottles/frontend/ui/dialog-rename.blp:15 +#: bottles/frontend/ui/dialog-run-args.blp:20 +msgid "Cancel" +msgstr "Cealaigh" + +#: bottles/frontend/ui/dialog-bottle-picker.blp:21 +msgid "Select" +msgstr "Roghnaigh" + +#: bottles/frontend/ui/dialog-bottle-picker.blp:38 +#: bottles/frontend/ui/new.blp:9 bottles/frontend/ui/new.blp:49 +#: bottles/frontend/ui/window.blp:25 +msgid "Create New Bottle" +msgstr "Cruthaigh Buidéal Nua" + +#: bottles/frontend/ui/dialog-crash-report.blp:8 +msgid "Bottles Crash Report" +msgstr "Tuarascáil ar Thumpáil" + +#: bottles/frontend/ui/dialog-crash-report.blp:18 +#: bottles/frontend/ui/dialog-duplicate.blp:22 +#: bottles/frontend/ui/dialog-gamescope.blp:23 +#: bottles/frontend/ui/dialog-launch-options.blp:16 +#: bottles/frontend/ui/dialog-upgrade-versioning.blp:22 +#: bottles/frontend/ui/dialog-vkbasalt.blp:27 bottles/frontend/ui/new.blp:26 +#: bottles/frontend/views/bottle_details.py:507 +#: bottles/frontend/views/bottle_details.py:603 +#: bottles/frontend/views/bottle_preferences.py:746 +#: bottles/frontend/views/preferences.py:212 +msgid "_Cancel" +msgstr "_Cealaigh" + +#: bottles/frontend/ui/dialog-crash-report.blp:25 +msgid "Send Report" +msgstr "Seol Tuarascáil" + +#: bottles/frontend/ui/dialog-crash-report.blp:44 +msgid "" +"Bottles crashed last time. Please fill out a report attaching the following " +"traceback to help us identify the problem preventing it from happening again." +msgstr "" +"Bhuail buidéil an uair dheireanach. Comhlánaigh tuairisc le do thoil agus an " +"t-aisrianú seo a leanas iniata leis chun cabhrú linn an fhadhb a aithint a " +"chuireann cosc uirthi tarlú arís." + +#: bottles/frontend/ui/dialog-crash-report.blp:74 +msgid "" +"We found one or more similar (or identical) reports. Please make sure to " +"check carefully that it has not already been reported before submitting a " +"new one. Each report requires effort on the part of the developers to " +"diagnose, please respect their work and make sure you don't post duplicates." +msgstr "" +"Fuaireamar tuarascáil amháin nó níos mó den chineál céanna (nó comhionann). " +"Déan cinnte seiceáil go cúramach le do thoil nár tuairiscíodh é cheana féin " +"sula gcuireann tú ceann nua isteach. Éilíonn gach tuarascáil iarracht ó " +"thaobh na bhforbróirí chun diagnóis a dhéanamh, meas a gcuid oibre le do " +"thoil agus déan cinnte nach gcuireann tú dúbailtí a phostáil." + +#: bottles/frontend/ui/dialog-crash-report.blp:89 +msgid "I still want to report." +msgstr "Ba mhaith liom tuairisciú a dhéanamh fós." + +#: bottles/frontend/ui/dialog-crash-report.blp:95 +msgid "Advanced options" +msgstr "Roghanna chun cinn" + +#: bottles/frontend/ui/dialog-deps-check.blp:13 +msgid "Incomplete package" +msgstr "Pacáiste neamhiomlán" + +#: bottles/frontend/ui/dialog-deps-check.blp:14 +msgid "" +"This version of Bottles does not seem to provide all the necessary core " +"dependencies, please contact the package maintainer or use an official " +"version." +msgstr "" +"Ní cosúil go soláthraíonn an leagan seo de Buidéil na croíspleáchas " +"riachtanacha go léir, déan teagmháil leis an gcothabhálaí pacáiste nó bain " +"úsáid as leagan oifigiúil." + +#: bottles/frontend/ui/dialog-deps-check.blp:18 +msgid "Quit" +msgstr "Scoir" + +#: bottles/frontend/ui/dialog-dll-overrides.blp:11 +msgid "" +"Dynamic Link Libraries can be specified to be builtin (provided by Wine) or " +"native (provided by the program)." +msgstr "" +"Is féidir Leabharlanna Nasc Dhinimiciúla a shonrú le bheith tógtha (a " +"sholáthraíonn Fíon) nó dúchasacha (a sholáthraíonn an clár)." + +#: bottles/frontend/ui/dialog-dll-overrides.blp:15 +msgid "New Override" +msgstr "Aisghabháil Nua" + +#: bottles/frontend/ui/dialog-dll-overrides.blp:21 +msgid "Overrides" +msgstr "Sárú" + +#: bottles/frontend/ui/dialog-drives.blp:7 +msgid "Drives" +msgstr "Tiomántáin" + +#: bottles/frontend/ui/dialog-drives.blp:24 +msgid "" +"These are paths from your host system that are mapped and recognized as " +"devices by the runner (e.g. C: D:…)." +msgstr "" +"Is cosáin iad seo ó do chóras óstach a mhapálann agus a aithníonn an " +"reathnóir mar ghléasanna (m.sh. C: D:...)." + +#: bottles/frontend/ui/dialog-drives.blp:27 +msgid "Letter" +msgstr "Litir" + +#: bottles/frontend/ui/dialog-drives.blp:49 +msgid "Existing Drives" +msgstr "Tiomáinte atá ann cheana" + +#: bottles/frontend/ui/dialog-duplicate.blp:16 +msgid "Duplicate Bottle" +msgstr "Buidéal dúblach" + +#: bottles/frontend/ui/dialog-duplicate.blp:38 +msgid "Duplicate" +msgstr "Dúblach" + +#: bottles/frontend/ui/dialog-duplicate.blp:49 +msgid "Enter a name for the duplicate of the Bottle." +msgstr "Cuir isteach ainm don dúblach den Bhuidéal." + +#: bottles/frontend/ui/dialog-duplicate.blp:69 +msgid "Duplicating…" +msgstr "Ag dúbláil…" + +#: bottles/frontend/ui/dialog-duplicate.blp:78 +#: bottles/frontend/ui/dialog-installer.blp:103 +#: bottles/frontend/ui/dialog-upgrade-versioning.blp:112 +#: bottles/frontend/views/new.py:177 +msgid "This could take a while." +msgstr "D'fhéadfadh sé seo tamall a thógáil." + +#: bottles/frontend/ui/dialog-duplicate.blp:97 +msgid "Bottle Duplicated" +msgstr "Buidéal dúbailte" + +#: bottles/frontend/ui/dialog-env-vars.blp:28 +msgid "" +"Environment variables are dynamic-named value that can affect the way " +"running processes will behave on your bottle." +msgstr "" +"Is luach dinimiciúil iad athróga comhshaoil a d'fhéadfadh dul i bhfeidhm ar " +"an mbealach a iompraíonn próisis reatha ar do bhuidéal." + +#: bottles/frontend/ui/dialog-env-vars.blp:31 +msgid "Variable Name" +msgstr "Ainm Athraitheach" + +#: bottles/frontend/ui/dialog-env-vars.blp:37 +msgid "Existing Variables" +msgstr "Athróga atá ann cheana" + +#: bottles/frontend/ui/dialog-exclusion-patterns.blp:20 +msgid "Exclusion Patterns" +msgstr "Patrúin Eisiaimh" + +#: bottles/frontend/ui/dialog-exclusion-patterns.blp:28 +msgid "" +"Define patterns that will be used to prevent some directories to being " +"versioned." +msgstr "Sainmhínigh patrúin a úsáidfear chun roinnt eolairí a chosc a leagan." + +#: bottles/frontend/ui/dialog-exclusion-patterns.blp:31 +msgid "Pattern" +msgstr "Patrún" + +#: bottles/frontend/ui/dialog-exclusion-patterns.blp:37 +msgid "Existing Patterns" +msgstr "Patrúin atá ann cheana" + +#: bottles/frontend/ui/dialog-gamescope.blp:6 +msgid "Gamescope Settings" +msgstr "Socruithe Gamescope" + +#: bottles/frontend/ui/dialog-gamescope.blp:30 +#: bottles/frontend/ui/dialog-launch-options.blp:32 +#: bottles/frontend/ui/dialog-rename.blp:20 +#: bottles/frontend/ui/dialog-vkbasalt.blp:34 +msgid "Save" +msgstr "Sábháil" + +#: bottles/frontend/ui/dialog-gamescope.blp:40 +msgid "Manage how games should be displayed." +msgstr "Manage how games should be displayed." + +#: bottles/frontend/ui/dialog-gamescope.blp:44 +msgid "Game Resolution" +msgstr "Réiteach Cluiche" + +#: bottles/frontend/ui/dialog-gamescope.blp:45 +msgid "Uses the resolution of the video game as a reference in pixels." +msgstr "Úsáideann sé réiteach an chluiche físe mar thagairt i bpicteilíní." + +#: bottles/frontend/ui/dialog-gamescope.blp:48 +#: bottles/frontend/ui/dialog-gamescope.blp:85 +msgid "Width" +msgstr "Leithead" + +#: bottles/frontend/ui/dialog-gamescope.blp:64 +#: bottles/frontend/ui/dialog-gamescope.blp:101 +msgid "Height" +msgstr "Airde" + +#: bottles/frontend/ui/dialog-gamescope.blp:81 +msgid "Window Resolution" +msgstr "Réiteach Fuinneog" + +#: bottles/frontend/ui/dialog-gamescope.blp:82 +msgid "" +"Upscales the resolution when using a resolution higher than the game " +"resolution in pixels." +msgstr "" +"Uasscálaíonn an taifeach agus taifeach níos airde ná taifeach an chluiche á " +"úsáid i bpicteilíní." + +#: bottles/frontend/ui/dialog-gamescope.blp:118 +msgid "Miscellaneous" +msgstr "Ilghnéireach" + +#: bottles/frontend/ui/dialog-gamescope.blp:121 +msgid "Frame Rate Limit" +msgstr "Teorainn Ráta Fráma" + +#: bottles/frontend/ui/dialog-gamescope.blp:137 +msgid "Frame Rate Limit When Unfocused" +msgstr "Teorainn Ráta Fráma Nuair nach bhfuil Dírithe" + +#: bottles/frontend/ui/dialog-gamescope.blp:153 +msgid "Integer Scaling" +msgstr "Scálú Sláimhir" + +#: bottles/frontend/ui/dialog-gamescope.blp:162 +msgid "Window Type" +msgstr "Cineál Fuinneog" + +#: bottles/frontend/ui/dialog-gamescope.blp:166 +msgid "Borderless" +msgstr "Gan teorainn" + +#: bottles/frontend/ui/dialog-gamescope.blp:172 +msgid "Fullscreen" +msgstr "Iomlánscáileán" + +#: bottles/frontend/ui/dialog-installer.blp:40 +msgid "Do you want to proceed with the installation?" +msgstr "Ar mhaith leat dul ar aghaidh leis an suiteáil?" + +#: bottles/frontend/ui/dialog-installer.blp:45 +msgid "Start Installation" +msgstr "Tosaigh Suiteáil" + +#: bottles/frontend/ui/dialog-installer.blp:64 +msgid "" +"This installer requires some local resources which cannot be provided " +"otherwise." +msgstr "" +"Teastaíonn roinnt acmhainní áitiúla ón suiteálaí seo nach féidir a sholáthar " +"murach é." + +#: bottles/frontend/ui/dialog-installer.blp:68 +msgid "Proceed" +msgstr "Lean ar aghaidh" + +#: bottles/frontend/ui/dialog-installer.blp:127 +msgid "Completed!" +msgstr "Críochnaithe!" + +#: bottles/frontend/ui/dialog-installer.blp:130 +msgid "Show Programs" +msgstr "Cláir Taispeáin" + +#: bottles/frontend/ui/dialog-installer.blp:148 +msgid "Installation Failed!" +msgstr "Theip ar an Suiteáil!" + +#: bottles/frontend/ui/dialog-installer.blp:149 +msgid "Something went wrong." +msgstr "Chuaigh rud éigin mícheart." + +#: bottles/frontend/ui/dialog-journal.blp:9 +msgid "All messages" +msgstr "Gach teachtaireacht" + +#: bottles/frontend/ui/dialog-journal.blp:13 +msgid "Critical" +msgstr "Criticiúil" + +#: bottles/frontend/ui/dialog-journal.blp:17 +msgid "Errors" +msgstr "Earráidí" + +#: bottles/frontend/ui/dialog-journal.blp:21 +msgid "Warnings" +msgstr "Rabhadh" + +#: bottles/frontend/ui/dialog-journal.blp:25 +msgid "Info" +msgstr "Eolas" + +#: bottles/frontend/ui/dialog-journal.blp:40 +#: bottles/frontend/ui/dialog-journal.blp:48 +msgid "Journal Browser" +msgstr "Brabhsálaí Iris" + +#: bottles/frontend/ui/dialog-journal.blp:53 +msgid "Change Logging Level." +msgstr "Athraigh Leibhéal Logála." + +#: bottles/frontend/ui/dialog-journal.blp:57 +msgid "All" +msgstr "Gach" + +#: bottles/frontend/ui/dialog-launch-options.blp:42 +msgid "Those arguments will be passed at launch." +msgstr "Ritheofar na hargóintí sin ag an seoladh." + +#: bottles/frontend/ui/dialog-launch-options.blp:43 +msgid "Custom Arguments" +msgstr "Argóintí Saincheaptha" + +#: bottles/frontend/ui/dialog-launch-options.blp:46 +msgid "Command Arguments" +msgstr "Argóintí Ordú" + +#: bottles/frontend/ui/dialog-launch-options.blp:47 +#, c-format +msgid "e.g.: VAR=value %command% -example1 -example2 -example3=hello" +msgstr "m.sh.: VAR=value %command% -example1 -example2 -example3=hello" + +#: bottles/frontend/ui/dialog-launch-options.blp:52 +msgid "Post-run Script" +msgstr "Script iar-reáchtáil" + +#. endregion +#: bottles/frontend/ui/dialog-launch-options.blp:53 +#: bottles/frontend/windows/launchoptions.py:53 +msgid "Choose a script which should be executed after run." +msgstr "Roghnaigh script ar chóir a fhorghníomhú tar éis rith." + +#: bottles/frontend/ui/dialog-launch-options.blp:70 +msgid "Choose a Script" +msgstr "Roghnaigh Script" + +#: bottles/frontend/ui/dialog-launch-options.blp:84 +#: bottles/frontend/windows/launchoptions.py:54 +msgid "Choose from where start the program." +msgstr "Roghnaigh ón áit a dtosaíonn an clár." + +#: bottles/frontend/ui/dialog-launch-options.blp:101 +#: bottles/frontend/ui/drive-entry.blp:22 +msgid "Choose a Directory" +msgstr "Roghnaigh Eolaire" + +#: bottles/frontend/ui/dialog-launch-options.blp:114 +msgid "These settings will override the default settings for this executable." +msgstr "" +"Athróidh na socruithe seo na socruithe réamhshocraithe don inúsáidte seo." + +#: bottles/frontend/ui/dialog-launch-options.blp:115 +msgid "Preferences Overrides" +msgstr "Sáraithe Roghanna" + +#: bottles/frontend/ui/dialog-launch-options.blp:119 +msgid "Reset to Bottle's Defaults" +msgstr "Athshocraigh go Réamhshocraithe Buidéal" + +#: bottles/frontend/ui/dialog-launch-options.blp:165 +msgid "Virtual Desktop" +msgstr "Deisce Fíorúil" + +#: bottles/frontend/ui/dialog-proton-alert.blp:4 +msgid "Proton Disclaimer" +msgstr "Séanadh Proton" + +#: bottles/frontend/ui/dialog-proton-alert.blp:21 +msgid "Use Proton" +msgstr "Úsáid Proton" + +#: bottles/frontend/ui/dialog-proton-alert.blp:35 +msgid "" +"Beware, using Proton-based runners in non-Steam bottles can cause problems " +"and prevent them from behaving correctly.\n" +"\n" +"We recommend using Wine-GE rather, a version of Proton meant to run outside " +"of Steam.\n" +"\n" +"Proceeding will automatically enable the Steam runtime (if present in the " +"system and detected by Bottles) in order to allow it to access the necessary " +"libraries and limit compatibility problems. Be aware that GloriousEggroll, " +"the runner's provider, is not responsible for any problems and we ask that " +"you do not report to them." +msgstr "" +"Bí cúramach, d'fhéadfadh fadhbanna a bheith ina chúis le reathaithe atá " +"bunaithe ar Próton i mbuidéil neamh-gaile agus cosc a chur orthu iompar\n" +"\n" +"Molaimid Wine-GE a úsáid ina ionad, leagan de Proton atá i gceist le rith " +"lasmuigh de Steam.\n" +"\n" +"Cuirfidh dul ar aghaidh ar aghaidh ar aghaidh ar chumas an réiteach Gaile go " +"huathoibríoch (má tá sé i láthair sa chóras agus má bhraitheann Buidéil) " +"d'fhonn ligean dó rochtain a fháil ar na leabharlanna Bí ar an eolas nach " +"bhfuil GloriouseGgroll, soláthraí an rádálaí, freagrach as aon fhadhbanna " +"agus iarraimid ort nach dtuairisciú dóibh." + +#: bottles/frontend/ui/dialog-proton-alert.blp:43 +msgid "I got it." +msgstr "Fuair mé é." + +#: bottles/frontend/ui/dialog-rename.blp:7 +msgid "Rename" +msgstr "Athainmnigh" + +#: bottles/frontend/ui/dialog-rename.blp:30 +msgid "Choose a new name for the selected program." +msgstr "Roghnaigh ainm nua don chlár roghnaithe." + +#: bottles/frontend/ui/dialog-rename.blp:33 +msgid "New Name" +msgstr "Ainm Nua" + +#: bottles/frontend/ui/dialog-run-args.blp:13 +msgid "Run With Arguments" +msgstr "Rith Le Argóintí" + +#: bottles/frontend/ui/dialog-run-args.blp:34 +#: bottles/frontend/views/bottle_details.py:404 +#: bottles/frontend/views/list.py:131 +msgid "Run" +msgstr "Rith" + +#: bottles/frontend/ui/dialog-run-args.blp:44 +msgid "Write below the arguments to be passed to the executable." +msgstr "Scríobh thíos na hargóintí atá le cur chuig an infhorghníomhaithe." + +#: bottles/frontend/ui/dialog-run-args.blp:47 +msgid "e.g.: -opengl -SkipBuildPatchPrereq" +msgstr "m.sh.: -opengl -SkipBuildPatchPrereq" + +#: bottles/frontend/ui/dialog-sandbox.blp:7 +msgid "Sandbox Settings" +msgstr "Socruithe Bosca Gaineamh" + +#: bottles/frontend/ui/dialog-sandbox.blp:25 +msgid "Share Network" +msgstr "Comhroinn Líonra" + +#: bottles/frontend/ui/dialog-sandbox.blp:34 +msgid "Share Sound" +msgstr "Comhroinn Fuaim" + +#: bottles/frontend/ui/dialog-upgrade-versioning.blp:16 +msgid "Upgrade Needed" +msgstr "Uasghrádú Teast" + +#: bottles/frontend/ui/dialog-upgrade-versioning.blp:38 +#: bottles/frontend/ui/onboard.blp:81 +msgid "Continue" +msgstr "Lean ar aghaidh" + +#: bottles/frontend/ui/dialog-upgrade-versioning.blp:47 +msgid "Launch upgrade" +msgstr "Uasghrádú Seol" + +#: bottles/frontend/ui/dialog-upgrade-versioning.blp:66 +msgid "New Versioning System" +msgstr "Córas Leagan Nua" + +#: bottles/frontend/ui/dialog-upgrade-versioning.blp:69 +msgid "The new bottle versioning system has landed." +msgstr "Tá an córas leaganaithe buidéal nua tar éis talamh." + +#: bottles/frontend/ui/dialog-upgrade-versioning.blp:83 +msgid "" +"Bottles has a whole new Versioning System that is not backwards compatible.\n" +"\n" +"To continue using versioning we need to re-initialize the bottle repository. " +"This will not delete data from your bottle but will delete all existing " +"snapshots and create a new one.\n" +"\n" +"If you need to go back to a previous snapshot before continuing, close this " +"window and restore the snapshot, then reopen the bottle to show this window " +"again.\n" +"\n" +"The old system will be discontinued in one of the next releases." +msgstr "" +"Tá Córas Leagan iomlán nua ag Buidles nach bhfuil comhoiriúnach ar ais.\n" +"\n" +"Chun leanúint ar aghaidh ag úsáid leagan ní mór dúinn stór an bhuidéil a " +"aththionsú. Ní scriosfaidh sé seo sonraí ó do bhuidéal ach scriosfaidh sé " +"gach snapshot atá ann cheana agus cruthóidh sé ceann nua.\n" +"\n" +"Más gá duit dul ar ais go léargas roimhe seo sula leanann tú ar aghaidh, dún " +"an fhuinneog seo agus déan an léargas ar ais, ansin an buidéal a athoscailt " +"chun an fhuinneog seo a thaispeáint arís.\n" +"\n" +"Cuirfear deireadh leis an seanchóras i gceann de na chéad eisiúintí eile." + +#: bottles/frontend/ui/dialog-upgrade-versioning.blp:103 +msgid "Re-initializing Repository…" +msgstr "Stór á ath-thionsnú…" + +#: bottles/frontend/ui/dialog-upgrade-versioning.blp:133 +msgid "Done! Please restart Bottles." +msgstr "Déanta! Athosaigh Buidéil." + +#. Translators: vkBasalt is a Vulkan post processing layer for Linux +#: bottles/frontend/ui/dialog-vkbasalt.blp:10 +msgid "Post-Processing Effects Settings" +msgstr "Socruithe Éifeachtaí Iar-Phró" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:44 +msgid "Default" +msgstr "Réamhshocraithe" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:48 +msgid "Default Settings" +msgstr "Socruithe Réamhshocrú" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:57 +msgid "Effects are applied according to the list order." +msgstr "Cuirtear éifeachtaí i bhfeidhm de réir an ordú liosta." + +#: bottles/frontend/ui/dialog-vkbasalt.blp:58 +msgid "Effects" +msgstr "Éifeachtaí" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:62 +msgid "Contrast Adaptive Sharpening" +msgstr "Géarú Oiriúnaitheach Co" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:65 +#: bottles/frontend/ui/dialog-vkbasalt.blp:102 +msgid "Sharpness" +msgstr "Géar" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:69 +#: bottles/frontend/ui/dialog-vkbasalt.blp:106 +#: bottles/frontend/ui/dialog-vkbasalt.blp:134 +#: bottles/frontend/ui/dialog-vkbasalt.blp:167 +#: bottles/frontend/ui/dialog-vkbasalt.blp:195 +#: bottles/frontend/ui/dialog-vkbasalt.blp:223 +#: bottles/frontend/ui/dialog-vkbasalt.blp:256 +#: bottles/frontend/ui/dialog-vkbasalt.blp:288 +#: bottles/frontend/ui/dialog-vkbasalt.blp:316 +#: bottles/frontend/ui/dialog-vkbasalt.blp:343 +#: bottles/frontend/ui/dialog-vkbasalt.blp:370 bottles/frontend/ui/new.blp:58 +msgid "Show Information" +msgstr "Taispeáin Faisnéis" + +#. Translators: Luma is not translatable +#: bottles/frontend/ui/dialog-vkbasalt.blp:99 +msgid "Denoised Luma Sharpening" +msgstr "Géarú Luma Dhíonaithe" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:130 +msgid "Denoise" +msgstr "Denoise" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:160 +msgid "Fast Approximate Anti-Aliasing" +msgstr "Frith-Aliasing Tapa Neart" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:163 +msgid "Subpixel Quality" +msgstr "Cáilíocht Subpixel" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:191 +msgid "Quality Edge Threshold" +msgstr "Tairseach imeall cáilíochta" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:219 +msgid "Quality Edge Threshold Minimum" +msgstr "Íosta tairseach imeall cáilíochta" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:249 +msgid "Subpixel Morphological Anti-Aliasing" +msgstr "Frith-Aliasing Moirfeolaíochta Subpixel" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:252 +msgid "Edge Detection" +msgstr "Braite imeall" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:267 +msgid "Luma" +msgstr "Luma" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:273 +msgid "Color" +msgstr "Dath" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:284 +msgid "Threshold" +msgstr "Tairseach" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:312 +msgid "Max Search Steps" +msgstr "Céimeanna Cuardaigh Uasta" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:339 +msgid "Max Search Steps Diagonal" +msgstr "Céimeanna Cuardaigh Max trasnánach" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:366 +msgid "Max Corner Rounding" +msgstr "Scruinneáil Cúinne Max" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:411 +msgid "" +"CAS sharpness increases the sharpness of a frame. Higher values make the " +"frame sharper, whereas values lower than 0 make the frame softer than native." +msgstr "" +"Méadaíonn géar CAS géar fráma. Déanann luachanna níos airde an fráma níos " +"géire, ach déanann luachanna níos ísle ná 0 an fráma níos boige ná dúchasach." + +#: bottles/frontend/ui/dialog-vkbasalt.blp:428 +msgid "" +"DLS sharpness increases the sharpness of a frame. Higher values make the " +"frame sharper." +msgstr "" +"Méadaíonn géar DLS géar fráma. Déanann luachanna níos airde an fráma níos " +"géire." + +#: bottles/frontend/ui/dialog-vkbasalt.blp:445 +msgid "" +"DLS denoise decreases the noise of a frame. Higher values make the frame " +"softer." +msgstr "" +"Laghdaíonn DLS denoise torann fráma. Déanann luachanna níos airde an fráma " +"níos boige." + +#: bottles/frontend/ui/dialog-vkbasalt.blp:462 +msgid "" +"FXAA subpixel quality decreases aliasing at the subpixel level. Higher " +"values make the frame softer." +msgstr "" +"Laghdaíonn cáilíocht fo-bpicteilín FXAA aliasing ag leibhéal an fho-" +"bpicteilín. Déanann luachanna níos airde an fráma níos boige." + +#: bottles/frontend/ui/dialog-vkbasalt.blp:479 +msgid "" +"FXAA edge threshold is the minimum amount of contrast required to apply the " +"FXAA algorithm. Higher values make the frame have more contrast." +msgstr "" +"Is é tairseach imeall FXAA an méid codarsnachta íosta a theastaíonn chun " +"algartam FXAA a chur i bhfeidhm. Fágann luachanna níos airde níos mó " +"codarsnachta ag an bhfráma." + +#: bottles/frontend/ui/dialog-vkbasalt.blp:496 +msgid "" +"FXAA quality edge threshold minimum is the minimum value of dark pixels that " +"are ignored by the FXAA algorithm. Higher values make FXAA ignore pixels " +"below the specified value and can lead to a performance increase." +msgstr "" +"Is é íosmhéid tairseach imeall cáilíochta FXAA an luach íosta de phicteilíní " +"dorcha a dtugann algartam FXAA neamhaird orthu. Déanann luachanna níos airde " +"neamhaird ar FXAA picteilíní faoi bhun an luacha sonraithe agus d'fhéadfadh " +"méadú feidhmíochta a bheith mar thoradh air." + +#: bottles/frontend/ui/dialog-vkbasalt.blp:513 +msgid "" +"Luma detects edges from a monochrome perspective, whereas Color detects " +"edges based on colors. Luma is more performant than Color." +msgstr "" +"Aimsíonn Luma imill ó pheirspictíocht monacrómach, ach braitheann Dath imill " +"bunaithe ar dathanna. Tá Luma níos feidhmiúla ná Dath." + +#: bottles/frontend/ui/dialog-vkbasalt.blp:530 +msgid "" +"SMAA threshold specifies the sensitivity of edge detection. Lower values " +"detect more edges at the expense of performance." +msgstr "" +"Sonraíonn tairseach SMAA íogaireacht braite imeall. Braitheann luachanna " +"níos ísle níos mó imill ar chostas na feidhmíochta." + +#: bottles/frontend/ui/dialog-vkbasalt.blp:547 +msgid "" +"SMAA max search steps specifies how many horizontal and vertical search " +"steps are performed when searching for edges." +msgstr "" +"Sonraíonn céimeanna cuardaigh uasta SMAA cé mhéad céim chuardaigh " +"cothrománach agus ingearach a dhéantar agus imill á cuardach agat." + +#: bottles/frontend/ui/dialog-vkbasalt.blp:564 +msgid "" +"SMAA max diagonal search steps specifies how many diagonal search steps are " +"performed when searching for edges." +msgstr "" +"Sonraíonn céimeanna cuardaigh trasnánach SMAA max cé mhéad céim chuardaigh " +"trasnánach a dhéantar agus imill á cuardach agat." + +#: bottles/frontend/ui/dialog-vkbasalt.blp:581 +msgid "SMAA corner rounding specifies the strength of rounding edge corners." +msgstr "" +"Sonraíonn timpeallú cúinne SMAA neart na gcoirnéil imeall timpeallaithe." + +#: bottles/frontend/ui/dll-override-entry.blp:8 +msgid "Builtin (Wine)" +msgstr "Builtin (Fíon)" + +#: bottles/frontend/ui/dll-override-entry.blp:9 +msgid "Native (Windows)" +msgstr "Dúchasach (Windows)" + +#: bottles/frontend/ui/dll-override-entry.blp:10 +msgid "Builtin, then Native" +msgstr "Builtin, ansin Dúchasach" + +#: bottles/frontend/ui/dll-override-entry.blp:11 +msgid "Native, then Builtin" +msgstr "Dúchasach, ansin Builtin" + +#: bottles/frontend/ui/dll-override-entry.blp:12 +msgid "Disabled" +msgstr "Míchumas" + +#: bottles/frontend/ui/dll-override-entry.blp:20 +#: bottles/frontend/ui/drive-entry.blp:12 +msgid "Remove" +msgstr "Bain" + +#: bottles/frontend/ui/drive-entry.blp:5 +msgid "/point/to/path" +msgstr "/point/to/path" + +#: bottles/frontend/ui/env-var-entry.blp:4 +#: bottles/frontend/ui/exclusion-pattern-entry.blp:4 +msgid "Value" +msgstr "Luach" + +#. Translators: A Wine prefix is a separate environment (C:\ drive) for the Wine program +#: bottles/frontend/ui/importer-entry.blp:21 +msgid "Wine prefix name" +msgstr "Ainm réimír fíona" + +#: bottles/frontend/ui/importer-entry.blp:28 +msgid "Manager" +msgstr "Bainisteoir" + +#: bottles/frontend/ui/importer-entry.blp:38 +msgid "This Wine prefix was already imported in Bottles." +msgstr "Iompórtáladh an réimír Fíona seo i mBuidéil cheana féin." + +#: bottles/frontend/ui/importer.blp:22 +msgid "Import a Bottle backup" +msgstr "Iompórtáil cúltaca Buid" + +#: bottles/frontend/ui/importer.blp:28 +msgid "Search again for prefixes" +msgstr "Cuardaigh arís le haghaidh réamhfhoirmeacha" + +#: bottles/frontend/ui/importer.blp:38 +msgid "No Prefixes Found" +msgstr "Níl aon réamhréamhacha aimsithe" + +#: bottles/frontend/ui/importer.blp:39 +msgid "" +"No external prefixes were found. Does Bottles have access to them?\n" +"Use the icon on the top to import a bottle from a backup." +msgstr "" +"Níor aimsíodh aon réamhfhoirmeacha seachtracha. An bhfuil rochtain ag " +"Buidéil orthu?\n" +"Úsáid an deilbhín ar an mbarr chun buidéal a iompórtáil ó chúltaca." + +#: bottles/frontend/ui/importer.blp:74 +msgid "Full Archive" +msgstr "Cartlann Iomlán" + +#: bottles/frontend/ui/installer-entry.blp:16 +msgid "Show Manifest…" +msgstr "Taispeáin Manifest…" + +#: bottles/frontend/ui/installer-entry.blp:20 +msgid "Read Review…" +msgstr "Léigh Léirmheas…" + +#: bottles/frontend/ui/installer-entry.blp:34 +msgid "Installer name" +msgstr "Ainm suiteálaí" + +#: bottles/frontend/ui/installer-entry.blp:35 +msgid "Installer description" +msgstr "Cur síos suiteá" + +#: bottles/frontend/ui/installer-entry.blp:42 +msgid "Unknown" +msgstr "Anaithnid" + +#: bottles/frontend/ui/installer-entry.blp:51 +msgid "Install this Program" +msgstr "Suiteáil an Clár seo" + +#: bottles/frontend/ui/installer-entry.blp:69 +msgid "Program Menu" +msgstr "Roghchlár Cláir" + +#: bottles/frontend/ui/library-entry.blp:33 +msgid "No Thumbnail" +msgstr "Gan Mionsamhail" + +#: bottles/frontend/ui/library-entry.blp:57 +msgid "Launch" +msgstr "Seoladh" + +#: bottles/frontend/ui/library-entry.blp:70 +#: bottles/frontend/ui/program-entry.blp:89 +msgid "Launch with Steam" +msgstr "Seoladh le Steam" + +#: bottles/frontend/ui/library-entry.blp:108 +msgid "Item name" +msgstr "Ainm an earra" + +#: bottles/frontend/ui/library-entry.blp:132 +msgid "Remove from Library" +msgstr "Bain ón Leabharlann" + +#: bottles/frontend/ui/library-entry.blp:143 +msgid "Stop" +msgstr "Stad" + +#: bottles/frontend/ui/library.blp:11 +#: bottles/frontend/windows/main_window.py:196 +msgid "Library" +msgstr "Leabharlann" + +#: bottles/frontend/ui/library.blp:12 +msgid "Add items here from your bottle's program list" +msgstr "Cuir míreanna anseo ó liosta clár do bhuidéal" + +#: bottles/frontend/ui/list-entry.blp:26 +msgid "Versioning is active in this bottle." +msgstr "Tá leagan gníomhach sa bhuidéal seo." + +#: bottles/frontend/ui/list-entry.blp:42 +msgid "This bottle looks damaged." +msgstr "Breathnaíonn an buidéal seo damáiste." + +#: bottles/frontend/ui/list-entry.blp:55 +msgid "Execute in this Bottle" +msgstr "Forghníomhú sa Bhuidéal seo" + +#: bottles/frontend/ui/list-entry.blp:69 +msgid "Run Here" +msgstr "Rith Anseo" + +#: bottles/frontend/ui/list-entry.blp:75 +msgid "" +"This bottle looks damaged, the configuration file is missing. I can try to " +"solve by creating a new configuration." +msgstr "" +"Breathnaíonn damáiste don bhuidéal seo, tá an comhad cumraíochta ar " +"iarraidh. Is féidir liom iarracht a dhéanamh a réiteach trí chumraíocht nua " +"a chruthú." + +#: bottles/frontend/ui/list.blp:12 +msgid "Search your bottles…" +msgstr "Cuardaigh do bhuidéil…" + +#: bottles/frontend/ui/list.blp:28 +msgid "Steam Proton" +msgstr "Prótón gaile" + +#: bottles/frontend/ui/list.blp:42 bottles/frontend/windows/main_window.py:191 +#: data/com.usebottles.bottles.metainfo.xml.in:7 +msgid "Bottles" +msgstr "Buidéil" + +#: bottles/frontend/ui/list.blp:49 +msgid "Create New Bottle…" +msgstr "Cruthaigh Buidéal Nua…" + +#: bottles/frontend/ui/list.blp:63 +msgid "No Results Found" +msgstr "Níl aon torthaí aimsithe" + +#: bottles/frontend/ui/list.blp:64 +msgid "Try a different search." +msgstr "Bain triail as cuardach difriúil." + +#: bottles/frontend/ui/loading.blp:13 +msgid "Starting up…" +msgstr "Ag tosú…" + +#: bottles/frontend/ui/loading.blp:22 +msgid "Continue Offline" +msgstr "Lean ar aghaidh as líne" + +#: bottles/frontend/ui/local-resource-entry.blp:4 +msgid "This resource is missing." +msgstr "Tá an acmhainn seo ar iarraidh." + +#: bottles/frontend/ui/local-resource-entry.blp:8 +msgid "Browse" +msgstr "Brabhsáil" + +#: bottles/frontend/ui/new.blp:32 +msgid "C_reate" +msgstr "C_ruthaigh" + +#: bottles/frontend/ui/new.blp:75 +msgid "_Application" +msgstr "_Feidhmchlár" + +#: bottles/frontend/ui/new.blp:88 +msgid "_Gaming" +msgstr "_Cearrbhachas" + +#: bottles/frontend/ui/new.blp:101 +msgid "C_ustom" +msgstr "S_aincheaptha" + +#: bottles/frontend/ui/new.blp:114 +msgid "Custom" +msgstr "Saincheaptha" + +#: bottles/frontend/ui/new.blp:118 +msgid "Share User Directory" +msgstr "Comhroinn eolaire úsáideora" + +#: bottles/frontend/ui/new.blp:119 +msgid "" +"This makes the user directory discoverable in the bottle, at the risk of " +"sharing personal information to Windows software. This option cannot be " +"changed after the bottle has been created." +msgstr "" +"Déanann sé seo an eolaire úsáideora a aimsiú sa bhuidéal, ar an mbaol " +"faisnéis phearsanta a roinnt le bogearraí Windows. Ní féidir an rogha seo a " +"athrú tar éis an buidéal a chruthú." + +#: bottles/frontend/ui/new.blp:136 +msgid "Architecture" +msgstr "Ailtireacht" + +#: bottles/frontend/ui/new.blp:137 +msgid "32-bit should only be used if strictly necessary." +msgstr "Níor chóir 32-giotán a úsáid ach amháin más gá go docht." + +#: bottles/frontend/ui/new.blp:146 +msgid "Import a custom configuration." +msgstr "Cumraíocht saincheaptha a iompórtáil." + +#: bottles/frontend/ui/new.blp:176 +msgid "Bottle Directory" +msgstr "Eolaire Buidéal" + +#: bottles/frontend/ui/new.blp:177 +msgid "Directory that will contain the data of this bottle." +msgstr "Eolaire ina mbeidh sonraí an bhuidéil seo." + +#: bottles/frontend/ui/new.blp:249 +msgid "_Close" +msgstr "_Dún" + +#: bottles/frontend/ui/new.blp:281 +msgid "This name is unavailable, please try another." +msgstr "Níl an t-ainm seo ar fáil, déan iarracht eile le do thoil." + +#: bottles/frontend/ui/onboard.blp:34 +msgid "Previous" +msgstr "Roimhe Seo" + +#: bottles/frontend/ui/onboard.blp:59 +msgid "Welcome to Bottles" +msgstr "Fáilte go Buidéil" + +#: bottles/frontend/ui/onboard.blp:60 +msgid "Run Windows Software on Linux." +msgstr "Rith Bogearraí Windows ar Linux." + +#: bottles/frontend/ui/onboard.blp:65 +msgid "Windows in Bottles" +msgstr "Fuinneoga i mBuidéil" + +#: bottles/frontend/ui/onboard.blp:66 +msgid "" +"Bottles uses compatibility runners to provide isolated containerized Windows-" +"like environments where programs run." +msgstr "" +"Úsáideann Buidéil reathaí comhoiriúnachta chun timpeallachtaí aonraithe atá " +"cosúil le coimeádán Windows a sholáthar ina reáchtálann cláir." + +#: bottles/frontend/ui/onboard.blp:72 +msgid "Almost Done" +msgstr "Beagnach Déanta" + +#: bottles/frontend/ui/onboard.blp:73 +msgid "We need a few more minutes to set everything up…" +msgstr "Teastaíonn cúpla nóiméad eile uainn chun gach rud a shocrú…" + +#: bottles/frontend/ui/onboard.blp:105 +msgid "All Ready!" +msgstr "Gach Réidh!" + +#: bottles/frontend/ui/onboard.blp:114 +msgid "Please Finish the setup first" +msgstr "Críochnaigh an socrú ar dtús" + +#: bottles/frontend/ui/onboard.blp:120 +msgid "Start using Bottles" +msgstr "Tosaigh ag úsáid Buidéil" + +#: bottles/frontend/ui/onboard.blp:141 +msgid "Next" +msgstr "Ar Aghaidh" + +#: bottles/frontend/ui/preferences.blp:5 bottles/frontend/ui/window.blp:86 +msgid "Preferences" +msgstr "Roghanna" + +#: bottles/frontend/ui/preferences.blp:12 +#: bottles/frontend/ui/preferences.blp:40 +msgid "General" +msgstr "Ginearálta" + +#: bottles/frontend/ui/preferences.blp:15 +msgid "Appearance" +msgstr "Dealramh" + +#: bottles/frontend/ui/preferences.blp:18 +msgid "Dark Mode" +msgstr "Mód Dorcha" + +#: bottles/frontend/ui/preferences.blp:19 +msgid "Whether Bottles should use the dark color scheme." +msgstr "Cibé ar chóir do Bhuidéil an scéim dathanna dorcha a úsáid." + +#: bottles/frontend/ui/preferences.blp:29 +msgid "Show Update Date" +msgstr "Taispeáin Dáta Nuashonrú" + +#: bottles/frontend/ui/preferences.blp:30 +msgid "Whether to show the update date in the bottle list." +msgstr "Cibé an dtaispeántar an dáta nuashonraithe ar liosta na buidéil." + +#: bottles/frontend/ui/preferences.blp:43 +#: data/com.usebottles.bottles.gschema.xml:51 +msgid "Notifications" +msgstr "Fógraí" + +#: bottles/frontend/ui/preferences.blp:44 +msgid "Show notifications for downloads and installs." +msgstr "Taispeáin fógraí maidir le híoslódálacha agus suiteálacha." + +#: bottles/frontend/ui/preferences.blp:53 +msgid "Temp Files" +msgstr "Comhaid Teochta" + +#: bottles/frontend/ui/preferences.blp:54 +msgid "Clean temp files when Bottles launches?" +msgstr "Glan comhaid teochta nuair a sheolann Buidéal?" + +#: bottles/frontend/ui/preferences.blp:63 +msgid "Close Bottles After Starting a Program" +msgstr "Dún Buidéil Tar éis Clár a Thosú" + +#: bottles/frontend/ui/preferences.blp:64 +msgid "Close Bottles after starting a program from the file manager." +msgstr "Dún Buidéil tar éis clár a thosú ón mbainisteoir comhad." + +#: bottles/frontend/ui/preferences.blp:74 +msgid "Integrations" +msgstr "Comhtháthú" + +#: bottles/frontend/ui/preferences.blp:77 +msgid "Steam Proton Prefixes" +msgstr "Réamhfhoirmeacha prótóin gaile" + +#: bottles/frontend/ui/preferences.blp:78 +msgid "List and manage Steam Proton prefixes." +msgstr "Prefixí Steam Proton a liostáil agus a bhainistiú." + +#: bottles/frontend/ui/preferences.blp:98 +msgid "List Steam Apps in Programs List" +msgstr "Liosta Steam Apps i Liosta Cláir" + +#: bottles/frontend/ui/preferences.blp:99 +msgid "Requires Steam for Windows installed in the bottle." +msgstr "Éilíonn Steam le haghaidh Windows suiteáilte sa bhuidéal." + +#: bottles/frontend/ui/preferences.blp:108 +msgid "List Epic Games in Programs List" +msgstr "Liosta Cluichí Eipeach i Liosta Cláir" + +#: bottles/frontend/ui/preferences.blp:109 +msgid "Requires Epic Games Store installed in the bottle." +msgstr "Éilíonn Siopa Cluichí Epic suiteáilte sa bhuidéal." + +#: bottles/frontend/ui/preferences.blp:118 +msgid "List Ubisoft Games in Programs List" +msgstr "Liosta Cluichí Ubisoft i Liosta Cláir" + +#: bottles/frontend/ui/preferences.blp:119 +msgid "Requires Ubisoft Connect installed in the bottle." +msgstr "Éilíonn Ubisoft Connect suiteáilte sa bhuidéal." + +#: bottles/frontend/ui/preferences.blp:129 +msgid "Advanced" +msgstr "Ardleibhéal" + +#: bottles/frontend/ui/preferences.blp:132 +msgid "Pre-Release" +msgstr "Réamh-eisiúint" + +#: bottles/frontend/ui/preferences.blp:133 +msgid "Display unstable versions of runners and components." +msgstr "Taispeáin leaganacha éagobhsaí de reathaí agus comhpháirteanna." + +#: bottles/frontend/ui/preferences.blp:142 +msgid "Force Offline Mode" +msgstr "Fórsa Mód As Líne" + +#: bottles/frontend/ui/preferences.blp:143 +msgid "" +"Force disable any network activity even with available network connection." +msgstr "" +"Déan aon ghníomhaíocht líonra a dhíchumasú fiú má tá nasc líonra ar fáil." + +#: bottles/frontend/ui/preferences.blp:152 +msgid "Bottles Directory" +msgstr "Eolaire Buidéil" + +#: bottles/frontend/ui/preferences.blp:153 +msgid "Directory that contains the data of your Bottles." +msgstr "Eolaire ina bhfuil sonraí do bhuidéil." + +#: bottles/frontend/ui/preferences.blp:188 +msgid "Runners" +msgstr "Reathaitheoirí" + +#: bottles/frontend/ui/preferences.blp:202 +msgid "Bottles is running in offline mode, so runners are not available." +msgstr "Tá buidéil ag rith i mód as líne, mar sin níl reathaithe ar fáil." + +#: bottles/frontend/ui/preferences.blp:236 +msgid "DLL Components" +msgstr "comhpháirteanna DLL" + +#: bottles/frontend/ui/preferences.blp:250 +msgid "Bottles is running in offline mode, so DLLs are not available." +msgstr "Tá buidéil ag rith i mód as líne, mar sin níl DLLanna ar fáil." + +#: bottles/frontend/ui/preferences.blp:282 +msgid "DXVK-NVAPI" +msgstr "DXVK-NVAPI" + +#: bottles/frontend/ui/preferences.blp:295 +msgid "Core" +msgstr "Croí" + +#: bottles/frontend/ui/preferences.blp:299 +msgid "Runtime" +msgstr "Am rite" + +#: bottles/frontend/ui/preferences.blp:303 +msgid "WineBridge" +msgstr "WineBridge" + +#: bottles/frontend/ui/preferences.blp:309 +#: data/com.usebottles.bottles.gschema.xml:71 +msgid "Experiments" +msgstr "Turgnaimh" + +#: bottles/frontend/ui/preferences.blp:312 +msgid "" +"These features are under heavy development and may be unstable, expect bugs " +"and breakage." +msgstr "" +"Tá na gnéithe seo á bhforbairt go trom agus d’fhéadfadh siad a bheith " +"éagobhsaí, ag súil le fabhtanna agus briste." + +#: bottles/frontend/ui/preferences.blp:315 +msgid "Sandbox per bottle" +msgstr "Bosca gainimh in aghaidh an bhuidéal" + +#: bottles/frontend/ui/preferences.blp:316 +msgid "In early development." +msgstr "I bhforbairt luath." + +#: bottles/frontend/ui/program-entry.blp:19 +msgid "Launch with Terminal" +msgstr "Seoladh le Críochfort" + +#: bottles/frontend/ui/program-entry.blp:25 +msgid "Browse Path" +msgstr "Brabhsáil Conair" + +#: bottles/frontend/ui/program-entry.blp:39 +msgid "Change Launch Options…" +msgstr "Athraigh Roghanna Seolta…" + +#: bottles/frontend/ui/program-entry.blp:43 +msgid "Add to Library" +msgstr "Cuir leis an Leabharlann" + +#: bottles/frontend/ui/program-entry.blp:47 +msgid "Add Desktop Entry" +msgstr "Cuir Iontráil Deisce leis" + +#: bottles/frontend/ui/program-entry.blp:51 +msgid "Add to Steam" +msgstr "Cuir le Steam" + +#: bottles/frontend/ui/program-entry.blp:55 +msgid "Rename…" +msgstr "Athainmnigh…" + +#: bottles/frontend/ui/program-entry.blp:62 +msgid "Hide Program" +msgstr "Clár i bhfolach" + +#: bottles/frontend/ui/program-entry.blp:66 +msgid "Show Program" +msgstr "Clár Taispeáin" + +#: bottles/frontend/ui/program-entry.blp:70 +msgid "Remove from List" +msgstr "Bain ón Liosta" + +#: bottles/frontend/ui/program-entry.blp:83 +msgid "Program name" +msgstr "Ainm an chláir" + +#. Translators: id as identification +#: bottles/frontend/ui/state-entry.blp:8 +msgid "State id" +msgstr "ID Stáit" + +#: bottles/frontend/ui/state-entry.blp:9 +msgid "State comment" +msgstr "Trácht stáit" + +#: bottles/frontend/ui/state-entry.blp:16 +msgid "Restore this Snapshot" +msgstr "Athchóirigh an Snapshot seo" + +#: bottles/frontend/ui/task-entry.blp:19 +msgid "Delete message" +msgstr "Scrios teachtaireacht" + +#: bottles/frontend/ui/window.blp:40 +msgid "Main Menu" +msgstr "Príomh-roghchlár" + +#: bottles/frontend/ui/window.blp:54 +msgid "" +"You don't seem connected to the internet. Without it you will not be able to " +"download essential components. Click this icon when you have reestablished " +"the connection." +msgstr "" +"Is cosúil nach bhfuil tú ceangailte leis an idirlíon. Gan é ní bheidh tú in " +"ann comhpháirteanna riachtanacha a íoslódáil. Cliceáil ar an deilbhín seo " +"nuair a bheidh an nasc athbhunaithe agat." + +#: bottles/frontend/ui/window.blp:79 +msgid "Import…" +msgstr "Iompórtáil…" + +#: bottles/frontend/ui/window.blp:91 +msgid "Help" +msgstr "Cabhair" + +#: bottles/frontend/ui/window.blp:96 +msgid "About Bottles" +msgstr "Maidir le Buidéil" + +#: bottles/frontend/views/bottle_details.py:193 +#, python-brace-format +msgid "File \"{0}\" is not a .exe or .msi file" +msgstr "Ní comhad.exe nó .msi é comhad \"{0}\"" + +#: bottles/frontend/views/bottle_details.py:209 +#, python-format +msgid "Updated: %s" +msgstr "Nuashonraithe: %s" + +#: bottles/frontend/views/bottle_details.py:270 +#, python-brace-format +msgid "\"{0}\" added" +msgstr "Cuireadh \"{0}\" leis" + +#: bottles/frontend/views/bottle_details.py:273 +#: bottles/frontend/views/bottle_details.py:401 +#: bottles/frontend/views/list.py:128 +msgid "Select Executable" +msgstr "Roghnaigh Infheidhmithe" + +#: bottles/frontend/views/bottle_details.py:276 +msgid "Add" +msgstr "Cuir" + +#: bottles/frontend/views/bottle_details.py:349 +msgid "Hide Hidden Programs" +msgstr "Folaigh Cláir i bhfolach" + +#: bottles/frontend/views/bottle_details.py:386 +#: bottles/frontend/widgets/library.py:163 +#: bottles/frontend/widgets/program.py:184 +#, python-brace-format +msgid "Launching \"{0}\"…" +msgstr "Ag seoladh \"{0}\"…" + +#: bottles/frontend/views/bottle_details.py:416 +msgid "Be Aware of Sandbox" +msgstr "Bí ar an eolas faoi bhosca gainimh" + +#: bottles/frontend/views/bottle_details.py:417 +msgid "" +"Bottles is running in a sandbox, a restricted permission environment needed " +"to keep you safe. If the program won't run, consider moving inside the " +"bottle (3 dots icon on the top), then launch from there." +msgstr "" +"Tá buidéil ag rith i mbosca gainimh, timpeallacht cheada srianta a " +"theastaíonn chun tú a choinneáil sábháilte. Mura ritheann an clár, smaoinigh " +"ar bhogadh taobh istigh den bhuidéal (deilbhín 3 ponc ar an mbarr), ansin " +"seoladh as sin." + +#: bottles/frontend/views/bottle_details.py:419 +#: bottles/frontend/views/bottle_details.py:528 +#: bottles/frontend/windows/main_window.py:223 +msgid "_Dismiss" +msgstr "_Díbhunaigh" + +#: bottles/frontend/views/bottle_details.py:432 +msgid "Select the location where to save the backup config" +msgstr "Roghnaigh an suíomh áit a shábháil an cumraíocht chúltaca" + +#: bottles/frontend/views/bottle_details.py:434 +msgid "Export" +msgstr "Easpórtáil" + +#: bottles/frontend/views/bottle_details.py:436 +msgid "Select the location where to save the backup archive" +msgstr "Roghnaigh an suíomh áit a shábháil an cartlann cúltaca" + +#: bottles/frontend/views/bottle_details.py:438 +msgid "Backup" +msgstr "Cúltaca" + +#: bottles/frontend/views/bottle_details.py:443 +#, python-brace-format +msgid "Backup created for \"{0}\"" +msgstr "Cúltaca cruthaithe do \"{0}\"" + +#: bottles/frontend/views/bottle_details.py:445 +#, python-brace-format +msgid "Backup failed for \"{0}\"" +msgstr "Theip ar chúltaca do \"{0}\"" + +#: bottles/frontend/views/bottle_details.py:504 +msgid "Are you sure you want to permanently delete \"{}\"?" +msgstr "An bhfuil tú cinnte gur mhaith leat \"{}\" a scriosadh go buan?" + +#: bottles/frontend/views/bottle_details.py:505 +msgid "" +"This will permanently delete all programs and settings associated with it." +msgstr "Scriosfaidh sé seo gach clár agus socruithe a bhaineann leis go buan." + +#: bottles/frontend/views/bottle_details.py:508 +#: bottles/frontend/views/bottle_preferences.py:747 +msgid "_Delete" +msgstr "_Scrios" + +#: bottles/frontend/views/bottle_details.py:524 +msgid "Missing Runner" +msgstr "Rathóir ar iarraidh" + +#: bottles/frontend/views/bottle_details.py:525 +msgid "" +"The runner requested by this bottle is missing. Install it through the " +"Bottles preferences or choose a new one to run applications." +msgstr "" +"Tá an rádálaí a iarrann an buidéal seo ar iarraidh. Suiteáil é trí na " +"roghanna Buidéil nó roghnaigh ceann nua chun feidhmchláir a reáchtáil." + +#: bottles/frontend/views/bottle_details.py:600 +msgid "Are you sure you want to force stop all processes?" +msgstr "" +"An bhfuil tú cinnte gur mhaith leat gach próiseas a stopadh a chur i " +"bhfeidhm?" + +#: bottles/frontend/views/bottle_details.py:601 +msgid "This can cause data loss, corruption, and programs to malfunction." +msgstr "" +"Féadfaidh sé seo a bheith ina chúis le caillteanas sonraí, éilliú, agus " +"mífheidhmiú cláir." + +#: bottles/frontend/views/bottle_details.py:604 +msgid "Force _Stop" +msgstr "Fórsa _Stad" + +#: bottles/frontend/views/bottle_preferences.py:195 +msgid "This feature is unavailable on your system." +msgstr "Níl an ghné seo ar fáil ar do chóras." + +#: bottles/frontend/views/bottle_preferences.py:196 +msgid "{} To add this feature, please run flatpak install" +msgstr "{} Chun an ghné seo a chur leis, reáchtáil suiteáil flatpak" + +#: bottles/frontend/views/bottle_preferences.py:246 +msgid "This bottle name is already in use." +msgstr "Tá an t-ainm buidéil seo in úsáid cheana féin." + +#: bottles/frontend/views/bottle_preferences.py:301 +#: bottles/frontend/windows/launchoptions.py:240 +msgid "Select Working Directory" +msgstr "Roghnaigh Eolaire oibre" + +#: bottles/frontend/views/bottle_preferences.py:422 +msgid "Directory that contains the data of \"{}\"." +msgstr "Eolaire ina bhfuil sonraí \"{}\"." + +#: bottles/frontend/views/bottle_preferences.py:743 +msgid "Are you sure you want to delete all snapshots?" +msgstr "An bhfuil tú cinnte gur mhaith leat gach snapshot a scriosadh?" + +#: bottles/frontend/views/bottle_preferences.py:744 +msgid "This will delete all snapshots but keep your files." +msgstr "Scriosfaidh sé seo gach snapshot ach coinneoidh sé do chuid comhad." + +#: bottles/frontend/views/bottle_versioning.py:90 +msgid "Please migrate to the new Versioning system to create new states." +msgstr "" +"Imirgh chuig an gcóras leaganaithe nua le do thoil chun stáit nua a chruthú." + +#: bottles/frontend/views/details.py:153 +msgid "Installers" +msgstr "Suiteálaithe" + +#: bottles/frontend/views/details.py:234 +msgid "Operations in progress, please wait." +msgstr "Oibríochtaí atá ar siúl, fan le do thoil." + +#: bottles/frontend/views/details.py:239 +msgid "Return to your bottles." +msgstr "Fill ar do bhuidéil." + +#: bottles/frontend/views/importer.py:92 +msgid "Backup imported successfully" +msgstr "Cúltaca allmhairithe" + +#: bottles/frontend/views/importer.py:94 +msgid "Import failed" +msgstr "Theip ar iompórtá" + +#: bottles/frontend/views/importer.py:108 +#: bottles/frontend/views/importer.py:145 +msgid "Importing backup…" +msgstr "Cúltaca á iompórtáil…" + +#: bottles/frontend/views/importer.py:117 +msgid "Select a Backup Archive" +msgstr "Roghnaigh Cartlann Cúltaca" + +#: bottles/frontend/views/importer.py:120 +#: bottles/frontend/views/importer.py:157 +msgid "Import" +msgstr "Allmhairiú" + +#: bottles/frontend/views/importer.py:154 bottles/frontend/views/new.py:136 +msgid "Select a Configuration File" +msgstr "Roghnaigh Comhad Cumraíochta" + +#: bottles/frontend/views/list.py:60 bottles/frontend/views/list.py:66 +msgid "N/A" +msgstr "N/A" + +#. Set tooltip text +#: bottles/frontend/views/list.py:91 +#, python-brace-format +msgid "Run executable in \"{self.config.Name}\"" +msgstr "Rith inrite i \"{self.config.Name}\"" + +#: bottles/frontend/views/list.py:118 +#, python-brace-format +msgid "Launching \"{0}\" in \"{1}\"…" +msgstr "Ag seoladh \"{0}\" in \"{1}\"…" + +#: bottles/frontend/views/list.py:235 +msgid "Your Bottles" +msgstr "Do Bhuidéil" + +#: bottles/frontend/views/loading.py:46 +#, python-brace-format +msgid "Downloading ~{0} of packages…" +msgstr "~{0} pacáiste á n-íoslódáil…" + +#: bottles/frontend/views/loading.py:47 +#, python-brace-format +msgid "Fetched {0} of {1} packages" +msgstr "Fuarthas {0} de {1} pacáistí" + +#: bottles/frontend/views/new.py:157 +msgid "Select Bottle Directory" +msgstr "Roghnaigh Eolaire Buid" + +#: bottles/frontend/views/new.py:176 +msgid "Creating Bottle…" +msgstr "Buidéal á Chruthú…" + +#: bottles/frontend/views/new.py:221 +msgid "Unable to Create Bottle" +msgstr "Ní féidir Buidéal a Chruthú" + +#: bottles/frontend/views/new.py:225 +msgid "Bottle failed to create with one or more errors." +msgstr "Theip ar bhuidéal a chruthú le earráid amháin nó níos mó." + +#. Show success +#: bottles/frontend/views/new.py:232 +msgid "Bottle Created" +msgstr "Buidéal Cruthaithe" + +#: bottles/frontend/views/new.py:233 +#, python-brace-format +msgid "\"{0}\" was created successfully." +msgstr "Cruthaíodh \"{0}\" go rathúil." + +#: bottles/frontend/views/preferences.py:134 +msgid "Steam was not found or Bottles does not have enough permissions." +msgstr "Níor aimsíodh gaile nó níl go leor ceadanna ag Buidéil." + +#: bottles/frontend/views/preferences.py:187 +msgid "Select Bottles Path" +msgstr "Roghnaigh Conair Buidéal" + +#: bottles/frontend/views/preferences.py:209 +msgid "Relaunch Bottles?" +msgstr "Buidéil Athsheolta?" + +#: bottles/frontend/views/preferences.py:210 +msgid "" +"Bottles will need to be relaunched to use this directory.\n" +"\n" +"Be sure to close every program launched from Bottles before relaunching " +"Bottles, as not doing so can cause data loss, corruption and programs to " +"malfunction." +msgstr "" +"Beidh gá le buidéil a athsheoladh chun an t-eolaire seo a úsáid.\n" +"\n" +"Bí cinnte gach clár a sheoltar ó Bhuidéil a dhúnadh sula n-athsheoltar " +"Buidéil, mar mura ndéantar amhlaidh d’fhéadfadh caillteanas sonraí, éilliú " +"agus cláir a bheith mífheidhmithe." + +#: bottles/frontend/views/preferences.py:213 +msgid "_Relaunch" +msgstr "_Athsheoladh" + +#: bottles/frontend/views/preferences.py:306 +msgid "Based on Valve's Wine, includes Staging and Proton patches." +msgstr "Bunaithe ar Fíon Valve, tá paistí Stáitse agus Prótón san áireamh." + +#: bottles/frontend/views/preferences.py:307 +msgid "Based on Wine upstream, includes Staging and Proton patches." +msgstr "" +"Bunaithe ar Fíon suas an sruth, tá paistí Stáitse agus Prótón san áireamh." + +#: bottles/frontend/views/preferences.py:308 +msgid "" +"Based on the most recent bleeding-edge Valve's Proton Experimental Wine, " +"includes Staging and custom patches. This is meant to be used with non-steam " +"games outside of Steam." +msgstr "" +"Bunaithe ar an bhFíon Turgnamhach Prótón Valve is déanaí, tá Stáitseáil agus " +"paistí saincheaptha ann. Tá sé i gceist é seo a úsáid le cluichí neamh-gaile " +"lasmuigh de Steam." + +#: bottles/frontend/views/preferences.py:311 +msgid "" +"Based on Wine upstream, Staging, Staging-TkG and Proton patchset optionally " +"available." +msgstr "" +"Bunaithe ar phaisset Fíon suas an sruth, Staging, Staging-TKG agus Proton ar " +"fáil go roghnach." + +#: bottles/frontend/views/preferences.py:313 +msgid "Based on Wine upstream, includes Staging patches." +msgstr "Bunaithe ar Fíon suas an sruth, tá paistí stáitse san áireamh." + +#: bottles/frontend/views/preferences.py:314 +msgid "" +"Based on most recent bleeding-edge Valve's Proton Experimental, includes " +"Staging and custom patches. Requires the Steam Runtime turned on." +msgstr "" +"Bunaithe ar Turgnamhach Prótón Valve is déanaí ar imeall fuiliúcháin, tá " +"stáisiú agus paistí saincheaptha ann. Éilíonn an Rúntime Gaile a chasadh air." + +#: bottles/frontend/views/preferences.py:317 +msgid "Other Wine runners" +msgstr "Reathaithe fíona eile" + +#: bottles/frontend/views/preferences.py:318 +msgid "Other Proton runners" +msgstr "Reathaithe Prótóin eile" + +#: bottles/frontend/widgets/component.py:76 +msgid "Upgrade" +msgstr "Uasghrádú" + +#: bottles/frontend/widgets/component.py:142 +msgid "Installing…" +msgstr "Ag suiteáil…" + +#: bottles/frontend/widgets/dependency.py:107 +#: bottles/frontend/widgets/installer.py:81 +#, python-brace-format +msgid "Manifest for {0}" +msgstr "Léiriú do {0}" + +#: bottles/frontend/widgets/dependency.py:172 +#, python-brace-format +msgid "\"{0}\" uninstalled" +msgstr "\"{0}\" díshuiteáilte" + +#: bottles/frontend/widgets/dependency.py:174 +#, python-brace-format +msgid "\"{0}\" installed" +msgstr "\"{0}\" suiteáilte" + +#: bottles/frontend/widgets/dependency.py:188 +#, python-brace-format +msgid "\"{0}\" failed to install" +msgstr "Theip ar \"{0}\" a shuiteáil" + +#: bottles/frontend/widgets/importer.py:68 +#, python-brace-format +msgid "\"{0}\" imported" +msgstr "\"{0}\" allmhairithe" + +#: bottles/frontend/widgets/installer.py:49 +msgid "" +"This application may work poorly. The installer was configured to provide " +"the best possible experience, but expect glitches, instability and lack of " +"working features." +msgstr "" +"D'fhéadfadh an feidhmchlár seo oibriú go dona. Cumraíodh an suiteálaí chun " +"an taithí is fearr is féidir a sholáthar, ach súil le glitches, " +"éagobhsaíocht agus easpa gnéithe oibre." + +#: bottles/frontend/widgets/installer.py:50 +msgid "" +"This program works with noticeable glitches, but these glitches do not " +"affect the application's functionality." +msgstr "" +"Oibríonn an clár seo le glitches suntasacha, ach ní dhéanann na glitches seo " +"difear do fheidhmiúlacht an fheidhmchláir." + +#: bottles/frontend/widgets/installer.py:51 +msgid "This program works with minor glitches." +msgstr "Oibríonn an clár seo le mionghabhálacha." + +#: bottles/frontend/widgets/installer.py:52 +msgid "This program works perfectly." +msgstr "Oibríonn an clár seo go foirfe." + +#: bottles/frontend/widgets/installer.py:90 +#, python-brace-format +msgid "Review for {0}" +msgstr "Léirmheas ar {0}" + +#: bottles/frontend/widgets/library.py:176 +#: bottles/frontend/widgets/program.py:194 +#, python-brace-format +msgid "Stopping \"{0}\"…" +msgstr "Ag stopadh \"{0}\"…" + +#: bottles/frontend/widgets/program.py:190 +#, python-brace-format +msgid "Launching \"{0}\" with Steam…" +msgstr "Ag seoladh \"{0}\" le Steam…" + +#: bottles/frontend/widgets/program.py:214 +#, python-brace-format +msgid "\"{0}\" hidden" +msgstr "\"{0}\" i bhfolach" + +#: bottles/frontend/widgets/program.py:216 +#, python-brace-format +msgid "\"{0}\" showed" +msgstr "Taispeáin \"{0}\"" + +#: bottles/frontend/widgets/program.py:242 +#, python-brace-format +msgid "\"{0}\" removed" +msgstr "\"{0}\" bainte" + +#: bottles/frontend/widgets/program.py:274 +#, python-brace-format +msgid "\"{0}\" renamed to \"{1}\"" +msgstr "Athainmnigh \"{0}\" go \"{1}\"" + +#: bottles/frontend/widgets/program.py:297 +#, python-brace-format +msgid "Desktop Entry created for \"{0}\"" +msgstr "Iontráil deisce cruthaithe do \"{0}\"" + +#: bottles/frontend/widgets/program.py:313 +#, python-brace-format +msgid "\"{0}\" added to your library" +msgstr "Cuireadh \"{0}\" le do leabharlann" + +#: bottles/frontend/widgets/program.py:331 +#, python-brace-format +msgid "\"{0}\" added to your Steam library" +msgstr "Cuireadh \"{0}\" le do leabharlann Steam" + +#: bottles/frontend/windows/crash.py:33 +msgid "Show report" +msgstr "Taispeáin tuarascáil" + +#: bottles/frontend/windows/crash.py:80 +msgid "" +" This issue was reported 5 times and cannot be sent again.\n" +" Report your feedback in one of the below existing reports." +msgstr "" +" Tuairiscíodh an tsaincheist seo 5 huaire agus ní féidir é a " +"sheoladh arís.\n" +" Tuairisc d'aiseolas i gceann de na tuarascálacha atá ann thíos." + +#: bottles/frontend/windows/display.py:102 +msgid "Updating display settings, please wait…" +msgstr "Socruithe taispeána á nuashonrú, fan go fóill…" + +#: bottles/frontend/windows/display.py:114 +msgid "Display settings updated" +msgstr "Socruithe taispeána nuash" + +#: bottles/frontend/windows/dlloverrides.py:136 +msgid "No overrides found." +msgstr "Níor aimsíodh aon fhorlíonadh." + +#: bottles/frontend/windows/drives.py:71 +msgid "Select Drive Path" +msgstr "Roghnaigh Conair Tiomána" + +#: bottles/frontend/windows/envvars.py:135 +msgid "No environment variables defined." +msgstr "Níl aon athróga comhshaoil sainithe." + +#: bottles/frontend/windows/exclusionpatterns.py:105 +msgid "No exclusion patterns defined." +msgstr "Ní shainigh aon phatrúin eisiaimh." + +#: bottles/frontend/windows/generic.py:24 +msgid "An error has occurred." +msgstr "Tharla earráid." + +#: bottles/frontend/windows/generic.py:91 +#: bottles/frontend/windows/generic.py:137 +#: bottles/frontend/windows/generic.py:182 +msgid "Copy to clipboard" +msgstr "Cóipeáil chuig gearr" + +#: bottles/frontend/windows/installer.py:62 +msgid "Select Resource File" +msgstr "Roghnaigh Comhad Acmhainn" + +#: bottles/frontend/windows/installer.py:109 +msgid "Installing Windows dependencies…" +msgstr "Ag suiteáil spleáchais Windows…" + +#: bottles/frontend/windows/installer.py:110 +msgid "Configuring the bottle…" +msgstr "An buidéal á chumrú…" + +#: bottles/frontend/windows/installer.py:111 +msgid "Processing installer steps…" +msgstr "Céimeanna suiteálaí á bpróiseáil…" + +#: bottles/frontend/windows/installer.py:112 +msgid "Installing the {}…" +msgstr "Ag suiteáil an {}…" + +#: bottles/frontend/windows/installer.py:113 +msgid "Performing final checks…" +msgstr "Seiceálacha deiridh á ndéanamh…" + +#: bottles/frontend/windows/installer.py:117 +#, python-brace-format +msgid "Installing {0}…" +msgstr "Ag suiteáil {0}…" + +#: bottles/frontend/windows/installer.py:119 +#, python-brace-format +msgid "{0} is now available in the programs view." +msgstr "Tá {0} ar fáil anois i radharc na gclár." + +#: bottles/frontend/windows/installer.py:166 +msgid "Installer failed with unknown error" +msgstr "Theip ar an suiteálaí le hearráid" + +#: bottles/frontend/windows/launchoptions.py:55 +#, python-brace-format +msgid "{0} is already disabled for this bottle." +msgstr "Tá {0} faoi dhíchumasú cheana féin don bhuidéal seo." + +#: bottles/frontend/windows/launchoptions.py:56 +msgid "This setting is different from the bottle's default." +msgstr "Tá an suíomh seo difriúil ó réamhshocrú an bhuidéil." + +#: bottles/frontend/windows/launchoptions.py:214 +msgid "Select Script" +msgstr "Roghnaigh Script" + +#: bottles/frontend/windows/main_window.py:220 +msgid "Custom Bottles Path not Found" +msgstr "Conair Buidéil Saincheaptha nach bhfuarthas" + +#: bottles/frontend/windows/main_window.py:221 +msgid "" +"Falling back to default path. No bottles from the given path will be listed." +msgstr "" +"Titeamh ar ais go cosán réamhshocraithe. Ní liostófar aon bhuidéil ón gcosán " +"a thugtar." + +#: data/com.usebottles.bottles.desktop.in.in:3 +msgid "@APP_NAME@" +msgstr "@APP_NAME @" + +#: data/com.usebottles.bottles.desktop.in.in:4 +#: data/com.usebottles.bottles.metainfo.xml.in:8 +msgid "Run Windows Software" +msgstr "Rith Bogearraí Windows" + +#: data/com.usebottles.bottles.desktop.in.in:13 +msgid "wine;windows;" +msgstr "fíon; fuinneoga;" + +#: data/com.usebottles.bottles.gschema.xml:6 +msgid "Flatpak migration" +msgstr "Imirce Flatpak" + +#: data/com.usebottles.bottles.gschema.xml:7 +msgid "Toggle the Flatpak migration dialog." +msgstr "Athraigh an dialóg imirce Flatpak." + +#: data/com.usebottles.bottles.gschema.xml:11 +msgid "Dark theme" +msgstr "Téama dorcha" + +#: data/com.usebottles.bottles.gschema.xml:12 +msgid "Force the use of dark theme." +msgstr "Cuir iallach ar úsáid téama dorcha." + +#: data/com.usebottles.bottles.gschema.xml:16 +msgid "Force Offline" +msgstr "Fórsa As Líne" + +#: data/com.usebottles.bottles.gschema.xml:17 +msgid "" +"\"Force disable any network activity even with available network connection." +"\"" +msgstr "" +"\"Díchumasaigh fórsa aon ghníomhaíocht líonra fiú le nasc líonra atá ar fáil." +"\"" + +#: data/com.usebottles.bottles.gschema.xml:21 +msgid "Toggle update date in list" +msgstr "Athraigh dáta nuashonraithe ar an liosta" + +#: data/com.usebottles.bottles.gschema.xml:22 +msgid "Toggle the update date in list of bottles." +msgstr "Athraigh an dáta nuashonraithe i liosta na mbuidéil." + +#: data/com.usebottles.bottles.gschema.xml:26 +msgid "Steam apps listing" +msgstr "Liostú aipeanna Steam" + +#: data/com.usebottles.bottles.gschema.xml:27 +msgid "Toggle steam apps listing." +msgstr "Athraigh liostú aipeanna gaile." + +#: data/com.usebottles.bottles.gschema.xml:31 +msgid "Epic Games listing" +msgstr "Liostú Cluichí Epic" + +#: data/com.usebottles.bottles.gschema.xml:32 +msgid "Toggle epic games listing." +msgstr "Athraigh liostú cluichí eipiciúla." + +#: data/com.usebottles.bottles.gschema.xml:36 +msgid "Ubisoft Connect listing" +msgstr "Liostú Ubisoft Connect" + +#: data/com.usebottles.bottles.gschema.xml:37 +msgid "Toggle ubisoft connect listing." +msgstr "Athraigh liostú ceangail ubisoft." + +#: data/com.usebottles.bottles.gschema.xml:41 +msgid "Window width" +msgstr "Leithead fuinneoige" + +#: data/com.usebottles.bottles.gschema.xml:42 +msgid "Change the window width." +msgstr "Athraigh leithead na fuinneoige." + +#: data/com.usebottles.bottles.gschema.xml:46 +msgid "Window height" +msgstr "Airde fuinneoige" + +#: data/com.usebottles.bottles.gschema.xml:47 +msgid "Change the window height." +msgstr "Athraigh airde na fuinneoige." + +#: data/com.usebottles.bottles.gschema.xml:52 +msgid "Show notifications." +msgstr "Taispeáin fógraí." + +#: data/com.usebottles.bottles.gschema.xml:56 +msgid "Temp cleaning" +msgstr "Glanadh teochta" + +#: data/com.usebottles.bottles.gschema.xml:57 +msgid "Clean the temp path when booting the system." +msgstr "Glan an cosán teochta agus an córas á thosú." + +#: data/com.usebottles.bottles.gschema.xml:61 +msgid "Release Candidate" +msgstr "Scaoil iarrthóir" + +#: data/com.usebottles.bottles.gschema.xml:62 +msgid "Toggle release candidate for runners." +msgstr "Toggle iarrthóir scaoilte do reathaithe." + +#: data/com.usebottles.bottles.gschema.xml:66 +msgid "Startup view" +msgstr "Amharc tosaithe" + +#: data/com.usebottles.bottles.gschema.xml:67 +msgid "Choose which view the application should be started in." +msgstr "Roghnaigh cén radharc ba chóir an t-iarratas a thosú ann." + +#: data/com.usebottles.bottles.gschema.xml:72 +msgid "" +"Toggle experimental features such as versioning and installers. Release " +"candidate for runners." +msgstr "" +"Athraigh gnéithe turgnamhacha mar leagan agus suiteálaithe. Scaoil iarrthóir " +"do reathaithe." + +#: data/com.usebottles.bottles.gschema.xml:76 +msgid "Steam Proton Support" +msgstr "Tacaíocht Prótóin Gaile" + +#: data/com.usebottles.bottles.gschema.xml:77 +msgid "Toggle Steam Proton prefixes support." +msgstr "Toggle Tacaíocht réamhfhoirmeacha Proton Steam." + +#: data/com.usebottles.bottles.gschema.xml:81 +msgid "Experiments:sandbox" +msgstr "Turgnaí:bosca gainimh" + +#: data/com.usebottles.bottles.gschema.xml:82 +msgid "Toggle experimental Sandbox per bottle." +msgstr "Scoránaigh Bosca Gainimh turgnamhach in aghaidh an bhuidéil." + +#: data/com.usebottles.bottles.gschema.xml:86 +msgid "Automatically close Bottles" +msgstr "Buidéil a dhúnadh" + +#: data/com.usebottles.bottles.gschema.xml:87 +msgid "Close Bottles after starting an executable from the file manager." +msgstr "Dún Buidéil tar éis duit infheidhmithe a thosú ón mbainisteoir comhad." + +#: data/com.usebottles.bottles.gschema.xml:91 +msgid "Show sandbox warning" +msgstr "Taispeáin rabhadh bosca gainimh" + +#: data/com.usebottles.bottles.gschema.xml:92 +msgid "Toggle sandbox warning." +msgstr "Athraigh rabhadh bosca gainimh." + +#: data/com.usebottles.bottles.metainfo.xml.in:11 +msgid "" +"Bottles lets you run Windows software on Linux, such as applications and " +"games. It introduces a workflow that helps you organize by categorizing each " +"software to your liking. Bottles provides several tools and integrations to " +"help you manage and optimize your applications." +msgstr "" +"Ligeann Buidéil duit bogearraí Windows a rith ar Linux, mar fheidhmchláir " +"agus cluichí. Tugann sé isteach sreabhadh oibre a chuidíonn leat a eagrú trí " +"gach bogearraí a chatagóiriú de réir mar is maith leat. Soláthraíonn Bottles " +"roinnt uirlisí agus comhtháthú chun cabhrú leat d’fheidhmchláir a bhainistiú " +"agus a bharrfheabhsú." + +#: data/com.usebottles.bottles.metainfo.xml.in:12 +msgid "Features:" +msgstr "Gnéithe:" + +#: data/com.usebottles.bottles.metainfo.xml.in:14 +msgid "Use pre-configured environments as a base" +msgstr "Úsáid timpeallachtaí réamhchumraithe mar bhonn" + +#: data/com.usebottles.bottles.metainfo.xml.in:15 +msgid "Change runners for any bottle" +msgstr "Athraigh reathaithe le haghaidh aon bhuidéal" + +#: data/com.usebottles.bottles.metainfo.xml.in:16 +msgid "Various optimizations and options for gaming" +msgstr "Optamú agus roghanna éagsúla do chearrbhachas" + +#: data/com.usebottles.bottles.metainfo.xml.in:17 +msgid "Repair in case software or bottle is broken" +msgstr "Deisiúchán i gcás go mbeidh bogearraí nó buidéal briste" + +#: data/com.usebottles.bottles.metainfo.xml.in:18 +msgid "Install various known dependencies" +msgstr "Suiteáil spleáchais aitheanta éagsú" + +#: data/com.usebottles.bottles.metainfo.xml.in:19 +msgid "Integrated task manager to manage and monitor processes" +msgstr "Bainisteoir tascanna comhtháite chun próisis a bhainistiú agus" + +#: data/com.usebottles.bottles.metainfo.xml.in:20 +msgid "Backup and restore" +msgstr "Cúltaca agus athshlánú" + +#: data/com.usebottles.bottles.metainfo.xml.in:69 +msgid "Fix runners and components from not showing when prereleases are off" +msgstr "" +"Socraigh reathaithe agus comhpháirteanna gan taispeáint nuair a bhíonn " +"réamheisiúint" + +#: data/com.usebottles.bottles.metainfo.xml.in:70 +msgid "Fix Steam runtime compatibility with Wine runners" +msgstr "Socraigh comhoiriúnacht reatha Steam le reathaithe Fíon" + +#: data/com.usebottles.bottles.metainfo.xml.in:75 +msgid "A few bug fixes" +msgstr "Cúpla socrú fabht" + +#: data/com.usebottles.bottles.metainfo.xml.in:80 +msgid "Support for the double-DLL VKD3D" +msgstr "Tacaíocht don Double-DLL VKD3D" + +#: data/com.usebottles.bottles.metainfo.xml.in:81 +msgid "Updated Flatpak runtime" +msgstr "Rúnam Flatpak nuashonraithe" + +#: data/com.usebottles.bottles.metainfo.xml.in:82 +msgid "Minor improvement and fixes to the library" +msgstr "Mionfheabhsú agus socruithe ar an leabharlann" + +#: data/com.usebottles.bottles.metainfo.xml.in:83 +msgid "Fix the Steam link not being correct" +msgstr "Socraigh an nasc Steam nach bhfuil ceart" + +#: data/com.usebottles.bottles.metainfo.xml.in:84 +msgid "Download stable component by default" +msgstr "Íoslódáil comhpháirt chobhsaí" + +#: data/com.usebottles.bottles.metainfo.xml.in:85 +msgid "Make window remember dimensions" +msgstr "Cuimhnigh ar thoisí fuinneog" + +#: data/com.usebottles.bottles.metainfo.xml.in:90 +msgid "Update metadata information" +msgstr "Faisnéis meiteashonraí a" + +#: data/com.usebottles.bottles.metainfo.xml.in:95 +msgid "Add more update information and correct release notes version" +msgstr "Cuir tuilleadh faisnéise nuashonraithe leis agus an leagan ceart" + +#: data/com.usebottles.bottles.metainfo.xml.in:100 +msgid "Fixed \"Add to Steam\" button" +msgstr "Cnaipe \"Cuir le Steam\" seasta" + +#: data/com.usebottles.bottles.metainfo.xml.in:101 +msgid "Fixed BottleConfig being not serializable" +msgstr "Níl BottleConfig Seasta inshraitheach" + +#: data/com.usebottles.bottles.metainfo.xml.in:102 +msgid "Fixed Patool double extraction failing" +msgstr "Teip ar eastóscadh dúbailte Patool Seasta" + +#: data/com.usebottles.bottles.metainfo.xml.in:107 +msgid "Correct version" +msgstr "Leagan ceart" + +#: data/com.usebottles.bottles.metainfo.xml.in:112 +msgid "Fix crash when creating a bottle" +msgstr "Socraigh timpiste agus buidéal á chruthú" + +#: data/com.usebottles.bottles.metainfo.xml.in:117 +msgid "Major change: Redesign New Bottle interface" +msgstr "Athrú mór: Comhéadan Buidéal Nua a Athdhearadh" + +#: data/com.usebottles.bottles.metainfo.xml.in:118 +msgid "Quality of life improvements:" +msgstr "Feabhsuithe ar cháilíocht na beatha:" + +#: data/com.usebottles.bottles.metainfo.xml.in:120 +msgid "Replace emote-love icon with a library in library page" +msgstr "" +"Cuir deilbhín grá mothúchán in ionad leabharlann i leathanach leabharlainne" + +#: data/com.usebottles.bottles.metainfo.xml.in:121 +msgid "Add toast for \"Run Executable\"" +msgstr "Cuir tósta le haghaidh \"Rith Infheidhmithe\"" + +#: data/com.usebottles.bottles.metainfo.xml.in:123 +msgid "Bug fixes:" +msgstr "Socruithe fabht:" + +#: data/com.usebottles.bottles.metainfo.xml.in:125 +msgid "Adding a shortcut to Steam resulted in an error" +msgstr "Mar thoradh ar aicearra a chur le Steam bhí earráid" + +#: data/com.usebottles.bottles.metainfo.xml.in:126 +msgid "Importing backups resulted an error" +msgstr "Mar thoradh ar chúltacaí a iompórtáil" + +#: data/com.usebottles.bottles.metainfo.xml.in:127 +msgid "Steam Runtime automatically enabled when using wine-ge-custom" +msgstr "Cumasaítear Rúnt-am Gaile go huathoibríoch agus wine-ge-custom á úsáid" + +#: data/com.usebottles.bottles.metainfo.xml.in:128 +msgid "" +"Various library-related fixes, like empty covers, and crashes related to " +"missing entries" +msgstr "" +"Deartuithe éagsúla a bhaineann le leabharlann, cosúil le clúdaigh folamh, " +"agus timpeanna a bhaineann" + +#: data/com.usebottles.bottles.metainfo.xml.in:129 +msgid "Fix various issues related to text encoding" +msgstr "Socraigh saincheisteanna éagsúla a bhaineann le hich" + +#: data/com.usebottles.bottles.metainfo.xml.in:136 +msgid "Fix error when downloading if Bottles isn't run from terminal" +msgstr "Socraigh earráid agus tú ag íoslódáil mura reáchtáiltear Buidéil" + +#: data/com.usebottles.bottles.metainfo.xml.in:143 +msgid "Correct version date" +msgstr "Dáta an leagan ceart" + +#: data/com.usebottles.bottles.metainfo.xml.in:144 +msgid "Hide NVIDIA-related critical errors on non-NVIDIA systems" +msgstr "" +"Folaigh earráidí criticiúla a bhaineann le NVIDIA ar chórais neamh-NVIDIA" + +#: data/com.usebottles.bottles.metainfo.xml.in:151 +msgid "Gamescope improvements and fixes" +msgstr "Feabhsuithe agus socruithe Gamescope" + +#: data/com.usebottles.bottles.metainfo.xml.in:152 +msgid "Dependency installation is faster and more stable" +msgstr "Tá suiteáil spleáchais níos tapúla agus níos cobhsaí" + +#: data/com.usebottles.bottles.metainfo.xml.in:153 +msgid "The health check has more information for faster debugging" +msgstr "Tá tuilleadh faisnéise ag an seiceáil sláinte chun dífhabhtú níos tapa" + +#: data/com.usebottles.bottles.metainfo.xml.in:154 +msgid "NVAPI has a lot of fixes and is more stable, should now work properly" +msgstr "" +"Tá a lán socruithe ag NVAPI agus tá sé níos cobhsaí, ba cheart go n-oibreodh " +"i gceart anois" + +#: data/com.usebottles.bottles.metainfo.xml.in:155 +msgid "Fix crash when downloading a component" +msgstr "Socraigh timpiste agus comhpháirt á íosló" + +#: data/com.usebottles.bottles.metainfo.xml.in:156 +msgid "Backend code improvement by avoiding spin-lock" +msgstr "Feabhsú cód cúltaca trí spin-lock a sheachaint" + +#: data/com.usebottles.bottles.metainfo.xml.in:157 +msgid "More variables for installer scripting" +msgstr "Níos mó athróg le haghaidh scripteála suiteála" + +#: data/com.usebottles.bottles.metainfo.xml.in:158 +msgid "Fix onboard dialog showing \"All ready\" while it was not ready" +msgstr "" +"Socraigh dialóg ar bord a thaispeánann \"Gach réidh\" cé nach raibh sé réidh" + +#: data/com.usebottles.bottles.metainfo.xml.in:159 +msgid "Improvement to build system" +msgstr "Feabhsú chun córas a thógáil" + +#: data/com.usebottles.bottles.metainfo.xml.in:160 +msgid "Enabling VKD3D by default when creating bottles for gaming" +msgstr "" +"Cumasú VKD3D de réir réamhshocraithe agus buidéil á chruthú le haghaidh cear" + +#: data/com.usebottles.bottles.metainfo.xml.in:161 +msgid "Fix crashes when reading Steam files with bad encodings" +msgstr "Déan timpistí a shocrú agus comhaid Steam á léamh le droch-ionchódaithe" + +#: data/com.usebottles.bottles.metainfo.xml.in:162 +msgid "" +"Fix components not updated correctly in the UI after installation/" +"uninstallation" +msgstr "" +"Socraigh comhpháirteanna nach bhfuil nuashonraithe i gceart sa Chomhéadan " +"tar éis suiteál" + +#: data/com.usebottles.bottles.metainfo.xml.in:163 +msgid "More FSR fixes" +msgstr "Tuilleadh socruithe FSR" + +#: data/com.usebottles.bottles.metainfo.xml.in:164 +msgid "" +"Fix the issue when a program closes after it was launched from \"Run " +"executable\"" +msgstr "" +"Socraigh an cheist nuair a dhúnann clár tar éis é a sheoladh ó \"Rith " +"infheidhmithe\"" + +#: data/com.usebottles.bottles.metainfo.xml.in:165 +msgid "and many, many, many more!" +msgstr "agus go leor, go leor, go leor eile!" diff --git a/po/he.po b/po/he.po index d0a2461a97e..d0d33705318 100644 --- a/po/he.po +++ b/po/he.po @@ -22,25 +22,25 @@ msgstr "" #: bottles/backend/managers/backup.py:48 bottles/backend/managers/backup.py:95 msgid "No path specified" -msgstr "מיקום לא נבחר" +msgstr "לא נבחר נתיב" #: bottles/backend/managers/backup.py:56 #, python-brace-format msgid "Backup {0}" -msgstr "" +msgstr "גיבוי {0}" #: bottles/backend/managers/backup.py:101 #, python-brace-format msgid "Importing backup: {0}" -msgstr "" +msgstr "גיבוי מיובא: {0}" #: bottles/backend/managers/manager.py:1057 msgid "Fail to install components, tried 3 times." -msgstr "נכשל להתקין תוספים, לאחר 3 נסיונות." +msgstr "התקנת תוספים נכשלה, לאחר 3 נסיונות." #: bottles/backend/managers/manager.py:1068 msgid "Missing essential components. Installing…" -msgstr "תוספים בסיסיים חסרים, מתקין…" +msgstr "תוספים בסיסיים חסרים, מותקנים…" #: bottles/backend/managers/manager.py:1145 msgid "Failed to create bottle directory." @@ -52,24 +52,24 @@ msgstr "" #: bottles/backend/managers/manager.py:1162 msgid "Generating bottle configuration…" -msgstr "מייצר הגדרות בקבוק…" +msgstr "הגדרות בקבוק נוצרות…" #: bottles/backend/managers/manager.py:1185 msgid "Template found, applying…" -msgstr "" +msgstr "נמצאה תבנית, מיושמת…" #. execute wineboot on the bottle path #: bottles/backend/managers/manager.py:1197 msgid "The Wine config is being updated…" -msgstr "" +msgstr "הגדרות WINE מתעדכנות כעת…" #: bottles/backend/managers/manager.py:1199 msgid "Wine config updated!" -msgstr "" +msgstr "הצלחנו לעדכן את ההגדרות של WINE!" #: bottles/backend/managers/manager.py:1207 msgid "Running as Flatpak, sandboxing userdir…" -msgstr "" +msgstr "הרצה כ-FLATPAK, בתהליך בידוד ...USERDIR" #: bottles/backend/managers/manager.py:1209 msgid "Sandboxing userdir…" @@ -81,346 +81,350 @@ msgstr "מגדיר גרסת ווינדוס…" #: bottles/backend/managers/manager.py:1260 msgid "Apply CMD default settings…" -msgstr "" +msgstr "יישום הגדרות ברירת-מחדל ל-CMD" #: bottles/backend/managers/manager.py:1268 msgid "Optimizing environment…" -msgstr "" +msgstr "ממטבים את הסביבה…" #: bottles/backend/managers/manager.py:1279 #, python-brace-format msgid "Applying environment: {0}…" -msgstr "" +msgstr "מיישמים סביבה: {0}…" #: bottles/backend/managers/manager.py:1289 msgid "(!) Using a custom environment recipe…" -msgstr "" +msgstr "נא לשים לב (!) נעשה שימוש במתכון מותאם-אישית ליצירת הסביבה…" #: bottles/backend/managers/manager.py:1292 msgid "(!) Recipe not not found or not valid…" -msgstr "" +msgstr "אבוי (!) לא מצאנו את המתכון, או שהוא פגום…" #: bottles/backend/managers/manager.py:1309 msgid "Installing DXVK…" -msgstr "" +msgstr "מתקינים את DXVK…" #: bottles/backend/managers/manager.py:1317 msgid "Installing VKD3D…" -msgstr "" +msgstr "מתקינים את VKD3D…" #: bottles/backend/managers/manager.py:1326 msgid "Installing DXVK-NVAPI…" -msgstr "" +msgstr "מתקינים את DXVK-NVAPI…" #: bottles/backend/managers/manager.py:1335 #, python-format msgid "Installing dependency: %s …" -msgstr "" +msgstr "מתקינים חבילות-תלות: %s …" #: bottles/backend/managers/manager.py:1345 msgid "Creating versioning state 0…" -msgstr "" +msgstr "יוצרים גרסאות מצב 0…" #: bottles/backend/managers/manager.py:1353 msgid "Finalizing…" -msgstr "" +msgstr "עוד רגע מסיימים :)" #: bottles/backend/managers/manager.py:1364 msgid "Caching template…" -msgstr "" +msgstr "טומנים את התבנית…" #: bottles/backend/managers/versioning.py:83 msgid "Committing state …" -msgstr "" +msgstr "מקבעים מצב…" #: bottles/backend/managers/versioning.py:90 msgid "Nothing to commit" -msgstr "" +msgstr "אין מה לקבע!" #: bottles/backend/managers/versioning.py:96 #, python-brace-format msgid "New state [{0}] created successfully!" -msgstr "" +msgstr "יצרנו מצב חדש {0} כהלכה!" #: bottles/backend/managers/versioning.py:123 msgid "States list retrieved successfully!" -msgstr "" +msgstr "השגנו את רשומות המצבים!" #: bottles/backend/managers/versioning.py:153 #, python-brace-format msgid "State {0} restored successfully!" -msgstr "" +msgstr "שחזרנו למצב {0} כהלכה!" #: bottles/backend/managers/versioning.py:155 msgid "Restoring state {} …" -msgstr "" +msgstr "משחזרים מצב {} …" #: bottles/backend/managers/versioning.py:162 msgid "State not found" -msgstr "" +msgstr "לא מצאנו את המצב *-*" #: bottles/backend/managers/versioning.py:168 msgid "State {} is already the active state" -msgstr "" +msgstr "זה כבר המצב {} העדכני ביותר!" #: bottles/frontend/main.py:112 msgid "Show version" -msgstr "" +msgstr "הצגת גרסה" #: bottles/frontend/main.py:120 msgid "Executable path" -msgstr "" +msgstr "נתיב לקובץ ההרצה \\ האצווה" #: bottles/frontend/main.py:128 msgid "lnk path" -msgstr "" +msgstr "נתיב דיו" #: bottles/frontend/main.py:136 bottles/frontend/ui/library-entry.blp:118 #: bottles/frontend/ui/list-entry.blp:5 msgid "Bottle name" -msgstr "" +msgstr "כינוי הבקבוק" #: bottles/frontend/main.py:144 msgid "Pass arguments" -msgstr "" +msgstr "העברת פרמטר" #: bottles/frontend/main.py:203 msgid "Invalid URI (syntax: bottles:run//)" -msgstr "" +msgstr "URI שגוי! (תחביר: bottles:run//)" #: bottles/frontend/main.py:244 msgid "[Quit] request received." -msgstr "" +msgstr "בקשת [יציאה] נתקבלה" #: bottles/frontend/main.py:253 msgid "[Help] request received." -msgstr "" +msgstr "בקשת [סיוע] נתקבלה." #: bottles/frontend/main.py:261 msgid "[Refresh] request received." -msgstr "" +msgstr "בקשת [רענון] נתקבלה." #: bottles/frontend/main.py:294 msgid "Donate" -msgstr "" +msgstr "תרומה" #: bottles/frontend/main.py:299 msgid "Third-Party Libraries and Special Thanks" -msgstr "" +msgstr "תודות מיוחדות, ספריות צד-ג'" #: bottles/frontend/main.py:325 msgid "Sponsored and Funded by" -msgstr "" +msgstr "מקודם וממומן ע\"י" # Translators: Bottles is a proper noun referring to the app #: bottles/frontend/ui/about.blp:5 msgid "Copyright © 2017 Bottles Developers" -msgstr "" +msgstr "כל הזכויות שמורות © 2017 Bottles Developers" # Translators: Bottles is a proper noun referring to the app #: bottles/frontend/ui/about.blp:10 msgid "Bottles Developers" -msgstr "" +msgstr "מפתחי Bottles" #: bottles/frontend/ui/about.blp:12 msgid "translator_credits" -msgstr "" +msgstr "תודות_מתרגמים" #: bottles/frontend/ui/component-entry.blp:4 msgid "Component version" -msgstr "" +msgstr "גרסת רכיבים" #: bottles/frontend/ui/component-entry.blp:12 #: bottles/frontend/ui/dependency-entry.blp:29 #: bottles/frontend/ui/program-entry.blp:77 msgid "Uninstall" -msgstr "" +msgstr "הסרת התקנה" #: bottles/frontend/ui/component-entry.blp:23 msgid "Browse Files" -msgstr "" +msgstr "עיון בקבצים" #: bottles/frontend/ui/component-entry.blp:34 msgid "" "The installation failed. This may be due to a repository error, partial " "download or checksum mismatch. Press to try again." msgstr "" +"אבוי, ההתקנה כשלה! יש סיכוי שהגענו למצב זה בשל שגיאת ארכיב, הורדה פגומה או " +"קושי באימות. כדאי לנסות שוב ;)" #: bottles/frontend/ui/component-entry.blp:45 msgid "Download & Install" -msgstr "" +msgstr "הורדה והתקנה" #: bottles/frontend/ui/component-entry.blp:58 msgid "0%" -msgstr "" +msgstr "0%" #: bottles/frontend/ui/dependency-entry.blp:16 msgid "Show Manifest" -msgstr "" +msgstr "הצגת מצהר" #: bottles/frontend/ui/dependency-entry.blp:20 msgid "License" -msgstr "" +msgstr "רשיון" #: bottles/frontend/ui/dependency-entry.blp:24 msgid "Reinstall" -msgstr "" +msgstr "התקנה חוזרת" #: bottles/frontend/ui/dependency-entry.blp:36 #: bottles/frontend/ui/installer-entry.blp:27 msgid "Report a Bug…" -msgstr "" +msgstr "דיווח על תֶּקֶל…" #: bottles/frontend/ui/dependency-entry.blp:42 msgid "Dependency name" -msgstr "" +msgstr "שם חבילת-תלות" #: bottles/frontend/ui/dependency-entry.blp:44 msgid "Dependency description" -msgstr "" +msgstr "תיאור חבילת-תלות" #: bottles/frontend/ui/dependency-entry.blp:51 msgid "Category" -msgstr "" +msgstr "סוגה" #: bottles/frontend/ui/dependency-entry.blp:64 msgid "Download & Install this Dependency" -msgstr "" +msgstr "הורדה והתקנת חבילת-תלות" #: bottles/frontend/ui/dependency-entry.blp:79 msgid "" "An installation error occurred. Restart Bottles to read the Crash Report or " "run it via terminal to read the output." msgstr "" +"אבוי, תקלת התקנה התרחשה. אפשר לאתחל את Bottles כדי לחזות בדו\"ח הקריסה או " +"להריצו במסוף כדי לקרוא את הפלט" #: bottles/frontend/ui/dependency-entry.blp:93 msgid "Dependency Menu" -msgstr "" +msgstr "תפריט תלויות" #: bottles/frontend/ui/details-bottle.blp:16 msgid "Troubleshooting" -msgstr "" +msgstr "ניפוי תקלות" #: bottles/frontend/ui/details-bottle.blp:24 msgid "Browse Files…" -msgstr "" +msgstr "עיון בקבצים…" #: bottles/frontend/ui/details-bottle.blp:28 msgid "Duplicate Bottle…" -msgstr "" +msgstr "שכפול בקבוק…" #: bottles/frontend/ui/details-bottle.blp:32 #: bottles/frontend/ui/importer.blp:73 msgid "This is the complete archive of your bottle, including personal files." -msgstr "" +msgstr "זהו ארכוב מלא של בקבוקך, הכולל בתוכו גם קבצים אישיים." #: bottles/frontend/ui/details-bottle.blp:33 msgid "Full Backup…" -msgstr "" +msgstr "גיבוי מלא…" #: bottles/frontend/ui/details-bottle.blp:37 #: bottles/frontend/ui/importer.blp:68 msgid "" "This is just the bottle configuration, it's perfect if you want to create a " "new one but without personal files." -msgstr "" +msgstr "מכיל רק את הגדרת הבקבוק, מושלם ליצירת אחד חדש, בלי קבצים אישיים." #: bottles/frontend/ui/details-bottle.blp:38 msgid "Export Configuration…" -msgstr "" +msgstr "ייצוא הגדרות…" #: bottles/frontend/ui/details-bottle.blp:45 #: bottles/frontend/views/bottle_details.py:344 msgid "Show Hidden Programs" -msgstr "" +msgstr "הצגת תוכניות נסתרות" #: bottles/frontend/ui/details-bottle.blp:49 msgid "Search for new programs" -msgstr "" +msgstr "חיפוש אחר תוכנות חדשות" #: bottles/frontend/ui/details-bottle.blp:56 msgid "Delete Bottle…" -msgstr "" +msgstr "מחיקת בקבוק…" #: bottles/frontend/ui/details-bottle.blp:73 #: bottles/frontend/ui/details-dependencies.blp:99 #: bottles/frontend/ui/details-installers.blp:68 msgid "Secondary Menu" -msgstr "" +msgstr "תפריט משני" #: bottles/frontend/ui/details-bottle.blp:90 msgid "Force Stop all Processes" -msgstr "" +msgstr "עצירה מלאה וכפוייה של כל התהליכים הפעילים" #: bottles/frontend/ui/details-bottle.blp:94 msgid "Simulate a Windows system shutdown." -msgstr "" +msgstr "דימוי כיבוי מלא של מערכת WINDOWS." #: bottles/frontend/ui/details-bottle.blp:95 msgid "Shutdown" -msgstr "" +msgstr "כיבוי" #: bottles/frontend/ui/details-bottle.blp:99 msgid "Simulate a Windows system reboot." -msgstr "" +msgstr "דימוי הפעלה מחדש של מערכת WINDOWS." #: bottles/frontend/ui/details-bottle.blp:100 msgid "Reboot" -msgstr "" +msgstr "הפעלה מחדש" #: bottles/frontend/ui/details-bottle.blp:118 #: bottles/frontend/ui/dialog-launch-options.blp:6 msgid "Launch Options" -msgstr "" +msgstr "אפשרויות הרצה" #: bottles/frontend/ui/details-bottle.blp:135 msgid "Run in Terminal" -msgstr "" +msgstr "הרצה במסוף" #: bottles/frontend/ui/details-bottle.blp:148 msgid "Drop files to execute them" -msgstr "" +msgstr "גררו לכאן קבצים, ונריץ אותם." #: bottles/frontend/ui/details-bottle.blp:164 msgid "My bottle" -msgstr "" +msgstr "הבקבוק שלי" #: bottles/frontend/ui/details-bottle.blp:177 msgid "Win64" -msgstr "" +msgstr "Win64" #: bottles/frontend/ui/details-bottle.blp:189 #: bottles/frontend/ui/list-entry.blp:12 bottles/frontend/ui/new.blp:71 msgid "Environment" -msgstr "" +msgstr "סביבה" #: bottles/frontend/ui/details-bottle.blp:201 #: bottles/frontend/ui/details-preferences.blp:14 #: bottles/frontend/ui/new.blp:128 msgid "Runner" -msgstr "" +msgstr "מריץ" #: bottles/frontend/ui/details-bottle.blp:213 #: bottles/frontend/ui/list-entry.blp:21 msgid "Versioning enabled for this bottle" -msgstr "" +msgstr "רשומת גרסאות זמינה עבור הבקבוק" #: bottles/frontend/ui/details-bottle.blp:218 msgid "Versioning is active for this bottle." -msgstr "" +msgstr "רשומת גרסאות פעילה עבור הבקבוק" #: bottles/frontend/ui/details-bottle.blp:227 #: bottles/frontend/ui/list-entry.blp:31 msgid "0" -msgstr "" +msgstr "0" #: bottles/frontend/ui/details-bottle.blp:247 msgid "Run Executable…" -msgstr "" +msgstr "הרצת קובץ הרצה…" #: bottles/frontend/ui/details-bottle.blp:272 msgid "Programs" -msgstr "" +msgstr "תכונות" #: bottles/frontend/ui/details-bottle.blp:275 msgid "" @@ -428,115 +432,119 @@ msgid "" "executable to the Programs list, or \"Install Programs…\" to install " "programs curated by the community." msgstr "" +"על מנת להריץ קבצי הרצה, נקיש על \"הרצת קובץ הרצה...\", \"הוספת קיצור דרך\" " +"כדי להוסיף תוכנה לרשומת התוכנות, או \"התקנת תוכנות\" על מנת להתקין תוכנות " +"קהילתיות." #: bottles/frontend/ui/details-bottle.blp:298 msgid "Add Shortcuts…" -msgstr "" +msgstr "הוספת קיצורי דרך…" #: bottles/frontend/ui/details-bottle.blp:325 msgid "Install Programs…" -msgstr "" +msgstr "התקנת תוכנות…" #: bottles/frontend/ui/details-bottle.blp:346 msgid "Options" -msgstr "" +msgstr "אפשרויות" #: bottles/frontend/ui/details-bottle.blp:350 #: bottles/frontend/views/details.py:141 msgid "Settings" -msgstr "" +msgstr "הגדרות" #: bottles/frontend/ui/details-bottle.blp:351 msgid "Configure bottle settings." -msgstr "" +msgstr "הגדרת בקבוק." #: bottles/frontend/ui/details-bottle.blp:360 #: bottles/frontend/views/details.py:145 msgid "Dependencies" -msgstr "" +msgstr "חבילות-תלות" #: bottles/frontend/ui/details-bottle.blp:361 msgid "Install dependencies for programs." -msgstr "" +msgstr "התקנת חבילות-תלות עבור תוכנות" #: bottles/frontend/ui/details-bottle.blp:370 #: bottles/frontend/ui/details-preferences.blp:377 #: bottles/frontend/views/details.py:149 msgid "Snapshots" -msgstr "" +msgstr "תמונות מצב" #: bottles/frontend/ui/details-bottle.blp:371 msgid "Create and manage bottle states." -msgstr "" +msgstr "יצירה וניהול מצבי בקבוקים." #: bottles/frontend/ui/details-bottle.blp:380 #: bottles/frontend/ui/details-bottle.blp:426 #: bottles/frontend/views/details.py:157 msgid "Task Manager" -msgstr "" +msgstr "מנהל תהליכים" #: bottles/frontend/ui/details-bottle.blp:381 msgid "Manage running programs." -msgstr "" +msgstr "ניהול תוכנות פעילות" #: bottles/frontend/ui/details-bottle.blp:390 msgid "Tools" -msgstr "" +msgstr "כלים" #: bottles/frontend/ui/details-bottle.blp:394 msgid "Command Line" -msgstr "" +msgstr "שורת פקודה" #: bottles/frontend/ui/details-bottle.blp:395 msgid "Run commands inside the Bottle." -msgstr "" +msgstr "הרצת פקודות בתוך הבקבוק" #: bottles/frontend/ui/details-bottle.blp:404 msgid "Registry Editor" -msgstr "" +msgstr "עורך מרשמה" #: bottles/frontend/ui/details-bottle.blp:405 msgid "Edit the internal registry." -msgstr "" +msgstr "עריכת המרשמה הפנימית" #: bottles/frontend/ui/details-bottle.blp:413 msgid "Legacy Wine Tools" -msgstr "" +msgstr "כלי עבר WINE" #: bottles/frontend/ui/details-bottle.blp:417 msgid "Explorer" -msgstr "" +msgstr "סייר" #: bottles/frontend/ui/details-bottle.blp:435 msgid "Debugger" -msgstr "" +msgstr "מנפה" #: bottles/frontend/ui/details-bottle.blp:444 #: bottles/frontend/ui/importer.blp:69 bottles/frontend/ui/new.blp:145 msgid "Configuration" -msgstr "" +msgstr "תצורה" #: bottles/frontend/ui/details-bottle.blp:453 msgid "Uninstaller" -msgstr "" +msgstr "תוכנת הסרת ההתקנה" #: bottles/frontend/ui/details-bottle.blp:462 msgid "Control Panel" -msgstr "" +msgstr "לוח הבקרה" #: bottles/frontend/ui/details-dependencies.blp:9 msgid "Search for dependencies…" -msgstr "" +msgstr "חיפוש אחר חבילות-תלות…" #: bottles/frontend/ui/details-dependencies.blp:22 #: bottles/frontend/ui/preferences.blp:178 #: bottles/frontend/ui/preferences.blp:235 +#, fuzzy msgid "You're offline :(" -msgstr "" +msgstr "איפה האינטרנט?!" #: bottles/frontend/ui/details-dependencies.blp:25 msgid "Bottles is running in offline mode, so dependencies are not available." -msgstr "" +msgstr "הבקבוק פועל במצב לא-מקוון, לכן חבילות-תלות לא תהיינה זמינות" #: bottles/frontend/ui/details-dependencies.blp:47 msgid "" @@ -545,34 +553,38 @@ msgid "" "Files on this page are provided by third parties under a proprietary " "license. By installing them, you agree with their respective licensing terms." msgstr "" +"חבילות-תלות הינם משאבים המשפרים את התאימות של תוכנות WINDOWS.\n" +"\n" +"קבצים בעמוד זה מובאים לפניכם בידי צדדי-ג' תחת רישיון קנייני. על ידי התקנתם, " +"הנכם מסכימים לתנאי רישויים." #: bottles/frontend/ui/details-dependencies.blp:76 msgid "Report a problem or a missing dependency." -msgstr "" +msgstr "דיווח על בעיה או חבילת-תלות חסרה" #: bottles/frontend/ui/details-dependencies.blp:77 msgid "Report Missing Dependency" -msgstr "" +msgstr "דיווח על חבילת-תלות חסרה" #: bottles/frontend/ui/details-dependencies.blp:81 msgid "Read Documentation." -msgstr "" +msgstr "קריאת תיעוד-עזר" #: bottles/frontend/ui/details-dependencies.blp:82 #: bottles/frontend/ui/details-installers.blp:51 #: bottles/frontend/ui/details-versioning.blp:37 msgid "Documentation" -msgstr "" +msgstr "תיעוד-עזר" #: bottles/frontend/ui/details-dependencies.blp:92 #: bottles/frontend/ui/details-installers.blp:61 #: bottles/frontend/ui/window.blp:46 msgid "Search" -msgstr "" +msgstr "חיפוש" #: bottles/frontend/ui/details-installers.blp:9 msgid "Search for Programs…" -msgstr "" +msgstr "חיפוש תוכנות…" #: bottles/frontend/ui/details-installers.blp:15 msgid "" @@ -581,44 +593,48 @@ msgid "" "Files on this page are provided by third parties under a proprietary " "license. By installing them, you agree with their respective licensing terms." msgstr "" +"התקנת תוכנות קהילתיות.\n" +"\n" +"הקבצים בעמוד זה מובאים לפניכם בידי צדדי-ג' תחת רישיון קנייני. על ידי התקנתם, " +"הנכם מסכימים לתנאי רישויים." #: bottles/frontend/ui/details-installers.blp:29 msgid "No Installers Found" -msgstr "" +msgstr "לא מצאנו תוכנות התקנה *-*" #: bottles/frontend/ui/details-installers.blp:32 msgid "" "The repository is unreachable or no installer is compatible with this bottle." -msgstr "" +msgstr "הארכיב לא זמין כרגע או שאין מתקין הנתמך בידי הבקבוק" #: bottles/frontend/ui/details-installers.blp:50 #: bottles/frontend/ui/details-versioning.blp:36 #: bottles/frontend/ui/preferences.blp:81 msgid "Read Documentation" -msgstr "" +msgstr "קריאת תיעוד-עזר" #: bottles/frontend/ui/details-preferences.blp:6 #: bottles/frontend/ui/dialog-duplicate.blp:52 msgid "Name" -msgstr "" +msgstr "שם" #: bottles/frontend/ui/details-preferences.blp:11 msgid "Components" -msgstr "" +msgstr "רכיבים" #: bottles/frontend/ui/details-preferences.blp:15 #: bottles/frontend/ui/new.blp:129 msgid "The version of the Wine compatibility layer." -msgstr "" +msgstr "גרסאת שכבת התאימות WINE." #: bottles/frontend/ui/details-preferences.blp:17 msgid "Updating Runner and components, please wait…" -msgstr "" +msgstr "מעדכן את המריץ ועוד שלל רכיבים פנימיים, רק רגע…" #: bottles/frontend/ui/details-preferences.blp:27 #: bottles/frontend/ui/preferences.blp:262 msgid "DXVK" -msgstr "" +msgstr "DXVK" #: bottles/frontend/ui/details-preferences.blp:28 msgid "Improve Direct3D 8/9/10/11 compatibility by translating it to Vulkan." @@ -626,127 +642,132 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:30 msgid "Updating DXVK, please wait…" -msgstr "" +msgstr "מעדכנים את DXVK, רק עוד רגע…" #: bottles/frontend/ui/details-preferences.blp:40 #: bottles/frontend/ui/preferences.blp:266 msgid "VKD3D" -msgstr "" +msgstr "VKD3D" #: bottles/frontend/ui/details-preferences.blp:41 msgid "Improve Direct3D 12 compatibility by translating it to Vulkan." -msgstr "" +msgstr "שיפור תאימות Direct3D 12 ע\"י תרגום ל- Vulkan." #: bottles/frontend/ui/details-preferences.blp:43 msgid "Updating VKD3D, please wait…" -msgstr "" +msgstr "מעדכנים את VKD3D, רק עוד רגע…" #: bottles/frontend/ui/details-preferences.blp:54 msgid "DXVK NVAPI" -msgstr "" +msgstr "DXVK NVAPI" #: bottles/frontend/ui/details-preferences.blp:58 #: bottles/frontend/ui/details-preferences.blp:93 msgid "Updating DXVK-NVAPI, please wait…" -msgstr "" +msgstr "מעדכנים את DXVK-NVAPI, רק עוד רגע…" #: bottles/frontend/ui/details-preferences.blp:68 #: bottles/frontend/ui/preferences.blp:274 msgid "LatencyFleX" -msgstr "" +msgstr "LatencyFleX" #: bottles/frontend/ui/details-preferences.blp:69 msgid "Increase responsiveness. Can be detected by some anti-cheat software." -msgstr "" +msgstr "משפר תגובתיות, ניתן לזיהוי על-ידי תוכנות מניעת רמאויות מסויימות." #: bottles/frontend/ui/details-preferences.blp:71 msgid "Updating LatencyFleX, please wait…" -msgstr "" +msgstr "מעדכנים את LatencyFleX, רק עוד רגע…" #: bottles/frontend/ui/details-preferences.blp:84 msgid "Display" -msgstr "" +msgstr "מסך" #: bottles/frontend/ui/details-preferences.blp:88 msgid "Deep Learning Super Sampling" -msgstr "" +msgstr "למידה מעמיקה עם דיגום מורחב" #: bottles/frontend/ui/details-preferences.blp:89 msgid "" "Increase performance at the expense of visuals using DXVK-NVAPI. Only works " "on newer NVIDIA GPUs." msgstr "" +"שיפור הביצועים הכרוך בפיחות גרפי תוך שימוש ב- DXVK-NVAPI. זמין אך ורק ברכיבי " +"NVIDIA חדשים יותר." #: bottles/frontend/ui/details-preferences.blp:105 msgid "FidelityFX Super Resolution" -msgstr "" +msgstr "FidelityFX רזולוציה משופרת" #: bottles/frontend/ui/details-preferences.blp:106 msgid "Increase performance at the expense of visuals. Only works on Vulkan." -msgstr "" +msgstr "שיפור הביצועים במחיר פיחות הגרפיקה. זמין אך ורק ב-Vulkan." #: bottles/frontend/ui/details-preferences.blp:108 msgid "Manage FidelityFX Super Resolution settings" -msgstr "" +msgstr "ניהול והגדרת רזולוציה משופרת FidelityFX" #: bottles/frontend/ui/details-preferences.blp:125 msgid "Discrete Graphics" -msgstr "" +msgstr "גרפיקה בדידים" #: bottles/frontend/ui/details-preferences.blp:126 msgid "" "Use the discrete graphics card to increase performance at the expense of " "power consumption." msgstr "" +"השימוש בגרפיקה בבדידים מועיל כאשר מעוניינים לשפר ביצועים, במחיר צריכת חשמל " +"מוגברת" #: bottles/frontend/ui/details-preferences.blp:135 msgid "Post-Processing Effects" -msgstr "" +msgstr "אפקטים לאחר-העיבוד" #: bottles/frontend/ui/details-preferences.blp:136 msgid "" "Add various post-processing effects using vkBasalt. Only works on Vulkan." msgstr "" +"הוספת מיני אפקטים לאחר-העיבוד תוך שימש ב- vkBasalt. זמין אך ורק ב- Vulkan." #: bottles/frontend/ui/details-preferences.blp:138 msgid "Manage Post-Processing Layer settings" -msgstr "" +msgstr "הגדרה וניהול של שכבות שלאחר-העיבוד" #: bottles/frontend/ui/details-preferences.blp:154 msgid "Manage how games should be displayed on the screen using Gamescope." -msgstr "" +msgstr "ניהול כיצד משחקים יוצגו על המסך, תוך שימוש ב- Gamescope." #: bottles/frontend/ui/details-preferences.blp:157 msgid "Manage Gamescope settings" -msgstr "" +msgstr "ניהול הגדרות תצורה ל-Gamescope." #: bottles/frontend/ui/details-preferences.blp:171 msgid "Advanced Display Settings" -msgstr "" +msgstr "הגדרות תצוגה מורחבות." #: bottles/frontend/ui/details-preferences.blp:184 msgid "Performance" -msgstr "" +msgstr "ביצועים" #: bottles/frontend/ui/details-preferences.blp:188 msgid "Enable synchronization to increase performance of multicore processors." -msgstr "" +msgstr "הפעלת הסנכרון, כך שהביצועים ישופרו במעבדים בעלי מספר ליבות." #: bottles/frontend/ui/details-preferences.blp:189 msgid "Synchronization" -msgstr "" +msgstr "סנכרון" #: bottles/frontend/ui/details-preferences.blp:193 msgid "System" -msgstr "" +msgstr "מערכת" #: bottles/frontend/ui/details-preferences.blp:194 msgid "Esync" -msgstr "" +msgstr "Esync" #: bottles/frontend/ui/details-preferences.blp:195 msgid "Fsync" -msgstr "" +msgstr "Fsync" #: bottles/frontend/ui/details-preferences.blp:196 msgid "Futex2" @@ -754,102 +775,111 @@ msgstr "" #: bottles/frontend/ui/details-preferences.blp:202 msgid "Monitor Performance" -msgstr "" +msgstr "ביצועי המסך" #: bottles/frontend/ui/details-preferences.blp:203 msgid "" "Display monitoring information such as framerate, temperatures, CPU/GPU load " "and more on OpenGL and Vulkan using MangoHud." msgstr "" +"הצגת מידע סטטיסטי (קצב רענון, מעלות, עומס על המעבדים ושלל רכיבים נוספים) על " +"גבי OpenGL ו-Vulkan תוך שימוש ב- MangoHud." #: bottles/frontend/ui/details-preferences.blp:211 msgid "Feral GameMode" -msgstr "" +msgstr "Feral GameMode" #: bottles/frontend/ui/details-preferences.blp:212 msgid "" "Apply a set of optimizations to your device. Can improve game performance." -msgstr "" +msgstr "מיישם סדרת שיפורים וביצועים למכשירך, עשוי לשפר ביצועים." #: bottles/frontend/ui/details-preferences.blp:221 msgid "Preload Game Files" -msgstr "" +msgstr "טעינה מוקדמת של קבצי משחק" #: bottles/frontend/ui/details-preferences.blp:222 msgid "" "Improve loading time when launching the game multiple times. The game will " "take longer to start for the first time." msgstr "" +"שיפור זמן הטעינה בעת הפעלת המשחק מספר פעמים, אך ההפעלה הראשונית תארך זמן רב " +"יותר." #: bottles/frontend/ui/details-preferences.blp:226 msgid "Manage vmtouch settings" -msgstr "" +msgstr "ניהול הגדרות vmtouch" #: bottles/frontend/ui/details-preferences.blp:241 msgid "OBS Game Capture" -msgstr "" +msgstr "לכידת משחק עם OBS" #: bottles/frontend/ui/details-preferences.blp:242 msgid "Toggle OBS Game Capture for all Vulkan and OpenGL programs." -msgstr "" +msgstr "הפעלת לכידת משחק עם OBS לכל יישומי vulkan ו- OpenGL." #: bottles/frontend/ui/details-preferences.blp:251 msgid "Compatibility" -msgstr "" +msgstr "תאימות" #: bottles/frontend/ui/details-preferences.blp:254 msgid "Windows Version" -msgstr "" +msgstr "גרסת ווינדוס" #: bottles/frontend/ui/details-preferences.blp:257 +#, fuzzy msgid "Updating Windows version, please wait…" -msgstr "" +msgstr "מעדכנים את גרסת ה- ווינדוס, רק עוד רגע…" #: bottles/frontend/ui/details-preferences.blp:266 msgid "Language" -msgstr "" +msgstr "שפה" #: bottles/frontend/ui/details-preferences.blp:267 msgid "Choose the language to use with programs." -msgstr "" +msgstr "בחירת השפה לשימוש עם יישומים ותוכנות." #: bottles/frontend/ui/details-preferences.blp:275 msgid "Dedicated Sandbox" -msgstr "" +msgstr "\"ארגז חול\" ייעודי" #: bottles/frontend/ui/details-preferences.blp:276 msgid "Use a restricted/managed environment for this bottle." -msgstr "" +msgstr "שימוש בסביבה מוגבלת\\מנוהלת עבור הבקבוק." #: bottles/frontend/ui/details-preferences.blp:279 msgid "Manage the Sandbox Permissions" -msgstr "" +msgstr "ניהול הרשאות \"ארגז החול\"" # Translators: Bottles is a proper noun referring to the app #: bottles/frontend/ui/details-preferences.blp:295 msgid "Bottles Runtime" -msgstr "" +msgstr "סביבת הרצה עבור הבקבוק" #: bottles/frontend/ui/details-preferences.blp:296 msgid "" "Provide a bundle of extra libraries for more compatibility. Disable it if " "you run into issues." msgstr "" +"אספקת מקבץ של ספריות נוספות לשיפור התאימות. אם יש בעיות אז כדאי לבטל את " +"הבחירה." #: bottles/frontend/ui/details-preferences.blp:306 msgid "Steam Runtime" -msgstr "" +msgstr "הרצת Steam" #: bottles/frontend/ui/details-preferences.blp:307 msgid "" "Provide a bundle of extra libraries for more compatibility with Steam games. " "Disable it if you run into issues." msgstr "" +"אספקת ספריות נוספות לשיפור התאימות עם משחקי Steam. אם יש בעיות אז כדאי לבטל " +"את הבחירה." #: bottles/frontend/ui/details-preferences.blp:315 #: bottles/frontend/ui/dialog-launch-options.blp:83 msgid "Working Directory" -msgstr "" +msgstr "נתיב לרשומת פעילות" #: bottles/frontend/ui/details-preferences.blp:318 #: bottles/frontend/ui/dialog-launch-options.blp:59 @@ -857,28 +887,28 @@ msgstr "" #: bottles/frontend/ui/new.blp:150 bottles/frontend/ui/new.blp:181 #: bottles/frontend/ui/preferences.blp:136 msgid "Reset to Default" -msgstr "" +msgstr "שחזור להגדרות ברירת-מחדל" #: bottles/frontend/ui/details-preferences.blp:339 #: bottles/frontend/ui/preferences.blp:157 bottles/frontend/views/new.py:78 #: bottles/frontend/views/preferences.py:210 msgid "(Default)" -msgstr "" +msgstr "(ברירת-מחדל)" #: bottles/frontend/ui/details-preferences.blp:347 #: bottles/frontend/ui/dialog-dll-overrides.blp:7 #: bottles/frontend/ui/dialog-dll-overrides.blp:12 msgid "DLL Overrides" -msgstr "" +msgstr "דריסת קבצי DLL" #: bottles/frontend/ui/details-preferences.blp:357 #: bottles/frontend/ui/dialog-env-vars.blp:20 msgid "Environment Variables" -msgstr "" +msgstr "משתני הסביבה" #: bottles/frontend/ui/details-preferences.blp:367 msgid "Manage Drives" -msgstr "" +msgstr "ניהול כוננים" #: bottles/frontend/ui/details-preferences.blp:381 msgid "Automatic Snapshots" @@ -888,96 +918,96 @@ msgstr "" msgid "" "Automatically create snapshots before installing software or changing " "settings." -msgstr "" +msgstr "לכידת נתוני מערכת חשובים מיד לפני התקנת תוכנות או עדכון הגדרות" #: bottles/frontend/ui/details-preferences.blp:391 msgid "Compression" -msgstr "" +msgstr "דחיסה" #: bottles/frontend/ui/details-preferences.blp:392 msgid "" "Compress snapshots to reduce space. This will slow down the creation of " "snapshots." -msgstr "" +msgstr "דחיסת נתוני-לכידה כדי להקטין את נפח האחסון. זה ייאט את יצירת הנתונים." #: bottles/frontend/ui/details-preferences.blp:401 msgid "Use Exclusion Patterns" -msgstr "" +msgstr "השתמש בתבניות ויתור" #: bottles/frontend/ui/details-preferences.blp:402 msgid "Exclude paths in snapshots." -msgstr "" +msgstr "וויתור על נתיבי-קבצים בלכידות-נתונים" #: bottles/frontend/ui/details-preferences.blp:405 msgid "Manage Patterns" -msgstr "" +msgstr "ניהול תבניות" #: bottles/frontend/ui/details-taskmanager.blp:17 msgid "Refresh" -msgstr "" +msgstr "רענון" #: bottles/frontend/ui/details-taskmanager.blp:22 msgid "Stop process" -msgstr "" +msgstr "עצירת ההליך" #: bottles/frontend/ui/details-versioning.blp:18 msgid "No Snapshots Found" -msgstr "" +msgstr "לא נמצאו לכידות" #: bottles/frontend/ui/details-versioning.blp:19 msgid "Create your first snapshot to start saving states of your preferences." -msgstr "" +msgstr "צרו את לכידת-הנתונים הראשונה שלכם ושמרו מצבים כפי העדפותיכם" #: bottles/frontend/ui/details-versioning.blp:54 msgid "A short comment" -msgstr "" +msgstr "תגובית קצרה" #: bottles/frontend/ui/details-versioning.blp:58 msgid "Save the bottle state." -msgstr "" +msgstr "שמור את מצב הבקבוק הנוכחי" #: bottles/frontend/ui/details-versioning.blp:78 msgid "Create new Snapshot" -msgstr "" +msgstr "צור לכידת-נתונים חדשה" #: bottles/frontend/ui/details.blp:16 msgid "Details" -msgstr "" +msgstr "פרטים" #: bottles/frontend/ui/details.blp:24 bottles/frontend/ui/details.blp:64 #: bottles/frontend/ui/importer.blp:15 msgid "Go Back" -msgstr "" +msgstr "חזרה" #: bottles/frontend/ui/details.blp:75 msgid "Operations" -msgstr "" +msgstr "פעולות" #: bottles/frontend/ui/dialog-bottle-picker.blp:4 msgid "Select Bottle" -msgstr "" +msgstr "בחירת בקבוק" #: bottles/frontend/ui/dialog-bottle-picker.blp:16 #: bottles/frontend/ui/dialog-proton-alert.blp:16 #: bottles/frontend/ui/dialog-rename.blp:15 #: bottles/frontend/ui/dialog-run-args.blp:20 msgid "Cancel" -msgstr "" +msgstr "ביטול" #: bottles/frontend/ui/dialog-bottle-picker.blp:21 msgid "Select" -msgstr "" +msgstr "בחירה" #: bottles/frontend/ui/dialog-bottle-picker.blp:38 #: bottles/frontend/ui/new.blp:9 bottles/frontend/ui/new.blp:49 #: bottles/frontend/ui/window.blp:25 msgid "Create New Bottle" -msgstr "" +msgstr "יצירת בקבוק חדש" # Translators: Bottles is a proper noun referring to the app #: bottles/frontend/ui/dialog-crash-report.blp:8 msgid "Bottles Crash Report" -msgstr "" +msgstr "דיווח קריסה ל-Bottles" #: bottles/frontend/ui/dialog-crash-report.blp:18 #: bottles/frontend/ui/dialog-duplicate.blp:22 @@ -990,17 +1020,19 @@ msgstr "" #: bottles/frontend/views/bottle_preferences.py:749 #: bottles/frontend/views/preferences.py:201 msgid "_Cancel" -msgstr "" +msgstr "_ביטול" #: bottles/frontend/ui/dialog-crash-report.blp:25 msgid "Send Report" -msgstr "" +msgstr "שליחת דיווח" #: bottles/frontend/ui/dialog-crash-report.blp:44 msgid "" "Bottles crashed last time. Please fill out a report attaching the following " "traceback to help us identify the problem preventing it from happening again." msgstr "" +"אבוי! קרסנו בעת האחרונה. אנא עזרו לנו בניפוי התקלה ומניעתה בעתיד ע\"י מילוי " +"טופס השחזור המצורף." #: bottles/frontend/ui/dialog-crash-report.blp:74 msgid "" @@ -1009,18 +1041,22 @@ msgid "" "new one. Each report requires effort on the part of the developers to " "diagnose, please respect their work and make sure you don't post duplicates." msgstr "" +"תודה על הדיווח המעמיק. לצערינו, מצאנו לפחות דיווח נוסף זהה במאגרים. בדקו " +"בקפדנות שהבעיה הזו טרם דווחה לפני הגשת דיווחים נוספים. הגשת דיווחים כפולים " +"מעמיסה על צוות הפיתוח וגורעת מייעילותם, אנא כבדו את פועלם וודאו שאינכם " +"מגישים דיווחים כפולים או כוזבים." #: bottles/frontend/ui/dialog-crash-report.blp:89 msgid "I still want to report." -msgstr "" +msgstr "ברצוני להמשיך בהליך הדיווח" #: bottles/frontend/ui/dialog-crash-report.blp:95 msgid "Advanced options" -msgstr "" +msgstr "אפשרויות מתקדמות" #: bottles/frontend/ui/dialog-deps-check.blp:13 msgid "Incomplete package" -msgstr "" +msgstr "חבילה לא שלמה" #: bottles/frontend/ui/dialog-deps-check.blp:14 msgid "" @@ -1028,34 +1064,40 @@ msgid "" "dependencies, please contact the package maintainer or use an official " "version." msgstr "" +"מסתמן שגירסה זו איננה מכילה חלק מחבילות-התלות הנחוצות, אנא צרו קשר עם המפיץ " +"למידע נוסף ופתרון התקלה, או שקלו להשתמש בהפצה רשמית של גירסה זו." #: bottles/frontend/ui/dialog-deps-check.blp:18 msgid "Quit" -msgstr "" +msgstr "יציאה" #: bottles/frontend/ui/dialog-dll-overrides.blp:11 msgid "" "Dynamic Link Libraries can be specified to be builtin (provided by Wine) or " "native (provided by the program)." msgstr "" +"ניתן להגדיר ספריות דינמיות מקושרות כך שתהיינה מובנות (ומספוקות ע\"י מיזם " +"WINE) או מקומיות (ומסופקות על-ידינו)." #: bottles/frontend/ui/dialog-dll-overrides.blp:15 msgid "New Override" -msgstr "" +msgstr "דריסה חדשה" #: bottles/frontend/ui/dialog-dll-overrides.blp:21 msgid "Overrides" -msgstr "" +msgstr "דריסות" #: bottles/frontend/ui/dialog-drives.blp:7 msgid "Drives" -msgstr "" +msgstr "כוננים" #: bottles/frontend/ui/dialog-drives.blp:24 msgid "" "These are paths from your host system that are mapped and recognized as " "devices by the runner (e.g. C: D:…)." msgstr "" +"אלה הם נתיבי כוננים וחומרה נוספת שזוהתה ע\"י המערכת שלך. הם נוספו כמיקומים " +"בידי כלי ההרצה" #: bottles/frontend/ui/dialog-drives.blp:27 msgid "Letter" @@ -3039,6 +3081,10 @@ msgstr "" msgid "and many, many, many more!" msgstr "" +#: bottles/frontend/ui/details-preferences.blp:28 +msgid "Improve Direct3D 9/10/11 compatibility by translating it to Vulkan." +msgstr "שיפור תאימות של- Direct3D 9/10/11 ע\"י תרגום ל- Vulkan." + #, fuzzy #~ msgid "Fix installer completion @jntesteves" #~ msgstr "נכשל להתקין תוספים, לאחר 3 נסיונות." diff --git a/po/hu.po b/po/hu.po index bdc37951838..47dde3f8e22 100644 --- a/po/hu.po +++ b/po/hu.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: bottles\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-03-27 13:50+0530\n" -"PO-Revision-Date: 2023-08-05 10:07+0000\n" -"Last-Translator: Ács Zoltán \n" +"PO-Revision-Date: 2025-01-11 23:02+0000\n" +"Last-Translator: Balázs Meskó \n" "Language-Team: Hungarian \n" "Language: hu\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.0-dev\n" +"X-Generator: Weblate 5.10-dev\n" #: bottles/backend/managers/backup.py:48 bottles/backend/managers/backup.py:95 msgid "No path specified" @@ -3063,7 +3063,7 @@ msgstr "" #: data/com.usebottles.bottles.metainfo.xml.in:94 msgid "Fixed \"Add to Steam\" button" -msgstr "\"Hozzáadás Steamhez\" gomb javítva" +msgstr "„Hozzáadás a Steamhez” gomb javítva" #: data/com.usebottles.bottles.metainfo.xml.in:95 msgid "Fixed BottleConfig being not serializable" @@ -3074,9 +3074,8 @@ msgid "Fixed Patool double extraction failing" msgstr "A Patool dupla extrakció hibája javítva" #: data/com.usebottles.bottles.metainfo.xml.in:101 -#, fuzzy msgid "Correct version" -msgstr "Verzió javítása" +msgstr "Helyes verzió" #: data/com.usebottles.bottles.metainfo.xml.in:106 msgid "Fix crash when creating a bottle" @@ -3133,9 +3132,8 @@ msgid "Fix error when downloading if Bottles isn't run from terminal" msgstr "Hiba javítása letöltéskor, ha a Palackok nem terminálból fut" #: data/com.usebottles.bottles.metainfo.xml.in:137 -#, fuzzy msgid "Correct version date" -msgstr "Verzió dátumának javítása" +msgstr "Verzió helyes dátuma" #: data/com.usebottles.bottles.metainfo.xml.in:138 msgid "Hide NVIDIA-related critical errors on non NVIDIA systems" diff --git a/po/id.po b/po/id.po index a42f81f1798..a9be0c91869 100644 --- a/po/id.po +++ b/po/id.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: bottles\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-03-27 13:50+0530\n" -"PO-Revision-Date: 2024-03-29 22:02+0000\n" -"Last-Translator: Reza Almanda \n" +"PO-Revision-Date: 2024-12-16 12:01+0000\n" +"Last-Translator: Arif Budiman \n" "Language-Team: Indonesian \n" "Language: id\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.5-dev\n" +"X-Generator: Weblate 5.9-rc\n" #: bottles/backend/managers/backup.py:48 bottles/backend/managers/backup.py:95 msgid "No path specified" @@ -381,7 +381,7 @@ msgstr "Ubah Pilihan Peluncuran" #: bottles/frontend/ui/details-bottle.blp:135 msgid "Run in Terminal" -msgstr "Jalankan dengan Terminal…" +msgstr "Jalankan dengan Terminal" #: bottles/frontend/ui/details-bottle.blp:148 #, fuzzy @@ -643,7 +643,7 @@ msgstr "Komponen-Komponen" #: bottles/frontend/ui/details-preferences.blp:15 #: bottles/frontend/ui/new.blp:129 msgid "The version of the Wine compatibility layer." -msgstr "" +msgstr "Versi lapisan kompatibilitas Wine." #: bottles/frontend/ui/details-preferences.blp:17 msgid "Updating Runner and components, please wait…" @@ -673,6 +673,7 @@ msgstr "VKD3D" #: bottles/frontend/ui/details-preferences.blp:41 msgid "Improve Direct3D 12 compatibility by translating it to Vulkan." msgstr "" +"Tingkatkan kompatibilitas Direct3D 12 dengan menerjemahkannya ke Vulkan." #: bottles/frontend/ui/details-preferences.blp:43 msgid "Updating VKD3D, please wait…" @@ -712,17 +713,19 @@ msgstr "Pengaturan Layar" #: bottles/frontend/ui/details-preferences.blp:88 msgid "Deep Learning Super Sampling" -msgstr "" +msgstr "Deep Learning Super Sampling" #: bottles/frontend/ui/details-preferences.blp:89 msgid "" "Increase performance at the expense of visuals using DXVK-NVAPI. Only works " "on newer NVIDIA GPUs." msgstr "" +"Meningkatkan performa dengan mengorbankan visual menggunakan DXVK-NVAPI. " +"Hanya berfungsi pada GPU NVIDIA yang lebih baru." #: bottles/frontend/ui/details-preferences.blp:105 msgid "FidelityFX Super Resolution" -msgstr "" +msgstr "FidelityFX Super Resolution" #: bottles/frontend/ui/details-preferences.blp:106 #, fuzzy @@ -731,7 +734,7 @@ msgstr "Meningkatkan performa tetapi juga meningkatkan penggunaan daya." #: bottles/frontend/ui/details-preferences.blp:108 msgid "Manage FidelityFX Super Resolution settings" -msgstr "" +msgstr "Mengelola pengaturan FidelityFX Super Resolution" #: bottles/frontend/ui/details-preferences.blp:125 #, fuzzy @@ -743,15 +746,19 @@ msgid "" "Use the discrete graphics card to increase performance at the expense of " "power consumption." msgstr "" +"Gunakan kartu grafis diskrit untuk meningkatkan performa dengan mengorbankan " +"konsumsi daya." #: bottles/frontend/ui/details-preferences.blp:135 msgid "Post-Processing Effects" -msgstr "" +msgstr "Efek Pasca-Pemrosesan" #: bottles/frontend/ui/details-preferences.blp:136 msgid "" "Add various post-processing effects using vkBasalt. Only works on Vulkan." msgstr "" +"Menambahkan berbagai efek pasca-pemrosesan menggunakan vkBasalt. Hanya " +"berfungsi pada Vulkan." #: bottles/frontend/ui/details-preferences.blp:138 #, fuzzy @@ -761,6 +768,7 @@ msgstr "Kelola pengaturan subsistem wine." #: bottles/frontend/ui/details-preferences.blp:154 msgid "Manage how games should be displayed on the screen using Gamescope." msgstr "" +"Mengelola bagaimana game akan ditampilkan di layar menggunakan Gamescope." #: bottles/frontend/ui/details-preferences.blp:157 msgid "Manage Gamescope settings" @@ -810,6 +818,8 @@ msgid "" "Display monitoring information such as framerate, temperatures, CPU/GPU load " "and more on OpenGL and Vulkan using MangoHud." msgstr "" +"Menampilkan informasi pemantauan seperti framerate, suhu, beban CPU/GPU, dan " +"lainnya di OpenGL dan Vulkan menggunakan MangoHud." #: bottles/frontend/ui/details-preferences.blp:211 #, fuzzy @@ -820,16 +830,20 @@ msgstr "Gunakan GameMode" msgid "" "Apply a set of optimizations to your device. Can improve game performance." msgstr "" +"Menerapkan serangkaian pengoptimalan ke perangkat Anda. Dapat meningkatkan " +"performa game." #: bottles/frontend/ui/details-preferences.blp:221 msgid "Preload Game Files" -msgstr "" +msgstr "Preload File Game" #: bottles/frontend/ui/details-preferences.blp:222 msgid "" "Improve loading time when launching the game multiple times. The game will " "take longer to start for the first time." msgstr "" +"Meningkatkan waktu pemuatan saat meluncurkan game beberapa kali. Game akan " +"membutuhkan waktu lebih lama untuk memulai untuk pertama kalinya." #: bottles/frontend/ui/details-preferences.blp:226 #, fuzzy @@ -848,7 +862,7 @@ msgstr "Beralih tangkap permainan OBS untuk semua peluncuran berikutnya" #: bottles/frontend/ui/details-preferences.blp:251 msgid "Compatibility" -msgstr "" +msgstr "Kompatibilitas" #: bottles/frontend/ui/details-preferences.blp:254 #, fuzzy @@ -861,19 +875,19 @@ msgstr "Memperbarui versi Windows, mohon tunggu…" #: bottles/frontend/ui/details-preferences.blp:266 msgid "Language" -msgstr "" +msgstr "Bahasa" #: bottles/frontend/ui/details-preferences.blp:267 msgid "Choose the language to use with programs." -msgstr "" +msgstr "Pilih bahasa yang akan digunakan dengan program." #: bottles/frontend/ui/details-preferences.blp:275 msgid "Dedicated Sandbox" -msgstr "" +msgstr "Kotak Pasir Khusus" #: bottles/frontend/ui/details-preferences.blp:276 msgid "Use a restricted/managed environment for this bottle." -msgstr "" +msgstr "Gunakan lingkungan terbatas/terkelola untuk botol ini." #: bottles/frontend/ui/details-preferences.blp:279 #, fuzzy @@ -957,6 +971,8 @@ msgid "" "Automatically create snapshots before installing software or changing " "settings." msgstr "" +"Secara otomatis membuat snapshot sebelum menginstal perangkat lunak atau " +"mengubah pengaturan." #: bottles/frontend/ui/details-preferences.blp:391 #, fuzzy @@ -968,14 +984,16 @@ msgid "" "Compress snapshots to reduce space. This will slow down the creation of " "snapshots." msgstr "" +"Kompres snapshot untuk menghemat ruang. Hal ini akan memperlambat pembuatan " +"snapshot." #: bottles/frontend/ui/details-preferences.blp:401 msgid "Use Exclusion Patterns" -msgstr "" +msgstr "Gunakan Pola Pengecualian" #: bottles/frontend/ui/details-preferences.blp:402 msgid "Exclude paths in snapshots." -msgstr "" +msgstr "Kecualikan jalur dalam snapshot." #: bottles/frontend/ui/details-preferences.blp:405 #, fuzzy @@ -1108,7 +1126,7 @@ msgstr "Opsi lanjutan" #: bottles/frontend/ui/dialog-deps-check.blp:13 msgid "Incomplete package" -msgstr "" +msgstr "Paket tidak lengkap" #: bottles/frontend/ui/dialog-deps-check.blp:14 msgid "" @@ -1116,6 +1134,8 @@ msgid "" "dependencies, please contact the package maintainer or use an official " "version." msgstr "" +"Versi Bottles ini tampaknya tidak menyediakan semua ketergantungan inti yang " +"diperlukan, silakan hubungi pengelola paket atau gunakan versi resmi." #: bottles/frontend/ui/dialog-deps-check.blp:18 msgid "Quit" @@ -1185,7 +1205,7 @@ msgstr "Menduplikasi…" #: bottles/frontend/ui/dialog-upgrade-versioning.blp:112 #: bottles/frontend/views/new.py:177 msgid "This could take a while." -msgstr "" +msgstr "Ini bisa memakan waktu beberapa saat." #: bottles/frontend/ui/dialog-duplicate.blp:97 #, fuzzy @@ -1202,7 +1222,7 @@ msgstr "" #: bottles/frontend/ui/dialog-env-vars.blp:31 msgid "Variable Name" -msgstr "" +msgstr "Nama Variabel" #: bottles/frontend/ui/dialog-env-vars.blp:37 #, fuzzy @@ -1211,13 +1231,15 @@ msgstr "Variabel yang sudah ada" #: bottles/frontend/ui/dialog-exclusion-patterns.blp:20 msgid "Exclusion Patterns" -msgstr "" +msgstr "Pola Pengecualian" #: bottles/frontend/ui/dialog-exclusion-patterns.blp:28 msgid "" "Define patterns that will be used to prevent some directories to being " "versioned." msgstr "" +"Tentukan pola yang akan digunakan untuk mencegah beberapa direktori untuk " +"diberi versi." #: bottles/frontend/ui/dialog-exclusion-patterns.blp:31 #, fuzzy @@ -1243,7 +1265,7 @@ msgstr "Simpan" #: bottles/frontend/ui/dialog-gamescope.blp:40 msgid "Manage how games should be displayed." -msgstr "" +msgstr "Mengelola bagaimana game harus ditampilkan." #: bottles/frontend/ui/dialog-gamescope.blp:44 #, fuzzy @@ -1252,7 +1274,7 @@ msgstr "Resolusi permainan" #: bottles/frontend/ui/dialog-gamescope.blp:45 msgid "Uses the resolution of the video game as a reference in pixels." -msgstr "" +msgstr "Menggunakan resolusi video game sebagai referensi dalam piksel." #: bottles/frontend/ui/dialog-gamescope.blp:48 #: bottles/frontend/ui/dialog-gamescope.blp:85 @@ -1274,10 +1296,12 @@ msgid "" "Upscales the resolution when using a resolution higher than the game " "resolution in pixels." msgstr "" +"Meningkatkan resolusi ketika menggunakan resolusi yang lebih tinggi dari " +"resolusi game dalam piksel." #: bottles/frontend/ui/dialog-gamescope.blp:118 msgid "Miscellaneous" -msgstr "" +msgstr "Lain-lain" #: bottles/frontend/ui/dialog-gamescope.blp:121 #, fuzzy @@ -1309,7 +1333,7 @@ msgstr "Layar penuh" #: bottles/frontend/ui/dialog-installer.blp:40 msgid "Do you want to proceed with the installation?" -msgstr "" +msgstr "Apakah Anda ingin melanjutkan penginstalan?" #: bottles/frontend/ui/dialog-installer.blp:45 #, fuzzy @@ -1344,7 +1368,7 @@ msgstr "Pemasangan dependensi gagal." #: bottles/frontend/ui/dialog-installer.blp:149 msgid "Something went wrong." -msgstr "" +msgstr "Ada yang tidak beres." #: bottles/frontend/ui/dialog-journal.blp:9 msgid "All messages" @@ -1376,7 +1400,7 @@ msgstr "Peramban Jurnal" #: bottles/frontend/ui/dialog-journal.blp:53 msgid "Change Logging Level." -msgstr "" +msgstr "Mengubah Tingkat Pencatatan." #: bottles/frontend/ui/dialog-journal.blp:57 msgid "All" @@ -1433,6 +1457,8 @@ msgstr "Pilih direktori" #: bottles/frontend/ui/dialog-launch-options.blp:114 msgid "These settings will override the default settings for this executable." msgstr "" +"Pengaturan ini akan menggantikan pengaturan default untuk file yang dapat " +"dieksekusi ini." #: bottles/frontend/ui/dialog-launch-options.blp:115 #, fuzzy @@ -1450,7 +1476,7 @@ msgstr "Desktop Virtual" #: bottles/frontend/ui/dialog-proton-alert.blp:4 msgid "Proton Disclaimer" -msgstr "" +msgstr "Penyangkalan Proton" #: bottles/frontend/ui/dialog-proton-alert.blp:21 #, fuzzy @@ -1471,10 +1497,21 @@ msgid "" "the runner's provider, is not responsible for any problems and we ask that " "you do not report to them." msgstr "" +"Waspadalah, menggunakan runner berbasis Proton dalam bottle non-Steam dapat " +"menyebabkan masalah dan membuatnya tidak berfungsi dengan baik.\n" +"\n" +"Kami lebih menyarankan untuk menggunakan Wine-GE, versi Proton yang " +"dimaksudkan untuk berjalan di luar Steam.\n" +"\n" +"Proses akan secara otomatis mengaktifkan runtime Steam (jika ada dalam " +"sistem dan terdeteksi oleh Bottles) untuk memungkinkannya mengakses pustaka " +"yang diperlukan dan membatasi masalah kompatibilitas. Perlu diketahui bahwa " +"GloriousEggroll, penyedia runner, tidak bertanggung jawab atas masalah apa " +"pun dan kami meminta Anda untuk tidak melapor kepada mereka." #: bottles/frontend/ui/dialog-proton-alert.blp:43 msgid "I got it." -msgstr "" +msgstr "Aku mengerti." #: bottles/frontend/ui/dialog-rename.blp:7 msgid "Rename" @@ -1516,7 +1553,7 @@ msgstr "Pengaturan Gamescope" #: bottles/frontend/ui/dialog-sandbox.blp:25 msgid "Share Network" -msgstr "" +msgstr "Berbagi Jaringan" #: bottles/frontend/ui/dialog-sandbox.blp:34 #, fuzzy @@ -1545,7 +1582,7 @@ msgstr "Pembuatan versi" #: bottles/frontend/ui/dialog-upgrade-versioning.blp:69 msgid "The new bottle versioning system has landed." -msgstr "" +msgstr "Sistem versi botol yang baru telah diluncurkan." #: bottles/frontend/ui/dialog-upgrade-versioning.blp:83 msgid "" diff --git a/po/it.po b/po/it.po index b5a9190eab7..5394749a787 100644 --- a/po/it.po +++ b/po/it.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: bottles\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-03-27 13:50+0530\n" -"PO-Revision-Date: 2024-07-28 21:09+0000\n" -"Last-Translator: Mqrco0 \n" +"PO-Revision-Date: 2024-12-14 15:37+0000\n" +"Last-Translator: albanobattistella \n" "Language-Team: Italian \n" "Language: it\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.7-dev\n" +"X-Generator: Weblate 5.9-rc\n" #: bottles/backend/managers/backup.py:48 bottles/backend/managers/backup.py:95 msgid "No path specified" @@ -1931,9 +1931,8 @@ msgid "C_reate" msgstr "C_rea" #: bottles/frontend/ui/new.blp:53 -#, fuzzy msgid "Bottle Name" -msgstr "Nome bottiglia" +msgstr "Nome della bottiglia" #: bottles/frontend/ui/new.blp:75 msgid "_Application" @@ -2600,6 +2599,8 @@ msgid "" "Based on Valve's Wine, includes staging, Proton and Steam-specific patches. " "Requires the Steam Runtime turned on." msgstr "" +"Basato su Wine di Valve, include staging, Proton e patch specifiche di " +"Steam. Richiede Steam Runtime attivato." #: bottles/frontend/views/preferences.py:250 msgid "Other" @@ -3125,6 +3126,7 @@ msgstr "Miglioramenti della qualità di vita:" #: data/com.usebottles.bottles.metainfo.xml.in:114 msgid "Replace emote-love icon with library in library page" msgstr "" +"Sostituisci l'icona emote-love con la libreria nella pagina della libreria" #: data/com.usebottles.bottles.metainfo.xml.in:115 msgid "Add toast for \"Run Executable\"" @@ -3136,7 +3138,7 @@ msgstr "Correzioni di bug:" #: data/com.usebottles.bottles.metainfo.xml.in:119 msgid "Adding shortcut to Steam resulted an error" -msgstr "" +msgstr "L'aggiunta di un collegamento a Steam ha generato un errore" #: data/com.usebottles.bottles.metainfo.xml.in:120 msgid "Importing backups resulted an error" @@ -3152,6 +3154,8 @@ msgid "" "Various library related fixes, like empty covers, and crashes related to " "missing entries" msgstr "" +"Varie correzioni relative alla libreria, come copertine vuote e arresti " +"anomali correlati a voci mancanti" #: data/com.usebottles.bottles.metainfo.xml.in:123 msgid "Fix various issues related to text encoding" @@ -3169,7 +3173,7 @@ msgstr "Data della versione corretta" #: data/com.usebottles.bottles.metainfo.xml.in:138 msgid "Hide NVIDIA-related critical errors on non NVIDIA systems" -msgstr "" +msgstr "Nascondi gli errori critici correlati a NVIDIA sui sistemi non NVIDIA" #: data/com.usebottles.bottles.metainfo.xml.in:145 msgid "Gamescope improvements and fixes" @@ -3205,6 +3209,8 @@ msgstr "Più variabili per lo scripting del programma di installazione" #: data/com.usebottles.bottles.metainfo.xml.in:152 msgid "Fix onboard dialog showing \"All ready\" while it was in fact not ready" msgstr "" +"Corretto la finestra di dialogo di bordo che mostrava \"Tutto pronto\" " +"quando in realtà non era pronto" #: data/com.usebottles.bottles.metainfo.xml.in:153 msgid "Improvement to build system" diff --git a/po/ka.po b/po/ka.po new file mode 100644 index 00000000000..8016784e432 --- /dev/null +++ b/po/ka.po @@ -0,0 +1,3053 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the bottles package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: bottles\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-27 10:57+0530\n" +"PO-Revision-Date: 2024-12-28 04:32+0000\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian \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: Weblate 5.10-dev\n" + +#: bottles/backend/managers/backup.py:48 bottles/backend/managers/backup.py:95 +msgid "No path specified" +msgstr "ბილიკი მითითებული არაა" + +#: bottles/backend/managers/backup.py:56 +#, python-brace-format +msgid "Backup {0}" +msgstr "{0}-ის მარქაფი" + +#: bottles/backend/managers/backup.py:103 +#, python-brace-format +msgid "Importing backup: {0}" +msgstr "" + +#: bottles/backend/managers/manager.py:1076 +#: bottles/backend/managers/manager.py:1396 +#: bottles/backend/managers/manager.py:1397 +#, python-format +msgid "Failed to install dependency: %s" +msgstr "" + +#: bottles/backend/managers/manager.py:1115 +msgid "Fail to install components, tried 3 times." +msgstr "" + +#: bottles/backend/managers/manager.py:1126 +msgid "Missing essential components. Installing…" +msgstr "" + +#: bottles/backend/managers/manager.py:1203 +msgid "Failed to create bottle directory." +msgstr "" + +#: bottles/backend/managers/manager.py:1215 +msgid "Failed to create placeholder directory/file." +msgstr "" + +#: bottles/backend/managers/manager.py:1220 +msgid "Generating bottle configuration…" +msgstr "" + +#: bottles/backend/managers/manager.py:1243 +msgid "Template found, applying…" +msgstr "" + +#. execute wineboot on the bottle path +#: bottles/backend/managers/manager.py:1255 +msgid "The Wine config is being updated…" +msgstr "" + +#: bottles/backend/managers/manager.py:1257 +msgid "Wine config updated!" +msgstr "" + +#: bottles/backend/managers/manager.py:1265 +msgid "Running as Flatpak, sandboxing userdir…" +msgstr "" + +#: bottles/backend/managers/manager.py:1267 +msgid "Sandboxing userdir…" +msgstr "მომხმარებლის საქაღალდის სენდბოქსი…" + +#: bottles/backend/managers/manager.py:1308 +msgid "Setting Windows version…" +msgstr "" + +#: bottles/backend/managers/manager.py:1318 +msgid "Apply CMD default settings…" +msgstr "" + +#: bottles/backend/managers/manager.py:1326 +msgid "Optimizing environment…" +msgstr "გარემოს ოპტიმიზაცია…" + +#: bottles/backend/managers/manager.py:1337 +#, python-brace-format +msgid "Applying environment: {0}…" +msgstr "" + +#: bottles/backend/managers/manager.py:1347 +msgid "(!) Using a custom environment recipe…" +msgstr "" + +#: bottles/backend/managers/manager.py:1350 +msgid "(!) Recipe not not found or not valid…" +msgstr "" + +#: bottles/backend/managers/manager.py:1367 +msgid "Installing DXVK…" +msgstr "მიმდინარეობს DXVK-ის დაყენება…" + +#: bottles/backend/managers/manager.py:1375 +msgid "Installing VKD3D…" +msgstr "მიმდინარეობს VKD3D-ის დაყენება…" + +#: bottles/backend/managers/manager.py:1384 +msgid "Installing DXVK-NVAPI…" +msgstr "მიმდინარეობს DXVK-NVAPI-ის დაყენება…" + +#: bottles/backend/managers/manager.py:1393 +#, python-format +msgid "Installing dependency: %s …" +msgstr "" + +#: bottles/backend/managers/manager.py:1407 +msgid "Creating versioning state 0…" +msgstr "" + +#: bottles/backend/managers/manager.py:1415 +msgid "Finalizing…" +msgstr "დასრულება…" + +#: bottles/backend/managers/manager.py:1426 +msgid "Caching template…" +msgstr "მიმდინარეობს ნიმუშის დაკეშვა…" + +#: bottles/backend/managers/versioning.py:83 +msgid "Committing state …" +msgstr "" + +#: bottles/backend/managers/versioning.py:90 +msgid "Nothing to commit" +msgstr "" + +#: bottles/backend/managers/versioning.py:96 +#, python-brace-format +msgid "New state [{0}] created successfully!" +msgstr "" + +#: bottles/backend/managers/versioning.py:123 +msgid "States list retrieved successfully!" +msgstr "" + +#: bottles/backend/managers/versioning.py:153 +#, python-brace-format +msgid "State {0} restored successfully!" +msgstr "" + +#: bottles/backend/managers/versioning.py:155 +msgid "Restoring state {} …" +msgstr "" + +#: bottles/backend/managers/versioning.py:162 +msgid "State not found" +msgstr "" + +#: bottles/backend/managers/versioning.py:168 +msgid "State {} is already the active state" +msgstr "" + +#: bottles/frontend/main.py:111 +msgid "Show version" +msgstr "ვერსიის ჩვენება" + +#: bottles/frontend/main.py:119 +msgid "Executable path" +msgstr "გამშვები ფაილის ბილიკი" + +#: bottles/frontend/main.py:127 +msgid "lnk path" +msgstr "ბმულის ბილიკი" + +#: bottles/frontend/main.py:135 bottles/frontend/ui/library-entry.blp:118 +#: bottles/frontend/ui/list-entry.blp:5 +msgid "Bottle name" +msgstr "ბოთლის სახელი" + +#: bottles/frontend/main.py:143 +msgid "Pass arguments" +msgstr "არგუმენტების გადაცემა" + +#: bottles/frontend/main.py:202 +msgid "Invalid URI (syntax: bottles:run//)" +msgstr "" + +#: bottles/frontend/main.py:242 +msgid "[Quit] request received." +msgstr "" + +#: bottles/frontend/main.py:252 +msgid "[Help] request received." +msgstr "" + +#: bottles/frontend/main.py:260 +msgid "[Refresh] request received." +msgstr "" + +#: bottles/frontend/main.py:293 +msgid "Donate" +msgstr "შემოწირულობა" + +#: bottles/frontend/main.py:298 +msgid "Third-Party Libraries and Special Thanks" +msgstr "" + +#: bottles/frontend/main.py:324 +msgid "Sponsored and Funded by" +msgstr "" + +#: bottles/frontend/ui/about.blp:5 +msgid "Copyright © 2017 Bottles Developers" +msgstr "" + +#: bottles/frontend/ui/about.blp:10 +msgid "Bottles Developers" +msgstr "ბოთლის სასტავი" + +#: bottles/frontend/ui/about.blp:12 +msgid "translator_credits" +msgstr "მთარგმნელის_შესახებ" + +#: bottles/frontend/ui/component-entry.blp:4 +msgid "Component version" +msgstr "კომპონენტის ვერსია" + +#: bottles/frontend/ui/component-entry.blp:12 +#: bottles/frontend/ui/dependency-entry.blp:29 +#: bottles/frontend/ui/program-entry.blp:77 +msgid "Uninstall" +msgstr "წაშლა" + +#: bottles/frontend/ui/component-entry.blp:23 +#: bottles/frontend/ui/importer-entry.blp:13 +msgid "Browse Files" +msgstr "ფაილის არჩევა" + +#: bottles/frontend/ui/component-entry.blp:34 +msgid "" +"The installation failed. This may be due to a repository error, partial " +"download or checksum mismatch. Press to try again." +msgstr "" + +#: bottles/frontend/ui/component-entry.blp:45 +msgid "Download & Install" +msgstr "" + +#: bottles/frontend/ui/component-entry.blp:58 +msgid "0%" +msgstr "0%" + +#: bottles/frontend/ui/dependency-entry.blp:16 +msgid "Show Manifest" +msgstr "მანიფესტის ჩვენება" + +#: bottles/frontend/ui/dependency-entry.blp:20 +msgid "License" +msgstr "ლიცენზია" + +#: bottles/frontend/ui/dependency-entry.blp:24 +msgid "Reinstall" +msgstr "გადაყენება" + +#: bottles/frontend/ui/dependency-entry.blp:36 +#: bottles/frontend/ui/installer-entry.blp:27 +msgid "Report a Bug…" +msgstr "შეცდომის პატაკი…" + +#: bottles/frontend/ui/dependency-entry.blp:42 +msgid "Dependency name" +msgstr "დამოკიდებულების სახელი" + +#: bottles/frontend/ui/dependency-entry.blp:44 +msgid "Dependency description" +msgstr "დამოკიდებულების აღწერა" + +#: bottles/frontend/ui/dependency-entry.blp:51 +msgid "Category" +msgstr "კატეგორია" + +#: bottles/frontend/ui/dependency-entry.blp:64 +msgid "Download & Install this Dependency" +msgstr "" + +#: bottles/frontend/ui/dependency-entry.blp:79 +msgid "" +"An installation error occurred. Restart Bottles to read the Crash Report or " +"run it via terminal to read the output." +msgstr "" + +#: bottles/frontend/ui/dependency-entry.blp:93 +msgid "Dependency Menu" +msgstr "დამოკიდებულების მენიუ" + +#: bottles/frontend/ui/details-bottle.blp:16 +msgid "Troubleshooting" +msgstr "პრობლემების გადაჭრა" + +#: bottles/frontend/ui/details-bottle.blp:24 +msgid "Browse Files…" +msgstr "ფაილების დათვალიერება…" + +#: bottles/frontend/ui/details-bottle.blp:28 +msgid "Duplicate Bottle…" +msgstr "ბოთლის დუბლირება…" + +#: bottles/frontend/ui/details-bottle.blp:32 +#: bottles/frontend/ui/importer.blp:73 +msgid "This is the complete archive of your bottle, including personal files." +msgstr "" + +#: bottles/frontend/ui/details-bottle.blp:33 +msgid "Full Backup…" +msgstr "სრული მარქაფი…" + +#: bottles/frontend/ui/details-bottle.blp:37 +#: bottles/frontend/ui/importer.blp:68 +msgid "" +"This is just the bottle configuration, it's perfect if you want to create a " +"new one but without personal files." +msgstr "" + +#: bottles/frontend/ui/details-bottle.blp:38 +msgid "Export Configuration…" +msgstr "კონფიგურაციის გატანა…" + +#: bottles/frontend/ui/details-bottle.blp:45 +#: bottles/frontend/views/bottle_details.py:347 +msgid "Show Hidden Programs" +msgstr "" + +#: bottles/frontend/ui/details-bottle.blp:49 +msgid "Search for new programs" +msgstr "" + +#: bottles/frontend/ui/details-bottle.blp:56 +msgid "Delete Bottle…" +msgstr "ბოთლის წაშლა…" + +#: bottles/frontend/ui/details-bottle.blp:73 +#: bottles/frontend/ui/details-dependencies.blp:99 +#: bottles/frontend/ui/details-installers.blp:68 +msgid "Secondary Menu" +msgstr "მეორადი მენიუ" + +#: bottles/frontend/ui/details-bottle.blp:90 +msgid "Force Stop all Processes" +msgstr "" + +#: bottles/frontend/ui/details-bottle.blp:94 +msgid "Simulate a Windows system shutdown." +msgstr "" + +#: bottles/frontend/ui/details-bottle.blp:95 +msgid "Shutdown" +msgstr "გამორთვა" + +#: bottles/frontend/ui/details-bottle.blp:99 +msgid "Simulate a Windows system reboot." +msgstr "" + +#: bottles/frontend/ui/details-bottle.blp:100 +msgid "Reboot" +msgstr "გადატვირთვა" + +#: bottles/frontend/ui/details-bottle.blp:118 +#: bottles/frontend/ui/dialog-launch-options.blp:6 +msgid "Launch Options" +msgstr "გაშვების პარამეტრები" + +#: bottles/frontend/ui/details-bottle.blp:135 +msgid "Run in Terminal" +msgstr "ტერმინალში გაშვება" + +#: bottles/frontend/ui/details-bottle.blp:148 +msgid "Drop files to execute them" +msgstr "" + +#: bottles/frontend/ui/details-bottle.blp:164 +msgid "My bottle" +msgstr "" + +#: bottles/frontend/ui/details-bottle.blp:177 +msgid "Win64" +msgstr "Win64" + +#: bottles/frontend/ui/details-bottle.blp:189 +#: bottles/frontend/ui/list-entry.blp:12 bottles/frontend/ui/new.blp:71 +msgid "Environment" +msgstr "გარემო" + +#: bottles/frontend/ui/details-bottle.blp:201 +#: bottles/frontend/ui/details-preferences.blp:14 +#: bottles/frontend/ui/new.blp:128 +msgid "Runner" +msgstr "გამშვები" + +#: bottles/frontend/ui/details-bottle.blp:213 +#: bottles/frontend/ui/list-entry.blp:21 +msgid "Versioning enabled for this bottle" +msgstr "" + +#: bottles/frontend/ui/details-bottle.blp:218 +msgid "Versioning is active for this bottle." +msgstr "" + +#: bottles/frontend/ui/details-bottle.blp:227 +#: bottles/frontend/ui/list-entry.blp:31 +msgid "0" +msgstr "0" + +#: bottles/frontend/ui/details-bottle.blp:247 +msgid "Run Executable…" +msgstr "" + +#: bottles/frontend/ui/details-bottle.blp:272 +msgid "Programs" +msgstr "პროგრამები" + +#: bottles/frontend/ui/details-bottle.blp:275 +msgid "" +"Click \"Run Executable…\" to run an executable, \"Add Shortcuts…\" to add an " +"executable to the Programs list, or \"Install Programs…\" to install " +"programs curated by the community." +msgstr "" + +#: bottles/frontend/ui/details-bottle.blp:298 +msgid "Add Shortcuts…" +msgstr "" + +#: bottles/frontend/ui/details-bottle.blp:325 +msgid "Install Programs…" +msgstr "" + +#: bottles/frontend/ui/details-bottle.blp:346 +msgid "Options" +msgstr "მორგება" + +#: bottles/frontend/ui/details-bottle.blp:350 +#: bottles/frontend/views/details.py:141 +msgid "Settings" +msgstr "მორგება" + +#: bottles/frontend/ui/details-bottle.blp:351 +msgid "Configure bottle settings." +msgstr "" + +#: bottles/frontend/ui/details-bottle.blp:360 +#: bottles/frontend/views/details.py:145 +msgid "Dependencies" +msgstr "დამოკიდებულებები" + +#: bottles/frontend/ui/details-bottle.blp:361 +msgid "Install dependencies for programs." +msgstr "" + +#: bottles/frontend/ui/details-bottle.blp:370 +#: bottles/frontend/ui/details-preferences.blp:376 +#: bottles/frontend/views/details.py:149 +msgid "Snapshots" +msgstr "სწრაფი ასლები" + +#: bottles/frontend/ui/details-bottle.blp:371 +msgid "Create and manage bottle states." +msgstr "" + +#: bottles/frontend/ui/details-bottle.blp:380 +#: bottles/frontend/ui/details-bottle.blp:426 +#: bottles/frontend/views/details.py:157 +msgid "Task Manager" +msgstr "ამოცანების მმართველი" + +#: bottles/frontend/ui/details-bottle.blp:381 +msgid "Manage running programs." +msgstr "" + +#: bottles/frontend/ui/details-bottle.blp:390 +msgid "Tools" +msgstr "ხელსაწყოები" + +#: bottles/frontend/ui/details-bottle.blp:394 +msgid "Command Line" +msgstr "ბრძანების ველი" + +#: bottles/frontend/ui/details-bottle.blp:395 +msgid "Run commands inside the Bottle." +msgstr "" + +#: bottles/frontend/ui/details-bottle.blp:404 +msgid "Registry Editor" +msgstr "რეესტრის რედაქტორი" + +#: bottles/frontend/ui/details-bottle.blp:405 +msgid "Edit the internal registry." +msgstr "" + +#: bottles/frontend/ui/details-bottle.blp:413 +msgid "Legacy Wine Tools" +msgstr "" + +#: bottles/frontend/ui/details-bottle.blp:417 +msgid "Explorer" +msgstr "გამცილებელი" + +#: bottles/frontend/ui/details-bottle.blp:435 +msgid "Debugger" +msgstr "გამმართველი" + +#: bottles/frontend/ui/details-bottle.blp:444 +#: bottles/frontend/ui/importer.blp:69 bottles/frontend/ui/new.blp:145 +msgid "Configuration" +msgstr "კონფიგურაცია" + +#: bottles/frontend/ui/details-bottle.blp:453 +msgid "Uninstaller" +msgstr "წაშლის პროგრამა" + +#: bottles/frontend/ui/details-bottle.blp:462 +msgid "Control Panel" +msgstr "მართვის პანელი" + +#: bottles/frontend/ui/details-dependencies.blp:9 +msgid "Search for dependencies…" +msgstr "" + +#: bottles/frontend/ui/details-dependencies.blp:22 +#: bottles/frontend/ui/preferences.blp:199 +#: bottles/frontend/ui/preferences.blp:247 +msgid "You're offline :(" +msgstr "" + +#: bottles/frontend/ui/details-dependencies.blp:25 +msgid "Bottles is running in offline mode, so dependencies are not available." +msgstr "" + +#: bottles/frontend/ui/details-dependencies.blp:47 +msgid "" +"Dependencies are resources that improve compatibility of Windows software.\n" +"\n" +"Files on this page are provided by third parties under a proprietary " +"license. By installing them, you agree with their respective licensing terms." +msgstr "" + +#: bottles/frontend/ui/details-dependencies.blp:76 +msgid "Report a problem or a missing dependency." +msgstr "" + +#: bottles/frontend/ui/details-dependencies.blp:77 +msgid "Report Missing Dependency" +msgstr "" + +#: bottles/frontend/ui/details-dependencies.blp:81 +msgid "Read Documentation." +msgstr "" + +#: bottles/frontend/ui/details-dependencies.blp:82 +#: bottles/frontend/ui/details-installers.blp:51 +#: bottles/frontend/ui/details-versioning.blp:37 +msgid "Documentation" +msgstr "დოკუმენტაცია" + +#: bottles/frontend/ui/details-dependencies.blp:92 +#: bottles/frontend/ui/details-installers.blp:61 +#: bottles/frontend/ui/window.blp:46 +msgid "Search" +msgstr "ძებნა" + +#: bottles/frontend/ui/details-installers.blp:9 +msgid "Search for Programs…" +msgstr "" + +#: bottles/frontend/ui/details-installers.blp:15 +msgid "" +"Install programs curated by our community.\n" +"\n" +"Files on this page are provided by third parties under a proprietary " +"license. By installing them, you agree with their respective licensing terms." +msgstr "" + +#: bottles/frontend/ui/details-installers.blp:29 +msgid "No Installers Found" +msgstr "" + +#: bottles/frontend/ui/details-installers.blp:32 +msgid "" +"The repository is unreachable or no installer is compatible with this bottle." +msgstr "" + +#: bottles/frontend/ui/details-installers.blp:50 +#: bottles/frontend/ui/details-versioning.blp:36 +#: bottles/frontend/ui/preferences.blp:82 +msgid "Read Documentation" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:6 +#: bottles/frontend/ui/dialog-duplicate.blp:52 bottles/frontend/ui/new.blp:53 +msgid "Name" +msgstr "სახელი" + +#: bottles/frontend/ui/details-preferences.blp:11 +msgid "Components" +msgstr "კომპონენტები" + +#: bottles/frontend/ui/details-preferences.blp:15 +#: bottles/frontend/ui/new.blp:129 +msgid "The version of the Wine compatibility layer." +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:17 +msgid "Updating Runner and components, please wait…" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:27 +#: bottles/frontend/ui/preferences.blp:274 +msgid "DXVK" +msgstr "DXVK" + +#: bottles/frontend/ui/details-preferences.blp:28 +msgid "Improve Direct3D 8/9/10/11 compatibility by translating it to Vulkan." +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:30 +msgid "Updating DXVK, please wait…" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:40 +#: bottles/frontend/ui/preferences.blp:278 +msgid "VKD3D" +msgstr "VKD3D" + +#: bottles/frontend/ui/details-preferences.blp:41 +msgid "Improve Direct3D 12 compatibility by translating it to Vulkan." +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:43 +msgid "Updating VKD3D, please wait…" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:54 +msgid "DXVK NVAPI" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:58 +#: bottles/frontend/ui/details-preferences.blp:93 +msgid "Updating DXVK-NVAPI, please wait…" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:68 +#: bottles/frontend/ui/preferences.blp:286 +msgid "LatencyFleX" +msgstr "LatencyFleX" + +#: bottles/frontend/ui/details-preferences.blp:69 +msgid "Increase responsiveness. Can be detected by some anti-cheat software." +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:71 +msgid "Updating LatencyFleX, please wait…" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:84 +msgid "Display" +msgstr "ჩვენება" + +#: bottles/frontend/ui/details-preferences.blp:88 +msgid "Deep Learning Super Sampling" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:89 +msgid "" +"Increase performance at the expense of visuals using DXVK-NVAPI. Only works " +"on newer NVIDIA GPUs." +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:105 +msgid "FidelityFX Super Resolution" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:106 +msgid "Increase performance at the expense of visuals. Only works on Vulkan." +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:108 +msgid "Manage FidelityFX Super Resolution settings" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:125 +msgid "Discrete Graphics" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:126 +msgid "" +"Use the discrete graphics card to increase performance at the expense of " +"power consumption." +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:135 +msgid "Post-Processing Effects" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:136 +msgid "" +"Add various post-processing effects using vkBasalt. Only works on Vulkan." +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:138 +msgid "Manage Post-Processing Layer settings" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:154 +msgid "Manage how games should be displayed on the screen using Gamescope." +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:157 +msgid "Manage Gamescope settings" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:171 +msgid "Advanced Display Settings" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:184 +msgid "Performance" +msgstr "წარმადობა" + +#: bottles/frontend/ui/details-preferences.blp:188 +msgid "Enable synchronization to increase performance of multicore processors." +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:189 +msgid "Synchronization" +msgstr "სინქრონიზაცია" + +#: bottles/frontend/ui/details-preferences.blp:193 +msgid "System" +msgstr "სისტემა" + +#: bottles/frontend/ui/details-preferences.blp:194 +msgid "Esync" +msgstr "Esync" + +#: bottles/frontend/ui/details-preferences.blp:195 +msgid "Fsync" +msgstr "Fsync" + +#: bottles/frontend/ui/details-preferences.blp:201 +msgid "Monitor Performance" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:202 +msgid "" +"Display monitoring information such as framerate, temperatures, CPU/GPU load " +"and more on OpenGL and Vulkan using MangoHud." +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:205 +msgid "Manage MangoHud settings" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:210 +msgid "Feral GameMode" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:211 +msgid "" +"Apply a set of optimizations to your device. Can improve game performance." +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:220 +msgid "Preload Game Files" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:221 +msgid "" +"Improve loading time when launching the game multiple times. The game will " +"take longer to start for the first time." +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:225 +msgid "Manage vmtouch settings" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:240 +msgid "OBS Game Capture" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:241 +msgid "Toggle OBS Game Capture for all Vulkan and OpenGL programs." +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:250 +msgid "Compatibility" +msgstr "თავსებადობა" + +#: bottles/frontend/ui/details-preferences.blp:253 +msgid "Windows Version" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:256 +msgid "Updating Windows version, please wait…" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:265 +msgid "Language" +msgstr "ენა" + +#: bottles/frontend/ui/details-preferences.blp:266 +msgid "Choose the language to use with programs." +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:274 +msgid "Dedicated Sandbox" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:275 +msgid "Use a restricted/managed environment for this bottle." +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:278 +msgid "Manage the Sandbox Permissions" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:294 +msgid "Bottles Runtime" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:295 +msgid "" +"Provide a bundle of extra libraries for more compatibility. Disable it if " +"you run into issues." +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:305 +msgid "Steam Runtime" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:306 +msgid "" +"Provide a bundle of extra libraries for more compatibility with Steam games. " +"Disable it if you run into issues." +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:314 +#: bottles/frontend/ui/dialog-launch-options.blp:83 +msgid "Working Directory" +msgstr "სამუშაო საქაღალდე" + +#: bottles/frontend/ui/details-preferences.blp:317 +#: bottles/frontend/ui/dialog-launch-options.blp:59 +#: bottles/frontend/ui/dialog-launch-options.blp:90 +#: bottles/frontend/ui/new.blp:150 bottles/frontend/ui/new.blp:181 +#: bottles/frontend/ui/preferences.blp:157 +msgid "Reset to Default" +msgstr "ნაგულისხმებ მნიშვნელობაზე დაბრუნება" + +#: bottles/frontend/ui/details-preferences.blp:338 +#: bottles/frontend/ui/preferences.blp:178 bottles/frontend/views/new.py:78 +#: bottles/frontend/views/preferences.py:221 +msgid "(Default)" +msgstr "(ნაგულისხმევი)" + +#: bottles/frontend/ui/details-preferences.blp:346 +#: bottles/frontend/ui/dialog-dll-overrides.blp:7 +#: bottles/frontend/ui/dialog-dll-overrides.blp:12 +msgid "DLL Overrides" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:356 +#: bottles/frontend/ui/dialog-env-vars.blp:20 +msgid "Environment Variables" +msgstr "გარემოს ცვლადები" + +#: bottles/frontend/ui/details-preferences.blp:366 +msgid "Manage Drives" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:380 +msgid "Automatic Snapshots" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:381 +msgid "" +"Automatically create snapshots before installing software or changing " +"settings." +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:390 +msgid "Compression" +msgstr "შეკუმშვა" + +#: bottles/frontend/ui/details-preferences.blp:391 +msgid "" +"Compress snapshots to reduce space. This will slow down the creation of " +"snapshots." +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:400 +msgid "Use Exclusion Patterns" +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:401 +msgid "Exclude paths in snapshots." +msgstr "" + +#: bottles/frontend/ui/details-preferences.blp:404 +msgid "Manage Patterns" +msgstr "" + +#: bottles/frontend/ui/details-taskmanager.blp:17 +msgid "Refresh" +msgstr "განახლება" + +#: bottles/frontend/ui/details-taskmanager.blp:22 +msgid "Stop process" +msgstr "" + +#: bottles/frontend/ui/details-versioning.blp:18 +msgid "No Snapshots Found" +msgstr "" + +#: bottles/frontend/ui/details-versioning.blp:19 +msgid "Create your first snapshot to start saving states of your preferences." +msgstr "" + +#: bottles/frontend/ui/details-versioning.blp:54 +msgid "A short comment" +msgstr "" + +#: bottles/frontend/ui/details-versioning.blp:58 +msgid "Save the bottle state." +msgstr "" + +#: bottles/frontend/ui/details-versioning.blp:78 +msgid "Create new Snapshot" +msgstr "" + +#: bottles/frontend/ui/details.blp:16 +msgid "Details" +msgstr "დეტალები" + +#: bottles/frontend/ui/details.blp:24 bottles/frontend/ui/details.blp:64 +#: bottles/frontend/ui/importer.blp:15 +msgid "Go Back" +msgstr "უკან დაბრუნება" + +#: bottles/frontend/ui/details.blp:75 +msgid "Operations" +msgstr "ოპერაციები" + +#: bottles/frontend/ui/dialog-bottle-picker.blp:4 +msgid "Select Bottle" +msgstr "" + +#: bottles/frontend/ui/dialog-bottle-picker.blp:16 +#: bottles/frontend/ui/dialog-proton-alert.blp:16 +#: bottles/frontend/ui/dialog-rename.blp:15 +#: bottles/frontend/ui/dialog-run-args.blp:20 +msgid "Cancel" +msgstr "გაუქმება" + +#: bottles/frontend/ui/dialog-bottle-picker.blp:21 +msgid "Select" +msgstr "არჩევა" + +#: bottles/frontend/ui/dialog-bottle-picker.blp:38 +#: bottles/frontend/ui/new.blp:9 bottles/frontend/ui/new.blp:49 +#: bottles/frontend/ui/window.blp:25 +msgid "Create New Bottle" +msgstr "" + +#: bottles/frontend/ui/dialog-crash-report.blp:8 +msgid "Bottles Crash Report" +msgstr "" + +#: bottles/frontend/ui/dialog-crash-report.blp:18 +#: bottles/frontend/ui/dialog-duplicate.blp:22 +#: bottles/frontend/ui/dialog-gamescope.blp:23 +#: bottles/frontend/ui/dialog-launch-options.blp:16 +#: bottles/frontend/ui/dialog-upgrade-versioning.blp:22 +#: bottles/frontend/ui/dialog-vkbasalt.blp:27 bottles/frontend/ui/new.blp:26 +#: bottles/frontend/views/bottle_details.py:507 +#: bottles/frontend/views/bottle_details.py:603 +#: bottles/frontend/views/bottle_preferences.py:746 +#: bottles/frontend/views/preferences.py:212 +msgid "_Cancel" +msgstr "_შეწყვეტა" + +#: bottles/frontend/ui/dialog-crash-report.blp:25 +msgid "Send Report" +msgstr "" + +#: bottles/frontend/ui/dialog-crash-report.blp:44 +msgid "" +"Bottles crashed last time. Please fill out a report attaching the following " +"traceback to help us identify the problem preventing it from happening again." +msgstr "" + +#: bottles/frontend/ui/dialog-crash-report.blp:74 +msgid "" +"We found one or more similar (or identical) reports. Please make sure to " +"check carefully that it has not already been reported before submitting a " +"new one. Each report requires effort on the part of the developers to " +"diagnose, please respect their work and make sure you don't post duplicates." +msgstr "" + +#: bottles/frontend/ui/dialog-crash-report.blp:89 +msgid "I still want to report." +msgstr "" + +#: bottles/frontend/ui/dialog-crash-report.blp:95 +msgid "Advanced options" +msgstr "დამატებითი პარამეტრები" + +#: bottles/frontend/ui/dialog-deps-check.blp:13 +msgid "Incomplete package" +msgstr "" + +#: bottles/frontend/ui/dialog-deps-check.blp:14 +msgid "" +"This version of Bottles does not seem to provide all the necessary core " +"dependencies, please contact the package maintainer or use an official " +"version." +msgstr "" + +#: bottles/frontend/ui/dialog-deps-check.blp:18 +msgid "Quit" +msgstr "გასვლა" + +#: bottles/frontend/ui/dialog-dll-overrides.blp:11 +msgid "" +"Dynamic Link Libraries can be specified to be builtin (provided by Wine) or " +"native (provided by the program)." +msgstr "" + +#: bottles/frontend/ui/dialog-dll-overrides.blp:15 +msgid "New Override" +msgstr "" + +#: bottles/frontend/ui/dialog-dll-overrides.blp:21 +msgid "Overrides" +msgstr "გადაფარავს" + +#: bottles/frontend/ui/dialog-drives.blp:7 +msgid "Drives" +msgstr "დისკები" + +#: bottles/frontend/ui/dialog-drives.blp:24 +msgid "" +"These are paths from your host system that are mapped and recognized as " +"devices by the runner (e.g. C: D:…)." +msgstr "" + +#: bottles/frontend/ui/dialog-drives.blp:27 +msgid "Letter" +msgstr "წერილი" + +#: bottles/frontend/ui/dialog-drives.blp:49 +msgid "Existing Drives" +msgstr "" + +#: bottles/frontend/ui/dialog-duplicate.blp:16 +msgid "Duplicate Bottle" +msgstr "" + +#: bottles/frontend/ui/dialog-duplicate.blp:38 +msgid "Duplicate" +msgstr "დუბლირება" + +#: bottles/frontend/ui/dialog-duplicate.blp:49 +msgid "Enter a name for the duplicate of the Bottle." +msgstr "" + +#: bottles/frontend/ui/dialog-duplicate.blp:69 +msgid "Duplicating…" +msgstr "დუბლირება…" + +#: bottles/frontend/ui/dialog-duplicate.blp:78 +#: bottles/frontend/ui/dialog-installer.blp:103 +#: bottles/frontend/ui/dialog-upgrade-versioning.blp:112 +#: bottles/frontend/views/new.py:177 +msgid "This could take a while." +msgstr "საკმაო დრო დასჭირდება." + +#: bottles/frontend/ui/dialog-duplicate.blp:97 +msgid "Bottle Duplicated" +msgstr "" + +#: bottles/frontend/ui/dialog-env-vars.blp:28 +msgid "" +"Environment variables are dynamic-named value that can affect the way " +"running processes will behave on your bottle." +msgstr "" + +#: bottles/frontend/ui/dialog-env-vars.blp:31 +msgid "Variable Name" +msgstr "ცვლადის სახელი" + +#: bottles/frontend/ui/dialog-env-vars.blp:37 +msgid "Existing Variables" +msgstr "" + +#: bottles/frontend/ui/dialog-exclusion-patterns.blp:20 +msgid "Exclusion Patterns" +msgstr "ამოღების ნიმუშები" + +#: bottles/frontend/ui/dialog-exclusion-patterns.blp:28 +msgid "" +"Define patterns that will be used to prevent some directories to being " +"versioned." +msgstr "" + +#: bottles/frontend/ui/dialog-exclusion-patterns.blp:31 +msgid "Pattern" +msgstr "შაბლონი" + +#: bottles/frontend/ui/dialog-exclusion-patterns.blp:37 +msgid "Existing Patterns" +msgstr "" + +#: bottles/frontend/ui/dialog-gamescope.blp:6 +msgid "Gamescope Settings" +msgstr "" + +#: bottles/frontend/ui/dialog-gamescope.blp:30 +#: bottles/frontend/ui/dialog-launch-options.blp:32 +#: bottles/frontend/ui/dialog-rename.blp:20 +#: bottles/frontend/ui/dialog-vkbasalt.blp:34 +msgid "Save" +msgstr "შენახვა" + +#: bottles/frontend/ui/dialog-gamescope.blp:40 +msgid "Manage how games should be displayed." +msgstr "" + +#: bottles/frontend/ui/dialog-gamescope.blp:44 +msgid "Game Resolution" +msgstr "" + +#: bottles/frontend/ui/dialog-gamescope.blp:45 +msgid "Uses the resolution of the video game as a reference in pixels." +msgstr "" + +#: bottles/frontend/ui/dialog-gamescope.blp:48 +#: bottles/frontend/ui/dialog-gamescope.blp:85 +msgid "Width" +msgstr "სიგანე" + +#: bottles/frontend/ui/dialog-gamescope.blp:64 +#: bottles/frontend/ui/dialog-gamescope.blp:101 +msgid "Height" +msgstr "სიმაღლე" + +#: bottles/frontend/ui/dialog-gamescope.blp:81 +msgid "Window Resolution" +msgstr "" + +#: bottles/frontend/ui/dialog-gamescope.blp:82 +msgid "" +"Upscales the resolution when using a resolution higher than the game " +"resolution in pixels." +msgstr "" + +#: bottles/frontend/ui/dialog-gamescope.blp:118 +msgid "Miscellaneous" +msgstr "სხვადასხვა" + +#: bottles/frontend/ui/dialog-gamescope.blp:121 +msgid "Frame Rate Limit" +msgstr "" + +#: bottles/frontend/ui/dialog-gamescope.blp:137 +msgid "Frame Rate Limit When Unfocused" +msgstr "" + +#: bottles/frontend/ui/dialog-gamescope.blp:153 +msgid "Integer Scaling" +msgstr "" + +#: bottles/frontend/ui/dialog-gamescope.blp:162 +msgid "Window Type" +msgstr "ფანჯრის ტიპი" + +#: bottles/frontend/ui/dialog-gamescope.blp:166 +msgid "Borderless" +msgstr "საზღვრების გარეშე" + +#: bottles/frontend/ui/dialog-gamescope.blp:172 +msgid "Fullscreen" +msgstr "სრულ ეკრანზე" + +#: bottles/frontend/ui/dialog-installer.blp:40 +msgid "Do you want to proceed with the installation?" +msgstr "" + +#: bottles/frontend/ui/dialog-installer.blp:45 +msgid "Start Installation" +msgstr "" + +#: bottles/frontend/ui/dialog-installer.blp:64 +msgid "" +"This installer requires some local resources which cannot be provided " +"otherwise." +msgstr "" + +#: bottles/frontend/ui/dialog-installer.blp:68 +msgid "Proceed" +msgstr "გაგრძელება" + +#: bottles/frontend/ui/dialog-installer.blp:127 +msgid "Completed!" +msgstr "დასრულდა!" + +#: bottles/frontend/ui/dialog-installer.blp:130 +msgid "Show Programs" +msgstr "" + +#: bottles/frontend/ui/dialog-installer.blp:148 +msgid "Installation Failed!" +msgstr "" + +#: bottles/frontend/ui/dialog-installer.blp:149 +msgid "Something went wrong." +msgstr "რაღაც მოხდა." + +#: bottles/frontend/ui/dialog-journal.blp:9 +msgid "All messages" +msgstr "ყველა შეტყობინება" + +#: bottles/frontend/ui/dialog-journal.blp:13 +msgid "Critical" +msgstr "კრიტიკული" + +#: bottles/frontend/ui/dialog-journal.blp:17 +msgid "Errors" +msgstr "შედომები" + +#: bottles/frontend/ui/dialog-journal.blp:21 +msgid "Warnings" +msgstr "გაფრთხილებები" + +#: bottles/frontend/ui/dialog-journal.blp:25 +msgid "Info" +msgstr "ინფორმაცია" + +#: bottles/frontend/ui/dialog-journal.blp:40 +#: bottles/frontend/ui/dialog-journal.blp:48 +msgid "Journal Browser" +msgstr "" + +#: bottles/frontend/ui/dialog-journal.blp:53 +msgid "Change Logging Level." +msgstr "" + +#: bottles/frontend/ui/dialog-journal.blp:57 +msgid "All" +msgstr "ყველა" + +#: bottles/frontend/ui/dialog-launch-options.blp:42 +msgid "Those arguments will be passed at launch." +msgstr "" + +#: bottles/frontend/ui/dialog-launch-options.blp:43 +msgid "Custom Arguments" +msgstr "" + +#: bottles/frontend/ui/dialog-launch-options.blp:46 +msgid "Command Arguments" +msgstr "ბრძანების არგუმენტები" + +#: bottles/frontend/ui/dialog-launch-options.blp:47 +#, c-format +msgid "e.g.: VAR=value %command% -example1 -example2 -example3=hello" +msgstr "" + +#: bottles/frontend/ui/dialog-launch-options.blp:52 +msgid "Post-run Script" +msgstr "" + +#. endregion +#: bottles/frontend/ui/dialog-launch-options.blp:53 +#: bottles/frontend/windows/launchoptions.py:53 +msgid "Choose a script which should be executed after run." +msgstr "" + +#: bottles/frontend/ui/dialog-launch-options.blp:70 +msgid "Choose a Script" +msgstr "" + +#: bottles/frontend/ui/dialog-launch-options.blp:84 +#: bottles/frontend/windows/launchoptions.py:54 +msgid "Choose from where start the program." +msgstr "" + +#: bottles/frontend/ui/dialog-launch-options.blp:101 +#: bottles/frontend/ui/drive-entry.blp:22 +msgid "Choose a Directory" +msgstr "" + +#: bottles/frontend/ui/dialog-launch-options.blp:114 +msgid "These settings will override the default settings for this executable." +msgstr "" + +#: bottles/frontend/ui/dialog-launch-options.blp:115 +msgid "Preferences Overrides" +msgstr "" + +#: bottles/frontend/ui/dialog-launch-options.blp:119 +msgid "Reset to Bottle's Defaults" +msgstr "" + +#: bottles/frontend/ui/dialog-launch-options.blp:165 +msgid "Virtual Desktop" +msgstr "ვირტუალური სამუშაო მაგიდა" + +#: bottles/frontend/ui/dialog-mangohud.blp:42 +msgid "Display On Game Start" +msgstr "" + +#: bottles/frontend/ui/dialog-mangohud.blp:43 +msgid "Display HUD as soon as the game starts. Can be toggled in-game (default keybind: [⇧ Right Shift] + [F12])." +msgstr "" + +#: bottles/frontend/ui/dialog-proton-alert.blp:4 +msgid "Proton Disclaimer" +msgstr "" + +#: bottles/frontend/ui/dialog-proton-alert.blp:21 +msgid "Use Proton" +msgstr "" + +#: bottles/frontend/ui/dialog-proton-alert.blp:35 +msgid "" +"Beware, using Proton-based runners in non-Steam bottles can cause problems " +"and prevent them from behaving correctly.\n" +"\n" +"We recommend using Wine-GE rather, a version of Proton meant to run outside " +"of Steam.\n" +"\n" +"Proceeding will automatically enable the Steam runtime (if present in the " +"system and detected by Bottles) in order to allow it to access the necessary " +"libraries and limit compatibility problems. Be aware that GloriousEggroll, " +"the runner's provider, is not responsible for any problems and we ask that " +"you do not report to them." +msgstr "" + +#: bottles/frontend/ui/dialog-proton-alert.blp:43 +msgid "I got it." +msgstr "" + +#: bottles/frontend/ui/dialog-rename.blp:7 +msgid "Rename" +msgstr "სახელის გადარქმევა" + +#: bottles/frontend/ui/dialog-rename.blp:30 +msgid "Choose a new name for the selected program." +msgstr "" + +#: bottles/frontend/ui/dialog-rename.blp:33 +msgid "New Name" +msgstr "ახალი სახელი" + +#: bottles/frontend/ui/dialog-run-args.blp:13 +msgid "Run With Arguments" +msgstr "" + +#: bottles/frontend/ui/dialog-run-args.blp:34 +#: bottles/frontend/views/bottle_details.py:404 +#: bottles/frontend/views/list.py:131 +msgid "Run" +msgstr "გაშვება" + +#: bottles/frontend/ui/dialog-run-args.blp:44 +msgid "Write below the arguments to be passed to the executable." +msgstr "" + +#: bottles/frontend/ui/dialog-run-args.blp:47 +msgid "e.g.: -opengl -SkipBuildPatchPrereq" +msgstr "" + +#: bottles/frontend/ui/dialog-sandbox.blp:7 +msgid "Sandbox Settings" +msgstr "" + +#: bottles/frontend/ui/dialog-sandbox.blp:25 +msgid "Share Network" +msgstr "ქსელის გაზიარება" + +#: bottles/frontend/ui/dialog-sandbox.blp:34 +msgid "Share Sound" +msgstr "" + +#: bottles/frontend/ui/dialog-upgrade-versioning.blp:16 +msgid "Upgrade Needed" +msgstr "" + +#: bottles/frontend/ui/dialog-upgrade-versioning.blp:38 +#: bottles/frontend/ui/onboard.blp:81 +msgid "Continue" +msgstr "გაგრძელება" + +#: bottles/frontend/ui/dialog-upgrade-versioning.blp:47 +msgid "Launch upgrade" +msgstr "" + +#: bottles/frontend/ui/dialog-upgrade-versioning.blp:66 +msgid "New Versioning System" +msgstr "" + +#: bottles/frontend/ui/dialog-upgrade-versioning.blp:69 +msgid "The new bottle versioning system has landed." +msgstr "" + +#: bottles/frontend/ui/dialog-upgrade-versioning.blp:83 +msgid "" +"Bottles has a whole new Versioning System that is not backwards compatible.\n" +"\n" +"To continue using versioning we need to re-initialize the bottle repository. " +"This will not delete data from your bottle but will delete all existing " +"snapshots and create a new one.\n" +"\n" +"If you need to go back to a previous snapshot before continuing, close this " +"window and restore the snapshot, then reopen the bottle to show this window " +"again.\n" +"\n" +"The old system will be discontinued in one of the next releases." +msgstr "" + +#: bottles/frontend/ui/dialog-upgrade-versioning.blp:103 +msgid "Re-initializing Repository…" +msgstr "" + +#: bottles/frontend/ui/dialog-upgrade-versioning.blp:133 +msgid "Done! Please restart Bottles." +msgstr "" + +#. Translators: vkBasalt is a Vulkan post processing layer for Linux +#: bottles/frontend/ui/dialog-vkbasalt.blp:10 +msgid "Post-Processing Effects Settings" +msgstr "" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:44 +msgid "Default" +msgstr "ნაგულისხმევი" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:48 +msgid "Default Settings" +msgstr "ნაგულისხმევი პარამეტრები" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:57 +msgid "Effects are applied according to the list order." +msgstr "" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:58 +msgid "Effects" +msgstr "ეფექტები" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:62 +msgid "Contrast Adaptive Sharpening" +msgstr "" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:65 +#: bottles/frontend/ui/dialog-vkbasalt.blp:102 +msgid "Sharpness" +msgstr "სიმკვეთრე" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:69 +#: bottles/frontend/ui/dialog-vkbasalt.blp:106 +#: bottles/frontend/ui/dialog-vkbasalt.blp:134 +#: bottles/frontend/ui/dialog-vkbasalt.blp:167 +#: bottles/frontend/ui/dialog-vkbasalt.blp:195 +#: bottles/frontend/ui/dialog-vkbasalt.blp:223 +#: bottles/frontend/ui/dialog-vkbasalt.blp:256 +#: bottles/frontend/ui/dialog-vkbasalt.blp:288 +#: bottles/frontend/ui/dialog-vkbasalt.blp:316 +#: bottles/frontend/ui/dialog-vkbasalt.blp:343 +#: bottles/frontend/ui/dialog-vkbasalt.blp:370 bottles/frontend/ui/new.blp:58 +msgid "Show Information" +msgstr "ინფორმაციის ჩვენება" + +#. Translators: Luma is not translatable +#: bottles/frontend/ui/dialog-vkbasalt.blp:99 +msgid "Denoised Luma Sharpening" +msgstr "" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:130 +msgid "Denoise" +msgstr "ხმაურის მოცილება" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:160 +msgid "Fast Approximate Anti-Aliasing" +msgstr "" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:163 +msgid "Subpixel Quality" +msgstr "" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:191 +msgid "Quality Edge Threshold" +msgstr "" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:219 +msgid "Quality Edge Threshold Minimum" +msgstr "" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:249 +msgid "Subpixel Morphological Anti-Aliasing" +msgstr "" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:252 +msgid "Edge Detection" +msgstr "" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:267 +msgid "Luma" +msgstr "ლუმა" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:273 +msgid "Color" +msgstr "ფერი" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:284 +msgid "Threshold" +msgstr "ზღვარი" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:312 +msgid "Max Search Steps" +msgstr "" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:339 +msgid "Max Search Steps Diagonal" +msgstr "" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:366 +msgid "Max Corner Rounding" +msgstr "" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:411 +msgid "" +"CAS sharpness increases the sharpness of a frame. Higher values make the " +"frame sharper, whereas values lower than 0 make the frame softer than native." +msgstr "" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:428 +msgid "" +"DLS sharpness increases the sharpness of a frame. Higher values make the " +"frame sharper." +msgstr "" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:445 +msgid "" +"DLS denoise decreases the noise of a frame. Higher values make the frame " +"softer." +msgstr "" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:462 +msgid "" +"FXAA subpixel quality decreases aliasing at the subpixel level. Higher " +"values make the frame softer." +msgstr "" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:479 +msgid "" +"FXAA edge threshold is the minimum amount of contrast required to apply the " +"FXAA algorithm. Higher values make the frame have more contrast." +msgstr "" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:496 +msgid "" +"FXAA quality edge threshold minimum is the minimum value of dark pixels that " +"are ignored by the FXAA algorithm. Higher values make FXAA ignore pixels " +"below the specified value and can lead to a performance increase." +msgstr "" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:513 +msgid "" +"Luma detects edges from a monochrome perspective, whereas Color detects " +"edges based on colors. Luma is more performant than Color." +msgstr "" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:530 +msgid "" +"SMAA threshold specifies the sensitivity of edge detection. Lower values " +"detect more edges at the expense of performance." +msgstr "" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:547 +msgid "" +"SMAA max search steps specifies how many horizontal and vertical search " +"steps are performed when searching for edges." +msgstr "" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:564 +msgid "" +"SMAA max diagonal search steps specifies how many diagonal search steps are " +"performed when searching for edges." +msgstr "" + +#: bottles/frontend/ui/dialog-vkbasalt.blp:581 +msgid "SMAA corner rounding specifies the strength of rounding edge corners." +msgstr "" + +#: bottles/frontend/ui/dll-override-entry.blp:8 +msgid "Builtin (Wine)" +msgstr "" + +#: bottles/frontend/ui/dll-override-entry.blp:9 +msgid "Native (Windows)" +msgstr "" + +#: bottles/frontend/ui/dll-override-entry.blp:10 +msgid "Builtin, then Native" +msgstr "" + +#: bottles/frontend/ui/dll-override-entry.blp:11 +msgid "Native, then Builtin" +msgstr "" + +#: bottles/frontend/ui/dll-override-entry.blp:12 +msgid "Disabled" +msgstr "გამორთული" + +#: bottles/frontend/ui/dll-override-entry.blp:20 +#: bottles/frontend/ui/drive-entry.blp:12 +msgid "Remove" +msgstr "წაშლა" + +#: bottles/frontend/ui/drive-entry.blp:5 +msgid "/point/to/path" +msgstr "/ბილიკი/წერტილამდე" + +#: bottles/frontend/ui/env-var-entry.blp:4 +#: bottles/frontend/ui/exclusion-pattern-entry.blp:4 +msgid "Value" +msgstr "მნიშვნელობა" + +#. Translators: A Wine prefix is a separate environment (C:\ drive) for the Wine program +#: bottles/frontend/ui/importer-entry.blp:21 +msgid "Wine prefix name" +msgstr "" + +#: bottles/frontend/ui/importer-entry.blp:28 +msgid "Manager" +msgstr "მმართველი" + +#: bottles/frontend/ui/importer-entry.blp:38 +msgid "This Wine prefix was already imported in Bottles." +msgstr "" + +#: bottles/frontend/ui/importer.blp:22 +msgid "Import a Bottle backup" +msgstr "" + +#: bottles/frontend/ui/importer.blp:28 +msgid "Search again for prefixes" +msgstr "" + +#: bottles/frontend/ui/importer.blp:38 +msgid "No Prefixes Found" +msgstr "" + +#: bottles/frontend/ui/importer.blp:39 +msgid "" +"No external prefixes were found. Does Bottles have access to them?\n" +"Use the icon on the top to import a bottle from a backup." +msgstr "" + +#: bottles/frontend/ui/importer.blp:74 +msgid "Full Archive" +msgstr "" + +#: bottles/frontend/ui/installer-entry.blp:16 +msgid "Show Manifest…" +msgstr "" + +#: bottles/frontend/ui/installer-entry.blp:20 +msgid "Read Review…" +msgstr "" + +#: bottles/frontend/ui/installer-entry.blp:34 +msgid "Installer name" +msgstr "დამყენებლის სახელი" + +#: bottles/frontend/ui/installer-entry.blp:35 +msgid "Installer description" +msgstr "" + +#: bottles/frontend/ui/installer-entry.blp:42 +msgid "Unknown" +msgstr "უცნობი" + +#: bottles/frontend/ui/installer-entry.blp:51 +msgid "Install this Program" +msgstr "" + +#: bottles/frontend/ui/installer-entry.blp:69 +msgid "Program Menu" +msgstr "" + +#: bottles/frontend/ui/library-entry.blp:33 +msgid "No Thumbnail" +msgstr "" + +#: bottles/frontend/ui/library-entry.blp:57 +msgid "Launch" +msgstr "გაშვება" + +#: bottles/frontend/ui/library-entry.blp:70 +#: bottles/frontend/ui/program-entry.blp:89 +msgid "Launch with Steam" +msgstr "" + +#: bottles/frontend/ui/library-entry.blp:108 +msgid "Item name" +msgstr "ჩანაწერის სახელი" + +#: bottles/frontend/ui/library-entry.blp:132 +msgid "Remove from Library" +msgstr "" + +#: bottles/frontend/ui/library-entry.blp:143 +msgid "Stop" +msgstr "შეჩერება" + +#: bottles/frontend/ui/library.blp:11 +#: bottles/frontend/windows/main_window.py:196 +msgid "Library" +msgstr "ბიბლიოთეკა" + +#: bottles/frontend/ui/library.blp:12 +msgid "Add items here from your bottle's program list" +msgstr "" + +#: bottles/frontend/ui/list-entry.blp:26 +msgid "Versioning is active in this bottle." +msgstr "" + +#: bottles/frontend/ui/list-entry.blp:42 +msgid "This bottle looks damaged." +msgstr "" + +#: bottles/frontend/ui/list-entry.blp:55 +msgid "Execute in this Bottle" +msgstr "" + +#: bottles/frontend/ui/list-entry.blp:69 +msgid "Run Here" +msgstr "" + +#: bottles/frontend/ui/list-entry.blp:75 +msgid "" +"This bottle looks damaged, the configuration file is missing. I can try to " +"solve by creating a new configuration." +msgstr "" + +#: bottles/frontend/ui/list.blp:12 +msgid "Search your bottles…" +msgstr "" + +#: bottles/frontend/ui/list.blp:28 +msgid "Steam Proton" +msgstr "" + +#: bottles/frontend/ui/list.blp:42 bottles/frontend/windows/main_window.py:191 +#: data/com.usebottles.bottles.metainfo.xml.in:7 +msgid "Bottles" +msgstr "Bottles" + +#: bottles/frontend/ui/list.blp:49 +msgid "Create New Bottle…" +msgstr "" + +#: bottles/frontend/ui/list.blp:63 +msgid "No Results Found" +msgstr "შედეგების გარეშე" + +#: bottles/frontend/ui/list.blp:64 +msgid "Try a different search." +msgstr "სცადეთ სხვა ძებნა." + +#: bottles/frontend/ui/loading.blp:13 +msgid "Starting up…" +msgstr "გაშვება…" + +#: bottles/frontend/ui/loading.blp:22 +msgid "Continue Offline" +msgstr "" + +#: bottles/frontend/ui/local-resource-entry.blp:4 +msgid "This resource is missing." +msgstr "" + +#: bottles/frontend/ui/local-resource-entry.blp:8 +msgid "Browse" +msgstr "პოვნა" + +#: bottles/frontend/ui/new.blp:32 +msgid "C_reate" +msgstr "_შექმნა" + +#: bottles/frontend/ui/new.blp:75 +msgid "_Application" +msgstr "_აპლიკაცია" + +#: bottles/frontend/ui/new.blp:88 +msgid "_Gaming" +msgstr "_თამაშები" + +#: bottles/frontend/ui/new.blp:101 +msgid "C_ustom" +msgstr "მორგებ_ული" + +#: bottles/frontend/ui/new.blp:114 +msgid "Custom" +msgstr "მომხმარებლის" + +#: bottles/frontend/ui/new.blp:118 +msgid "Share User Directory" +msgstr "" + +#: bottles/frontend/ui/new.blp:119 +msgid "" +"This makes the user directory discoverable in the bottle, at the risk of " +"sharing personal information to Windows software. This option cannot be " +"changed after the bottle has been created." +msgstr "" + +#: bottles/frontend/ui/new.blp:136 +msgid "Architecture" +msgstr "არქიტექტურა" + +#: bottles/frontend/ui/new.blp:137 +msgid "32-bit should only be used if strictly necessary." +msgstr "" + +#: bottles/frontend/ui/new.blp:146 +msgid "Import a custom configuration." +msgstr "" + +#: bottles/frontend/ui/new.blp:176 +msgid "Bottle Directory" +msgstr "" + +#: bottles/frontend/ui/new.blp:177 +msgid "Directory that will contain the data of this bottle." +msgstr "" + +#: bottles/frontend/ui/new.blp:249 +msgid "_Close" +msgstr "და_ხურვა" + +#: bottles/frontend/ui/new.blp:281 +msgid "This name is unavailable, please try another." +msgstr "" + +#: bottles/frontend/ui/onboard.blp:34 +msgid "Previous" +msgstr "წინა" + +#: bottles/frontend/ui/onboard.blp:59 +msgid "Welcome to Bottles" +msgstr "" + +#: bottles/frontend/ui/onboard.blp:60 +msgid "Run Windows Software on Linux." +msgstr "" + +#: bottles/frontend/ui/onboard.blp:65 +msgid "Windows in Bottles" +msgstr "" + +#: bottles/frontend/ui/onboard.blp:66 +msgid "" +"Bottles uses compatibility runners to provide isolated containerized Windows-" +"like environments where programs run." +msgstr "" + +#: bottles/frontend/ui/onboard.blp:72 +msgid "Almost Done" +msgstr "" + +#: bottles/frontend/ui/onboard.blp:73 +msgid "We need a few more minutes to set everything up…" +msgstr "" + +#: bottles/frontend/ui/onboard.blp:105 +msgid "All Ready!" +msgstr "" + +#: bottles/frontend/ui/onboard.blp:114 +msgid "Please Finish the setup first" +msgstr "" + +#: bottles/frontend/ui/onboard.blp:120 +msgid "Start using Bottles" +msgstr "" + +#: bottles/frontend/ui/onboard.blp:141 +msgid "Next" +msgstr "შემდეგი" + +#: bottles/frontend/ui/preferences.blp:5 bottles/frontend/ui/window.blp:86 +msgid "Preferences" +msgstr "მორგება" + +#: bottles/frontend/ui/preferences.blp:12 +#: bottles/frontend/ui/preferences.blp:40 +msgid "General" +msgstr "ზოგადი" + +#: bottles/frontend/ui/preferences.blp:15 +msgid "Appearance" +msgstr "გარეგნობა" + +#: bottles/frontend/ui/preferences.blp:18 +msgid "Dark Mode" +msgstr "მუქი რეჟიმი" + +#: bottles/frontend/ui/preferences.blp:19 +msgid "Whether Bottles should use the dark color scheme." +msgstr "" + +#: bottles/frontend/ui/preferences.blp:29 +msgid "Show Update Date" +msgstr "" + +#: bottles/frontend/ui/preferences.blp:30 +msgid "Whether to show the update date in the bottle list." +msgstr "" + +#: bottles/frontend/ui/preferences.blp:43 +#: data/com.usebottles.bottles.gschema.xml:51 +msgid "Notifications" +msgstr "გაფრთხილებები" + +#: bottles/frontend/ui/preferences.blp:44 +msgid "Show notifications for downloads and installs." +msgstr "" + +#: bottles/frontend/ui/preferences.blp:53 +msgid "Temp Files" +msgstr "" + +#: bottles/frontend/ui/preferences.blp:54 +msgid "Clean temp files when Bottles launches?" +msgstr "" + +#: bottles/frontend/ui/preferences.blp:63 +msgid "Close Bottles After Starting a Program" +msgstr "" + +#: bottles/frontend/ui/preferences.blp:64 +msgid "Close Bottles after starting a program from the file manager." +msgstr "" + +#: bottles/frontend/ui/preferences.blp:74 +msgid "Integrations" +msgstr "ინტეგრაციები" + +#: bottles/frontend/ui/preferences.blp:77 +msgid "Steam Proton Prefixes" +msgstr "" + +#: bottles/frontend/ui/preferences.blp:78 +msgid "List and manage Steam Proton prefixes." +msgstr "" + +#: bottles/frontend/ui/preferences.blp:98 +msgid "List Steam Apps in Programs List" +msgstr "" + +#: bottles/frontend/ui/preferences.blp:99 +msgid "Requires Steam for Windows installed in the bottle." +msgstr "" + +#: bottles/frontend/ui/preferences.blp:108 +msgid "List Epic Games in Programs List" +msgstr "" + +#: bottles/frontend/ui/preferences.blp:109 +msgid "Requires Epic Games Store installed in the bottle." +msgstr "" + +#: bottles/frontend/ui/preferences.blp:118 +msgid "List Ubisoft Games in Programs List" +msgstr "" + +#: bottles/frontend/ui/preferences.blp:119 +msgid "Requires Ubisoft Connect installed in the bottle." +msgstr "" + +#: bottles/frontend/ui/preferences.blp:129 +msgid "Advanced" +msgstr "დამატებით" + +#: bottles/frontend/ui/preferences.blp:132 +msgid "Pre-Release" +msgstr "პრერელიზი" + +#: bottles/frontend/ui/preferences.blp:133 +msgid "Display unstable versions of runners and components." +msgstr "" + +#: bottles/frontend/ui/preferences.blp:142 +msgid "Force Offline Mode" +msgstr "" + +#: bottles/frontend/ui/preferences.blp:143 +msgid "" +"Force disable any network activity even with available network connection." +msgstr "" + +#: bottles/frontend/ui/preferences.blp:152 +msgid "Bottles Directory" +msgstr "" + +#: bottles/frontend/ui/preferences.blp:153 +msgid "Directory that contains the data of your Bottles." +msgstr "" + +#: bottles/frontend/ui/preferences.blp:188 +msgid "Runners" +msgstr "გამშვებები" + +#: bottles/frontend/ui/preferences.blp:202 +msgid "Bottles is running in offline mode, so runners are not available." +msgstr "" + +#: bottles/frontend/ui/preferences.blp:236 +msgid "DLL Components" +msgstr "" + +#: bottles/frontend/ui/preferences.blp:250 +msgid "Bottles is running in offline mode, so DLLs are not available." +msgstr "" + +#: bottles/frontend/ui/preferences.blp:282 +msgid "DXVK-NVAPI" +msgstr "DXVK-NVAPI" + +#: bottles/frontend/ui/preferences.blp:295 +msgid "Core" +msgstr "ძირითადი ბირთვული მოდულები" + +#: bottles/frontend/ui/preferences.blp:299 +msgid "Runtime" +msgstr "გაშვების დრო" + +#: bottles/frontend/ui/preferences.blp:303 +msgid "WineBridge" +msgstr "WineBridge" + +#: bottles/frontend/ui/preferences.blp:309 +#: data/com.usebottles.bottles.gschema.xml:71 +msgid "Experiments" +msgstr "ექსპერიმენტები" + +#: bottles/frontend/ui/preferences.blp:312 +msgid "" +"These features are under heavy development and may be unstable, expect bugs " +"and breakage." +msgstr "" + +#: bottles/frontend/ui/preferences.blp:315 +msgid "Sandbox per bottle" +msgstr "" + +#: bottles/frontend/ui/preferences.blp:316 +msgid "In early development." +msgstr "" + +#: bottles/frontend/ui/program-entry.blp:19 +msgid "Launch with Terminal" +msgstr "" + +#: bottles/frontend/ui/program-entry.blp:25 +msgid "Browse Path" +msgstr "" + +#: bottles/frontend/ui/program-entry.blp:39 +msgid "Change Launch Options…" +msgstr "" + +#: bottles/frontend/ui/program-entry.blp:43 +msgid "Add to Library" +msgstr "" + +#: bottles/frontend/ui/program-entry.blp:47 +msgid "Add Desktop Entry" +msgstr "" + +#: bottles/frontend/ui/program-entry.blp:51 +msgid "Add to Steam" +msgstr "" + +#: bottles/frontend/ui/program-entry.blp:55 +msgid "Rename…" +msgstr "სახელის გადარქმევა…" + +#: bottles/frontend/ui/program-entry.blp:62 +msgid "Hide Program" +msgstr "" + +#: bottles/frontend/ui/program-entry.blp:66 +msgid "Show Program" +msgstr "" + +#: bottles/frontend/ui/program-entry.blp:70 +msgid "Remove from List" +msgstr "" + +#: bottles/frontend/ui/program-entry.blp:83 +msgid "Program name" +msgstr "" + +#. Translators: id as identification +#: bottles/frontend/ui/state-entry.blp:8 +msgid "State id" +msgstr "" + +#: bottles/frontend/ui/state-entry.blp:9 +msgid "State comment" +msgstr "" + +#: bottles/frontend/ui/state-entry.blp:16 +msgid "Restore this Snapshot" +msgstr "" + +#: bottles/frontend/ui/task-entry.blp:19 +msgid "Delete message" +msgstr "შეტყობინების წაშლა" + +#: bottles/frontend/ui/window.blp:40 +msgid "Main Menu" +msgstr "მთავარი მენიუ" + +#: bottles/frontend/ui/window.blp:54 +msgid "" +"You don't seem connected to the internet. Without it you will not be able to " +"download essential components. Click this icon when you have reestablished " +"the connection." +msgstr "" + +#: bottles/frontend/ui/window.blp:79 +msgid "Import…" +msgstr "შემოტანა…" + +#: bottles/frontend/ui/window.blp:91 +msgid "Help" +msgstr "დახმარება" + +#: bottles/frontend/ui/window.blp:96 +msgid "About Bottles" +msgstr "" + +#: bottles/frontend/views/bottle_details.py:193 +#, python-brace-format +msgid "File \"{0}\" is not a .exe or .msi file" +msgstr "" + +#: bottles/frontend/views/bottle_details.py:209 +#, python-format +msgid "Updated: %s" +msgstr "განახლებულია: %s" + +#: bottles/frontend/views/bottle_details.py:270 +#, python-brace-format +msgid "\"{0}\" added" +msgstr "" + +#: bottles/frontend/views/bottle_details.py:273 +#: bottles/frontend/views/bottle_details.py:401 +#: bottles/frontend/views/list.py:128 +msgid "Select Executable" +msgstr "" + +#: bottles/frontend/views/bottle_details.py:276 +msgid "Add" +msgstr "დამატება" + +#: bottles/frontend/views/bottle_details.py:349 +msgid "Hide Hidden Programs" +msgstr "" + +#: bottles/frontend/views/bottle_details.py:386 +#: bottles/frontend/widgets/library.py:163 +#: bottles/frontend/widgets/program.py:184 +#, python-brace-format +msgid "Launching \"{0}\"…" +msgstr "" + +#: bottles/frontend/views/bottle_details.py:416 +msgid "Be Aware of Sandbox" +msgstr "" + +#: bottles/frontend/views/bottle_details.py:417 +msgid "" +"Bottles is running in a sandbox, a restricted permission environment needed " +"to keep you safe. If the program won't run, consider moving inside the " +"bottle (3 dots icon on the top), then launch from there." +msgstr "" + +#: bottles/frontend/views/bottle_details.py:419 +#: bottles/frontend/views/bottle_details.py:528 +#: bottles/frontend/windows/main_window.py:223 +msgid "_Dismiss" +msgstr "_მოცილება" + +#: bottles/frontend/views/bottle_details.py:432 +msgid "Select the location where to save the backup config" +msgstr "" + +#: bottles/frontend/views/bottle_details.py:434 +msgid "Export" +msgstr "გატანა" + +#: bottles/frontend/views/bottle_details.py:436 +msgid "Select the location where to save the backup archive" +msgstr "" + +#: bottles/frontend/views/bottle_details.py:438 +msgid "Backup" +msgstr "მარქაფი" + +#: bottles/frontend/views/bottle_details.py:443 +#, python-brace-format +msgid "Backup created for \"{0}\"" +msgstr "" + +#: bottles/frontend/views/bottle_details.py:445 +#, python-brace-format +msgid "Backup failed for \"{0}\"" +msgstr "" + +#: bottles/frontend/views/bottle_details.py:504 +msgid "Are you sure you want to permanently delete \"{}\"?" +msgstr "" + +#: bottles/frontend/views/bottle_details.py:505 +msgid "" +"This will permanently delete all programs and settings associated with it." +msgstr "" + +#: bottles/frontend/views/bottle_details.py:508 +#: bottles/frontend/views/bottle_preferences.py:747 +msgid "_Delete" +msgstr "_წაშლა" + +#: bottles/frontend/views/bottle_details.py:524 +msgid "Missing Runner" +msgstr "" + +#: bottles/frontend/views/bottle_details.py:525 +msgid "" +"The runner requested by this bottle is missing. Install it through the " +"Bottles preferences or choose a new one to run applications." +msgstr "" + +#: bottles/frontend/views/bottle_details.py:600 +msgid "Are you sure you want to force stop all processes?" +msgstr "" + +#: bottles/frontend/views/bottle_details.py:601 +msgid "This can cause data loss, corruption, and programs to malfunction." +msgstr "" + +#: bottles/frontend/views/bottle_details.py:604 +msgid "Force _Stop" +msgstr "ძალით _გაჩერება" + +#: bottles/frontend/views/bottle_preferences.py:195 +msgid "This feature is unavailable on your system." +msgstr "" + +#: bottles/frontend/views/bottle_preferences.py:196 +msgid "{} To add this feature, please run flatpak install" +msgstr "" + +#: bottles/frontend/views/bottle_preferences.py:246 +msgid "This bottle name is already in use." +msgstr "" + +#: bottles/frontend/views/bottle_preferences.py:301 +#: bottles/frontend/windows/launchoptions.py:240 +msgid "Select Working Directory" +msgstr "აირჩიეთ სამუშაო საქაღალდე" + +#: bottles/frontend/views/bottle_preferences.py:422 +msgid "Directory that contains the data of \"{}\"." +msgstr "" + +#: bottles/frontend/views/bottle_preferences.py:743 +msgid "Are you sure you want to delete all snapshots?" +msgstr "" + +#: bottles/frontend/views/bottle_preferences.py:744 +msgid "This will delete all snapshots but keep your files." +msgstr "" + +#: bottles/frontend/views/bottle_versioning.py:90 +msgid "Please migrate to the new Versioning system to create new states." +msgstr "" + +#: bottles/frontend/views/details.py:153 +msgid "Installers" +msgstr "დაყენების პროგრამები" + +#: bottles/frontend/views/details.py:234 +msgid "Operations in progress, please wait." +msgstr "" + +#: bottles/frontend/views/details.py:239 +msgid "Return to your bottles." +msgstr "" + +#: bottles/frontend/views/importer.py:92 +msgid "Backup imported successfully" +msgstr "" + +#: bottles/frontend/views/importer.py:94 +msgid "Import failed" +msgstr "შემოტანა ჩავარდა" + +#: bottles/frontend/views/importer.py:108 +#: bottles/frontend/views/importer.py:145 +msgid "Importing backup…" +msgstr "" + +#: bottles/frontend/views/importer.py:117 +msgid "Select a Backup Archive" +msgstr "" + +#: bottles/frontend/views/importer.py:120 +#: bottles/frontend/views/importer.py:157 +msgid "Import" +msgstr "შემოტანა" + +#: bottles/frontend/views/importer.py:154 bottles/frontend/views/new.py:136 +msgid "Select a Configuration File" +msgstr "" + +#: bottles/frontend/views/list.py:60 bottles/frontend/views/list.py:66 +msgid "N/A" +msgstr "ა/მ" + +#. Set tooltip text +#: bottles/frontend/views/list.py:91 +#, python-brace-format +msgid "Run executable in \"{self.config.Name}\"" +msgstr "" + +#: bottles/frontend/views/list.py:118 +#, python-brace-format +msgid "Launching \"{0}\" in \"{1}\"…" +msgstr "" + +#: bottles/frontend/views/list.py:235 +msgid "Your Bottles" +msgstr "" + +#: bottles/frontend/views/loading.py:46 +#, python-brace-format +msgid "Downloading ~{0} of packages…" +msgstr "" + +#: bottles/frontend/views/loading.py:47 +#, python-brace-format +msgid "Fetched {0} of {1} packages" +msgstr "" + +#: bottles/frontend/views/new.py:157 +msgid "Select Bottle Directory" +msgstr "" + +#: bottles/frontend/views/new.py:176 +msgid "Creating Bottle…" +msgstr "" + +#: bottles/frontend/views/new.py:221 +msgid "Unable to Create Bottle" +msgstr "" + +#: bottles/frontend/views/new.py:225 +msgid "Bottle failed to create with one or more errors." +msgstr "" + +#. Show success +#: bottles/frontend/views/new.py:232 +msgid "Bottle Created" +msgstr "" + +#: bottles/frontend/views/new.py:233 +#, python-brace-format +msgid "\"{0}\" was created successfully." +msgstr "" + +#: bottles/frontend/views/preferences.py:134 +msgid "Steam was not found or Bottles does not have enough permissions." +msgstr "" + +#: bottles/frontend/views/preferences.py:187 +msgid "Select Bottles Path" +msgstr "" + +#: bottles/frontend/views/preferences.py:209 +msgid "Relaunch Bottles?" +msgstr "" + +#: bottles/frontend/views/preferences.py:210 +msgid "" +"Bottles will need to be relaunched to use this directory.\n" +"\n" +"Be sure to close every program launched from Bottles before relaunching " +"Bottles, as not doing so can cause data loss, corruption and programs to " +"malfunction." +msgstr "" + +#: bottles/frontend/views/preferences.py:213 +msgid "_Relaunch" +msgstr "_თავიდან გაშვება" + +#: bottles/frontend/views/preferences.py:306 +msgid "Based on Valve's Wine, includes Staging and Proton patches." +msgstr "" + +#: bottles/frontend/views/preferences.py:307 +msgid "Based on Wine upstream, includes Staging and Proton patches." +msgstr "" + +#: bottles/frontend/views/preferences.py:308 +msgid "" +"Based on the most recent bleeding-edge Valve's Proton Experimental Wine, " +"includes Staging and custom patches. This is meant to be used with non-steam " +"games outside of Steam." +msgstr "" + +#: bottles/frontend/views/preferences.py:311 +msgid "" +"Based on Wine upstream, Staging, Staging-TkG and Proton patchset optionally " +"available." +msgstr "" + +#: bottles/frontend/views/preferences.py:313 +msgid "Based on Wine upstream, includes Staging patches." +msgstr "" + +#: bottles/frontend/views/preferences.py:314 +msgid "" +"Based on most recent bleeding-edge Valve's Proton Experimental, includes " +"Staging and custom patches. Requires the Steam Runtime turned on." +msgstr "" + +#: bottles/frontend/views/preferences.py:317 +msgid "Other Wine runners" +msgstr "" + +#: bottles/frontend/views/preferences.py:318 +msgid "Other Proton runners" +msgstr "" + +#: bottles/frontend/widgets/component.py:76 +msgid "Upgrade" +msgstr "განახლება" + +#: bottles/frontend/widgets/component.py:142 +msgid "Installing…" +msgstr "დაყენება…" + +#: bottles/frontend/widgets/dependency.py:107 +#: bottles/frontend/widgets/installer.py:81 +#, python-brace-format +msgid "Manifest for {0}" +msgstr "" + +#: bottles/frontend/widgets/dependency.py:172 +#, python-brace-format +msgid "\"{0}\" uninstalled" +msgstr "" + +#: bottles/frontend/widgets/dependency.py:174 +#, python-brace-format +msgid "\"{0}\" installed" +msgstr "" + +#: bottles/frontend/widgets/dependency.py:188 +#, python-brace-format +msgid "\"{0}\" failed to install" +msgstr "" + +#: bottles/frontend/widgets/importer.py:68 +#, python-brace-format +msgid "\"{0}\" imported" +msgstr "" + +#: bottles/frontend/widgets/installer.py:49 +msgid "" +"This application may work poorly. The installer was configured to provide " +"the best possible experience, but expect glitches, instability and lack of " +"working features." +msgstr "" + +#: bottles/frontend/widgets/installer.py:50 +msgid "" +"This program works with noticeable glitches, but these glitches do not " +"affect the application's functionality." +msgstr "" + +#: bottles/frontend/widgets/installer.py:51 +msgid "This program works with minor glitches." +msgstr "" + +#: bottles/frontend/widgets/installer.py:52 +msgid "This program works perfectly." +msgstr "" + +#: bottles/frontend/widgets/installer.py:90 +#, python-brace-format +msgid "Review for {0}" +msgstr "" + +#: bottles/frontend/widgets/library.py:176 +#: bottles/frontend/widgets/program.py:194 +#, python-brace-format +msgid "Stopping \"{0}\"…" +msgstr "" + +#: bottles/frontend/widgets/program.py:190 +#, python-brace-format +msgid "Launching \"{0}\" with Steam…" +msgstr "" + +#: bottles/frontend/widgets/program.py:214 +#, python-brace-format +msgid "\"{0}\" hidden" +msgstr "" + +#: bottles/frontend/widgets/program.py:216 +#, python-brace-format +msgid "\"{0}\" showed" +msgstr "" + +#: bottles/frontend/widgets/program.py:242 +#, python-brace-format +msgid "\"{0}\" removed" +msgstr "" + +#: bottles/frontend/widgets/program.py:274 +#, python-brace-format +msgid "\"{0}\" renamed to \"{1}\"" +msgstr "" + +#: bottles/frontend/widgets/program.py:297 +#, python-brace-format +msgid "Desktop Entry created for \"{0}\"" +msgstr "" + +#: bottles/frontend/widgets/program.py:313 +#, python-brace-format +msgid "\"{0}\" added to your library" +msgstr "" + +#: bottles/frontend/widgets/program.py:331 +#, python-brace-format +msgid "\"{0}\" added to your Steam library" +msgstr "" + +#: bottles/frontend/windows/crash.py:33 +msgid "Show report" +msgstr "" + +#: bottles/frontend/windows/crash.py:80 +msgid "" +" This issue was reported 5 times and cannot be sent again.\n" +" Report your feedback in one of the below existing reports." +msgstr "" + +#: bottles/frontend/windows/display.py:102 +msgid "Updating display settings, please wait…" +msgstr "" + +#: bottles/frontend/windows/display.py:114 +msgid "Display settings updated" +msgstr "" + +#: bottles/frontend/windows/dlloverrides.py:136 +msgid "No overrides found." +msgstr "" + +#: bottles/frontend/windows/drives.py:71 +msgid "Select Drive Path" +msgstr "" + +#: bottles/frontend/windows/envvars.py:135 +msgid "No environment variables defined." +msgstr "" + +#: bottles/frontend/windows/exclusionpatterns.py:105 +msgid "No exclusion patterns defined." +msgstr "" + +#: bottles/frontend/windows/generic.py:24 +msgid "An error has occurred." +msgstr "აღმოჩენილია შეცდომა." + +#: bottles/frontend/windows/generic.py:91 +#: bottles/frontend/windows/generic.py:137 +#: bottles/frontend/windows/generic.py:182 +msgid "Copy to clipboard" +msgstr "ბუფერში კოპირება" + +#: bottles/frontend/windows/installer.py:62 +msgid "Select Resource File" +msgstr "" + +#: bottles/frontend/windows/installer.py:109 +msgid "Installing Windows dependencies…" +msgstr "" + +#: bottles/frontend/windows/installer.py:110 +msgid "Configuring the bottle…" +msgstr "" + +#: bottles/frontend/windows/installer.py:111 +msgid "Processing installer steps…" +msgstr "" + +#: bottles/frontend/windows/installer.py:112 +msgid "Installing the {}…" +msgstr "" + +#: bottles/frontend/windows/installer.py:113 +msgid "Performing final checks…" +msgstr "" + +#: bottles/frontend/windows/installer.py:117 +#, python-brace-format +msgid "Installing {0}…" +msgstr "" + +#: bottles/frontend/windows/installer.py:119 +#, python-brace-format +msgid "{0} is now available in the programs view." +msgstr "" + +#: bottles/frontend/windows/installer.py:166 +msgid "Installer failed with unknown error" +msgstr "" + +#: bottles/frontend/windows/launchoptions.py:55 +#, python-brace-format +msgid "{0} is already disabled for this bottle." +msgstr "" + +#: bottles/frontend/windows/launchoptions.py:56 +msgid "This setting is different from the bottle's default." +msgstr "" + +#: bottles/frontend/windows/launchoptions.py:214 +msgid "Select Script" +msgstr "" + +#: bottles/frontend/windows/main_window.py:220 +msgid "Custom Bottles Path not Found" +msgstr "" + +#: bottles/frontend/windows/main_window.py:221 +msgid "" +"Falling back to default path. No bottles from the given path will be listed." +msgstr "" + +#: data/com.usebottles.bottles.desktop.in.in:3 +msgid "@APP_NAME@" +msgstr "@APP_NAME@" + +#: data/com.usebottles.bottles.desktop.in.in:4 +#: data/com.usebottles.bottles.metainfo.xml.in:8 +msgid "Run Windows Software" +msgstr "" + +#: data/com.usebottles.bottles.desktop.in.in:13 +msgid "wine;windows;" +msgstr "wine;windows;" + +#: data/com.usebottles.bottles.gschema.xml:6 +msgid "Flatpak migration" +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:7 +msgid "Toggle the Flatpak migration dialog." +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:11 +msgid "Dark theme" +msgstr "ბნელი თემა" + +#: data/com.usebottles.bottles.gschema.xml:12 +msgid "Force the use of dark theme." +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:16 +msgid "Force Offline" +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:17 +msgid "" +"\"Force disable any network activity even with available network connection." +"\"" +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:21 +msgid "Toggle update date in list" +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:22 +msgid "Toggle the update date in list of bottles." +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:26 +msgid "Steam apps listing" +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:27 +msgid "Toggle steam apps listing." +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:31 +msgid "Epic Games listing" +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:32 +msgid "Toggle epic games listing." +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:36 +msgid "Ubisoft Connect listing" +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:37 +msgid "Toggle ubisoft connect listing." +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:41 +msgid "Window width" +msgstr "ფანჯრის სიგანე" + +#: data/com.usebottles.bottles.gschema.xml:42 +msgid "Change the window width." +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:46 +msgid "Window height" +msgstr "ფანჯრის სიმაღლე" + +#: data/com.usebottles.bottles.gschema.xml:47 +msgid "Change the window height." +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:52 +msgid "Show notifications." +msgstr "გაფრთხილებების ჩვენება." + +#: data/com.usebottles.bottles.gschema.xml:56 +msgid "Temp cleaning" +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:57 +msgid "Clean the temp path when booting the system." +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:61 +msgid "Release Candidate" +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:62 +msgid "Toggle release candidate for runners." +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:66 +msgid "Startup view" +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:67 +msgid "Choose which view the application should be started in." +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:72 +msgid "" +"Toggle experimental features such as versioning and installers. Release " +"candidate for runners." +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:76 +msgid "Steam Proton Support" +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:77 +msgid "Toggle Steam Proton prefixes support." +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:81 +msgid "Experiments:sandbox" +msgstr "ექსპერიმენტული სენდბოქსი" + +#: data/com.usebottles.bottles.gschema.xml:82 +msgid "Toggle experimental Sandbox per bottle." +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:86 +msgid "Automatically close Bottles" +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:87 +msgid "Close Bottles after starting an executable from the file manager." +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:91 +msgid "Show sandbox warning" +msgstr "" + +#: data/com.usebottles.bottles.gschema.xml:92 +msgid "Toggle sandbox warning." +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:11 +msgid "" +"Bottles lets you run Windows software on Linux, such as applications and " +"games. It introduces a workflow that helps you organize by categorizing each " +"software to your liking. Bottles provides several tools and integrations to " +"help you manage and optimize your applications." +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:12 +msgid "Features:" +msgstr "თვისებები:" + +#: data/com.usebottles.bottles.metainfo.xml.in:14 +msgid "Use pre-configured environments as a base" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:15 +msgid "Change runners for any bottle" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:16 +msgid "Various optimizations and options for gaming" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:17 +msgid "Repair in case software or bottle is broken" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:18 +msgid "Install various known dependencies" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:19 +msgid "Integrated task manager to manage and monitor processes" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:20 +msgid "Backup and restore" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:69 +msgid "Fix runners and components from not showing when prereleases are off" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:70 +msgid "Fix Steam runtime compatibility with Wine runners" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:75 +msgid "A few bug fixes" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:80 +msgid "Support for the double-DLL VKD3D" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:81 +msgid "Updated Flatpak runtime" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:82 +msgid "Minor improvement and fixes to the library" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:83 +msgid "Fix the Steam link not being correct" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:84 +msgid "Download stable component by default" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:85 +msgid "Make window remember dimensions" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:90 +msgid "Update metadata information" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:95 +msgid "Add more update information and correct release notes version" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:100 +msgid "Fixed \"Add to Steam\" button" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:101 +msgid "Fixed BottleConfig being not serializable" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:102 +msgid "Fixed Patool double extraction failing" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:107 +msgid "Correct version" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:112 +msgid "Fix crash when creating a bottle" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:117 +msgid "Major change: Redesign New Bottle interface" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:118 +msgid "Quality of life improvements:" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:120 +msgid "Replace emote-love icon with a library in library page" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:121 +msgid "Add toast for \"Run Executable\"" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:123 +msgid "Bug fixes:" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:125 +msgid "Adding a shortcut to Steam resulted in an error" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:126 +msgid "Importing backups resulted an error" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:127 +msgid "Steam Runtime automatically enabled when using wine-ge-custom" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:128 +msgid "" +"Various library-related fixes, like empty covers, and crashes related to " +"missing entries" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:129 +msgid "Fix various issues related to text encoding" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:136 +msgid "Fix error when downloading if Bottles isn't run from terminal" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:143 +msgid "Correct version date" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:144 +msgid "Hide NVIDIA-related critical errors on non-NVIDIA systems" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:151 +msgid "Gamescope improvements and fixes" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:152 +msgid "Dependency installation is faster and more stable" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:153 +msgid "The health check has more information for faster debugging" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:154 +msgid "NVAPI has a lot of fixes and is more stable, should now work properly" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:155 +msgid "Fix crash when downloading a component" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:156 +msgid "Backend code improvement by avoiding spin-lock" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:157 +msgid "More variables for installer scripting" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:158 +msgid "Fix onboard dialog showing \"All ready\" while it was not ready" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:159 +msgid "Improvement to build system" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:160 +msgid "Enabling VKD3D by default when creating bottles for gaming" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:161 +msgid "Fix crashes when reading Steam files with bad encodings" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:162 +msgid "" +"Fix components not updated correctly in the UI after installation/" +"uninstallation" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:163 +msgid "More FSR fixes" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:164 +msgid "" +"Fix the issue when a program closes after it was launched from \"Run " +"executable\"" +msgstr "" + +#: data/com.usebottles.bottles.metainfo.xml.in:165 +msgid "and many, many, many more!" +msgstr "" diff --git a/po/lt.po b/po/lt.po index 17679293e73..00a21d0007b 100644 --- a/po/lt.po +++ b/po/lt.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: bottles\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-03-27 13:50+0530\n" -"PO-Revision-Date: 2022-06-20 16:30+0000\n" -"Last-Translator: Tillo \n" +"PO-Revision-Date: 2024-10-27 02:15+0000\n" +"Last-Translator: arnas \n" "Language-Team: Lithuanian \n" "Language: lt\n" @@ -19,7 +19,7 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n % 10 == 1 && (n % 100 < 11 || n % 100 > " "19)) ? 0 : ((n % 10 >= 2 && n % 10 <= 9 && (n % 100 < 11 || n % 100 > 19)) ? " "1 : 2);\n" -"X-Generator: Weblate 4.13.1-dev\n" +"X-Generator: Weblate 5.8.2-dev\n" #: bottles/backend/managers/backup.py:48 bottles/backend/managers/backup.py:95 msgid "No path specified" @@ -28,7 +28,7 @@ msgstr "" #: bottles/backend/managers/backup.py:56 #, python-brace-format msgid "Backup {0}" -msgstr "" +msgstr "Atsarginė kopija {0}" #: bottles/backend/managers/backup.py:101 #, python-brace-format @@ -37,11 +37,11 @@ msgstr "" #: bottles/backend/managers/manager.py:1057 msgid "Fail to install components, tried 3 times." -msgstr "" +msgstr "Nepavyko įdiegti komponentų, bandyta 3 kartus." #: bottles/backend/managers/manager.py:1068 msgid "Missing essential components. Installing…" -msgstr "" +msgstr "Trūksta reikalingų komponentų. Diegiama…" #: bottles/backend/managers/manager.py:1145 msgid "Failed to create bottle directory." @@ -53,11 +53,11 @@ msgstr "" #: bottles/backend/managers/manager.py:1162 msgid "Generating bottle configuration…" -msgstr "" +msgstr "Generuojama „bottle“ konfigūracija…" #: bottles/backend/managers/manager.py:1185 msgid "Template found, applying…" -msgstr "" +msgstr "Rastas šablonas, pritaikoma…" #. execute wineboot on the bottle path #: bottles/backend/managers/manager.py:1197 @@ -66,7 +66,7 @@ msgstr "" #: bottles/backend/managers/manager.py:1199 msgid "Wine config updated!" -msgstr "" +msgstr "Wine konfigūracija atnaujinta!" #: bottles/backend/managers/manager.py:1207 msgid "Running as Flatpak, sandboxing userdir…" @@ -78,45 +78,45 @@ msgstr "" #: bottles/backend/managers/manager.py:1250 msgid "Setting Windows version…" -msgstr "" +msgstr "Nustatoma Windows versija…" #: bottles/backend/managers/manager.py:1260 msgid "Apply CMD default settings…" -msgstr "" +msgstr "Pritaikomi numatytieji CMD nustatymai…" #: bottles/backend/managers/manager.py:1268 msgid "Optimizing environment…" -msgstr "" +msgstr "Vykdoma aplinkos optimizacija…" #: bottles/backend/managers/manager.py:1279 #, python-brace-format msgid "Applying environment: {0}…" -msgstr "" +msgstr "Pritaikoma aplinka: {0}…" #: bottles/backend/managers/manager.py:1289 msgid "(!) Using a custom environment recipe…" -msgstr "" +msgstr "(!) Naudojamas pritaikytos aplinkos receptas…" #: bottles/backend/managers/manager.py:1292 msgid "(!) Recipe not not found or not valid…" -msgstr "" +msgstr "(!) Receptas nerastas arba klaidingas…" #: bottles/backend/managers/manager.py:1309 msgid "Installing DXVK…" -msgstr "" +msgstr "Diegiama DXVK…" #: bottles/backend/managers/manager.py:1317 msgid "Installing VKD3D…" -msgstr "" +msgstr "Diegiama VKD3D…" #: bottles/backend/managers/manager.py:1326 msgid "Installing DXVK-NVAPI…" -msgstr "" +msgstr "Diegiama DXVK-NVAPI…" #: bottles/backend/managers/manager.py:1335 #, python-format msgid "Installing dependency: %s …" -msgstr "" +msgstr "Diegiama priklausomybė: %s …" #: bottles/backend/managers/manager.py:1345 msgid "Creating versioning state 0…" @@ -124,11 +124,11 @@ msgstr "" #: bottles/backend/managers/manager.py:1353 msgid "Finalizing…" -msgstr "" +msgstr "Užbaigiama…" #: bottles/backend/managers/manager.py:1364 msgid "Caching template…" -msgstr "" +msgstr "Išsaugomas šablonas…" #: bottles/backend/managers/versioning.py:83 msgid "Committing state …" @@ -141,24 +141,24 @@ msgstr "" #: bottles/backend/managers/versioning.py:96 #, python-brace-format msgid "New state [{0}] created successfully!" -msgstr "" +msgstr "Nauja būsena [{0}] sėkmingai sukurta!" #: bottles/backend/managers/versioning.py:123 msgid "States list retrieved successfully!" -msgstr "" +msgstr "Sėkmingai gautas būsenų sąrašas!" #: bottles/backend/managers/versioning.py:153 #, python-brace-format msgid "State {0} restored successfully!" -msgstr "" +msgstr "Būsena {0} sėkmingai atkurta!" #: bottles/backend/managers/versioning.py:155 msgid "Restoring state {} …" -msgstr "" +msgstr "Atkuriama būsena {} …" #: bottles/backend/managers/versioning.py:162 msgid "State not found" -msgstr "" +msgstr "Būsena nerasta" #: bottles/backend/managers/versioning.py:168 msgid "State {} is already the active state" @@ -166,7 +166,7 @@ msgstr "" #: bottles/frontend/main.py:112 msgid "Show version" -msgstr "" +msgstr "Rodyti versiją" #: bottles/frontend/main.py:120 msgid "Executable path" @@ -174,28 +174,28 @@ msgstr "" #: bottles/frontend/main.py:128 msgid "lnk path" -msgstr "" +msgstr "lnk path" #: bottles/frontend/main.py:136 bottles/frontend/ui/library-entry.blp:118 #: bottles/frontend/ui/list-entry.blp:5 msgid "Bottle name" -msgstr "" +msgstr "„Bottle“ pavadinimas" #: bottles/frontend/main.py:144 msgid "Pass arguments" -msgstr "" +msgstr "Siųsti argumentus" #: bottles/frontend/main.py:203 msgid "Invalid URI (syntax: bottles:run//)" -msgstr "" +msgstr "Klaidingas URI (syntax: bottles:run//)" #: bottles/frontend/main.py:244 msgid "[Quit] request received." -msgstr "" +msgstr "[Quit] Prašymas gautas." #: bottles/frontend/main.py:253 msgid "[Help] request received." -msgstr "" +msgstr "[Help] Prašymas gautas." #: bottles/frontend/main.py:261 msgid "[Refresh] request received." @@ -203,25 +203,25 @@ msgstr "" #: bottles/frontend/main.py:294 msgid "Donate" -msgstr "" +msgstr "Aukoti" #: bottles/frontend/main.py:299 msgid "Third-Party Libraries and Special Thanks" -msgstr "" +msgstr "Trečiųjų šalių bibliotekos bei ypatingas Ačiū" #: bottles/frontend/main.py:325 msgid "Sponsored and Funded by" -msgstr "" +msgstr "Remia ir finansuoja" # Translators: Bottles is a proper noun referring to the app #: bottles/frontend/ui/about.blp:5 msgid "Copyright © 2017 Bottles Developers" -msgstr "" +msgstr "Saugomos autorinės teisės © 2017 Bottles kūrėjai" # Translators: Bottles is a proper noun referring to the app #: bottles/frontend/ui/about.blp:10 msgid "Bottles Developers" -msgstr "" +msgstr "„Bottles“ kūrėjai" #: bottles/frontend/ui/about.blp:12 msgid "translator_credits" @@ -229,17 +229,17 @@ msgstr "" #: bottles/frontend/ui/component-entry.blp:4 msgid "Component version" -msgstr "" +msgstr "Komponento versija" #: bottles/frontend/ui/component-entry.blp:12 #: bottles/frontend/ui/dependency-entry.blp:29 #: bottles/frontend/ui/program-entry.blp:77 msgid "Uninstall" -msgstr "" +msgstr "Išinstaliuoti" #: bottles/frontend/ui/component-entry.blp:23 msgid "Browse Files" -msgstr "" +msgstr "Naršyti failus" #: bottles/frontend/ui/component-entry.blp:34 msgid "" @@ -282,7 +282,7 @@ msgstr "" #: bottles/frontend/ui/dependency-entry.blp:51 msgid "Category" -msgstr "" +msgstr "Kategorija" #: bottles/frontend/ui/dependency-entry.blp:64 msgid "Download & Install this Dependency" @@ -293,6 +293,8 @@ msgid "" "An installation error occurred. Restart Bottles to read the Crash Report or " "run it via terminal to read the output." msgstr "" +"Iškilo diegimo klaida. Perkraukite „Bottles“ jei norite skaityti klaidos " +"ataskaitą, arba paleiskite per terminalą norint matyti išvestį." #: bottles/frontend/ui/dependency-entry.blp:93 msgid "Dependency Menu" @@ -304,7 +306,7 @@ msgstr "" #: bottles/frontend/ui/details-bottle.blp:24 msgid "Browse Files…" -msgstr "" +msgstr "Naršyti failus…" #: bottles/frontend/ui/details-bottle.blp:28 msgid "Duplicate Bottle…" @@ -328,20 +330,20 @@ msgstr "" #: bottles/frontend/ui/details-bottle.blp:38 msgid "Export Configuration…" -msgstr "" +msgstr "Eksportuoti konfigūraciją…" #: bottles/frontend/ui/details-bottle.blp:45 #: bottles/frontend/views/bottle_details.py:344 msgid "Show Hidden Programs" -msgstr "" +msgstr "Rodyti paslėptas programas" #: bottles/frontend/ui/details-bottle.blp:49 msgid "Search for new programs" -msgstr "" +msgstr "Ieškoti naujų programų" #: bottles/frontend/ui/details-bottle.blp:56 msgid "Delete Bottle…" -msgstr "" +msgstr "Ištrinti Bottle…" #: bottles/frontend/ui/details-bottle.blp:73 #: bottles/frontend/ui/details-dependencies.blp:99 @@ -351,32 +353,32 @@ msgstr "" #: bottles/frontend/ui/details-bottle.blp:90 msgid "Force Stop all Processes" -msgstr "" +msgstr "Priverstinai sustabdyti visus procesus" #: bottles/frontend/ui/details-bottle.blp:94 msgid "Simulate a Windows system shutdown." -msgstr "" +msgstr "Windows sistemos išjungimo simuliacija." #: bottles/frontend/ui/details-bottle.blp:95 msgid "Shutdown" -msgstr "" +msgstr "Išjungti" #: bottles/frontend/ui/details-bottle.blp:99 msgid "Simulate a Windows system reboot." -msgstr "" +msgstr "Windows sistemos perkrovimo simuliacija." #: bottles/frontend/ui/details-bottle.blp:100 msgid "Reboot" -msgstr "" +msgstr "Perkrauti" #: bottles/frontend/ui/details-bottle.blp:118 #: bottles/frontend/ui/dialog-launch-options.blp:6 msgid "Launch Options" -msgstr "" +msgstr "Paleidimo nustatymai" #: bottles/frontend/ui/details-bottle.blp:135 msgid "Run in Terminal" -msgstr "" +msgstr "Paleisti terminale" #: bottles/frontend/ui/details-bottle.blp:148 msgid "Drop files to execute them" @@ -384,16 +386,16 @@ msgstr "" #: bottles/frontend/ui/details-bottle.blp:164 msgid "My bottle" -msgstr "" +msgstr "Mano bottle" #: bottles/frontend/ui/details-bottle.blp:177 msgid "Win64" -msgstr "" +msgstr "Win64" #: bottles/frontend/ui/details-bottle.blp:189 #: bottles/frontend/ui/list-entry.blp:12 bottles/frontend/ui/new.blp:71 msgid "Environment" -msgstr "" +msgstr "Aplinka" #: bottles/frontend/ui/details-bottle.blp:201 #: bottles/frontend/ui/details-preferences.blp:14 @@ -404,16 +406,16 @@ msgstr "" #: bottles/frontend/ui/details-bottle.blp:213 #: bottles/frontend/ui/list-entry.blp:21 msgid "Versioning enabled for this bottle" -msgstr "" +msgstr "Įjungta versijos kontrolė šiam bottle" #: bottles/frontend/ui/details-bottle.blp:218 msgid "Versioning is active for this bottle." -msgstr "" +msgstr "Šio bottle versijos kontrolė yra aktyvi." #: bottles/frontend/ui/details-bottle.blp:227 #: bottles/frontend/ui/list-entry.blp:31 msgid "0" -msgstr "" +msgstr "0" #: bottles/frontend/ui/details-bottle.blp:247 msgid "Run Executable…" @@ -421,7 +423,7 @@ msgstr "" #: bottles/frontend/ui/details-bottle.blp:272 msgid "Programs" -msgstr "" +msgstr "Programos" #: bottles/frontend/ui/details-bottle.blp:275 msgid "" @@ -955,9 +957,8 @@ msgid "Operations" msgstr "" #: bottles/frontend/ui/dialog-bottle-picker.blp:4 -#, fuzzy msgid "Select Bottle" -msgstr "Bottles" +msgstr "Pasirinkti Bottle" #: bottles/frontend/ui/dialog-bottle-picker.blp:16 #: bottles/frontend/ui/dialog-proton-alert.blp:16 @@ -1945,7 +1946,7 @@ msgstr "" #: bottles/frontend/ui/preferences.blp:42 #: data/com.usebottles.bottles.gschema.xml:46 msgid "Notifications" -msgstr "" +msgstr "Pranešimai" #: bottles/frontend/ui/preferences.blp:43 msgid "Show notifications for downloads and installs." @@ -2058,7 +2059,7 @@ msgstr "" #: bottles/frontend/ui/preferences.blp:297 #: data/com.usebottles.bottles.gschema.xml:66 msgid "Experiments" -msgstr "" +msgstr "Eksperimentai" #: bottles/frontend/ui/preferences.blp:300 msgid "" @@ -2177,9 +2178,8 @@ msgstr "" #: bottles/frontend/views/bottle_details.py:270 #: bottles/frontend/views/bottle_details.py:398 #: bottles/frontend/views/list.py:128 -#, fuzzy msgid "Select Executable" -msgstr "Bottles" +msgstr "Pasirinkti Executable" #: bottles/frontend/views/bottle_details.py:273 msgid "Add" @@ -2412,9 +2412,8 @@ msgid "Select Bottles Path" msgstr "Bottles" #: bottles/frontend/views/preferences.py:198 -#, fuzzy msgid "Relaunch Bottles?" -msgstr "Bottles" +msgstr "Perkrauti Bottles?" #: bottles/frontend/views/preferences.py:199 msgid "" @@ -2603,9 +2602,8 @@ msgid "Copy to clipboard" msgstr "" #: bottles/frontend/windows/installer.py:62 -#, fuzzy msgid "Select Resource File" -msgstr "Bottles" +msgstr "Pasirinkite išteklių failą" #: bottles/frontend/windows/installer.py:109 msgid "Installing Windows dependencies…" @@ -2639,7 +2637,7 @@ msgstr "" #: bottles/frontend/windows/installer.py:166 msgid "Installer failed with unknown error" -msgstr "" +msgstr "Įvyko diegimo klaida dėl nežinomos priežasties" #: bottles/frontend/windows/launchoptions.py:56 #, python-brace-format @@ -2651,9 +2649,8 @@ msgid "This setting is different from the bottle's default." msgstr "" #: bottles/frontend/windows/launchoptions.py:215 -#, fuzzy msgid "Select Script" -msgstr "Bottles" +msgstr "Pasirinkite Script" #: bottles/frontend/windows/main_window.py:220 msgid "Custom Bottles Path not Found" @@ -2670,7 +2667,6 @@ msgstr "" #: data/com.usebottles.bottles.desktop.in.in:4 #: data/com.usebottles.bottles.metainfo.xml.in:8 -#, fuzzy msgid "Run Windows Software" msgstr "Paleisti Windows programas" @@ -2688,11 +2684,11 @@ msgstr "" #: data/com.usebottles.bottles.gschema.xml:11 msgid "Dark theme" -msgstr "" +msgstr "Tamsus rėžimas" #: data/com.usebottles.bottles.gschema.xml:12 msgid "Force the use of dark theme." -msgstr "" +msgstr "Priverstinai naudoti tamsųjį rėžimą." #: data/com.usebottles.bottles.gschema.xml:16 msgid "Toggle update date in list" @@ -2744,7 +2740,7 @@ msgstr "" #: data/com.usebottles.bottles.gschema.xml:47 msgid "Show notifications." -msgstr "" +msgstr "Rodyti pranešimus." #: data/com.usebottles.bottles.gschema.xml:51 msgid "Temp cleaning" @@ -2756,7 +2752,7 @@ msgstr "" #: data/com.usebottles.bottles.gschema.xml:56 msgid "Release Candidate" -msgstr "" +msgstr "Paleisti kandidatą" #: data/com.usebottles.bottles.gschema.xml:57 msgid "Toggle release candidate for runners." @@ -2764,11 +2760,11 @@ msgstr "" #: data/com.usebottles.bottles.gschema.xml:61 msgid "Startup view" -msgstr "" +msgstr "Paleidimo vaizdas" #: data/com.usebottles.bottles.gschema.xml:62 msgid "Choose which view the application should be started in." -msgstr "" +msgstr "Pasirinkti kurį vaizdą matysite pradėjus aplikaciją." #: data/com.usebottles.bottles.gschema.xml:67 msgid "" @@ -2794,7 +2790,7 @@ msgstr "" #: data/com.usebottles.bottles.gschema.xml:81 msgid "Automatically close Bottles" -msgstr "" +msgstr "Automatiškai išjungti Bottles" #: data/com.usebottles.bottles.gschema.xml:82 msgid "Close Bottles after starting an executable from the file manager." diff --git a/po/pl.po b/po/pl.po index 72c4927bdb1..fb49f87b633 100644 --- a/po/pl.po +++ b/po/pl.po @@ -8,17 +8,17 @@ msgstr "" "Project-Id-Version: bottles\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-03-27 13:50+0530\n" -"PO-Revision-Date: 2024-09-23 17:15+0000\n" -"Last-Translator: Piotr Wieczorek \n" +"PO-Revision-Date: 2025-01-15 18:20+0000\n" +"Last-Translator: PC \n" "Language-Team: Polish \n" "Language: pl\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==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " -"|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 5.8-dev\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" +"X-Generator: Weblate 5.10-dev\n" #: bottles/backend/managers/backup.py:48 bottles/backend/managers/backup.py:95 msgid "No path specified" @@ -1946,9 +1946,8 @@ msgid "_Gaming" msgstr "_Granie" #: bottles/frontend/ui/new.blp:101 -#, fuzzy msgid "C_ustom" -msgstr "Niestandardowe" +msgstr "własne" #: bottles/frontend/ui/new.blp:114 msgid "Custom" @@ -2580,11 +2579,11 @@ msgid "" "Bottles, as not doing so can cause data loss, corruption and programs to " "malfunction." msgstr "" -"Ten program będzie musiał zostać ponownie uruchomiony, aby użyć tego folderu." +"Butelka będzie musiała zostać uruchomiona ponownie aby użyć tego folderu.\n" "\n" -"Upewnij się, że zamknąłeś każdy program uruchomiony w tym programie, zanim " -"ponownie go uruchomisz. Nie zrobienie tego może spowodować utratę/" -"uszkodzenie danych i doprowadzić programy do niepoprawnego działania." +"Upewnij się, że zamknąłeś każdy program uruchomiony w Butelce, zanim " +"ponownie ją uruchomisz. Nie zrobienie tego może spowodować utratę i " +"uszkodzenie danych oraz doprowadzić programy do niepoprawnego działania." #: bottles/frontend/views/preferences.py:202 msgid "_Relaunch" @@ -3137,7 +3136,7 @@ msgstr "Ulepszenia \"Quality of life\":" #: data/com.usebottles.bottles.metainfo.xml.in:114 msgid "Replace emote-love icon with library in library page" -msgstr "" +msgstr "zastąpi ikonę emote-love biblioteką na stronie biblioteki" #: data/com.usebottles.bottles.metainfo.xml.in:115 msgid "Add toast for \"Run Executable\"" @@ -3149,11 +3148,11 @@ msgstr "Poprawki błędów:" #: data/com.usebottles.bottles.metainfo.xml.in:119 msgid "Adding shortcut to Steam resulted an error" -msgstr "" +msgstr "Dodawanie skrótu do Steam zakończyło się nie powodzeniem" #: data/com.usebottles.bottles.metainfo.xml.in:120 msgid "Importing backups resulted an error" -msgstr "Wystąpił błąd podczas importownia kopii zapasowej" +msgstr "Wystąpił błąd podczas importowania kopii zapasowej" #: data/com.usebottles.bottles.metainfo.xml.in:121 msgid "Steam Runtime automatically enabled when using wine-ge-custom" @@ -3165,6 +3164,8 @@ msgid "" "Various library related fixes, like empty covers, and crashes related to " "missing entries" msgstr "" +"Różne poprawki związane z biblioteką, takie jak puste okładki i awarie " +"związane z brakującymi wpisami" #: data/com.usebottles.bottles.metainfo.xml.in:123 msgid "Fix various issues related to text encoding" @@ -3173,16 +3174,16 @@ msgstr "Naprawiono różnorodne problemy z dekodowaniem tekstu" #: data/com.usebottles.bottles.metainfo.xml.in:130 msgid "Fix error when downloading if Bottles isn't run from terminal" msgstr "" -"Naprawiono błąd przy pobieraniu, kiedy ten program nie został uruchomiony z " -"terminala" +"Naprawiono błąd przy pobieraniu, kiedy program bottles nie został " +"uruchomiony z terminala" #: data/com.usebottles.bottles.metainfo.xml.in:137 msgid "Correct version date" -msgstr "Poprawiono datę wydania wesji" +msgstr "Poprawiono datę wydania wersji" #: data/com.usebottles.bottles.metainfo.xml.in:138 msgid "Hide NVIDIA-related critical errors on non NVIDIA systems" -msgstr "" +msgstr "Ukryj krytyczne błędy związane z NVIDIA na systemach innych niż NVIDIA" #: data/com.usebottles.bottles.metainfo.xml.in:145 msgid "Gamescope improvements and fixes" @@ -3195,6 +3196,8 @@ msgstr "Instalacja wymaganych składników jest szybsza i bardziej stabilna" #: data/com.usebottles.bottles.metainfo.xml.in:147 msgid "The health check has more information for faster debugging" msgstr "" +"Kontrola stanu zdrowia zawiera więcej informacji, co umożliwia szybsze " +"debugowanie" #: data/com.usebottles.bottles.metainfo.xml.in:148 msgid "NVAPI has a lot of fixes and is more stable, should now work properly" @@ -3208,7 +3211,7 @@ msgstr "Naprawiono zawieszanie programu przy pobieraniu komponentów" #: data/com.usebottles.bottles.metainfo.xml.in:150 msgid "Backend code improvement by avoiding spin-lock" -msgstr "" +msgstr "Ulepszenie kodu zaplecza poprzez unikanie spin-lock" #: data/com.usebottles.bottles.metainfo.xml.in:151 msgid "More variables for installer scripting" @@ -3217,38 +3220,46 @@ msgstr "Więcej zmiennych w skrypcie instalatora" #: data/com.usebottles.bottles.metainfo.xml.in:152 msgid "Fix onboard dialog showing \"All ready\" while it was in fact not ready" msgstr "" +"Naprawiono pokładowy dialog pokazujący „Wszystko gotowe”, gdy w " +"rzeczywistości nie było gotowe" #: data/com.usebottles.bottles.metainfo.xml.in:153 msgid "Improvement to build system" -msgstr "" +msgstr "Ulepszenie systemu kompilacji" #: data/com.usebottles.bottles.metainfo.xml.in:154 msgid "Enabling VKD3D by default when creating bottles for gaming" -msgstr "" +msgstr "Domyślne włączanie VKD3D podczas tworzenia butelek do gier" #: data/com.usebottles.bottles.metainfo.xml.in:155 msgid "Fix crashes when reading Steam files with bad encodings" msgstr "" +"Naprawiono awarie występujące podczas odczytu plików Steam z nieprawidłowym " +"kodowaniem" #: data/com.usebottles.bottles.metainfo.xml.in:156 msgid "" "Fix components not updated correctly in the UI after installation/" "uninstallation" msgstr "" +"Naprawa komponentów, które nie zostały poprawnie zaktualizowane w " +"interfejsie użytkownika po instalacji/odinstalowaniu" #: data/com.usebottles.bottles.metainfo.xml.in:157 msgid "More FSR fixes" -msgstr "" +msgstr "więcej napraw FSR" #: data/com.usebottles.bottles.metainfo.xml.in:158 msgid "" "Fix the issue when a program closes after it was launched from \"Run " "executable\"" msgstr "" +"napraw problem gdy program ulegnie awarii po tym jak został uruchomiony z " +"\"wykonaj program\"" #: data/com.usebottles.bottles.metainfo.xml.in:159 msgid "and many, many, many more!" -msgstr "" +msgstr "i wiele, wiele, wiele więcej!" #~ msgid "Calculating…" #~ msgstr "Obliczanie…" diff --git a/po/pt.po b/po/pt.po index 92a838e89e0..839b8877630 100644 --- a/po/pt.po +++ b/po/pt.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: bottles\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-03-27 13:50+0530\n" -"PO-Revision-Date: 2024-09-29 12:15+0000\n" -"Last-Translator: Marcos \n" +"PO-Revision-Date: 2024-12-30 04:00+0000\n" +"Last-Translator: Diego Siqueira \n" "Language-Team: Portuguese \n" "Language: pt\n" @@ -17,12 +17,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.8-dev\n" +"X-Generator: Weblate 5.10-dev\n" #: bottles/backend/managers/backup.py:48 bottles/backend/managers/backup.py:95 -#, fuzzy msgid "No path specified" -msgstr "Caminho não especificado" +msgstr "Nenhum caminho especificado" #: bottles/backend/managers/backup.py:56 #, python-brace-format @@ -1930,7 +1929,6 @@ msgid "C_reate" msgstr "C_riar" #: bottles/frontend/ui/new.blp:53 -#, fuzzy msgid "Bottle Name" msgstr "Nome do Bottle" @@ -2576,21 +2574,23 @@ msgstr "_Reiniciar" #: bottles/frontend/views/preferences.py:243 msgid "Based on Valve's Wine, includes staging and Proton patches." -msgstr "" +msgstr "Baseado no Valve's Wine, inclui testes e patches Proton." #: bottles/frontend/views/preferences.py:244 msgid "Based on Wine upstream, includes staging and Proton patches." -msgstr "" +msgstr "Baseado no Wine upstream, inclui testes e patches Proton." #: bottles/frontend/views/preferences.py:247 msgid "Based on Wine upstream, includes staging patches." -msgstr "" +msgstr "Baseado no Wine upstream, inclui testes e patches de teste." #: bottles/frontend/views/preferences.py:248 msgid "" "Based on Valve's Wine, includes staging, Proton and Steam-specific patches. " "Requires the Steam Runtime turned on." msgstr "" +"Baseado no Valve's Wine, inclui patches específicos de teste, Proton e " +"Steam. Requer que o Steam Runtime esteja ativado." #: bottles/frontend/views/preferences.py:250 msgid "Other" @@ -3112,7 +3112,7 @@ msgstr "Melhorias na qualidade de vida:" #: data/com.usebottles.bottles.metainfo.xml.in:114 msgid "Replace emote-love icon with library in library page" -msgstr "" +msgstr "Substitua o ícone emote-love pela biblioteca na página da biblioteca" #: data/com.usebottles.bottles.metainfo.xml.in:115 msgid "Add toast for \"Run Executable\"" @@ -3124,7 +3124,7 @@ msgstr "Correções de bugs:" #: data/com.usebottles.bottles.metainfo.xml.in:119 msgid "Adding shortcut to Steam resulted an error" -msgstr "" +msgstr "Adicionar atalho ao Steam resultou em erro" #: data/com.usebottles.bottles.metainfo.xml.in:120 msgid "Importing backups resulted an error" @@ -3141,6 +3141,8 @@ msgid "" "Various library related fixes, like empty covers, and crashes related to " "missing entries" msgstr "" +"Várias correções relacionadas à biblioteca, como capas vazias e falhas " +"relacionadas a entradas ausentes" #: data/com.usebottles.bottles.metainfo.xml.in:123 msgid "Fix various issues related to text encoding" @@ -3158,6 +3160,8 @@ msgstr "Data correta da versão" #: data/com.usebottles.bottles.metainfo.xml.in:138 msgid "Hide NVIDIA-related critical errors on non NVIDIA systems" msgstr "" +"Ocultar erros críticos relacionados à NVIDIA em sistemas que não sejam da " +"NVIDIA" #: data/com.usebottles.bottles.metainfo.xml.in:145 msgid "Gamescope improvements and fixes" @@ -3194,6 +3198,8 @@ msgstr "Mais variáveis para o script do instalador" #: data/com.usebottles.bottles.metainfo.xml.in:152 msgid "Fix onboard dialog showing \"All ready\" while it was in fact not ready" msgstr "" +"Correção da caixa de diálogo integrada mostrando \"Tudo pronto\" quando na " +"verdade não estava pronto" #: data/com.usebottles.bottles.metainfo.xml.in:153 msgid "Improvement to build system" diff --git a/po/pt_BR.po b/po/pt_BR.po index fd9294ef1d8..72dacd0fcd5 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: bottles\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-03-27 13:50+0530\n" -"PO-Revision-Date: 2024-07-05 18:41+0000\n" -"Last-Translator: Kauã Azevedo da Silva Vicente \n" +"PO-Revision-Date: 2025-01-15 18:20+0000\n" +"Last-Translator: John Peter Sa \n" "Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.7-dev\n" +"X-Generator: Weblate 5.10-dev\n" #: bottles/backend/managers/backup.py:48 bottles/backend/managers/backup.py:95 msgid "No path specified" @@ -35,7 +35,7 @@ msgstr "Importando backup: {0}" #: bottles/backend/managers/manager.py:1057 msgid "Fail to install components, tried 3 times." -msgstr "Falha ao instalar componentes, 3 tentativas." +msgstr "Falha ao instalar componentes, 3 tentativas foram feitas." #: bottles/backend/managers/manager.py:1068 msgid "Missing essential components. Installing…" @@ -51,7 +51,7 @@ msgstr "Falha ao criar diretório/arquivo de espaço reservado." #: bottles/backend/managers/manager.py:1162 msgid "Generating bottle configuration…" -msgstr "Gerando o arquivo de configuração da garrafa…" +msgstr "Gerando a configuração da garrafa…" #: bottles/backend/managers/manager.py:1185 msgid "Template found, applying…" @@ -80,16 +80,16 @@ msgstr "Configurando a versão do Windows…" #: bottles/backend/managers/manager.py:1260 msgid "Apply CMD default settings…" -msgstr "Aplicar definições iniciais do CMD…" +msgstr "Aplicar configurações padrões do CMD…" #: bottles/backend/managers/manager.py:1268 msgid "Optimizing environment…" -msgstr "Otimizando o ambiente…" +msgstr "Otimizando ambiente…" #: bottles/backend/managers/manager.py:1279 #, python-brace-format msgid "Applying environment: {0}…" -msgstr "Aplicando o ambiente: {0} …" +msgstr "Aplicando ambiente: {0} …" #: bottles/backend/managers/manager.py:1289 msgid "(!) Using a custom environment recipe…" diff --git a/po/ru.po b/po/ru.po index 17e30599850..dc1bd63ba96 100644 --- a/po/ru.po +++ b/po/ru.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: bottles\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-03-27 13:50+0530\n" -"PO-Revision-Date: 2024-08-15 06:09+0000\n" +"PO-Revision-Date: 2025-01-15 18:20+0000\n" "Last-Translator: Степан Наумов \n" "Language-Team: Russian \n" @@ -16,9 +16,9 @@ msgstr "" "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<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 5.7-dev\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Weblate 5.10-dev\n" #: bottles/backend/managers/backup.py:48 bottles/backend/managers/backup.py:95 msgid "No path specified" @@ -2954,7 +2954,7 @@ msgstr "Запускайте программы Windows на Linux с помощ #: data/com.usebottles.bottles.metainfo.xml.in:12 msgid "Bottle software and enjoy at your leisure!" -msgstr "Разливайте ПО по бутылкам и наслаждайтесь на досуге" +msgstr "Разливайте ПО по бутылкам и наслаждайтесь на досуге!" #: data/com.usebottles.bottles.metainfo.xml.in:13 msgid "" @@ -2971,7 +2971,7 @@ msgid "" "Bottle versioning keeps your work safe now and lets you restore it later!" msgstr "" "Система управления версиями бутылок обеспечивает сохранность вашей текущей " -"работы, а при необходимости позволяет её восстановить." +"работы, а при необходимости позволяет её восстановить!" #: data/com.usebottles.bottles.metainfo.xml.in:17 msgid "Features:" diff --git a/po/vi.po b/po/vi.po index 7bb5717b98d..01c4e3c8e7c 100644 --- a/po/vi.po +++ b/po/vi.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: bottles\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-03-27 13:50+0530\n" -"PO-Revision-Date: 2024-04-01 11:01+0000\n" -"Last-Translator: Hữu Quốc Kiệt Nguyễn \n" +"PO-Revision-Date: 2025-01-08 14:04+0000\n" +"Last-Translator: rezarria \n" "Language-Team: Vietnamese \n" "Language: vi\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.5-dev\n" +"X-Generator: Weblate 5.10-dev\n" #: bottles/backend/managers/backup.py:48 bottles/backend/managers/backup.py:95 msgid "No path specified" @@ -545,7 +545,7 @@ msgstr "Tìm kiếm các gói phụ thuộc…" #: bottles/frontend/ui/preferences.blp:178 #: bottles/frontend/ui/preferences.blp:235 msgid "You're offline :(" -msgstr "" +msgstr "Bạn hiện đang offline :(" #: bottles/frontend/ui/details-dependencies.blp:25 msgid "Bottles is running in offline mode, so dependencies are not available." @@ -706,18 +706,16 @@ msgid "FidelityFX Super Resolution" msgstr "" #: bottles/frontend/ui/details-preferences.blp:106 -#, fuzzy msgid "Increase performance at the expense of visuals. Only works on Vulkan." -msgstr "Cải thiện hiệu suất với chi phí sử dụng năng lượng gia tăng." +msgstr "Cải thiện hiệu suất đồ hoạ. Chỉ dành cho Vulkan." #: bottles/frontend/ui/details-preferences.blp:108 msgid "Manage FidelityFX Super Resolution settings" msgstr "" #: bottles/frontend/ui/details-preferences.blp:125 -#, fuzzy msgid "Discrete Graphics" -msgstr "GPU chuyên dụng" +msgstr "GPU chuyên dụng (rời)" #: bottles/frontend/ui/details-preferences.blp:126 msgid "" @@ -726,13 +724,15 @@ msgid "" msgstr "" #: bottles/frontend/ui/details-preferences.blp:135 +#, fuzzy msgid "Post-Processing Effects" -msgstr "" +msgstr "Xử lý hậu kỳ" #: bottles/frontend/ui/details-preferences.blp:136 +#, fuzzy msgid "" "Add various post-processing effects using vkBasalt. Only works on Vulkan." -msgstr "" +msgstr "Thêm xử lý hậu kỳ với vkBasalt. Chỉ hoạt động trên Vulkan." #: bottles/frontend/ui/details-preferences.blp:138 #, fuzzy @@ -741,7 +741,7 @@ msgstr "Quản lý thiết đặt Gamescope" #: bottles/frontend/ui/details-preferences.blp:154 msgid "Manage how games should be displayed on the screen using Gamescope." -msgstr "" +msgstr "Quản lý cách các trò chơi hiện thị trên màn hình bằng Gamescope." #: bottles/frontend/ui/details-preferences.blp:157 msgid "Manage Gamescope settings" @@ -811,24 +811,24 @@ msgid "" "Improve loading time when launching the game multiple times. The game will " "take longer to start for the first time." msgstr "" +"Cải thiện thời gian nạp khi trò chơi chạy nhiều lần. Lần đầu tiên chạy sẽ " +"tốn nhiều thời gian." #: bottles/frontend/ui/details-preferences.blp:226 -#, fuzzy msgid "Manage vmtouch settings" -msgstr "Quản lý thiết đặt Gamescope" +msgstr "Quản lý cài đặt vmtouch" #: bottles/frontend/ui/details-preferences.blp:241 msgid "OBS Game Capture" msgstr "" #: bottles/frontend/ui/details-preferences.blp:242 -#, fuzzy msgid "Toggle OBS Game Capture for all Vulkan and OpenGL programs." -msgstr "Tìm kiếm các chương trình đã cài đặt" +msgstr "Sử dụng OBS Game Capture cho toàn bộ chương trình Vulkan và OpenGL" #: bottles/frontend/ui/details-preferences.blp:251 msgid "Compatibility" -msgstr "" +msgstr "Tương thích" #: bottles/frontend/ui/details-preferences.blp:254 #, fuzzy @@ -841,11 +841,11 @@ msgstr "Đang cập nhật phiên bản Windows, vui lòng đợi…" #: bottles/frontend/ui/details-preferences.blp:266 msgid "Language" -msgstr "" +msgstr "Ngôn ngữ" #: bottles/frontend/ui/details-preferences.blp:267 msgid "Choose the language to use with programs." -msgstr "" +msgstr "Chọn ngôn ngữ sẽ được dùng với các chương trình" #: bottles/frontend/ui/details-preferences.blp:275 msgid "Dedicated Sandbox" @@ -866,26 +866,24 @@ msgid "Bottles Runtime" msgstr "Bottles Runtime" #: bottles/frontend/ui/details-preferences.blp:296 -#, fuzzy msgid "" "Provide a bundle of extra libraries for more compatibility. Disable it if " "you run into issues." msgstr "" -"Cung cấp một gói thư viện bổ sung để tương thích hơn,\n" -"vô hiệu hóa nếu bạn gặp sự cố." +"Cung cấp một gói thư viện bổ sung để tương thích hơn, vô hiệu hóa nếu bạn " +"gặp sự cố." #: bottles/frontend/ui/details-preferences.blp:306 msgid "Steam Runtime" msgstr "Steam Runtime" #: bottles/frontend/ui/details-preferences.blp:307 -#, fuzzy msgid "" "Provide a bundle of extra libraries for more compatibility with Steam games. " "Disable it if you run into issues." msgstr "" -"Cung cấp một gói thư viện bổ sung để tương thích hơn,\n" -"vô hiệu hóa nếu bạn gặp sự cố." +"Cung cấp một gói thư viện bổ sung để tương thích hơn với các trò chơi của " +"Steam, vô hiệu hóa nếu bạn gặp sự cố." #: bottles/frontend/ui/details-preferences.blp:315 #: bottles/frontend/ui/dialog-launch-options.blp:83 @@ -898,22 +896,20 @@ msgstr "Thư mục làm việc" #: bottles/frontend/ui/dialog-launch-options.blp:90 #: bottles/frontend/ui/new.blp:150 bottles/frontend/ui/new.blp:181 #: bottles/frontend/ui/preferences.blp:136 -#, fuzzy msgid "Reset to Default" -msgstr "Chi tiết Chai" +msgstr "Tái cài đặt về mặc định" #: bottles/frontend/ui/details-preferences.blp:339 #: bottles/frontend/ui/preferences.blp:157 bottles/frontend/views/new.py:78 #: bottles/frontend/views/preferences.py:210 msgid "(Default)" -msgstr "" +msgstr "(Mặc định)" #: bottles/frontend/ui/details-preferences.blp:347 #: bottles/frontend/ui/dialog-dll-overrides.blp:7 #: bottles/frontend/ui/dialog-dll-overrides.blp:12 -#, fuzzy msgid "DLL Overrides" -msgstr "DLL ghi đè" +msgstr "Ghi đè DLL" #: bottles/frontend/ui/details-preferences.blp:357 #: bottles/frontend/ui/dialog-env-vars.blp:20 @@ -922,9 +918,8 @@ msgid "Environment Variables" msgstr "Biến môi trường" #: bottles/frontend/ui/details-preferences.blp:367 -#, fuzzy msgid "Manage Drives" -msgstr "Tình quản lý thực thi" +msgstr "Quản lý ổ nhớ" #: bottles/frontend/ui/details-preferences.blp:381 #, fuzzy @@ -967,7 +962,7 @@ msgstr "Làm mới" #: bottles/frontend/ui/details-taskmanager.blp:22 msgid "Stop process" -msgstr "" +msgstr "Dừng tiến trình" #: bottles/frontend/ui/details-versioning.blp:18 #, fuzzy @@ -994,9 +989,8 @@ msgid "Create new Snapshot" msgstr "Tạo trạng thái mới" #: bottles/frontend/ui/details.blp:16 -#, fuzzy msgid "Details" -msgstr "Chi tiết Chai" +msgstr "Chi tiết" #: bottles/frontend/ui/details.blp:24 bottles/frontend/ui/details.blp:64 #: bottles/frontend/ui/importer.blp:15 @@ -1100,13 +1094,12 @@ msgid "Quit" msgstr "Thoát" #: bottles/frontend/ui/dialog-dll-overrides.blp:11 -#, fuzzy msgid "" "Dynamic Link Libraries can be specified to be builtin (provided by Wine) or " "native (provided by the program)." msgstr "" "Thư viện Liên kết Động (DLL) có thể được chỉ định là tích hợp (được cung cấp " -"bởi Wine) hoặc bản địa (được cung cấp bởi chương trình)" +"bởi Wine) hoặc native (được cung cấp bởi chương trình)" #: bottles/frontend/ui/dialog-dll-overrides.blp:15 #, fuzzy @@ -1130,7 +1123,7 @@ msgstr "" #: bottles/frontend/ui/dialog-drives.blp:27 msgid "Letter" -msgstr "" +msgstr "Ký tự" #: bottles/frontend/ui/dialog-drives.blp:49 #, fuzzy @@ -1160,12 +1153,11 @@ msgstr "Đang nhân bản…" #: bottles/frontend/ui/dialog-upgrade-versioning.blp:112 #: bottles/frontend/views/new.py:177 msgid "This could take a while." -msgstr "" +msgstr "Điều này sẽ tốn kha khá thời gian." #: bottles/frontend/ui/dialog-duplicate.blp:97 -#, fuzzy msgid "Bottle Duplicated" -msgstr "Chai được sao chép" +msgstr "Bottle đã được nhân bản" #: bottles/frontend/ui/dialog-env-vars.blp:28 msgid "" @@ -1177,7 +1169,7 @@ msgstr "" #: bottles/frontend/ui/dialog-env-vars.blp:31 msgid "Variable Name" -msgstr "" +msgstr "Tên biến" #: bottles/frontend/ui/dialog-env-vars.blp:37 #, fuzzy @@ -1255,7 +1247,7 @@ msgstr "" #: bottles/frontend/ui/dialog-gamescope.blp:121 msgid "Frame Rate Limit" -msgstr "" +msgstr "Giới hạn khung hình" #: bottles/frontend/ui/dialog-gamescope.blp:137 msgid "Frame Rate Limit When Unfocused" @@ -1273,20 +1265,19 @@ msgstr "Độ rộng của cửa sổ" #: bottles/frontend/ui/dialog-gamescope.blp:166 msgid "Borderless" -msgstr "" +msgstr "Không viền" #: bottles/frontend/ui/dialog-gamescope.blp:172 msgid "Fullscreen" -msgstr "" +msgstr "Toàn màn hình" #: bottles/frontend/ui/dialog-installer.blp:40 msgid "Do you want to proceed with the installation?" msgstr "" #: bottles/frontend/ui/dialog-installer.blp:45 -#, fuzzy msgid "Start Installation" -msgstr "Hoạt động" +msgstr "Bắt đầu cài đặt" #: bottles/frontend/ui/dialog-installer.blp:64 msgid "" @@ -1296,7 +1287,7 @@ msgstr "" #: bottles/frontend/ui/dialog-installer.blp:68 msgid "Proceed" -msgstr "" +msgstr "Đã chạy" #: bottles/frontend/ui/dialog-installer.blp:127 #, fuzzy @@ -1318,9 +1309,8 @@ msgid "Something went wrong." msgstr "" #: bottles/frontend/ui/dialog-journal.blp:9 -#, fuzzy msgid "All messages" -msgstr "Xóa tin nhắn" +msgstr "Toàn bộ tin nhắn" #: bottles/frontend/ui/dialog-journal.blp:13 msgid "Critical" @@ -1411,23 +1401,20 @@ msgid "Preferences Overrides" msgstr "Tùy chọn" #: bottles/frontend/ui/dialog-launch-options.blp:119 -#, fuzzy msgid "Reset to Bottle's Defaults" -msgstr "Chi tiết Chai" +msgstr "Tái cài đặt về mặc định" #: bottles/frontend/ui/dialog-launch-options.blp:165 -#, fuzzy msgid "Virtual Desktop" -msgstr "Sử dụng máy tính ảo" +msgstr "Sử dụng desktop ảo" #: bottles/frontend/ui/dialog-proton-alert.blp:4 msgid "Proton Disclaimer" msgstr "" #: bottles/frontend/ui/dialog-proton-alert.blp:21 -#, fuzzy msgid "Use Proton" -msgstr "ProtonDB" +msgstr "Dùng Proton" #: bottles/frontend/ui/dialog-proton-alert.blp:35 msgid "" @@ -1454,12 +1441,11 @@ msgstr "Đổi tên" #: bottles/frontend/ui/dialog-rename.blp:30 msgid "Choose a new name for the selected program." -msgstr "" +msgstr "Nhập tên mới cho chương trình đang chọn." #: bottles/frontend/ui/dialog-rename.blp:33 -#, fuzzy msgid "New Name" -msgstr "Tên" +msgstr "Tên mới" #: bottles/frontend/ui/dialog-run-args.blp:13 #, fuzzy @@ -1477,23 +1463,20 @@ msgid "Write below the arguments to be passed to the executable." msgstr "Viết các đối số sẽ được thực thi dưới đây." #: bottles/frontend/ui/dialog-run-args.blp:47 -#, fuzzy msgid "e.g.: -opengl -SkipBuildPatchPrereq" -msgstr "vd: -opengl -Bỏ_qua_Bản_vá_Trước" +msgstr "vd: -opengl -SkipBuildPatchPrereq" #: bottles/frontend/ui/dialog-sandbox.blp:7 -#, fuzzy msgid "Sandbox Settings" -msgstr "Quản lý thiết đặt Gamescope" +msgstr "Thiết lập sandbox" #: bottles/frontend/ui/dialog-sandbox.blp:25 msgid "Share Network" msgstr "" #: bottles/frontend/ui/dialog-sandbox.blp:34 -#, fuzzy msgid "Share Sound" -msgstr "Không tìm thấy trạng thái nào" +msgstr "" #: bottles/frontend/ui/dialog-upgrade-versioning.blp:16 msgid "Upgrade Needed" @@ -1509,9 +1492,8 @@ msgid "Launch upgrade" msgstr "" #: bottles/frontend/ui/dialog-upgrade-versioning.blp:66 -#, fuzzy msgid "New Versioning System" -msgstr "Trình phiên bản" +msgstr "" #: bottles/frontend/ui/dialog-upgrade-versioning.blp:69 msgid "The new bottle versioning system has landed." diff --git a/requirements.dev.txt b/requirements.dev.txt index 7f51ebec891..534a6424fb8 100644 --- a/requirements.dev.txt +++ b/requirements.dev.txt @@ -1,7 +1,7 @@ # Updated using pur -r requirements.txt -pytest==8.3.3 +pytest==8.3.4 requirements-parser==0.11.0 -mypy==1.11.2 +mypy==1.15.0 types_Markdown types-PyYAML types-Pygments diff --git a/requirements.txt b/requirements.txt index c6a2045ae53..f9fa4929a23 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,19 +1,21 @@ # Updated using pur -r requirements.txt -wheel==0.44.0 +wheel==0.45.1 PyYAML==6.0.2 -pycurl==7.45.3 +pycurl==7.45.4 chardet==5.2.0 requests[use_chardet_on_py3]==2.32.3 Markdown==3.7 icoextract==0.1.5 -patool==3.0.0 -pathvalidate==3.2.1 +patool==3.1.3 +pathvalidate==3.2.3 FVS==0.3.4 -orjson==3.10.7 +orjson==3.10.15 pycairo==1.27.0 PyGObject==3.50.0 -charset-normalizer==3.3.2 +charset-normalizer==3.4.1 +numpy==2.2.3 +pyfluidsynth==1.3.4 idna==3.10 -urllib3==2.2.3 -certifi==2024.8.30 +urllib3==2.3.0 +certifi==2025.1.31 pefile==2024.8.26