Compare commits
2 Commits
v2.1
...
gamepad-su
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3df85e9443 | ||
|
|
2d72f22bbf |
3
.github/ISSUE_TEMPLATE/bug_report.md
vendored
3
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -23,9 +23,6 @@ A clear and concise description of what you expected to happen.
|
|||||||
**Screenshots**
|
**Screenshots**
|
||||||
If applicable, add screenshots to help explain your problem.
|
If applicable, add screenshots to help explain your problem.
|
||||||
|
|
||||||
**Logs**
|
|
||||||
If applicable, attatch your logs from `Main Menu > About Cartridges > Troubleshooting > Debugging Information` to the issue.
|
|
||||||
|
|
||||||
**System (please complete the following information):**
|
**System (please complete the following information):**
|
||||||
- OS: [e.g. Fedora Linux]
|
- OS: [e.g. Fedora Linux]
|
||||||
- Installation method [e.g. Flatpak]
|
- Installation method [e.g. Flatpak]
|
||||||
|
|||||||
19
.github/workflows/flatpak-builder.yml
vendored
Normal file
19
.github/workflows/flatpak-builder.yml
vendored
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
pull_request:
|
||||||
|
name: CI
|
||||||
|
jobs:
|
||||||
|
flatpak:
|
||||||
|
name: "Flatpak"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: bilelmoussaoui/flatpak-github-actions:gnome-44
|
||||||
|
options: --privileged
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6
|
||||||
|
with:
|
||||||
|
bundle: hu.kramo.Cartridges.Devel.flatpak
|
||||||
|
manifest-path: flatpak/hu.kramo.Cartridges.Devel.json
|
||||||
|
cache-key: flatpak-builder-${{ github.sha }}
|
||||||
45
.github/workflows/publish-release.yml
vendored
45
.github/workflows/publish-release.yml
vendored
@@ -1,45 +0,0 @@
|
|||||||
on:
|
|
||||||
push:
|
|
||||||
tags:
|
|
||||||
"*"
|
|
||||||
name: Publish Release
|
|
||||||
concurrency:
|
|
||||||
group: release-${{ github.sha }}
|
|
||||||
jobs:
|
|
||||||
publish-release:
|
|
||||||
name: Publish Release
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Download workflow artifact
|
|
||||||
uses: dawidd6/action-download-artifact@v2.27.0
|
|
||||||
with:
|
|
||||||
workflow: ci.yml
|
|
||||||
commit: ${{ github.sha }}
|
|
||||||
|
|
||||||
- name: Get release notes
|
|
||||||
shell: python
|
|
||||||
run: |
|
|
||||||
import re, textwrap
|
|
||||||
open_file = open("./data/hu.kramo.Cartridges.metainfo.xml.in", "r", encoding="utf-8")
|
|
||||||
string = open_file.read()
|
|
||||||
open_file.close()
|
|
||||||
string = re.findall("<release.*>\s*<description.*>\n([\s\S]*?)\s*</description>\s*<\/release>", string)[0]
|
|
||||||
string = textwrap.dedent(string)
|
|
||||||
open_file = open("release_notes", "w", encoding="utf-8")
|
|
||||||
open_file.write(string)
|
|
||||||
open_file.close()
|
|
||||||
|
|
||||||
- name: Get tag name
|
|
||||||
id: get_tag_name
|
|
||||||
run: echo tag_name=${GITHUB_REF#refs/tags/} >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
- name: Publish release
|
|
||||||
uses: softprops/action-gh-release@v0.1.15
|
|
||||||
with:
|
|
||||||
files: Windows Installer/Cartridges Setup.exe
|
|
||||||
fail_on_unmatched_files: true
|
|
||||||
tag_name: ${{ steps.get_tag_name.outputs.tag_name }}
|
|
||||||
body_path: release_notes
|
|
||||||
@@ -2,40 +2,20 @@ on:
|
|||||||
push:
|
push:
|
||||||
branches: [main]
|
branches: [main]
|
||||||
pull_request:
|
pull_request:
|
||||||
name: CI
|
name: "Build for Windows"
|
||||||
concurrency:
|
|
||||||
group: release-${{ github.sha }}
|
|
||||||
jobs:
|
jobs:
|
||||||
flatpak:
|
|
||||||
name: Flatpak
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container:
|
|
||||||
image: bilelmoussaoui/flatpak-github-actions:gnome-44
|
|
||||||
options: --privileged
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Flatpak Builder
|
|
||||||
uses: flatpak/flatpak-github-actions/flatpak-builder@v6.1
|
|
||||||
with:
|
|
||||||
bundle: hu.kramo.Cartridges.Devel.flatpak
|
|
||||||
manifest-path: flatpak/hu.kramo.Cartridges.Devel.json
|
|
||||||
|
|
||||||
windows:
|
windows:
|
||||||
name: Windows
|
name: "Build"
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
- name: MSYS2
|
||||||
- name: Setup MSYS2
|
|
||||||
uses: msys2/setup-msys2@v2
|
uses: msys2/setup-msys2@v2
|
||||||
with:
|
with:
|
||||||
msystem: UCRT64
|
msystem: UCRT64
|
||||||
update: true
|
update: true
|
||||||
install: mingw-w64-ucrt-x86_64-gtk4 mingw-w64-ucrt-x86_64-libadwaita mingw-w64-ucrt-x86_64-python-gobject mingw-w64-ucrt-x86_64-python-yaml mingw-w64-ucrt-x86_64-python-requests mingw-w64-ucrt-x86_64-python-pillow mingw-w64-ucrt-x86_64-desktop-file-utils mingw-w64-ucrt-x86_64-ca-certificates mingw-w64-ucrt-x86_64-meson git
|
install: mingw-w64-ucrt-x86_64-gtk4 mingw-w64-ucrt-x86_64-libadwaita mingw-w64-ucrt-x86_64-python-gobject mingw-w64-ucrt-x86_64-python-yaml mingw-w64-ucrt-x86_64-python-requests mingw-w64-ucrt-x86_64-python-pillow mingw-w64-ucrt-x86_64-desktop-file-utils mingw-w64-ucrt-x86_64-ca-certificates mingw-w64-ucrt-x86_64-meson git
|
||||||
|
|
||||||
- name: Compile
|
- name: Compile
|
||||||
shell: msys2 {0}
|
shell: msys2 {0}
|
||||||
run: |
|
run: |
|
||||||
@@ -43,18 +23,10 @@ jobs:
|
|||||||
ninja -C _build install
|
ninja -C _build install
|
||||||
pacman --noconfirm -Rs mingw-w64-ucrt-x86_64-desktop-file-utils mingw-w64-ucrt-x86_64-meson git
|
pacman --noconfirm -Rs mingw-w64-ucrt-x86_64-desktop-file-utils mingw-w64-ucrt-x86_64-meson git
|
||||||
find /ucrt64/share/locale/ -type f ! -name "*cartridges.mo" -delete
|
find /ucrt64/share/locale/ -type f ! -name "*cartridges.mo" -delete
|
||||||
|
- name: "Inno Setup"
|
||||||
- name: Test
|
run: iscc ".\_build\Cartridges.iss"
|
||||||
shell: msys2 {0}
|
- name: "Upload Artifact"
|
||||||
run: |
|
|
||||||
set +e
|
|
||||||
timeout 2 cartridges; [ "$?" -eq "124" ]
|
|
||||||
|
|
||||||
- name: Inno Setup
|
|
||||||
run: iscc ".\_build\windows\Cartridges.iss"
|
|
||||||
|
|
||||||
- name: Upload Artifact
|
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: Windows Installer
|
name: "Installer"
|
||||||
path: _build/windows/Output/Cartridges Setup.exe
|
path: "_build/Output/Cartridges Setup.exe"
|
||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
ignore=importers
|
ignore=importers
|
||||||
|
|
||||||
[MESSAGES CONTROL]
|
|
||||||
|
|
||||||
|
[MESSAGES CONTROL]
|
||||||
|
|
||||||
disable=raw-checker-failed,
|
disable=raw-checker-failed,
|
||||||
bad-inline-option,
|
bad-inline-option,
|
||||||
|
|||||||
@@ -1,14 +1,7 @@
|
|||||||
# Contributing
|
# Contributing
|
||||||
|
|
||||||
## Code
|
## Code
|
||||||
|
Fork the repository, make your changes, then create a pull request.
|
||||||
Be sure to follow the [code style](#code-style) of the project.
|
|
||||||
|
|
||||||
### Adding a feature
|
|
||||||
[Create an issue](https://github.com/kra-mo/cartridges/issues/new) or join the [Discord](https://discord.gg/4KSFh3AmQR)/[Matrix](https://matrix.to/#/#cartridges:matrix.org) to discuss it with the maintainers. We will provide additional guidance.
|
|
||||||
|
|
||||||
### Fixing a bug
|
|
||||||
Fork the repository, make your changes, then create a pull request. Be sure to mention the GitHub issue you're fixing if one was already open.
|
|
||||||
|
|
||||||
## Translations
|
## Translations
|
||||||
### Weblate
|
### Weblate
|
||||||
@@ -24,13 +17,13 @@ The project can be translated on [Weblate](https://hosted.weblate.org/engage/car
|
|||||||
# Building
|
# Building
|
||||||
|
|
||||||
## GNOME Builder
|
## GNOME Builder
|
||||||
1. Install [GNOME Builder](https://flathub.org/apps/org.gnome.Builder).
|
1. Install [GNOME Builder](https://flathub.org/apps/details/org.gnome.Builder).
|
||||||
2. Click "Clone Repository" with `https://github.com/kra-mo/cartridges.git` as the URL.
|
2. Click "Clone Repository" with `https://github.com/kra-mo/cartridges.git` as the URL.
|
||||||
3. Click on the build button (hammer) at the top.
|
3. Click on the build button (hammer) at the top.
|
||||||
|
|
||||||
## For Windows
|
## For Windows
|
||||||
1. Install [MSYS2](https://www.msys2.org/).
|
1. Install [MSYS2](https://www.msys2.org/).
|
||||||
2. From the MSYS2 shell, install the required dependencies listed [here](https://github.com/kra-mo/cartridges/blob/main/.github/workflows/ci.yml).
|
2. From the MSYS2 shell, install the required dependencies listed [here](https://github.com/kra-mo/cartridges/blob/main/.github/workflows/windows.yml).
|
||||||
3. Build it via Meson.
|
3. Build it via Meson.
|
||||||
|
|
||||||
## Meson
|
## Meson
|
||||||
@@ -40,23 +33,3 @@ cd cartridges
|
|||||||
meson setup build
|
meson setup build
|
||||||
ninja -C build install
|
ninja -C build install
|
||||||
```
|
```
|
||||||
|
|
||||||
# Code style
|
|
||||||
|
|
||||||
All code is auto-formatted with [Black](https://github.com/psf/black) and linted with [Pylint](https://github.com/pylint-dev/pylint). Imports are sorted by [isort](https://github.com/pycqa/isort).
|
|
||||||
|
|
||||||
VSCode extensions are available for all of these and you can set them up with the following `settings.json` configuration:
|
|
||||||
|
|
||||||
```json
|
|
||||||
"python.formatting.provider": "none",
|
|
||||||
"[python]": {
|
|
||||||
"editor.defaultFormatter": "ms-python.black-formatter",
|
|
||||||
"editor.formatOnSave": true,
|
|
||||||
"editor.codeActionsOnSave": {
|
|
||||||
"source.organizeImports": true
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"isort.args":["--profile", "black"],
|
|
||||||
```
|
|
||||||
|
|
||||||
For other code editors, you can install them via `pip` and invoke them via the command line.
|
|
||||||
|
|||||||
51
README.md
51
README.md
@@ -1,16 +1,4 @@
|
|||||||
|
|
||||||
[circle-url]: https://circle.gnome.org
|
|
||||||
[circle-image]: https://circle.gnome.org/assets/button/badge.svg
|
|
||||||
[weblate-url]: https://hosted.weblate.org/engage/cartridges/
|
|
||||||
[weblate-image]: https://hosted.weblate.org/widgets/cartridges/-/cartridges/svg-badge.svg
|
|
||||||
[discord-url]: https://discord.gg/4KSFh3AmQR
|
|
||||||
[discord-image]: https://img.shields.io/discord/1088155799299313754?color=%235865F2&label=discord&logo=discord&logoColor=%23FFFFFF&style=for-the-badge
|
|
||||||
[matrix-url]: https://matrix.to/#/#cartridges:matrix.org
|
|
||||||
[matrix-image]: https://img.shields.io/matrix/cartridges:matrix.org?label=Matrix&logo=matrix&color=%230dbd8b&style=for-the-badge
|
|
||||||
[flathub-url]: https://flathub.org/apps/hu.kramo.Cartridges
|
|
||||||
[flathub-image]: https://img.shields.io/flathub/v/hu.kramo.Cartridges?logo=flathub&style=for-the-badge
|
|
||||||
[installs-image]: https://img.shields.io/flathub/downloads/hu.kramo.Cartridges?style=for-the-badge
|
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<img src="data/icons/hicolor/scalable/apps/hu.kramo.Cartridges.svg" width="128" height="128">
|
<img src="data/icons/hicolor/scalable/apps/hu.kramo.Cartridges.svg" width="128" height="128">
|
||||||
|
|
||||||
@@ -18,13 +6,28 @@
|
|||||||
|
|
||||||
A GTK4 + Libadwaita game launcher
|
A GTK4 + Libadwaita game launcher
|
||||||
|
|
||||||
[![GNOME Circle][circle-image]][circle-url]
|
[![GNOME Circle][circle-image]][circle-url]
|
||||||
[![Translation Status][weblate-image]][weblate-url]
|
[![Flathub][flathub-image]][flathub-url]
|
||||||
|
[![Build status][github-actions-image]][github-actions-url]
|
||||||
|
[![Translation Status][weblate-image]][weblate-url]
|
||||||
|
[![License][license-image]][license-url]
|
||||||
|
[![Code style][code-style-image]][code-style-url]
|
||||||
|
[![Discord][discord-image]][discord-url]
|
||||||
|
|
||||||
[![Flathub][flathub-image]][flathub-url]
|
[circle-url]: https://circle.gnome.org
|
||||||
[![Discord][discord-image]][discord-url]
|
[circle-image]: https://circle.gnome.org/assets/button/badge.svg
|
||||||
[![Matrix][matrix-image]][matrix-url]
|
[github-actions-url]: https://github.com/kra-mo/cartridges
|
||||||
[![Installs][installs-image]][flathub-url]
|
[github-actions-image]: https://github.com/kra-mo/cartridges/actions/workflows/flatpak-builder.yml/badge.svg
|
||||||
|
[license-url]: https://github.com/kra-mo/cartridges/blob/main/LICENSE
|
||||||
|
[license-image]: https://img.shields.io/github/license/kra-mo/cartridges
|
||||||
|
[code-style-url]: https://github.com/psf/black
|
||||||
|
[code-style-image]: https://img.shields.io/badge/code%20style-black-000000?style=flat
|
||||||
|
[weblate-url]: https://hosted.weblate.org/engage/cartridges/
|
||||||
|
[weblate-image]: https://hosted.weblate.org/widgets/cartridges/-/cartridges/svg-badge.svg
|
||||||
|
[discord-url]: https://discord.gg/4KSFh3AmQR
|
||||||
|
[discord-image]: https://img.shields.io/discord/1088155799299313754?color=%235865F2&label=discord&logo=discord&logoColor=%23FFFFFF
|
||||||
|
[flathub-url]: https://flathub.org/apps/hu.kramo.Cartridges
|
||||||
|
[flathub-image]: https://img.shields.io/flathub/v/hu.kramo.Cartridges
|
||||||
|
|
||||||
<img src="data/screenshots/1.png">
|
<img src="data/screenshots/1.png">
|
||||||
</div>
|
</div>
|
||||||
@@ -36,21 +39,15 @@ Cartridges is a simple game launcher written in Python using GTK4 and Libadwaita
|
|||||||
## Features
|
## Features
|
||||||
|
|
||||||
- Manually adding and editing games
|
- Manually adding and editing games
|
||||||
- Importing games from various sources:
|
- Importing games from Steam, Lutris, Heroic, Bottles and itch
|
||||||
- Steam
|
- Support for multiple Steam install locations
|
||||||
- Lutris
|
|
||||||
- Heroic
|
|
||||||
- Bottles
|
|
||||||
- itch
|
|
||||||
- Legendary
|
|
||||||
- Flatpak
|
|
||||||
- Hiding games
|
- Hiding games
|
||||||
- Searching and sorting by title, date added and last played
|
- Searching and sorting by title, date added and last played
|
||||||
- Automatically downloading cover art from [SteamGridDB](https://www.steamgriddb.com/)
|
- Automatically downloading cover art from [SteamGridDB](https://www.steamgriddb.com/)
|
||||||
- Searching for games on various databases
|
- Searching for games on various databases
|
||||||
- Animated covers
|
- Animated covers
|
||||||
|
|
||||||
For updates and questions, join our [Discord server][discord-url] (bridged to [Matrix](https://matrix.to/#/#cartridges:matrix.org))!
|
For updates and questions, join our [Discord server][discord-url]!
|
||||||
|
|
||||||
# Installation
|
# Installation
|
||||||
|
|
||||||
|
|||||||
@@ -29,30 +29,6 @@ Cartridges is a simple game launcher for all of your games. It has support for i
|
|||||||
<foaf:accountName>kra-mo</foaf:accountName>
|
<foaf:accountName>kra-mo</foaf:accountName>
|
||||||
</foaf:OnlineAccount>
|
</foaf:OnlineAccount>
|
||||||
</foaf:account>
|
</foaf:account>
|
||||||
<foaf:account>
|
|
||||||
<foaf:OnlineAccount>
|
|
||||||
<foaf:accountServiceHomepage rdf:resource="https://gitlab.gnome.org"/>
|
|
||||||
<foaf:accountName>kramo</foaf:accountName>
|
|
||||||
</foaf:OnlineAccount>
|
|
||||||
</foaf:account>
|
|
||||||
</foaf:Person>
|
|
||||||
</maintainer>
|
|
||||||
<maintainer>
|
|
||||||
<foaf:Person>
|
|
||||||
<foaf:name>Geoffrey Coulaud</foaf:name>
|
|
||||||
<foaf:mbox rdf:resource="mailto:geoffrey.coulaud@gmail.com" />
|
|
||||||
<foaf:account>
|
|
||||||
<foaf:OnlineAccount>
|
|
||||||
<foaf:accountServiceHomepage rdf:resource="https://github.com"/>
|
|
||||||
<foaf:accountName>GeoffreyCoulaud</foaf:accountName>
|
|
||||||
</foaf:OnlineAccount>
|
|
||||||
</foaf:account>
|
|
||||||
<foaf:account>
|
|
||||||
<foaf:OnlineAccount>
|
|
||||||
<foaf:accountServiceHomepage rdf:resource="https://gitlab.gnome.org"/>
|
|
||||||
<foaf:accountName>GeoffreyCoulaud</foaf:accountName>
|
|
||||||
</foaf:OnlineAccount>
|
|
||||||
</foaf:account>
|
|
||||||
</foaf:Person>
|
</foaf:Person>
|
||||||
</maintainer>
|
</maintainer>
|
||||||
|
|
||||||
|
|||||||
@@ -81,8 +81,8 @@ template $Game : Box {
|
|||||||
ellipsize: end;
|
ellipsize: end;
|
||||||
hexpand: true;
|
hexpand: true;
|
||||||
halign: start;
|
halign: start;
|
||||||
margin-top: 15;
|
margin-top: 14;
|
||||||
margin-bottom: 15;
|
margin-bottom: 14;
|
||||||
margin-start: 12;
|
margin-start: 12;
|
||||||
margin-end: 12;
|
margin-end: 12;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -132,15 +132,6 @@ template $PreferencesWindow : Adw.PreferencesWindow {
|
|||||||
valign: center;
|
valign: center;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Adw.ActionRow {
|
|
||||||
title: _("Import Flatpak Games");
|
|
||||||
activatable-widget: lutris_import_flatpak_switch;
|
|
||||||
|
|
||||||
Switch lutris_import_flatpak_switch {
|
|
||||||
valign: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Adw.ExpanderRow heroic_expander_row {
|
Adw.ExpanderRow heroic_expander_row {
|
||||||
@@ -174,15 +165,6 @@ template $PreferencesWindow : Adw.PreferencesWindow {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Adw.ActionRow {
|
|
||||||
title: _("Import Amazon Games");
|
|
||||||
activatable-widget: heroic_import_amazon_switch;
|
|
||||||
|
|
||||||
Switch heroic_import_amazon_switch {
|
|
||||||
valign: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Adw.ActionRow {
|
Adw.ActionRow {
|
||||||
title: _("Import Sideloaded Games");
|
title: _("Import Sideloaded Games");
|
||||||
activatable-widget: heroic_import_sideload_switch;
|
activatable-widget: heroic_import_sideload_switch;
|
||||||
@@ -234,29 +216,6 @@ template $PreferencesWindow : Adw.PreferencesWindow {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Adw.ExpanderRow flatpak_expander_row {
|
|
||||||
title: _("Flatpak");
|
|
||||||
show-enable-switch: true;
|
|
||||||
|
|
||||||
Adw.ActionRow flatpak_data_action_row {
|
|
||||||
title: _("Install Location");
|
|
||||||
|
|
||||||
Button flatpak_data_file_chooser_button {
|
|
||||||
icon-name: "folder-symbolic";
|
|
||||||
valign: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Adw.ActionRow flatpak_import_launchers_row {
|
|
||||||
title: _("Import Game Launchers");
|
|
||||||
activatable-widget: flatpak_import_launchers_switch;
|
|
||||||
|
|
||||||
Switch flatpak_import_launchers_switch {
|
|
||||||
valign: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ template $CartridgesWindow : Adw.ApplicationWindow {
|
|||||||
|
|
||||||
Box {
|
Box {
|
||||||
orientation: horizontal;
|
orientation: horizontal;
|
||||||
margin-top: 15;
|
margin-top: 16;
|
||||||
hexpand: true;
|
hexpand: true;
|
||||||
halign: start;
|
halign: start;
|
||||||
|
|
||||||
@@ -285,10 +285,10 @@ template $CartridgesWindow : Adw.ApplicationWindow {
|
|||||||
valign: start;
|
valign: start;
|
||||||
column-spacing: 12;
|
column-spacing: 12;
|
||||||
row-spacing: 12;
|
row-spacing: 12;
|
||||||
margin-top: 15;
|
margin-top: 16;
|
||||||
margin-bottom: 15;
|
margin-bottom: 16;
|
||||||
margin-start: 15;
|
margin-start: 16;
|
||||||
margin-end: 15;
|
margin-end: 16;
|
||||||
selection-mode: none;
|
selection-mode: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -351,10 +351,10 @@ template $CartridgesWindow : Adw.ApplicationWindow {
|
|||||||
valign: start;
|
valign: start;
|
||||||
column-spacing: 12;
|
column-spacing: 12;
|
||||||
row-spacing: 12;
|
row-spacing: 12;
|
||||||
margin-top: 15;
|
margin-top: 16;
|
||||||
margin-bottom: 15;
|
margin-bottom: 16;
|
||||||
margin-start: 15;
|
margin-start: 16;
|
||||||
margin-end: 15;
|
margin-end: 16;
|
||||||
selection-mode: none;
|
selection-mode: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,5 +7,5 @@ Icon=@APP_ID@
|
|||||||
Terminal=false
|
Terminal=false
|
||||||
Type=Application
|
Type=Application
|
||||||
Categories=GNOME;GTK;Game;
|
Categories=GNOME;GTK;Game;
|
||||||
Keywords=gaming;launcher;steam;lutris;heroic;bottles;itch;flatpak;legendary;
|
Keywords=gaming;launcher;steam;lutris;heroic;bottles;itch;
|
||||||
StartupNotify=true
|
StartupNotify=true
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<default>true</default>
|
<default>true</default>
|
||||||
</key>
|
</key>
|
||||||
<key name="steam-location" type="s">
|
<key name="steam-location" type="s">
|
||||||
<default>"~/.steam/steam"</default>
|
<default>"~/.steam/"</default>
|
||||||
</key>
|
</key>
|
||||||
<key name="lutris" type="b">
|
<key name="lutris" type="b">
|
||||||
<default>true</default>
|
<default>true</default>
|
||||||
@@ -28,9 +28,6 @@
|
|||||||
<key name="lutris-import-steam" type="b">
|
<key name="lutris-import-steam" type="b">
|
||||||
<default>false</default>
|
<default>false</default>
|
||||||
</key>
|
</key>
|
||||||
<key name="lutris-import-flatpak" type="b">
|
|
||||||
<default>false</default>
|
|
||||||
</key>
|
|
||||||
<key name="heroic" type="b">
|
<key name="heroic" type="b">
|
||||||
<default>true</default>
|
<default>true</default>
|
||||||
</key>
|
</key>
|
||||||
@@ -43,9 +40,6 @@
|
|||||||
<key name="heroic-import-gog" type="b">
|
<key name="heroic-import-gog" type="b">
|
||||||
<default>true</default>
|
<default>true</default>
|
||||||
</key>
|
</key>
|
||||||
<key name="heroic-import-amazon" type="b">
|
|
||||||
<default>true</default>
|
|
||||||
</key>
|
|
||||||
<key name="heroic-import-sideload" type="b">
|
<key name="heroic-import-sideload" type="b">
|
||||||
<default>true</default>
|
<default>true</default>
|
||||||
</key>
|
</key>
|
||||||
@@ -67,15 +61,6 @@
|
|||||||
<key name="legendary-location" type="s">
|
<key name="legendary-location" type="s">
|
||||||
<default>"~/.config/legendary/"</default>
|
<default>"~/.config/legendary/"</default>
|
||||||
</key>
|
</key>
|
||||||
<key name="flatpak" type="b">
|
|
||||||
<default>true</default>
|
|
||||||
</key>
|
|
||||||
<key name="flatpak-location" type="s">
|
|
||||||
<default>"/var/lib/flatpak/"</default>
|
|
||||||
</key>
|
|
||||||
<key name="flatpak-import-launchers" type="b">
|
|
||||||
<default>false</default>
|
|
||||||
</key>
|
|
||||||
<key name="sgdb-key" type="s">
|
<key name="sgdb-key" type="s">
|
||||||
<default>""</default>
|
<default>""</default>
|
||||||
</key>
|
</key>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<component type="desktop-application">
|
<component type="desktop-application">
|
||||||
<id>@APP_ID@</id>
|
<id>@APP_ID@.desktop</id>
|
||||||
<metadata_license>CC0-1.0</metadata_license>
|
<metadata_license>CC0-1.0</metadata_license>
|
||||||
<project_license>GPL-3.0-or-later</project_license>
|
<project_license>GPL-3.0-or-later</project_license>
|
||||||
<name>Cartridges</name>
|
<name>Cartridges</name>
|
||||||
@@ -44,26 +44,12 @@
|
|||||||
</screenshots>
|
</screenshots>
|
||||||
<content_rating type="oars-1.1" />
|
<content_rating type="oars-1.1" />
|
||||||
<releases>
|
<releases>
|
||||||
<release version="2.1" date="2023-07-25">
|
<release version="1.5.6" date="2023-06-19">
|
||||||
<description translatable="no">
|
<description translatable="no">
|
||||||
<ul>
|
<ul>
|
||||||
<li>Added support for Amazon Games in the Heroic importer</li>
|
<li>Fixes an issue with importing Bottles games without covers</li>
|
||||||
<li>Translations since 2.0</li>
|
|
||||||
</ul>
|
|
||||||
</description>
|
|
||||||
</release>
|
|
||||||
<release version="2.0" date="2023-07-05">
|
|
||||||
<description translatable="no">
|
|
||||||
<p>After months of work, Cartridges 2.0 is here:</p>
|
|
||||||
<ul>
|
|
||||||
<li>New import source: Legendary</li>
|
|
||||||
<li>New import source: Flatpak</li>
|
|
||||||
<li>Importing games should be much quicker</li>
|
|
||||||
<li>Error handling has been improved</li>
|
|
||||||
<li>Various UX improvements</li>
|
|
||||||
<li>Translations since 1.5</li>
|
<li>Translations since 1.5</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>Thanks to the new import backend, adding new sources is much easier and a lot more are coming soon!</p>
|
|
||||||
</description>
|
</description>
|
||||||
</release>
|
</release>
|
||||||
<release version="1.5" date="2023-05-23">
|
<release version="1.5" date="2023-05-23">
|
||||||
|
|||||||
@@ -49,9 +49,9 @@ Stored as a string.
|
|||||||
|
|
||||||
### source
|
### source
|
||||||
|
|
||||||
A unique ID for the source of the game in lowercase, without spaces or underscores.
|
A unique ID for the source of the game in lowercase, without spaces.
|
||||||
|
|
||||||
If a source provides multiple internal sources, these should be separately labeled, but share a common prefix. eg. `heoic_gog`, `heroic_epic`. This is the only place you should use an underscore.
|
If a source provides multiple internal sources, these should be separately labeled, but share a common prefix. eg. `heoic_gog`, `heroic_epic`.
|
||||||
|
|
||||||
Stored as a string.
|
Stored as a string.
|
||||||
|
|
||||||
|
|||||||
@@ -15,10 +15,8 @@
|
|||||||
"--filesystem=~/.var/app/com.valvesoftware.Steam/data/Steam/:ro",
|
"--filesystem=~/.var/app/com.valvesoftware.Steam/data/Steam/:ro",
|
||||||
"--filesystem=~/.var/app/net.lutris.Lutris/:ro",
|
"--filesystem=~/.var/app/net.lutris.Lutris/:ro",
|
||||||
"--filesystem=~/.var/app/com.heroicgameslauncher.hgl/config/heroic/:ro",
|
"--filesystem=~/.var/app/com.heroicgameslauncher.hgl/config/heroic/:ro",
|
||||||
"--filesystem=~/.var/app/com.heroicgameslauncher.hgl/config/legendary/:ro",
|
|
||||||
"--filesystem=~/.var/app/com.usebottles.bottles/data/bottles/:ro",
|
"--filesystem=~/.var/app/com.usebottles.bottles/data/bottles/:ro",
|
||||||
"--filesystem=~/.var/app/io.itch.itch/config/itch/:ro",
|
"--filesystem=~/.var/app/io.itch.itch/config/itch/:ro"
|
||||||
"--filesystem=/var/lib/flatpak:ro"
|
|
||||||
],
|
],
|
||||||
"cleanup" : [
|
"cleanup" : [
|
||||||
"/include",
|
"/include",
|
||||||
@@ -98,9 +96,75 @@
|
|||||||
"sha256": "bf548479d336726d7a0eceb6e767e179fbde37833ae42794602631a070d630f1"
|
"sha256": "bf548479d336726d7a0eceb6e767e179fbde37833ae42794602631a070d630f1"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "python3-snegg",
|
||||||
|
"buildsystem" : "simple",
|
||||||
|
"build-commands": [
|
||||||
|
"cd snegg",
|
||||||
|
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} . --no-build-isolation"
|
||||||
|
],
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type" : "git",
|
||||||
|
"url": "https://gitlab.freedesktop.org/libinput/snegg.git",
|
||||||
|
"tag": "main"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "python3-attrs",
|
||||||
|
"buildsystem": "simple",
|
||||||
|
"build-commands": [
|
||||||
|
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"attrs\" --no-build-isolation"
|
||||||
|
],
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://files.pythonhosted.org/packages/f0/eb/fcb708c7bf5056045e9e98f62b93bd7467eb718b0202e7698eb11d66416c/attrs-23.1.0-py3-none-any.whl",
|
||||||
|
"sha256": "1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "python3-jinja2",
|
||||||
|
"buildsystem": "simple",
|
||||||
|
"build-commands": [
|
||||||
|
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"jinja2\" --no-build-isolation"
|
||||||
|
],
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://files.pythonhosted.org/packages/bc/c3/f068337a370801f372f2f8f6bad74a5c140f6fda3d9de154052708dd3c65/Jinja2-3.1.2-py3-none-any.whl",
|
||||||
|
"sha256": "6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://files.pythonhosted.org/packages/6d/7c/59a3248f411813f8ccba92a55feaac4bf360d29e2ff05ee7d8e1ef2d7dbf/MarkupSafe-2.1.3.tar.gz",
|
||||||
|
"sha256": "af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name" : "libei",
|
||||||
|
"buildsystem" : "meson",
|
||||||
|
"config-opts": [
|
||||||
|
"-Ddocumentation=[]",
|
||||||
|
"-Dtests=disabled"
|
||||||
|
],
|
||||||
|
"sources" : [
|
||||||
|
{
|
||||||
|
"type" : "git",
|
||||||
|
"url" : "https://gitlab.freedesktop.org/libinput/libei.git",
|
||||||
|
"tag" : "1.0.0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cleanup" : [
|
||||||
|
"*"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name" : "blueprint-compiler",
|
"name" : "blueprint-compiler",
|
||||||
"buildsystem" : "meson",
|
"buildsystem" : "meson",
|
||||||
|
|||||||
12
meson.build
12
meson.build
@@ -1,5 +1,5 @@
|
|||||||
project('cartridges',
|
project('cartridges',
|
||||||
version: '2.1',
|
version: '1.5.6',
|
||||||
meson_version: '>= 0.59.0',
|
meson_version: '>= 0.59.0',
|
||||||
default_options: [ 'warning_level=2', 'werror=false', ],
|
default_options: [ 'warning_level=2', 'werror=false', ],
|
||||||
)
|
)
|
||||||
@@ -33,9 +33,13 @@ subdir('data')
|
|||||||
subdir('src')
|
subdir('src')
|
||||||
subdir('po')
|
subdir('po')
|
||||||
|
|
||||||
if host_machine.system() == 'windows'
|
configure_file(
|
||||||
subdir('windows')
|
input: './windows/Cartridges.iss.in',
|
||||||
endif
|
output: 'Cartridges.iss',
|
||||||
|
configuration: conf,
|
||||||
|
install: true,
|
||||||
|
install_dir: '.'
|
||||||
|
)
|
||||||
|
|
||||||
gnome.post_install(
|
gnome.post_install(
|
||||||
glib_compile_schemas: true,
|
glib_compile_schemas: true,
|
||||||
|
|||||||
@@ -19,4 +19,3 @@ pl
|
|||||||
sv
|
sv
|
||||||
tr
|
tr
|
||||||
el
|
el
|
||||||
cs
|
|
||||||
|
|||||||
187
po/ar.po
187
po/ar.po
@@ -7,8 +7,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: cartridges\n"
|
"Project-Id-Version: cartridges\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-07-05 14:36+0200\n"
|
"POT-Creation-Date: 2023-06-26 12:01+0200\n"
|
||||||
"PO-Revision-Date: 2023-07-09 07:59+0000\n"
|
"PO-Revision-Date: 2023-05-26 18:10+0000\n"
|
||||||
"Last-Translator: Ali Aljishi <ahj696@hotmail.com>\n"
|
"Last-Translator: Ali Aljishi <ahj696@hotmail.com>\n"
|
||||||
"Language-Team: Arabic <https://hosted.weblate.org/projects/cartridges/"
|
"Language-Team: Arabic <https://hosted.weblate.org/projects/cartridges/"
|
||||||
"cartridges/ar/>\n"
|
"cartridges/ar/>\n"
|
||||||
@@ -18,11 +18,11 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
|
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
|
||||||
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
|
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
|
||||||
"X-Generator: Weblate 5.0-dev\n"
|
"X-Generator: Weblate 4.18-dev\n"
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
||||||
#: src/main.py:162
|
#: src/main.py:146
|
||||||
msgid "Cartridges"
|
msgid "Cartridges"
|
||||||
msgstr "خراطيش"
|
msgstr "خراطيش"
|
||||||
|
|
||||||
@@ -112,7 +112,7 @@ msgstr "معلومات أكثر"
|
|||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "حرِّر"
|
msgstr "حرِّر"
|
||||||
|
|
||||||
#: data/gtk/game.blp:107 src/window.py:171
|
#: data/gtk/game.blp:107 src/window.py:169
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr "أخفِ"
|
msgstr "أخفِ"
|
||||||
|
|
||||||
@@ -121,7 +121,7 @@ msgstr "أخفِ"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "أزل"
|
msgstr "أزل"
|
||||||
|
|
||||||
#: data/gtk/game.blp:126 src/window.py:173
|
#: data/gtk/game.blp:126 src/window.py:171
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr "اكشف"
|
msgstr "اكشف"
|
||||||
|
|
||||||
@@ -146,7 +146,7 @@ msgstr "أظهر التفضيلات"
|
|||||||
msgid "Shortcuts"
|
msgid "Shortcuts"
|
||||||
msgstr "الاختصارات"
|
msgstr "الاختصارات"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112
|
#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "تراجع"
|
msgstr "تراجع"
|
||||||
|
|
||||||
@@ -174,7 +174,7 @@ msgstr "أظهر الألعاب المخفية"
|
|||||||
msgid "Remove game"
|
msgid "Remove game"
|
||||||
msgstr "أزل اللعبة"
|
msgstr "أزل اللعبة"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr "السلوك"
|
msgstr "السلوك"
|
||||||
|
|
||||||
@@ -223,89 +223,80 @@ msgid "Steam"
|
|||||||
msgstr "ستيم"
|
msgstr "ستيم"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
||||||
#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192
|
#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183
|
||||||
#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220
|
#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211
|
||||||
#: data/gtk/preferences.blp:234
|
#, fuzzy
|
||||||
|
#| msgid "itch Install Location"
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
msgstr "موضع التثبيت"
|
msgstr "موضع تثبيت إتش"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:106
|
#: data/gtk/preferences.blp:106
|
||||||
msgid "Lutris"
|
msgid "Lutris"
|
||||||
msgstr "لوترس"
|
msgstr "لوترس"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:119
|
#: data/gtk/preferences.blp:119
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Lutris Cache Location"
|
||||||
msgid "Cache Location"
|
msgid "Cache Location"
|
||||||
msgstr "موضع الذاكرة المؤقتة"
|
msgstr "موضع ذكرة لوترس المؤقَّتة"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:128
|
#: data/gtk/preferences.blp:128
|
||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr "استورد ألعابًا من ستيم"
|
msgstr "استورد ألعابًا من ستيم"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137
|
#: data/gtk/preferences.blp:138
|
||||||
msgid "Import Flatpak Games"
|
|
||||||
msgstr "استورد ألعاب فلاتباك"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:147
|
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
msgstr "هِرُوِك"
|
msgstr "هِرُوِك"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:160
|
#: data/gtk/preferences.blp:151
|
||||||
msgid "Import Epic Games"
|
msgid "Import Epic Games"
|
||||||
msgstr "استورد ألعاب أَبِك"
|
msgstr "استورد ألعاب أَبِك"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:169
|
#: data/gtk/preferences.blp:160
|
||||||
msgid "Import GOG Games"
|
msgid "Import GOG Games"
|
||||||
msgstr "استورد ألعاب جيأوجي"
|
msgstr "استورد ألعاب جيأوجي"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:178
|
#: data/gtk/preferences.blp:169
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr "استورد ألعابًا مثبَّتةً بغير متجر"
|
msgstr "استورد ألعابًا مثبَّتةً بغير متجر"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:188
|
#: data/gtk/preferences.blp:179
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr "قوارير"
|
msgstr "قوارير"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:202
|
#: data/gtk/preferences.blp:193
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr "إتش"
|
msgstr "إتش"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
#: data/gtk/preferences.blp:207
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr "لجندري"
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:230
|
#: data/gtk/preferences.blp:224
|
||||||
msgid "Flatpak"
|
|
||||||
msgstr "فلاتباك"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:243
|
|
||||||
msgid "Import Game Launchers"
|
|
||||||
msgstr "استورد مشغِّلات ألعاب"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:256
|
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
msgstr "SteamGridDB"
|
msgstr "SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Authentication"
|
msgid "Authentication"
|
||||||
msgstr "الاستيثاق"
|
msgstr "الاستيثاق"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:263
|
#: data/gtk/preferences.blp:231
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr "مفتاح واجهة البرمجة"
|
msgstr "مفتاح واجهة البرمجة"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:271
|
#: data/gtk/preferences.blp:239
|
||||||
msgid "Use SteamGridDB"
|
msgid "Use SteamGridDB"
|
||||||
msgstr "استخدم SteamGridDB"
|
msgstr "استخدم SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:272
|
#: data/gtk/preferences.blp:240
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr "نزِّل الصور حينما تنزِّل أو تستورد الألعاب"
|
msgstr "نزِّل الصور حينما تنزِّل أو تستورد الألعاب"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:281
|
#: data/gtk/preferences.blp:249
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr "فضِّلها على الصور الرسمية"
|
msgstr "فضِّلها على الصور الرسمية"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:290
|
#: data/gtk/preferences.blp:258
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr "فضِّل الصور المتحرِّكة"
|
msgstr "فضِّل الصور المتحرِّكة"
|
||||||
|
|
||||||
@@ -394,21 +385,21 @@ msgid "About Cartridges"
|
|||||||
msgstr "عن «خراطيش»"
|
msgstr "عن «خراطيش»"
|
||||||
|
|
||||||
#. Translators: Replace this with your name for it to show up in the about window
|
#. Translators: Replace this with your name for it to show up in the about window
|
||||||
#: src/main.py:180
|
#: src/main.py:164
|
||||||
msgid "translator_credits"
|
msgid "translator_credits"
|
||||||
msgstr "Ali Aljishi <ahj696@hotmail.com>"
|
msgstr "Ali Aljishi <ahj696@hotmail.com>"
|
||||||
|
|
||||||
#. The variable is the date when the game was added
|
#. The variable is the date when the game was added
|
||||||
#: src/window.py:194
|
#: src/window.py:192
|
||||||
msgid "Added: {}"
|
msgid "Added: {}"
|
||||||
msgstr "أضيفت في: {}"
|
msgstr "أضيفت في: {}"
|
||||||
|
|
||||||
#: src/window.py:197
|
#: src/window.py:195
|
||||||
msgid "Never"
|
msgid "Never"
|
||||||
msgstr "أبدًا"
|
msgstr "أبدًا"
|
||||||
|
|
||||||
#. The variable is the date when the game was last played
|
#. The variable is the date when the game was last played
|
||||||
#: src/window.py:201
|
#: src/window.py:199
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr "لُعبت آخر مرَّة في: {}"
|
msgstr "لُعبت آخر مرَّة في: {}"
|
||||||
|
|
||||||
@@ -425,26 +416,26 @@ msgid "Confirm"
|
|||||||
msgstr "أكِّد"
|
msgstr "أكِّد"
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: src/details_window.py:92
|
#: src/details_window.py:91
|
||||||
msgid "file.txt"
|
msgid "file.txt"
|
||||||
msgstr "ملف.txt"
|
msgstr "ملف.txt"
|
||||||
|
|
||||||
#. As in software
|
#. As in software
|
||||||
#: src/details_window.py:94
|
#: src/details_window.py:93
|
||||||
msgid "program"
|
msgid "program"
|
||||||
msgstr "البرنامج"
|
msgstr "البرنامج"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:99 src/details_window.py:101
|
#: src/details_window.py:98 src/details_window.py:100
|
||||||
msgid "C:\\path\\to\\{}"
|
msgid "C:\\path\\to\\{}"
|
||||||
msgstr "C:\\المسار\\إلى\\{}"
|
msgstr "C:\\المسار\\إلى\\{}"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:105 src/details_window.py:107
|
#: src/details_window.py:104 src/details_window.py:106
|
||||||
msgid "/path/to/{}"
|
msgid "/path/to/{}"
|
||||||
msgstr "/المسار/إلى/{}"
|
msgstr "/المسار/إلى/{}"
|
||||||
|
|
||||||
#: src/details_window.py:112
|
#: src/details_window.py:111
|
||||||
msgid ""
|
msgid ""
|
||||||
"To launch the executable \"{}\", use the command:\n"
|
"To launch the executable \"{}\", use the command:\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -466,15 +457,15 @@ msgstr ""
|
|||||||
"\n"
|
"\n"
|
||||||
"ولا تنسَ إحاطة المسار بعلامتي تنصيص مزدوجتين حالما تضمَّن مسافات!"
|
"ولا تنسَ إحاطة المسار بعلامتي تنصيص مزدوجتين حالما تضمَّن مسافات!"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:153
|
#: src/details_window.py:146 src/details_window.py:152
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
msgstr "تعذَّرت إضافة اللعبة"
|
msgstr "تعذَّرت إضافة اللعبة"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:181
|
#: src/details_window.py:146 src/details_window.py:181
|
||||||
msgid "Game title cannot be empty."
|
msgid "Game title cannot be empty."
|
||||||
msgstr "لا يجوز كون عنوان اللعبة فارغًا."
|
msgstr "لا يجوز كون عنوان اللعبة فارغًا."
|
||||||
|
|
||||||
#: src/details_window.py:153 src/details_window.py:189
|
#: src/details_window.py:152 src/details_window.py:189
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr "لا يجوز كون ملفِّ التنفيذ فارغًا."
|
msgstr "لا يجوز كون ملفِّ التنفيذ فارغًا."
|
||||||
|
|
||||||
@@ -483,61 +474,34 @@ msgid "Couldn't Apply Preferences"
|
|||||||
msgstr "تعذَّر تطبيق التفضيلات"
|
msgstr "تعذَّر تطبيق التفضيلات"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:138
|
#: src/game.py:141
|
||||||
msgid "{} launched"
|
msgid "{} launched"
|
||||||
msgstr "بُدئت {}"
|
msgstr "بُدئت {}"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr "أٌخفيت {}"
|
msgstr "أٌخفيت {}"
|
||||||
|
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} unhidden"
|
msgid "{} unhidden"
|
||||||
msgstr "أٌظهرت {}"
|
msgstr "أٌظهرت {}"
|
||||||
|
|
||||||
#: src/game.py:169
|
#: src/game.py:171
|
||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr "أزيلت {}"
|
msgstr "أزيلت {}"
|
||||||
|
|
||||||
#: src/preferences.py:111
|
#: src/preferences.py:102
|
||||||
msgid "All games removed"
|
msgid "All games removed"
|
||||||
msgstr "أُزيلت كلُّ الألعاب"
|
msgstr "أُزيلت كلُّ الألعاب"
|
||||||
|
|
||||||
#: src/preferences.py:159
|
#: src/preferences.py:149
|
||||||
msgid ""
|
msgid ""
|
||||||
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"تحتاج مفتاح واجهة برمجة حال ما أردت استخدام SteamGridDB، {}هنا تولِّده{}."
|
"تحتاج مفتاح واجهة برمجة حال ما أردت استخدام SteamGridDB، {}هنا تولِّده{}."
|
||||||
|
|
||||||
#: src/preferences.py:284
|
#: src/preferences.py:289
|
||||||
msgid "Installation Not Found"
|
|
||||||
msgstr "لم يُعثر على التثبيت"
|
|
||||||
|
|
||||||
#: src/preferences.py:286
|
|
||||||
msgid "Select a valid directory."
|
|
||||||
msgstr "حدِّد مجلَّدًا صالحًا."
|
|
||||||
|
|
||||||
#: src/preferences.py:348
|
|
||||||
msgid "Invalid Directory"
|
|
||||||
msgstr "مجلَّد غير صالح"
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:352
|
|
||||||
msgid "Select the {} cache directory."
|
|
||||||
msgstr "حدِّد مجلَّد ذاكرة {} المؤقتة."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:355
|
|
||||||
msgid "Select the {} configuration directory."
|
|
||||||
msgstr "حدِّد مجلَّد ضبط {}."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:358
|
|
||||||
msgid "Select the {} data directory."
|
|
||||||
msgstr "حدِّد مجلَّد بيانات {}."
|
|
||||||
|
|
||||||
#: src/preferences.py:364
|
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
msgstr "عيِّن الموضع"
|
msgstr "عيِّن الموضع"
|
||||||
|
|
||||||
@@ -545,23 +509,38 @@ msgstr "عيِّن الموضع"
|
|||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
msgstr "تجاهل"
|
msgstr "تجاهل"
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:106
|
||||||
|
msgid "Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:107
|
||||||
|
msgid "Cache"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:108
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Confirm"
|
||||||
|
msgid "Configuration"
|
||||||
|
msgstr "أكِّد"
|
||||||
|
|
||||||
|
#. The variables are the type of location (eg. cache) and the source's name (eg. Steam)
|
||||||
|
#: src/importer/sources/source.py:119
|
||||||
|
msgid "Invalid {} Location for {{}}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:120
|
||||||
|
msgid "Pick a new one or disable the source in preferences"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:47
|
#: src/store/managers/sgdb_manager.py:47
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Couldn't Connect to SteamGridDB"
|
||||||
msgid "Couldn't Authenticate SteamGridDB"
|
msgid "Couldn't Authenticate SteamGridDB"
|
||||||
msgstr "تعذَّر استيثاق SteamGridDB"
|
msgstr "تعذَّر الاتصال ب SteamGridDB"
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:48
|
#: src/store/managers/sgdb_manager.py:48
|
||||||
msgid "Verify your API key in preferences"
|
msgid "Verify your API key in preferences"
|
||||||
msgstr "أكِّد مفتاح واجهة البرمجة في التفضيلات"
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "The Steam directory cannot be found."
|
|
||||||
#~ msgid "Directory not Valid"
|
|
||||||
#~ msgstr "تعذَّر العثور على مجلَّد ستيم."
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "Confirm"
|
|
||||||
#~ msgid "Configuration"
|
|
||||||
#~ msgstr "أكِّد"
|
|
||||||
|
|
||||||
#~ msgid "Steam Install Location"
|
#~ msgid "Steam Install Location"
|
||||||
#~ msgstr "موضع تثبيت ستيم"
|
#~ msgstr "موضع تثبيت ستيم"
|
||||||
@@ -587,6 +566,15 @@ msgstr "أكِّد مفتاح واجهة البرمجة في التفضيلات"
|
|||||||
#~ msgid "Select the Lutris cache directory."
|
#~ msgid "Select the Lutris cache directory."
|
||||||
#~ msgstr "حدِّد مجلَّد ذاكرة لوترس المؤقَّتة."
|
#~ msgstr "حدِّد مجلَّد ذاكرة لوترس المؤقَّتة."
|
||||||
|
|
||||||
|
#~ msgid "Installation Not Found"
|
||||||
|
#~ msgstr "لم يُعثر على التثبيت"
|
||||||
|
|
||||||
|
#~ msgid "Select the {} configuration directory."
|
||||||
|
#~ msgstr "حدِّد مجلَّد ضبط {}."
|
||||||
|
|
||||||
|
#~ msgid "Select the {} data directory."
|
||||||
|
#~ msgstr "حدِّد مجلَّد بيانات {}."
|
||||||
|
|
||||||
#~ msgid "Importing Games…"
|
#~ msgid "Importing Games…"
|
||||||
#~ msgstr "تُستورد الألعاب…"
|
#~ msgstr "تُستورد الألعاب…"
|
||||||
|
|
||||||
@@ -707,6 +695,9 @@ msgstr "أكِّد مفتاح واجهة البرمجة في التفضيلات"
|
|||||||
#~ msgid "No new games were found in the Steam library."
|
#~ msgid "No new games were found in the Steam library."
|
||||||
#~ msgstr "لم يُعثر على ألعاب جديدة في مكتبة ستيم."
|
#~ msgstr "لم يُعثر على ألعاب جديدة في مكتبة ستيم."
|
||||||
|
|
||||||
|
#~ msgid "The Steam directory cannot be found."
|
||||||
|
#~ msgstr "تعذَّر العثور على مجلَّد ستيم."
|
||||||
|
|
||||||
#~ msgid "Talking to Steam"
|
#~ msgid "Talking to Steam"
|
||||||
#~ msgstr "يُتواصل مع ستيم"
|
#~ msgstr "يُتواصل مع ستيم"
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Cartridges\n"
|
"Project-Id-Version: Cartridges\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-07-05 14:36+0200\n"
|
"POT-Creation-Date: 2023-06-26 22:22+0200\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@@ -19,7 +19,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
||||||
#: src/main.py:162
|
#: src/main.py:153
|
||||||
msgid "Cartridges"
|
msgid "Cartridges"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -106,7 +106,7 @@ msgstr ""
|
|||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/game.blp:107 src/window.py:171
|
#: data/gtk/game.blp:107 src/window.py:169
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -115,7 +115,7 @@ msgstr ""
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/game.blp:126 src/window.py:173
|
#: data/gtk/game.blp:126 src/window.py:171
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -140,7 +140,7 @@ msgstr ""
|
|||||||
msgid "Shortcuts"
|
msgid "Shortcuts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112
|
#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -168,7 +168,7 @@ msgstr ""
|
|||||||
msgid "Remove game"
|
msgid "Remove game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -217,9 +217,8 @@ msgid "Steam"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
||||||
#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192
|
#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183
|
||||||
#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220
|
#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211
|
||||||
#: data/gtk/preferences.blp:234
|
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -235,71 +234,59 @@ msgstr ""
|
|||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137
|
#: data/gtk/preferences.blp:138
|
||||||
msgid "Import Flatpak Games"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:147
|
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:160
|
#: data/gtk/preferences.blp:151
|
||||||
msgid "Import Epic Games"
|
msgid "Import Epic Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:169
|
#: data/gtk/preferences.blp:160
|
||||||
msgid "Import GOG Games"
|
msgid "Import GOG Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:178
|
#: data/gtk/preferences.blp:169
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:188
|
#: data/gtk/preferences.blp:179
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:202
|
#: data/gtk/preferences.blp:193
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
#: data/gtk/preferences.blp:207
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:230
|
#: data/gtk/preferences.blp:224
|
||||||
msgid "Flatpak"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:243
|
|
||||||
msgid "Import Game Launchers"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:256
|
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Authentication"
|
msgid "Authentication"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:263
|
#: data/gtk/preferences.blp:231
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:271
|
#: data/gtk/preferences.blp:239
|
||||||
msgid "Use SteamGridDB"
|
msgid "Use SteamGridDB"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:272
|
#: data/gtk/preferences.blp:240
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:281
|
#: data/gtk/preferences.blp:249
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:290
|
#: data/gtk/preferences.blp:258
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -388,21 +375,21 @@ msgid "About Cartridges"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Translators: Replace this with your name for it to show up in the about window
|
#. Translators: Replace this with your name for it to show up in the about window
|
||||||
#: src/main.py:180
|
#: src/main.py:171
|
||||||
msgid "translator_credits"
|
msgid "translator_credits"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. The variable is the date when the game was added
|
#. The variable is the date when the game was added
|
||||||
#: src/window.py:194
|
#: src/window.py:192
|
||||||
msgid "Added: {}"
|
msgid "Added: {}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/window.py:197
|
#: src/window.py:195
|
||||||
msgid "Never"
|
msgid "Never"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. The variable is the date when the game was last played
|
#. The variable is the date when the game was last played
|
||||||
#: src/window.py:201
|
#: src/window.py:199
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -419,26 +406,26 @@ msgid "Confirm"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: src/details_window.py:92
|
#: src/details_window.py:91
|
||||||
msgid "file.txt"
|
msgid "file.txt"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. As in software
|
#. As in software
|
||||||
#: src/details_window.py:94
|
#: src/details_window.py:93
|
||||||
msgid "program"
|
msgid "program"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:99 src/details_window.py:101
|
#: src/details_window.py:98 src/details_window.py:100
|
||||||
msgid "C:\\path\\to\\{}"
|
msgid "C:\\path\\to\\{}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:105 src/details_window.py:107
|
#: src/details_window.py:104 src/details_window.py:106
|
||||||
msgid "/path/to/{}"
|
msgid "/path/to/{}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/details_window.py:112
|
#: src/details_window.py:111
|
||||||
msgid ""
|
msgid ""
|
||||||
"To launch the executable \"{}\", use the command:\n"
|
"To launch the executable \"{}\", use the command:\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -451,15 +438,15 @@ msgid ""
|
|||||||
"If the path contains spaces, make sure to wrap it in double quotes!"
|
"If the path contains spaces, make sure to wrap it in double quotes!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:153
|
#: src/details_window.py:146 src/details_window.py:152
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:181
|
#: src/details_window.py:146 src/details_window.py:181
|
||||||
msgid "Game title cannot be empty."
|
msgid "Game title cannot be empty."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/details_window.py:153 src/details_window.py:189
|
#: src/details_window.py:152 src/details_window.py:189
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -468,60 +455,33 @@ msgid "Couldn't Apply Preferences"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:138
|
#: src/game.py:141
|
||||||
msgid "{} launched"
|
msgid "{} launched"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} unhidden"
|
msgid "{} unhidden"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.py:169
|
#: src/game.py:171
|
||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/preferences.py:111
|
#: src/preferences.py:102
|
||||||
msgid "All games removed"
|
msgid "All games removed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/preferences.py:159
|
#: src/preferences.py:149
|
||||||
msgid ""
|
msgid ""
|
||||||
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/preferences.py:284
|
#: src/preferences.py:289
|
||||||
msgid "Installation Not Found"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/preferences.py:286
|
|
||||||
msgid "Select a valid directory."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/preferences.py:348
|
|
||||||
msgid "Invalid Directory"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:352
|
|
||||||
msgid "Select the {} cache directory."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:355
|
|
||||||
msgid "Select the {} configuration directory."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:358
|
|
||||||
msgid "Select the {} data directory."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/preferences.py:364
|
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
553
po/cs.po
553
po/cs.po
@@ -1,553 +0,0 @@
|
|||||||
# SOME DESCRIPTIVE TITLE.
|
|
||||||
# Copyright (C) YEAR kramo
|
|
||||||
# This file is distributed under the same license as the Cartridges package.
|
|
||||||
# foo expert <deferred_water346@simplelogin.com>, 2023.
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: Cartridges\n"
|
|
||||||
"Report-Msgid-Bugs-To: \n"
|
|
||||||
"POT-Creation-Date: 2023-07-05 14:36+0200\n"
|
|
||||||
"PO-Revision-Date: 2023-07-24 13:05+0000\n"
|
|
||||||
"Last-Translator: foo expert <deferred_water346@simplelogin.com>\n"
|
|
||||||
"Language-Team: Czech <https://hosted.weblate.org/projects/cartridges/"
|
|
||||||
"cartridges/cs/>\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.0-dev\n"
|
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
|
||||||
#: src/main.py:162
|
|
||||||
msgid "Cartridges"
|
|
||||||
msgstr "Kazety"
|
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:4
|
|
||||||
msgid "Game Launcher"
|
|
||||||
msgstr "Spouštěč her"
|
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:5
|
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:7
|
|
||||||
msgid "Launch all your games"
|
|
||||||
msgstr "Spusťte všechny vaše hry"
|
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:11
|
|
||||||
msgid "gaming;launcher;steam;lutris;heroic;bottles;itch;"
|
|
||||||
msgstr "hraní;spouštěč;steam;lutris;heroic;láhve;itch;"
|
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:9
|
|
||||||
msgid ""
|
|
||||||
"Cartridges is a simple game launcher for all of your games. It has support "
|
|
||||||
"for importing games from Steam, Lutris, Heroic and more with no login "
|
|
||||||
"necessary. You can sort and hide games or download cover art from "
|
|
||||||
"SteamGridDB."
|
|
||||||
msgstr ""
|
|
||||||
"Kazety jsou jednoduchý spouštěč pro všechny vaše hry. Podporuje importovaní "
|
|
||||||
"her ze služeb Steam, Lutris, Heroic a dalších bez nutnosti přihlášení. Hry "
|
|
||||||
"můžete třídit a skrývat nebo stahovat obálky ze služby SteamGridDB."
|
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:30
|
|
||||||
msgid "Library"
|
|
||||||
msgstr "Knihovna"
|
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:34 src/details_window.py:67
|
|
||||||
msgid "Edit Game Details"
|
|
||||||
msgstr "Upravit podrobnosti o hře"
|
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:38 data/gtk/window.blp:71
|
|
||||||
msgid "Game Details"
|
|
||||||
msgstr "Podrobnosti o hře"
|
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:42 data/gtk/window.blp:416
|
|
||||||
#: src/details_window.py:239
|
|
||||||
msgid "Preferences"
|
|
||||||
msgstr "Předvolby"
|
|
||||||
|
|
||||||
#: data/gtk/details-window.blp:25
|
|
||||||
msgid "Cancel"
|
|
||||||
msgstr "Zrušit"
|
|
||||||
|
|
||||||
#: data/gtk/details-window.blp:57
|
|
||||||
msgid "New Cover"
|
|
||||||
msgstr "Nový obal"
|
|
||||||
|
|
||||||
#: data/gtk/details-window.blp:75
|
|
||||||
msgid "Delete Cover"
|
|
||||||
msgstr "Odstranit obal"
|
|
||||||
|
|
||||||
#: data/gtk/details-window.blp:101 data/gtk/details-window.blp:106
|
|
||||||
#: data/gtk/game.blp:80
|
|
||||||
msgid "Title"
|
|
||||||
msgstr "Název"
|
|
||||||
|
|
||||||
#: data/gtk/details-window.blp:102
|
|
||||||
msgid "The title of the game"
|
|
||||||
msgstr "Název hry"
|
|
||||||
|
|
||||||
#: data/gtk/details-window.blp:112 data/gtk/details-window.blp:117
|
|
||||||
msgid "Developer"
|
|
||||||
msgstr "Vývojář"
|
|
||||||
|
|
||||||
#: data/gtk/details-window.blp:113
|
|
||||||
msgid "The developer or publisher (optional)"
|
|
||||||
msgstr "Vývojář nebo vydavatel (nepovinné)"
|
|
||||||
|
|
||||||
#: data/gtk/details-window.blp:123 data/gtk/details-window.blp:155
|
|
||||||
msgid "Executable"
|
|
||||||
msgstr "Spustitelný soubor"
|
|
||||||
|
|
||||||
#: data/gtk/details-window.blp:124
|
|
||||||
msgid "File to open or command to run when launching the game"
|
|
||||||
msgstr "Soubor nebo příkaz pro spuštění hry"
|
|
||||||
|
|
||||||
#: data/gtk/details-window.blp:130
|
|
||||||
msgid "More Info"
|
|
||||||
msgstr "Více informací"
|
|
||||||
|
|
||||||
#: data/gtk/game.blp:102 data/gtk/game.blp:121 data/gtk/window.blp:195
|
|
||||||
msgid "Edit"
|
|
||||||
msgstr "Upravit"
|
|
||||||
|
|
||||||
#: data/gtk/game.blp:107 src/window.py:171
|
|
||||||
msgid "Hide"
|
|
||||||
msgstr "Skrýt"
|
|
||||||
|
|
||||||
#: data/gtk/game.blp:112 data/gtk/game.blp:131 data/gtk/preferences.blp:56
|
|
||||||
#: data/gtk/window.blp:209
|
|
||||||
msgid "Remove"
|
|
||||||
msgstr "Odstranit"
|
|
||||||
|
|
||||||
#: data/gtk/game.blp:126 src/window.py:173
|
|
||||||
msgid "Unhide"
|
|
||||||
msgstr "Odkrýt"
|
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:11 data/gtk/preferences.blp:9
|
|
||||||
msgid "General"
|
|
||||||
msgstr "Obecné"
|
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:14
|
|
||||||
msgid "Quit"
|
|
||||||
msgstr "Ukončit"
|
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:19 data/gtk/window.blp:217 data/gtk/window.blp:257
|
|
||||||
#: data/gtk/window.blp:323
|
|
||||||
msgid "Search"
|
|
||||||
msgstr "Vyhledávání"
|
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:24
|
|
||||||
msgid "Show preferences"
|
|
||||||
msgstr "Zobrazit předvolby"
|
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:29
|
|
||||||
msgid "Shortcuts"
|
|
||||||
msgstr "Zkratky"
|
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112
|
|
||||||
msgid "Undo"
|
|
||||||
msgstr "Zpět"
|
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:39
|
|
||||||
msgid "Open menu"
|
|
||||||
msgstr "Otevřít nabídku"
|
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:45
|
|
||||||
msgid "Games"
|
|
||||||
msgstr "Hry"
|
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:48
|
|
||||||
msgid "Add new game"
|
|
||||||
msgstr "Přidat novou hru"
|
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:53
|
|
||||||
msgid "Import games"
|
|
||||||
msgstr "Importovat hry"
|
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:58
|
|
||||||
msgid "Show hidden games"
|
|
||||||
msgstr "Zobrazit skryté hry"
|
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:63
|
|
||||||
msgid "Remove game"
|
|
||||||
msgstr "Odstranit hru"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268
|
|
||||||
msgid "Behavior"
|
|
||||||
msgstr "Chování"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:16
|
|
||||||
msgid "Exit After Launching Games"
|
|
||||||
msgstr "Ukončit po spuštění her"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:25
|
|
||||||
msgid "Cover Image Launches Game"
|
|
||||||
msgstr "Obrázek na obálce spouští hru"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:26
|
|
||||||
msgid "Swaps the behavior of the cover image and the play button"
|
|
||||||
msgstr "Vymění chování obrázku na obálce a tlačítka pro přehrávání"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:36 src/details_window.py:81
|
|
||||||
msgid "Images"
|
|
||||||
msgstr "Obrázky"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:39
|
|
||||||
msgid "High Quality Images"
|
|
||||||
msgstr "Vysoce kvalitní obrázky"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:40
|
|
||||||
msgid "Save game covers losslessly at the cost of storage"
|
|
||||||
msgstr "Ukládat obaly her bezztrátově na úkor většího místa na disku"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:50
|
|
||||||
msgid "Danger Zone"
|
|
||||||
msgstr "Nebezpečná zóna"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:53
|
|
||||||
msgid "Remove All Games"
|
|
||||||
msgstr "Odstranit všechny hry"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:85 data/gtk/window.blp:27 data/gtk/window.blp:442
|
|
||||||
msgid "Import"
|
|
||||||
msgstr "Import"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:89
|
|
||||||
msgid "Sources"
|
|
||||||
msgstr "Zdroje"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:92
|
|
||||||
msgid "Steam"
|
|
||||||
msgstr "Steam"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
|
||||||
#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192
|
|
||||||
#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220
|
|
||||||
#: data/gtk/preferences.blp:234
|
|
||||||
msgid "Install Location"
|
|
||||||
msgstr "Umístění instalace"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:106
|
|
||||||
msgid "Lutris"
|
|
||||||
msgstr "Lutris"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:119
|
|
||||||
msgid "Cache Location"
|
|
||||||
msgstr "Umístění dočasných souborů"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:128
|
|
||||||
msgid "Import Steam Games"
|
|
||||||
msgstr "Importovat Steam hry"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137
|
|
||||||
msgid "Import Flatpak Games"
|
|
||||||
msgstr "Importovat Flatpak hry"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:147
|
|
||||||
msgid "Heroic"
|
|
||||||
msgstr "Heroic"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:160
|
|
||||||
msgid "Import Epic Games"
|
|
||||||
msgstr "Importovat Epic Games hry"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:169
|
|
||||||
msgid "Import GOG Games"
|
|
||||||
msgstr "Importovat GOG hry"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:178
|
|
||||||
msgid "Import Sideloaded Games"
|
|
||||||
msgstr "Importovat ručně načtené hry"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:188
|
|
||||||
msgid "Bottles"
|
|
||||||
msgstr "Láhve"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:202
|
|
||||||
msgid "itch"
|
|
||||||
msgstr "itch"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
|
||||||
msgid "Legendary"
|
|
||||||
msgstr "Legendary"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:230
|
|
||||||
msgid "Flatpak"
|
|
||||||
msgstr "Flatpak"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:243
|
|
||||||
msgid "Import Game Launchers"
|
|
||||||
msgstr "Importovat spouštěče her"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:256
|
|
||||||
msgid "SteamGridDB"
|
|
||||||
msgstr "SteamGridDB"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260
|
|
||||||
msgid "Authentication"
|
|
||||||
msgstr "Ověření"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:263
|
|
||||||
msgid "API Key"
|
|
||||||
msgstr "Klíč API"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:271
|
|
||||||
msgid "Use SteamGridDB"
|
|
||||||
msgstr "Používat SteamGridDB"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:272
|
|
||||||
msgid "Download images when adding or importing games"
|
|
||||||
msgstr "Stahovat obrázky při přidávání nebo importování her"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:281
|
|
||||||
msgid "Prefer Over Official Images"
|
|
||||||
msgstr "Upřednostnit před oficiálními obrázky"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:290
|
|
||||||
msgid "Prefer Animated Images"
|
|
||||||
msgstr "Upřednostnit animované obrázky"
|
|
||||||
|
|
||||||
#: data/gtk/window.blp:6 data/gtk/window.blp:14
|
|
||||||
msgid "No Games Found"
|
|
||||||
msgstr "Nebyly nalezeny žádné hry"
|
|
||||||
|
|
||||||
#: data/gtk/window.blp:7 data/gtk/window.blp:15
|
|
||||||
msgid "Try a different search."
|
|
||||||
msgstr "Zkuste hledat něco jiného."
|
|
||||||
|
|
||||||
#: data/gtk/window.blp:21
|
|
||||||
msgid "No Games"
|
|
||||||
msgstr "Žádné hry"
|
|
||||||
|
|
||||||
#: data/gtk/window.blp:22
|
|
||||||
msgid "Use the + button to add games."
|
|
||||||
msgstr "Tlačítkem + můžete přidávat hry."
|
|
||||||
|
|
||||||
#: data/gtk/window.blp:40
|
|
||||||
msgid "No Hidden Games"
|
|
||||||
msgstr "Žádné skryté hry"
|
|
||||||
|
|
||||||
#: data/gtk/window.blp:41
|
|
||||||
msgid "Games you hide will appear here."
|
|
||||||
msgstr "Hry, které skryjete, se zobrazí zde."
|
|
||||||
|
|
||||||
#: data/gtk/window.blp:64 data/gtk/window.blp:304
|
|
||||||
msgid "Back"
|
|
||||||
msgstr "Zpět"
|
|
||||||
|
|
||||||
#: data/gtk/window.blp:121
|
|
||||||
msgid "Game Title"
|
|
||||||
msgstr "Název hry"
|
|
||||||
|
|
||||||
#: data/gtk/window.blp:176
|
|
||||||
msgid "Play"
|
|
||||||
msgstr "Hrát"
|
|
||||||
|
|
||||||
#: data/gtk/window.blp:243 data/gtk/window.blp:435
|
|
||||||
msgid "Add Game"
|
|
||||||
msgstr "Přidat hru"
|
|
||||||
|
|
||||||
#: data/gtk/window.blp:250 data/gtk/window.blp:316
|
|
||||||
msgid "Main Menu"
|
|
||||||
msgstr "Hlavní nabídka"
|
|
||||||
|
|
||||||
#: data/gtk/window.blp:311
|
|
||||||
msgid "Hidden Games"
|
|
||||||
msgstr "Skryté hry"
|
|
||||||
|
|
||||||
#: data/gtk/window.blp:374
|
|
||||||
msgid "Sort"
|
|
||||||
msgstr "Třídit"
|
|
||||||
|
|
||||||
#: data/gtk/window.blp:377
|
|
||||||
msgid "A-Z"
|
|
||||||
msgstr "A-Ž"
|
|
||||||
|
|
||||||
#: data/gtk/window.blp:383
|
|
||||||
msgid "Z-A"
|
|
||||||
msgstr "Ž-A"
|
|
||||||
|
|
||||||
#: data/gtk/window.blp:389
|
|
||||||
msgid "Newest"
|
|
||||||
msgstr "Nejnovější"
|
|
||||||
|
|
||||||
#: data/gtk/window.blp:395
|
|
||||||
msgid "Oldest"
|
|
||||||
msgstr "Nejstarší"
|
|
||||||
|
|
||||||
#: data/gtk/window.blp:401
|
|
||||||
msgid "Last Played"
|
|
||||||
msgstr "Naposledy hráno"
|
|
||||||
|
|
||||||
#: data/gtk/window.blp:408
|
|
||||||
msgid "Show Hidden"
|
|
||||||
msgstr "Zobrazit Skryté"
|
|
||||||
|
|
||||||
#: data/gtk/window.blp:421
|
|
||||||
msgid "Keyboard Shortcuts"
|
|
||||||
msgstr "Klávesové zkratky"
|
|
||||||
|
|
||||||
#: data/gtk/window.blp:426
|
|
||||||
msgid "About Cartridges"
|
|
||||||
msgstr "O Kazetách"
|
|
||||||
|
|
||||||
#. Translators: Replace this with your name for it to show up in the about window
|
|
||||||
#: src/main.py:180
|
|
||||||
msgid "translator_credits"
|
|
||||||
msgstr "ooo.i.love.foo"
|
|
||||||
|
|
||||||
#. The variable is the date when the game was added
|
|
||||||
#: src/window.py:194
|
|
||||||
msgid "Added: {}"
|
|
||||||
msgstr "Přidáno: {}"
|
|
||||||
|
|
||||||
#: src/window.py:197
|
|
||||||
msgid "Never"
|
|
||||||
msgstr "Nikdy"
|
|
||||||
|
|
||||||
#. The variable is the date when the game was last played
|
|
||||||
#: src/window.py:201
|
|
||||||
msgid "Last played: {}"
|
|
||||||
msgstr "Naposledy hráno: {}"
|
|
||||||
|
|
||||||
#: src/details_window.py:72
|
|
||||||
msgid "Apply"
|
|
||||||
msgstr "Použít"
|
|
||||||
|
|
||||||
#: src/details_window.py:78
|
|
||||||
msgid "Add New Game"
|
|
||||||
msgstr "Přidat novou hru"
|
|
||||||
|
|
||||||
#: src/details_window.py:79
|
|
||||||
msgid "Confirm"
|
|
||||||
msgstr "Potvrdit"
|
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
|
||||||
#: src/details_window.py:92
|
|
||||||
msgid "file.txt"
|
|
||||||
msgstr "soubor.txt"
|
|
||||||
|
|
||||||
#. As in software
|
|
||||||
#: src/details_window.py:94
|
|
||||||
msgid "program"
|
|
||||||
msgstr "program"
|
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
|
||||||
#: src/details_window.py:99 src/details_window.py:101
|
|
||||||
msgid "C:\\path\\to\\{}"
|
|
||||||
msgstr "C:\\cesta\\k\\{}"
|
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
|
||||||
#: src/details_window.py:105 src/details_window.py:107
|
|
||||||
msgid "/path/to/{}"
|
|
||||||
msgstr "/cesta/k/{}"
|
|
||||||
|
|
||||||
#: src/details_window.py:112
|
|
||||||
msgid ""
|
|
||||||
"To launch the executable \"{}\", use the command:\n"
|
|
||||||
"\n"
|
|
||||||
"<tt>\"{}\"</tt>\n"
|
|
||||||
"\n"
|
|
||||||
"To open the file \"{}\" with the default application, use:\n"
|
|
||||||
"\n"
|
|
||||||
"<tt>{} \"{}\"</tt>\n"
|
|
||||||
"\n"
|
|
||||||
"If the path contains spaces, make sure to wrap it in double quotes!"
|
|
||||||
msgstr ""
|
|
||||||
"Chcete-li spustit spustitelný soubor \"{}\", použijte příkaz:\n"
|
|
||||||
"\n"
|
|
||||||
"<tt>\"{}\"</tt>\n"
|
|
||||||
"\n"
|
|
||||||
"Chcete-li otevřít soubor \"{}\" pomocí výchozí aplikace, použijte příkaz:\n"
|
|
||||||
"\n"
|
|
||||||
"<tt>{} \"{}\"</tt>\n"
|
|
||||||
"\n"
|
|
||||||
"Pokud cesta obsahuje mezery, nezapomeňte ji zabalit do dvojitých uvozovek!"
|
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:153
|
|
||||||
msgid "Couldn't Add Game"
|
|
||||||
msgstr "Nelze přidat hru"
|
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:181
|
|
||||||
msgid "Game title cannot be empty."
|
|
||||||
msgstr "Název hry nemůže být prázdný."
|
|
||||||
|
|
||||||
#: src/details_window.py:153 src/details_window.py:189
|
|
||||||
msgid "Executable cannot be empty."
|
|
||||||
msgstr "Spustitelný soubor nemůže být prázdný."
|
|
||||||
|
|
||||||
#: src/details_window.py:180 src/details_window.py:188
|
|
||||||
msgid "Couldn't Apply Preferences"
|
|
||||||
msgstr "Nelze použít předvolby"
|
|
||||||
|
|
||||||
#. The variable is the title of the game
|
|
||||||
#: src/game.py:138
|
|
||||||
msgid "{} launched"
|
|
||||||
msgstr "{} spuštěno"
|
|
||||||
|
|
||||||
#. The variable is the title of the game
|
|
||||||
#: src/game.py:152
|
|
||||||
msgid "{} hidden"
|
|
||||||
msgstr "{} skryto"
|
|
||||||
|
|
||||||
#: src/game.py:152
|
|
||||||
msgid "{} unhidden"
|
|
||||||
msgstr "{} odkryto"
|
|
||||||
|
|
||||||
#: src/game.py:169
|
|
||||||
msgid "{} removed"
|
|
||||||
msgstr "{} odstraněno"
|
|
||||||
|
|
||||||
#: src/preferences.py:111
|
|
||||||
msgid "All games removed"
|
|
||||||
msgstr "Všechny hry odstraněny"
|
|
||||||
|
|
||||||
#: src/preferences.py:159
|
|
||||||
msgid ""
|
|
||||||
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
|
||||||
msgstr ""
|
|
||||||
"K používání služby SteamGridDB je vyžadován klíč API. Můžete si ho "
|
|
||||||
"vygenerovat {}zde{}."
|
|
||||||
|
|
||||||
#: src/preferences.py:284
|
|
||||||
msgid "Installation Not Found"
|
|
||||||
msgstr "Instalace nebyla nalezena"
|
|
||||||
|
|
||||||
#: src/preferences.py:286
|
|
||||||
msgid "Select a valid directory."
|
|
||||||
msgstr "Vyberte platný adresář."
|
|
||||||
|
|
||||||
#: src/preferences.py:348
|
|
||||||
msgid "Invalid Directory"
|
|
||||||
msgstr "Neplatný adresář"
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:352
|
|
||||||
msgid "Select the {} cache directory."
|
|
||||||
msgstr "Vyberte adresář {} mezipaměti."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:355
|
|
||||||
msgid "Select the {} configuration directory."
|
|
||||||
msgstr "Vyberte konfigurační adresář {}."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:358
|
|
||||||
msgid "Select the {} data directory."
|
|
||||||
msgstr "Vyberte datový adresář {}."
|
|
||||||
|
|
||||||
#: src/preferences.py:364
|
|
||||||
msgid "Set Location"
|
|
||||||
msgstr "Nastavit umístění"
|
|
||||||
|
|
||||||
#: src/utils/create_dialog.py:25
|
|
||||||
msgid "Dismiss"
|
|
||||||
msgstr "Zahodit"
|
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:47
|
|
||||||
msgid "Couldn't Authenticate SteamGridDB"
|
|
||||||
msgstr "Nelze ověřit SteamGridDB"
|
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:48
|
|
||||||
msgid "Verify your API key in preferences"
|
|
||||||
msgstr "Ověřte váš klíč API v předvolbách"
|
|
||||||
181
po/de.po
181
po/de.po
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Cartridges\n"
|
"Project-Id-Version: Cartridges\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-07-05 14:36+0200\n"
|
"POT-Creation-Date: 2023-06-26 12:01+0200\n"
|
||||||
"PO-Revision-Date: 2023-04-17 17:20+0000\n"
|
"PO-Revision-Date: 2023-04-17 17:20+0000\n"
|
||||||
"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n"
|
"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n"
|
||||||
"Language-Team: German <https://hosted.weblate.org/projects/cartridges/"
|
"Language-Team: German <https://hosted.weblate.org/projects/cartridges/"
|
||||||
@@ -22,7 +22,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
||||||
#: src/main.py:162
|
#: src/main.py:146
|
||||||
msgid "Cartridges"
|
msgid "Cartridges"
|
||||||
msgstr "Cartridges"
|
msgstr "Cartridges"
|
||||||
|
|
||||||
@@ -113,7 +113,7 @@ msgstr ""
|
|||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Bearbeiten"
|
msgstr "Bearbeiten"
|
||||||
|
|
||||||
#: data/gtk/game.blp:107 src/window.py:171
|
#: data/gtk/game.blp:107 src/window.py:169
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr "Verstecken"
|
msgstr "Verstecken"
|
||||||
|
|
||||||
@@ -122,7 +122,7 @@ msgstr "Verstecken"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Entfernen"
|
msgstr "Entfernen"
|
||||||
|
|
||||||
#: data/gtk/game.blp:126 src/window.py:173
|
#: data/gtk/game.blp:126 src/window.py:171
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr "Unverstecken"
|
msgstr "Unverstecken"
|
||||||
|
|
||||||
@@ -147,7 +147,7 @@ msgstr "Einstellungen anzeigen"
|
|||||||
msgid "Shortcuts"
|
msgid "Shortcuts"
|
||||||
msgstr "Kürzel"
|
msgstr "Kürzel"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112
|
#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Rückgängig"
|
msgstr "Rückgängig"
|
||||||
|
|
||||||
@@ -175,7 +175,7 @@ msgstr "Ausgeblendete Spiele anzeigen"
|
|||||||
msgid "Remove game"
|
msgid "Remove game"
|
||||||
msgstr "Spiel entfernen"
|
msgstr "Spiel entfernen"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr "Verhalten"
|
msgstr "Verhalten"
|
||||||
|
|
||||||
@@ -224,9 +224,8 @@ msgid "Steam"
|
|||||||
msgstr "Steam"
|
msgstr "Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
||||||
#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192
|
#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183
|
||||||
#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220
|
#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211
|
||||||
#: data/gtk/preferences.blp:234
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "itch Install Location"
|
#| msgid "itch Install Location"
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
@@ -246,75 +245,59 @@ msgstr "Lutris-Cacheort"
|
|||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr "Steam-Spiele importieren"
|
msgstr "Steam-Spiele importieren"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137
|
#: data/gtk/preferences.blp:138
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Import Steam Games"
|
|
||||||
msgid "Import Flatpak Games"
|
|
||||||
msgstr "Steam-Spiele importieren"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:147
|
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
msgstr "Heroic"
|
msgstr "Heroic"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:160
|
#: data/gtk/preferences.blp:151
|
||||||
msgid "Import Epic Games"
|
msgid "Import Epic Games"
|
||||||
msgstr "Epic Games importieren"
|
msgstr "Epic Games importieren"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:169
|
#: data/gtk/preferences.blp:160
|
||||||
msgid "Import GOG Games"
|
msgid "Import GOG Games"
|
||||||
msgstr "GOG-Spiele importieren"
|
msgstr "GOG-Spiele importieren"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:178
|
#: data/gtk/preferences.blp:169
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr "Sideloaded-Spiele importieren"
|
msgstr "Sideloaded-Spiele importieren"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:188
|
#: data/gtk/preferences.blp:179
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr "Bottles"
|
msgstr "Bottles"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:202
|
#: data/gtk/preferences.blp:193
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr "itch"
|
msgstr "itch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
#: data/gtk/preferences.blp:207
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:230
|
#: data/gtk/preferences.blp:224
|
||||||
msgid "Flatpak"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:243
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Game Launcher"
|
|
||||||
msgid "Import Game Launchers"
|
|
||||||
msgstr "Spiele-Launcher"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:256
|
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
msgstr "SteamGridDB"
|
msgstr "SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Authentication"
|
msgid "Authentication"
|
||||||
msgstr "Authentifizierung"
|
msgstr "Authentifizierung"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:263
|
#: data/gtk/preferences.blp:231
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr "API-Schlüssel"
|
msgstr "API-Schlüssel"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:271
|
#: data/gtk/preferences.blp:239
|
||||||
msgid "Use SteamGridDB"
|
msgid "Use SteamGridDB"
|
||||||
msgstr "SteamGridDB benutzen"
|
msgstr "SteamGridDB benutzen"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:272
|
#: data/gtk/preferences.blp:240
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr "Lade Bilder herunter, wenn Spiele hinzugefügt oder importiert werden"
|
msgstr "Lade Bilder herunter, wenn Spiele hinzugefügt oder importiert werden"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:281
|
#: data/gtk/preferences.blp:249
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr "Über offizielien Images bevorzugen"
|
msgstr "Über offizielien Images bevorzugen"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:290
|
#: data/gtk/preferences.blp:258
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr "Animierte Bilder bevorzugen"
|
msgstr "Animierte Bilder bevorzugen"
|
||||||
|
|
||||||
@@ -403,21 +386,21 @@ msgid "About Cartridges"
|
|||||||
msgstr "Über Cartridges"
|
msgstr "Über Cartridges"
|
||||||
|
|
||||||
#. Translators: Replace this with your name for it to show up in the about window
|
#. Translators: Replace this with your name for it to show up in the about window
|
||||||
#: src/main.py:180
|
#: src/main.py:164
|
||||||
msgid "translator_credits"
|
msgid "translator_credits"
|
||||||
msgstr "Feliks Weber"
|
msgstr "Feliks Weber"
|
||||||
|
|
||||||
#. The variable is the date when the game was added
|
#. The variable is the date when the game was added
|
||||||
#: src/window.py:194
|
#: src/window.py:192
|
||||||
msgid "Added: {}"
|
msgid "Added: {}"
|
||||||
msgstr "Hinzugefügt: {}"
|
msgstr "Hinzugefügt: {}"
|
||||||
|
|
||||||
#: src/window.py:197
|
#: src/window.py:195
|
||||||
msgid "Never"
|
msgid "Never"
|
||||||
msgstr "Nie"
|
msgstr "Nie"
|
||||||
|
|
||||||
#. The variable is the date when the game was last played
|
#. The variable is the date when the game was last played
|
||||||
#: src/window.py:201
|
#: src/window.py:199
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr "Zuletzt gespielt: {}"
|
msgstr "Zuletzt gespielt: {}"
|
||||||
|
|
||||||
@@ -434,26 +417,26 @@ msgid "Confirm"
|
|||||||
msgstr "Bestätigen"
|
msgstr "Bestätigen"
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: src/details_window.py:92
|
#: src/details_window.py:91
|
||||||
msgid "file.txt"
|
msgid "file.txt"
|
||||||
msgstr "datei.txt"
|
msgstr "datei.txt"
|
||||||
|
|
||||||
#. As in software
|
#. As in software
|
||||||
#: src/details_window.py:94
|
#: src/details_window.py:93
|
||||||
msgid "program"
|
msgid "program"
|
||||||
msgstr "Programm"
|
msgstr "Programm"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:99 src/details_window.py:101
|
#: src/details_window.py:98 src/details_window.py:100
|
||||||
msgid "C:\\path\\to\\{}"
|
msgid "C:\\path\\to\\{}"
|
||||||
msgstr "C:\\pfad\\zu\\{}"
|
msgstr "C:\\pfad\\zu\\{}"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:105 src/details_window.py:107
|
#: src/details_window.py:104 src/details_window.py:106
|
||||||
msgid "/path/to/{}"
|
msgid "/path/to/{}"
|
||||||
msgstr "/pfad/zu/{}"
|
msgstr "/pfad/zu/{}"
|
||||||
|
|
||||||
#: src/details_window.py:112
|
#: src/details_window.py:111
|
||||||
msgid ""
|
msgid ""
|
||||||
"To launch the executable \"{}\", use the command:\n"
|
"To launch the executable \"{}\", use the command:\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -476,15 +459,15 @@ msgstr ""
|
|||||||
"Falls der Pfad Leerzeichen enthält, stelle sicher ihn in doppelte "
|
"Falls der Pfad Leerzeichen enthält, stelle sicher ihn in doppelte "
|
||||||
"Anführungszeichen zu setzen!"
|
"Anführungszeichen zu setzen!"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:153
|
#: src/details_window.py:146 src/details_window.py:152
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
msgstr "Konnte Spiel nicht hinzufügen"
|
msgstr "Konnte Spiel nicht hinzufügen"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:181
|
#: src/details_window.py:146 src/details_window.py:181
|
||||||
msgid "Game title cannot be empty."
|
msgid "Game title cannot be empty."
|
||||||
msgstr "Spieltitel kann nicht leer sein."
|
msgstr "Spieltitel kann nicht leer sein."
|
||||||
|
|
||||||
#: src/details_window.py:153 src/details_window.py:189
|
#: src/details_window.py:152 src/details_window.py:189
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr "Ausführbare Datei darf nicht leer sein."
|
msgstr "Ausführbare Datei darf nicht leer sein."
|
||||||
|
|
||||||
@@ -493,72 +476,35 @@ msgid "Couldn't Apply Preferences"
|
|||||||
msgstr "Einstellungen konnten nicht angewendet werden"
|
msgstr "Einstellungen konnten nicht angewendet werden"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:138
|
#: src/game.py:141
|
||||||
msgid "{} launched"
|
msgid "{} launched"
|
||||||
msgstr "{} gestartet"
|
msgstr "{} gestartet"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr "{} versteckt"
|
msgstr "{} versteckt"
|
||||||
|
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} unhidden"
|
msgid "{} unhidden"
|
||||||
msgstr "{} unversteckt"
|
msgstr "{} unversteckt"
|
||||||
|
|
||||||
#: src/game.py:169
|
#: src/game.py:171
|
||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr "{} entfernt"
|
msgstr "{} entfernt"
|
||||||
|
|
||||||
#: src/preferences.py:111
|
#: src/preferences.py:102
|
||||||
msgid "All games removed"
|
msgid "All games removed"
|
||||||
msgstr "Alle Spiele entfernt"
|
msgstr "Alle Spiele entfernt"
|
||||||
|
|
||||||
#: src/preferences.py:159
|
#: src/preferences.py:149
|
||||||
msgid ""
|
msgid ""
|
||||||
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Für die Nutzung von SteamGridDB ist ein API-Schlüssel erforderlich. Sie "
|
"Für die Nutzung von SteamGridDB ist ein API-Schlüssel erforderlich. Sie "
|
||||||
"können ihn {}hier{} generieren."
|
"können ihn {}hier{} generieren."
|
||||||
|
|
||||||
#: src/preferences.py:284
|
#: src/preferences.py:289
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Installation Not Found"
|
|
||||||
msgid "Installation Not Found"
|
|
||||||
msgstr "Installation nicht gefunden"
|
|
||||||
|
|
||||||
#: src/preferences.py:286
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Select the {} data directory."
|
|
||||||
msgid "Select a valid directory."
|
|
||||||
msgstr "Wähle das Datenverzeichnis von {} aus."
|
|
||||||
|
|
||||||
#: src/preferences.py:348
|
|
||||||
msgid "Invalid Directory"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:352
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Select the {} data directory."
|
|
||||||
msgid "Select the {} cache directory."
|
|
||||||
msgstr "Wähle das Datenverzeichnis von {} aus."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:355
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Select the {} configuration directory."
|
|
||||||
msgid "Select the {} configuration directory."
|
|
||||||
msgstr "Wähle das Konfigurationsverzeichnis von {} aus."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:358
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Select the {} data directory."
|
|
||||||
msgid "Select the {} data directory."
|
|
||||||
msgstr "Wähle das Datenverzeichnis von {} aus."
|
|
||||||
|
|
||||||
#: src/preferences.py:364
|
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
msgstr "Ort festlegen"
|
msgstr "Ort festlegen"
|
||||||
|
|
||||||
@@ -566,6 +512,29 @@ msgstr "Ort festlegen"
|
|||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
msgstr "Verstanden"
|
msgstr "Verstanden"
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:106
|
||||||
|
msgid "Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:107
|
||||||
|
msgid "Cache"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:108
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Confirm"
|
||||||
|
msgid "Configuration"
|
||||||
|
msgstr "Bestätigen"
|
||||||
|
|
||||||
|
#. The variables are the type of location (eg. cache) and the source's name (eg. Steam)
|
||||||
|
#: src/importer/sources/source.py:119
|
||||||
|
msgid "Invalid {} Location for {{}}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:120
|
||||||
|
msgid "Pick a new one or disable the source in preferences"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:47
|
#: src/store/managers/sgdb_manager.py:47
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Couldn't Connect to SteamGridDB"
|
#| msgid "Couldn't Connect to SteamGridDB"
|
||||||
@@ -576,16 +545,6 @@ msgstr "Verbindung zu SteamGridDB konnte nicht hergestellt werden"
|
|||||||
msgid "Verify your API key in preferences"
|
msgid "Verify your API key in preferences"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "Cache Not Found"
|
|
||||||
#~ msgid "Directory not Valid"
|
|
||||||
#~ msgstr "Cache nicht gefunden"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "Confirm"
|
|
||||||
#~ msgid "Configuration"
|
|
||||||
#~ msgstr "Bestätigen"
|
|
||||||
|
|
||||||
#~ msgid "Steam Install Location"
|
#~ msgid "Steam Install Location"
|
||||||
#~ msgstr "Steam-Installationsort"
|
#~ msgstr "Steam-Installationsort"
|
||||||
|
|
||||||
@@ -604,9 +563,21 @@ msgstr ""
|
|||||||
#~ msgid "Yesterday"
|
#~ msgid "Yesterday"
|
||||||
#~ msgstr "Gestern"
|
#~ msgstr "Gestern"
|
||||||
|
|
||||||
|
#~ msgid "Cache Not Found"
|
||||||
|
#~ msgstr "Cache nicht gefunden"
|
||||||
|
|
||||||
#~ msgid "Select the Lutris cache directory."
|
#~ msgid "Select the Lutris cache directory."
|
||||||
#~ msgstr "Wähle das Lutris-Cache-Verzeichnis aus."
|
#~ msgstr "Wähle das Lutris-Cache-Verzeichnis aus."
|
||||||
|
|
||||||
|
#~ msgid "Installation Not Found"
|
||||||
|
#~ msgstr "Installation nicht gefunden"
|
||||||
|
|
||||||
|
#~ msgid "Select the {} configuration directory."
|
||||||
|
#~ msgstr "Wähle das Konfigurationsverzeichnis von {} aus."
|
||||||
|
|
||||||
|
#~ msgid "Select the {} data directory."
|
||||||
|
#~ msgstr "Wähle das Datenverzeichnis von {} aus."
|
||||||
|
|
||||||
#~ msgid "Importing Games…"
|
#~ msgid "Importing Games…"
|
||||||
#~ msgstr "Spiele werden importiert…"
|
#~ msgstr "Spiele werden importiert…"
|
||||||
|
|
||||||
|
|||||||
181
po/el.po
181
po/el.po
@@ -6,7 +6,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Cartridges\n"
|
"Project-Id-Version: Cartridges\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-07-05 14:36+0200\n"
|
"POT-Creation-Date: 2023-06-26 12:01+0200\n"
|
||||||
"PO-Revision-Date: 2023-05-29 18:48+0000\n"
|
"PO-Revision-Date: 2023-05-29 18:48+0000\n"
|
||||||
"Last-Translator: yiannis ioannides <sub@wai.ai>\n"
|
"Last-Translator: yiannis ioannides <sub@wai.ai>\n"
|
||||||
"Language-Team: Greek <https://hosted.weblate.org/projects/cartridges/"
|
"Language-Team: Greek <https://hosted.weblate.org/projects/cartridges/"
|
||||||
@@ -20,7 +20,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
||||||
#: src/main.py:162
|
#: src/main.py:146
|
||||||
msgid "Cartridges"
|
msgid "Cartridges"
|
||||||
msgstr "Κασέτες"
|
msgstr "Κασέτες"
|
||||||
|
|
||||||
@@ -113,7 +113,7 @@ msgstr "Περισσότερες Πληροφορίες"
|
|||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Επεξεργασία"
|
msgstr "Επεξεργασία"
|
||||||
|
|
||||||
#: data/gtk/game.blp:107 src/window.py:171
|
#: data/gtk/game.blp:107 src/window.py:169
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr "Απόκρυψη"
|
msgstr "Απόκρυψη"
|
||||||
|
|
||||||
@@ -122,7 +122,7 @@ msgstr "Απόκρυψη"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Αφαίρεση"
|
msgstr "Αφαίρεση"
|
||||||
|
|
||||||
#: data/gtk/game.blp:126 src/window.py:173
|
#: data/gtk/game.blp:126 src/window.py:171
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr "Φανέρωση"
|
msgstr "Φανέρωση"
|
||||||
|
|
||||||
@@ -147,7 +147,7 @@ msgstr "Εμφάνιση προτιμήσεων"
|
|||||||
msgid "Shortcuts"
|
msgid "Shortcuts"
|
||||||
msgstr "Συντομεύσεις"
|
msgstr "Συντομεύσεις"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112
|
#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Αναίρεση"
|
msgstr "Αναίρεση"
|
||||||
|
|
||||||
@@ -175,7 +175,7 @@ msgstr "Εμφάνιση κρυμμένων παιχνιδιών"
|
|||||||
msgid "Remove game"
|
msgid "Remove game"
|
||||||
msgstr "Αφαίρεση παιχνιδιού"
|
msgstr "Αφαίρεση παιχνιδιού"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr "Συμπεριφορά"
|
msgstr "Συμπεριφορά"
|
||||||
|
|
||||||
@@ -225,9 +225,8 @@ msgid "Steam"
|
|||||||
msgstr "Steam"
|
msgstr "Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
||||||
#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192
|
#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183
|
||||||
#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220
|
#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211
|
||||||
#: data/gtk/preferences.blp:234
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "itch Install Location"
|
#| msgid "itch Install Location"
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
@@ -247,75 +246,59 @@ msgstr "Τοποθεσία cache του Lutris"
|
|||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr "Εισαγωγή Παιχνιδιών Steam"
|
msgstr "Εισαγωγή Παιχνιδιών Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137
|
#: data/gtk/preferences.blp:138
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Import Steam Games"
|
|
||||||
msgid "Import Flatpak Games"
|
|
||||||
msgstr "Εισαγωγή Παιχνιδιών Steam"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:147
|
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
msgstr "Heroic"
|
msgstr "Heroic"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:160
|
#: data/gtk/preferences.blp:151
|
||||||
msgid "Import Epic Games"
|
msgid "Import Epic Games"
|
||||||
msgstr "Εισαγωγή Παιχνιδιών Epic"
|
msgstr "Εισαγωγή Παιχνιδιών Epic"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:169
|
#: data/gtk/preferences.blp:160
|
||||||
msgid "Import GOG Games"
|
msgid "Import GOG Games"
|
||||||
msgstr "Εισαγωγή Παιχνιδιών GOG"
|
msgstr "Εισαγωγή Παιχνιδιών GOG"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:178
|
#: data/gtk/preferences.blp:169
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr "Εισαγωγή Παιχνιδιών Μέσω Sideloading"
|
msgstr "Εισαγωγή Παιχνιδιών Μέσω Sideloading"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:188
|
#: data/gtk/preferences.blp:179
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr "Bottles"
|
msgstr "Bottles"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:202
|
#: data/gtk/preferences.blp:193
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr "itch"
|
msgstr "itch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
#: data/gtk/preferences.blp:207
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:230
|
#: data/gtk/preferences.blp:224
|
||||||
msgid "Flatpak"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:243
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Game Launcher"
|
|
||||||
msgid "Import Game Launchers"
|
|
||||||
msgstr "Πρόγραμμα Εκκίνησης Παιχνιδιών"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:256
|
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
msgstr "SteamGridDB"
|
msgstr "SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Authentication"
|
msgid "Authentication"
|
||||||
msgstr "Επιβεβαίωση"
|
msgstr "Επιβεβαίωση"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:263
|
#: data/gtk/preferences.blp:231
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr "Κλειδί API"
|
msgstr "Κλειδί API"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:271
|
#: data/gtk/preferences.blp:239
|
||||||
msgid "Use SteamGridDB"
|
msgid "Use SteamGridDB"
|
||||||
msgstr "Χρήση SteamGridDB"
|
msgstr "Χρήση SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:272
|
#: data/gtk/preferences.blp:240
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr "Λήψη εικόνων κατά τη διάρκεια πρόσθεσης ή εισαγωγής παιχνιδιών"
|
msgstr "Λήψη εικόνων κατά τη διάρκεια πρόσθεσης ή εισαγωγής παιχνιδιών"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:281
|
#: data/gtk/preferences.blp:249
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr "Προτίμηση Επίσημων Εικόνων"
|
msgstr "Προτίμηση Επίσημων Εικόνων"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:290
|
#: data/gtk/preferences.blp:258
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr "Προτίμηση Κινούμενων Εικόνων"
|
msgstr "Προτίμηση Κινούμενων Εικόνων"
|
||||||
|
|
||||||
@@ -404,21 +387,21 @@ msgid "About Cartridges"
|
|||||||
msgstr "Σχετικά με τις Κασέτες"
|
msgstr "Σχετικά με τις Κασέτες"
|
||||||
|
|
||||||
#. Translators: Replace this with your name for it to show up in the about window
|
#. Translators: Replace this with your name for it to show up in the about window
|
||||||
#: src/main.py:180
|
#: src/main.py:164
|
||||||
msgid "translator_credits"
|
msgid "translator_credits"
|
||||||
msgstr "Yiannis Ioannides"
|
msgstr "Yiannis Ioannides"
|
||||||
|
|
||||||
#. The variable is the date when the game was added
|
#. The variable is the date when the game was added
|
||||||
#: src/window.py:194
|
#: src/window.py:192
|
||||||
msgid "Added: {}"
|
msgid "Added: {}"
|
||||||
msgstr "Προστέθηκε: {}"
|
msgstr "Προστέθηκε: {}"
|
||||||
|
|
||||||
#: src/window.py:197
|
#: src/window.py:195
|
||||||
msgid "Never"
|
msgid "Never"
|
||||||
msgstr "Ποτέ"
|
msgstr "Ποτέ"
|
||||||
|
|
||||||
#. The variable is the date when the game was last played
|
#. The variable is the date when the game was last played
|
||||||
#: src/window.py:201
|
#: src/window.py:199
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr "Τελευταία αναπαραγωγή: {}"
|
msgstr "Τελευταία αναπαραγωγή: {}"
|
||||||
|
|
||||||
@@ -435,26 +418,26 @@ msgid "Confirm"
|
|||||||
msgstr "Επιβεβαίωση"
|
msgstr "Επιβεβαίωση"
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: src/details_window.py:92
|
#: src/details_window.py:91
|
||||||
msgid "file.txt"
|
msgid "file.txt"
|
||||||
msgstr "αρχειο.txt"
|
msgstr "αρχειο.txt"
|
||||||
|
|
||||||
#. As in software
|
#. As in software
|
||||||
#: src/details_window.py:94
|
#: src/details_window.py:93
|
||||||
msgid "program"
|
msgid "program"
|
||||||
msgstr "Πρόγραμμα"
|
msgstr "Πρόγραμμα"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:99 src/details_window.py:101
|
#: src/details_window.py:98 src/details_window.py:100
|
||||||
msgid "C:\\path\\to\\{}"
|
msgid "C:\\path\\to\\{}"
|
||||||
msgstr "C:\\προς\\φάκελο\\{}"
|
msgstr "C:\\προς\\φάκελο\\{}"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:105 src/details_window.py:107
|
#: src/details_window.py:104 src/details_window.py:106
|
||||||
msgid "/path/to/{}"
|
msgid "/path/to/{}"
|
||||||
msgstr "/προς/φάκελο/{}"
|
msgstr "/προς/φάκελο/{}"
|
||||||
|
|
||||||
#: src/details_window.py:112
|
#: src/details_window.py:111
|
||||||
msgid ""
|
msgid ""
|
||||||
"To launch the executable \"{}\", use the command:\n"
|
"To launch the executable \"{}\", use the command:\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -478,15 +461,15 @@ msgstr ""
|
|||||||
"Αν η διεύθυνση φακέλου περιέχει κενά, φροντίστε να την περικλείσετε σε διπλά "
|
"Αν η διεύθυνση φακέλου περιέχει κενά, φροντίστε να την περικλείσετε σε διπλά "
|
||||||
"εισαγωγικά!"
|
"εισαγωγικά!"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:153
|
#: src/details_window.py:146 src/details_window.py:152
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
msgstr "Αδυναμία προσθήκης παιχνιδιού"
|
msgstr "Αδυναμία προσθήκης παιχνιδιού"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:181
|
#: src/details_window.py:146 src/details_window.py:181
|
||||||
msgid "Game title cannot be empty."
|
msgid "Game title cannot be empty."
|
||||||
msgstr "Ο τίτλος παιχνιδιού δεν μπορεί να είναι κενός."
|
msgstr "Ο τίτλος παιχνιδιού δεν μπορεί να είναι κενός."
|
||||||
|
|
||||||
#: src/details_window.py:153 src/details_window.py:189
|
#: src/details_window.py:152 src/details_window.py:189
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr "Η εφαρμογή δεν μπορεί να είναι κενή."
|
msgstr "Η εφαρμογή δεν μπορεί να είναι κενή."
|
||||||
|
|
||||||
@@ -495,72 +478,35 @@ msgid "Couldn't Apply Preferences"
|
|||||||
msgstr "Αδυναμία Εφαρμογής Προτιμήσεων"
|
msgstr "Αδυναμία Εφαρμογής Προτιμήσεων"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:138
|
#: src/game.py:141
|
||||||
msgid "{} launched"
|
msgid "{} launched"
|
||||||
msgstr "{} εκκινήθη"
|
msgstr "{} εκκινήθη"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr "{} αποκρύφθηκε"
|
msgstr "{} αποκρύφθηκε"
|
||||||
|
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} unhidden"
|
msgid "{} unhidden"
|
||||||
msgstr "{} φανερώθηκε"
|
msgstr "{} φανερώθηκε"
|
||||||
|
|
||||||
#: src/game.py:169
|
#: src/game.py:171
|
||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr "{} αφαιρέθηκε"
|
msgstr "{} αφαιρέθηκε"
|
||||||
|
|
||||||
#: src/preferences.py:111
|
#: src/preferences.py:102
|
||||||
msgid "All games removed"
|
msgid "All games removed"
|
||||||
msgstr "Όλα τα παιχνίδια αφαιρέθηκαν"
|
msgstr "Όλα τα παιχνίδια αφαιρέθηκαν"
|
||||||
|
|
||||||
#: src/preferences.py:159
|
#: src/preferences.py:149
|
||||||
msgid ""
|
msgid ""
|
||||||
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Για τη χρήση του SteamGridDB απαιτείται ένα κλειδί API. Μπορείτε να "
|
"Για τη χρήση του SteamGridDB απαιτείται ένα κλειδί API. Μπορείτε να "
|
||||||
"δημιουργήσετε ένα {}εδώ{}."
|
"δημιουργήσετε ένα {}εδώ{}."
|
||||||
|
|
||||||
#: src/preferences.py:284
|
#: src/preferences.py:289
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Installation Not Found"
|
|
||||||
msgid "Installation Not Found"
|
|
||||||
msgstr "Η εγκατάσταση δεν βρέθηκε"
|
|
||||||
|
|
||||||
#: src/preferences.py:286
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Select the {} data directory."
|
|
||||||
msgid "Select a valid directory."
|
|
||||||
msgstr "Επιλέξτε τον κατάλογο δεδομένων {}."
|
|
||||||
|
|
||||||
#: src/preferences.py:348
|
|
||||||
msgid "Invalid Directory"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:352
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Select the {} data directory."
|
|
||||||
msgid "Select the {} cache directory."
|
|
||||||
msgstr "Επιλέξτε τον κατάλογο δεδομένων {}."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:355
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Select the {} configuration directory."
|
|
||||||
msgid "Select the {} configuration directory."
|
|
||||||
msgstr "Επιλέξτε τον κατάλογο διαμόρφωσης {}."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:358
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Select the {} data directory."
|
|
||||||
msgid "Select the {} data directory."
|
|
||||||
msgstr "Επιλέξτε τον κατάλογο δεδομένων {}."
|
|
||||||
|
|
||||||
#: src/preferences.py:364
|
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
msgstr "Ορίστε Τοποθεσία"
|
msgstr "Ορίστε Τοποθεσία"
|
||||||
|
|
||||||
@@ -568,6 +514,29 @@ msgstr "Ορίστε Τοποθεσία"
|
|||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
msgstr "Απόρριψη"
|
msgstr "Απόρριψη"
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:106
|
||||||
|
msgid "Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:107
|
||||||
|
msgid "Cache"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:108
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Confirm"
|
||||||
|
msgid "Configuration"
|
||||||
|
msgstr "Επιβεβαίωση"
|
||||||
|
|
||||||
|
#. The variables are the type of location (eg. cache) and the source's name (eg. Steam)
|
||||||
|
#: src/importer/sources/source.py:119
|
||||||
|
msgid "Invalid {} Location for {{}}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:120
|
||||||
|
msgid "Pick a new one or disable the source in preferences"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:47
|
#: src/store/managers/sgdb_manager.py:47
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Couldn't Connect to SteamGridDB"
|
#| msgid "Couldn't Connect to SteamGridDB"
|
||||||
@@ -578,16 +547,6 @@ msgstr "Η σύνδεση στο SteamGridDB δεν μπόρεσε να πραγ
|
|||||||
msgid "Verify your API key in preferences"
|
msgid "Verify your API key in preferences"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "Cache Not Found"
|
|
||||||
#~ msgid "Directory not Valid"
|
|
||||||
#~ msgstr "Τα cache δεν βρέθηκαν"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "Confirm"
|
|
||||||
#~ msgid "Configuration"
|
|
||||||
#~ msgstr "Επιβεβαίωση"
|
|
||||||
|
|
||||||
#~ msgid "Steam Install Location"
|
#~ msgid "Steam Install Location"
|
||||||
#~ msgstr "Τοποθεσία Εγκατάστασης Steam"
|
#~ msgstr "Τοποθεσία Εγκατάστασης Steam"
|
||||||
|
|
||||||
@@ -606,9 +565,21 @@ msgstr ""
|
|||||||
#~ msgid "Yesterday"
|
#~ msgid "Yesterday"
|
||||||
#~ msgstr "Χθες"
|
#~ msgstr "Χθες"
|
||||||
|
|
||||||
|
#~ msgid "Cache Not Found"
|
||||||
|
#~ msgstr "Τα cache δεν βρέθηκαν"
|
||||||
|
|
||||||
#~ msgid "Select the Lutris cache directory."
|
#~ msgid "Select the Lutris cache directory."
|
||||||
#~ msgstr "Επιλέξτε τη τοποθεσία cache του Lutris."
|
#~ msgstr "Επιλέξτε τη τοποθεσία cache του Lutris."
|
||||||
|
|
||||||
|
#~ msgid "Installation Not Found"
|
||||||
|
#~ msgstr "Η εγκατάσταση δεν βρέθηκε"
|
||||||
|
|
||||||
|
#~ msgid "Select the {} configuration directory."
|
||||||
|
#~ msgstr "Επιλέξτε τον κατάλογο διαμόρφωσης {}."
|
||||||
|
|
||||||
|
#~ msgid "Select the {} data directory."
|
||||||
|
#~ msgstr "Επιλέξτε τον κατάλογο δεδομένων {}."
|
||||||
|
|
||||||
#~ msgid "Importing Games…"
|
#~ msgid "Importing Games…"
|
||||||
#~ msgstr "Εισαγωγή παιχνιδιών…"
|
#~ msgstr "Εισαγωγή παιχνιδιών…"
|
||||||
|
|
||||||
|
|||||||
214
po/es.po
214
po/es.po
@@ -8,10 +8,9 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: cartridges\n"
|
"Project-Id-Version: cartridges\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-07-05 14:36+0200\n"
|
"POT-Creation-Date: 2023-06-26 12:01+0200\n"
|
||||||
"PO-Revision-Date: 2023-07-08 14:52+0000\n"
|
"PO-Revision-Date: 2023-05-28 10:11+0000\n"
|
||||||
"Last-Translator: Óscar Fernández Díaz <oscfdezdz@users.noreply.hosted.weblate"
|
"Last-Translator: gallegonovato <fran-carro@hotmail.es>\n"
|
||||||
".org>\n"
|
|
||||||
"Language-Team: Spanish <https://hosted.weblate.org/projects/cartridges/"
|
"Language-Team: Spanish <https://hosted.weblate.org/projects/cartridges/"
|
||||||
"cartridges/es/>\n"
|
"cartridges/es/>\n"
|
||||||
"Language: es\n"
|
"Language: es\n"
|
||||||
@@ -19,11 +18,11 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
"X-Generator: Weblate 5.0-dev\n"
|
"X-Generator: Weblate 4.18-dev\n"
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
||||||
#: src/main.py:162
|
#: src/main.py:146
|
||||||
msgid "Cartridges"
|
msgid "Cartridges"
|
||||||
msgstr "Cartuchos"
|
msgstr "Cartuchos"
|
||||||
|
|
||||||
@@ -47,9 +46,9 @@ msgid ""
|
|||||||
"necessary. You can sort and hide games or download cover art from "
|
"necessary. You can sort and hide games or download cover art from "
|
||||||
"SteamGridDB."
|
"SteamGridDB."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Cartuchos es un sencillo lanzador de juegos para todos sus juegos. Tiene "
|
"Cartridges es un lanzador simple para todos tus juegos. Admite la "
|
||||||
"soporte para importar juegos de Steam, Lutris, Heroic y más sin necesidad de "
|
"importación de tus juegos de Steam, Lutris, Heroic y más sin necesidad de "
|
||||||
"iniciar sesión. Puede ordenar y ocultar juegos o descargar portadas de "
|
"una cuenta. Puedes ordenar y ocultar juegos, o descargar carátulas de "
|
||||||
"SteamGridDB."
|
"SteamGridDB."
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:30
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:30
|
||||||
@@ -75,11 +74,11 @@ msgstr "Cancelar"
|
|||||||
|
|
||||||
#: data/gtk/details-window.blp:57
|
#: data/gtk/details-window.blp:57
|
||||||
msgid "New Cover"
|
msgid "New Cover"
|
||||||
msgstr "Portada nueva"
|
msgstr "Nueva caratula"
|
||||||
|
|
||||||
#: data/gtk/details-window.blp:75
|
#: data/gtk/details-window.blp:75
|
||||||
msgid "Delete Cover"
|
msgid "Delete Cover"
|
||||||
msgstr "Borrar portada"
|
msgstr "Borrar la caratula"
|
||||||
|
|
||||||
#: data/gtk/details-window.blp:101 data/gtk/details-window.blp:106
|
#: data/gtk/details-window.blp:101 data/gtk/details-window.blp:106
|
||||||
#: data/gtk/game.blp:80
|
#: data/gtk/game.blp:80
|
||||||
@@ -114,7 +113,7 @@ msgstr "Más información"
|
|||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Editar"
|
msgstr "Editar"
|
||||||
|
|
||||||
#: data/gtk/game.blp:107 src/window.py:171
|
#: data/gtk/game.blp:107 src/window.py:169
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr "Ocultar"
|
msgstr "Ocultar"
|
||||||
|
|
||||||
@@ -123,9 +122,9 @@ msgstr "Ocultar"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Eliminar"
|
msgstr "Eliminar"
|
||||||
|
|
||||||
#: data/gtk/game.blp:126 src/window.py:173
|
#: data/gtk/game.blp:126 src/window.py:171
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr "Desocultar"
|
msgstr "Mostrar"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:11 data/gtk/preferences.blp:9
|
#: data/gtk/help-overlay.blp:11 data/gtk/preferences.blp:9
|
||||||
msgid "General"
|
msgid "General"
|
||||||
@@ -148,7 +147,7 @@ msgstr "Mostrar preferencias"
|
|||||||
msgid "Shortcuts"
|
msgid "Shortcuts"
|
||||||
msgstr "Atajos"
|
msgstr "Atajos"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112
|
#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Deshacer"
|
msgstr "Deshacer"
|
||||||
|
|
||||||
@@ -176,9 +175,9 @@ msgstr "Mostrar juegos ocultos"
|
|||||||
msgid "Remove game"
|
msgid "Remove game"
|
||||||
msgstr "Eliminar juego"
|
msgstr "Eliminar juego"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr "Comportamiento"
|
msgstr "Conducta"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:16
|
#: data/gtk/preferences.blp:16
|
||||||
msgid "Exit After Launching Games"
|
msgid "Exit After Launching Games"
|
||||||
@@ -207,11 +206,11 @@ msgstr "Guarda las partidas sin pérdidas a costa del almacenamiento"
|
|||||||
|
|
||||||
#: data/gtk/preferences.blp:50
|
#: data/gtk/preferences.blp:50
|
||||||
msgid "Danger Zone"
|
msgid "Danger Zone"
|
||||||
msgstr "Zona de peligro"
|
msgstr "Zona peligrosa"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:53
|
#: data/gtk/preferences.blp:53
|
||||||
msgid "Remove All Games"
|
msgid "Remove All Games"
|
||||||
msgstr "Eliminar todos los juegos"
|
msgstr "Quitar todos los juegos"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:85 data/gtk/window.blp:27 data/gtk/window.blp:442
|
#: data/gtk/preferences.blp:85 data/gtk/window.blp:27 data/gtk/window.blp:442
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
@@ -226,89 +225,80 @@ msgid "Steam"
|
|||||||
msgstr "Steam"
|
msgstr "Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
||||||
#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192
|
#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183
|
||||||
#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220
|
#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211
|
||||||
#: data/gtk/preferences.blp:234
|
#, fuzzy
|
||||||
|
#| msgid "itch Install Location"
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
msgstr "Ruta de instalación"
|
msgstr "Ubicación de la instalación de itch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:106
|
#: data/gtk/preferences.blp:106
|
||||||
msgid "Lutris"
|
msgid "Lutris"
|
||||||
msgstr "Lutris"
|
msgstr "Lutris"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:119
|
#: data/gtk/preferences.blp:119
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Lutris Cache Location"
|
||||||
msgid "Cache Location"
|
msgid "Cache Location"
|
||||||
msgstr "Ruta de la caché"
|
msgstr "Ubicación de la caché de Lutris"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:128
|
#: data/gtk/preferences.blp:128
|
||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr "Importar juegos de Steam"
|
msgstr "Importar juegos de Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137
|
#: data/gtk/preferences.blp:138
|
||||||
msgid "Import Flatpak Games"
|
|
||||||
msgstr "Importar juegos Flatpak"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:147
|
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
msgstr "Heroic"
|
msgstr "Heroic"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:160
|
#: data/gtk/preferences.blp:151
|
||||||
msgid "Import Epic Games"
|
msgid "Import Epic Games"
|
||||||
msgstr "Importar juegos de Epic"
|
msgstr "Importar juegos de Epic"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:169
|
#: data/gtk/preferences.blp:160
|
||||||
msgid "Import GOG Games"
|
msgid "Import GOG Games"
|
||||||
msgstr "Importar juegos de GOG"
|
msgstr "Importar juegos de GOG"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:178
|
#: data/gtk/preferences.blp:169
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr "Importar juegos descargados"
|
msgstr "Importar juegos descargados"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:188
|
#: data/gtk/preferences.blp:179
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr "Bottles"
|
msgstr "Bottles"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:202
|
#: data/gtk/preferences.blp:193
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr "itch"
|
msgstr "itch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
#: data/gtk/preferences.blp:207
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr "Legendario"
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:230
|
#: data/gtk/preferences.blp:224
|
||||||
msgid "Flatpak"
|
|
||||||
msgstr "Flatpak"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:243
|
|
||||||
msgid "Import Game Launchers"
|
|
||||||
msgstr "Importar lanzadores de juegos"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:256
|
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
msgstr "SteamGridDB"
|
msgstr "SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Authentication"
|
msgid "Authentication"
|
||||||
msgstr "Autenticación"
|
msgstr "Autentificación"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:263
|
#: data/gtk/preferences.blp:231
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr "Clave API"
|
msgstr "Código API"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:271
|
#: data/gtk/preferences.blp:239
|
||||||
msgid "Use SteamGridDB"
|
msgid "Use SteamGridDB"
|
||||||
msgstr "Usar SteamGridDB"
|
msgstr "Utiliza SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:272
|
#: data/gtk/preferences.blp:240
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr "Descargar las imágenes al añadir o importar juegos"
|
msgstr "Descargar las imágenes al añadir o importar juegos"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:281
|
#: data/gtk/preferences.blp:249
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr "Preferir las imágenes oficiales"
|
msgstr "Preferir las imágenes oficiales"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:290
|
#: data/gtk/preferences.blp:258
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr "Prefiero las imágenes animadas"
|
msgstr "Prefiero las imágenes animadas"
|
||||||
|
|
||||||
@@ -397,21 +387,21 @@ msgid "About Cartridges"
|
|||||||
msgstr "Acerca de Cartuchos"
|
msgstr "Acerca de Cartuchos"
|
||||||
|
|
||||||
#. Translators: Replace this with your name for it to show up in the about window
|
#. Translators: Replace this with your name for it to show up in the about window
|
||||||
#: src/main.py:180
|
#: src/main.py:164
|
||||||
msgid "translator_credits"
|
msgid "translator_credits"
|
||||||
msgstr "Óscar Fernández Díaz <oscfdezdz@tuta.io>"
|
msgstr "Óscar Fernández Díaz <oscfdezdz@tuta.io>"
|
||||||
|
|
||||||
#. The variable is the date when the game was added
|
#. The variable is the date when the game was added
|
||||||
#: src/window.py:194
|
#: src/window.py:192
|
||||||
msgid "Added: {}"
|
msgid "Added: {}"
|
||||||
msgstr "Añadido: {}"
|
msgstr "Añadido: {}"
|
||||||
|
|
||||||
#: src/window.py:197
|
#: src/window.py:195
|
||||||
msgid "Never"
|
msgid "Never"
|
||||||
msgstr "Nunca"
|
msgstr "Nunca"
|
||||||
|
|
||||||
#. The variable is the date when the game was last played
|
#. The variable is the date when the game was last played
|
||||||
#: src/window.py:201
|
#: src/window.py:199
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr "Último jugado: {}"
|
msgstr "Último jugado: {}"
|
||||||
|
|
||||||
@@ -428,26 +418,26 @@ msgid "Confirm"
|
|||||||
msgstr "Confirmar"
|
msgstr "Confirmar"
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: src/details_window.py:92
|
#: src/details_window.py:91
|
||||||
msgid "file.txt"
|
msgid "file.txt"
|
||||||
msgstr "archivo.txt"
|
msgstr "archivo.txt"
|
||||||
|
|
||||||
#. As in software
|
#. As in software
|
||||||
#: src/details_window.py:94
|
#: src/details_window.py:93
|
||||||
msgid "program"
|
msgid "program"
|
||||||
msgstr "programa"
|
msgstr "programa"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:99 src/details_window.py:101
|
#: src/details_window.py:98 src/details_window.py:100
|
||||||
msgid "C:\\path\\to\\{}"
|
msgid "C:\\path\\to\\{}"
|
||||||
msgstr "C:\\ruta\\hasta\\{}"
|
msgstr "C:\\ruta\\hasta\\{}"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:105 src/details_window.py:107
|
#: src/details_window.py:104 src/details_window.py:106
|
||||||
msgid "/path/to/{}"
|
msgid "/path/to/{}"
|
||||||
msgstr "/ruta/hasta/{}"
|
msgstr "/ruta/hasta/{}"
|
||||||
|
|
||||||
#: src/details_window.py:112
|
#: src/details_window.py:111
|
||||||
msgid ""
|
msgid ""
|
||||||
"To launch the executable \"{}\", use the command:\n"
|
"To launch the executable \"{}\", use the command:\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -469,15 +459,15 @@ msgstr ""
|
|||||||
"\n"
|
"\n"
|
||||||
"Si la ruta contiene espacios, ¡asegúrese de entrecomillarla!"
|
"Si la ruta contiene espacios, ¡asegúrese de entrecomillarla!"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:153
|
#: src/details_window.py:146 src/details_window.py:152
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
msgstr "No se puede añadir el juego"
|
msgstr "No se puede añadir el juego"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:181
|
#: src/details_window.py:146 src/details_window.py:181
|
||||||
msgid "Game title cannot be empty."
|
msgid "Game title cannot be empty."
|
||||||
msgstr "El título del juego no puede estar vacío."
|
msgstr "El título del juego no puede estar vacío."
|
||||||
|
|
||||||
#: src/details_window.py:153 src/details_window.py:189
|
#: src/details_window.py:152 src/details_window.py:189
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr "El ejecutable no puede estar vacío."
|
msgstr "El ejecutable no puede estar vacío."
|
||||||
|
|
||||||
@@ -486,62 +476,35 @@ msgid "Couldn't Apply Preferences"
|
|||||||
msgstr "No se pudieron aplicar las preferencias"
|
msgstr "No se pudieron aplicar las preferencias"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:138
|
#: src/game.py:141
|
||||||
msgid "{} launched"
|
msgid "{} launched"
|
||||||
msgstr "{} comenzó"
|
msgstr "{} comenzó"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr "{} oculto"
|
msgstr "{} oculto"
|
||||||
|
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} unhidden"
|
msgid "{} unhidden"
|
||||||
msgstr "{} visible"
|
msgstr "{} visible"
|
||||||
|
|
||||||
#: src/game.py:169
|
#: src/game.py:171
|
||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr "{} eliminado"
|
msgstr "{} eliminado"
|
||||||
|
|
||||||
#: src/preferences.py:111
|
#: src/preferences.py:102
|
||||||
msgid "All games removed"
|
msgid "All games removed"
|
||||||
msgstr "Todos los juegos eliminados"
|
msgstr "Todos los juegos eliminados"
|
||||||
|
|
||||||
#: src/preferences.py:159
|
#: src/preferences.py:149
|
||||||
msgid ""
|
msgid ""
|
||||||
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Se necesita una clave API para utilizar SteamGridDB. Puedes generar una {}"
|
"Se necesita una clave API para utilizar SteamGridDB. Puedes generar una {}"
|
||||||
"aquí{}."
|
"aquí{}."
|
||||||
|
|
||||||
#: src/preferences.py:284
|
#: src/preferences.py:289
|
||||||
msgid "Installation Not Found"
|
|
||||||
msgstr "Instalación no encontrada"
|
|
||||||
|
|
||||||
#: src/preferences.py:286
|
|
||||||
msgid "Select a valid directory."
|
|
||||||
msgstr "Selecciona un directorio válido."
|
|
||||||
|
|
||||||
#: src/preferences.py:348
|
|
||||||
msgid "Invalid Directory"
|
|
||||||
msgstr "Directorio incorrecto"
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:352
|
|
||||||
msgid "Select the {} cache directory."
|
|
||||||
msgstr "Seleccione el directorio de la caché {}."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:355
|
|
||||||
msgid "Select the {} configuration directory."
|
|
||||||
msgstr "Seleccione el directorio de configuración {}."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:358
|
|
||||||
msgid "Select the {} data directory."
|
|
||||||
msgstr "Seleccione el directorio de datos {}."
|
|
||||||
|
|
||||||
#: src/preferences.py:364
|
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
msgstr "Escoger la ubicación"
|
msgstr "Escoger la ubicación"
|
||||||
|
|
||||||
@@ -549,23 +512,38 @@ msgstr "Escoger la ubicación"
|
|||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
msgstr "Descartar"
|
msgstr "Descartar"
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:106
|
||||||
|
msgid "Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:107
|
||||||
|
msgid "Cache"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:108
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Confirm"
|
||||||
|
msgid "Configuration"
|
||||||
|
msgstr "Confirmar"
|
||||||
|
|
||||||
|
#. The variables are the type of location (eg. cache) and the source's name (eg. Steam)
|
||||||
|
#: src/importer/sources/source.py:119
|
||||||
|
msgid "Invalid {} Location for {{}}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:120
|
||||||
|
msgid "Pick a new one or disable the source in preferences"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:47
|
#: src/store/managers/sgdb_manager.py:47
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Couldn't Connect to SteamGridDB"
|
||||||
msgid "Couldn't Authenticate SteamGridDB"
|
msgid "Couldn't Authenticate SteamGridDB"
|
||||||
msgstr "No se ha podido autenticar SteamGridDB"
|
msgstr "No se puede conectar a SteamGridDB"
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:48
|
#: src/store/managers/sgdb_manager.py:48
|
||||||
msgid "Verify your API key in preferences"
|
msgid "Verify your API key in preferences"
|
||||||
msgstr "Verifica tu clave API en las preferencias"
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "The Steam directory cannot be found."
|
|
||||||
#~ msgid "Directory not Valid"
|
|
||||||
#~ msgstr "No se encuentra el directorio de Steam."
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "Confirm"
|
|
||||||
#~ msgid "Configuration"
|
|
||||||
#~ msgstr "Confirmar"
|
|
||||||
|
|
||||||
#~ msgid "Steam Install Location"
|
#~ msgid "Steam Install Location"
|
||||||
#~ msgstr "Ubicación de la instalación de Steam"
|
#~ msgstr "Ubicación de la instalación de Steam"
|
||||||
@@ -591,6 +569,15 @@ msgstr "Verifica tu clave API en las preferencias"
|
|||||||
#~ msgid "Select the Lutris cache directory."
|
#~ msgid "Select the Lutris cache directory."
|
||||||
#~ msgstr "Selecciona el directorio de la caché de Lutris."
|
#~ msgstr "Selecciona el directorio de la caché de Lutris."
|
||||||
|
|
||||||
|
#~ msgid "Installation Not Found"
|
||||||
|
#~ msgstr "No se encuentra la instalación"
|
||||||
|
|
||||||
|
#~ msgid "Select the {} configuration directory."
|
||||||
|
#~ msgstr "Selecciona el directorio de la configuración {}."
|
||||||
|
|
||||||
|
#~ msgid "Select the {} data directory."
|
||||||
|
#~ msgstr "Selecciona el directorio de los datos {}."
|
||||||
|
|
||||||
#~ msgid "Importing Games…"
|
#~ msgid "Importing Games…"
|
||||||
#~ msgstr "Importando juegos…"
|
#~ msgstr "Importando juegos…"
|
||||||
|
|
||||||
@@ -716,5 +703,8 @@ msgstr "Verifica tu clave API en las preferencias"
|
|||||||
#~ msgid "No new games were found in the Steam library."
|
#~ msgid "No new games were found in the Steam library."
|
||||||
#~ msgstr "No se han encontrado juegos nuevos en la biblioteca de Steam."
|
#~ msgstr "No se han encontrado juegos nuevos en la biblioteca de Steam."
|
||||||
|
|
||||||
|
#~ msgid "The Steam directory cannot be found."
|
||||||
|
#~ msgstr "No se encuentra el directorio de Steam."
|
||||||
|
|
||||||
#~ msgid "Talking to Steam"
|
#~ msgid "Talking to Steam"
|
||||||
#~ msgstr "Hablando con Steam"
|
#~ msgstr "Hablando con Steam"
|
||||||
|
|||||||
147
po/fa.po
147
po/fa.po
@@ -6,7 +6,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Cartridges\n"
|
"Project-Id-Version: Cartridges\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-07-05 14:36+0200\n"
|
"POT-Creation-Date: 2023-06-26 12:01+0200\n"
|
||||||
"PO-Revision-Date: 2023-04-22 10:48+0000\n"
|
"PO-Revision-Date: 2023-04-22 10:48+0000\n"
|
||||||
"Last-Translator: سید حسین موسوی فرد <shmf1385@protonmail.com>\n"
|
"Last-Translator: سید حسین موسوی فرد <shmf1385@protonmail.com>\n"
|
||||||
"Language-Team: Persian <https://hosted.weblate.org/projects/cartridges/"
|
"Language-Team: Persian <https://hosted.weblate.org/projects/cartridges/"
|
||||||
@@ -20,7 +20,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
||||||
#: src/main.py:162
|
#: src/main.py:146
|
||||||
msgid "Cartridges"
|
msgid "Cartridges"
|
||||||
msgstr "کارتریجها"
|
msgstr "کارتریجها"
|
||||||
|
|
||||||
@@ -110,7 +110,7 @@ msgstr ""
|
|||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "ویرایش"
|
msgstr "ویرایش"
|
||||||
|
|
||||||
#: data/gtk/game.blp:107 src/window.py:171
|
#: data/gtk/game.blp:107 src/window.py:169
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr "پنهان کردن"
|
msgstr "پنهان کردن"
|
||||||
|
|
||||||
@@ -119,7 +119,7 @@ msgstr "پنهان کردن"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "حذف"
|
msgstr "حذف"
|
||||||
|
|
||||||
#: data/gtk/game.blp:126 src/window.py:173
|
#: data/gtk/game.blp:126 src/window.py:171
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr "پیدا کردن"
|
msgstr "پیدا کردن"
|
||||||
|
|
||||||
@@ -144,7 +144,7 @@ msgstr "نمایش ترجیحات"
|
|||||||
msgid "Shortcuts"
|
msgid "Shortcuts"
|
||||||
msgstr "میانبرها"
|
msgstr "میانبرها"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112
|
#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "برگردان"
|
msgstr "برگردان"
|
||||||
|
|
||||||
@@ -172,7 +172,7 @@ msgstr "نمایش بازیهای پنهان"
|
|||||||
msgid "Remove game"
|
msgid "Remove game"
|
||||||
msgstr "حذف کردن بازی"
|
msgstr "حذف کردن بازی"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -221,9 +221,8 @@ msgid "Steam"
|
|||||||
msgstr "استیم"
|
msgstr "استیم"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
||||||
#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192
|
#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183
|
||||||
#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220
|
#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211
|
||||||
#: data/gtk/preferences.blp:234
|
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -239,75 +238,59 @@ msgstr ""
|
|||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137
|
#: data/gtk/preferences.blp:138
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Import games"
|
|
||||||
msgid "Import Flatpak Games"
|
|
||||||
msgstr "درونریزی بازی"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:147
|
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:160
|
#: data/gtk/preferences.blp:151
|
||||||
msgid "Import Epic Games"
|
msgid "Import Epic Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:169
|
#: data/gtk/preferences.blp:160
|
||||||
msgid "Import GOG Games"
|
msgid "Import GOG Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:178
|
#: data/gtk/preferences.blp:169
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:188
|
#: data/gtk/preferences.blp:179
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:202
|
#: data/gtk/preferences.blp:193
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
#: data/gtk/preferences.blp:207
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:230
|
#: data/gtk/preferences.blp:224
|
||||||
msgid "Flatpak"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:243
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Game Launcher"
|
|
||||||
msgid "Import Game Launchers"
|
|
||||||
msgstr "اجراگر بازی"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:256
|
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Authentication"
|
msgid "Authentication"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:263
|
#: data/gtk/preferences.blp:231
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:271
|
#: data/gtk/preferences.blp:239
|
||||||
msgid "Use SteamGridDB"
|
msgid "Use SteamGridDB"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:272
|
#: data/gtk/preferences.blp:240
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:281
|
#: data/gtk/preferences.blp:249
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:290
|
#: data/gtk/preferences.blp:258
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -396,21 +379,21 @@ msgid "About Cartridges"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Translators: Replace this with your name for it to show up in the about window
|
#. Translators: Replace this with your name for it to show up in the about window
|
||||||
#: src/main.py:180
|
#: src/main.py:164
|
||||||
msgid "translator_credits"
|
msgid "translator_credits"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. The variable is the date when the game was added
|
#. The variable is the date when the game was added
|
||||||
#: src/window.py:194
|
#: src/window.py:192
|
||||||
msgid "Added: {}"
|
msgid "Added: {}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/window.py:197
|
#: src/window.py:195
|
||||||
msgid "Never"
|
msgid "Never"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. The variable is the date when the game was last played
|
#. The variable is the date when the game was last played
|
||||||
#: src/window.py:201
|
#: src/window.py:199
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -427,26 +410,26 @@ msgid "Confirm"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: src/details_window.py:92
|
#: src/details_window.py:91
|
||||||
msgid "file.txt"
|
msgid "file.txt"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. As in software
|
#. As in software
|
||||||
#: src/details_window.py:94
|
#: src/details_window.py:93
|
||||||
msgid "program"
|
msgid "program"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:99 src/details_window.py:101
|
#: src/details_window.py:98 src/details_window.py:100
|
||||||
msgid "C:\\path\\to\\{}"
|
msgid "C:\\path\\to\\{}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:105 src/details_window.py:107
|
#: src/details_window.py:104 src/details_window.py:106
|
||||||
msgid "/path/to/{}"
|
msgid "/path/to/{}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/details_window.py:112
|
#: src/details_window.py:111
|
||||||
msgid ""
|
msgid ""
|
||||||
"To launch the executable \"{}\", use the command:\n"
|
"To launch the executable \"{}\", use the command:\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -459,15 +442,15 @@ msgid ""
|
|||||||
"If the path contains spaces, make sure to wrap it in double quotes!"
|
"If the path contains spaces, make sure to wrap it in double quotes!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:153
|
#: src/details_window.py:146 src/details_window.py:152
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:181
|
#: src/details_window.py:146 src/details_window.py:181
|
||||||
msgid "Game title cannot be empty."
|
msgid "Game title cannot be empty."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/details_window.py:153 src/details_window.py:189
|
#: src/details_window.py:152 src/details_window.py:189
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -476,60 +459,33 @@ msgid "Couldn't Apply Preferences"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:138
|
#: src/game.py:141
|
||||||
msgid "{} launched"
|
msgid "{} launched"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} unhidden"
|
msgid "{} unhidden"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.py:169
|
#: src/game.py:171
|
||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/preferences.py:111
|
#: src/preferences.py:102
|
||||||
msgid "All games removed"
|
msgid "All games removed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/preferences.py:159
|
#: src/preferences.py:149
|
||||||
msgid ""
|
msgid ""
|
||||||
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/preferences.py:284
|
#: src/preferences.py:289
|
||||||
msgid "Installation Not Found"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/preferences.py:286
|
|
||||||
msgid "Select a valid directory."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/preferences.py:348
|
|
||||||
msgid "Invalid Directory"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:352
|
|
||||||
msgid "Select the {} cache directory."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:355
|
|
||||||
msgid "Select the {} configuration directory."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:358
|
|
||||||
msgid "Select the {} data directory."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/preferences.py:364
|
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -537,6 +493,27 @@ msgstr ""
|
|||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:106
|
||||||
|
msgid "Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:107
|
||||||
|
msgid "Cache"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:108
|
||||||
|
msgid "Configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. The variables are the type of location (eg. cache) and the source's name (eg. Steam)
|
||||||
|
#: src/importer/sources/source.py:119
|
||||||
|
msgid "Invalid {} Location for {{}}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:120
|
||||||
|
msgid "Pick a new one or disable the source in preferences"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:47
|
#: src/store/managers/sgdb_manager.py:47
|
||||||
msgid "Couldn't Authenticate SteamGridDB"
|
msgid "Couldn't Authenticate SteamGridDB"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
167
po/fi.po
167
po/fi.po
@@ -10,7 +10,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: cartridges\n"
|
"Project-Id-Version: cartridges\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-07-05 14:36+0200\n"
|
"POT-Creation-Date: 2023-06-26 12:01+0200\n"
|
||||||
"PO-Revision-Date: 2023-05-07 15:38+0000\n"
|
"PO-Revision-Date: 2023-05-07 15:38+0000\n"
|
||||||
"Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>\n"
|
"Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>\n"
|
||||||
"Language-Team: Finnish <https://hosted.weblate.org/projects/cartridges/"
|
"Language-Team: Finnish <https://hosted.weblate.org/projects/cartridges/"
|
||||||
@@ -24,7 +24,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
||||||
#: src/main.py:162
|
#: src/main.py:146
|
||||||
msgid "Cartridges"
|
msgid "Cartridges"
|
||||||
msgstr "Cartridges"
|
msgstr "Cartridges"
|
||||||
|
|
||||||
@@ -122,7 +122,7 @@ msgstr ""
|
|||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Muokkaa"
|
msgstr "Muokkaa"
|
||||||
|
|
||||||
#: data/gtk/game.blp:107 src/window.py:171
|
#: data/gtk/game.blp:107 src/window.py:169
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr "Piilota"
|
msgstr "Piilota"
|
||||||
|
|
||||||
@@ -131,7 +131,7 @@ msgstr "Piilota"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Poista"
|
msgstr "Poista"
|
||||||
|
|
||||||
#: data/gtk/game.blp:126 src/window.py:173
|
#: data/gtk/game.blp:126 src/window.py:171
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr "Näytä"
|
msgstr "Näytä"
|
||||||
|
|
||||||
@@ -156,7 +156,7 @@ msgstr "Näytä asetukset"
|
|||||||
msgid "Shortcuts"
|
msgid "Shortcuts"
|
||||||
msgstr "Pikanäppäimet"
|
msgstr "Pikanäppäimet"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112
|
#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Kumoa"
|
msgstr "Kumoa"
|
||||||
|
|
||||||
@@ -184,7 +184,7 @@ msgstr "Näytä piilotetut pelit"
|
|||||||
msgid "Remove game"
|
msgid "Remove game"
|
||||||
msgstr "Poista peli"
|
msgstr "Poista peli"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr "Toiminta"
|
msgstr "Toiminta"
|
||||||
|
|
||||||
@@ -233,9 +233,8 @@ msgid "Steam"
|
|||||||
msgstr "Steam"
|
msgstr "Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
||||||
#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192
|
#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183
|
||||||
#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220
|
#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211
|
||||||
#: data/gtk/preferences.blp:234
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "itch Install Location"
|
#| msgid "itch Install Location"
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
@@ -255,75 +254,59 @@ msgstr "Lutris-välimuistin sijainti"
|
|||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr "Tuo Steam-pelejä"
|
msgstr "Tuo Steam-pelejä"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137
|
#: data/gtk/preferences.blp:138
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Import Steam Games"
|
|
||||||
msgid "Import Flatpak Games"
|
|
||||||
msgstr "Tuo Steam-pelejä"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:147
|
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
msgstr "Heroic"
|
msgstr "Heroic"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:160
|
#: data/gtk/preferences.blp:151
|
||||||
msgid "Import Epic Games"
|
msgid "Import Epic Games"
|
||||||
msgstr "Tuo Epic-pelejä"
|
msgstr "Tuo Epic-pelejä"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:169
|
#: data/gtk/preferences.blp:160
|
||||||
msgid "Import GOG Games"
|
msgid "Import GOG Games"
|
||||||
msgstr "Tuo GOG-pelejä"
|
msgstr "Tuo GOG-pelejä"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:178
|
#: data/gtk/preferences.blp:169
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr "Tuo Sideload-pelejä"
|
msgstr "Tuo Sideload-pelejä"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:188
|
#: data/gtk/preferences.blp:179
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr "Pullot"
|
msgstr "Pullot"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:202
|
#: data/gtk/preferences.blp:193
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
#: data/gtk/preferences.blp:207
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:230
|
#: data/gtk/preferences.blp:224
|
||||||
msgid "Flatpak"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:243
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Game Launcher"
|
|
||||||
msgid "Import Game Launchers"
|
|
||||||
msgstr "Pelin käynnistin"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:256
|
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
msgstr "SteamGridDB"
|
msgstr "SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Authentication"
|
msgid "Authentication"
|
||||||
msgstr "Tunnistautuminen"
|
msgstr "Tunnistautuminen"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:263
|
#: data/gtk/preferences.blp:231
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr "API-avain"
|
msgstr "API-avain"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:271
|
#: data/gtk/preferences.blp:239
|
||||||
msgid "Use SteamGridDB"
|
msgid "Use SteamGridDB"
|
||||||
msgstr "Käytä SteamGridDB:tä"
|
msgstr "Käytä SteamGridDB:tä"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:272
|
#: data/gtk/preferences.blp:240
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr "Lataa kuvat pelejä lisätessä tai tuotaessa"
|
msgstr "Lataa kuvat pelejä lisätessä tai tuotaessa"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:281
|
#: data/gtk/preferences.blp:249
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr "Suosi virallisten kuvien sijaan"
|
msgstr "Suosi virallisten kuvien sijaan"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:290
|
#: data/gtk/preferences.blp:258
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr "Suosi animoituja kuvia"
|
msgstr "Suosi animoituja kuvia"
|
||||||
|
|
||||||
@@ -412,21 +395,21 @@ msgid "About Cartridges"
|
|||||||
msgstr "Tietoja - Cartridges"
|
msgstr "Tietoja - Cartridges"
|
||||||
|
|
||||||
#. Translators: Replace this with your name for it to show up in the about window
|
#. Translators: Replace this with your name for it to show up in the about window
|
||||||
#: src/main.py:180
|
#: src/main.py:164
|
||||||
msgid "translator_credits"
|
msgid "translator_credits"
|
||||||
msgstr "Linux Sauna"
|
msgstr "Linux Sauna"
|
||||||
|
|
||||||
#. The variable is the date when the game was added
|
#. The variable is the date when the game was added
|
||||||
#: src/window.py:194
|
#: src/window.py:192
|
||||||
msgid "Added: {}"
|
msgid "Added: {}"
|
||||||
msgstr "Lisätty: {}"
|
msgstr "Lisätty: {}"
|
||||||
|
|
||||||
#: src/window.py:197
|
#: src/window.py:195
|
||||||
msgid "Never"
|
msgid "Never"
|
||||||
msgstr "Ei koskaan"
|
msgstr "Ei koskaan"
|
||||||
|
|
||||||
#. The variable is the date when the game was last played
|
#. The variable is the date when the game was last played
|
||||||
#: src/window.py:201
|
#: src/window.py:199
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr "Viimeksi pelattu: {}"
|
msgstr "Viimeksi pelattu: {}"
|
||||||
|
|
||||||
@@ -443,26 +426,26 @@ msgid "Confirm"
|
|||||||
msgstr "Vahvista"
|
msgstr "Vahvista"
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: src/details_window.py:92
|
#: src/details_window.py:91
|
||||||
msgid "file.txt"
|
msgid "file.txt"
|
||||||
msgstr "file.txt"
|
msgstr "file.txt"
|
||||||
|
|
||||||
#. As in software
|
#. As in software
|
||||||
#: src/details_window.py:94
|
#: src/details_window.py:93
|
||||||
msgid "program"
|
msgid "program"
|
||||||
msgstr "ohjelma"
|
msgstr "ohjelma"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:99 src/details_window.py:101
|
#: src/details_window.py:98 src/details_window.py:100
|
||||||
msgid "C:\\path\\to\\{}"
|
msgid "C:\\path\\to\\{}"
|
||||||
msgstr "C:\\polku\\kansioon\\{}"
|
msgstr "C:\\polku\\kansioon\\{}"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:105 src/details_window.py:107
|
#: src/details_window.py:104 src/details_window.py:106
|
||||||
msgid "/path/to/{}"
|
msgid "/path/to/{}"
|
||||||
msgstr "/polku/kansioon/{}"
|
msgstr "/polku/kansioon/{}"
|
||||||
|
|
||||||
#: src/details_window.py:112
|
#: src/details_window.py:111
|
||||||
msgid ""
|
msgid ""
|
||||||
"To launch the executable \"{}\", use the command:\n"
|
"To launch the executable \"{}\", use the command:\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -485,15 +468,15 @@ msgstr ""
|
|||||||
"Jos polku sisältää välilyöntejä, varmista, että se on suljettu "
|
"Jos polku sisältää välilyöntejä, varmista, että se on suljettu "
|
||||||
"kaksinkertaisiin lainausmerkkeihin!"
|
"kaksinkertaisiin lainausmerkkeihin!"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:153
|
#: src/details_window.py:146 src/details_window.py:152
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
msgstr "Peliä ei voitu lisätä"
|
msgstr "Peliä ei voitu lisätä"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:181
|
#: src/details_window.py:146 src/details_window.py:181
|
||||||
msgid "Game title cannot be empty."
|
msgid "Game title cannot be empty."
|
||||||
msgstr "Pelin nimi ei voi olla tyhjä."
|
msgstr "Pelin nimi ei voi olla tyhjä."
|
||||||
|
|
||||||
#: src/details_window.py:153 src/details_window.py:189
|
#: src/details_window.py:152 src/details_window.py:189
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr "Suoritettava ei voi olla tyhjä."
|
msgstr "Suoritettava ei voi olla tyhjä."
|
||||||
|
|
||||||
@@ -502,64 +485,35 @@ msgid "Couldn't Apply Preferences"
|
|||||||
msgstr "Asetuksia ei voitu ottaa käyttöön"
|
msgstr "Asetuksia ei voitu ottaa käyttöön"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:138
|
#: src/game.py:141
|
||||||
msgid "{} launched"
|
msgid "{} launched"
|
||||||
msgstr "{} käynnistetty"
|
msgstr "{} käynnistetty"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr "{} piilotettu"
|
msgstr "{} piilotettu"
|
||||||
|
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} unhidden"
|
msgid "{} unhidden"
|
||||||
msgstr "{} palautettu näkyviin"
|
msgstr "{} palautettu näkyviin"
|
||||||
|
|
||||||
#: src/game.py:169
|
#: src/game.py:171
|
||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr "{} poistettu"
|
msgstr "{} poistettu"
|
||||||
|
|
||||||
#: src/preferences.py:111
|
#: src/preferences.py:102
|
||||||
msgid "All games removed"
|
msgid "All games removed"
|
||||||
msgstr "Kaikki pelit poistettu"
|
msgstr "Kaikki pelit poistettu"
|
||||||
|
|
||||||
#: src/preferences.py:159
|
#: src/preferences.py:149
|
||||||
msgid ""
|
msgid ""
|
||||||
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"API-avain on pakollinen, jos haluat käyttää SteamGridDB:tä. Voit luoda "
|
"API-avain on pakollinen, jos haluat käyttää SteamGridDB:tä. Voit luoda "
|
||||||
"avaimen {}täällä{}."
|
"avaimen {}täällä{}."
|
||||||
|
|
||||||
#: src/preferences.py:284
|
#: src/preferences.py:289
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Installation Not Found"
|
|
||||||
msgid "Installation Not Found"
|
|
||||||
msgstr "Asennusta ei löydy"
|
|
||||||
|
|
||||||
#: src/preferences.py:286
|
|
||||||
msgid "Select a valid directory."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/preferences.py:348
|
|
||||||
msgid "Invalid Directory"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:352
|
|
||||||
msgid "Select the {} cache directory."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:355
|
|
||||||
msgid "Select the {} configuration directory."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:358
|
|
||||||
msgid "Select the {} data directory."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/preferences.py:364
|
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
msgstr "Aseta sijainti"
|
msgstr "Aseta sijainti"
|
||||||
|
|
||||||
@@ -567,6 +521,29 @@ msgstr "Aseta sijainti"
|
|||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
msgstr "Hylkää"
|
msgstr "Hylkää"
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:106
|
||||||
|
msgid "Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:107
|
||||||
|
msgid "Cache"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:108
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Confirm"
|
||||||
|
msgid "Configuration"
|
||||||
|
msgstr "Vahvista"
|
||||||
|
|
||||||
|
#. The variables are the type of location (eg. cache) and the source's name (eg. Steam)
|
||||||
|
#: src/importer/sources/source.py:119
|
||||||
|
msgid "Invalid {} Location for {{}}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:120
|
||||||
|
msgid "Pick a new one or disable the source in preferences"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:47
|
#: src/store/managers/sgdb_manager.py:47
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Couldn't Connect to SteamGridDB"
|
#| msgid "Couldn't Connect to SteamGridDB"
|
||||||
@@ -577,16 +554,6 @@ msgstr "Ei voitu yhdistää SteamGridDB:hen"
|
|||||||
msgid "Verify your API key in preferences"
|
msgid "Verify your API key in preferences"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "The Steam directory cannot be found."
|
|
||||||
#~ msgid "Directory not Valid"
|
|
||||||
#~ msgstr "Steam-hakemistoa ei löydy."
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "Confirm"
|
|
||||||
#~ msgid "Configuration"
|
|
||||||
#~ msgstr "Vahvista"
|
|
||||||
|
|
||||||
#~ msgid "Steam Install Location"
|
#~ msgid "Steam Install Location"
|
||||||
#~ msgstr "Steam-asennuksen sijainti"
|
#~ msgstr "Steam-asennuksen sijainti"
|
||||||
|
|
||||||
@@ -608,6 +575,9 @@ msgstr ""
|
|||||||
#~ msgid "Cache Not Found"
|
#~ msgid "Cache Not Found"
|
||||||
#~ msgstr "Välimuistia ei löydy"
|
#~ msgstr "Välimuistia ei löydy"
|
||||||
|
|
||||||
|
#~ msgid "Installation Not Found"
|
||||||
|
#~ msgstr "Asennusta ei löydy"
|
||||||
|
|
||||||
#~ msgid "Importing Games…"
|
#~ msgid "Importing Games…"
|
||||||
#~ msgstr "Tuodaan pelejä…"
|
#~ msgstr "Tuodaan pelejä…"
|
||||||
|
|
||||||
@@ -741,5 +711,8 @@ msgstr ""
|
|||||||
#~ msgid "No new games were found in the Steam library."
|
#~ msgid "No new games were found in the Steam library."
|
||||||
#~ msgstr "Steam-kirjastosta ei löytynyt uusia pelejä."
|
#~ msgstr "Steam-kirjastosta ei löytynyt uusia pelejä."
|
||||||
|
|
||||||
|
#~ msgid "The Steam directory cannot be found."
|
||||||
|
#~ msgstr "Steam-hakemistoa ei löydy."
|
||||||
|
|
||||||
#~ msgid "Talking to Steam"
|
#~ msgid "Talking to Steam"
|
||||||
#~ msgstr "Yhdistetään Steam-kirjastoon"
|
#~ msgstr "Yhdistetään Steam-kirjastoon"
|
||||||
|
|||||||
192
po/fr.po
192
po/fr.po
@@ -6,13 +6,12 @@
|
|||||||
# rene-coty <irenee.thirion@e.email>, 2023.
|
# rene-coty <irenee.thirion@e.email>, 2023.
|
||||||
# John Donne <akheron@zaclys.net>, 2023.
|
# John Donne <akheron@zaclys.net>, 2023.
|
||||||
# "Yannick A." <pify@live.fr>, 2023.
|
# "Yannick A." <pify@live.fr>, 2023.
|
||||||
# Geoffrey Coulaud <geoffrey.coulaud+github@gmail.com>, 2023.
|
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: cartridges\n"
|
"Project-Id-Version: cartridges\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-07-05 14:36+0200\n"
|
"POT-Creation-Date: 2023-06-26 12:01+0200\n"
|
||||||
"PO-Revision-Date: 2023-07-24 13:05+0000\n"
|
"PO-Revision-Date: 2023-05-28 10:11+0000\n"
|
||||||
"Last-Translator: rene-coty <irenee.thirion@e.email>\n"
|
"Last-Translator: rene-coty <irenee.thirion@e.email>\n"
|
||||||
"Language-Team: French <https://hosted.weblate.org/projects/cartridges/"
|
"Language-Team: French <https://hosted.weblate.org/projects/cartridges/"
|
||||||
"cartridges/fr/>\n"
|
"cartridges/fr/>\n"
|
||||||
@@ -21,13 +20,13 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||||
"X-Generator: Weblate 5.0-dev\n"
|
"X-Generator: Weblate 4.18-dev\n"
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
||||||
#: src/main.py:162
|
#: src/main.py:146
|
||||||
msgid "Cartridges"
|
msgid "Cartridges"
|
||||||
msgstr "Cartouches"
|
msgstr "Cartridges"
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:4
|
#: data/hu.kramo.Cartridges.desktop.in:4
|
||||||
msgid "Game Launcher"
|
msgid "Game Launcher"
|
||||||
@@ -49,7 +48,7 @@ msgid ""
|
|||||||
"necessary. You can sort and hide games or download cover art from "
|
"necessary. You can sort and hide games or download cover art from "
|
||||||
"SteamGridDB."
|
"SteamGridDB."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Cartouches est un lanceur de jeux simple pour tous vos jeux. Il prend en "
|
"Cartridges est un lanceur de jeux simple pour tous vos jeux. Il prend en "
|
||||||
"charge l’importation des jeux depuis Steam, Lutris, Heroic et d’autres "
|
"charge l’importation des jeux depuis Steam, Lutris, Heroic et d’autres "
|
||||||
"encore, sans nécessiter de connexion. Vous pouvez trier et masquer les jeux "
|
"encore, sans nécessiter de connexion. Vous pouvez trier et masquer les jeux "
|
||||||
"ou télécharger la pochette depuis SteamGridDB."
|
"ou télécharger la pochette depuis SteamGridDB."
|
||||||
@@ -116,7 +115,7 @@ msgstr "Plus d’informations"
|
|||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Modifier"
|
msgstr "Modifier"
|
||||||
|
|
||||||
#: data/gtk/game.blp:107 src/window.py:171
|
#: data/gtk/game.blp:107 src/window.py:169
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr "Masquer"
|
msgstr "Masquer"
|
||||||
|
|
||||||
@@ -125,7 +124,7 @@ msgstr "Masquer"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Supprimer"
|
msgstr "Supprimer"
|
||||||
|
|
||||||
#: data/gtk/game.blp:126 src/window.py:173
|
#: data/gtk/game.blp:126 src/window.py:171
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr "Ne plus masquer"
|
msgstr "Ne plus masquer"
|
||||||
|
|
||||||
@@ -150,7 +149,7 @@ msgstr "Afficher les préférences"
|
|||||||
msgid "Shortcuts"
|
msgid "Shortcuts"
|
||||||
msgstr "Raccourcis"
|
msgstr "Raccourcis"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112
|
#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Annuler"
|
msgstr "Annuler"
|
||||||
|
|
||||||
@@ -178,7 +177,7 @@ msgstr "Afficher les jeux masqués"
|
|||||||
msgid "Remove game"
|
msgid "Remove game"
|
||||||
msgstr "Supprimer le jeu"
|
msgstr "Supprimer le jeu"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr "Comportement"
|
msgstr "Comportement"
|
||||||
|
|
||||||
@@ -230,89 +229,80 @@ msgid "Steam"
|
|||||||
msgstr "Steam"
|
msgstr "Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
||||||
#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192
|
#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183
|
||||||
#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220
|
#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211
|
||||||
#: data/gtk/preferences.blp:234
|
#, fuzzy
|
||||||
|
#| msgid "itch Install Location"
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
msgstr "Emplacement d'installation"
|
msgstr "Emplacement d’installation de Itch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:106
|
#: data/gtk/preferences.blp:106
|
||||||
msgid "Lutris"
|
msgid "Lutris"
|
||||||
msgstr "Lutris"
|
msgstr "Lutris"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:119
|
#: data/gtk/preferences.blp:119
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Lutris Cache Location"
|
||||||
msgid "Cache Location"
|
msgid "Cache Location"
|
||||||
msgstr "Emplacement du cache"
|
msgstr "Emplacement du cache de Lutris"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:128
|
#: data/gtk/preferences.blp:128
|
||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr "Importer les jeux de Steam"
|
msgstr "Importer les jeux de Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137
|
#: data/gtk/preferences.blp:138
|
||||||
msgid "Import Flatpak Games"
|
|
||||||
msgstr "Importer des jeux Flatpak"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:147
|
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
msgstr "Heroic"
|
msgstr "Heroic"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:160
|
#: data/gtk/preferences.blp:151
|
||||||
msgid "Import Epic Games"
|
msgid "Import Epic Games"
|
||||||
msgstr "Importer les jeux d'Epic Games"
|
msgstr "Importer les jeux d'Epic Games"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:169
|
#: data/gtk/preferences.blp:160
|
||||||
msgid "Import GOG Games"
|
msgid "Import GOG Games"
|
||||||
msgstr "Importer les jeux de GOG"
|
msgstr "Importer les jeux de GOG"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:178
|
#: data/gtk/preferences.blp:169
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr "Importer des jeux Sideloaded"
|
msgstr "Importer des jeux Sideloaded"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:188
|
#: data/gtk/preferences.blp:179
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr "Bottles"
|
msgstr "Bottles"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:202
|
#: data/gtk/preferences.blp:193
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr "itch"
|
msgstr "itch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
#: data/gtk/preferences.blp:207
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr "Légendaire"
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:230
|
#: data/gtk/preferences.blp:224
|
||||||
msgid "Flatpak"
|
|
||||||
msgstr "Flatpak"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:243
|
|
||||||
msgid "Import Game Launchers"
|
|
||||||
msgstr "Importer des lanceurs de jeux"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:256
|
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
msgstr "SteamGridDB"
|
msgstr "SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Authentication"
|
msgid "Authentication"
|
||||||
msgstr "Authentification"
|
msgstr "Authentification"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:263
|
#: data/gtk/preferences.blp:231
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr "Clé API"
|
msgstr "Clé API"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:271
|
#: data/gtk/preferences.blp:239
|
||||||
msgid "Use SteamGridDB"
|
msgid "Use SteamGridDB"
|
||||||
msgstr "Utiliser SteamGridDB"
|
msgstr "Utiliser SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:272
|
#: data/gtk/preferences.blp:240
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr "Télécharger les images lors de l’ajout ou de l’importation de jeux"
|
msgstr "Télécharger les images lors de l’ajout ou de l’importation de jeux"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:281
|
#: data/gtk/preferences.blp:249
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr "Préférer à la place des images officielles"
|
msgstr "Préférer à la place des images officielles"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:290
|
#: data/gtk/preferences.blp:258
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr "Préférer les images animées"
|
msgstr "Préférer les images animées"
|
||||||
|
|
||||||
@@ -398,24 +388,24 @@ msgstr "Raccourcis clavier"
|
|||||||
|
|
||||||
#: data/gtk/window.blp:426
|
#: data/gtk/window.blp:426
|
||||||
msgid "About Cartridges"
|
msgid "About Cartridges"
|
||||||
msgstr "À propos de Cartouches"
|
msgstr "À propos de Cartridges"
|
||||||
|
|
||||||
#. Translators: Replace this with your name for it to show up in the about window
|
#. Translators: Replace this with your name for it to show up in the about window
|
||||||
#: src/main.py:180
|
#: src/main.py:164
|
||||||
msgid "translator_credits"
|
msgid "translator_credits"
|
||||||
msgstr "Irénée Thirion"
|
msgstr "Irénée Thirion"
|
||||||
|
|
||||||
#. The variable is the date when the game was added
|
#. The variable is the date when the game was added
|
||||||
#: src/window.py:194
|
#: src/window.py:192
|
||||||
msgid "Added: {}"
|
msgid "Added: {}"
|
||||||
msgstr "Ajouté : {}"
|
msgstr "Ajouté : {}"
|
||||||
|
|
||||||
#: src/window.py:197
|
#: src/window.py:195
|
||||||
msgid "Never"
|
msgid "Never"
|
||||||
msgstr "Jamais"
|
msgstr "Jamais"
|
||||||
|
|
||||||
#. The variable is the date when the game was last played
|
#. The variable is the date when the game was last played
|
||||||
#: src/window.py:201
|
#: src/window.py:199
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr "Dernière session : {}"
|
msgstr "Dernière session : {}"
|
||||||
|
|
||||||
@@ -432,26 +422,26 @@ msgid "Confirm"
|
|||||||
msgstr "Confirmer"
|
msgstr "Confirmer"
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: src/details_window.py:92
|
#: src/details_window.py:91
|
||||||
msgid "file.txt"
|
msgid "file.txt"
|
||||||
msgstr "fichier.txt"
|
msgstr "fichier.txt"
|
||||||
|
|
||||||
#. As in software
|
#. As in software
|
||||||
#: src/details_window.py:94
|
#: src/details_window.py:93
|
||||||
msgid "program"
|
msgid "program"
|
||||||
msgstr "programme"
|
msgstr "programme"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:99 src/details_window.py:101
|
#: src/details_window.py:98 src/details_window.py:100
|
||||||
msgid "C:\\path\\to\\{}"
|
msgid "C:\\path\\to\\{}"
|
||||||
msgstr "C:\\chemin\\vers\\{}"
|
msgstr "C:\\chemin\\vers\\{}"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:105 src/details_window.py:107
|
#: src/details_window.py:104 src/details_window.py:106
|
||||||
msgid "/path/to/{}"
|
msgid "/path/to/{}"
|
||||||
msgstr "/chemin/vers/{}"
|
msgstr "/chemin/vers/{}"
|
||||||
|
|
||||||
#: src/details_window.py:112
|
#: src/details_window.py:111
|
||||||
msgid ""
|
msgid ""
|
||||||
"To launch the executable \"{}\", use the command:\n"
|
"To launch the executable \"{}\", use the command:\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -475,15 +465,15 @@ msgstr ""
|
|||||||
"Si le chemin d'accès contient des espaces, veillez à le mettre entre "
|
"Si le chemin d'accès contient des espaces, veillez à le mettre entre "
|
||||||
"guillemets !"
|
"guillemets !"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:153
|
#: src/details_window.py:146 src/details_window.py:152
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
msgstr "Impossible d’ajouter le jeu"
|
msgstr "Impossible d’ajouter le jeu"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:181
|
#: src/details_window.py:146 src/details_window.py:181
|
||||||
msgid "Game title cannot be empty."
|
msgid "Game title cannot be empty."
|
||||||
msgstr "Le titre du jeu ne peut pas être vide."
|
msgstr "Le titre du jeu ne peut pas être vide."
|
||||||
|
|
||||||
#: src/details_window.py:153 src/details_window.py:189
|
#: src/details_window.py:152 src/details_window.py:189
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr "L’exécutable ne peut pas être vide."
|
msgstr "L’exécutable ne peut pas être vide."
|
||||||
|
|
||||||
@@ -492,62 +482,35 @@ msgid "Couldn't Apply Preferences"
|
|||||||
msgstr "Impossible d’appliquer les préférences"
|
msgstr "Impossible d’appliquer les préférences"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:138
|
#: src/game.py:141
|
||||||
msgid "{} launched"
|
msgid "{} launched"
|
||||||
msgstr "{} lancé"
|
msgstr "{} lancé"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr "{} masqué"
|
msgstr "{} masqué"
|
||||||
|
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} unhidden"
|
msgid "{} unhidden"
|
||||||
msgstr "{} affiché"
|
msgstr "{} affiché"
|
||||||
|
|
||||||
#: src/game.py:169
|
#: src/game.py:171
|
||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr "{} retiré"
|
msgstr "{} retiré"
|
||||||
|
|
||||||
#: src/preferences.py:111
|
#: src/preferences.py:102
|
||||||
msgid "All games removed"
|
msgid "All games removed"
|
||||||
msgstr "Tous les jeux ont été supprimés"
|
msgstr "Tous les jeux ont été supprimés"
|
||||||
|
|
||||||
#: src/preferences.py:159
|
#: src/preferences.py:149
|
||||||
msgid ""
|
msgid ""
|
||||||
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Une clé API est requise pour utiliser SteamGridDB. Vous pouvez en générer "
|
"Une clé API est requise pour utiliser SteamGridDB. Vous pouvez en générer "
|
||||||
"une {}ici{}."
|
"une {}ici{}."
|
||||||
|
|
||||||
#: src/preferences.py:284
|
#: src/preferences.py:289
|
||||||
msgid "Installation Not Found"
|
|
||||||
msgstr "Installation introuvable"
|
|
||||||
|
|
||||||
#: src/preferences.py:286
|
|
||||||
msgid "Select a valid directory."
|
|
||||||
msgstr "Sélectionnez un répertoire valide."
|
|
||||||
|
|
||||||
#: src/preferences.py:348
|
|
||||||
msgid "Invalid Directory"
|
|
||||||
msgstr "Répertoire invalide"
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:352
|
|
||||||
msgid "Select the {} cache directory."
|
|
||||||
msgstr "Sélectionnez le répertoire de cache de {}."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:355
|
|
||||||
msgid "Select the {} configuration directory."
|
|
||||||
msgstr "Sélectionnez le répertoire de configuration de {}."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:358
|
|
||||||
msgid "Select the {} data directory."
|
|
||||||
msgstr "Sélectionnez le répertoire de données de {}."
|
|
||||||
|
|
||||||
#: src/preferences.py:364
|
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
msgstr "Définir l’emplacement"
|
msgstr "Définir l’emplacement"
|
||||||
|
|
||||||
@@ -555,23 +518,38 @@ msgstr "Définir l’emplacement"
|
|||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
msgstr "Fermer"
|
msgstr "Fermer"
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:106
|
||||||
|
msgid "Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:107
|
||||||
|
msgid "Cache"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:108
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Confirm"
|
||||||
|
msgid "Configuration"
|
||||||
|
msgstr "Confirmer"
|
||||||
|
|
||||||
|
#. The variables are the type of location (eg. cache) and the source's name (eg. Steam)
|
||||||
|
#: src/importer/sources/source.py:119
|
||||||
|
msgid "Invalid {} Location for {{}}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:120
|
||||||
|
msgid "Pick a new one or disable the source in preferences"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:47
|
#: src/store/managers/sgdb_manager.py:47
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Couldn't Connect to SteamGridDB"
|
||||||
msgid "Couldn't Authenticate SteamGridDB"
|
msgid "Couldn't Authenticate SteamGridDB"
|
||||||
msgstr "Impossible de se connecter à SteamGridDB"
|
msgstr "Impossible de se connecter à SteamGridDB"
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:48
|
#: src/store/managers/sgdb_manager.py:48
|
||||||
msgid "Verify your API key in preferences"
|
msgid "Verify your API key in preferences"
|
||||||
msgstr "Vérifiez votre clé API dans les préférences"
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "The Steam directory cannot be found."
|
|
||||||
#~ msgid "Directory not Valid"
|
|
||||||
#~ msgstr "Le répertoire Steam est introuvable."
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "Confirm"
|
|
||||||
#~ msgid "Configuration"
|
|
||||||
#~ msgstr "Confirmer"
|
|
||||||
|
|
||||||
#~ msgid "Steam Install Location"
|
#~ msgid "Steam Install Location"
|
||||||
#~ msgstr "Emplacement de l’installation de Steam"
|
#~ msgstr "Emplacement de l’installation de Steam"
|
||||||
@@ -597,6 +575,15 @@ msgstr "Vérifiez votre clé API dans les préférences"
|
|||||||
#~ msgid "Select the Lutris cache directory."
|
#~ msgid "Select the Lutris cache directory."
|
||||||
#~ msgstr "Sélectionnez le répertoire du cache de Lutris."
|
#~ msgstr "Sélectionnez le répertoire du cache de Lutris."
|
||||||
|
|
||||||
|
#~ msgid "Installation Not Found"
|
||||||
|
#~ msgstr "Installation introuvable"
|
||||||
|
|
||||||
|
#~ msgid "Select the {} configuration directory."
|
||||||
|
#~ msgstr "Sélectionnez le répertoire de configuration de {}."
|
||||||
|
|
||||||
|
#~ msgid "Select the {} data directory."
|
||||||
|
#~ msgstr "Sélectionnez le répertoire de données de {}."
|
||||||
|
|
||||||
#~ msgid "Importing Games…"
|
#~ msgid "Importing Games…"
|
||||||
#~ msgstr "Importation des jeux…"
|
#~ msgstr "Importation des jeux…"
|
||||||
|
|
||||||
@@ -723,6 +710,9 @@ msgstr "Vérifiez votre clé API dans les préférences"
|
|||||||
#~ msgid "No new games were found in the Steam library."
|
#~ msgid "No new games were found in the Steam library."
|
||||||
#~ msgstr "Aucun nouveau jeu n'a été trouvé dans la bibliothèque Steam."
|
#~ msgstr "Aucun nouveau jeu n'a été trouvé dans la bibliothèque Steam."
|
||||||
|
|
||||||
|
#~ msgid "The Steam directory cannot be found."
|
||||||
|
#~ msgstr "Le répertoire Steam est introuvable."
|
||||||
|
|
||||||
#~ msgid "Talking to Steam"
|
#~ msgid "Talking to Steam"
|
||||||
#~ msgstr "Parler à Steam"
|
#~ msgstr "Parler à Steam"
|
||||||
|
|
||||||
|
|||||||
179
po/hu.po
179
po/hu.po
@@ -8,8 +8,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-07-05 14:36+0200\n"
|
"POT-Creation-Date: 2023-06-26 12:01+0200\n"
|
||||||
"PO-Revision-Date: 2023-07-05 13:13+0000\n"
|
"PO-Revision-Date: 2023-06-26 10:05+0000\n"
|
||||||
"Last-Translator: kramo <contact@kramo.hu>\n"
|
"Last-Translator: kramo <contact@kramo.hu>\n"
|
||||||
"Language-Team: Hungarian <https://hosted.weblate.org/projects/cartridges/"
|
"Language-Team: Hungarian <https://hosted.weblate.org/projects/cartridges/"
|
||||||
"cartridges/hu/>\n"
|
"cartridges/hu/>\n"
|
||||||
@@ -18,11 +18,11 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
"X-Generator: Weblate 5.0-dev\n"
|
"X-Generator: Weblate 4.18.1\n"
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
||||||
#: src/main.py:162
|
#: src/main.py:146
|
||||||
msgid "Cartridges"
|
msgid "Cartridges"
|
||||||
msgstr "Kazetták"
|
msgstr "Kazetták"
|
||||||
|
|
||||||
@@ -112,7 +112,7 @@ msgstr "Több infó"
|
|||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Szerkesztés"
|
msgstr "Szerkesztés"
|
||||||
|
|
||||||
#: data/gtk/game.blp:107 src/window.py:171
|
#: data/gtk/game.blp:107 src/window.py:169
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr "Elrejtés"
|
msgstr "Elrejtés"
|
||||||
|
|
||||||
@@ -121,7 +121,7 @@ msgstr "Elrejtés"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Eltávolítás"
|
msgstr "Eltávolítás"
|
||||||
|
|
||||||
#: data/gtk/game.blp:126 src/window.py:173
|
#: data/gtk/game.blp:126 src/window.py:171
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr "Elrejtés visszavonása"
|
msgstr "Elrejtés visszavonása"
|
||||||
|
|
||||||
@@ -146,7 +146,7 @@ msgstr "Beállítások megjelenítése"
|
|||||||
msgid "Shortcuts"
|
msgid "Shortcuts"
|
||||||
msgstr "Gyorsbillentyűk"
|
msgstr "Gyorsbillentyűk"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112
|
#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Visszavonás"
|
msgstr "Visszavonás"
|
||||||
|
|
||||||
@@ -174,7 +174,7 @@ msgstr "Rejtett játékok megjelenítése"
|
|||||||
msgid "Remove game"
|
msgid "Remove game"
|
||||||
msgstr "Játék eltávolítása"
|
msgstr "Játék eltávolítása"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr "Működés"
|
msgstr "Működés"
|
||||||
|
|
||||||
@@ -223,9 +223,8 @@ msgid "Steam"
|
|||||||
msgstr "Steam"
|
msgstr "Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
||||||
#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192
|
#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183
|
||||||
#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220
|
#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211
|
||||||
#: data/gtk/preferences.blp:234
|
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
msgstr "Telepítés helye"
|
msgstr "Telepítés helye"
|
||||||
|
|
||||||
@@ -241,71 +240,59 @@ msgstr "Gyorsítótár helye"
|
|||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr "Steam játékok importálása"
|
msgstr "Steam játékok importálása"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137
|
#: data/gtk/preferences.blp:138
|
||||||
msgid "Import Flatpak Games"
|
|
||||||
msgstr "Flatpak játékok importálása"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:147
|
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
msgstr "Heroic"
|
msgstr "Heroic"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:160
|
#: data/gtk/preferences.blp:151
|
||||||
msgid "Import Epic Games"
|
msgid "Import Epic Games"
|
||||||
msgstr "Epic Games játékok importálása"
|
msgstr "Epic Games játékok importálása"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:169
|
#: data/gtk/preferences.blp:160
|
||||||
msgid "Import GOG Games"
|
msgid "Import GOG Games"
|
||||||
msgstr "GOG játékok importálása"
|
msgstr "GOG játékok importálása"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:178
|
#: data/gtk/preferences.blp:169
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr "Manuálisan hozzáadott játékok importálása"
|
msgstr "Manuálisan hozzáadott játékok importálása"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:188
|
#: data/gtk/preferences.blp:179
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr "Palackok"
|
msgstr "Palackok"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:202
|
#: data/gtk/preferences.blp:193
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr "itch"
|
msgstr "itch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
#: data/gtk/preferences.blp:207
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr "Legendary"
|
msgstr "Legendary"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:230
|
#: data/gtk/preferences.blp:224
|
||||||
msgid "Flatpak"
|
|
||||||
msgstr "Flatpak"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:243
|
|
||||||
msgid "Import Game Launchers"
|
|
||||||
msgstr "Játékindítók importálása"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:256
|
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
msgstr "SteamGridDB"
|
msgstr "SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Authentication"
|
msgid "Authentication"
|
||||||
msgstr "Hitelesítés"
|
msgstr "Hitelesítés"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:263
|
#: data/gtk/preferences.blp:231
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr "API kulcs"
|
msgstr "API kulcs"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:271
|
#: data/gtk/preferences.blp:239
|
||||||
msgid "Use SteamGridDB"
|
msgid "Use SteamGridDB"
|
||||||
msgstr "SteamGridDB használata"
|
msgstr "SteamGridDB használata"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:272
|
#: data/gtk/preferences.blp:240
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr "Képek letöltése játékok hozzáadásakor és importálásakor"
|
msgstr "Képek letöltése játékok hozzáadásakor és importálásakor"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:281
|
#: data/gtk/preferences.blp:249
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr "SteamGridDB képek előnyben részesítése"
|
msgstr "SteamGridDB képek előnyben részesítése"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:290
|
#: data/gtk/preferences.blp:258
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr "Animált képek előnyben részesítése"
|
msgstr "Animált képek előnyben részesítése"
|
||||||
|
|
||||||
@@ -394,21 +381,21 @@ msgid "About Cartridges"
|
|||||||
msgstr "A Kazetták névjegye"
|
msgstr "A Kazetták névjegye"
|
||||||
|
|
||||||
#. Translators: Replace this with your name for it to show up in the about window
|
#. Translators: Replace this with your name for it to show up in the about window
|
||||||
#: src/main.py:180
|
#: src/main.py:164
|
||||||
msgid "translator_credits"
|
msgid "translator_credits"
|
||||||
msgstr "kramo https://kramo.hu"
|
msgstr "kramo https://kramo.hu"
|
||||||
|
|
||||||
#. The variable is the date when the game was added
|
#. The variable is the date when the game was added
|
||||||
#: src/window.py:194
|
#: src/window.py:192
|
||||||
msgid "Added: {}"
|
msgid "Added: {}"
|
||||||
msgstr "Hozzáadva: {}"
|
msgstr "Hozzáadva: {}"
|
||||||
|
|
||||||
#: src/window.py:197
|
#: src/window.py:195
|
||||||
msgid "Never"
|
msgid "Never"
|
||||||
msgstr "Soha"
|
msgstr "Soha"
|
||||||
|
|
||||||
#. The variable is the date when the game was last played
|
#. The variable is the date when the game was last played
|
||||||
#: src/window.py:201
|
#: src/window.py:199
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr "Legutóbbi játékmenet: {}"
|
msgstr "Legutóbbi játékmenet: {}"
|
||||||
|
|
||||||
@@ -425,26 +412,26 @@ msgid "Confirm"
|
|||||||
msgstr "Megerősítés"
|
msgstr "Megerősítés"
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: src/details_window.py:92
|
#: src/details_window.py:91
|
||||||
msgid "file.txt"
|
msgid "file.txt"
|
||||||
msgstr "fájl.txt"
|
msgstr "fájl.txt"
|
||||||
|
|
||||||
#. As in software
|
#. As in software
|
||||||
#: src/details_window.py:94
|
#: src/details_window.py:93
|
||||||
msgid "program"
|
msgid "program"
|
||||||
msgstr "program"
|
msgstr "program"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:99 src/details_window.py:101
|
#: src/details_window.py:98 src/details_window.py:100
|
||||||
msgid "C:\\path\\to\\{}"
|
msgid "C:\\path\\to\\{}"
|
||||||
msgstr "C:\\útvonal\\ide\\{}"
|
msgstr "C:\\útvonal\\ide\\{}"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:105 src/details_window.py:107
|
#: src/details_window.py:104 src/details_window.py:106
|
||||||
msgid "/path/to/{}"
|
msgid "/path/to/{}"
|
||||||
msgstr "/útvonal/ide/{}"
|
msgstr "/útvonal/ide/{}"
|
||||||
|
|
||||||
#: src/details_window.py:112
|
#: src/details_window.py:111
|
||||||
msgid ""
|
msgid ""
|
||||||
"To launch the executable \"{}\", use the command:\n"
|
"To launch the executable \"{}\", use the command:\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -467,15 +454,15 @@ msgstr ""
|
|||||||
"\n"
|
"\n"
|
||||||
"Ha az elérési útvonalban szóközök vannak, rakja az útvonalat idézőjelek közé!"
|
"Ha az elérési útvonalban szóközök vannak, rakja az útvonalat idézőjelek közé!"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:153
|
#: src/details_window.py:146 src/details_window.py:152
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
msgstr "Nem lehet hozzáadni a játékot"
|
msgstr "Nem lehet hozzáadni a játékot"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:181
|
#: src/details_window.py:146 src/details_window.py:181
|
||||||
msgid "Game title cannot be empty."
|
msgid "Game title cannot be empty."
|
||||||
msgstr "A cím nem lehet üres."
|
msgstr "A cím nem lehet üres."
|
||||||
|
|
||||||
#: src/details_window.py:153 src/details_window.py:189
|
#: src/details_window.py:152 src/details_window.py:189
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr "A program nem lehet üres."
|
msgstr "A program nem lehet üres."
|
||||||
|
|
||||||
@@ -484,62 +471,35 @@ msgid "Couldn't Apply Preferences"
|
|||||||
msgstr "Nem lehet menteni a beállításokat"
|
msgstr "Nem lehet menteni a beállításokat"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:138
|
#: src/game.py:141
|
||||||
msgid "{} launched"
|
msgid "{} launched"
|
||||||
msgstr "{} elindítva"
|
msgstr "{} elindítva"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr "{} elrejtve"
|
msgstr "{} elrejtve"
|
||||||
|
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} unhidden"
|
msgid "{} unhidden"
|
||||||
msgstr "{} elrejtése visszavonva"
|
msgstr "{} elrejtése visszavonva"
|
||||||
|
|
||||||
#: src/game.py:169
|
#: src/game.py:171
|
||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr "{} eltávolítva"
|
msgstr "{} eltávolítva"
|
||||||
|
|
||||||
#: src/preferences.py:111
|
#: src/preferences.py:102
|
||||||
msgid "All games removed"
|
msgid "All games removed"
|
||||||
msgstr "Az összes játék eltávolítva"
|
msgstr "Az összes játék eltávolítva"
|
||||||
|
|
||||||
#: src/preferences.py:159
|
#: src/preferences.py:149
|
||||||
msgid ""
|
msgid ""
|
||||||
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Egy API kulcs szükséges a SteamGridDB használatához. {}Itt{} generálhat "
|
"Egy API kulcs szükséges a SteamGridDB használatához. {}Itt{} generálhat "
|
||||||
"egyet."
|
"egyet."
|
||||||
|
|
||||||
#: src/preferences.py:284
|
#: src/preferences.py:289
|
||||||
msgid "Installation Not Found"
|
|
||||||
msgstr "A telepítés nem található"
|
|
||||||
|
|
||||||
#: src/preferences.py:286
|
|
||||||
msgid "Select a valid directory."
|
|
||||||
msgstr "Válasszon ki egy érvényes mappát."
|
|
||||||
|
|
||||||
#: src/preferences.py:348
|
|
||||||
msgid "Invalid Directory"
|
|
||||||
msgstr "Érvénytelen mappa"
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:352
|
|
||||||
msgid "Select the {} cache directory."
|
|
||||||
msgstr "Válassza ki {} gyorsítótár mappáját."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:355
|
|
||||||
msgid "Select the {} configuration directory."
|
|
||||||
msgstr "Válassza ki {} konfigurációs mappáját."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:358
|
|
||||||
msgid "Select the {} data directory."
|
|
||||||
msgstr "Válassza ki {} adatok mappáját."
|
|
||||||
|
|
||||||
#: src/preferences.py:364
|
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
msgstr "Mappa kiválasztása"
|
msgstr "Mappa kiválasztása"
|
||||||
|
|
||||||
@@ -547,6 +507,27 @@ msgstr "Mappa kiválasztása"
|
|||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
msgstr "Rendben"
|
msgstr "Rendben"
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:106
|
||||||
|
msgid "Data"
|
||||||
|
msgstr "Adatok"
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:107
|
||||||
|
msgid "Cache"
|
||||||
|
msgstr "Gyorsítótár"
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:108
|
||||||
|
msgid "Configuration"
|
||||||
|
msgstr "Konfigurációk"
|
||||||
|
|
||||||
|
#. The variables are the type of location (eg. cache) and the source's name (eg. Steam)
|
||||||
|
#: src/importer/sources/source.py:119
|
||||||
|
msgid "Invalid {} Location for {{}}"
|
||||||
|
msgstr "Érvénytelen {} mappa ennek a forrásnak: {{}}"
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:120
|
||||||
|
msgid "Pick a new one or disable the source in preferences"
|
||||||
|
msgstr "Válasszon egy újat, vagy kapcsolja ki a forrást a beállításokban"
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:47
|
#: src/store/managers/sgdb_manager.py:47
|
||||||
msgid "Couldn't Authenticate SteamGridDB"
|
msgid "Couldn't Authenticate SteamGridDB"
|
||||||
msgstr "Nem lehet hitelesíteni SteamGridDB-t"
|
msgstr "Nem lehet hitelesíteni SteamGridDB-t"
|
||||||
@@ -555,26 +536,6 @@ msgstr "Nem lehet hitelesíteni SteamGridDB-t"
|
|||||||
msgid "Verify your API key in preferences"
|
msgid "Verify your API key in preferences"
|
||||||
msgstr "Ellenőrizze az API kulcsát a beállításokban"
|
msgstr "Ellenőrizze az API kulcsát a beállításokban"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "The Steam directory cannot be found."
|
|
||||||
#~ msgid "Directory not Valid"
|
|
||||||
#~ msgstr "A Steam mappa nem található."
|
|
||||||
|
|
||||||
#~ msgid "Data"
|
|
||||||
#~ msgstr "Adatok"
|
|
||||||
|
|
||||||
#~ msgid "Cache"
|
|
||||||
#~ msgstr "Gyorsítótár"
|
|
||||||
|
|
||||||
#~ msgid "Configuration"
|
|
||||||
#~ msgstr "Konfigurációk"
|
|
||||||
|
|
||||||
#~ msgid "Invalid {} Location for {{}}"
|
|
||||||
#~ msgstr "Érvénytelen {} mappa ennek a forrásnak: {{}}"
|
|
||||||
|
|
||||||
#~ msgid "Pick a new one or disable the source in preferences"
|
|
||||||
#~ msgstr "Válasszon egy újat, vagy kapcsolja ki a forrást a beállításokban"
|
|
||||||
|
|
||||||
#~ msgid "Steam Install Location"
|
#~ msgid "Steam Install Location"
|
||||||
#~ msgstr "Steam telepítés helye"
|
#~ msgstr "Steam telepítés helye"
|
||||||
|
|
||||||
@@ -599,6 +560,15 @@ msgstr "Ellenőrizze az API kulcsát a beállításokban"
|
|||||||
#~ msgid "Select the Lutris cache directory."
|
#~ msgid "Select the Lutris cache directory."
|
||||||
#~ msgstr "Válassza ki Lutris gyorsítótár mappáját."
|
#~ msgstr "Válassza ki Lutris gyorsítótár mappáját."
|
||||||
|
|
||||||
|
#~ msgid "Installation Not Found"
|
||||||
|
#~ msgstr "Telepítés nem található"
|
||||||
|
|
||||||
|
#~ msgid "Select the {} configuration directory."
|
||||||
|
#~ msgstr "Válassza ki {} konfigurációs mappáját."
|
||||||
|
|
||||||
|
#~ msgid "Select the {} data directory."
|
||||||
|
#~ msgstr "Válassza ki {} adatainak mappáját."
|
||||||
|
|
||||||
#~ msgid "Importing Games…"
|
#~ msgid "Importing Games…"
|
||||||
#~ msgstr "Játékok importálása folyamatban…"
|
#~ msgstr "Játékok importálása folyamatban…"
|
||||||
|
|
||||||
@@ -718,6 +688,9 @@ msgstr "Ellenőrizze az API kulcsát a beállításokban"
|
|||||||
#~ msgid "No new games were found in the Steam library."
|
#~ msgid "No new games were found in the Steam library."
|
||||||
#~ msgstr "Nem találhatóak új játékok a Steam könyvtárban."
|
#~ msgstr "Nem találhatóak új játékok a Steam könyvtárban."
|
||||||
|
|
||||||
|
#~ msgid "The Steam directory cannot be found."
|
||||||
|
#~ msgstr "A Steam mappa nem található."
|
||||||
|
|
||||||
#~ msgid "Talking to Steam"
|
#~ msgid "Talking to Steam"
|
||||||
#~ msgstr "Adatok lekérése a Steam-ből"
|
#~ msgstr "Adatok lekérése a Steam-ből"
|
||||||
|
|
||||||
|
|||||||
194
po/it.po
194
po/it.po
@@ -4,14 +4,13 @@
|
|||||||
# Alessandro Iepure <alessandro.iepure@gmail.com>, 2023.
|
# Alessandro Iepure <alessandro.iepure@gmail.com>, 2023.
|
||||||
# albanobattistella <albano_battistella@hotmail.com>, 2023.
|
# albanobattistella <albano_battistella@hotmail.com>, 2023.
|
||||||
# kramo <contact@kramo.hu>, 2023.
|
# kramo <contact@kramo.hu>, 2023.
|
||||||
# Giasko <dibiame@hotmail.it>, 2023.
|
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: cartridges\n"
|
"Project-Id-Version: cartridges\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-07-05 14:36+0200\n"
|
"POT-Creation-Date: 2023-06-26 12:01+0200\n"
|
||||||
"PO-Revision-Date: 2023-07-21 12:16+0000\n"
|
"PO-Revision-Date: 2023-05-26 18:10+0000\n"
|
||||||
"Last-Translator: Giasko <dibiame@hotmail.it>\n"
|
"Last-Translator: albanobattistella <albano_battistella@hotmail.com>\n"
|
||||||
"Language-Team: Italian <https://hosted.weblate.org/projects/cartridges/"
|
"Language-Team: Italian <https://hosted.weblate.org/projects/cartridges/"
|
||||||
"cartridges/it/>\n"
|
"cartridges/it/>\n"
|
||||||
"Language: it\n"
|
"Language: it\n"
|
||||||
@@ -19,11 +18,11 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
"X-Generator: Weblate 5.0-dev\n"
|
"X-Generator: Weblate 4.18-dev\n"
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
||||||
#: src/main.py:162
|
#: src/main.py:146
|
||||||
msgid "Cartridges"
|
msgid "Cartridges"
|
||||||
msgstr "Cartucce"
|
msgstr "Cartucce"
|
||||||
|
|
||||||
@@ -88,7 +87,7 @@ msgstr "Titolo"
|
|||||||
|
|
||||||
#: data/gtk/details-window.blp:102
|
#: data/gtk/details-window.blp:102
|
||||||
msgid "The title of the game"
|
msgid "The title of the game"
|
||||||
msgstr "Il titolo del gioco"
|
msgstr "Titolo del gioco"
|
||||||
|
|
||||||
#: data/gtk/details-window.blp:112 data/gtk/details-window.blp:117
|
#: data/gtk/details-window.blp:112 data/gtk/details-window.blp:117
|
||||||
msgid "Developer"
|
msgid "Developer"
|
||||||
@@ -114,7 +113,7 @@ msgstr "Altre informazioni"
|
|||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Modifica"
|
msgstr "Modifica"
|
||||||
|
|
||||||
#: data/gtk/game.blp:107 src/window.py:171
|
#: data/gtk/game.blp:107 src/window.py:169
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr "Nascondi"
|
msgstr "Nascondi"
|
||||||
|
|
||||||
@@ -123,7 +122,7 @@ msgstr "Nascondi"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Rimuovi"
|
msgstr "Rimuovi"
|
||||||
|
|
||||||
#: data/gtk/game.blp:126 src/window.py:173
|
#: data/gtk/game.blp:126 src/window.py:171
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr "Mostra"
|
msgstr "Mostra"
|
||||||
|
|
||||||
@@ -133,7 +132,7 @@ msgstr "Generale"
|
|||||||
|
|
||||||
#: data/gtk/help-overlay.blp:14
|
#: data/gtk/help-overlay.blp:14
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Esci"
|
msgstr "Chiudi"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:19 data/gtk/window.blp:217 data/gtk/window.blp:257
|
#: data/gtk/help-overlay.blp:19 data/gtk/window.blp:217 data/gtk/window.blp:257
|
||||||
#: data/gtk/window.blp:323
|
#: data/gtk/window.blp:323
|
||||||
@@ -148,7 +147,7 @@ msgstr "Mostra preferenze"
|
|||||||
msgid "Shortcuts"
|
msgid "Shortcuts"
|
||||||
msgstr "Scorciatoie da tastiera"
|
msgstr "Scorciatoie da tastiera"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112
|
#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Annulla"
|
msgstr "Annulla"
|
||||||
|
|
||||||
@@ -176,7 +175,7 @@ msgstr "Mostra giochi nascosti"
|
|||||||
msgid "Remove game"
|
msgid "Remove game"
|
||||||
msgstr "Rimuovi gioco"
|
msgstr "Rimuovi gioco"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr "Comportamento"
|
msgstr "Comportamento"
|
||||||
|
|
||||||
@@ -226,89 +225,80 @@ msgid "Steam"
|
|||||||
msgstr "Steam"
|
msgstr "Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
||||||
#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192
|
#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183
|
||||||
#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220
|
#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211
|
||||||
#: data/gtk/preferences.blp:234
|
#, fuzzy
|
||||||
|
#| msgid "itch Install Location"
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
msgstr "Posizione di installazione"
|
msgstr "itch Posizione di installazione"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:106
|
#: data/gtk/preferences.blp:106
|
||||||
msgid "Lutris"
|
msgid "Lutris"
|
||||||
msgstr "Lutris"
|
msgstr "Lutris"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:119
|
#: data/gtk/preferences.blp:119
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Lutris Cache Location"
|
||||||
msgid "Cache Location"
|
msgid "Cache Location"
|
||||||
msgstr "Posizione della cache"
|
msgstr "Posizione della cache di Lutris"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:128
|
#: data/gtk/preferences.blp:128
|
||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr "Importa giochi da Steam"
|
msgstr "Importa giochi da Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137
|
#: data/gtk/preferences.blp:138
|
||||||
msgid "Import Flatpak Games"
|
|
||||||
msgstr "Importa giochi da Flatpak"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:147
|
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
msgstr "Heroic"
|
msgstr "Heroic"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:160
|
#: data/gtk/preferences.blp:151
|
||||||
msgid "Import Epic Games"
|
msgid "Import Epic Games"
|
||||||
msgstr "Importa giochi da Epic Games"
|
msgstr "Importa giochi da Epic Games"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:169
|
#: data/gtk/preferences.blp:160
|
||||||
msgid "Import GOG Games"
|
msgid "Import GOG Games"
|
||||||
msgstr "Importa giochi da GOG"
|
msgstr "Importa giochi da GOG"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:178
|
#: data/gtk/preferences.blp:169
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr "Importa giochi da aggiunti manualmente"
|
msgstr "Importa giochi da aggiunti manualmente"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:188
|
#: data/gtk/preferences.blp:179
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr "Bottles"
|
msgstr "Bottles"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:202
|
#: data/gtk/preferences.blp:193
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr "itch"
|
msgstr "itch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
#: data/gtk/preferences.blp:207
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr "Legendary"
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:230
|
#: data/gtk/preferences.blp:224
|
||||||
msgid "Flatpak"
|
|
||||||
msgstr "Flatpak"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:243
|
|
||||||
msgid "Import Game Launchers"
|
|
||||||
msgstr "Importa launcher di giochi"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:256
|
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
msgstr "SteamGridDB"
|
msgstr "SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Authentication"
|
msgid "Authentication"
|
||||||
msgstr "Autenticazione"
|
msgstr "Autenticazione"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:263
|
#: data/gtk/preferences.blp:231
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr "Chiave API"
|
msgstr "Chiave API"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:271
|
#: data/gtk/preferences.blp:239
|
||||||
msgid "Use SteamGridDB"
|
msgid "Use SteamGridDB"
|
||||||
msgstr "Usa SteamGridDB"
|
msgstr "Usa SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:272
|
#: data/gtk/preferences.blp:240
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr "Scarica immagini durante l'aggiunta o l'import di giochi"
|
msgstr "Scarica immagini durante l'aggiunta o l'import di giochi"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:281
|
#: data/gtk/preferences.blp:249
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr "Preferisci alle immagini ufficiali"
|
msgstr "Preferisci alle immagini ufficiali"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:290
|
#: data/gtk/preferences.blp:258
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr "Preferisci immagini animate"
|
msgstr "Preferisci immagini animate"
|
||||||
|
|
||||||
@@ -397,21 +387,21 @@ msgid "About Cartridges"
|
|||||||
msgstr "Informazioni su Cartucce"
|
msgstr "Informazioni su Cartucce"
|
||||||
|
|
||||||
#. Translators: Replace this with your name for it to show up in the about window
|
#. Translators: Replace this with your name for it to show up in the about window
|
||||||
#: src/main.py:180
|
#: src/main.py:164
|
||||||
msgid "translator_credits"
|
msgid "translator_credits"
|
||||||
msgstr "Alessandro Iepure https://ale.iepure.me"
|
msgstr "Alessandro Iepure https://ale.iepure.me"
|
||||||
|
|
||||||
#. The variable is the date when the game was added
|
#. The variable is the date when the game was added
|
||||||
#: src/window.py:194
|
#: src/window.py:192
|
||||||
msgid "Added: {}"
|
msgid "Added: {}"
|
||||||
msgstr "Aggiunto il: {}"
|
msgstr "Aggiunto il: {}"
|
||||||
|
|
||||||
#: src/window.py:197
|
#: src/window.py:195
|
||||||
msgid "Never"
|
msgid "Never"
|
||||||
msgstr "Mai"
|
msgstr "Mai"
|
||||||
|
|
||||||
#. The variable is the date when the game was last played
|
#. The variable is the date when the game was last played
|
||||||
#: src/window.py:201
|
#: src/window.py:199
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr "Ultima riproduzione: {}"
|
msgstr "Ultima riproduzione: {}"
|
||||||
|
|
||||||
@@ -428,26 +418,26 @@ msgid "Confirm"
|
|||||||
msgstr "Conferma"
|
msgstr "Conferma"
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: src/details_window.py:92
|
#: src/details_window.py:91
|
||||||
msgid "file.txt"
|
msgid "file.txt"
|
||||||
msgstr "file.txt"
|
msgstr "file.txt"
|
||||||
|
|
||||||
#. As in software
|
#. As in software
|
||||||
#: src/details_window.py:94
|
#: src/details_window.py:93
|
||||||
msgid "program"
|
msgid "program"
|
||||||
msgstr "programma"
|
msgstr "programma"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:99 src/details_window.py:101
|
#: src/details_window.py:98 src/details_window.py:100
|
||||||
msgid "C:\\path\\to\\{}"
|
msgid "C:\\path\\to\\{}"
|
||||||
msgstr "C:\\path\\to{}"
|
msgstr "C:\\path\\to{}"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:105 src/details_window.py:107
|
#: src/details_window.py:104 src/details_window.py:106
|
||||||
msgid "/path/to/{}"
|
msgid "/path/to/{}"
|
||||||
msgstr "/percorso/to/{}"
|
msgstr "/percorso/to/{}"
|
||||||
|
|
||||||
#: src/details_window.py:112
|
#: src/details_window.py:111
|
||||||
msgid ""
|
msgid ""
|
||||||
"To launch the executable \"{}\", use the command:\n"
|
"To launch the executable \"{}\", use the command:\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -469,15 +459,15 @@ msgstr ""
|
|||||||
"\n"
|
"\n"
|
||||||
"Se il percorso contiene spazi, assicurarsi di avvolgerlo in doppi apici!"
|
"Se il percorso contiene spazi, assicurarsi di avvolgerlo in doppi apici!"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:153
|
#: src/details_window.py:146 src/details_window.py:152
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
msgstr "Impossibile aggiungere il gioco"
|
msgstr "Impossibile aggiungere il gioco"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:181
|
#: src/details_window.py:146 src/details_window.py:181
|
||||||
msgid "Game title cannot be empty."
|
msgid "Game title cannot be empty."
|
||||||
msgstr "Il titolo del gioco non può essere vuoto."
|
msgstr "Il titolo del gioco non può essere vuoto."
|
||||||
|
|
||||||
#: src/details_window.py:153 src/details_window.py:189
|
#: src/details_window.py:152 src/details_window.py:189
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr "L'eseguibile non può essere vuoto."
|
msgstr "L'eseguibile non può essere vuoto."
|
||||||
|
|
||||||
@@ -486,62 +476,35 @@ msgid "Couldn't Apply Preferences"
|
|||||||
msgstr "Impossibile applicare le preferenze"
|
msgstr "Impossibile applicare le preferenze"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:138
|
#: src/game.py:141
|
||||||
msgid "{} launched"
|
msgid "{} launched"
|
||||||
msgstr "{} avviato"
|
msgstr "{} avviato"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr "{} nascosto"
|
msgstr "{} nascosto"
|
||||||
|
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} unhidden"
|
msgid "{} unhidden"
|
||||||
msgstr "{} visibile"
|
msgstr "{} visibile"
|
||||||
|
|
||||||
#: src/game.py:169
|
#: src/game.py:171
|
||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr "{} rimosso"
|
msgstr "{} rimosso"
|
||||||
|
|
||||||
#: src/preferences.py:111
|
#: src/preferences.py:102
|
||||||
msgid "All games removed"
|
msgid "All games removed"
|
||||||
msgstr "Tutti i giochi sono stati rimossi"
|
msgstr "Tutti i giochi sono stati rimossi"
|
||||||
|
|
||||||
#: src/preferences.py:159
|
#: src/preferences.py:149
|
||||||
msgid ""
|
msgid ""
|
||||||
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Per utilizzare SteamGridDB è necessaria una chiave API. Puoi generarne una {}"
|
"Per utilizzare SteamGridDB è necessaria una chiave API. Puoi generarne una {}"
|
||||||
"qui{}."
|
"qui{}."
|
||||||
|
|
||||||
#: src/preferences.py:284
|
#: src/preferences.py:289
|
||||||
msgid "Installation Not Found"
|
|
||||||
msgstr "Installazione non trovata"
|
|
||||||
|
|
||||||
#: src/preferences.py:286
|
|
||||||
msgid "Select a valid directory."
|
|
||||||
msgstr "Seleziona una directory valida."
|
|
||||||
|
|
||||||
#: src/preferences.py:348
|
|
||||||
msgid "Invalid Directory"
|
|
||||||
msgstr "Directory non valida"
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:352
|
|
||||||
msgid "Select the {} cache directory."
|
|
||||||
msgstr "Seleziona la directory della cache per {}."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:355
|
|
||||||
msgid "Select the {} configuration directory."
|
|
||||||
msgstr "Selezionare la directory di configurazione per {}."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:358
|
|
||||||
msgid "Select the {} data directory."
|
|
||||||
msgstr "Seleziona la directory dati per {}."
|
|
||||||
|
|
||||||
#: src/preferences.py:364
|
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
msgstr "Imposta percorso"
|
msgstr "Imposta percorso"
|
||||||
|
|
||||||
@@ -549,23 +512,38 @@ msgstr "Imposta percorso"
|
|||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
msgstr "Chiudi"
|
msgstr "Chiudi"
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:106
|
||||||
|
msgid "Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:107
|
||||||
|
msgid "Cache"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:108
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Confirm"
|
||||||
|
msgid "Configuration"
|
||||||
|
msgstr "Conferma"
|
||||||
|
|
||||||
|
#. The variables are the type of location (eg. cache) and the source's name (eg. Steam)
|
||||||
|
#: src/importer/sources/source.py:119
|
||||||
|
msgid "Invalid {} Location for {{}}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:120
|
||||||
|
msgid "Pick a new one or disable the source in preferences"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:47
|
#: src/store/managers/sgdb_manager.py:47
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Couldn't Connect to SteamGridDB"
|
||||||
msgid "Couldn't Authenticate SteamGridDB"
|
msgid "Couldn't Authenticate SteamGridDB"
|
||||||
msgstr "Impossibile autenticare SteamGridDB"
|
msgstr "Impossibile connettersi a SteamGridDB"
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:48
|
#: src/store/managers/sgdb_manager.py:48
|
||||||
msgid "Verify your API key in preferences"
|
msgid "Verify your API key in preferences"
|
||||||
msgstr "Verifica la tua chiave API nelle preferenze"
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "The Steam directory cannot be found."
|
|
||||||
#~ msgid "Directory not Valid"
|
|
||||||
#~ msgstr "Non è possibile trovare il percorso per Steam."
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "Confirm"
|
|
||||||
#~ msgid "Configuration"
|
|
||||||
#~ msgstr "Conferma"
|
|
||||||
|
|
||||||
#~ msgid "Steam Install Location"
|
#~ msgid "Steam Install Location"
|
||||||
#~ msgstr "Percorso Installazione Steam"
|
#~ msgstr "Percorso Installazione Steam"
|
||||||
@@ -591,6 +569,15 @@ msgstr "Verifica la tua chiave API nelle preferenze"
|
|||||||
#~ msgid "Select the Lutris cache directory."
|
#~ msgid "Select the Lutris cache directory."
|
||||||
#~ msgstr "Selezionare la directory della cache di Lutris."
|
#~ msgstr "Selezionare la directory della cache di Lutris."
|
||||||
|
|
||||||
|
#~ msgid "Installation Not Found"
|
||||||
|
#~ msgstr "Installazione non trovata"
|
||||||
|
|
||||||
|
#~ msgid "Select the {} configuration directory."
|
||||||
|
#~ msgstr "Selezionare la directory di configurazione {}."
|
||||||
|
|
||||||
|
#~ msgid "Select the {} data directory."
|
||||||
|
#~ msgstr "Selezionare la directory dei dati {}."
|
||||||
|
|
||||||
#~ msgid "Importing Games…"
|
#~ msgid "Importing Games…"
|
||||||
#~ msgstr "Import dei giochi in corso…"
|
#~ msgstr "Import dei giochi in corso…"
|
||||||
|
|
||||||
@@ -715,6 +702,9 @@ msgstr "Verifica la tua chiave API nelle preferenze"
|
|||||||
#~ msgid "No new games were found in the Steam library."
|
#~ msgid "No new games were found in the Steam library."
|
||||||
#~ msgstr "Nessun nuovo gioco trovato nella libreria di Steam."
|
#~ msgstr "Nessun nuovo gioco trovato nella libreria di Steam."
|
||||||
|
|
||||||
|
#~ msgid "The Steam directory cannot be found."
|
||||||
|
#~ msgstr "Non è possibile trovare il percorso per Steam."
|
||||||
|
|
||||||
#~ msgid "Talking to Steam"
|
#~ msgid "Talking to Steam"
|
||||||
#~ msgstr "Parlando con Steam"
|
#~ msgstr "Parlando con Steam"
|
||||||
|
|
||||||
|
|||||||
147
po/ko.po
147
po/ko.po
@@ -6,7 +6,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Cartridges\n"
|
"Project-Id-Version: Cartridges\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-07-05 14:36+0200\n"
|
"POT-Creation-Date: 2023-06-26 12:01+0200\n"
|
||||||
"PO-Revision-Date: 2023-03-28 22:23+0000\n"
|
"PO-Revision-Date: 2023-03-28 22:23+0000\n"
|
||||||
"Last-Translator: MJKim <kmj10727@gmail.com>\n"
|
"Last-Translator: MJKim <kmj10727@gmail.com>\n"
|
||||||
"Language-Team: Korean <https://hosted.weblate.org/projects/cartridges/"
|
"Language-Team: Korean <https://hosted.weblate.org/projects/cartridges/"
|
||||||
@@ -20,7 +20,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
||||||
#: src/main.py:162
|
#: src/main.py:146
|
||||||
msgid "Cartridges"
|
msgid "Cartridges"
|
||||||
msgstr "카트리지"
|
msgstr "카트리지"
|
||||||
|
|
||||||
@@ -115,7 +115,7 @@ msgstr ""
|
|||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/game.blp:107 src/window.py:171
|
#: data/gtk/game.blp:107 src/window.py:169
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -124,7 +124,7 @@ msgstr ""
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/game.blp:126 src/window.py:173
|
#: data/gtk/game.blp:126 src/window.py:171
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -149,7 +149,7 @@ msgstr ""
|
|||||||
msgid "Shortcuts"
|
msgid "Shortcuts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112
|
#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -183,7 +183,7 @@ msgstr ""
|
|||||||
msgid "Remove game"
|
msgid "Remove game"
|
||||||
msgstr "게임이 없습니다"
|
msgstr "게임이 없습니다"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -232,9 +232,8 @@ msgid "Steam"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
||||||
#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192
|
#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183
|
||||||
#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220
|
#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211
|
||||||
#: data/gtk/preferences.blp:234
|
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -252,75 +251,59 @@ msgstr ""
|
|||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr "게임이 없습니다"
|
msgstr "게임이 없습니다"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137
|
#: data/gtk/preferences.blp:138
|
||||||
#, fuzzy
|
|
||||||
#| msgid "No Games"
|
|
||||||
msgid "Import Flatpak Games"
|
|
||||||
msgstr "게임이 없습니다"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:147
|
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:160
|
#: data/gtk/preferences.blp:151
|
||||||
msgid "Import Epic Games"
|
msgid "Import Epic Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:169
|
#: data/gtk/preferences.blp:160
|
||||||
msgid "Import GOG Games"
|
msgid "Import GOG Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:178
|
#: data/gtk/preferences.blp:169
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:188
|
#: data/gtk/preferences.blp:179
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:202
|
#: data/gtk/preferences.blp:193
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
#: data/gtk/preferences.blp:207
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:230
|
#: data/gtk/preferences.blp:224
|
||||||
msgid "Flatpak"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:243
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Game Launcher"
|
|
||||||
msgid "Import Game Launchers"
|
|
||||||
msgstr "게임 런처"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:256
|
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Authentication"
|
msgid "Authentication"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:263
|
#: data/gtk/preferences.blp:231
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:271
|
#: data/gtk/preferences.blp:239
|
||||||
msgid "Use SteamGridDB"
|
msgid "Use SteamGridDB"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:272
|
#: data/gtk/preferences.blp:240
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:281
|
#: data/gtk/preferences.blp:249
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:290
|
#: data/gtk/preferences.blp:258
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -409,21 +392,21 @@ msgid "About Cartridges"
|
|||||||
msgstr "카트리지 정보"
|
msgstr "카트리지 정보"
|
||||||
|
|
||||||
#. Translators: Replace this with your name for it to show up in the about window
|
#. Translators: Replace this with your name for it to show up in the about window
|
||||||
#: src/main.py:180
|
#: src/main.py:164
|
||||||
msgid "translator_credits"
|
msgid "translator_credits"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. The variable is the date when the game was added
|
#. The variable is the date when the game was added
|
||||||
#: src/window.py:194
|
#: src/window.py:192
|
||||||
msgid "Added: {}"
|
msgid "Added: {}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/window.py:197
|
#: src/window.py:195
|
||||||
msgid "Never"
|
msgid "Never"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. The variable is the date when the game was last played
|
#. The variable is the date when the game was last played
|
||||||
#: src/window.py:201
|
#: src/window.py:199
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -440,26 +423,26 @@ msgid "Confirm"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: src/details_window.py:92
|
#: src/details_window.py:91
|
||||||
msgid "file.txt"
|
msgid "file.txt"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. As in software
|
#. As in software
|
||||||
#: src/details_window.py:94
|
#: src/details_window.py:93
|
||||||
msgid "program"
|
msgid "program"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:99 src/details_window.py:101
|
#: src/details_window.py:98 src/details_window.py:100
|
||||||
msgid "C:\\path\\to\\{}"
|
msgid "C:\\path\\to\\{}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:105 src/details_window.py:107
|
#: src/details_window.py:104 src/details_window.py:106
|
||||||
msgid "/path/to/{}"
|
msgid "/path/to/{}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/details_window.py:112
|
#: src/details_window.py:111
|
||||||
msgid ""
|
msgid ""
|
||||||
"To launch the executable \"{}\", use the command:\n"
|
"To launch the executable \"{}\", use the command:\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -472,15 +455,15 @@ msgid ""
|
|||||||
"If the path contains spaces, make sure to wrap it in double quotes!"
|
"If the path contains spaces, make sure to wrap it in double quotes!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:153
|
#: src/details_window.py:146 src/details_window.py:152
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:181
|
#: src/details_window.py:146 src/details_window.py:181
|
||||||
msgid "Game title cannot be empty."
|
msgid "Game title cannot be empty."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/details_window.py:153 src/details_window.py:189
|
#: src/details_window.py:152 src/details_window.py:189
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -489,60 +472,33 @@ msgid "Couldn't Apply Preferences"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:138
|
#: src/game.py:141
|
||||||
msgid "{} launched"
|
msgid "{} launched"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} unhidden"
|
msgid "{} unhidden"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.py:169
|
#: src/game.py:171
|
||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/preferences.py:111
|
#: src/preferences.py:102
|
||||||
msgid "All games removed"
|
msgid "All games removed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/preferences.py:159
|
#: src/preferences.py:149
|
||||||
msgid ""
|
msgid ""
|
||||||
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/preferences.py:284
|
#: src/preferences.py:289
|
||||||
msgid "Installation Not Found"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/preferences.py:286
|
|
||||||
msgid "Select a valid directory."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/preferences.py:348
|
|
||||||
msgid "Invalid Directory"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:352
|
|
||||||
msgid "Select the {} cache directory."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:355
|
|
||||||
msgid "Select the {} configuration directory."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:358
|
|
||||||
msgid "Select the {} data directory."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/preferences.py:364
|
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -550,6 +506,27 @@ msgstr ""
|
|||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:106
|
||||||
|
msgid "Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:107
|
||||||
|
msgid "Cache"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:108
|
||||||
|
msgid "Configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. The variables are the type of location (eg. cache) and the source's name (eg. Steam)
|
||||||
|
#: src/importer/sources/source.py:119
|
||||||
|
msgid "Invalid {} Location for {{}}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:120
|
||||||
|
msgid "Pick a new one or disable the source in preferences"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:47
|
#: src/store/managers/sgdb_manager.py:47
|
||||||
msgid "Couldn't Authenticate SteamGridDB"
|
msgid "Couldn't Authenticate SteamGridDB"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
181
po/nb_NO.po
181
po/nb_NO.po
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: cartridges\n"
|
"Project-Id-Version: cartridges\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-07-05 14:36+0200\n"
|
"POT-Creation-Date: 2023-06-26 12:01+0200\n"
|
||||||
"PO-Revision-Date: 2023-04-06 08:09+0000\n"
|
"PO-Revision-Date: 2023-04-06 08:09+0000\n"
|
||||||
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
|
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
|
||||||
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/"
|
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/"
|
||||||
@@ -21,7 +21,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
||||||
#: src/main.py:162
|
#: src/main.py:146
|
||||||
msgid "Cartridges"
|
msgid "Cartridges"
|
||||||
msgstr "Cartridges"
|
msgstr "Cartridges"
|
||||||
|
|
||||||
@@ -112,7 +112,7 @@ msgstr ""
|
|||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Rediger"
|
msgstr "Rediger"
|
||||||
|
|
||||||
#: data/gtk/game.blp:107 src/window.py:171
|
#: data/gtk/game.blp:107 src/window.py:169
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr "Skjul"
|
msgstr "Skjul"
|
||||||
|
|
||||||
@@ -121,7 +121,7 @@ msgstr "Skjul"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Fjern"
|
msgstr "Fjern"
|
||||||
|
|
||||||
#: data/gtk/game.blp:126 src/window.py:173
|
#: data/gtk/game.blp:126 src/window.py:171
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr "Opphev fjerning"
|
msgstr "Opphev fjerning"
|
||||||
|
|
||||||
@@ -147,7 +147,7 @@ msgstr "Vis innstillinger"
|
|||||||
msgid "Shortcuts"
|
msgid "Shortcuts"
|
||||||
msgstr "Snarveier"
|
msgstr "Snarveier"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112
|
#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Angre"
|
msgstr "Angre"
|
||||||
|
|
||||||
@@ -177,7 +177,7 @@ msgstr "Vis skjulte spill"
|
|||||||
msgid "Remove game"
|
msgid "Remove game"
|
||||||
msgstr "Fjern spill"
|
msgstr "Fjern spill"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr "Adferd"
|
msgstr "Adferd"
|
||||||
@@ -227,9 +227,8 @@ msgid "Steam"
|
|||||||
msgstr "Steam"
|
msgstr "Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
||||||
#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192
|
#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183
|
||||||
#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220
|
#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211
|
||||||
#: data/gtk/preferences.blp:234
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Heroic Install Location"
|
#| msgid "Heroic Install Location"
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
@@ -251,80 +250,64 @@ msgstr "Posisjon for Lutris-hurtiglager"
|
|||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr "Importer sideinnlastede spill"
|
msgstr "Importer sideinnlastede spill"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137
|
#: data/gtk/preferences.blp:138
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Import Sideloaded Games"
|
|
||||||
msgid "Import Flatpak Games"
|
|
||||||
msgstr "Importer sideinnlastede spill"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:147
|
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
msgstr "Heroic"
|
msgstr "Heroic"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:160
|
#: data/gtk/preferences.blp:151
|
||||||
msgid "Import Epic Games"
|
msgid "Import Epic Games"
|
||||||
msgstr "Importer Epic-spill"
|
msgstr "Importer Epic-spill"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:169
|
#: data/gtk/preferences.blp:160
|
||||||
msgid "Import GOG Games"
|
msgid "Import GOG Games"
|
||||||
msgstr "Importer GOG-spill"
|
msgstr "Importer GOG-spill"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:178
|
#: data/gtk/preferences.blp:169
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr "Importer sideinnlastede spill"
|
msgstr "Importer sideinnlastede spill"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:188
|
#: data/gtk/preferences.blp:179
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr "Bottles"
|
msgstr "Bottles"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:202
|
#: data/gtk/preferences.blp:193
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr "itch"
|
msgstr "itch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
#: data/gtk/preferences.blp:207
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:230
|
#: data/gtk/preferences.blp:224
|
||||||
msgid "Flatpak"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:243
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Game Launcher"
|
|
||||||
msgid "Import Game Launchers"
|
|
||||||
msgstr "Spillutvalgstarter"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:256
|
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
msgstr "SteamGridDB"
|
msgstr "SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Authentication"
|
msgid "Authentication"
|
||||||
msgstr "Identitetsbekreftelse"
|
msgstr "Identitetsbekreftelse"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:263
|
#: data/gtk/preferences.blp:231
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr "API-nøkkel"
|
msgstr "API-nøkkel"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:271
|
#: data/gtk/preferences.blp:239
|
||||||
msgid "Use SteamGridDB"
|
msgid "Use SteamGridDB"
|
||||||
msgstr "Bruk SteamGridDB"
|
msgstr "Bruk SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:272
|
#: data/gtk/preferences.blp:240
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Directory to use when importing games"
|
#| msgid "Directory to use when importing games"
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr "Mappe å bruke ved import av spill"
|
msgstr "Mappe å bruke ved import av spill"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:281
|
#: data/gtk/preferences.blp:249
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr "Foretrekk over offisielle bilder"
|
msgstr "Foretrekk over offisielle bilder"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:290
|
#: data/gtk/preferences.blp:258
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr "Foretrekk over offisielle bilder"
|
msgstr "Foretrekk over offisielle bilder"
|
||||||
@@ -414,21 +397,21 @@ msgid "About Cartridges"
|
|||||||
msgstr "Om"
|
msgstr "Om"
|
||||||
|
|
||||||
#. Translators: Replace this with your name for it to show up in the about window
|
#. Translators: Replace this with your name for it to show up in the about window
|
||||||
#: src/main.py:180
|
#: src/main.py:164
|
||||||
msgid "translator_credits"
|
msgid "translator_credits"
|
||||||
msgstr "Allan Nordhøy, <epost@anotheragency.no>"
|
msgstr "Allan Nordhøy, <epost@anotheragency.no>"
|
||||||
|
|
||||||
#. The variable is the date when the game was added
|
#. The variable is the date when the game was added
|
||||||
#: src/window.py:194
|
#: src/window.py:192
|
||||||
msgid "Added: {}"
|
msgid "Added: {}"
|
||||||
msgstr "Tillagt: {}"
|
msgstr "Tillagt: {}"
|
||||||
|
|
||||||
#: src/window.py:197
|
#: src/window.py:195
|
||||||
msgid "Never"
|
msgid "Never"
|
||||||
msgstr "Aldri"
|
msgstr "Aldri"
|
||||||
|
|
||||||
#. The variable is the date when the game was last played
|
#. The variable is the date when the game was last played
|
||||||
#: src/window.py:201
|
#: src/window.py:199
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr "Sist spilt: {}"
|
msgstr "Sist spilt: {}"
|
||||||
|
|
||||||
@@ -445,26 +428,26 @@ msgid "Confirm"
|
|||||||
msgstr "Bekreft"
|
msgstr "Bekreft"
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: src/details_window.py:92
|
#: src/details_window.py:91
|
||||||
msgid "file.txt"
|
msgid "file.txt"
|
||||||
msgstr "fil.txt"
|
msgstr "fil.txt"
|
||||||
|
|
||||||
#. As in software
|
#. As in software
|
||||||
#: src/details_window.py:94
|
#: src/details_window.py:93
|
||||||
msgid "program"
|
msgid "program"
|
||||||
msgstr "program"
|
msgstr "program"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:99 src/details_window.py:101
|
#: src/details_window.py:98 src/details_window.py:100
|
||||||
msgid "C:\\path\\to\\{}"
|
msgid "C:\\path\\to\\{}"
|
||||||
msgstr "C:\\sti\\til\\{}"
|
msgstr "C:\\sti\\til\\{}"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:105 src/details_window.py:107
|
#: src/details_window.py:104 src/details_window.py:106
|
||||||
msgid "/path/to/{}"
|
msgid "/path/to/{}"
|
||||||
msgstr "/sti/til/{}"
|
msgstr "/sti/til/{}"
|
||||||
|
|
||||||
#: src/details_window.py:112
|
#: src/details_window.py:111
|
||||||
msgid ""
|
msgid ""
|
||||||
"To launch the executable \"{}\", use the command:\n"
|
"To launch the executable \"{}\", use the command:\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -487,15 +470,15 @@ msgstr ""
|
|||||||
"Hvis stien inneholder mellomrom må du pakke den inn i doble engelske "
|
"Hvis stien inneholder mellomrom må du pakke den inn i doble engelske "
|
||||||
"sitattegn."
|
"sitattegn."
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:153
|
#: src/details_window.py:146 src/details_window.py:152
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
msgstr "Kunne ikke legge til spill"
|
msgstr "Kunne ikke legge til spill"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:181
|
#: src/details_window.py:146 src/details_window.py:181
|
||||||
msgid "Game title cannot be empty."
|
msgid "Game title cannot be empty."
|
||||||
msgstr "Spillnavnet kan ikke være tomt."
|
msgstr "Spillnavnet kan ikke være tomt."
|
||||||
|
|
||||||
#: src/details_window.py:153 src/details_window.py:189
|
#: src/details_window.py:152 src/details_window.py:189
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr "Kjørbar fil må angis."
|
msgstr "Kjørbar fil må angis."
|
||||||
|
|
||||||
@@ -504,73 +487,36 @@ msgid "Couldn't Apply Preferences"
|
|||||||
msgstr "Kunne ikke ta i bruk endringer"
|
msgstr "Kunne ikke ta i bruk endringer"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:138
|
#: src/game.py:141
|
||||||
msgid "{} launched"
|
msgid "{} launched"
|
||||||
msgstr "{} startet"
|
msgstr "{} startet"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Show Hidden"
|
#| msgid "Show Hidden"
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr "{} skjult"
|
msgstr "{} skjult"
|
||||||
|
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} unhidden"
|
msgid "{} unhidden"
|
||||||
msgstr "{} synlig"
|
msgstr "{} synlig"
|
||||||
|
|
||||||
#: src/game.py:169
|
#: src/game.py:171
|
||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr "{} fjernet"
|
msgstr "{} fjernet"
|
||||||
|
|
||||||
#: src/preferences.py:111
|
#: src/preferences.py:102
|
||||||
msgid "All games removed"
|
msgid "All games removed"
|
||||||
msgstr "Alle spill fjernet"
|
msgstr "Alle spill fjernet"
|
||||||
|
|
||||||
#: src/preferences.py:159
|
#: src/preferences.py:149
|
||||||
msgid ""
|
msgid ""
|
||||||
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"En API-nøkkel kreves for å bruke SteamGridDB. Du kan generere en {}her{}."
|
"En API-nøkkel kreves for å bruke SteamGridDB. Du kan generere en {}her{}."
|
||||||
|
|
||||||
#: src/preferences.py:284
|
#: src/preferences.py:289
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Installation Not Found"
|
|
||||||
msgid "Installation Not Found"
|
|
||||||
msgstr "Fant ikke installasjonen"
|
|
||||||
|
|
||||||
#: src/preferences.py:286
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Select the {} data directory."
|
|
||||||
msgid "Select a valid directory."
|
|
||||||
msgstr "Velg {}-datamappen."
|
|
||||||
|
|
||||||
#: src/preferences.py:348
|
|
||||||
msgid "Invalid Directory"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:352
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Select the {} data directory."
|
|
||||||
msgid "Select the {} cache directory."
|
|
||||||
msgstr "Velg {}-datamappen."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:355
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Select the {} configuration directory."
|
|
||||||
msgid "Select the {} configuration directory."
|
|
||||||
msgstr "Velg {}-oppsettsmappen."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:358
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Select the {} data directory."
|
|
||||||
msgid "Select the {} data directory."
|
|
||||||
msgstr "Velg {}-datamappen."
|
|
||||||
|
|
||||||
#: src/preferences.py:364
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Set Steam Location"
|
#| msgid "Set Steam Location"
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
@@ -580,6 +526,29 @@ msgstr "Velg mappe"
|
|||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
msgstr "Forkast"
|
msgstr "Forkast"
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:106
|
||||||
|
msgid "Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:107
|
||||||
|
msgid "Cache"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:108
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Confirm"
|
||||||
|
msgid "Configuration"
|
||||||
|
msgstr "Bekreft"
|
||||||
|
|
||||||
|
#. The variables are the type of location (eg. cache) and the source's name (eg. Steam)
|
||||||
|
#: src/importer/sources/source.py:119
|
||||||
|
msgid "Invalid {} Location for {{}}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:120
|
||||||
|
msgid "Pick a new one or disable the source in preferences"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:47
|
#: src/store/managers/sgdb_manager.py:47
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Couldn't Authenticate SteamGridDB"
|
msgid "Couldn't Authenticate SteamGridDB"
|
||||||
@@ -589,16 +558,6 @@ msgstr "Kunne ikke koble til SteamGridDB"
|
|||||||
msgid "Verify your API key in preferences"
|
msgid "Verify your API key in preferences"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "The Steam directory cannot be found."
|
|
||||||
#~ msgid "Directory not Valid"
|
|
||||||
#~ msgstr "Kunne ikke finne Steam-mappen."
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "Confirm"
|
|
||||||
#~ msgid "Configuration"
|
|
||||||
#~ msgstr "Bekreft"
|
|
||||||
|
|
||||||
#~ msgid "Steam Install Location"
|
#~ msgid "Steam Install Location"
|
||||||
#~ msgstr "Installasjonssted for Steam"
|
#~ msgstr "Installasjonssted for Steam"
|
||||||
|
|
||||||
@@ -625,6 +584,15 @@ msgstr ""
|
|||||||
#~ msgid "Select the Lutris cache directory."
|
#~ msgid "Select the Lutris cache directory."
|
||||||
#~ msgstr "Velg {name}-datamappen."
|
#~ msgstr "Velg {name}-datamappen."
|
||||||
|
|
||||||
|
#~ msgid "Installation Not Found"
|
||||||
|
#~ msgstr "Fant ikke installasjonen"
|
||||||
|
|
||||||
|
#~ msgid "Select the {} configuration directory."
|
||||||
|
#~ msgstr "Velg {}-oppsettsmappen."
|
||||||
|
|
||||||
|
#~ msgid "Select the {} data directory."
|
||||||
|
#~ msgstr "Velg {}-datamappen."
|
||||||
|
|
||||||
#~ msgid "Importing Games…"
|
#~ msgid "Importing Games…"
|
||||||
#~ msgstr "Importerer spill …"
|
#~ msgstr "Importerer spill …"
|
||||||
|
|
||||||
@@ -760,6 +728,9 @@ msgstr ""
|
|||||||
#~ msgid "No new games were found in the Steam library."
|
#~ msgid "No new games were found in the Steam library."
|
||||||
#~ msgstr "Fant ingen nye spill i Steam-biblioteket."
|
#~ msgstr "Fant ingen nye spill i Steam-biblioteket."
|
||||||
|
|
||||||
|
#~ msgid "The Steam directory cannot be found."
|
||||||
|
#~ msgstr "Kunne ikke finne Steam-mappen."
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Talking to Steam"
|
#~ msgid "Talking to Steam"
|
||||||
#~ msgstr "Snakker med Steam"
|
#~ msgstr "Snakker med Steam"
|
||||||
|
|||||||
199
po/nl.po
199
po/nl.po
@@ -7,8 +7,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: cartridges\n"
|
"Project-Id-Version: cartridges\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-07-05 14:36+0200\n"
|
"POT-Creation-Date: 2023-06-26 12:01+0200\n"
|
||||||
"PO-Revision-Date: 2023-07-08 14:52+0000\n"
|
"PO-Revision-Date: 2023-05-29 18:48+0000\n"
|
||||||
"Last-Translator: Philip Goto <philip.goto@gmail.com>\n"
|
"Last-Translator: Philip Goto <philip.goto@gmail.com>\n"
|
||||||
"Language-Team: Dutch <https://hosted.weblate.org/projects/cartridges/"
|
"Language-Team: Dutch <https://hosted.weblate.org/projects/cartridges/"
|
||||||
"cartridges/nl/>\n"
|
"cartridges/nl/>\n"
|
||||||
@@ -17,11 +17,11 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
"X-Generator: Weblate 5.0-dev\n"
|
"X-Generator: Weblate 4.18-dev\n"
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
||||||
#: src/main.py:162
|
#: src/main.py:146
|
||||||
msgid "Cartridges"
|
msgid "Cartridges"
|
||||||
msgstr "Cartridges"
|
msgstr "Cartridges"
|
||||||
|
|
||||||
@@ -115,7 +115,7 @@ msgstr "Meer info"
|
|||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Bewerken"
|
msgstr "Bewerken"
|
||||||
|
|
||||||
#: data/gtk/game.blp:107 src/window.py:171
|
#: data/gtk/game.blp:107 src/window.py:169
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr "Verbergen"
|
msgstr "Verbergen"
|
||||||
|
|
||||||
@@ -124,7 +124,7 @@ msgstr "Verbergen"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Verwijderen"
|
msgstr "Verwijderen"
|
||||||
|
|
||||||
#: data/gtk/game.blp:126 src/window.py:173
|
#: data/gtk/game.blp:126 src/window.py:171
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr "Niet meer verbergen"
|
msgstr "Niet meer verbergen"
|
||||||
|
|
||||||
@@ -134,7 +134,7 @@ msgstr "Algemeen"
|
|||||||
|
|
||||||
#: data/gtk/help-overlay.blp:14
|
#: data/gtk/help-overlay.blp:14
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Afsluiten"
|
msgstr "Sluiten"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:19 data/gtk/window.blp:217 data/gtk/window.blp:257
|
#: data/gtk/help-overlay.blp:19 data/gtk/window.blp:217 data/gtk/window.blp:257
|
||||||
#: data/gtk/window.blp:323
|
#: data/gtk/window.blp:323
|
||||||
@@ -149,7 +149,7 @@ msgstr "Voorkeuren tonen"
|
|||||||
msgid "Shortcuts"
|
msgid "Shortcuts"
|
||||||
msgstr "Sneltoetsen"
|
msgstr "Sneltoetsen"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112
|
#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Ongedaan maken"
|
msgstr "Ongedaan maken"
|
||||||
|
|
||||||
@@ -177,7 +177,7 @@ msgstr "Verborgen games tonen"
|
|||||||
msgid "Remove game"
|
msgid "Remove game"
|
||||||
msgstr "Game verwijderen"
|
msgstr "Game verwijderen"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr "Gedrag"
|
msgstr "Gedrag"
|
||||||
|
|
||||||
@@ -227,89 +227,80 @@ msgid "Steam"
|
|||||||
msgstr "Steam"
|
msgstr "Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
||||||
#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192
|
#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183
|
||||||
#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220
|
#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211
|
||||||
#: data/gtk/preferences.blp:234
|
#, fuzzy
|
||||||
|
#| msgid "itch Install Location"
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
msgstr "Installatielocatie"
|
msgstr "Installatielocatie van itch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:106
|
#: data/gtk/preferences.blp:106
|
||||||
msgid "Lutris"
|
msgid "Lutris"
|
||||||
msgstr "Lutris"
|
msgstr "Lutris"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:119
|
#: data/gtk/preferences.blp:119
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Lutris Cache Location"
|
||||||
msgid "Cache Location"
|
msgid "Cache Location"
|
||||||
msgstr "Cache-locatie"
|
msgstr "Cache-locatie van Lutris"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:128
|
#: data/gtk/preferences.blp:128
|
||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr "Steam-games importeren"
|
msgstr "Steam-games importeren"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137
|
#: data/gtk/preferences.blp:138
|
||||||
msgid "Import Flatpak Games"
|
|
||||||
msgstr "Flatpak-games importeren"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:147
|
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
msgstr "Heroic"
|
msgstr "Heroic"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:160
|
#: data/gtk/preferences.blp:151
|
||||||
msgid "Import Epic Games"
|
msgid "Import Epic Games"
|
||||||
msgstr "Epic-games importeren"
|
msgstr "Epic-games importeren"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:169
|
#: data/gtk/preferences.blp:160
|
||||||
msgid "Import GOG Games"
|
msgid "Import GOG Games"
|
||||||
msgstr "GOG-games importeren"
|
msgstr "GOG-games importeren"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:178
|
#: data/gtk/preferences.blp:169
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr "Gesideloade games importeren"
|
msgstr "Gesideloade games importeren"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:188
|
#: data/gtk/preferences.blp:179
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr "Bottles"
|
msgstr "Bottles"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:202
|
#: data/gtk/preferences.blp:193
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr "itch"
|
msgstr "itch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
#: data/gtk/preferences.blp:207
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr "Legendary"
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:230
|
#: data/gtk/preferences.blp:224
|
||||||
msgid "Flatpak"
|
|
||||||
msgstr "Flatpak"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:243
|
|
||||||
msgid "Import Game Launchers"
|
|
||||||
msgstr "Game-launchers importeren"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:256
|
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
msgstr "SteamGridDB"
|
msgstr "SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Authentication"
|
msgid "Authentication"
|
||||||
msgstr "Authenticatie"
|
msgstr "Authenticatie"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:263
|
#: data/gtk/preferences.blp:231
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr "API-sleutel"
|
msgstr "API-sleutel"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:271
|
#: data/gtk/preferences.blp:239
|
||||||
msgid "Use SteamGridDB"
|
msgid "Use SteamGridDB"
|
||||||
msgstr "SteamGridDB gebruiken"
|
msgstr "SteamGridDB gebruiken"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:272
|
#: data/gtk/preferences.blp:240
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr "Afbeeldingen downloaden bij het toevoegen of importeren van games"
|
msgstr "Afbeeldingen downloaden bij het toevoegen of importeren van games"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:281
|
#: data/gtk/preferences.blp:249
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr "Voorkeur geven boven officiële afbeeldingen"
|
msgstr "Voorkeur geven boven officiële afbeeldingen"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:290
|
#: data/gtk/preferences.blp:258
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr "Voorkeur geven aan geanimeerde afbeeldingen"
|
msgstr "Voorkeur geven aan geanimeerde afbeeldingen"
|
||||||
|
|
||||||
@@ -319,7 +310,7 @@ msgstr "Geen games gevonden"
|
|||||||
|
|
||||||
#: data/gtk/window.blp:7 data/gtk/window.blp:15
|
#: data/gtk/window.blp:7 data/gtk/window.blp:15
|
||||||
msgid "Try a different search."
|
msgid "Try a different search."
|
||||||
msgstr "Probeer een andere zoekopdracht."
|
msgstr "Probeer een andere zoekopdracht"
|
||||||
|
|
||||||
#: data/gtk/window.blp:21
|
#: data/gtk/window.blp:21
|
||||||
msgid "No Games"
|
msgid "No Games"
|
||||||
@@ -327,7 +318,7 @@ msgstr "Geen games"
|
|||||||
|
|
||||||
#: data/gtk/window.blp:22
|
#: data/gtk/window.blp:22
|
||||||
msgid "Use the + button to add games."
|
msgid "Use the + button to add games."
|
||||||
msgstr "Gebruik de plusknop om games toe te voegen."
|
msgstr "Gebruik de plusknop om games toe te voegen"
|
||||||
|
|
||||||
#: data/gtk/window.blp:40
|
#: data/gtk/window.blp:40
|
||||||
msgid "No Hidden Games"
|
msgid "No Hidden Games"
|
||||||
@@ -335,7 +326,7 @@ msgstr "Geen verborgen games"
|
|||||||
|
|
||||||
#: data/gtk/window.blp:41
|
#: data/gtk/window.blp:41
|
||||||
msgid "Games you hide will appear here."
|
msgid "Games you hide will appear here."
|
||||||
msgstr "Games die u verbergt zullen hier verschijnen."
|
msgstr "Games die u verbergt zullen hier verschijnen"
|
||||||
|
|
||||||
#: data/gtk/window.blp:64 data/gtk/window.blp:304
|
#: data/gtk/window.blp:64 data/gtk/window.blp:304
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
@@ -398,21 +389,21 @@ msgid "About Cartridges"
|
|||||||
msgstr "Over Cartridges"
|
msgstr "Over Cartridges"
|
||||||
|
|
||||||
#. Translators: Replace this with your name for it to show up in the about window
|
#. Translators: Replace this with your name for it to show up in the about window
|
||||||
#: src/main.py:180
|
#: src/main.py:164
|
||||||
msgid "translator_credits"
|
msgid "translator_credits"
|
||||||
msgstr "Philip Goto https://flipflop97.github.io/"
|
msgstr "Philip Goto https://flipflop97.github.io/"
|
||||||
|
|
||||||
#. The variable is the date when the game was added
|
#. The variable is the date when the game was added
|
||||||
#: src/window.py:194
|
#: src/window.py:192
|
||||||
msgid "Added: {}"
|
msgid "Added: {}"
|
||||||
msgstr "Toegevoegd op {}"
|
msgstr "Toegevoegd op {}"
|
||||||
|
|
||||||
#: src/window.py:197
|
#: src/window.py:195
|
||||||
msgid "Never"
|
msgid "Never"
|
||||||
msgstr "Nooit"
|
msgstr "Nooit"
|
||||||
|
|
||||||
#. The variable is the date when the game was last played
|
#. The variable is the date when the game was last played
|
||||||
#: src/window.py:201
|
#: src/window.py:199
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr "Laatst gespeeld: {}"
|
msgstr "Laatst gespeeld: {}"
|
||||||
|
|
||||||
@@ -429,26 +420,26 @@ msgid "Confirm"
|
|||||||
msgstr "Bevestigen"
|
msgstr "Bevestigen"
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: src/details_window.py:92
|
#: src/details_window.py:91
|
||||||
msgid "file.txt"
|
msgid "file.txt"
|
||||||
msgstr "bestand.txt"
|
msgstr "bestand.txt"
|
||||||
|
|
||||||
#. As in software
|
#. As in software
|
||||||
#: src/details_window.py:94
|
#: src/details_window.py:93
|
||||||
msgid "program"
|
msgid "program"
|
||||||
msgstr "programma"
|
msgstr "programma"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:99 src/details_window.py:101
|
#: src/details_window.py:98 src/details_window.py:100
|
||||||
msgid "C:\\path\\to\\{}"
|
msgid "C:\\path\\to\\{}"
|
||||||
msgstr "C:\\pad\\naar\\{}"
|
msgstr "C:\\pad\\naar\\{}"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:105 src/details_window.py:107
|
#: src/details_window.py:104 src/details_window.py:106
|
||||||
msgid "/path/to/{}"
|
msgid "/path/to/{}"
|
||||||
msgstr "/pad/naar/{}"
|
msgstr "/pad/naar/{}"
|
||||||
|
|
||||||
#: src/details_window.py:112
|
#: src/details_window.py:111
|
||||||
msgid ""
|
msgid ""
|
||||||
"To launch the executable \"{}\", use the command:\n"
|
"To launch the executable \"{}\", use the command:\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -472,79 +463,52 @@ msgstr ""
|
|||||||
"Indien het pad spaties bevat, zorg er dan voor dat er dubbele "
|
"Indien het pad spaties bevat, zorg er dan voor dat er dubbele "
|
||||||
"aanhalingstekens omheen staan!"
|
"aanhalingstekens omheen staan!"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:153
|
#: src/details_window.py:146 src/details_window.py:152
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
msgstr "Kon game niet toevoegen"
|
msgstr "Kon game niet toevoegen"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:181
|
#: src/details_window.py:146 src/details_window.py:181
|
||||||
msgid "Game title cannot be empty."
|
msgid "Game title cannot be empty."
|
||||||
msgstr "Game-titel mag niet leeg zijn."
|
msgstr "Game-titel mag niet leeg zijn"
|
||||||
|
|
||||||
#: src/details_window.py:153 src/details_window.py:189
|
#: src/details_window.py:152 src/details_window.py:189
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr "Programmabestand mag niet leeg zijn."
|
msgstr "Programmabestand mag niet leeg zijn"
|
||||||
|
|
||||||
#: src/details_window.py:180 src/details_window.py:188
|
#: src/details_window.py:180 src/details_window.py:188
|
||||||
msgid "Couldn't Apply Preferences"
|
msgid "Couldn't Apply Preferences"
|
||||||
msgstr "Kon voorkeuren niet toepassen"
|
msgstr "Kon voorkeuren niet toepassen"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:138
|
#: src/game.py:141
|
||||||
msgid "{} launched"
|
msgid "{} launched"
|
||||||
msgstr "{} gestart"
|
msgstr "{} gestart"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr "{} verborgen"
|
msgstr "{} verborgen"
|
||||||
|
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} unhidden"
|
msgid "{} unhidden"
|
||||||
msgstr "{} hersteld"
|
msgstr "{} hersteld"
|
||||||
|
|
||||||
#: src/game.py:169
|
#: src/game.py:171
|
||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr "{} verwijderd"
|
msgstr "{} verwijderd"
|
||||||
|
|
||||||
#: src/preferences.py:111
|
#: src/preferences.py:102
|
||||||
msgid "All games removed"
|
msgid "All games removed"
|
||||||
msgstr "Alle games verwijderd"
|
msgstr "Alle games verwijderd"
|
||||||
|
|
||||||
#: src/preferences.py:159
|
#: src/preferences.py:149
|
||||||
msgid ""
|
msgid ""
|
||||||
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Een API-sleutel is vereist om SteamGridDB te gebruiken. U kunt er {}hier{} "
|
"Een API-sleutel is vereist om SteamGridDB te gebruiken. U kunt er {}hier{} "
|
||||||
"één genereren."
|
"één genereren."
|
||||||
|
|
||||||
#: src/preferences.py:284
|
#: src/preferences.py:289
|
||||||
msgid "Installation Not Found"
|
|
||||||
msgstr "Installatie niet gevonden"
|
|
||||||
|
|
||||||
#: src/preferences.py:286
|
|
||||||
msgid "Select a valid directory."
|
|
||||||
msgstr "Selecteer een geldige map."
|
|
||||||
|
|
||||||
#: src/preferences.py:348
|
|
||||||
msgid "Invalid Directory"
|
|
||||||
msgstr "Ongeldige map"
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:352
|
|
||||||
msgid "Select the {} cache directory."
|
|
||||||
msgstr "Selecteer de cache-map van {}."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:355
|
|
||||||
msgid "Select the {} configuration directory."
|
|
||||||
msgstr "Selecteer de configuratiemap van {}."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:358
|
|
||||||
msgid "Select the {} data directory."
|
|
||||||
msgstr "Selecteer de gegevensmap van {}."
|
|
||||||
|
|
||||||
#: src/preferences.py:364
|
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
msgstr "Locatie instellen"
|
msgstr "Locatie instellen"
|
||||||
|
|
||||||
@@ -552,23 +516,38 @@ msgstr "Locatie instellen"
|
|||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
msgstr "Sluiten"
|
msgstr "Sluiten"
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:106
|
||||||
|
msgid "Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:107
|
||||||
|
msgid "Cache"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:108
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Confirm"
|
||||||
|
msgid "Configuration"
|
||||||
|
msgstr "Bevestigen"
|
||||||
|
|
||||||
|
#. The variables are the type of location (eg. cache) and the source's name (eg. Steam)
|
||||||
|
#: src/importer/sources/source.py:119
|
||||||
|
msgid "Invalid {} Location for {{}}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:120
|
||||||
|
msgid "Pick a new one or disable the source in preferences"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:47
|
#: src/store/managers/sgdb_manager.py:47
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Couldn't Connect to SteamGridDB"
|
||||||
msgid "Couldn't Authenticate SteamGridDB"
|
msgid "Couldn't Authenticate SteamGridDB"
|
||||||
msgstr "Kan SteamGridDB niet authenticeren"
|
msgstr "Kan geen verbinding maken met SteamGridDB"
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:48
|
#: src/store/managers/sgdb_manager.py:48
|
||||||
msgid "Verify your API key in preferences"
|
msgid "Verify your API key in preferences"
|
||||||
msgstr "Verifieer uw API-sleutel onder voorkeuren"
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "The Steam directory cannot be found."
|
|
||||||
#~ msgid "Directory not Valid"
|
|
||||||
#~ msgstr "Steam-map kan niet worden gevonden"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "Confirm"
|
|
||||||
#~ msgid "Configuration"
|
|
||||||
#~ msgstr "Bevestigen"
|
|
||||||
|
|
||||||
#~ msgid "Steam Install Location"
|
#~ msgid "Steam Install Location"
|
||||||
#~ msgstr "Installatielocatie van Steam"
|
#~ msgstr "Installatielocatie van Steam"
|
||||||
@@ -594,6 +573,15 @@ msgstr "Verifieer uw API-sleutel onder voorkeuren"
|
|||||||
#~ msgid "Select the Lutris cache directory."
|
#~ msgid "Select the Lutris cache directory."
|
||||||
#~ msgstr "Selecteer de cache-map van Lutris"
|
#~ msgstr "Selecteer de cache-map van Lutris"
|
||||||
|
|
||||||
|
#~ msgid "Installation Not Found"
|
||||||
|
#~ msgstr "Installatie niet gevonden"
|
||||||
|
|
||||||
|
#~ msgid "Select the {} configuration directory."
|
||||||
|
#~ msgstr "Selecteer de configuratiemap van {}"
|
||||||
|
|
||||||
|
#~ msgid "Select the {} data directory."
|
||||||
|
#~ msgstr "Selecteer de gegevensmap van {}"
|
||||||
|
|
||||||
#~ msgid "Importing Games…"
|
#~ msgid "Importing Games…"
|
||||||
#~ msgstr "Games importeren…"
|
#~ msgstr "Games importeren…"
|
||||||
|
|
||||||
@@ -716,6 +704,9 @@ msgstr "Verifieer uw API-sleutel onder voorkeuren"
|
|||||||
#~ msgid "No new games were found in the Steam library."
|
#~ msgid "No new games were found in the Steam library."
|
||||||
#~ msgstr "Geen nieuwe games gevonden in de Steam-bibliotheek"
|
#~ msgstr "Geen nieuwe games gevonden in de Steam-bibliotheek"
|
||||||
|
|
||||||
|
#~ msgid "The Steam directory cannot be found."
|
||||||
|
#~ msgstr "Steam-map kan niet worden gevonden"
|
||||||
|
|
||||||
#~ msgid "Talking to Steam"
|
#~ msgid "Talking to Steam"
|
||||||
#~ msgstr "Steam-bibliotheek aan het ophalen"
|
#~ msgstr "Steam-bibliotheek aan het ophalen"
|
||||||
|
|
||||||
|
|||||||
225
po/pl.po
225
po/pl.po
@@ -3,15 +3,13 @@
|
|||||||
# This file is distributed under the same license as the Cartridges package.
|
# This file is distributed under the same license as the Cartridges package.
|
||||||
# Artur Wróblewski <krypalkora1984@gmail.com>, 2023.
|
# Artur Wróblewski <krypalkora1984@gmail.com>, 2023.
|
||||||
# Kshyso <Kshysio@protonmail.com>, 2023.
|
# Kshyso <Kshysio@protonmail.com>, 2023.
|
||||||
# Eryk Michalak <gnu.ewm@protonmail.com>, 2023.
|
|
||||||
# Michaks <fexwex3@gmail.com>, 2023.
|
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Cartridges\n"
|
"Project-Id-Version: Cartridges\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-07-05 14:36+0200\n"
|
"POT-Creation-Date: 2023-06-26 12:01+0200\n"
|
||||||
"PO-Revision-Date: 2023-07-24 13:05+0000\n"
|
"PO-Revision-Date: 2023-06-10 16:48+0000\n"
|
||||||
"Last-Translator: Michaks <fexwex3@gmail.com>\n"
|
"Last-Translator: Kshyso <Kshysio@protonmail.com>\n"
|
||||||
"Language-Team: Polish <https://hosted.weblate.org/projects/cartridges/"
|
"Language-Team: Polish <https://hosted.weblate.org/projects/cartridges/"
|
||||||
"cartridges/pl/>\n"
|
"cartridges/pl/>\n"
|
||||||
"Language: pl\n"
|
"Language: pl\n"
|
||||||
@@ -20,13 +18,13 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
||||||
"|| n%100>=20) ? 1 : 2;\n"
|
"|| n%100>=20) ? 1 : 2;\n"
|
||||||
"X-Generator: Weblate 5.0-dev\n"
|
"X-Generator: Weblate 4.18-dev\n"
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
||||||
#: src/main.py:162
|
#: src/main.py:146
|
||||||
msgid "Cartridges"
|
msgid "Cartridges"
|
||||||
msgstr "Kartridże"
|
msgstr "Cartridges"
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:4
|
#: data/hu.kramo.Cartridges.desktop.in:4
|
||||||
msgid "Game Launcher"
|
msgid "Game Launcher"
|
||||||
@@ -39,7 +37,7 @@ msgstr "Uruchom wszystkie swoje gry"
|
|||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:11
|
#: data/hu.kramo.Cartridges.desktop.in:11
|
||||||
msgid "gaming;launcher;steam;lutris;heroic;bottles;itch;"
|
msgid "gaming;launcher;steam;lutris;heroic;bottles;itch;"
|
||||||
msgstr "gry;gaming;launcher;steam;lutris;heroic;bottles;itch;"
|
msgstr ""
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:9
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:9
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -58,16 +56,16 @@ msgstr "Biblioteka"
|
|||||||
|
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:34 src/details_window.py:67
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:34 src/details_window.py:67
|
||||||
msgid "Edit Game Details"
|
msgid "Edit Game Details"
|
||||||
msgstr "Edycja szczegółów gry"
|
msgstr "Edytuj detale gry"
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:38 data/gtk/window.blp:71
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:38 data/gtk/window.blp:71
|
||||||
msgid "Game Details"
|
msgid "Game Details"
|
||||||
msgstr "Szczegóły gry"
|
msgstr "Detale gry"
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:42 data/gtk/window.blp:416
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:42 data/gtk/window.blp:416
|
||||||
#: src/details_window.py:239
|
#: src/details_window.py:239
|
||||||
msgid "Preferences"
|
msgid "Preferences"
|
||||||
msgstr "Preferencje"
|
msgstr "Ustawienia"
|
||||||
|
|
||||||
#: data/gtk/details-window.blp:25
|
#: data/gtk/details-window.blp:25
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
@@ -75,11 +73,11 @@ msgstr "Anuluj"
|
|||||||
|
|
||||||
#: data/gtk/details-window.blp:57
|
#: data/gtk/details-window.blp:57
|
||||||
msgid "New Cover"
|
msgid "New Cover"
|
||||||
msgstr "Nowa okładka"
|
msgstr "Nowa Okładka"
|
||||||
|
|
||||||
#: data/gtk/details-window.blp:75
|
#: data/gtk/details-window.blp:75
|
||||||
msgid "Delete Cover"
|
msgid "Delete Cover"
|
||||||
msgstr "Usuń osłonę"
|
msgstr "Usuń Okładkę"
|
||||||
|
|
||||||
#: data/gtk/details-window.blp:101 data/gtk/details-window.blp:106
|
#: data/gtk/details-window.blp:101 data/gtk/details-window.blp:106
|
||||||
#: data/gtk/game.blp:80
|
#: data/gtk/game.blp:80
|
||||||
@@ -88,7 +86,7 @@ msgstr "Tytuł"
|
|||||||
|
|
||||||
#: data/gtk/details-window.blp:102
|
#: data/gtk/details-window.blp:102
|
||||||
msgid "The title of the game"
|
msgid "The title of the game"
|
||||||
msgstr "Tytuł Gry"
|
msgstr "Tytuł gry"
|
||||||
|
|
||||||
#: data/gtk/details-window.blp:112 data/gtk/details-window.blp:117
|
#: data/gtk/details-window.blp:112 data/gtk/details-window.blp:117
|
||||||
msgid "Developer"
|
msgid "Developer"
|
||||||
@@ -109,13 +107,13 @@ msgstr ""
|
|||||||
|
|
||||||
#: data/gtk/details-window.blp:130
|
#: data/gtk/details-window.blp:130
|
||||||
msgid "More Info"
|
msgid "More Info"
|
||||||
msgstr "Więcej informacji"
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/game.blp:102 data/gtk/game.blp:121 data/gtk/window.blp:195
|
#: data/gtk/game.blp:102 data/gtk/game.blp:121 data/gtk/window.blp:195
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Edytuj"
|
msgstr "Edytuj"
|
||||||
|
|
||||||
#: data/gtk/game.blp:107 src/window.py:171
|
#: data/gtk/game.blp:107 src/window.py:169
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr "Ukryj"
|
msgstr "Ukryj"
|
||||||
|
|
||||||
@@ -124,7 +122,7 @@ msgstr "Ukryj"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Usuń"
|
msgstr "Usuń"
|
||||||
|
|
||||||
#: data/gtk/game.blp:126 src/window.py:173
|
#: data/gtk/game.blp:126 src/window.py:171
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr "Odkryj"
|
msgstr "Odkryj"
|
||||||
|
|
||||||
@@ -149,9 +147,9 @@ msgstr "Pokaż preferencje"
|
|||||||
msgid "Shortcuts"
|
msgid "Shortcuts"
|
||||||
msgstr "Skróty"
|
msgstr "Skróty"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112
|
#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Wróć"
|
msgstr "Cofnij"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:39
|
#: data/gtk/help-overlay.blp:39
|
||||||
msgid "Open menu"
|
msgid "Open menu"
|
||||||
@@ -163,7 +161,7 @@ msgstr "Gry"
|
|||||||
|
|
||||||
#: data/gtk/help-overlay.blp:48
|
#: data/gtk/help-overlay.blp:48
|
||||||
msgid "Add new game"
|
msgid "Add new game"
|
||||||
msgstr "Dodaj nową gre"
|
msgstr "Dodaj nową grę"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:53
|
#: data/gtk/help-overlay.blp:53
|
||||||
msgid "Import games"
|
msgid "Import games"
|
||||||
@@ -177,7 +175,7 @@ msgstr "Pokaż ukryte gry"
|
|||||||
msgid "Remove game"
|
msgid "Remove game"
|
||||||
msgstr "Usuń grę"
|
msgstr "Usuń grę"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr "Zachowanie"
|
msgstr "Zachowanie"
|
||||||
|
|
||||||
@@ -187,7 +185,7 @@ msgstr "Wyjdź po uruchomieniu gry"
|
|||||||
|
|
||||||
#: data/gtk/preferences.blp:25
|
#: data/gtk/preferences.blp:25
|
||||||
msgid "Cover Image Launches Game"
|
msgid "Cover Image Launches Game"
|
||||||
msgstr "Obraz okładki uruchamia grę"
|
msgstr "Obraz okładki startera gier"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:26
|
#: data/gtk/preferences.blp:26
|
||||||
msgid "Swaps the behavior of the cover image and the play button"
|
msgid "Swaps the behavior of the cover image and the play button"
|
||||||
@@ -226,89 +224,80 @@ msgid "Steam"
|
|||||||
msgstr "Steam"
|
msgstr "Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
||||||
#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192
|
#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183
|
||||||
#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220
|
#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211
|
||||||
#: data/gtk/preferences.blp:234
|
#, fuzzy
|
||||||
|
#| msgid "itch Install Location"
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
msgstr "Lokalizacja instalacji"
|
msgstr "Położenie instalacji itch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:106
|
#: data/gtk/preferences.blp:106
|
||||||
msgid "Lutris"
|
msgid "Lutris"
|
||||||
msgstr "Lutris"
|
msgstr "Lutris"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:119
|
#: data/gtk/preferences.blp:119
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Lutris Cache Location"
|
||||||
msgid "Cache Location"
|
msgid "Cache Location"
|
||||||
msgstr "Lokalizacja pamięci podręcznej"
|
msgstr "Lokalizacja Lutris Cache"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:128
|
#: data/gtk/preferences.blp:128
|
||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr "Importuj gry Steam"
|
msgstr "Importuj gry Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137
|
#: data/gtk/preferences.blp:138
|
||||||
msgid "Import Flatpak Games"
|
|
||||||
msgstr "Importuj gry Flatpak"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:147
|
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
msgstr "Heroic"
|
msgstr "Heroic"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:160
|
#: data/gtk/preferences.blp:151
|
||||||
msgid "Import Epic Games"
|
msgid "Import Epic Games"
|
||||||
msgstr "Zaimportuj Epic Games"
|
msgstr "Zaimportuj Epic Games"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:169
|
#: data/gtk/preferences.blp:160
|
||||||
msgid "Import GOG Games"
|
msgid "Import GOG Games"
|
||||||
msgstr "Importuj gry z GOG"
|
msgstr "Importuj gry z GOG"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:178
|
#: data/gtk/preferences.blp:169
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr "Importuj gry w wersji Sideloaded"
|
msgstr "Importuj gry w wersji Sideloaded"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:188
|
#: data/gtk/preferences.blp:179
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr "Butelki"
|
msgstr "Butelki"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:202
|
#: data/gtk/preferences.blp:193
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr "itch"
|
msgstr "itch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
#: data/gtk/preferences.blp:207
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr "Legendarne"
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:230
|
#: data/gtk/preferences.blp:224
|
||||||
msgid "Flatpak"
|
|
||||||
msgstr "Flatpak"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:243
|
|
||||||
msgid "Import Game Launchers"
|
|
||||||
msgstr "Importuj programy uruchamiające gry"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:256
|
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
msgstr "SteamGridDB"
|
msgstr "SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Authentication"
|
msgid "Authentication"
|
||||||
msgstr "Uwierzytelnianie"
|
msgstr "Uwierzytelnianie"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:263
|
#: data/gtk/preferences.blp:231
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr "Klucz API"
|
msgstr "Klucz API"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:271
|
#: data/gtk/preferences.blp:239
|
||||||
msgid "Use SteamGridDB"
|
msgid "Use SteamGridDB"
|
||||||
msgstr "Użyj SteamGridDB"
|
msgstr "Użyj SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:272
|
#: data/gtk/preferences.blp:240
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr "Pobieranie obrazów podczas dodawania lub importowania gier"
|
msgstr "Pobieranie obrazów podczas dodawania lub importowania gier"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:281
|
#: data/gtk/preferences.blp:249
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr "Preferuj ponad Oficjalne zdjęcia"
|
msgstr "Preferuj ponad Oficjalne zdjęcia"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:290
|
#: data/gtk/preferences.blp:258
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr "Preferuj animowane obrazy"
|
msgstr "Preferuj animowane obrazy"
|
||||||
|
|
||||||
@@ -338,7 +327,7 @@ msgstr "Gry, które ukryjesz, pojawią się tutaj."
|
|||||||
|
|
||||||
#: data/gtk/window.blp:64 data/gtk/window.blp:304
|
#: data/gtk/window.blp:64 data/gtk/window.blp:304
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Powrót"
|
msgstr "Cofnij"
|
||||||
|
|
||||||
#: data/gtk/window.blp:121
|
#: data/gtk/window.blp:121
|
||||||
msgid "Game Title"
|
msgid "Game Title"
|
||||||
@@ -346,7 +335,7 @@ msgstr "Tytuł gry"
|
|||||||
|
|
||||||
#: data/gtk/window.blp:176
|
#: data/gtk/window.blp:176
|
||||||
msgid "Play"
|
msgid "Play"
|
||||||
msgstr "Graj"
|
msgstr "Uruchom"
|
||||||
|
|
||||||
#: data/gtk/window.blp:243 data/gtk/window.blp:435
|
#: data/gtk/window.blp:243 data/gtk/window.blp:435
|
||||||
msgid "Add Game"
|
msgid "Add Game"
|
||||||
@@ -394,24 +383,24 @@ msgstr "Skróty klawiaturowe"
|
|||||||
|
|
||||||
#: data/gtk/window.blp:426
|
#: data/gtk/window.blp:426
|
||||||
msgid "About Cartridges"
|
msgid "About Cartridges"
|
||||||
msgstr "O Kartridżach"
|
msgstr "O Cartridges"
|
||||||
|
|
||||||
#. Translators: Replace this with your name for it to show up in the about window
|
#. Translators: Replace this with your name for it to show up in the about window
|
||||||
#: src/main.py:180
|
#: src/main.py:164
|
||||||
msgid "translator_credits"
|
msgid "translator_credits"
|
||||||
msgstr "kredyty tłumacza"
|
msgstr "kredyty tłumacza"
|
||||||
|
|
||||||
#. The variable is the date when the game was added
|
#. The variable is the date when the game was added
|
||||||
#: src/window.py:194
|
#: src/window.py:192
|
||||||
msgid "Added: {}"
|
msgid "Added: {}"
|
||||||
msgstr "Dodano: {}"
|
msgstr "Dodano: {}"
|
||||||
|
|
||||||
#: src/window.py:197
|
#: src/window.py:195
|
||||||
msgid "Never"
|
msgid "Never"
|
||||||
msgstr "Nigdy"
|
msgstr "Nigdy"
|
||||||
|
|
||||||
#. The variable is the date when the game was last played
|
#. The variable is the date when the game was last played
|
||||||
#: src/window.py:201
|
#: src/window.py:199
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr "Ostatnio grane: {}"
|
msgstr "Ostatnio grane: {}"
|
||||||
|
|
||||||
@@ -421,33 +410,33 @@ msgstr "Zastosuj"
|
|||||||
|
|
||||||
#: src/details_window.py:78
|
#: src/details_window.py:78
|
||||||
msgid "Add New Game"
|
msgid "Add New Game"
|
||||||
msgstr "Dodaj nową Grę"
|
msgstr "Dodaj nową grę"
|
||||||
|
|
||||||
#: src/details_window.py:79
|
#: src/details_window.py:79
|
||||||
msgid "Confirm"
|
msgid "Confirm"
|
||||||
msgstr "Potwierdź"
|
msgstr "Potwierdź"
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: src/details_window.py:92
|
#: src/details_window.py:91
|
||||||
msgid "file.txt"
|
msgid "file.txt"
|
||||||
msgstr "plik.txt"
|
msgstr "plik.txt"
|
||||||
|
|
||||||
#. As in software
|
#. As in software
|
||||||
#: src/details_window.py:94
|
#: src/details_window.py:93
|
||||||
msgid "program"
|
msgid "program"
|
||||||
msgstr "program"
|
msgstr "program"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:99 src/details_window.py:101
|
#: src/details_window.py:98 src/details_window.py:100
|
||||||
msgid "C:\\path\\to\\{}"
|
msgid "C:\\path\\to\\{}"
|
||||||
msgstr "C:\\scieżka\\do\\{}"
|
msgstr "C:\\scieżka\\do\\{}"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:105 src/details_window.py:107
|
#: src/details_window.py:104 src/details_window.py:106
|
||||||
msgid "/path/to/{}"
|
msgid "/path/to/{}"
|
||||||
msgstr "/ścieżka/do/{}"
|
msgstr "/ścieżka/do/{}"
|
||||||
|
|
||||||
#: src/details_window.py:112
|
#: src/details_window.py:111
|
||||||
msgid ""
|
msgid ""
|
||||||
"To launch the executable \"{}\", use the command:\n"
|
"To launch the executable \"{}\", use the command:\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -469,15 +458,15 @@ msgstr ""
|
|||||||
"\n"
|
"\n"
|
||||||
"Jeśli ścieżka zawiera spacje, pamiętaj, aby zawinąć ją w podwójne cudzysłowy!"
|
"Jeśli ścieżka zawiera spacje, pamiętaj, aby zawinąć ją w podwójne cudzysłowy!"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:153
|
#: src/details_window.py:146 src/details_window.py:152
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
msgstr "Nie można było dodać gry"
|
msgstr "Nie można było dodać gry"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:181
|
#: src/details_window.py:146 src/details_window.py:181
|
||||||
msgid "Game title cannot be empty."
|
msgid "Game title cannot be empty."
|
||||||
msgstr "Tytuł gry nie może być pusty."
|
msgstr "Tytuł gry nie może być pusty."
|
||||||
|
|
||||||
#: src/details_window.py:153 src/details_window.py:189
|
#: src/details_window.py:152 src/details_window.py:189
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr "Plik wykonywalny nie może być pusty."
|
msgstr "Plik wykonywalny nie może być pusty."
|
||||||
|
|
||||||
@@ -486,86 +475,74 @@ msgid "Couldn't Apply Preferences"
|
|||||||
msgstr "Nie można zastosować preferencji"
|
msgstr "Nie można zastosować preferencji"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:138
|
#: src/game.py:141
|
||||||
msgid "{} launched"
|
msgid "{} launched"
|
||||||
msgstr "{} uruchomiony"
|
msgstr "{} uruchomiony"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr "{} ukryte"
|
msgstr "{} ukryte"
|
||||||
|
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} unhidden"
|
msgid "{} unhidden"
|
||||||
msgstr "{} nieukryty"
|
msgstr "{} nieukryty"
|
||||||
|
|
||||||
#: src/game.py:169
|
#: src/game.py:171
|
||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr "{} usunięty"
|
msgstr "{} usunięty"
|
||||||
|
|
||||||
#: src/preferences.py:111
|
#: src/preferences.py:102
|
||||||
msgid "All games removed"
|
msgid "All games removed"
|
||||||
msgstr "Wszystkie gry usunięte"
|
msgstr "Wszystkie gry usunięte"
|
||||||
|
|
||||||
#: src/preferences.py:159
|
#: src/preferences.py:149
|
||||||
msgid ""
|
msgid ""
|
||||||
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Do korzystania z SteamGridDB wymagany jest klucz API. Możesz go wygenerować "
|
"Do korzystania z SteamGridDB wymagany jest klucz API. Możesz go wygenerować "
|
||||||
"{} tutaj{}."
|
"{} tutaj{}."
|
||||||
|
|
||||||
#: src/preferences.py:284
|
#: src/preferences.py:289
|
||||||
msgid "Installation Not Found"
|
|
||||||
msgstr "Nie znaleziono instalacji"
|
|
||||||
|
|
||||||
#: src/preferences.py:286
|
|
||||||
msgid "Select a valid directory."
|
|
||||||
msgstr "Wybierz prawidłowy katalog."
|
|
||||||
|
|
||||||
#: src/preferences.py:348
|
|
||||||
msgid "Invalid Directory"
|
|
||||||
msgstr "Nieprawidłowy katalog"
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:352
|
|
||||||
msgid "Select the {} cache directory."
|
|
||||||
msgstr "Wybierz katalog pamięci podręcznej {}."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:355
|
|
||||||
msgid "Select the {} configuration directory."
|
|
||||||
msgstr "Wybierz katalog konfiguracyjny {}."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:358
|
|
||||||
msgid "Select the {} data directory."
|
|
||||||
msgstr "Wybierz katalog z danymi {}."
|
|
||||||
|
|
||||||
#: src/preferences.py:364
|
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
msgstr "Ustaw położenie"
|
msgstr "Ustaw lokacje"
|
||||||
|
|
||||||
#: src/utils/create_dialog.py:25
|
#: src/utils/create_dialog.py:25
|
||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
msgstr "Odrzucić"
|
msgstr "Odrzucić"
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:106
|
||||||
|
msgid "Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:107
|
||||||
|
msgid "Cache"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:108
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Confirm"
|
||||||
|
msgid "Configuration"
|
||||||
|
msgstr "Potwierdź"
|
||||||
|
|
||||||
|
#. The variables are the type of location (eg. cache) and the source's name (eg. Steam)
|
||||||
|
#: src/importer/sources/source.py:119
|
||||||
|
msgid "Invalid {} Location for {{}}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:120
|
||||||
|
msgid "Pick a new one or disable the source in preferences"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:47
|
#: src/store/managers/sgdb_manager.py:47
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Couldn't Connect to SteamGridDB"
|
||||||
msgid "Couldn't Authenticate SteamGridDB"
|
msgid "Couldn't Authenticate SteamGridDB"
|
||||||
msgstr "Nie można uwierzytelnić SteamGridDB"
|
msgstr "Nie można połączyć się z SteamGridDB"
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:48
|
#: src/store/managers/sgdb_manager.py:48
|
||||||
msgid "Verify your API key in preferences"
|
msgid "Verify your API key in preferences"
|
||||||
msgstr "Zweryfikuj swój klucz API w preferencjach"
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "Cache Not Found"
|
|
||||||
#~ msgid "Directory not Valid"
|
|
||||||
#~ msgstr "Nie znaleziono pamięci podręcznej"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "Confirm"
|
|
||||||
#~ msgid "Configuration"
|
|
||||||
#~ msgstr "Potwierdź"
|
|
||||||
|
|
||||||
#~ msgid "Steam Install Location"
|
#~ msgid "Steam Install Location"
|
||||||
#~ msgstr "Lokalizacja instalacji Steam"
|
#~ msgstr "Lokalizacja instalacji Steam"
|
||||||
@@ -585,9 +562,21 @@ msgstr "Zweryfikuj swój klucz API w preferencjach"
|
|||||||
#~ msgid "Yesterday"
|
#~ msgid "Yesterday"
|
||||||
#~ msgstr "Wczoraj"
|
#~ msgstr "Wczoraj"
|
||||||
|
|
||||||
|
#~ msgid "Cache Not Found"
|
||||||
|
#~ msgstr "Nie znaleziono pamięci podręcznej"
|
||||||
|
|
||||||
#~ msgid "Select the Lutris cache directory."
|
#~ msgid "Select the Lutris cache directory."
|
||||||
#~ msgstr "Wybierz katalog pamięci podręcznej Lutris."
|
#~ msgstr "Wybierz katalog pamięci podręcznej Lutris."
|
||||||
|
|
||||||
|
#~ msgid "Installation Not Found"
|
||||||
|
#~ msgstr "Nie znaleziono instalacji"
|
||||||
|
|
||||||
|
#~ msgid "Select the {} configuration directory."
|
||||||
|
#~ msgstr "Wybierz {} katalog konfiguracyjny."
|
||||||
|
|
||||||
|
#~ msgid "Select the {} data directory."
|
||||||
|
#~ msgstr "Wybierz {} katalog danych."
|
||||||
|
|
||||||
#~ msgid "Importing Games…"
|
#~ msgid "Importing Games…"
|
||||||
#~ msgstr "Importowanie gier…"
|
#~ msgstr "Importowanie gier…"
|
||||||
|
|
||||||
|
|||||||
181
po/pt.po
181
po/pt.po
@@ -9,7 +9,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: cartridges\n"
|
"Project-Id-Version: cartridges\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-07-05 14:36+0200\n"
|
"POT-Creation-Date: 2023-06-26 12:01+0200\n"
|
||||||
"PO-Revision-Date: 2023-06-04 22:47+0000\n"
|
"PO-Revision-Date: 2023-06-04 22:47+0000\n"
|
||||||
"Last-Translator: João Alves <joao.2003.couto@gmail.com>\n"
|
"Last-Translator: João Alves <joao.2003.couto@gmail.com>\n"
|
||||||
"Language-Team: Portuguese <https://hosted.weblate.org/projects/cartridges/"
|
"Language-Team: Portuguese <https://hosted.weblate.org/projects/cartridges/"
|
||||||
@@ -23,7 +23,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
||||||
#: src/main.py:162
|
#: src/main.py:146
|
||||||
msgid "Cartridges"
|
msgid "Cartridges"
|
||||||
msgstr "Cartridges"
|
msgstr "Cartridges"
|
||||||
|
|
||||||
@@ -114,7 +114,7 @@ msgstr "Mais informação"
|
|||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Editar"
|
msgstr "Editar"
|
||||||
|
|
||||||
#: data/gtk/game.blp:107 src/window.py:171
|
#: data/gtk/game.blp:107 src/window.py:169
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr "Ocultar"
|
msgstr "Ocultar"
|
||||||
|
|
||||||
@@ -123,7 +123,7 @@ msgstr "Ocultar"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Remover"
|
msgstr "Remover"
|
||||||
|
|
||||||
#: data/gtk/game.blp:126 src/window.py:173
|
#: data/gtk/game.blp:126 src/window.py:171
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr "Exibir"
|
msgstr "Exibir"
|
||||||
|
|
||||||
@@ -148,7 +148,7 @@ msgstr "Mostrar preferências"
|
|||||||
msgid "Shortcuts"
|
msgid "Shortcuts"
|
||||||
msgstr "Atalhos"
|
msgstr "Atalhos"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112
|
#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Desfazer"
|
msgstr "Desfazer"
|
||||||
|
|
||||||
@@ -176,7 +176,7 @@ msgstr "Exibir jogos ocultados"
|
|||||||
msgid "Remove game"
|
msgid "Remove game"
|
||||||
msgstr "Remover jogo"
|
msgstr "Remover jogo"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr "Comportamento"
|
msgstr "Comportamento"
|
||||||
|
|
||||||
@@ -225,9 +225,8 @@ msgid "Steam"
|
|||||||
msgstr "Steam"
|
msgstr "Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
||||||
#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192
|
#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183
|
||||||
#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220
|
#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211
|
||||||
#: data/gtk/preferences.blp:234
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "itch Install Location"
|
#| msgid "itch Install Location"
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
@@ -247,75 +246,59 @@ msgstr "Local do cache do Lutris"
|
|||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr "Importar jogos da Steam"
|
msgstr "Importar jogos da Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137
|
#: data/gtk/preferences.blp:138
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Import Steam Games"
|
|
||||||
msgid "Import Flatpak Games"
|
|
||||||
msgstr "Importar jogos da Steam"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:147
|
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
msgstr "Heroic"
|
msgstr "Heroic"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:160
|
#: data/gtk/preferences.blp:151
|
||||||
msgid "Import Epic Games"
|
msgid "Import Epic Games"
|
||||||
msgstr "Importar jogos da Epic Games"
|
msgstr "Importar jogos da Epic Games"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:169
|
#: data/gtk/preferences.blp:160
|
||||||
msgid "Import GOG Games"
|
msgid "Import GOG Games"
|
||||||
msgstr "Importar jogos do GOG"
|
msgstr "Importar jogos do GOG"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:178
|
#: data/gtk/preferences.blp:169
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr "Importar jogos adicionados manualmente"
|
msgstr "Importar jogos adicionados manualmente"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:188
|
#: data/gtk/preferences.blp:179
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr "Bottles"
|
msgstr "Bottles"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:202
|
#: data/gtk/preferences.blp:193
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr "itch"
|
msgstr "itch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
#: data/gtk/preferences.blp:207
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:230
|
#: data/gtk/preferences.blp:224
|
||||||
msgid "Flatpak"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:243
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Game Launcher"
|
|
||||||
msgid "Import Game Launchers"
|
|
||||||
msgstr "Iniciador de jogos"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:256
|
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
msgstr "SteamGridDB"
|
msgstr "SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Authentication"
|
msgid "Authentication"
|
||||||
msgstr "Autenticação"
|
msgstr "Autenticação"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:263
|
#: data/gtk/preferences.blp:231
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr "Chave da API"
|
msgstr "Chave da API"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:271
|
#: data/gtk/preferences.blp:239
|
||||||
msgid "Use SteamGridDB"
|
msgid "Use SteamGridDB"
|
||||||
msgstr "Usar SteamGridDB"
|
msgstr "Usar SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:272
|
#: data/gtk/preferences.blp:240
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr "Baixa imagens ao adicionar ou importar jogos"
|
msgstr "Baixa imagens ao adicionar ou importar jogos"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:281
|
#: data/gtk/preferences.blp:249
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr "Preferir mais que as imagens oficiais"
|
msgstr "Preferir mais que as imagens oficiais"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:290
|
#: data/gtk/preferences.blp:258
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr "Preferir imagens animadas"
|
msgstr "Preferir imagens animadas"
|
||||||
|
|
||||||
@@ -404,21 +387,21 @@ msgid "About Cartridges"
|
|||||||
msgstr "Sobre o Cartuchos"
|
msgstr "Sobre o Cartuchos"
|
||||||
|
|
||||||
#. Translators: Replace this with your name for it to show up in the about window
|
#. Translators: Replace this with your name for it to show up in the about window
|
||||||
#: src/main.py:180
|
#: src/main.py:164
|
||||||
msgid "translator_credits"
|
msgid "translator_credits"
|
||||||
msgstr "Pedro Sader Azevedo"
|
msgstr "Pedro Sader Azevedo"
|
||||||
|
|
||||||
#. The variable is the date when the game was added
|
#. The variable is the date when the game was added
|
||||||
#: src/window.py:194
|
#: src/window.py:192
|
||||||
msgid "Added: {}"
|
msgid "Added: {}"
|
||||||
msgstr "Adicionado: {}"
|
msgstr "Adicionado: {}"
|
||||||
|
|
||||||
#: src/window.py:197
|
#: src/window.py:195
|
||||||
msgid "Never"
|
msgid "Never"
|
||||||
msgstr "Nunca"
|
msgstr "Nunca"
|
||||||
|
|
||||||
#. The variable is the date when the game was last played
|
#. The variable is the date when the game was last played
|
||||||
#: src/window.py:201
|
#: src/window.py:199
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr "Última vez jogado"
|
msgstr "Última vez jogado"
|
||||||
|
|
||||||
@@ -435,26 +418,26 @@ msgid "Confirm"
|
|||||||
msgstr "Confirmar"
|
msgstr "Confirmar"
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: src/details_window.py:92
|
#: src/details_window.py:91
|
||||||
msgid "file.txt"
|
msgid "file.txt"
|
||||||
msgstr "arquivo.txt"
|
msgstr "arquivo.txt"
|
||||||
|
|
||||||
#. As in software
|
#. As in software
|
||||||
#: src/details_window.py:94
|
#: src/details_window.py:93
|
||||||
msgid "program"
|
msgid "program"
|
||||||
msgstr "programa"
|
msgstr "programa"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:99 src/details_window.py:101
|
#: src/details_window.py:98 src/details_window.py:100
|
||||||
msgid "C:\\path\\to\\{}"
|
msgid "C:\\path\\to\\{}"
|
||||||
msgstr "C:\\caminho\\para\\{}"
|
msgstr "C:\\caminho\\para\\{}"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:105 src/details_window.py:107
|
#: src/details_window.py:104 src/details_window.py:106
|
||||||
msgid "/path/to/{}"
|
msgid "/path/to/{}"
|
||||||
msgstr "/caminho/para/{}"
|
msgstr "/caminho/para/{}"
|
||||||
|
|
||||||
#: src/details_window.py:112
|
#: src/details_window.py:111
|
||||||
msgid ""
|
msgid ""
|
||||||
"To launch the executable \"{}\", use the command:\n"
|
"To launch the executable \"{}\", use the command:\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -476,15 +459,15 @@ msgstr ""
|
|||||||
"\n"
|
"\n"
|
||||||
"Se o caminho contiver espaços, certifique-se de colocá-lo entre aspas duplas!"
|
"Se o caminho contiver espaços, certifique-se de colocá-lo entre aspas duplas!"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:153
|
#: src/details_window.py:146 src/details_window.py:152
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
msgstr "Não foi possível adicionar o jogo"
|
msgstr "Não foi possível adicionar o jogo"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:181
|
#: src/details_window.py:146 src/details_window.py:181
|
||||||
msgid "Game title cannot be empty."
|
msgid "Game title cannot be empty."
|
||||||
msgstr "O título do jogo não pode estar vazio."
|
msgstr "O título do jogo não pode estar vazio."
|
||||||
|
|
||||||
#: src/details_window.py:153 src/details_window.py:189
|
#: src/details_window.py:152 src/details_window.py:189
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr "O executável não pode estar vazio."
|
msgstr "O executável não pode estar vazio."
|
||||||
|
|
||||||
@@ -493,72 +476,35 @@ msgid "Couldn't Apply Preferences"
|
|||||||
msgstr "Não foi possível aplicar as preferências"
|
msgstr "Não foi possível aplicar as preferências"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:138
|
#: src/game.py:141
|
||||||
msgid "{} launched"
|
msgid "{} launched"
|
||||||
msgstr "{} iniciado"
|
msgstr "{} iniciado"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr "{} está oculto"
|
msgstr "{} está oculto"
|
||||||
|
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} unhidden"
|
msgid "{} unhidden"
|
||||||
msgstr "{} está exposto"
|
msgstr "{} está exposto"
|
||||||
|
|
||||||
#: src/game.py:169
|
#: src/game.py:171
|
||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr "{} removido"
|
msgstr "{} removido"
|
||||||
|
|
||||||
#: src/preferences.py:111
|
#: src/preferences.py:102
|
||||||
msgid "All games removed"
|
msgid "All games removed"
|
||||||
msgstr "Todos os jogos foram removidos"
|
msgstr "Todos os jogos foram removidos"
|
||||||
|
|
||||||
#: src/preferences.py:159
|
#: src/preferences.py:149
|
||||||
msgid ""
|
msgid ""
|
||||||
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Uma chave da API é necessária para usar a SteamGridDB. Você pode gerar uma "
|
"Uma chave da API é necessária para usar a SteamGridDB. Você pode gerar uma "
|
||||||
"chave {}aqui{}."
|
"chave {}aqui{}."
|
||||||
|
|
||||||
#: src/preferences.py:284
|
#: src/preferences.py:289
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Installation Not Found"
|
|
||||||
msgid "Installation Not Found"
|
|
||||||
msgstr "Instalação não encontrada"
|
|
||||||
|
|
||||||
#: src/preferences.py:286
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Select the {} data directory."
|
|
||||||
msgid "Select a valid directory."
|
|
||||||
msgstr "Selecione o diretório de informações de {}."
|
|
||||||
|
|
||||||
#: src/preferences.py:348
|
|
||||||
msgid "Invalid Directory"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:352
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Select the {} data directory."
|
|
||||||
msgid "Select the {} cache directory."
|
|
||||||
msgstr "Selecione o diretório de informações de {}."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:355
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Select the {} configuration directory."
|
|
||||||
msgid "Select the {} configuration directory."
|
|
||||||
msgstr "Selecione o diretório de configuração de {}."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:358
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Select the {} data directory."
|
|
||||||
msgid "Select the {} data directory."
|
|
||||||
msgstr "Selecione o diretório de informações de {}."
|
|
||||||
|
|
||||||
#: src/preferences.py:364
|
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
msgstr "Definir local"
|
msgstr "Definir local"
|
||||||
|
|
||||||
@@ -566,6 +512,29 @@ msgstr "Definir local"
|
|||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
msgstr "Dispensar"
|
msgstr "Dispensar"
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:106
|
||||||
|
msgid "Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:107
|
||||||
|
msgid "Cache"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:108
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Confirm"
|
||||||
|
msgid "Configuration"
|
||||||
|
msgstr "Confirmar"
|
||||||
|
|
||||||
|
#. The variables are the type of location (eg. cache) and the source's name (eg. Steam)
|
||||||
|
#: src/importer/sources/source.py:119
|
||||||
|
msgid "Invalid {} Location for {{}}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:120
|
||||||
|
msgid "Pick a new one or disable the source in preferences"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:47
|
#: src/store/managers/sgdb_manager.py:47
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Couldn't Connect to SteamGridDB"
|
#| msgid "Couldn't Connect to SteamGridDB"
|
||||||
@@ -576,16 +545,6 @@ msgstr "Não foi possível conectar à SteamGridDB"
|
|||||||
msgid "Verify your API key in preferences"
|
msgid "Verify your API key in preferences"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "The Steam directory cannot be found."
|
|
||||||
#~ msgid "Directory not Valid"
|
|
||||||
#~ msgstr "O diretório da Steam não foi encontrado."
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "Confirm"
|
|
||||||
#~ msgid "Configuration"
|
|
||||||
#~ msgstr "Confirmar"
|
|
||||||
|
|
||||||
#~ msgid "Steam Install Location"
|
#~ msgid "Steam Install Location"
|
||||||
#~ msgstr "Local de instalação da Steam"
|
#~ msgstr "Local de instalação da Steam"
|
||||||
|
|
||||||
@@ -610,6 +569,15 @@ msgstr ""
|
|||||||
#~ msgid "Select the Lutris cache directory."
|
#~ msgid "Select the Lutris cache directory."
|
||||||
#~ msgstr "Selecione o diretório de cache do Lutris."
|
#~ msgstr "Selecione o diretório de cache do Lutris."
|
||||||
|
|
||||||
|
#~ msgid "Installation Not Found"
|
||||||
|
#~ msgstr "Instalação não encontrada"
|
||||||
|
|
||||||
|
#~ msgid "Select the {} configuration directory."
|
||||||
|
#~ msgstr "Selecione o diretório de configuração de {}."
|
||||||
|
|
||||||
|
#~ msgid "Select the {} data directory."
|
||||||
|
#~ msgstr "Selecione o diretório de informações de {}."
|
||||||
|
|
||||||
#~ msgid "Importing Games…"
|
#~ msgid "Importing Games…"
|
||||||
#~ msgstr "Importando jogos…"
|
#~ msgstr "Importando jogos…"
|
||||||
|
|
||||||
@@ -735,5 +703,8 @@ msgstr ""
|
|||||||
#~ msgid "No new games were found in the Steam library."
|
#~ msgid "No new games were found in the Steam library."
|
||||||
#~ msgstr "Nenhum jogo novo foi encontrado na biblioteca da Steam."
|
#~ msgstr "Nenhum jogo novo foi encontrado na biblioteca da Steam."
|
||||||
|
|
||||||
|
#~ msgid "The Steam directory cannot be found."
|
||||||
|
#~ msgstr "O diretório da Steam não foi encontrado."
|
||||||
|
|
||||||
#~ msgid "Talking to Steam"
|
#~ msgid "Talking to Steam"
|
||||||
#~ msgstr "Falando com a Steam"
|
#~ msgstr "Falando com a Steam"
|
||||||
|
|||||||
192
po/pt_BR.po
192
po/pt_BR.po
@@ -3,14 +3,13 @@
|
|||||||
# This file is distributed under the same license as the Cartridges package.
|
# This file is distributed under the same license as the Cartridges package.
|
||||||
# Henrique Machado <henriquecamposrj@gmail.com>, 2023.
|
# Henrique Machado <henriquecamposrj@gmail.com>, 2023.
|
||||||
# Vinícius Gama Santos <vinny.stalck@protonmail.com>, 2023.
|
# Vinícius Gama Santos <vinny.stalck@protonmail.com>, 2023.
|
||||||
# Vítor Fernandes Almado <vfalmado@gmail.com>, 2023.
|
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Cartridges\n"
|
"Project-Id-Version: Cartridges\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-07-05 14:36+0200\n"
|
"POT-Creation-Date: 2023-06-26 12:01+0200\n"
|
||||||
"PO-Revision-Date: 2023-07-11 15:52+0000\n"
|
"PO-Revision-Date: 2023-06-02 15:40+0000\n"
|
||||||
"Last-Translator: Vítor Fernandes Almado <vfalmado@gmail.com>\n"
|
"Last-Translator: Vinícius Gama Santos <vinny.stalck@protonmail.com>\n"
|
||||||
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
|
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
|
||||||
"cartridges/cartridges/pt_BR/>\n"
|
"cartridges/cartridges/pt_BR/>\n"
|
||||||
"Language: pt_BR\n"
|
"Language: pt_BR\n"
|
||||||
@@ -18,11 +17,11 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||||
"X-Generator: Weblate 5.0-dev\n"
|
"X-Generator: Weblate 4.18-dev\n"
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
||||||
#: src/main.py:162
|
#: src/main.py:146
|
||||||
msgid "Cartridges"
|
msgid "Cartridges"
|
||||||
msgstr "Cartuchos"
|
msgstr "Cartuchos"
|
||||||
|
|
||||||
@@ -113,7 +112,7 @@ msgstr "Mais informações"
|
|||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Editar"
|
msgstr "Editar"
|
||||||
|
|
||||||
#: data/gtk/game.blp:107 src/window.py:171
|
#: data/gtk/game.blp:107 src/window.py:169
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr "Esconder"
|
msgstr "Esconder"
|
||||||
|
|
||||||
@@ -122,7 +121,7 @@ msgstr "Esconder"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Remover"
|
msgstr "Remover"
|
||||||
|
|
||||||
#: data/gtk/game.blp:126 src/window.py:173
|
#: data/gtk/game.blp:126 src/window.py:171
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr "Exibir"
|
msgstr "Exibir"
|
||||||
|
|
||||||
@@ -147,7 +146,7 @@ msgstr "Mostrar preferências"
|
|||||||
msgid "Shortcuts"
|
msgid "Shortcuts"
|
||||||
msgstr "Atalhos"
|
msgstr "Atalhos"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112
|
#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Desfazer"
|
msgstr "Desfazer"
|
||||||
|
|
||||||
@@ -175,7 +174,7 @@ msgstr "Exibir jogos ocultos"
|
|||||||
msgid "Remove game"
|
msgid "Remove game"
|
||||||
msgstr "Remover jogo"
|
msgstr "Remover jogo"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr "Comportamento"
|
msgstr "Comportamento"
|
||||||
|
|
||||||
@@ -224,9 +223,8 @@ msgid "Steam"
|
|||||||
msgstr "Steam"
|
msgstr "Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
||||||
#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192
|
#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183
|
||||||
#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220
|
#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211
|
||||||
#: data/gtk/preferences.blp:234
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "itch Install Location"
|
#| msgid "itch Install Location"
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
@@ -246,75 +244,59 @@ msgstr "Local do cache do Lutris"
|
|||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr "Importar jogos do Steam"
|
msgstr "Importar jogos do Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137
|
#: data/gtk/preferences.blp:138
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Import Steam Games"
|
|
||||||
msgid "Import Flatpak Games"
|
|
||||||
msgstr "Importar jogos do Steam"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:147
|
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
msgstr "Heroic"
|
msgstr "Heroic"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:160
|
#: data/gtk/preferences.blp:151
|
||||||
msgid "Import Epic Games"
|
msgid "Import Epic Games"
|
||||||
msgstr "Importar jogos da Epic Games"
|
msgstr "Importar jogos da Epic Games"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:169
|
#: data/gtk/preferences.blp:160
|
||||||
msgid "Import GOG Games"
|
msgid "Import GOG Games"
|
||||||
msgstr "Importar jogos do GOG"
|
msgstr "Importar jogos do GOG"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:178
|
#: data/gtk/preferences.blp:169
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr "Importar jogos adicionados manualmente"
|
msgstr "Importar jogos adicionados manualmente"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:188
|
#: data/gtk/preferences.blp:179
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr "Garrafas"
|
msgstr "Garrafas"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:202
|
#: data/gtk/preferences.blp:193
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr "itch"
|
msgstr "itch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
#: data/gtk/preferences.blp:207
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr "Lendário"
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:230
|
#: data/gtk/preferences.blp:224
|
||||||
msgid "Flatpak"
|
|
||||||
msgstr "Flatpak"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:243
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Game Launcher"
|
|
||||||
msgid "Import Game Launchers"
|
|
||||||
msgstr "Iniciador de jogos"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:256
|
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
msgstr "SteamGridDB"
|
msgstr "SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Authentication"
|
msgid "Authentication"
|
||||||
msgstr "Autenticação"
|
msgstr "Autenticação"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:263
|
#: data/gtk/preferences.blp:231
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr "Chave da API"
|
msgstr "Chave da API"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:271
|
#: data/gtk/preferences.blp:239
|
||||||
msgid "Use SteamGridDB"
|
msgid "Use SteamGridDB"
|
||||||
msgstr "Usar SteamGridDB"
|
msgstr "Usar SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:272
|
#: data/gtk/preferences.blp:240
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr "Baixar imagens ao adicionar ou importar jogos"
|
msgstr "Baixar imagens ao adicionar ou importar jogos"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:281
|
#: data/gtk/preferences.blp:249
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr "Preferir mais que as imagens oficiais"
|
msgstr "Preferir mais que as imagens oficiais"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:290
|
#: data/gtk/preferences.blp:258
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr "Preferir imagens animadas"
|
msgstr "Preferir imagens animadas"
|
||||||
|
|
||||||
@@ -403,21 +385,21 @@ msgid "About Cartridges"
|
|||||||
msgstr "Sobre o Cartuchos"
|
msgstr "Sobre o Cartuchos"
|
||||||
|
|
||||||
#. Translators: Replace this with your name for it to show up in the about window
|
#. Translators: Replace this with your name for it to show up in the about window
|
||||||
#: src/main.py:180
|
#: src/main.py:164
|
||||||
msgid "translator_credits"
|
msgid "translator_credits"
|
||||||
msgstr "Pedro Sader Azevedo, Vinícius \"Stalck\""
|
msgstr "Pedro Sader Azevedo, Vinícius \"Stalck\""
|
||||||
|
|
||||||
#. The variable is the date when the game was added
|
#. The variable is the date when the game was added
|
||||||
#: src/window.py:194
|
#: src/window.py:192
|
||||||
msgid "Added: {}"
|
msgid "Added: {}"
|
||||||
msgstr "Adicionado: {}"
|
msgstr "Adicionado: {}"
|
||||||
|
|
||||||
#: src/window.py:197
|
#: src/window.py:195
|
||||||
msgid "Never"
|
msgid "Never"
|
||||||
msgstr "Nunca"
|
msgstr "Nunca"
|
||||||
|
|
||||||
#. The variable is the date when the game was last played
|
#. The variable is the date when the game was last played
|
||||||
#: src/window.py:201
|
#: src/window.py:199
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr "Jogado pela última vez: {}"
|
msgstr "Jogado pela última vez: {}"
|
||||||
|
|
||||||
@@ -434,26 +416,26 @@ msgid "Confirm"
|
|||||||
msgstr "Confirmar"
|
msgstr "Confirmar"
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: src/details_window.py:92
|
#: src/details_window.py:91
|
||||||
msgid "file.txt"
|
msgid "file.txt"
|
||||||
msgstr "arquivo.txt"
|
msgstr "arquivo.txt"
|
||||||
|
|
||||||
#. As in software
|
#. As in software
|
||||||
#: src/details_window.py:94
|
#: src/details_window.py:93
|
||||||
msgid "program"
|
msgid "program"
|
||||||
msgstr "programa"
|
msgstr "programa"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:99 src/details_window.py:101
|
#: src/details_window.py:98 src/details_window.py:100
|
||||||
msgid "C:\\path\\to\\{}"
|
msgid "C:\\path\\to\\{}"
|
||||||
msgstr "C:\\caminho\\para\\{}"
|
msgstr "C:\\caminho\\para\\{}"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:105 src/details_window.py:107
|
#: src/details_window.py:104 src/details_window.py:106
|
||||||
msgid "/path/to/{}"
|
msgid "/path/to/{}"
|
||||||
msgstr "/caminho/para/{}"
|
msgstr "/caminho/para/{}"
|
||||||
|
|
||||||
#: src/details_window.py:112
|
#: src/details_window.py:111
|
||||||
msgid ""
|
msgid ""
|
||||||
"To launch the executable \"{}\", use the command:\n"
|
"To launch the executable \"{}\", use the command:\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -475,15 +457,15 @@ msgstr ""
|
|||||||
"\n"
|
"\n"
|
||||||
"Se o caminho contiver espaços, certifique-se de colocá-lo entre aspas duplas!"
|
"Se o caminho contiver espaços, certifique-se de colocá-lo entre aspas duplas!"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:153
|
#: src/details_window.py:146 src/details_window.py:152
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
msgstr "Não foi possível adicionar o jogo"
|
msgstr "Não foi possível adicionar o jogo"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:181
|
#: src/details_window.py:146 src/details_window.py:181
|
||||||
msgid "Game title cannot be empty."
|
msgid "Game title cannot be empty."
|
||||||
msgstr "O título do jogo não pode estar vazio."
|
msgstr "O título do jogo não pode estar vazio."
|
||||||
|
|
||||||
#: src/details_window.py:153 src/details_window.py:189
|
#: src/details_window.py:152 src/details_window.py:189
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr "O executável não pode estar vazio."
|
msgstr "O executável não pode estar vazio."
|
||||||
|
|
||||||
@@ -492,72 +474,35 @@ msgid "Couldn't Apply Preferences"
|
|||||||
msgstr "Não foi possível aplicar as preferências"
|
msgstr "Não foi possível aplicar as preferências"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:138
|
#: src/game.py:141
|
||||||
msgid "{} launched"
|
msgid "{} launched"
|
||||||
msgstr "{} iniciado"
|
msgstr "{} iniciado"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr "{} ocultado"
|
msgstr "{} ocultado"
|
||||||
|
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} unhidden"
|
msgid "{} unhidden"
|
||||||
msgstr "{} exibido"
|
msgstr "{} exibido"
|
||||||
|
|
||||||
#: src/game.py:169
|
#: src/game.py:171
|
||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr "{} removido"
|
msgstr "{} removido"
|
||||||
|
|
||||||
#: src/preferences.py:111
|
#: src/preferences.py:102
|
||||||
msgid "All games removed"
|
msgid "All games removed"
|
||||||
msgstr "Todos os jogos foram removidos"
|
msgstr "Todos os jogos foram removidos"
|
||||||
|
|
||||||
#: src/preferences.py:159
|
#: src/preferences.py:149
|
||||||
msgid ""
|
msgid ""
|
||||||
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Uma chave de API é necessária para utilizar o SteamGridDB. Você pode gerar "
|
"Uma chave de API é necessária para utilizar o SteamGridDB. Você pode gerar "
|
||||||
"uma {}aqui{}."
|
"uma {}aqui{}."
|
||||||
|
|
||||||
#: src/preferences.py:284
|
#: src/preferences.py:289
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Installation Not Found"
|
|
||||||
msgid "Installation Not Found"
|
|
||||||
msgstr "Instalação não encontrada"
|
|
||||||
|
|
||||||
#: src/preferences.py:286
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Select the {} data directory."
|
|
||||||
msgid "Select a valid directory."
|
|
||||||
msgstr "Selecione o diretório de dados do(a) {}."
|
|
||||||
|
|
||||||
#: src/preferences.py:348
|
|
||||||
msgid "Invalid Directory"
|
|
||||||
msgstr "Diretório inválido"
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:352
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Select the {} data directory."
|
|
||||||
msgid "Select the {} cache directory."
|
|
||||||
msgstr "Selecione o diretório de dados do(a) {}."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:355
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Select the {} configuration directory."
|
|
||||||
msgid "Select the {} configuration directory."
|
|
||||||
msgstr "Selecione o diretório de configuração do(a) {}."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:358
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Select the {} data directory."
|
|
||||||
msgid "Select the {} data directory."
|
|
||||||
msgstr "Selecione o diretório de dados do(a) {}."
|
|
||||||
|
|
||||||
#: src/preferences.py:364
|
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
msgstr "Definir local"
|
msgstr "Definir local"
|
||||||
|
|
||||||
@@ -565,6 +510,29 @@ msgstr "Definir local"
|
|||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
msgstr "Dispensar"
|
msgstr "Dispensar"
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:106
|
||||||
|
msgid "Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:107
|
||||||
|
msgid "Cache"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:108
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Confirm"
|
||||||
|
msgid "Configuration"
|
||||||
|
msgstr "Confirmar"
|
||||||
|
|
||||||
|
#. The variables are the type of location (eg. cache) and the source's name (eg. Steam)
|
||||||
|
#: src/importer/sources/source.py:119
|
||||||
|
msgid "Invalid {} Location for {{}}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:120
|
||||||
|
msgid "Pick a new one or disable the source in preferences"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:47
|
#: src/store/managers/sgdb_manager.py:47
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Couldn't Connect to SteamGridDB"
|
#| msgid "Couldn't Connect to SteamGridDB"
|
||||||
@@ -573,17 +541,7 @@ msgstr "Não foi possível conectar-se ao SteamGridDB"
|
|||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:48
|
#: src/store/managers/sgdb_manager.py:48
|
||||||
msgid "Verify your API key in preferences"
|
msgid "Verify your API key in preferences"
|
||||||
msgstr "Verifique sua chave API nas preferências"
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "Cache Not Found"
|
|
||||||
#~ msgid "Directory not Valid"
|
|
||||||
#~ msgstr "Cache não encontrado"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "Confirm"
|
|
||||||
#~ msgid "Configuration"
|
|
||||||
#~ msgstr "Confirmar"
|
|
||||||
|
|
||||||
#~ msgid "Steam Install Location"
|
#~ msgid "Steam Install Location"
|
||||||
#~ msgstr "Local de instalação do Steam"
|
#~ msgstr "Local de instalação do Steam"
|
||||||
@@ -603,9 +561,21 @@ msgstr "Verifique sua chave API nas preferências"
|
|||||||
#~ msgid "Yesterday"
|
#~ msgid "Yesterday"
|
||||||
#~ msgstr "Ontem"
|
#~ msgstr "Ontem"
|
||||||
|
|
||||||
|
#~ msgid "Cache Not Found"
|
||||||
|
#~ msgstr "Cache não encontrado"
|
||||||
|
|
||||||
#~ msgid "Select the Lutris cache directory."
|
#~ msgid "Select the Lutris cache directory."
|
||||||
#~ msgstr "Selecione o diretório de cache do Lutris."
|
#~ msgstr "Selecione o diretório de cache do Lutris."
|
||||||
|
|
||||||
|
#~ msgid "Installation Not Found"
|
||||||
|
#~ msgstr "Instalação não encontrada"
|
||||||
|
|
||||||
|
#~ msgid "Select the {} configuration directory."
|
||||||
|
#~ msgstr "Selecione o diretório de configuração do(a) {}."
|
||||||
|
|
||||||
|
#~ msgid "Select the {} data directory."
|
||||||
|
#~ msgstr "Selecione o diretório de dados do(a) {}."
|
||||||
|
|
||||||
#~ msgid "Importing Games…"
|
#~ msgid "Importing Games…"
|
||||||
#~ msgstr "Importando jogos…"
|
#~ msgstr "Importando jogos…"
|
||||||
|
|
||||||
|
|||||||
145
po/ro.po
145
po/ro.po
@@ -6,7 +6,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Cartridges\n"
|
"Project-Id-Version: Cartridges\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-07-05 14:36+0200\n"
|
"POT-Creation-Date: 2023-06-26 12:01+0200\n"
|
||||||
"PO-Revision-Date: 2023-04-04 17:12+0000\n"
|
"PO-Revision-Date: 2023-04-04 17:12+0000\n"
|
||||||
"Last-Translator: Matt C <matei.gurzu@gmail.com>\n"
|
"Last-Translator: Matt C <matei.gurzu@gmail.com>\n"
|
||||||
"Language-Team: Romanian <https://hosted.weblate.org/projects/cartridges/"
|
"Language-Team: Romanian <https://hosted.weblate.org/projects/cartridges/"
|
||||||
@@ -21,7 +21,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
||||||
#: src/main.py:162
|
#: src/main.py:146
|
||||||
msgid "Cartridges"
|
msgid "Cartridges"
|
||||||
msgstr "Cartușe"
|
msgstr "Cartușe"
|
||||||
|
|
||||||
@@ -116,7 +116,7 @@ msgstr ""
|
|||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/game.blp:107 src/window.py:171
|
#: data/gtk/game.blp:107 src/window.py:169
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -125,7 +125,7 @@ msgstr ""
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/game.blp:126 src/window.py:173
|
#: data/gtk/game.blp:126 src/window.py:171
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -150,7 +150,7 @@ msgstr ""
|
|||||||
msgid "Shortcuts"
|
msgid "Shortcuts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112
|
#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -178,7 +178,7 @@ msgstr ""
|
|||||||
msgid "Remove game"
|
msgid "Remove game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -227,9 +227,8 @@ msgid "Steam"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
||||||
#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192
|
#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183
|
||||||
#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220
|
#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211
|
||||||
#: data/gtk/preferences.blp:234
|
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -245,73 +244,59 @@ msgstr ""
|
|||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137
|
#: data/gtk/preferences.blp:138
|
||||||
msgid "Import Flatpak Games"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:147
|
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:160
|
#: data/gtk/preferences.blp:151
|
||||||
msgid "Import Epic Games"
|
msgid "Import Epic Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:169
|
#: data/gtk/preferences.blp:160
|
||||||
msgid "Import GOG Games"
|
msgid "Import GOG Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:178
|
#: data/gtk/preferences.blp:169
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:188
|
#: data/gtk/preferences.blp:179
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:202
|
#: data/gtk/preferences.blp:193
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
#: data/gtk/preferences.blp:207
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:230
|
#: data/gtk/preferences.blp:224
|
||||||
msgid "Flatpak"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:243
|
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Game Launcher"
|
|
||||||
msgid "Import Game Launchers"
|
|
||||||
msgstr "Lansator de jocuri"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:256
|
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Authentication"
|
msgid "Authentication"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:263
|
#: data/gtk/preferences.blp:231
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:271
|
#: data/gtk/preferences.blp:239
|
||||||
msgid "Use SteamGridDB"
|
msgid "Use SteamGridDB"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:272
|
#: data/gtk/preferences.blp:240
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:281
|
#: data/gtk/preferences.blp:249
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:290
|
#: data/gtk/preferences.blp:258
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -400,21 +385,21 @@ msgid "About Cartridges"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Translators: Replace this with your name for it to show up in the about window
|
#. Translators: Replace this with your name for it to show up in the about window
|
||||||
#: src/main.py:180
|
#: src/main.py:164
|
||||||
msgid "translator_credits"
|
msgid "translator_credits"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. The variable is the date when the game was added
|
#. The variable is the date when the game was added
|
||||||
#: src/window.py:194
|
#: src/window.py:192
|
||||||
msgid "Added: {}"
|
msgid "Added: {}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/window.py:197
|
#: src/window.py:195
|
||||||
msgid "Never"
|
msgid "Never"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. The variable is the date when the game was last played
|
#. The variable is the date when the game was last played
|
||||||
#: src/window.py:201
|
#: src/window.py:199
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -431,26 +416,26 @@ msgid "Confirm"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: src/details_window.py:92
|
#: src/details_window.py:91
|
||||||
msgid "file.txt"
|
msgid "file.txt"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. As in software
|
#. As in software
|
||||||
#: src/details_window.py:94
|
#: src/details_window.py:93
|
||||||
msgid "program"
|
msgid "program"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:99 src/details_window.py:101
|
#: src/details_window.py:98 src/details_window.py:100
|
||||||
msgid "C:\\path\\to\\{}"
|
msgid "C:\\path\\to\\{}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:105 src/details_window.py:107
|
#: src/details_window.py:104 src/details_window.py:106
|
||||||
msgid "/path/to/{}"
|
msgid "/path/to/{}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/details_window.py:112
|
#: src/details_window.py:111
|
||||||
msgid ""
|
msgid ""
|
||||||
"To launch the executable \"{}\", use the command:\n"
|
"To launch the executable \"{}\", use the command:\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -463,15 +448,15 @@ msgid ""
|
|||||||
"If the path contains spaces, make sure to wrap it in double quotes!"
|
"If the path contains spaces, make sure to wrap it in double quotes!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:153
|
#: src/details_window.py:146 src/details_window.py:152
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:181
|
#: src/details_window.py:146 src/details_window.py:181
|
||||||
msgid "Game title cannot be empty."
|
msgid "Game title cannot be empty."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/details_window.py:153 src/details_window.py:189
|
#: src/details_window.py:152 src/details_window.py:189
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -480,60 +465,33 @@ msgid "Couldn't Apply Preferences"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:138
|
#: src/game.py:141
|
||||||
msgid "{} launched"
|
msgid "{} launched"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} unhidden"
|
msgid "{} unhidden"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/game.py:169
|
#: src/game.py:171
|
||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/preferences.py:111
|
#: src/preferences.py:102
|
||||||
msgid "All games removed"
|
msgid "All games removed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/preferences.py:159
|
#: src/preferences.py:149
|
||||||
msgid ""
|
msgid ""
|
||||||
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/preferences.py:284
|
#: src/preferences.py:289
|
||||||
msgid "Installation Not Found"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/preferences.py:286
|
|
||||||
msgid "Select a valid directory."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/preferences.py:348
|
|
||||||
msgid "Invalid Directory"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:352
|
|
||||||
msgid "Select the {} cache directory."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:355
|
|
||||||
msgid "Select the {} configuration directory."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:358
|
|
||||||
msgid "Select the {} data directory."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/preferences.py:364
|
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -541,6 +499,27 @@ msgstr ""
|
|||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:106
|
||||||
|
msgid "Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:107
|
||||||
|
msgid "Cache"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:108
|
||||||
|
msgid "Configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. The variables are the type of location (eg. cache) and the source's name (eg. Steam)
|
||||||
|
#: src/importer/sources/source.py:119
|
||||||
|
msgid "Invalid {} Location for {{}}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:120
|
||||||
|
msgid "Pick a new one or disable the source in preferences"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:47
|
#: src/store/managers/sgdb_manager.py:47
|
||||||
msgid "Couldn't Authenticate SteamGridDB"
|
msgid "Couldn't Authenticate SteamGridDB"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
200
po/ru.po
200
po/ru.po
@@ -7,8 +7,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: cartridges\n"
|
"Project-Id-Version: cartridges\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-07-05 14:36+0200\n"
|
"POT-Creation-Date: 2023-06-26 12:01+0200\n"
|
||||||
"PO-Revision-Date: 2023-07-08 14:52+0000\n"
|
"PO-Revision-Date: 2023-06-26 04:40+0000\n"
|
||||||
"Last-Translator: Сергей <asvmail.as@gmail.com>\n"
|
"Last-Translator: Сергей <asvmail.as@gmail.com>\n"
|
||||||
"Language-Team: Russian <https://hosted.weblate.org/projects/cartridges/"
|
"Language-Team: Russian <https://hosted.weblate.org/projects/cartridges/"
|
||||||
"cartridges/ru/>\n"
|
"cartridges/ru/>\n"
|
||||||
@@ -16,13 +16,13 @@ msgstr ""
|
|||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||||
"X-Generator: Weblate 5.0-dev\n"
|
"X-Generator: Weblate 4.18.1\n"
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
||||||
#: src/main.py:162
|
#: src/main.py:146
|
||||||
msgid "Cartridges"
|
msgid "Cartridges"
|
||||||
msgstr "Картриджи"
|
msgstr "Картриджи"
|
||||||
|
|
||||||
@@ -113,7 +113,7 @@ msgstr "Дополнительная информация"
|
|||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Редактировать"
|
msgstr "Редактировать"
|
||||||
|
|
||||||
#: data/gtk/game.blp:107 src/window.py:171
|
#: data/gtk/game.blp:107 src/window.py:169
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr "Скрыть"
|
msgstr "Скрыть"
|
||||||
|
|
||||||
@@ -122,7 +122,7 @@ msgstr "Скрыть"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Удалить"
|
msgstr "Удалить"
|
||||||
|
|
||||||
#: data/gtk/game.blp:126 src/window.py:173
|
#: data/gtk/game.blp:126 src/window.py:171
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr "Показать"
|
msgstr "Показать"
|
||||||
|
|
||||||
@@ -147,7 +147,7 @@ msgstr "Показать параметры"
|
|||||||
msgid "Shortcuts"
|
msgid "Shortcuts"
|
||||||
msgstr "Комбинации клавиш"
|
msgstr "Комбинации клавиш"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112
|
#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Вернуть"
|
msgstr "Вернуть"
|
||||||
|
|
||||||
@@ -175,7 +175,7 @@ msgstr "Показать скрытые игры"
|
|||||||
msgid "Remove game"
|
msgid "Remove game"
|
||||||
msgstr "Удалить игру"
|
msgstr "Удалить игру"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr "Поведение"
|
msgstr "Поведение"
|
||||||
|
|
||||||
@@ -224,89 +224,80 @@ msgid "Steam"
|
|||||||
msgstr "Steam"
|
msgstr "Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
||||||
#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192
|
#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183
|
||||||
#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220
|
#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211
|
||||||
#: data/gtk/preferences.blp:234
|
#, fuzzy
|
||||||
|
#| msgid "itch Install Location"
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
msgstr "Место установки"
|
msgstr "Место установки itch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:106
|
#: data/gtk/preferences.blp:106
|
||||||
msgid "Lutris"
|
msgid "Lutris"
|
||||||
msgstr "Lutris"
|
msgstr "Lutris"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:119
|
#: data/gtk/preferences.blp:119
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Lutris Cache Location"
|
||||||
msgid "Cache Location"
|
msgid "Cache Location"
|
||||||
msgstr "Расположение кэша"
|
msgstr "Расположение кэша Lutris"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:128
|
#: data/gtk/preferences.blp:128
|
||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr "Импорт игр Steam"
|
msgstr "Импорт игр Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137
|
#: data/gtk/preferences.blp:138
|
||||||
msgid "Import Flatpak Games"
|
|
||||||
msgstr "Импорт игр Flatpak"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:147
|
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
msgstr "Heroic"
|
msgstr "Heroic"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:160
|
#: data/gtk/preferences.blp:151
|
||||||
msgid "Import Epic Games"
|
msgid "Import Epic Games"
|
||||||
msgstr "Импорт игр Epic"
|
msgstr "Импорт игр Epic"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:169
|
#: data/gtk/preferences.blp:160
|
||||||
msgid "Import GOG Games"
|
msgid "Import GOG Games"
|
||||||
msgstr "Импорт игр GOG"
|
msgstr "Импорт игр GOG"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:178
|
#: data/gtk/preferences.blp:169
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr "Импорт сторонних игр"
|
msgstr "Импорт сторонних игр"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:188
|
#: data/gtk/preferences.blp:179
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr "Bottles"
|
msgstr "Bottles"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:202
|
#: data/gtk/preferences.blp:193
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr "itch"
|
msgstr "itch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
#: data/gtk/preferences.blp:207
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr "Legendary"
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:230
|
#: data/gtk/preferences.blp:224
|
||||||
msgid "Flatpak"
|
|
||||||
msgstr "Flatpak"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:243
|
|
||||||
msgid "Import Game Launchers"
|
|
||||||
msgstr "Импорт средств запуска игр"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:256
|
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
msgstr "SteamGridDB"
|
msgstr "SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Authentication"
|
msgid "Authentication"
|
||||||
msgstr "Аутентификация"
|
msgstr "Аутентификация"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:263
|
#: data/gtk/preferences.blp:231
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr "API-ключ"
|
msgstr "API-ключ"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:271
|
#: data/gtk/preferences.blp:239
|
||||||
msgid "Use SteamGridDB"
|
msgid "Use SteamGridDB"
|
||||||
msgstr "Использовать SteamGridDB"
|
msgstr "Использовать SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:272
|
#: data/gtk/preferences.blp:240
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr "Загрузка изображений при добавлении или импорте игр"
|
msgstr "Загрузка изображений при добавлении или импорте игр"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:281
|
#: data/gtk/preferences.blp:249
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr "Отдавать предпочтение официальным изображениям"
|
msgstr "Отдавать предпочтение официальным изображениям"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:290
|
#: data/gtk/preferences.blp:258
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr "Отдавать предпочтение анимированным изображениям"
|
msgstr "Отдавать предпочтение анимированным изображениям"
|
||||||
|
|
||||||
@@ -395,23 +386,23 @@ msgid "About Cartridges"
|
|||||||
msgstr "О приложении"
|
msgstr "О приложении"
|
||||||
|
|
||||||
#. Translators: Replace this with your name for it to show up in the about window
|
#. Translators: Replace this with your name for it to show up in the about window
|
||||||
#: src/main.py:180
|
#: src/main.py:164
|
||||||
msgid "translator_credits"
|
msgid "translator_credits"
|
||||||
msgstr "Ser82-png"
|
msgstr "Ser82-png"
|
||||||
|
|
||||||
#. The variable is the date when the game was added
|
#. The variable is the date when the game was added
|
||||||
#: src/window.py:194
|
#: src/window.py:192
|
||||||
msgid "Added: {}"
|
msgid "Added: {}"
|
||||||
msgstr "Добавлено: {}"
|
msgstr "Добавлено: {}"
|
||||||
|
|
||||||
#: src/window.py:197
|
#: src/window.py:195
|
||||||
msgid "Never"
|
msgid "Never"
|
||||||
msgstr "Никогда"
|
msgstr "Никогда"
|
||||||
|
|
||||||
#. The variable is the date when the game was last played
|
#. The variable is the date when the game was last played
|
||||||
#: src/window.py:201
|
#: src/window.py:199
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr "Последний раз запускалась: {}"
|
msgstr "Последняя игра: {}"
|
||||||
|
|
||||||
#: src/details_window.py:72
|
#: src/details_window.py:72
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
@@ -426,26 +417,26 @@ msgid "Confirm"
|
|||||||
msgstr "Подтвердить"
|
msgstr "Подтвердить"
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: src/details_window.py:92
|
#: src/details_window.py:91
|
||||||
msgid "file.txt"
|
msgid "file.txt"
|
||||||
msgstr "file.txt"
|
msgstr "file.txt"
|
||||||
|
|
||||||
#. As in software
|
#. As in software
|
||||||
#: src/details_window.py:94
|
#: src/details_window.py:93
|
||||||
msgid "program"
|
msgid "program"
|
||||||
msgstr "программа"
|
msgstr "программа"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:99 src/details_window.py:101
|
#: src/details_window.py:98 src/details_window.py:100
|
||||||
msgid "C:\\path\\to\\{}"
|
msgid "C:\\path\\to\\{}"
|
||||||
msgstr "C:\\путь\\к\\{}"
|
msgstr "C:\\путь\\к\\{}"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:105 src/details_window.py:107
|
#: src/details_window.py:104 src/details_window.py:106
|
||||||
msgid "/path/to/{}"
|
msgid "/path/to/{}"
|
||||||
msgstr "/путь/к/{}"
|
msgstr "/путь/к/{}"
|
||||||
|
|
||||||
#: src/details_window.py:112
|
#: src/details_window.py:111
|
||||||
msgid ""
|
msgid ""
|
||||||
"To launch the executable \"{}\", use the command:\n"
|
"To launch the executable \"{}\", use the command:\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -467,15 +458,15 @@ msgstr ""
|
|||||||
"\n"
|
"\n"
|
||||||
"Если путь содержит пробелы, обязательно заключите его в двойные кавычки!"
|
"Если путь содержит пробелы, обязательно заключите его в двойные кавычки!"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:153
|
#: src/details_window.py:146 src/details_window.py:152
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
msgstr "Не удалось добавить игру"
|
msgstr "Не удалось добавить игру"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:181
|
#: src/details_window.py:146 src/details_window.py:181
|
||||||
msgid "Game title cannot be empty."
|
msgid "Game title cannot be empty."
|
||||||
msgstr "Название игры не может быть пустым."
|
msgstr "Название игры не может быть пустым."
|
||||||
|
|
||||||
#: src/details_window.py:153 src/details_window.py:189
|
#: src/details_window.py:152 src/details_window.py:189
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr "Исполняемый файл не может быть пустым."
|
msgstr "Исполняемый файл не может быть пустым."
|
||||||
|
|
||||||
@@ -484,62 +475,35 @@ msgid "Couldn't Apply Preferences"
|
|||||||
msgstr "Не удалось применить параметры"
|
msgstr "Не удалось применить параметры"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:138
|
#: src/game.py:141
|
||||||
msgid "{} launched"
|
msgid "{} launched"
|
||||||
msgstr "{} - запущена"
|
msgstr "{} - запущена"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr "{} - скрытая"
|
msgstr "{} - скрытая"
|
||||||
|
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} unhidden"
|
msgid "{} unhidden"
|
||||||
msgstr "{} - не скрыта"
|
msgstr "{} - не скрыта"
|
||||||
|
|
||||||
#: src/game.py:169
|
#: src/game.py:171
|
||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr "{} удалена"
|
msgstr "{} удалена"
|
||||||
|
|
||||||
#: src/preferences.py:111
|
#: src/preferences.py:102
|
||||||
msgid "All games removed"
|
msgid "All games removed"
|
||||||
msgstr "Все игры удалены"
|
msgstr "Все игры удалены"
|
||||||
|
|
||||||
#: src/preferences.py:159
|
#: src/preferences.py:149
|
||||||
msgid ""
|
msgid ""
|
||||||
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Для использования SteamGridDB требуется ключ API. Вы можете сгенерировать "
|
"Для использования SteamGridDB требуется ключ API. Вы можете сгенерировать "
|
||||||
"его {}здесь{}."
|
"его {}здесь{}."
|
||||||
|
|
||||||
#: src/preferences.py:284
|
#: src/preferences.py:289
|
||||||
msgid "Installation Not Found"
|
|
||||||
msgstr "Установка не найдена"
|
|
||||||
|
|
||||||
#: src/preferences.py:286
|
|
||||||
msgid "Select a valid directory."
|
|
||||||
msgstr "Выберите действующий каталог."
|
|
||||||
|
|
||||||
#: src/preferences.py:348
|
|
||||||
msgid "Invalid Directory"
|
|
||||||
msgstr "Неверный каталог"
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:352
|
|
||||||
msgid "Select the {} cache directory."
|
|
||||||
msgstr "Выберите каталог кэша {}."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:355
|
|
||||||
msgid "Select the {} configuration directory."
|
|
||||||
msgstr "Выберите каталог конфигурации {}."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:358
|
|
||||||
msgid "Select the {} data directory."
|
|
||||||
msgstr "Выберите каталог данных {}."
|
|
||||||
|
|
||||||
#: src/preferences.py:364
|
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
msgstr "Установить расположение"
|
msgstr "Установить расположение"
|
||||||
|
|
||||||
@@ -547,30 +511,38 @@ msgstr "Установить расположение"
|
|||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
msgstr "Отклонить"
|
msgstr "Отклонить"
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:106
|
||||||
|
msgid "Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:107
|
||||||
|
msgid "Cache"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:108
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Confirm"
|
||||||
|
msgid "Configuration"
|
||||||
|
msgstr "Подтвердить"
|
||||||
|
|
||||||
|
#. The variables are the type of location (eg. cache) and the source's name (eg. Steam)
|
||||||
|
#: src/importer/sources/source.py:119
|
||||||
|
msgid "Invalid {} Location for {{}}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:120
|
||||||
|
msgid "Pick a new one or disable the source in preferences"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:47
|
#: src/store/managers/sgdb_manager.py:47
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Couldn't Connect to SteamGridDB"
|
||||||
msgid "Couldn't Authenticate SteamGridDB"
|
msgid "Couldn't Authenticate SteamGridDB"
|
||||||
msgstr "Не удалось пройти аутентификацию SteamGridDB"
|
msgstr "Не удалось подключиться к SteamGridDB"
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:48
|
#: src/store/managers/sgdb_manager.py:48
|
||||||
msgid "Verify your API key in preferences"
|
msgid "Verify your API key in preferences"
|
||||||
msgstr "Проверьте ключ API-ключ в параметрах"
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "The Steam directory cannot be found."
|
|
||||||
#~ msgid "Directory not Valid"
|
|
||||||
#~ msgstr "Не удалось найти каталог Steam."
|
|
||||||
|
|
||||||
#~ msgid "Cache"
|
|
||||||
#~ msgstr "Кэш"
|
|
||||||
|
|
||||||
#~ msgid "Configuration"
|
|
||||||
#~ msgstr "Конфигурация"
|
|
||||||
|
|
||||||
#~ msgid "Invalid {} Location for {{}}"
|
|
||||||
#~ msgstr "Неверное расположение {} для {{}}"
|
|
||||||
|
|
||||||
#~ msgid "Pick a new one or disable the source in preferences"
|
|
||||||
#~ msgstr "Выберите новый или отключите имеющийся источник в параметрах"
|
|
||||||
|
|
||||||
#~ msgid "Steam Install Location"
|
#~ msgid "Steam Install Location"
|
||||||
#~ msgstr "Место установки Steam"
|
#~ msgstr "Место установки Steam"
|
||||||
@@ -596,6 +568,15 @@ msgstr "Проверьте ключ API-ключ в параметрах"
|
|||||||
#~ msgid "Select the Lutris cache directory."
|
#~ msgid "Select the Lutris cache directory."
|
||||||
#~ msgstr "Выберите каталог кэша Lutris."
|
#~ msgstr "Выберите каталог кэша Lutris."
|
||||||
|
|
||||||
|
#~ msgid "Installation Not Found"
|
||||||
|
#~ msgstr "Установка не найдена"
|
||||||
|
|
||||||
|
#~ msgid "Select the {} configuration directory."
|
||||||
|
#~ msgstr "Выберите каталог конфигурации {}."
|
||||||
|
|
||||||
|
#~ msgid "Select the {} data directory."
|
||||||
|
#~ msgstr "Выберите каталог данных {}."
|
||||||
|
|
||||||
#~ msgid "Importing Games…"
|
#~ msgid "Importing Games…"
|
||||||
#~ msgstr "Импорт игр…"
|
#~ msgstr "Импорт игр…"
|
||||||
|
|
||||||
@@ -720,5 +701,8 @@ msgstr "Проверьте ключ API-ключ в параметрах"
|
|||||||
#~ msgid "No new games were found in the Steam library."
|
#~ msgid "No new games were found in the Steam library."
|
||||||
#~ msgstr "В библиотеке Steam новых игр не найдено."
|
#~ msgstr "В библиотеке Steam новых игр не найдено."
|
||||||
|
|
||||||
|
#~ msgid "The Steam directory cannot be found."
|
||||||
|
#~ msgstr "Не удалось найти каталог Steam."
|
||||||
|
|
||||||
#~ msgid "Talking to Steam"
|
#~ msgid "Talking to Steam"
|
||||||
#~ msgstr "Общение со Steam"
|
#~ msgstr "Общение со Steam"
|
||||||
|
|||||||
190
po/sv.po
190
po/sv.po
@@ -3,14 +3,13 @@
|
|||||||
# This file is distributed under the same license as the Cartridges package.
|
# This file is distributed under the same license as the Cartridges package.
|
||||||
# micke <mikanybe@gmail.com>, 2023.
|
# micke <mikanybe@gmail.com>, 2023.
|
||||||
# micke <micke@users.noreply.hosted.weblate.org>, 2023.
|
# micke <micke@users.noreply.hosted.weblate.org>, 2023.
|
||||||
# Luna Jernberg <droidbittin@gmail.com>, 2023.
|
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Cartridges\n"
|
"Project-Id-Version: Cartridges\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-07-05 14:36+0200\n"
|
"POT-Creation-Date: 2023-06-26 12:01+0200\n"
|
||||||
"PO-Revision-Date: 2023-07-08 14:52+0000\n"
|
"PO-Revision-Date: 2023-06-02 15:40+0000\n"
|
||||||
"Last-Translator: Luna Jernberg <droidbittin@gmail.com>\n"
|
"Last-Translator: micke <micke@users.noreply.hosted.weblate.org>\n"
|
||||||
"Language-Team: Swedish <https://hosted.weblate.org/projects/cartridges/"
|
"Language-Team: Swedish <https://hosted.weblate.org/projects/cartridges/"
|
||||||
"cartridges/sv/>\n"
|
"cartridges/sv/>\n"
|
||||||
"Language: sv\n"
|
"Language: sv\n"
|
||||||
@@ -18,11 +17,11 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
"X-Generator: Weblate 5.0-dev\n"
|
"X-Generator: Weblate 4.18-dev\n"
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
||||||
#: src/main.py:162
|
#: src/main.py:146
|
||||||
msgid "Cartridges"
|
msgid "Cartridges"
|
||||||
msgstr "Cartridges"
|
msgstr "Cartridges"
|
||||||
|
|
||||||
@@ -112,7 +111,7 @@ msgstr "Mer info"
|
|||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Redigera"
|
msgstr "Redigera"
|
||||||
|
|
||||||
#: data/gtk/game.blp:107 src/window.py:171
|
#: data/gtk/game.blp:107 src/window.py:169
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr "Dölj"
|
msgstr "Dölj"
|
||||||
|
|
||||||
@@ -121,7 +120,7 @@ msgstr "Dölj"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Ta bort"
|
msgstr "Ta bort"
|
||||||
|
|
||||||
#: data/gtk/game.blp:126 src/window.py:173
|
#: data/gtk/game.blp:126 src/window.py:171
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr "Visa"
|
msgstr "Visa"
|
||||||
|
|
||||||
@@ -146,7 +145,7 @@ msgstr "Visa inställningar"
|
|||||||
msgid "Shortcuts"
|
msgid "Shortcuts"
|
||||||
msgstr "Genvägar"
|
msgstr "Genvägar"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112
|
#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Ångra"
|
msgstr "Ångra"
|
||||||
|
|
||||||
@@ -174,7 +173,7 @@ msgstr "Visa dolda spel"
|
|||||||
msgid "Remove game"
|
msgid "Remove game"
|
||||||
msgstr "Ta bort spel"
|
msgstr "Ta bort spel"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr "Beteende"
|
msgstr "Beteende"
|
||||||
|
|
||||||
@@ -224,89 +223,80 @@ msgid "Steam"
|
|||||||
msgstr "Steam"
|
msgstr "Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
||||||
#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192
|
#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183
|
||||||
#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220
|
#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211
|
||||||
#: data/gtk/preferences.blp:234
|
#, fuzzy
|
||||||
|
#| msgid "itch Install Location"
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
msgstr "Plats för installation"
|
msgstr "itch-installationsplats"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:106
|
#: data/gtk/preferences.blp:106
|
||||||
msgid "Lutris"
|
msgid "Lutris"
|
||||||
msgstr "Lutris"
|
msgstr "Lutris"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:119
|
#: data/gtk/preferences.blp:119
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Lutris Cache Location"
|
||||||
msgid "Cache Location"
|
msgid "Cache Location"
|
||||||
msgstr "Plats för cacheminne"
|
msgstr "Plats för Lutris cache"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:128
|
#: data/gtk/preferences.blp:128
|
||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr "Importera Steam-spel"
|
msgstr "Importera Steam-spel"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137
|
#: data/gtk/preferences.blp:138
|
||||||
msgid "Import Flatpak Games"
|
|
||||||
msgstr "Importera Flatpak-spel"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:147
|
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
msgstr "Heroic"
|
msgstr "Heroic"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:160
|
#: data/gtk/preferences.blp:151
|
||||||
msgid "Import Epic Games"
|
msgid "Import Epic Games"
|
||||||
msgstr "Importera Epic Games"
|
msgstr "Importera Epic Games"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:169
|
#: data/gtk/preferences.blp:160
|
||||||
msgid "Import GOG Games"
|
msgid "Import GOG Games"
|
||||||
msgstr "Importera GOG-spel"
|
msgstr "Importera GOG-spel"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:178
|
#: data/gtk/preferences.blp:169
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr "Importera sidoladdade spel"
|
msgstr "Importera sidoladdade spel"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:188
|
#: data/gtk/preferences.blp:179
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr "Bottles"
|
msgstr "Bottles"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:202
|
#: data/gtk/preferences.blp:193
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr "itch"
|
msgstr "itch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
#: data/gtk/preferences.blp:207
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr "Legendary"
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:230
|
#: data/gtk/preferences.blp:224
|
||||||
msgid "Flatpak"
|
|
||||||
msgstr "Flatpak"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:243
|
|
||||||
msgid "Import Game Launchers"
|
|
||||||
msgstr "Importera spelstartare"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:256
|
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
msgstr "SteamGridDB"
|
msgstr "SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Authentication"
|
msgid "Authentication"
|
||||||
msgstr "Autentisering"
|
msgstr "Autentisering"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:263
|
#: data/gtk/preferences.blp:231
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr "API-nyckel"
|
msgstr "API-nyckel"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:271
|
#: data/gtk/preferences.blp:239
|
||||||
msgid "Use SteamGridDB"
|
msgid "Use SteamGridDB"
|
||||||
msgstr "Använd SteamGridDB"
|
msgstr "Använd SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:272
|
#: data/gtk/preferences.blp:240
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr "Ladda ner bilder när spel läggs till eller importeras"
|
msgstr "Ladda ner bilder när spel läggs till eller importeras"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:281
|
#: data/gtk/preferences.blp:249
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr "Föredra framför officiella bilder"
|
msgstr "Föredra framför officiella bilder"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:290
|
#: data/gtk/preferences.blp:258
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr "Föredra animerade bilder"
|
msgstr "Föredra animerade bilder"
|
||||||
|
|
||||||
@@ -395,21 +385,21 @@ msgid "About Cartridges"
|
|||||||
msgstr "Om Cartridges"
|
msgstr "Om Cartridges"
|
||||||
|
|
||||||
#. Translators: Replace this with your name for it to show up in the about window
|
#. Translators: Replace this with your name for it to show up in the about window
|
||||||
#: src/main.py:180
|
#: src/main.py:164
|
||||||
msgid "translator_credits"
|
msgid "translator_credits"
|
||||||
msgstr "Micke"
|
msgstr "Micke"
|
||||||
|
|
||||||
#. The variable is the date when the game was added
|
#. The variable is the date when the game was added
|
||||||
#: src/window.py:194
|
#: src/window.py:192
|
||||||
msgid "Added: {}"
|
msgid "Added: {}"
|
||||||
msgstr "Tillagt: {}"
|
msgstr "Tillagt: {}"
|
||||||
|
|
||||||
#: src/window.py:197
|
#: src/window.py:195
|
||||||
msgid "Never"
|
msgid "Never"
|
||||||
msgstr "Aldrig"
|
msgstr "Aldrig"
|
||||||
|
|
||||||
#. The variable is the date when the game was last played
|
#. The variable is the date when the game was last played
|
||||||
#: src/window.py:201
|
#: src/window.py:199
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr "Senast spelat: {}"
|
msgstr "Senast spelat: {}"
|
||||||
|
|
||||||
@@ -426,26 +416,26 @@ msgid "Confirm"
|
|||||||
msgstr "Bekräfta"
|
msgstr "Bekräfta"
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: src/details_window.py:92
|
#: src/details_window.py:91
|
||||||
msgid "file.txt"
|
msgid "file.txt"
|
||||||
msgstr "fil.txt"
|
msgstr "fil.txt"
|
||||||
|
|
||||||
#. As in software
|
#. As in software
|
||||||
#: src/details_window.py:94
|
#: src/details_window.py:93
|
||||||
msgid "program"
|
msgid "program"
|
||||||
msgstr "program"
|
msgstr "program"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:99 src/details_window.py:101
|
#: src/details_window.py:98 src/details_window.py:100
|
||||||
msgid "C:\\path\\to\\{}"
|
msgid "C:\\path\\to\\{}"
|
||||||
msgstr "C:\\sökväg\\till\\{}"
|
msgstr "C:\\sökväg\\till\\{}"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:105 src/details_window.py:107
|
#: src/details_window.py:104 src/details_window.py:106
|
||||||
msgid "/path/to/{}"
|
msgid "/path/to/{}"
|
||||||
msgstr "/sökväg/till/{}"
|
msgstr "/sökväg/till/{}"
|
||||||
|
|
||||||
#: src/details_window.py:112
|
#: src/details_window.py:111
|
||||||
msgid ""
|
msgid ""
|
||||||
"To launch the executable \"{}\", use the command:\n"
|
"To launch the executable \"{}\", use the command:\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -468,15 +458,15 @@ msgstr ""
|
|||||||
"Om sökvägen innehåller mellanslag, se till att den omsluts av dubbla "
|
"Om sökvägen innehåller mellanslag, se till att den omsluts av dubbla "
|
||||||
"citationstecken!"
|
"citationstecken!"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:153
|
#: src/details_window.py:146 src/details_window.py:152
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
msgstr "Kunde inte lägga till spelet"
|
msgstr "Kunde inte lägga till spelet"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:181
|
#: src/details_window.py:146 src/details_window.py:181
|
||||||
msgid "Game title cannot be empty."
|
msgid "Game title cannot be empty."
|
||||||
msgstr "Spelets titel kan inte vara tom."
|
msgstr "Spelets titel kan inte vara tom."
|
||||||
|
|
||||||
#: src/details_window.py:153 src/details_window.py:189
|
#: src/details_window.py:152 src/details_window.py:189
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr "Den körbara filen kan inte vara tom."
|
msgstr "Den körbara filen kan inte vara tom."
|
||||||
|
|
||||||
@@ -485,61 +475,34 @@ msgid "Couldn't Apply Preferences"
|
|||||||
msgstr "Kunde inte tillämpa inställningar"
|
msgstr "Kunde inte tillämpa inställningar"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:138
|
#: src/game.py:141
|
||||||
msgid "{} launched"
|
msgid "{} launched"
|
||||||
msgstr "{} startat"
|
msgstr "{} startat"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr "{} dolt"
|
msgstr "{} dolt"
|
||||||
|
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} unhidden"
|
msgid "{} unhidden"
|
||||||
msgstr "{} synlig"
|
msgstr "{} synlig"
|
||||||
|
|
||||||
#: src/game.py:169
|
#: src/game.py:171
|
||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr "{} borttaget"
|
msgstr "{} borttaget"
|
||||||
|
|
||||||
#: src/preferences.py:111
|
#: src/preferences.py:102
|
||||||
msgid "All games removed"
|
msgid "All games removed"
|
||||||
msgstr "Alla spel togs bort"
|
msgstr "Alla spel togs bort"
|
||||||
|
|
||||||
#: src/preferences.py:159
|
#: src/preferences.py:149
|
||||||
msgid ""
|
msgid ""
|
||||||
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"En API-nyckel krävs för att använda SteamGridDB. Du kan generera en {}här{}."
|
"En API-nyckel krävs för att använda SteamGridDB. Du kan generera en {}här{}."
|
||||||
|
|
||||||
#: src/preferences.py:284
|
#: src/preferences.py:289
|
||||||
msgid "Installation Not Found"
|
|
||||||
msgstr "Installation hittades inte"
|
|
||||||
|
|
||||||
#: src/preferences.py:286
|
|
||||||
msgid "Select a valid directory."
|
|
||||||
msgstr "Välj en giltig katalog."
|
|
||||||
|
|
||||||
#: src/preferences.py:348
|
|
||||||
msgid "Invalid Directory"
|
|
||||||
msgstr "Ogiltig katalog"
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:352
|
|
||||||
msgid "Select the {} cache directory."
|
|
||||||
msgstr "Välj {} cachekatalog."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:355
|
|
||||||
msgid "Select the {} configuration directory."
|
|
||||||
msgstr "Välj {} konfigurationskatalog."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:358
|
|
||||||
msgid "Select the {} data directory."
|
|
||||||
msgstr "Välj {} datakatalog."
|
|
||||||
|
|
||||||
#: src/preferences.py:364
|
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
msgstr "Ange plats"
|
msgstr "Ange plats"
|
||||||
|
|
||||||
@@ -547,23 +510,38 @@ msgstr "Ange plats"
|
|||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
msgstr "Avvisa"
|
msgstr "Avvisa"
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:106
|
||||||
|
msgid "Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:107
|
||||||
|
msgid "Cache"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:108
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Confirm"
|
||||||
|
msgid "Configuration"
|
||||||
|
msgstr "Bekräfta"
|
||||||
|
|
||||||
|
#. The variables are the type of location (eg. cache) and the source's name (eg. Steam)
|
||||||
|
#: src/importer/sources/source.py:119
|
||||||
|
msgid "Invalid {} Location for {{}}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:120
|
||||||
|
msgid "Pick a new one or disable the source in preferences"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:47
|
#: src/store/managers/sgdb_manager.py:47
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Couldn't Connect to SteamGridDB"
|
||||||
msgid "Couldn't Authenticate SteamGridDB"
|
msgid "Couldn't Authenticate SteamGridDB"
|
||||||
msgstr "Kunde inte autentisera SteamGridDB"
|
msgstr "Kunde inte ansluta till SteamGridDB"
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:48
|
#: src/store/managers/sgdb_manager.py:48
|
||||||
msgid "Verify your API key in preferences"
|
msgid "Verify your API key in preferences"
|
||||||
msgstr "Verifiera din API-nyckel i inställningar"
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "Cache Not Found"
|
|
||||||
#~ msgid "Directory not Valid"
|
|
||||||
#~ msgstr "Cache inte hittad"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "Confirm"
|
|
||||||
#~ msgid "Configuration"
|
|
||||||
#~ msgstr "Bekräfta"
|
|
||||||
|
|
||||||
#~ msgid "Steam Install Location"
|
#~ msgid "Steam Install Location"
|
||||||
#~ msgstr "Steam-installationsplats"
|
#~ msgstr "Steam-installationsplats"
|
||||||
@@ -583,9 +561,21 @@ msgstr "Verifiera din API-nyckel i inställningar"
|
|||||||
#~ msgid "Yesterday"
|
#~ msgid "Yesterday"
|
||||||
#~ msgstr "Igår"
|
#~ msgstr "Igår"
|
||||||
|
|
||||||
|
#~ msgid "Cache Not Found"
|
||||||
|
#~ msgstr "Cache inte hittad"
|
||||||
|
|
||||||
#~ msgid "Select the Lutris cache directory."
|
#~ msgid "Select the Lutris cache directory."
|
||||||
#~ msgstr "Välj Lutris cache-mapp."
|
#~ msgstr "Välj Lutris cache-mapp."
|
||||||
|
|
||||||
|
#~ msgid "Installation Not Found"
|
||||||
|
#~ msgstr "Installationen hittades inte"
|
||||||
|
|
||||||
|
#~ msgid "Select the {} configuration directory."
|
||||||
|
#~ msgstr "Välj konfigurationsmappen {}."
|
||||||
|
|
||||||
|
#~ msgid "Select the {} data directory."
|
||||||
|
#~ msgstr "Välj datamappen {}."
|
||||||
|
|
||||||
#~ msgid "Importing Games…"
|
#~ msgid "Importing Games…"
|
||||||
#~ msgstr "Importerar spel…"
|
#~ msgstr "Importerar spel…"
|
||||||
|
|
||||||
|
|||||||
215
po/ta.po
215
po/ta.po
@@ -8,8 +8,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Cartridges\n"
|
"Project-Id-Version: Cartridges\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-07-05 14:36+0200\n"
|
"POT-Creation-Date: 2023-06-26 12:01+0200\n"
|
||||||
"PO-Revision-Date: 2023-07-09 07:59+0000\n"
|
"PO-Revision-Date: 2023-05-29 18:48+0000\n"
|
||||||
"Last-Translator: \"K.B.Dharun Krishna\" <kbdharunkrishna@gmail.com>\n"
|
"Last-Translator: \"K.B.Dharun Krishna\" <kbdharunkrishna@gmail.com>\n"
|
||||||
"Language-Team: Tamil <https://hosted.weblate.org/projects/cartridges/"
|
"Language-Team: Tamil <https://hosted.weblate.org/projects/cartridges/"
|
||||||
"cartridges/ta/>\n"
|
"cartridges/ta/>\n"
|
||||||
@@ -18,11 +18,11 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
"X-Generator: Weblate 5.0-dev\n"
|
"X-Generator: Weblate 4.18-dev\n"
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
||||||
#: src/main.py:162
|
#: src/main.py:146
|
||||||
msgid "Cartridges"
|
msgid "Cartridges"
|
||||||
msgstr "கார்ட்ரிட்ஜ்கள்"
|
msgstr "கார்ட்ரிட்ஜ்கள்"
|
||||||
|
|
||||||
@@ -46,10 +46,10 @@ msgid ""
|
|||||||
"necessary. You can sort and hide games or download cover art from "
|
"necessary. You can sort and hide games or download cover art from "
|
||||||
"SteamGridDB."
|
"SteamGridDB."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"உங்கள் எல்லா விளையாட்டுகளுக்கும் கேட்ரிட்ஜ்கள் ஒரு எளிய விளையாட்டு துவக்கி "
|
"உங்கள் எல்லா விளையாட்டுகளுக்கும் கேட்ரிட்ஜ்கள் ஒரு எளிய விளையாட்டு துவக்கி ஆகும். ஸ்டீம் "
|
||||||
"ஆகும். Steam, Lutris, Heroic மற்றும் பலவற்றிலிருந்து விளையாட்டுகளை இறக்குமதி "
|
"(Steam), லுட்ரிஸ் (Lutris), வீரம் (Heroic) மற்றும் பலவற்றிலிருந்து விளையாட்டுகளை "
|
||||||
"செய்வதற்கான ஆதரவை இது கொண்டுள்ளது. நீங்கள் விளையாட்டுகளை வரிசைப்படுத்தலாம் "
|
"இறக்குமதி செய்வதற்கான ஆதரவை இது கொண்டுள்ளது. நீங்கள் விளையாட்டுகளை வரிசைப்படுத்தலாம் "
|
||||||
"மற்றும் மறைக்கலாம் அல்லது SteamGridDB இலிருந்து அட்டைப்பட கலையைப் "
|
"மற்றும் மறைக்கலாம் அல்லது ஸ்டீம்கிரிட் டிபி (SteamGridDB) இலிருந்து அட்டைப்பட கலையைப் "
|
||||||
"பதிவிறக்கலாம்."
|
"பதிவிறக்கலாம்."
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:30
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:30
|
||||||
@@ -114,7 +114,7 @@ msgstr "மேலும் தகவல்"
|
|||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "தொகு"
|
msgstr "தொகு"
|
||||||
|
|
||||||
#: data/gtk/game.blp:107 src/window.py:171
|
#: data/gtk/game.blp:107 src/window.py:169
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr "மறை"
|
msgstr "மறை"
|
||||||
|
|
||||||
@@ -123,7 +123,7 @@ msgstr "மறை"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "அகற்று"
|
msgstr "அகற்று"
|
||||||
|
|
||||||
#: data/gtk/game.blp:126 src/window.py:173
|
#: data/gtk/game.blp:126 src/window.py:171
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr "மறை காட்டு"
|
msgstr "மறை காட்டு"
|
||||||
|
|
||||||
@@ -148,7 +148,7 @@ msgstr "விருப்பங்களைக் காட்டு"
|
|||||||
msgid "Shortcuts"
|
msgid "Shortcuts"
|
||||||
msgstr "குறுக்குவழிகள்"
|
msgstr "குறுக்குவழிகள்"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112
|
#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "செயல்தவிர்"
|
msgstr "செயல்தவிர்"
|
||||||
|
|
||||||
@@ -176,7 +176,7 @@ msgstr "மறைக்கப்பட்ட விளையாட்டுக
|
|||||||
msgid "Remove game"
|
msgid "Remove game"
|
||||||
msgstr "விளையாட்டை அகற்று"
|
msgstr "விளையாட்டை அகற்று"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr "நடத்தை"
|
msgstr "நடத்தை"
|
||||||
|
|
||||||
@@ -222,93 +222,84 @@ msgstr "மூலங்கள்"
|
|||||||
|
|
||||||
#: data/gtk/preferences.blp:92
|
#: data/gtk/preferences.blp:92
|
||||||
msgid "Steam"
|
msgid "Steam"
|
||||||
msgstr "Steam"
|
msgstr "Steam (ஸ்டீம்)"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
||||||
#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192
|
#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183
|
||||||
#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220
|
#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211
|
||||||
#: data/gtk/preferences.blp:234
|
#, fuzzy
|
||||||
|
#| msgid "itch Install Location"
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
msgstr "நிறுவல் இடம்"
|
msgstr "அரிப்பு (itch) நிறுவல் இடம்"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:106
|
#: data/gtk/preferences.blp:106
|
||||||
msgid "Lutris"
|
msgid "Lutris"
|
||||||
msgstr "Lutris"
|
msgstr "லூட்ரிஸ்"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:119
|
#: data/gtk/preferences.blp:119
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Lutris Cache Location"
|
||||||
msgid "Cache Location"
|
msgid "Cache Location"
|
||||||
msgstr "தற்காலிக சேமிப்பு இடம்"
|
msgstr "லுட்ரிஸ் தற்காலிக சேமிப்பு இடம்"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:128
|
#: data/gtk/preferences.blp:128
|
||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr "Steam விளையாட்டுகளை இறக்குமதி செய்யவும்"
|
msgstr "ஸ்டீம் (Steam) விளையாட்டுகளை இறக்குமதி செய்யவும்"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137
|
#: data/gtk/preferences.blp:138
|
||||||
msgid "Import Flatpak Games"
|
|
||||||
msgstr "Flatpak கேம்களை இறக்குமதி செய்யவும்"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:147
|
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
msgstr "Heroic"
|
msgstr "Heroic (ஹீரோயிக்)"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:160
|
#: data/gtk/preferences.blp:151
|
||||||
msgid "Import Epic Games"
|
msgid "Import Epic Games"
|
||||||
msgstr "Epic விளையாட்டுகளை இறக்குமதி செய்"
|
msgstr "Epic விளையாட்டுகளை இறக்குமதி செய்"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:169
|
#: data/gtk/preferences.blp:160
|
||||||
msgid "Import GOG Games"
|
msgid "Import GOG Games"
|
||||||
msgstr "GOG விளையாட்டுகளை இறக்குமதி செய்யவும்"
|
msgstr "GOG விளையாட்டுகளை இறக்குமதி செய்யவும்"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:178
|
#: data/gtk/preferences.blp:169
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr "பக்க ஏற்றப்பட்ட விளையாட்டுகளை இறக்குமதி செய்யவும்"
|
msgstr "பக்க ஏற்றப்பட்ட விளையாட்டுகளை இறக்குமதி செய்யவும்"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:188
|
#: data/gtk/preferences.blp:179
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr "பாட்டில்கள்"
|
msgstr "Bottles (பாட்டில்கள்)"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:202
|
#: data/gtk/preferences.blp:193
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr "itch"
|
msgstr "அரிப்பு (itch)"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
#: data/gtk/preferences.blp:207
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr "Legendary"
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:230
|
#: data/gtk/preferences.blp:224
|
||||||
msgid "Flatpak"
|
|
||||||
msgstr "Flatpak"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:243
|
|
||||||
msgid "Import Game Launchers"
|
|
||||||
msgstr "விளையாட்டு துவக்கிகளை இறக்குமதி செய்"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:256
|
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
msgstr "SteamGridDB"
|
msgstr "ஸ்டீம்கிரிட் டிபி (SteamGridDB)"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Authentication"
|
msgid "Authentication"
|
||||||
msgstr "அங்கீகாரம்"
|
msgstr "அங்கீகாரம்"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:263
|
#: data/gtk/preferences.blp:231
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr "API விசை"
|
msgstr "API விசை"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:271
|
#: data/gtk/preferences.blp:239
|
||||||
msgid "Use SteamGridDB"
|
msgid "Use SteamGridDB"
|
||||||
msgstr "SteamGridDB ஐப் பயன்படுத்தவும்"
|
msgstr "ஸ்டீம்கிரிட் டிபி (SteamGridDB) ஐப் பயன்படுத்தவும்"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:272
|
#: data/gtk/preferences.blp:240
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"விளையாட்டுகளைச் சேர்க்கும் போது அல்லது இறக்குமதி செய்யும் போது படங்களைப் பதிவிறக்கவும்"
|
"விளையாட்டுகளைச் சேர்க்கும் போது அல்லது இறக்குமதி செய்யும் போது படங்களைப் பதிவிறக்கவும்"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:281
|
#: data/gtk/preferences.blp:249
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr "அதிகாரப்பூர்வ படங்களை விட முன்னுரிமை"
|
msgstr "அதிகாரப்பூர்வ படங்களை விட முன்னுரிமை"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:290
|
#: data/gtk/preferences.blp:258
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr "இயங்குபடம் செய்யப்பட்ட படங்களுக்கு முன்னுரிமை கொடுங்கள்"
|
msgstr "இயங்குபடம் செய்யப்பட்ட படங்களுக்கு முன்னுரிமை கொடுங்கள்"
|
||||||
|
|
||||||
@@ -397,21 +388,21 @@ msgid "About Cartridges"
|
|||||||
msgstr "கார்ட்ரிட்ஜ்கள் பற்றி"
|
msgstr "கார்ட்ரிட்ஜ்கள் பற்றி"
|
||||||
|
|
||||||
#. Translators: Replace this with your name for it to show up in the about window
|
#. Translators: Replace this with your name for it to show up in the about window
|
||||||
#: src/main.py:180
|
#: src/main.py:164
|
||||||
msgid "translator_credits"
|
msgid "translator_credits"
|
||||||
msgstr "K.B.Dharun Krishna <kbdharunkrishna@gmail.com>"
|
msgstr "K.B.Dharun Krishna <kbdharunkrishna@gmail.com>"
|
||||||
|
|
||||||
#. The variable is the date when the game was added
|
#. The variable is the date when the game was added
|
||||||
#: src/window.py:194
|
#: src/window.py:192
|
||||||
msgid "Added: {}"
|
msgid "Added: {}"
|
||||||
msgstr "சேர்க்கப்பட்டது: {}"
|
msgstr "சேர்க்கப்பட்டது: {}"
|
||||||
|
|
||||||
#: src/window.py:197
|
#: src/window.py:195
|
||||||
msgid "Never"
|
msgid "Never"
|
||||||
msgstr "ஒருபோதும் இல்லை"
|
msgstr "ஒருபோதும் இல்லை"
|
||||||
|
|
||||||
#. The variable is the date when the game was last played
|
#. The variable is the date when the game was last played
|
||||||
#: src/window.py:201
|
#: src/window.py:199
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr "கடைசியாக விளையாடியது: {}"
|
msgstr "கடைசியாக விளையாடியது: {}"
|
||||||
|
|
||||||
@@ -428,26 +419,26 @@ msgid "Confirm"
|
|||||||
msgstr "உறுதிப்படுத்தவும்"
|
msgstr "உறுதிப்படுத்தவும்"
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: src/details_window.py:92
|
#: src/details_window.py:91
|
||||||
msgid "file.txt"
|
msgid "file.txt"
|
||||||
msgstr "கோப்பு.txt"
|
msgstr "கோப்பு.txt"
|
||||||
|
|
||||||
#. As in software
|
#. As in software
|
||||||
#: src/details_window.py:94
|
#: src/details_window.py:93
|
||||||
msgid "program"
|
msgid "program"
|
||||||
msgstr "பயன்பாடு"
|
msgstr "பயன்பாடு"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:99 src/details_window.py:101
|
#: src/details_window.py:98 src/details_window.py:100
|
||||||
msgid "C:\\path\\to\\{}"
|
msgid "C:\\path\\to\\{}"
|
||||||
msgstr "C:\\பாதை\\டு \\{}"
|
msgstr "C:\\பாதை\\டு \\{}"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:105 src/details_window.py:107
|
#: src/details_window.py:104 src/details_window.py:106
|
||||||
msgid "/path/to/{}"
|
msgid "/path/to/{}"
|
||||||
msgstr "/பாதை/டு/ {}"
|
msgstr "/பாதை/டு/ {}"
|
||||||
|
|
||||||
#: src/details_window.py:112
|
#: src/details_window.py:111
|
||||||
msgid ""
|
msgid ""
|
||||||
"To launch the executable \"{}\", use the command:\n"
|
"To launch the executable \"{}\", use the command:\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -469,79 +460,52 @@ msgstr ""
|
|||||||
"\n"
|
"\n"
|
||||||
"பாதையில் இடைவெளிகள் இருந்தால், அதை இரட்டை மேற்கோள்களில் போர்த்துவதை உறுதிசெய்யவும்!"
|
"பாதையில் இடைவெளிகள் இருந்தால், அதை இரட்டை மேற்கோள்களில் போர்த்துவதை உறுதிசெய்யவும்!"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:153
|
#: src/details_window.py:146 src/details_window.py:152
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
msgstr "விளையாட்டைச் சேர்க்க முடியவில்லை"
|
msgstr "விளையாட்டைச் சேர்க்க முடியவில்லை"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:181
|
#: src/details_window.py:146 src/details_window.py:181
|
||||||
msgid "Game title cannot be empty."
|
msgid "Game title cannot be empty."
|
||||||
msgstr "விளையாட்டு தலைப்பு காலியாக இருக்கக்கூடாது."
|
msgstr "விளையாட்டு தலைப்பு காலியாக இருக்கக்கூடாது."
|
||||||
|
|
||||||
#: src/details_window.py:153 src/details_window.py:189
|
#: src/details_window.py:152 src/details_window.py:189
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr "இயங்கக்கூடியது காலியாக இருக்க முடியாது."
|
msgstr "இயங்கக்கூடியது காலியாக இருக்க முடியாது."
|
||||||
|
|
||||||
#: src/details_window.py:180 src/details_window.py:188
|
#: src/details_window.py:180 src/details_window.py:188
|
||||||
msgid "Couldn't Apply Preferences"
|
msgid "Couldn't Apply Preferences"
|
||||||
msgstr "விருப்பங்களைப் பயன்படுத்த முடியவில்லை"
|
msgstr "விருப்பத்தேர்வுகளைப் பயன்படுத்த முடியவில்லை"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:138
|
#: src/game.py:141
|
||||||
msgid "{} launched"
|
msgid "{} launched"
|
||||||
msgstr "{} தொடங்கப்பட்டது"
|
msgstr "{} தொடங்கப்பட்டது"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr "{} மறைக்கப்பட்டுள்ளது"
|
msgstr "{} மறைக்கப்பட்டுள்ளது"
|
||||||
|
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} unhidden"
|
msgid "{} unhidden"
|
||||||
msgstr "{} மறைக்கப்படாதது"
|
msgstr "{} மறைக்கப்படாதது"
|
||||||
|
|
||||||
#: src/game.py:169
|
#: src/game.py:171
|
||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr "{} அகற்றப்பட்டது"
|
msgstr "{} அகற்றப்பட்டது"
|
||||||
|
|
||||||
#: src/preferences.py:111
|
#: src/preferences.py:102
|
||||||
msgid "All games removed"
|
msgid "All games removed"
|
||||||
msgstr "அனைத்து விளையாட்டுகளும் அகற்றப்பட்டன"
|
msgstr "அனைத்து விளையாட்டுகளும் அகற்றப்பட்டன"
|
||||||
|
|
||||||
#: src/preferences.py:159
|
#: src/preferences.py:149
|
||||||
msgid ""
|
msgid ""
|
||||||
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"SteamGridDB ஐப் பயன்படுத்த API விசை தேவை. நீங்கள் ஒன்றை {}இங்கே{} "
|
"ஸ்டீம்கிரிட் டிபி (SteamGridDB) ஐப் பயன்படுத்த API விசை தேவை. நீங்கள் ஒன்றை {}இங்கே{} "
|
||||||
"உருவாக்கலாம்."
|
"உருவாக்கலாம்."
|
||||||
|
|
||||||
#: src/preferences.py:284
|
#: src/preferences.py:289
|
||||||
msgid "Installation Not Found"
|
|
||||||
msgstr "நிறுவல் கிடைக்கவில்லை"
|
|
||||||
|
|
||||||
#: src/preferences.py:286
|
|
||||||
msgid "Select a valid directory."
|
|
||||||
msgstr "சரியான கோப்பகத்தைத் தேர்ந்தெடுக்கவும்."
|
|
||||||
|
|
||||||
#: src/preferences.py:348
|
|
||||||
msgid "Invalid Directory"
|
|
||||||
msgstr "தவறான கோப்பகம்"
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:352
|
|
||||||
msgid "Select the {} cache directory."
|
|
||||||
msgstr "{} கேச் கோப்பகத்தைத் தேர்ந்தெடுக்கவும்."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:355
|
|
||||||
msgid "Select the {} configuration directory."
|
|
||||||
msgstr "{} கட்டமைப்பு கோப்பகத்தைத் தேர்ந்தெடுக்கவும்."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:358
|
|
||||||
msgid "Select the {} data directory."
|
|
||||||
msgstr "{} தரவு கோப்பகத்தைத் தேர்ந்தெடுக்கவும்."
|
|
||||||
|
|
||||||
#: src/preferences.py:364
|
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
msgstr "இருப்பிடத்தை அமைக்கவும்"
|
msgstr "இருப்பிடத்தை அமைக்கவும்"
|
||||||
|
|
||||||
@@ -549,23 +513,38 @@ msgstr "இருப்பிடத்தை அமைக்கவும்"
|
|||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
msgstr "நிராகரி"
|
msgstr "நிராகரி"
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:106
|
||||||
|
msgid "Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:107
|
||||||
|
msgid "Cache"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:108
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Confirm"
|
||||||
|
msgid "Configuration"
|
||||||
|
msgstr "உறுதிப்படுத்தவும்"
|
||||||
|
|
||||||
|
#. The variables are the type of location (eg. cache) and the source's name (eg. Steam)
|
||||||
|
#: src/importer/sources/source.py:119
|
||||||
|
msgid "Invalid {} Location for {{}}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:120
|
||||||
|
msgid "Pick a new one or disable the source in preferences"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:47
|
#: src/store/managers/sgdb_manager.py:47
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Couldn't Connect to SteamGridDB"
|
||||||
msgid "Couldn't Authenticate SteamGridDB"
|
msgid "Couldn't Authenticate SteamGridDB"
|
||||||
msgstr "SteamGridDB ஐ அங்கீகரிக்க முடியவில்லை"
|
msgstr "ஸ்டீம்கிரிட் டிபி (SteamGridDB) உடன் இணைக்க முடியவில்லை"
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:48
|
#: src/store/managers/sgdb_manager.py:48
|
||||||
msgid "Verify your API key in preferences"
|
msgid "Verify your API key in preferences"
|
||||||
msgstr "உங்கள் API விசையை விருப்பங்களில் சரிபார்க்கவும்"
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "The Steam directory cannot be found."
|
|
||||||
#~ msgid "Directory not Valid"
|
|
||||||
#~ msgstr "Steam (ஸ்டீம்) கோப்பகத்தைக் கண்டறிய முடியவில்லை."
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "Confirm"
|
|
||||||
#~ msgid "Configuration"
|
|
||||||
#~ msgstr "உறுதிப்படுத்தவும்"
|
|
||||||
|
|
||||||
#~ msgid "Steam Install Location"
|
#~ msgid "Steam Install Location"
|
||||||
#~ msgstr "Steam (ஸ்டீம்) நிறுவல் இடம்"
|
#~ msgstr "Steam (ஸ்டீம்) நிறுவல் இடம்"
|
||||||
@@ -591,6 +570,15 @@ msgstr "உங்கள் API விசையை விருப்பங்க
|
|||||||
#~ msgid "Select the Lutris cache directory."
|
#~ msgid "Select the Lutris cache directory."
|
||||||
#~ msgstr "லூட்ரிஸ் தற்காலிக சேமிப்பு கோப்பகத்தைத் தேர்ந்தெடுக்கவும்."
|
#~ msgstr "லூட்ரிஸ் தற்காலிக சேமிப்பு கோப்பகத்தைத் தேர்ந்தெடுக்கவும்."
|
||||||
|
|
||||||
|
#~ msgid "Installation Not Found"
|
||||||
|
#~ msgstr "நிறுவல் கிடைக்கவில்லை"
|
||||||
|
|
||||||
|
#~ msgid "Select the {} configuration directory."
|
||||||
|
#~ msgstr "{} உள்ளமைவு கோப்பகத்தைத் தேர்ந்தெடுக்கவும்."
|
||||||
|
|
||||||
|
#~ msgid "Select the {} data directory."
|
||||||
|
#~ msgstr "{} தரவு கோப்பகத்தைத் தேர்ந்தெடுக்கவும்."
|
||||||
|
|
||||||
#~ msgid "Importing Games…"
|
#~ msgid "Importing Games…"
|
||||||
#~ msgstr "விளையாட்டுகளை இறக்குமதி செய்கிறது…"
|
#~ msgstr "விளையாட்டுகளை இறக்குமதி செய்கிறது…"
|
||||||
|
|
||||||
@@ -716,6 +704,9 @@ msgstr "உங்கள் API விசையை விருப்பங்க
|
|||||||
#~ msgid "No new games were found in the Steam library."
|
#~ msgid "No new games were found in the Steam library."
|
||||||
#~ msgstr "Steam (ஸ்டீம்) நூலகத்தில் புதிய விளையாட்டுகள் எதுவும் இல்லை."
|
#~ msgstr "Steam (ஸ்டீம்) நூலகத்தில் புதிய விளையாட்டுகள் எதுவும் இல்லை."
|
||||||
|
|
||||||
|
#~ msgid "The Steam directory cannot be found."
|
||||||
|
#~ msgstr "Steam (ஸ்டீம்) கோப்பகத்தைக் கண்டறிய முடியவில்லை."
|
||||||
|
|
||||||
#~ msgid "Talking to Steam"
|
#~ msgid "Talking to Steam"
|
||||||
#~ msgstr "ஸ்டிமுடன் (Steam) பேசுகிறேன்"
|
#~ msgstr "ஸ்டிமுடன் (Steam) பேசுகிறேன்"
|
||||||
|
|
||||||
|
|||||||
187
po/tr.po
187
po/tr.po
@@ -6,8 +6,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Cartridges\n"
|
"Project-Id-Version: Cartridges\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-07-05 14:36+0200\n"
|
"POT-Creation-Date: 2023-06-26 12:01+0200\n"
|
||||||
"PO-Revision-Date: 2023-07-15 22:51+0000\n"
|
"PO-Revision-Date: 2023-05-26 18:10+0000\n"
|
||||||
"Last-Translator: Sabri Ünal <libreajans@gmail.com>\n"
|
"Last-Translator: Sabri Ünal <libreajans@gmail.com>\n"
|
||||||
"Language-Team: Turkish <https://hosted.weblate.org/projects/cartridges/"
|
"Language-Team: Turkish <https://hosted.weblate.org/projects/cartridges/"
|
||||||
"cartridges/tr/>\n"
|
"cartridges/tr/>\n"
|
||||||
@@ -16,11 +16,11 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
"X-Generator: Weblate 5.0-dev\n"
|
"X-Generator: Weblate 4.18-dev\n"
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
||||||
#: src/main.py:162
|
#: src/main.py:146
|
||||||
msgid "Cartridges"
|
msgid "Cartridges"
|
||||||
msgstr "Kartuşlar"
|
msgstr "Kartuşlar"
|
||||||
|
|
||||||
@@ -111,7 +111,7 @@ msgstr "Daha Fazla Bilgi"
|
|||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Düzenle"
|
msgstr "Düzenle"
|
||||||
|
|
||||||
#: data/gtk/game.blp:107 src/window.py:171
|
#: data/gtk/game.blp:107 src/window.py:169
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr "Gizle"
|
msgstr "Gizle"
|
||||||
|
|
||||||
@@ -120,7 +120,7 @@ msgstr "Gizle"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Kaldır"
|
msgstr "Kaldır"
|
||||||
|
|
||||||
#: data/gtk/game.blp:126 src/window.py:173
|
#: data/gtk/game.blp:126 src/window.py:171
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr "Göster"
|
msgstr "Göster"
|
||||||
|
|
||||||
@@ -145,7 +145,7 @@ msgstr "Tercihleri göster"
|
|||||||
msgid "Shortcuts"
|
msgid "Shortcuts"
|
||||||
msgstr "Kısayollar"
|
msgstr "Kısayollar"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112
|
#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Geri Al"
|
msgstr "Geri Al"
|
||||||
|
|
||||||
@@ -173,7 +173,7 @@ msgstr "Gizli oyunları göster"
|
|||||||
msgid "Remove game"
|
msgid "Remove game"
|
||||||
msgstr "Oyunu kaldır"
|
msgstr "Oyunu kaldır"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr "Davranış"
|
msgstr "Davranış"
|
||||||
|
|
||||||
@@ -224,89 +224,80 @@ msgid "Steam"
|
|||||||
msgstr "Steam"
|
msgstr "Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
||||||
#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192
|
#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183
|
||||||
#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220
|
#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211
|
||||||
#: data/gtk/preferences.blp:234
|
#, fuzzy
|
||||||
|
#| msgid "itch Install Location"
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
msgstr "Kurulu Konumu"
|
msgstr "itch Kurulu Konumu"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:106
|
#: data/gtk/preferences.blp:106
|
||||||
msgid "Lutris"
|
msgid "Lutris"
|
||||||
msgstr "Lutris"
|
msgstr "Lutris"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:119
|
#: data/gtk/preferences.blp:119
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Lutris Cache Location"
|
||||||
msgid "Cache Location"
|
msgid "Cache Location"
|
||||||
msgstr "Önbellek Konumu"
|
msgstr "Lutris Önbellek Konumu"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:128
|
#: data/gtk/preferences.blp:128
|
||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr "Steam Oyunlarını İçe Aktar"
|
msgstr "Steam Oyunlarını İçe Aktar"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137
|
#: data/gtk/preferences.blp:138
|
||||||
msgid "Import Flatpak Games"
|
|
||||||
msgstr "Flatpak Oyunlarını İçe Aktarın"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:147
|
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
msgstr "Heroic"
|
msgstr "Heroic"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:160
|
#: data/gtk/preferences.blp:151
|
||||||
msgid "Import Epic Games"
|
msgid "Import Epic Games"
|
||||||
msgstr "Epic Oyunlarını İçe Aktar"
|
msgstr "Epic Oyunlarını İçe Aktar"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:169
|
#: data/gtk/preferences.blp:160
|
||||||
msgid "Import GOG Games"
|
msgid "Import GOG Games"
|
||||||
msgstr "GOG Oyunlarını İçe Aktar"
|
msgstr "GOG Oyunlarını İçe Aktar"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:178
|
#: data/gtk/preferences.blp:169
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr "Yandan Yüklenmiş Oyunları İçe Aktar"
|
msgstr "Yandan Yüklenmiş Oyunları İçe Aktar"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:188
|
#: data/gtk/preferences.blp:179
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr "Şişeler"
|
msgstr "Şişeler"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:202
|
#: data/gtk/preferences.blp:193
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr "itch"
|
msgstr "itch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
#: data/gtk/preferences.blp:207
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr "Efsanevi"
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:230
|
#: data/gtk/preferences.blp:224
|
||||||
msgid "Flatpak"
|
|
||||||
msgstr "Flatpak"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:243
|
|
||||||
msgid "Import Game Launchers"
|
|
||||||
msgstr "Oyun Başlatıcıları İçe Aktar"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:256
|
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
msgstr "SteamGridDB"
|
msgstr "SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Authentication"
|
msgid "Authentication"
|
||||||
msgstr "Kimlik Doğrulaması"
|
msgstr "Kimlik Doğrulaması"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:263
|
#: data/gtk/preferences.blp:231
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr "API anahtarı"
|
msgstr "API anahtarı"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:271
|
#: data/gtk/preferences.blp:239
|
||||||
msgid "Use SteamGridDB"
|
msgid "Use SteamGridDB"
|
||||||
msgstr "SteamGridDB Kullan"
|
msgstr "SteamGridDB Kullan"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:272
|
#: data/gtk/preferences.blp:240
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr "Oyun eklerken veya içe aktarırken görüntüleri indir"
|
msgstr "Oyun eklerken veya içe aktarırken görüntüleri indir"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:281
|
#: data/gtk/preferences.blp:249
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr "Resmî Görsellere Yeğle"
|
msgstr "Resmî Görsellere Yeğle"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:290
|
#: data/gtk/preferences.blp:258
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr "Hareketli Görselleri Yeğle"
|
msgstr "Hareketli Görselleri Yeğle"
|
||||||
|
|
||||||
@@ -395,21 +386,21 @@ msgid "About Cartridges"
|
|||||||
msgstr "Kartuşlar Hakkında"
|
msgstr "Kartuşlar Hakkında"
|
||||||
|
|
||||||
#. Translators: Replace this with your name for it to show up in the about window
|
#. Translators: Replace this with your name for it to show up in the about window
|
||||||
#: src/main.py:180
|
#: src/main.py:164
|
||||||
msgid "translator_credits"
|
msgid "translator_credits"
|
||||||
msgstr "Sabri Ünal <libreajans@gmail.com>"
|
msgstr "Sabri Ünal <libreajans@gmail.com>"
|
||||||
|
|
||||||
#. The variable is the date when the game was added
|
#. The variable is the date when the game was added
|
||||||
#: src/window.py:194
|
#: src/window.py:192
|
||||||
msgid "Added: {}"
|
msgid "Added: {}"
|
||||||
msgstr "Eklendi: {}"
|
msgstr "Eklendi: {}"
|
||||||
|
|
||||||
#: src/window.py:197
|
#: src/window.py:195
|
||||||
msgid "Never"
|
msgid "Never"
|
||||||
msgstr "Asla"
|
msgstr "Asla"
|
||||||
|
|
||||||
#. The variable is the date when the game was last played
|
#. The variable is the date when the game was last played
|
||||||
#: src/window.py:201
|
#: src/window.py:199
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr "Son oynanma: {}"
|
msgstr "Son oynanma: {}"
|
||||||
|
|
||||||
@@ -426,26 +417,26 @@ msgid "Confirm"
|
|||||||
msgstr "Doğrula"
|
msgstr "Doğrula"
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: src/details_window.py:92
|
#: src/details_window.py:91
|
||||||
msgid "file.txt"
|
msgid "file.txt"
|
||||||
msgstr "dosya.txt"
|
msgstr "dosya.txt"
|
||||||
|
|
||||||
#. As in software
|
#. As in software
|
||||||
#: src/details_window.py:94
|
#: src/details_window.py:93
|
||||||
msgid "program"
|
msgid "program"
|
||||||
msgstr "program"
|
msgstr "program"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:99 src/details_window.py:101
|
#: src/details_window.py:98 src/details_window.py:100
|
||||||
msgid "C:\\path\\to\\{}"
|
msgid "C:\\path\\to\\{}"
|
||||||
msgstr "C:\\yol\\klasör\\{}"
|
msgstr "C:\\yol\\klasör\\{}"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:105 src/details_window.py:107
|
#: src/details_window.py:104 src/details_window.py:106
|
||||||
msgid "/path/to/{}"
|
msgid "/path/to/{}"
|
||||||
msgstr "/yol/klasör/{}"
|
msgstr "/yol/klasör/{}"
|
||||||
|
|
||||||
#: src/details_window.py:112
|
#: src/details_window.py:111
|
||||||
msgid ""
|
msgid ""
|
||||||
"To launch the executable \"{}\", use the command:\n"
|
"To launch the executable \"{}\", use the command:\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -467,15 +458,15 @@ msgstr ""
|
|||||||
"\n"
|
"\n"
|
||||||
"Yol boşluk içeriyorsa, çift tırnak içine aldığınızdan emin olun!"
|
"Yol boşluk içeriyorsa, çift tırnak içine aldığınızdan emin olun!"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:153
|
#: src/details_window.py:146 src/details_window.py:152
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
msgstr "Oyun Eklenemedi"
|
msgstr "Oyun Eklenemedi"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:181
|
#: src/details_window.py:146 src/details_window.py:181
|
||||||
msgid "Game title cannot be empty."
|
msgid "Game title cannot be empty."
|
||||||
msgstr "Oyun başlığı boş olamaz."
|
msgstr "Oyun başlığı boş olamaz."
|
||||||
|
|
||||||
#: src/details_window.py:153 src/details_window.py:189
|
#: src/details_window.py:152 src/details_window.py:189
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr "Çalıştırılabilir boş olamaz."
|
msgstr "Çalıştırılabilir boş olamaz."
|
||||||
|
|
||||||
@@ -484,62 +475,35 @@ msgid "Couldn't Apply Preferences"
|
|||||||
msgstr "Tercihler Uygulanamadı"
|
msgstr "Tercihler Uygulanamadı"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:138
|
#: src/game.py:141
|
||||||
msgid "{} launched"
|
msgid "{} launched"
|
||||||
msgstr "{} başlatıldı"
|
msgstr "{} başlatıldı"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr "{} gizli"
|
msgstr "{} gizli"
|
||||||
|
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} unhidden"
|
msgid "{} unhidden"
|
||||||
msgstr "{} görünür"
|
msgstr "{} görünür"
|
||||||
|
|
||||||
#: src/game.py:169
|
#: src/game.py:171
|
||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr "{} kaldırıldı"
|
msgstr "{} kaldırıldı"
|
||||||
|
|
||||||
#: src/preferences.py:111
|
#: src/preferences.py:102
|
||||||
msgid "All games removed"
|
msgid "All games removed"
|
||||||
msgstr "Tüm oyunlar kaldırıldı"
|
msgstr "Tüm oyunlar kaldırıldı"
|
||||||
|
|
||||||
#: src/preferences.py:159
|
#: src/preferences.py:149
|
||||||
msgid ""
|
msgid ""
|
||||||
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"SteamGridDBʼyi kullanmak için API anahtarı gereklidir. {}Buradan{} bir tane "
|
"SteamGridDBʼyi kullanmak için API anahtarı gereklidir. {}Buradan{} bir tane "
|
||||||
"oluşturabilirsiniz."
|
"oluşturabilirsiniz."
|
||||||
|
|
||||||
#: src/preferences.py:284
|
#: src/preferences.py:289
|
||||||
msgid "Installation Not Found"
|
|
||||||
msgstr "Kurulum Bulunamadı"
|
|
||||||
|
|
||||||
#: src/preferences.py:286
|
|
||||||
msgid "Select a valid directory."
|
|
||||||
msgstr "Geçerli bir dizin seçin."
|
|
||||||
|
|
||||||
#: src/preferences.py:348
|
|
||||||
msgid "Invalid Directory"
|
|
||||||
msgstr "Geçersiz Dizin"
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:352
|
|
||||||
msgid "Select the {} cache directory."
|
|
||||||
msgstr "{} önbellek dizinini seç."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:355
|
|
||||||
msgid "Select the {} configuration directory."
|
|
||||||
msgstr "{} yapılandırma dizinini seç."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:358
|
|
||||||
msgid "Select the {} data directory."
|
|
||||||
msgstr "{} veri dizinini seç."
|
|
||||||
|
|
||||||
#: src/preferences.py:364
|
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
msgstr "Konum Ayarla"
|
msgstr "Konum Ayarla"
|
||||||
|
|
||||||
@@ -547,23 +511,38 @@ msgstr "Konum Ayarla"
|
|||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
msgstr "Vazgeç"
|
msgstr "Vazgeç"
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:106
|
||||||
|
msgid "Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:107
|
||||||
|
msgid "Cache"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:108
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Confirm"
|
||||||
|
msgid "Configuration"
|
||||||
|
msgstr "Doğrula"
|
||||||
|
|
||||||
|
#. The variables are the type of location (eg. cache) and the source's name (eg. Steam)
|
||||||
|
#: src/importer/sources/source.py:119
|
||||||
|
msgid "Invalid {} Location for {{}}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:120
|
||||||
|
msgid "Pick a new one or disable the source in preferences"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:47
|
#: src/store/managers/sgdb_manager.py:47
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Couldn't Connect to SteamGridDB"
|
||||||
msgid "Couldn't Authenticate SteamGridDB"
|
msgid "Couldn't Authenticate SteamGridDB"
|
||||||
msgstr "SteamGridDB Kimlik Doğrulaması Yapılamadı"
|
msgstr "SteamGridDBʼye bağlanılamadı"
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:48
|
#: src/store/managers/sgdb_manager.py:48
|
||||||
msgid "Verify your API key in preferences"
|
msgid "Verify your API key in preferences"
|
||||||
msgstr "Tercihlerde API anahtarınızı doğrulayın"
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "Cache Not Found"
|
|
||||||
#~ msgid "Directory not Valid"
|
|
||||||
#~ msgstr "Önbellek Bulunamadı"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "Confirm"
|
|
||||||
#~ msgid "Configuration"
|
|
||||||
#~ msgstr "Doğrula"
|
|
||||||
|
|
||||||
#~ msgid "Steam Install Location"
|
#~ msgid "Steam Install Location"
|
||||||
#~ msgstr "Steam Kurulu Konumu"
|
#~ msgstr "Steam Kurulu Konumu"
|
||||||
@@ -583,9 +562,21 @@ msgstr "Tercihlerde API anahtarınızı doğrulayın"
|
|||||||
#~ msgid "Yesterday"
|
#~ msgid "Yesterday"
|
||||||
#~ msgstr "Dün"
|
#~ msgstr "Dün"
|
||||||
|
|
||||||
|
#~ msgid "Cache Not Found"
|
||||||
|
#~ msgstr "Önbellek Bulunamadı"
|
||||||
|
|
||||||
#~ msgid "Select the Lutris cache directory."
|
#~ msgid "Select the Lutris cache directory."
|
||||||
#~ msgstr "Lutris önbellek dizinini seç."
|
#~ msgstr "Lutris önbellek dizinini seç."
|
||||||
|
|
||||||
|
#~ msgid "Installation Not Found"
|
||||||
|
#~ msgstr "Kurulum Bulunamadı"
|
||||||
|
|
||||||
|
#~ msgid "Select the {} configuration directory."
|
||||||
|
#~ msgstr "{} yapılandırma dizinini seç."
|
||||||
|
|
||||||
|
#~ msgid "Select the {} data directory."
|
||||||
|
#~ msgstr "{} veri dizinini seç."
|
||||||
|
|
||||||
#~ msgid "Importing Games…"
|
#~ msgid "Importing Games…"
|
||||||
#~ msgstr "Oyunlar İçe Aktarılıyor…"
|
#~ msgstr "Oyunlar İçe Aktarılıyor…"
|
||||||
|
|
||||||
|
|||||||
204
po/uk.po
204
po/uk.po
@@ -4,27 +4,26 @@
|
|||||||
# kramo <contact@kramo.hu>, 2023.
|
# kramo <contact@kramo.hu>, 2023.
|
||||||
# Dan <denqwerta@gmail.com>, 2023.
|
# Dan <denqwerta@gmail.com>, 2023.
|
||||||
# Вова Смірнов <vovasmirnon5895@gmail.com>, 2023.
|
# Вова Смірнов <vovasmirnon5895@gmail.com>, 2023.
|
||||||
# Dan <jonweblin2205@protonmail.com>, 2023.
|
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: cartridges\n"
|
"Project-Id-Version: cartridges\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-07-05 14:36+0200\n"
|
"POT-Creation-Date: 2023-06-26 12:01+0200\n"
|
||||||
"PO-Revision-Date: 2023-07-08 14:52+0000\n"
|
"PO-Revision-Date: 2023-06-03 18:51+0000\n"
|
||||||
"Last-Translator: Dan <jonweblin2205@protonmail.com>\n"
|
"Last-Translator: Вова Смірнов <vovasmirnon5895@gmail.com>\n"
|
||||||
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/cartridges/"
|
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/cartridges/"
|
||||||
"cartridges/uk/>\n"
|
"cartridges/uk/>\n"
|
||||||
"Language: uk\n"
|
"Language: uk\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||||
"X-Generator: Weblate 5.0-dev\n"
|
"X-Generator: Weblate 4.18-dev\n"
|
||||||
|
|
||||||
#: data/hu.kramo.Cartridges.desktop.in:3
|
#: data/hu.kramo.Cartridges.desktop.in:3
|
||||||
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
#: data/hu.kramo.Cartridges.metainfo.xml.in:6 data/gtk/window.blp:47
|
||||||
#: src/main.py:162
|
#: src/main.py:146
|
||||||
msgid "Cartridges"
|
msgid "Cartridges"
|
||||||
msgstr "Картриджі"
|
msgstr "Картриджі"
|
||||||
|
|
||||||
@@ -115,7 +114,7 @@ msgstr "Більше інформації"
|
|||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Редагувати"
|
msgstr "Редагувати"
|
||||||
|
|
||||||
#: data/gtk/game.blp:107 src/window.py:171
|
#: data/gtk/game.blp:107 src/window.py:169
|
||||||
msgid "Hide"
|
msgid "Hide"
|
||||||
msgstr "Приховати"
|
msgstr "Приховати"
|
||||||
|
|
||||||
@@ -124,7 +123,7 @@ msgstr "Приховати"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Видалити"
|
msgstr "Видалити"
|
||||||
|
|
||||||
#: data/gtk/game.blp:126 src/window.py:173
|
#: data/gtk/game.blp:126 src/window.py:171
|
||||||
msgid "Unhide"
|
msgid "Unhide"
|
||||||
msgstr "Показати"
|
msgstr "Показати"
|
||||||
|
|
||||||
@@ -149,7 +148,7 @@ msgstr "Показати параметри"
|
|||||||
msgid "Shortcuts"
|
msgid "Shortcuts"
|
||||||
msgstr "Ярлики"
|
msgstr "Ярлики"
|
||||||
|
|
||||||
#: data/gtk/help-overlay.blp:34 src/game.py:102 src/preferences.py:112
|
#: data/gtk/help-overlay.blp:34 src/game.py:105 src/preferences.py:103
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
msgstr "Відмінити"
|
msgstr "Відмінити"
|
||||||
|
|
||||||
@@ -177,7 +176,7 @@ msgstr "Показати приховані ігри"
|
|||||||
msgid "Remove game"
|
msgid "Remove game"
|
||||||
msgstr "Видалити гру"
|
msgstr "Видалити гру"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:268
|
#: data/gtk/preferences.blp:13 data/gtk/preferences.blp:236
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr "Поведінка"
|
msgstr "Поведінка"
|
||||||
|
|
||||||
@@ -226,89 +225,80 @@ msgid "Steam"
|
|||||||
msgstr "Steam"
|
msgstr "Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
#: data/gtk/preferences.blp:96 data/gtk/preferences.blp:110
|
||||||
#: data/gtk/preferences.blp:151 data/gtk/preferences.blp:192
|
#: data/gtk/preferences.blp:142 data/gtk/preferences.blp:183
|
||||||
#: data/gtk/preferences.blp:206 data/gtk/preferences.blp:220
|
#: data/gtk/preferences.blp:197 data/gtk/preferences.blp:211
|
||||||
#: data/gtk/preferences.blp:234
|
#, fuzzy
|
||||||
|
#| msgid "itch Install Location"
|
||||||
msgid "Install Location"
|
msgid "Install Location"
|
||||||
msgstr "Місце встановлення"
|
msgstr "Місце встановлення itch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:106
|
#: data/gtk/preferences.blp:106
|
||||||
msgid "Lutris"
|
msgid "Lutris"
|
||||||
msgstr "Lutris"
|
msgstr "Lutris"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:119
|
#: data/gtk/preferences.blp:119
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Lutris Cache Location"
|
||||||
msgid "Cache Location"
|
msgid "Cache Location"
|
||||||
msgstr "Розташування кешу"
|
msgstr "Розташування сховища Lutris"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:128
|
#: data/gtk/preferences.blp:128
|
||||||
msgid "Import Steam Games"
|
msgid "Import Steam Games"
|
||||||
msgstr "Імпорт ігор Steam"
|
msgstr "Імпорт ігор Steam"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:137
|
#: data/gtk/preferences.blp:138
|
||||||
msgid "Import Flatpak Games"
|
|
||||||
msgstr "Імпортувати ігри Flatpak"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:147
|
|
||||||
msgid "Heroic"
|
msgid "Heroic"
|
||||||
msgstr "Heroic"
|
msgstr "Heroic"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:160
|
#: data/gtk/preferences.blp:151
|
||||||
msgid "Import Epic Games"
|
msgid "Import Epic Games"
|
||||||
msgstr "Імпорт Epic Games"
|
msgstr "Імпорт Epic Games"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:169
|
#: data/gtk/preferences.blp:160
|
||||||
msgid "Import GOG Games"
|
msgid "Import GOG Games"
|
||||||
msgstr "Імпорт ігор GOG"
|
msgstr "Імпорт ігор GOG"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:178
|
#: data/gtk/preferences.blp:169
|
||||||
msgid "Import Sideloaded Games"
|
msgid "Import Sideloaded Games"
|
||||||
msgstr "Імпорт сторонніх ігор"
|
msgstr "Імпорт сторонніх ігор"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:188
|
#: data/gtk/preferences.blp:179
|
||||||
msgid "Bottles"
|
msgid "Bottles"
|
||||||
msgstr "Bottles"
|
msgstr "Bottles"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:202
|
#: data/gtk/preferences.blp:193
|
||||||
msgid "itch"
|
msgid "itch"
|
||||||
msgstr "itch"
|
msgstr "itch"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:216
|
#: data/gtk/preferences.blp:207
|
||||||
msgid "Legendary"
|
msgid "Legendary"
|
||||||
msgstr "Легендарний"
|
msgstr ""
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:230
|
#: data/gtk/preferences.blp:224
|
||||||
msgid "Flatpak"
|
|
||||||
msgstr "Flatpak"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:243
|
|
||||||
msgid "Import Game Launchers"
|
|
||||||
msgstr "Імпортувати ігрові лаунчери"
|
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:256
|
|
||||||
msgid "SteamGridDB"
|
msgid "SteamGridDB"
|
||||||
msgstr "SteamGridDB"
|
msgstr "SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:260
|
#: data/gtk/preferences.blp:228
|
||||||
msgid "Authentication"
|
msgid "Authentication"
|
||||||
msgstr "Аутентифікація"
|
msgstr "Аутентифікація"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:263
|
#: data/gtk/preferences.blp:231
|
||||||
msgid "API Key"
|
msgid "API Key"
|
||||||
msgstr "Ключ API"
|
msgstr "Ключ API"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:271
|
#: data/gtk/preferences.blp:239
|
||||||
msgid "Use SteamGridDB"
|
msgid "Use SteamGridDB"
|
||||||
msgstr "Використовувати SteamGridDB"
|
msgstr "Використовувати SteamGridDB"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:272
|
#: data/gtk/preferences.blp:240
|
||||||
msgid "Download images when adding or importing games"
|
msgid "Download images when adding or importing games"
|
||||||
msgstr "Завантаження зображень під час додавання або імпорту ігор"
|
msgstr "Завантаження зображень під час додавання або імпорту ігор"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:281
|
#: data/gtk/preferences.blp:249
|
||||||
msgid "Prefer Over Official Images"
|
msgid "Prefer Over Official Images"
|
||||||
msgstr "Надавати перевагу офіційним зображенням"
|
msgstr "Надавати перевагу офіційним зображенням"
|
||||||
|
|
||||||
#: data/gtk/preferences.blp:290
|
#: data/gtk/preferences.blp:258
|
||||||
msgid "Prefer Animated Images"
|
msgid "Prefer Animated Images"
|
||||||
msgstr "Надавати перевагу анімованим зображенням"
|
msgstr "Надавати перевагу анімованим зображенням"
|
||||||
|
|
||||||
@@ -397,21 +387,21 @@ msgid "About Cartridges"
|
|||||||
msgstr "Про Картриджі"
|
msgstr "Про Картриджі"
|
||||||
|
|
||||||
#. Translators: Replace this with your name for it to show up in the about window
|
#. Translators: Replace this with your name for it to show up in the about window
|
||||||
#: src/main.py:180
|
#: src/main.py:164
|
||||||
msgid "translator_credits"
|
msgid "translator_credits"
|
||||||
msgstr "kefir2105"
|
msgstr "kefir2105"
|
||||||
|
|
||||||
#. The variable is the date when the game was added
|
#. The variable is the date when the game was added
|
||||||
#: src/window.py:194
|
#: src/window.py:192
|
||||||
msgid "Added: {}"
|
msgid "Added: {}"
|
||||||
msgstr "Додано: {}"
|
msgstr "Додано: {}"
|
||||||
|
|
||||||
#: src/window.py:197
|
#: src/window.py:195
|
||||||
msgid "Never"
|
msgid "Never"
|
||||||
msgstr "Ніколи"
|
msgstr "Ніколи"
|
||||||
|
|
||||||
#. The variable is the date when the game was last played
|
#. The variable is the date when the game was last played
|
||||||
#: src/window.py:201
|
#: src/window.py:199
|
||||||
msgid "Last played: {}"
|
msgid "Last played: {}"
|
||||||
msgstr "Востаннє грали: {}"
|
msgstr "Востаннє грали: {}"
|
||||||
|
|
||||||
@@ -428,26 +418,26 @@ msgid "Confirm"
|
|||||||
msgstr "Підтвердити"
|
msgstr "Підтвердити"
|
||||||
|
|
||||||
#. Translate this string as you would translate "file"
|
#. Translate this string as you would translate "file"
|
||||||
#: src/details_window.py:92
|
#: src/details_window.py:91
|
||||||
msgid "file.txt"
|
msgid "file.txt"
|
||||||
msgstr "file.txt"
|
msgstr "file.txt"
|
||||||
|
|
||||||
#. As in software
|
#. As in software
|
||||||
#: src/details_window.py:94
|
#: src/details_window.py:93
|
||||||
msgid "program"
|
msgid "program"
|
||||||
msgstr "програма"
|
msgstr "програма"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:99 src/details_window.py:101
|
#: src/details_window.py:98 src/details_window.py:100
|
||||||
msgid "C:\\path\\to\\{}"
|
msgid "C:\\path\\to\\{}"
|
||||||
msgstr "C:\\шлях\\до\\{}"
|
msgstr "C:\\шлях\\до\\{}"
|
||||||
|
|
||||||
#. Translate this string as you would translate "path to {}"
|
#. Translate this string as you would translate "path to {}"
|
||||||
#: src/details_window.py:105 src/details_window.py:107
|
#: src/details_window.py:104 src/details_window.py:106
|
||||||
msgid "/path/to/{}"
|
msgid "/path/to/{}"
|
||||||
msgstr "/path/to/{}"
|
msgstr "/path/to/{}"
|
||||||
|
|
||||||
#: src/details_window.py:112
|
#: src/details_window.py:111
|
||||||
msgid ""
|
msgid ""
|
||||||
"To launch the executable \"{}\", use the command:\n"
|
"To launch the executable \"{}\", use the command:\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -470,15 +460,15 @@ msgstr ""
|
|||||||
"\n"
|
"\n"
|
||||||
"Якщо шлях містить пробіли, обов'язково візьміть його в подвійні лапки!"
|
"Якщо шлях містить пробіли, обов'язково візьміть його в подвійні лапки!"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:153
|
#: src/details_window.py:146 src/details_window.py:152
|
||||||
msgid "Couldn't Add Game"
|
msgid "Couldn't Add Game"
|
||||||
msgstr "Не вдалося додати гру"
|
msgstr "Не вдалося додати гру"
|
||||||
|
|
||||||
#: src/details_window.py:147 src/details_window.py:181
|
#: src/details_window.py:146 src/details_window.py:181
|
||||||
msgid "Game title cannot be empty."
|
msgid "Game title cannot be empty."
|
||||||
msgstr "Назва гри не може бути порожньою."
|
msgstr "Назва гри не може бути порожньою."
|
||||||
|
|
||||||
#: src/details_window.py:153 src/details_window.py:189
|
#: src/details_window.py:152 src/details_window.py:189
|
||||||
msgid "Executable cannot be empty."
|
msgid "Executable cannot be empty."
|
||||||
msgstr "Виконуваний файл не може бути порожнім."
|
msgstr "Виконуваний файл не може бути порожнім."
|
||||||
|
|
||||||
@@ -487,62 +477,35 @@ msgid "Couldn't Apply Preferences"
|
|||||||
msgstr "Не вдалося застосувати параметри"
|
msgstr "Не вдалося застосувати параметри"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:138
|
#: src/game.py:141
|
||||||
msgid "{} launched"
|
msgid "{} launched"
|
||||||
msgstr "{} запущено"
|
msgstr "{} запущено"
|
||||||
|
|
||||||
#. The variable is the title of the game
|
#. The variable is the title of the game
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} hidden"
|
msgid "{} hidden"
|
||||||
msgstr "{} приховано"
|
msgstr "{} приховано"
|
||||||
|
|
||||||
#: src/game.py:152
|
#: src/game.py:154
|
||||||
msgid "{} unhidden"
|
msgid "{} unhidden"
|
||||||
msgstr "{} показано"
|
msgstr "{} показано"
|
||||||
|
|
||||||
#: src/game.py:169
|
#: src/game.py:171
|
||||||
msgid "{} removed"
|
msgid "{} removed"
|
||||||
msgstr "{} видалено"
|
msgstr "{} видалено"
|
||||||
|
|
||||||
#: src/preferences.py:111
|
#: src/preferences.py:102
|
||||||
msgid "All games removed"
|
msgid "All games removed"
|
||||||
msgstr "Всі ігри видалено"
|
msgstr "Всі ігри видалено"
|
||||||
|
|
||||||
#: src/preferences.py:159
|
#: src/preferences.py:149
|
||||||
msgid ""
|
msgid ""
|
||||||
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
"An API key is required to use SteamGridDB. You can generate one {}here{}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Для використання SteamGridDB потрібен ключ API. Ви можете згенерувати його {}"
|
"Для використання SteamGridDB потрібен ключ API. Ви можете згенерувати його {}"
|
||||||
"тут{}."
|
"тут{}."
|
||||||
|
|
||||||
#: src/preferences.py:284
|
#: src/preferences.py:289
|
||||||
msgid "Installation Not Found"
|
|
||||||
msgstr "Встановлення не знайдено"
|
|
||||||
|
|
||||||
#: src/preferences.py:286
|
|
||||||
msgid "Select a valid directory."
|
|
||||||
msgstr "Виберіть правильний каталог."
|
|
||||||
|
|
||||||
#: src/preferences.py:348
|
|
||||||
msgid "Invalid Directory"
|
|
||||||
msgstr "Неправильний каталог"
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:352
|
|
||||||
msgid "Select the {} cache directory."
|
|
||||||
msgstr "Виберіть каталог кешу {}."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:355
|
|
||||||
msgid "Select the {} configuration directory."
|
|
||||||
msgstr "Виберіть каталог конфігурації {}."
|
|
||||||
|
|
||||||
#. The variable is the name of the source
|
|
||||||
#: src/preferences.py:358
|
|
||||||
msgid "Select the {} data directory."
|
|
||||||
msgstr "Виберіть каталог даних {}."
|
|
||||||
|
|
||||||
#: src/preferences.py:364
|
|
||||||
msgid "Set Location"
|
msgid "Set Location"
|
||||||
msgstr "Встановити місцезнаходження"
|
msgstr "Встановити місцезнаходження"
|
||||||
|
|
||||||
@@ -550,33 +513,38 @@ msgstr "Встановити місцезнаходження"
|
|||||||
msgid "Dismiss"
|
msgid "Dismiss"
|
||||||
msgstr "Відхилити"
|
msgstr "Відхилити"
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:106
|
||||||
|
msgid "Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:107
|
||||||
|
msgid "Cache"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:108
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Confirm"
|
||||||
|
msgid "Configuration"
|
||||||
|
msgstr "Підтвердити"
|
||||||
|
|
||||||
|
#. The variables are the type of location (eg. cache) and the source's name (eg. Steam)
|
||||||
|
#: src/importer/sources/source.py:119
|
||||||
|
msgid "Invalid {} Location for {{}}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/importer/sources/source.py:120
|
||||||
|
msgid "Pick a new one or disable the source in preferences"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:47
|
#: src/store/managers/sgdb_manager.py:47
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Couldn't Connect to SteamGridDB"
|
||||||
msgid "Couldn't Authenticate SteamGridDB"
|
msgid "Couldn't Authenticate SteamGridDB"
|
||||||
msgstr "Не вдалося автентифікувати SteamGridDB"
|
msgstr "Не вдалося підключитися до SteamGridDB"
|
||||||
|
|
||||||
#: src/store/managers/sgdb_manager.py:48
|
#: src/store/managers/sgdb_manager.py:48
|
||||||
msgid "Verify your API key in preferences"
|
msgid "Verify your API key in preferences"
|
||||||
msgstr "Перевірте свій API-ключ у параметрах"
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~| msgid "The Steam directory cannot be found."
|
|
||||||
#~ msgid "Directory not Valid"
|
|
||||||
#~ msgstr "Каталог Steam знайти неможливо."
|
|
||||||
|
|
||||||
#~ msgid "Data"
|
|
||||||
#~ msgstr "Дані"
|
|
||||||
|
|
||||||
#~ msgid "Cache"
|
|
||||||
#~ msgstr "Кеш"
|
|
||||||
|
|
||||||
#~ msgid "Configuration"
|
|
||||||
#~ msgstr "Конфігурація"
|
|
||||||
|
|
||||||
#~ msgid "Invalid {} Location for {{}}"
|
|
||||||
#~ msgstr "Недійсний {} Місце для {{}}"
|
|
||||||
|
|
||||||
#~ msgid "Pick a new one or disable the source in preferences"
|
|
||||||
#~ msgstr "Виберіть новий або вимкніть джерело у параметрах"
|
|
||||||
|
|
||||||
#~ msgid "Steam Install Location"
|
#~ msgid "Steam Install Location"
|
||||||
#~ msgstr "Місце встановлення Steam"
|
#~ msgstr "Місце встановлення Steam"
|
||||||
@@ -602,6 +570,15 @@ msgstr "Перевірте свій API-ключ у параметрах"
|
|||||||
#~ msgid "Select the Lutris cache directory."
|
#~ msgid "Select the Lutris cache directory."
|
||||||
#~ msgstr "Виберіть каталог кешу Lutris."
|
#~ msgstr "Виберіть каталог кешу Lutris."
|
||||||
|
|
||||||
|
#~ msgid "Installation Not Found"
|
||||||
|
#~ msgstr "Встановлення не знайдено"
|
||||||
|
|
||||||
|
#~ msgid "Select the {} configuration directory."
|
||||||
|
#~ msgstr "Виберіть каталог конфігурації {}."
|
||||||
|
|
||||||
|
#~ msgid "Select the {} data directory."
|
||||||
|
#~ msgstr "Виберіть каталог даних {}."
|
||||||
|
|
||||||
#~ msgid "Importing Games…"
|
#~ msgid "Importing Games…"
|
||||||
#~ msgstr "Імпорт ігор…"
|
#~ msgstr "Імпорт ігор…"
|
||||||
|
|
||||||
@@ -726,6 +703,9 @@ msgstr "Перевірте свій API-ключ у параметрах"
|
|||||||
#~ msgid "No new games were found in the Steam library."
|
#~ msgid "No new games were found in the Steam library."
|
||||||
#~ msgstr "У бібліотеці Steam не знайдено жодної нової гри."
|
#~ msgstr "У бібліотеці Steam не знайдено жодної нової гри."
|
||||||
|
|
||||||
|
#~ msgid "The Steam directory cannot be found."
|
||||||
|
#~ msgstr "Каталог Steam знайти неможливо."
|
||||||
|
|
||||||
#~ msgid "Talking to Steam"
|
#~ msgid "Talking to Steam"
|
||||||
#~ msgstr "Спілкування зі Steam"
|
#~ msgstr "Спілкування зі Steam"
|
||||||
|
|
||||||
|
|||||||
@@ -81,7 +81,6 @@ class DetailsWindow(Adw.Window):
|
|||||||
image_filter = Gtk.FileFilter(name=_("Images"))
|
image_filter = Gtk.FileFilter(name=_("Images"))
|
||||||
for extension in Image.registered_extensions():
|
for extension in Image.registered_extensions():
|
||||||
image_filter.add_suffix(extension[1:])
|
image_filter.add_suffix(extension[1:])
|
||||||
image_filter.add_suffix("svg") # Gdk.Texture supports .svg but PIL doesn't
|
|
||||||
|
|
||||||
file_filters = Gio.ListStore.new(Gtk.FileFilter)
|
file_filters = Gio.ListStore.new(Gtk.FileFilter)
|
||||||
file_filters.append(image_filter)
|
file_filters.append(image_filter)
|
||||||
@@ -115,7 +114,7 @@ class DetailsWindow(Adw.Window):
|
|||||||
self.exec_info_label.set_label(exec_info_text)
|
self.exec_info_label.set_label(exec_info_text)
|
||||||
|
|
||||||
def clear_info_selection(*_args):
|
def clear_info_selection(*_args):
|
||||||
self.exec_info_label.select_region(-1, -1)
|
self.exec_info_label.select_region(0, 0)
|
||||||
|
|
||||||
self.exec_info_popover.connect("show", clear_info_selection)
|
self.exec_info_popover.connect("show", clear_info_selection)
|
||||||
|
|
||||||
@@ -155,24 +154,23 @@ class DetailsWindow(Adw.Window):
|
|||||||
return
|
return
|
||||||
|
|
||||||
# Increment the number after the game id (eg. imported_1, imported_2)
|
# Increment the number after the game id (eg. imported_1, imported_2)
|
||||||
source_id = "imported"
|
|
||||||
numbers = [0]
|
numbers = [0]
|
||||||
game_id: str
|
game_id: str
|
||||||
for game_id in shared.store.source_games.get(source_id, set()):
|
for game_id in shared.store.games:
|
||||||
prefix = "imported_"
|
prefix = "imported_"
|
||||||
if not game_id.startswith(prefix):
|
if not game_id.startswith(prefix):
|
||||||
continue
|
continue
|
||||||
numbers.append(int(game_id.replace(prefix, "", 1)))
|
numbers.append(int(game_id.replace(prefix, "", 1)))
|
||||||
|
|
||||||
game_number = max(numbers) + 1
|
game_number = max(numbers) + 1
|
||||||
|
|
||||||
self.game = Game(
|
self.game = Game(
|
||||||
{
|
{
|
||||||
"game_id": f"imported_{game_number}",
|
"game_id": f"imported_{game_number}",
|
||||||
"hidden": False,
|
"hidden": False,
|
||||||
"source": source_id,
|
"source": "imported",
|
||||||
"added": int(time()),
|
"added": int(time()),
|
||||||
}
|
},
|
||||||
|
allow_side_effects=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ class Game(Gtk.Box):
|
|||||||
game_cover = None
|
game_cover = None
|
||||||
version = 0
|
version = 0
|
||||||
|
|
||||||
def __init__(self, data, **kwargs):
|
def __init__(self, data, allow_side_effects=True, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
||||||
self.win = shared.win
|
self.win = shared.win
|
||||||
@@ -70,6 +70,9 @@ class Game(Gtk.Box):
|
|||||||
|
|
||||||
self.update_values(data)
|
self.update_values(data)
|
||||||
|
|
||||||
|
if allow_side_effects:
|
||||||
|
self.win.games[self.game_id] = self
|
||||||
|
|
||||||
self.set_play_icon()
|
self.set_play_icon()
|
||||||
|
|
||||||
self.event_contoller_motion = Gtk.EventControllerMotion.new()
|
self.event_contoller_motion = Gtk.EventControllerMotion.new()
|
||||||
@@ -140,12 +143,11 @@ class Game(Gtk.Box):
|
|||||||
def toggle_hidden(self, toast=True):
|
def toggle_hidden(self, toast=True):
|
||||||
self.hidden = not self.hidden
|
self.hidden = not self.hidden
|
||||||
self.save()
|
self.save()
|
||||||
|
self.update()
|
||||||
|
|
||||||
if self.win.stack.get_visible_child() == self.win.details_view:
|
if self.win.stack.get_visible_child() == self.win.details_view:
|
||||||
self.win.on_go_back_action()
|
self.win.on_go_back_action()
|
||||||
|
|
||||||
self.update()
|
|
||||||
|
|
||||||
if toast:
|
if toast:
|
||||||
self.create_toast(
|
self.create_toast(
|
||||||
# The variable is the title of the game
|
# The variable is the title of the game
|
||||||
|
|||||||
@@ -61,8 +61,8 @@ class GameCover:
|
|||||||
|
|
||||||
if path:
|
if path:
|
||||||
if path.suffix == ".gif":
|
if path.suffix == ".gif":
|
||||||
self.task = Gio.Task.new()
|
task = Gio.Task.new()
|
||||||
self.task.run_in_thread(self.create_func(self.path))
|
task.run_in_thread(self.create_func(self.path))
|
||||||
else:
|
else:
|
||||||
self.texture = Gdk.Texture.new_from_filename(str(path))
|
self.texture = Gdk.Texture.new_from_filename(str(path))
|
||||||
|
|
||||||
@@ -94,10 +94,10 @@ class GameCover:
|
|||||||
stat = ImageStat.Stat(image.convert("L"))
|
stat = ImageStat.Stat(image.convert("L"))
|
||||||
|
|
||||||
# Luminance values for light and dark mode
|
# Luminance values for light and dark mode
|
||||||
self.luminance = [
|
self.luminance = (
|
||||||
min((stat.mean[0] + stat.extrema[0][0]) / 510, 0.7),
|
(stat.mean[0] + stat.extrema[0][0]) / 510,
|
||||||
max((stat.mean[0] + stat.extrema[0][1]) / 510, 0.3),
|
(stat.mean[0] + stat.extrema[0][1]) / 510,
|
||||||
]
|
)
|
||||||
else:
|
else:
|
||||||
self.blurred = self.placeholder_small
|
self.blurred = self.placeholder_small
|
||||||
self.luminance = (0.3, 0.5)
|
self.luminance = (0.3, 0.5)
|
||||||
@@ -108,8 +108,6 @@ class GameCover:
|
|||||||
self.pictures.add(picture)
|
self.pictures.add(picture)
|
||||||
if not self.animation:
|
if not self.animation:
|
||||||
self.set_texture(self.texture)
|
self.set_texture(self.texture)
|
||||||
else:
|
|
||||||
self.update_animation((self.task, self.animation))
|
|
||||||
|
|
||||||
def set_texture(self, texture):
|
def set_texture(self, texture):
|
||||||
self.pictures.discard(
|
self.pictures.discard(
|
||||||
@@ -133,3 +131,5 @@ class GameCover:
|
|||||||
self.update_animation,
|
self.update_animation,
|
||||||
data,
|
data,
|
||||||
)
|
)
|
||||||
|
else:
|
||||||
|
data[0].return_value(False)
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ from src import shared
|
|||||||
from src.errors.error_producer import ErrorProducer
|
from src.errors.error_producer import ErrorProducer
|
||||||
from src.errors.friendly_error import FriendlyError
|
from src.errors.friendly_error import FriendlyError
|
||||||
from src.game import Game
|
from src.game import Game
|
||||||
from src.importer.sources.location import UnresolvableLocationError
|
|
||||||
from src.importer.sources.source import Source
|
from src.importer.sources.source import Source
|
||||||
from src.store.managers.async_manager import AsyncManager
|
from src.store.managers.async_manager import AsyncManager
|
||||||
from src.store.pipeline import Pipeline
|
from src.store.pipeline import Pipeline
|
||||||
@@ -67,15 +66,7 @@ class Importer(ErrorProducer):
|
|||||||
try:
|
try:
|
||||||
progress = progress / len(self.game_pipelines)
|
progress = progress / len(self.game_pipelines)
|
||||||
except ZeroDivisionError:
|
except ZeroDivisionError:
|
||||||
progress = 0
|
progress = 1
|
||||||
return progress
|
|
||||||
|
|
||||||
@property
|
|
||||||
def sources_progress(self):
|
|
||||||
try:
|
|
||||||
progress = self.n_source_tasks_done / self.n_source_tasks_created
|
|
||||||
except ZeroDivisionError:
|
|
||||||
progress = 0
|
|
||||||
return progress
|
return progress
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@@ -91,8 +82,6 @@ class Importer(ErrorProducer):
|
|||||||
def run(self):
|
def run(self):
|
||||||
"""Use several Gio.Task to import games from added sources"""
|
"""Use several Gio.Task to import games from added sources"""
|
||||||
|
|
||||||
shared.win.get_application().lookup_action("import").set_enabled(False)
|
|
||||||
|
|
||||||
self.create_dialog()
|
self.create_dialog()
|
||||||
|
|
||||||
# Collect all errors and reset the cancellables for the managers
|
# Collect all errors and reset the cancellables for the managers
|
||||||
@@ -136,18 +125,16 @@ class Importer(ErrorProducer):
|
|||||||
source: Source
|
source: Source
|
||||||
source, *_rest = data
|
source, *_rest = data
|
||||||
|
|
||||||
# Early exit if not available or not installed
|
# Early exit if not installed
|
||||||
if not source.is_available:
|
if not source.is_available:
|
||||||
logging.info("Source %s skipped, not available", source.id)
|
logging.info("Source %s skipped, not installed", source.id)
|
||||||
return
|
return
|
||||||
try:
|
logging.info("Scanning source %s", source.id)
|
||||||
|
|
||||||
|
# Initialize source iteration
|
||||||
iterator = iter(source)
|
iterator = iter(source)
|
||||||
except UnresolvableLocationError:
|
|
||||||
logging.info("Source %s skipped, bad location", source.id)
|
|
||||||
return
|
|
||||||
|
|
||||||
# Get games from source
|
# Get games from source
|
||||||
logging.info("Scanning source %s", source.id)
|
|
||||||
while True:
|
while True:
|
||||||
# Handle exceptions raised when iterating
|
# Handle exceptions raised when iterating
|
||||||
try:
|
try:
|
||||||
@@ -185,11 +172,8 @@ class Importer(ErrorProducer):
|
|||||||
self.game_pipelines.add(pipeline)
|
self.game_pipelines.add(pipeline)
|
||||||
|
|
||||||
def update_progressbar(self):
|
def update_progressbar(self):
|
||||||
"""Update the progressbar to show the overall import progress"""
|
"""Update the progressbar to show the percentage of game pipelines done"""
|
||||||
# Reserve 10% for the sources discovery, the rest is the pipelines
|
self.progressbar.set_fraction(self.pipelines_progress)
|
||||||
self.progressbar.set_fraction(
|
|
||||||
(0.1 * self.sources_progress) + (0.9 * self.pipelines_progress)
|
|
||||||
)
|
|
||||||
|
|
||||||
def source_callback(self, _obj, _result, data):
|
def source_callback(self, _obj, _result, data):
|
||||||
"""Callback executed when a source is fully scanned"""
|
"""Callback executed when a source is fully scanned"""
|
||||||
@@ -223,7 +207,6 @@ class Importer(ErrorProducer):
|
|||||||
self.import_dialog.close()
|
self.import_dialog.close()
|
||||||
self.summary_toast = self.create_summary_toast()
|
self.summary_toast = self.create_summary_toast()
|
||||||
self.create_error_dialog()
|
self.create_error_dialog()
|
||||||
shared.win.get_application().lookup_action("import").set_enabled(True)
|
|
||||||
|
|
||||||
def create_error_dialog(self):
|
def create_error_dialog(self):
|
||||||
"""Dialog containing all errors raised by importers"""
|
"""Dialog containing all errors raised by importers"""
|
||||||
@@ -266,7 +249,7 @@ class Importer(ErrorProducer):
|
|||||||
list_box = Gtk.ListBox()
|
list_box = Gtk.ListBox()
|
||||||
list_box.set_selection_mode(Gtk.SelectionMode.NONE)
|
list_box.set_selection_mode(Gtk.SelectionMode.NONE)
|
||||||
list_box.set_css_classes(["boxed-list"])
|
list_box.set_css_classes(["boxed-list"])
|
||||||
list_box.set_margin_top(9)
|
list_box.set_margin_top(8)
|
||||||
for error in errors:
|
for error in errors:
|
||||||
row = Adw.ActionRow.new()
|
row = Adw.ActionRow.new()
|
||||||
row.set_title(error[0])
|
row.set_title(error[0])
|
||||||
|
|||||||
@@ -26,31 +26,35 @@ import yaml
|
|||||||
from src import shared
|
from src import shared
|
||||||
from src.game import Game
|
from src.game import Game
|
||||||
from src.importer.sources.location import Location
|
from src.importer.sources.location import Location
|
||||||
from src.importer.sources.source import SourceIterable, URLExecutableSource
|
from src.importer.sources.source import (
|
||||||
|
SourceIterationResult,
|
||||||
|
SourceIterator,
|
||||||
|
URLExecutableSource,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class BottlesSourceIterable(SourceIterable):
|
class BottlesSourceIterator(SourceIterator):
|
||||||
source: "BottlesSource"
|
source: "BottlesSource"
|
||||||
|
|
||||||
def __iter__(self):
|
def generator_builder(self) -> SourceIterationResult:
|
||||||
"""Generator method producing games"""
|
"""Generator method producing games"""
|
||||||
|
|
||||||
data = self.source.data_location["library.yml"].read_text("utf-8")
|
data = self.source.data_location["library.yml"].read_text("utf-8")
|
||||||
library: dict = yaml.safe_load(data)
|
library: dict = yaml.safe_load(data)
|
||||||
added_time = int(time())
|
|
||||||
|
|
||||||
for entry in library.values():
|
for entry in library.values():
|
||||||
# Build game
|
# Build game
|
||||||
values = {
|
values = {
|
||||||
|
"version": shared.SPEC_VERSION,
|
||||||
"source": self.source.id,
|
"source": self.source.id,
|
||||||
"added": added_time,
|
"added": int(time()),
|
||||||
"name": entry["name"],
|
"name": entry["name"],
|
||||||
"game_id": self.source.game_id_format.format(game_id=entry["id"]),
|
"game_id": self.source.game_id_format.format(game_id=entry["id"]),
|
||||||
"executable": self.source.executable_format.format(
|
"executable": self.source.executable_format.format(
|
||||||
bottle_name=entry["bottle"]["name"], game_name=entry["name"]
|
bottle_name=entry["bottle"]["name"], game_name=entry["name"]
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
game = Game(values)
|
game = Game(values, allow_side_effects=False)
|
||||||
|
|
||||||
# Get official cover path
|
# Get official cover path
|
||||||
try:
|
try:
|
||||||
@@ -79,17 +83,16 @@ class BottlesSourceIterable(SourceIterable):
|
|||||||
class BottlesSource(URLExecutableSource):
|
class BottlesSource(URLExecutableSource):
|
||||||
"""Generic Bottles source"""
|
"""Generic Bottles source"""
|
||||||
|
|
||||||
name = _("Bottles")
|
name = "Bottles"
|
||||||
iterable_class = BottlesSourceIterable
|
iterator_class = BottlesSourceIterator
|
||||||
url_format = 'bottles:run/"{bottle_name}"/"{game_name}"'
|
url_format = 'bottles:run/"{bottle_name}"/"{game_name}"'
|
||||||
available_on = {"linux"}
|
available_on = set(("linux",))
|
||||||
|
|
||||||
data_location = Location(
|
data_location = Location(
|
||||||
schema_key="bottles-location",
|
schema_key="bottles-location",
|
||||||
candidates=(
|
candidates=(
|
||||||
shared.flatpak_dir / "com.usebottles.bottles" / "data" / "bottles",
|
"~/.var/app/com.usebottles.bottles/data/bottles/",
|
||||||
shared.data_dir / "bottles/",
|
shared.data_dir / "bottles/",
|
||||||
shared.home / ".local" / "share" / "bottles",
|
|
||||||
),
|
),
|
||||||
paths={
|
paths={
|
||||||
"library.yml": (False, "library.yml"),
|
"library.yml": (False, "library.yml"),
|
||||||
|
|||||||
@@ -1,132 +0,0 @@
|
|||||||
# flatpak_source.py
|
|
||||||
#
|
|
||||||
# Copyright 2022-2023 kramo
|
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
from pathlib import Path
|
|
||||||
from time import time
|
|
||||||
|
|
||||||
from gi.repository import GLib, Gtk
|
|
||||||
|
|
||||||
from src import shared
|
|
||||||
from src.game import Game
|
|
||||||
from src.importer.sources.location import Location
|
|
||||||
from src.importer.sources.source import Source, SourceIterable
|
|
||||||
|
|
||||||
|
|
||||||
class FlatpakSourceIterable(SourceIterable):
|
|
||||||
source: "FlatpakSource"
|
|
||||||
|
|
||||||
def __iter__(self):
|
|
||||||
"""Generator method producing games"""
|
|
||||||
|
|
||||||
added_time = int(time())
|
|
||||||
|
|
||||||
icon_theme = Gtk.IconTheme.new()
|
|
||||||
icon_theme.add_search_path(str(self.source.data_location["icons"]))
|
|
||||||
|
|
||||||
blacklist = (
|
|
||||||
{"hu.kramo.Cartridges", "hu.kramo.Cartridges.Devel"}
|
|
||||||
if shared.schema.get_boolean("flatpak-import-launchers")
|
|
||||||
else {
|
|
||||||
"hu.kramo.Cartridges",
|
|
||||||
"hu.kramo.Cartridges.Devel",
|
|
||||||
"com.valvesoftware.Steam",
|
|
||||||
"net.lutris.Lutris",
|
|
||||||
"com.heroicgameslauncher.hgl",
|
|
||||||
"com.usebottles.Bottles",
|
|
||||||
"io.itch.itch",
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
for entry in (self.source.data_location["applications"]).iterdir():
|
|
||||||
if entry.suffix != ".desktop":
|
|
||||||
continue
|
|
||||||
|
|
||||||
keyfile = GLib.KeyFile.new()
|
|
||||||
|
|
||||||
try:
|
|
||||||
keyfile.load_from_file(str(entry), 0)
|
|
||||||
|
|
||||||
if "Game" not in keyfile.get_string_list("Desktop Entry", "Categories"):
|
|
||||||
continue
|
|
||||||
|
|
||||||
if (
|
|
||||||
flatpak_id := keyfile.get_string("Desktop Entry", "X-Flatpak")
|
|
||||||
) in blacklist or flatpak_id != entry.stem:
|
|
||||||
continue
|
|
||||||
|
|
||||||
name = keyfile.get_string("Desktop Entry", "Name")
|
|
||||||
|
|
||||||
except GLib.GError:
|
|
||||||
continue
|
|
||||||
|
|
||||||
values = {
|
|
||||||
"source": self.source.id,
|
|
||||||
"added": added_time,
|
|
||||||
"name": name,
|
|
||||||
"game_id": self.source.game_id_format.format(game_id=flatpak_id),
|
|
||||||
"executable": self.source.executable_format.format(
|
|
||||||
flatpak_id=flatpak_id
|
|
||||||
),
|
|
||||||
}
|
|
||||||
game = Game(values)
|
|
||||||
|
|
||||||
additional_data = {}
|
|
||||||
|
|
||||||
try:
|
|
||||||
if (
|
|
||||||
icon_path := icon_theme.lookup_icon(
|
|
||||||
keyfile.get_string("Desktop Entry", "Icon"),
|
|
||||||
None,
|
|
||||||
512,
|
|
||||||
1,
|
|
||||||
shared.win.get_direction(),
|
|
||||||
0,
|
|
||||||
)
|
|
||||||
.get_file()
|
|
||||||
.get_path()
|
|
||||||
):
|
|
||||||
additional_data = {"local_icon_path": Path(icon_path)}
|
|
||||||
else:
|
|
||||||
pass
|
|
||||||
except GLib.GError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# Produce game
|
|
||||||
yield (game, additional_data)
|
|
||||||
|
|
||||||
|
|
||||||
class FlatpakSource(Source):
|
|
||||||
"""Generic Flatpak source"""
|
|
||||||
|
|
||||||
name = _("Flatpak")
|
|
||||||
iterable_class = FlatpakSourceIterable
|
|
||||||
executable_format = "flatpak run {flatpak_id}"
|
|
||||||
available_on = {"linux"}
|
|
||||||
|
|
||||||
data_location = Location(
|
|
||||||
schema_key="flatpak-location",
|
|
||||||
candidates=(
|
|
||||||
"/var/lib/flatpak/",
|
|
||||||
shared.data_dir / "flatpak",
|
|
||||||
),
|
|
||||||
paths={
|
|
||||||
"applications": (True, "exports/share/applications"),
|
|
||||||
"icons": (True, "exports/share/icons"),
|
|
||||||
},
|
|
||||||
)
|
|
||||||
@@ -20,47 +20,21 @@
|
|||||||
|
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
from abc import abstractmethod
|
|
||||||
from hashlib import sha256
|
from hashlib import sha256
|
||||||
from json import JSONDecodeError
|
from json import JSONDecodeError
|
||||||
from pathlib import Path
|
|
||||||
from time import time
|
from time import time
|
||||||
from typing import Iterable, Optional, TypedDict
|
from typing import Optional, TypedDict
|
||||||
from functools import cached_property
|
|
||||||
|
|
||||||
from src import shared
|
from src import shared
|
||||||
from src.game import Game
|
from src.game import Game
|
||||||
from src.importer.sources.location import Location
|
from src.importer.sources.location import Location
|
||||||
from src.importer.sources.source import (
|
from src.importer.sources.source import (
|
||||||
SourceIterable,
|
|
||||||
SourceIterationResult,
|
|
||||||
URLExecutableSource,
|
URLExecutableSource,
|
||||||
|
SourceIterationResult,
|
||||||
|
SourceIterator,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def path_json_load(path: Path):
|
|
||||||
"""
|
|
||||||
Load JSON from the file at the given path
|
|
||||||
|
|
||||||
:raises OSError: if the file can't be opened
|
|
||||||
:raises JSONDecodeError: if the file isn't valid JSON
|
|
||||||
"""
|
|
||||||
with path.open("r", encoding="utf-8") as open_file:
|
|
||||||
return json.load(open_file)
|
|
||||||
|
|
||||||
|
|
||||||
class InvalidLibraryFileError(Exception):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class InvalidInstalledFileError(Exception):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class InvalidStoreFileError(Exception):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class HeroicLibraryEntry(TypedDict):
|
class HeroicLibraryEntry(TypedDict):
|
||||||
app_name: str
|
app_name: str
|
||||||
installed: Optional[bool]
|
installed: Optional[bool]
|
||||||
@@ -70,308 +44,113 @@ class HeroicLibraryEntry(TypedDict):
|
|||||||
art_square: str
|
art_square: str
|
||||||
|
|
||||||
|
|
||||||
class SubSourceIterable(Iterable):
|
class HeroicSubSource(TypedDict):
|
||||||
"""Class representing a Heroic sub-source"""
|
|
||||||
|
|
||||||
source: "HeroicSource"
|
|
||||||
source_iterable: "HeroicSourceIterable"
|
|
||||||
name: str
|
|
||||||
service: str
|
service: str
|
||||||
image_uri_params: str = ""
|
path: tuple[str]
|
||||||
relative_library_path: Path
|
|
||||||
library_json_entries_key: str = "library"
|
|
||||||
|
|
||||||
def __init__(self, source, source_iterable) -> None:
|
|
||||||
self.source = source
|
|
||||||
self.source_iterable = source_iterable
|
|
||||||
|
|
||||||
@cached_property
|
class HeroicSourceIterator(SourceIterator):
|
||||||
def library_path(self) -> Path:
|
source: "HeroicSource"
|
||||||
path = self.source.config_location.root / self.relative_library_path
|
|
||||||
logging.debug("Using Heroic %s library.json path %s", self.name, path)
|
|
||||||
return path
|
|
||||||
|
|
||||||
def process_library_entry(
|
sub_sources: dict[str, HeroicSubSource] = {
|
||||||
self, entry: HeroicLibraryEntry, added_time: int
|
"sideload": {
|
||||||
|
"service": "sideload",
|
||||||
|
"path": ("sideload_apps", "library.json"),
|
||||||
|
},
|
||||||
|
"legendary": {
|
||||||
|
"service": "epic",
|
||||||
|
"path": ("store_cache", "legendary_library.json"),
|
||||||
|
},
|
||||||
|
"gog": {
|
||||||
|
"service": "gog",
|
||||||
|
"path": ("store_cache", "gog_library.json"),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
def game_from_library_entry(
|
||||||
|
self, entry: HeroicLibraryEntry
|
||||||
) -> SourceIterationResult:
|
) -> SourceIterationResult:
|
||||||
"""Build a Game from a Heroic library entry"""
|
"""Helper method used to build a Game from a Heroic library entry"""
|
||||||
|
|
||||||
app_name = entry["app_name"]
|
# Skip games that are not installed
|
||||||
|
if not entry["is_installed"]:
|
||||||
|
return None
|
||||||
|
|
||||||
# Build game
|
# Build game
|
||||||
|
app_name = entry["app_name"]
|
||||||
|
runner = entry["runner"]
|
||||||
|
service = self.sub_sources[runner]["service"]
|
||||||
values = {
|
values = {
|
||||||
"source": f"{self.source.id}_{self.service}",
|
"version": shared.SPEC_VERSION,
|
||||||
"added": added_time,
|
"source": self.source.id,
|
||||||
|
"added": int(time()),
|
||||||
"name": entry["title"],
|
"name": entry["title"],
|
||||||
"developer": entry.get("developer", None),
|
"developer": entry["developer"],
|
||||||
"game_id": self.source.game_id_format.format(
|
"game_id": self.source.game_id_format.format(
|
||||||
service=self.service, game_id=app_name
|
service=service, game_id=app_name
|
||||||
),
|
),
|
||||||
"executable": self.source.executable_format.format(app_name=app_name),
|
"executable": self.source.executable_format.format(app_name=app_name),
|
||||||
"hidden": self.source_iterable.is_hidden(app_name),
|
|
||||||
}
|
}
|
||||||
game = Game(values)
|
game = Game(values, allow_side_effects=False)
|
||||||
|
|
||||||
# Get the image path from the heroic cache
|
# Get the image path from the heroic cache
|
||||||
# Filenames are derived from the URL that heroic used to get the file
|
# Filenames are derived from the URL that heroic used to get the file
|
||||||
uri: str = entry["art_square"] + self.image_uri_params
|
uri: str = entry["art_square"]
|
||||||
|
if service == "epic":
|
||||||
|
uri += "?h=400&resize=1&w=300"
|
||||||
digest = sha256(uri.encode()).hexdigest()
|
digest = sha256(uri.encode()).hexdigest()
|
||||||
image_path = self.source.config_location.root / "images-cache" / digest
|
image_path = self.source.config_location.root / "images-cache" / digest
|
||||||
additional_data = {"local_image_path": image_path}
|
additional_data = {"local_image_path": image_path}
|
||||||
|
|
||||||
return (game, additional_data)
|
return (game, additional_data)
|
||||||
|
|
||||||
def __iter__(self):
|
def generator_builder(self) -> SourceIterationResult:
|
||||||
"""
|
|
||||||
Iterate through the games with a generator
|
|
||||||
:raises InvalidLibraryFileError: on initial call if the library file is bad
|
|
||||||
"""
|
|
||||||
added_time = int(time())
|
|
||||||
try:
|
|
||||||
iterator = iter(
|
|
||||||
path_json_load(self.library_path)[self.library_json_entries_key]
|
|
||||||
)
|
|
||||||
except (OSError, JSONDecodeError, TypeError, KeyError) as error:
|
|
||||||
raise InvalidLibraryFileError(
|
|
||||||
f"Invalid {self.library_path.name}"
|
|
||||||
) from error
|
|
||||||
for entry in iterator:
|
|
||||||
try:
|
|
||||||
yield self.process_library_entry(entry, added_time)
|
|
||||||
except KeyError as error:
|
|
||||||
logging.warning(
|
|
||||||
"Skipped invalid %s game %s",
|
|
||||||
self.name,
|
|
||||||
entry.get("app_name", "UNKNOWN"),
|
|
||||||
exc_info=error,
|
|
||||||
)
|
|
||||||
continue
|
|
||||||
|
|
||||||
|
|
||||||
class StoreSubSourceIterable(SubSourceIterable):
|
|
||||||
"""
|
|
||||||
Class representing a "store" sub source.
|
|
||||||
Games can be installed or not, this class does the check accordingly.
|
|
||||||
"""
|
|
||||||
|
|
||||||
relative_installed_path: Path
|
|
||||||
installed_app_names: set[str]
|
|
||||||
|
|
||||||
@cached_property
|
|
||||||
def installed_path(self) -> Path:
|
|
||||||
path = self.source.config_location.root / self.relative_installed_path
|
|
||||||
logging.debug("Using Heroic %s installed.json path %s", self.name, path)
|
|
||||||
return path
|
|
||||||
|
|
||||||
@abstractmethod
|
|
||||||
def get_installed_app_names(self) -> set[str]:
|
|
||||||
"""
|
|
||||||
Get the sub source's installed app names as a set.
|
|
||||||
|
|
||||||
:raises InvalidInstalledFileError: if the installed file data cannot be read
|
|
||||||
Whenever possible, `__cause__` is set with the original exception
|
|
||||||
"""
|
|
||||||
|
|
||||||
def is_installed(self, app_name: str) -> bool:
|
|
||||||
return app_name in self.installed_app_names
|
|
||||||
|
|
||||||
def process_library_entry(self, entry, added_time):
|
|
||||||
# Skip games that are not installed
|
|
||||||
app_name = entry["app_name"]
|
|
||||||
if not self.is_installed(app_name):
|
|
||||||
logging.warning(
|
|
||||||
"Skipped %s game %s (%s): not installed",
|
|
||||||
self.service,
|
|
||||||
entry["title"],
|
|
||||||
app_name,
|
|
||||||
)
|
|
||||||
return None
|
|
||||||
# Process entry as normal
|
|
||||||
return super().process_library_entry(entry, added_time)
|
|
||||||
|
|
||||||
def __iter__(self):
|
|
||||||
"""
|
|
||||||
Iterate through the installed games with a generator
|
|
||||||
:raises InvalidLibraryFileError: on initial call if the library file is bad
|
|
||||||
:raises InvalidInstalledFileError: on initial call if the installed file is bad
|
|
||||||
"""
|
|
||||||
self.installed_app_names = self.get_installed_app_names()
|
|
||||||
yield from super().__iter__()
|
|
||||||
|
|
||||||
|
|
||||||
class SideloadIterable(SubSourceIterable):
|
|
||||||
name = "sideload"
|
|
||||||
service = "sideload"
|
|
||||||
relative_library_path = Path("sideload_apps") / "library.json"
|
|
||||||
library_json_entries_key = "games"
|
|
||||||
|
|
||||||
|
|
||||||
class LegendaryIterable(StoreSubSourceIterable):
|
|
||||||
name = "legendary"
|
|
||||||
service = "epic"
|
|
||||||
image_uri_params = "?h=400&resize=1&w=300"
|
|
||||||
relative_library_path = Path("store_cache") / "legendary_library.json"
|
|
||||||
|
|
||||||
# relative_installed_path = (
|
|
||||||
# Path("legendary") / "legendaryConfig" / "legendary" / "installed.json"
|
|
||||||
# )
|
|
||||||
|
|
||||||
@cached_property
|
|
||||||
def installed_path(self) -> Path:
|
|
||||||
"""
|
|
||||||
Get the right path depending on the Heroic version
|
|
||||||
|
|
||||||
TODO after heroic 2.9 has been out for a while
|
|
||||||
We should use the commented out relative_installed_path
|
|
||||||
and remove this property override.
|
|
||||||
"""
|
|
||||||
|
|
||||||
heroic_config_path = self.source.config_location.root
|
|
||||||
# Heroic >= 2.9
|
|
||||||
if (path := heroic_config_path / "legendaryConfig").is_dir():
|
|
||||||
logging.debug("Using Heroic >= 2.9 legendary file")
|
|
||||||
# Heroic <= 2.8
|
|
||||||
elif heroic_config_path.is_relative_to(shared.flatpak_dir):
|
|
||||||
# Heroic flatpak
|
|
||||||
path = shared.flatpak_dir / "com.heroicgameslauncher.hgl" / "config"
|
|
||||||
logging.debug("Using Heroic flatpak <= 2.8 legendary file")
|
|
||||||
else:
|
|
||||||
# Heroic native
|
|
||||||
logging.debug("Using Heroic native <= 2.8 legendary file")
|
|
||||||
path = Path.home() / ".config"
|
|
||||||
|
|
||||||
path = path / "legendary" / "installed.json"
|
|
||||||
logging.debug("Using Heroic %s installed.json path %s", self.name, path)
|
|
||||||
return path
|
|
||||||
|
|
||||||
def get_installed_app_names(self):
|
|
||||||
try:
|
|
||||||
return set(path_json_load(self.installed_path).keys())
|
|
||||||
except (OSError, JSONDecodeError, AttributeError) as error:
|
|
||||||
raise InvalidInstalledFileError(
|
|
||||||
f"Invalid {self.installed_path.name}"
|
|
||||||
) from error
|
|
||||||
|
|
||||||
|
|
||||||
class GogIterable(StoreSubSourceIterable):
|
|
||||||
name = "gog"
|
|
||||||
service = "gog"
|
|
||||||
library_json_entries_key = "games"
|
|
||||||
relative_library_path = Path("store_cache") / "gog_library.json"
|
|
||||||
relative_installed_path = Path("gog_store") / "installed.json"
|
|
||||||
|
|
||||||
def get_installed_app_names(self):
|
|
||||||
try:
|
|
||||||
return {
|
|
||||||
app_name
|
|
||||||
for entry in path_json_load(self.installed_path)["installed"]
|
|
||||||
if (app_name := entry.get("appName")) is not None
|
|
||||||
}
|
|
||||||
except (OSError, JSONDecodeError, KeyError, AttributeError) as error:
|
|
||||||
raise InvalidInstalledFileError(
|
|
||||||
f"Invalid {self.installed_path.name}"
|
|
||||||
) from error
|
|
||||||
|
|
||||||
|
|
||||||
class NileIterable(StoreSubSourceIterable):
|
|
||||||
name = "nile"
|
|
||||||
service = "amazon"
|
|
||||||
relative_library_path = Path("store_cache") / "nile_library.json"
|
|
||||||
relative_installed_path = Path("nile_config") / "nile" / "installed.json"
|
|
||||||
|
|
||||||
def get_installed_app_names(self):
|
|
||||||
try:
|
|
||||||
installed_json = path_json_load(self.installed_path)
|
|
||||||
return {
|
|
||||||
app_name
|
|
||||||
for entry in installed_json
|
|
||||||
if (app_name := entry.get("id")) is not None
|
|
||||||
}
|
|
||||||
except (OSError, JSONDecodeError, AttributeError) as error:
|
|
||||||
raise InvalidInstalledFileError(
|
|
||||||
f"Invalid {self.installed_path.name}"
|
|
||||||
) from error
|
|
||||||
|
|
||||||
|
|
||||||
class HeroicSourceIterable(SourceIterable):
|
|
||||||
source: "HeroicSource"
|
|
||||||
|
|
||||||
hidden_app_names: set[str] = set()
|
|
||||||
|
|
||||||
def is_hidden(self, app_name: str) -> bool:
|
|
||||||
return app_name in self.hidden_app_names
|
|
||||||
|
|
||||||
def get_hidden_app_names(self) -> set[str]:
|
|
||||||
"""Get the hidden app names from store/config.json
|
|
||||||
|
|
||||||
:raises InvalidStoreFileError: if the store is invalid for some reason
|
|
||||||
"""
|
|
||||||
|
|
||||||
try:
|
|
||||||
store = path_json_load(self.source.config_location["store_config.json"])
|
|
||||||
self.hidden_app_names = {
|
|
||||||
app_name
|
|
||||||
for game in store["games"]["hidden"]
|
|
||||||
if (app_name := game.get("appName")) is not None
|
|
||||||
}
|
|
||||||
except KeyError:
|
|
||||||
logging.warning('No ["games"]["hidden"] key in Heroic store file')
|
|
||||||
except (OSError, JSONDecodeError, TypeError) as error:
|
|
||||||
logging.error("Invalid Heroic store file", exc_info=error)
|
|
||||||
raise InvalidStoreFileError() from error
|
|
||||||
|
|
||||||
def __iter__(self):
|
|
||||||
"""Generator method producing games from all the Heroic sub-sources"""
|
"""Generator method producing games from all the Heroic sub-sources"""
|
||||||
|
|
||||||
self.get_hidden_app_names()
|
for sub_source in self.sub_sources.values():
|
||||||
|
# Skip disabled sub-sources
|
||||||
# Get games from the sub sources
|
if not shared.schema.get_boolean("heroic-import-" + sub_source["service"]):
|
||||||
for sub_source_class in (
|
|
||||||
SideloadIterable,
|
|
||||||
LegendaryIterable,
|
|
||||||
GogIterable,
|
|
||||||
NileIterable,
|
|
||||||
):
|
|
||||||
sub_source = sub_source_class(self.source, self)
|
|
||||||
|
|
||||||
if not shared.schema.get_boolean("heroic-import-" + sub_source.service):
|
|
||||||
logging.debug("Skipping Heroic %s: disabled", sub_source.service)
|
|
||||||
continue
|
continue
|
||||||
|
# Load games from JSON
|
||||||
|
file = self.source.config_location.root.joinpath(*sub_source["path"])
|
||||||
try:
|
try:
|
||||||
sub_source_iterable = iter(sub_source)
|
library = json.load(file.open())["library"]
|
||||||
yield from sub_source_iterable
|
except (JSONDecodeError, OSError, KeyError):
|
||||||
except (InvalidLibraryFileError, InvalidInstalledFileError) as error:
|
# Invalid library.json file, skip it
|
||||||
logging.error(
|
logging.warning("Couldn't open Heroic file: %s", str(file))
|
||||||
"Skipping bad Heroic sub-source %s",
|
|
||||||
sub_source.service,
|
|
||||||
exc_info=error,
|
|
||||||
)
|
|
||||||
continue
|
continue
|
||||||
|
for entry in library:
|
||||||
|
try:
|
||||||
|
result = self.game_from_library_entry(entry)
|
||||||
|
except KeyError:
|
||||||
|
# Skip invalid games
|
||||||
|
logging.warning("Invalid Heroic game skipped in %s", str(file))
|
||||||
|
continue
|
||||||
|
yield result
|
||||||
|
|
||||||
|
|
||||||
class HeroicSource(URLExecutableSource):
|
class HeroicSource(URLExecutableSource):
|
||||||
"""Generic Heroic Games Launcher source"""
|
"""Generic heroic games launcher source"""
|
||||||
|
|
||||||
name = _("Heroic")
|
name = "Heroic"
|
||||||
iterable_class = HeroicSourceIterable
|
iterator_class = HeroicSourceIterator
|
||||||
url_format = "heroic://launch/{app_name}"
|
url_format = "heroic://launch/{app_name}"
|
||||||
available_on = {"linux", "win32"}
|
available_on = set(("linux", "win32"))
|
||||||
|
|
||||||
config_location = Location(
|
config_location = Location(
|
||||||
schema_key="heroic-location",
|
schema_key="heroic-location",
|
||||||
candidates=(
|
candidates=(
|
||||||
shared.config_dir / "heroic",
|
"~/.var/app/com.heroicgameslauncher.hgl/config/heroic/",
|
||||||
shared.home / ".config" / "heroic",
|
shared.config_dir / "heroic/",
|
||||||
shared.flatpak_dir / "com.heroicgameslauncher.hgl" / "config" / "heroic",
|
"~/.config/heroic/",
|
||||||
shared.appdata_dir / "heroic",
|
shared.appdata_dir / "heroic/",
|
||||||
),
|
),
|
||||||
paths={
|
paths={
|
||||||
"config.json": (False, "config.json"),
|
"config.json": (False, "config.json"),
|
||||||
"store_config.json": (False, Path("store") / "config.json"),
|
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def game_id_format(self) -> str:
|
def game_id_format(self) -> str:
|
||||||
"""The string format used to construct game IDs"""
|
"""The string format used to construct game IDs"""
|
||||||
return self.id + "_{service}_{game_id}"
|
return self.name.lower() + "_{service}_{game_id}"
|
||||||
|
|||||||
@@ -25,14 +25,18 @@ from time import time
|
|||||||
from src import shared
|
from src import shared
|
||||||
from src.game import Game
|
from src.game import Game
|
||||||
from src.importer.sources.location import Location
|
from src.importer.sources.location import Location
|
||||||
from src.importer.sources.source import SourceIterable, URLExecutableSource
|
from src.importer.sources.source import (
|
||||||
|
SourceIterationResult,
|
||||||
|
SourceIterator,
|
||||||
|
URLExecutableSource,
|
||||||
|
)
|
||||||
from src.utils.sqlite import copy_db
|
from src.utils.sqlite import copy_db
|
||||||
|
|
||||||
|
|
||||||
class ItchSourceIterable(SourceIterable):
|
class ItchSourceIterator(SourceIterator):
|
||||||
source: "ItchSource"
|
source: "ItchSource"
|
||||||
|
|
||||||
def __iter__(self):
|
def generator_builder(self) -> SourceIterationResult:
|
||||||
"""Generator method producing games"""
|
"""Generator method producing games"""
|
||||||
|
|
||||||
# Query the database
|
# Query the database
|
||||||
@@ -55,19 +59,18 @@ class ItchSourceIterable(SourceIterable):
|
|||||||
connection = connect(db_path)
|
connection = connect(db_path)
|
||||||
cursor = connection.execute(db_request)
|
cursor = connection.execute(db_request)
|
||||||
|
|
||||||
added_time = int(time())
|
|
||||||
|
|
||||||
# Create games from the db results
|
# Create games from the db results
|
||||||
for row in cursor:
|
for row in cursor:
|
||||||
values = {
|
values = {
|
||||||
"added": added_time,
|
"version": shared.SPEC_VERSION,
|
||||||
|
"added": int(time()),
|
||||||
"source": self.source.id,
|
"source": self.source.id,
|
||||||
"name": row[1],
|
"name": row[1],
|
||||||
"game_id": self.source.game_id_format.format(game_id=row[0]),
|
"game_id": self.source.game_id_format.format(game_id=row[0]),
|
||||||
"executable": self.source.executable_format.format(cave_id=row[4]),
|
"executable": self.source.executable_format.format(cave_id=row[4]),
|
||||||
}
|
}
|
||||||
additional_data = {"online_cover_url": row[3] or row[2]}
|
additional_data = {"online_cover_url": row[3] or row[2]}
|
||||||
game = Game(values)
|
game = Game(values, allow_side_effects=False)
|
||||||
yield (game, additional_data)
|
yield (game, additional_data)
|
||||||
|
|
||||||
# Cleanup
|
# Cleanup
|
||||||
@@ -75,18 +78,18 @@ class ItchSourceIterable(SourceIterable):
|
|||||||
|
|
||||||
|
|
||||||
class ItchSource(URLExecutableSource):
|
class ItchSource(URLExecutableSource):
|
||||||
name = _("itch")
|
name = "Itch"
|
||||||
iterable_class = ItchSourceIterable
|
iterator_class = ItchSourceIterator
|
||||||
url_format = "itch://caves/{cave_id}/launch"
|
url_format = "itch://caves/{cave_id}/launch"
|
||||||
available_on = {"linux", "win32"}
|
available_on = set(("linux", "win32"))
|
||||||
|
|
||||||
config_location = Location(
|
config_location = Location(
|
||||||
schema_key="itch-location",
|
schema_key="itch-location",
|
||||||
candidates=(
|
candidates=(
|
||||||
shared.flatpak_dir / "io.itch.itch" / "config" / "itch",
|
"~/.var/app/io.itch.itch/config/itch/",
|
||||||
shared.config_dir / "itch",
|
shared.config_dir / "itch/",
|
||||||
shared.home / ".config" / "itch",
|
"~/.config/itch/",
|
||||||
shared.appdata_dir / "itch",
|
shared.appdata_dir / "itch/",
|
||||||
),
|
),
|
||||||
paths={"butler.db": (False, "db/butler.db")},
|
paths={"butler.db": (False, "db/butler.db")},
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -21,19 +21,18 @@ import json
|
|||||||
import logging
|
import logging
|
||||||
from json import JSONDecodeError
|
from json import JSONDecodeError
|
||||||
from time import time
|
from time import time
|
||||||
|
from typing import Generator
|
||||||
|
|
||||||
from src import shared
|
from src import shared
|
||||||
from src.game import Game
|
from src.game import Game
|
||||||
from src.importer.sources.location import Location
|
from src.importer.sources.location import Location
|
||||||
from src.importer.sources.source import Source, SourceIterationResult, SourceIterable
|
from src.importer.sources.source import Source, SourceIterationResult, SourceIterator
|
||||||
|
|
||||||
|
|
||||||
class LegendarySourceIterable(SourceIterable):
|
class LegendarySourceIterator(SourceIterator):
|
||||||
source: "LegendarySource"
|
source: "LegendarySource"
|
||||||
|
|
||||||
def game_from_library_entry(
|
def game_from_library_entry(self, entry: dict) -> SourceIterationResult:
|
||||||
self, entry: dict, added_time: int
|
|
||||||
) -> SourceIterationResult:
|
|
||||||
# Skip non-games
|
# Skip non-games
|
||||||
if entry["is_dlc"]:
|
if entry["is_dlc"]:
|
||||||
return None
|
return None
|
||||||
@@ -41,7 +40,8 @@ class LegendarySourceIterable(SourceIterable):
|
|||||||
# Build game
|
# Build game
|
||||||
app_name = entry["app_name"]
|
app_name = entry["app_name"]
|
||||||
values = {
|
values = {
|
||||||
"added": added_time,
|
"version": shared.SPEC_VERSION,
|
||||||
|
"added": int(time()),
|
||||||
"source": self.source.id,
|
"source": self.source.id,
|
||||||
"name": entry["title"],
|
"name": entry["title"],
|
||||||
"game_id": self.source.game_id_format.format(game_id=app_name),
|
"game_id": self.source.game_id_format.format(game_id=app_name),
|
||||||
@@ -50,7 +50,7 @@ class LegendarySourceIterable(SourceIterable):
|
|||||||
data = {}
|
data = {}
|
||||||
|
|
||||||
# Get additional metadata from file (optional)
|
# Get additional metadata from file (optional)
|
||||||
metadata_file = self.source.config_location["metadata"] / f"{app_name}.json"
|
metadata_file = self.source.data_location["metadata"] / f"{app_name}.json"
|
||||||
try:
|
try:
|
||||||
metadata = json.load(metadata_file.open())
|
metadata = json.load(metadata_file.open())
|
||||||
values["developer"] = metadata["metadata"]["developer"]
|
values["developer"] = metadata["metadata"]["developer"]
|
||||||
@@ -61,24 +61,21 @@ class LegendarySourceIterable(SourceIterable):
|
|||||||
except (JSONDecodeError, OSError, KeyError):
|
except (JSONDecodeError, OSError, KeyError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
game = Game(values)
|
game = Game(values, allow_side_effects=False)
|
||||||
return (game, data)
|
return (game, data)
|
||||||
|
|
||||||
def __iter__(self):
|
def generator_builder(self) -> Generator[SourceIterationResult, None, None]:
|
||||||
# Open library
|
# Open library
|
||||||
file = self.source.config_location["installed.json"]
|
file = self.source.data_location["installed.json"]
|
||||||
try:
|
try:
|
||||||
library: dict = json.load(file.open())
|
library: dict = json.load(file.open())
|
||||||
except (JSONDecodeError, OSError):
|
except (JSONDecodeError, OSError):
|
||||||
logging.warning("Couldn't open Legendary file: %s", str(file))
|
logging.warning("Couldn't open Legendary file: %s", str(file))
|
||||||
return
|
return
|
||||||
|
|
||||||
added_time = int(time())
|
|
||||||
|
|
||||||
# Generate games from library
|
# Generate games from library
|
||||||
for entry in library.values():
|
for entry in library.values():
|
||||||
try:
|
try:
|
||||||
result = self.game_from_library_entry(entry, added_time)
|
result = self.game_from_library_entry(entry)
|
||||||
except KeyError as error:
|
except KeyError as error:
|
||||||
# Skip invalid games
|
# Skip invalid games
|
||||||
logging.warning(
|
logging.warning(
|
||||||
@@ -89,16 +86,16 @@ class LegendarySourceIterable(SourceIterable):
|
|||||||
|
|
||||||
|
|
||||||
class LegendarySource(Source):
|
class LegendarySource(Source):
|
||||||
name = _("Legendary")
|
name = "Legendary"
|
||||||
executable_format = "legendary launch {app_name}"
|
executable_format = "legendary launch {app_name}"
|
||||||
available_on = {"linux"}
|
available_on = set(("linux", "win32"))
|
||||||
|
|
||||||
iterable_class = LegendarySourceIterable
|
iterator_class = LegendarySourceIterator
|
||||||
config_location: Location = Location(
|
data_location: Location = Location(
|
||||||
schema_key="legendary-location",
|
schema_key="legendary-location",
|
||||||
candidates=(
|
candidates=(
|
||||||
shared.config_dir / "legendary",
|
shared.config_dir / "legendary/",
|
||||||
shared.home / ".config" / "legendary",
|
"~/.config/legendary",
|
||||||
),
|
),
|
||||||
paths={
|
paths={
|
||||||
"installed.json": (False, "installed.json"),
|
"installed.json": (False, "installed.json"),
|
||||||
|
|||||||
@@ -24,14 +24,18 @@ from time import time
|
|||||||
from src import shared
|
from src import shared
|
||||||
from src.game import Game
|
from src.game import Game
|
||||||
from src.importer.sources.location import Location
|
from src.importer.sources.location import Location
|
||||||
from src.importer.sources.source import SourceIterable, URLExecutableSource
|
from src.importer.sources.source import (
|
||||||
|
SourceIterationResult,
|
||||||
|
SourceIterator,
|
||||||
|
URLExecutableSource,
|
||||||
|
)
|
||||||
from src.utils.sqlite import copy_db
|
from src.utils.sqlite import copy_db
|
||||||
|
|
||||||
|
|
||||||
class LutrisSourceIterable(SourceIterable):
|
class LutrisSourceIterator(SourceIterator):
|
||||||
source: "LutrisSource"
|
source: "LutrisSource"
|
||||||
|
|
||||||
def __iter__(self):
|
def generator_builder(self) -> SourceIterationResult:
|
||||||
"""Generator method producing games"""
|
"""Generator method producing games"""
|
||||||
|
|
||||||
# Query the database
|
# Query the database
|
||||||
@@ -44,33 +48,28 @@ class LutrisSourceIterable(SourceIterable):
|
|||||||
AND configPath IS NOT NULL
|
AND configPath IS NOT NULL
|
||||||
AND installed
|
AND installed
|
||||||
AND (runner IS NOT "steam" OR :import_steam)
|
AND (runner IS NOT "steam" OR :import_steam)
|
||||||
AND (runner IS NOT "flatpak" OR :import_flatpak)
|
|
||||||
;
|
;
|
||||||
"""
|
"""
|
||||||
params = {
|
params = {"import_steam": shared.schema.get_boolean("lutris-import-steam")}
|
||||||
"import_steam": shared.schema.get_boolean("lutris-import-steam"),
|
|
||||||
"import_flatpak": shared.schema.get_boolean("lutris-import-flatpak"),
|
|
||||||
}
|
|
||||||
db_path = copy_db(self.source.data_location["pga.db"])
|
db_path = copy_db(self.source.data_location["pga.db"])
|
||||||
connection = connect(db_path)
|
connection = connect(db_path)
|
||||||
cursor = connection.execute(request, params)
|
cursor = connection.execute(request, params)
|
||||||
|
|
||||||
added_time = int(time())
|
|
||||||
|
|
||||||
# Create games from the DB results
|
# Create games from the DB results
|
||||||
for row in cursor:
|
for row in cursor:
|
||||||
# Create game
|
# Create game
|
||||||
values = {
|
values = {
|
||||||
"added": added_time,
|
"version": shared.SPEC_VERSION,
|
||||||
|
"added": int(time()),
|
||||||
"hidden": row[4],
|
"hidden": row[4],
|
||||||
"name": row[1],
|
"name": row[1],
|
||||||
"source": f"{self.source.id}_{row[3]}",
|
"source": f"{self.source.id}_{row[3]}",
|
||||||
"game_id": self.source.game_id_format.format(
|
"game_id": self.source.game_id_format.format(
|
||||||
runner=row[3], game_id=row[0]
|
game_id=row[2], game_internal_id=row[0]
|
||||||
),
|
),
|
||||||
"executable": self.source.executable_format.format(game_id=row[0]),
|
"executable": self.source.executable_format.format(game_id=row[2]),
|
||||||
}
|
}
|
||||||
game = Game(values)
|
game = Game(values, allow_side_effects=False)
|
||||||
|
|
||||||
# Get official image path
|
# Get official image path
|
||||||
image_path = self.source.cache_location["coverart"] / f"{row[2]}.jpg"
|
image_path = self.source.cache_location["coverart"] / f"{row[2]}.jpg"
|
||||||
@@ -84,21 +83,21 @@ class LutrisSourceIterable(SourceIterable):
|
|||||||
|
|
||||||
|
|
||||||
class LutrisSource(URLExecutableSource):
|
class LutrisSource(URLExecutableSource):
|
||||||
"""Generic Lutris source"""
|
"""Generic lutris source"""
|
||||||
|
|
||||||
name = _("Lutris")
|
name = "Lutris"
|
||||||
iterable_class = LutrisSourceIterable
|
iterator_class = LutrisSourceIterator
|
||||||
url_format = "lutris:rungameid/{game_id}"
|
url_format = "lutris:rungameid/{game_id}"
|
||||||
available_on = {"linux"}
|
available_on = set(("linux",))
|
||||||
|
|
||||||
# FIXME possible bug: location picks ~/.var... and cache_lcoation picks ~/.local...
|
# FIXME possible bug: location picks ~/.var... and cache_lcoation picks ~/.local...
|
||||||
|
|
||||||
data_location = Location(
|
data_location = Location(
|
||||||
schema_key="lutris-location",
|
schema_key="lutris-location",
|
||||||
candidates=(
|
candidates=(
|
||||||
shared.flatpak_dir / "net.lutris.Lutris" / "data" / "lutris",
|
"~/.var/app/net.lutris.Lutris/data/lutris/",
|
||||||
shared.data_dir / "lutris",
|
shared.data_dir / "lutris/",
|
||||||
shared.home / ".local" / "share" / "lutris",
|
"~/.local/share/lutris/",
|
||||||
),
|
),
|
||||||
paths={
|
paths={
|
||||||
"pga.db": (False, "pga.db"),
|
"pga.db": (False, "pga.db"),
|
||||||
@@ -108,9 +107,9 @@ class LutrisSource(URLExecutableSource):
|
|||||||
cache_location = Location(
|
cache_location = Location(
|
||||||
schema_key="lutris-cache-location",
|
schema_key="lutris-cache-location",
|
||||||
candidates=(
|
candidates=(
|
||||||
shared.flatpak_dir / "net.lutris.Lutris" / "cache" / "lutris",
|
"~/.var/app/net.lutris.Lutris/cache/lutris/",
|
||||||
shared.cache_dir / "lutris",
|
shared.cache_dir / "lutris/",
|
||||||
shared.home / ".cache" / "lutris",
|
"~/.cache/lutris",
|
||||||
),
|
),
|
||||||
paths={
|
paths={
|
||||||
"coverart": (True, "coverart"),
|
"coverart": (True, "coverart"),
|
||||||
@@ -119,4 +118,4 @@ class LutrisSource(URLExecutableSource):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def game_id_format(self):
|
def game_id_format(self):
|
||||||
return self.id + "_{runner}_{game_id}"
|
return super().game_id_format + "_{game_internal_id}"
|
||||||
|
|||||||
@@ -22,23 +22,33 @@ from abc import abstractmethod
|
|||||||
from collections.abc import Iterable, Iterator
|
from collections.abc import Iterable, Iterator
|
||||||
from typing import Any, Generator, Optional
|
from typing import Any, Generator, Optional
|
||||||
|
|
||||||
|
from src.errors.friendly_error import FriendlyError
|
||||||
from src.game import Game
|
from src.game import Game
|
||||||
from src.importer.sources.location import Location
|
from src.importer.sources.location import Location, UnresolvableLocationError
|
||||||
|
|
||||||
# Type of the data returned by iterating on a Source
|
# Type of the data returned by iterating on a Source
|
||||||
SourceIterationResult = None | Game | tuple[Game, tuple[Any]]
|
SourceIterationResult = None | Game | tuple[Game, tuple[Any]]
|
||||||
|
|
||||||
|
|
||||||
class SourceIterable(Iterable):
|
class SourceIterator(Iterator):
|
||||||
"""Data producer for a source of games"""
|
"""Data producer for a source of games"""
|
||||||
|
|
||||||
source: "Source" = None
|
source: "Source" = None
|
||||||
|
generator: Generator = None
|
||||||
|
|
||||||
def __init__(self, source: "Source") -> None:
|
def __init__(self, source: "Source") -> None:
|
||||||
|
super().__init__()
|
||||||
self.source = source
|
self.source = source
|
||||||
|
self.generator = self.generator_builder()
|
||||||
|
|
||||||
|
def __iter__(self) -> "SourceIterator":
|
||||||
|
return self
|
||||||
|
|
||||||
|
def __next__(self) -> SourceIterationResult:
|
||||||
|
return next(self.generator)
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def __iter__(self) -> Generator[SourceIterationResult, None, None]:
|
def generator_builder(self) -> Generator[SourceIterationResult, None, None]:
|
||||||
"""
|
"""
|
||||||
Method that returns a generator that produces games
|
Method that returns a generator that produces games
|
||||||
* Should be implemented as a generator method
|
* Should be implemented as a generator method
|
||||||
@@ -57,7 +67,7 @@ class Source(Iterable):
|
|||||||
data_location: Optional[Location] = None
|
data_location: Optional[Location] = None
|
||||||
cache_location: Optional[Location] = None
|
cache_location: Optional[Location] = None
|
||||||
config_location: Optional[Location] = None
|
config_location: Optional[Location] = None
|
||||||
iterable_class: type[SourceIterable]
|
iterator_class: type[SourceIterator]
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def full_name(self) -> str:
|
def full_name(self) -> str:
|
||||||
@@ -78,7 +88,7 @@ class Source(Iterable):
|
|||||||
@property
|
@property
|
||||||
def game_id_format(self) -> str:
|
def game_id_format(self) -> str:
|
||||||
"""The string format used to construct game IDs"""
|
"""The string format used to construct game IDs"""
|
||||||
return self.id + "_{game_id}"
|
return self.name.lower() + "_{game_id}"
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def is_available(self):
|
def is_available(self):
|
||||||
@@ -89,17 +99,29 @@ class Source(Iterable):
|
|||||||
def executable_format(self) -> str:
|
def executable_format(self) -> str:
|
||||||
"""The executable format used to construct game executables"""
|
"""The executable format used to construct game executables"""
|
||||||
|
|
||||||
def __iter__(self) -> Generator[SourceIterationResult, None, None]:
|
def __iter__(self) -> SourceIterator:
|
||||||
"""
|
"""Get an iterator for the source"""
|
||||||
Get an iterator for the source
|
for location_name in (
|
||||||
:raises UnresolvableLocationError: Not iterable if any of the locations are unresolvable
|
locations := {
|
||||||
"""
|
"data": "Data",
|
||||||
for location_name in ("data", "cache", "config"):
|
"cache": "Cache",
|
||||||
|
"config": "Configuration",
|
||||||
|
}.keys()
|
||||||
|
):
|
||||||
location = getattr(self, f"{location_name}_location", None)
|
location = getattr(self, f"{location_name}_location", None)
|
||||||
if location is None:
|
if location is None:
|
||||||
continue
|
continue
|
||||||
|
try:
|
||||||
location.resolve()
|
location.resolve()
|
||||||
return iter(self.iterable_class(self))
|
except UnresolvableLocationError as error:
|
||||||
|
raise FriendlyError(
|
||||||
|
# The variables are the type of location (eg. cache) and the source's name (eg. Steam)
|
||||||
|
"Invalid {} Location for {{}}".format(locations[location_name]),
|
||||||
|
"Pick a new one or disable the source in preferences",
|
||||||
|
(self.name,),
|
||||||
|
(self.name,),
|
||||||
|
) from error
|
||||||
|
return self.iterator_class(self)
|
||||||
|
|
||||||
|
|
||||||
# pylint: disable=abstract-method
|
# pylint: disable=abstract-method
|
||||||
|
|||||||
@@ -18,7 +18,6 @@
|
|||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
import logging
|
|
||||||
import re
|
import re
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from time import time
|
from time import time
|
||||||
@@ -26,12 +25,16 @@ from typing import Iterable
|
|||||||
|
|
||||||
from src import shared
|
from src import shared
|
||||||
from src.game import Game
|
from src.game import Game
|
||||||
from src.importer.sources.location import Location
|
from src.importer.sources.source import (
|
||||||
from src.importer.sources.source import SourceIterable, URLExecutableSource
|
SourceIterationResult,
|
||||||
|
SourceIterator,
|
||||||
|
URLExecutableSource,
|
||||||
|
)
|
||||||
from src.utils.steam import SteamFileHelper, SteamInvalidManifestError
|
from src.utils.steam import SteamFileHelper, SteamInvalidManifestError
|
||||||
|
from src.importer.sources.location import Location
|
||||||
|
|
||||||
|
|
||||||
class SteamSourceIterable(SourceIterable):
|
class SteamSourceIterator(SourceIterator):
|
||||||
source: "SteamSource"
|
source: "SteamSource"
|
||||||
|
|
||||||
def get_manifest_dirs(self) -> Iterable[Path]:
|
def get_manifest_dirs(self) -> Iterable[Path]:
|
||||||
@@ -59,44 +62,39 @@ class SteamSourceIterable(SourceIterable):
|
|||||||
)
|
)
|
||||||
return manifests
|
return manifests
|
||||||
|
|
||||||
def __iter__(self):
|
def generator_builder(self) -> SourceIterationResult:
|
||||||
"""Generator method producing games"""
|
"""Generator method producing games"""
|
||||||
appid_cache = set()
|
appid_cache = set()
|
||||||
manifests = self.get_manifests()
|
manifests = self.get_manifests()
|
||||||
|
|
||||||
added_time = int(time())
|
|
||||||
|
|
||||||
for manifest in manifests:
|
for manifest in manifests:
|
||||||
# Get metadata from manifest
|
# Get metadata from manifest
|
||||||
steam = SteamFileHelper()
|
steam = SteamFileHelper()
|
||||||
try:
|
try:
|
||||||
local_data = steam.get_manifest_data(manifest)
|
local_data = steam.get_manifest_data(manifest)
|
||||||
except (OSError, SteamInvalidManifestError) as error:
|
except (OSError, SteamInvalidManifestError):
|
||||||
logging.debug("Couldn't load appmanifest %s", manifest, exc_info=error)
|
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# Skip non installed games
|
# Skip non installed games
|
||||||
installed_mask = 4
|
installed_mask = 4
|
||||||
if not int(local_data["stateflags"]) & installed_mask:
|
if not int(local_data["stateflags"]) & installed_mask:
|
||||||
logging.debug("Skipped %s: not installed", manifest)
|
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# Skip duplicate appids
|
# Skip duplicate appids
|
||||||
appid = local_data["appid"]
|
appid = local_data["appid"]
|
||||||
if appid in appid_cache:
|
if appid in appid_cache:
|
||||||
logging.debug("Skipped %s: appid already seen during import", manifest)
|
|
||||||
continue
|
continue
|
||||||
appid_cache.add(appid)
|
appid_cache.add(appid)
|
||||||
|
|
||||||
# Build game from local data
|
# Build game from local data
|
||||||
values = {
|
values = {
|
||||||
"added": added_time,
|
"version": shared.SPEC_VERSION,
|
||||||
|
"added": int(time()),
|
||||||
"name": local_data["name"],
|
"name": local_data["name"],
|
||||||
"source": self.source.id,
|
"source": self.source.id,
|
||||||
"game_id": self.source.game_id_format.format(game_id=appid),
|
"game_id": self.source.game_id_format.format(game_id=appid),
|
||||||
"executable": self.source.executable_format.format(game_id=appid),
|
"executable": self.source.executable_format.format(game_id=appid),
|
||||||
}
|
}
|
||||||
game = Game(values)
|
game = Game(values, allow_side_effects=False)
|
||||||
|
|
||||||
# Add official cover image
|
# Add official cover image
|
||||||
image_path = (
|
image_path = (
|
||||||
@@ -110,17 +108,17 @@ class SteamSourceIterable(SourceIterable):
|
|||||||
|
|
||||||
|
|
||||||
class SteamSource(URLExecutableSource):
|
class SteamSource(URLExecutableSource):
|
||||||
name = _("Steam")
|
name = "Steam"
|
||||||
available_on = {"linux", "win32"}
|
available_on = set(("linux", "win32"))
|
||||||
iterable_class = SteamSourceIterable
|
iterator_class = SteamSourceIterator
|
||||||
url_format = "steam://rungameid/{game_id}"
|
url_format = "steam://rungameid/{game_id}"
|
||||||
|
|
||||||
data_location = Location(
|
data_location = Location(
|
||||||
schema_key="steam-location",
|
schema_key="steam-location",
|
||||||
candidates=(
|
candidates=(
|
||||||
shared.home / ".steam" / "steam",
|
"~/.var/app/com.valvesoftware.Steam/data/Steam/",
|
||||||
shared.data_dir / "Steam",
|
shared.data_dir / "Steam/",
|
||||||
shared.flatpak_dir / "com.valvesoftware.Steam" / "data" / "Steam",
|
"~/.steam/",
|
||||||
shared.programfiles32_dir / "Steam",
|
shared.programfiles32_dir / "Steam",
|
||||||
),
|
),
|
||||||
paths={
|
paths={
|
||||||
|
|||||||
99
src/keyboard_emulator.py
Normal file
99
src/keyboard_emulator.py
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
import logging
|
||||||
|
import select
|
||||||
|
from collections import deque
|
||||||
|
|
||||||
|
from gi.repository import GLib
|
||||||
|
from snegg.oeffis import DisconnectedError, Oeffis, SessionClosedError
|
||||||
|
from snegg.ei import Sender, DeviceCapability, EventType, Seat, Device, Event
|
||||||
|
|
||||||
|
|
||||||
|
class PortalError(Exception):
|
||||||
|
"""Error raised when a oeffis portal can't be acquired"""
|
||||||
|
|
||||||
|
|
||||||
|
class KeyboardEmulator:
|
||||||
|
"""
|
||||||
|
A class that triggers keypresses with libei
|
||||||
|
|
||||||
|
Libei docs: https://libinput.pages.freedesktop.org/libei/
|
||||||
|
Snegg docs: https://libinput.pages.freedesktop.org/snegg/snegg.ei.html
|
||||||
|
"""
|
||||||
|
|
||||||
|
app = None
|
||||||
|
queue: deque = None
|
||||||
|
|
||||||
|
sender: Sender = None
|
||||||
|
seat: Seat = None
|
||||||
|
keyboard: Device = None
|
||||||
|
|
||||||
|
def __init__(self, app) -> None:
|
||||||
|
self.app = app
|
||||||
|
self.queue = deque()
|
||||||
|
|
||||||
|
self.app.connect("emulate-key", self.on_emulate_key)
|
||||||
|
GLib.Thread.new(None, self.thread_func)
|
||||||
|
|
||||||
|
def on_emulate_key(self, keyval):
|
||||||
|
self.queue.append(keyval)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_eis_portal() -> Oeffis:
|
||||||
|
"""Get a portal to the eis server"""
|
||||||
|
portal = Oeffis.create()
|
||||||
|
if portal is None:
|
||||||
|
raise PortalError()
|
||||||
|
poll = select.poll()
|
||||||
|
poll.register(portal.fd)
|
||||||
|
while poll.poll():
|
||||||
|
try:
|
||||||
|
if portal.dispatch():
|
||||||
|
# We need to keep the portal object alive so we don't get disconnected
|
||||||
|
return portal
|
||||||
|
except (SessionClosedError, DisconnectedError) as error:
|
||||||
|
raise PortalError() from error
|
||||||
|
|
||||||
|
def thread_func(self):
|
||||||
|
"""Daemon thread entry point"""
|
||||||
|
|
||||||
|
# Connect to the EIS server
|
||||||
|
try:
|
||||||
|
portal = self.get_eis_portal()
|
||||||
|
except PortalError as error:
|
||||||
|
logging.error("Can't get EIS portal", exc_info=error)
|
||||||
|
raise
|
||||||
|
self.sender = Sender.create_for_fd(fd=portal.eis_fd, name="ei-debug-events")
|
||||||
|
|
||||||
|
# Handle sender events
|
||||||
|
poll = select.poll()
|
||||||
|
poll.register(self.sender.fd)
|
||||||
|
while poll.poll():
|
||||||
|
self.sender.dispatch()
|
||||||
|
for event in self.sender.events:
|
||||||
|
self.handle_sender_event(event)
|
||||||
|
|
||||||
|
def handle_sender_event(self, event: Event):
|
||||||
|
"""Handle libei sender (input producer) events"""
|
||||||
|
|
||||||
|
match event.event_type:
|
||||||
|
# The emulated seat is created, we need to specify its capabilities
|
||||||
|
case EventType.SEAT_ADDED:
|
||||||
|
if not event.seat:
|
||||||
|
return
|
||||||
|
self.seat = event.seat
|
||||||
|
self.seat.bind(DeviceCapability.KEYBOARD)
|
||||||
|
|
||||||
|
# A device was added to the seat (here, we're only doing a keyboard)
|
||||||
|
case EventType.DEVICE_ADDED:
|
||||||
|
if not event.device:
|
||||||
|
return
|
||||||
|
self.keyboard = event.device
|
||||||
|
|
||||||
|
# Input can be processed, send keys
|
||||||
|
case EventType.DEVICE_RESUMED:
|
||||||
|
self.keyboard.start_emulating()
|
||||||
|
keyval = self.queue.popleft()
|
||||||
|
self.keyboard.keyboard_key(keyval, True)
|
||||||
|
self.keyboard.frame()
|
||||||
|
self.keyboard.keyboard_key(keyval, False)
|
||||||
|
self.keyboard.frame()
|
||||||
|
self.keyboard.stop_emulating()
|
||||||
@@ -33,8 +33,6 @@ class SessionFileHandler(StreamHandler):
|
|||||||
The files are compressed and older sessions logs are kept up to a small limit.
|
The files are compressed and older sessions logs are kept up to a small limit.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
NUMBER_SUFFIX_POSITION = 1
|
|
||||||
|
|
||||||
backup_count: int
|
backup_count: int
|
||||||
filename: Path
|
filename: Path
|
||||||
log_file: StringIO = None
|
log_file: StringIO = None
|
||||||
@@ -43,79 +41,50 @@ class SessionFileHandler(StreamHandler):
|
|||||||
"""Create the log dir if needed"""
|
"""Create the log dir if needed"""
|
||||||
self.filename.parent.mkdir(exist_ok=True, parents=True)
|
self.filename.parent.mkdir(exist_ok=True, parents=True)
|
||||||
|
|
||||||
def path_is_logfile(self, path: Path) -> bool:
|
|
||||||
return path.is_file() and path.name.startswith(self.filename.stem)
|
|
||||||
|
|
||||||
def path_has_number(self, path: Path) -> bool:
|
|
||||||
try:
|
|
||||||
int(path.suffixes[self.NUMBER_SUFFIX_POSITION][1:])
|
|
||||||
except (ValueError, IndexError):
|
|
||||||
return False
|
|
||||||
return True
|
|
||||||
|
|
||||||
def get_path_number(self, path: Path) -> int:
|
|
||||||
"""Get the number extension in the filename as an int"""
|
|
||||||
suffixes = path.suffixes
|
|
||||||
number = (
|
|
||||||
0
|
|
||||||
if not self.path_has_number(path)
|
|
||||||
else int(suffixes[self.NUMBER_SUFFIX_POSITION][1:])
|
|
||||||
)
|
|
||||||
return number
|
|
||||||
|
|
||||||
def set_path_number(self, path: Path, number: int) -> str:
|
|
||||||
"""Set or add the number extension in the filename"""
|
|
||||||
suffixes = path.suffixes
|
|
||||||
if self.path_has_number(path):
|
|
||||||
suffixes.pop(self.NUMBER_SUFFIX_POSITION)
|
|
||||||
suffixes.insert(self.NUMBER_SUFFIX_POSITION, f".{number}")
|
|
||||||
stem = path.name.split(".", maxsplit=1)[0]
|
|
||||||
new_name = stem + "".join(suffixes)
|
|
||||||
return new_name
|
|
||||||
|
|
||||||
def file_sort_key(self, path: Path) -> int:
|
|
||||||
"""Key function used to sort files"""
|
|
||||||
return self.get_path_number(path) if self.path_has_number(path) else 0
|
|
||||||
|
|
||||||
def get_logfiles(self) -> list[Path]:
|
|
||||||
"""Get the log files"""
|
|
||||||
logfiles = list(filter(self.path_is_logfile, self.filename.parent.iterdir()))
|
|
||||||
logfiles.sort(key=self.file_sort_key, reverse=True)
|
|
||||||
return logfiles
|
|
||||||
|
|
||||||
def rotate_file(self, path: Path):
|
def rotate_file(self, path: Path):
|
||||||
"""Rotate a file's number suffix and remove it if it's too old"""
|
"""Rotate a file's number suffix and remove it if it's too old"""
|
||||||
|
|
||||||
# If uncompressed, compress
|
# Skip non interesting dir entries
|
||||||
if not path.name.endswith(".xz"):
|
if not (path.is_file() and path.name.startswith(self.filename.name)):
|
||||||
compressed_path = path.with_suffix(path.suffix + ".xz")
|
return
|
||||||
with (
|
|
||||||
lzma.open(
|
# Compute the new number suffix
|
||||||
compressed_path,
|
suffixes = path.suffixes
|
||||||
"wt",
|
has_number = len(suffixes) != len(self.filename.suffixes)
|
||||||
format=FORMAT_XZ,
|
current_number = 0 if not has_number else int(suffixes[-1][1:])
|
||||||
preset=PRESET_DEFAULT,
|
new_number = current_number + 1
|
||||||
encoding="utf-8",
|
|
||||||
) as lzma_file,
|
|
||||||
open(path, "r", encoding="utf-8") as original_file,
|
|
||||||
):
|
|
||||||
lzma_file.write(original_file.read())
|
|
||||||
path.unlink()
|
|
||||||
path = compressed_path
|
|
||||||
|
|
||||||
# Rename with new number suffix
|
# Rename with new number suffix
|
||||||
new_number = self.get_path_number(path) + 1
|
if has_number:
|
||||||
new_path_name = self.set_path_number(path, new_number)
|
suffixes.pop()
|
||||||
path = path.rename(path.with_name(new_path_name))
|
suffixes.append(f".{new_number}")
|
||||||
|
stem = path.name.split(".", maxsplit=1)[0]
|
||||||
|
new_name = stem + "".join(suffixes)
|
||||||
|
path = path.rename(path.with_name(new_name))
|
||||||
|
|
||||||
# Remove older files
|
# Remove older files
|
||||||
if new_number > self.backup_count:
|
if new_number > self.backup_count:
|
||||||
path.unlink()
|
path.unlink()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def file_sort_key(self, path: Path) -> int:
|
||||||
|
"""Key function used to sort files"""
|
||||||
|
if not path.name.startswith(self.filename.name):
|
||||||
|
# First all files that aren't logs
|
||||||
|
return -1
|
||||||
|
if path.name == self.filename.name:
|
||||||
|
# Then the latest log file
|
||||||
|
return 0
|
||||||
|
# Then in order the other log files
|
||||||
|
return int(path.suffixes[-1][1:])
|
||||||
|
|
||||||
|
def get_files(self) -> list[Path]:
|
||||||
|
return list(self.filename.parent.iterdir())
|
||||||
|
|
||||||
def rotate(self) -> None:
|
def rotate(self) -> None:
|
||||||
"""Rotate the numbered suffix on the log files and remove old ones"""
|
"""Rotate the numbered suffix on the log files and remove old ones"""
|
||||||
for path in self.get_logfiles():
|
(files := self.get_files()).sort(key=self.file_sort_key, reverse=True)
|
||||||
|
for path in files:
|
||||||
self.rotate_file(path)
|
self.rotate_file(path)
|
||||||
|
|
||||||
def __init__(self, filename: PathLike, backup_count: int = 2) -> None:
|
def __init__(self, filename: PathLike, backup_count: int = 2) -> None:
|
||||||
@@ -123,8 +92,10 @@ class SessionFileHandler(StreamHandler):
|
|||||||
self.backup_count = backup_count
|
self.backup_count = backup_count
|
||||||
self.create_dir()
|
self.create_dir()
|
||||||
self.rotate()
|
self.rotate()
|
||||||
self.log_file = open(self.filename, "w", encoding="utf-8")
|
shared.log_files = self.get_files()
|
||||||
shared.log_files = self.get_logfiles()
|
self.log_file = lzma.open(
|
||||||
|
self.filename, "at", format=FORMAT_XZ, preset=PRESET_DEFAULT
|
||||||
|
)
|
||||||
super().__init__(self.log_file)
|
super().__init__(self.log_file)
|
||||||
|
|
||||||
def close(self) -> None:
|
def close(self) -> None:
|
||||||
|
|||||||
@@ -20,7 +20,6 @@
|
|||||||
import logging
|
import logging
|
||||||
import logging.config as logging_dot_config
|
import logging.config as logging_dot_config
|
||||||
import os
|
import os
|
||||||
import platform
|
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
@@ -36,14 +35,13 @@ def setup_logging():
|
|||||||
app_log_level = os.environ.get("LOGLEVEL", profile_app_log_level).upper()
|
app_log_level = os.environ.get("LOGLEVEL", profile_app_log_level).upper()
|
||||||
lib_log_level = os.environ.get("LIBLOGLEVEL", profile_lib_log_level).upper()
|
lib_log_level = os.environ.get("LIBLOGLEVEL", profile_lib_log_level).upper()
|
||||||
|
|
||||||
log_filename = shared.cache_dir / "cartridges" / "logs" / "cartridges.log"
|
log_filename = shared.cache_dir / "cartridges" / "logs" / "cartridges.log.xz"
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
"version": 1,
|
"version": 1,
|
||||||
"formatters": {
|
"formatters": {
|
||||||
"file_formatter": {
|
"file_formatter": {
|
||||||
"format": "%(asctime)s - %(levelname)s: %(message)s",
|
"format": "%(asctime)s | %(name)s | %(levelname)s | %(message)s"
|
||||||
"datefmt": "%M:%S",
|
|
||||||
},
|
},
|
||||||
"console_formatter": {
|
"console_formatter": {
|
||||||
"format": "%(name)s %(levelname)s - %(message)s",
|
"format": "%(name)s %(levelname)s - %(message)s",
|
||||||
@@ -73,7 +71,7 @@ def setup_logging():
|
|||||||
"PIL": {
|
"PIL": {
|
||||||
"handlers": ["lib_console_handler", "file_handler"],
|
"handlers": ["lib_console_handler", "file_handler"],
|
||||||
"propagate": False,
|
"propagate": False,
|
||||||
"level": "WARNING",
|
"level": "NOTSET",
|
||||||
},
|
},
|
||||||
"urllib3": {
|
"urllib3": {
|
||||||
"handlers": ["lib_console_handler", "file_handler"],
|
"handlers": ["lib_console_handler", "file_handler"],
|
||||||
@@ -93,8 +91,9 @@ def log_system_info():
|
|||||||
"""Log system debug information"""
|
"""Log system debug information"""
|
||||||
|
|
||||||
logging.debug("Starting %s v%s (%s)", shared.APP_ID, shared.VERSION, shared.PROFILE)
|
logging.debug("Starting %s v%s (%s)", shared.APP_ID, shared.VERSION, shared.PROFILE)
|
||||||
|
logging.debug("System: %s", sys.platform)
|
||||||
logging.debug("Python version: %s", sys.version)
|
logging.debug("Python version: %s", sys.version)
|
||||||
if os.getenv("FLATPAK_ID") == shared.APP_ID:
|
if os.getenv("FLATPAK_ID"):
|
||||||
process = subprocess.run(
|
process = subprocess.run(
|
||||||
("flatpak-spawn", "--host", "flatpak", "--version"),
|
("flatpak-spawn", "--host", "flatpak", "--version"),
|
||||||
capture_output=True,
|
capture_output=True,
|
||||||
@@ -102,8 +101,11 @@ def log_system_info():
|
|||||||
check=False,
|
check=False,
|
||||||
)
|
)
|
||||||
logging.debug("Flatpak version: %s", process.stdout.rstrip())
|
logging.debug("Flatpak version: %s", process.stdout.rstrip())
|
||||||
logging.debug("Platform: %s", platform.platform())
|
|
||||||
if os.name == "posix":
|
if os.name == "posix":
|
||||||
for key, value in platform.uname()._asdict().items():
|
uname = os.uname()
|
||||||
logging.debug("\t%s: %s", key.title(), value)
|
logging.debug("Uname info:")
|
||||||
logging.debug("─" * 37)
|
logging.debug("\tsysname: %s", uname.sysname)
|
||||||
|
logging.debug("\trelease: %s", uname.release)
|
||||||
|
logging.debug("\tversion: %s", uname.version)
|
||||||
|
logging.debug("\tmachine: %s", uname.machine)
|
||||||
|
logging.debug("-" * 80)
|
||||||
|
|||||||
116
src/main.py
116
src/main.py
@@ -18,29 +18,30 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
import json
|
import json
|
||||||
|
import logging
|
||||||
import lzma
|
import lzma
|
||||||
import os
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "4.0")
|
gi.require_version("Gtk", "4.0")
|
||||||
gi.require_version("Adw", "1")
|
gi.require_version("Adw", "1")
|
||||||
|
gi.require_version("Manette", "0.2")
|
||||||
|
|
||||||
# pylint: disable=wrong-import-position
|
# pylint: disable=wrong-import-position
|
||||||
from gi.repository import Adw, Gio, GLib, Gtk
|
from gi.repository import Adw, Gdk, Gio, GLib, GObject, Gtk, Manette
|
||||||
|
|
||||||
from src import shared
|
from src import shared
|
||||||
from src.details_window import DetailsWindow
|
from src.details_window import DetailsWindow
|
||||||
from src.game import Game
|
from src.game import Game
|
||||||
from src.importer.importer import Importer
|
from src.importer.importer import Importer
|
||||||
from src.importer.sources.bottles_source import BottlesSource
|
from src.importer.sources.bottles_source import BottlesSource
|
||||||
from src.importer.sources.flatpak_source import FlatpakSource
|
|
||||||
from src.importer.sources.heroic_source import HeroicSource
|
from src.importer.sources.heroic_source import HeroicSource
|
||||||
from src.importer.sources.itch_source import ItchSource
|
from src.importer.sources.itch_source import ItchSource
|
||||||
from src.importer.sources.legendary_source import LegendarySource
|
from src.importer.sources.legendary_source import LegendarySource
|
||||||
from src.importer.sources.lutris_source import LutrisSource
|
from src.importer.sources.lutris_source import LutrisSource
|
||||||
from src.importer.sources.steam_source import SteamSource
|
from src.importer.sources.steam_source import SteamSource
|
||||||
|
from src.keyboard_emulator import KeyboardEmulator
|
||||||
from src.logging.setup import log_system_info, setup_logging
|
from src.logging.setup import log_system_info, setup_logging
|
||||||
from src.preferences import PreferencesWindow
|
from src.preferences import PreferencesWindow
|
||||||
from src.store.managers.display_manager import DisplayManager
|
from src.store.managers.display_manager import DisplayManager
|
||||||
@@ -50,27 +51,85 @@ from src.store.managers.online_cover_manager import OnlineCoverManager
|
|||||||
from src.store.managers.sgdb_manager import SGDBManager
|
from src.store.managers.sgdb_manager import SGDBManager
|
||||||
from src.store.managers.steam_api_manager import SteamAPIManager
|
from src.store.managers.steam_api_manager import SteamAPIManager
|
||||||
from src.store.store import Store
|
from src.store.store import Store
|
||||||
from src.utils.migrate_files_v1_to_v2 import migrate_files_v1_to_v2
|
|
||||||
from src.window import CartridgesWindow
|
from src.window import CartridgesWindow
|
||||||
|
|
||||||
|
|
||||||
class CartridgesApplication(Adw.Application):
|
class CartridgesApplication(Adw.Application):
|
||||||
win = None
|
win = None
|
||||||
|
window_controller = None
|
||||||
|
keyboard_emulator = None
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
shared.store = Store()
|
|
||||||
super().__init__(
|
super().__init__(
|
||||||
application_id=shared.APP_ID, flags=Gio.ApplicationFlags.FLAGS_NONE
|
application_id=shared.APP_ID, flags=Gio.ApplicationFlags.FLAGS_NONE
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@GObject.Signal(name="emulate-key", arg_types=[int])
|
||||||
|
def emulate_key(self, keyval) -> None:
|
||||||
|
"""Signal emitted when the app wants to emulate a keypress"""
|
||||||
|
|
||||||
|
def gamepad_abs_axis(self, _device, event):
|
||||||
|
logging.debug(event.get_absolute())
|
||||||
|
|
||||||
|
def gamepad_hat_axis(self, device, event):
|
||||||
|
device.rumble(1000, 1000, 50)
|
||||||
|
logging.debug(
|
||||||
|
"Gamepad: hat axis: %s, value: %s", *(hat := event.get_hat())[1:3]
|
||||||
|
)
|
||||||
|
|
||||||
|
if hat[2] != 0:
|
||||||
|
self.navigate(hat[1] + hat[2])
|
||||||
|
|
||||||
|
def navigate(self, direction: int):
|
||||||
|
match direction:
|
||||||
|
case 16:
|
||||||
|
self.emit("emulate-key", Gdk.KEY_Up)
|
||||||
|
print("up")
|
||||||
|
case 18:
|
||||||
|
print("down")
|
||||||
|
case 15:
|
||||||
|
print("left")
|
||||||
|
case 17:
|
||||||
|
print("right")
|
||||||
|
|
||||||
|
def print_args(self, *args):
|
||||||
|
print(*args)
|
||||||
|
|
||||||
|
def gamepad_button_pressed(self, _device, event):
|
||||||
|
logging.debug("Gamepad: %s pressed", (button := event.get_button()[1]))
|
||||||
|
|
||||||
|
match button:
|
||||||
|
case 304:
|
||||||
|
print("A button pressed")
|
||||||
|
case 305:
|
||||||
|
print("B button pressed")
|
||||||
|
case 307:
|
||||||
|
print("X button pressed")
|
||||||
|
case 308:
|
||||||
|
print("Y button pressed")
|
||||||
|
case 314:
|
||||||
|
self.win.on_show_hidden_action()
|
||||||
|
|
||||||
|
def gamepad_listen(self, device, *_args):
|
||||||
|
device.connect("button-press-event", self.gamepad_button_pressed)
|
||||||
|
device.connect("hat-axis-event", self.gamepad_hat_axis)
|
||||||
|
|
||||||
|
def log_connected():
|
||||||
|
logging.debug("%s connected", device.get_name())
|
||||||
|
GLib.timeout_add_seconds(60, log_connected)
|
||||||
|
|
||||||
|
log_connected()
|
||||||
|
|
||||||
def do_activate(self): # pylint: disable=arguments-differ
|
def do_activate(self): # pylint: disable=arguments-differ
|
||||||
"""Called on app creation"""
|
"""Called on app creation"""
|
||||||
|
|
||||||
setup_logging()
|
# Setup gamepads
|
||||||
log_system_info()
|
manette_monitor = Manette.Monitor.new()
|
||||||
|
manette_iter = manette_monitor.iterate()
|
||||||
|
|
||||||
if os.name == "nt":
|
while (device := manette_iter.next())[0]:
|
||||||
migrate_files_v1_to_v2()
|
self.gamepad_listen(device[1])
|
||||||
|
self.keyboard_emulator = KeyboardEmulator(self)
|
||||||
|
|
||||||
# Set fallback icon-name
|
# Set fallback icon-name
|
||||||
Gtk.Window.set_default_icon_name(shared.APP_ID)
|
Gtk.Window.set_default_icon_name(shared.APP_ID)
|
||||||
@@ -80,6 +139,16 @@ class CartridgesApplication(Adw.Application):
|
|||||||
if not self.win:
|
if not self.win:
|
||||||
shared.win = self.win = CartridgesWindow(application=self)
|
shared.win = self.win = CartridgesWindow(application=self)
|
||||||
|
|
||||||
|
for index in range(
|
||||||
|
(list_model := self.win.observe_controllers()).get_n_items()
|
||||||
|
):
|
||||||
|
if isinstance((item := list_model.get_item(index)), Gtk.EventControllerKey):
|
||||||
|
self.window_controller = item
|
||||||
|
break
|
||||||
|
|
||||||
|
self.window_controller.connect("key-pressed", self.print_args)
|
||||||
|
self.window_controller.connect("key-released", self.print_args)
|
||||||
|
|
||||||
# Save window geometry
|
# Save window geometry
|
||||||
shared.state_schema.bind(
|
shared.state_schema.bind(
|
||||||
"width", self.win, "default-width", Gio.SettingsBindFlags.DEFAULT
|
"width", self.win, "default-width", Gio.SettingsBindFlags.DEFAULT
|
||||||
@@ -91,9 +160,12 @@ class CartridgesApplication(Adw.Application):
|
|||||||
"is-maximized", self.win, "maximized", Gio.SettingsBindFlags.DEFAULT
|
"is-maximized", self.win, "maximized", Gio.SettingsBindFlags.DEFAULT
|
||||||
)
|
)
|
||||||
|
|
||||||
# Load games from disk
|
# Create the games store ready to load games from disk
|
||||||
|
if not shared.store:
|
||||||
|
shared.store = Store()
|
||||||
shared.store.add_manager(FileManager(), False)
|
shared.store.add_manager(FileManager(), False)
|
||||||
shared.store.add_manager(DisplayManager())
|
shared.store.add_manager(DisplayManager())
|
||||||
|
|
||||||
self.load_games_from_disk()
|
self.load_games_from_disk()
|
||||||
|
|
||||||
# Add rest of the managers for game imports
|
# Add rest of the managers for game imports
|
||||||
@@ -101,7 +173,7 @@ class CartridgesApplication(Adw.Application):
|
|||||||
shared.store.add_manager(SteamAPIManager())
|
shared.store.add_manager(SteamAPIManager())
|
||||||
shared.store.add_manager(OnlineCoverManager())
|
shared.store.add_manager(OnlineCoverManager())
|
||||||
shared.store.add_manager(SGDBManager())
|
shared.store.add_manager(SGDBManager())
|
||||||
shared.store.toggle_manager_in_pipelines(FileManager, True)
|
shared.store.enable_manager_in_pipelines(FileManager)
|
||||||
|
|
||||||
# Create actions
|
# Create actions
|
||||||
self.create_actions(
|
self.create_actions(
|
||||||
@@ -146,24 +218,14 @@ class CartridgesApplication(Adw.Application):
|
|||||||
if shared.games_dir.is_dir():
|
if shared.games_dir.is_dir():
|
||||||
for game_file in shared.games_dir.iterdir():
|
for game_file in shared.games_dir.iterdir():
|
||||||
data = json.load(game_file.open())
|
data = json.load(game_file.open())
|
||||||
game = Game(data)
|
game = Game(data, allow_side_effects=False)
|
||||||
shared.store.add_game(game, {"skip_save": True})
|
shared.store.add_game(game, {"skip_save": True})
|
||||||
|
|
||||||
def on_about_action(self, *_args):
|
def on_about_action(self, *_args):
|
||||||
# Get the debug info from the log files
|
|
||||||
debug_str = ""
|
debug_str = ""
|
||||||
for i, path in enumerate(shared.log_files):
|
for path in shared.log_files:
|
||||||
# Add a horizontal line between runs
|
log_file = lzma.open(path, "rt", encoding="utf-8")
|
||||||
if i > 0:
|
|
||||||
debug_str += "─" * 37 + "\n"
|
|
||||||
# Add the run's logs
|
|
||||||
log_file = (
|
|
||||||
lzma.open(path, "rt", encoding="utf-8")
|
|
||||||
if path.name.endswith(".xz")
|
|
||||||
else open(path, "r", encoding="utf-8")
|
|
||||||
)
|
|
||||||
debug_str += log_file.read()
|
debug_str += log_file.read()
|
||||||
log_file.close()
|
|
||||||
|
|
||||||
about = Adw.AboutWindow(
|
about = Adw.AboutWindow(
|
||||||
transient_for=self.win,
|
transient_for=self.win,
|
||||||
@@ -187,7 +249,6 @@ class CartridgesApplication(Adw.Application):
|
|||||||
# Translators: Replace this with your name for it to show up in the about window
|
# Translators: Replace this with your name for it to show up in the about window
|
||||||
translator_credits=_("translator_credits"),
|
translator_credits=_("translator_credits"),
|
||||||
debug_info=debug_str,
|
debug_info=debug_str,
|
||||||
debug_info_filename="cartridges.log",
|
|
||||||
)
|
)
|
||||||
about.present()
|
about.present()
|
||||||
|
|
||||||
@@ -230,9 +291,6 @@ class CartridgesApplication(Adw.Application):
|
|||||||
if shared.schema.get_boolean("bottles"):
|
if shared.schema.get_boolean("bottles"):
|
||||||
importer.add_source(BottlesSource())
|
importer.add_source(BottlesSource())
|
||||||
|
|
||||||
if shared.schema.get_boolean("flatpak"):
|
|
||||||
importer.add_source(FlatpakSource())
|
|
||||||
|
|
||||||
if shared.schema.get_boolean("itch"):
|
if shared.schema.get_boolean("itch"):
|
||||||
importer.add_source(ItchSource())
|
importer.add_source(ItchSource())
|
||||||
|
|
||||||
@@ -287,5 +345,7 @@ class CartridgesApplication(Adw.Application):
|
|||||||
|
|
||||||
def main(_version):
|
def main(_version):
|
||||||
"""App entry point"""
|
"""App entry point"""
|
||||||
|
setup_logging()
|
||||||
|
log_system_info()
|
||||||
app = CartridgesApplication()
|
app = CartridgesApplication()
|
||||||
return app.run(sys.argv)
|
return app.run(sys.argv)
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ install_data(
|
|||||||
'details_window.py',
|
'details_window.py',
|
||||||
'game.py',
|
'game.py',
|
||||||
'game_cover.py',
|
'game_cover.py',
|
||||||
|
'keyboard_emulator.py',
|
||||||
configure_file(
|
configure_file(
|
||||||
input: 'shared.py.in',
|
input: 'shared.py.in',
|
||||||
output: 'shared.py',
|
output: 'shared.py',
|
||||||
|
|||||||
@@ -26,11 +26,9 @@ from gi.repository import Adw, Gio, GLib, Gtk
|
|||||||
|
|
||||||
from src import shared
|
from src import shared
|
||||||
from src.importer.sources.bottles_source import BottlesSource
|
from src.importer.sources.bottles_source import BottlesSource
|
||||||
from src.importer.sources.flatpak_source import FlatpakSource
|
|
||||||
from src.importer.sources.heroic_source import HeroicSource
|
from src.importer.sources.heroic_source import HeroicSource
|
||||||
from src.importer.sources.itch_source import ItchSource
|
from src.importer.sources.itch_source import ItchSource
|
||||||
from src.importer.sources.legendary_source import LegendarySource
|
from src.importer.sources.legendary_source import LegendarySource
|
||||||
from src.importer.sources.location import UnresolvableLocationError
|
|
||||||
from src.importer.sources.lutris_source import LutrisSource
|
from src.importer.sources.lutris_source import LutrisSource
|
||||||
from src.importer.sources.source import Source
|
from src.importer.sources.source import Source
|
||||||
from src.importer.sources.steam_source import SteamSource
|
from src.importer.sources.steam_source import SteamSource
|
||||||
@@ -61,14 +59,12 @@ class PreferencesWindow(Adw.PreferencesWindow):
|
|||||||
lutris_cache_action_row = Gtk.Template.Child()
|
lutris_cache_action_row = Gtk.Template.Child()
|
||||||
lutris_cache_file_chooser_button = Gtk.Template.Child()
|
lutris_cache_file_chooser_button = Gtk.Template.Child()
|
||||||
lutris_import_steam_switch = Gtk.Template.Child()
|
lutris_import_steam_switch = Gtk.Template.Child()
|
||||||
lutris_import_flatpak_switch = Gtk.Template.Child()
|
|
||||||
|
|
||||||
heroic_expander_row = Gtk.Template.Child()
|
heroic_expander_row = Gtk.Template.Child()
|
||||||
heroic_config_action_row = Gtk.Template.Child()
|
heroic_config_action_row = Gtk.Template.Child()
|
||||||
heroic_config_file_chooser_button = Gtk.Template.Child()
|
heroic_config_file_chooser_button = Gtk.Template.Child()
|
||||||
heroic_import_epic_switch = Gtk.Template.Child()
|
heroic_import_epic_switch = Gtk.Template.Child()
|
||||||
heroic_import_gog_switch = Gtk.Template.Child()
|
heroic_import_gog_switch = Gtk.Template.Child()
|
||||||
heroic_import_amazon_switch = Gtk.Template.Child()
|
|
||||||
heroic_import_sideload_switch = Gtk.Template.Child()
|
heroic_import_sideload_switch = Gtk.Template.Child()
|
||||||
|
|
||||||
bottles_expander_row = Gtk.Template.Child()
|
bottles_expander_row = Gtk.Template.Child()
|
||||||
@@ -83,11 +79,6 @@ class PreferencesWindow(Adw.PreferencesWindow):
|
|||||||
legendary_config_action_row = Gtk.Template.Child()
|
legendary_config_action_row = Gtk.Template.Child()
|
||||||
legendary_config_file_chooser_button = Gtk.Template.Child()
|
legendary_config_file_chooser_button = Gtk.Template.Child()
|
||||||
|
|
||||||
flatpak_expander_row = Gtk.Template.Child()
|
|
||||||
flatpak_data_action_row = Gtk.Template.Child()
|
|
||||||
flatpak_data_file_chooser_button = Gtk.Template.Child()
|
|
||||||
flatpak_import_launchers_switch = Gtk.Template.Child()
|
|
||||||
|
|
||||||
sgdb_key_group = Gtk.Template.Child()
|
sgdb_key_group = Gtk.Template.Child()
|
||||||
sgdb_key_entry_row = Gtk.Template.Child()
|
sgdb_key_entry_row = Gtk.Template.Child()
|
||||||
sgdb_switch = Gtk.Template.Child()
|
sgdb_switch = Gtk.Template.Child()
|
||||||
@@ -101,7 +92,6 @@ class PreferencesWindow(Adw.PreferencesWindow):
|
|||||||
remove_all_games_button = Gtk.Template.Child()
|
remove_all_games_button = Gtk.Template.Child()
|
||||||
|
|
||||||
removed_games = set()
|
removed_games = set()
|
||||||
warning_menu_buttons = {}
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
@@ -134,7 +124,6 @@ class PreferencesWindow(Adw.PreferencesWindow):
|
|||||||
# Sources settings
|
# Sources settings
|
||||||
for source_class in (
|
for source_class in (
|
||||||
BottlesSource,
|
BottlesSource,
|
||||||
FlatpakSource,
|
|
||||||
HeroicSource,
|
HeroicSource,
|
||||||
ItchSource,
|
ItchSource,
|
||||||
LegendarySource,
|
LegendarySource,
|
||||||
@@ -144,7 +133,7 @@ class PreferencesWindow(Adw.PreferencesWindow):
|
|||||||
source = source_class()
|
source = source_class()
|
||||||
if not source.is_available:
|
if not source.is_available:
|
||||||
expander_row = getattr(self, f"{source.id}_expander_row")
|
expander_row = getattr(self, f"{source.id}_expander_row")
|
||||||
expander_row.set_visible(False)
|
expander_row.remove()
|
||||||
else:
|
else:
|
||||||
self.init_source_row(source)
|
self.init_source_row(source)
|
||||||
|
|
||||||
@@ -179,12 +168,9 @@ class PreferencesWindow(Adw.PreferencesWindow):
|
|||||||
"cover-launches-game",
|
"cover-launches-game",
|
||||||
"high-quality-images",
|
"high-quality-images",
|
||||||
"lutris-import-steam",
|
"lutris-import-steam",
|
||||||
"lutris-import-flatpak",
|
|
||||||
"heroic-import-epic",
|
"heroic-import-epic",
|
||||||
"heroic-import-gog",
|
"heroic-import-gog",
|
||||||
"heroic-import-amazon",
|
|
||||||
"heroic-import-sideload",
|
"heroic-import-sideload",
|
||||||
"flatpak-import-launchers",
|
|
||||||
"sgdb",
|
"sgdb",
|
||||||
"sgdb-prefer",
|
"sgdb-prefer",
|
||||||
"sgdb-animated",
|
"sgdb-animated",
|
||||||
@@ -216,9 +202,10 @@ class PreferencesWindow(Adw.PreferencesWindow):
|
|||||||
self.toast.dismiss()
|
self.toast.dismiss()
|
||||||
|
|
||||||
def remove_all_games(self, *_args):
|
def remove_all_games(self, *_args):
|
||||||
for game in shared.store:
|
for game in self.win.games.values():
|
||||||
if not game.removed:
|
if not game.removed:
|
||||||
self.removed_games.add(game)
|
self.removed_games.add(game)
|
||||||
|
|
||||||
game.removed = True
|
game.removed = True
|
||||||
game.save()
|
game.save()
|
||||||
game.update()
|
game.update()
|
||||||
@@ -228,7 +215,7 @@ class PreferencesWindow(Adw.PreferencesWindow):
|
|||||||
|
|
||||||
self.add_toast(self.toast)
|
self.add_toast(self.toast)
|
||||||
|
|
||||||
def reset_app(self, *_args):
|
def reset_app(*_args):
|
||||||
rmtree(shared.data_dir / "cartridges", True)
|
rmtree(shared.data_dir / "cartridges", True)
|
||||||
rmtree(shared.config_dir / "cartridges", True)
|
rmtree(shared.config_dir / "cartridges", True)
|
||||||
rmtree(shared.cache_dir / "cartridges", True)
|
rmtree(shared.cache_dir / "cartridges", True)
|
||||||
@@ -254,65 +241,15 @@ class PreferencesWindow(Adw.PreferencesWindow):
|
|||||||
if not action_row:
|
if not action_row:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
# Historically "location" meant data or config, so the key stays shared
|
||||||
infix = "-cache" if location == "cache" else ""
|
infix = "-cache" if location == "cache" else ""
|
||||||
key = f"{source.id}{infix}-location"
|
key = f"{source.id}{infix}-location"
|
||||||
path = Path(shared.schema.get_string(key)).expanduser()
|
path = Path(shared.schema.get_string(key)).expanduser()
|
||||||
|
|
||||||
# Remove the path prefix if picked via Flatpak portal
|
# Remove the path if the dir is picked via the Flatpak portal
|
||||||
subtitle = re.sub("/run/user/\\d*/doc/.*/", "", str(path))
|
subtitle = re.sub("/run/user/\\d*/doc/.*/", "", str(path))
|
||||||
action_row.set_subtitle(subtitle)
|
action_row.set_subtitle(subtitle)
|
||||||
|
|
||||||
def resolve_locations(self, source):
|
|
||||||
"""Resolve locations and add a warning if location cannot be found"""
|
|
||||||
|
|
||||||
def clear_warning_selection(_widget, label):
|
|
||||||
label.select_region(-1, -1)
|
|
||||||
|
|
||||||
for location_name in ("data", "config", "cache"):
|
|
||||||
action_row = getattr(self, f"{source.id}_{location_name}_action_row", None)
|
|
||||||
if not action_row:
|
|
||||||
continue
|
|
||||||
|
|
||||||
try:
|
|
||||||
getattr(source, f"{location_name}_location", None).resolve()
|
|
||||||
|
|
||||||
except UnresolvableLocationError:
|
|
||||||
popover = Gtk.Popover(
|
|
||||||
child=(
|
|
||||||
label := Gtk.Label(
|
|
||||||
label=(
|
|
||||||
'<span rise="12pt"><b><big>'
|
|
||||||
+ _("Installation Not Found")
|
|
||||||
+ "</big></b></span>\n"
|
|
||||||
+ _("Select a valid directory.")
|
|
||||||
),
|
|
||||||
use_markup=True,
|
|
||||||
wrap=True,
|
|
||||||
max_width_chars=50,
|
|
||||||
halign=Gtk.Align.CENTER,
|
|
||||||
valign=Gtk.Align.CENTER,
|
|
||||||
justify=Gtk.Justification.CENTER,
|
|
||||||
margin_top=9,
|
|
||||||
margin_bottom=9,
|
|
||||||
margin_start=12,
|
|
||||||
margin_end=12,
|
|
||||||
selectable=True,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
popover.connect("show", clear_warning_selection, label)
|
|
||||||
|
|
||||||
menu_button = Gtk.MenuButton(
|
|
||||||
icon_name="dialog-warning-symbolic",
|
|
||||||
valign=Gtk.Align.CENTER,
|
|
||||||
popover=popover,
|
|
||||||
)
|
|
||||||
menu_button.add_css_class("warning")
|
|
||||||
|
|
||||||
action_row.add_prefix(menu_button)
|
|
||||||
self.warning_menu_buttons[source.id] = menu_button
|
|
||||||
|
|
||||||
def init_source_row(self, source: Source):
|
def init_source_row(self, source: Source):
|
||||||
"""Initialize a preference row for a source class"""
|
"""Initialize a preference row for a source class"""
|
||||||
|
|
||||||
@@ -334,33 +271,20 @@ class PreferencesWindow(Adw.PreferencesWindow):
|
|||||||
shared.schema.set_string(key, value)
|
shared.schema.set_string(key, value)
|
||||||
# Update the row
|
# Update the row
|
||||||
self.update_source_action_row_paths(source)
|
self.update_source_action_row_paths(source)
|
||||||
|
|
||||||
if self.warning_menu_buttons.get(source.id):
|
|
||||||
action_row = getattr(
|
|
||||||
self, f"{source.id}_{location_name}_action_row", None
|
|
||||||
)
|
|
||||||
action_row.remove(self.warning_menu_buttons[source.id])
|
|
||||||
self.warning_menu_buttons.pop(source.id)
|
|
||||||
|
|
||||||
logging.debug("User-set value for schema key %s: %s", key, value)
|
logging.debug("User-set value for schema key %s: %s", key, value)
|
||||||
|
|
||||||
# Bad picked location, inform user
|
# Bad picked location, inform user
|
||||||
else:
|
else:
|
||||||
title = _("Invalid Directory")
|
if location_name == "cache":
|
||||||
match location_name:
|
title = "Cache directory not found"
|
||||||
case "cache":
|
subtitle_format = "Select the {} cache directory."
|
||||||
# The variable is the name of the source
|
else:
|
||||||
subtitle_format = _("Select the {} cache directory.")
|
title = "Installation directory not found"
|
||||||
case "config":
|
subtitle_format = "Select the {} installation directory."
|
||||||
# The variable is the name of the source
|
|
||||||
subtitle_format = _("Select the {} configuration directory.")
|
|
||||||
case "data":
|
|
||||||
# The variable is the name of the source
|
|
||||||
subtitle_format = _("Select the {} data directory.")
|
|
||||||
dialog = create_dialog(
|
dialog = create_dialog(
|
||||||
self,
|
self,
|
||||||
title,
|
_(title),
|
||||||
subtitle_format.format(source.name),
|
_(subtitle_format).format(source.name),
|
||||||
"choose_folder",
|
"choose_folder",
|
||||||
_("Set Location"),
|
_("Set Location"),
|
||||||
)
|
)
|
||||||
@@ -387,5 +311,4 @@ class PreferencesWindow(Adw.PreferencesWindow):
|
|||||||
button.connect("clicked", self.choose_folder, set_dir, location)
|
button.connect("clicked", self.choose_folder, set_dir, location)
|
||||||
|
|
||||||
# Set the source row subtitles
|
# Set the source row subtitles
|
||||||
self.resolve_locations(source)
|
|
||||||
self.update_source_action_row_paths(source)
|
self.update_source_action_row_paths(source)
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
import os
|
import os
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from gi.repository import Gdk, Gio, GLib
|
from gi.repository import Gdk, Gio
|
||||||
|
|
||||||
APP_ID = "@APP_ID@"
|
APP_ID = "@APP_ID@"
|
||||||
VERSION = "@VERSION@"
|
VERSION = "@VERSION@"
|
||||||
@@ -31,11 +31,21 @@ SPEC_VERSION = 1.5 # The version of the game_id.json spec
|
|||||||
schema = Gio.Settings.new(APP_ID)
|
schema = Gio.Settings.new(APP_ID)
|
||||||
state_schema = Gio.Settings.new(APP_ID + ".State")
|
state_schema = Gio.Settings.new(APP_ID + ".State")
|
||||||
|
|
||||||
home = Path.home()
|
data_dir = (
|
||||||
data_dir = Path(GLib.get_user_data_dir())
|
Path(os.getenv("XDG_DATA_HOME"))
|
||||||
config_dir = Path(GLib.get_user_config_dir())
|
if "XDG_DATA_HOME" in os.environ
|
||||||
cache_dir = Path(GLib.get_user_cache_dir())
|
else Path.home() / ".local" / "share"
|
||||||
flatpak_dir = home / ".var" / "app"
|
)
|
||||||
|
config_dir = (
|
||||||
|
Path(os.getenv("XDG_CONFIG_HOME"))
|
||||||
|
if "XDG_CONFIG_HOME" in os.environ
|
||||||
|
else Path.home() / ".config"
|
||||||
|
)
|
||||||
|
cache_dir = (
|
||||||
|
Path(os.getenv("XDG_CACHE_HOME"))
|
||||||
|
if "XDG_CACHE_HOME" in os.environ
|
||||||
|
else Path.home() / ".cache"
|
||||||
|
)
|
||||||
|
|
||||||
games_dir = data_dir / "cartridges" / "games"
|
games_dir = data_dir / "cartridges" / "games"
|
||||||
covers_dir = data_dir / "cartridges" / "covers"
|
covers_dir = data_dir / "cartridges" / "covers"
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
from src import shared
|
||||||
from src.game import Game
|
from src.game import Game
|
||||||
from src.game_cover import GameCover
|
from src.game_cover import GameCover
|
||||||
from src.store.managers.manager import Manager
|
from src.store.managers.manager import Manager
|
||||||
@@ -31,6 +32,7 @@ class DisplayManager(Manager):
|
|||||||
signals = {"update-ready"}
|
signals = {"update-ready"}
|
||||||
|
|
||||||
def manager_logic(self, game: Game, _additional_data: dict) -> None:
|
def manager_logic(self, game: Game, _additional_data: dict) -> None:
|
||||||
|
shared.win.games[game.game_id] = game
|
||||||
if game.get_parent():
|
if game.get_parent():
|
||||||
game.get_parent().get_parent().remove(game)
|
game.get_parent().get_parent().remove(game)
|
||||||
if game.get_parent():
|
if game.get_parent():
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
# local_cover_manager.py
|
# local_cover_manager.py
|
||||||
#
|
#
|
||||||
# Copyright 2023 Geoffrey Coulaud
|
# Copyright 2023 Geoffrey Coulaud
|
||||||
# Copyright 2023 kramo
|
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
@@ -18,15 +17,12 @@
|
|||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
import logging
|
from pathlib import Path
|
||||||
|
|
||||||
from gi.repository import GdkPixbuf
|
|
||||||
|
|
||||||
from src import shared
|
|
||||||
from src.game import Game
|
from src.game import Game
|
||||||
from src.store.managers.manager import Manager
|
from src.store.managers.manager import Manager
|
||||||
from src.store.managers.steam_api_manager import SteamAPIManager
|
from src.store.managers.steam_api_manager import SteamAPIManager
|
||||||
from src.utils.save_cover import resize_cover, save_cover
|
from src.utils.save_cover import save_cover, resize_cover
|
||||||
|
|
||||||
|
|
||||||
class LocalCoverManager(Manager):
|
class LocalCoverManager(Manager):
|
||||||
@@ -35,40 +31,12 @@ class LocalCoverManager(Manager):
|
|||||||
run_after = (SteamAPIManager,)
|
run_after = (SteamAPIManager,)
|
||||||
|
|
||||||
def manager_logic(self, game: Game, additional_data: dict) -> None:
|
def manager_logic(self, game: Game, additional_data: dict) -> None:
|
||||||
if image_path := additional_data.get("local_image_path"):
|
# Ensure that the cover path is in the additional data
|
||||||
if not image_path.is_file():
|
try:
|
||||||
logging.error("Local image path is not a file: %s", image_path)
|
image_path: Path = additional_data["local_image_path"]
|
||||||
|
except KeyError:
|
||||||
return
|
return
|
||||||
|
if not image_path.is_file():
|
||||||
|
return
|
||||||
|
# Save the image
|
||||||
save_cover(game.game_id, resize_cover(image_path))
|
save_cover(game.game_id, resize_cover(image_path))
|
||||||
elif icon_path := additional_data.get("local_icon_path"):
|
|
||||||
cover_width, cover_height = shared.image_size
|
|
||||||
|
|
||||||
dest_width = cover_width * 0.7
|
|
||||||
dest_height = cover_width * 0.7
|
|
||||||
|
|
||||||
dest_x = cover_width * 0.15
|
|
||||||
dest_y = (cover_height - dest_height) / 2
|
|
||||||
|
|
||||||
image = GdkPixbuf.Pixbuf.new_from_file(str(icon_path)).scale_simple(
|
|
||||||
dest_width, dest_height, GdkPixbuf.InterpType.BILINEAR
|
|
||||||
)
|
|
||||||
|
|
||||||
cover = image.scale_simple(
|
|
||||||
1, 2, GdkPixbuf.InterpType.BILINEAR
|
|
||||||
).scale_simple(cover_width, cover_height, GdkPixbuf.InterpType.BILINEAR)
|
|
||||||
|
|
||||||
image.composite(
|
|
||||||
cover,
|
|
||||||
dest_x,
|
|
||||||
dest_y,
|
|
||||||
dest_width,
|
|
||||||
dest_height,
|
|
||||||
dest_x,
|
|
||||||
dest_y,
|
|
||||||
1,
|
|
||||||
1,
|
|
||||||
GdkPixbuf.InterpType.BILINEAR,
|
|
||||||
255,
|
|
||||||
)
|
|
||||||
|
|
||||||
save_cover(game.game_id, resize_cover(pixbuf=cover))
|
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ class OnlineCoverManager(Manager):
|
|||||||
"""Manager that downloads game covers from URLs"""
|
"""Manager that downloads game covers from URLs"""
|
||||||
|
|
||||||
run_after = (LocalCoverManager,)
|
run_after = (LocalCoverManager,)
|
||||||
retryable_on = (HTTPError, SSLError, ConnectionError)
|
retryable_on = (HTTPError, SSLError)
|
||||||
|
|
||||||
def save_composited_cover(
|
def save_composited_cover(
|
||||||
self,
|
self,
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ from src.utils.steam import (
|
|||||||
class SteamAPIManager(AsyncManager):
|
class SteamAPIManager(AsyncManager):
|
||||||
"""Manager in charge of completing a game's data from the Steam API"""
|
"""Manager in charge of completing a game's data from the Steam API"""
|
||||||
|
|
||||||
retryable_on = (HTTPError, SSLError, ConnectionError)
|
retryable_on = (HTTPError, SSLError)
|
||||||
|
|
||||||
steam_api_helper: SteamAPIHelper = None
|
steam_api_helper: SteamAPIHelper = None
|
||||||
steam_rate_limiter: SteamRateLimiter = None
|
steam_rate_limiter: SteamRateLimiter = None
|
||||||
|
|||||||
@@ -18,7 +18,6 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
from typing import MutableMapping, Generator, Any
|
|
||||||
|
|
||||||
from src import shared
|
from src import shared
|
||||||
from src.game import Game
|
from src.game import Game
|
||||||
@@ -32,59 +31,24 @@ class Store:
|
|||||||
managers: dict[type[Manager], Manager]
|
managers: dict[type[Manager], Manager]
|
||||||
pipeline_managers: set[Manager]
|
pipeline_managers: set[Manager]
|
||||||
pipelines: dict[str, Pipeline]
|
pipelines: dict[str, Pipeline]
|
||||||
source_games: MutableMapping[str, MutableMapping[str, Game]]
|
games: dict[str, Game]
|
||||||
|
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
self.managers = {}
|
self.managers = {}
|
||||||
self.pipeline_managers = set()
|
self.pipeline_managers = set()
|
||||||
self.pipelines = {}
|
self.pipelines = {}
|
||||||
self.source_games = {}
|
self.games = {}
|
||||||
|
|
||||||
def __contains__(self, obj: object) -> bool:
|
|
||||||
"""Check if the game is present in the store with the `in` keyword"""
|
|
||||||
if not isinstance(obj, Game):
|
|
||||||
return False
|
|
||||||
if not (source_mapping := self.source_games.get(obj.source)):
|
|
||||||
return False
|
|
||||||
return obj.game_id in source_mapping
|
|
||||||
|
|
||||||
def __iter__(self) -> Generator[Game, None, None]:
|
|
||||||
"""Iterate through the games in the store with `for ... in`"""
|
|
||||||
for _source_id, games_mapping in self.source_games.items():
|
|
||||||
for _game_id, game in games_mapping.items():
|
|
||||||
yield game
|
|
||||||
|
|
||||||
def __len__(self) -> int:
|
|
||||||
"""Get the number of games in the store with the `len` builtin"""
|
|
||||||
return sum(len(source_mapping) for source_mapping in self.source_games)
|
|
||||||
|
|
||||||
def __getitem__(self, game_id: str) -> Game:
|
|
||||||
"""Get a game by its id with `store["game_id_goes_here"]`"""
|
|
||||||
for game in iter(self):
|
|
||||||
if game.game_id == game_id:
|
|
||||||
return game
|
|
||||||
raise KeyError("Game not found in store")
|
|
||||||
|
|
||||||
def get(self, game_id: str, default: Any = None) -> Game | Any:
|
|
||||||
"""Get a game by its ID, with a fallback if not found"""
|
|
||||||
try:
|
|
||||||
game = self[game_id]
|
|
||||||
return game
|
|
||||||
except KeyError:
|
|
||||||
return default
|
|
||||||
|
|
||||||
def add_manager(self, manager: Manager, in_pipeline=True):
|
def add_manager(self, manager: Manager, in_pipeline=True):
|
||||||
"""Add a manager to the store"""
|
"""Add a manager to the store"""
|
||||||
manager_type = type(manager)
|
manager_type = type(manager)
|
||||||
self.managers[manager_type] = manager
|
self.managers[manager_type] = manager
|
||||||
self.toggle_manager_in_pipelines(manager_type, in_pipeline)
|
if in_pipeline:
|
||||||
|
self.enable_manager_in_pipelines(manager_type)
|
||||||
|
|
||||||
def toggle_manager_in_pipelines(self, manager_type: type[Manager], enable: bool):
|
def enable_manager_in_pipelines(self, manager_type: type[Manager]):
|
||||||
"""Change if a manager should run in new pipelines"""
|
"""Make a manager run in new pipelines"""
|
||||||
if enable:
|
|
||||||
self.pipeline_managers.add(self.managers[manager_type])
|
self.pipeline_managers.add(self.managers[manager_type])
|
||||||
else:
|
|
||||||
self.pipeline_managers.discard(self.managers[manager_type])
|
|
||||||
|
|
||||||
def cleanup_game(self, game: Game) -> None:
|
def cleanup_game(self, game: Game) -> None:
|
||||||
"""Remove a game's files"""
|
"""Remove a game's files"""
|
||||||
@@ -110,7 +74,7 @@ class Store:
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
# Handle game duplicates
|
# Handle game duplicates
|
||||||
stored_game = self.get(game.game_id)
|
stored_game = self.games.get(game.game_id)
|
||||||
if not stored_game:
|
if not stored_game:
|
||||||
# New game, do as normal
|
# New game, do as normal
|
||||||
logging.debug("New store game %s (%s)", game.name, game.game_id)
|
logging.debug("New store game %s (%s)", game.name, game.game_id)
|
||||||
@@ -132,15 +96,11 @@ class Store:
|
|||||||
for signal in manager.signals:
|
for signal in manager.signals:
|
||||||
game.connect(signal, manager.execute_resilient_manager_logic)
|
game.connect(signal, manager.execute_resilient_manager_logic)
|
||||||
|
|
||||||
# Add the game to the store
|
|
||||||
if not game.source in self.source_games:
|
|
||||||
self.source_games[game.source] = {}
|
|
||||||
self.source_games[game.source][game.game_id] = game
|
|
||||||
|
|
||||||
# Run the pipeline for the game
|
# Run the pipeline for the game
|
||||||
if not run_pipeline:
|
if not run_pipeline:
|
||||||
return None
|
return None
|
||||||
pipeline = Pipeline(game, additional_data, self.pipeline_managers)
|
pipeline = Pipeline(game, additional_data, self.pipeline_managers)
|
||||||
|
self.games[game.game_id] = game
|
||||||
self.pipelines[game.game_id] = pipeline
|
self.pipelines[game.game_id] = pipeline
|
||||||
pipeline.advance()
|
pipeline.advance()
|
||||||
return pipeline
|
return pipeline
|
||||||
|
|||||||
@@ -1,128 +0,0 @@
|
|||||||
# migrate_files_v1_to_v2.py
|
|
||||||
#
|
|
||||||
# Copyright 2023 Geoffrey Coulaud
|
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
import json
|
|
||||||
import logging
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
from src import shared
|
|
||||||
|
|
||||||
old_data_dir = Path.home() / ".local" / "share"
|
|
||||||
old_cartridges_data_dir = old_data_dir / "cartridges"
|
|
||||||
migrated_file_path = old_cartridges_data_dir / ".migrated"
|
|
||||||
old_games_dir = old_cartridges_data_dir / "games"
|
|
||||||
old_covers_dir = old_cartridges_data_dir / "covers"
|
|
||||||
|
|
||||||
|
|
||||||
def migrate_game_covers(game_path: Path):
|
|
||||||
"""Migrate a game covers from a source game path to the current dir"""
|
|
||||||
for suffix in (".tiff", ".gif"):
|
|
||||||
cover_path = old_covers_dir / game_path.with_suffix(suffix).name
|
|
||||||
if not cover_path.is_file():
|
|
||||||
continue
|
|
||||||
destination_cover_path = shared.covers_dir / cover_path.name
|
|
||||||
logging.info("Moving %s -> %s", str(cover_path), str(destination_cover_path))
|
|
||||||
cover_path.rename(destination_cover_path)
|
|
||||||
|
|
||||||
|
|
||||||
def migrate_files_v1_to_v2():
|
|
||||||
"""
|
|
||||||
Migrate user data from the v1.X locations to the latest location.
|
|
||||||
|
|
||||||
Fix for commit 4a204442b5d8ba2e918f8c2605d72e483bf35efd
|
|
||||||
where the windows directories for data, config and cache changed.
|
|
||||||
"""
|
|
||||||
|
|
||||||
# Skip if there is no old dir
|
|
||||||
# Skip if old == current
|
|
||||||
# Skip if already migrated
|
|
||||||
if (
|
|
||||||
not old_data_dir.is_dir()
|
|
||||||
or str(old_data_dir) == str(shared.data_dir)
|
|
||||||
or migrated_file_path.is_file()
|
|
||||||
):
|
|
||||||
return
|
|
||||||
|
|
||||||
logging.info("Migrating data dir %s", str(old_data_dir))
|
|
||||||
|
|
||||||
# Create new directories
|
|
||||||
shared.games_dir.mkdir(parents=True, exist_ok=True)
|
|
||||||
shared.covers_dir.mkdir(parents=True, exist_ok=True)
|
|
||||||
|
|
||||||
old_game_paths = set(old_games_dir.glob("*.json"))
|
|
||||||
old_imported_game_paths = set(
|
|
||||||
filter(lambda path: path.name.startswith("imported_"), old_game_paths)
|
|
||||||
)
|
|
||||||
old_other_game_paths = old_game_paths - old_imported_game_paths
|
|
||||||
|
|
||||||
# Discover current imported games
|
|
||||||
imported_game_number = 0
|
|
||||||
imported_execs = set()
|
|
||||||
for game_path in shared.games_dir.glob("imported_*.json"):
|
|
||||||
try:
|
|
||||||
game_data = json.load(game_path.open("r"))
|
|
||||||
except (OSError, json.JSONDecodeError):
|
|
||||||
continue
|
|
||||||
number = int(game_data["game_id"].replace("imported_", ""))
|
|
||||||
imported_game_number = max(number, imported_game_number)
|
|
||||||
imported_execs.add(game_data["executable"])
|
|
||||||
|
|
||||||
# Migrate imported game files
|
|
||||||
for game_path in old_imported_game_paths:
|
|
||||||
try:
|
|
||||||
game_data = json.load(game_path.open("r"))
|
|
||||||
except (OSError, json.JSONDecodeError):
|
|
||||||
continue
|
|
||||||
|
|
||||||
# Don't migrate if there's a game with the same exec
|
|
||||||
if game_data["executable"] in imported_execs:
|
|
||||||
continue
|
|
||||||
|
|
||||||
# Migrate with updated index
|
|
||||||
imported_game_number += 1
|
|
||||||
game_id = f"imported_{imported_game_number}"
|
|
||||||
game_data["game_id"] = game_id
|
|
||||||
destination_game_path = shared.games_dir / f"{game_id}.json"
|
|
||||||
logging.info(
|
|
||||||
"Moving (updated id) %s -> %s", str(game_path), str(destination_game_path)
|
|
||||||
)
|
|
||||||
json.dump(
|
|
||||||
game_data,
|
|
||||||
destination_game_path.open("w"),
|
|
||||||
indent=4,
|
|
||||||
sort_keys=True,
|
|
||||||
)
|
|
||||||
game_path.unlink()
|
|
||||||
migrate_game_covers(game_path)
|
|
||||||
|
|
||||||
# Migrate all other games
|
|
||||||
for game_path in old_other_game_paths:
|
|
||||||
# Do nothing if already in games dir
|
|
||||||
destination_game_path = shared.games_dir / game_path.name
|
|
||||||
if destination_game_path.exists():
|
|
||||||
continue
|
|
||||||
|
|
||||||
# Else, migrate the game
|
|
||||||
logging.info("Moving %s -> %s", str(game_path), str(destination_game_path))
|
|
||||||
game_path.rename(destination_game_path)
|
|
||||||
migrate_game_covers(game_path)
|
|
||||||
|
|
||||||
# Signal that this dir is migrated
|
|
||||||
migrated_file_path.touch()
|
|
||||||
logging.info("Migration done")
|
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from shutil import copyfile
|
from shutil import copyfile
|
||||||
|
|
||||||
from gi.repository import Gdk, Gio, GLib
|
from gi.repository import Gio
|
||||||
from PIL import Image, ImageSequence, UnidentifiedImageError
|
from PIL import Image, ImageSequence, UnidentifiedImageError
|
||||||
|
|
||||||
from src import shared
|
from src import shared
|
||||||
@@ -63,12 +63,6 @@ def resize_cover(cover_path=None, pixbuf=None):
|
|||||||
else "webp",
|
else "webp",
|
||||||
)
|
)
|
||||||
except UnidentifiedImageError:
|
except UnidentifiedImageError:
|
||||||
try:
|
|
||||||
Gdk.Texture.new_from_filename(str(cover_path)).save_to_tiff(
|
|
||||||
tmp_path := Gio.File.new_tmp("XXXXXX.tiff")[0].get_path()
|
|
||||||
)
|
|
||||||
return resize_cover(tmp_path)
|
|
||||||
except GLib.GError:
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
return tmp_path
|
return tmp_path
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ class SteamManifestData(TypedDict):
|
|||||||
class SteamAPIData(TypedDict):
|
class SteamAPIData(TypedDict):
|
||||||
"""Dict returned by SteamAPIHelper.get_api_data"""
|
"""Dict returned by SteamAPIHelper.get_api_data"""
|
||||||
|
|
||||||
developer: str
|
developers: str
|
||||||
|
|
||||||
|
|
||||||
class SteamRateLimiter(RateLimiter):
|
class SteamRateLimiter(RateLimiter):
|
||||||
@@ -142,10 +142,11 @@ class SteamAPIHelper:
|
|||||||
raise SteamGameNotFoundError()
|
raise SteamGameNotFoundError()
|
||||||
|
|
||||||
# Handle appid is not a game
|
# Handle appid is not a game
|
||||||
if data["data"]["type"] not in {"game", "demo", "mod"}:
|
game_types = ("game", "demo")
|
||||||
|
if data["data"]["type"] not in game_types:
|
||||||
logging.debug("Appid %s is not a game", appid)
|
logging.debug("Appid %s is not a game", appid)
|
||||||
raise SteamNotAGameError()
|
raise SteamNotAGameError()
|
||||||
|
|
||||||
# Return API values we're interested in
|
# Return API values we're interested in
|
||||||
values = SteamAPIData(developer=", ".join(data["data"]["developers"]))
|
values = SteamAPIData(developers=", ".join(data["data"]["developers"]))
|
||||||
return values
|
return values
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ class CartridgesWindow(Adw.ApplicationWindow):
|
|||||||
hidden_search_entry = Gtk.Template.Child()
|
hidden_search_entry = Gtk.Template.Child()
|
||||||
hidden_search_button = Gtk.Template.Child()
|
hidden_search_button = Gtk.Template.Child()
|
||||||
|
|
||||||
|
games = {}
|
||||||
game_covers = {}
|
game_covers = {}
|
||||||
toasts = {}
|
toasts = {}
|
||||||
active_game = None
|
active_game = None
|
||||||
@@ -99,9 +100,6 @@ class CartridgesWindow(Adw.ApplicationWindow):
|
|||||||
self.search_entry.connect("search-changed", self.search_changed, False)
|
self.search_entry.connect("search-changed", self.search_changed, False)
|
||||||
self.hidden_search_entry.connect("search-changed", self.search_changed, True)
|
self.hidden_search_entry.connect("search-changed", self.search_changed, True)
|
||||||
|
|
||||||
self.search_entry.connect("activate", self.show_details_view_search)
|
|
||||||
self.hidden_search_entry.connect("activate", self.show_details_view_search)
|
|
||||||
|
|
||||||
back_mouse_button = Gtk.GestureClick(button=8)
|
back_mouse_button = Gtk.GestureClick(button=8)
|
||||||
(back_mouse_button).connect("pressed", self.on_go_back_action)
|
(back_mouse_button).connect("pressed", self.on_go_back_action)
|
||||||
self.add_controller(back_mouse_button)
|
self.add_controller(back_mouse_button)
|
||||||
@@ -117,7 +115,7 @@ class CartridgesWindow(Adw.ApplicationWindow):
|
|||||||
def set_library_child(self):
|
def set_library_child(self):
|
||||||
child, hidden_child = self.notice_empty, self.hidden_notice_empty
|
child, hidden_child = self.notice_empty, self.hidden_notice_empty
|
||||||
|
|
||||||
for game in shared.store:
|
for game in self.games.values():
|
||||||
if game.removed or game.blacklisted:
|
if game.removed or game.blacklisted:
|
||||||
continue
|
continue
|
||||||
if game.hidden:
|
if game.hidden:
|
||||||
@@ -305,29 +303,13 @@ class CartridgesWindow(Adw.ApplicationWindow):
|
|||||||
search_entry.set_text("")
|
search_entry.set_text("")
|
||||||
|
|
||||||
def on_escape_action(self, *_args):
|
def on_escape_action(self, *_args):
|
||||||
if (
|
if self.stack.get_visible_child() == self.details_view:
|
||||||
|
self.on_go_back_action()
|
||||||
|
elif (
|
||||||
self.get_focus() == self.search_entry.get_focus_child()
|
self.get_focus() == self.search_entry.get_focus_child()
|
||||||
or self.hidden_search_entry.get_focus_child()
|
or self.hidden_search_entry.get_focus_child()
|
||||||
):
|
):
|
||||||
self.on_toggle_search_action()
|
self.on_toggle_search_action()
|
||||||
else:
|
|
||||||
self.on_go_back_action()
|
|
||||||
|
|
||||||
def show_details_view_search(self, widget):
|
|
||||||
library = (
|
|
||||||
self.hidden_library if widget == self.hidden_search_entry else self.library
|
|
||||||
)
|
|
||||||
index = 0
|
|
||||||
|
|
||||||
while True:
|
|
||||||
if not (child := library.get_child_at_index(index)):
|
|
||||||
break
|
|
||||||
|
|
||||||
if self.filter_func(child):
|
|
||||||
self.show_details_view(child.get_child())
|
|
||||||
break
|
|
||||||
|
|
||||||
index += 1
|
|
||||||
|
|
||||||
def on_undo_action(self, _widget, game=None, undo=None):
|
def on_undo_action(self, _widget, game=None, undo=None):
|
||||||
if not game: # If the action was activated via Ctrl + Z
|
if not game: # If the action was activated via Ctrl + Z
|
||||||
|
|||||||
@@ -15,10 +15,10 @@ AppSupportURL=https://github.com/kra-mo/cartridges/issues
|
|||||||
AppUpdatesURL={#MyAppURL}
|
AppUpdatesURL={#MyAppURL}
|
||||||
DefaultDirName={autopf64}\{#MyAppName}
|
DefaultDirName={autopf64}\{#MyAppName}
|
||||||
DisableProgramGroupPage=yes
|
DisableProgramGroupPage=yes
|
||||||
LicenseFile=..\..\LICENSE
|
LicenseFile=..\LICENSE
|
||||||
PrivilegesRequiredOverridesAllowed=dialog
|
PrivilegesRequiredOverridesAllowed=dialog
|
||||||
OutputBaseFilename=Cartridges Setup
|
OutputBaseFilename=Cartridges Setup
|
||||||
SetupIconFile=..\..\windows\icon.ico
|
SetupIconFile=..\windows\icon.ico
|
||||||
Compression=lzma
|
Compression=lzma
|
||||||
SolidCompression=yes
|
SolidCompression=yes
|
||||||
WizardStyle=modern
|
WizardStyle=modern
|
||||||
@@ -50,7 +50,7 @@ Source: "D:\a\_temp\msys64\ucrt64\share\glib-2.0\*"; DestDir: "{app}\share\glib-
|
|||||||
Source: "D:\a\_temp\msys64\ucrt64\share\gtk-4.0\*"; DestDir: "{app}\share\gtk-4.0"; Flags: recursesubdirs ignoreversion
|
Source: "D:\a\_temp\msys64\ucrt64\share\gtk-4.0\*"; DestDir: "{app}\share\gtk-4.0"; Flags: recursesubdirs ignoreversion
|
||||||
Source: "D:\a\_temp\msys64\ucrt64\share\locale\*"; DestDir: "{app}\share\locale"; Flags: recursesubdirs ignoreversion
|
Source: "D:\a\_temp\msys64\ucrt64\share\locale\*"; DestDir: "{app}\share\locale"; Flags: recursesubdirs ignoreversion
|
||||||
|
|
||||||
Source: "..\..\windows\icon.ico"; DestDir: "{app}"; Flags: recursesubdirs ignoreversion
|
Source: "..\windows\icon.ico"; DestDir: "{app}"; Flags: recursesubdirs ignoreversion
|
||||||
|
|
||||||
[Icons]
|
[Icons]
|
||||||
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\bin\{#MyAppExeName}"; Parameters: """{app}\bin\cartridges"""; IconFilename: "{app}\icon.ico"
|
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\bin\{#MyAppExeName}"; Parameters: """{app}\bin\cartridges"""; IconFilename: "{app}\icon.ico"
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
configure_file(
|
|
||||||
input: './Cartridges.iss.in',
|
|
||||||
output: 'Cartridges.iss',
|
|
||||||
configuration: conf,
|
|
||||||
install: true,
|
|
||||||
install_dir: '.'
|
|
||||||
)
|
|
||||||
Reference in New Issue
Block a user